diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 8cb305ab2c3..f8cbd71705f 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -265,7 +265,7 @@ jobs: env: extensions: mbstring, intl, json, yaml, apcu, imagick, gd, gettext, igbinary, msgpack, redis, zip HOMEBREW_NO_INSTALL_CLEANUP: 1 - ext_cache_key: v5.0.0-alpha.3-macOS-2 + ext_cache_key: v5.0.0-alpha.6-macOS-2 strategy: fail-fast: false matrix: @@ -396,7 +396,7 @@ jobs: - name: Setup Environment Variables run: | Write-Output "PHP_SDK_VERSION=2.2.0" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - Write-Output "PSR_VERSION=1.0.1" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + Write-Output "PSR_VERSION=1.1.0" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append Write-Output "PHP_DEVPACK=C:\tools\php-devpack" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append Write-Output "PHP_SDK_PATH=C:\tools\php-sdk" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append @@ -418,7 +418,7 @@ jobs: Write-Output "PACKAGE_PREFIX=phalcon" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append Write-Output "EXTENSION_NAME=phalcon" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append Write-Output "EXTENSION_FILE=php_phalcon.dll" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - Write-Output "PHALCON_VERSION=5.0.0alpha5" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + Write-Output "PHALCON_VERSION=5.0.0alpha6" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append Write-Output "PHPTS=${{ matrix.ts }}" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append If ("${{ matrix.ts }}" -eq "nts") { Write-Output "BUILD_TYPE=nts-${{ matrix.build_type }}" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append diff --git a/CHANGELOG-5.0.md b/CHANGELOG-5.0.md index 0c3946e5bc0..af38638eecf 100644 --- a/CHANGELOG-5.0.md +++ b/CHANGELOG-5.0.md @@ -1,6 +1,19 @@ -# [5.0.0alpha6](https://github.com/phalcon/cphalcon/releases/tag/v5.0.0alpha6) (xxx-xx-xx) +# [5.0.0alpha7](https://github.com/phalcon/cphalcon/releases/tag/v5.0.0alpha6) (xxxx-xx-xx) + +# [5.0.0alpha6](https://github.com/phalcon/cphalcon/releases/tag/v5.0.0alpha6) (2021-09-16) + +## Changed +- Adjusted the constructor for `Phalcon\Storage\Adapter\*` and `Phalcon\Cache\Adapter\*` to allow an empty key prefix to be set if needed. [#15480](https://github.com/phalcon/cphalcon/issues/15480) +- Changed: + - `Phalcon\Db\Adapter\AdapterInterface:lastInsertId()` to be identical as `Pdo:lastInsertId()` + - `Phalcon\Db\Adapter\AdapterInterface:close()` now returns `void` instead of `bool` + - `Phalcon\Db\Adapter\AdapterInterface:connect()` now returns `void` instead of `bool` and 1st argument default value is empty `array` instead of `null` [#15659](https://github.com/phalcon/cphalcon/issues/15659) + +## Added +- Added `Phalcon\Security\JWT\Builder::addClaim` for custom JWT claims. [#15656](https://github.com/phalcon/cphalcon/issues/15656) # [5.0.0alpha5](https://github.com/phalcon/cphalcon/releases/tag/v5.0.0alpha5) (2021-09-09) + ## Changed - Merged all architectures (`build/phalcon/32bits`, `build/phalcon/64bits` and `build/phalcon/safe`) into single universal inside `build/phalcon` [#15647](https://github.com/phalcon/cphalcon/issues/15647) diff --git a/build/phalcon/phalcon.zep.c b/build/phalcon/phalcon.zep.c index 64a93210571..c79e26a7768 100644 --- a/build/phalcon/phalcon.zep.c +++ b/build/phalcon/phalcon.zep.c @@ -30087,87 +30087,112 @@ zend_object *zephir_init_properties_Phalcon_Validation(zend_class_entry *class_t -ZEPHIR_INIT_CLASS(Phalcon_Acl_Component) +ZEPHIR_INIT_CLASS(Phalcon_Collection_CollectionInterface) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Acl, Component, phalcon, acl_component, phalcon_acl_component_method_entry, 0); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Collection, CollectionInterface, phalcon, collection_collectioninterface, phalcon_collection_collectioninterface_method_entry); - zend_declare_property_null(phalcon_acl_component_ce, SL("description"), ZEND_ACC_PRIVATE); - zend_declare_property_null(phalcon_acl_component_ce, SL("name"), ZEND_ACC_PRIVATE); - zend_class_implements(phalcon_acl_component_ce, 1, phalcon_acl_componentinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Acl_Component, getDescription) -{ - zval *this_ptr = getThis(); +ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, __get); +ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, __isset); +ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, __set); +ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, __unset); +ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, clear); +ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, get); +ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, getKeys); +ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, getValues); +ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, has); +ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, init); +ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, remove); +ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, set); +ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, toArray); +ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, toJson); - RETURN_MEMBER(getThis(), "description"); -} +#ifdef HAVE_CONFIG_H +#endif -static PHP_METHOD(Phalcon_Acl_Component, getName) + + + + +ZEPHIR_INIT_CLASS(Phalcon_Collection_Exception) { - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Collection, Exception, phalcon, collection_exception, phalcon_exception_ce, NULL, 0); + zend_class_implements(phalcon_collection_exception_ce, 1, zend_ce_throwable); + return SUCCESS; +} - RETURN_MEMBER(getThis(), "name"); + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Collection_ReadOnly) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Collection, ReadOnly, phalcon, collection_readonly, phalcon_collection_ce, phalcon_collection_readonly_method_entry, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Acl_Component, __toString) +static PHP_METHOD(Phalcon_Collection_ReadOnly, remove) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *element_param = NULL; + zval element; zval *this_ptr = getThis(); + ZVAL_UNDEF(&element); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(element) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &element_param); + zephir_get_strval(&element, element_param); - RETURN_MEMBER(getThis(), "name"); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_collection_exception_ce, "The object is read only", "phalcon/Collection/ReadOnly.zep", 25); + return; } -static PHP_METHOD(Phalcon_Acl_Component, __construct) +static PHP_METHOD(Phalcon_Collection_ReadOnly, set) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, *description_param = NULL; - zval name, description; + zval *element_param = NULL, *value, value_sub; + zval element; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&description); + ZVAL_UNDEF(&element); + ZVAL_UNDEF(&value_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(description) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(element) + Z_PARAM_ZVAL(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &name_param, &description_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - if (!description_param) { - ZEPHIR_INIT_VAR(&description); - } else { - zephir_get_strval(&description, description_param); - } + zephir_fetch_params(1, 2, 0, &element_param, &value); + zephir_get_strval(&element, element_param); - if (UNEXPECTED(ZEPHIR_IS_STRING(&name, "*"))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_acl_exception_ce, "Component name cannot be '*'", "phalcon/Acl/Component.zep", 38); - return; - } - zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); - zephir_update_property_zval(this_ptr, ZEND_STRL("description"), &description); - ZEPHIR_MM_RESTORE(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_collection_exception_ce, "The object is read only", "phalcon/Collection/ReadOnly.zep", 33); + return; } @@ -30180,14 +30205,13 @@ static PHP_METHOD(Phalcon_Acl_Component, __construct) -ZEPHIR_INIT_CLASS(Phalcon_Acl_ComponentAware) +ZEPHIR_INIT_CLASS(Phalcon_Forms_Exception) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Acl, ComponentAware, phalcon, acl_componentaware, phalcon_acl_componentaware_method_entry); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms, Exception, phalcon, forms_exception, phalcon_exception_ce, NULL, 0); return SUCCESS; } -ZEPHIR_DOC_METHOD(Phalcon_Acl_ComponentAware, getComponentName); @@ -30198,122 +30222,623 @@ ZEPHIR_DOC_METHOD(Phalcon_Acl_ComponentAware, getComponentName); -ZEPHIR_INIT_CLASS(Phalcon_Acl_ComponentInterface) +ZEPHIR_INIT_CLASS(Phalcon_Forms_Form) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Acl, ComponentInterface, phalcon, acl_componentinterface, phalcon_acl_componentinterface_method_entry); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms, Form, phalcon, forms_form, phalcon_di_injectable_ce, phalcon_forms_form_method_entry, 0); + + zend_declare_property_null(phalcon_forms_form_ce, SL("attributes"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_forms_form_ce, SL("data"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_forms_form_ce, SL("elements"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_forms_form_ce, SL("elementsIndexed"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_forms_form_ce, SL("entity"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_forms_form_ce, SL("messages"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_forms_form_ce, SL("position"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_forms_form_ce, SL("options"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_forms_form_ce, SL("validation"), ZEND_ACC_PROTECTED); + phalcon_forms_form_ce->create_object = zephir_init_properties_Phalcon_Forms_Form; + zend_class_implements(phalcon_forms_form_ce, 1, zend_ce_countable); + zend_class_implements(phalcon_forms_form_ce, 1, zend_ce_iterator); + zend_class_implements(phalcon_forms_form_ce, 1, phalcon_html_attributes_attributesinterface_ce); return SUCCESS; } -ZEPHIR_DOC_METHOD(Phalcon_Acl_ComponentInterface, getDescription); -ZEPHIR_DOC_METHOD(Phalcon_Acl_ComponentInterface, getName); -ZEPHIR_DOC_METHOD(Phalcon_Acl_ComponentInterface, __toString); - - +static PHP_METHOD(Phalcon_Forms_Form, setValidation) +{ + zval *validation, validation_sub; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&validation_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(validation) + ZEND_PARSE_PARAMETERS_END(); #endif + zephir_fetch_params_without_memory_grow(1, 0, &validation); + zephir_update_property_zval(this_ptr, ZEND_STRL("validation"), validation); + RETURN_THISW(); +} -ZEPHIR_INIT_CLASS(Phalcon_Acl_Enum) +static PHP_METHOD(Phalcon_Forms_Form, getValidation) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Acl, Enum, phalcon, acl_enum, NULL, 0); + zval *this_ptr = getThis(); - zephir_declare_class_constant_long(phalcon_acl_enum_ce, SL("ALLOW"), 1); - zephir_declare_class_constant_long(phalcon_acl_enum_ce, SL("DENY"), 0); - return SUCCESS; + RETURN_MEMBER(getThis(), "validation"); } +static PHP_METHOD(Phalcon_Forms_Form, __construct) +{ + zend_bool _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval userOptions; + zval *entity = NULL, entity_sub, *userOptions_param = NULL, __$null, _1; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&entity_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&userOptions); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 2) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(entity) + Z_PARAM_ARRAY(userOptions) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 2, &entity, &userOptions_param); + if (!entity) { + entity = &entity_sub; + entity = &__$null; + } + if (!userOptions_param) { + ZEPHIR_INIT_VAR(&userOptions); + array_init(&userOptions); + } else { + zephir_get_arrval(&userOptions, userOptions_param); + } + _0 = Z_TYPE_P(entity) != IS_NULL; + if (_0) { + _0 = Z_TYPE_P(entity) != IS_OBJECT; + } + if (UNEXPECTED(_0)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_forms_exception_ce, "The base entity is not valid", "phalcon/Forms/Form.zep", 82); + return; + } + zephir_update_property_zval(this_ptr, ZEND_STRL("entity"), entity); + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &userOptions); + ZEPHIR_INIT_VAR(&_1); + object_init_ex(&_1, phalcon_html_attributes_ce); + ZEPHIR_CALL_METHOD(NULL, &_1, "__construct", NULL, 22); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &_1); + if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("initialize")) == SUCCESS)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "initialize", NULL, 0, entity, &userOptions); + zephir_check_call_status(); + } + ZEPHIR_MM_RESTORE(); +} -ZEPHIR_INIT_CLASS(Phalcon_Acl_Exception) +static PHP_METHOD(Phalcon_Forms_Form, add) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Acl, Exception, phalcon, acl_exception, phalcon_exception_ce, NULL, 0); + zend_string *_6$$4; + zend_ulong _5$$4; + zval elements; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool type, _0; + zval position; + zval *element, element_sub, *position_param = NULL, *type_param = NULL, name, key, value, _1, _2$$4, *_3$$4, _4$$4; + zval *this_ptr = getThis(); - return SUCCESS; -} + ZVAL_UNDEF(&element_sub); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&position); + ZVAL_UNDEF(&elements); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_OBJECT_OF_CLASS(element, phalcon_forms_element_elementinterface_ce) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(position) + Z_PARAM_BOOL_OR_NULL(type, is_null_true) + ZEND_PARSE_PARAMETERS_END(); +#endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &element, &position_param, &type_param); + if (!position_param) { + ZEPHIR_INIT_VAR(&position); + } else { + zephir_get_strval(&position, position_param); + } + if (!type_param) { + type = 0; + } else { + type = zephir_get_boolval(type_param); + } -#ifdef HAVE_CONFIG_H -#endif + ZEPHIR_CALL_METHOD(&name, element, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, element, "setform", NULL, 0, this_ptr); + zephir_check_call_status(); + _0 = ZEPHIR_IS_NULL(&position); + if (!(_0)) { + zephir_read_property(&_1, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); + _0 = ZEPHIR_IS_EMPTY(&_1); + } + if (_0) { + zephir_update_property_array(this_ptr, SL("elements"), &name, element); + } else { + ZEPHIR_INIT_VAR(&elements); + array_init(&elements); + zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); + zephir_is_iterable(&_2$$4, 0, "phalcon/Forms/Form.zep", 157); + if (Z_TYPE_P(&_2$$4) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_2$$4), _5$$4, _6$$4, _3$$4) + { + ZEPHIR_INIT_NVAR(&key); + if (_6$$4 != NULL) { + ZVAL_STR_COPY(&key, _6$$4); + } else { + ZVAL_LONG(&key, _5$$4); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _3$$4); + if (ZEPHIR_IS_EQUAL(&key, &position)) { + if (type) { + zephir_array_update_zval(&elements, &name, element, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&elements, &key, &value, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_zval(&elements, &key, &value, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&elements, &name, element, PH_COPY | PH_SEPARATE); + } + } else { + zephir_array_update_zval(&elements, &key, &value, PH_COPY | PH_SEPARATE); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_2$$4, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_4$$4, &_2$$4, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_4$$4)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &_2$$4, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &_2$$4, "current", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_EQUAL(&key, &position)) { + if (type) { + zephir_array_update_zval(&elements, &name, element, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&elements, &key, &value, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_zval(&elements, &key, &value, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&elements, &name, element, PH_COPY | PH_SEPARATE); + } + } else { + zephir_array_update_zval(&elements, &key, &value, PH_COPY | PH_SEPARATE); + } + ZEPHIR_CALL_METHOD(NULL, &_2$$4, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + zephir_update_property_zval(this_ptr, ZEND_STRL("elements"), &elements); + } + RETURN_THIS(); +} +static PHP_METHOD(Phalcon_Forms_Form, bind) +{ + zend_bool _6$$4, _13$$11; + zend_string *_4; + zend_ulong _3; + zval method; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_7 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *data_param = NULL, *entity, entity_sub, *whitelist = NULL, whitelist_sub, __$null, filter, key, value, element, filters, container, filteredValue, assignData, _0, *_1, _2, _5$$4, _10$$4, _11$$4, _8$$8, _9$$8, _12$$11, _16$$11, _17$$11, _14$$15, _15$$15; + zval data; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&entity_sub); + ZVAL_UNDEF(&whitelist_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&filter); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&element); + ZVAL_UNDEF(&filters); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&filteredValue); + ZVAL_UNDEF(&assignData); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_10$$4); + ZVAL_UNDEF(&_11$$4); + ZVAL_UNDEF(&_8$$8); + ZVAL_UNDEF(&_9$$8); + ZVAL_UNDEF(&_12$$11); + ZVAL_UNDEF(&_16$$11); + ZVAL_UNDEF(&_17$$11); + ZVAL_UNDEF(&_14$$15); + ZVAL_UNDEF(&_15$$15); + ZVAL_UNDEF(&method); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_ARRAY(data) + Z_PARAM_ZVAL(entity) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(whitelist) + ZEND_PARSE_PARAMETERS_END(); +#endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &data_param, &entity, &whitelist); + ZEPHIR_OBS_COPY_OR_DUP(&data, data_param); + ZEPHIR_SEPARATE_PARAM(entity); + if (!whitelist) { + whitelist = &whitelist_sub; + whitelist = &__$null; + } -ZEPHIR_INIT_CLASS(Phalcon_Acl_Role) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Acl, Role, phalcon, acl_role, phalcon_acl_role_method_entry, 0); - zend_declare_property_null(phalcon_acl_role_ce, SL("name"), ZEND_ACC_PRIVATE); - zend_declare_property_null(phalcon_acl_role_ce, SL("description"), ZEND_ACC_PRIVATE); - zend_class_implements(phalcon_acl_role_ce, 1, phalcon_acl_roleinterface_ce); - return SUCCESS; + zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(ZEPHIR_IS_EMPTY(&_0))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_forms_exception_ce, "There are no elements in the form", "phalcon/Forms/Form.zep", 175); + return; + } + ZEPHIR_INIT_VAR(&filter); + ZVAL_NULL(&filter); + ZEPHIR_INIT_VAR(&assignData); + array_init(&assignData); + zephir_is_iterable(&data, 0, "phalcon/Forms/Form.zep", 234); + if (Z_TYPE_P(&data) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _3, _4, _1) + { + ZEPHIR_INIT_NVAR(&key); + if (_4 != NULL) { + ZVAL_STR_COPY(&key, _4); + } else { + ZVAL_LONG(&key, _3); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _1); + ZEPHIR_OBS_NVAR(&element); + zephir_read_property(&_5$$4, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&element, &_5$$4, &key, 0))) { + continue; + } + _6$$4 = Z_TYPE_P(whitelist) == IS_ARRAY; + if (_6$$4) { + _6$$4 = !(zephir_fast_in_array(&key, whitelist)); + } + if (_6$$4) { + continue; + } + ZEPHIR_CALL_METHOD(&filters, &element, "getfilters", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&filters)) { + if (Z_TYPE_P(&filter) != IS_OBJECT) { + ZEPHIR_CALL_METHOD(&container, this_ptr, "getdi", &_7, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_9$$8); + ZVAL_STRING(&_9$$8, "filter"); + ZEPHIR_CALL_METHOD(&_8$$8, &container, "getshared", NULL, 0, &_9$$8); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&filter, &_8$$8); + } + ZEPHIR_CALL_METHOD(&filteredValue, &filter, "sanitize", NULL, 0, &value, &filters); + zephir_check_call_status(); + } else { + ZEPHIR_CPY_WRT(&filteredValue, &value); + } + zephir_array_update_zval(&assignData, &key, &value, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_10$$4); + zephir_camelize(&_10$$4, &key, NULL ); + ZEPHIR_INIT_NVAR(&_11$$4); + ZEPHIR_CONCAT_SV(&_11$$4, "set", &_10$$4); + zephir_get_strval(&method, &_11$$4); + if ((zephir_method_exists(entity, &method) == SUCCESS)) { + ZEPHIR_CALL_METHOD_ZVAL(NULL, entity, &method, NULL, 0, &filteredValue); + zephir_check_call_status(); + continue; + } + zephir_update_property_zval_zval(entity, &key, &filteredValue); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &data, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &data, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &data, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &data, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&element); + zephir_read_property(&_12$$11, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&element, &_12$$11, &key, 0))) { + continue; + } + _13$$11 = Z_TYPE_P(whitelist) == IS_ARRAY; + if (_13$$11) { + _13$$11 = !(zephir_fast_in_array(&key, whitelist)); + } + if (_13$$11) { + continue; + } + ZEPHIR_CALL_METHOD(&filters, &element, "getfilters", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&filters)) { + if (Z_TYPE_P(&filter) != IS_OBJECT) { + ZEPHIR_CALL_METHOD(&container, this_ptr, "getdi", &_7, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_15$$15); + ZVAL_STRING(&_15$$15, "filter"); + ZEPHIR_CALL_METHOD(&_14$$15, &container, "getshared", NULL, 0, &_15$$15); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&filter, &_14$$15); + } + ZEPHIR_CALL_METHOD(&filteredValue, &filter, "sanitize", NULL, 0, &value, &filters); + zephir_check_call_status(); + } else { + ZEPHIR_CPY_WRT(&filteredValue, &value); + } + zephir_array_update_zval(&assignData, &key, &value, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_16$$11); + zephir_camelize(&_16$$11, &key, NULL ); + ZEPHIR_INIT_NVAR(&_17$$11); + ZEPHIR_CONCAT_SV(&_17$$11, "set", &_16$$11); + zephir_get_strval(&method, &_17$$11); + if ((zephir_method_exists(entity, &method) == SUCCESS)) { + ZEPHIR_CALL_METHOD_ZVAL(NULL, entity, &method, NULL, 0, &filteredValue); + zephir_check_call_status(); + continue; + } + zephir_update_property_zval_zval(entity, &key, &filteredValue); + ZEPHIR_CALL_METHOD(NULL, &data, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &assignData); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Acl_Role, getName) +static PHP_METHOD(Phalcon_Forms_Form, clear) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_3 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *fields = NULL, fields_sub, __$null, elements, element, data, field, _0, *_1$$3, _2$$3, _4$$4, _5$$4, _6$$5, _7$$5, _8$$7, *_9$$6, _10$$6, _11$$10, _12$$10, _13$$13, _14$$13; zval *this_ptr = getThis(); + ZVAL_UNDEF(&fields_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&elements); + ZVAL_UNDEF(&element); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_7$$5); + ZVAL_UNDEF(&_8$$7); + ZVAL_UNDEF(&_10$$6); + ZVAL_UNDEF(&_11$$10); + ZVAL_UNDEF(&_12$$10); + ZVAL_UNDEF(&_13$$13); + ZVAL_UNDEF(&_14$$13); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(fields) + ZEND_PARSE_PARAMETERS_END(); +#endif + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &fields); + if (!fields) { + fields = &fields_sub; + ZEPHIR_CPY_WRT(fields, &__$null); + } else { + ZEPHIR_SEPARATE_PARAM(fields); + } - RETURN_MEMBER(getThis(), "name"); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&data, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&elements, &_0); + if (Z_TYPE_P(fields) == IS_NULL) { + ZEPHIR_INIT_NVAR(&data); + array_init(&data); + zephir_is_iterable(&elements, 0, "phalcon/Forms/Form.zep", 265); + if (Z_TYPE_P(&elements) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&elements), _1$$3) + { + ZEPHIR_INIT_NVAR(&element); + ZVAL_COPY(&element, _1$$3); + ZEPHIR_CALL_METHOD(&_4$$4, &element, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_5$$4, &element, "getdefault", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(NULL, phalcon_tag_ce, "setdefault", &_3, 0, &_4$$4, &_5$$4); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &elements, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2$$3, &elements, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&element, &elements, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_6$$5, &element, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_7$$5, &element, "getdefault", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(NULL, phalcon_tag_ce, "setdefault", &_3, 0, &_6$$5, &_7$$5); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &elements, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&element); + } else { + if (Z_TYPE_P(fields) != IS_ARRAY) { + ZEPHIR_INIT_VAR(&_8$$7); + zephir_create_array(&_8$$7, 1, 0); + zephir_array_fast_append(&_8$$7, fields); + ZEPHIR_CPY_WRT(fields, &_8$$7); + } + zephir_is_iterable(fields, 0, "phalcon/Forms/Form.zep", 282); + if (Z_TYPE_P(fields) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(fields), _9$$6) + { + ZEPHIR_INIT_NVAR(&field); + ZVAL_COPY(&field, _9$$6); + if (zephir_array_isset(&data, &field)) { + zephir_array_unset(&data, &field, PH_SEPARATE); + } + ZEPHIR_OBS_NVAR(&element); + if (zephir_array_isset_fetch(&element, &elements, &field, 0)) { + ZEPHIR_CALL_METHOD(&_11$$10, &element, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_12$$10, &element, "getdefault", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(NULL, phalcon_tag_ce, "setdefault", &_3, 0, &_11$$10, &_12$$10); + zephir_check_call_status(); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, fields, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_10$$6, fields, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_10$$6)) { + break; + } + ZEPHIR_CALL_METHOD(&field, fields, "current", NULL, 0); + zephir_check_call_status(); + if (zephir_array_isset(&data, &field)) { + zephir_array_unset(&data, &field, PH_SEPARATE); + } + ZEPHIR_OBS_NVAR(&element); + if (zephir_array_isset_fetch(&element, &elements, &field, 0)) { + ZEPHIR_CALL_METHOD(&_13$$13, &element, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_14$$13, &element, "getdefault", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(NULL, phalcon_tag_ce, "setdefault", &_3, 0, &_13$$13, &_14$$13); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, fields, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&field); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &data); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Acl_Role, __toString) +static PHP_METHOD(Phalcon_Forms_Form, count) { + zval _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); - RETURN_MEMBER(getThis(), "name"); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); + RETURN_LONG(zephir_fast_count_int(&_0)); } -static PHP_METHOD(Phalcon_Acl_Role, getDescription) +static PHP_METHOD(Phalcon_Forms_Form, current) { + zval element, _0, _1; zval *this_ptr = getThis(); + ZVAL_UNDEF(&element); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); - RETURN_MEMBER(getThis(), "description"); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("elementsIndexed"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_1, this_ptr, ZEND_STRL("position"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&element, &_0, &_1, 1))) { + RETURN_BOOL(0); + } + RETURN_CTORW(&element); } -static PHP_METHOD(Phalcon_Acl_Role, __construct) +static PHP_METHOD(Phalcon_Forms_Form, get) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, *description_param = NULL; - zval name, description; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, element, _0, _1$$3; + zval name, _2$$3; zval *this_ptr = getThis(); ZVAL_UNDEF(&name); - ZVAL_UNDEF(&description); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&element); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) + ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(description) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &name_param, &description_param); + zephir_fetch_params(1, 1, 0, &name_param); if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); RETURN_MM_NULL(); @@ -30323,2995 +30848,2102 @@ static PHP_METHOD(Phalcon_Acl_Role, __construct) } else { ZEPHIR_INIT_VAR(&name); } - if (!description_param) { - ZEPHIR_INIT_VAR(&description); - } else { - zephir_get_strval(&description, description_param); - } - if (UNEXPECTED(ZEPHIR_IS_STRING(&name, "*"))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_acl_exception_ce, "Role name cannot be '*'", "phalcon/Acl/Role.zep", 38); + ZEPHIR_OBS_VAR(&element); + zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(!(zephir_array_isset_fetch(&element, &_0, &name, 0)))) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_forms_exception_ce); + ZEPHIR_INIT_VAR(&_2$$3); + ZEPHIR_CONCAT_SVS(&_2$$3, "Element with ID=", &name, " is not part of the form"); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Forms/Form.zep", 321); + ZEPHIR_MM_RESTORE(); return; } - zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); - zephir_update_property_zval(this_ptr, ZEND_STRL("description"), &description); - ZEPHIR_MM_RESTORE(); + RETURN_CCTOR(&element); } - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Acl_RoleAware) +static PHP_METHOD(Phalcon_Forms_Form, getAction) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Acl, RoleAware, phalcon, acl_roleaware, phalcon_acl_roleaware_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Acl_RoleAware, getRoleName); - - - -#ifdef HAVE_CONFIG_H -#endif - - + zval _3; + zval _0, _1, _2; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); -ZEPHIR_INIT_CLASS(Phalcon_Acl_RoleInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Acl, RoleInterface, phalcon, acl_roleinterface, phalcon_acl_roleinterface_method_entry); + ZEPHIR_MM_GROW(); - return SUCCESS; + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getattributes", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "action"); + ZEPHIR_CALL_METHOD(&_1, &_0, "get", NULL, 0, &_2); + zephir_check_call_status(); + zephir_cast_to_string(&_3, &_1); + RETURN_CTOR(&_3); } -ZEPHIR_DOC_METHOD(Phalcon_Acl_RoleInterface, getName); -ZEPHIR_DOC_METHOD(Phalcon_Acl_RoleInterface, getDescription); -ZEPHIR_DOC_METHOD(Phalcon_Acl_RoleInterface, __toString); - - - -#ifdef HAVE_CONFIG_H -#endif - - +static PHP_METHOD(Phalcon_Forms_Form, getAttributes) +{ + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); -ZEPHIR_INIT_CLASS(Phalcon_Acl_Adapter_AbstractAdapter) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Acl\\Adapter, AbstractAdapter, phalcon, acl_adapter_abstractadapter, phalcon_acl_adapter_abstractadapter_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + ZEPHIR_MM_GROW(); - zend_declare_property_null(phalcon_acl_adapter_abstractadapter_ce, SL("activeAccess"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_acl_adapter_abstractadapter_ce, SL("accessGranted"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_acl_adapter_abstractadapter_ce, SL("activeRole"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_acl_adapter_abstractadapter_ce, SL("activeComponent"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_acl_adapter_abstractadapter_ce, SL("defaultAccess"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_acl_adapter_abstractadapter_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_acl_adapter_abstractadapter_ce, 1, phalcon_acl_adapter_adapterinterface_ce); - zend_class_implements(phalcon_acl_adapter_abstractadapter_ce, 1, phalcon_events_eventsawareinterface_ce); - return SUCCESS; + zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(Z_TYPE_P(&_0) == IS_NULL)) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_html_attributes_ce); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 22); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &_1$$3); + } + RETURN_MM_MEMBER(getThis(), "attributes"); } -static PHP_METHOD(Phalcon_Acl_Adapter_AbstractAdapter, getActiveAccess) +static PHP_METHOD(Phalcon_Forms_Form, getElements) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "activeAccess"); + RETURN_MEMBER(getThis(), "elements"); } -static PHP_METHOD(Phalcon_Acl_Adapter_AbstractAdapter, getActiveRole) +static PHP_METHOD(Phalcon_Forms_Form, getEntity) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "activeRole"); + RETURN_MEMBER(getThis(), "entity"); } -static PHP_METHOD(Phalcon_Acl_Adapter_AbstractAdapter, getActiveComponent) +static PHP_METHOD(Phalcon_Forms_Form, getLabel) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, element, label, _0, _1$$3; + zval name, _2$$3; zval *this_ptr = getThis(); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&element); + ZVAL_UNDEF(&label); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "activeComponent"); -} - -static PHP_METHOD(Phalcon_Acl_Adapter_AbstractAdapter, getDefaultAction) -{ - zval *this_ptr = getThis(); - + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } - RETURN_MEMBER(getThis(), "defaultAccess"); + ZEPHIR_OBS_VAR(&element); + zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(!(zephir_array_isset_fetch(&element, &_0, &name, 0)))) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_forms_exception_ce); + ZEPHIR_INIT_VAR(&_2$$3); + ZEPHIR_CONCAT_SVS(&_2$$3, "Element with ID=", &name, " is not part of the form"); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Forms/Form.zep", 375); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_METHOD(&label, &element, "getlabel", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&label))) { + RETURN_CTOR(&name); + } + RETURN_CCTOR(&label); } -static PHP_METHOD(Phalcon_Acl_Adapter_AbstractAdapter, getEventsManager) +static PHP_METHOD(Phalcon_Forms_Form, getMessages) { + zend_bool _1; + zval messages, _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&messages); + ZVAL_UNDEF(&_0); - RETURN_MEMBER(getThis(), "eventsManager"); + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&messages, &_0); + _1 = Z_TYPE_P(&messages) == IS_OBJECT; + if (_1) { + _1 = zephir_instance_of_ev(&messages, phalcon_messages_messages_ce); + } + if (!(_1)) { + object_init_ex(return_value, phalcon_messages_messages_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 9); + zephir_check_call_status(); + RETURN_MM(); + } + RETURN_CCTOR(&messages); } -static PHP_METHOD(Phalcon_Acl_Adapter_AbstractAdapter, setDefaultAction) +static PHP_METHOD(Phalcon_Forms_Form, getMessagesFor) { - zval *defaultAccess_param = NULL, _0; - zend_long defaultAccess; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, _0, _1; + zval name; zval *this_ptr = getThis(); + ZVAL_UNDEF(&name); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(defaultAccess) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &defaultAccess_param); - defaultAccess = zephir_get_intval(defaultAccess_param); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, defaultAccess); - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultAccess"), &_0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, &name); + zephir_check_call_status(); + if (!(zephir_is_true(&_0))) { + object_init_ex(return_value, phalcon_messages_messages_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 9); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_CALL_METHOD(&_1, this_ptr, "get", NULL, 0, &name); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(&_1, "getmessages", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Acl_Adapter_AbstractAdapter, setEventsManager) +static PHP_METHOD(Phalcon_Forms_Form, getUserOption) { - zval *eventsManager, eventsManager_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *option_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, value, _0; + zval option; zval *this_ptr = getThis(); - ZVAL_UNDEF(&eventsManager_sub); + ZVAL_UNDEF(&option); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(option) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(defaultValue) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &option_param, &defaultValue); + zephir_get_strval(&option, option_param); + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; + } - zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); + zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&value, &_0, &option, 1))) { + RETVAL_ZVAL(defaultValue, 1, 0); + RETURN_MM(); + } + RETURN_CTOR(&value); } +static PHP_METHOD(Phalcon_Forms_Form, getUserOptions) +{ + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H -#endif - - - - + RETURN_MEMBER(getThis(), "options"); +} -ZEPHIR_INIT_CLASS(Phalcon_Acl_Adapter_AdapterInterface) +static PHP_METHOD(Phalcon_Forms_Form, getValue) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Acl\\Adapter, AdapterInterface, phalcon, acl_adapter_adapterinterface, phalcon_acl_adapter_adapterinterface_method_entry); + zval forbidden; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_6 = NULL, *_7 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, __$true, entity, value, data, internalEntity, element, _0, _3, _4, _5, _1$$4, _2$$4; + zval name, method; + zval *this_ptr = getThis(); - return SUCCESS; -} + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&method); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&entity); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&internalEntity); + ZVAL_UNDEF(&element); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&forbidden); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif -ZEPHIR_DOC_METHOD(Phalcon_Acl_Adapter_AdapterInterface, addInherit); -ZEPHIR_DOC_METHOD(Phalcon_Acl_Adapter_AdapterInterface, addRole); -ZEPHIR_DOC_METHOD(Phalcon_Acl_Adapter_AdapterInterface, addComponent); -ZEPHIR_DOC_METHOD(Phalcon_Acl_Adapter_AdapterInterface, addComponentAccess); -ZEPHIR_DOC_METHOD(Phalcon_Acl_Adapter_AdapterInterface, allow); -ZEPHIR_DOC_METHOD(Phalcon_Acl_Adapter_AdapterInterface, deny); -ZEPHIR_DOC_METHOD(Phalcon_Acl_Adapter_AdapterInterface, dropComponentAccess); -ZEPHIR_DOC_METHOD(Phalcon_Acl_Adapter_AdapterInterface, getActiveAccess); -ZEPHIR_DOC_METHOD(Phalcon_Acl_Adapter_AdapterInterface, getActiveRole); -ZEPHIR_DOC_METHOD(Phalcon_Acl_Adapter_AdapterInterface, getActiveComponent); -ZEPHIR_DOC_METHOD(Phalcon_Acl_Adapter_AdapterInterface, getDefaultAction); -ZEPHIR_DOC_METHOD(Phalcon_Acl_Adapter_AdapterInterface, getNoArgumentsDefaultAction); -ZEPHIR_DOC_METHOD(Phalcon_Acl_Adapter_AdapterInterface, getRoles); -ZEPHIR_DOC_METHOD(Phalcon_Acl_Adapter_AdapterInterface, getComponents); -ZEPHIR_DOC_METHOD(Phalcon_Acl_Adapter_AdapterInterface, isAllowed); -ZEPHIR_DOC_METHOD(Phalcon_Acl_Adapter_AdapterInterface, isComponent); -ZEPHIR_DOC_METHOD(Phalcon_Acl_Adapter_AdapterInterface, isRole); -ZEPHIR_DOC_METHOD(Phalcon_Acl_Adapter_AdapterInterface, setDefaultAction); -ZEPHIR_DOC_METHOD(Phalcon_Acl_Adapter_AdapterInterface, setNoArgumentsDefaultAction); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Acl_Adapter_Memory) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Acl\\Adapter, Memory, phalcon, acl_adapter_memory, phalcon_acl_adapter_abstractadapter_ce, phalcon_acl_adapter_memory_method_entry, 0); - - zend_declare_property_null(phalcon_acl_adapter_memory_ce, SL("access"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_acl_adapter_memory_ce, SL("accessList"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_acl_adapter_memory_ce, SL("activeFunction"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_acl_adapter_memory_ce, SL("activeFunctionCustomArgumentsCount"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_acl_adapter_memory_ce, SL("activeKey"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_acl_adapter_memory_ce, SL("components"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_acl_adapter_memory_ce, SL("componentsNames"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_acl_adapter_memory_ce, SL("func"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_acl_adapter_memory_ce, SL("noArgumentsDefaultAction"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_acl_adapter_memory_ce, SL("roles"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_acl_adapter_memory_ce, SL("roleInherits"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_acl_adapter_memory_ce, SL("rolesNames"), ZEND_ACC_PROTECTED); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Acl_Adapter_Memory, getActiveFunction) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "activeFunction"); -} - -static PHP_METHOD(Phalcon_Acl_Adapter_Memory, getActiveFunctionCustomArgumentsCount) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "activeFunctionCustomArgumentsCount"); -} - -static PHP_METHOD(Phalcon_Acl_Adapter_Memory, getActiveKey) -{ - zval *this_ptr = getThis(); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } - RETURN_MEMBER(getThis(), "activeKey"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("entity"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&entity, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&data, &_0); + if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("getcustomvalue")) == SUCCESS)) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getcustomvalue", NULL, 0, &name, &entity, &data); + zephir_check_call_status(); + RETURN_MM(); + } + if (Z_TYPE_P(&entity) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_1$$4); + zephir_camelize(&_1$$4, &name, NULL ); + ZEPHIR_INIT_VAR(&_2$$4); + ZEPHIR_CONCAT_SV(&_2$$4, "get", &_1$$4); + zephir_get_strval(&method, &_2$$4); + if ((zephir_method_exists(&entity, &method) == SUCCESS)) { + ZEPHIR_RETURN_CALL_METHOD_ZVAL(&entity, &method, NULL, 0); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_OBS_VAR(&value); + if (zephir_fetch_property_zval(&value, &entity, &name, PH_SILENT_CC)) { + RETURN_CCTOR(&value); + } + } + if (Z_TYPE_P(&data) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&value); + if (zephir_array_isset_fetch(&value, &data, &name, 0)) { + RETURN_CCTOR(&value); + } + } + ZEPHIR_INIT_VAR(&forbidden); + zephir_create_array(&forbidden, 13, 0); + zephir_array_update_string(&forbidden, SL("attributes"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&forbidden, SL("validation"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&forbidden, SL("action"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&forbidden, SL("useroption"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&forbidden, SL("useroptions"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&forbidden, SL("entity"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&forbidden, SL("elements"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&forbidden, SL("messages"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&forbidden, SL("messagesfor"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&forbidden, SL("label"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&forbidden, SL("value"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&forbidden, SL("di"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&forbidden, SL("eventsmanager"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&internalEntity); + zephir_fast_strtolower(&internalEntity, &name); + if (zephir_array_isset(&forbidden, &internalEntity)) { + RETURN_MM_NULL(); + } + ZEPHIR_INIT_VAR(&_3); + zephir_camelize(&_3, &name, NULL ); + ZEPHIR_INIT_VAR(&_4); + ZEPHIR_CONCAT_SV(&_4, "get", &_3); + zephir_get_strval(&method, &_4); + if ((zephir_method_exists(this_ptr, &method) == SUCCESS)) { + ZEPHIR_RETURN_CALL_METHOD_ZVAL(this_ptr, &method, NULL, 0); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_CALL_CE_STATIC(&_5, phalcon_tag_ce, "hasvalue", &_6, 0, &name); + zephir_check_call_status(); + if (zephir_is_true(&_5)) { + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "getvalue", &_7, 0, &name); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_OBS_VAR(&element); + zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_fetch(&element, &_0, &name, 0)) { + ZEPHIR_RETURN_CALL_METHOD(&element, "getdefault", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); + } + RETURN_MM_NULL(); } -static PHP_METHOD(Phalcon_Acl_Adapter_Memory, __construct) +static PHP_METHOD(Phalcon_Forms_Form, has) { - zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval __$true; + zval *name_param = NULL, _0; + zval name; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&name); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 1, 0); - zephir_array_update_string(&_0, SL("*"), &__$true, PH_COPY | PH_SEPARATE); - zephir_update_property_zval(this_ptr, ZEND_STRL("componentsNames"), &_0); - ZEPHIR_INIT_VAR(&_1); - zephir_create_array(&_1, 1, 0); - zephir_array_update_string(&_1, SL("*!*"), &__$true, PH_COPY | PH_SEPARATE); - zephir_update_property_zval(this_ptr, ZEND_STRL("accessList"), &_1); - ZEPHIR_MM_RESTORE(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); + RETURN_MM_BOOL(zephir_array_isset(&_0, &name)); } -static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addComponent) +static PHP_METHOD(Phalcon_Forms_Form, hasMessagesFor) { - zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *componentValue, componentValue_sub, *accessList, accessList_sub, __$true, componentName, componentObject, _1; + zval *name_param = NULL, _0, _1; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&componentValue_sub); - ZVAL_UNDEF(&accessList_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&componentName); - ZVAL_UNDEF(&componentObject); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(componentValue) - Z_PARAM_ZVAL(accessList) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &componentValue, &accessList); - - - _0 = Z_TYPE_P(componentValue) == IS_OBJECT; - if (_0) { - _0 = zephir_instance_of_ev(componentValue, phalcon_acl_componentinterface_ce); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); } - if (_0) { - ZEPHIR_CPY_WRT(&componentObject, componentValue); + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); } else { - ZEPHIR_INIT_NVAR(&componentObject); - object_init_ex(&componentObject, phalcon_acl_component_ce); - ZEPHIR_CALL_METHOD(NULL, &componentObject, "__construct", NULL, 144, componentValue); - zephir_check_call_status(); + ZEPHIR_INIT_VAR(&name); } - ZEPHIR_CALL_METHOD(&componentName, &componentObject, "getname", NULL, 145); + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmessagesfor", NULL, 0, &name); zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("componentsNames"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset(&_1, &componentName))) { - zephir_update_property_array_append(this_ptr, SL("components"), &componentObject); - zephir_update_property_array(this_ptr, SL("componentsNames"), &componentName, &__$true); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addcomponentaccess", NULL, 0, &componentName, accessList); + ZEPHIR_CALL_METHOD(&_1, &_0, "count", NULL, 0); zephir_check_call_status(); - RETURN_MM(); + RETURN_MM_BOOL(ZEPHIR_GT_LONG(&_1, 0)); } -static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addComponentAccess) +static PHP_METHOD(Phalcon_Forms_Form, isValid) { - zend_bool exists = 0, _3; + zend_object_iterator *_17$$21; + zend_bool validationStatus = 0, _6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_12 = NULL, *_13 = NULL, *_20 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *componentName_param = NULL, *accessList, accessList_sub, accessName, _0, _1$$3, *_4$$5, _5$$5, _6$$6, _7$$6, _8$$7, _9$$8, _10$$8, _11$$9, _12$$10, _13$$10, _14$$11; - zval componentName, accessKey, _2$$3; + zval *data = NULL, data_sub, *entity = NULL, entity_sub, __$null, messages, element, validators, name, filters, validator, validation, elementMessage, _0, _7, *_8, _9, _16, _1$$4, _2$$6, _3$$7, _4$$7, _5$$8, *_10$$11, _11$$11, *_14$$16, _15$$16, _18$$22, _19$$22; zval *this_ptr = getThis(); - ZVAL_UNDEF(&componentName); - ZVAL_UNDEF(&accessKey); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&accessList_sub); - ZVAL_UNDEF(&accessName); + ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&entity_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&messages); + ZVAL_UNDEF(&element); + ZVAL_UNDEF(&validators); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&filters); + ZVAL_UNDEF(&validator); + ZVAL_UNDEF(&validation); + ZVAL_UNDEF(&elementMessage); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_6$$6); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_8$$7); - ZVAL_UNDEF(&_9$$8); - ZVAL_UNDEF(&_10$$8); - ZVAL_UNDEF(&_11$$9); - ZVAL_UNDEF(&_12$$10); - ZVAL_UNDEF(&_13$$10); - ZVAL_UNDEF(&_14$$11); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_16); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$6); + ZVAL_UNDEF(&_3$$7); + ZVAL_UNDEF(&_4$$7); + ZVAL_UNDEF(&_5$$8); + ZVAL_UNDEF(&_11$$11); + ZVAL_UNDEF(&_15$$16); + ZVAL_UNDEF(&_18$$22); + ZVAL_UNDEF(&_19$$22); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(componentName) - Z_PARAM_ZVAL(accessList) + ZEND_PARSE_PARAMETERS_START(0, 2) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(data) + Z_PARAM_ZVAL_OR_NULL(entity) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &componentName_param, &accessList); - zephir_get_strval(&componentName, componentName_param); + zephir_fetch_params(1, 0, 2, &data, &entity); + if (!data) { + data = &data_sub; + ZEPHIR_CPY_WRT(data, &__$null); + } else { + ZEPHIR_SEPARATE_PARAM(data); + } + if (!entity) { + entity = &entity_sub; + ZEPHIR_CPY_WRT(entity, &__$null); + } else { + ZEPHIR_SEPARATE_PARAM(entity); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("componentsNames"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(!(zephir_array_isset(&_0, &componentName)))) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_acl_exception_ce); - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_CONCAT_SVS(&_2$$3, "Component '", &componentName, "' does not exist in ACL"); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Acl/Adapter/Memory.zep", 248); - ZEPHIR_MM_RESTORE(); - return; - } - _3 = Z_TYPE_P(accessList) != IS_ARRAY; - if (_3) { - _3 = Z_TYPE_P(accessList) != IS_STRING; + zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); + if (ZEPHIR_IS_EMPTY(&_0)) { + RETURN_MM_BOOL(1); } - if (UNEXPECTED(_3)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_acl_exception_ce, "Invalid value for accessList", "phalcon/Acl/Adapter/Memory.zep", 252); - return; + if (Z_TYPE_P(data) != IS_ARRAY) { + zephir_read_property(&_1$$4, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(data, &_1$$4); } - exists = 1; - if (Z_TYPE_P(accessList) == IS_ARRAY) { - zephir_is_iterable(accessList, 0, "phalcon/Acl/Adapter/Memory.zep", 265); - if (Z_TYPE_P(accessList) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(accessList), _4$$5) - { - ZEPHIR_INIT_NVAR(&accessName); - ZVAL_COPY(&accessName, _4$$5); - ZEPHIR_INIT_NVAR(&_6$$6); - ZEPHIR_CONCAT_VSV(&_6$$6, &componentName, "!", &accessName); - zephir_get_strval(&accessKey, &_6$$6); - zephir_read_property(&_7$$6, this_ptr, ZEND_STRL("accessList"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset(&_7$$6, &accessKey))) { - ZEPHIR_INIT_NVAR(&_8$$7); - ZVAL_BOOL(&_8$$7, exists); - zephir_update_property_array(this_ptr, SL("accessList"), &accessKey, &_8$$7); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, accessList, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5$$5, accessList, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5$$5)) { - break; - } - ZEPHIR_CALL_METHOD(&accessName, accessList, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_9$$8); - ZEPHIR_CONCAT_VSV(&_9$$8, &componentName, "!", &accessName); - zephir_get_strval(&accessKey, &_9$$8); - zephir_read_property(&_10$$8, this_ptr, ZEND_STRL("accessList"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset(&_10$$8, &accessKey))) { - ZEPHIR_INIT_NVAR(&_11$$9); - ZVAL_BOOL(&_11$$9, exists); - zephir_update_property_array(this_ptr, SL("accessList"), &accessKey, &_11$$9); - } - ZEPHIR_CALL_METHOD(NULL, accessList, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&accessName); + if (Z_TYPE_P(entity) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "bind", NULL, 0, data, entity); + zephir_check_call_status(); } else { - ZEPHIR_INIT_VAR(&_12$$10); - ZEPHIR_CONCAT_VSV(&_12$$10, &componentName, "!", accessList); - zephir_get_strval(&accessKey, &_12$$10); - zephir_read_property(&_13$$10, this_ptr, ZEND_STRL("accessList"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset(&_13$$10, &accessKey))) { - ZEPHIR_INIT_VAR(&_14$$11); - ZVAL_BOOL(&_14$$11, exists); - zephir_update_property_array(this_ptr, SL("accessList"), &accessKey, &_14$$11); + ZEPHIR_OBS_VAR(&_2$$6); + zephir_read_property(&_2$$6, this_ptr, ZEND_STRL("entity"), PH_NOISY_CC); + if (Z_TYPE_P(&_2$$6) == IS_OBJECT) { + zephir_read_property(&_3$$7, this_ptr, ZEND_STRL("entity"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "bind", NULL, 0, data, &_3$$7); + zephir_check_call_status(); + zephir_read_property(&_4$$7, this_ptr, ZEND_STRL("entity"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(entity, &_4$$7); } } - RETURN_MM_BOOL(1); -} - -static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addInherit) -{ - zend_bool _6$$7, _25$$22; - zval checkRoleToInherits, usedRoleToInherits; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_16 = NULL, *_17 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *roleName_param = NULL, *roleToInherits, roleToInherits_sub, __$true, roleInheritName, rolesNames, roleToInherit, checkRoleToInherit, roleToInheritList, usedRoleToInherit, _0, *_4, _5, _1$$3, _3$$4, _7$$7, _8$$7, _11$$7, _9$$11, _10$$11, _12$$13, _13$$13, *_14$$13, _15$$13, _18$$18, _19$$18, _20$$16, _21$$19, _22$$19, *_23$$19, _24$$19, _26$$22, _27$$22, _30$$22, _28$$26, _29$$26, _31$$28, _32$$28, *_33$$28, _34$$28, _35$$33, _36$$33, _37$$31, _38$$34, _39$$34, *_40$$34, _41$$34; - zval roleName, _2$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&roleName); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&roleToInherits_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&roleInheritName); - ZVAL_UNDEF(&rolesNames); - ZVAL_UNDEF(&roleToInherit); - ZVAL_UNDEF(&checkRoleToInherit); - ZVAL_UNDEF(&roleToInheritList); - ZVAL_UNDEF(&usedRoleToInherit); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_7$$7); - ZVAL_UNDEF(&_8$$7); - ZVAL_UNDEF(&_11$$7); - ZVAL_UNDEF(&_9$$11); - ZVAL_UNDEF(&_10$$11); - ZVAL_UNDEF(&_12$$13); - ZVAL_UNDEF(&_13$$13); - ZVAL_UNDEF(&_15$$13); - ZVAL_UNDEF(&_18$$18); - ZVAL_UNDEF(&_19$$18); - ZVAL_UNDEF(&_20$$16); - ZVAL_UNDEF(&_21$$19); - ZVAL_UNDEF(&_22$$19); - ZVAL_UNDEF(&_24$$19); - ZVAL_UNDEF(&_26$$22); - ZVAL_UNDEF(&_27$$22); - ZVAL_UNDEF(&_30$$22); - ZVAL_UNDEF(&_28$$26); - ZVAL_UNDEF(&_29$$26); - ZVAL_UNDEF(&_31$$28); - ZVAL_UNDEF(&_32$$28); - ZVAL_UNDEF(&_34$$28); - ZVAL_UNDEF(&_35$$33); - ZVAL_UNDEF(&_36$$33); - ZVAL_UNDEF(&_37$$31); - ZVAL_UNDEF(&_38$$34); - ZVAL_UNDEF(&_39$$34); - ZVAL_UNDEF(&_41$$34); - ZVAL_UNDEF(&checkRoleToInherits); - ZVAL_UNDEF(&usedRoleToInherits); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(roleName) - Z_PARAM_ZVAL(roleToInherits) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &roleName_param, &roleToInherits); - zephir_get_strval(&roleName, roleName_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("rolesNames"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&rolesNames, &_0); - if (UNEXPECTED(!(zephir_array_isset(&rolesNames, &roleName)))) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_acl_exception_ce); - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_CONCAT_SVS(&_2$$3, "Role '", &roleName, "' does not exist in the role list"); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); + if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("beforevalidation")) == SUCCESS)) { + ZEPHIR_CALL_METHOD(&_5$$8, this_ptr, "beforevalidation", NULL, 0, data, entity); zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Acl/Adapter/Memory.zep", 295); - ZEPHIR_MM_RESTORE(); - return; + if (ZEPHIR_IS_FALSE_IDENTICAL(&_5$$8)) { + RETURN_MM_BOOL(0); + } } - zephir_read_property(&_0, this_ptr, ZEND_STRL("roleInherits"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset(&_0, &roleName))) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_array(this_ptr, SL("roleInherits"), &roleName, &_3$$4); + validationStatus = 1; + ZEPHIR_CALL_METHOD(&validation, this_ptr, "getvalidation", NULL, 0); + zephir_check_call_status(); + _6 = Z_TYPE_P(&validation) != IS_OBJECT; + if (!(_6)) { + _6 = !((zephir_instance_of_ev(&validation, phalcon_validation_validationinterface_ce))); } - if (Z_TYPE_P(roleToInherits) != IS_ARRAY) { - ZEPHIR_INIT_VAR(&roleToInheritList); - zephir_create_array(&roleToInheritList, 1, 0); - zephir_array_fast_append(&roleToInheritList, roleToInherits); - } else { - ZEPHIR_CPY_WRT(&roleToInheritList, roleToInherits); + if (_6) { + ZEPHIR_INIT_NVAR(&validation); + object_init_ex(&validation, phalcon_validation_ce); + ZEPHIR_CALL_METHOD(NULL, &validation, "__construct", NULL, 243); + zephir_check_call_status(); } - zephir_is_iterable(&roleToInheritList, 0, "phalcon/Acl/Adapter/Memory.zep", 384); - if (Z_TYPE_P(&roleToInheritList) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&roleToInheritList), _4) + zephir_read_property(&_7, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); + zephir_is_iterable(&_7, 0, "phalcon/Forms/Form.zep", 651); + if (Z_TYPE_P(&_7) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_7), _8) { - ZEPHIR_INIT_NVAR(&roleToInherit); - ZVAL_COPY(&roleToInherit, _4); - _6$$7 = Z_TYPE_P(&roleToInherit) == IS_OBJECT; - if (_6$$7) { - _6$$7 = zephir_instance_of_ev(&roleToInherit, phalcon_acl_roleinterface_ce); - } - if (_6$$7) { - ZEPHIR_CALL_METHOD(&roleInheritName, &roleToInherit, "getname", NULL, 0); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(&roleInheritName, &roleToInherit); - } - zephir_read_property(&_7$$7, this_ptr, ZEND_STRL("roleInherits"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_8$$7, &_7$$7, &roleName, PH_NOISY | PH_READONLY, "phalcon/Acl/Adapter/Memory.zep", 324); - if (zephir_fast_in_array(&roleInheritName, &_8$$7)) { + ZEPHIR_INIT_NVAR(&element); + ZVAL_COPY(&element, _8); + ZEPHIR_CALL_METHOD(&validators, &element, "getvalidators", NULL, 0); + zephir_check_call_status(); + if (zephir_fast_count_int(&validators) == 0) { continue; } - if (UNEXPECTED(!(zephir_array_isset(&rolesNames, &roleInheritName)))) { - ZEPHIR_INIT_NVAR(&_9$$11); - object_init_ex(&_9$$11, phalcon_acl_exception_ce); - ZEPHIR_INIT_NVAR(&_10$$11); - ZEPHIR_CONCAT_SVS(&_10$$11, "Role '", &roleInheritName, "' (to inherit) does not exist in the role list"); - ZEPHIR_CALL_METHOD(NULL, &_9$$11, "__construct", NULL, 8, &_10$$11); - zephir_check_call_status(); - zephir_throw_exception_debug(&_9$$11, "phalcon/Acl/Adapter/Memory.zep", 335); - ZEPHIR_MM_RESTORE(); - return; - } - if (ZEPHIR_IS_EQUAL(&roleName, &roleInheritName)) { - RETURN_MM_BOOL(0); - } - zephir_read_property(&_11$$7, this_ptr, ZEND_STRL("roleInherits"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset(&_11$$7, &roleInheritName)) { - ZEPHIR_INIT_NVAR(&checkRoleToInherits); - array_init(&checkRoleToInherits); - zephir_read_property(&_12$$13, this_ptr, ZEND_STRL("roleInherits"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_13$$13, &_12$$13, &roleInheritName, PH_NOISY | PH_READONLY, "phalcon/Acl/Adapter/Memory.zep", 348); - zephir_is_iterable(&_13$$13, 0, "phalcon/Acl/Adapter/Memory.zep", 352); - if (Z_TYPE_P(&_13$$13) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_13$$13), _14$$13) - { - ZEPHIR_INIT_NVAR(&usedRoleToInherit); - ZVAL_COPY(&usedRoleToInherit, _14$$13); - ZEPHIR_MAKE_REF(&checkRoleToInherits); - ZEPHIR_CALL_FUNCTION(NULL, "array_push", &_16, 146, &checkRoleToInherits, &usedRoleToInherit); - ZEPHIR_UNREF(&checkRoleToInherits); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_13$$13, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(&name, &element, "getname", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&validators, 0, "phalcon/Forms/Form.zep", 638); + if (Z_TYPE_P(&validators) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&validators), _10$$11) + { + ZEPHIR_INIT_NVAR(&validator); + ZVAL_COPY(&validator, _10$$11); + ZEPHIR_CALL_METHOD(NULL, &validation, "add", &_12, 244, &name, &validator); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_15$$13, &_13$$13, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_15$$13)) { - break; - } - ZEPHIR_CALL_METHOD(&usedRoleToInherit, &_13$$13, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_MAKE_REF(&checkRoleToInherits); - ZEPHIR_CALL_FUNCTION(NULL, "array_push", &_16, 146, &checkRoleToInherits, &usedRoleToInherit); - ZEPHIR_UNREF(&checkRoleToInherits); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_13$$13, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&usedRoleToInherit); - ZEPHIR_INIT_NVAR(&usedRoleToInherits); - array_init(&usedRoleToInherits); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &validators, "rewind", NULL, 0); + zephir_check_call_status(); while (1) { - if (!(!(ZEPHIR_IS_EMPTY(&checkRoleToInherits)))) { + ZEPHIR_CALL_METHOD(&_11$$11, &validators, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_11$$11)) { break; } - ZEPHIR_MAKE_REF(&checkRoleToInherits); - ZEPHIR_CALL_FUNCTION(&checkRoleToInherit, "array_shift", &_17, 24, &checkRoleToInherits); - ZEPHIR_UNREF(&checkRoleToInherits); + ZEPHIR_CALL_METHOD(&validator, &validators, "current", NULL, 0); zephir_check_call_status(); - if (zephir_array_isset(&usedRoleToInherits, &checkRoleToInherit)) { - continue; - } - zephir_array_update_zval(&usedRoleToInherits, &checkRoleToInherit, &__$true, PH_COPY | PH_SEPARATE); - if (UNEXPECTED(ZEPHIR_IS_EQUAL(&roleName, &checkRoleToInherit))) { - ZEPHIR_INIT_NVAR(&_18$$18); - object_init_ex(&_18$$18, phalcon_acl_exception_ce); - ZEPHIR_INIT_NVAR(&_19$$18); - ZEPHIR_CONCAT_SVS(&_19$$18, "Role '", &roleInheritName, "' (to inherit) produces an infinite loop"); - ZEPHIR_CALL_METHOD(NULL, &_18$$18, "__construct", NULL, 8, &_19$$18); + ZEPHIR_CALL_METHOD(NULL, &validation, "add", &_12, 244, &name, &validator); zephir_check_call_status(); - zephir_throw_exception_debug(&_18$$18, "phalcon/Acl/Adapter/Memory.zep", 367); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_read_property(&_20$$16, this_ptr, ZEND_STRL("roleInherits"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset(&_20$$16, &checkRoleToInherit)) { - zephir_read_property(&_21$$19, this_ptr, ZEND_STRL("roleInherits"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_22$$19, &_21$$19, &checkRoleToInherit, PH_NOISY | PH_READONLY, "phalcon/Acl/Adapter/Memory.zep", 374); - zephir_is_iterable(&_22$$19, 0, "phalcon/Acl/Adapter/Memory.zep", 377); - if (Z_TYPE_P(&_22$$19) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_22$$19), _23$$19) - { - ZEPHIR_INIT_NVAR(&usedRoleToInherit); - ZVAL_COPY(&usedRoleToInherit, _23$$19); - ZEPHIR_MAKE_REF(&checkRoleToInherits); - ZEPHIR_CALL_FUNCTION(NULL, "array_push", &_16, 146, &checkRoleToInherits, &usedRoleToInherit); - ZEPHIR_UNREF(&checkRoleToInherits); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_22$$19, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_24$$19, &_22$$19, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_24$$19)) { - break; - } - ZEPHIR_CALL_METHOD(&usedRoleToInherit, &_22$$19, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_MAKE_REF(&checkRoleToInherits); - ZEPHIR_CALL_FUNCTION(NULL, "array_push", &_16, 146, &checkRoleToInherits, &usedRoleToInherit); - ZEPHIR_UNREF(&checkRoleToInherits); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_22$$19, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&usedRoleToInherit); - } + ZEPHIR_CALL_METHOD(NULL, &validators, "next", NULL, 0); + zephir_check_call_status(); } } - zephir_update_property_array_multi(this_ptr, SL("roleInherits"), &roleInheritName, SL("za"), 2, &roleName); + ZEPHIR_INIT_NVAR(&validator); + ZEPHIR_CALL_METHOD(&filters, &element, "getfilters", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&filters) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(NULL, &validation, "setfilters", &_13, 245, &name, &filters); + zephir_check_call_status(); + } } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &roleToInheritList, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &_7, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_5, &roleToInheritList, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_9, &_7, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_5)) { + if (!zend_is_true(&_9)) { break; } - ZEPHIR_CALL_METHOD(&roleToInherit, &roleToInheritList, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&element, &_7, "current", NULL, 0); zephir_check_call_status(); - _25$$22 = Z_TYPE_P(&roleToInherit) == IS_OBJECT; - if (_25$$22) { - _25$$22 = zephir_instance_of_ev(&roleToInherit, phalcon_acl_roleinterface_ce); - } - if (_25$$22) { - ZEPHIR_CALL_METHOD(&roleInheritName, &roleToInherit, "getname", NULL, 0); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(&roleInheritName, &roleToInherit); - } - zephir_read_property(&_26$$22, this_ptr, ZEND_STRL("roleInherits"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_27$$22, &_26$$22, &roleName, PH_NOISY | PH_READONLY, "phalcon/Acl/Adapter/Memory.zep", 324); - if (zephir_fast_in_array(&roleInheritName, &_27$$22)) { + ZEPHIR_CALL_METHOD(&validators, &element, "getvalidators", NULL, 0); + zephir_check_call_status(); + if (zephir_fast_count_int(&validators) == 0) { continue; } - if (UNEXPECTED(!(zephir_array_isset(&rolesNames, &roleInheritName)))) { - ZEPHIR_INIT_NVAR(&_28$$26); - object_init_ex(&_28$$26, phalcon_acl_exception_ce); - ZEPHIR_INIT_NVAR(&_29$$26); - ZEPHIR_CONCAT_SVS(&_29$$26, "Role '", &roleInheritName, "' (to inherit) does not exist in the role list"); - ZEPHIR_CALL_METHOD(NULL, &_28$$26, "__construct", NULL, 8, &_29$$26); - zephir_check_call_status(); - zephir_throw_exception_debug(&_28$$26, "phalcon/Acl/Adapter/Memory.zep", 335); - ZEPHIR_MM_RESTORE(); - return; - } - if (ZEPHIR_IS_EQUAL(&roleName, &roleInheritName)) { - RETURN_MM_BOOL(0); - } - zephir_read_property(&_30$$22, this_ptr, ZEND_STRL("roleInherits"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset(&_30$$22, &roleInheritName)) { - ZEPHIR_INIT_NVAR(&checkRoleToInherits); - array_init(&checkRoleToInherits); - zephir_read_property(&_31$$28, this_ptr, ZEND_STRL("roleInherits"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_32$$28, &_31$$28, &roleInheritName, PH_NOISY | PH_READONLY, "phalcon/Acl/Adapter/Memory.zep", 348); - zephir_is_iterable(&_32$$28, 0, "phalcon/Acl/Adapter/Memory.zep", 352); - if (Z_TYPE_P(&_32$$28) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_32$$28), _33$$28) - { - ZEPHIR_INIT_NVAR(&usedRoleToInherit); - ZVAL_COPY(&usedRoleToInherit, _33$$28); - ZEPHIR_MAKE_REF(&checkRoleToInherits); - ZEPHIR_CALL_FUNCTION(NULL, "array_push", &_16, 146, &checkRoleToInherits, &usedRoleToInherit); - ZEPHIR_UNREF(&checkRoleToInherits); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_32$$28, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(&name, &element, "getname", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&validators, 0, "phalcon/Forms/Form.zep", 638); + if (Z_TYPE_P(&validators) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&validators), _14$$16) + { + ZEPHIR_INIT_NVAR(&validator); + ZVAL_COPY(&validator, _14$$16); + ZEPHIR_CALL_METHOD(NULL, &validation, "add", &_12, 244, &name, &validator); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_34$$28, &_32$$28, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_34$$28)) { - break; - } - ZEPHIR_CALL_METHOD(&usedRoleToInherit, &_32$$28, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_MAKE_REF(&checkRoleToInherits); - ZEPHIR_CALL_FUNCTION(NULL, "array_push", &_16, 146, &checkRoleToInherits, &usedRoleToInherit); - ZEPHIR_UNREF(&checkRoleToInherits); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_32$$28, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&usedRoleToInherit); - ZEPHIR_INIT_NVAR(&usedRoleToInherits); - array_init(&usedRoleToInherits); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &validators, "rewind", NULL, 0); + zephir_check_call_status(); while (1) { - if (!(!(ZEPHIR_IS_EMPTY(&checkRoleToInherits)))) { + ZEPHIR_CALL_METHOD(&_15$$16, &validators, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_15$$16)) { break; } - ZEPHIR_MAKE_REF(&checkRoleToInherits); - ZEPHIR_CALL_FUNCTION(&checkRoleToInherit, "array_shift", &_17, 24, &checkRoleToInherits); - ZEPHIR_UNREF(&checkRoleToInherits); + ZEPHIR_CALL_METHOD(&validator, &validators, "current", NULL, 0); zephir_check_call_status(); - if (zephir_array_isset(&usedRoleToInherits, &checkRoleToInherit)) { - continue; - } - zephir_array_update_zval(&usedRoleToInherits, &checkRoleToInherit, &__$true, PH_COPY | PH_SEPARATE); - if (UNEXPECTED(ZEPHIR_IS_EQUAL(&roleName, &checkRoleToInherit))) { - ZEPHIR_INIT_NVAR(&_35$$33); - object_init_ex(&_35$$33, phalcon_acl_exception_ce); - ZEPHIR_INIT_NVAR(&_36$$33); - ZEPHIR_CONCAT_SVS(&_36$$33, "Role '", &roleInheritName, "' (to inherit) produces an infinite loop"); - ZEPHIR_CALL_METHOD(NULL, &_35$$33, "__construct", NULL, 8, &_36$$33); + ZEPHIR_CALL_METHOD(NULL, &validation, "add", &_12, 244, &name, &validator); zephir_check_call_status(); - zephir_throw_exception_debug(&_35$$33, "phalcon/Acl/Adapter/Memory.zep", 367); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_read_property(&_37$$31, this_ptr, ZEND_STRL("roleInherits"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset(&_37$$31, &checkRoleToInherit)) { - zephir_read_property(&_38$$34, this_ptr, ZEND_STRL("roleInherits"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_39$$34, &_38$$34, &checkRoleToInherit, PH_NOISY | PH_READONLY, "phalcon/Acl/Adapter/Memory.zep", 374); - zephir_is_iterable(&_39$$34, 0, "phalcon/Acl/Adapter/Memory.zep", 377); - if (Z_TYPE_P(&_39$$34) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_39$$34), _40$$34) - { - ZEPHIR_INIT_NVAR(&usedRoleToInherit); - ZVAL_COPY(&usedRoleToInherit, _40$$34); - ZEPHIR_MAKE_REF(&checkRoleToInherits); - ZEPHIR_CALL_FUNCTION(NULL, "array_push", &_16, 146, &checkRoleToInherits, &usedRoleToInherit); - ZEPHIR_UNREF(&checkRoleToInherits); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_39$$34, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_41$$34, &_39$$34, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_41$$34)) { - break; - } - ZEPHIR_CALL_METHOD(&usedRoleToInherit, &_39$$34, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_MAKE_REF(&checkRoleToInherits); - ZEPHIR_CALL_FUNCTION(NULL, "array_push", &_16, 146, &checkRoleToInherits, &usedRoleToInherit); - ZEPHIR_UNREF(&checkRoleToInherits); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_39$$34, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&usedRoleToInherit); - } + ZEPHIR_CALL_METHOD(NULL, &validators, "next", NULL, 0); + zephir_check_call_status(); } } - zephir_update_property_array_multi(this_ptr, SL("roleInherits"), &roleInheritName, SL("za"), 2, &roleName); - ZEPHIR_CALL_METHOD(NULL, &roleToInheritList, "next", NULL, 0); + ZEPHIR_INIT_NVAR(&validator); + ZEPHIR_CALL_METHOD(&filters, &element, "getfilters", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&filters) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(NULL, &validation, "setfilters", &_13, 245, &name, &filters); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, &_7, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&roleToInherit); - RETURN_MM_BOOL(1); + ZEPHIR_INIT_NVAR(&element); + ZEPHIR_CALL_METHOD(&messages, &validation, "validate", NULL, 246, data, entity); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_16, &messages, "count", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_16)) { + _17$$21 = zephir_get_iterator(&messages); + _17$$21->funcs->rewind(_17$$21); + for (;_17$$21->funcs->valid(_17$$21) == SUCCESS && !EG(exception); _17$$21->funcs->move_forward(_17$$21)) { + { + ZEPHIR_ITERATOR_COPY(&elementMessage, _17$$21); + } + ZEPHIR_CALL_METHOD(&_19$$22, &elementMessage, "getfield", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_18$$22, this_ptr, "get", &_20, 0, &_19$$22); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_18$$22, "appendmessage", NULL, 0, &elementMessage); + zephir_check_call_status(); + } + zend_iterator_dtor(_17$$21); + ZEPHIR_CALL_METHOD(NULL, &messages, "rewind", NULL, 0); + zephir_check_call_status(); + validationStatus = 0; + } + if (!(validationStatus)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("messages"), &messages); + } + if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("aftervalidation")) == SUCCESS)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "aftervalidation", NULL, 0, &messages); + zephir_check_call_status(); + } + RETURN_MM_BOOL(validationStatus); } -static PHP_METHOD(Phalcon_Acl_Adapter_Memory, addRole) +static PHP_METHOD(Phalcon_Forms_Form, key) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "position"); +} + +static PHP_METHOD(Phalcon_Forms_Form, label) { - zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *role, role_sub, *accessInherits = NULL, accessInherits_sub, __$true, __$null, roleName, roleObject, _1; + zval attributes; + zval *name_param = NULL, *attributes_param = NULL, element, _0, _1$$3; + zval name, _2$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&role_sub); - ZVAL_UNDEF(&accessInherits_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&roleName); - ZVAL_UNDEF(&roleObject); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&element); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(role) + Z_PARAM_STR(name) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(accessInherits) + Z_PARAM_ARRAY_OR_NULL(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &role, &accessInherits); - if (!accessInherits) { - accessInherits = &accessInherits_sub; - accessInherits = &__$null; + zephir_fetch_params(1, 1, 1, &name_param, &attributes_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); } - _0 = Z_TYPE_P(role) == IS_OBJECT; - if (_0) { - _0 = zephir_instance_of_ev(role, phalcon_acl_roleinterface_ce); - } - if (_0) { - ZEPHIR_CPY_WRT(&roleObject, role); - } else if (Z_TYPE_P(role) == IS_STRING) { - ZEPHIR_INIT_NVAR(&roleObject); - object_init_ex(&roleObject, phalcon_acl_role_ce); - ZEPHIR_CALL_METHOD(NULL, &roleObject, "__construct", NULL, 147, role); + ZEPHIR_OBS_VAR(&element); + zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(!(zephir_array_isset_fetch(&element, &_0, &name, 0)))) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_forms_exception_ce); + ZEPHIR_INIT_VAR(&_2$$3); + ZEPHIR_CONCAT_SVS(&_2$$3, "Element with ID=", &name, " is not part of the form"); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); zephir_check_call_status(); - } else { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_acl_exception_ce, "Role must be either a string or implement RoleInterface", "phalcon/Acl/Adapter/Memory.zep", 411); + zephir_throw_exception_debug(&_1$$3, "phalcon/Forms/Form.zep", 701); + ZEPHIR_MM_RESTORE(); return; } - ZEPHIR_CALL_METHOD(&roleName, &roleObject, "getname", NULL, 148); + ZEPHIR_RETURN_CALL_METHOD(&element, "label", NULL, 0, &attributes); zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("rolesNames"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset(&_1, &roleName)) { - RETURN_MM_BOOL(0); - } - zephir_update_property_array_append(this_ptr, SL("roles"), &roleObject); - zephir_update_property_array(this_ptr, SL("rolesNames"), &roleName, &__$true); - if (Z_TYPE_P(accessInherits) != IS_NULL) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addinherit", NULL, 0, &roleName, accessInherits); - zephir_check_call_status(); - RETURN_MM(); - } - RETURN_MM_BOOL(1); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Acl_Adapter_Memory, allow) +static PHP_METHOD(Phalcon_Forms_Form, next) +{ + zval *this_ptr = getThis(); + + + + RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("position"))); +} + +static PHP_METHOD(Phalcon_Forms_Form, render) { - zend_string *_6$$4; - zend_ulong _5$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *roleName_param = NULL, *componentName_param = NULL, *access, access_sub, *func = NULL, func_sub, __$null, innerRoleName, _0$$3, _1$$4, _2$$4, *_3$$4, _4$$4, _7$$5, _8$$6; - zval roleName, componentName; + zval attributes; + zval *name_param = NULL, *attributes_param = NULL, element, _0, _1$$3; + zval name, _2$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&roleName); - ZVAL_UNDEF(&componentName); - ZVAL_UNDEF(&access_sub); - ZVAL_UNDEF(&func_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&innerRoleName); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_8$$6); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&element); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 4) - Z_PARAM_STR(roleName) - Z_PARAM_STR(componentName) - Z_PARAM_ZVAL(access) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(name) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(func) + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 1, &roleName_param, &componentName_param, &access, &func); - zephir_get_strval(&roleName, roleName_param); - zephir_get_strval(&componentName, componentName_param); - if (!func) { - func = &func_sub; - func = &__$null; + zephir_fetch_params(1, 1, 1, &name_param, &attributes_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); } - if (!ZEPHIR_IS_STRING(&roleName, "*")) { - ZVAL_LONG(&_0$$3, 1); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "allowordeny", NULL, 149, &roleName, &componentName, access, &_0$$3, func); - zephir_check_call_status(); - } else { - zephir_read_property(&_1$$4, this_ptr, ZEND_STRL("rolesNames"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_2$$4); - zephir_is_iterable(&_1$$4, 0, "phalcon/Acl/Adapter/Memory.zep", 468); - if (Z_TYPE_P(&_1$$4) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_1$$4), _5$$4, _6$$4, _3$$4) - { - ZEPHIR_INIT_NVAR(&innerRoleName); - if (_6$$4 != NULL) { - ZVAL_STR_COPY(&innerRoleName, _6$$4); - } else { - ZVAL_LONG(&innerRoleName, _5$$4); - } - ZEPHIR_INIT_NVAR(&_2$$4); - ZVAL_COPY(&_2$$4, _3$$4); - ZVAL_LONG(&_7$$5, 1); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "allowordeny", NULL, 149, &innerRoleName, &componentName, access, &_7$$5, func); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_1$$4, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_4$$4, &_1$$4, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_4$$4)) { - break; - } - ZEPHIR_CALL_METHOD(&innerRoleName, &_1$$4, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2$$4, &_1$$4, "current", NULL, 0); - zephir_check_call_status(); - ZVAL_LONG(&_8$$6, 1); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "allowordeny", NULL, 149, &innerRoleName, &componentName, access, &_8$$6, func); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_1$$4, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&_2$$4); - ZEPHIR_INIT_NVAR(&innerRoleName); + ZEPHIR_OBS_VAR(&element); + zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(!(zephir_array_isset_fetch(&element, &_0, &name, 0)))) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_forms_exception_ce); + ZEPHIR_INIT_VAR(&_2$$3); + ZEPHIR_CONCAT_SVS(&_2$$3, "Element with ID=", &name, " is not part of the form"); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Forms/Form.zep", 725); + ZEPHIR_MM_RESTORE(); + return; } - ZEPHIR_MM_RESTORE(); + ZEPHIR_RETURN_CALL_METHOD(&element, "render", NULL, 0, &attributes); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Acl_Adapter_Memory, deny) +static PHP_METHOD(Phalcon_Forms_Form, remove) { - zend_string *_7$$4; - zend_ulong _6$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *roleName_param = NULL, *componentName_param = NULL, *access, access_sub, *func = NULL, func_sub, __$null, innerRoleName, _0, _1$$3, _2$$4, _3$$4, *_4$$4, _5$$4, _8$$5, _9$$6; - zval roleName, componentName; + zval *name_param = NULL, __$null, _0, _1$$3; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&roleName); - ZVAL_UNDEF(&componentName); - ZVAL_UNDEF(&access_sub); - ZVAL_UNDEF(&func_sub); + ZVAL_UNDEF(&name); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&innerRoleName); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 4) - Z_PARAM_STR(roleName) - Z_PARAM_STR(componentName) - Z_PARAM_ZVAL(access) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(func) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 1, &roleName_param, &componentName_param, &access, &func); - zephir_get_strval(&roleName, roleName_param); - zephir_get_strval(&componentName, componentName_param); - if (!func) { - func = &func_sub; - func = &__$null; + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "*"); - if (!ZEPHIR_IS_IDENTICAL(&_0, &roleName)) { - ZVAL_LONG(&_1$$3, 0); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "allowordeny", NULL, 149, &roleName, &componentName, access, &_1$$3, func); - zephir_check_call_status(); - } else { - zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("rolesNames"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_3$$4); - zephir_is_iterable(&_2$$4, 0, "phalcon/Acl/Adapter/Memory.zep", 504); - if (Z_TYPE_P(&_2$$4) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_2$$4), _6$$4, _7$$4, _4$$4) - { - ZEPHIR_INIT_NVAR(&innerRoleName); - if (_7$$4 != NULL) { - ZVAL_STR_COPY(&innerRoleName, _7$$4); - } else { - ZVAL_LONG(&innerRoleName, _6$$4); - } - ZEPHIR_INIT_NVAR(&_3$$4); - ZVAL_COPY(&_3$$4, _4$$4); - ZVAL_LONG(&_8$$5, 0); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "allowordeny", NULL, 149, &innerRoleName, &componentName, access, &_8$$5, func); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_2$$4, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5$$4, &_2$$4, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5$$4)) { - break; - } - ZEPHIR_CALL_METHOD(&innerRoleName, &_2$$4, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_3$$4, &_2$$4, "current", NULL, 0); - zephir_check_call_status(); - ZVAL_LONG(&_9$$6, 0); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "allowordeny", NULL, 149, &innerRoleName, &componentName, access, &_9$$6, func); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_2$$4, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&_3$$4); - ZEPHIR_INIT_NVAR(&innerRoleName); + zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset(&_0, &name)) { + zephir_unset_property_array(this_ptr, ZEND_STRL("elements"), &name); + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); + zephir_array_unset(&_1$$3, &name, PH_SEPARATE); + RETURN_MM_BOOL(1); } + zephir_update_property_zval(this_ptr, ZEND_STRL("elementsIndexed"), &__$null); + RETURN_MM_BOOL(0); +} + +static PHP_METHOD(Phalcon_Forms_Form, rewind) +{ + zval _0, _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, 0); + zephir_update_property_zval(this_ptr, ZEND_STRL("position"), &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&_1, "array_values", NULL, 12, &_0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("elementsIndexed"), &_1); ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Acl_Adapter_Memory, dropComponentAccess) +static PHP_METHOD(Phalcon_Forms_Form, setAction) { - zval localAccess; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *componentName_param = NULL, *accessList, accessList_sub, accessName, _0$$3, *_1$$5, _2$$5, _3$$6, _4$$6, _5$$7, _6$$8, _7$$8, _8$$9; - zval componentName, accessKey; + zval *action_param = NULL, _0, _1; + zval action; zval *this_ptr = getThis(); - ZVAL_UNDEF(&componentName); - ZVAL_UNDEF(&accessKey); - ZVAL_UNDEF(&accessList_sub); - ZVAL_UNDEF(&accessName); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_2$$5); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&_4$$6); - ZVAL_UNDEF(&_5$$7); - ZVAL_UNDEF(&_6$$8); - ZVAL_UNDEF(&_7$$8); - ZVAL_UNDEF(&_8$$9); - ZVAL_UNDEF(&localAccess); + ZVAL_UNDEF(&action); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(componentName) - Z_PARAM_ZVAL(accessList) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(action) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &componentName_param, &accessList); - zephir_get_strval(&componentName, componentName_param); - - - ZEPHIR_INIT_VAR(&localAccess); - array_init(&localAccess); - if (Z_TYPE_P(accessList) == IS_STRING) { - ZEPHIR_INIT_VAR(&_0$$3); - zephir_create_array(&_0$$3, 1, 0); - zephir_array_fast_append(&_0$$3, accessList); - ZEPHIR_CPY_WRT(&localAccess, &_0$$3); - } else { - ZEPHIR_CPY_WRT(&localAccess, accessList); + zephir_fetch_params(1, 1, 0, &action_param); + if (UNEXPECTED(Z_TYPE_P(action_param) != IS_STRING && Z_TYPE_P(action_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'action' must be of the type string")); + RETURN_MM_NULL(); } - if (Z_TYPE_P(accessList) == IS_ARRAY) { - zephir_is_iterable(&localAccess, 0, "phalcon/Acl/Adapter/Memory.zep", 530); - if (Z_TYPE_P(&localAccess) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&localAccess), _1$$5) - { - ZEPHIR_INIT_NVAR(&accessName); - ZVAL_COPY(&accessName, _1$$5); - ZEPHIR_INIT_NVAR(&_3$$6); - ZEPHIR_CONCAT_VSV(&_3$$6, &componentName, "!", &accessName); - zephir_get_strval(&accessKey, &_3$$6); - zephir_read_property(&_4$$6, this_ptr, ZEND_STRL("accessList"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset(&_4$$6, &accessKey)) { - zephir_unset_property_array(this_ptr, ZEND_STRL("accessList"), &accessKey); - zephir_read_property(&_5$$7, this_ptr, ZEND_STRL("accessList"), PH_NOISY_CC | PH_READONLY); - zephir_array_unset(&_5$$7, &accessKey, PH_SEPARATE); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &localAccess, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2$$5, &localAccess, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2$$5)) { - break; - } - ZEPHIR_CALL_METHOD(&accessName, &localAccess, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_6$$8); - ZEPHIR_CONCAT_VSV(&_6$$8, &componentName, "!", &accessName); - zephir_get_strval(&accessKey, &_6$$8); - zephir_read_property(&_7$$8, this_ptr, ZEND_STRL("accessList"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset(&_7$$8, &accessKey)) { - zephir_unset_property_array(this_ptr, ZEND_STRL("accessList"), &accessKey); - zephir_read_property(&_8$$9, this_ptr, ZEND_STRL("accessList"), PH_NOISY_CC | PH_READONLY); - zephir_array_unset(&_8$$9, &accessKey, PH_SEPARATE); - } - ZEPHIR_CALL_METHOD(NULL, &localAccess, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&accessName); + if (EXPECTED(Z_TYPE_P(action_param) == IS_STRING)) { + zephir_get_strval(&action, action_param); + } else { + ZEPHIR_INIT_VAR(&action); } - ZEPHIR_MM_RESTORE(); + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getattributes", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "action"); + ZEPHIR_CALL_METHOD(NULL, &_0, "set", NULL, 0, &_1, &action); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Acl_Adapter_Memory, getNoArgumentsDefaultAction) +static PHP_METHOD(Phalcon_Forms_Form, setEntity) { + zval *entity, entity_sub; zval *this_ptr = getThis(); + ZVAL_UNDEF(&entity_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(entity) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "noArgumentsDefaultAction"); + zephir_fetch_params_without_memory_grow(1, 0, &entity); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("entity"), entity); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Acl_Adapter_Memory, getRoles) +static PHP_METHOD(Phalcon_Forms_Form, setAttributes) { + zval *attributes, attributes_sub; zval *this_ptr = getThis(); + ZVAL_UNDEF(&attributes_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(attributes, phalcon_html_attributes_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "roles"); + zephir_fetch_params_without_memory_grow(1, 0, &attributes); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), attributes); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Acl_Adapter_Memory, getComponents) +static PHP_METHOD(Phalcon_Forms_Form, setUserOption) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *option_param = NULL, *value, value_sub; + zval option; zval *this_ptr = getThis(); + ZVAL_UNDEF(&option); + ZVAL_UNDEF(&value_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(option) + Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &option_param, &value); + zephir_get_strval(&option, option_param); - RETURN_MEMBER(getThis(), "components"); + zephir_update_property_array(this_ptr, SL("options"), &option, value); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isAllowed) +static PHP_METHOD(Phalcon_Forms_Form, setUserOptions) { - zend_bool hasComponent, hasRole, _10, _14$$18, _18$$20, _20$$20, _21$$20, _23$$20, _24$$20, _26$$20, _35$$26, _37$$26, _38$$26, _40$$26, _41$$26, _43$$26, _55$$33, _57$$32, _59$$34; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval parameters; - zval access, _2$$6, _5$$10; - zval *roleName = NULL, roleName_sub, *componentName = NULL, componentName_sub, *access_param = NULL, *parameters_param = NULL, __$null, accessKey, accessList, componentObject, haveAccess, eventsManager, funcAccess, funcList, numberOfRequiredParameters, reflectionFunction, reflectionParameters, parameterNumber, parameterToCheck, parametersForFunction, reflectionClass, reflectionParameter, rolesNames, roleObject, userParametersSizeShouldBe, _6, _0$$5, _1$$6, _3$$9, _4$$10, _7$$11, _8$$11, _9$$13, _11$$15, _12$$16, _13$$16, _15$$18, *_16$$17, _17$$17, _61$$17, _62$$17, _19$$20, _22$$20, _25$$20, _27$$20, _28$$20, _29$$23, _30$$23, _31$$23, _32$$23, _33$$23, _34$$24, _36$$26, _39$$26, _42$$26, _44$$26, _45$$26, _46$$29, _47$$29, _48$$29, _49$$29, _50$$29, _51$$30, _52$$31, _53$$31, _54$$33, _56$$33, _58$$32, _60$$34; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&roleName_sub); - ZVAL_UNDEF(&componentName_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&accessKey); - ZVAL_UNDEF(&accessList); - ZVAL_UNDEF(&componentObject); - ZVAL_UNDEF(&haveAccess); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&funcAccess); - ZVAL_UNDEF(&funcList); - ZVAL_UNDEF(&numberOfRequiredParameters); - ZVAL_UNDEF(&reflectionFunction); - ZVAL_UNDEF(&reflectionParameters); - ZVAL_UNDEF(¶meterNumber); - ZVAL_UNDEF(¶meterToCheck); - ZVAL_UNDEF(¶metersForFunction); - ZVAL_UNDEF(&reflectionClass); - ZVAL_UNDEF(&reflectionParameter); - ZVAL_UNDEF(&rolesNames); - ZVAL_UNDEF(&roleObject); - ZVAL_UNDEF(&userParametersSizeShouldBe); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_0$$5); - ZVAL_UNDEF(&_1$$6); - ZVAL_UNDEF(&_3$$9); - ZVAL_UNDEF(&_4$$10); - ZVAL_UNDEF(&_7$$11); - ZVAL_UNDEF(&_8$$11); - ZVAL_UNDEF(&_9$$13); - ZVAL_UNDEF(&_11$$15); - ZVAL_UNDEF(&_12$$16); - ZVAL_UNDEF(&_13$$16); - ZVAL_UNDEF(&_15$$18); - ZVAL_UNDEF(&_17$$17); - ZVAL_UNDEF(&_61$$17); - ZVAL_UNDEF(&_62$$17); - ZVAL_UNDEF(&_19$$20); - ZVAL_UNDEF(&_22$$20); - ZVAL_UNDEF(&_25$$20); - ZVAL_UNDEF(&_27$$20); - ZVAL_UNDEF(&_28$$20); - ZVAL_UNDEF(&_29$$23); - ZVAL_UNDEF(&_30$$23); - ZVAL_UNDEF(&_31$$23); - ZVAL_UNDEF(&_32$$23); - ZVAL_UNDEF(&_33$$23); - ZVAL_UNDEF(&_34$$24); - ZVAL_UNDEF(&_36$$26); - ZVAL_UNDEF(&_39$$26); - ZVAL_UNDEF(&_42$$26); - ZVAL_UNDEF(&_44$$26); - ZVAL_UNDEF(&_45$$26); - ZVAL_UNDEF(&_46$$29); - ZVAL_UNDEF(&_47$$29); - ZVAL_UNDEF(&_48$$29); - ZVAL_UNDEF(&_49$$29); - ZVAL_UNDEF(&_50$$29); - ZVAL_UNDEF(&_51$$30); - ZVAL_UNDEF(&_52$$31); - ZVAL_UNDEF(&_53$$31); - ZVAL_UNDEF(&_54$$33); - ZVAL_UNDEF(&_56$$33); - ZVAL_UNDEF(&_58$$32); - ZVAL_UNDEF(&_60$$34); - ZVAL_UNDEF(&access); - ZVAL_UNDEF(&_2$$6); - ZVAL_UNDEF(&_5$$10); - ZVAL_UNDEF(¶meters); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 4) - Z_PARAM_ZVAL(roleName) - Z_PARAM_ZVAL(componentName) - Z_PARAM_STR(access) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY_OR_NULL(parameters) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 1, &roleName, &componentName, &access_param, ¶meters_param); - ZEPHIR_SEPARATE_PARAM(roleName); - ZEPHIR_SEPARATE_PARAM(componentName); - zephir_get_strval(&access, access_param); - if (!parameters_param) { - ZEPHIR_INIT_VAR(¶meters); - } else { - zephir_get_arrval(¶meters, parameters_param); - } + zephir_fetch_params(1, 1, 0, &options_param); + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); - ZEPHIR_INIT_VAR(&componentObject); - ZVAL_NULL(&componentObject); - ZEPHIR_INIT_VAR(&haveAccess); - ZVAL_NULL(&haveAccess); - ZEPHIR_INIT_VAR(&funcAccess); - ZVAL_NULL(&funcAccess); - ZEPHIR_INIT_VAR(&roleObject); - ZVAL_NULL(&roleObject); - hasComponent = 0; - hasRole = 0; - if (Z_TYPE_P(roleName) == IS_OBJECT) { - if (zephir_instance_of_ev(roleName, phalcon_acl_roleaware_ce)) { - ZEPHIR_CPY_WRT(&roleObject, roleName); - ZEPHIR_CALL_METHOD(roleName, &roleObject, "getrolename", NULL, 0); - zephir_check_call_status(); - } else if (zephir_instance_of_ev(roleName, phalcon_acl_roleinterface_ce)) { - ZEPHIR_CALL_METHOD(&_0$$5, roleName, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(roleName, &_0$$5); - } else { - ZEPHIR_INIT_VAR(&_1$$6); - object_init_ex(&_1$$6, phalcon_acl_exception_ce); - ZEPHIR_INIT_VAR(&_2$$6); - ZEPHIR_CONCAT_SS(&_2$$6, "Object passed as roleName must implement ", "Phalcon\\Acl\\RoleAware or Phalcon\\Acl\\RoleInterface"); - ZEPHIR_CALL_METHOD(NULL, &_1$$6, "__construct", NULL, 8, &_2$$6); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$6, "phalcon/Acl/Adapter/Memory.zep", 590); - ZEPHIR_MM_RESTORE(); - return; - } - } - if (Z_TYPE_P(componentName) == IS_OBJECT) { - if (zephir_instance_of_ev(componentName, phalcon_acl_componentaware_ce)) { - ZEPHIR_CPY_WRT(&componentObject, componentName); - ZEPHIR_CALL_METHOD(componentName, &componentObject, "getcomponentname", NULL, 0); - zephir_check_call_status(); - } else if (zephir_instance_of_ev(componentName, phalcon_acl_componentinterface_ce)) { - ZEPHIR_CALL_METHOD(&_3$$9, componentName, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(componentName, &_3$$9); - } else { - ZEPHIR_INIT_VAR(&_4$$10); - object_init_ex(&_4$$10, phalcon_acl_exception_ce); - ZEPHIR_INIT_VAR(&_5$$10); - ZEPHIR_CONCAT_SS(&_5$$10, "Object passed as componentName must implement ", "Phalcon\\Acl\\ComponentAware or Phalcon\\Acl\\ComponentInterface"); - ZEPHIR_CALL_METHOD(NULL, &_4$$10, "__construct", NULL, 8, &_5$$10); - zephir_check_call_status(); - zephir_throw_exception_debug(&_4$$10, "phalcon/Acl/Adapter/Memory.zep", 604); - ZEPHIR_MM_RESTORE(); - return; - } - } - zephir_update_property_zval(this_ptr, ZEND_STRL("activeRole"), roleName); - zephir_update_property_zval(this_ptr, ZEND_STRL("activeComponent"), componentName); - zephir_update_property_zval(this_ptr, ZEND_STRL("activeAccess"), &access); - zephir_update_property_zval(this_ptr, ZEND_STRL("activeKey"), &__$null); - zephir_update_property_zval(this_ptr, ZEND_STRL("activeKey"), &__$null); - zephir_update_property_zval(this_ptr, ZEND_STRL("activeFunction"), &__$null); - ZEPHIR_OBS_VAR(&accessList); - zephir_read_property(&accessList, this_ptr, ZEND_STRL("access"), PH_NOISY_CC); - zephir_read_property(&_6, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_6); - ZEPHIR_OBS_VAR(&funcList); - zephir_read_property(&funcList, this_ptr, ZEND_STRL("func"), PH_NOISY_CC); - ZEPHIR_INIT_ZVAL_NREF(_6); - ZVAL_LONG(&_6, 0); - zephir_update_property_zval(this_ptr, ZEND_STRL("activeFunctionCustomArgumentsCount"), &_6); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_8$$11); - ZVAL_STRING(&_8$$11, "acl:beforeCheckAccess"); - ZEPHIR_CALL_METHOD(&_7$$11, &eventsManager, "fire", NULL, 0, &_8$$11, this_ptr); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_7$$11)) { - RETURN_MM_BOOL(0); - } - } - zephir_read_property(&_6, this_ptr, ZEND_STRL("rolesNames"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&rolesNames, &_6); - if (!(zephir_array_isset(&rolesNames, roleName))) { - zephir_read_property(&_9$$13, this_ptr, ZEND_STRL("defaultAccess"), PH_NOISY_CC | PH_READONLY); - RETURN_MM_BOOL((ZEPHIR_IS_LONG(&_9$$13, 1))); - } - ZEPHIR_CALL_METHOD(&accessKey, this_ptr, "canaccess", NULL, 150, roleName, componentName, &access); - zephir_check_call_status(); - _10 = !ZEPHIR_IS_FALSE(&accessKey); - if (_10) { - _10 = zephir_array_isset(&accessList, &accessKey); - } - if (_10) { - ZEPHIR_OBS_NVAR(&haveAccess); - zephir_array_fetch(&haveAccess, &accessList, &accessKey, PH_NOISY, "phalcon/Acl/Adapter/Memory.zep", 641); - ZEPHIR_OBS_NVAR(&funcAccess); - zephir_array_isset_fetch(&funcAccess, &funcList, &accessKey, 0); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("accessGranted"), &haveAccess); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_11$$15); - ZVAL_STRING(&_11$$15, "acl:afterCheckAccess"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_11$$15, this_ptr); - zephir_check_call_status(); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("activeKey"), &accessKey); - zephir_update_property_zval(this_ptr, ZEND_STRL("activeFunction"), &funcAccess); - if (Z_TYPE_P(&haveAccess) == IS_NULL) { - ZEPHIR_INIT_VAR(&_12$$16); - ZEPHIR_CONCAT_VSVSV(&_12$$16, roleName, "!", componentName, "!", &access); - zephir_update_property_zval(this_ptr, ZEND_STRL("activeKey"), &_12$$16); - zephir_read_property(&_13$$16, this_ptr, ZEND_STRL("defaultAccess"), PH_NOISY_CC | PH_READONLY); - RETURN_MM_BOOL(ZEPHIR_IS_LONG(&_13$$16, 1)); - } - if (zephir_is_callable(&funcAccess)) { - ZEPHIR_INIT_VAR(&reflectionFunction); - object_init_ex(&reflectionFunction, zephir_get_internal_ce(SL("reflectionfunction"))); - ZEPHIR_CALL_METHOD(NULL, &reflectionFunction, "__construct", NULL, 151, &funcAccess); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&reflectionParameters, &reflectionFunction, "getparameters", NULL, 152); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(¶meterNumber); - ZVAL_LONG(¶meterNumber, zephir_fast_count_int(&reflectionParameters)); - if (ZEPHIR_IS_LONG_IDENTICAL(¶meterNumber, 0)) { - _14$$18 = ZEPHIR_IS_LONG(&haveAccess, 1); - if (_14$$18) { - ZEPHIR_INIT_VAR(&_15$$18); - ZEPHIR_CALL_USER_FUNC(&_15$$18, &funcAccess); - zephir_check_call_status(); - _14$$18 = zephir_is_true(&_15$$18); - } - RETURN_MM_BOOL(_14$$18); - } - ZEPHIR_INIT_VAR(¶metersForFunction); - array_init(¶metersForFunction); - ZEPHIR_CALL_METHOD(&numberOfRequiredParameters, &reflectionFunction, "getnumberofrequiredparameters", NULL, 153); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&userParametersSizeShouldBe, ¶meterNumber); - zephir_is_iterable(&reflectionParameters, 0, "phalcon/Acl/Adapter/Memory.zep", 746); - if (Z_TYPE_P(&reflectionParameters) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&reflectionParameters), _16$$17) - { - ZEPHIR_INIT_NVAR(&reflectionParameter); - ZVAL_COPY(&reflectionParameter, _16$$17); - ZEPHIR_CALL_METHOD(&reflectionClass, &reflectionParameter, "getclass", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(¶meterToCheck, &reflectionParameter, "getname", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&reflectionClass) != IS_NULL) { - _18$$20 = Z_TYPE_P(&roleObject) != IS_NULL; - if (_18$$20) { - ZEPHIR_CALL_METHOD(&_19$$20, &reflectionClass, "isinstance", NULL, 0, &roleObject); - zephir_check_call_status(); - _18$$20 = zephir_is_true(&_19$$20); - } - _20$$20 = _18$$20; - if (_20$$20) { - _20$$20 = !hasRole; - } - if (_20$$20) { - hasRole = 1; - zephir_array_append(¶metersForFunction, &roleObject, PH_SEPARATE, "phalcon/Acl/Adapter/Memory.zep", 699); - ZEPHIR_SEPARATE(&userParametersSizeShouldBe); - zephir_decrement(&userParametersSizeShouldBe); - continue; - } - _21$$20 = Z_TYPE_P(&componentObject) != IS_NULL; - if (_21$$20) { - ZEPHIR_CALL_METHOD(&_22$$20, &reflectionClass, "isinstance", NULL, 0, &componentObject); - zephir_check_call_status(); - _21$$20 = zephir_is_true(&_22$$20); - } - _23$$20 = _21$$20; - if (_23$$20) { - _23$$20 = !hasComponent; - } - if (_23$$20) { - hasComponent = 1; - zephir_array_append(¶metersForFunction, &componentObject, PH_SEPARATE, "phalcon/Acl/Adapter/Memory.zep", 711); - ZEPHIR_SEPARATE(&userParametersSizeShouldBe); - zephir_decrement(&userParametersSizeShouldBe); - continue; - } - _24$$20 = zephir_array_isset(¶meters, ¶meterToCheck); - if (_24$$20) { - zephir_array_fetch(&_25$$20, ¶meters, ¶meterToCheck, PH_NOISY | PH_READONLY, "phalcon/Acl/Adapter/Memory.zep", 722); - _24$$20 = Z_TYPE_P(&_25$$20) == IS_OBJECT; - } - _26$$20 = _24$$20; - if (_26$$20) { - zephir_array_fetch(&_28$$20, ¶meters, ¶meterToCheck, PH_NOISY | PH_READONLY, "phalcon/Acl/Adapter/Memory.zep", 723); - ZEPHIR_CALL_METHOD(&_27$$20, &reflectionClass, "isinstance", NULL, 0, &_28$$20); - zephir_check_call_status(); - _26$$20 = !zephir_is_true(&_27$$20); - } - if (UNEXPECTED(_26$$20)) { - ZEPHIR_INIT_NVAR(&_29$$23); - object_init_ex(&_29$$23, phalcon_acl_exception_ce); - ZEPHIR_INIT_NVAR(&_30$$23); - zephir_array_fetch(&_31$$23, ¶meters, ¶meterToCheck, PH_NOISY | PH_READONLY, "phalcon/Acl/Adapter/Memory.zep", 730); - zephir_get_class(&_30$$23, &_31$$23, 0); - ZEPHIR_CALL_METHOD(&_32$$23, &reflectionClass, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_33$$23); - ZEPHIR_CONCAT_SSSVSVSVSVSVS(&_33$$23, "Your passed parameter doesn't have the ", "same class as the parameter in defined function ", "when checking if ", roleName, " can ", &access, " ", componentName, ". Class passed: ", &_30$$23, " , Class in defined function: ", &_32$$23, "."); - ZEPHIR_CALL_METHOD(NULL, &_29$$23, "__construct", NULL, 8, &_33$$23); - zephir_check_call_status(); - zephir_throw_exception_debug(&_29$$23, "phalcon/Acl/Adapter/Memory.zep", 733); - ZEPHIR_MM_RESTORE(); - return; - } - } - if (zephir_array_isset(¶meters, ¶meterToCheck)) { - zephir_array_fetch(&_34$$24, ¶meters, ¶meterToCheck, PH_NOISY | PH_READONLY, "phalcon/Acl/Adapter/Memory.zep", 742); - zephir_array_append(¶metersForFunction, &_34$$24, PH_SEPARATE, "phalcon/Acl/Adapter/Memory.zep", 742); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &reflectionParameters, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_17$$17, &reflectionParameters, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_17$$17)) { - break; - } - ZEPHIR_CALL_METHOD(&reflectionParameter, &reflectionParameters, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&reflectionClass, &reflectionParameter, "getclass", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(¶meterToCheck, &reflectionParameter, "getname", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&reflectionClass) != IS_NULL) { - _35$$26 = Z_TYPE_P(&roleObject) != IS_NULL; - if (_35$$26) { - ZEPHIR_CALL_METHOD(&_36$$26, &reflectionClass, "isinstance", NULL, 0, &roleObject); - zephir_check_call_status(); - _35$$26 = zephir_is_true(&_36$$26); - } - _37$$26 = _35$$26; - if (_37$$26) { - _37$$26 = !hasRole; - } - if (_37$$26) { - hasRole = 1; - zephir_array_append(¶metersForFunction, &roleObject, PH_SEPARATE, "phalcon/Acl/Adapter/Memory.zep", 699); - ZEPHIR_SEPARATE(&userParametersSizeShouldBe); - zephir_decrement(&userParametersSizeShouldBe); - continue; - } - _38$$26 = Z_TYPE_P(&componentObject) != IS_NULL; - if (_38$$26) { - ZEPHIR_CALL_METHOD(&_39$$26, &reflectionClass, "isinstance", NULL, 0, &componentObject); - zephir_check_call_status(); - _38$$26 = zephir_is_true(&_39$$26); - } - _40$$26 = _38$$26; - if (_40$$26) { - _40$$26 = !hasComponent; - } - if (_40$$26) { - hasComponent = 1; - zephir_array_append(¶metersForFunction, &componentObject, PH_SEPARATE, "phalcon/Acl/Adapter/Memory.zep", 711); - ZEPHIR_SEPARATE(&userParametersSizeShouldBe); - zephir_decrement(&userParametersSizeShouldBe); - continue; - } - _41$$26 = zephir_array_isset(¶meters, ¶meterToCheck); - if (_41$$26) { - zephir_array_fetch(&_42$$26, ¶meters, ¶meterToCheck, PH_NOISY | PH_READONLY, "phalcon/Acl/Adapter/Memory.zep", 722); - _41$$26 = Z_TYPE_P(&_42$$26) == IS_OBJECT; - } - _43$$26 = _41$$26; - if (_43$$26) { - zephir_array_fetch(&_45$$26, ¶meters, ¶meterToCheck, PH_NOISY | PH_READONLY, "phalcon/Acl/Adapter/Memory.zep", 723); - ZEPHIR_CALL_METHOD(&_44$$26, &reflectionClass, "isinstance", NULL, 0, &_45$$26); - zephir_check_call_status(); - _43$$26 = !zephir_is_true(&_44$$26); - } - if (UNEXPECTED(_43$$26)) { - ZEPHIR_INIT_NVAR(&_46$$29); - object_init_ex(&_46$$29, phalcon_acl_exception_ce); - ZEPHIR_INIT_NVAR(&_47$$29); - zephir_array_fetch(&_48$$29, ¶meters, ¶meterToCheck, PH_NOISY | PH_READONLY, "phalcon/Acl/Adapter/Memory.zep", 730); - zephir_get_class(&_47$$29, &_48$$29, 0); - ZEPHIR_CALL_METHOD(&_49$$29, &reflectionClass, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_50$$29); - ZEPHIR_CONCAT_SSSVSVSVSVSVS(&_50$$29, "Your passed parameter doesn't have the ", "same class as the parameter in defined function ", "when checking if ", roleName, " can ", &access, " ", componentName, ". Class passed: ", &_47$$29, " , Class in defined function: ", &_49$$29, "."); - ZEPHIR_CALL_METHOD(NULL, &_46$$29, "__construct", NULL, 8, &_50$$29); - zephir_check_call_status(); - zephir_throw_exception_debug(&_46$$29, "phalcon/Acl/Adapter/Memory.zep", 733); - ZEPHIR_MM_RESTORE(); - return; - } - } - if (zephir_array_isset(¶meters, ¶meterToCheck)) { - zephir_array_fetch(&_51$$30, ¶meters, ¶meterToCheck, PH_NOISY | PH_READONLY, "phalcon/Acl/Adapter/Memory.zep", 742); - zephir_array_append(¶metersForFunction, &_51$$30, PH_SEPARATE, "phalcon/Acl/Adapter/Memory.zep", 742); - } - ZEPHIR_CALL_METHOD(NULL, &reflectionParameters, "next", NULL, 0); - zephir_check_call_status(); - } + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Forms_Form, valid) +{ + zval _0, _1; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("elementsIndexed"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_1, this_ptr, ZEND_STRL("position"), PH_NOISY_CC | PH_READONLY); + RETURN_BOOL(zephir_array_isset(&_0, &_1)); +} + +zend_object *zephir_init_properties_Phalcon_Forms_Form(zend_class_entry *class_type) +{ + zval _0, _2, _4, _6, _1$$3, _3$$4, _5$$5, _7$$6; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_7$$6); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); } - ZEPHIR_INIT_NVAR(&reflectionParameter); - zephir_update_property_zval(this_ptr, ZEND_STRL("activeFunctionCustomArgumentsCount"), &userParametersSizeShouldBe); - if (UNEXPECTED(ZEPHIR_LT_LONG(&userParametersSizeShouldBe, zephir_fast_count_int(¶meters)))) { - ZEPHIR_INIT_VAR(&_52$$31); - ZEPHIR_CONCAT_SSVSVSVS(&_52$$31, "Number of parameters in array is higher than ", "the number of parameters in defined function when checking if '", roleName, "' can '", &access, "' '", componentName, "'. Extra parameters will be ignored."); - ZVAL_LONG(&_53$$31, 512); - ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_52$$31, &_53$$31); - zephir_check_call_status(); + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("elementsIndexed"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("elementsIndexed"), &_3$$4); } - if (zephir_fast_count_int(¶metersForFunction) == 0) { - if (UNEXPECTED(ZEPHIR_GT_LONG(&numberOfRequiredParameters, 0))) { - ZEPHIR_INIT_VAR(&_54$$33); - ZEPHIR_CONCAT_SVSVSVS(&_54$$33, "You did not provide any parameters when '", roleName, "' can '", &access, "' '", componentName, "'. We will use default action when no arguments."); - ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_54$$33); - zephir_check_call_status(); - _55$$33 = ZEPHIR_IS_LONG(&haveAccess, 1); - if (_55$$33) { - zephir_read_property(&_56$$33, this_ptr, ZEND_STRL("noArgumentsDefaultAction"), PH_NOISY_CC | PH_READONLY); - _55$$33 = ZEPHIR_IS_LONG(&_56$$33, 1); - } - RETURN_MM_BOOL(_55$$33); - } - _57$$32 = ZEPHIR_IS_LONG(&haveAccess, 1); - if (_57$$32) { - ZEPHIR_INIT_VAR(&_58$$32); - ZEPHIR_CALL_USER_FUNC(&_58$$32, &funcAccess); - zephir_check_call_status(); - _57$$32 = zephir_is_true(&_58$$32); - } - RETURN_MM_BOOL(_57$$32); + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_4) == IS_NULL) { + ZEPHIR_INIT_VAR(&_5$$5); + array_init(&_5$$5); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("elements"), &_5$$5); } - if (ZEPHIR_LE_LONG(&numberOfRequiredParameters, zephir_fast_count_int(¶metersForFunction))) { - _59$$34 = ZEPHIR_IS_LONG(&haveAccess, 1); - if (_59$$34) { - ZEPHIR_INIT_VAR(&_60$$34); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_60$$34, &funcAccess, ¶metersForFunction); - zephir_check_call_status(); - _59$$34 = zephir_is_true(&_60$$34); - } - RETURN_MM_BOOL(_59$$34); + zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_6) == IS_NULL) { + ZEPHIR_INIT_VAR(&_7$$6); + array_init(&_7$$6); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("data"), &_7$$6); } - ZEPHIR_INIT_VAR(&_61$$17); - object_init_ex(&_61$$17, phalcon_acl_exception_ce); - ZEPHIR_INIT_VAR(&_62$$17); - ZEPHIR_CONCAT_SSVSVSVS(&_62$$17, "You did not provide all necessary parameters for the ", "defined function when checking if '", roleName, "' can '", &access, "' for '", componentName, "'."); - ZEPHIR_CALL_METHOD(NULL, &_61$$17, "__construct", NULL, 8, &_62$$17); - zephir_check_call_status(); - zephir_throw_exception_debug(&_61$$17, "phalcon/Acl/Adapter/Memory.zep", 787); ZEPHIR_MM_RESTORE(); - return; + return Z_OBJ_P(this_ptr); } - RETURN_MM_BOOL(ZEPHIR_IS_LONG(&haveAccess, 1)); } -static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isRole) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Forms_Manager) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Forms, Manager, phalcon, forms_manager, phalcon_forms_manager_method_entry, 0); + + zend_declare_property_null(phalcon_forms_manager_ce, SL("forms"), ZEND_ACC_PROTECTED); + phalcon_forms_manager_ce->create_object = zephir_init_properties_Phalcon_Forms_Manager; + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Forms_Manager, create) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *roleName_param = NULL, _0; - zval roleName; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, *entity = NULL, entity_sub, __$null, form; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&roleName); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&entity_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&form); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(roleName) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(name) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(entity) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &roleName_param); - zephir_get_strval(&roleName, roleName_param); + zephir_fetch_params(1, 1, 1, &name_param, &entity); + zephir_get_strval(&name, name_param); + if (!entity) { + entity = &entity_sub; + entity = &__$null; + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("rolesNames"), PH_NOISY_CC | PH_READONLY); - RETURN_MM_BOOL(zephir_array_isset(&_0, &roleName)); + ZEPHIR_INIT_VAR(&form); + object_init_ex(&form, phalcon_forms_form_ce); + ZEPHIR_CALL_METHOD(NULL, &form, "__construct", NULL, 247, entity); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("forms"), &name, &form); + RETURN_CCTOR(&form); } -static PHP_METHOD(Phalcon_Acl_Adapter_Memory, isComponent) +static PHP_METHOD(Phalcon_Forms_Manager, get) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *componentName_param = NULL, _0; - zval componentName; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, form, _0, _1$$3; + zval name, _2$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&componentName); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&form); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(componentName) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &componentName_param); - zephir_get_strval(&componentName, componentName_param); + zephir_fetch_params(1, 1, 0, &name_param); + zephir_get_strval(&name, name_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("componentsNames"), PH_NOISY_CC | PH_READONLY); - RETURN_MM_BOOL(zephir_array_isset(&_0, &componentName)); + ZEPHIR_OBS_VAR(&form); + zephir_read_property(&_0, this_ptr, ZEND_STRL("forms"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(!(zephir_array_isset_fetch(&form, &_0, &name, 0)))) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_forms_exception_ce); + ZEPHIR_INIT_VAR(&_2$$3); + ZEPHIR_CONCAT_SVS(&_2$$3, "There is no form with name='", &name, "'"); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Forms/Manager.zep", 46); + ZEPHIR_MM_RESTORE(); + return; + } + RETURN_CCTOR(&form); } -static PHP_METHOD(Phalcon_Acl_Adapter_Memory, setNoArgumentsDefaultAction) +static PHP_METHOD(Phalcon_Forms_Manager, has) { - zval *defaultAccess_param = NULL, _0; - zend_long defaultAccess; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *name_param = NULL, _0; + zval name; zval *this_ptr = getThis(); + ZVAL_UNDEF(&name); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(defaultAccess) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &defaultAccess_param); - defaultAccess = zephir_get_intval(defaultAccess_param); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + zephir_get_strval(&name, name_param); - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, defaultAccess); - zephir_update_property_zval(this_ptr, ZEND_STRL("noArgumentsDefaultAction"), &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("forms"), PH_NOISY_CC | PH_READONLY); + RETURN_MM_BOOL(zephir_array_isset(&_0, &name)); } -static PHP_METHOD(Phalcon_Acl_Adapter_Memory, allowOrDeny) +static PHP_METHOD(Phalcon_Forms_Manager, set) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *roleName_param = NULL, *componentName_param = NULL, *access, access_sub, *action, action_sub, *func = NULL, func_sub, __$null, accessList, accessName, accessKey, _0, _3, _6, _1$$3, _4$$4, *_7$$5, _8$$5, *_13$$5, _14$$5, _9$$7, _10$$7, _11$$9, _12$$9, _15$$16, _16$$16; - zval roleName, componentName, _2$$3, _5$$4; + zval *name_param = NULL, *form, form_sub; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&roleName); - ZVAL_UNDEF(&componentName); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&access_sub); - ZVAL_UNDEF(&action_sub); - ZVAL_UNDEF(&func_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&accessList); - ZVAL_UNDEF(&accessName); - ZVAL_UNDEF(&accessKey); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_14$$5); - ZVAL_UNDEF(&_9$$7); - ZVAL_UNDEF(&_10$$7); - ZVAL_UNDEF(&_11$$9); - ZVAL_UNDEF(&_12$$9); - ZVAL_UNDEF(&_15$$16); - ZVAL_UNDEF(&_16$$16); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&form_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(4, 5) - Z_PARAM_STR(roleName) - Z_PARAM_STR(componentName) - Z_PARAM_ZVAL(access) - Z_PARAM_ZVAL(action) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(func) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(name) + Z_PARAM_OBJECT_OF_CLASS(form, phalcon_forms_form_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 4, 1, &roleName_param, &componentName_param, &access, &action, &func); - zephir_get_strval(&roleName, roleName_param); - zephir_get_strval(&componentName, componentName_param); - if (!func) { - func = &func_sub; - func = &__$null; + zephir_fetch_params(1, 2, 0, &name_param, &form); + zephir_get_strval(&name, name_param); + + + zephir_update_property_array(this_ptr, SL("forms"), &name, form); + RETURN_THIS(); +} + +zend_object *zephir_init_properties_Phalcon_Forms_Manager(zend_class_entry *class_type) +{ + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("forms"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("forms"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); } +} - zephir_read_property(&_0, this_ptr, ZEND_STRL("rolesNames"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(!(zephir_array_isset(&_0, &roleName)))) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_acl_exception_ce); - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_CONCAT_SVS(&_2$$3, "Role '", &roleName, "' does not exist in the ACL"); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Acl/Adapter/Memory.zep", 829); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_read_property(&_3, this_ptr, ZEND_STRL("componentsNames"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(!(zephir_array_isset(&_3, &componentName)))) { - ZEPHIR_INIT_VAR(&_4$$4); - object_init_ex(&_4$$4, phalcon_acl_exception_ce); - ZEPHIR_INIT_VAR(&_5$$4); - ZEPHIR_CONCAT_SVS(&_5$$4, "Component '", &componentName, "' does not exist in the ACL"); - ZEPHIR_CALL_METHOD(NULL, &_4$$4, "__construct", NULL, 8, &_5$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_4$$4, "phalcon/Acl/Adapter/Memory.zep", 835); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_read_property(&_6, this_ptr, ZEND_STRL("accessList"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&accessList, &_6); - if (Z_TYPE_P(access) == IS_ARRAY) { - zephir_is_iterable(access, 0, "phalcon/Acl/Adapter/Memory.zep", 852); - if (Z_TYPE_P(access) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(access), _7$$5) - { - ZEPHIR_INIT_NVAR(&accessName); - ZVAL_COPY(&accessName, _7$$5); - ZEPHIR_INIT_NVAR(&accessKey); - ZEPHIR_CONCAT_VSV(&accessKey, &componentName, "!", &accessName); - if (UNEXPECTED(!(zephir_array_isset(&accessList, &accessKey)))) { - ZEPHIR_INIT_NVAR(&_9$$7); - object_init_ex(&_9$$7, phalcon_acl_exception_ce); - ZEPHIR_INIT_NVAR(&_10$$7); - ZEPHIR_CONCAT_SVSVS(&_10$$7, "Access '", &accessName, "' does not exist in component '", &componentName, "'"); - ZEPHIR_CALL_METHOD(NULL, &_9$$7, "__construct", NULL, 8, &_10$$7); - zephir_check_call_status(); - zephir_throw_exception_debug(&_9$$7, "phalcon/Acl/Adapter/Memory.zep", 848); - ZEPHIR_MM_RESTORE(); - return; - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, access, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_8$$5, access, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_8$$5)) { - break; - } - ZEPHIR_CALL_METHOD(&accessName, access, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&accessKey); - ZEPHIR_CONCAT_VSV(&accessKey, &componentName, "!", &accessName); - if (UNEXPECTED(!(zephir_array_isset(&accessList, &accessKey)))) { - ZEPHIR_INIT_NVAR(&_11$$9); - object_init_ex(&_11$$9, phalcon_acl_exception_ce); - ZEPHIR_INIT_NVAR(&_12$$9); - ZEPHIR_CONCAT_SVSVS(&_12$$9, "Access '", &accessName, "' does not exist in component '", &componentName, "'"); - ZEPHIR_CALL_METHOD(NULL, &_11$$9, "__construct", NULL, 8, &_12$$9); - zephir_check_call_status(); - zephir_throw_exception_debug(&_11$$9, "phalcon/Acl/Adapter/Memory.zep", 848); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CALL_METHOD(NULL, access, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&accessName); - zephir_is_iterable(access, 0, "phalcon/Acl/Adapter/Memory.zep", 860); - if (Z_TYPE_P(access) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(access), _13$$5) - { - ZEPHIR_INIT_NVAR(&accessName); - ZVAL_COPY(&accessName, _13$$5); - ZEPHIR_INIT_NVAR(&accessKey); - ZEPHIR_CONCAT_VSVSV(&accessKey, &roleName, "!", &componentName, "!", &accessName); - zephir_update_property_array(this_ptr, SL("access"), &accessKey, action); - if (Z_TYPE_P(func) != IS_NULL) { - zephir_update_property_array(this_ptr, SL("func"), &accessKey, func); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, access, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_14$$5, access, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_14$$5)) { - break; - } - ZEPHIR_CALL_METHOD(&accessName, access, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&accessKey); - ZEPHIR_CONCAT_VSVSV(&accessKey, &roleName, "!", &componentName, "!", &accessName); - zephir_update_property_array(this_ptr, SL("access"), &accessKey, action); - if (Z_TYPE_P(func) != IS_NULL) { - zephir_update_property_array(this_ptr, SL("func"), &accessKey, func); - } - ZEPHIR_CALL_METHOD(NULL, access, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&accessName); - } else { - if (!ZEPHIR_IS_STRING(access, "*")) { - ZEPHIR_INIT_NVAR(&accessKey); - ZEPHIR_CONCAT_VSV(&accessKey, &componentName, "!", access); - if (UNEXPECTED(!(zephir_array_isset(&accessList, &accessKey)))) { - ZEPHIR_INIT_VAR(&_15$$16); - object_init_ex(&_15$$16, phalcon_acl_exception_ce); - ZEPHIR_INIT_VAR(&_16$$16); - ZEPHIR_CONCAT_SVSVS(&_16$$16, "Access '", access, "' does not exist in component '", &componentName, "'"); - ZEPHIR_CALL_METHOD(NULL, &_15$$16, "__construct", NULL, 8, &_16$$16); - zephir_check_call_status(); - zephir_throw_exception_debug(&_15$$16, "phalcon/Acl/Adapter/Memory.zep", 868); - ZEPHIR_MM_RESTORE(); - return; - } - } - ZEPHIR_INIT_NVAR(&accessKey); - ZEPHIR_CONCAT_VSVSV(&accessKey, &roleName, "!", &componentName, "!", access); - zephir_update_property_array(this_ptr, SL("access"), &accessKey, action); - if (Z_TYPE_P(func) != IS_NULL) { - zephir_update_property_array(this_ptr, SL("func"), &accessKey, func); - } - } - ZEPHIR_MM_RESTORE(); + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_AbstractElement) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Forms\\Element, AbstractElement, phalcon, forms_element_abstractelement, phalcon_forms_element_abstractelement_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_forms_element_abstractelement_ce, SL("attributes"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_forms_element_abstractelement_ce, SL("filters"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_forms_element_abstractelement_ce, SL("form"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_forms_element_abstractelement_ce, SL("label"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_forms_element_abstractelement_ce, SL("messages"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_forms_element_abstractelement_ce, SL("name"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_forms_element_abstractelement_ce, SL("options"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_forms_element_abstractelement_ce, SL("validators"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_forms_element_abstractelement_ce, SL("value"), ZEND_ACC_PROTECTED); + phalcon_forms_element_abstractelement_ce->create_object = zephir_init_properties_Phalcon_Forms_Element_AbstractElement; + + zend_class_implements(phalcon_forms_element_abstractelement_ce, 1, phalcon_forms_element_elementinterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Acl_Adapter_Memory, canAccess) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, __construct) { - zval usedRoleToInherits, checkRoleToInherits; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL, *_6 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *roleName_param = NULL, *componentName_param = NULL, *access_param = NULL, __$true, accessList, checkRoleToInherit, usedRoleToInherit, _0, _1$$6, _2$$6, *_3$$6, _4$$6, _7$$9, _8$$9, _9$$9, _10$$9, _11$$14, _12$$14, *_13$$14, _14$$14; - zval roleName, componentName, access, accessKey; + zval attributes; + zval *name_param = NULL, *attributes_param = NULL, _0, _1; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&roleName); - ZVAL_UNDEF(&componentName); - ZVAL_UNDEF(&access); - ZVAL_UNDEF(&accessKey); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&accessList); - ZVAL_UNDEF(&checkRoleToInherit); - ZVAL_UNDEF(&usedRoleToInherit); + ZVAL_UNDEF(&name); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$6); - ZVAL_UNDEF(&_2$$6); - ZVAL_UNDEF(&_4$$6); - ZVAL_UNDEF(&_7$$9); - ZVAL_UNDEF(&_8$$9); - ZVAL_UNDEF(&_9$$9); - ZVAL_UNDEF(&_10$$9); - ZVAL_UNDEF(&_11$$14); - ZVAL_UNDEF(&_12$$14); - ZVAL_UNDEF(&_14$$14); - ZVAL_UNDEF(&usedRoleToInherits); - ZVAL_UNDEF(&checkRoleToInherits); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(roleName) - Z_PARAM_STR(componentName) - Z_PARAM_STR(access) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(name) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &roleName_param, &componentName_param, &access_param); - zephir_get_strval(&roleName, roleName_param); - zephir_get_strval(&componentName, componentName_param); - zephir_get_strval(&access, access_param); + zephir_fetch_params(1, 1, 1, &name_param, &attributes_param); + zephir_get_strval(&name, name_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); + } - ZEPHIR_OBS_VAR(&accessList); - zephir_read_property(&accessList, this_ptr, ZEND_STRL("access"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(&accessKey); - ZEPHIR_CONCAT_VSVSV(&accessKey, &roleName, "!", &componentName, "!", &access); - if (zephir_array_isset(&accessList, &accessKey)) { - RETURN_CTOR(&accessKey); - } - ZEPHIR_INIT_NVAR(&accessKey); - ZEPHIR_CONCAT_VSVS(&accessKey, &roleName, "!", &componentName, "!*"); - if (zephir_array_isset(&accessList, &accessKey)) { - RETURN_CTOR(&accessKey); - } - ZEPHIR_INIT_NVAR(&accessKey); - ZEPHIR_CONCAT_VS(&accessKey, &roleName, "!*!*"); - if (zephir_array_isset(&accessList, &accessKey)) { - RETURN_CTOR(&accessKey); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("roleInherits"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset(&_0, &roleName)) { - ZEPHIR_INIT_VAR(&checkRoleToInherits); - array_init(&checkRoleToInherits); - zephir_read_property(&_1$$6, this_ptr, ZEND_STRL("roleInherits"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_2$$6, &_1$$6, &roleName, PH_NOISY | PH_READONLY, "phalcon/Acl/Adapter/Memory.zep", 929); - zephir_is_iterable(&_2$$6, 0, "phalcon/Acl/Adapter/Memory.zep", 933); - if (Z_TYPE_P(&_2$$6) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_2$$6), _3$$6) - { - ZEPHIR_INIT_NVAR(&usedRoleToInherit); - ZVAL_COPY(&usedRoleToInherit, _3$$6); - ZEPHIR_MAKE_REF(&checkRoleToInherits); - ZEPHIR_CALL_FUNCTION(NULL, "array_push", &_5, 146, &checkRoleToInherits, &usedRoleToInherit); - ZEPHIR_UNREF(&checkRoleToInherits); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_2$$6, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_4$$6, &_2$$6, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_4$$6)) { - break; - } - ZEPHIR_CALL_METHOD(&usedRoleToInherit, &_2$$6, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_MAKE_REF(&checkRoleToInherits); - ZEPHIR_CALL_FUNCTION(NULL, "array_push", &_5, 146, &checkRoleToInherits, &usedRoleToInherit); - ZEPHIR_UNREF(&checkRoleToInherits); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_2$$6, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&usedRoleToInherit); - ZEPHIR_INIT_VAR(&usedRoleToInherits); - array_init(&usedRoleToInherits); - while (1) { - if (!(!(ZEPHIR_IS_EMPTY(&checkRoleToInherits)))) { - break; - } - ZEPHIR_MAKE_REF(&checkRoleToInherits); - ZEPHIR_CALL_FUNCTION(&checkRoleToInherit, "array_shift", &_6, 24, &checkRoleToInherits); - ZEPHIR_UNREF(&checkRoleToInherits); - zephir_check_call_status(); - if (zephir_array_isset(&usedRoleToInherits, &checkRoleToInherit)) { - continue; - } - zephir_array_update_zval(&usedRoleToInherits, &checkRoleToInherit, &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_7$$9); - ZEPHIR_CONCAT_VSVSV(&_7$$9, &checkRoleToInherit, "!", &componentName, "!", &access); - zephir_get_strval(&accessKey, &_7$$9); - if (zephir_array_isset(&accessList, &accessKey)) { - RETURN_CTOR(&accessKey); - } - ZEPHIR_INIT_NVAR(&_8$$9); - ZEPHIR_CONCAT_VSVS(&_8$$9, &checkRoleToInherit, "!", &componentName, "!*"); - zephir_get_strval(&accessKey, &_8$$9); - if (zephir_array_isset(&accessList, &accessKey)) { - RETURN_CTOR(&accessKey); - } - ZEPHIR_INIT_NVAR(&_9$$9); - ZEPHIR_CONCAT_VS(&_9$$9, &checkRoleToInherit, "!*!*"); - zephir_get_strval(&accessKey, &_9$$9); - if (zephir_array_isset(&accessList, &accessKey)) { - RETURN_CTOR(&accessKey); - } - zephir_read_property(&_10$$9, this_ptr, ZEND_STRL("roleInherits"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset(&_10$$9, &checkRoleToInherit)) { - zephir_read_property(&_11$$14, this_ptr, ZEND_STRL("roleInherits"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_12$$14, &_11$$14, &checkRoleToInherit, PH_NOISY | PH_READONLY, "phalcon/Acl/Adapter/Memory.zep", 976); - zephir_is_iterable(&_12$$14, 0, "phalcon/Acl/Adapter/Memory.zep", 979); - if (Z_TYPE_P(&_12$$14) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_12$$14), _13$$14) - { - ZEPHIR_INIT_NVAR(&usedRoleToInherit); - ZVAL_COPY(&usedRoleToInherit, _13$$14); - ZEPHIR_MAKE_REF(&checkRoleToInherits); - ZEPHIR_CALL_FUNCTION(NULL, "array_push", &_5, 146, &checkRoleToInherits, &usedRoleToInherit); - ZEPHIR_UNREF(&checkRoleToInherits); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_12$$14, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_14$$14, &_12$$14, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_14$$14)) { - break; - } - ZEPHIR_CALL_METHOD(&usedRoleToInherit, &_12$$14, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_MAKE_REF(&checkRoleToInherits); - ZEPHIR_CALL_FUNCTION(NULL, "array_push", &_5, 146, &checkRoleToInherits, &usedRoleToInherit); - ZEPHIR_UNREF(&checkRoleToInherits); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_12$$14, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&usedRoleToInherit); - } - } + ZEPHIR_INIT_VAR(&_0); + zephir_fast_trim(&_0, &name, NULL , ZEPHIR_TRIM_BOTH); + zephir_get_strval(&name, &_0); + if (UNEXPECTED(ZEPHIR_IS_EMPTY(&name))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_InvalidArgumentException, "Form element name is required", "phalcon/Forms/Element/AbstractElement.zep", 84); + return; } - RETURN_MM_BOOL(0); + zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); + zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &attributes); + ZEPHIR_INIT_VAR(&_1); + object_init_ex(&_1, phalcon_messages_messages_ce); + ZEPHIR_CALL_METHOD(NULL, &_1, "__construct", NULL, 9); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("messages"), &_1); + ZEPHIR_MM_RESTORE(); } +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, __toString) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Annotations_Annotation) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Annotations, Annotation, phalcon, annotations_annotation, phalcon_annotations_annotation_method_entry, 0); - - zend_declare_property_null(phalcon_annotations_annotation_ce, SL("arguments"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_annotations_annotation_ce, SL("exprArguments"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_annotations_annotation_ce, SL("name"), ZEND_ACC_PROTECTED); - phalcon_annotations_annotation_ce->create_object = zephir_init_properties_Phalcon_Annotations_Annotation; + ZEPHIR_MM_GROW(); - return SUCCESS; + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "render", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Annotations_Annotation, __construct) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, addFilter) { + zval _1$$5, _2$$6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *reflectionData_param = NULL, name, exprArguments, argument, resolvedArgument, _0$$3, *_1$$4, _2$$4, _3$$5, _5$$8; - zval reflectionData, arguments; + zval *filter_param = NULL, filters, _0; + zval filter; zval *this_ptr = getThis(); - ZVAL_UNDEF(&reflectionData); - ZVAL_UNDEF(&arguments); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&exprArguments); - ZVAL_UNDEF(&argument); - ZVAL_UNDEF(&resolvedArgument); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_5$$8); + ZVAL_UNDEF(&filter); + ZVAL_UNDEF(&filters); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$5); + ZVAL_UNDEF(&_2$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(reflectionData) + Z_PARAM_STR(filter) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &reflectionData_param); - ZEPHIR_OBS_COPY_OR_DUP(&reflectionData, reflectionData_param); + zephir_fetch_params(1, 1, 0, &filter_param); + zephir_get_strval(&filter, filter_param); - ZEPHIR_OBS_VAR(&name); - if (zephir_array_isset_string_fetch(&name, &reflectionData, SL("name"), 0)) { - zephir_array_fetch_string(&_0$$3, &reflectionData, SL("name"), PH_NOISY | PH_READONLY, "phalcon/Annotations/Annotation.zep", 48); - zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &_0$$3); - } - ZEPHIR_OBS_VAR(&exprArguments); - if (zephir_array_isset_string_fetch(&exprArguments, &reflectionData, SL("arguments"), 0)) { - ZEPHIR_INIT_VAR(&arguments); - array_init(&arguments); - zephir_is_iterable(&exprArguments, 0, "phalcon/Annotations/Annotation.zep", 69); - if (Z_TYPE_P(&exprArguments) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&exprArguments), _1$$4) - { - ZEPHIR_INIT_NVAR(&argument); - ZVAL_COPY(&argument, _1$$4); - zephir_array_fetch_string(&_3$$5, &argument, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Annotations/Annotation.zep", 60); - ZEPHIR_CALL_METHOD(&resolvedArgument, this_ptr, "getexpression", &_4, 0, &_3$$5); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&name); - if (zephir_array_isset_string_fetch(&name, &argument, SL("name"), 0)) { - zephir_array_update_zval(&arguments, &name, &resolvedArgument, PH_COPY | PH_SEPARATE); - } else { - zephir_array_append(&arguments, &resolvedArgument, PH_SEPARATE, "phalcon/Annotations/Annotation.zep", 65); - } - } ZEND_HASH_FOREACH_END(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("filters"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&filters, &_0); + if (Z_TYPE_P(&filters) == IS_ARRAY) { + zephir_update_property_array_append(this_ptr, SL("filters"), &filter); + } else { + if (Z_TYPE_P(&filters) == IS_STRING) { + ZEPHIR_INIT_VAR(&_1$$5); + zephir_create_array(&_1$$5, 2, 0); + zephir_array_fast_append(&_1$$5, &filters); + zephir_array_fast_append(&_1$$5, &filter); + zephir_update_property_zval(this_ptr, ZEND_STRL("filters"), &_1$$5); } else { - ZEPHIR_CALL_METHOD(NULL, &exprArguments, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2$$4, &exprArguments, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2$$4)) { - break; - } - ZEPHIR_CALL_METHOD(&argument, &exprArguments, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_fetch_string(&_5$$8, &argument, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Annotations/Annotation.zep", 60); - ZEPHIR_CALL_METHOD(&resolvedArgument, this_ptr, "getexpression", &_4, 0, &_5$$8); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&name); - if (zephir_array_isset_string_fetch(&name, &argument, SL("name"), 0)) { - zephir_array_update_zval(&arguments, &name, &resolvedArgument, PH_COPY | PH_SEPARATE); - } else { - zephir_array_append(&arguments, &resolvedArgument, PH_SEPARATE, "phalcon/Annotations/Annotation.zep", 65); - } - ZEPHIR_CALL_METHOD(NULL, &exprArguments, "next", NULL, 0); - zephir_check_call_status(); - } + ZEPHIR_INIT_VAR(&_2$$6); + zephir_create_array(&_2$$6, 1, 0); + zephir_array_fast_append(&_2$$6, &filter); + zephir_update_property_zval(this_ptr, ZEND_STRL("filters"), &_2$$6); } - ZEPHIR_INIT_NVAR(&argument); - zephir_update_property_zval(this_ptr, ZEND_STRL("arguments"), &arguments); - zephir_update_property_zval(this_ptr, ZEND_STRL("exprArguments"), &exprArguments); } - ZEPHIR_MM_RESTORE(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Annotations_Annotation, getArgument) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, addValidator) { - zval *position, position_sub, argument, _0; + zval *validator, validator_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&position_sub); - ZVAL_UNDEF(&argument); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&validator_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(position) + Z_PARAM_OBJECT_OF_CLASS(validator, phalcon_validation_validatorinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &position); + zephir_fetch_params_without_memory_grow(1, 0, &validator); - zephir_read_property(&_0, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&argument, &_0, position, 1)) { - RETURN_CTORW(&argument); - } - RETURN_NULL(); + zephir_update_property_array_append(this_ptr, SL("validators"), validator); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Annotations_Annotation, getArguments) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, addValidators) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_bool merge; + zval *validators_param = NULL, *merge_param = NULL, _0$$3, _1$$3; + zval validators; zval *this_ptr = getThis(); + ZVAL_UNDEF(&validators); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(validators) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(merge) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "arguments"); -} - -static PHP_METHOD(Phalcon_Annotations_Annotation, getExprArguments) -{ - zval *this_ptr = getThis(); - + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &validators_param, &merge_param); + ZEPHIR_OBS_COPY_OR_DUP(&validators, validators_param); + if (!merge_param) { + merge = 1; + } else { + merge = zephir_get_boolval(merge_param); + } - RETURN_MEMBER(getThis(), "exprArguments"); + if (merge) { + ZEPHIR_INIT_VAR(&_0$$3); + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("validators"), PH_NOISY_CC | PH_READONLY); + zephir_fast_array_merge(&_0$$3, &_1$$3, &validators); + ZEPHIR_CPY_WRT(&validators, &_0$$3); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("validators"), &validators); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Annotations_Annotation, getExpression) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, appendMessage) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *expr_param = NULL, value, item, resolvedItem, arrayValue, name, type, _0$$7, *_1$$7, _2$$7, _3$$8, _5$$11, _6$$15, _7$$15; - zval expr; + zval *message, message_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&item); - ZVAL_UNDEF(&resolvedItem); - ZVAL_UNDEF(&arrayValue); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&_0$$7); - ZVAL_UNDEF(&_2$$7); - ZVAL_UNDEF(&_3$$8); - ZVAL_UNDEF(&_5$$11); - ZVAL_UNDEF(&_6$$15); - ZVAL_UNDEF(&_7$$15); + ZVAL_UNDEF(&message_sub); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(expr) + Z_PARAM_OBJECT_OF_CLASS(message, phalcon_messages_messageinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &expr_param); - ZEPHIR_OBS_COPY_OR_DUP(&expr, expr_param); - + zephir_fetch_params(1, 1, 0, &message); - ZEPHIR_OBS_VAR(&type); - zephir_array_fetch_string(&type, &expr, SL("type"), PH_NOISY, "phalcon/Annotations/Annotation.zep", 111); - do { - if (ZEPHIR_IS_LONG(&type, 301) || ZEPHIR_IS_LONG(&type, 302) || ZEPHIR_IS_LONG(&type, 303) || ZEPHIR_IS_LONG(&type, 307)) { - ZEPHIR_OBS_VAR(&value); - zephir_array_fetch_string(&value, &expr, SL("value"), PH_NOISY, "phalcon/Annotations/Annotation.zep", 118); - break; - } - if (ZEPHIR_IS_LONG(&type, 304)) { - ZEPHIR_INIT_NVAR(&value); - ZVAL_NULL(&value); - break; - } - if (ZEPHIR_IS_LONG(&type, 305)) { - ZEPHIR_INIT_NVAR(&value); - ZVAL_BOOL(&value, 0); - break; - } - if (ZEPHIR_IS_LONG(&type, 306)) { - ZEPHIR_INIT_NVAR(&value); - ZVAL_BOOL(&value, 1); - break; - } - if (ZEPHIR_IS_LONG(&type, 308)) { - ZEPHIR_INIT_VAR(&arrayValue); - array_init(&arrayValue); - zephir_array_fetch_string(&_0$$7, &expr, SL("items"), PH_NOISY | PH_READONLY, "phalcon/Annotations/Annotation.zep", 136); - zephir_is_iterable(&_0$$7, 0, "phalcon/Annotations/Annotation.zep", 148); - if (Z_TYPE_P(&_0$$7) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0$$7), _1$$7) - { - ZEPHIR_INIT_NVAR(&item); - ZVAL_COPY(&item, _1$$7); - zephir_array_fetch_string(&_3$$8, &item, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Annotations/Annotation.zep", 139); - ZEPHIR_CALL_METHOD(&resolvedItem, this_ptr, "getexpression", &_4, 154, &_3$$8); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&name); - if (zephir_array_isset_string_fetch(&name, &item, SL("name"), 0)) { - zephir_array_update_zval(&arrayValue, &name, &resolvedItem, PH_COPY | PH_SEPARATE); - } else { - zephir_array_append(&arrayValue, &resolvedItem, PH_SEPARATE, "phalcon/Annotations/Annotation.zep", 144); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_0$$7, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2$$7, &_0$$7, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2$$7)) { - break; - } - ZEPHIR_CALL_METHOD(&item, &_0$$7, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_fetch_string(&_5$$11, &item, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Annotations/Annotation.zep", 139); - ZEPHIR_CALL_METHOD(&resolvedItem, this_ptr, "getexpression", &_4, 154, &_5$$11); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&name); - if (zephir_array_isset_string_fetch(&name, &item, SL("name"), 0)) { - zephir_array_update_zval(&arrayValue, &name, &resolvedItem, PH_COPY | PH_SEPARATE); - } else { - zephir_array_append(&arrayValue, &resolvedItem, PH_SEPARATE, "phalcon/Annotations/Annotation.zep", 144); - } - ZEPHIR_CALL_METHOD(NULL, &_0$$7, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&item); - RETURN_CCTOR(&arrayValue); - } - if (ZEPHIR_IS_LONG(&type, 300)) { - object_init_ex(return_value, phalcon_annotations_annotation_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 155, &expr); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_INIT_VAR(&_6$$15); - object_init_ex(&_6$$15, phalcon_annotations_exception_ce); - ZEPHIR_INIT_VAR(&_7$$15); - ZEPHIR_CONCAT_SVS(&_7$$15, "The expression ", &type, " is unknown"); - ZEPHIR_CALL_METHOD(NULL, &_6$$15, "__construct", NULL, 8, &_7$$15); - zephir_check_call_status(); - zephir_throw_exception_debug(&_6$$15, "phalcon/Annotations/Annotation.zep", 154); - ZEPHIR_MM_RESTORE(); - return; - } while(0); - RETURN_CCTOR(&value); + zephir_read_property(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "appendmessage", NULL, 0, message); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Annotations_Annotation, getName) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, clear) { + zval form, _0, name, value; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_1 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&form); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&value); + + ZEPHIR_MM_GROW(); - RETURN_MEMBER(getThis(), "name"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("form"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&form, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&name, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("value"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&value, &_0); + if (Z_TYPE_P(&form) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(NULL, &form, "clear", NULL, 0, &name); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_CE_STATIC(NULL, phalcon_tag_ce, "setdefault", &_1, 0, &name, &value); + zephir_check_call_status(); + } + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Annotations_Annotation, getNamedArgument) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getAttribute) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, argument, _0; - zval name; + zval *attribute_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, attributes, value, _0; + zval attribute; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&argument); + ZVAL_UNDEF(&attribute); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&value); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(attribute) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(defaultValue) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); + zephir_fetch_params(1, 1, 1, &attribute_param, &defaultValue); + zephir_get_strval(&attribute, attribute_param); + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; } - zephir_read_property(&_0, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&argument, &_0, &name, 1)) { - RETURN_CTOR(&argument); + zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&attributes, &_0); + if (!(zephir_array_isset_fetch(&value, &attributes, &attribute, 1))) { + RETVAL_ZVAL(defaultValue, 1, 0); + RETURN_MM(); } - RETURN_MM_NULL(); + RETURN_CTOR(&value); } -static PHP_METHOD(Phalcon_Annotations_Annotation, getNamedParameter) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getAttributes) { + zval attributes, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL; - zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_0); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getnamedargument", NULL, 0, &name); - zephir_check_call_status(); - RETURN_MM(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&attributes, &_0); + RETURN_CCTOR(&attributes); } -static PHP_METHOD(Phalcon_Annotations_Annotation, hasArgument) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getDefault) { - zval *position, position_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&position_sub); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(position) - ZEND_PARSE_PARAMETERS_END(); -#endif - zephir_fetch_params_without_memory_grow(1, 0, &position); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); - RETURN_BOOL(zephir_array_isset(&_0, position)); + RETURN_MEMBER(getThis(), "value"); } -static PHP_METHOD(Phalcon_Annotations_Annotation, numberArguments) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getFilters) { - zval _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); - RETURN_LONG(zephir_fast_count_int(&_0)); + RETURN_MEMBER(getThis(), "filters"); } -zend_object *zephir_init_properties_Phalcon_Annotations_Annotation(zend_class_entry *class_type) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getForm) { - zval _0, _2, _1$$3, _3$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - + zval *this_ptr = getThis(); - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("exprArguments"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("exprArguments"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("arguments"), &_3$$4); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } + + + RETURN_MEMBER(getThis(), "form"); } +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getLabel) +{ + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H -#endif + RETURN_MEMBER(getThis(), "label"); +} +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getMessages) +{ + zval *this_ptr = getThis(); + RETURN_MEMBER(getThis(), "messages"); +} -ZEPHIR_INIT_CLASS(Phalcon_Annotations_AnnotationsFactory) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getName) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Annotations, AnnotationsFactory, phalcon, annotations_annotationsfactory, phalcon_factory_abstractfactory_ce, phalcon_annotations_annotationsfactory_method_entry, 0); + zval *this_ptr = getThis(); - zend_declare_property_string(phalcon_annotations_annotationsfactory_ce, SL("exception"), "Phalcon\\Annotations\\Exception", ZEND_ACC_PROTECTED); - return SUCCESS; + + + RETURN_MEMBER(getThis(), "name"); } -static PHP_METHOD(Phalcon_Annotations_AnnotationsFactory, __construct) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getUserOption) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *services_param = NULL; - zval services; + zval *option_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, value, _0; + zval option; zval *this_ptr = getThis(); - ZVAL_UNDEF(&services); + ZVAL_UNDEF(&option); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(option) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(services) + Z_PARAM_ZVAL_OR_NULL(defaultValue) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &services_param); - if (!services_param) { - ZEPHIR_INIT_VAR(&services); - array_init(&services); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&services, services_param); + zephir_fetch_params(1, 1, 1, &option_param, &defaultValue); + zephir_get_strval(&option, option_param); + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "init", NULL, 0, &services); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&value, &_0, &option, 1))) { + RETVAL_ZVAL(defaultValue, 1, 0); + RETURN_MM(); + } + RETURN_CTOR(&value); } -static PHP_METHOD(Phalcon_Annotations_AnnotationsFactory, load) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getUserOptions) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_1 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *config = NULL, config_sub, name, options, _0, _2, _3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&config_sub); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(config) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &config); - ZEPHIR_SEPARATE_PARAM(config); + RETURN_MEMBER(getThis(), "options"); +} +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getValidators) +{ + zval *this_ptr = getThis(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "checkconfig", NULL, 0, config); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(config, &_0); - ZEPHIR_OBS_VAR(&name); - zephir_array_fetch_string(&name, config, SL("adapter"), PH_NOISY, "phalcon/Annotations/AnnotationsFactory.zep", 49); - zephir_array_unset_string(config, SL("adapter"), PH_SEPARATE); - ZEPHIR_INIT_VAR(&_2); - array_init(&_2); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "options"); - ZEPHIR_CALL_CE_STATIC(&options, phalcon_helper_arr_ce, "get", &_1, 16, config, &_3, &_2); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "newinstance", NULL, 0, &name, &options); - zephir_check_call_status(); - RETURN_MM(); + + + RETURN_MEMBER(getThis(), "validators"); } -static PHP_METHOD(Phalcon_Annotations_AnnotationsFactory, newInstance) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getValue) { + zval name, _0, form, value, _1, _4$$5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_2 = NULL, *_3 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval options, _0; - zval *name_param = NULL, *options_param = NULL, definition; - zval name; zval *this_ptr = getThis(); ZVAL_UNDEF(&name); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&options); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&form); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_4$$5); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &name_param, &options_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&name, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("form"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&form, &_0); + ZEPHIR_INIT_VAR(&value); + ZVAL_NULL(&value); + if (Z_TYPE_P(&form) == IS_OBJECT) { + ZEPHIR_RETURN_CALL_METHOD(&form, "getvalue", NULL, 0, &name); + zephir_check_call_status(); + RETURN_MM(); } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); + ZEPHIR_CALL_CE_STATIC(&_1, phalcon_tag_ce, "hasvalue", &_2, 0, &name); + zephir_check_call_status(); + if (zephir_is_true(&_1)) { + ZEPHIR_CALL_CE_STATIC(&value, phalcon_tag_ce, "getvalue", &_3, 0, &name); + zephir_check_call_status(); } - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + if (Z_TYPE_P(&value) == IS_NULL) { + zephir_read_property(&_4$$5, this_ptr, ZEND_STRL("value"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&value, &_4$$5); } - - - ZEPHIR_CALL_METHOD(&definition, this_ptr, "getservice", NULL, 0, &name); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 1, 0); - zephir_array_fast_append(&_0, &options); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(return_value, &definition, &_0); - zephir_check_call_status(); - RETURN_MM(); + RETURN_CCTOR(&value); } -static PHP_METHOD(Phalcon_Annotations_AnnotationsFactory, getAdapters) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, hasMessages) { + zval _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); - zephir_create_array(return_value, 3, 0); - add_assoc_stringl_ex(return_value, SL("apcu"), SL("Phalcon\\Annotations\\Adapter\\Apcu")); - add_assoc_stringl_ex(return_value, SL("memory"), SL("Phalcon\\Annotations\\Adapter\\Memory")); - add_assoc_stringl_ex(return_value, SL("stream"), SL("Phalcon\\Annotations\\Adapter\\Stream")); - return; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Annotations_Collection) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Annotations, Collection, phalcon, annotations_collection, phalcon_annotations_collection_method_entry, 0); - zend_declare_property_null(phalcon_annotations_collection_ce, SL("annotations"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_annotations_collection_ce, SL("position"), 0, ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_annotations_collection_ce, 1, zend_ce_iterator); - zend_class_implements(phalcon_annotations_collection_ce, 1, zend_ce_countable); - return SUCCESS; + zephir_read_property(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); + RETURN_BOOL(zephir_fast_count_int(&_0) > 0); } -static PHP_METHOD(Phalcon_Annotations_Collection, __construct) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, label) { + zend_bool _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; + zephir_fcall_cache_entry *_1 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *reflectionData_param = NULL, annotations, annotationData, *_0, _1, _2$$3, _4$$4; - zval reflectionData; + zval *attributes_param = NULL, internalAttributes, label, name, code, _2, _3, _0$$3, _5$$5, _6$$6; + zval attributes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&reflectionData); - ZVAL_UNDEF(&annotations); - ZVAL_UNDEF(&annotationData); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(reflectionData) + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&internalAttributes); + ZVAL_UNDEF(&label); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&code); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_6$$6); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &reflectionData_param); - if (!reflectionData_param) { - ZEPHIR_INIT_VAR(&reflectionData); - array_init(&reflectionData); + zephir_fetch_params(1, 0, 1, &attributes_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); } else { - zephir_get_arrval(&reflectionData, reflectionData_param); + zephir_get_arrval(&attributes, attributes_param); } - ZEPHIR_INIT_VAR(&annotations); - array_init(&annotations); - zephir_is_iterable(&reflectionData, 0, "phalcon/Annotations/Collection.zep", 58); - if (Z_TYPE_P(&reflectionData) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&reflectionData), _0) - { - ZEPHIR_INIT_NVAR(&annotationData); - ZVAL_COPY(&annotationData, _0); - ZEPHIR_INIT_NVAR(&_2$$3); - object_init_ex(&_2$$3, phalcon_annotations_annotation_ce); - ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", &_3, 155, &annotationData); - zephir_check_call_status(); - zephir_array_append(&annotations, &_2$$3, PH_SEPARATE, "phalcon/Annotations/Collection.zep", 55); - } ZEND_HASH_FOREACH_END(); + ZEPHIR_CALL_METHOD(&internalAttributes, this_ptr, "getattributes", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&name); + if (!(zephir_array_isset_string_fetch(&name, &internalAttributes, SL("id"), 0))) { + zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&name, &_0$$3); + } + if (!(zephir_array_isset_string(&attributes, SL("for")))) { + zephir_array_update_string(&attributes, SL("for"), &name, PH_COPY | PH_SEPARATE); + } + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "", &label, ""); + zephir_concat_self(&code, &_5$$5); } else { - ZEPHIR_CALL_METHOD(NULL, &reflectionData, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &reflectionData, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&annotationData, &reflectionData, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_4$$4); - object_init_ex(&_4$$4, phalcon_annotations_annotation_ce); - ZEPHIR_CALL_METHOD(NULL, &_4$$4, "__construct", &_3, 155, &annotationData); - zephir_check_call_status(); - zephir_array_append(&annotations, &_4$$4, PH_SEPARATE, "phalcon/Annotations/Collection.zep", 55); - ZEPHIR_CALL_METHOD(NULL, &reflectionData, "next", NULL, 0); - zephir_check_call_status(); - } + ZEPHIR_INIT_VAR(&_6$$6); + ZEPHIR_CONCAT_SVS(&_6$$6, ">", &name, ""); + zephir_concat_self(&code, &_6$$6); } - ZEPHIR_INIT_NVAR(&annotationData); - zephir_update_property_zval(this_ptr, ZEND_STRL("annotations"), &annotations); - ZEPHIR_MM_RESTORE(); + RETURN_CCTOR(&code); } -static PHP_METHOD(Phalcon_Annotations_Collection, count) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, prepareAttributes) { - zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool useChecked; + zval *attributes_param = NULL, *useChecked_param = NULL, value, name, mergedAttributes, defaultAttributes, currentValue, _0, _1$$6, _2$$8; + zval attributes; zval *this_ptr = getThis(); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&mergedAttributes); + ZVAL_UNDEF(&defaultAttributes); + ZVAL_UNDEF(¤tValue); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$6); + ZVAL_UNDEF(&_2$$8); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 2) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) + Z_PARAM_BOOL(useChecked) + ZEND_PARSE_PARAMETERS_END(); +#endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 2, &attributes_param, &useChecked_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); + } + if (!useChecked_param) { + useChecked = 0; + } else { + useChecked = zephir_get_boolval(useChecked_param); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("annotations"), PH_NOISY_CC | PH_READONLY); - RETURN_LONG(zephir_fast_count_int(&_0)); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&name, &_0); + zephir_array_update_long(&attributes, 0, &name, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + ZEPHIR_OBS_VAR(&defaultAttributes); + zephir_read_property(&defaultAttributes, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(&mergedAttributes); + zephir_fast_array_merge(&mergedAttributes, &defaultAttributes, &attributes); + ZEPHIR_CALL_METHOD(&value, this_ptr, "getvalue", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&value) != IS_NULL) { + if (useChecked) { + if (zephir_array_isset_string_fetch(¤tValue, &mergedAttributes, SL("value"), 1)) { + if (ZEPHIR_IS_EQUAL(¤tValue, &value)) { + ZEPHIR_INIT_VAR(&_1$$6); + ZVAL_STRING(&_1$$6, "checked"); + zephir_array_update_string(&mergedAttributes, SL("checked"), &_1$$6, PH_COPY | PH_SEPARATE); + } + } else { + if (zephir_is_true(&value)) { + ZEPHIR_INIT_VAR(&_2$$8); + ZVAL_STRING(&_2$$8, "checked"); + zephir_array_update_string(&mergedAttributes, SL("checked"), &_2$$8, PH_COPY | PH_SEPARATE); + } + zephir_array_update_string(&mergedAttributes, SL("value"), &value, PH_COPY | PH_SEPARATE); + } + } else { + zephir_array_update_string(&mergedAttributes, SL("value"), &value, PH_COPY | PH_SEPARATE); + } + } + RETURN_CCTOR(&mergedAttributes); } -static PHP_METHOD(Phalcon_Annotations_Collection, current) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, setAttribute) { - zval annotation, _0, _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *attribute_param = NULL, *value, value_sub; + zval attribute; zval *this_ptr = getThis(); - ZVAL_UNDEF(&annotation); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&attribute); + ZVAL_UNDEF(&value_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(attribute) + Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_END(); +#endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &attribute_param, &value); + zephir_get_strval(&attribute, attribute_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("annotations"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_1, this_ptr, ZEND_STRL("position"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&annotation, &_0, &_1, 1))) { - RETURN_BOOL(0); - } - RETURN_CTORW(&annotation); + + zephir_update_property_array(this_ptr, SL("attributes"), &attribute, value); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Annotations_Collection, get) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, setAttributes) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, annotation, annotations, _0, *_1, _2, _5, _3$$3, _4$$5; - zval name, _6; + zval *attributes_param = NULL; + zval attributes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&annotation); - ZVAL_UNDEF(&annotations); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - zephir_get_strval(&name, name_param); + zephir_fetch_params(1, 1, 0, &attributes_param); + ZEPHIR_OBS_COPY_OR_DUP(&attributes, attributes_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("annotations"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&annotations, &_0); - zephir_is_iterable(&annotations, 0, "phalcon/Annotations/Collection.zep", 98); - if (Z_TYPE_P(&annotations) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&annotations), _1) - { - ZEPHIR_INIT_NVAR(&annotation); - ZVAL_COPY(&annotation, _1); - ZEPHIR_CALL_METHOD(&_3$$3, &annotation, "getname", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_EQUAL(&name, &_3$$3)) { - RETURN_CCTOR(&annotation); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &annotations, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &annotations, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&annotation, &annotations, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_4$$5, &annotation, "getname", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_EQUAL(&name, &_4$$5)) { - RETURN_CCTOR(&annotation); - } - ZEPHIR_CALL_METHOD(NULL, &annotations, "next", NULL, 0); - zephir_check_call_status(); - } + zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &attributes); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, setDefault) +{ + zval *value, value_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&value_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &value); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("value"), value); + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, setFilters) +{ + zend_bool _0; + zval *filters, filters_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&filters_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(filters) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &filters); + + + _0 = Z_TYPE_P(filters) != IS_STRING; + if (_0) { + _0 = Z_TYPE_P(filters) != IS_ARRAY; } - ZEPHIR_INIT_NVAR(&annotation); - ZEPHIR_INIT_VAR(&_5); - object_init_ex(&_5, phalcon_annotations_exception_ce); - ZEPHIR_INIT_VAR(&_6); - ZEPHIR_CONCAT_SVS(&_6, "Collection doesn't have an annotation called '", &name, "'"); - ZEPHIR_CALL_METHOD(NULL, &_5, "__construct", NULL, 8, &_6); - zephir_check_call_status(); - zephir_throw_exception_debug(&_5, "phalcon/Annotations/Collection.zep", 100); - ZEPHIR_MM_RESTORE(); - return; + if (UNEXPECTED(_0)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_forms_exception_ce, "Wrong filter type added", "phalcon/Forms/Element/AbstractElement.zep", 465); + return; + } + zephir_update_property_zval(this_ptr, ZEND_STRL("filters"), filters); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Annotations_Collection, getAll) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, setForm) +{ + zval *form, form_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&form_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(form, phalcon_forms_form_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &form); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("form"), form); + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, setLabel) { - zval found; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, annotations, annotation, _0, *_1, _2, _3$$3, _4$$5; - zval name; + zval *label_param = NULL; + zval label; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&annotations); - ZVAL_UNDEF(&annotation); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&found); + ZVAL_UNDEF(&label); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + Z_PARAM_STR(label) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - zephir_get_strval(&name, name_param); + zephir_fetch_params(1, 1, 0, &label_param); + zephir_get_strval(&label, label_param); - ZEPHIR_INIT_VAR(&found); - array_init(&found); - zephir_read_property(&_0, this_ptr, ZEND_STRL("annotations"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&annotations, &_0); - zephir_is_iterable(&annotations, 0, "phalcon/Annotations/Collection.zep", 120); - if (Z_TYPE_P(&annotations) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&annotations), _1) - { - ZEPHIR_INIT_NVAR(&annotation); - ZVAL_COPY(&annotation, _1); - ZEPHIR_CALL_METHOD(&_3$$3, &annotation, "getname", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_EQUAL(&name, &_3$$3)) { - zephir_array_append(&found, &annotation, PH_SEPARATE, "phalcon/Annotations/Collection.zep", 116); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &annotations, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &annotations, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&annotation, &annotations, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_4$$5, &annotation, "getname", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_EQUAL(&name, &_4$$5)) { - zephir_array_append(&found, &annotation, PH_SEPARATE, "phalcon/Annotations/Collection.zep", 116); - } - ZEPHIR_CALL_METHOD(NULL, &annotations, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&annotation); - RETURN_CTOR(&found); + zephir_update_property_zval(this_ptr, ZEND_STRL("label"), &label); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Annotations_Collection, getAnnotations) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, setMessages) { + zval *messages, messages_sub; zval *this_ptr = getThis(); + ZVAL_UNDEF(&messages_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(messages, phalcon_messages_messages_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + zephir_fetch_params_without_memory_grow(1, 0, &messages); - RETURN_MEMBER(getThis(), "annotations"); + + zephir_update_property_zval(this_ptr, ZEND_STRL("messages"), messages); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Annotations_Collection, has) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, setName) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, annotations, annotation, _0, *_1, _2, _3$$3, _4$$5; + zval *name_param = NULL; zval name; zval *this_ptr = getThis(); ZVAL_UNDEF(&name); - ZVAL_UNDEF(&annotations); - ZVAL_UNDEF(&annotation); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) @@ -33322,92 +32954,175 @@ static PHP_METHOD(Phalcon_Annotations_Collection, has) ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &name_param); - zephir_get_strval(&name, name_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("annotations"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&annotations, &_0); - zephir_is_iterable(&annotations, 0, "phalcon/Annotations/Collection.zep", 146); - if (Z_TYPE_P(&annotations) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&annotations), _1) - { - ZEPHIR_INIT_NVAR(&annotation); - ZVAL_COPY(&annotation, _1); - ZEPHIR_CALL_METHOD(&_3$$3, &annotation, "getname", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_EQUAL(&name, &_3$$3)) { - RETURN_MM_BOOL(1); - } - } ZEND_HASH_FOREACH_END(); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); } else { - ZEPHIR_CALL_METHOD(NULL, &annotations, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &annotations, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&annotation, &annotations, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_4$$5, &annotation, "getname", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_EQUAL(&name, &_4$$5)) { - RETURN_MM_BOOL(1); - } - ZEPHIR_CALL_METHOD(NULL, &annotations, "next", NULL, 0); - zephir_check_call_status(); - } + ZEPHIR_INIT_VAR(&name); } - ZEPHIR_INIT_NVAR(&annotation); - RETURN_MM_BOOL(0); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Annotations_Collection, key) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, setUserOption) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *option_param = NULL, *value, value_sub; + zval option; zval *this_ptr = getThis(); + ZVAL_UNDEF(&option); + ZVAL_UNDEF(&value_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(option) + Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &option_param, &value); + zephir_get_strval(&option, option_param); - RETURN_MEMBER(getThis(), "position"); + zephir_update_property_array(this_ptr, SL("options"), &option, value); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Annotations_Collection, next) +static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, setUserOptions) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); + ZVAL_UNDEF(&options); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &options_param); + zephir_get_arrval(&options, options_param); - RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("position"))); + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Annotations_Collection, rewind) +zend_object *zephir_init_properties_Phalcon_Forms_Element_AbstractElement(zend_class_entry *class_type) { - zval _0; - zval *this_ptr = getThis(); + zval _0, _2, _4, _6, _1$$3, _3$$4, _5$$5, _7$$6; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_7$$6); + - ZVAL_UNDEF(&_0); + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("validators"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("validators"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_3$$4); + } + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("filters"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_4) == IS_NULL) { + ZEPHIR_INIT_VAR(&_5$$5); + array_init(&_5$$5); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("filters"), &_5$$5); + } + zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_6) == IS_NULL) { + ZEPHIR_INIT_VAR(&_7$$6); + array_init(&_7$$6); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("attributes"), &_7$$6); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, 0); - zephir_update_property_zval(this_ptr, ZEND_STRL("position"), &_0); + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_Check) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, Check, phalcon, forms_element_check, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_check_method_entry, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Annotations_Collection, valid) +static PHP_METHOD(Phalcon_Forms_Element_Check, render) { - zval _0, _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *attributes_param = NULL, _1, _2; + zval attributes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&attributes); ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); +#endif + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &attributes_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("annotations"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_1, this_ptr, ZEND_STRL("position"), PH_NOISY_CC | PH_READONLY); - RETURN_BOOL(zephir_array_isset(&_0, &_1)); + ZVAL_BOOL(&_2, 1); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes, &_2); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "checkfield", &_0, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); } @@ -33420,1372 +33135,626 @@ static PHP_METHOD(Phalcon_Annotations_Collection, valid) -ZEPHIR_INIT_CLASS(Phalcon_Annotations_Exception) +ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_Date) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Annotations, Exception, phalcon, annotations_exception, phalcon_exception_ce, NULL, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, Date, phalcon, forms_element_date, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_date_method_entry, 0); return SUCCESS; } +static PHP_METHOD(Phalcon_Forms_Element_Date, render) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *attributes_param = NULL, _1; + zval attributes; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); +#endif -/* Driver template for the LEMON parser generator. -** The author disclaims copyright to this source code. -*/ -/* First off, code is include which follows the "include" declaration -** in the input file. */ -// 18 "parser.php.lemon" + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &attributes_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); + } -// 12 "parser.php.c" -/* Next is all token values, in a form suitable for use by makeheaders. -** This section will be null unless lemon is run with the -m switch. -*/ -/* Make sure the INTERFACE macro is defined. -*/ -#ifndef INTERFACE -# define INTERFACE 1 + ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "datefield", &_0, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + + + + +#ifdef HAVE_CONFIG_H #endif -/* The next thing included is series of defines which control -** various aspects of the generated parser. -** AACODETYPE is the data type used for storing terminal -** and nonterminal numbers. "unsigned char" is -** used if there are fewer than 250 terminals -** and nonterminals. "int" is used otherwise. -** AANOCODE is a number of type AACODETYPE which corresponds -** to no legal terminal or nonterminal number. This -** number is used to fill in empty slots of the hash -** table. -** AAFALLBACK If defined, this indicates that one or more tokens -** have fall-back values which should be used if the -** original value of the token will not parse. -** AAACTIONTYPE is the data type used for storing terminal -** and nonterminal numbers. "unsigned char" is -** used if there are fewer than 250 rules and -** states combined. "int" is used otherwise. -** phannot_TOKENTYPE is the data type used for minor tokens given -** directly to the parser from the tokenizer. -** AAMINORTYPE is the data type used for all minor tokens. -** This is typically a union of many types, one of -** which is phannot_TOKENTYPE. The entry in the union -** for base tokens is called "aa0". -** AASTACKDEPTH is the maximum depth of the parser's stack. -** phannot_ARG_SDECL A static variable declaration for the %extra_argument -** phannot_ARG_PDECL A parameter declaration for the %extra_argument -** phannot_ARG_STORE Code to store %extra_argument into aapParser -** phannot_ARG_FETCH Code to extract %extra_argument from aapParser -** AANSTATE the combined number of states. -** AANRULE the number of rules in the grammar -** AAERRORSYMBOL is the code number of the error symbol. If not -** defined, then do no error processing. -*/ -#define AACODETYPE unsigned char -#define AANOCODE 28 -#define AAACTIONTYPE unsigned char -#define phannot_TOKENTYPE phannot_parser_token* -typedef union { - phannot_TOKENTYPE aa0; - zval aa8; - int aa55; -} AAMINORTYPE; -#define AASTACKDEPTH 100 -#define phannot_ARG_SDECL phannot_parser_status *status; -#define phannot_ARG_PDECL ,phannot_parser_status *status -#define phannot_ARG_FETCH phannot_parser_status *status = aapParser->status -#define phannot_ARG_STORE aapParser->status = status -#define AANSTATE 40 -#define AANRULE 25 -#define AAERRORSYMBOL 18 -#define AAERRSYMDT aa55 -#define AA_NO_ACTION (AANSTATE+AANRULE+2) -#define AA_ACCEPT_ACTION (AANSTATE+AANRULE+1) -#define AA_ERROR_ACTION (AANSTATE+AANRULE) -/* Next are that tables used to determine what action to take based on the -** current state and lookahead token. These tables are used to implement -** functions that take a state number and lookahead value and return an -** action integer. -** -** Suppose the action integer is N. Then the action is determined as -** follows -** -** 0 <= N < AANSTATE Shift N. That is, push the lookahead -** token onto the stack and goto state N. -** -** AANSTATE <= N < AANSTATE+AANRULE Reduce by rule N-AANSTATE. -** -** N == AANSTATE+AANRULE A syntax error has occurred. -** -** N == AANSTATE+AANRULE+1 The parser accepts its input. -** -** N == AANSTATE+AANRULE+2 No such action. Denotes unused -** slots in the aa_action[] table. -** -** The action table is constructed as a single large table named aa_action[]. -** Given state S and lookahead X, the action is computed as -** -** aa_action[ aa_shift_ofst[S] + X ] -** -** If the index value aa_shift_ofst[S]+X is out of range or if the value -** aa_lookahead[aa_shift_ofst[S]+X] is not equal to X or if aa_shift_ofst[S] -** is equal to AA_SHIFT_USE_DFLT, it means that the action is not in the table -** and that aa_default[S] should be used instead. -** -** The formula above is for computing the action when the lookahead is -** a terminal symbol. If the lookahead is a non-terminal (as occurs after -** a reduce action) then the aa_reduce_ofst[] array is used in place of -** the aa_shift_ofst[] array and AA_REDUCE_USE_DFLT is used in place of -** AA_SHIFT_USE_DFLT. -** -** The following are the tables generated in this section: -** -** aa_action[] A single table containing all actions. -** aa_lookahead[] A table containing the lookahead for each entry in -** aa_action. Used to detect hash collisions. -** aa_shift_ofst[] For each state, the offset into aa_action for -** shifting terminals. -** aa_reduce_ofst[] For each state, the offset into aa_action for -** shifting non-terminals after a reduce. -** aa_default[] Default action for each state. -*/ -static AAACTIONTYPE aa_action[] = { - /* 0 */ 4, 28, 15, 38, 12, 14, 16, 18, 20, 21, - /* 10 */ 22, 23, 24, 4, 31, 4, 28, 15, 40, 12, - /* 20 */ 30, 16, 18, 20, 21, 22, 23, 24, 3, 31, - /* 30 */ 4, 17, 15, 6, 19, 35, 16, 18, 20, 21, - /* 40 */ 22, 23, 24, 5, 31, 15, 7, 27, 11, 16, - /* 50 */ 54, 54, 15, 25, 27, 11, 16, 15, 32, 27, - /* 60 */ 11, 16, 66, 1, 2, 39, 41, 15, 4, 10, - /* 70 */ 11, 16, 15, 9, 9, 37, 16, 8, 13, 36, - /* 80 */ 9, 29, 34, 54, 54, 54, 54, 54, 26, 54, - /* 90 */ 54, 54, 54, 54, 54, 54, 33, -}; -static AACODETYPE aa_lookahead[] = { - /* 0 */ 2, 3, 22, 5, 6, 25, 26, 9, 10, 11, - /* 10 */ 12, 13, 14, 2, 16, 2, 3, 22, 0, 6, - /* 20 */ 25, 26, 9, 10, 11, 12, 13, 14, 22, 16, - /* 30 */ 2, 3, 22, 4, 6, 25, 26, 9, 10, 11, - /* 40 */ 12, 13, 14, 3, 16, 22, 23, 24, 25, 26, - /* 50 */ 27, 27, 22, 23, 24, 25, 26, 22, 23, 24, - /* 60 */ 25, 26, 19, 20, 21, 22, 0, 22, 2, 24, - /* 70 */ 25, 26, 22, 1, 1, 25, 26, 5, 7, 8, - /* 80 */ 1, 7, 8, 27, 27, 27, 27, 27, 15, 27, - /* 90 */ 27, 27, 27, 27, 27, 27, 17, -}; -#define AA_SHIFT_USE_DFLT (-3) -static signed char aa_shift_ofst[] = { - /* 0 */ 11, 18, 66, -3, 40, 29, -2, 72, -3, 13, - /* 10 */ -3, -3, 71, 28, -3, -3, -3, -3, -3, -3, - /* 20 */ -3, -3, -3, -3, 13, 73, -3, -3, 74, 28, - /* 30 */ -3, 13, 79, -3, 28, -3, 28, -3, -3, -3, -}; -#define AA_REDUCE_USE_DFLT (-21) -static signed char aa_reduce_ofst[] = { - /* 0 */ 43, -21, 6, -21, -21, -21, 23, -21, -21, 45, - /* 10 */ -21, -21, -21, -20, -21, -21, -21, -21, -21, -21, - /* 20 */ -21, -21, -21, -21, 30, -21, -21, -21, -21, -5, - /* 30 */ -21, 35, -21, -21, 10, -21, 50, -21, -21, -21, -}; -static AAACTIONTYPE aa_default[] = { - /* 0 */ 65, 65, 65, 42, 65, 46, 65, 65, 44, 65, - /* 10 */ 47, 49, 58, 65, 50, 54, 55, 56, 57, 58, - /* 20 */ 59, 60, 61, 62, 65, 65, 63, 48, 56, 65, - /* 30 */ 52, 65, 65, 64, 65, 53, 65, 51, 45, 43, -}; -#define AA_SZ_ACTTAB (sizeof(aa_action)/sizeof(aa_action[0])) -/* The next table maps tokens into fallback tokens. If a construct -** like the following: -** -** %fallback ID X Y Z. -** -** appears in the grammer, then ID becomes a fallback token for X, Y, -** and Z. Whenever one of the tokens X, Y, or Z is input to the parser -** but it does not parse, the type of the token is changed to ID and -** the parse is retried before an error is thrown. -*/ -#ifdef AAFALLBACK -static const AACODETYPE aaFallback[] = { -}; -#endif /* AAFALLBACK */ -/* The following structure represents a single element of the -** parser's stack. Information stored includes: -** -** + The state number for the parser at this level of the stack. -** -** + The value of the token stored at this level of the stack. -** (In other words, the "major" token.) -** -** + The semantic value stored at this level of the stack. This is -** the information used by the action routines in the grammar. -** It is sometimes called the "minor" token. -*/ -struct aaStackEntry { - int stateno; /* The state-number */ - int major; /* The major token value. This is the code - ** number for the token at this stack level */ - AAMINORTYPE minor; /* The user-supplied minor token value. This - ** is the value of the token */ -}; -typedef struct aaStackEntry aaStackEntry; -/* The state of the parser is completely contained in an instance of -** the following structure */ -struct aaParser { - int aaidx; /* Index of top element in stack */ - int aaerrcnt; /* Shifts left before out of the error */ - phannot_ARG_SDECL /* A place to hold %extra_argument */ - aaStackEntry aastack[AASTACKDEPTH]; /* The parser's stack */ -}; -typedef struct aaParser aaParser; -#ifndef NDEBUG -static FILE *aaTraceFILE = 0; -static char *aaTracePrompt = 0; -#endif /* NDEBUG */ +ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_ElementInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Forms\\Element, ElementInterface, phalcon, forms_element_elementinterface, phalcon_forms_element_elementinterface_method_entry); -#ifndef NDEBUG -static void phannot_Trace(FILE *TraceFILE, char *zTracePrompt){ - aaTraceFILE = TraceFILE; - aaTracePrompt = zTracePrompt; - if( aaTraceFILE==0 ) aaTracePrompt = 0; - else if( aaTracePrompt==0 ) aaTraceFILE = 0; + return SUCCESS; } -#endif /* NDEBUG */ -#ifndef NDEBUG -/* For tracing shifts, the names of all terminals and nonterminals -** are required. The following table supplies these names */ -static const char *aaTokenName[] = { - "$", "COMMA", "AT", "IDENTIFIER", - "PARENTHESES_OPEN", "PARENTHESES_CLOSE", "STRING", "EQUALS", - "COLON", "INTEGER", "DOUBLE", "NULL", - "FALSE", "TRUE", "BRACKET_OPEN", "BRACKET_CLOSE", - "SBRACKET_OPEN", "SBRACKET_CLOSE", "error", "program", - "annotation_language", "annotation_list", "annotation", "argument_list", - "argument_item", "expr", "array", -}; -#endif /* NDEBUG */ +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, addFilter); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, addValidator); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, addValidators); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, appendMessage); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, clear); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getAttribute); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getAttributes); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getDefault); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getFilters); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getForm); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getLabel); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getMessages); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getName); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getUserOption); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getUserOptions); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getValidators); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getValue); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, hasMessages); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, label); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, prepareAttributes); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, render); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, setAttribute); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, setAttributes); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, setDefault); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, setFilters); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, setForm); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, setLabel); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, setMessages); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, setName); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, setUserOption); +ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, setUserOptions); -#ifndef NDEBUG -/* For tracing reduce actions, the names of all rules are required. -*/ -static const char *aaRuleName[] = { - /* 0 */ "program ::= annotation_language", - /* 1 */ "annotation_language ::= annotation_list", - /* 2 */ "annotation_list ::= annotation_list annotation", - /* 3 */ "annotation_list ::= annotation", - /* 4 */ "annotation ::= AT IDENTIFIER PARENTHESES_OPEN argument_list PARENTHESES_CLOSE", - /* 5 */ "annotation ::= AT IDENTIFIER PARENTHESES_OPEN PARENTHESES_CLOSE", - /* 6 */ "annotation ::= AT IDENTIFIER", - /* 7 */ "argument_list ::= argument_list COMMA argument_item", - /* 8 */ "argument_list ::= argument_item", - /* 9 */ "argument_item ::= expr", - /* 10 */ "argument_item ::= STRING EQUALS expr", - /* 11 */ "argument_item ::= STRING COLON expr", - /* 12 */ "argument_item ::= IDENTIFIER EQUALS expr", - /* 13 */ "argument_item ::= IDENTIFIER COLON expr", - /* 14 */ "expr ::= annotation", - /* 15 */ "expr ::= array", - /* 16 */ "expr ::= IDENTIFIER", - /* 17 */ "expr ::= INTEGER", - /* 18 */ "expr ::= STRING", - /* 19 */ "expr ::= DOUBLE", - /* 20 */ "expr ::= NULL", - /* 21 */ "expr ::= FALSE", - /* 22 */ "expr ::= TRUE", - /* 23 */ "array ::= BRACKET_OPEN argument_list BRACKET_CLOSE", - /* 24 */ "array ::= SBRACKET_OPEN argument_list SBRACKET_CLOSE", -}; -#endif /* NDEBUG */ -const char *phannot_TokenName(int tokenType){ -#ifndef NDEBUG - if( tokenType>0 && tokenType<(sizeof(aaTokenName)/sizeof(aaTokenName[0])) ){ - return aaTokenName[tokenType]; - }else{ - return "Unknown"; - } -#else - return ""; + +#ifdef HAVE_CONFIG_H #endif -} -void *phannot_Alloc(void *(*mallocProc)(size_t)){ - aaParser *pParser; - pParser = (aaParser*)(*mallocProc)( (size_t)sizeof(aaParser) ); - if( pParser ){ - pParser->aaidx = -1; - } - return pParser; -} -/* The following function deletes the value associated with a -** symbol. The symbol can be either a terminal or nonterminal. -** "aamajor" is the symbol code, and "aapminor" is a pointer to -** the value. -*/ -static void aa_destructor(AACODETYPE aamajor, AAMINORTYPE *aapminor){ - switch( aamajor ){ - /* Here is inserted the actions which take place when a - ** terminal or non-terminal is destroyed. This can happen - ** when the symbol is popped from the stack during a - ** reduce or during error processing or when a parser is - ** being destroyed before it is finished parsing. - ** - ** Note: during a reduce, the only symbols destroyed are those - ** which appear on the RHS of the rule, but which are not used - ** inside the C code. - */ - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: -// 67 "parser.php.lemon" + + + +ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_Email) { - if ((aapminor->aa0)) { - if ((aapminor->aa0)->free_flag) { - efree((aapminor->aa0)->token); - } - efree((aapminor->aa0)); - } + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, Email, phalcon, forms_element_email, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_email_method_entry, 0); + + return SUCCESS; } -// 380 "parser.php.c" - break; - case 20: - case 21: - case 22: - case 23: - case 24: - case 25: -// 80 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Forms_Element_Email, render) { - zval_ptr_dtor(&(aapminor->aa8)); -} -// 392 "parser.php.c" - break; - default: break; /* If no destructor action specified: do nothing */ - } -} - -static int aa_pop_parser_stack(aaParser *pParser){ - AACODETYPE aamajor; - aaStackEntry *aatos = &pParser->aastack[pParser->aaidx]; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *attributes_param = NULL, _1; + zval attributes; + zval *this_ptr = getThis(); - if( pParser->aaidx<0 ) return 0; -#ifndef NDEBUG - if( aaTraceFILE && pParser->aaidx>=0 ){ - fprintf(aaTraceFILE,"%sPopping %s\n", - aaTracePrompt, - aaTokenName[aatos->major]); - } + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); #endif - aamajor = aatos->major; - aa_destructor( aamajor, &aatos->minor); - pParser->aaidx--; - return aamajor; -} -static void phannot_Free( - void *p, /* The parser to be deleted */ - void (*freeProc)(void*) /* Function used to reclaim memory */ -){ - aaParser *pParser = (aaParser*)p; - if( pParser==0 ) return; - while( pParser->aaidx>=0 ) aa_pop_parser_stack(pParser); - (*freeProc)((void*)pParser); -} -static int aa_find_shift_action( - aaParser *pParser, /* The parser */ - int iLookAhead /* The look-ahead token */ -){ - int i; - int stateno = pParser->aastack[pParser->aaidx].stateno; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &attributes_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); + } - /* if( pParser->aaidx<0 ) return AA_NO_ACTION; */ - i = aa_shift_ofst[stateno]; - if( i==AA_SHIFT_USE_DFLT ){ - return aa_default[stateno]; - } - if( iLookAhead==AANOCODE ){ - return AA_NO_ACTION; - } - i += iLookAhead; - if( i<0 || i>=AA_SZ_ACTTAB || aa_lookahead[i]!=iLookAhead ){ -#ifdef AAFALLBACK - int iFallback; /* Fallback token */ - if( iLookAhead %s\n", - aaTracePrompt, aaTokenName[iLookAhead], aaTokenName[iFallback]); - } -#endif - return aa_find_shift_action(pParser, iFallback); - } -#endif - return aa_default[stateno]; - }else{ - return aa_action[i]; - } + + ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "emailfield", &_0, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static int aa_find_reduce_action( - aaParser *pParser, /* The parser */ - int iLookAhead /* The look-ahead token */ -){ - int i; - int stateno = pParser->aastack[pParser->aaidx].stateno; - i = aa_reduce_ofst[stateno]; - if( i==AA_REDUCE_USE_DFLT ){ - return aa_default[stateno]; - } - if( iLookAhead==AANOCODE ){ - return AA_NO_ACTION; - } - i += iLookAhead; - if( i<0 || i>=AA_SZ_ACTTAB || aa_lookahead[i]!=iLookAhead ){ - return aa_default[stateno]; - }else{ - return aa_action[i]; - } -} -static void aa_shift( - aaParser *aapParser, /* The parser to be shifted */ - int aaNewState, /* The new state to shift in */ - int aaMajor, /* The major token to shift in */ - AAMINORTYPE *aapMinor /* Pointer ot the minor token to shift in */ -){ - aaStackEntry *aatos; - aapParser->aaidx++; - if( aapParser->aaidx>=AASTACKDEPTH ){ - phannot_ARG_FETCH; - aapParser->aaidx--; -#ifndef NDEBUG - if( aaTraceFILE ){ - fprintf(aaTraceFILE,"%sStack Overflow!\n",aaTracePrompt); - } -#endif - while( aapParser->aaidx>=0 ) aa_pop_parser_stack(aapParser); - /* Here code is inserted which will execute if the parser - ** stack every overflows */ - phannot_ARG_STORE; /* Suppress warning about unused %extra_argument var */ - return; - } - aatos = &aapParser->aastack[aapParser->aaidx]; - aatos->stateno = aaNewState; - aatos->major = aaMajor; - aatos->minor = *aapMinor; -#ifndef NDEBUG - if( aaTraceFILE && aapParser->aaidx>0 ){ - int i; - fprintf(aaTraceFILE,"%sShift %d\n",aaTracePrompt,aaNewState); - fprintf(aaTraceFILE,"%sStack:",aaTracePrompt); - for(i=1; i<=aapParser->aaidx; i++) - fprintf(aaTraceFILE," %s",aaTokenName[aapParser->aastack[i].major]); - fprintf(aaTraceFILE,"\n"); - } + +#ifdef HAVE_CONFIG_H #endif -} -/* The following table contains information about every rule that -** is used during the reduce. -*/ -static struct { - AACODETYPE lhs; /* Symbol on the left-hand side of the rule */ - unsigned char nrhs; /* Number of right-hand side symbols in the rule */ -} aaRuleInfo[] = { - { 19, 1 }, - { 20, 1 }, - { 21, 2 }, - { 21, 1 }, - { 22, 5 }, - { 22, 4 }, - { 22, 2 }, - { 23, 3 }, - { 23, 1 }, - { 24, 1 }, - { 24, 3 }, - { 24, 3 }, - { 24, 3 }, - { 24, 3 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 25, 1 }, - { 26, 3 }, - { 26, 3 }, -}; -static void aa_accept(aaParser*); /* Forward Declaration */ -static void aa_reduce( - aaParser *aapParser, /* The parser */ - int aaruleno /* Number of the rule by which to reduce */ -){ - int aagoto; /* The next state */ - int aaact; /* The next action */ - AAMINORTYPE aagotominor; /* The LHS of the rule reduced */ - aaStackEntry *aamsp; /* The top of the parser's stack */ - int aasize; /* Amount to pop the stack */ - phannot_ARG_FETCH; - aamsp = &aapParser->aastack[aapParser->aaidx]; -#ifndef NDEBUG - if( aaTraceFILE && aaruleno>=0 - && aaruleno - ** { ... } // User supplied code - ** // - ** break; - */ - case 0: -// 76 "parser.php.lemon" -{ - ZVAL_ZVAL(&status->ret, &aamsp[0].minor.aa8, 1, 1); -} -// 634 "parser.php.c" - break; - case 1: - case 14: - case 15: -// 84 "parser.php.lemon" -{ - aagotominor.aa8 = aamsp[0].minor.aa8; -} -// 643 "parser.php.c" - break; - case 2: -// 92 "parser.php.lemon" -{ - phannot_ret_zval_list(&aagotominor.aa8, &aamsp[-1].minor.aa8, &aamsp[0].minor.aa8); -} -// 650 "parser.php.c" - break; - case 3: - case 8: -// 96 "parser.php.lemon" -{ - phannot_ret_zval_list(&aagotominor.aa8, NULL, &aamsp[0].minor.aa8); -} -// 658 "parser.php.c" - break; - case 4: -// 104 "parser.php.lemon" -{ - phannot_ret_annotation(&aagotominor.aa8, aamsp[-3].minor.aa0, &aamsp[-1].minor.aa8, status->scanner_state); - aa_destructor(2,&aamsp[-4].minor); - aa_destructor(4,&aamsp[-2].minor); - aa_destructor(5,&aamsp[0].minor); -} -// 668 "parser.php.c" - break; - case 5: -// 108 "parser.php.lemon" -{ - phannot_ret_annotation(&aagotominor.aa8, aamsp[-2].minor.aa0, NULL, status->scanner_state); - aa_destructor(2,&aamsp[-3].minor); - aa_destructor(4,&aamsp[-1].minor); - aa_destructor(5,&aamsp[0].minor); -} -// 678 "parser.php.c" - break; - case 6: -// 112 "parser.php.lemon" -{ - phannot_ret_annotation(&aagotominor.aa8, aamsp[0].minor.aa0, NULL, status->scanner_state); - aa_destructor(2,&aamsp[-1].minor); -} -// 686 "parser.php.c" - break; - case 7: -// 120 "parser.php.lemon" -{ - phannot_ret_zval_list(&aagotominor.aa8, &aamsp[-2].minor.aa8, &aamsp[0].minor.aa8); - aa_destructor(1,&aamsp[-1].minor); -} -// 694 "parser.php.c" - break; - case 9: -// 132 "parser.php.lemon" -{ - phannot_ret_named_item(&aagotominor.aa8, NULL, &aamsp[0].minor.aa8); -} -// 701 "parser.php.c" - break; - case 10: - case 12: -// 136 "parser.php.lemon" -{ - phannot_ret_named_item(&aagotominor.aa8, aamsp[-2].minor.aa0, &aamsp[0].minor.aa8); - aa_destructor(7,&aamsp[-1].minor); -} -// 710 "parser.php.c" - break; - case 11: - case 13: -// 140 "parser.php.lemon" -{ - phannot_ret_named_item(&aagotominor.aa8, aamsp[-2].minor.aa0, &aamsp[0].minor.aa8); - aa_destructor(8,&aamsp[-1].minor); -} -// 719 "parser.php.c" - break; - case 16: -// 164 "parser.php.lemon" -{ - phannot_ret_literal_zval(&aagotominor.aa8, PHANNOT_T_IDENTIFIER, aamsp[0].minor.aa0); -} -// 726 "parser.php.c" - break; - case 17: -// 168 "parser.php.lemon" -{ - phannot_ret_literal_zval(&aagotominor.aa8, PHANNOT_T_INTEGER, aamsp[0].minor.aa0); -} -// 733 "parser.php.c" - break; - case 18: -// 172 "parser.php.lemon" -{ - phannot_ret_literal_zval(&aagotominor.aa8, PHANNOT_T_STRING, aamsp[0].minor.aa0); -} -// 740 "parser.php.c" - break; - case 19: -// 176 "parser.php.lemon" -{ - phannot_ret_literal_zval(&aagotominor.aa8, PHANNOT_T_DOUBLE, aamsp[0].minor.aa0); -} -// 747 "parser.php.c" - break; - case 20: -// 180 "parser.php.lemon" -{ - phannot_ret_literal_zval(&aagotominor.aa8, PHANNOT_T_NULL, NULL); - aa_destructor(11,&aamsp[0].minor); -} -// 755 "parser.php.c" - break; - case 21: -// 184 "parser.php.lemon" -{ - phannot_ret_literal_zval(&aagotominor.aa8, PHANNOT_T_FALSE, NULL); - aa_destructor(12,&aamsp[0].minor); -} -// 763 "parser.php.c" - break; - case 22: -// 188 "parser.php.lemon" -{ - phannot_ret_literal_zval(&aagotominor.aa8, PHANNOT_T_TRUE, NULL); - aa_destructor(13,&aamsp[0].minor); -} -// 771 "parser.php.c" - break; - case 23: -// 192 "parser.php.lemon" -{ - phannot_ret_array(&aagotominor.aa8, &aamsp[-1].minor.aa8); - aa_destructor(14,&aamsp[-2].minor); - aa_destructor(15,&aamsp[0].minor); -} -// 780 "parser.php.c" - break; - case 24: -// 196 "parser.php.lemon" + +ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_File) { - phannot_ret_array(&aagotominor.aa8, &aamsp[-1].minor.aa8); - aa_destructor(16,&aamsp[-2].minor); - aa_destructor(17,&aamsp[0].minor); -} -// 789 "parser.php.c" - break; - }; - aagoto = aaRuleInfo[aaruleno].lhs; - aasize = aaRuleInfo[aaruleno].nrhs; - aapParser->aaidx -= aasize; - aaact = aa_find_reduce_action(aapParser,aagoto); - if( aaact < AANSTATE ){ - aa_shift(aapParser,aaact,aagoto,&aagotominor); - }else if( aaact == AANSTATE + AANRULE + 1 ){ - aa_accept(aapParser); - } -} + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, File, phalcon, forms_element_file, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_file_method_entry, 0); -static void aa_parse_failed( - aaParser *aapParser /* The parser */ -){ - phannot_ARG_FETCH; -#ifndef NDEBUG - if( aaTraceFILE ){ - fprintf(aaTraceFILE,"%sFail!\n",aaTracePrompt); - } -#endif - while( aapParser->aaidx>=0 ) aa_pop_parser_stack(aapParser); - /* Here code is inserted which will be executed whenever the - ** parser fails */ - phannot_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ + return SUCCESS; } -static void aa_syntax_error( - aaParser *aapParser, /* The parser */ - int aamajor, /* The major type of the error token */ - AAMINORTYPE aaminor /* The minor type of the error token */ -){ - phannot_ARG_FETCH; -#define ATOKEN (aaminor.aa0) -// 22 "parser.php.lemon" - - if (status->scanner_state->start_length) { - char *token_name = NULL; - const phannot_token_names *tokens = phannot_tokens; - int active_token = status->scanner_state->active_token; - unsigned int near_length = status->scanner_state->start_length; +static PHP_METHOD(Phalcon_Forms_Element_File, render) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *attributes_param = NULL, _1; + zval attributes; + zval *this_ptr = getThis(); - if (active_token) { - do { - if (tokens->code == active_token) { - token_name = tokens->name; - break; - } - ++tokens; - } while (tokens[0].code != 0); - } + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); +#endif - if (!token_name) { - token_name = "UNKNOWN"; - } - if (near_length > 0) { - if (status->token->value) { - spprintf(&status->syntax_error, 0, "Syntax error, unexpected token %s(%s), near to '%s' in %s on line %d", token_name, status->token->value, status->scanner_state->start, status->scanner_state->active_file, status->scanner_state->active_line); - } else { - spprintf(&status->syntax_error, 0, "Syntax error, unexpected token %s, near to '%s' in %s on line %d", token_name, status->scanner_state->start, status->scanner_state->active_file, status->scanner_state->active_line); - } - } else { - if (active_token != PHANNOT_T_IGNORE) { - if (status->token->value) { - spprintf(&status->syntax_error, 0, "Syntax error, unexpected token %s(%s), at the end of docblock in %s on line %d", token_name, status->token->value, status->scanner_state->active_file, status->scanner_state->active_line); - } else { - spprintf(&status->syntax_error, 0, "Syntax error, unexpected token %s, at the end of docblock in %s on line %d", token_name, status->scanner_state->active_file, status->scanner_state->active_line); - } - } else { - spprintf(&status->syntax_error, 0, "Syntax error, unexpected EOF, at the end of docblock in %s on line %d", status->scanner_state->active_file, status->scanner_state->active_line); - } - } + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &attributes_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); } else { - spprintf(&status->syntax_error, 0, "Syntax error, unexpected EOF in %s", status->scanner_state->active_file); + zephir_get_arrval(&attributes, attributes_param); } - status->status = PHANNOT_PARSING_FAILED; - -// 876 "parser.php.c" - phannot_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ -} -static void aa_accept( - aaParser *aapParser /* The parser */ -){ - phannot_ARG_FETCH; -#ifndef NDEBUG - if( aaTraceFILE ){ - fprintf(aaTraceFILE,"%sAccept!\n",aaTracePrompt); - } -#endif - while( aapParser->aaidx>=0 ) aa_pop_parser_stack(aapParser); - /* Here code is inserted which will be executed whenever the - ** parser accepts */ - phannot_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ + ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "filefield", &_0, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); } -/* The main parser program. -** The first argument is a pointer to a structure obtained from -** "phannot_Alloc" which describes the current state of the parser. -** The second argument is the major token number. The third is -** the minor token. The fourth optional argument is whatever the -** user wants (and specified in the grammar) and is available for -** use by the action routines. -** -** Inputs: -**
    -**
  • A pointer to the parser (an opaque structure.) -**
  • The major token number. -**
  • The minor token number. -**
  • An option argument of a grammar-specified type. -**
-** -** Outputs: -** None. -*/ -static void phannot_( - void *aap, /* The parser */ - int aamajor, /* The major token code number */ - phannot_TOKENTYPE aaminor /* The value for the token */ - phannot_ARG_PDECL /* Optional %extra_argument parameter */ -){ - AAMINORTYPE aaminorunion; - int aaact; /* The parser action. */ - int aaendofinput; /* True if we are at the end of input */ - int aaerrorhit = 0; /* True if aamajor has invoked an error */ - aaParser *aapParser; /* The parser */ - /* (re)initialize the parser, if necessary */ - aapParser = (aaParser*)aap; - if( aapParser->aaidx<0 ){ - if( aamajor==0 ) return; - aapParser->aaidx = 0; - aapParser->aaerrcnt = -1; - aapParser->aastack[0].stateno = 0; - aapParser->aastack[0].major = 0; - } - aaminorunion.aa0 = aaminor; - aaendofinput = (aamajor==0); - phannot_ARG_STORE; -#ifndef NDEBUG - if( aaTraceFILE ){ - fprintf(aaTraceFILE,"%sInput %s\n",aaTracePrompt,aaTokenName[aamajor]); - } -#endif - do{ - aaact = aa_find_shift_action(aapParser,aamajor); - if( aaactaaerrcnt--; - if( aaendofinput && aapParser->aaidx>=0 ){ - aamajor = 0; - }else{ - aamajor = AANOCODE; - } - }else if( aaact < AANSTATE + AANRULE ){ - aa_reduce(aapParser,aaact-AANSTATE); - }else if( aaact == AA_ERROR_ACTION ){ - int aamx; -#ifndef NDEBUG - if( aaTraceFILE ){ - fprintf(aaTraceFILE,"%sSyntax Error!\n",aaTracePrompt); - } -#endif -#ifdef AAERRORSYMBOL - /* A syntax error has occurred. - ** The response to an error depends upon whether or not the - ** grammar defines an error token "ERROR". - ** - ** This is what we do if the grammar does define ERROR: - ** - ** * Call the %syntax_error function. - ** - ** * Begin popping the stack until we enter a state where - ** it is legal to shift the error symbol, then shift - ** the error symbol. - ** - ** * Set the error count to three. - ** - ** * Begin accepting and shifting new tokens. No new error - ** processing will occur until three tokens have been - ** shifted successfully. - ** - */ - if( aapParser->aaerrcnt<0 ){ - aa_syntax_error(aapParser,aamajor,aaminorunion); - } - aamx = aapParser->aastack[aapParser->aaidx].major; - if( aamx==AAERRORSYMBOL || aaerrorhit ){ -#ifndef NDEBUG - if( aaTraceFILE ){ - fprintf(aaTraceFILE,"%sDiscard input token %s\n", - aaTracePrompt,aaTokenName[aamajor]); - } -#endif - aa_destructor(aamajor,&aaminorunion); - aamajor = AANOCODE; - }else{ - while( - aapParser->aaidx >= 0 && - aamx != AAERRORSYMBOL && - (aaact = aa_find_shift_action(aapParser,AAERRORSYMBOL)) >= AANSTATE - ){ - aa_pop_parser_stack(aapParser); - } - if( aapParser->aaidx < 0 || aamajor==0 ){ - aa_destructor(aamajor,&aaminorunion); - aa_parse_failed(aapParser); - aamajor = AANOCODE; - }else if( aamx!=AAERRORSYMBOL ){ - AAMINORTYPE u2; - u2.AAERRSYMDT = 0; - aa_shift(aapParser,aaact,AAERRORSYMBOL,&u2); - } - } - aapParser->aaerrcnt = 3; - aaerrorhit = 1; -#else /* AAERRORSYMBOL is not defined */ - /* This is what we do if the grammar does not define ERROR: - ** - ** * Report an error message, and throw away the input token. - ** - ** * If the input token is $, then fail the parse. - ** - ** As before, subsequent error messages are suppressed until - ** three input tokens have been successfully shifted. - */ - if( aapParser->aaerrcnt<=0 ){ - aa_syntax_error(aapParser,aamajor,aaminorunion); - } - aapParser->aaerrcnt = 3; - aa_destructor(aamajor,&aaminorunion); - if( aaendofinput ){ - aa_parse_failed(aapParser); - } - aamajor = AANOCODE; +#ifdef HAVE_CONFIG_H #endif - }else{ - aa_accept(aapParser); - aamajor = AANOCODE; - } - }while( aamajor!=AANOCODE && aapParser->aaidx>=0 ); - return; -} -/* base.c - * This file is part of the Phalcon Framework. - * - * (c) Phalcon Team - * - * For the full copyright and license information, please view the - * LICENSE.txt file that was distributed with this source code. - */ - -const phannot_token_names phannot_tokens[] = -{ - { "INTEGER", PHANNOT_T_INTEGER }, - { "DOUBLE", PHANNOT_T_DOUBLE }, - { "STRING", PHANNOT_T_STRING }, - { "IDENTIFIER", PHANNOT_T_IDENTIFIER }, - { "@", PHANNOT_T_AT }, - { ",", PHANNOT_T_COMMA }, - { "=", PHANNOT_T_EQUALS }, - { ":", PHANNOT_T_COLON }, - { "(", PHANNOT_T_PARENTHESES_OPEN }, - { ")", PHANNOT_T_PARENTHESES_CLOSE }, - { "{", PHANNOT_T_BRACKET_OPEN }, - { "}", PHANNOT_T_BRACKET_CLOSE }, - { "[", PHANNOT_T_SBRACKET_OPEN }, - { "]", PHANNOT_T_SBRACKET_CLOSE }, - { "ARBITRARY TEXT", PHANNOT_T_ARBITRARY_TEXT }, - { NULL, 0 } -}; - -static void *phannot_wrapper_alloc(size_t bytes){ - return emalloc(bytes); -} -static void phannot_wrapper_free(void *pointer){ - efree(pointer); -} -static void phannot_parse_with_token(void* phannot_parser, int opcode, int parsercode, phannot_scanner_token *token, phannot_parser_status *parser_status){ - phannot_parser_token *pToken; - pToken = emalloc(sizeof(phannot_parser_token)); - pToken->opcode = opcode; - pToken->token = token->value; - pToken->token_len = token->len; - pToken->free_flag = 1; - phannot_(phannot_parser, parsercode, pToken, parser_status); +ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_Hidden) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, Hidden, phalcon, forms_element_hidden, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_hidden_method_entry, 0); - token->value = NULL; - token->len = 0; + return SUCCESS; } -static void phannot_scanner_error_msg(phannot_parser_status *parser_status, char **error_msg){ +static PHP_METHOD(Phalcon_Forms_Element_Hidden, render) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *attributes_param = NULL, _1; + zval attributes; + zval *this_ptr = getThis(); - phannot_scanner_state *state = parser_status->scanner_state; + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); +#endif - if (state->start) { - if (state->start_length > 16) { - spprintf(error_msg, 0, "Scanning error before '%.16s...' in %s on line %d", state->start, state->active_file, state->active_line); - } else { - spprintf(error_msg, 0, "Scanning error before '%s' in %s on line %d", state->start, state->active_file, state->active_line); - } + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &attributes_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); } else { - spprintf(error_msg, 0, "Scanning error near to EOF in %s", state->active_file); + zephir_get_arrval(&attributes, attributes_param); } + + + ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "hiddenfield", &_0, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static int phannot_parse_annotations(zval *result, zval *comment, zval *file_path, zval *line) { - char *comment_str; - int comment_len; - char *file_path_str; - int line_num; - char *error_msg = NULL; - ZVAL_NULL(result); +#ifdef HAVE_CONFIG_H +#endif - if (Z_TYPE_P(comment) == IS_STRING) { - comment_str = Z_STRVAL_P(comment); - comment_len = Z_STRLEN_P(comment); - } else { - comment_str = ""; - comment_len = 0; - } - if (Z_TYPE_P(file_path) == IS_STRING) { - file_path_str = Z_STRVAL_P(file_path); - } else { - file_path_str = "eval"; - } - if (Z_TYPE_P(line) == IS_LONG) { - line_num = Z_LVAL_P(line); - } else { - line_num = 0; - } - if (phannot_internal_parse_annotations(&result, comment_str, comment_len, file_path_str, line_num, &error_msg) == FAILURE) { - if (likely(error_msg != NULL)) { - zephir_throw_exception_string(phalcon_annotations_exception_ce, error_msg, strlen(error_msg)); - efree(error_msg); - } else { - zephir_throw_exception_string(phalcon_annotations_exception_ce, SL("There was an error parsing annotation")); - } - return FAILURE; - } +ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_Numeric) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, Numeric, phalcon, forms_element_numeric, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_numeric_method_entry, 0); return SUCCESS; } -static void phannot_remove_comment_separators(char **ret, int *ret_len, const char *comment, int length, int *start_lines) +static PHP_METHOD(Phalcon_Forms_Element_Numeric, render) { - char ch; - int start_mode = 1, j, i, open_parentheses; - smart_str processed_str = {0}; - - (*start_lines) = 0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *attributes_param = NULL, _1; + zval attributes; + zval *this_ptr = getThis(); - for (i = 0; i < length; i++) { + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); +#endif - ch = comment[i]; - if (start_mode) { - if (ch == ' ' || ch == '*' || ch == '/' || ch == '\t' || ch == 11) { - continue; - } - start_mode = 0; - } + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &attributes_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); + } - if (ch == '@') { - smart_str_appendc(&processed_str, ch); - i++; + ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "numericfield", &_0, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} - open_parentheses = 0; - for (j = i; j < length; j++) { - ch = comment[j]; - if (start_mode) { - if (ch == ' ' || ch == '*' || ch == '/' || ch == '\t' || ch == 11) { - continue; - } - start_mode = 0; - } - if (open_parentheses == 0) { +#ifdef HAVE_CONFIG_H +#endif - if (isalnum(ch) || '_' == ch || '\\' == ch) { - smart_str_appendc(&processed_str, ch); - continue; - } - if (ch == '(') { - smart_str_appendc(&processed_str, ch); - open_parentheses++; - continue; - } - } else { - smart_str_appendc(&processed_str, ch); - if (ch == '(') { - open_parentheses++; - } else { - if (ch == ')') { - open_parentheses--; - } else { - if (ch == '\n') { - (*start_lines)++; - start_mode = 1; - } - } - } +ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_Password) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, Password, phalcon, forms_element_password, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_password_method_entry, 0); - if (open_parentheses > 0) { - continue; - } - } + return SUCCESS; +} - i = j; - smart_str_appendc(&processed_str, ' '); - break; - } - } +static PHP_METHOD(Phalcon_Forms_Element_Password, render) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *attributes_param = NULL, _1; + zval attributes; + zval *this_ptr = getThis(); - if (ch == '\n') { - (*start_lines)++; - start_mode = 1; - } - } + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); +#endif - smart_str_0(&processed_str); - if (processed_str.s) { - *ret = estrndup(ZSTR_VAL(processed_str.s), ZSTR_LEN(processed_str.s)); - *ret_len = ZSTR_LEN(processed_str.s); - smart_str_free(&processed_str); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &attributes_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); } else { - *ret = NULL; - *ret_len = 0; + zephir_get_arrval(&attributes, attributes_param); } + + + ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "passwordfield", &_0, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static int phannot_internal_parse_annotations(zval **result, const char *comment, int comment_len, const char *file_path, int line, char **error_msg) -{ - phannot_scanner_state *state; - phannot_scanner_token token; - int start_lines; - int scanner_status, status = SUCCESS; - phannot_parser_status *parser_status = NULL; - void* phannot_parser; - char *processed_comment; - int processed_comment_len; - *error_msg = NULL; - if (UNEXPECTED(!comment)) { - ZVAL_BOOL(*result, 0); - spprintf(error_msg, 0, "Empty annotation"); - return FAILURE; - } - if (comment_len < 2) { - ZVAL_BOOL(*result, 0); - return SUCCESS; - } +#ifdef HAVE_CONFIG_H +#endif - phannot_remove_comment_separators(&processed_comment, &processed_comment_len, comment, comment_len, &start_lines); - if (processed_comment_len < 2) { - ZVAL_BOOL(*result, 0); - if (processed_comment) { - efree(processed_comment); - } - return SUCCESS; - } - phannot_parser = phannot_Alloc(phannot_wrapper_alloc); - if (unlikely(!phannot_parser)) { - ZVAL_BOOL(*result, 0); - return FAILURE; - } - parser_status = emalloc(sizeof(phannot_parser_status) + sizeof(phannot_scanner_state)); - state = (phannot_scanner_state*)((char*)parser_status + sizeof(phannot_parser_status)); +ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_Radio) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, Radio, phalcon, forms_element_radio, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_radio_method_entry, 0); - parser_status->status = PHANNOT_PARSING_OK; - parser_status->scanner_state = state; - parser_status->token = &token; - parser_status->syntax_error = NULL; + return SUCCESS; +} - state->active_token = 0; - state->start = processed_comment; - state->start_length = 0; - state->mode = PHANNOT_MODE_RAW; - state->active_file = file_path; +static PHP_METHOD(Phalcon_Forms_Element_Radio, render) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *attributes_param = NULL, _1, _2; + zval attributes; + zval *this_ptr = getThis(); - token.value = NULL; - token.len = 0; + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); +#endif - if (line) { - state->active_line = line - start_lines; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &attributes_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); } else { - state->active_line = 1; + zephir_get_arrval(&attributes, attributes_param); } - state->end = state->start; - while(0 <= (scanner_status = phannot_get_token(state, &token))) { + ZVAL_BOOL(&_2, 1); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes, &_2); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "radiofield", &_0, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} - state->active_token = token.opcode; - state->start_length = processed_comment + processed_comment_len - state->start; - switch (token.opcode) { - case PHANNOT_T_IGNORE: - break; +#ifdef HAVE_CONFIG_H +#endif - case PHANNOT_T_AT: - phannot_(phannot_parser, PHANNOT_AT, NULL, parser_status); - break; - case PHANNOT_T_COMMA: - phannot_(phannot_parser, PHANNOT_COMMA, NULL, parser_status); - break; - case PHANNOT_T_EQUALS: - phannot_(phannot_parser, PHANNOT_EQUALS, NULL, parser_status); - break; - case PHANNOT_T_COLON: - phannot_(phannot_parser, PHANNOT_COLON, NULL, parser_status); - break; - case PHANNOT_T_PARENTHESES_OPEN: - phannot_(phannot_parser, PHANNOT_PARENTHESES_OPEN, NULL, parser_status); - break; - case PHANNOT_T_PARENTHESES_CLOSE: - phannot_(phannot_parser, PHANNOT_PARENTHESES_CLOSE, NULL, parser_status); - break; - case PHANNOT_T_BRACKET_OPEN: - phannot_(phannot_parser, PHANNOT_BRACKET_OPEN, NULL, parser_status); - break; - case PHANNOT_T_BRACKET_CLOSE: - phannot_(phannot_parser, PHANNOT_BRACKET_CLOSE, NULL, parser_status); - break; - case PHANNOT_T_SBRACKET_OPEN: - phannot_(phannot_parser, PHANNOT_SBRACKET_OPEN, NULL, parser_status); - break; - case PHANNOT_T_SBRACKET_CLOSE: - phannot_(phannot_parser, PHANNOT_SBRACKET_CLOSE, NULL, parser_status); - break; - case PHANNOT_T_NULL: - phannot_(phannot_parser, PHANNOT_NULL, NULL, parser_status); - break; - case PHANNOT_T_TRUE: - phannot_(phannot_parser, PHANNOT_TRUE, NULL, parser_status); - break; - case PHANNOT_T_FALSE: - phannot_(phannot_parser, PHANNOT_FALSE, NULL, parser_status); - break; +ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_Select) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, Select, phalcon, forms_element_select, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_select_method_entry, 0); - case PHANNOT_T_INTEGER: - phannot_parse_with_token(phannot_parser, PHANNOT_T_INTEGER, PHANNOT_INTEGER, &token, parser_status); - break; - case PHANNOT_T_DOUBLE: - phannot_parse_with_token(phannot_parser, PHANNOT_T_DOUBLE, PHANNOT_DOUBLE, &token, parser_status); - break; - case PHANNOT_T_STRING: - phannot_parse_with_token(phannot_parser, PHANNOT_T_STRING, PHANNOT_STRING, &token, parser_status); - break; - case PHANNOT_T_IDENTIFIER: - phannot_parse_with_token(phannot_parser, PHANNOT_T_IDENTIFIER, PHANNOT_IDENTIFIER, &token, parser_status); - break; - /*case PHANNOT_T_ARBITRARY_TEXT: - phannot_parse_with_token(phannot_parser, PHANNOT_T_ARBITRARY_TEXT, PHANNOT_ARBITRARY_TEXT, &token, parser_status); - break;*/ + zend_declare_property_null(phalcon_forms_element_select_ce, SL("optionsValues"), ZEND_ACC_PROTECTED); + return SUCCESS; +} - default: - parser_status->status = PHANNOT_PARSING_FAILED; - if (!*error_msg) { - spprintf(error_msg, 0, "Scanner: unknown opcode %d on in %s line %d", token.opcode, state->active_file, state->active_line); - } - break; - } +static PHP_METHOD(Phalcon_Forms_Element_Select, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval attributes; + zval *name_param = NULL, *options = NULL, options_sub, *attributes_param = NULL, __$null; + zval name; + zval *this_ptr = getThis(); - if (parser_status->status != PHANNOT_PARSING_OK) { - status = FAILURE; - break; - } + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&options_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&attributes); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(name) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(options) + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); +#endif - state->end = state->start; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &name_param, &options, &attributes_param); + zephir_get_strval(&name, name_param); + if (!options) { + options = &options_sub; + options = &__$null; + } + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); } - if (status != FAILURE) { - switch (scanner_status) { - case PHANNOT_SCANNER_RETCODE_ERR: - case PHANNOT_SCANNER_RETCODE_IMPOSSIBLE: - if (!*error_msg) { - phannot_scanner_error_msg(parser_status, error_msg); - } - status = FAILURE; - break; + zephir_update_property_zval(this_ptr, ZEND_STRL("optionsValues"), options); + ZEPHIR_CALL_PARENT(NULL, phalcon_forms_element_select_ce, getThis(), "__construct", &_0, 0, &name, &attributes); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} - default: - phannot_(phannot_parser, 0, NULL, parser_status); - } - } +static PHP_METHOD(Phalcon_Forms_Element_Select, addOption) +{ + zend_string *_3$$3; + zend_ulong _2$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *option, option_sub, key, value, *_0$$3, _1$$3; + zval *this_ptr = getThis(); - state->active_token = 0; - state->start = NULL; + ZVAL_UNDEF(&option_sub); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(option) + ZEND_PARSE_PARAMETERS_END(); +#endif - if (parser_status->status != PHANNOT_PARSING_OK) { - status = FAILURE; - if (parser_status->syntax_error) { - if (!*error_msg) { - *error_msg = parser_status->syntax_error; - } else { - efree(parser_status->syntax_error); + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &option); + + + if (Z_TYPE_P(option) == IS_ARRAY) { + zephir_is_iterable(option, 0, "phalcon/Forms/Element/Select.zep", 53); + if (Z_TYPE_P(option) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(option), _2$$3, _3$$3, _0$$3) + { + ZEPHIR_INIT_NVAR(&key); + if (_3$$3 != NULL) { + ZVAL_STR_COPY(&key, _3$$3); + } else { + ZVAL_LONG(&key, _2$$3); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0$$3); + zephir_update_property_array(this_ptr, SL("optionsValues"), &key, &value); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, option, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1$$3, option, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&key, option, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, option, "current", NULL, 0); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("optionsValues"), &key, &value); + ZEPHIR_CALL_METHOD(NULL, option, "next", NULL, 0); + zephir_check_call_status(); } } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + } else { + zephir_update_property_array_append(this_ptr, SL("optionsValues"), option); } + RETURN_THIS(); +} - phannot_Free(phannot_parser, phannot_wrapper_free); +static PHP_METHOD(Phalcon_Forms_Element_Select, getOptions) +{ + zval *this_ptr = getThis(); - if (status != FAILURE) { - if (parser_status->status == PHANNOT_PARSING_OK) { - ZVAL_ZVAL(*result, &parser_status->ret, 1, 1); - } + + + RETURN_MEMBER(getThis(), "optionsValues"); +} + +static PHP_METHOD(Phalcon_Forms_Element_Select, render) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *attributes_param = NULL, _1, _2; + zval attributes; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &attributes_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); } - efree(processed_comment); - efree(parser_status); - return status; + ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes); + zephir_check_call_status(); + zephir_read_property(&_2, this_ptr, ZEND_STRL("optionsValues"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_select_ce, "selectfield", &_0, 0, &_1, &_2); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Forms_Element_Select, setOptions) +{ + zval *options, options_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&options_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &options); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("optionsValues"), options); + RETURN_THISW(); } + #ifdef HAVE_CONFIG_H #endif @@ -34793,258 +33762,154 @@ static int phannot_internal_parse_annotations(zval **result, const char *comment -ZEPHIR_INIT_CLASS(Phalcon_Annotations_Reader) +ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_Submit) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Annotations, Reader, phalcon, annotations_reader, phalcon_annotations_reader_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, Submit, phalcon, forms_element_submit, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_submit_method_entry, 0); - zend_class_implements(phalcon_annotations_reader_ce, 1, phalcon_annotations_readerinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Annotations_Reader, parse) +static PHP_METHOD(Phalcon_Forms_Element_Submit, render) { - zval annotations; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, line = 0; - zval *className_param = NULL, reflection, comment, properties, methods, property, method, classAnnotations, annotationsProperties, propertyAnnotations, annotationsMethods, methodAnnotations, _0$$3, _1$$3, *_2$$5, _3$$5, _4$$7, _5$$7, _6$$8, _7$$10, _8$$10, _9$$11, *_10$$13, _11$$13, _12$$15, _13$$15, _14$$16, _15$$18, _16$$18, _17$$19; - zval className; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *attributes_param = NULL, _1; + zval attributes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&reflection); - ZVAL_UNDEF(&comment); - ZVAL_UNDEF(&properties); - ZVAL_UNDEF(&methods); - ZVAL_UNDEF(&property); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&classAnnotations); - ZVAL_UNDEF(&annotationsProperties); - ZVAL_UNDEF(&propertyAnnotations); - ZVAL_UNDEF(&annotationsMethods); - ZVAL_UNDEF(&methodAnnotations); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_4$$7); - ZVAL_UNDEF(&_5$$7); - ZVAL_UNDEF(&_6$$8); - ZVAL_UNDEF(&_7$$10); - ZVAL_UNDEF(&_8$$10); - ZVAL_UNDEF(&_9$$11); - ZVAL_UNDEF(&_11$$13); - ZVAL_UNDEF(&_12$$15); - ZVAL_UNDEF(&_13$$15); - ZVAL_UNDEF(&_14$$16); - ZVAL_UNDEF(&_15$$18); - ZVAL_UNDEF(&_16$$18); - ZVAL_UNDEF(&_17$$19); - ZVAL_UNDEF(&annotations); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(className) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &className_param); - zephir_get_strval(&className, className_param); + zephir_fetch_params(1, 0, 1, &attributes_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); + } - ZEPHIR_INIT_VAR(&annotations); - array_init(&annotations); - ZEPHIR_INIT_VAR(&reflection); - object_init_ex(&reflection, zephir_get_internal_ce(SL("reflectionclass"))); - ZEPHIR_CALL_METHOD(NULL, &reflection, "__construct", NULL, 156, &className); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&comment, &reflection, "getdoccomment", NULL, 157); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "submitbutton", &_0, 0, &_1); zephir_check_call_status(); - if (Z_TYPE_P(&comment) == IS_STRING) { - ZEPHIR_INIT_VAR(&classAnnotations); - ZEPHIR_CALL_METHOD(&_0$$3, &reflection, "getfilename", NULL, 158); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1$$3, &reflection, "getstartline", NULL, 159); - zephir_check_call_status(); - ZEPHIR_LAST_CALL_STATUS = phannot_parse_annotations(&classAnnotations, &comment, &_0$$3, &_1$$3); - zephir_check_call_status(); - if (Z_TYPE_P(&classAnnotations) == IS_ARRAY) { - zephir_array_update_string(&annotations, SL("class"), &classAnnotations, PH_COPY | PH_SEPARATE); - } + RETURN_MM(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_Text) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, Text, phalcon, forms_element_text, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_text_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Forms_Element_Text, render) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *attributes_param = NULL, _1; + zval attributes; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &attributes_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); } - ZEPHIR_CALL_METHOD(&properties, &reflection, "getproperties", NULL, 160); + + + ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes); zephir_check_call_status(); - if (zephir_fast_count_int(&properties)) { - line = 1; - ZEPHIR_INIT_VAR(&annotationsProperties); - array_init(&annotationsProperties); - zephir_is_iterable(&properties, 0, "phalcon/Annotations/Reader.zep", 92); - if (Z_TYPE_P(&properties) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&properties), _2$$5) - { - ZEPHIR_INIT_NVAR(&property); - ZVAL_COPY(&property, _2$$5); - ZEPHIR_CALL_METHOD(&comment, &property, "getdoccomment", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&comment) == IS_STRING) { - ZEPHIR_INIT_NVAR(&propertyAnnotations); - ZEPHIR_CALL_METHOD(&_4$$7, &reflection, "getfilename", NULL, 158); - zephir_check_call_status(); - ZVAL_LONG(&_5$$7, line); - ZEPHIR_LAST_CALL_STATUS = phannot_parse_annotations(&propertyAnnotations, &comment, &_4$$7, &_5$$7); - zephir_check_call_status(); - if (Z_TYPE_P(&propertyAnnotations) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&_6$$8); - zephir_read_property(&_6$$8, &property, ZEND_STRL("name"), PH_NOISY_CC); - zephir_array_update_zval(&annotationsProperties, &_6$$8, &propertyAnnotations, PH_COPY | PH_SEPARATE); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &properties, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3$$5, &properties, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3$$5)) { - break; - } - ZEPHIR_CALL_METHOD(&property, &properties, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&comment, &property, "getdoccomment", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&comment) == IS_STRING) { - ZEPHIR_INIT_NVAR(&propertyAnnotations); - ZEPHIR_CALL_METHOD(&_7$$10, &reflection, "getfilename", NULL, 158); - zephir_check_call_status(); - ZVAL_LONG(&_8$$10, line); - ZEPHIR_LAST_CALL_STATUS = phannot_parse_annotations(&propertyAnnotations, &comment, &_7$$10, &_8$$10); - zephir_check_call_status(); - if (Z_TYPE_P(&propertyAnnotations) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&_9$$11); - zephir_read_property(&_9$$11, &property, ZEND_STRL("name"), PH_NOISY_CC); - zephir_array_update_zval(&annotationsProperties, &_9$$11, &propertyAnnotations, PH_COPY | PH_SEPARATE); - } - } - ZEPHIR_CALL_METHOD(NULL, &properties, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&property); - if (zephir_fast_count_int(&annotationsProperties)) { - zephir_array_update_string(&annotations, SL("properties"), &annotationsProperties, PH_COPY | PH_SEPARATE); - } - } - ZEPHIR_CALL_METHOD(&methods, &reflection, "getmethods", NULL, 161); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "textfield", &_0, 0, &_1); zephir_check_call_status(); - if (zephir_fast_count_int(&methods)) { - ZEPHIR_INIT_VAR(&annotationsMethods); - array_init(&annotationsMethods); - zephir_is_iterable(&methods, 0, "phalcon/Annotations/Reader.zep", 127); - if (Z_TYPE_P(&methods) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&methods), _10$$13) - { - ZEPHIR_INIT_NVAR(&method); - ZVAL_COPY(&method, _10$$13); - ZEPHIR_CALL_METHOD(&comment, &method, "getdoccomment", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&comment) == IS_STRING) { - ZEPHIR_INIT_NVAR(&methodAnnotations); - ZEPHIR_CALL_METHOD(&_12$$15, &method, "getfilename", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_13$$15, &method, "getstartline", NULL, 0); - zephir_check_call_status(); - ZEPHIR_LAST_CALL_STATUS = phannot_parse_annotations(&methodAnnotations, &comment, &_12$$15, &_13$$15); - zephir_check_call_status(); - if (Z_TYPE_P(&methodAnnotations) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&_14$$16); - zephir_read_property(&_14$$16, &method, ZEND_STRL("name"), PH_NOISY_CC); - zephir_array_update_zval(&annotationsMethods, &_14$$16, &methodAnnotations, PH_COPY | PH_SEPARATE); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &methods, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_11$$13, &methods, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_11$$13)) { - break; - } - ZEPHIR_CALL_METHOD(&method, &methods, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&comment, &method, "getdoccomment", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&comment) == IS_STRING) { - ZEPHIR_INIT_NVAR(&methodAnnotations); - ZEPHIR_CALL_METHOD(&_15$$18, &method, "getfilename", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_16$$18, &method, "getstartline", NULL, 0); - zephir_check_call_status(); - ZEPHIR_LAST_CALL_STATUS = phannot_parse_annotations(&methodAnnotations, &comment, &_15$$18, &_16$$18); - zephir_check_call_status(); - if (Z_TYPE_P(&methodAnnotations) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&_17$$19); - zephir_read_property(&_17$$19, &method, ZEND_STRL("name"), PH_NOISY_CC); - zephir_array_update_zval(&annotationsMethods, &_17$$19, &methodAnnotations, PH_COPY | PH_SEPARATE); - } - } - ZEPHIR_CALL_METHOD(NULL, &methods, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&method); - if (zephir_fast_count_int(&annotationsMethods)) { - zephir_array_update_string(&annotations, SL("methods"), &annotationsMethods, PH_COPY | PH_SEPARATE); - } - } - RETURN_CTOR(&annotations); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Annotations_Reader, parseDocBlock) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_TextArea) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, TextArea, phalcon, forms_element_textarea, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_textarea_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Forms_Element_TextArea, render) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *docBlock_param = NULL, *file = NULL, file_sub, *line = NULL, line_sub, __$null; - zval docBlock; + zephir_fcall_cache_entry *_0 = NULL; + zval *attributes_param = NULL, _1; + zval attributes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&docBlock); - ZVAL_UNDEF(&file_sub); - ZVAL_UNDEF(&line_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(docBlock) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(file) - Z_PARAM_ZVAL_OR_NULL(line) + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &docBlock_param, &file, &line); - zephir_get_strval(&docBlock, docBlock_param); - if (!file) { - file = &file_sub; - ZEPHIR_CPY_WRT(file, &__$null); + zephir_fetch_params(1, 0, 1, &attributes_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); } else { - ZEPHIR_SEPARATE_PARAM(file); - } - if (!line) { - line = &line_sub; - line = &__$null; + zephir_get_arrval(&attributes, attributes_param); } - if (Z_TYPE_P(file) != IS_STRING) { - ZEPHIR_INIT_NVAR(file); - ZVAL_STRING(file, "eval code"); - } - ZEPHIR_LAST_CALL_STATUS = phannot_parse_annotations(return_value, &docBlock, file, line); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "textarea", &_0, 0, &_1); zephir_check_call_status(); RETURN_MM(); } @@ -35059,15 +33924,52 @@ static PHP_METHOD(Phalcon_Annotations_Reader, parseDocBlock) -ZEPHIR_INIT_CLASS(Phalcon_Annotations_ReaderInterface) +ZEPHIR_INIT_CLASS(Phalcon_Html_Attributes) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Annotations, ReaderInterface, phalcon, annotations_readerinterface, phalcon_annotations_readerinterface_method_entry); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html, Attributes, phalcon, html_attributes, phalcon_collection_ce, phalcon_html_attributes_method_entry, 0); + zend_class_implements(phalcon_html_attributes_ce, 1, phalcon_html_attributes_renderinterface_ce); return SUCCESS; } -ZEPHIR_DOC_METHOD(Phalcon_Annotations_ReaderInterface, parse); -ZEPHIR_DOC_METHOD(Phalcon_Annotations_ReaderInterface, parseDocBlock); +static PHP_METHOD(Phalcon_Html_Attributes, render) +{ + zval _1, _2; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&_1, this_ptr, "toarray", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, ""); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "renderattributes", &_0, 0, &_2, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Html_Attributes, __toString) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + + + ZEPHIR_MM_GROW(); + + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "render", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); +} + @@ -35078,273 +33980,289 @@ ZEPHIR_DOC_METHOD(Phalcon_Annotations_ReaderInterface, parseDocBlock); -ZEPHIR_INIT_CLASS(Phalcon_Annotations_Reflection) +ZEPHIR_INIT_CLASS(Phalcon_Html_Breadcrumbs) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Annotations, Reflection, phalcon, annotations_reflection, phalcon_annotations_reflection_method_entry, 0); + ZEPHIR_REGISTER_CLASS(Phalcon\\Html, Breadcrumbs, phalcon, html_breadcrumbs, phalcon_html_breadcrumbs_method_entry, 0); - zend_declare_property_null(phalcon_annotations_reflection_ce, SL("classAnnotations"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_annotations_reflection_ce, SL("methodAnnotations"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_annotations_reflection_ce, SL("propertyAnnotations"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_annotations_reflection_ce, SL("reflectionData"), ZEND_ACC_PROTECTED); - phalcon_annotations_reflection_ce->create_object = zephir_init_properties_Phalcon_Annotations_Reflection; + zend_declare_property_null(phalcon_html_breadcrumbs_ce, SL("elements"), ZEND_ACC_PRIVATE); + zend_declare_property_string(phalcon_html_breadcrumbs_ce, SL("separator"), " / ", ZEND_ACC_PRIVATE); + zend_declare_property_string(phalcon_html_breadcrumbs_ce, SL("template"), "
%label%
", ZEND_ACC_PRIVATE); + phalcon_html_breadcrumbs_ce->create_object = zephir_init_properties_Phalcon_Html_Breadcrumbs; return SUCCESS; } -static PHP_METHOD(Phalcon_Annotations_Reflection, __construct) +static PHP_METHOD(Phalcon_Html_Breadcrumbs, getSeparator) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "separator"); +} + +static PHP_METHOD(Phalcon_Html_Breadcrumbs, setSeparator) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *reflectionData_param = NULL; - zval reflectionData; + zval *separator_param = NULL; + zval separator; zval *this_ptr = getThis(); - ZVAL_UNDEF(&reflectionData); + ZVAL_UNDEF(&separator); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(separator) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &separator_param); + zephir_get_strval(&separator, separator_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("separator"), &separator); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Html_Breadcrumbs, add) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *label_param = NULL, *link_param = NULL; + zval label, link; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&label); + ZVAL_UNDEF(&link); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(label) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(reflectionData) + Z_PARAM_STR(link) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &reflectionData_param); - if (!reflectionData_param) { - ZEPHIR_INIT_VAR(&reflectionData); - array_init(&reflectionData); + zephir_fetch_params(1, 1, 1, &label_param, &link_param); + zephir_get_strval(&label, label_param); + if (!link_param) { + ZEPHIR_INIT_VAR(&link); + ZVAL_STRING(&link, ""); } else { - zephir_get_arrval(&reflectionData, reflectionData_param); + zephir_get_strval(&link, link_param); } - zephir_update_property_zval(this_ptr, ZEND_STRL("reflectionData"), &reflectionData); - ZEPHIR_MM_RESTORE(); + zephir_update_property_array(this_ptr, SL("elements"), &link, &label); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Annotations_Reflection, getClassAnnotations) +static PHP_METHOD(Phalcon_Html_Breadcrumbs, clear) { + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval __$true, __$false, reflectionClass, _0, _1$$3, _2$$4; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&reflectionClass); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("classAnnotations"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("reflectionData"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_string_fetch(&reflectionClass, &_1$$3, SL("class"), 1)) { - ZEPHIR_INIT_VAR(&_2$$4); - object_init_ex(&_2$$4, phalcon_annotations_collection_ce); - ZEPHIR_CALL_METHOD(NULL, &_2$$4, "__construct", NULL, 48, &reflectionClass); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("classAnnotations"), &_2$$4); - } else { - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("classAnnotations"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("classAnnotations"), &__$false); - } - } - } - RETURN_MM_MEMBER(getThis(), "classAnnotations"); + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("elements"), &_0); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Annotations_Reflection, getMethodsAnnotations) +static PHP_METHOD(Phalcon_Html_Breadcrumbs, remove) { - zend_string *_6$$5; - zend_ulong _5$$5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval __$true, __$false, reflectionMethods, methodName, reflectionMethod, _0, _1$$3, _2$$5, *_3$$5, _4$$5, _7$$6, _9$$7; - zephir_fcall_cache_entry *_8 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval *link_param = NULL, elements, _0; + zval link; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&reflectionMethods); - ZVAL_UNDEF(&methodName); - ZVAL_UNDEF(&reflectionMethod); + ZVAL_UNDEF(&link); + ZVAL_UNDEF(&elements); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$5); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_9$$7); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(link) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &link_param); + zephir_get_strval(&link, link_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("methodAnnotations"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_OBS_VAR(&reflectionMethods); - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("reflectionData"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_string_fetch(&reflectionMethods, &_1$$3, SL("methods"), 0)) { - if (zephir_fast_count_int(&reflectionMethods)) { - ZEPHIR_INIT_VAR(&_2$$5); - array_init(&_2$$5); - zephir_update_property_zval(this_ptr, ZEND_STRL("methodAnnotations"), &_2$$5); - zephir_is_iterable(&reflectionMethods, 0, "phalcon/Annotations/Reflection.zep", 100); - if (Z_TYPE_P(&reflectionMethods) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&reflectionMethods), _5$$5, _6$$5, _3$$5) - { - ZEPHIR_INIT_NVAR(&methodName); - if (_6$$5 != NULL) { - ZVAL_STR_COPY(&methodName, _6$$5); - } else { - ZVAL_LONG(&methodName, _5$$5); - } - ZEPHIR_INIT_NVAR(&reflectionMethod); - ZVAL_COPY(&reflectionMethod, _3$$5); - ZEPHIR_INIT_NVAR(&_7$$6); - object_init_ex(&_7$$6, phalcon_annotations_collection_ce); - ZEPHIR_CALL_METHOD(NULL, &_7$$6, "__construct", &_8, 48, &reflectionMethod); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("methodAnnotations"), &methodName, &_7$$6); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &reflectionMethods, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_4$$5, &reflectionMethods, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_4$$5)) { - break; - } - ZEPHIR_CALL_METHOD(&methodName, &reflectionMethods, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&reflectionMethod, &reflectionMethods, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_9$$7); - object_init_ex(&_9$$7, phalcon_annotations_collection_ce); - ZEPHIR_CALL_METHOD(NULL, &_9$$7, "__construct", &_8, 48, &reflectionMethod); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("methodAnnotations"), &methodName, &_9$$7); - ZEPHIR_CALL_METHOD(NULL, &reflectionMethods, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&reflectionMethod); - ZEPHIR_INIT_NVAR(&methodName); - RETURN_MM_MEMBER(getThis(), "methodAnnotations"); - } - } - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("methodAnnotations"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("methodAnnotations"), &__$false); - } - } - RETURN_MM_MEMBER(getThis(), "methodAnnotations"); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&elements, &_0); + zephir_array_unset(&elements, &link, PH_SEPARATE); + zephir_update_property_zval(this_ptr, ZEND_STRL("elements"), &elements); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Annotations_Reflection, getPropertiesAnnotations) +static PHP_METHOD(Phalcon_Html_Breadcrumbs, render) { - zend_string *_6$$5; - zend_ulong _5$$5; + zval _6$$3, _8$$3, _10$$4, _12$$4, _15$$6, _17$$6; + zend_string *_4; + zend_ulong _3; + zval element, elements, lastLabel, lastUrl, output, template, url, urls, _0, *_1, _2, _18, _19, _5$$3, _7$$3, _9$$4, _11$$4, _13$$5, _14$$6, _16$$6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval __$true, __$false, reflectionProperties, property, reflectionProperty, _0, _1$$3, _2$$5, *_3$$5, _4$$5, _7$$6, _9$$7; - zephir_fcall_cache_entry *_8 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&reflectionProperties); - ZVAL_UNDEF(&property); - ZVAL_UNDEF(&reflectionProperty); + ZVAL_UNDEF(&element); + ZVAL_UNDEF(&elements); + ZVAL_UNDEF(&lastLabel); + ZVAL_UNDEF(&lastUrl); + ZVAL_UNDEF(&output); + ZVAL_UNDEF(&template); + ZVAL_UNDEF(&url); + ZVAL_UNDEF(&urls); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$5); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_9$$7); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_18); + ZVAL_UNDEF(&_19); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&_11$$4); + ZVAL_UNDEF(&_13$$5); + ZVAL_UNDEF(&_14$$6); + ZVAL_UNDEF(&_16$$6); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_8$$3); + ZVAL_UNDEF(&_10$$4); + ZVAL_UNDEF(&_12$$4); + ZVAL_UNDEF(&_15$$6); + ZVAL_UNDEF(&_17$$6); ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("propertyAnnotations"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_OBS_VAR(&reflectionProperties); - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("reflectionData"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_string_fetch(&reflectionProperties, &_1$$3, SL("properties"), 0)) { - if (zephir_fast_count_int(&reflectionProperties)) { - ZEPHIR_INIT_VAR(&_2$$5); - array_init(&_2$$5); - zephir_update_property_zval(this_ptr, ZEND_STRL("propertyAnnotations"), &_2$$5); - zephir_is_iterable(&reflectionProperties, 0, "phalcon/Annotations/Reflection.zep", 128); - if (Z_TYPE_P(&reflectionProperties) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&reflectionProperties), _5$$5, _6$$5, _3$$5) - { - ZEPHIR_INIT_NVAR(&property); - if (_6$$5 != NULL) { - ZVAL_STR_COPY(&property, _6$$5); - } else { - ZVAL_LONG(&property, _5$$5); - } - ZEPHIR_INIT_NVAR(&reflectionProperty); - ZVAL_COPY(&reflectionProperty, _3$$5); - ZEPHIR_INIT_NVAR(&_7$$6); - object_init_ex(&_7$$6, phalcon_annotations_collection_ce); - ZEPHIR_CALL_METHOD(NULL, &_7$$6, "__construct", &_8, 48, &reflectionProperty); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("propertyAnnotations"), &property, &_7$$6); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &reflectionProperties, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_4$$5, &reflectionProperties, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_4$$5)) { - break; - } - ZEPHIR_CALL_METHOD(&property, &reflectionProperties, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&reflectionProperty, &reflectionProperties, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_9$$7); - object_init_ex(&_9$$7, phalcon_annotations_collection_ce); - ZEPHIR_CALL_METHOD(NULL, &_9$$7, "__construct", &_8, 48, &reflectionProperty); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("propertyAnnotations"), &property, &_9$$7); - ZEPHIR_CALL_METHOD(NULL, &reflectionProperties, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&reflectionProperty); - ZEPHIR_INIT_NVAR(&property); - RETURN_MM_MEMBER(getThis(), "propertyAnnotations"); + ZEPHIR_INIT_VAR(&output); + array_init(&output); + zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&elements, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("template"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&template, &_0); + ZEPHIR_INIT_VAR(&urls); + zephir_array_keys(&urls, &elements); + ZEPHIR_MAKE_REF(&urls); + ZEPHIR_CALL_FUNCTION(&lastUrl, "end", NULL, 257, &urls); + ZEPHIR_UNREF(&urls); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&lastLabel); + zephir_array_fetch(&lastLabel, &elements, &lastUrl, PH_NOISY, "phalcon/Html/Breadcrumbs.zep", 112); + zephir_array_unset(&elements, &lastUrl, PH_SEPARATE); + zephir_is_iterable(&elements, 0, "phalcon/Html/Breadcrumbs.zep", 133); + if (Z_TYPE_P(&elements) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&elements), _3, _4, _1) + { + ZEPHIR_INIT_NVAR(&url); + if (_4 != NULL) { + ZVAL_STR_COPY(&url, _4); + } else { + ZVAL_LONG(&url, _3); } - } - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("propertyAnnotations"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("propertyAnnotations"), &__$false); + ZEPHIR_INIT_NVAR(&element); + ZVAL_COPY(&element, _1); + ZEPHIR_INIT_NVAR(&_5$$3); + ZEPHIR_INIT_NVAR(&_6$$3); + zephir_create_array(&_6$$3, 2, 0); + ZEPHIR_INIT_NVAR(&_7$$3); + ZVAL_STRING(&_7$$3, "%label%"); + zephir_array_fast_append(&_6$$3, &_7$$3); + ZEPHIR_INIT_NVAR(&_7$$3); + ZVAL_STRING(&_7$$3, "%link%"); + zephir_array_fast_append(&_6$$3, &_7$$3); + ZEPHIR_INIT_NVAR(&_8$$3); + zephir_create_array(&_8$$3, 2, 0); + zephir_array_fast_append(&_8$$3, &element); + zephir_array_fast_append(&_8$$3, &url); + zephir_fast_str_replace(&_5$$3, &_6$$3, &_8$$3, &template); + zephir_array_append(&output, &_5$$3, PH_SEPARATE, "phalcon/Html/Breadcrumbs.zep", 127); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &elements, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &elements, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&url, &elements, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&element, &elements, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_9$$4); + ZEPHIR_INIT_NVAR(&_10$$4); + zephir_create_array(&_10$$4, 2, 0); + ZEPHIR_INIT_NVAR(&_11$$4); + ZVAL_STRING(&_11$$4, "%label%"); + zephir_array_fast_append(&_10$$4, &_11$$4); + ZEPHIR_INIT_NVAR(&_11$$4); + ZVAL_STRING(&_11$$4, "%link%"); + zephir_array_fast_append(&_10$$4, &_11$$4); + ZEPHIR_INIT_NVAR(&_12$$4); + zephir_create_array(&_12$$4, 2, 0); + zephir_array_fast_append(&_12$$4, &element); + zephir_array_fast_append(&_12$$4, &url); + zephir_fast_str_replace(&_9$$4, &_10$$4, &_12$$4, &template); + zephir_array_append(&output, &_9$$4, PH_SEPARATE, "phalcon/Html/Breadcrumbs.zep", 127); + ZEPHIR_CALL_METHOD(NULL, &elements, "next", NULL, 0); + zephir_check_call_status(); } } - RETURN_MM_MEMBER(getThis(), "propertyAnnotations"); + ZEPHIR_INIT_NVAR(&element); + ZEPHIR_INIT_NVAR(&url); + if (0 != zephir_fast_count_int(&elements)) { + ZEPHIR_INIT_VAR(&_13$$5); + ZEPHIR_CONCAT_SVS(&_13$$5, "
", &lastLabel, "
"); + zephir_array_append(&output, &_13$$5, PH_SEPARATE, "phalcon/Html/Breadcrumbs.zep", 134); + } else { + ZEPHIR_INIT_VAR(&_14$$6); + ZEPHIR_INIT_VAR(&_15$$6); + zephir_create_array(&_15$$6, 2, 0); + ZEPHIR_INIT_VAR(&_16$$6); + ZVAL_STRING(&_16$$6, "%label%"); + zephir_array_fast_append(&_15$$6, &_16$$6); + ZEPHIR_INIT_NVAR(&_16$$6); + ZVAL_STRING(&_16$$6, "%link%"); + zephir_array_fast_append(&_15$$6, &_16$$6); + ZEPHIR_INIT_VAR(&_17$$6); + zephir_create_array(&_17$$6, 2, 0); + zephir_array_fast_append(&_17$$6, &lastLabel); + zephir_array_fast_append(&_17$$6, &lastUrl); + zephir_fast_str_replace(&_14$$6, &_15$$6, &_17$$6, &template); + zephir_array_append(&output, &_14$$6, PH_SEPARATE, "phalcon/Html/Breadcrumbs.zep", 146); + } + ZEPHIR_INIT_VAR(&_18); + zephir_read_property(&_0, this_ptr, ZEND_STRL("separator"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_19); + ZEPHIR_CONCAT_SVS(&_19, "
", &_0, "
"); + zephir_fast_join(&_18, &_19, &output); + ZEPHIR_CONCAT_SVS(return_value, "
", &_18, "
"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Annotations_Reflection, getReflectionData) +static PHP_METHOD(Phalcon_Html_Breadcrumbs, toArray) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "reflectionData"); + RETURN_MEMBER(getThis(), "elements"); } -zend_object *zephir_init_properties_Phalcon_Annotations_Reflection(zend_class_entry *class_type) +zend_object *zephir_init_properties_Phalcon_Html_Breadcrumbs(zend_class_entry *class_type) { zval _0, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; @@ -35357,11 +34275,11 @@ zend_object *zephir_init_properties_Phalcon_Annotations_Reflection(zend_class_en { zval local_this_ptr, *this_ptr = &local_this_ptr; ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("reflectionData"), PH_NOISY_CC | PH_READONLY); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); if (Z_TYPE_P(&_0) == IS_NULL) { ZEPHIR_INIT_VAR(&_1$$3); array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("reflectionData"), &_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("elements"), &_1$$3); } ZEPHIR_MM_RESTORE(); return Z_OBJ_P(this_ptr); @@ -35370,882 +34288,24 @@ zend_object *zephir_init_properties_Phalcon_Annotations_Reflection(zend_class_en -/* Generated by re2c 1.1.1 */ -/* scanner.re - * This file is part of the Phalcon Framework. - * - * (c) Phalcon Team - * - * For the full copyright and license information, please view the - * LICENSE.txt file that was distributed with this source code. - */ - - - -#define AACTYPE unsigned char -#define AACURSOR (s->start) -#define AALIMIT (s->end) -#define AAMARKER q - -static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *token) { - - char next, *q = AACURSOR, *start = AACURSOR; - int status = PHANNOT_SCANNER_RETCODE_IMPOSSIBLE; - - while (PHANNOT_SCANNER_RETCODE_IMPOSSIBLE == status) { - - if (s->mode == PHANNOT_MODE_RAW) { - - if (*AACURSOR == '\n') { - s->active_line++; - } - - next = *(AACURSOR+1); - if (*AACURSOR == '\0' || *AACURSOR == '@') { - if ((next >= 'A' && next <= 'Z') || (next >= 'a' && next <= 'z')) { - s->mode = PHANNOT_MODE_ANNOTATION; - continue; - } - } +#ifdef HAVE_CONFIG_H +#endif - ++AACURSOR; - token->opcode = PHANNOT_T_IGNORE; - return 0; - } else { - - { - AACTYPE aach; - unsigned int aaaccept = 0; - aach = *AACURSOR; - switch (aach) { - case 0x00: goto aa2; - case '\t': - case '\r': - case ' ': goto aa6; - case '\n': goto aa9; - case '"': goto aa11; - case '\'': goto aa12; - case '(': goto aa13; - case ')': goto aa15; - case ',': goto aa17; - case '-': goto aa19; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto aa20; - case ':': goto aa23; - case '=': goto aa25; - case '@': goto aa27; - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto aa29; - case 'F': - case 'f': goto aa32; - case 'N': - case 'n': goto aa33; - case 'T': - case 't': goto aa34; - case '[': goto aa35; - case '\\': goto aa37; - case ']': goto aa38; - case '{': goto aa40; - case '}': goto aa42; - default: goto aa4; - } -aa2: - ++AACURSOR; - { - status = PHANNOT_SCANNER_RETCODE_EOF; - break; - } -aa4: - ++AACURSOR; -aa5: - { - status = PHANNOT_SCANNER_RETCODE_ERR; - break; - } -aa6: - aach = *++AACURSOR; - switch (aach) { - case '\t': - case '\r': - case ' ': goto aa6; - default: goto aa8; - } -aa8: - { - token->opcode = PHANNOT_T_IGNORE; - return 0; - } -aa9: - ++AACURSOR; - { - s->active_line++; - token->opcode = PHANNOT_T_IGNORE; - return 0; - } -aa11: - aaaccept = 0; - aach = *(AAMARKER = ++AACURSOR); - if (aach <= 0x00) goto aa5; - goto aa45; -aa12: - aaaccept = 0; - aach = *(AAMARKER = ++AACURSOR); - if (aach <= 0x00) goto aa5; - goto aa51; -aa13: - ++AACURSOR; - { - token->opcode = PHANNOT_T_PARENTHESES_OPEN; - return 0; - } -aa15: - ++AACURSOR; - { - token->opcode = PHANNOT_T_PARENTHESES_CLOSE; - return 0; - } -aa17: - ++AACURSOR; - { - token->opcode = PHANNOT_T_COMMA; - return 0; - } -aa19: - aach = *++AACURSOR; - switch (aach) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto aa20; - default: goto aa5; - } -aa20: - aaaccept = 1; - aach = *(AAMARKER = ++AACURSOR); - switch (aach) { - case '.': goto aa53; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto aa20; - default: goto aa22; - } -aa22: - { - token->opcode = PHANNOT_T_INTEGER; - token->value = estrndup(start, AACURSOR - start); - token->len = AACURSOR - start; - q = AACURSOR; - return 0; - } -aa23: - ++AACURSOR; - { - token->opcode = PHANNOT_T_COLON; - return 0; - } -aa25: - ++AACURSOR; - { - token->opcode = PHANNOT_T_EQUALS; - return 0; - } -aa27: - ++AACURSOR; - { - token->opcode = PHANNOT_T_AT; - return 0; - } -aa29: - aaaccept = 2; - aach = *(AAMARKER = ++AACURSOR); -aa30: - switch (aach) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto aa29; - case '\\': goto aa54; - default: goto aa31; - } -aa31: - { - token->opcode = PHANNOT_T_IDENTIFIER; - token->value = estrndup(start, AACURSOR - start); - token->len = AACURSOR - start; - q = AACURSOR; - return 0; - } -aa32: - aaaccept = 2; - aach = *(AAMARKER = ++AACURSOR); - switch (aach) { - case 'A': - case 'a': goto aa55; - default: goto aa30; - } -aa33: - aaaccept = 2; - aach = *(AAMARKER = ++AACURSOR); - switch (aach) { - case 'U': - case 'u': goto aa56; - default: goto aa30; - } -aa34: - aaaccept = 2; - aach = *(AAMARKER = ++AACURSOR); - switch (aach) { - case 'R': - case 'r': goto aa57; - default: goto aa30; - } -aa35: - ++AACURSOR; - { - token->opcode = PHANNOT_T_SBRACKET_OPEN; - return 0; - } -aa37: - aach = *++AACURSOR; - switch (aach) { - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto aa29; - default: goto aa5; - } -aa38: - ++AACURSOR; - { - token->opcode = PHANNOT_T_SBRACKET_CLOSE; - return 0; - } -aa40: - ++AACURSOR; - { - token->opcode = PHANNOT_T_BRACKET_OPEN; - return 0; - } -aa42: - ++AACURSOR; - { - token->opcode = PHANNOT_T_BRACKET_CLOSE; - return 0; - } -aa44: - aach = *++AACURSOR; -aa45: - switch (aach) { - case 0x00: goto aa46; - case '"': goto aa47; - case '\\': goto aa49; - default: goto aa44; - } -aa46: - AACURSOR = AAMARKER; - switch (aaaccept) { - case 0: goto aa5; - case 1: goto aa22; - case 2: goto aa31; - case 3: goto aa66; - case 4: goto aa68; - default: goto aa70; - } -aa47: - ++AACURSOR; - { - token->opcode = PHANNOT_T_STRING; - token->value = estrndup(q, AACURSOR - q - 1); - token->len = AACURSOR - q - 1; - q = AACURSOR; - return 0; - } -aa49: - aach = *++AACURSOR; - switch (aach) { - case '\n': goto aa46; - default: goto aa44; - } -aa50: - aach = *++AACURSOR; -aa51: - switch (aach) { - case 0x00: goto aa46; - case '\'': goto aa47; - case '\\': goto aa52; - default: goto aa50; - } -aa52: - aach = *++AACURSOR; - switch (aach) { - case '\n': goto aa46; - default: goto aa50; - } -aa53: - aach = *++AACURSOR; - switch (aach) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto aa58; - default: goto aa46; - } -aa54: - aach = *++AACURSOR; - switch (aach) { - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto aa29; - default: goto aa46; - } -aa55: - aaaccept = 2; - aach = *(AAMARKER = ++AACURSOR); - switch (aach) { - case 'L': - case 'l': goto aa61; - default: goto aa30; - } -aa56: - aaaccept = 2; - aach = *(AAMARKER = ++AACURSOR); - switch (aach) { - case 'L': - case 'l': goto aa62; - default: goto aa30; - } -aa57: - aaaccept = 2; - aach = *(AAMARKER = ++AACURSOR); - switch (aach) { - case 'U': - case 'u': goto aa63; - default: goto aa30; - } -aa58: - aach = *++AACURSOR; - switch (aach) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto aa58; - default: goto aa60; - } -aa60: - { - token->opcode = PHANNOT_T_DOUBLE; - token->value = estrndup(start, AACURSOR - start); - token->len = AACURSOR - start; - q = AACURSOR; - return 0; - } -aa61: - aaaccept = 2; - aach = *(AAMARKER = ++AACURSOR); - switch (aach) { - case 'S': - case 's': goto aa64; - default: goto aa30; - } -aa62: - aaaccept = 2; - aach = *(AAMARKER = ++AACURSOR); - switch (aach) { - case 'L': - case 'l': goto aa65; - default: goto aa30; - } -aa63: - aaaccept = 2; - aach = *(AAMARKER = ++AACURSOR); - switch (aach) { - case 'E': - case 'e': goto aa67; - default: goto aa30; - } -aa64: - aaaccept = 2; - aach = *(AAMARKER = ++AACURSOR); - switch (aach) { - case 'E': - case 'e': goto aa69; - default: goto aa30; - } -aa65: - aaaccept = 3; - aach = *(AAMARKER = ++AACURSOR); - switch (aach) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto aa29; - case '\\': goto aa54; - default: goto aa66; - } -aa66: - { - token->opcode = PHANNOT_T_NULL; - return 0; - } -aa67: - aaaccept = 4; - aach = *(AAMARKER = ++AACURSOR); - switch (aach) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto aa29; - case '\\': goto aa54; - default: goto aa68; - } -aa68: - { - token->opcode = PHANNOT_T_TRUE; - return 0; - } -aa69: - aaaccept = 5; - aach = *(AAMARKER = ++AACURSOR); - switch (aach) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto aa29; - case '\\': goto aa54; - default: goto aa70; - } -aa70: - { - token->opcode = PHANNOT_T_FALSE; - return 0; - } - } - } - } +ZEPHIR_INIT_CLASS(Phalcon_Html_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html, Exception, phalcon, html_exception, phalcon_exception_ce, NULL, 0); - return status; + return SUCCESS; } + #ifdef HAVE_CONFIG_H #endif @@ -36253,366 +34313,331 @@ static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *to -ZEPHIR_INIT_CLASS(Phalcon_Annotations_Adapter_AbstractAdapter) +ZEPHIR_INIT_CLASS(Phalcon_Html_TagFactory) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Annotations\\Adapter, AbstractAdapter, phalcon, annotations_adapter_abstractadapter, phalcon_annotations_adapter_abstractadapter_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_null(phalcon_annotations_adapter_abstractadapter_ce, SL("annotations"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_annotations_adapter_abstractadapter_ce, SL("reader"), ZEND_ACC_PROTECTED); - phalcon_annotations_adapter_abstractadapter_ce->create_object = zephir_init_properties_Phalcon_Annotations_Adapter_AbstractAdapter; + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html, TagFactory, phalcon, html_tagfactory, phalcon_factory_abstractfactory_ce, phalcon_html_tagfactory_method_entry, 0); - zend_class_implements(phalcon_annotations_adapter_abstractadapter_ce, 1, phalcon_annotations_adapter_adapterinterface_ce); + zend_declare_property_string(phalcon_html_tagfactory_ce, SL("exception"), "Phalcon\\Html\\Exception", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_html_tagfactory_ce, SL("escaper"), ZEND_ACC_PRIVATE); return SUCCESS; } -static PHP_METHOD(Phalcon_Annotations_Adapter_AbstractAdapter, get) +static PHP_METHOD(Phalcon_Html_TagFactory, __construct) { - zend_bool _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *className, className_sub, classAnnotations, parsedAnnotations, realClassName, reader, _0, _1$$5, _2$$5; + zval services; + zval *escaper, escaper_sub, *services_param = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&className_sub); - ZVAL_UNDEF(&classAnnotations); - ZVAL_UNDEF(&parsedAnnotations); - ZVAL_UNDEF(&realClassName); - ZVAL_UNDEF(&reader); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$5); - ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&escaper_sub); + ZVAL_UNDEF(&services); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(className) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_OBJECT_OF_CLASS(escaper, phalcon_escaper_escaperinterface_ce) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(services) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &className); - - - if (Z_TYPE_P(className) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&realClassName); - zephir_get_class(&realClassName, className, 0); + zephir_fetch_params(1, 1, 1, &escaper, &services_param); + if (!services_param) { + ZEPHIR_INIT_VAR(&services); + array_init(&services); } else { - ZEPHIR_CPY_WRT(&realClassName, className); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("annotations"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset(&_0, &realClassName)) { - zephir_read_property(&_1$$5, this_ptr, ZEND_STRL("annotations"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_2$$5, &_1$$5, &realClassName, PH_NOISY | PH_READONLY, "phalcon/Annotations/Adapter/AbstractAdapter.zep", 51); - RETURN_CTOR(&_2$$5); + ZEPHIR_OBS_COPY_OR_DUP(&services, services_param); } - ZEPHIR_CALL_METHOD(&classAnnotations, this_ptr, "read", NULL, 0, &realClassName); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("escaper"), escaper); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "init", NULL, 0, &services); zephir_check_call_status(); - _3 = Z_TYPE_P(&classAnnotations) == IS_NULL; - if (!(_3)) { - _3 = ZEPHIR_IS_FALSE_IDENTICAL(&classAnnotations); - } - if (_3) { - ZEPHIR_CALL_METHOD(&reader, this_ptr, "getreader", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&parsedAnnotations, &reader, "parse", NULL, 0, &realClassName); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&classAnnotations); - object_init_ex(&classAnnotations, phalcon_annotations_reflection_ce); - ZEPHIR_CALL_METHOD(NULL, &classAnnotations, "__construct", NULL, 46, &parsedAnnotations); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("annotations"), &realClassName, &classAnnotations); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "write", NULL, 0, &realClassName, &classAnnotations); - zephir_check_call_status(); - } - RETURN_CCTOR(&classAnnotations); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Annotations_Adapter_AbstractAdapter, getMethod) +static PHP_METHOD(Phalcon_Html_TagFactory, newInstance) { - zend_string *_3$$3; - zend_ulong _2$$3; + zval _2$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *className_param = NULL, *methodName_param = NULL, classAnnotations, methods, method, methodKey, *_0$$3, _1$$3, _4$$4, _6$$6; - zval className, methodName; + zval *name_param = NULL, definition, _0, _4, _5, _1$$3, _3$$3; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&methodName); - ZVAL_UNDEF(&classAnnotations); - ZVAL_UNDEF(&methods); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&methodKey); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_6$$6); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_2$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(className) - Z_PARAM_STR(methodName) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &className_param, &methodName_param); - zephir_get_strval(&className, className_param); - zephir_get_strval(&methodName, methodName_param); + zephir_fetch_params(1, 1, 0, &name_param); + zephir_get_strval(&name, name_param); - ZEPHIR_CALL_METHOD(&classAnnotations, this_ptr, "get", NULL, 0, &className); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&methods, &classAnnotations, "getmethodsannotations", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&methods) == IS_ARRAY) { - zephir_is_iterable(&methods, 0, "phalcon/Annotations/Adapter/AbstractAdapter.zep", 94); - if (Z_TYPE_P(&methods) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&methods), _2$$3, _3$$3, _0$$3) - { - ZEPHIR_INIT_NVAR(&methodKey); - if (_3$$3 != NULL) { - ZVAL_STR_COPY(&methodKey, _3$$3); - } else { - ZVAL_LONG(&methodKey, _2$$3); - } - ZEPHIR_INIT_NVAR(&method); - ZVAL_COPY(&method, _0$$3); - ZEPHIR_CALL_FUNCTION(&_4$$4, "strcasecmp", &_5, 47, &methodKey, &methodName); - zephir_check_call_status(); - if (!(zephir_is_true(&_4$$4))) { - RETURN_CCTOR(&method); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &methods, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1$$3, &methods, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&methodKey, &methods, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&method, &methods, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_6$$6, "strcasecmp", &_5, 47, &methodKey, &methodName); - zephir_check_call_status(); - if (!(zephir_is_true(&_6$$6))) { - RETURN_CCTOR(&method); - } - ZEPHIR_CALL_METHOD(NULL, &methods, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&method); - ZEPHIR_INIT_NVAR(&methodKey); - } - object_init_ex(return_value, phalcon_annotations_collection_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 48); - zephir_check_call_status(); - RETURN_MM(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("services"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset(&_0, &name))) { + ZEPHIR_CALL_METHOD(&definition, this_ptr, "getservice", NULL, 0, &name); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1$$3); + ZEPHIR_INIT_VAR(&_2$$3); + zephir_create_array(&_2$$3, 1, 0); + ZEPHIR_OBS_VAR(&_3$$3); + zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("escaper"), PH_NOISY_CC); + zephir_array_fast_append(&_2$$3, &_3$$3); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(&_1$$3, &definition, &_2$$3); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("services"), &name, &_1$$3); + } + zephir_read_property(&_4, this_ptr, ZEND_STRL("services"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_5, &_4, &name, PH_NOISY | PH_READONLY, "phalcon/Html/TagFactory.zep", 59); + RETURN_CTOR(&_5); } -static PHP_METHOD(Phalcon_Annotations_Adapter_AbstractAdapter, getMethods) +static PHP_METHOD(Phalcon_Html_TagFactory, getAdapters) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *className_param = NULL, classAnnotations; - zval className; zval *this_ptr = getThis(); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&classAnnotations); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(className) - ZEND_PARSE_PARAMETERS_END(); + + + zephir_create_array(return_value, 41, 0); + add_assoc_stringl_ex(return_value, SL("a"), SL("Phalcon\\Html\\Helper\\Anchor")); + add_assoc_stringl_ex(return_value, SL("base"), SL("Phalcon\\Html\\Helper\\Base")); + add_assoc_stringl_ex(return_value, SL("body"), SL("Phalcon\\Html\\Helper\\Body")); + add_assoc_stringl_ex(return_value, SL("button"), SL("Phalcon\\Html\\Helper\\Button")); + add_assoc_stringl_ex(return_value, SL("close"), SL("Phalcon\\Html\\Helper\\Close")); + add_assoc_stringl_ex(return_value, SL("element"), SL("Phalcon\\Html\\Helper\\Element")); + add_assoc_stringl_ex(return_value, SL("form"), SL("Phalcon\\Html\\Helper\\Form")); + add_assoc_stringl_ex(return_value, SL("img"), SL("Phalcon\\Html\\Helper\\Img")); + add_assoc_stringl_ex(return_value, SL("inputColor"), SL("Phalcon\\Html\\Helper\\Input\\Color")); + add_assoc_stringl_ex(return_value, SL("inputDate"), SL("Phalcon\\Html\\Helper\\Input\\Date")); + add_assoc_stringl_ex(return_value, SL("inputDateTime"), SL("Phalcon\\Html\\Helper\\Input\\DateTime")); + add_assoc_stringl_ex(return_value, SL("inputDateTimeLocal"), SL("Phalcon\\Html\\Helper\\Input\\DateTimeLocal")); + add_assoc_stringl_ex(return_value, SL("inputEmail"), SL("Phalcon\\Html\\Helper\\Input\\Email")); + add_assoc_stringl_ex(return_value, SL("inputFile"), SL("Phalcon\\Html\\Helper\\Input\\File")); + add_assoc_stringl_ex(return_value, SL("inputHidden"), SL("Phalcon\\Html\\Helper\\Input\\Hidden")); + add_assoc_stringl_ex(return_value, SL("inputImage"), SL("Phalcon\\Html\\Helper\\Input\\Image")); + add_assoc_stringl_ex(return_value, SL("inputInput"), SL("Phalcon\\Html\\Helper\\Input\\Input")); + add_assoc_stringl_ex(return_value, SL("inputMonth"), SL("Phalcon\\Html\\Helper\\Input\\Month")); + add_assoc_stringl_ex(return_value, SL("inputNumeric"), SL("Phalcon\\Html\\Helper\\Input\\Numeric")); + add_assoc_stringl_ex(return_value, SL("inputPassword"), SL("Phalcon\\Html\\Helper\\Input\\Password")); + add_assoc_stringl_ex(return_value, SL("inputRange"), SL("Phalcon\\Html\\Helper\\Input\\Range")); + add_assoc_stringl_ex(return_value, SL("inputSelect"), SL("Phalcon\\Html\\Helper\\Input\\Select")); + add_assoc_stringl_ex(return_value, SL("inputSearch"), SL("Phalcon\\Html\\Helper\\Input\\Search")); + add_assoc_stringl_ex(return_value, SL("inputSubmit"), SL("Phalcon\\Html\\Helper\\Input\\Submit")); + add_assoc_stringl_ex(return_value, SL("inputTel"), SL("Phalcon\\Html\\Helper\\Input\\Tel")); + add_assoc_stringl_ex(return_value, SL("inputText"), SL("Phalcon\\Html\\Helper\\Input\\Text")); + add_assoc_stringl_ex(return_value, SL("inputTextarea"), SL("Phalcon\\Html\\Helper\\Input\\Textarea")); + add_assoc_stringl_ex(return_value, SL("inputTime"), SL("Phalcon\\Html\\Helper\\Input\\Time")); + add_assoc_stringl_ex(return_value, SL("inputUrl"), SL("Phalcon\\Html\\Helper\\Input\\Url")); + add_assoc_stringl_ex(return_value, SL("inputWeek"), SL("Phalcon\\Html\\Helper\\Input\\Week")); + add_assoc_stringl_ex(return_value, SL("label"), SL("Phalcon\\Html\\Helper\\Label")); + add_assoc_stringl_ex(return_value, SL("link"), SL("Phalcon\\Html\\Helper\\Link")); + add_assoc_stringl_ex(return_value, SL("meta"), SL("Phalcon\\Html\\Helper\\Meta")); + add_assoc_stringl_ex(return_value, SL("ol"), SL("Phalcon\\Html\\Helper\\Ol")); + add_assoc_stringl_ex(return_value, SL("script"), SL("Phalcon\\Html\\Helper\\Script")); + add_assoc_stringl_ex(return_value, SL("style"), SL("Phalcon\\Html\\Helper\\Style")); + add_assoc_stringl_ex(return_value, SL("title"), SL("Phalcon\\Html\\Helper\\Title")); + add_assoc_stringl_ex(return_value, SL("ul"), SL("Phalcon\\Html\\Helper\\Ul")); + return; +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &className_param); - zephir_get_strval(&className, className_param); - ZEPHIR_CALL_METHOD(&classAnnotations, this_ptr, "get", NULL, 0, &className); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&classAnnotations, "getmethodsannotations", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); + +ZEPHIR_INIT_CLASS(Phalcon_Html_Link_EvolvableLink) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Link, EvolvableLink, phalcon, html_link_evolvablelink, phalcon_html_link_link_ce, phalcon_html_link_evolvablelink_method_entry, 0); + + zend_class_implements(phalcon_html_link_evolvablelink_ce, 1, zephir_get_internal_ce(SL("psr\\link\\evolvablelinkinterface"))); + return SUCCESS; } -static PHP_METHOD(Phalcon_Annotations_Adapter_AbstractAdapter, getProperty) +static PHP_METHOD(Phalcon_Html_Link_EvolvableLink, withAttribute) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *className_param = NULL, *propertyName_param = NULL, classAnnotations, properties, property; - zval className, propertyName; + zval *attribute, attribute_sub, *value, value_sub, newInstance, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&propertyName); - ZVAL_UNDEF(&classAnnotations); - ZVAL_UNDEF(&properties); - ZVAL_UNDEF(&property); + ZVAL_UNDEF(&attribute_sub); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&newInstance); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(className) - Z_PARAM_STR(propertyName) + Z_PARAM_ZVAL(attribute) + Z_PARAM_ZVAL(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &className_param, &propertyName_param); - zephir_get_strval(&className, className_param); - zephir_get_strval(&propertyName, propertyName_param); + zephir_fetch_params(1, 2, 0, &attribute, &value); - ZEPHIR_CALL_METHOD(&classAnnotations, this_ptr, "get", NULL, 0, &className); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&properties, &classAnnotations, "getpropertiesannotations", NULL, 0); - zephir_check_call_status(); - if (!(zephir_array_isset_fetch(&property, &properties, &propertyName, 1))) { - object_init_ex(return_value, phalcon_annotations_collection_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 48); - zephir_check_call_status(); + ZEPHIR_INIT_VAR(&newInstance); + if (zephir_clone(&newInstance, this_ptr) == FAILURE) { RETURN_MM(); } - RETURN_CTOR(&property); + zephir_read_property(&_0, &newInstance, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "set", NULL, 0, attribute, value); + zephir_check_call_status(); + RETURN_CCTOR(&newInstance); } -static PHP_METHOD(Phalcon_Annotations_Adapter_AbstractAdapter, getProperties) +static PHP_METHOD(Phalcon_Html_Link_EvolvableLink, withHref) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *className_param = NULL, classAnnotations; - zval className; + zval *href, href_sub, newInstance, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&classAnnotations); + ZVAL_UNDEF(&href_sub); + ZVAL_UNDEF(&newInstance); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(className) + Z_PARAM_ZVAL(href) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &className_param); - zephir_get_strval(&className, className_param); + zephir_fetch_params(1, 1, 0, &href); - ZEPHIR_CALL_METHOD(&classAnnotations, this_ptr, "get", NULL, 0, &className); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&classAnnotations, "getpropertiesannotations", NULL, 0); + ZEPHIR_INIT_VAR(&newInstance); + if (zephir_clone(&newInstance, this_ptr) == FAILURE) { + RETURN_MM(); + } + zephir_update_property_zval(&newInstance, ZEND_STRL("href"), href); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "hrefistemplated", NULL, 0, href); zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_zval(&newInstance, ZEND_STRL("templated"), &_0); + RETURN_CCTOR(&newInstance); } -static PHP_METHOD(Phalcon_Annotations_Adapter_AbstractAdapter, getReader) +static PHP_METHOD(Phalcon_Html_Link_EvolvableLink, withRel) { - zval _0, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *rel, rel_sub, newInstance, _0, _1; zval *this_ptr = getThis(); + ZVAL_UNDEF(&rel_sub); + ZVAL_UNDEF(&newInstance); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(rel) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &rel); - ZEPHIR_OBS_VAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("reader"), PH_NOISY_CC); - if (Z_TYPE_P(&_0) != IS_OBJECT) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_annotations_reader_ce); - if (zephir_has_constructor(&_1$$3)) { - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 0); - zephir_check_call_status(); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("reader"), &_1$$3); + ZEPHIR_INIT_VAR(&newInstance); + if (zephir_clone(&newInstance, this_ptr) == FAILURE) { + RETURN_MM(); } - RETURN_MM_MEMBER(getThis(), "reader"); + zephir_read_property(&_0, &newInstance, ZEND_STRL("rels"), PH_NOISY_CC | PH_READONLY); + ZVAL_BOOL(&_1, 1); + ZEPHIR_CALL_METHOD(NULL, &_0, "set", NULL, 0, rel, &_1); + zephir_check_call_status(); + RETURN_CCTOR(&newInstance); } -static PHP_METHOD(Phalcon_Annotations_Adapter_AbstractAdapter, setReader) +static PHP_METHOD(Phalcon_Html_Link_EvolvableLink, withoutAttribute) { - zval *reader, reader_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *attribute, attribute_sub, newInstance, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&reader_sub); + ZVAL_UNDEF(&attribute_sub); + ZVAL_UNDEF(&newInstance); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(reader, phalcon_annotations_readerinterface_ce) + Z_PARAM_ZVAL(attribute) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &reader); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &attribute); - zephir_update_property_zval(this_ptr, ZEND_STRL("reader"), reader); + ZEPHIR_INIT_VAR(&newInstance); + if (zephir_clone(&newInstance, this_ptr) == FAILURE) { + RETURN_MM(); + } + zephir_read_property(&_0, &newInstance, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "remove", NULL, 0, attribute); + zephir_check_call_status(); + RETURN_CCTOR(&newInstance); } -zend_object *zephir_init_properties_Phalcon_Annotations_Adapter_AbstractAdapter(zend_class_entry *class_type) +static PHP_METHOD(Phalcon_Html_Link_EvolvableLink, withoutRel) { - zval _0, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("annotations"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("annotations"), &_1$$3); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *rel, rel_sub, newInstance, _0; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&rel_sub); + ZVAL_UNDEF(&newInstance); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(rel) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &rel); - -ZEPHIR_INIT_CLASS(Phalcon_Annotations_Adapter_AdapterInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Annotations\\Adapter, AdapterInterface, phalcon, annotations_adapter_adapterinterface, phalcon_annotations_adapter_adapterinterface_method_entry); - - return SUCCESS; + ZEPHIR_INIT_VAR(&newInstance); + if (zephir_clone(&newInstance, this_ptr) == FAILURE) { + RETURN_MM(); + } + zephir_read_property(&_0, &newInstance, ZEND_STRL("rels"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "remove", NULL, 0, rel); + zephir_check_call_status(); + RETURN_CCTOR(&newInstance); } -ZEPHIR_DOC_METHOD(Phalcon_Annotations_Adapter_AdapterInterface, get); -ZEPHIR_DOC_METHOD(Phalcon_Annotations_Adapter_AdapterInterface, getMethod); -ZEPHIR_DOC_METHOD(Phalcon_Annotations_Adapter_AdapterInterface, getMethods); -ZEPHIR_DOC_METHOD(Phalcon_Annotations_Adapter_AdapterInterface, getProperty); -ZEPHIR_DOC_METHOD(Phalcon_Annotations_Adapter_AdapterInterface, getProperties); -ZEPHIR_DOC_METHOD(Phalcon_Annotations_Adapter_AdapterInterface, getReader); -ZEPHIR_DOC_METHOD(Phalcon_Annotations_Adapter_AdapterInterface, setReader); @@ -36623,141 +34648,81 @@ ZEPHIR_DOC_METHOD(Phalcon_Annotations_Adapter_AdapterInterface, setReader); -ZEPHIR_INIT_CLASS(Phalcon_Annotations_Adapter_Apcu) +ZEPHIR_INIT_CLASS(Phalcon_Html_Link_EvolvableLinkProvider) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Annotations\\Adapter, Apcu, phalcon, annotations_adapter_apcu, phalcon_annotations_adapter_abstractadapter_ce, phalcon_annotations_adapter_apcu_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Link, EvolvableLinkProvider, phalcon, html_link_evolvablelinkprovider, phalcon_html_link_linkprovider_ce, phalcon_html_link_evolvablelinkprovider_method_entry, 0); - zend_declare_property_string(phalcon_annotations_adapter_apcu_ce, SL("prefix"), "", ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_annotations_adapter_apcu_ce, SL("ttl"), 172800, ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_html_link_evolvablelinkprovider_ce, 1, zephir_get_internal_ce(SL("psr\\link\\evolvablelinkproviderinterface"))); return SUCCESS; } -static PHP_METHOD(Phalcon_Annotations_Adapter_Apcu, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *options_param = NULL, prefix, ttl; - zval options; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&prefix); - ZVAL_UNDEF(&ttl); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &options_param); - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); - } else { - zephir_get_arrval(&options, options_param); - } - - - if (zephir_array_isset_string_fetch(&prefix, &options, SL("prefix"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &prefix); - } - if (zephir_array_isset_string_fetch(&ttl, &options, SL("lifetime"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("ttl"), &ttl); - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Annotations_Adapter_Apcu, read) +static PHP_METHOD(Phalcon_Html_Link_EvolvableLinkProvider, withLink) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, _0, _1, _2; - zval key; + zval *link, link_sub, key, newInstance; zval *this_ptr = getThis(); + ZVAL_UNDEF(&link_sub); ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&newInstance); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + Z_PARAM_OBJECT_OF_CLASS(link, zephir_get_internal_ce(SL("psr\\link\\linkinterface"))) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } + zephir_fetch_params(1, 1, 0, &link); - ZEPHIR_INIT_VAR(&_0); - zephir_read_property(&_1, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_2); - ZEPHIR_CONCAT_SVV(&_2, "_PHAN", &_1, &key); - zephir_fast_strtolower(&_0, &_2); - ZEPHIR_RETURN_CALL_FUNCTION("apcu_fetch", NULL, 121, &_0); + ZEPHIR_CALL_METHOD(&key, this_ptr, "getkey", NULL, 0, link); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_VAR(&newInstance); + if (zephir_clone(&newInstance, this_ptr) == FAILURE) { + RETURN_MM(); + } + zephir_update_property_array(&newInstance, SL("links"), &key, link); + RETURN_CCTOR(&newInstance); } -static PHP_METHOD(Phalcon_Annotations_Adapter_Apcu, write) +static PHP_METHOD(Phalcon_Html_Link_EvolvableLinkProvider, withoutLink) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *data, data_sub, _0, _1, _2, _3; - zval key; + zval *link, link_sub, key, links, newInstance, _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&link_sub); ZVAL_UNDEF(&key); - ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&links); + ZVAL_UNDEF(&newInstance); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(key) - Z_PARAM_OBJECT_OF_CLASS(data, phalcon_annotations_reflection_ce) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(link, zephir_get_internal_ce(SL("psr\\link\\linkinterface"))) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &key_param, &data); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } + zephir_fetch_params(1, 1, 0, &link); - ZEPHIR_INIT_VAR(&_0); - zephir_read_property(&_1, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_2); - ZEPHIR_CONCAT_SVV(&_2, "_PHAN", &_1, &key); - zephir_fast_strtolower(&_0, &_2); - zephir_read_property(&_3, this_ptr, ZEND_STRL("ttl"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_FUNCTION("apcu_store", NULL, 124, &_0, data, &_3); + ZEPHIR_CALL_METHOD(&key, this_ptr, "getkey", NULL, 0, link); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_VAR(&newInstance); + if (zephir_clone(&newInstance, this_ptr) == FAILURE) { + RETURN_MM(); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("links"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&links, &_0); + zephir_array_unset(&links, &key, PH_SEPARATE); + zephir_update_property_zval(&newInstance, ZEND_STRL("links"), &links); + RETURN_CCTOR(&newInstance); } @@ -36770,291 +34735,187 @@ static PHP_METHOD(Phalcon_Annotations_Adapter_Apcu, write) -ZEPHIR_INIT_CLASS(Phalcon_Annotations_Adapter_Memory) +ZEPHIR_INIT_CLASS(Phalcon_Html_Link_Link) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Annotations\\Adapter, Memory, phalcon, annotations_adapter_memory, phalcon_annotations_adapter_abstractadapter_ce, phalcon_annotations_adapter_memory_method_entry, 0); + ZEPHIR_REGISTER_CLASS(Phalcon\\Html\\Link, Link, phalcon, html_link_link, phalcon_html_link_link_method_entry, 0); - zend_declare_property_null(phalcon_annotations_adapter_memory_ce, SL("data"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_html_link_link_ce, SL("attributes"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_html_link_link_ce, SL("href"), "", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_html_link_link_ce, SL("rels"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_html_link_link_ce, SL("templated"), 0, ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_html_link_link_ce, 1, zephir_get_internal_ce(SL("psr\\link\\linkinterface"))); return SUCCESS; } -static PHP_METHOD(Phalcon_Annotations_Adapter_Memory, read) +static PHP_METHOD(Phalcon_Html_Link_Link, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *key_param = NULL, data, _0, _1; - zval key; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval attributes; + zval *rel_param = NULL, *href_param = NULL, *attributes_param = NULL, _0, _1, _2, _3$$3, _4$$3; + zval rel, href; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&data); + ZVAL_UNDEF(&rel); + ZVAL_UNDEF(&href); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_START(0, 3) + Z_PARAM_OPTIONAL + Z_PARAM_STR(rel) + Z_PARAM_STR(href) + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); + zephir_fetch_params(1, 0, 3, &rel_param, &href_param, &attributes_param); + if (!rel_param) { + ZEPHIR_INIT_VAR(&rel); + ZVAL_STRING(&rel, ""); + } else { + zephir_get_strval(&rel, rel_param); } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + if (!href_param) { + ZEPHIR_INIT_VAR(&href); + ZVAL_STRING(&href, ""); } else { - ZEPHIR_INIT_VAR(&key); + zephir_get_strval(&href, href_param); + } + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_0); + object_init_ex(&_0, phalcon_collection_ce); + ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 22); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("rels"), &_0); ZEPHIR_INIT_VAR(&_1); - zephir_fast_strtolower(&_1, &key); - if (!(zephir_array_isset_fetch(&data, &_0, &_1, 1))) { - RETURN_MM_BOOL(0); + object_init_ex(&_1, phalcon_collection_ce); + ZEPHIR_CALL_METHOD(NULL, &_1, "__construct", NULL, 22, &attributes); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &_1); + zephir_update_property_zval(this_ptr, ZEND_STRL("href"), &href); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "hrefistemplated", NULL, 0, &href); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("templated"), &_2); + if (!(ZEPHIR_IS_EMPTY(&rel))) { + zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("rels"), PH_NOISY_CC | PH_READONLY); + ZVAL_BOOL(&_4$$3, 1); + ZEPHIR_CALL_METHOD(NULL, &_3$$3, "set", NULL, 0, &rel, &_4$$3); + zephir_check_call_status(); } - RETURN_CTOR(&data); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Annotations_Adapter_Memory, write) +static PHP_METHOD(Phalcon_Html_Link_Link, getAttributes) { + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *key_param = NULL, *data, data_sub, lowercasedKey; - zval key; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&data_sub); - ZVAL_UNDEF(&lowercasedKey); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(key) - Z_PARAM_OBJECT_OF_CLASS(data, phalcon_annotations_reflection_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_0); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &key_param, &data); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } - - ZEPHIR_INIT_VAR(&lowercasedKey); - zephir_fast_strtolower(&lowercasedKey, &key); - zephir_update_property_array(this_ptr, SL("data"), &lowercasedKey, data); - ZEPHIR_MM_RESTORE(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "toarray", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } +static PHP_METHOD(Phalcon_Html_Link_Link, getHref) +{ + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Annotations_Adapter_Stream) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Annotations\\Adapter, Stream, phalcon, annotations_adapter_stream, phalcon_annotations_adapter_abstractadapter_ce, phalcon_annotations_adapter_stream_method_entry, 0); - - zend_declare_property_string(phalcon_annotations_adapter_stream_ce, SL("annotationsDir"), "./", ZEND_ACC_PROTECTED); - return SUCCESS; + RETURN_MEMBER(getThis(), "href"); } -static PHP_METHOD(Phalcon_Annotations_Adapter_Stream, __construct) +static PHP_METHOD(Phalcon_Html_Link_Link, getRels) { + zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *options_param = NULL, annotationsDir; - zval options; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&annotationsDir); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &options_param); - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); - } else { - zephir_get_arrval(&options, options_param); - } - - if (zephir_array_isset_string_fetch(&annotationsDir, &options, SL("annotationsDir"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("annotationsDir"), &annotationsDir); - } - ZEPHIR_MM_RESTORE(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("rels"), PH_NOISY_CC | PH_READONLY); + ZVAL_BOOL(&_1, 0); + ZEPHIR_RETURN_CALL_METHOD(&_0, "getkeys", NULL, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Annotations_Adapter_Stream, read) +static PHP_METHOD(Phalcon_Html_Link_Link, isTemplated) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, __$false, contents, version, _0, _1, _2, _3, _4, _5, _6, _11, _7$$5, _8$$5, _9$$6, _10$$6; - zval key, path; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&path); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&contents); - ZVAL_UNDEF(&version); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$6); - ZVAL_UNDEF(&_10$$6); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - zephir_get_strval(&key, key_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("annotationsDir"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "_"); - zephir_prepare_virtual_path(&_1, &key, &_2); - ZEPHIR_INIT_VAR(&_3); - ZEPHIR_CONCAT_VVS(&_3, &_0, &_1, ".php"); - zephir_get_strval(&path, &_3); - if (!((zephir_file_exists(&path) == SUCCESS))) { - RETURN_MM_BOOL(0); - } - ZEPHIR_INIT_VAR(&contents); - zephir_file_get_contents(&contents, &path); - if (UNEXPECTED(ZEPHIR_IS_EMPTY(&contents))) { - RETURN_MM_BOOL(0); - } - ZEPHIR_GLOBAL(warning).enable = zend_is_true(&__$false); - ZEPHIR_CALL_FUNCTION(&version, "phpversion", NULL, 86); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "8.0"); - ZEPHIR_INIT_VAR(&_5); - ZVAL_STRING(&_5, ">="); - ZEPHIR_CALL_FUNCTION(&_6, "version_compare", NULL, 87, &version, &_4, &_5); - zephir_check_call_status(); - if (zephir_is_true(&_6)) { - ZEPHIR_INIT_VAR(&_7$$5); - ZEPHIR_INIT_NVAR(&_7$$5); - zephir_create_closure_ex(&_7$$5, NULL, phalcon_4__closure_ce, SL("__invoke")); - ZVAL_LONG(&_8$$5, 2); - ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_7$$5, &_8$$5); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_VAR(&_9$$6); - ZEPHIR_INIT_NVAR(&_9$$6); - zephir_create_closure_ex(&_9$$6, NULL, phalcon_5__closure_ce, SL("__invoke")); - ZVAL_LONG(&_10$$6, 2); - ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_9$$6, &_10$$6); - zephir_check_call_status(); - } - ZEPHIR_CALL_FUNCTION(&_11, "unserialize", NULL, 15, &contents); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&contents, &_11); - ZEPHIR_CALL_FUNCTION(NULL, "restore_error_handler", NULL, 90); - zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_GLOBAL(warning).enable)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_RuntimeException, "Cannot read annotation data", "phalcon/Annotations/Adapter/Stream.zep", 102); - return; - } - RETURN_CCTOR(&contents); + RETURN_MEMBER(getThis(), "templated"); } -static PHP_METHOD(Phalcon_Annotations_Adapter_Stream, write) +static PHP_METHOD(Phalcon_Html_Link_Link, hrefIsTemplated) { + zend_bool _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *data, data_sub, code, _0, _1, _2, _3, _4; - zval key, path; + zval *href_param = NULL, _0, _1, _3, _4; + zval href; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&data_sub); - ZVAL_UNDEF(&code); + ZVAL_UNDEF(&href); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); ZVAL_UNDEF(&_4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(key) - Z_PARAM_OBJECT_OF_CLASS(data, phalcon_annotations_reflection_ce) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(href) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &key_param, &data); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } + zephir_fetch_params(1, 1, 0, &href_param); + zephir_get_strval(&href, href_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("annotationsDir"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "{"); ZEPHIR_INIT_VAR(&_1); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "_"); - zephir_prepare_virtual_path(&_1, &key, &_2); - ZEPHIR_INIT_VAR(&_3); - ZEPHIR_CONCAT_VVS(&_3, &_0, &_1, ".php"); - zephir_get_strval(&path, &_3); - ZEPHIR_CALL_FUNCTION(&code, "serialize", NULL, 13, data); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_4); - zephir_file_put_contents(&_4, &path, &code); - if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&_4))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_annotations_exception_ce, "Annotations directory cannot be written", "phalcon/Annotations/Adapter/Stream.zep", 123); - return; + zephir_fast_strpos(&_1, &href, &_0, 0 ); + _2 = !ZEPHIR_IS_FALSE_IDENTICAL(&_1); + if (_2) { + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "}"); + ZEPHIR_CALL_FUNCTION(&_4, "strrpos", NULL, 116, &href, &_3); + zephir_check_call_status(); + _2 = !ZEPHIR_IS_FALSE_IDENTICAL(&_4); } - ZEPHIR_MM_RESTORE(); + RETURN_MM_BOOL(_2); } @@ -37067,221 +34928,185 @@ static PHP_METHOD(Phalcon_Annotations_Adapter_Stream, write) -ZEPHIR_INIT_CLASS(Phalcon_Application_AbstractApplication) +ZEPHIR_INIT_CLASS(Phalcon_Html_Link_LinkProvider) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Application, AbstractApplication, phalcon, application_abstractapplication, phalcon_di_injectable_ce, phalcon_application_abstractapplication_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + ZEPHIR_REGISTER_CLASS(Phalcon\\Html\\Link, LinkProvider, phalcon, html_link_linkprovider, phalcon_html_link_linkprovider_method_entry, 0); - zend_declare_property_null(phalcon_application_abstractapplication_ce, SL("container"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_application_abstractapplication_ce, SL("defaultModule"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_application_abstractapplication_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_application_abstractapplication_ce, SL("modules"), ZEND_ACC_PROTECTED); - phalcon_application_abstractapplication_ce->create_object = zephir_init_properties_Phalcon_Application_AbstractApplication; + zend_declare_property_null(phalcon_html_link_linkprovider_ce, SL("links"), ZEND_ACC_PROTECTED); + phalcon_html_link_linkprovider_ce->create_object = zephir_init_properties_Phalcon_Html_Link_LinkProvider; - zend_class_implements(phalcon_application_abstractapplication_ce, 1, phalcon_events_eventsawareinterface_ce); + zend_class_implements(phalcon_html_link_linkprovider_ce, 1, zephir_get_internal_ce(SL("psr\\link\\linkproviderinterface"))); return SUCCESS; } -static PHP_METHOD(Phalcon_Application_AbstractApplication, __construct) -{ - zval *container = NULL, container_sub, __$null; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&container_sub); - ZVAL_NULL(&__$null); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(container, phalcon_di_diinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(0, 1, &container); - if (!container) { - container = &container_sub; - container = &__$null; - } - - - if (Z_TYPE_P(container) == IS_OBJECT) { - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); - } -} - -static PHP_METHOD(Phalcon_Application_AbstractApplication, getDefaultModule) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "defaultModule"); -} - -static PHP_METHOD(Phalcon_Application_AbstractApplication, getEventsManager) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "eventsManager"); -} - -static PHP_METHOD(Phalcon_Application_AbstractApplication, getModule) +static PHP_METHOD(Phalcon_Html_Link_LinkProvider, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_3 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, module, _0, _1$$3; - zval name, _2$$3; + zval *links_param = NULL, link, *_0, _1, _2$$4, _4$$6; + zval links; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&module); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&links); + ZVAL_UNDEF(&link); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_4$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(links) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); + zephir_fetch_params(1, 0, 1, &links_param); + if (!links_param) { + ZEPHIR_INIT_VAR(&links); + array_init(&links); } else { - ZEPHIR_INIT_VAR(&name); + zephir_get_arrval(&links, links_param); } - ZEPHIR_OBS_VAR(&module); - zephir_read_property(&_0, this_ptr, ZEND_STRL("modules"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(!(zephir_array_isset_fetch(&module, &_0, &name, 0)))) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_application_exception_ce); - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_CONCAT_SVS(&_2$$3, "Module '", &name, "' isn't registered in the application container"); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); + zephir_is_iterable(&links, 0, "phalcon/Html/Link/LinkProvider.zep", 40); + if (Z_TYPE_P(&links) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&links), _0) + { + ZEPHIR_INIT_NVAR(&link); + ZVAL_COPY(&link, _0); + if (zephir_is_instance_of(&link, SL("Psr\\Link\\LinkInterface"))) { + ZEPHIR_CALL_METHOD(&_2$$4, this_ptr, "getkey", &_3, 0, &link); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("links"), &_2$$4, &link); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &links, "rewind", NULL, 0); zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Application/AbstractApplication.zep", 83); - ZEPHIR_MM_RESTORE(); - return; + while (1) { + ZEPHIR_CALL_METHOD(&_1, &links, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&link, &links, "current", NULL, 0); + zephir_check_call_status(); + if (zephir_is_instance_of(&link, SL("Psr\\Link\\LinkInterface"))) { + ZEPHIR_CALL_METHOD(&_4$$6, this_ptr, "getkey", &_3, 0, &link); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("links"), &_4$$6, &link); + } + ZEPHIR_CALL_METHOD(NULL, &links, "next", NULL, 0); + zephir_check_call_status(); + } } - RETURN_CCTOR(&module); + ZEPHIR_INIT_NVAR(&link); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Application_AbstractApplication, getModules) +static PHP_METHOD(Phalcon_Html_Link_LinkProvider, getLinks) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "modules"); + RETURN_MEMBER(getThis(), "links"); } -static PHP_METHOD(Phalcon_Application_AbstractApplication, registerModules) +static PHP_METHOD(Phalcon_Html_Link_LinkProvider, getLinksByRel) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_bool merge; - zval *modules_param = NULL, *merge_param = NULL, _0$$3, _1$$3; - zval modules; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *rel, rel_sub, link, links, rels, _0, *_1, _2; zval *this_ptr = getThis(); - ZVAL_UNDEF(&modules); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&rel_sub); + ZVAL_UNDEF(&link); + ZVAL_UNDEF(&links); + ZVAL_UNDEF(&rels); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(modules) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(merge) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(rel) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &modules_param, &merge_param); - zephir_get_arrval(&modules, modules_param); - if (!merge_param) { - merge = 0; - } else { - merge = zephir_get_boolval(merge_param); - } + zephir_fetch_params(1, 1, 0, &rel); - if (merge) { - ZEPHIR_INIT_VAR(&_0$$3); - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("modules"), PH_NOISY_CC | PH_READONLY); - zephir_fast_array_merge(&_0$$3, &_1$$3, &modules); - zephir_update_property_zval(this_ptr, ZEND_STRL("modules"), &_0$$3); + ZEPHIR_INIT_VAR(&links); + array_init(&links); + zephir_read_property(&_0, this_ptr, ZEND_STRL("links"), PH_NOISY_CC | PH_READONLY); + zephir_is_iterable(&_0, 0, "phalcon/Html/Link/LinkProvider.zep", 77); + if (Z_TYPE_P(&_0) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _1) + { + ZEPHIR_INIT_NVAR(&link); + ZVAL_COPY(&link, _1); + ZEPHIR_CALL_METHOD(&rels, &link, "getrels", NULL, 0); + zephir_check_call_status(); + if (1 == zephir_fast_in_array(rel, &rels)) { + zephir_array_append(&links, &link, PH_SEPARATE, "phalcon/Html/Link/LinkProvider.zep", 73); + } + } ZEND_HASH_FOREACH_END(); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("modules"), &modules); + ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &_0, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&link, &_0, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&rels, &link, "getrels", NULL, 0); + zephir_check_call_status(); + if (1 == zephir_fast_in_array(rel, &rels)) { + zephir_array_append(&links, &link, PH_SEPARATE, "phalcon/Html/Link/LinkProvider.zep", 73); + } + ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); + zephir_check_call_status(); + } } - RETURN_THIS(); + ZEPHIR_INIT_NVAR(&link); + RETURN_CCTOR(&links); } -static PHP_METHOD(Phalcon_Application_AbstractApplication, setDefaultModule) +static PHP_METHOD(Phalcon_Html_Link_LinkProvider, getKey) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *defaultModule_param = NULL; - zval defaultModule; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *link, link_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&defaultModule); + ZVAL_UNDEF(&link_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(defaultModule) + Z_PARAM_OBJECT_OF_CLASS(link, zephir_get_internal_ce(SL("psr\\link\\linkinterface"))) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &defaultModule_param); - if (UNEXPECTED(Z_TYPE_P(defaultModule_param) != IS_STRING && Z_TYPE_P(defaultModule_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'defaultModule' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(defaultModule_param) == IS_STRING)) { - zephir_get_strval(&defaultModule, defaultModule_param); - } else { - ZEPHIR_INIT_VAR(&defaultModule); - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultModule"), &defaultModule); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Application_AbstractApplication, setEventsManager) -{ - zval *eventsManager, eventsManager_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&eventsManager_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); + zephir_fetch_params(1, 1, 0, &link); - zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); + ZEPHIR_RETURN_CALL_FUNCTION("spl_object_hash", NULL, 100, link); + zephir_check_call_status(); + RETURN_MM(); } -zend_object *zephir_init_properties_Phalcon_Application_AbstractApplication(zend_class_entry *class_type) +zend_object *zephir_init_properties_Phalcon_Html_Link_LinkProvider(zend_class_entry *class_type) { zval _0, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; @@ -37294,11 +35119,11 @@ zend_object *zephir_init_properties_Phalcon_Application_AbstractApplication(zend { zval local_this_ptr, *this_ptr = &local_this_ptr; ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("modules"), PH_NOISY_CC | PH_READONLY); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("links"), PH_NOISY_CC | PH_READONLY); if (Z_TYPE_P(&_0) == IS_NULL) { ZEPHIR_INIT_VAR(&_1$$3); array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("modules"), &_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("links"), &_1$$3); } ZEPHIR_MM_RESTORE(); return Z_OBJ_P(this_ptr); @@ -37315,748 +35140,1310 @@ zend_object *zephir_init_properties_Phalcon_Application_AbstractApplication(zend -ZEPHIR_INIT_CLASS(Phalcon_Application_Exception) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Application, Exception, phalcon, application_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Assets_Asset) +ZEPHIR_INIT_CLASS(Phalcon_Html_Link_Serializer_Header) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Assets, Asset, phalcon, assets_asset, phalcon_assets_asset_method_entry, 0); + ZEPHIR_REGISTER_CLASS(Phalcon\\Html\\Link\\Serializer, Header, phalcon, html_link_serializer_header, phalcon_html_link_serializer_header_method_entry, 0); - zend_declare_property_null(phalcon_assets_asset_ce, SL("attributes"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_assets_asset_ce, SL("autoVersion"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_assets_asset_ce, SL("filter"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_assets_asset_ce, SL("local"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_assets_asset_ce, SL("path"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_assets_asset_ce, SL("sourcePath"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_assets_asset_ce, SL("targetPath"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_assets_asset_ce, SL("targetUri"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_assets_asset_ce, SL("type"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_assets_asset_ce, SL("version"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_assets_asset_ce, 1, phalcon_assets_assetinterface_ce); + zend_class_implements(phalcon_html_link_serializer_header_ce, 1, phalcon_html_link_serializer_serializerinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Asset, getAttributes) +static PHP_METHOD(Phalcon_Html_Link_Serializer_Header, serialize) { + zend_string *_8$$3, *_28$$17; + zend_ulong _7$$3, _27$$17; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *links_param = NULL, attributes, key, link, rels, result, subValue, value, *_0, _1, _2$$3, _3$$3, _4$$3, *_5$$3, _6$$3, _19$$3, _20$$3, *_9$$6, _10$$6, _11$$7, _12$$8, _13$$9, *_14$$12, _15$$12, _16$$13, _17$$14, _18$$15, _21$$17, _22$$17, _23$$17, _24$$17, *_25$$17, _26$$17, _39$$17, _40$$17, *_29$$20, _30$$20, _31$$21, _32$$22, _33$$23, *_34$$26, _35$$26, _36$$27, _37$$28, _38$$29; + zval links, elements, parts; zval *this_ptr = getThis(); - - - RETURN_MEMBER(getThis(), "attributes"); -} - -static PHP_METHOD(Phalcon_Assets_Asset, setAutoVersion) -{ - zval *autoVersion_param = NULL, __$true, __$false; - zend_bool autoVersion; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&links); + ZVAL_UNDEF(&elements); + ZVAL_UNDEF(&parts); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&link); + ZVAL_UNDEF(&rels); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&subValue); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_19$$3); + ZVAL_UNDEF(&_20$$3); + ZVAL_UNDEF(&_10$$6); + ZVAL_UNDEF(&_11$$7); + ZVAL_UNDEF(&_12$$8); + ZVAL_UNDEF(&_13$$9); + ZVAL_UNDEF(&_15$$12); + ZVAL_UNDEF(&_16$$13); + ZVAL_UNDEF(&_17$$14); + ZVAL_UNDEF(&_18$$15); + ZVAL_UNDEF(&_21$$17); + ZVAL_UNDEF(&_22$$17); + ZVAL_UNDEF(&_23$$17); + ZVAL_UNDEF(&_24$$17); + ZVAL_UNDEF(&_26$$17); + ZVAL_UNDEF(&_39$$17); + ZVAL_UNDEF(&_40$$17); + ZVAL_UNDEF(&_30$$20); + ZVAL_UNDEF(&_31$$21); + ZVAL_UNDEF(&_32$$22); + ZVAL_UNDEF(&_33$$23); + ZVAL_UNDEF(&_35$$26); + ZVAL_UNDEF(&_36$$27); + ZVAL_UNDEF(&_37$$28); + ZVAL_UNDEF(&_38$$29); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(autoVersion) + Z_PARAM_ARRAY(links) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &autoVersion_param); - autoVersion = zephir_get_boolval(autoVersion_param); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &links_param); + zephir_get_arrval(&links, links_param); - if (autoVersion) { - zephir_update_property_zval(this_ptr, ZEND_STRL("autoVersion"), &__$true); + ZEPHIR_INIT_VAR(&result); + ZVAL_NULL(&result); + ZEPHIR_INIT_VAR(&elements); + array_init(&elements); + zephir_is_iterable(&links, 0, "phalcon/Html/Link/Serializer/Header.zep", 72); + if (Z_TYPE_P(&links) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&links), _0) + { + ZEPHIR_INIT_NVAR(&link); + ZVAL_COPY(&link, _0); + ZEPHIR_CALL_METHOD(&_2$$3, &link, "istemplated", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_TRUE_IDENTICAL(&_2$$3)) { + continue; + } + ZEPHIR_CALL_METHOD(&attributes, &link, "getattributes", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&rels, &link, "getrels", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&parts); + zephir_create_array(&parts, 2, 0); + ZEPHIR_INIT_NVAR(&_3$$3); + ZVAL_STRING(&_3$$3, ""); + zephir_array_fast_append(&parts, &_3$$3); + ZEPHIR_INIT_NVAR(&_3$$3); + zephir_fast_join_str(&_3$$3, SL(" "), &rels); + ZEPHIR_INIT_NVAR(&_4$$3); + ZEPHIR_CONCAT_SVS(&_4$$3, "rel=\"", &_3$$3, "\""); + zephir_array_fast_append(&parts, &_4$$3); + zephir_is_iterable(&attributes, 0, "phalcon/Html/Link/Serializer/Header.zep", 66); + if (Z_TYPE_P(&attributes) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&attributes), _7$$3, _8$$3, _5$$3) + { + ZEPHIR_INIT_NVAR(&key); + if (_8$$3 != NULL) { + ZVAL_STR_COPY(&key, _8$$3); + } else { + ZVAL_LONG(&key, _7$$3); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _5$$3); + if (Z_TYPE_P(&value) == IS_ARRAY) { + zephir_is_iterable(&value, 0, "phalcon/Html/Link/Serializer/Header.zep", 52); + if (Z_TYPE_P(&value) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&value), _9$$6) + { + ZEPHIR_INIT_NVAR(&subValue); + ZVAL_COPY(&subValue, _9$$6); + ZEPHIR_INIT_NVAR(&_11$$7); + ZEPHIR_CONCAT_VSVS(&_11$$7, &key, "=\"", &subValue, "\""); + zephir_array_append(&parts, &_11$$7, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 50); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &value, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_10$$6, &value, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_10$$6)) { + break; + } + ZEPHIR_CALL_METHOD(&subValue, &value, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_12$$8); + ZEPHIR_CONCAT_VSVS(&_12$$8, &key, "=\"", &subValue, "\""); + zephir_array_append(&parts, &_12$$8, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 50); + ZEPHIR_CALL_METHOD(NULL, &value, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&subValue); + continue; + } + if (((Z_TYPE_P(&value) == IS_TRUE || Z_TYPE_P(&value) == IS_FALSE) != 1)) { + ZEPHIR_INIT_NVAR(&_13$$9); + ZEPHIR_CONCAT_VSVS(&_13$$9, &key, "=\"", &value, "\""); + zephir_array_append(&parts, &_13$$9, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 56); + continue; + } + if (ZEPHIR_IS_TRUE_IDENTICAL(&value)) { + zephir_array_append(&parts, &key, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 61); + continue; + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_6$$3, &attributes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_6$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &attributes, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &attributes, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&value) == IS_ARRAY) { + zephir_is_iterable(&value, 0, "phalcon/Html/Link/Serializer/Header.zep", 52); + if (Z_TYPE_P(&value) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&value), _14$$12) + { + ZEPHIR_INIT_NVAR(&subValue); + ZVAL_COPY(&subValue, _14$$12); + ZEPHIR_INIT_NVAR(&_16$$13); + ZEPHIR_CONCAT_VSVS(&_16$$13, &key, "=\"", &subValue, "\""); + zephir_array_append(&parts, &_16$$13, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 50); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &value, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_15$$12, &value, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_15$$12)) { + break; + } + ZEPHIR_CALL_METHOD(&subValue, &value, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_17$$14); + ZEPHIR_CONCAT_VSVS(&_17$$14, &key, "=\"", &subValue, "\""); + zephir_array_append(&parts, &_17$$14, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 50); + ZEPHIR_CALL_METHOD(NULL, &value, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&subValue); + continue; + } + if (((Z_TYPE_P(&value) == IS_TRUE || Z_TYPE_P(&value) == IS_FALSE) != 1)) { + ZEPHIR_INIT_NVAR(&_18$$15); + ZEPHIR_CONCAT_VSVS(&_18$$15, &key, "=\"", &value, "\""); + zephir_array_append(&parts, &_18$$15, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 56); + continue; + } + if (ZEPHIR_IS_TRUE_IDENTICAL(&value)) { + zephir_array_append(&parts, &key, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 61); + continue; + } + ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + ZEPHIR_CALL_METHOD(&_19$$3, &link, "gethref", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_20$$3); + zephir_fast_join_str(&_20$$3, SL("; "), &parts); + ZEPHIR_INIT_NVAR(&_4$$3); + ZEPHIR_CONCAT_SVSV(&_4$$3, "<", &_19$$3, ">", &_20$$3); + zephir_array_append(&elements, &_4$$3, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 69); + } ZEND_HASH_FOREACH_END(); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("autoVersion"), &__$false); + ZEPHIR_CALL_METHOD(NULL, &links, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &links, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&link, &links, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_21$$17, &link, "istemplated", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_TRUE_IDENTICAL(&_21$$17)) { + continue; + } + ZEPHIR_CALL_METHOD(&attributes, &link, "getattributes", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&rels, &link, "getrels", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_22$$17); + zephir_create_array(&_22$$17, 2, 0); + ZEPHIR_INIT_NVAR(&_23$$17); + ZVAL_STRING(&_23$$17, ""); + zephir_array_fast_append(&_22$$17, &_23$$17); + ZEPHIR_INIT_NVAR(&_23$$17); + zephir_fast_join_str(&_23$$17, SL(" "), &rels); + ZEPHIR_INIT_NVAR(&_24$$17); + ZEPHIR_CONCAT_SVS(&_24$$17, "rel=\"", &_23$$17, "\""); + zephir_array_fast_append(&_22$$17, &_24$$17); + ZEPHIR_CPY_WRT(&parts, &_22$$17); + zephir_is_iterable(&attributes, 0, "phalcon/Html/Link/Serializer/Header.zep", 66); + if (Z_TYPE_P(&attributes) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&attributes), _27$$17, _28$$17, _25$$17) + { + ZEPHIR_INIT_NVAR(&key); + if (_28$$17 != NULL) { + ZVAL_STR_COPY(&key, _28$$17); + } else { + ZVAL_LONG(&key, _27$$17); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _25$$17); + if (Z_TYPE_P(&value) == IS_ARRAY) { + zephir_is_iterable(&value, 0, "phalcon/Html/Link/Serializer/Header.zep", 52); + if (Z_TYPE_P(&value) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&value), _29$$20) + { + ZEPHIR_INIT_NVAR(&subValue); + ZVAL_COPY(&subValue, _29$$20); + ZEPHIR_INIT_NVAR(&_31$$21); + ZEPHIR_CONCAT_VSVS(&_31$$21, &key, "=\"", &subValue, "\""); + zephir_array_append(&parts, &_31$$21, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 50); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &value, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_30$$20, &value, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_30$$20)) { + break; + } + ZEPHIR_CALL_METHOD(&subValue, &value, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_32$$22); + ZEPHIR_CONCAT_VSVS(&_32$$22, &key, "=\"", &subValue, "\""); + zephir_array_append(&parts, &_32$$22, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 50); + ZEPHIR_CALL_METHOD(NULL, &value, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&subValue); + continue; + } + if (((Z_TYPE_P(&value) == IS_TRUE || Z_TYPE_P(&value) == IS_FALSE) != 1)) { + ZEPHIR_INIT_NVAR(&_33$$23); + ZEPHIR_CONCAT_VSVS(&_33$$23, &key, "=\"", &value, "\""); + zephir_array_append(&parts, &_33$$23, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 56); + continue; + } + if (ZEPHIR_IS_TRUE_IDENTICAL(&value)) { + zephir_array_append(&parts, &key, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 61); + continue; + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_26$$17, &attributes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_26$$17)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &attributes, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &attributes, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&value) == IS_ARRAY) { + zephir_is_iterable(&value, 0, "phalcon/Html/Link/Serializer/Header.zep", 52); + if (Z_TYPE_P(&value) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&value), _34$$26) + { + ZEPHIR_INIT_NVAR(&subValue); + ZVAL_COPY(&subValue, _34$$26); + ZEPHIR_INIT_NVAR(&_36$$27); + ZEPHIR_CONCAT_VSVS(&_36$$27, &key, "=\"", &subValue, "\""); + zephir_array_append(&parts, &_36$$27, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 50); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &value, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_35$$26, &value, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_35$$26)) { + break; + } + ZEPHIR_CALL_METHOD(&subValue, &value, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_37$$28); + ZEPHIR_CONCAT_VSVS(&_37$$28, &key, "=\"", &subValue, "\""); + zephir_array_append(&parts, &_37$$28, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 50); + ZEPHIR_CALL_METHOD(NULL, &value, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&subValue); + continue; + } + if (((Z_TYPE_P(&value) == IS_TRUE || Z_TYPE_P(&value) == IS_FALSE) != 1)) { + ZEPHIR_INIT_NVAR(&_38$$29); + ZEPHIR_CONCAT_VSVS(&_38$$29, &key, "=\"", &value, "\""); + zephir_array_append(&parts, &_38$$29, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 56); + continue; + } + if (ZEPHIR_IS_TRUE_IDENTICAL(&value)) { + zephir_array_append(&parts, &key, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 61); + continue; + } + ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + ZEPHIR_CALL_METHOD(&_39$$17, &link, "gethref", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_40$$17); + zephir_fast_join_str(&_40$$17, SL("; "), &parts); + ZEPHIR_INIT_NVAR(&_24$$17); + ZEPHIR_CONCAT_SVSV(&_24$$17, "<", &_39$$17, ">", &_40$$17); + zephir_array_append(&elements, &_24$$17, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 69); + ZEPHIR_CALL_METHOD(NULL, &links, "next", NULL, 0); + zephir_check_call_status(); + } } - RETURN_THISW(); + ZEPHIR_INIT_NVAR(&link); + if (zephir_fast_count_int(&elements) > 0) { + ZEPHIR_INIT_NVAR(&result); + zephir_fast_join_str(&result, SL(","), &elements); + } + RETURN_CCTOR(&result); } -static PHP_METHOD(Phalcon_Assets_Asset, getFilter) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "filter"); -} +#ifdef HAVE_CONFIG_H +#endif -static PHP_METHOD(Phalcon_Assets_Asset, getLocal) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "local"); -} -static PHP_METHOD(Phalcon_Assets_Asset, getPath) +ZEPHIR_INIT_CLASS(Phalcon_Html_Link_Serializer_SerializerInterface) { - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Html\\Link\\Serializer, SerializerInterface, phalcon, html_link_serializer_serializerinterface, phalcon_html_link_serializer_serializerinterface_method_entry); + return SUCCESS; +} +ZEPHIR_DOC_METHOD(Phalcon_Html_Link_Serializer_SerializerInterface, serialize); - RETURN_MEMBER(getThis(), "path"); -} -static PHP_METHOD(Phalcon_Assets_Asset, getSourcePath) -{ - zval *this_ptr = getThis(); +#ifdef HAVE_CONFIG_H +#endif - RETURN_MEMBER(getThis(), "sourcePath"); -} -static PHP_METHOD(Phalcon_Assets_Asset, getTargetPath) -{ - zval *this_ptr = getThis(); +ZEPHIR_INIT_CLASS(Phalcon_Html_Attributes_AttributesInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Html\\Attributes, AttributesInterface, phalcon, html_attributes_attributesinterface, phalcon_html_attributes_attributesinterface_method_entry); - RETURN_MEMBER(getThis(), "targetPath"); + return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Asset, getTargetUri) -{ - zval *this_ptr = getThis(); +ZEPHIR_DOC_METHOD(Phalcon_Html_Attributes_AttributesInterface, getAttributes); +ZEPHIR_DOC_METHOD(Phalcon_Html_Attributes_AttributesInterface, setAttributes); - RETURN_MEMBER(getThis(), "targetUri"); -} +#ifdef HAVE_CONFIG_H +#endif -static PHP_METHOD(Phalcon_Assets_Asset, getType) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "type"); -} -static PHP_METHOD(Phalcon_Assets_Asset, getVersion) +ZEPHIR_INIT_CLASS(Phalcon_Html_Attributes_RenderInterface) { - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Html\\Attributes, RenderInterface, phalcon, html_attributes_renderinterface, phalcon_html_attributes_renderinterface_method_entry); + + return SUCCESS; +} +ZEPHIR_DOC_METHOD(Phalcon_Html_Attributes_RenderInterface, render); - RETURN_MEMBER(getThis(), "version"); + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_AbstractHelper) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Html\\Helper, AbstractHelper, phalcon, html_helper_abstracthelper, phalcon_html_helper_abstracthelper_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_string(phalcon_html_helper_abstracthelper_ce, SL("delimiter"), "", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_html_helper_abstracthelper_ce, SL("escaper"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_html_helper_abstracthelper_ce, SL("indent"), " ", ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_html_helper_abstracthelper_ce, SL("indentLevel"), 1, ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Asset, setVersion) +static PHP_METHOD(Phalcon_Html_Helper_AbstractHelper, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *version_param = NULL; - zval version; + zval *escaper, escaper_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&version); + ZVAL_UNDEF(&escaper_sub); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(version) + Z_PARAM_OBJECT_OF_CLASS(escaper, phalcon_escaper_escaperinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &version_param); - zephir_get_strval(&version, version_param); + zephir_fetch_params(1, 1, 0, &escaper); - zephir_update_property_zval(this_ptr, ZEND_STRL("version"), &version); - RETURN_THIS(); + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_GET_CONSTANT(&_0, "PHP_EOL"); + zephir_update_property_zval(this_ptr, ZEND_STRL("delimiter"), &_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("escaper"), escaper); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Assets_Asset, __construct) +static PHP_METHOD(Phalcon_Html_Helper_AbstractHelper, close) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval attributes; - zend_bool local, filter, autoVersion; - zval *type_param = NULL, *path_param = NULL, *local_param = NULL, *filter_param = NULL, *attributes_param = NULL, *version_param = NULL, *autoVersion_param = NULL, __$true, __$false; - zval type, path, version; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool raw; + zval *tag_param = NULL, *raw_param = NULL, _0, _1; + zval tag; zval *this_ptr = getThis(); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&version); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&tag); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 7) - Z_PARAM_STR(type) - Z_PARAM_STR(path) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(tag) Z_PARAM_OPTIONAL - Z_PARAM_BOOL(local) - Z_PARAM_BOOL(filter) - Z_PARAM_ARRAY(attributes) - Z_PARAM_STR_OR_NULL(version) - Z_PARAM_BOOL(autoVersion) + Z_PARAM_BOOL(raw) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 5, &type_param, &path_param, &local_param, &filter_param, &attributes_param, &version_param, &autoVersion_param); - zephir_get_strval(&type, type_param); - zephir_get_strval(&path, path_param); - if (!local_param) { - local = 1; - } else { - local = zephir_get_boolval(local_param); - } - if (!filter_param) { - filter = 1; - } else { - filter = zephir_get_boolval(filter_param); - } - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - if (!version_param) { - ZEPHIR_INIT_VAR(&version); - } else { - zephir_get_strval(&version, version_param); - } - if (!autoVersion_param) { - autoVersion = 0; + zephir_fetch_params(1, 1, 1, &tag_param, &raw_param); + zephir_get_strval(&tag, tag_param); + if (!raw_param) { + raw = 0; } else { - autoVersion = zephir_get_boolval(autoVersion_param); + raw = zephir_get_boolval(raw_param); } - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &type); - zephir_update_property_zval(this_ptr, ZEND_STRL("path"), &path); - if (local) { - zephir_update_property_zval(this_ptr, ZEND_STRL("local"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("local"), &__$false); - } - if (filter) { - zephir_update_property_zval(this_ptr, ZEND_STRL("filter"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("filter"), &__$false); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &attributes); - zephir_update_property_zval(this_ptr, ZEND_STRL("version"), &version); - if (autoVersion) { - zephir_update_property_zval(this_ptr, ZEND_STRL("autoVersion"), &__$true); + ZEPHIR_INIT_VAR(&_0); + if (raw) { + ZEPHIR_CPY_WRT(&_0, &tag); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("autoVersion"), &__$false); + zephir_read_property(&_1, this_ptr, ZEND_STRL("escaper"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_0, &_1, "html", NULL, 0, &tag); + zephir_check_call_status(); } - ZEPHIR_MM_RESTORE(); + zephir_get_strval(&tag, &_0); + ZEPHIR_CONCAT_SVS(return_value, ""); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Assets_Asset, getAssetKey) +static PHP_METHOD(Phalcon_Html_Helper_AbstractHelper, indent) { - zval key, _0, _1; + zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "gettype", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getpath", NULL, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("indent"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_1, this_ptr, ZEND_STRL("indentLevel"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_FUNCTION("str_repeat", NULL, 1, &_0, &_1); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&key); - ZEPHIR_CONCAT_VSV(&key, &_0, ":", &_1); - zephir_md5(return_value, &key); RETURN_MM(); } -static PHP_METHOD(Phalcon_Assets_Asset, getContent) +static PHP_METHOD(Phalcon_Html_Helper_AbstractHelper, orderAttributes) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *basePath_param = NULL, sourcePath, completePath, content, _0, _1$$5, _2$$5, _3$$6, _4$$6; - zval basePath; + zval *overrides_param = NULL, *attributes_param = NULL, __$null, intersect, results, _0; + zval overrides, attributes, order; zval *this_ptr = getThis(); - ZVAL_UNDEF(&basePath); - ZVAL_UNDEF(&sourcePath); - ZVAL_UNDEF(&completePath); - ZVAL_UNDEF(&content); + ZVAL_UNDEF(&overrides); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&order); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&intersect); + ZVAL_UNDEF(&results); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$5); - ZVAL_UNDEF(&_2$$5); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&_4$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(basePath) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ARRAY(overrides) + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &basePath_param); - if (!basePath_param) { - ZEPHIR_INIT_VAR(&basePath); - } else { - zephir_get_strval(&basePath, basePath_param); - } + zephir_fetch_params(1, 2, 0, &overrides_param, &attributes_param); + zephir_get_arrval(&overrides, overrides_param); + zephir_get_arrval(&attributes, attributes_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("sourcePath"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&sourcePath, &_0); - if (ZEPHIR_IS_EMPTY(&sourcePath)) { - ZEPHIR_OBS_NVAR(&sourcePath); - zephir_read_property(&sourcePath, this_ptr, ZEND_STRL("path"), PH_NOISY_CC); - } - ZEPHIR_INIT_VAR(&completePath); - ZEPHIR_CONCAT_VV(&completePath, &basePath, &sourcePath); - zephir_read_property(&_0, this_ptr, ZEND_STRL("local"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_0)) { - if (UNEXPECTED(!((zephir_file_exists(&completePath) == SUCCESS)))) { - ZEPHIR_INIT_VAR(&_1$$5); - object_init_ex(&_1$$5, phalcon_assets_exception_ce); - ZEPHIR_INIT_VAR(&_2$$5); - ZEPHIR_CONCAT_SVS(&_2$$5, "Asset's content for '", &completePath, "' cannot be read"); - ZEPHIR_CALL_METHOD(NULL, &_1$$5, "__construct", NULL, 8, &_2$$5); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$5, "phalcon/Assets/Asset.zep", 135); - ZEPHIR_MM_RESTORE(); - return; - } - } - ZEPHIR_INIT_VAR(&content); - zephir_file_get_contents(&content, &completePath); - if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&content))) { - ZEPHIR_INIT_VAR(&_3$$6); - object_init_ex(&_3$$6, phalcon_assets_exception_ce); - ZEPHIR_INIT_VAR(&_4$$6); - ZEPHIR_CONCAT_SVS(&_4$$6, "Asset's content for '", &completePath, "' cannot be read"); - ZEPHIR_CALL_METHOD(NULL, &_3$$6, "__construct", NULL, 8, &_4$$6); - zephir_check_call_status(); - zephir_throw_exception_debug(&_3$$6, "phalcon/Assets/Asset.zep", 148); - ZEPHIR_MM_RESTORE(); - return; - } - RETURN_CCTOR(&content); + ZEPHIR_INIT_VAR(&order); + zephir_create_array(&order, 10, 0); + zephir_array_update_string(&order, SL("rel"), &__$null, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&order, SL("type"), &__$null, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&order, SL("for"), &__$null, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&order, SL("src"), &__$null, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&order, SL("href"), &__$null, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&order, SL("action"), &__$null, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&order, SL("id"), &__$null, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&order, SL("name"), &__$null, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&order, SL("value"), &__$null, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&order, SL("class"), &__$null, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_FUNCTION(&intersect, "array_intersect_key", NULL, 2, &order, &attributes); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&results); + zephir_fast_array_merge(&results, &intersect, &attributes); + ZEPHIR_INIT_VAR(&_0); + zephir_fast_array_merge(&_0, &overrides, &results); + ZEPHIR_CPY_WRT(&results, &_0); + zephir_array_unset_string(&results, SL("escape"), PH_SEPARATE); + RETURN_CCTOR(&results); } -static PHP_METHOD(Phalcon_Assets_Asset, getRealSourcePath) +static PHP_METHOD(Phalcon_Html_Helper_AbstractHelper, renderArrayElements) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *basePath_param = NULL, sourcePath, _0, _1$$4; - zval basePath; + zval delimiter; + zval *elements_param = NULL, *delimiter_param = NULL, item, result, *_0, _1, _2$$3, _3$$3, _5$$3, _6$$3, _7$$3, _8$$4, _9$$4, _11$$4, _12$$4, _13$$4; + zval elements, _4$$3, _10$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&basePath); - ZVAL_UNDEF(&sourcePath); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&elements); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_10$$4); + ZVAL_UNDEF(&item); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_8$$4); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&_11$$4); + ZVAL_UNDEF(&_12$$4); + ZVAL_UNDEF(&_13$$4); + ZVAL_UNDEF(&delimiter); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(basePath) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ARRAY(elements) + Z_PARAM_STR(delimiter) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &basePath_param); - if (!basePath_param) { - ZEPHIR_INIT_VAR(&basePath); - } else { - zephir_get_strval(&basePath, basePath_param); - } + zephir_fetch_params(1, 2, 0, &elements_param, &delimiter_param); + zephir_get_arrval(&elements, elements_param); + zephir_get_strval(&delimiter, delimiter_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("sourcePath"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&sourcePath, &_0); - if (ZEPHIR_IS_EMPTY(&sourcePath)) { - ZEPHIR_OBS_NVAR(&sourcePath); - zephir_read_property(&sourcePath, this_ptr, ZEND_STRL("path"), PH_NOISY_CC); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("local"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_0)) { - ZEPHIR_INIT_VAR(&_1$$4); - ZEPHIR_CONCAT_VV(&_1$$4, &basePath, &sourcePath); - ZEPHIR_RETURN_CALL_FUNCTION("realpath", NULL, 94, &_1$$4); + ZEPHIR_INIT_VAR(&result); + ZVAL_STRING(&result, ""); + zephir_is_iterable(&elements, 0, "phalcon/Html/Helper/AbstractHelper.zep", 142); + if (Z_TYPE_P(&elements) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&elements), _0) + { + ZEPHIR_INIT_NVAR(&item); + ZVAL_COPY(&item, _0); + zephir_array_fetch_long(&_2$$3, &item, 2, PH_NOISY | PH_READONLY, "phalcon/Html/Helper/AbstractHelper.zep", 138); + ZEPHIR_INIT_NVAR(&_3$$3); + ZEPHIR_INIT_NVAR(&_4$$3); + zephir_create_array(&_4$$3, 2, 0); + zephir_array_fast_append(&_4$$3, this_ptr); + ZEPHIR_OBS_NVAR(&_5$$3); + zephir_array_fetch_long(&_5$$3, &item, 0, PH_NOISY, "phalcon/Html/Helper/AbstractHelper.zep", 138); + zephir_array_fast_append(&_4$$3, &_5$$3); + zephir_array_fetch_long(&_6$$3, &item, 1, PH_NOISY | PH_READONLY, "phalcon/Html/Helper/AbstractHelper.zep", 138); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_3$$3, &_4$$3, &_6$$3); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_7$$3); + ZEPHIR_CONCAT_VVV(&_7$$3, &_2$$3, &_3$$3, &delimiter); + zephir_concat_self(&result, &_7$$3); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &elements, "rewind", NULL, 0); zephir_check_call_status(); - RETURN_MM(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &elements, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&item, &elements, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_fetch_long(&_8$$4, &item, 2, PH_NOISY | PH_READONLY, "phalcon/Html/Helper/AbstractHelper.zep", 138); + ZEPHIR_INIT_NVAR(&_9$$4); + ZEPHIR_INIT_NVAR(&_10$$4); + zephir_create_array(&_10$$4, 2, 0); + zephir_array_fast_append(&_10$$4, this_ptr); + ZEPHIR_OBS_NVAR(&_11$$4); + zephir_array_fetch_long(&_11$$4, &item, 0, PH_NOISY, "phalcon/Html/Helper/AbstractHelper.zep", 138); + zephir_array_fast_append(&_10$$4, &_11$$4); + zephir_array_fetch_long(&_12$$4, &item, 1, PH_NOISY | PH_READONLY, "phalcon/Html/Helper/AbstractHelper.zep", 138); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_9$$4, &_10$$4, &_12$$4); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_13$$4); + ZEPHIR_CONCAT_VVV(&_13$$4, &_8$$4, &_9$$4, &delimiter); + zephir_concat_self(&result, &_13$$4); + ZEPHIR_CALL_METHOD(NULL, &elements, "next", NULL, 0); + zephir_check_call_status(); + } } - RETURN_CCTOR(&sourcePath); + ZEPHIR_INIT_NVAR(&item); + RETURN_CCTOR(&result); } -static PHP_METHOD(Phalcon_Assets_Asset, getRealTargetPath) +static PHP_METHOD(Phalcon_Html_Helper_AbstractHelper, renderAttributes) { + zend_bool _4$$3, _8$$5; + zend_string *_3; + zend_ulong _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *basePath_param = NULL, targetPath, completePath, _0; - zval basePath; + zval *attributes_param = NULL, key, result, value, *_0, _1, _5$$4, _6$$4, _7$$4, _9$$6, _10$$6, _11$$6; + zval attributes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&basePath); - ZVAL_UNDEF(&targetPath); - ZVAL_UNDEF(&completePath); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_9$$6); + ZVAL_UNDEF(&_10$$6); + ZVAL_UNDEF(&_11$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(basePath) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &basePath_param); - if (!basePath_param) { - ZEPHIR_INIT_VAR(&basePath); - } else { - zephir_get_strval(&basePath, basePath_param); - } + zephir_fetch_params(1, 1, 0, &attributes_param); + zephir_get_arrval(&attributes, attributes_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("targetPath"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&targetPath, &_0); - if (ZEPHIR_IS_EMPTY(&targetPath)) { - ZEPHIR_OBS_NVAR(&targetPath); - zephir_read_property(&targetPath, this_ptr, ZEND_STRL("path"), PH_NOISY_CC); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("local"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_0)) { - ZEPHIR_INIT_VAR(&completePath); - ZEPHIR_CONCAT_VV(&completePath, &basePath, &targetPath); - if ((zephir_file_exists(&completePath) == SUCCESS)) { - ZEPHIR_RETURN_CALL_FUNCTION("realpath", NULL, 94, &completePath); + ZEPHIR_INIT_VAR(&result); + ZVAL_STRING(&result, ""); + zephir_is_iterable(&attributes, 0, "phalcon/Html/Helper/AbstractHelper.zep", 163); + if (Z_TYPE_P(&attributes) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&attributes), _2, _3, _0) + { + ZEPHIR_INIT_NVAR(&key); + if (_3 != NULL) { + ZVAL_STR_COPY(&key, _3); + } else { + ZVAL_LONG(&key, _2); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0); + _4$$3 = Z_TYPE_P(&key) == IS_STRING; + if (_4$$3) { + _4$$3 = Z_TYPE_P(&value) != IS_NULL; + } + if (_4$$3) { + zephir_read_property(&_5$$4, this_ptr, ZEND_STRL("escaper"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_6$$4, &_5$$4, "attributes", NULL, 0, &value); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_7$$4); + ZEPHIR_CONCAT_VSVS(&_7$$4, &key, "=\"", &_6$$4, "\" "); + zephir_concat_self(&result, &_7$$4); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &attributes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &attributes, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &attributes, "current", NULL, 0); + zephir_check_call_status(); + _8$$5 = Z_TYPE_P(&key) == IS_STRING; + if (_8$$5) { + _8$$5 = Z_TYPE_P(&value) != IS_NULL; + } + if (_8$$5) { + zephir_read_property(&_9$$6, this_ptr, ZEND_STRL("escaper"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_10$$6, &_9$$6, "attributes", NULL, 0, &value); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_11$$6); + ZEPHIR_CONCAT_VSVS(&_11$$6, &key, "=\"", &_10$$6, "\" "); + zephir_concat_self(&result, &_11$$6); + } + ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); zephir_check_call_status(); - RETURN_MM(); } - RETURN_CCTOR(&completePath); } - RETURN_CCTOR(&targetPath); + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + RETURN_CCTOR(&result); } -static PHP_METHOD(Phalcon_Assets_Asset, getRealTargetUri) +static PHP_METHOD(Phalcon_Html_Helper_AbstractHelper, renderElement) { - zend_bool _1; - zval modificationTime, targetUri, version, _0, _2, _3$$4, _4$$4, _5$$5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval attributes; + zval *tag_param = NULL, *attributes_param = NULL; + zval tag; zval *this_ptr = getThis(); - ZVAL_UNDEF(&modificationTime); - ZVAL_UNDEF(&targetUri); - ZVAL_UNDEF(&version); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&tag); + ZVAL_UNDEF(&attributes); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(tag) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("targetUri"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&targetUri, &_0); - if (ZEPHIR_IS_EMPTY(&targetUri)) { - ZEPHIR_OBS_NVAR(&targetUri); - zephir_read_property(&targetUri, this_ptr, ZEND_STRL("path"), PH_NOISY_CC); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("version"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&version, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("autoVersion"), PH_NOISY_CC | PH_READONLY); - _1 = zephir_is_true(&_0); - if (_1) { - zephir_read_property(&_2, this_ptr, ZEND_STRL("local"), PH_NOISY_CC | PH_READONLY); - _1 = zephir_is_true(&_2); - } - if (_1) { - ZEPHIR_CALL_METHOD(&_3$$4, this_ptr, "getrealsourcepath", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&modificationTime); - zephir_filemtime(&modificationTime, &_3$$4); - ZEPHIR_INIT_VAR(&_4$$4); - if (zephir_is_true(&version)) { - ZEPHIR_INIT_NVAR(&_4$$4); - ZEPHIR_CONCAT_VSV(&_4$$4, &version, ".", &modificationTime); - } else { - ZEPHIR_CPY_WRT(&_4$$4, &modificationTime); - } - ZEPHIR_CPY_WRT(&version, &_4$$4); - } - if (zephir_is_true(&version)) { - ZEPHIR_INIT_VAR(&_5$$5); - ZEPHIR_CONCAT_VSV(&_5$$5, &targetUri, "?ver=", &version); - ZEPHIR_CPY_WRT(&targetUri, &_5$$5); + zephir_fetch_params(1, 1, 1, &tag_param, &attributes_param); + zephir_get_strval(&tag, tag_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); } - RETURN_CCTOR(&targetUri); -} - -static PHP_METHOD(Phalcon_Assets_Asset, isAutoVersion) -{ - zval *this_ptr = getThis(); - - RETURN_MEMBER(getThis(), "autoVersion"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "rendertag", NULL, 0, &tag, &attributes); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Assets_Asset, setAttributes) +static PHP_METHOD(Phalcon_Html_Helper_AbstractHelper, renderFullElement) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *attributes_param = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool raw; zval attributes; + zval *tag_param = NULL, *text_param = NULL, *attributes_param = NULL, *raw_param = NULL, content, _0, _1, _2, _3; + zval tag, text; zval *this_ptr = getThis(); + ZVAL_UNDEF(&tag); + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&content); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) + ZEND_PARSE_PARAMETERS_START(2, 4) + Z_PARAM_STR(tag) + Z_PARAM_STR(text) + Z_PARAM_OPTIONAL Z_PARAM_ARRAY(attributes) + Z_PARAM_BOOL(raw) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &attributes_param); - zephir_get_arrval(&attributes, attributes_param); + zephir_fetch_params(1, 2, 2, &tag_param, &text_param, &attributes_param, &raw_param); + zephir_get_strval(&tag, tag_param); + zephir_get_strval(&text, text_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); + } + if (!raw_param) { + raw = 0; + } else { + raw = zephir_get_boolval(raw_param); + } - zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &attributes); - RETURN_THIS(); + if (raw) { + ZEPHIR_CPY_WRT(&content, &text); + } else { + zephir_read_property(&_0, this_ptr, ZEND_STRL("escaper"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&content, &_0, "html", NULL, 0, &text); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(&_1, this_ptr, "renderelement", NULL, 0, &tag, &attributes); + zephir_check_call_status(); + if (raw) { + ZVAL_BOOL(&_3, 1); + } else { + ZVAL_BOOL(&_3, 0); + } + ZEPHIR_CALL_METHOD(&_2, this_ptr, "close", NULL, 0, &tag, &_3); + zephir_check_call_status(); + ZEPHIR_CONCAT_VVV(return_value, &_1, &content, &_2); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Assets_Asset, setFilter) +static PHP_METHOD(Phalcon_Html_Helper_AbstractHelper, renderTag) { - zval *filter_param = NULL, __$true, __$false; - zend_bool filter; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval attributes; + zval *tag_param = NULL, *attributes_param = NULL, close, *close_param = NULL, attrs, escapedAttrs, _3, _4, _5, _0$$3, _1$$3, _2$$3; + zval tag; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&tag); + ZVAL_UNDEF(&close); + ZVAL_UNDEF(&attrs); + ZVAL_UNDEF(&escapedAttrs); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(filter) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(tag) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) + Z_PARAM_STR(close) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &filter_param); - filter = zephir_get_boolval(filter_param); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &tag_param, &attributes_param, &close_param); + zephir_get_strval(&tag, tag_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); + } + if (!close_param) { + ZEPHIR_INIT_VAR(&close); + ZVAL_STRING(&close, ""); + } else { + zephir_get_strval(&close, close_param); + } - if (filter) { - zephir_update_property_zval(this_ptr, ZEND_STRL("filter"), &__$true); + ZEPHIR_INIT_VAR(&escapedAttrs); + ZVAL_STRING(&escapedAttrs, ""); + if (zephir_fast_count_int(&attributes) > 0) { + ZEPHIR_INIT_VAR(&_0$$3); + array_init(&_0$$3); + ZEPHIR_CALL_METHOD(&attrs, this_ptr, "orderattributes", NULL, 0, &_0$$3, &attributes); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1$$3); + ZEPHIR_CALL_METHOD(&_2$$3, this_ptr, "renderattributes", NULL, 0, &attrs); + zephir_check_call_status(); + zephir_fast_trim(&_1$$3, &_2$$3, NULL , ZEPHIR_TRIM_RIGHT); + ZEPHIR_INIT_NVAR(&escapedAttrs); + ZEPHIR_CONCAT_SV(&escapedAttrs, " ", &_1$$3); + } + ZEPHIR_INIT_VAR(&_3); + ZEPHIR_INIT_VAR(&_4); + zephir_fast_trim(&_4, &close, NULL , ZEPHIR_TRIM_BOTH); + if (ZEPHIR_IS_EMPTY(&_4)) { + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, ""); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("filter"), &__$false); + ZEPHIR_INIT_VAR(&_5); + zephir_fast_trim(&_5, &close, NULL , ZEPHIR_TRIM_BOTH); + ZEPHIR_INIT_NVAR(&_3); + ZEPHIR_CONCAT_SV(&_3, " ", &_5); } - RETURN_THISW(); + ZEPHIR_CPY_WRT(&close, &_3); + ZEPHIR_CONCAT_SVVVS(return_value, "<", &tag, &escapedAttrs, &close, ">"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Assets_Asset, setLocal) +static PHP_METHOD(Phalcon_Html_Helper_AbstractHelper, selfClose) { - zval *local_param = NULL, __$true, __$false; - zend_bool local; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval attributes; + zval *tag_param = NULL, *attributes_param = NULL, _0; + zval tag; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&tag); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(local) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(tag) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &local_param); - local = zephir_get_boolval(local_param); - - - if (local) { - zephir_update_property_zval(this_ptr, ZEND_STRL("local"), &__$true); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &tag_param, &attributes_param); + zephir_get_strval(&tag, tag_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("local"), &__$false); + zephir_get_arrval(&attributes, attributes_param); } - RETURN_THISW(); + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "/"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "rendertag", NULL, 0, &tag, &attributes, &_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Assets_Asset, setSourcePath) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *sourcePath_param = NULL; - zval sourcePath; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&sourcePath); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(sourcePath) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &sourcePath_param); - zephir_get_strval(&sourcePath, sourcePath_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("sourcePath"), &sourcePath); - RETURN_THIS(); + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_AbstractList) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, AbstractList, phalcon, html_helper_abstractlist, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_abstractlist_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_html_helper_abstractlist_ce, SL("attributes"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_html_helper_abstractlist_ce, SL("elementTag"), "li", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_html_helper_abstractlist_ce, SL("store"), ZEND_ACC_PROTECTED); + phalcon_html_helper_abstractlist_ce->create_object = zephir_init_properties_Phalcon_Html_Helper_AbstractList; + + return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Asset, setTargetPath) +static PHP_METHOD(Phalcon_Html_Helper_AbstractList, __invoke) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *targetPath_param = NULL; - zval targetPath; + zval attributes; + zval *indent_param = NULL, *delimiter_param = NULL, *attributes_param = NULL, _0; + zval indent, delimiter; zval *this_ptr = getThis(); - ZVAL_UNDEF(&targetPath); + ZVAL_UNDEF(&indent); + ZVAL_UNDEF(&delimiter); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(targetPath) + ZEND_PARSE_PARAMETERS_START(0, 3) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(indent) + Z_PARAM_STR_OR_NULL(delimiter) + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &targetPath_param); - zephir_get_strval(&targetPath, targetPath_param); + zephir_fetch_params(1, 0, 3, &indent_param, &delimiter_param, &attributes_param); + if (!indent_param) { + ZEPHIR_INIT_VAR(&indent); + } else { + zephir_get_strval(&indent, indent_param); + } + if (!delimiter_param) { + ZEPHIR_INIT_VAR(&delimiter); + } else { + zephir_get_strval(&delimiter, delimiter_param); + } + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); + } - zephir_update_property_zval(this_ptr, ZEND_STRL("targetPath"), &targetPath); + zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &attributes); + if (UNEXPECTED(!(ZEPHIR_IS_EMPTY(&delimiter)))) { + zephir_update_property_zval(this_ptr, ZEND_STRL("delimiter"), &delimiter); + } + if (UNEXPECTED(!(ZEPHIR_IS_EMPTY(&indent)))) { + zephir_update_property_zval(this_ptr, ZEND_STRL("indent"), &indent); + } + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("store"), &_0); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Assets_Asset, setTargetUri) +static PHP_METHOD(Phalcon_Html_Helper_AbstractList, __toString) { + zval contents, _0, _1, _2, _3, _4, _5, _6, _7; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *targetUri_param = NULL; - zval targetUri; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&targetUri); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(targetUri) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&contents); + 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_fetch_params(1, 1, 0, &targetUri_param); - zephir_get_strval(&targetUri, targetUri_param); + zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + if (ZEPHIR_IS_EMPTY(&_0)) { + RETURN_MM_STRING(""); + } + zephir_read_property(&_1, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_3, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_4, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "renderarrayelements", NULL, 0, &_3, &_4); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&contents); + ZEPHIR_CONCAT_VV(&contents, &_1, &_2); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "gettag", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_6, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + ZVAL_BOOL(&_7, 1); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "renderfullelement", NULL, 0, &_5, &contents, &_6, &_7); + zephir_check_call_status(); + RETURN_MM(); +} - zephir_update_property_zval(this_ptr, ZEND_STRL("targetUri"), &targetUri); - RETURN_THIS(); +static PHP_METHOD(Phalcon_Html_Helper_AbstractList, getTag) +{ } -static PHP_METHOD(Phalcon_Assets_Asset, setType) +zend_object *zephir_init_properties_Phalcon_Html_Helper_AbstractList(zend_class_entry *class_type) { + zval _0, _2, _1$$3, _3$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *type_param = NULL; - zval type; - zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + - ZVAL_UNDEF(&type); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(type) - ZEND_PARSE_PARAMETERS_END(); + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("store"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("attributes"), &_3$$4); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &type_param); - zephir_get_strval(&type, type_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &type); - RETURN_THIS(); + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_AbstractSeries) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, AbstractSeries, phalcon, html_helper_abstractseries, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_abstractseries_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_html_helper_abstractseries_ce, SL("attributes"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_html_helper_abstractseries_ce, SL("store"), ZEND_ACC_PROTECTED); + phalcon_html_helper_abstractseries_ce->create_object = zephir_init_properties_Phalcon_Html_Helper_AbstractSeries; + + return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Asset, setPath) +static PHP_METHOD(Phalcon_Html_Helper_AbstractSeries, __invoke) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *path_param = NULL; - zval path; + zval *indent_param = NULL, *delimiter_param = NULL, _0; + zval indent, delimiter; zval *this_ptr = getThis(); - ZVAL_UNDEF(&path); + ZVAL_UNDEF(&indent); + ZVAL_UNDEF(&delimiter); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(path) + ZEND_PARSE_PARAMETERS_START(0, 2) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(indent) + Z_PARAM_STR_OR_NULL(delimiter) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &path_param); - zephir_get_strval(&path, path_param); + zephir_fetch_params(1, 0, 2, &indent_param, &delimiter_param); + if (!indent_param) { + ZEPHIR_INIT_VAR(&indent); + } else { + zephir_get_strval(&indent, indent_param); + } + if (!delimiter_param) { + ZEPHIR_INIT_VAR(&delimiter); + } else { + zephir_get_strval(&delimiter, delimiter_param); + } - zephir_update_property_zval(this_ptr, ZEND_STRL("path"), &path); + if (UNEXPECTED(!(ZEPHIR_IS_EMPTY(&delimiter)))) { + zephir_update_property_zval(this_ptr, ZEND_STRL("delimiter"), &delimiter); + } + if (UNEXPECTED(!(ZEPHIR_IS_EMPTY(&indent)))) { + zephir_update_property_zval(this_ptr, ZEND_STRL("indent"), &indent); + } + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("store"), &_0); RETURN_THIS(); } +static PHP_METHOD(Phalcon_Html_Helper_AbstractSeries, __toString) +{ + zval _0, _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); -#ifdef HAVE_CONFIG_H -#endif - - + ZEPHIR_MM_GROW(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_1, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "renderarrayelements", NULL, 0, &_0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} +static PHP_METHOD(Phalcon_Html_Helper_AbstractSeries, getTag) +{ +} -ZEPHIR_INIT_CLASS(Phalcon_Assets_AssetInterface) +zend_object *zephir_init_properties_Phalcon_Html_Helper_AbstractSeries(zend_class_entry *class_type) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Assets, AssetInterface, phalcon, assets_assetinterface, phalcon_assets_assetinterface_method_entry); + zval _0, _2, _1$$3, _3$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + - return SUCCESS; + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("store"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("attributes"), &_3$$4); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } } -ZEPHIR_DOC_METHOD(Phalcon_Assets_AssetInterface, getAssetKey); -ZEPHIR_DOC_METHOD(Phalcon_Assets_AssetInterface, getAttributes); -ZEPHIR_DOC_METHOD(Phalcon_Assets_AssetInterface, getFilter); -ZEPHIR_DOC_METHOD(Phalcon_Assets_AssetInterface, getType); -ZEPHIR_DOC_METHOD(Phalcon_Assets_AssetInterface, setAttributes); -ZEPHIR_DOC_METHOD(Phalcon_Assets_AssetInterface, setFilter); -ZEPHIR_DOC_METHOD(Phalcon_Assets_AssetInterface, setType); @@ -38067,1129 +36454,908 @@ ZEPHIR_DOC_METHOD(Phalcon_Assets_AssetInterface, setType); -ZEPHIR_INIT_CLASS(Phalcon_Assets_Collection) +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Anchor) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Assets, Collection, phalcon, assets_collection, phalcon_assets_collection_method_entry, 0); - - zend_declare_property_null(phalcon_assets_collection_ce, SL("assets"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_assets_collection_ce, SL("attributes"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_assets_collection_ce, SL("autoVersion"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_assets_collection_ce, SL("codes"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_assets_collection_ce, SL("filters"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_assets_collection_ce, SL("includedAssets"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_assets_collection_ce, SL("join"), 1, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_assets_collection_ce, SL("local"), 1, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_assets_collection_ce, SL("prefix"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_assets_collection_ce, SL("position"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_assets_collection_ce, SL("sourcePath"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_assets_collection_ce, SL("targetLocal"), 1, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_assets_collection_ce, SL("targetPath"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_assets_collection_ce, SL("targetUri"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_assets_collection_ce, SL("version"), ZEND_ACC_PROTECTED); - phalcon_assets_collection_ce->create_object = zephir_init_properties_Phalcon_Assets_Collection; + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Anchor, phalcon, html_helper_anchor, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_anchor_method_entry, 0); - zend_class_implements(phalcon_assets_collection_ce, 1, zend_ce_countable); - zend_class_implements(phalcon_assets_collection_ce, 1, zend_ce_iterator); return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Collection, getAssets) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "assets"); -} - -static PHP_METHOD(Phalcon_Assets_Collection, getAttributes) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "attributes"); -} - -static PHP_METHOD(Phalcon_Assets_Collection, setAutoVersion) +static PHP_METHOD(Phalcon_Html_Helper_Anchor, __invoke) { - zval *autoVersion_param = NULL, __$true, __$false; - zend_bool autoVersion; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool raw; + zval attributes; + zval *href_param = NULL, *text_param = NULL, *attributes_param = NULL, *raw_param = NULL, overrides, _0, _1; + zval href, text; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&href); + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&overrides); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(autoVersion) + ZEND_PARSE_PARAMETERS_START(2, 4) + Z_PARAM_STR(href) + Z_PARAM_STR(text) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) + Z_PARAM_BOOL(raw) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &autoVersion_param); - autoVersion = zephir_get_boolval(autoVersion_param); - - - if (autoVersion) { - zephir_update_property_zval(this_ptr, ZEND_STRL("autoVersion"), &__$true); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 2, &href_param, &text_param, &attributes_param, &raw_param); + zephir_get_strval(&href, href_param); + zephir_get_strval(&text, text_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("autoVersion"), &__$false); + zephir_get_arrval(&attributes, attributes_param); + } + if (!raw_param) { + raw = 0; + } else { + raw = zephir_get_boolval(raw_param); } - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Assets_Collection, getCodes) -{ - zval *this_ptr = getThis(); - - RETURN_MEMBER(getThis(), "codes"); + ZEPHIR_CALL_METHOD(&overrides, this_ptr, "processattributes", NULL, 0, &href, &attributes); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "a"); + if (raw) { + ZVAL_BOOL(&_1, 1); + } else { + ZVAL_BOOL(&_1, 0); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "renderfullelement", NULL, 0, &_0, &text, &overrides, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Assets_Collection, getFilters) +static PHP_METHOD(Phalcon_Html_Helper_Anchor, processAttributes) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval attributes; + zval *href_param = NULL, *attributes_param = NULL, overrides; + zval href; zval *this_ptr = getThis(); + ZVAL_UNDEF(&href); + ZVAL_UNDEF(&overrides); + ZVAL_UNDEF(&attributes); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(href) + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "filters"); -} - -static PHP_METHOD(Phalcon_Assets_Collection, getJoin) -{ - zval *this_ptr = getThis(); - + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &href_param, &attributes_param); + zephir_get_strval(&href, href_param); + zephir_get_arrval(&attributes, attributes_param); - RETURN_MEMBER(getThis(), "join"); + ZEPHIR_INIT_VAR(&overrides); + zephir_create_array(&overrides, 1, 0); + zephir_array_update_string(&overrides, SL("href"), &href, PH_COPY | PH_SEPARATE); + zephir_array_unset_string(&attributes, SL("href"), PH_SEPARATE); + zephir_fast_array_merge(return_value, &overrides, &attributes); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Assets_Collection, getLocal) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "local"); -} +#ifdef HAVE_CONFIG_H +#endif -static PHP_METHOD(Phalcon_Assets_Collection, getPrefix) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "prefix"); -} -static PHP_METHOD(Phalcon_Assets_Collection, getPosition) +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Base) { - zval *this_ptr = getThis(); - - + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Base, phalcon, html_helper_base, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_base_method_entry, 0); - RETURN_MEMBER(getThis(), "position"); + return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Collection, getSourcePath) +static PHP_METHOD(Phalcon_Html_Helper_Base, __invoke) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval attributes; + zval *href_param = NULL, *attributes_param = NULL, overrides, _1, _0$$3; + zval href; zval *this_ptr = getThis(); + ZVAL_UNDEF(&href); + ZVAL_UNDEF(&overrides); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&attributes); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 2) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(href) + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "sourcePath"); -} - -static PHP_METHOD(Phalcon_Assets_Collection, getTargetLocal) -{ - zval *this_ptr = getThis(); - + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 2, &href_param, &attributes_param); + if (!href_param) { + ZEPHIR_INIT_VAR(&href); + } else { + zephir_get_strval(&href, href_param); + } + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); + } - RETURN_MEMBER(getThis(), "targetLocal"); + ZEPHIR_INIT_VAR(&overrides); + array_init(&overrides); + if (!(ZEPHIR_IS_EMPTY(&href))) { + ZEPHIR_INIT_VAR(&_0$$3); + zephir_create_array(&_0$$3, 1, 0); + zephir_array_update_string(&_0$$3, SL("href"), &href, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&overrides, &_0$$3); + } + zephir_array_unset_string(&attributes, SL("href"), PH_SEPARATE); + ZEPHIR_INIT_VAR(&_1); + zephir_fast_array_merge(&_1, &overrides, &attributes); + ZEPHIR_CPY_WRT(&overrides, &_1); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "base"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "renderelement", NULL, 0, &_1, &overrides); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Assets_Collection, getTargetPath) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "targetPath"); -} +#ifdef HAVE_CONFIG_H +#endif -static PHP_METHOD(Phalcon_Assets_Collection, getTargetUri) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "targetUri"); -} -static PHP_METHOD(Phalcon_Assets_Collection, getVersion) +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Body) { - zval *this_ptr = getThis(); - - + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Body, phalcon, html_helper_body, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_body_method_entry, 0); - RETURN_MEMBER(getThis(), "version"); + return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Collection, setVersion) +static PHP_METHOD(Phalcon_Html_Helper_Body, __invoke) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *version_param = NULL; - zval version; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *attributes_param = NULL, _0; + zval attributes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&version); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(version) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &version_param); - zephir_get_strval(&version, version_param); + zephir_fetch_params(1, 0, 1, &attributes_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); + } - zephir_update_property_zval(this_ptr, ZEND_STRL("version"), &version); - RETURN_THIS(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "body"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "renderelement", NULL, 0, &_0, &attributes); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Assets_Collection, __construct) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(&_0); - array_init(&_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("includedAssets"), &_0); - ZEPHIR_MM_RESTORE(); -} +#ifdef HAVE_CONFIG_H +#endif -static PHP_METHOD(Phalcon_Assets_Collection, add) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *asset, asset_sub; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&asset_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(asset, phalcon_assets_assetinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &asset); +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Button) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Button, phalcon, html_helper_button, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_button_method_entry, 0); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addasset", NULL, 162, asset); - zephir_check_call_status(); - RETURN_THIS(); + return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Collection, addCss) +static PHP_METHOD(Phalcon_Html_Helper_Button, __invoke) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool filter, autoVersion; - zval *path_param = NULL, *local = NULL, local_sub, *filter_param = NULL, *attributes = NULL, attributes_sub, *version_param = NULL, *autoVersion_param = NULL, __$null, collectionLocal, collectionAttributes, _0, _1, _2; - zval path, version; + zend_bool raw; + zval attributes; + zval *text_param = NULL, *attributes_param = NULL, *raw_param = NULL, _0, _1; + zval text; zval *this_ptr = getThis(); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&version); - ZVAL_UNDEF(&local_sub); - ZVAL_UNDEF(&attributes_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&collectionLocal); - ZVAL_UNDEF(&collectionAttributes); + ZVAL_UNDEF(&text); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 6) - Z_PARAM_STR(path) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(text) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(local) - Z_PARAM_BOOL(filter) - Z_PARAM_ZVAL_OR_NULL(attributes) - Z_PARAM_STR_OR_NULL(version) - Z_PARAM_BOOL(autoVersion) + Z_PARAM_ARRAY(attributes) + Z_PARAM_BOOL(raw) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 5, &path_param, &local, &filter_param, &attributes, &version_param, &autoVersion_param); - if (UNEXPECTED(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 of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { - zephir_get_strval(&path, path_param); - } else { - ZEPHIR_INIT_VAR(&path); - } - if (!local) { - local = &local_sub; - local = &__$null; - } - if (!filter_param) { - filter = 1; - } else { - filter = zephir_get_boolval(filter_param); - } - if (!attributes) { - attributes = &attributes_sub; - attributes = &__$null; - } - if (!version_param) { - ZEPHIR_INIT_VAR(&version); + zephir_fetch_params(1, 1, 2, &text_param, &attributes_param, &raw_param); + zephir_get_strval(&text, text_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); } else { - zephir_get_strval(&version, version_param); + zephir_get_arrval(&attributes, attributes_param); } - if (!autoVersion_param) { - autoVersion = 0; + if (!raw_param) { + raw = 0; } else { - autoVersion = zephir_get_boolval(autoVersion_param); + raw = zephir_get_boolval(raw_param); } - if (((Z_TYPE_P(local) == IS_TRUE || Z_TYPE_P(local) == IS_FALSE) == 1)) { - ZEPHIR_CPY_WRT(&collectionLocal, local); - } else { - ZEPHIR_OBS_NVAR(&collectionLocal); - zephir_read_property(&collectionLocal, this_ptr, ZEND_STRL("local"), PH_NOISY_CC); - } - if (Z_TYPE_P(attributes) == IS_ARRAY) { - ZEPHIR_CPY_WRT(&collectionAttributes, attributes); - } else { - ZEPHIR_OBS_NVAR(&collectionAttributes); - zephir_read_property(&collectionAttributes, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC); - } ZEPHIR_INIT_VAR(&_0); - object_init_ex(&_0, phalcon_assets_asset_css_ce); - if (filter) { + ZVAL_STRING(&_0, "button"); + if (raw) { ZVAL_BOOL(&_1, 1); } else { ZVAL_BOOL(&_1, 0); } - if (autoVersion) { - ZVAL_BOOL(&_2, 1); - } else { - ZVAL_BOOL(&_2, 0); - } - ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 163, &path, &collectionLocal, &_1, &collectionAttributes, &version, &_2); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "add", NULL, 0, &_0); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "renderfullelement", NULL, 0, &_0, &text, &attributes, &_1); zephir_check_call_status(); - RETURN_THIS(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Assets_Collection, addFilter) -{ - zval *filter, filter_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&filter_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(filter, phalcon_assets_filterinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - zephir_fetch_params_without_memory_grow(1, 0, &filter); - zephir_update_property_array_append(this_ptr, SL("filters"), filter); - RETURN_THISW(); -} +#ifdef HAVE_CONFIG_H +#endif -static PHP_METHOD(Phalcon_Assets_Collection, addInline) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *code, code_sub; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&code_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(code, phalcon_assets_inline_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &code); +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Close) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Close, phalcon, html_helper_close, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_close_method_entry, 0); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addasset", NULL, 162, code); - zephir_check_call_status(); - RETURN_THIS(); + return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Collection, addInlineCss) +static PHP_METHOD(Phalcon_Html_Helper_Close, __invoke) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool filter; - zval *content_param = NULL, *filter_param = NULL, *attributes = NULL, attributes_sub, __$null, collectionAttributes, _0, _1; - zval content; + zend_bool raw; + zval *tag_param = NULL, *raw_param = NULL, _0; + zval tag; zval *this_ptr = getThis(); - ZVAL_UNDEF(&content); - ZVAL_UNDEF(&attributes_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&collectionAttributes); + ZVAL_UNDEF(&tag); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(content) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(tag) Z_PARAM_OPTIONAL - Z_PARAM_BOOL(filter) - Z_PARAM_ZVAL_OR_NULL(attributes) + Z_PARAM_BOOL(raw) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &content_param, &filter_param, &attributes); - zephir_get_strval(&content, content_param); - if (!filter_param) { - filter = 1; + zephir_fetch_params(1, 1, 1, &tag_param, &raw_param); + zephir_get_strval(&tag, tag_param); + if (!raw_param) { + raw = 0; } else { - filter = zephir_get_boolval(filter_param); - } - if (!attributes) { - attributes = &attributes_sub; - attributes = &__$null; + raw = zephir_get_boolval(raw_param); } - if (Z_TYPE_P(attributes) == IS_ARRAY) { - ZEPHIR_CPY_WRT(&collectionAttributes, attributes); - } else { - ZEPHIR_OBS_NVAR(&collectionAttributes); - zephir_read_property(&collectionAttributes, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC); - } - ZEPHIR_INIT_VAR(&_0); - object_init_ex(&_0, phalcon_assets_inline_css_ce); - if (filter) { - ZVAL_BOOL(&_1, 1); + if (raw) { + ZVAL_BOOL(&_0, 1); } else { - ZVAL_BOOL(&_1, 0); + ZVAL_BOOL(&_0, 0); } - ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 164, &content, &_1, &collectionAttributes); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "close", NULL, 0, &tag, &_0); zephir_check_call_status(); - zephir_update_property_array_append(this_ptr, SL("codes"), &_0); - RETURN_THIS(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Assets_Collection, addInlineJs) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Element) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Element, phalcon, html_helper_element, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_element_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Html_Helper_Element, __invoke) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool filter; - zval *content_param = NULL, *filter_param = NULL, *attributes = NULL, attributes_sub, __$null, collectionAttributes, _0, _1; - zval content; + zend_bool raw; + zval attributes; + zval *tag_param = NULL, *text_param = NULL, *attributes_param = NULL, *raw_param = NULL, _0; + zval tag, text; zval *this_ptr = getThis(); - ZVAL_UNDEF(&content); - ZVAL_UNDEF(&attributes_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&collectionAttributes); + ZVAL_UNDEF(&tag); + ZVAL_UNDEF(&text); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(content) + ZEND_PARSE_PARAMETERS_START(2, 4) + Z_PARAM_STR(tag) + Z_PARAM_STR(text) Z_PARAM_OPTIONAL - Z_PARAM_BOOL(filter) - Z_PARAM_ZVAL_OR_NULL(attributes) + Z_PARAM_ARRAY(attributes) + Z_PARAM_BOOL(raw) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &content_param, &filter_param, &attributes); - zephir_get_strval(&content, content_param); - if (!filter_param) { - filter = 1; + zephir_fetch_params(1, 2, 2, &tag_param, &text_param, &attributes_param, &raw_param); + zephir_get_strval(&tag, tag_param); + zephir_get_strval(&text, text_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); } else { - filter = zephir_get_boolval(filter_param); + zephir_get_arrval(&attributes, attributes_param); } - if (!attributes) { - attributes = &attributes_sub; - attributes = &__$null; + if (!raw_param) { + raw = 0; + } else { + raw = zephir_get_boolval(raw_param); } - if (Z_TYPE_P(attributes) == IS_ARRAY) { - ZEPHIR_CPY_WRT(&collectionAttributes, attributes); - } else { - ZEPHIR_OBS_NVAR(&collectionAttributes); - zephir_read_property(&collectionAttributes, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC); - } - ZEPHIR_INIT_VAR(&_0); - object_init_ex(&_0, phalcon_assets_inline_js_ce); - if (filter) { - ZVAL_BOOL(&_1, 1); + if (raw) { + ZVAL_BOOL(&_0, 1); } else { - ZVAL_BOOL(&_1, 0); + ZVAL_BOOL(&_0, 0); } - ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 165, &content, &_1, &collectionAttributes); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "renderfullelement", NULL, 0, &tag, &text, &attributes, &_0); zephir_check_call_status(); - zephir_update_property_array_append(this_ptr, SL("codes"), &_0); - RETURN_THIS(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Assets_Collection, addJs) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Form) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Form, phalcon, html_helper_form, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_form_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Html_Helper_Form, __invoke) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool filter, autoVersion; - zval *path_param = NULL, *local = NULL, local_sub, *filter_param = NULL, *attributes = NULL, attributes_sub, *version_param = NULL, *autoVersion_param = NULL, __$null, collectionLocal, collectionAttributes, _0, _1, _2; - zval path, version; + zval *attributes_param = NULL, overrides, _0, _1; + zval attributes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&version); - ZVAL_UNDEF(&local_sub); - ZVAL_UNDEF(&attributes_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&collectionLocal); - ZVAL_UNDEF(&collectionAttributes); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&overrides); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 6) - Z_PARAM_STR(path) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(local) - Z_PARAM_BOOL(filter) - Z_PARAM_ZVAL_OR_NULL(attributes) - Z_PARAM_STR_OR_NULL(version) - Z_PARAM_BOOL(autoVersion) + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 5, &path_param, &local, &filter_param, &attributes, &version_param, &autoVersion_param); - if (UNEXPECTED(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 of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { - zephir_get_strval(&path, path_param); - } else { - ZEPHIR_INIT_VAR(&path); - } - if (!local) { - local = &local_sub; - local = &__$null; - } - if (!filter_param) { - filter = 1; - } else { - filter = zephir_get_boolval(filter_param); - } - if (!attributes) { - attributes = &attributes_sub; - attributes = &__$null; - } - if (!version_param) { - ZEPHIR_INIT_VAR(&version); - } else { - zephir_get_strval(&version, version_param); - } - if (!autoVersion_param) { - autoVersion = 0; + zephir_fetch_params(1, 0, 1, &attributes_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); } else { - autoVersion = zephir_get_boolval(autoVersion_param); + zephir_get_arrval(&attributes, attributes_param); } - if (((Z_TYPE_P(local) == IS_TRUE || Z_TYPE_P(local) == IS_FALSE) == 1)) { - ZEPHIR_CPY_WRT(&collectionLocal, local); - } else { - ZEPHIR_OBS_NVAR(&collectionLocal); - zephir_read_property(&collectionLocal, this_ptr, ZEND_STRL("local"), PH_NOISY_CC); - } - if (Z_TYPE_P(attributes) == IS_ARRAY) { - ZEPHIR_CPY_WRT(&collectionAttributes, attributes); - } else { - ZEPHIR_OBS_NVAR(&collectionAttributes); - zephir_read_property(&collectionAttributes, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC); - } - ZEPHIR_INIT_VAR(&_0); - object_init_ex(&_0, phalcon_assets_asset_js_ce); - if (filter) { - ZVAL_BOOL(&_1, 1); - } else { - ZVAL_BOOL(&_1, 0); - } - if (autoVersion) { - ZVAL_BOOL(&_2, 1); - } else { - ZVAL_BOOL(&_2, 0); - } - ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 166, &path, &collectionLocal, &_1, &collectionAttributes, &version, &_2); + ZEPHIR_INIT_VAR(&overrides); + zephir_create_array(&overrides, 2, 0); + add_assoc_stringl_ex(&overrides, SL("method"), SL("post")); + add_assoc_stringl_ex(&overrides, SL("enctype"), SL("multipart/form-data")); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "orderattributes", NULL, 0, &overrides, &attributes); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "add", NULL, 0, &_0); + ZEPHIR_CPY_WRT(&overrides, &_0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "form"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "renderelement", NULL, 0, &_1, &overrides); zephir_check_call_status(); - RETURN_THIS(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Assets_Collection, count) -{ - zval _0; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); +#ifdef HAVE_CONFIG_H +#endif - zephir_read_property(&_0, this_ptr, ZEND_STRL("assets"), PH_NOISY_CC | PH_READONLY); - RETURN_LONG(zephir_fast_count_int(&_0)); -} -static PHP_METHOD(Phalcon_Assets_Collection, current) -{ - zval _0, _1, _2; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZEPHIR_MM_GROW(); +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Img) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Img, phalcon, html_helper_img, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_img_method_entry, 0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("assets"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_OBS_VAR(&_2); - zephir_read_property(&_2, this_ptr, ZEND_STRL("position"), PH_NOISY_CC); - zephir_array_fetch(&_1, &_0, &_2, PH_NOISY | PH_READONLY, "phalcon/Assets/Collection.zep", 261); - RETURN_CTOR(&_1); + return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Collection, getRealTargetPath) +static PHP_METHOD(Phalcon_Html_Helper_Img, __invoke) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *basePath_param = NULL, targetPath, completePath, _0; - zval basePath; + zval attributes; + zval *src_param = NULL, *attributes_param = NULL, overrides, _0; + zval src; zval *this_ptr = getThis(); - ZVAL_UNDEF(&basePath); - ZVAL_UNDEF(&targetPath); - ZVAL_UNDEF(&completePath); + ZVAL_UNDEF(&src); + ZVAL_UNDEF(&overrides); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(basePath) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(src) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &basePath_param); - if (UNEXPECTED(Z_TYPE_P(basePath_param) != IS_STRING && Z_TYPE_P(basePath_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'basePath' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(basePath_param) == IS_STRING)) { - zephir_get_strval(&basePath, basePath_param); + zephir_fetch_params(1, 1, 1, &src_param, &attributes_param); + zephir_get_strval(&src, src_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); } else { - ZEPHIR_INIT_VAR(&basePath); + zephir_get_arrval(&attributes, attributes_param); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("targetPath"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&targetPath, &_0); - ZEPHIR_INIT_VAR(&completePath); - ZEPHIR_CONCAT_VV(&completePath, &basePath, &targetPath); - if ((zephir_file_exists(&completePath) == SUCCESS)) { - ZEPHIR_RETURN_CALL_FUNCTION("realpath", NULL, 94, &completePath); - zephir_check_call_status(); - RETURN_MM(); - } - RETURN_CCTOR(&completePath); + ZEPHIR_INIT_VAR(&overrides); + zephir_create_array(&overrides, 1, 0); + zephir_array_update_string(&overrides, SL("src"), &src, PH_COPY | PH_SEPARATE); + zephir_array_unset_string(&attributes, SL("src"), PH_SEPARATE); + ZEPHIR_INIT_VAR(&_0); + zephir_fast_array_merge(&_0, &overrides, &attributes); + ZEPHIR_CPY_WRT(&overrides, &_0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "img"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "selfclose", NULL, 0, &_0, &overrides); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Assets_Collection, has) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *asset, asset_sub, key, assets; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&asset_sub); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&assets); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(asset, phalcon_assets_assetinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &asset); +#ifdef HAVE_CONFIG_H +#endif - ZEPHIR_CALL_METHOD(&key, asset, "getassetkey", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&assets); - zephir_read_property(&assets, this_ptr, ZEND_STRL("includedAssets"), PH_NOISY_CC); - RETURN_MM_BOOL(zephir_fast_in_array(&key, &assets)); -} -static PHP_METHOD(Phalcon_Assets_Collection, isAutoVersion) -{ - zval *this_ptr = getThis(); +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Label) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Label, phalcon, html_helper_label, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_label_method_entry, 0); - RETURN_MEMBER(getThis(), "autoVersion"); + return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Collection, join) +static PHP_METHOD(Phalcon_Html_Helper_Label, __invoke) { - zval *join_param = NULL, __$true, __$false; - zend_bool join; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *attributes_param = NULL, _0; + zval attributes; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(join) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &join_param); - join = zephir_get_boolval(join_param); - - - if (join) { - zephir_update_property_zval(this_ptr, ZEND_STRL("join"), &__$true); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &attributes_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("join"), &__$false); + zephir_get_arrval(&attributes, attributes_param); } - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Assets_Collection, key) -{ - zval *this_ptr = getThis(); - - RETURN_MEMBER(getThis(), "position"); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "label"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "renderelement", NULL, 0, &_0, &attributes); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Assets_Collection, next) -{ - zval *this_ptr = getThis(); - RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("position"))); -} +#ifdef HAVE_CONFIG_H +#endif -static PHP_METHOD(Phalcon_Assets_Collection, rewind) -{ - zval _0; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, 0); - zephir_update_property_zval(this_ptr, ZEND_STRL("position"), &_0); +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Link) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Link, phalcon, html_helper_link, phalcon_html_helper_abstractseries_ce, phalcon_html_helper_link_method_entry, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Collection, setAttributes) +static PHP_METHOD(Phalcon_Html_Helper_Link, add) { + zval _0, _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *attributes_param = NULL; - zval attributes; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *rel_param = NULL, *href_param = NULL, attributes, _1, _3; + zval rel, href; zval *this_ptr = getThis(); + ZVAL_UNDEF(&rel); + ZVAL_UNDEF(&href); ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(rel) + Z_PARAM_STR(href) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &attributes_param); - ZEPHIR_OBS_COPY_OR_DUP(&attributes, attributes_param); + zephir_fetch_params(1, 2, 0, &rel_param, &href_param); + zephir_get_strval(&rel, rel_param); + zephir_get_strval(&href, href_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &attributes); + ZEPHIR_INIT_VAR(&attributes); + zephir_create_array(&attributes, 2, 0); + zephir_array_update_string(&attributes, SL("rel"), &rel, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&attributes, SL("href"), &href, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 3, 0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "renderTag"); + zephir_array_fast_append(&_0, &_1); + ZEPHIR_INIT_VAR(&_2); + zephir_create_array(&_2, 3, 0); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "gettag", NULL, 0); + zephir_check_call_status(); + zephir_array_fast_append(&_2, &_3); + zephir_array_fast_append(&_2, &attributes); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "/"); + zephir_array_fast_append(&_2, &_1); + zephir_array_fast_append(&_0, &_2); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "indent", NULL, 0); + zephir_check_call_status(); + zephir_array_fast_append(&_0, &_3); + zephir_update_property_array_append(this_ptr, SL("store"), &_0); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Assets_Collection, setFilters) +static PHP_METHOD(Phalcon_Html_Helper_Link, getTag) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *filters_param = NULL; - zval filters; zval *this_ptr = getThis(); - ZVAL_UNDEF(&filters); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(filters) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &filters_param); - ZEPHIR_OBS_COPY_OR_DUP(&filters, filters_param); + RETURN_STRING("link"); +} - zephir_update_property_zval(this_ptr, ZEND_STRL("filters"), &filters); - RETURN_THIS(); -} -static PHP_METHOD(Phalcon_Assets_Collection, setLocal) -{ - zval *local_param = NULL, __$true, __$false; - zend_bool local; - zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(local) - ZEND_PARSE_PARAMETERS_END(); +#ifdef HAVE_CONFIG_H #endif - zephir_fetch_params_without_memory_grow(1, 0, &local_param); - if (UNEXPECTED(Z_TYPE_P(local_param) != IS_TRUE && Z_TYPE_P(local_param) != IS_FALSE)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'local' must be of the type bool")); - RETURN_NULL(); - } - local = (Z_TYPE_P(local_param) == IS_TRUE); - if (local) { - zephir_update_property_zval(this_ptr, ZEND_STRL("local"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("local"), &__$false); - } - RETURN_THISW(); + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Meta) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Meta, phalcon, html_helper_meta, phalcon_html_helper_abstractseries_ce, phalcon_html_helper_meta_method_entry, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Collection, setPrefix) +static PHP_METHOD(Phalcon_Html_Helper_Meta, add) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *prefix_param = NULL; - zval prefix; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *attributes_param = NULL, _1, _3; + zval attributes, _0, _2; zval *this_ptr = getThis(); - ZVAL_UNDEF(&prefix); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(prefix) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &prefix_param); - if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { - zephir_get_strval(&prefix, prefix_param); + zephir_fetch_params(1, 0, 1, &attributes_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); } else { - ZEPHIR_INIT_VAR(&prefix); + zephir_get_arrval(&attributes, attributes_param); } - zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &prefix); + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 3, 0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "renderTag"); + zephir_array_fast_append(&_0, &_1); + ZEPHIR_INIT_VAR(&_2); + zephir_create_array(&_2, 2, 0); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "gettag", NULL, 0); + zephir_check_call_status(); + zephir_array_fast_append(&_2, &_3); + zephir_array_fast_append(&_2, &attributes); + zephir_array_fast_append(&_0, &_2); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "indent", NULL, 0); + zephir_check_call_status(); + zephir_array_fast_append(&_0, &_3); + zephir_update_property_array_append(this_ptr, SL("store"), &_0); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Assets_Collection, setTargetLocal) -{ - zval *targetLocal_param = NULL, __$true, __$false; - zend_bool targetLocal; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(targetLocal) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &targetLocal_param); - if (UNEXPECTED(Z_TYPE_P(targetLocal_param) != IS_TRUE && Z_TYPE_P(targetLocal_param) != IS_FALSE)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'targetLocal' must be of the type bool")); - RETURN_NULL(); - } - targetLocal = (Z_TYPE_P(targetLocal_param) == IS_TRUE); - - - if (targetLocal) { - zephir_update_property_zval(this_ptr, ZEND_STRL("targetLocal"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("targetLocal"), &__$false); - } - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Assets_Collection, setTargetPath) +static PHP_METHOD(Phalcon_Html_Helper_Meta, addHttp) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *targetPath_param = NULL; - zval targetPath; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *httpEquiv_param = NULL, *content_param = NULL, _0; + zval httpEquiv, content; zval *this_ptr = getThis(); - ZVAL_UNDEF(&targetPath); + ZVAL_UNDEF(&httpEquiv); + ZVAL_UNDEF(&content); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(targetPath) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(httpEquiv) + Z_PARAM_STR(content) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &targetPath_param); - if (UNEXPECTED(Z_TYPE_P(targetPath_param) != IS_STRING && Z_TYPE_P(targetPath_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'targetPath' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(targetPath_param) == IS_STRING)) { - zephir_get_strval(&targetPath, targetPath_param); - } else { - ZEPHIR_INIT_VAR(&targetPath); - } + zephir_fetch_params(1, 2, 0, &httpEquiv_param, &content_param); + zephir_get_strval(&httpEquiv, httpEquiv_param); + zephir_get_strval(&content, content_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("targetPath"), &targetPath); - RETURN_THIS(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "http-equiv"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addelement", NULL, 279, &_0, &httpEquiv, &content); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Assets_Collection, setTargetUri) +static PHP_METHOD(Phalcon_Html_Helper_Meta, addName) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *targetUri_param = NULL; - zval targetUri; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, *content_param = NULL, _0; + zval name, content; zval *this_ptr = getThis(); - ZVAL_UNDEF(&targetUri); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&content); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(targetUri) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(name) + Z_PARAM_STR(content) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &targetUri_param); - if (UNEXPECTED(Z_TYPE_P(targetUri_param) != IS_STRING && Z_TYPE_P(targetUri_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'targetUri' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(targetUri_param) == IS_STRING)) { - zephir_get_strval(&targetUri, targetUri_param); - } else { - ZEPHIR_INIT_VAR(&targetUri); - } + zephir_fetch_params(1, 2, 0, &name_param, &content_param); + zephir_get_strval(&name, name_param); + zephir_get_strval(&content, content_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("targetUri"), &targetUri); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "name"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addelement", NULL, 279, &_0, &name, &content); + zephir_check_call_status(); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Assets_Collection, setSourcePath) +static PHP_METHOD(Phalcon_Html_Helper_Meta, addProperty) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *sourcePath_param = NULL; - zval sourcePath; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, *content_param = NULL, _0; + zval name, content; zval *this_ptr = getThis(); - ZVAL_UNDEF(&sourcePath); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&content); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(sourcePath) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(name) + Z_PARAM_STR(content) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &sourcePath_param); - if (UNEXPECTED(Z_TYPE_P(sourcePath_param) != IS_STRING && Z_TYPE_P(sourcePath_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sourcePath' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(sourcePath_param) == IS_STRING)) { - zephir_get_strval(&sourcePath, sourcePath_param); - } else { - ZEPHIR_INIT_VAR(&sourcePath); - } + zephir_fetch_params(1, 2, 0, &name_param, &content_param); + zephir_get_strval(&name, name_param); + zephir_get_strval(&content, content_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("sourcePath"), &sourcePath); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "property"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addelement", NULL, 279, &_0, &name, &content); + zephir_check_call_status(); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Assets_Collection, valid) +static PHP_METHOD(Phalcon_Html_Helper_Meta, getTag) { - zval _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("assets"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_1, this_ptr, ZEND_STRL("position"), PH_NOISY_CC | PH_READONLY); - RETURN_BOOL(zephir_array_isset(&_0, &_1)); + RETURN_STRING("meta"); } -static PHP_METHOD(Phalcon_Assets_Collection, addAsset) +static PHP_METHOD(Phalcon_Html_Helper_Meta, addElement) { + zval attributes; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *asset, asset_sub, _0, _1; + zval *element_param = NULL, *value_param = NULL, *content_param = NULL; + zval element, value, content; zval *this_ptr = getThis(); - ZVAL_UNDEF(&asset_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&element); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&content); + ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(asset, phalcon_assets_assetinterface_ce) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(element) + Z_PARAM_STR(value) + Z_PARAM_STR(content) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &asset); + zephir_fetch_params(1, 3, 0, &element_param, &value_param, &content_param); + zephir_get_strval(&element, element_param); + zephir_get_strval(&value, value_param); + zephir_get_strval(&content, content_param); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, asset); - zephir_check_call_status(); - if (zephir_is_true(&_0)) { - RETURN_MM_BOOL(0); - } - if (zephir_instance_of_ev(asset, phalcon_assets_asset_ce)) { - zephir_update_property_array_append(this_ptr, SL("assets"), asset); - } else { - zephir_update_property_array_append(this_ptr, SL("codes"), asset); - } - ZEPHIR_CALL_METHOD(&_1, asset, "getassetkey", NULL, 0); + ZEPHIR_INIT_VAR(&attributes); + zephir_create_array(&attributes, 2, 0); + zephir_array_update_zval(&attributes, &element, &value, PH_COPY); + zephir_array_update_string(&attributes, SL("content"), &content, PH_COPY | PH_SEPARATE); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &attributes); zephir_check_call_status(); - zephir_update_property_array_append(this_ptr, SL("includedAssets"), &_1); - RETURN_MM_BOOL(1); -} - -zend_object *zephir_init_properties_Phalcon_Assets_Collection(zend_class_entry *class_type) -{ - zval _0, _2, _4, _6, _1$$3, _3$$4, _5$$5, _7$$6; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_7$$6); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("filters"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("filters"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("codes"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("codes"), &_3$$4); - } - zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_4) == IS_NULL) { - ZEPHIR_INIT_VAR(&_5$$5); - array_init(&_5$$5); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("attributes"), &_5$$5); - } - zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("assets"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_6) == IS_NULL) { - ZEPHIR_INIT_VAR(&_7$$6); - array_init(&_7$$6); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("assets"), &_7$$6); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } + RETURN_MM(); } @@ -39202,31 +37368,89 @@ zend_object *zephir_init_properties_Phalcon_Assets_Collection(zend_class_entry * -ZEPHIR_INIT_CLASS(Phalcon_Assets_Exception) +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Ol) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Assets, Exception, phalcon, assets_exception, phalcon_exception_ce, NULL, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Ol, phalcon, html_helper_ol, phalcon_html_helper_abstractlist_ce, phalcon_html_helper_ol_method_entry, 0); return SUCCESS; } +static PHP_METHOD(Phalcon_Html_Helper_Ol, add) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool raw; + zval attributes, _0, _2; + zval *text_param = NULL, *attributes_param = NULL, *raw_param = NULL, _1, _3, _4; + zval text; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(text) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) + Z_PARAM_BOOL(raw) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &text_param, &attributes_param, &raw_param); + zephir_get_strval(&text, text_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); + } + if (!raw_param) { + raw = 0; + } else { + raw = zephir_get_boolval(raw_param); + } + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 3, 0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "renderFullElement"); + zephir_array_fast_append(&_0, &_1); + ZEPHIR_INIT_VAR(&_2); + zephir_create_array(&_2, 4, 0); + ZEPHIR_OBS_VAR(&_3); + zephir_read_property(&_3, this_ptr, ZEND_STRL("elementTag"), PH_NOISY_CC); + zephir_array_fast_append(&_2, &_3); + zephir_array_fast_append(&_2, &text); + zephir_array_fast_append(&_2, &attributes); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_BOOL(&_1, raw); + zephir_array_fast_append(&_2, &_1); + zephir_array_fast_append(&_0, &_2); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "indent", NULL, 0); + zephir_check_call_status(); + zephir_array_fast_append(&_0, &_4); + zephir_update_property_array_append(this_ptr, SL("store"), &_0); + RETURN_THIS(); +} -ZEPHIR_INIT_CLASS(Phalcon_Assets_FilterInterface) +static PHP_METHOD(Phalcon_Html_Helper_Ol, getTag) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Assets, FilterInterface, phalcon, assets_filterinterface, phalcon_assets_filterinterface_method_entry); + zval *this_ptr = getThis(); - return SUCCESS; + + + RETURN_STRING("ol"); } -ZEPHIR_DOC_METHOD(Phalcon_Assets_FilterInterface, filter); @@ -39237,89 +37461,102 @@ ZEPHIR_DOC_METHOD(Phalcon_Assets_FilterInterface, filter); -ZEPHIR_INIT_CLASS(Phalcon_Assets_Inline) +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Script) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Assets, Inline, phalcon, assets_inline, phalcon_assets_inline_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Script, phalcon, html_helper_script, phalcon_html_helper_style_ce, phalcon_html_helper_script_method_entry, 0); - zend_declare_property_null(phalcon_assets_inline_ce, SL("attributes"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_assets_inline_ce, SL("content"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_assets_inline_ce, SL("filter"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_assets_inline_ce, SL("type"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_assets_inline_ce, 1, phalcon_assets_assetinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Inline, getAttributes) +static PHP_METHOD(Phalcon_Html_Helper_Script, getAttributes) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval attributes, required; + zval *href_param = NULL, *attributes_param = NULL; + zval href; zval *this_ptr = getThis(); + ZVAL_UNDEF(&href); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&required); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(href) + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "attributes"); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &href_param, &attributes_param); + zephir_get_strval(&href, href_param); + zephir_get_arrval(&attributes, attributes_param); + + + ZEPHIR_INIT_VAR(&required); + zephir_create_array(&required, 2, 0); + zephir_array_update_string(&required, SL("src"), &href, PH_COPY | PH_SEPARATE); + add_assoc_stringl_ex(&required, SL("type"), SL("text/javascript")); + zephir_array_unset_string(&attributes, SL("src"), PH_SEPARATE); + zephir_fast_array_merge(return_value, &required, &attributes); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Assets_Inline, getContent) +static PHP_METHOD(Phalcon_Html_Helper_Script, getTag) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "content"); + RETURN_STRING("script"); } -static PHP_METHOD(Phalcon_Assets_Inline, getFilter) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "filter"); -} +#ifdef HAVE_CONFIG_H +#endif -static PHP_METHOD(Phalcon_Assets_Inline, getType) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "type"); + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Style) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Style, phalcon, html_helper_style, phalcon_html_helper_abstractseries_ce, phalcon_html_helper_style_method_entry, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Inline, __construct) +static PHP_METHOD(Phalcon_Html_Helper_Style, add) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval attributes; - zend_bool filter; - zval *type_param = NULL, *content_param = NULL, *filter_param = NULL, *attributes_param = NULL, __$true, __$false; - zval type, content; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval attributes, _0, _2; + zval *href_param = NULL, *attributes_param = NULL, _1, _3; + zval href; zval *this_ptr = getThis(); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&content); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&href); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 4) - Z_PARAM_STR(type) - Z_PARAM_STR(content) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(href) Z_PARAM_OPTIONAL - Z_PARAM_BOOL(filter) Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 2, &type_param, &content_param, &filter_param, &attributes_param); - zephir_get_strval(&type, type_param); - zephir_get_strval(&content, content_param); - if (!filter_param) { - filter = 1; - } else { - filter = zephir_get_boolval(filter_param); - } + zephir_fetch_params(1, 1, 1, &href_param, &attributes_param); + zephir_get_strval(&href, href_param); if (!attributes_param) { ZEPHIR_INIT_VAR(&attributes); array_init(&attributes); @@ -39328,117 +37565,74 @@ static PHP_METHOD(Phalcon_Assets_Inline, __construct) } - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &type); - zephir_update_property_zval(this_ptr, ZEND_STRL("content"), &content); - if (filter) { - zephir_update_property_zval(this_ptr, ZEND_STRL("filter"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("filter"), &__$false); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &attributes); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Assets_Inline, getAssetKey) -{ - zval key, _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "gettype", NULL, 0); + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 3, 0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "renderFullElement"); + zephir_array_fast_append(&_0, &_1); + ZEPHIR_INIT_VAR(&_2); + zephir_create_array(&_2, 3, 0); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "gettag", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getcontent", NULL, 0); + zephir_array_fast_append(&_2, &_3); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, ""); + zephir_array_fast_append(&_2, &_1); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getattributes", NULL, 0, &href, &attributes); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&key); - ZEPHIR_CONCAT_VSV(&key, &_0, ":", &_1); - zephir_md5(return_value, &key); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Assets_Inline, setAttributes) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *attributes_param = NULL; - zval attributes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &attributes_param); - zephir_get_arrval(&attributes, attributes_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &attributes); + zephir_array_fast_append(&_2, &_3); + zephir_array_fast_append(&_0, &_2); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "indent", NULL, 0); + zephir_check_call_status(); + zephir_array_fast_append(&_0, &_3); + zephir_update_property_array_append(this_ptr, SL("store"), &_0); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Assets_Inline, setFilter) +static PHP_METHOD(Phalcon_Html_Helper_Style, getTag) { - zval *filter_param = NULL, __$true, __$false; - zend_bool filter; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(filter) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &filter_param); - filter = zephir_get_boolval(filter_param); - if (filter) { - zephir_update_property_zval(this_ptr, ZEND_STRL("filter"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("filter"), &__$false); - } - RETURN_THISW(); + RETURN_STRING("style"); } -static PHP_METHOD(Phalcon_Assets_Inline, setType) +static PHP_METHOD(Phalcon_Html_Helper_Style, getAttributes) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *type_param = NULL; - zval type; + zval attributes, required; + zval *href_param = NULL, *attributes_param = NULL; + zval href; zval *this_ptr = getThis(); - ZVAL_UNDEF(&type); + ZVAL_UNDEF(&href); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&required); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(type) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(href) + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &type_param); - zephir_get_strval(&type, type_param); + zephir_fetch_params(1, 2, 0, &href_param, &attributes_param); + zephir_get_strval(&href, href_param); + zephir_get_arrval(&attributes, attributes_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &type); - RETURN_THIS(); + ZEPHIR_INIT_VAR(&required); + zephir_create_array(&required, 4, 0); + add_assoc_stringl_ex(&required, SL("rel"), SL("stylesheet")); + zephir_array_update_string(&required, SL("href"), &href, PH_COPY | PH_SEPARATE); + add_assoc_stringl_ex(&required, SL("type"), SL("text/css")); + add_assoc_stringl_ex(&required, SL("media"), SL("screen")); + zephir_array_unset_string(&attributes, SL("href"), PH_SEPARATE); + zephir_fast_array_merge(return_value, &required, &attributes); + RETURN_MM(); } @@ -39451,2146 +37645,1117 @@ static PHP_METHOD(Phalcon_Assets_Inline, setType) -ZEPHIR_INIT_CLASS(Phalcon_Assets_Manager) +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Title) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Assets, Manager, phalcon, assets_manager, phalcon_di_abstractinjectionaware_ce, phalcon_assets_manager_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Title, phalcon, html_helper_title, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_title_method_entry, 0); - zend_declare_property_null(phalcon_assets_manager_ce, SL("collections"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_assets_manager_ce, SL("options"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_assets_manager_ce, SL("implicitOutput"), 1, ZEND_ACC_PROTECTED); - phalcon_assets_manager_ce->create_object = zephir_init_properties_Phalcon_Assets_Manager; + zend_declare_property_null(phalcon_html_helper_title_ce, SL("append"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_html_helper_title_ce, SL("prepend"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_html_helper_title_ce, SL("title"), "", ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_html_helper_title_ce, SL("separator"), "", ZEND_ACC_PROTECTED); + phalcon_html_helper_title_ce->create_object = zephir_init_properties_Phalcon_Html_Helper_Title; return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Manager, __construct) +static PHP_METHOD(Phalcon_Html_Helper_Title, __invoke) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *options_param = NULL; - zval options; + zval *separator_param = NULL, *indent_param = NULL, *delimiter_param = NULL; + zval separator, indent, delimiter; zval *this_ptr = getThis(); - ZVAL_UNDEF(&options); + ZVAL_UNDEF(&separator); + ZVAL_UNDEF(&indent); + ZVAL_UNDEF(&delimiter); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(0, 3) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + Z_PARAM_STR(separator) + Z_PARAM_STR_OR_NULL(indent) + Z_PARAM_STR_OR_NULL(delimiter) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &options_param); - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); + zephir_fetch_params(1, 0, 3, &separator_param, &indent_param, &delimiter_param); + if (!separator_param) { + ZEPHIR_INIT_VAR(&separator); + ZVAL_STRING(&separator, ""); } else { - zephir_get_arrval(&options, options_param); + zephir_get_strval(&separator, separator_param); + } + if (!indent_param) { + ZEPHIR_INIT_VAR(&indent); + } else { + zephir_get_strval(&indent, indent_param); + } + if (!delimiter_param) { + ZEPHIR_INIT_VAR(&delimiter); + } else { + zephir_get_strval(&delimiter, delimiter_param); } - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); - ZEPHIR_MM_RESTORE(); + zephir_update_property_zval(this_ptr, ZEND_STRL("delimiter"), &delimiter); + zephir_update_property_zval(this_ptr, ZEND_STRL("indent"), &indent); + zephir_update_property_zval(this_ptr, ZEND_STRL("separator"), &separator); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Assets_Manager, addAsset) +static PHP_METHOD(Phalcon_Html_Helper_Title, __toString) { + zval _1; + zval delimiter, indent, items, _0, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *asset, asset_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&asset_sub); + ZVAL_UNDEF(&delimiter); + ZVAL_UNDEF(&indent); + ZVAL_UNDEF(&items); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(asset, phalcon_assets_asset_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_13); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &asset); - - ZEPHIR_CALL_METHOD(&_0, asset, "gettype", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addassetbytype", NULL, 0, &_0, asset); - zephir_check_call_status(); - RETURN_THIS(); -} + zephir_read_property(&_0, this_ptr, ZEND_STRL("prepend"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + zephir_create_array(&_1, 1, 0); + ZEPHIR_OBS_VAR(&_2); + zephir_read_property(&_2, this_ptr, ZEND_STRL("title"), PH_NOISY_CC); + zephir_array_fast_append(&_1, &_2); + zephir_read_property(&_3, this_ptr, ZEND_STRL("append"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&items, "array_merge", NULL, 277, &_0, &_1, &_3); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_4); + zephir_read_property(&_5, this_ptr, ZEND_STRL("indent"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_5)) { + ZEPHIR_OBS_NVAR(&_4); + zephir_read_property(&_4, this_ptr, ZEND_STRL("indent"), PH_NOISY_CC); + } else { + ZEPHIR_INIT_NVAR(&_4); + ZVAL_STRING(&_4, ""); + } + ZEPHIR_CPY_WRT(&indent, &_4); + ZEPHIR_INIT_NVAR(&_4); + zephir_read_property(&_6, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_6)) { + ZEPHIR_OBS_NVAR(&_4); + zephir_read_property(&_4, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC); + } else { + ZEPHIR_INIT_NVAR(&_4); + ZVAL_STRING(&_4, ""); + } + ZEPHIR_CPY_WRT(&delimiter, &_4); + ZEPHIR_INIT_VAR(&_7); + array_init(&_7); + zephir_update_property_zval(this_ptr, ZEND_STRL("append"), &_7); + ZEPHIR_INIT_VAR(&_8); + array_init(&_8); + zephir_update_property_zval(this_ptr, ZEND_STRL("prepend"), &_8); + ZEPHIR_INIT_VAR(&_9); + ZEPHIR_INIT_NVAR(&_9); + ZVAL_STRING(&_9, ""); + zephir_update_property_zval(this_ptr, ZEND_STRL("title"), &_9); + ZEPHIR_INIT_NVAR(&_9); + zephir_read_property(&_11, this_ptr, ZEND_STRL("separator"), PH_NOISY_CC | PH_READONLY); + zephir_fast_join(&_9, &_11, &items); + ZEPHIR_INIT_VAR(&_12); + array_init(&_12); + ZEPHIR_INIT_VAR(&_13); + ZVAL_STRING(&_13, "title"); + ZVAL_BOOL(&_14, 1); + ZEPHIR_CALL_METHOD(&_10, this_ptr, "renderfullelement", NULL, 0, &_13, &_9, &_12, &_14); + zephir_check_call_status(); + ZEPHIR_CONCAT_VVV(return_value, &indent, &_10, &delimiter); + RETURN_MM(); +} -static PHP_METHOD(Phalcon_Assets_Manager, addAssetByType) +static PHP_METHOD(Phalcon_Html_Helper_Title, append) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *type_param = NULL, *asset, asset_sub, collection, _0; - zval type; + zend_bool raw; + zval *text_param = NULL, *raw_param = NULL, _0, _1; + zval text; zval *this_ptr = getThis(); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&asset_sub); - ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&text); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(type) - Z_PARAM_OBJECT_OF_CLASS(asset, phalcon_assets_asset_ce) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(text) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(raw) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &type_param, &asset); - if (UNEXPECTED(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(type_param) == IS_STRING)) { - zephir_get_strval(&type, type_param); + zephir_fetch_params(1, 1, 1, &text_param, &raw_param); + zephir_get_strval(&text, text_param); + if (!raw_param) { + raw = 0; } else { - ZEPHIR_INIT_VAR(&type); + raw = zephir_get_boolval(raw_param); } - ZEPHIR_OBS_VAR(&collection); - zephir_read_property(&_0, this_ptr, ZEND_STRL("collections"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&collection, &_0, &type, 0))) { - ZEPHIR_INIT_NVAR(&collection); - object_init_ex(&collection, phalcon_assets_collection_ce); - ZEPHIR_CALL_METHOD(NULL, &collection, "__construct", NULL, 167); + ZEPHIR_INIT_VAR(&_0); + if (raw) { + ZEPHIR_CPY_WRT(&_0, &text); + } else { + zephir_read_property(&_1, this_ptr, ZEND_STRL("escaper"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_0, &_1, "html", NULL, 0, &text); zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("collections"), &type, &collection); } - ZEPHIR_CALL_METHOD(NULL, &collection, "add", NULL, 168, asset); - zephir_check_call_status(); + zephir_get_strval(&text, &_0); + zephir_update_property_array_append(this_ptr, SL("append"), &text); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Assets_Manager, addCss) +static PHP_METHOD(Phalcon_Html_Helper_Title, get) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "title"); +} + +static PHP_METHOD(Phalcon_Html_Helper_Title, set) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval attributes; - zend_bool filter, autoVersion; - zval *path_param = NULL, *local = NULL, local_sub, *filter_param = NULL, *attributes_param = NULL, *version_param = NULL, *autoVersion_param = NULL, __$true, _0, _1, _2, _3; - zval path, version; + zend_bool raw; + zval *text_param = NULL, *raw_param = NULL, _0, _1; + zval text; zval *this_ptr = getThis(); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&version); - ZVAL_UNDEF(&local_sub); - ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&text); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 6) - Z_PARAM_STR(path) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(text) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL(local) - Z_PARAM_BOOL(filter) - Z_PARAM_ARRAY(attributes) - Z_PARAM_STR_OR_NULL(version) - Z_PARAM_BOOL(autoVersion) + Z_PARAM_BOOL(raw) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 5, &path_param, &local, &filter_param, &attributes_param, &version_param, &autoVersion_param); - if (UNEXPECTED(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 of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { - zephir_get_strval(&path, path_param); - } else { - ZEPHIR_INIT_VAR(&path); - } - if (!local) { - local = &local_sub; - local = &__$true; - } - if (!filter_param) { - filter = 1; - } else { - filter = zephir_get_boolval(filter_param); - } - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - if (!version_param) { - ZEPHIR_INIT_VAR(&version); - } else { - zephir_get_strval(&version, version_param); - } - if (!autoVersion_param) { - autoVersion = 0; + zephir_fetch_params(1, 1, 1, &text_param, &raw_param); + zephir_get_strval(&text, text_param); + if (!raw_param) { + raw = 0; } else { - autoVersion = zephir_get_boolval(autoVersion_param); + raw = zephir_get_boolval(raw_param); } ZEPHIR_INIT_VAR(&_0); - object_init_ex(&_0, phalcon_assets_asset_css_ce); - if (filter) { - ZVAL_BOOL(&_1, 1); - } else { - ZVAL_BOOL(&_1, 0); - } - if (autoVersion) { - ZVAL_BOOL(&_2, 1); + if (raw) { + ZEPHIR_CPY_WRT(&_0, &text); } else { - ZVAL_BOOL(&_2, 0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("escaper"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_0, &_1, "html", NULL, 0, &text); + zephir_check_call_status(); } - ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 163, &path, local, &_1, &attributes, &version, &_2); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "css"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addassetbytype", NULL, 0, &_3, &_0); - zephir_check_call_status(); + zephir_get_strval(&text, &_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("title"), &text); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Assets_Manager, addInlineCode) +static PHP_METHOD(Phalcon_Html_Helper_Title, prepend) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *code, code_sub, _0; + zend_bool raw; + zval *text_param = NULL, *raw_param = NULL, _0, _1; + zval text; zval *this_ptr = getThis(); - ZVAL_UNDEF(&code_sub); + ZVAL_UNDEF(&text); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(code, phalcon_assets_inline_ce) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(text) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(raw) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &code); + zephir_fetch_params(1, 1, 1, &text_param, &raw_param); + zephir_get_strval(&text, text_param); + if (!raw_param) { + raw = 0; + } else { + raw = zephir_get_boolval(raw_param); + } - ZEPHIR_CALL_METHOD(&_0, code, "gettype", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addinlinecodebytype", NULL, 0, &_0, code); - zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + if (raw) { + ZEPHIR_CPY_WRT(&_0, &text); + } else { + zephir_read_property(&_1, this_ptr, ZEND_STRL("escaper"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_0, &_1, "html", NULL, 0, &text); + zephir_check_call_status(); + } + zephir_get_strval(&text, &_0); + zephir_update_property_array_append(this_ptr, SL("prepend"), &text); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Assets_Manager, addInlineCodeByType) +zend_object *zephir_init_properties_Phalcon_Html_Helper_Title(zend_class_entry *class_type) { + zval _0, _2, _1$$3, _3$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *type_param = NULL, *code, code_sub, collection, _0; - zval type; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("prepend"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("prepend"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("append"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("append"), &_3$$4); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Ul) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Ul, phalcon, html_helper_ul, phalcon_html_helper_ol_ce, phalcon_html_helper_ul_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Html_Helper_Ul, getTag) +{ zval *this_ptr = getThis(); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&code_sub); - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(type) - Z_PARAM_OBJECT_OF_CLASS(code, phalcon_assets_inline_ce) - ZEND_PARSE_PARAMETERS_END(); + + + RETURN_STRING("ul"); +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &type_param, &code); - if (UNEXPECTED(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(type_param) == IS_STRING)) { - zephir_get_strval(&type, type_param); - } else { - ZEPHIR_INIT_VAR(&type); - } - ZEPHIR_OBS_VAR(&collection); - zephir_read_property(&_0, this_ptr, ZEND_STRL("collections"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&collection, &_0, &type, 0))) { - ZEPHIR_INIT_NVAR(&collection); - object_init_ex(&collection, phalcon_assets_collection_ce); - ZEPHIR_CALL_METHOD(NULL, &collection, "__construct", NULL, 167); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("collections"), &type, &collection); - } - ZEPHIR_CALL_METHOD(NULL, &collection, "addinline", NULL, 169, code); - zephir_check_call_status(); - RETURN_THIS(); + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_AbstractInput) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, AbstractInput, phalcon, html_helper_input_abstractinput, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_input_abstractinput_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_string(phalcon_html_helper_input_abstractinput_ce, SL("type"), "text", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_html_helper_input_abstractinput_ce, SL("attributes"), ZEND_ACC_PROTECTED); + phalcon_html_helper_input_abstractinput_ce->create_object = zephir_init_properties_Phalcon_Html_Helper_Input_AbstractInput; + + return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Manager, addInlineCss) +static PHP_METHOD(Phalcon_Html_Helper_Input_AbstractInput, __invoke) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *content_param = NULL, *filter = NULL, filter_sub, *attributes = NULL, attributes_sub, __$true, __$null, _0, _1; - zval content; + zval attributes, _0; + zval *name_param = NULL, *value_param = NULL, *attributes_param = NULL, _1, _3, _4, _2$$3; + zval name, value; zval *this_ptr = getThis(); - ZVAL_UNDEF(&content); - ZVAL_UNDEF(&filter_sub); - ZVAL_UNDEF(&attributes_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&value); ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(content) + Z_PARAM_STR(name) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL(filter) - Z_PARAM_ZVAL_OR_NULL(attributes) + Z_PARAM_STR_OR_NULL(value) + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &content_param, &filter, &attributes); - zephir_get_strval(&content, content_param); - if (!filter) { - filter = &filter_sub; - filter = &__$true; + zephir_fetch_params(1, 1, 2, &name_param, &value_param, &attributes_param); + zephir_get_strval(&name, name_param); + if (!value_param) { + ZEPHIR_INIT_VAR(&value); + } else { + zephir_get_strval(&value, value_param); } - if (!attributes) { - attributes = &attributes_sub; - attributes = &__$null; + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); } ZEPHIR_INIT_VAR(&_0); - object_init_ex(&_0, phalcon_assets_inline_css_ce); - ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 164, &content, filter, attributes); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "css"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addinlinecodebytype", NULL, 0, &_1, &_0); + zephir_create_array(&_0, 2, 0); + ZEPHIR_OBS_VAR(&_1); + zephir_read_property(&_1, this_ptr, ZEND_STRL("type"), PH_NOISY_CC); + zephir_array_update_string(&_0, SL("type"), &_1, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_0, SL("name"), &name, PH_COPY | PH_SEPARATE); + zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &_0); + if (!(zephir_array_isset_string(&attributes, SL("id")))) { + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "id"); + zephir_update_property_array(this_ptr, SL("attributes"), &_2$$3, &name); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setvalue", NULL, 0, &value); zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_3); + zephir_read_property(&_4, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + zephir_fast_array_merge(&_3, &_4, &attributes); + zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &_3); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Assets_Manager, addInlineJs) +static PHP_METHOD(Phalcon_Html_Helper_Input_AbstractInput, __toString) { + zval _0, _1, _2, _3; + zval attributes; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *content_param = NULL, *filter = NULL, filter_sub, *attributes = NULL, attributes_sub, __$true, __$null, _0, _1; - zval content; zval *this_ptr = getThis(); - ZVAL_UNDEF(&content); - ZVAL_UNDEF(&filter_sub); - ZVAL_UNDEF(&attributes_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&attributes); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(content) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL(filter) - Z_PARAM_ZVAL_OR_NULL(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &content_param, &filter, &attributes); - zephir_get_strval(&content, content_param); - if (!filter) { - filter = &filter_sub; - filter = &__$true; - } - if (!attributes) { - attributes = &attributes_sub; - attributes = &__$null; - } - - ZEPHIR_INIT_VAR(&_0); - object_init_ex(&_0, phalcon_assets_inline_js_ce); - ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 165, &content, filter, attributes); - zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&attributes, &_0); ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "js"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addinlinecodebytype", NULL, 0, &_1, &_0); + array_init(&_1); + zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &_1); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "input"); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "/"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "rendertag", NULL, 0, &_2, &attributes, &_3); zephir_check_call_status(); - RETURN_THIS(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Assets_Manager, addJs) +static PHP_METHOD(Phalcon_Html_Helper_Input_AbstractInput, setValue) { + zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval attributes; - zend_bool filter, autoVersion; - zval *path_param = NULL, *local = NULL, local_sub, *filter_param = NULL, *attributes_param = NULL, *version_param = NULL, *autoVersion_param = NULL, __$true, _0, _1, _2, _3; - zval path, version; + zval *value_param = NULL, _1$$3; + zval value; zval *this_ptr = getThis(); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&version); - ZVAL_UNDEF(&local_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 6) - Z_PARAM_STR(path) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL(local) - Z_PARAM_BOOL(filter) - Z_PARAM_ARRAY(attributes) - Z_PARAM_STR_OR_NULL(version) - Z_PARAM_BOOL(autoVersion) + Z_PARAM_STR_OR_NULL(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 5, &path_param, &local, &filter_param, &attributes_param, &version_param, &autoVersion_param); - if (UNEXPECTED(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 of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { - zephir_get_strval(&path, path_param); - } else { - ZEPHIR_INIT_VAR(&path); - } - if (!local) { - local = &local_sub; - local = &__$true; - } - if (!filter_param) { - filter = 1; - } else { - filter = zephir_get_boolval(filter_param); - } - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - if (!version_param) { - ZEPHIR_INIT_VAR(&version); - } else { - zephir_get_strval(&version, version_param); - } - if (!autoVersion_param) { - autoVersion = 0; + zephir_fetch_params(1, 0, 1, &value_param); + if (!value_param) { + ZEPHIR_INIT_VAR(&value); } else { - autoVersion = zephir_get_boolval(autoVersion_param); + zephir_get_strval(&value, value_param); } - ZEPHIR_INIT_VAR(&_0); - object_init_ex(&_0, phalcon_assets_asset_js_ce); - if (filter) { - ZVAL_BOOL(&_1, 1); - } else { - ZVAL_BOOL(&_1, 0); + _0 = zephir_is_numeric(&value); + if (!(_0)) { + _0 = !(ZEPHIR_IS_EMPTY(&value)); } - if (autoVersion) { - ZVAL_BOOL(&_2, 1); - } else { - ZVAL_BOOL(&_2, 0); + if (_0) { + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, "value"); + zephir_update_property_array(this_ptr, SL("attributes"), &_1$$3, &value); } - ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 166, &path, local, &_1, &attributes, &version, &_2); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "js"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addassetbytype", NULL, 0, &_3, &_0); - zephir_check_call_status(); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Assets_Manager, collection) +zend_object *zephir_init_properties_Phalcon_Html_Helper_Input_AbstractInput(zend_class_entry *class_type) { + zval _0, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, collection, _0; - zval name; - zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("attributes"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - zephir_get_strval(&name, name_param); - ZEPHIR_OBS_VAR(&collection); - zephir_read_property(&_0, this_ptr, ZEND_STRL("collections"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&collection, &_0, &name, 0))) { - ZEPHIR_INIT_NVAR(&collection); - object_init_ex(&collection, phalcon_assets_collection_ce); - ZEPHIR_CALL_METHOD(NULL, &collection, "__construct", NULL, 167); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("collections"), &name, &collection); - } - RETURN_CCTOR(&collection); + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Checkbox) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Checkbox, phalcon, html_helper_input_checkbox, phalcon_html_helper_input_abstractinput_ce, phalcon_html_helper_input_checkbox_method_entry, 0); + + zend_declare_property_null(phalcon_html_helper_input_checkbox_ce, SL("label"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_html_helper_input_checkbox_ce, SL("type"), "checkbox", ZEND_ACC_PROTECTED); + phalcon_html_helper_input_checkbox_ce->create_object = zephir_init_properties_Phalcon_Html_Helper_Input_Checkbox; + + return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Manager, collectionAssetsByType) +static PHP_METHOD(Phalcon_Html_Helper_Input_Checkbox, __construct) { + zval _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval type; - zval *assets_param = NULL, *type_param = NULL, asset, *_0, _1, _2$$3, _3$$5; - zval assets, filtered; + zephir_fcall_cache_entry *_0 = NULL; + zval *escaper, escaper_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&assets); - ZVAL_UNDEF(&filtered); - ZVAL_UNDEF(&asset); + ZVAL_UNDEF(&escaper_sub); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&type); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ARRAY(assets) - Z_PARAM_STR(type) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(escaper, phalcon_escaper_escaperinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &assets_param, &type_param); - zephir_get_arrval(&assets, assets_param); - zephir_get_strval(&type, type_param); + zephir_fetch_params(1, 1, 0, &escaper); - ZEPHIR_INIT_VAR(&filtered); - array_init(&filtered); - zephir_is_iterable(&assets, 0, "phalcon/Assets/Manager.zep", 240); - if (Z_TYPE_P(&assets) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&assets), _0) - { - ZEPHIR_INIT_NVAR(&asset); - ZVAL_COPY(&asset, _0); - ZEPHIR_CALL_METHOD(&_2$$3, &asset, "gettype", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_EQUAL(&_2$$3, &type)) { - zephir_array_append(&filtered, &asset, PH_SEPARATE, "phalcon/Assets/Manager.zep", 236); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &assets, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &assets, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&asset, &assets, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_3$$5, &asset, "gettype", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_EQUAL(&_3$$5, &type)) { - zephir_array_append(&filtered, &asset, PH_SEPARATE, "phalcon/Assets/Manager.zep", 236); - } - ZEPHIR_CALL_METHOD(NULL, &assets, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&asset); - RETURN_CTOR(&filtered); + ZEPHIR_CALL_PARENT(NULL, phalcon_html_helper_input_checkbox_ce, getThis(), "__construct", &_0, 0, escaper); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + zephir_create_array(&_1, 3, 0); + add_assoc_stringl_ex(&_1, SL("start"), SL("")); + add_assoc_stringl_ex(&_1, SL("text"), SL("")); + add_assoc_stringl_ex(&_1, SL("end"), SL("")); + zephir_update_property_zval(this_ptr, ZEND_STRL("label"), &_1); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Assets_Manager, exists) +static PHP_METHOD(Phalcon_Html_Helper_Input_Checkbox, __toString) { + zval _2; + zval element, label, unchecked, _1, _3, _4, _5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *id_param = NULL, _0; - zval id; + zephir_fcall_cache_entry *_0 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&id); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(id) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&element); + ZVAL_UNDEF(&label); + ZVAL_UNDEF(&unchecked); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_2); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &id_param); - if (UNEXPECTED(Z_TYPE_P(id_param) != IS_STRING && Z_TYPE_P(id_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'id' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(id_param) == IS_STRING)) { - zephir_get_strval(&id, id_param); - } else { - ZEPHIR_INIT_VAR(&id); - } - - zephir_read_property(&_0, this_ptr, ZEND_STRL("collections"), PH_NOISY_CC | PH_READONLY); - RETURN_MM_BOOL(zephir_array_isset(&_0, &id)); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processchecked", NULL, 114); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&unchecked, this_ptr, "processunchecked", NULL, 115); + zephir_check_call_status(); + ZEPHIR_CALL_PARENT(&element, phalcon_html_helper_input_checkbox_ce, getThis(), "__tostring", &_0, 0); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("label"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&label, &_1); + ZEPHIR_INIT_VAR(&_2); + zephir_create_array(&_2, 3, 0); + add_assoc_stringl_ex(&_2, SL("start"), SL("")); + add_assoc_stringl_ex(&_2, SL("text"), SL("")); + add_assoc_stringl_ex(&_2, SL("end"), SL("")); + zephir_update_property_zval(this_ptr, ZEND_STRL("label"), &_2); + zephir_array_fetch_string(&_3, &label, SL("start"), PH_NOISY | PH_READONLY, "phalcon/Html/Helper/Input/Checkbox.zep", 71); + zephir_array_fetch_string(&_4, &label, SL("text"), PH_NOISY | PH_READONLY, "phalcon/Html/Helper/Input/Checkbox.zep", 73); + zephir_array_fetch_string(&_5, &label, SL("end"), PH_NOISY | PH_READONLY, "phalcon/Html/Helper/Input/Checkbox.zep", 73); + ZEPHIR_CONCAT_VVVVV(return_value, &unchecked, &_3, &element, &_4, &_5); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Assets_Manager, get) +static PHP_METHOD(Phalcon_Html_Helper_Input_Checkbox, label) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *id_param = NULL, collection, _0; - zval id; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *attributes_param = NULL, text, _1, _2, _4, _5, _7; + zval attributes, _3, _6; zval *this_ptr = getThis(); - ZVAL_UNDEF(&id); - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_7); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(id) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &id_param); - if (UNEXPECTED(Z_TYPE_P(id_param) != IS_STRING && Z_TYPE_P(id_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'id' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(id_param) == IS_STRING)) { - zephir_get_strval(&id, id_param); + zephir_fetch_params(1, 0, 1, &attributes_param); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); } else { - ZEPHIR_INIT_VAR(&id); + zephir_get_arrval(&attributes, attributes_param); } - ZEPHIR_OBS_VAR(&collection); - zephir_read_property(&_0, this_ptr, ZEND_STRL("collections"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(!(zephir_array_isset_fetch(&collection, &_0, &id, 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_assets_exception_ce, "The collection does not exist in the manager", "phalcon/Assets/Manager.zep", 270); - return; - } - RETURN_CCTOR(&collection); + ZEPHIR_INIT_VAR(&text); + ZVAL_STRING(&text, ""); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "text"); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, ""); + ZEPHIR_CALL_CE_STATIC(&text, phalcon_helper_arr_ce, "get", &_0, 16, &attributes, &_1, &_2); + zephir_check_call_status(); + zephir_array_unset_string(&attributes, SL("text"), PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_1); + ZEPHIR_INIT_VAR(&_3); + zephir_create_array(&_3, 1, 0); + zephir_read_property(&_4, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_OBS_VAR(&_5); + zephir_array_fetch_string(&_5, &_4, SL("id"), PH_NOISY, "phalcon/Html/Helper/Input/Checkbox.zep", 94); + zephir_array_update_string(&_3, SL("for"), &_5, PH_COPY | PH_SEPARATE); + zephir_fast_array_merge(&_1, &_3, &attributes); + ZEPHIR_CPY_WRT(&attributes, &_1); + ZEPHIR_INIT_VAR(&_6); + zephir_create_array(&_6, 3, 0); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "label"); + ZEPHIR_CALL_METHOD(&_7, this_ptr, "rendertag", NULL, 0, &_2, &attributes); + zephir_check_call_status(); + zephir_array_update_string(&_6, SL("start"), &_7, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_6, SL("text"), &text, PH_COPY | PH_SEPARATE); + add_assoc_stringl_ex(&_6, SL("end"), SL("")); + zephir_update_property_zval(this_ptr, ZEND_STRL("label"), &_6); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Assets_Manager, getCollections) +static PHP_METHOD(Phalcon_Html_Helper_Input_Checkbox, processChecked) { + zval attributes; + zval checked, value, _0, _2, _3, _4$$3, _5$$3, _6$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_1 = NULL; zval *this_ptr = getThis(); + ZVAL_UNDEF(&checked); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&attributes); + + ZEPHIR_MM_GROW(); - RETURN_MEMBER(getThis(), "collections"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&attributes, &_0); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "checked"); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, ""); + ZEPHIR_CALL_CE_STATIC(&checked, phalcon_helper_arr_ce, "get", &_1, 16, &attributes, &_2, &_3); + zephir_check_call_status(); + zephir_array_unset_string(&attributes, SL("checked"), PH_SEPARATE); + if (!(ZEPHIR_IS_EMPTY(&checked))) { + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "value"); + ZEPHIR_INIT_VAR(&_5$$3); + ZVAL_STRING(&_5$$3, ""); + ZEPHIR_CALL_CE_STATIC(&value, phalcon_helper_arr_ce, "get", &_1, 16, &attributes, &_4$$3, &_5$$3); + zephir_check_call_status(); + if (ZEPHIR_IS_IDENTICAL(&checked, &value)) { + ZEPHIR_INIT_VAR(&_6$$4); + ZVAL_STRING(&_6$$4, "checked"); + zephir_array_update_string(&attributes, SL("checked"), &_6$$4, PH_COPY | PH_SEPARATE); + } + } + zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &attributes); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Assets_Manager, getCss) +static PHP_METHOD(Phalcon_Html_Helper_Input_Checkbox, processUnchecked) { - zval collection, _0; + zval attributes, _4$$3; + zval unchecked, _0, _2, _3, _5$$3, _6$$3, _7$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_1 = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&unchecked); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_4$$3); ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("collections"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_string_fetch(&collection, &_0, SL("css"), 1))) { - object_init_ex(return_value, phalcon_assets_collection_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 167); + zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&attributes, &_0); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "unchecked"); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, ""); + ZEPHIR_CALL_CE_STATIC(&unchecked, phalcon_helper_arr_ce, "get", &_1, 16, &attributes, &_2, &_3); + zephir_check_call_status(); + zephir_array_unset_string(&attributes, SL("unchecked"), PH_SEPARATE); + if (!(ZEPHIR_IS_EMPTY(&unchecked))) { + ZEPHIR_INIT_VAR(&_4$$3); + zephir_create_array(&_4$$3, 2, 0); + zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_OBS_VAR(&_6$$3); + zephir_array_fetch_string(&_6$$3, &_5$$3, SL("name"), PH_NOISY, "phalcon/Html/Helper/Input/Checkbox.zep", 149); + zephir_array_update_string(&_4$$3, SL("name"), &_6$$3, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_4$$3, SL("value"), &unchecked, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_7$$3); + ZVAL_STRING(&_7$$3, "hidden"); + ZEPHIR_CALL_METHOD(&unchecked, this_ptr, "rendertag", NULL, 0, &_7$$3, &_4$$3); zephir_check_call_status(); - RETURN_MM(); } - RETURN_CTOR(&collection); + zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &attributes); + RETURN_CCTOR(&unchecked); } -static PHP_METHOD(Phalcon_Assets_Manager, getJs) +zend_object *zephir_init_properties_Phalcon_Html_Helper_Input_Checkbox(zend_class_entry *class_type) { - zval collection, _0; + zval _0, _2, _1$$3, _3$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&_0); + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("attributes"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("label"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("label"), &_3$$4); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} - ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("collections"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_string_fetch(&collection, &_0, SL("js"), 1))) { - object_init_ex(return_value, phalcon_assets_collection_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 167); - zephir_check_call_status(); - RETURN_MM(); - } - RETURN_CTOR(&collection); + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Color) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Color, phalcon, html_helper_input_color, phalcon_html_helper_input_abstractinput_ce, NULL, 0); + + zend_declare_property_string(phalcon_html_helper_input_color_ce, SL("type"), "color", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Manager, getOptions) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Date) { - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Date, phalcon, html_helper_input_date, phalcon_html_helper_input_abstractinput_ce, NULL, 0); + zend_declare_property_string(phalcon_html_helper_input_date_ce, SL("type"), "date", ZEND_ACC_PROTECTED); + return SUCCESS; +} - RETURN_MEMBER(getThis(), "options"); + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_DateTime) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, DateTime, phalcon, html_helper_input_datetime, phalcon_html_helper_input_abstractinput_ce, NULL, 0); + + zend_declare_property_string(phalcon_html_helper_input_datetime_ce, SL("type"), "datetime", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Manager, output) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_DateTimeLocal) { - zend_bool filterNeeded = 0, _18$$23, _22$$24, _32$$44, _34$$45, _48$$63, _50$$64, _60$$84, _62$$85, _68$$93; - zval output; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_16 = NULL, *_20 = NULL, *_21 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *collection, collection_sub, *callback, callback_sub, *type = NULL, type_sub, asset, assets, attributes, autoVersion, collectionSourcePath, collectionTargetPath, completeSourcePath, completeTargetPath, content, filter, filters, filteredContent, filteredJoinedContent, html, join, local, modificationTime, mustFilter, options, parameters, path, prefixedPath, sourceBasePath, sourcePath, targetBasePath, targetPath, targetUri, typeCss, useImplicitOutput, version, _0, *_7, _8, _1$$3, _2$$10, _3$$10, _4$$9, _5$$11, _6$$11, _9$$15, _10$$15, _11$$17, _12$$17, _13$$19, _14$$19, _15$$20, _17$$23, _19$$23, _23$$25, _24$$25, _25$$26, _26$$27, _27$$28, *_28$$32, _29$$32, _30$$39, _31$$44, _33$$44, _35$$46, _36$$46, _37$$47, _38$$48, _39$$49, _40$$55, _41$$55, _42$$57, _43$$57, _44$$59, _45$$59, _46$$60, _47$$63, _49$$63, _51$$65, _52$$65, _53$$66, _54$$67, _55$$68, *_56$$72, _57$$72, _58$$79, _59$$84, _61$$84, _63$$86, _64$$86, _65$$87, _66$$88, _67$$89, _69$$94, _70$$95, _71$$96, _72$$97; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, DateTimeLocal, phalcon, html_helper_input_datetimelocal, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - ZVAL_UNDEF(&collection_sub); - ZVAL_UNDEF(&callback_sub); - ZVAL_UNDEF(&type_sub); - ZVAL_UNDEF(&asset); - ZVAL_UNDEF(&assets); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&autoVersion); - ZVAL_UNDEF(&collectionSourcePath); - ZVAL_UNDEF(&collectionTargetPath); - ZVAL_UNDEF(&completeSourcePath); - ZVAL_UNDEF(&completeTargetPath); - ZVAL_UNDEF(&content); - ZVAL_UNDEF(&filter); - ZVAL_UNDEF(&filters); - ZVAL_UNDEF(&filteredContent); - ZVAL_UNDEF(&filteredJoinedContent); - ZVAL_UNDEF(&html); - ZVAL_UNDEF(&join); - ZVAL_UNDEF(&local); - ZVAL_UNDEF(&modificationTime); - ZVAL_UNDEF(&mustFilter); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(¶meters); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&prefixedPath); - ZVAL_UNDEF(&sourceBasePath); - ZVAL_UNDEF(&sourcePath); - ZVAL_UNDEF(&targetBasePath); - ZVAL_UNDEF(&targetPath); - ZVAL_UNDEF(&targetUri); - ZVAL_UNDEF(&typeCss); - ZVAL_UNDEF(&useImplicitOutput); - ZVAL_UNDEF(&version); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$10); - ZVAL_UNDEF(&_3$$10); - ZVAL_UNDEF(&_4$$9); - ZVAL_UNDEF(&_5$$11); - ZVAL_UNDEF(&_6$$11); - ZVAL_UNDEF(&_9$$15); - ZVAL_UNDEF(&_10$$15); - ZVAL_UNDEF(&_11$$17); - ZVAL_UNDEF(&_12$$17); - ZVAL_UNDEF(&_13$$19); - ZVAL_UNDEF(&_14$$19); - ZVAL_UNDEF(&_15$$20); - ZVAL_UNDEF(&_17$$23); - ZVAL_UNDEF(&_19$$23); - ZVAL_UNDEF(&_23$$25); - ZVAL_UNDEF(&_24$$25); - ZVAL_UNDEF(&_25$$26); - ZVAL_UNDEF(&_26$$27); - ZVAL_UNDEF(&_27$$28); - ZVAL_UNDEF(&_29$$32); - ZVAL_UNDEF(&_30$$39); - ZVAL_UNDEF(&_31$$44); - ZVAL_UNDEF(&_33$$44); - ZVAL_UNDEF(&_35$$46); - ZVAL_UNDEF(&_36$$46); - ZVAL_UNDEF(&_37$$47); - ZVAL_UNDEF(&_38$$48); - ZVAL_UNDEF(&_39$$49); - ZVAL_UNDEF(&_40$$55); - ZVAL_UNDEF(&_41$$55); - ZVAL_UNDEF(&_42$$57); - ZVAL_UNDEF(&_43$$57); - ZVAL_UNDEF(&_44$$59); - ZVAL_UNDEF(&_45$$59); - ZVAL_UNDEF(&_46$$60); - ZVAL_UNDEF(&_47$$63); - ZVAL_UNDEF(&_49$$63); - ZVAL_UNDEF(&_51$$65); - ZVAL_UNDEF(&_52$$65); - ZVAL_UNDEF(&_53$$66); - ZVAL_UNDEF(&_54$$67); - ZVAL_UNDEF(&_55$$68); - ZVAL_UNDEF(&_57$$72); - ZVAL_UNDEF(&_58$$79); - ZVAL_UNDEF(&_59$$84); - ZVAL_UNDEF(&_61$$84); - ZVAL_UNDEF(&_63$$86); - ZVAL_UNDEF(&_64$$86); - ZVAL_UNDEF(&_65$$87); - ZVAL_UNDEF(&_66$$88); - ZVAL_UNDEF(&_67$$89); - ZVAL_UNDEF(&_69$$94); - ZVAL_UNDEF(&_70$$95); - ZVAL_UNDEF(&_71$$96); - ZVAL_UNDEF(&_72$$97); - ZVAL_UNDEF(&output); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_OBJECT_OF_CLASS(collection, phalcon_assets_collection_ce) - Z_PARAM_ZVAL(callback) - Z_PARAM_ZVAL(type) - ZEND_PARSE_PARAMETERS_END(); + zend_declare_property_string(phalcon_html_helper_input_datetimelocal_ce, SL("type"), "datetime-local", ZEND_ACC_PROTECTED); + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &collection, &callback, &type); - ZEPHIR_SEPARATE_PARAM(type); - ZEPHIR_INIT_VAR(&sourceBasePath); - ZVAL_NULL(&sourceBasePath); - ZEPHIR_INIT_VAR(&targetBasePath); - ZVAL_NULL(&targetBasePath); - ZEPHIR_OBS_VAR(&useImplicitOutput); - zephir_read_property(&useImplicitOutput, this_ptr, ZEND_STRL("implicitOutput"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(&output); - ZEPHIR_CALL_METHOD(&_0, collection, "getassets", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&assets, this_ptr, "collectionassetsbytype", NULL, 0, &_0, type); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&filters, collection, "getfilters", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&typeCss); - ZVAL_STRING(&typeCss, "css"); - if (zephir_fast_count_int(&filters)) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&options, &_1$$3); - if (Z_TYPE_P(&options) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&sourceBasePath); - zephir_array_isset_string_fetch(&sourceBasePath, &options, SL("sourceBasePath"), 0); - ZEPHIR_OBS_NVAR(&targetBasePath); - zephir_array_isset_string_fetch(&targetBasePath, &options, SL("targetBasePath"), 0); - } - ZEPHIR_CALL_METHOD(&collectionSourcePath, collection, "getsourcepath", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&collectionSourcePath)) { - ZEPHIR_INIT_VAR(&completeSourcePath); - ZEPHIR_CONCAT_VV(&completeSourcePath, &sourceBasePath, &collectionSourcePath); - } else { - ZEPHIR_CPY_WRT(&completeSourcePath, &sourceBasePath); - } - ZEPHIR_CALL_METHOD(&collectionTargetPath, collection, "gettargetpath", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&collectionTargetPath)) { - ZEPHIR_INIT_VAR(&completeTargetPath); - ZEPHIR_CONCAT_VV(&completeTargetPath, &targetBasePath, &collectionTargetPath); - } else { - ZEPHIR_CPY_WRT(&completeTargetPath, &targetBasePath); - } - ZEPHIR_INIT_VAR(&filteredJoinedContent); - ZVAL_STRING(&filteredJoinedContent, ""); - ZEPHIR_CALL_METHOD(&join, collection, "getjoin", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&join)) { - if (UNEXPECTED(!zephir_is_true(&completeTargetPath))) { - ZEPHIR_INIT_VAR(&_2$$10); - object_init_ex(&_2$$10, phalcon_assets_exception_ce); - ZEPHIR_INIT_VAR(&_3$$10); - ZEPHIR_CONCAT_SVS(&_3$$10, "Path '", &completeTargetPath, "' is not a valid target path (1)"); - ZEPHIR_CALL_METHOD(NULL, &_2$$10, "__construct", NULL, 8, &_3$$10); - zephir_check_call_status(); - zephir_throw_exception_debug(&_2$$10, "phalcon/Assets/Manager.zep", 433); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CALL_FUNCTION(&_4$$9, "is_dir", NULL, 136, &completeTargetPath); - zephir_check_call_status(); - if (UNEXPECTED(zephir_is_true(&_4$$9))) { - ZEPHIR_INIT_VAR(&_5$$11); - object_init_ex(&_5$$11, phalcon_assets_exception_ce); - ZEPHIR_INIT_VAR(&_6$$11); - ZEPHIR_CONCAT_SVS(&_6$$11, "Path '", &completeTargetPath, "' is not a valid target path (2), is dir."); - ZEPHIR_CALL_METHOD(NULL, &_5$$11, "__construct", NULL, 8, &_6$$11); - zephir_check_call_status(); - zephir_throw_exception_debug(&_5$$11, "phalcon/Assets/Manager.zep", 439); - ZEPHIR_MM_RESTORE(); - return; - } - } - } - zephir_is_iterable(&assets, 0, "phalcon/Assets/Manager.zep", 697); - if (Z_TYPE_P(&assets) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&assets), _7) - { - ZEPHIR_INIT_NVAR(&asset); - ZVAL_COPY(&asset, _7); - filterNeeded = 0; - ZEPHIR_CALL_METHOD(type, &asset, "gettype", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&local, &asset, "getlocal", NULL, 0); - zephir_check_call_status(); - if (zephir_fast_count_int(&filters)) { - if (zephir_is_true(&local)) { - ZEPHIR_CALL_METHOD(&sourcePath, &asset, "getrealsourcepath", NULL, 0, &completeSourcePath); - zephir_check_call_status(); - if (UNEXPECTED(!zephir_is_true(&sourcePath))) { - ZEPHIR_CALL_METHOD(&sourcePath, &asset, "getpath", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_9$$15); - object_init_ex(&_9$$15, phalcon_assets_exception_ce); - ZEPHIR_INIT_NVAR(&_10$$15); - ZEPHIR_CONCAT_SVS(&_10$$15, "Asset '", &sourcePath, "' does not have a valid source path"); - ZEPHIR_CALL_METHOD(NULL, &_9$$15, "__construct", NULL, 8, &_10$$15); - zephir_check_call_status(); - zephir_throw_exception_debug(&_9$$15, "phalcon/Assets/Manager.zep", 477); - ZEPHIR_MM_RESTORE(); - return; - } - } else { - ZEPHIR_CALL_METHOD(&sourcePath, &asset, "getpath", NULL, 0); - zephir_check_call_status(); - filterNeeded = 1; - } - ZEPHIR_CALL_METHOD(&targetPath, &asset, "getrealtargetpath", NULL, 0, &completeTargetPath); - zephir_check_call_status(); - if (UNEXPECTED(!zephir_is_true(&targetPath))) { - ZEPHIR_INIT_NVAR(&_11$$17); - object_init_ex(&_11$$17, phalcon_assets_exception_ce); - ZEPHIR_INIT_NVAR(&_12$$17); - ZEPHIR_CONCAT_SVS(&_12$$17, "Asset '", &sourcePath, "' does not have a valid target path"); - ZEPHIR_CALL_METHOD(NULL, &_11$$17, "__construct", NULL, 8, &_12$$17); - zephir_check_call_status(); - zephir_throw_exception_debug(&_11$$17, "phalcon/Assets/Manager.zep", 503); - ZEPHIR_MM_RESTORE(); - return; - } - if (zephir_is_true(&local)) { - if (UNEXPECTED(ZEPHIR_IS_EQUAL(&targetPath, &sourcePath))) { - ZEPHIR_INIT_NVAR(&_13$$19); - object_init_ex(&_13$$19, phalcon_assets_exception_ce); - ZEPHIR_INIT_NVAR(&_14$$19); - ZEPHIR_CONCAT_SVS(&_14$$19, "Asset '", &targetPath, "' have the same source and target paths"); - ZEPHIR_CALL_METHOD(NULL, &_13$$19, "__construct", NULL, 8, &_14$$19); - zephir_check_call_status(); - zephir_throw_exception_debug(&_13$$19, "phalcon/Assets/Manager.zep", 513); - ZEPHIR_MM_RESTORE(); - return; - } - if ((zephir_file_exists(&targetPath) == SUCCESS)) { - ZEPHIR_INIT_NVAR(&_15$$20); - if (zephir_compare_mtime(&targetPath, &sourcePath)) { - filterNeeded = 1; - } - } else { - filterNeeded = 1; - } - } - } else { - ZEPHIR_CALL_METHOD(&path, &asset, "getrealtargeturi", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&prefixedPath, this_ptr, "getprefixedpath", &_16, 170, collection, &path); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_17$$23, &asset, "getversion", NULL, 0); - zephir_check_call_status(); - _18$$23 = Z_TYPE_P(&_17$$23) == IS_NULL; - if (_18$$23) { - ZEPHIR_CALL_METHOD(&_19$$23, &asset, "isautoversion", NULL, 0); - zephir_check_call_status(); - _18$$23 = zephir_is_true(&_19$$23); - } - if (_18$$23) { - ZEPHIR_CALL_METHOD(&version, collection, "getversion", &_20, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&autoVersion, collection, "isautoversion", &_21, 0); - zephir_check_call_status(); - _22$$24 = zephir_is_true(&autoVersion); - if (_22$$24) { - _22$$24 = zephir_is_true(&local); - } - if (_22$$24) { - ZEPHIR_CALL_METHOD(&_23$$25, &asset, "getrealsourcepath", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&modificationTime); - zephir_filemtime(&modificationTime, &_23$$25); - ZEPHIR_INIT_NVAR(&_24$$25); - if (zephir_is_true(&version)) { - ZEPHIR_INIT_NVAR(&_24$$25); - ZEPHIR_CONCAT_VSV(&_24$$25, &version, ".", &modificationTime); - } else { - ZEPHIR_CPY_WRT(&_24$$25, &modificationTime); - } - ZEPHIR_CPY_WRT(&version, &_24$$25); - } - if (zephir_is_true(&version)) { - ZEPHIR_INIT_NVAR(&_25$$26); - ZEPHIR_CONCAT_VSV(&_25$$26, &prefixedPath, "?ver=", &version); - ZEPHIR_CPY_WRT(&prefixedPath, &_25$$26); - } - } - ZEPHIR_CALL_METHOD(&attributes, &asset, "getattributes", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(¶meters); - if (Z_TYPE_P(&attributes) == IS_ARRAY) { - zephir_array_update_long(&attributes, 0, &prefixedPath, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - ZEPHIR_INIT_NVAR(&_26$$27); - zephir_create_array(&_26$$27, 1, 0); - zephir_array_fast_append(&_26$$27, &attributes); - ZEPHIR_CPY_WRT(¶meters, &_26$$27); - } else { - ZEPHIR_INIT_NVAR(&_27$$28); - zephir_create_array(&_27$$28, 1, 0); - zephir_array_fast_append(&_27$$28, &prefixedPath); - ZEPHIR_CPY_WRT(¶meters, &_27$$28); - } - zephir_array_append(¶meters, &local, PH_SEPARATE, "phalcon/Assets/Manager.zep", 559); - ZEPHIR_INIT_NVAR(&html); - ZEPHIR_CALL_USER_FUNC_ARRAY(&html, callback, ¶meters); - zephir_check_call_status(); - if (ZEPHIR_IS_TRUE(&useImplicitOutput)) { - zend_print_zval(&html, 0); - } else { - zephir_concat_self(&output, &html); - } - continue; - } - if (filterNeeded == 1) { - ZEPHIR_CALL_METHOD(&content, &asset, "getcontent", NULL, 0, &completeSourcePath); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&mustFilter, &asset, "getfilter", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_TRUE(&mustFilter)) { - zephir_is_iterable(&filters, 0, "phalcon/Assets/Manager.zep", 612); - if (Z_TYPE_P(&filters) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&filters), _28$$32) - { - ZEPHIR_INIT_NVAR(&filter); - ZVAL_COPY(&filter, _28$$32); - if (UNEXPECTED(Z_TYPE_P(&filter) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_assets_exception_ce, "Filter is invalid", "phalcon/Assets/Manager.zep", 598); - return; - } - ZEPHIR_CALL_METHOD(&filteredContent, &filter, "filter", NULL, 0, &content); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&content, &filteredContent); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &filters, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_29$$32, &filters, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_29$$32)) { - break; - } - ZEPHIR_CALL_METHOD(&filter, &filters, "current", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&filter) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_assets_exception_ce, "Filter is invalid", "phalcon/Assets/Manager.zep", 598); - return; - } - ZEPHIR_CALL_METHOD(&filteredContent, &filter, "filter", NULL, 0, &content); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&content, &filteredContent); - ZEPHIR_CALL_METHOD(NULL, &filters, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&filter); - if (ZEPHIR_IS_TRUE(&join)) { - if (ZEPHIR_IS_EQUAL(type, &typeCss)) { - zephir_concat_self(&filteredJoinedContent, &filteredContent); - } else { - ZEPHIR_INIT_NVAR(&_30$$39); - ZEPHIR_CONCAT_VS(&_30$$39, &filteredContent, ";"); - zephir_concat_self(&filteredJoinedContent, &_30$$39); - } - } - } else { - if (ZEPHIR_IS_TRUE(&join)) { - zephir_concat_self(&filteredJoinedContent, &content); - } else { - ZEPHIR_CPY_WRT(&filteredContent, &content); - } - } - if (!(zephir_is_true(&join))) { - zephir_file_put_contents(NULL, &targetPath, &filteredContent); - } - } - if (!(zephir_is_true(&join))) { - ZEPHIR_CALL_METHOD(&path, &asset, "getrealtargeturi", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&prefixedPath, this_ptr, "getprefixedpath", &_16, 170, collection, &path); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_31$$44, &asset, "getversion", NULL, 0); - zephir_check_call_status(); - _32$$44 = Z_TYPE_P(&_31$$44) == IS_NULL; - if (_32$$44) { - ZEPHIR_CALL_METHOD(&_33$$44, &asset, "isautoversion", NULL, 0); - zephir_check_call_status(); - _32$$44 = zephir_is_true(&_33$$44); - } - if (_32$$44) { - ZEPHIR_CALL_METHOD(&version, collection, "getversion", &_20, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&autoVersion, collection, "isautoversion", &_21, 0); - zephir_check_call_status(); - _34$$45 = zephir_is_true(&autoVersion); - if (_34$$45) { - _34$$45 = zephir_is_true(&local); - } - if (_34$$45) { - ZEPHIR_CALL_METHOD(&_35$$46, &asset, "getrealsourcepath", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&modificationTime); - zephir_filemtime(&modificationTime, &_35$$46); - ZEPHIR_INIT_NVAR(&_36$$46); - if (zephir_is_true(&version)) { - ZEPHIR_INIT_NVAR(&_36$$46); - ZEPHIR_CONCAT_VSV(&_36$$46, &version, ".", &modificationTime); - } else { - ZEPHIR_CPY_WRT(&_36$$46, &modificationTime); - } - ZEPHIR_CPY_WRT(&version, &_36$$46); - } - if (zephir_is_true(&version)) { - ZEPHIR_INIT_NVAR(&_37$$47); - ZEPHIR_CONCAT_VSV(&_37$$47, &prefixedPath, "?ver=", &version); - ZEPHIR_CPY_WRT(&prefixedPath, &_37$$47); - } - } - ZEPHIR_CALL_METHOD(&attributes, &asset, "getattributes", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&local); - ZVAL_BOOL(&local, 1); - if (Z_TYPE_P(&attributes) == IS_ARRAY) { - zephir_array_update_long(&attributes, 0, &prefixedPath, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - ZEPHIR_INIT_NVAR(&_38$$48); - zephir_create_array(&_38$$48, 1, 0); - zephir_array_fast_append(&_38$$48, &attributes); - ZEPHIR_CPY_WRT(¶meters, &_38$$48); - } else { - ZEPHIR_INIT_NVAR(&_39$$49); - zephir_create_array(&_39$$49, 1, 0); - zephir_array_fast_append(&_39$$49, &prefixedPath); - ZEPHIR_CPY_WRT(¶meters, &_39$$49); - } - zephir_array_append(¶meters, &local, PH_SEPARATE, "phalcon/Assets/Manager.zep", 679); - ZEPHIR_INIT_NVAR(&html); - ZEPHIR_CALL_USER_FUNC_ARRAY(&html, callback, ¶meters); - zephir_check_call_status(); - if (ZEPHIR_IS_TRUE(&useImplicitOutput)) { - zend_print_zval(&html, 0); - } else { - zephir_concat_self(&output, &html); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &assets, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_8, &assets, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_8)) { - break; - } - ZEPHIR_CALL_METHOD(&asset, &assets, "current", NULL, 0); - zephir_check_call_status(); - filterNeeded = 0; - ZEPHIR_CALL_METHOD(type, &asset, "gettype", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&local, &asset, "getlocal", NULL, 0); - zephir_check_call_status(); - if (zephir_fast_count_int(&filters)) { - if (zephir_is_true(&local)) { - ZEPHIR_CALL_METHOD(&sourcePath, &asset, "getrealsourcepath", NULL, 0, &completeSourcePath); - zephir_check_call_status(); - if (UNEXPECTED(!zephir_is_true(&sourcePath))) { - ZEPHIR_CALL_METHOD(&sourcePath, &asset, "getpath", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_40$$55); - object_init_ex(&_40$$55, phalcon_assets_exception_ce); - ZEPHIR_INIT_NVAR(&_41$$55); - ZEPHIR_CONCAT_SVS(&_41$$55, "Asset '", &sourcePath, "' does not have a valid source path"); - ZEPHIR_CALL_METHOD(NULL, &_40$$55, "__construct", NULL, 8, &_41$$55); - zephir_check_call_status(); - zephir_throw_exception_debug(&_40$$55, "phalcon/Assets/Manager.zep", 477); - ZEPHIR_MM_RESTORE(); - return; - } - } else { - ZEPHIR_CALL_METHOD(&sourcePath, &asset, "getpath", NULL, 0); - zephir_check_call_status(); - filterNeeded = 1; - } - ZEPHIR_CALL_METHOD(&targetPath, &asset, "getrealtargetpath", NULL, 0, &completeTargetPath); - zephir_check_call_status(); - if (UNEXPECTED(!zephir_is_true(&targetPath))) { - ZEPHIR_INIT_NVAR(&_42$$57); - object_init_ex(&_42$$57, phalcon_assets_exception_ce); - ZEPHIR_INIT_NVAR(&_43$$57); - ZEPHIR_CONCAT_SVS(&_43$$57, "Asset '", &sourcePath, "' does not have a valid target path"); - ZEPHIR_CALL_METHOD(NULL, &_42$$57, "__construct", NULL, 8, &_43$$57); - zephir_check_call_status(); - zephir_throw_exception_debug(&_42$$57, "phalcon/Assets/Manager.zep", 503); - ZEPHIR_MM_RESTORE(); - return; - } - if (zephir_is_true(&local)) { - if (UNEXPECTED(ZEPHIR_IS_EQUAL(&targetPath, &sourcePath))) { - ZEPHIR_INIT_NVAR(&_44$$59); - object_init_ex(&_44$$59, phalcon_assets_exception_ce); - ZEPHIR_INIT_NVAR(&_45$$59); - ZEPHIR_CONCAT_SVS(&_45$$59, "Asset '", &targetPath, "' have the same source and target paths"); - ZEPHIR_CALL_METHOD(NULL, &_44$$59, "__construct", NULL, 8, &_45$$59); - zephir_check_call_status(); - zephir_throw_exception_debug(&_44$$59, "phalcon/Assets/Manager.zep", 513); - ZEPHIR_MM_RESTORE(); - return; - } - if ((zephir_file_exists(&targetPath) == SUCCESS)) { - ZEPHIR_INIT_NVAR(&_46$$60); - if (zephir_compare_mtime(&targetPath, &sourcePath)) { - filterNeeded = 1; - } - } else { - filterNeeded = 1; - } - } - } else { - ZEPHIR_CALL_METHOD(&path, &asset, "getrealtargeturi", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&prefixedPath, this_ptr, "getprefixedpath", &_16, 170, collection, &path); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_47$$63, &asset, "getversion", NULL, 0); - zephir_check_call_status(); - _48$$63 = Z_TYPE_P(&_47$$63) == IS_NULL; - if (_48$$63) { - ZEPHIR_CALL_METHOD(&_49$$63, &asset, "isautoversion", NULL, 0); - zephir_check_call_status(); - _48$$63 = zephir_is_true(&_49$$63); - } - if (_48$$63) { - ZEPHIR_CALL_METHOD(&version, collection, "getversion", &_20, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&autoVersion, collection, "isautoversion", &_21, 0); - zephir_check_call_status(); - _50$$64 = zephir_is_true(&autoVersion); - if (_50$$64) { - _50$$64 = zephir_is_true(&local); - } - if (_50$$64) { - ZEPHIR_CALL_METHOD(&_51$$65, &asset, "getrealsourcepath", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&modificationTime); - zephir_filemtime(&modificationTime, &_51$$65); - ZEPHIR_INIT_NVAR(&_52$$65); - if (zephir_is_true(&version)) { - ZEPHIR_INIT_NVAR(&_52$$65); - ZEPHIR_CONCAT_VSV(&_52$$65, &version, ".", &modificationTime); - } else { - ZEPHIR_CPY_WRT(&_52$$65, &modificationTime); - } - ZEPHIR_CPY_WRT(&version, &_52$$65); - } - if (zephir_is_true(&version)) { - ZEPHIR_INIT_NVAR(&_53$$66); - ZEPHIR_CONCAT_VSV(&_53$$66, &prefixedPath, "?ver=", &version); - ZEPHIR_CPY_WRT(&prefixedPath, &_53$$66); - } - } - ZEPHIR_CALL_METHOD(&attributes, &asset, "getattributes", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&attributes) == IS_ARRAY) { - zephir_array_update_long(&attributes, 0, &prefixedPath, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - ZEPHIR_INIT_NVAR(&_54$$67); - zephir_create_array(&_54$$67, 1, 0); - zephir_array_fast_append(&_54$$67, &attributes); - ZEPHIR_CPY_WRT(¶meters, &_54$$67); - } else { - ZEPHIR_INIT_NVAR(&_55$$68); - zephir_create_array(&_55$$68, 1, 0); - zephir_array_fast_append(&_55$$68, &prefixedPath); - ZEPHIR_CPY_WRT(¶meters, &_55$$68); - } - zephir_array_append(¶meters, &local, PH_SEPARATE, "phalcon/Assets/Manager.zep", 559); - ZEPHIR_INIT_NVAR(&html); - ZEPHIR_CALL_USER_FUNC_ARRAY(&html, callback, ¶meters); - zephir_check_call_status(); - if (ZEPHIR_IS_TRUE(&useImplicitOutput)) { - zend_print_zval(&html, 0); - } else { - zephir_concat_self(&output, &html); - } - continue; - } - if (filterNeeded == 1) { - ZEPHIR_CALL_METHOD(&content, &asset, "getcontent", NULL, 0, &completeSourcePath); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&mustFilter, &asset, "getfilter", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_TRUE(&mustFilter)) { - zephir_is_iterable(&filters, 0, "phalcon/Assets/Manager.zep", 612); - if (Z_TYPE_P(&filters) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&filters), _56$$72) - { - ZEPHIR_INIT_NVAR(&filter); - ZVAL_COPY(&filter, _56$$72); - if (UNEXPECTED(Z_TYPE_P(&filter) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_assets_exception_ce, "Filter is invalid", "phalcon/Assets/Manager.zep", 598); - return; - } - ZEPHIR_CALL_METHOD(&filteredContent, &filter, "filter", NULL, 0, &content); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&content, &filteredContent); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &filters, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_57$$72, &filters, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_57$$72)) { - break; - } - ZEPHIR_CALL_METHOD(&filter, &filters, "current", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&filter) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_assets_exception_ce, "Filter is invalid", "phalcon/Assets/Manager.zep", 598); - return; - } - ZEPHIR_CALL_METHOD(&filteredContent, &filter, "filter", NULL, 0, &content); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&content, &filteredContent); - ZEPHIR_CALL_METHOD(NULL, &filters, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&filter); - if (ZEPHIR_IS_TRUE(&join)) { - if (ZEPHIR_IS_EQUAL(type, &typeCss)) { - zephir_concat_self(&filteredJoinedContent, &filteredContent); - } else { - ZEPHIR_INIT_NVAR(&_58$$79); - ZEPHIR_CONCAT_VS(&_58$$79, &filteredContent, ";"); - zephir_concat_self(&filteredJoinedContent, &_58$$79); - } - } - } else { - if (ZEPHIR_IS_TRUE(&join)) { - zephir_concat_self(&filteredJoinedContent, &content); - } else { - ZEPHIR_CPY_WRT(&filteredContent, &content); - } - } - if (!(zephir_is_true(&join))) { - zephir_file_put_contents(NULL, &targetPath, &filteredContent); - } - } - if (!(zephir_is_true(&join))) { - ZEPHIR_CALL_METHOD(&path, &asset, "getrealtargeturi", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&prefixedPath, this_ptr, "getprefixedpath", &_16, 170, collection, &path); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_59$$84, &asset, "getversion", NULL, 0); - zephir_check_call_status(); - _60$$84 = Z_TYPE_P(&_59$$84) == IS_NULL; - if (_60$$84) { - ZEPHIR_CALL_METHOD(&_61$$84, &asset, "isautoversion", NULL, 0); - zephir_check_call_status(); - _60$$84 = zephir_is_true(&_61$$84); - } - if (_60$$84) { - ZEPHIR_CALL_METHOD(&version, collection, "getversion", &_20, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&autoVersion, collection, "isautoversion", &_21, 0); - zephir_check_call_status(); - _62$$85 = zephir_is_true(&autoVersion); - if (_62$$85) { - _62$$85 = zephir_is_true(&local); - } - if (_62$$85) { - ZEPHIR_CALL_METHOD(&_63$$86, &asset, "getrealsourcepath", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&modificationTime); - zephir_filemtime(&modificationTime, &_63$$86); - ZEPHIR_INIT_NVAR(&_64$$86); - if (zephir_is_true(&version)) { - ZEPHIR_INIT_NVAR(&_64$$86); - ZEPHIR_CONCAT_VSV(&_64$$86, &version, ".", &modificationTime); - } else { - ZEPHIR_CPY_WRT(&_64$$86, &modificationTime); - } - ZEPHIR_CPY_WRT(&version, &_64$$86); - } - if (zephir_is_true(&version)) { - ZEPHIR_INIT_NVAR(&_65$$87); - ZEPHIR_CONCAT_VSV(&_65$$87, &prefixedPath, "?ver=", &version); - ZEPHIR_CPY_WRT(&prefixedPath, &_65$$87); - } - } - ZEPHIR_CALL_METHOD(&attributes, &asset, "getattributes", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&local); - ZVAL_BOOL(&local, 1); - if (Z_TYPE_P(&attributes) == IS_ARRAY) { - zephir_array_update_long(&attributes, 0, &prefixedPath, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - ZEPHIR_INIT_NVAR(&_66$$88); - zephir_create_array(&_66$$88, 1, 0); - zephir_array_fast_append(&_66$$88, &attributes); - ZEPHIR_CPY_WRT(¶meters, &_66$$88); - } else { - ZEPHIR_INIT_NVAR(&_67$$89); - zephir_create_array(&_67$$89, 1, 0); - zephir_array_fast_append(&_67$$89, &prefixedPath); - ZEPHIR_CPY_WRT(¶meters, &_67$$89); - } - zephir_array_append(¶meters, &local, PH_SEPARATE, "phalcon/Assets/Manager.zep", 679); - ZEPHIR_INIT_NVAR(&html); - ZEPHIR_CALL_USER_FUNC_ARRAY(&html, callback, ¶meters); - zephir_check_call_status(); - if (ZEPHIR_IS_TRUE(&useImplicitOutput)) { - zend_print_zval(&html, 0); - } else { - zephir_concat_self(&output, &html); - } - } - ZEPHIR_CALL_METHOD(NULL, &assets, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&asset); - if (zephir_fast_count_int(&filters)) { - if (ZEPHIR_IS_TRUE(&join)) { - zephir_file_put_contents(NULL, &completeTargetPath, &filteredJoinedContent); - ZEPHIR_CALL_METHOD(&targetUri, collection, "gettargeturi", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&prefixedPath, this_ptr, "getprefixedpath", &_16, 170, collection, &targetUri); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&version, collection, "getversion", &_20, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&autoVersion, collection, "isautoversion", &_21, 0); - zephir_check_call_status(); - _68$$93 = zephir_is_true(&autoVersion); - if (_68$$93) { - _68$$93 = zephir_is_true(&local); - } - if (_68$$93) { - ZEPHIR_INIT_NVAR(&modificationTime); - zephir_filemtime(&modificationTime, &completeTargetPath); - ZEPHIR_INIT_VAR(&_69$$94); - if (zephir_is_true(&version)) { - ZEPHIR_INIT_NVAR(&_69$$94); - ZEPHIR_CONCAT_VSV(&_69$$94, &version, ".", &modificationTime); - } else { - ZEPHIR_CPY_WRT(&_69$$94, &modificationTime); - } - ZEPHIR_CPY_WRT(&version, &_69$$94); - } - if (zephir_is_true(&version)) { - ZEPHIR_INIT_VAR(&_70$$95); - ZEPHIR_CONCAT_VSV(&_70$$95, &prefixedPath, "?ver=", &version); - ZEPHIR_CPY_WRT(&prefixedPath, &_70$$95); - } - ZEPHIR_CALL_METHOD(&attributes, collection, "getattributes", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&local, collection, "gettargetlocal", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&attributes) == IS_ARRAY) { - zephir_array_update_long(&attributes, 0, &prefixedPath, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - ZEPHIR_INIT_VAR(&_71$$96); - zephir_create_array(&_71$$96, 1, 0); - zephir_array_fast_append(&_71$$96, &attributes); - ZEPHIR_CPY_WRT(¶meters, &_71$$96); - } else { - ZEPHIR_INIT_VAR(&_72$$97); - zephir_create_array(&_72$$97, 1, 0); - zephir_array_fast_append(&_72$$97, &prefixedPath); - ZEPHIR_CPY_WRT(¶meters, &_72$$97); - } - zephir_array_append(¶meters, &local, PH_SEPARATE, "phalcon/Assets/Manager.zep", 741); - ZEPHIR_INIT_NVAR(&html); - ZEPHIR_CALL_USER_FUNC_ARRAY(&html, callback, ¶meters); - zephir_check_call_status(); - if (ZEPHIR_IS_TRUE(&useImplicitOutput)) { - zend_print_zval(&html, 0); - } else { - zephir_concat_self(&output, &html); - } - } - } - RETURN_CTOR(&output); + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Email) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Email, phalcon, html_helper_input_email, phalcon_html_helper_input_abstractinput_ce, NULL, 0); + + zend_declare_property_string(phalcon_html_helper_input_email_ce, SL("type"), "email", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Manager, outputCss) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_File) { - zend_bool _2; - zval callback; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *collectionName_param = NULL, collection, container, tag, _0, _1, _3, _4$$5, _5$$5; - zval collectionName; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, File, phalcon, html_helper_input_file, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - ZVAL_UNDEF(&collectionName); - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&tag); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&callback); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(collectionName) - ZEND_PARSE_PARAMETERS_END(); + zend_declare_property_string(phalcon_html_helper_input_file_ce, SL("type"), "file", ZEND_ACC_PROTECTED); + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &collectionName_param); - if (!collectionName_param) { - ZEPHIR_INIT_VAR(&collectionName); - } else { - zephir_get_strval(&collectionName, collectionName_param); - } - if (!(!(ZEPHIR_IS_EMPTY(&collectionName)))) { - ZEPHIR_CALL_METHOD(&collection, this_ptr, "getcss", NULL, 0); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(&collection, this_ptr, "get", NULL, 0, &collectionName); - zephir_check_call_status(); - } - ZEPHIR_INIT_VAR(&callback); - zephir_create_array(&callback, 2, 0); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "Phalcon\\Tag"); - zephir_array_fast_append(&callback, &_0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "stylesheetLink"); - zephir_array_fast_append(&callback, &_0); - zephir_read_property(&_1, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_1); - _2 = Z_TYPE_P(&container) == IS_OBJECT; - if (_2) { - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "tag"); - ZEPHIR_CALL_METHOD(&_3, &container, "has", NULL, 0, &_0); - zephir_check_call_status(); - _2 = zephir_is_true(&_3); - } - if (_2) { - ZEPHIR_INIT_VAR(&_4$$5); - ZVAL_STRING(&_4$$5, "tag"); - ZEPHIR_CALL_METHOD(&tag, &container, "getshared", NULL, 0, &_4$$5); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_5$$5); - zephir_create_array(&_5$$5, 2, 0); - zephir_array_fast_append(&_5$$5, &tag); - ZEPHIR_INIT_NVAR(&_4$$5); - ZVAL_STRING(&_4$$5, "stylesheetLink"); - zephir_array_fast_append(&_5$$5, &_4$$5); - ZEPHIR_CPY_WRT(&callback, &_5$$5); - } - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "css"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "output", NULL, 0, &collection, &callback, &_0); - zephir_check_call_status(); - RETURN_MM(); + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Hidden) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Hidden, phalcon, html_helper_input_hidden, phalcon_html_helper_input_abstractinput_ce, NULL, 0); + + zend_declare_property_string(phalcon_html_helper_input_hidden_ce, SL("type"), "hidden", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Manager, outputInline) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Image) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Image, phalcon, html_helper_input_image, phalcon_html_helper_input_abstractinput_ce, NULL, 0); + + zend_declare_property_string(phalcon_html_helper_input_image_ce, SL("type"), "image", ZEND_ACC_PROTECTED); + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Input) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Input, phalcon, html_helper_input_input, phalcon_html_helper_input_abstractinput_ce, phalcon_html_helper_input_input_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Html_Helper_Input_Input, setType) { - zval html, joinedContent, output; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_7 = NULL, *_11 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *collection, collection_sub, *type, type_sub, attributes, code, codes, content, filter, filters, join, *_0$$3, _1$$3, _27$$3, *_2$$4, _3$$4, _4$$5, _5$$7, _6$$10, _8$$10, _9$$10, _10$$10, _12$$10, *_13$$11, _14$$11, _15$$12, _16$$14, _17$$17, _18$$17, _19$$17, _20$$17, _21$$17, _22$$18, _23$$18, _24$$18, _25$$18, _26$$18; + zval *type_param = NULL; + zval type; zval *this_ptr = getThis(); - ZVAL_UNDEF(&collection_sub); - ZVAL_UNDEF(&type_sub); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&code); - ZVAL_UNDEF(&codes); - ZVAL_UNDEF(&content); - ZVAL_UNDEF(&filter); - ZVAL_UNDEF(&filters); - ZVAL_UNDEF(&join); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_27$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_5$$7); - ZVAL_UNDEF(&_6$$10); - ZVAL_UNDEF(&_8$$10); - ZVAL_UNDEF(&_9$$10); - ZVAL_UNDEF(&_10$$10); - ZVAL_UNDEF(&_12$$10); - ZVAL_UNDEF(&_14$$11); - ZVAL_UNDEF(&_15$$12); - ZVAL_UNDEF(&_16$$14); - ZVAL_UNDEF(&_17$$17); - ZVAL_UNDEF(&_18$$17); - ZVAL_UNDEF(&_19$$17); - ZVAL_UNDEF(&_20$$17); - ZVAL_UNDEF(&_21$$17); - ZVAL_UNDEF(&_22$$18); - ZVAL_UNDEF(&_23$$18); - ZVAL_UNDEF(&_24$$18); - ZVAL_UNDEF(&_25$$18); - ZVAL_UNDEF(&_26$$18); - ZVAL_UNDEF(&html); - ZVAL_UNDEF(&joinedContent); - ZVAL_UNDEF(&output); + ZVAL_UNDEF(&type); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(collection, phalcon_assets_collection_ce) - Z_PARAM_ZVAL(type) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(type) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &collection, &type); + zephir_fetch_params(1, 1, 0, &type_param); + zephir_get_strval(&type, type_param); - ZEPHIR_INIT_VAR(&output); - ZEPHIR_INIT_VAR(&html); - ZEPHIR_INIT_VAR(&joinedContent); - ZEPHIR_CALL_METHOD(&codes, collection, "getcodes", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&filters, collection, "getfilters", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&join, collection, "getjoin", NULL, 0); - zephir_check_call_status(); - if (zephir_fast_count_int(&codes)) { - zephir_is_iterable(&codes, 0, "phalcon/Assets/Manager.zep", 833); - if (Z_TYPE_P(&codes) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&codes), _0$$3) - { - ZEPHIR_INIT_NVAR(&code); - ZVAL_COPY(&code, _0$$3); - ZEPHIR_CALL_METHOD(&attributes, &code, "getattributes", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&content, &code, "getcontent", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&filters, 0, "phalcon/Assets/Manager.zep", 824); - if (Z_TYPE_P(&filters) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&filters), _2$$4) - { - ZEPHIR_INIT_NVAR(&filter); - ZVAL_COPY(&filter, _2$$4); - if (UNEXPECTED(Z_TYPE_P(&filter) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_assets_exception_ce, "Filter is invalid", "phalcon/Assets/Manager.zep", 814); - return; - } - ZEPHIR_CALL_METHOD(&_4$$5, &filter, "filter", NULL, 0, &content); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&content, &_4$$5); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &filters, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3$$4, &filters, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3$$4)) { - break; - } - ZEPHIR_CALL_METHOD(&filter, &filters, "current", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&filter) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_assets_exception_ce, "Filter is invalid", "phalcon/Assets/Manager.zep", 814); - return; - } - ZEPHIR_CALL_METHOD(&_5$$7, &filter, "filter", NULL, 0, &content); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&content, &_5$$7); - ZEPHIR_CALL_METHOD(NULL, &filters, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&filter); - if (zephir_is_true(&join)) { - zephir_concat_self(&joinedContent, &content); - } else { - ZVAL_BOOL(&_8$$10, 0); - ZVAL_BOOL(&_9$$10, 1); - ZEPHIR_CALL_CE_STATIC(&_6$$10, phalcon_tag_ce, "taghtml", &_7, 0, type, &attributes, &_8$$10, &_9$$10); - zephir_check_call_status(); - ZVAL_BOOL(&_8$$10, 1); - ZEPHIR_CALL_CE_STATIC(&_10$$10, phalcon_tag_ce, "taghtmlclose", &_11, 0, type, &_8$$10); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_12$$10); - ZEPHIR_CONCAT_VVV(&_12$$10, &_6$$10, &content, &_10$$10); - zephir_concat_self(&html, &_12$$10); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &codes, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1$$3, &codes, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&code, &codes, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&attributes, &code, "getattributes", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&content, &code, "getcontent", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&filters, 0, "phalcon/Assets/Manager.zep", 824); - if (Z_TYPE_P(&filters) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&filters), _13$$11) - { - ZEPHIR_INIT_NVAR(&filter); - ZVAL_COPY(&filter, _13$$11); - if (UNEXPECTED(Z_TYPE_P(&filter) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_assets_exception_ce, "Filter is invalid", "phalcon/Assets/Manager.zep", 814); - return; - } - ZEPHIR_CALL_METHOD(&_15$$12, &filter, "filter", NULL, 0, &content); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&content, &_15$$12); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &filters, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_14$$11, &filters, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_14$$11)) { - break; - } - ZEPHIR_CALL_METHOD(&filter, &filters, "current", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&filter) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_assets_exception_ce, "Filter is invalid", "phalcon/Assets/Manager.zep", 814); - return; - } - ZEPHIR_CALL_METHOD(&_16$$14, &filter, "filter", NULL, 0, &content); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&content, &_16$$14); - ZEPHIR_CALL_METHOD(NULL, &filters, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&filter); - if (zephir_is_true(&join)) { - zephir_concat_self(&joinedContent, &content); - } else { - ZVAL_BOOL(&_18$$17, 0); - ZVAL_BOOL(&_19$$17, 1); - ZEPHIR_CALL_CE_STATIC(&_17$$17, phalcon_tag_ce, "taghtml", &_7, 0, type, &attributes, &_18$$17, &_19$$17); - zephir_check_call_status(); - ZVAL_BOOL(&_18$$17, 1); - ZEPHIR_CALL_CE_STATIC(&_20$$17, phalcon_tag_ce, "taghtmlclose", &_11, 0, type, &_18$$17); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_21$$17); - ZEPHIR_CONCAT_VVV(&_21$$17, &_17$$17, &content, &_20$$17); - zephir_concat_self(&html, &_21$$17); - } - ZEPHIR_CALL_METHOD(NULL, &codes, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&code); - if (zephir_is_true(&join)) { - ZVAL_BOOL(&_23$$18, 0); - ZVAL_BOOL(&_24$$18, 1); - ZEPHIR_CALL_CE_STATIC(&_22$$18, phalcon_tag_ce, "taghtml", &_7, 0, type, &attributes, &_23$$18, &_24$$18); - zephir_check_call_status(); - ZVAL_BOOL(&_23$$18, 1); - ZEPHIR_CALL_CE_STATIC(&_25$$18, phalcon_tag_ce, "taghtmlclose", &_11, 0, type, &_23$$18); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_26$$18); - ZEPHIR_CONCAT_VVV(&_26$$18, &_22$$18, &joinedContent, &_25$$18); - zephir_concat_self(&html, &_26$$18); - } - zephir_read_property(&_27$$3, this_ptr, ZEND_STRL("implicitOutput"), PH_NOISY_CC | PH_READONLY); - if (ZEPHIR_IS_TRUE(&_27$$3)) { - zend_print_zval(&html, 0); - } else { - zephir_concat_self(&output, &html); - } - } - RETURN_CTOR(&output); + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &type); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Assets_Manager, outputInlineCss) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *collectionName_param = NULL, collection, _0; - zval collectionName; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&collectionName); - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(collectionName) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &collectionName_param); - if (!collectionName_param) { - ZEPHIR_INIT_VAR(&collectionName); - } else { - zephir_get_strval(&collectionName, collectionName_param); - } - if (!(!(ZEPHIR_IS_EMPTY(&collectionName)))) { - ZEPHIR_CALL_METHOD(&collection, this_ptr, "getcss", NULL, 0); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(&collection, this_ptr, "get", NULL, 0, &collectionName); - zephir_check_call_status(); - } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "style"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "outputinline", NULL, 0, &collection, &_0); - zephir_check_call_status(); - RETURN_MM(); -} -static PHP_METHOD(Phalcon_Assets_Manager, outputInlineJs) +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Month) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *collectionName_param = NULL, collection, _0; - zval collectionName; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Month, phalcon, html_helper_input_month, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - ZVAL_UNDEF(&collectionName); - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(collectionName) - ZEND_PARSE_PARAMETERS_END(); -#endif + zend_declare_property_string(phalcon_html_helper_input_month_ce, SL("type"), "month", ZEND_ACC_PROTECTED); + return SUCCESS; +} - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &collectionName_param); - if (!collectionName_param) { - ZEPHIR_INIT_VAR(&collectionName); - } else { - zephir_get_strval(&collectionName, collectionName_param); - } - if (!(!(ZEPHIR_IS_EMPTY(&collectionName)))) { - ZEPHIR_CALL_METHOD(&collection, this_ptr, "getjs", NULL, 0); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(&collection, this_ptr, "get", NULL, 0, &collectionName); - zephir_check_call_status(); - } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "script"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "outputinline", NULL, 0, &collection, &_0); - zephir_check_call_status(); - RETURN_MM(); -} +#ifdef HAVE_CONFIG_H +#endif -static PHP_METHOD(Phalcon_Assets_Manager, outputJs) -{ - zend_bool _2; - zval callback; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *collectionName_param = NULL, collection, container, tag, _0, _1, _3, _4$$5, _5$$5; - zval collectionName; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&collectionName); - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&tag); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&callback); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(collectionName) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &collectionName_param); - if (!collectionName_param) { - ZEPHIR_INIT_VAR(&collectionName); - } else { - zephir_get_strval(&collectionName, collectionName_param); - } +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Numeric) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Numeric, phalcon, html_helper_input_numeric, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - if (!(!(ZEPHIR_IS_EMPTY(&collectionName)))) { - ZEPHIR_CALL_METHOD(&collection, this_ptr, "getjs", NULL, 0); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(&collection, this_ptr, "get", NULL, 0, &collectionName); - zephir_check_call_status(); - } - ZEPHIR_INIT_VAR(&callback); - zephir_create_array(&callback, 2, 0); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "Phalcon\\Tag"); - zephir_array_fast_append(&callback, &_0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "javascriptInclude"); - zephir_array_fast_append(&callback, &_0); - zephir_read_property(&_1, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_1); - _2 = Z_TYPE_P(&container) == IS_OBJECT; - if (_2) { - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "tag"); - ZEPHIR_CALL_METHOD(&_3, &container, "has", NULL, 0, &_0); - zephir_check_call_status(); - _2 = zephir_is_true(&_3); - } - if (_2) { - ZEPHIR_INIT_VAR(&_4$$5); - ZVAL_STRING(&_4$$5, "tag"); - ZEPHIR_CALL_METHOD(&tag, &container, "getshared", NULL, 0, &_4$$5); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_5$$5); - zephir_create_array(&_5$$5, 2, 0); - zephir_array_fast_append(&_5$$5, &tag); - ZEPHIR_INIT_NVAR(&_4$$5); - ZVAL_STRING(&_4$$5, "javascriptInclude"); - zephir_array_fast_append(&_5$$5, &_4$$5); - ZEPHIR_CPY_WRT(&callback, &_5$$5); - } - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "js"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "output", NULL, 0, &collection, &callback, &_0); - zephir_check_call_status(); - RETURN_MM(); + zend_declare_property_string(phalcon_html_helper_input_numeric_ce, SL("type"), "numeric", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Manager, set) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *id_param = NULL, *collection, collection_sub; - zval id; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&id); - ZVAL_UNDEF(&collection_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(id) - Z_PARAM_OBJECT_OF_CLASS(collection, phalcon_assets_collection_ce) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &id_param, &collection); - if (UNEXPECTED(Z_TYPE_P(id_param) != IS_STRING && Z_TYPE_P(id_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'id' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(id_param) == IS_STRING)) { - zephir_get_strval(&id, id_param); - } else { - ZEPHIR_INIT_VAR(&id); - } - zephir_update_property_array(this_ptr, SL("collections"), &id, collection); - RETURN_THIS(); -} -static PHP_METHOD(Phalcon_Assets_Manager, setOptions) +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Password) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *options_param = NULL; - zval options; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Password, phalcon, html_helper_input_password, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - ZVAL_UNDEF(&options); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(options) - ZEND_PARSE_PARAMETERS_END(); + zend_declare_property_string(phalcon_html_helper_input_password_ce, SL("type"), "password", ZEND_ACC_PROTECTED); + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &options_param); - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); - RETURN_THIS(); -} -static PHP_METHOD(Phalcon_Assets_Manager, useImplicitOutput) +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Radio) { - zval *implicitOutput_param = NULL, __$true, __$false; - zend_bool implicitOutput; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Radio, phalcon, html_helper_input_radio, phalcon_html_helper_input_checkbox_ce, NULL, 0); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(implicitOutput) - ZEND_PARSE_PARAMETERS_END(); + zend_declare_property_string(phalcon_html_helper_input_radio_ce, SL("type"), "radio", ZEND_ACC_PROTECTED); + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H #endif - zephir_fetch_params_without_memory_grow(1, 0, &implicitOutput_param); - implicitOutput = zephir_get_boolval(implicitOutput_param); - if (implicitOutput) { - zephir_update_property_zval(this_ptr, ZEND_STRL("implicitOutput"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("implicitOutput"), &__$false); - } - RETURN_THISW(); -} -static PHP_METHOD(Phalcon_Assets_Manager, getPrefixedPath) +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Range) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval path; - zval *collection, collection_sub, *path_param = NULL, prefix; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Range, phalcon, html_helper_input_range, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - ZVAL_UNDEF(&collection_sub); - ZVAL_UNDEF(&prefix); - ZVAL_UNDEF(&path); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(collection, phalcon_assets_collection_ce) - Z_PARAM_STR(path) - ZEND_PARSE_PARAMETERS_END(); + zend_declare_property_string(phalcon_html_helper_input_range_ce, SL("type"), "range", ZEND_ACC_PROTECTED); + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &collection, &path_param); - zephir_get_strval(&path, path_param); - ZEPHIR_CALL_METHOD(&prefix, collection, "getprefix", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&prefix))) { - RETURN_CTOR(&path); - } - ZEPHIR_CONCAT_VV(return_value, &prefix, &path); - RETURN_MM(); -} -zend_object *zephir_init_properties_Phalcon_Assets_Manager(zend_class_entry *class_type) +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Search) { - zval _0, _2, _1$$3, _3$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Search, phalcon, html_helper_input_search, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("collections"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("collections"), &_3$$4); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } + zend_declare_property_string(phalcon_html_helper_input_search_ce, SL("type"), "search", ZEND_ACC_PROTECTED); + return SUCCESS; } @@ -41603,65 +38768,54 @@ zend_object *zephir_init_properties_Phalcon_Assets_Manager(zend_class_entry *cla -ZEPHIR_INIT_CLASS(Phalcon_Assets_Asset_Css) +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Select) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Assets\\Asset, Css, phalcon, assets_asset_css, phalcon_assets_asset_ce, phalcon_assets_asset_css_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Select, phalcon, html_helper_input_select, phalcon_html_helper_abstractlist_ce, phalcon_html_helper_input_select_method_entry, 0); + zend_declare_property_string(phalcon_html_helper_input_select_ce, SL("elementTag"), "option", ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_html_helper_input_select_ce, SL("inOptGroup"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_html_helper_input_select_ce, SL("selected"), "", ZEND_ACC_PROTECTED); return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Asset_Css, __construct) +static PHP_METHOD(Phalcon_Html_Helper_Input_Select, add) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval attributes; - zend_bool local, filter, autoVersion; - zval *path_param = NULL, *local_param = NULL, *filter_param = NULL, *attributes_param = NULL, *version_param = NULL, *autoVersion_param = NULL, _1, _2, _3, _4; - zval path, version; + zend_bool raw; + zval attributes, _1, _3; + zval *text_param = NULL, *value_param = NULL, *attributes_param = NULL, *raw_param = NULL, _0, _2, _4, _5; + zval text, value; zval *this_ptr = getThis(); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&version); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 6) - Z_PARAM_STR(path) + ZEND_PARSE_PARAMETERS_START(1, 4) + Z_PARAM_STR(text) Z_PARAM_OPTIONAL - Z_PARAM_BOOL(local) - Z_PARAM_BOOL(filter) + Z_PARAM_STR_OR_NULL(value) Z_PARAM_ARRAY(attributes) - Z_PARAM_STR_OR_NULL(version) - Z_PARAM_BOOL(autoVersion) + Z_PARAM_BOOL(raw) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 5, &path_param, &local_param, &filter_param, &attributes_param, &version_param, &autoVersion_param); - if (UNEXPECTED(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 of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { - zephir_get_strval(&path, path_param); - } else { - ZEPHIR_INIT_VAR(&path); - } - if (!local_param) { - local = 1; - } else { - local = zephir_get_boolval(local_param); - } - if (!filter_param) { - filter = 1; + zephir_fetch_params(1, 1, 3, &text_param, &value_param, &attributes_param, &raw_param); + zephir_get_strval(&text, text_param); + if (!value_param) { + ZEPHIR_INIT_VAR(&value); } else { - filter = zephir_get_boolval(filter_param); + zephir_get_strval(&value, value_param); } if (!attributes_param) { ZEPHIR_INIT_VAR(&attributes); @@ -41669,109 +38823,77 @@ static PHP_METHOD(Phalcon_Assets_Asset_Css, __construct) } else { zephir_get_arrval(&attributes, attributes_param); } - if (!version_param) { - ZEPHIR_INIT_VAR(&version); - } else { - zephir_get_strval(&version, version_param); - } - if (!autoVersion_param) { - autoVersion = 0; + if (!raw_param) { + raw = 0; } else { - autoVersion = zephir_get_boolval(autoVersion_param); + raw = zephir_get_boolval(raw_param); } + ZEPHIR_CALL_METHOD(&_0, this_ptr, "processvalue", NULL, 278, &attributes, &value); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&attributes, &_0); ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "css"); - if (local) { - ZVAL_BOOL(&_2, 1); - } else { - ZVAL_BOOL(&_2, 0); - } - if (filter) { - ZVAL_BOOL(&_3, 1); - } else { - ZVAL_BOOL(&_3, 0); - } - if (autoVersion) { - ZVAL_BOOL(&_4, 1); - } else { - ZVAL_BOOL(&_4, 0); - } - ZEPHIR_CALL_PARENT(NULL, phalcon_assets_asset_css_ce, getThis(), "__construct", &_0, 0, &_1, &path, &_2, &_3, &attributes, &version, &_4); + zephir_create_array(&_1, 3, 0); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "renderFullElement"); + zephir_array_fast_append(&_1, &_2); + ZEPHIR_INIT_VAR(&_3); + zephir_create_array(&_3, 4, 0); + ZEPHIR_OBS_VAR(&_4); + zephir_read_property(&_4, this_ptr, ZEND_STRL("elementTag"), PH_NOISY_CC); + zephir_array_fast_append(&_3, &_4); + zephir_array_fast_append(&_3, &text); + zephir_array_fast_append(&_3, &attributes); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_BOOL(&_2, raw); + zephir_array_fast_append(&_3, &_2); + zephir_array_fast_append(&_1, &_3); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "indent", NULL, 0); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Assets_Asset_Js) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Assets\\Asset, Js, phalcon, assets_asset_js, phalcon_assets_asset_ce, phalcon_assets_asset_js_method_entry, 0); - - return SUCCESS; + zephir_array_fast_append(&_1, &_5); + zephir_update_property_array_append(this_ptr, SL("store"), &_1); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Assets_Asset_Js, __construct) +static PHP_METHOD(Phalcon_Html_Helper_Input_Select, addPlaceholder) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval attributes; - zend_bool local, filter, autoVersion; - zval *path_param = NULL, *local_param = NULL, *filter_param = NULL, *attributes_param = NULL, *version_param = NULL, *autoVersion_param = NULL, _1, _2, _3, _4; - zval path, version; + zend_bool raw; + zval attributes, _1, _3; + zval *text_param = NULL, *value = NULL, value_sub, *attributes_param = NULL, *raw_param = NULL, __$null, _2, _4, _5; + zval text, _0$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&version); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&value_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 6) - Z_PARAM_STR(path) + ZEND_PARSE_PARAMETERS_START(1, 4) + Z_PARAM_STR(text) Z_PARAM_OPTIONAL - Z_PARAM_BOOL(local) - Z_PARAM_BOOL(filter) + Z_PARAM_ZVAL_OR_NULL(value) Z_PARAM_ARRAY(attributes) - Z_PARAM_STR_OR_NULL(version) - Z_PARAM_BOOL(autoVersion) + Z_PARAM_BOOL(raw) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 5, &path_param, &local_param, &filter_param, &attributes_param, &version_param, &autoVersion_param); - if (UNEXPECTED(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 of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { - zephir_get_strval(&path, path_param); - } else { - ZEPHIR_INIT_VAR(&path); - } - if (!local_param) { - local = 1; - } else { - local = zephir_get_boolval(local_param); - } - if (!filter_param) { - filter = 1; - } else { - filter = zephir_get_boolval(filter_param); + zephir_fetch_params(1, 1, 3, &text_param, &value, &attributes_param, &raw_param); + zephir_get_strval(&text, text_param); + if (!value) { + value = &value_sub; + value = &__$null; } if (!attributes_param) { ZEPHIR_INIT_VAR(&attributes); @@ -41779,138 +38901,270 @@ static PHP_METHOD(Phalcon_Assets_Asset_Js, __construct) } else { zephir_get_arrval(&attributes, attributes_param); } - if (!version_param) { - ZEPHIR_INIT_VAR(&version); - } else { - zephir_get_strval(&version, version_param); - } - if (!autoVersion_param) { - autoVersion = 0; + if (!raw_param) { + raw = 0; } else { - autoVersion = zephir_get_boolval(autoVersion_param); + raw = zephir_get_boolval(raw_param); } - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "js"); - if (local) { - ZVAL_BOOL(&_2, 1); - } else { - ZVAL_BOOL(&_2, 0); - } - if (filter) { - ZVAL_BOOL(&_3, 1); - } else { - ZVAL_BOOL(&_3, 0); - } - if (autoVersion) { - ZVAL_BOOL(&_4, 1); - } else { - ZVAL_BOOL(&_4, 0); + if (Z_TYPE_P(value) != IS_NULL) { + zephir_cast_to_string(&_0$$3, value); + zephir_array_update_string(&attributes, SL("value"), &_0$$3, PH_COPY | PH_SEPARATE); } - ZEPHIR_CALL_PARENT(NULL, phalcon_assets_asset_js_ce, getThis(), "__construct", &_0, 0, &_1, &path, &_2, &_3, &attributes, &version, &_4); + ZEPHIR_INIT_VAR(&_1); + zephir_create_array(&_1, 3, 0); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "renderFullElement"); + zephir_array_fast_append(&_1, &_2); + ZEPHIR_INIT_VAR(&_3); + zephir_create_array(&_3, 4, 0); + ZEPHIR_OBS_VAR(&_4); + zephir_read_property(&_4, this_ptr, ZEND_STRL("elementTag"), PH_NOISY_CC); + zephir_array_fast_append(&_3, &_4); + zephir_array_fast_append(&_3, &text); + zephir_array_fast_append(&_3, &attributes); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_BOOL(&_2, raw); + zephir_array_fast_append(&_3, &_2); + zephir_array_fast_append(&_1, &_3); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "indent", NULL, 0); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + zephir_array_fast_append(&_1, &_5); + zephir_update_property_array_append(this_ptr, SL("store"), &_1); + RETURN_THIS(); } +static PHP_METHOD(Phalcon_Html_Helper_Input_Select, optGroup) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval attributes, _1$$3, _3$$3, _8$$4; + zval *label_param = NULL, *attributes_param = NULL, __$true, __$false, _0, _11, _2$$3, _4$$3, _5$$3, _6$$4, _7$$4, _9$$4, _10$$4; + zval label; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&label); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&_10$$4); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_8$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 2) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(label) + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 2, &label_param, &attributes_param); + if (!label_param) { + ZEPHIR_INIT_VAR(&label); + } else { + zephir_get_strval(&label, label_param); + } + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); + } - -ZEPHIR_INIT_CLASS(Phalcon_Assets_Filters_Cssmin) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Assets\\Filters, Cssmin, phalcon, assets_filters_cssmin, phalcon_assets_filters_cssmin_method_entry, 0); - - zend_class_implements(phalcon_assets_filters_cssmin_ce, 1, phalcon_assets_filterinterface_ce); - return SUCCESS; + zephir_read_property(&_0, this_ptr, ZEND_STRL("inOptGroup"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_0))) { + ZEPHIR_INIT_VAR(&_1$$3); + zephir_create_array(&_1$$3, 3, 0); + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "optGroupStart"); + zephir_array_fast_append(&_1$$3, &_2$$3); + ZEPHIR_INIT_VAR(&_3$$3); + zephir_create_array(&_3$$3, 2, 0); + zephir_array_fast_append(&_3$$3, &label); + zephir_array_fast_append(&_3$$3, &attributes); + zephir_array_fast_append(&_1$$3, &_3$$3); + ZEPHIR_CALL_METHOD(&_4$$3, this_ptr, "indent", NULL, 0); + zephir_check_call_status(); + zephir_array_fast_append(&_1$$3, &_4$$3); + zephir_update_property_array_append(this_ptr, SL("store"), &_1$$3); + ZEPHIR_INIT_NVAR(&_2$$3); + ZVAL_LONG(&_2$$3, 1); + zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("indentLevel"), PH_NOISY_CC); + ZEPHIR_ADD_ASSIGN(&_5$$3, &_2$$3) + zephir_update_property_zval(this_ptr, ZEND_STRL("indentLevel"), &_5$$3); + } else { + ZEPHIR_INIT_VAR(&_7$$4); + ZVAL_LONG(&_7$$4, 1); + zephir_read_property(&_6$$4, this_ptr, ZEND_STRL("indentLevel"), PH_NOISY_CC); + ZEPHIR_SUB_ASSIGN(&_6$$4, &_7$$4) + zephir_update_property_zval(this_ptr, ZEND_STRL("indentLevel"), &_6$$4); + ZEPHIR_INIT_VAR(&_8$$4); + zephir_create_array(&_8$$4, 3, 0); + ZEPHIR_INIT_VAR(&_9$$4); + ZVAL_STRING(&_9$$4, "optGroupEnd"); + zephir_array_fast_append(&_8$$4, &_9$$4); + ZEPHIR_INIT_NVAR(&_9$$4); + array_init(&_9$$4); + zephir_array_fast_append(&_8$$4, &_9$$4); + ZEPHIR_CALL_METHOD(&_10$$4, this_ptr, "indent", NULL, 0); + zephir_check_call_status(); + zephir_array_fast_append(&_8$$4, &_10$$4); + zephir_update_property_array_append(this_ptr, SL("store"), &_8$$4); + } + ZEPHIR_OBS_VAR(&_11); + zephir_read_property(&_11, this_ptr, ZEND_STRL("inOptGroup"), PH_NOISY_CC); + if (!zephir_is_true(&_11)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("inOptGroup"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("inOptGroup"), &__$false); + } + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Assets_Filters_Cssmin, filter) +static PHP_METHOD(Phalcon_Html_Helper_Input_Select, selected) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *content_param = NULL; - zval content; + zval *selected_param = NULL; + zval selected; zval *this_ptr = getThis(); - ZVAL_UNDEF(&content); + ZVAL_UNDEF(&selected); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(content) + Z_PARAM_STR(selected) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &content_param); - if (UNEXPECTED(Z_TYPE_P(content_param) != IS_STRING && Z_TYPE_P(content_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'content' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(content_param) == IS_STRING)) { - zephir_get_strval(&content, content_param); - } else { - ZEPHIR_INIT_VAR(&content); - } + zephir_fetch_params(1, 1, 0, &selected_param); + zephir_get_strval(&selected, selected_param); - RETURN_CTOR(&content); + zephir_update_property_zval(this_ptr, ZEND_STRL("selected"), &selected); + RETURN_THIS(); } +static PHP_METHOD(Phalcon_Html_Helper_Input_Select, getTag) +{ + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H -#endif + RETURN_STRING("select"); +} +static PHP_METHOD(Phalcon_Html_Helper_Input_Select, optGroupEnd) +{ + zval *this_ptr = getThis(); + RETURN_STRING(""); +} -ZEPHIR_INIT_CLASS(Phalcon_Assets_Filters_Jsmin) +static PHP_METHOD(Phalcon_Html_Helper_Input_Select, optGroupStart) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Assets\\Filters, Jsmin, phalcon, assets_filters_jsmin, phalcon_assets_filters_jsmin_method_entry, 0); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval attributes; + zval *label_param = NULL, *attributes_param = NULL, _0; + zval label; + zval *this_ptr = getThis(); - zend_class_implements(phalcon_assets_filters_jsmin_ce, 1, phalcon_assets_filterinterface_ce); - return SUCCESS; + ZVAL_UNDEF(&label); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&attributes); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(label) + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &label_param, &attributes_param); + zephir_get_strval(&label, label_param); + zephir_get_arrval(&attributes, attributes_param); + + + zephir_array_update_string(&attributes, SL("label"), &label, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "optgroup"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "rendertag", NULL, 0, &_0, &attributes); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Assets_Filters_Jsmin, filter) +static PHP_METHOD(Phalcon_Html_Helper_Input_Select, processValue) { + zend_bool _0, _2$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *content_param = NULL; - zval content; + zval *attributes_param = NULL, *value = NULL, value_sub, __$null, _1$$3, _3$$3, _4$$4; + zval attributes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&content); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&value_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(content) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(attributes) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &content_param); - if (UNEXPECTED(Z_TYPE_P(content_param) != IS_STRING && Z_TYPE_P(content_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'content' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(content_param) == IS_STRING)) { - zephir_get_strval(&content, content_param); - } else { - ZEPHIR_INIT_VAR(&content); + zephir_fetch_params(1, 1, 1, &attributes_param, &value); + zephir_get_arrval(&attributes, attributes_param); + if (!value) { + value = &value_sub; + value = &__$null; } - RETURN_CTOR(&content); + _0 = zephir_is_numeric(value); + if (!(_0)) { + _0 = !(ZEPHIR_IS_EMPTY(value)); + } + if (_0) { + zephir_array_update_string(&attributes, SL("value"), value, PH_COPY | PH_SEPARATE); + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("selected"), PH_NOISY_CC | PH_READONLY); + _2$$3 = !(ZEPHIR_IS_EMPTY(&_1$$3)); + if (_2$$3) { + zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("selected"), PH_NOISY_CC | PH_READONLY); + _2$$3 = ZEPHIR_IS_IDENTICAL(value, &_3$$3); + } + if (_2$$3) { + ZEPHIR_INIT_VAR(&_4$$4); + ZVAL_STRING(&_4$$4, "selected"); + zephir_array_update_string(&attributes, SL("selected"), &_4$$4, PH_COPY | PH_SEPARATE); + } + } + RETURN_CTOR(&attributes); } @@ -41923,44 +39177,47 @@ static PHP_METHOD(Phalcon_Assets_Filters_Jsmin, filter) -ZEPHIR_INIT_CLASS(Phalcon_Assets_Filters_None) +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Submit) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Assets\\Filters, None, phalcon, assets_filters_none, phalcon_assets_filters_none_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Submit, phalcon, html_helper_input_submit, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - zend_class_implements(phalcon_assets_filters_none_ce, 1, phalcon_assets_filterinterface_ce); + zend_declare_property_string(phalcon_html_helper_input_submit_ce, SL("type"), "submit", ZEND_ACC_PROTECTED); return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Filters_None, filter) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Tel) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *content_param = NULL; - zval content; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Tel, phalcon, html_helper_input_tel, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - ZVAL_UNDEF(&content); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(content) - ZEND_PARSE_PARAMETERS_END(); + zend_declare_property_string(phalcon_html_helper_input_tel_ce, SL("type"), "tel", ZEND_ACC_PROTECTED); + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &content_param); - if (UNEXPECTED(Z_TYPE_P(content_param) != IS_STRING && Z_TYPE_P(content_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'content' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(content_param) == IS_STRING)) { - zephir_get_strval(&content, content_param); - } else { - ZEPHIR_INIT_VAR(&content); - } - RETURN_CTOR(&content); + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Text) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Text, phalcon, html_helper_input_text, phalcon_html_helper_input_abstractinput_ce, NULL, 0); + + return SUCCESS; } @@ -41973,72 +39230,50 @@ static PHP_METHOD(Phalcon_Assets_Filters_None, filter) -ZEPHIR_INIT_CLASS(Phalcon_Assets_Inline_Css) +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Textarea) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Assets\\Inline, Css, phalcon, assets_inline_css, phalcon_assets_inline_ce, phalcon_assets_inline_css_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Textarea, phalcon, html_helper_input_textarea, phalcon_html_helper_input_abstractinput_ce, phalcon_html_helper_input_textarea_method_entry, 0); + zend_declare_property_string(phalcon_html_helper_input_textarea_ce, SL("type"), "textarea", ZEND_ACC_PROTECTED); return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Inline_Css, __construct) +static PHP_METHOD(Phalcon_Html_Helper_Input_Textarea, __toString) { + zval attributes; + zval value, _0, _2, _3, _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_1 = NULL; - zend_bool filter; - zval *content_param = NULL, *filter_param = NULL, *attributes = NULL, attributes_sub, __$null, _0$$3, _2, _3; - zval content; zval *this_ptr = getThis(); - ZVAL_UNDEF(&content); - ZVAL_UNDEF(&attributes_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(content) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(filter) - Z_PARAM_ZVAL_OR_NULL(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&attributes); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &content_param, &filter_param, &attributes); - zephir_get_strval(&content, content_param); - if (!filter_param) { - filter = 1; - } else { - filter = zephir_get_boolval(filter_param); - } - if (!attributes) { - attributes = &attributes_sub; - ZEPHIR_CPY_WRT(attributes, &__$null); - } else { - ZEPHIR_SEPARATE_PARAM(attributes); - } - - if (Z_TYPE_P(attributes) == IS_NULL) { - ZEPHIR_INIT_VAR(&_0$$3); - zephir_create_array(&_0$$3, 1, 0); - add_assoc_stringl_ex(&_0$$3, SL("type"), SL("text/css")); - ZEPHIR_CPY_WRT(attributes, &_0$$3); - } + zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&attributes, &_0); ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "css"); - if (filter) { - ZVAL_BOOL(&_3, 1); - } else { - ZVAL_BOOL(&_3, 0); - } - ZEPHIR_CALL_PARENT(NULL, phalcon_assets_inline_css_ce, getThis(), "__construct", &_1, 0, &_2, &content, &_3, attributes); + ZVAL_STRING(&_2, "value"); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, ""); + ZEPHIR_CALL_CE_STATIC(&value, phalcon_helper_arr_ce, "get", &_1, 16, &attributes, &_2, &_3); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + ZEPHIR_INIT_NVAR(&_2); + array_init(&_2); + zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &_2); + zephir_array_unset_string(&attributes, SL("type"), PH_SEPARATE); + zephir_array_unset_string(&attributes, SL("value"), PH_SEPARATE); + zephir_read_property(&_4, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "renderfullelement", NULL, 0, &_4, &value, &attributes); + zephir_check_call_status(); + RETURN_MM(); } @@ -42051,72 +39286,30 @@ static PHP_METHOD(Phalcon_Assets_Inline_Css, __construct) -ZEPHIR_INIT_CLASS(Phalcon_Assets_Inline_Js) +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Time) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Assets\\Inline, Js, phalcon, assets_inline_js, phalcon_assets_inline_ce, phalcon_assets_inline_js_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Time, phalcon, html_helper_input_time, phalcon_html_helper_input_abstractinput_ce, NULL, 0); + zend_declare_property_string(phalcon_html_helper_input_time_ce, SL("type"), "time", ZEND_ACC_PROTECTED); return SUCCESS; } -static PHP_METHOD(Phalcon_Assets_Inline_Js, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL; - zend_bool filter; - zval *content_param = NULL, *filter_param = NULL, *attributes = NULL, attributes_sub, __$null, _0$$3, _2, _3; - zval content; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&content); - ZVAL_UNDEF(&attributes_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(content) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(filter) - Z_PARAM_ZVAL_OR_NULL(attributes) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &content_param, &filter_param, &attributes); - zephir_get_strval(&content, content_param); - if (!filter_param) { - filter = 1; - } else { - filter = zephir_get_boolval(filter_param); - } - if (!attributes) { - attributes = &attributes_sub; - ZEPHIR_CPY_WRT(attributes, &__$null); - } else { - ZEPHIR_SEPARATE_PARAM(attributes); - } - if (Z_TYPE_P(attributes) == IS_NULL) { - ZEPHIR_INIT_VAR(&_0$$3); - zephir_create_array(&_0$$3, 1, 0); - add_assoc_stringl_ex(&_0$$3, SL("type"), SL("text/javascript")); - ZEPHIR_CPY_WRT(attributes, &_0$$3); - } - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "js"); - if (filter) { - ZVAL_BOOL(&_3, 1); - } else { - ZVAL_BOOL(&_3, 0); - } - ZEPHIR_CALL_PARENT(NULL, phalcon_assets_inline_js_ce, getThis(), "__construct", &_1, 0, &_2, &content, &_3, attributes); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Url) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Url, phalcon, html_helper_input_url, phalcon_html_helper_input_abstractinput_ce, NULL, 0); + + zend_declare_property_string(phalcon_html_helper_input_url_ce, SL("type"), "url", ZEND_ACC_PROTECTED); + return SUCCESS; } @@ -42129,267 +39322,519 @@ static PHP_METHOD(Phalcon_Assets_Inline_Js, __construct) -ZEPHIR_INIT_CLASS(Phalcon_Cache_AdapterFactory) +ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Week) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cache, AdapterFactory, phalcon, cache_adapterfactory, phalcon_factory_abstractfactory_ce, phalcon_cache_adapterfactory_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Week, phalcon, html_helper_input_week, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - zend_declare_property_string(phalcon_cache_adapterfactory_ce, SL("exception"), "Phalcon\\Cache\\Exception\\Exception", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_cache_adapterfactory_ce, SL("serializerFactory"), ZEND_ACC_PRIVATE); + zend_declare_property_string(phalcon_html_helper_input_week_ce, SL("type"), "week", ZEND_ACC_PROTECTED); return SUCCESS; } -static PHP_METHOD(Phalcon_Cache_AdapterFactory, __construct) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Loader_Exception) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval services; - zval *factory, factory_sub, *services_param = NULL; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Loader, Exception, phalcon, loader_exception, phalcon_exception_ce, NULL, 0); - ZVAL_UNDEF(&factory_sub); - ZVAL_UNDEF(&services); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_storage_serializerfactory_ce) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(services) - ZEND_PARSE_PARAMETERS_END(); + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &factory, &services_param); - if (!services_param) { - ZEPHIR_INIT_VAR(&services); - array_init(&services); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&services, services_param); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("serializerFactory"), factory); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "init", NULL, 0, &services); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Application) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc, Application, phalcon, mvc_application, phalcon_application_abstractapplication_ce, phalcon_mvc_application_method_entry, 0); + + zend_declare_property_bool(phalcon_mvc_application_ce, SL("implicitView"), 1, ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_application_ce, SL("sendCookies"), 1, ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_application_ce, SL("sendHeaders"), 1, ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Cache_AdapterFactory, newInstance) +static PHP_METHOD(Phalcon_Mvc_Application, handle) { + zval _21$$21; + zend_class_entry *_10$$8; + zend_bool returnedResponse = 0, _14$$7, _17$$12, _35$$31, _37$$31; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval options, _0; - zval *name_param = NULL, *options_param = NULL, definition, _1; - zval name; + zephir_fcall_cache_entry *_3 = NULL; + zval *uri_param = NULL, __$false, container, eventsManager, router, dispatcher, response, view, module, moduleObject, moduleName, className, path, implicitView, controller, possibleResponse, renderStatus, matchedRoute, match, _0, _7, _8, _25, _26, _27, _28, _45, _1$$3, _2$$3, _4$$3, _5$$4, _6$$4, _9$$8, _11$$7, _12$$9, _13$$9, _15$$13, _16$$13, _18$$19, _19$$19, _20$$16, _22$$23, _23$$24, _24$$24, _29$$26, _30$$26, _31$$28, _32$$28, _33$$30, _34$$30, _36$$32, _38$$35, _39$$36, _40$$36, _41$$39, _42$$39, _43$$40, _44$$41; + zval uri; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&options); + ZVAL_UNDEF(&uri); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&eventsManager); + ZVAL_UNDEF(&router); + ZVAL_UNDEF(&dispatcher); + ZVAL_UNDEF(&response); + ZVAL_UNDEF(&view); + ZVAL_UNDEF(&module); + ZVAL_UNDEF(&moduleObject); + ZVAL_UNDEF(&moduleName); + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&implicitView); + ZVAL_UNDEF(&controller); + ZVAL_UNDEF(&possibleResponse); + ZVAL_UNDEF(&renderStatus); + ZVAL_UNDEF(&matchedRoute); + ZVAL_UNDEF(&match); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_25); + ZVAL_UNDEF(&_26); + ZVAL_UNDEF(&_27); + ZVAL_UNDEF(&_28); + ZVAL_UNDEF(&_45); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_9$$8); + ZVAL_UNDEF(&_11$$7); + ZVAL_UNDEF(&_12$$9); + ZVAL_UNDEF(&_13$$9); + ZVAL_UNDEF(&_15$$13); + ZVAL_UNDEF(&_16$$13); + ZVAL_UNDEF(&_18$$19); + ZVAL_UNDEF(&_19$$19); + ZVAL_UNDEF(&_20$$16); + ZVAL_UNDEF(&_22$$23); + ZVAL_UNDEF(&_23$$24); + ZVAL_UNDEF(&_24$$24); + ZVAL_UNDEF(&_29$$26); + ZVAL_UNDEF(&_30$$26); + ZVAL_UNDEF(&_31$$28); + ZVAL_UNDEF(&_32$$28); + ZVAL_UNDEF(&_33$$30); + ZVAL_UNDEF(&_34$$30); + ZVAL_UNDEF(&_36$$32); + ZVAL_UNDEF(&_38$$35); + ZVAL_UNDEF(&_39$$36); + ZVAL_UNDEF(&_40$$36); + ZVAL_UNDEF(&_41$$39); + ZVAL_UNDEF(&_42$$39); + ZVAL_UNDEF(&_43$$40); + ZVAL_UNDEF(&_44$$41); + ZVAL_UNDEF(&_21$$21); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(uri) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &name_param, &options_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + zephir_fetch_params(1, 1, 0, &uri_param); + if (UNEXPECTED(Z_TYPE_P(uri_param) != IS_STRING && Z_TYPE_P(uri_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'uri' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); + if (EXPECTED(Z_TYPE_P(uri_param) == IS_STRING)) { + zephir_get_strval(&uri, uri_param); } else { - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + ZEPHIR_INIT_VAR(&uri); } - ZEPHIR_CALL_METHOD(&definition, this_ptr, "getservice", NULL, 0, &name); + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_mvc_application_exception_ce); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "internal services"); + ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_mvc_application_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Application.zep", 100); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_0); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_6$$4); + ZVAL_STRING(&_6$$4, "application:boot"); + ZEPHIR_CALL_METHOD(&_5$$4, &eventsManager, "fire", NULL, 0, &_6$$4, this_ptr); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_5$$4)) { + RETURN_MM_BOOL(0); + } + } + ZEPHIR_INIT_VAR(&_8); + ZVAL_STRING(&_8, "router"); + ZEPHIR_CALL_METHOD(&_7, &container, "getshared", NULL, 0, &_8); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 2, 0); - ZEPHIR_OBS_VAR(&_1); - zephir_read_property(&_1, this_ptr, ZEND_STRL("serializerFactory"), PH_NOISY_CC); - zephir_array_fast_append(&_0, &_1); - zephir_array_fast_append(&_0, &options); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(return_value, &definition, &_0); + ZEPHIR_CPY_WRT(&router, &_7); + ZEPHIR_CALL_METHOD(NULL, &router, "handle", NULL, 0, &uri); zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Cache_AdapterFactory, getAdapters) -{ - zval *this_ptr = getThis(); - - - - zephir_create_array(return_value, 5, 0); - add_assoc_stringl_ex(return_value, SL("apcu"), SL("Phalcon\\Cache\\Adapter\\Apcu")); - add_assoc_stringl_ex(return_value, SL("libmemcached"), SL("Phalcon\\Cache\\Adapter\\Libmemcached")); - add_assoc_stringl_ex(return_value, SL("memory"), SL("Phalcon\\Cache\\Adapter\\Memory")); - add_assoc_stringl_ex(return_value, SL("redis"), SL("Phalcon\\Cache\\Adapter\\Redis")); - add_assoc_stringl_ex(return_value, SL("stream"), SL("Phalcon\\Cache\\Adapter\\Stream")); - return; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Cache_CacheFactory) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Cache, CacheFactory, phalcon, cache_cachefactory, phalcon_cache_cachefactory_method_entry, 0); - - zend_declare_property_null(phalcon_cache_cachefactory_ce, SL("adapterFactory"), ZEND_ACC_PROTECTED); - return SUCCESS; + ZEPHIR_CALL_METHOD(&matchedRoute, &router, "getmatchedroute", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&matchedRoute) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(&match, &matchedRoute, "getmatch", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&match) != IS_NULL) { + if (zephir_is_instance_of(&match, SL("Closure"))) { + _10$$8 = zephir_fetch_class_str_ex(SL("Closure"), ZEND_FETCH_CLASS_AUTO); + ZEPHIR_CALL_CE_STATIC(&_9$$8, _10$$8, "bind", NULL, 0, &match, &container); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&match, &_9$$8); + } + ZEPHIR_CALL_METHOD(&_11$$7, &router, "getparams", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&possibleResponse); + ZEPHIR_CALL_USER_FUNC_ARRAY(&possibleResponse, &match, &_11$$7); + zephir_check_call_status(); + if (Z_TYPE_P(&possibleResponse) == IS_STRING) { + ZEPHIR_INIT_VAR(&_13$$9); + ZVAL_STRING(&_13$$9, "response"); + ZEPHIR_CALL_METHOD(&_12$$9, &container, "getshared", NULL, 0, &_13$$9); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&response, &_12$$9); + ZEPHIR_CALL_METHOD(NULL, &response, "setcontent", NULL, 0, &possibleResponse); + zephir_check_call_status(); + RETURN_CCTOR(&response); + } + _14$$7 = Z_TYPE_P(&possibleResponse) == IS_OBJECT; + if (_14$$7) { + _14$$7 = zephir_instance_of_ev(&possibleResponse, phalcon_http_responseinterface_ce); + } + if (_14$$7) { + ZEPHIR_CALL_METHOD(NULL, &possibleResponse, "sendheaders", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &possibleResponse, "sendcookies", NULL, 0); + zephir_check_call_status(); + RETURN_CCTOR(&possibleResponse); + } + } + } + ZEPHIR_CALL_METHOD(&moduleName, &router, "getmodulename", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&moduleName))) { + ZEPHIR_OBS_NVAR(&moduleName); + zephir_read_property(&moduleName, this_ptr, ZEND_STRL("defaultModule"), PH_NOISY_CC); + } + ZEPHIR_INIT_VAR(&moduleObject); + ZVAL_NULL(&moduleObject); + if (zephir_is_true(&moduleName)) { + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_16$$13); + ZVAL_STRING(&_16$$13, "application:beforeStartModule"); + ZEPHIR_CALL_METHOD(&_15$$13, &eventsManager, "fire", NULL, 0, &_16$$13, this_ptr, &moduleName); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_15$$13)) { + RETURN_MM_BOOL(0); + } + } + ZEPHIR_CALL_METHOD(&module, this_ptr, "getmodule", NULL, 0, &moduleName); + zephir_check_call_status(); + _17$$12 = Z_TYPE_P(&module) != IS_ARRAY; + if (_17$$12) { + _17$$12 = Z_TYPE_P(&module) != IS_OBJECT; + } + if (UNEXPECTED(_17$$12)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_application_exception_ce, "Invalid module definition", "phalcon/Mvc/Application.zep", 198); + return; + } + if (Z_TYPE_P(&module) == IS_ARRAY) { + ZEPHIR_OBS_VAR(&className); + if (!(zephir_array_isset_string_fetch(&className, &module, SL("className"), 0))) { + ZEPHIR_INIT_NVAR(&className); + ZVAL_STRING(&className, "Module"); + } + ZEPHIR_OBS_VAR(&path); + if (zephir_array_isset_string_fetch(&path, &module, SL("path"), 0)) { + if (UNEXPECTED(!((zephir_file_exists(&path) == SUCCESS)))) { + ZEPHIR_INIT_VAR(&_18$$19); + object_init_ex(&_18$$19, phalcon_mvc_application_exception_ce); + ZEPHIR_INIT_VAR(&_19$$19); + ZEPHIR_CONCAT_SVS(&_19$$19, "Module definition path '", &path, "' doesn't exist"); + ZEPHIR_CALL_METHOD(NULL, &_18$$19, "__construct", NULL, 8, &_19$$19); + zephir_check_call_status(); + zephir_throw_exception_debug(&_18$$19, "phalcon/Mvc/Application.zep", 220); + ZEPHIR_MM_RESTORE(); + return; + } + if (!(zephir_class_exists(&className, zephir_is_true(&__$false) ))) { + if (zephir_require_zval(&path) == FAILURE) { + RETURN_MM_NULL(); + } + } + } + ZEPHIR_CALL_METHOD(&_20$$16, &container, "get", NULL, 0, &className); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&moduleObject, &_20$$16); + ZEPHIR_CALL_METHOD(NULL, &moduleObject, "registerautoloaders", NULL, 0, &container); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &moduleObject, "registerservices", NULL, 0, &container); + zephir_check_call_status(); + } else { + if (UNEXPECTED(!((zephir_is_instance_of(&module, SL("Closure")))))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_application_exception_ce, "Invalid module definition", "phalcon/Mvc/Application.zep", 241); + return; + } + ZEPHIR_INIT_VAR(&_21$$21); + zephir_create_array(&_21$$21, 1, 0); + zephir_array_fast_append(&_21$$21, &container); + ZEPHIR_INIT_NVAR(&moduleObject); + ZEPHIR_CALL_USER_FUNC_ARRAY(&moduleObject, &module, &_21$$21); + zephir_check_call_status(); + } + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_22$$23); + ZVAL_STRING(&_22$$23, "application:afterStartModule"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_22$$23, this_ptr, &moduleObject); + zephir_check_call_status(); + } + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("implicitView"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&implicitView, &_0); + if (ZEPHIR_IS_TRUE_IDENTICAL(&implicitView)) { + ZEPHIR_INIT_VAR(&_24$$24); + ZVAL_STRING(&_24$$24, "view"); + ZEPHIR_CALL_METHOD(&_23$$24, &container, "getshared", NULL, 0, &_24$$24); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&view, &_23$$24); + } + ZEPHIR_INIT_NVAR(&_8); + ZVAL_STRING(&_8, "dispatcher"); + ZEPHIR_CALL_METHOD(&_7, &container, "getshared", NULL, 0, &_8); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&dispatcher, &_7); + ZEPHIR_CALL_METHOD(&_7, &router, "getmodulename", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &dispatcher, "setmodulename", NULL, 0, &_7); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_25, &router, "getnamespacename", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &dispatcher, "setnamespacename", NULL, 0, &_25); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_26, &router, "getcontrollername", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &dispatcher, "setcontrollername", NULL, 0, &_26); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_27, &router, "getactionname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &dispatcher, "setactionname", NULL, 0, &_27); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_28, &router, "getparams", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &dispatcher, "setparams", NULL, 0, &_28); + zephir_check_call_status(); + if (ZEPHIR_IS_TRUE_IDENTICAL(&implicitView)) { + ZEPHIR_CALL_METHOD(NULL, &view, "start", NULL, 0); + zephir_check_call_status(); + } + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_30$$26); + ZVAL_STRING(&_30$$26, "application:beforeHandleRequest"); + ZEPHIR_CALL_METHOD(&_29$$26, &eventsManager, "fire", NULL, 0, &_30$$26, this_ptr, &dispatcher); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_29$$26)) { + RETURN_MM_BOOL(0); + } + } + ZEPHIR_CALL_METHOD(&controller, &dispatcher, "dispatch", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&possibleResponse, &dispatcher, "getreturnedvalue", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&possibleResponse)) { + ZEPHIR_INIT_VAR(&_32$$28); + ZVAL_STRING(&_32$$28, "response"); + ZEPHIR_CALL_METHOD(&_31$$28, &container, "getshared", NULL, 0, &_32$$28); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&response, &_31$$28); + } else { + if (Z_TYPE_P(&possibleResponse) == IS_STRING) { + ZEPHIR_INIT_VAR(&_34$$30); + ZVAL_STRING(&_34$$30, "response"); + ZEPHIR_CALL_METHOD(&_33$$30, &container, "getshared", NULL, 0, &_34$$30); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&response, &_33$$30); + ZEPHIR_CALL_METHOD(NULL, &response, "setcontent", NULL, 0, &possibleResponse); + zephir_check_call_status(); + } else { + _35$$31 = (Z_TYPE_P(&possibleResponse) == IS_OBJECT); + if (_35$$31) { + _35$$31 = (zephir_instance_of_ev(&possibleResponse, phalcon_http_responseinterface_ce)); + } + returnedResponse = _35$$31; + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_36$$32); + ZVAL_STRING(&_36$$32, "application:afterHandleRequest"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_36$$32, this_ptr, &controller); + zephir_check_call_status(); + } + _37$$31 = returnedResponse == 0; + if (_37$$31) { + _37$$31 = ZEPHIR_IS_TRUE_IDENTICAL(&implicitView); + } + if (_37$$31) { + if (Z_TYPE_P(&controller) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&renderStatus); + ZVAL_BOOL(&renderStatus, 1); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_38$$35); + ZVAL_STRING(&_38$$35, "application:viewRender"); + ZEPHIR_CALL_METHOD(&renderStatus, &eventsManager, "fire", NULL, 0, &_38$$35, this_ptr, &view); + zephir_check_call_status(); + } + if (!ZEPHIR_IS_FALSE_IDENTICAL(&renderStatus)) { + ZEPHIR_CALL_METHOD(&_39$$36, &dispatcher, "getcontrollername", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_40$$36, &dispatcher, "getactionname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &view, "render", NULL, 0, &_39$$36, &_40$$36); + zephir_check_call_status(); + } + } + } + if (ZEPHIR_IS_TRUE_IDENTICAL(&implicitView)) { + ZEPHIR_CALL_METHOD(NULL, &view, "finish", NULL, 0); + zephir_check_call_status(); + } + if (returnedResponse == 1) { + ZEPHIR_CPY_WRT(&response, &possibleResponse); + } else { + ZEPHIR_INIT_VAR(&_42$$39); + ZVAL_STRING(&_42$$39, "response"); + ZEPHIR_CALL_METHOD(&_41$$39, &container, "getshared", NULL, 0, &_42$$39); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&response, &_41$$39); + if (ZEPHIR_IS_TRUE_IDENTICAL(&implicitView)) { + ZEPHIR_CALL_METHOD(&_43$$40, &view, "getcontent", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &response, "setcontent", NULL, 0, &_43$$40); + zephir_check_call_status(); + } + } + } + } + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_44$$41); + ZVAL_STRING(&_44$$41, "application:beforeSendResponse"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_44$$41, this_ptr, &response); + zephir_check_call_status(); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("sendHeaders"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_0)) { + ZEPHIR_CALL_METHOD(NULL, &response, "sendheaders", NULL, 0); + zephir_check_call_status(); + } + zephir_read_property(&_45, this_ptr, ZEND_STRL("sendCookies"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_45)) { + ZEPHIR_CALL_METHOD(NULL, &response, "sendcookies", NULL, 0); + zephir_check_call_status(); + } + RETURN_CCTOR(&response); } -static PHP_METHOD(Phalcon_Cache_CacheFactory, __construct) +static PHP_METHOD(Phalcon_Mvc_Application, sendCookiesOnHandleRequest) { - zval *factory, factory_sub; + zval *sendCookies_param = NULL, __$true, __$false; + zend_bool sendCookies; zval *this_ptr = getThis(); - ZVAL_UNDEF(&factory_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_cache_adapterfactory_ce) + Z_PARAM_BOOL(sendCookies) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &factory); + zephir_fetch_params_without_memory_grow(1, 0, &sendCookies_param); + sendCookies = zephir_get_boolval(sendCookies_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("adapterFactory"), factory); + if (sendCookies) { + zephir_update_property_zval(this_ptr, ZEND_STRL("sendCookies"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("sendCookies"), &__$false); + } + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Cache_CacheFactory, load) +static PHP_METHOD(Phalcon_Mvc_Application, sendHeadersOnHandleRequest) { - zend_bool _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_2 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *config = NULL, config_sub, name, options, _3, _4, _1$$3; + zval *sendHeaders_param = NULL, __$true, __$false; + zend_bool sendHeaders; zval *this_ptr = getThis(); - ZVAL_UNDEF(&config_sub); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_1$$3); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(config) + Z_PARAM_BOOL(sendHeaders) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &config); - ZEPHIR_SEPARATE_PARAM(config); + zephir_fetch_params_without_memory_grow(1, 0, &sendHeaders_param); + sendHeaders = zephir_get_boolval(sendHeaders_param); - _0 = Z_TYPE_P(config) == IS_OBJECT; - if (_0) { - _0 = zephir_instance_of_ev(config, phalcon_config_configinterface_ce); - } - if (_0) { - ZEPHIR_CALL_METHOD(&_1$$3, config, "toarray", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(config, &_1$$3); - } - if (UNEXPECTED(Z_TYPE_P(config) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cache_exception_exception_ce, "Config must be array or Phalcon\\Config object", "phalcon/Cache/CacheFactory.zep", 78); - return; - } - if (UNEXPECTED(!(zephir_array_isset_string(config, SL("adapter"))))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cache_exception_exception_ce, "You must provide 'adapter' option in factory config parameter.", "phalcon/Cache/CacheFactory.zep", 84); - return; + if (sendHeaders) { + zephir_update_property_zval(this_ptr, ZEND_STRL("sendHeaders"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("sendHeaders"), &__$false); } - ZEPHIR_OBS_VAR(&name); - zephir_array_fetch_string(&name, config, SL("adapter"), PH_NOISY, "phalcon/Cache/CacheFactory.zep", 87); - ZEPHIR_INIT_VAR(&_3); - array_init(&_3); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "options"); - ZEPHIR_CALL_CE_STATIC(&options, phalcon_helper_arr_ce, "get", &_2, 16, config, &_4, &_3); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "newinstance", NULL, 0, &name, &options); - zephir_check_call_status(); - RETURN_MM(); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Cache_CacheFactory, newInstance) +static PHP_METHOD(Phalcon_Mvc_Application, useImplicitView) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval options; - zval *name_param = NULL, *options_param = NULL, adapter, _0; - zval name; + zval *implicitView_param = NULL, __$true, __$false; + zend_bool implicitView; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&adapter); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&options); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(implicitView) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &name_param, &options_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); - } + zephir_fetch_params_without_memory_grow(1, 0, &implicitView_param); + implicitView = zephir_get_boolval(implicitView_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("adapterFactory"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&adapter, &_0, "newinstance", NULL, 0, &name, &options); - zephir_check_call_status(); - object_init_ex(return_value, phalcon_cache_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 171, &adapter); - zephir_check_call_status(); - RETURN_MM(); + if (implicitView) { + zephir_update_property_zval(this_ptr, ZEND_STRL("implicitView"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("implicitView"), &__$false); + } + RETURN_THISW(); } @@ -42402,30 +39847,29 @@ static PHP_METHOD(Phalcon_Cache_CacheFactory, newInstance) -ZEPHIR_INIT_CLASS(Phalcon_Cache_Adapter_AdapterInterface) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Controller) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Cache\\Adapter, AdapterInterface, phalcon, cache_adapter_adapterinterface, NULL); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc, Controller, phalcon, mvc_controller, phalcon_di_injectable_ce, phalcon_mvc_controller_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - zend_class_implements(phalcon_cache_adapter_adapterinterface_ce, 1, phalcon_storage_adapter_adapterinterface_ce); + zend_class_implements(phalcon_mvc_controller_ce, 1, phalcon_mvc_controllerinterface_ce); return SUCCESS; } +static PHP_METHOD(Phalcon_Mvc_Controller, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Cache_Adapter_Apcu) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cache\\Adapter, Apcu, phalcon, cache_adapter_apcu, phalcon_storage_adapter_apcu_ce, NULL, 0); + ZEPHIR_MM_GROW(); - zend_class_implements(phalcon_cache_adapter_apcu_ce, 1, phalcon_cache_adapter_adapterinterface_ce); - return SUCCESS; + if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("onconstruct")) == SUCCESS)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "onconstruct", NULL, 0); + zephir_check_call_status(); + } + ZEPHIR_MM_RESTORE(); } @@ -42438,11 +39882,10 @@ ZEPHIR_INIT_CLASS(Phalcon_Cache_Adapter_Apcu) -ZEPHIR_INIT_CLASS(Phalcon_Cache_Adapter_Libmemcached) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_ControllerInterface) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cache\\Adapter, Libmemcached, phalcon, cache_adapter_libmemcached, phalcon_storage_adapter_libmemcached_ce, NULL, 0); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc, ControllerInterface, phalcon, mvc_controllerinterface, NULL); - zend_class_implements(phalcon_cache_adapter_libmemcached_ce, 1, phalcon_cache_adapter_adapterinterface_ce); return SUCCESS; } @@ -42456,170 +39899,307 @@ ZEPHIR_INIT_CLASS(Phalcon_Cache_Adapter_Libmemcached) -ZEPHIR_INIT_CLASS(Phalcon_Cache_Adapter_Memory) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Dispatcher) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cache\\Adapter, Memory, phalcon, cache_adapter_memory, phalcon_storage_adapter_memory_ce, NULL, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc, Dispatcher, phalcon, mvc_dispatcher, phalcon_dispatcher_abstractdispatcher_ce, phalcon_mvc_dispatcher_method_entry, 0); - zend_class_implements(phalcon_cache_adapter_memory_ce, 1, phalcon_cache_adapter_adapterinterface_ce); + zend_declare_property_string(phalcon_mvc_dispatcher_ce, SL("defaultAction"), "index", ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_mvc_dispatcher_ce, SL("defaultHandler"), "index", ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_mvc_dispatcher_ce, SL("handlerSuffix"), "Controller", ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_mvc_dispatcher_ce, 1, phalcon_mvc_dispatcherinterface_ce); return SUCCESS; } +static PHP_METHOD(Phalcon_Mvc_Dispatcher, forward) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_2 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *forward_param = NULL, eventsManager, _0, _1$$3; + zval forward; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&forward); + ZVAL_UNDEF(&eventsManager); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(forward) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &forward_param); + zephir_get_arrval(&forward, forward_param); + zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_0); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, "dispatch:beforeForward"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_1$$3, this_ptr, &forward); + zephir_check_call_status(); + } + ZEPHIR_CALL_PARENT(NULL, phalcon_mvc_dispatcher_ce, getThis(), "forward", &_2, 0, &forward); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} -ZEPHIR_INIT_CLASS(Phalcon_Cache_Adapter_Redis) +static PHP_METHOD(Phalcon_Mvc_Dispatcher, getActiveController) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cache\\Adapter, Redis, phalcon, cache_adapter_redis, phalcon_storage_adapter_redis_ce, NULL, 0); + zval *this_ptr = getThis(); - zend_class_implements(phalcon_cache_adapter_redis_ce, 1, phalcon_cache_adapter_adapterinterface_ce); - return SUCCESS; + + + RETURN_MEMBER(getThis(), "activeHandler"); } +static PHP_METHOD(Phalcon_Mvc_Dispatcher, getControllerClass) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H -#endif + ZEPHIR_MM_GROW(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethandlerclass", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); +} +static PHP_METHOD(Phalcon_Mvc_Dispatcher, getControllerName) +{ + zval *this_ptr = getThis(); -ZEPHIR_INIT_CLASS(Phalcon_Cache_Adapter_Stream) + RETURN_MEMBER(getThis(), "handlerName"); +} + +static PHP_METHOD(Phalcon_Mvc_Dispatcher, getLastController) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cache\\Adapter, Stream, phalcon, cache_adapter_stream, phalcon_storage_adapter_stream_ce, NULL, 0); + zval *this_ptr = getThis(); - zend_class_implements(phalcon_cache_adapter_stream_ce, 1, phalcon_cache_adapter_adapterinterface_ce); - return SUCCESS; + + + RETURN_MEMBER(getThis(), "lastHandler"); } +static PHP_METHOD(Phalcon_Mvc_Dispatcher, getPreviousActionName) +{ + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H -#endif + RETURN_MEMBER(getThis(), "previousActionName"); +} +static PHP_METHOD(Phalcon_Mvc_Dispatcher, getPreviousControllerName) +{ + zval *this_ptr = getThis(); + RETURN_MEMBER(getThis(), "previousHandlerName"); +} -ZEPHIR_INIT_CLASS(Phalcon_Cache_Exception_Exception) +static PHP_METHOD(Phalcon_Mvc_Dispatcher, getPreviousNamespaceName) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cache\\Exception, Exception, phalcon, cache_exception_exception, phalcon_exception_ce, NULL, 0); + zval *this_ptr = getThis(); - zend_class_implements(phalcon_cache_exception_exception_ce, 1, zephir_get_internal_ce(SL("psr\\simplecache\\cacheexception"))); - return SUCCESS; -} + RETURN_MEMBER(getThis(), "previousNamespaceName"); +} +static PHP_METHOD(Phalcon_Mvc_Dispatcher, setControllerName) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *controllerName_param = NULL; + zval controllerName; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&controllerName); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(controllerName) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &controllerName_param); + if (UNEXPECTED(Z_TYPE_P(controllerName_param) != IS_STRING && Z_TYPE_P(controllerName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'controllerName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(controllerName_param) == IS_STRING)) { + zephir_get_strval(&controllerName, controllerName_param); + } else { + ZEPHIR_INIT_VAR(&controllerName); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("handlerName"), &controllerName); + ZEPHIR_MM_RESTORE(); +} -ZEPHIR_INIT_CLASS(Phalcon_Cache_Exception_InvalidArgumentException) +static PHP_METHOD(Phalcon_Mvc_Dispatcher, setControllerSuffix) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cache\\Exception, InvalidArgumentException, phalcon, cache_exception_invalidargumentexception, phalcon_exception_ce, NULL, 0); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *controllerSuffix_param = NULL; + zval controllerSuffix; + zval *this_ptr = getThis(); - zend_class_implements(phalcon_cache_exception_invalidargumentexception_ce, 1, zephir_get_internal_ce(SL("psr\\simplecache\\invalidargumentexception"))); - return SUCCESS; -} + ZVAL_UNDEF(&controllerSuffix); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(controllerSuffix) + ZEND_PARSE_PARAMETERS_END(); +#endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &controllerSuffix_param); + if (UNEXPECTED(Z_TYPE_P(controllerSuffix_param) != IS_STRING && Z_TYPE_P(controllerSuffix_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'controllerSuffix' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(controllerSuffix_param) == IS_STRING)) { + zephir_get_strval(&controllerSuffix, controllerSuffix_param); + } else { + ZEPHIR_INIT_VAR(&controllerSuffix); + } -#ifdef HAVE_CONFIG_H + zephir_update_property_zval(this_ptr, ZEND_STRL("handlerSuffix"), &controllerSuffix); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Mvc_Dispatcher, setDefaultController) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *controllerName_param = NULL; + zval controllerName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&controllerName); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(controllerName) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &controllerName_param); + if (UNEXPECTED(Z_TYPE_P(controllerName_param) != IS_STRING && Z_TYPE_P(controllerName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'controllerName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(controllerName_param) == IS_STRING)) { + zephir_get_strval(&controllerName, controllerName_param); + } else { + ZEPHIR_INIT_VAR(&controllerName); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultHandler"), &controllerName); + ZEPHIR_MM_RESTORE(); +} -ZEPHIR_INIT_CLASS(Phalcon_Cli_Console) +static PHP_METHOD(Phalcon_Mvc_Dispatcher, handleException) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cli, Console, phalcon, cli_console, phalcon_application_abstractapplication_ce, phalcon_cli_console_method_entry, 0); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *exception, exception_sub, eventsManager, _0, _1$$3, _2$$3; + zval *this_ptr = getThis(); - zend_declare_property_null(phalcon_cli_console_ce, SL("arguments"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_cli_console_ce, SL("options"), ZEND_ACC_PROTECTED); - phalcon_cli_console_ce->create_object = zephir_init_properties_Phalcon_Cli_Console; + ZVAL_UNDEF(&exception_sub); + ZVAL_UNDEF(&eventsManager); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(exception, zend_ce_exception) + ZEND_PARSE_PARAMETERS_END(); +#endif - return SUCCESS; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &exception); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_0); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "dispatch:beforeException"); + ZEPHIR_CALL_METHOD(&_1$$3, &eventsManager, "fire", NULL, 0, &_2$$3, this_ptr, exception); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_1$$3)) { + RETURN_MM_BOOL(0); + } + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Cli_Console, handle) +static PHP_METHOD(Phalcon_Mvc_Dispatcher, throwDispatchException) { - zend_bool _9; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_3 = NULL; - zval *arguments_param = NULL, __$false, className, container, dispatcher, eventsManager, module, moduleName, moduleObject, modules, path, router, task, _0, _7, _8, _20, _21, _22, _23, _1$$3, _2$$3, _4$$3, _5$$4, _6$$4, _10$$6, _11$$10, _12$$10, _13$$9, _14$$12, _15$$12, _16$$16, _17$$16, _18$$18, _19$$18, _24$$20, _25$$20, _26$$22; - zval arguments; + zend_long exceptionCode, ZEPHIR_LAST_CALL_STATUS; + zval *message_param = NULL, *exceptionCode_param = NULL, container, response, exception, _0, _6, _7, _1$$3, _2$$3, _4$$3, _5$$3; + zval message; zval *this_ptr = getThis(); - ZVAL_UNDEF(&arguments); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&className); + ZVAL_UNDEF(&message); ZVAL_UNDEF(&container); - ZVAL_UNDEF(&dispatcher); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&module); - ZVAL_UNDEF(&moduleName); - ZVAL_UNDEF(&moduleObject); - ZVAL_UNDEF(&modules); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&router); - ZVAL_UNDEF(&task); + ZVAL_UNDEF(&response); + ZVAL_UNDEF(&exception); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_6); ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_20); - ZVAL_UNDEF(&_21); - ZVAL_UNDEF(&_22); - ZVAL_UNDEF(&_23); ZVAL_UNDEF(&_1$$3); ZVAL_UNDEF(&_2$$3); ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_10$$6); - ZVAL_UNDEF(&_11$$10); - ZVAL_UNDEF(&_12$$10); - ZVAL_UNDEF(&_13$$9); - ZVAL_UNDEF(&_14$$12); - ZVAL_UNDEF(&_15$$12); - ZVAL_UNDEF(&_16$$16); - ZVAL_UNDEF(&_17$$16); - ZVAL_UNDEF(&_18$$18); - ZVAL_UNDEF(&_19$$18); - ZVAL_UNDEF(&_24$$20); - ZVAL_UNDEF(&_25$$20); - ZVAL_UNDEF(&_26$$22); + ZVAL_UNDEF(&_5$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(message) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY_OR_NULL(arguments) + Z_PARAM_LONG(exceptionCode) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &arguments_param); - if (!arguments_param) { - ZEPHIR_INIT_VAR(&arguments); + zephir_fetch_params(1, 1, 1, &message_param, &exceptionCode_param); + if (UNEXPECTED(Z_TYPE_P(message_param) != IS_STRING && Z_TYPE_P(message_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'message' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(message_param) == IS_STRING)) { + zephir_get_strval(&message, message_param); } else { - zephir_get_arrval(&arguments, arguments_param); + ZEPHIR_INIT_VAR(&message); + } + if (!exceptionCode_param) { + exceptionCode = 0; + } else { + exceptionCode = zephir_get_intval(exceptionCode_param); } @@ -42627,475 +40207,67 @@ static PHP_METHOD(Phalcon_Cli_Console, handle) ZEPHIR_CPY_WRT(&container, &_0); if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_cli_console_exception_ce); + object_init_ex(&_1$$3, phalcon_mvc_dispatcher_exception_ce); ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "internal services"); - ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_cli_console_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); + ZVAL_STRING(&_4$$3, "the 'response' service"); + ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_mvc_dispatcher_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); + ZVAL_LONG(&_5$$3, 0); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3, &_5$$3); zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Cli/Console.zep", 47); + zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Dispatcher.zep", 228); ZEPHIR_MM_RESTORE(); return; } - zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_0); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_6$$4); - ZVAL_STRING(&_6$$4, "console:boot"); - ZEPHIR_CALL_METHOD(&_5$$4, &eventsManager, "fire", NULL, 0, &_6$$4, this_ptr); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_5$$4)) { - RETURN_MM_BOOL(0); - } - } - ZEPHIR_INIT_VAR(&_8); - ZVAL_STRING(&_8, "router"); - ZEPHIR_CALL_METHOD(&_7, &container, "getshared", NULL, 0, &_8); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&router, &_7); - _9 = !(zephir_fast_count_int(&arguments)); - if (_9) { - zephir_read_property(&_0, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); - _9 = zephir_is_true(&_0); - } - if (_9) { - zephir_read_property(&_10$$6, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &router, "handle", NULL, 0, &_10$$6); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(NULL, &router, "handle", NULL, 0, &arguments); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(&moduleName, &router, "getmodulename", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&moduleName))) { - ZEPHIR_OBS_NVAR(&moduleName); - zephir_read_property(&moduleName, this_ptr, ZEND_STRL("defaultModule"), PH_NOISY_CC); - } - if (zephir_is_true(&moduleName)) { - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_12$$10); - ZVAL_STRING(&_12$$10, "console:beforeStartModule"); - ZEPHIR_CALL_METHOD(&_11$$10, &eventsManager, "fire", NULL, 0, &_12$$10, this_ptr, &moduleName); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_11$$10)) { - RETURN_MM_BOOL(0); - } - } - zephir_read_property(&_13$$9, this_ptr, ZEND_STRL("modules"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&modules, &_13$$9); - if (UNEXPECTED(!(zephir_array_isset(&modules, &moduleName)))) { - ZEPHIR_INIT_VAR(&_14$$12); - object_init_ex(&_14$$12, phalcon_cli_console_exception_ce); - ZEPHIR_INIT_VAR(&_15$$12); - ZEPHIR_CONCAT_SVS(&_15$$12, "Module '", &moduleName, "' isn't registered in the console container"); - ZEPHIR_CALL_METHOD(NULL, &_14$$12, "__construct", NULL, 8, &_15$$12); - zephir_check_call_status(); - zephir_throw_exception_debug(&_14$$12, "phalcon/Cli/Console.zep", 91); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_VAR(&module); - zephir_array_fetch(&module, &modules, &moduleName, PH_NOISY, "phalcon/Cli/Console.zep", 94); - if (UNEXPECTED(Z_TYPE_P(&module) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_console_exception_ce, "Invalid module definition path", "phalcon/Cli/Console.zep", 97); - return; - } - ZEPHIR_OBS_VAR(&className); - if (!(zephir_array_isset_string_fetch(&className, &module, SL("className"), 0))) { - ZEPHIR_INIT_NVAR(&className); - ZVAL_STRING(&className, "Module"); - } - ZEPHIR_OBS_VAR(&path); - if (zephir_array_isset_string_fetch(&path, &module, SL("path"), 0)) { - if (UNEXPECTED(!((zephir_file_exists(&path) == SUCCESS)))) { - ZEPHIR_INIT_VAR(&_16$$16); - object_init_ex(&_16$$16, phalcon_cli_console_exception_ce); - ZEPHIR_INIT_VAR(&_17$$16); - ZEPHIR_CONCAT_SVS(&_17$$16, "Module definition path '", &path, "' doesn't exist"); - ZEPHIR_CALL_METHOD(NULL, &_16$$16, "__construct", NULL, 8, &_17$$16); - zephir_check_call_status(); - zephir_throw_exception_debug(&_16$$16, "phalcon/Cli/Console.zep", 108); - ZEPHIR_MM_RESTORE(); - return; - } - if (!(zephir_class_exists(&className, zephir_is_true(&__$false) ))) { - if (zephir_require_zval(&path) == FAILURE) { - RETURN_MM_NULL(); - } - } - } - ZEPHIR_CALL_METHOD(&moduleObject, &container, "get", NULL, 0, &className); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &moduleObject, "registerautoloaders", NULL, 0, &container); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &moduleObject, "registerservices", NULL, 0, &container); - zephir_check_call_status(); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_19$$18); - ZVAL_STRING(&_19$$18, "console:afterStartModule"); - ZEPHIR_CALL_METHOD(&_18$$18, &eventsManager, "fire", NULL, 0, &_19$$18, this_ptr, &moduleObject); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_18$$18)) { - RETURN_MM_BOOL(0); - } - } - } - ZEPHIR_INIT_NVAR(&_8); - ZVAL_STRING(&_8, "dispatcher"); - ZEPHIR_CALL_METHOD(&_7, &container, "getshared", NULL, 0, &_8); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&dispatcher, &_7); - ZEPHIR_CALL_METHOD(&_7, &router, "getmodulename", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &dispatcher, "setmodulename", NULL, 0, &_7); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_20, &router, "gettaskname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &dispatcher, "settaskname", NULL, 0, &_20); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_21, &router, "getactionname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &dispatcher, "setactionname", NULL, 0, &_21); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_22, &router, "getparams", NULL, 0); + ZEPHIR_INIT_VAR(&_7); + ZVAL_STRING(&_7, "response"); + ZEPHIR_CALL_METHOD(&_6, &container, "getshared", NULL, 0, &_7); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &dispatcher, "setparams", NULL, 0, &_22); + ZEPHIR_CPY_WRT(&response, &_6); + ZVAL_LONG(&_0, 404); + ZEPHIR_INIT_NVAR(&_7); + ZVAL_STRING(&_7, "Not Found"); + ZEPHIR_CALL_METHOD(NULL, &response, "setstatuscode", NULL, 0, &_0, &_7); zephir_check_call_status(); - zephir_read_property(&_23, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &dispatcher, "setoptions", NULL, 0, &_23); + ZEPHIR_INIT_VAR(&exception); + object_init_ex(&exception, phalcon_mvc_dispatcher_exception_ce); + ZVAL_LONG(&_0, exceptionCode); + ZEPHIR_CALL_METHOD(NULL, &exception, "__construct", NULL, 8, &message, &_0); zephir_check_call_status(); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_25$$20); - ZVAL_STRING(&_25$$20, "console:beforeHandleTask"); - ZEPHIR_CALL_METHOD(&_24$$20, &eventsManager, "fire", NULL, 0, &_25$$20, this_ptr, &dispatcher); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_24$$20)) { - RETURN_MM_BOOL(0); - } - } - ZEPHIR_CALL_METHOD(&task, &dispatcher, "dispatch", NULL, 0); + ZEPHIR_CALL_METHOD(&_6, this_ptr, "handleexception", NULL, 0, &exception); zephir_check_call_status(); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_26$$22); - ZVAL_STRING(&_26$$22, "console:afterHandleTask"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_26$$22, this_ptr, &task); - zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_6)) { + RETURN_MM_BOOL(0); } - RETURN_CCTOR(&task); + zephir_throw_exception_debug(&exception, "phalcon/Mvc/Dispatcher.zep", 250); + ZEPHIR_MM_RESTORE(); + return; } -static PHP_METHOD(Phalcon_Cli_Console, setArgument) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_6 = NULL, *_44 = 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, _3$$5, _4$$5, _5$$5, _7$$6, _8$$7, _9$$7, _10$$7, _11$$7, _12$$7, _13$$7, _14$$7, _15$$8, _16$$8, _17$$8, _18$$9, _19$$9, _20$$9, _21$$10, _22$$10, _23$$14, _24$$14, _25$$14, _26$$15, _27$$16, _28$$16, _29$$16, _30$$16, _31$$16, _32$$16, _33$$16, _34$$17, _35$$17, _36$$17, _37$$18, _38$$18, _39$$18, _40$$19, _41$$19, _42$$22, _43$$22, _45$$24, _46$$25, _47$$26; - 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); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_7$$6); - 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$$7); - ZVAL_UNDEF(&_15$$8); - ZVAL_UNDEF(&_16$$8); - ZVAL_UNDEF(&_17$$8); - ZVAL_UNDEF(&_18$$9); - ZVAL_UNDEF(&_19$$9); - ZVAL_UNDEF(&_20$$9); - ZVAL_UNDEF(&_21$$10); - ZVAL_UNDEF(&_22$$10); - ZVAL_UNDEF(&_23$$14); - ZVAL_UNDEF(&_24$$14); - ZVAL_UNDEF(&_25$$14); - ZVAL_UNDEF(&_26$$15); - ZVAL_UNDEF(&_27$$16); - ZVAL_UNDEF(&_28$$16); - ZVAL_UNDEF(&_29$$16); - ZVAL_UNDEF(&_30$$16); - ZVAL_UNDEF(&_31$$16); - ZVAL_UNDEF(&_32$$16); - ZVAL_UNDEF(&_33$$16); - ZVAL_UNDEF(&_34$$17); - ZVAL_UNDEF(&_35$$17); - ZVAL_UNDEF(&_36$$17); - ZVAL_UNDEF(&_37$$18); - ZVAL_UNDEF(&_38$$18); - ZVAL_UNDEF(&_39$$18); - ZVAL_UNDEF(&_40$$19); - ZVAL_UNDEF(&_41$$19); - ZVAL_UNDEF(&_42$$22); - ZVAL_UNDEF(&_43$$22); - ZVAL_UNDEF(&_45$$24); - ZVAL_UNDEF(&_46$$25); - ZVAL_UNDEF(&_47$$26); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 3) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY_OR_NULL(arguments) - Z_PARAM_BOOL(str) - Z_PARAM_BOOL(shift) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 3, &arguments_param, &str_param, &shift_param); - if (!arguments_param) { - ZEPHIR_INIT_VAR(&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")); - 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")); - 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)) ? 1 : 0); - } - if (_0) { - ZEPHIR_MAKE_REF(&arguments); - ZEPHIR_CALL_FUNCTION(NULL, "array_shift", NULL, 24, &arguments); - ZEPHIR_UNREF(&arguments); - zephir_check_call_status(); - } - zephir_is_iterable(&arguments, 0, "phalcon/Cli/Console.zep", 189); - if (Z_TYPE_P(&arguments) == IS_ARRAY) { - 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(&_3$$5); - ZVAL_STRING(&_3$$5, "--"); - ZVAL_LONG(&_4$$5, 2); - ZEPHIR_CALL_FUNCTION(&_5$$5, "strncmp", &_6, 172, &arg, &_3$$5, &_4$$5); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&_5$$5, 0)) { - ZEPHIR_INIT_NVAR(&_7$$6); - ZVAL_STRING(&_7$$6, "="); - ZEPHIR_INIT_NVAR(&pos); - zephir_fast_strpos(&pos, &arg, &_7$$6, 0 ); - if (zephir_is_true(&pos)) { - ZEPHIR_INIT_NVAR(&_8$$7); - ZVAL_LONG(&_9$$7, (zephir_get_numberval(&pos) + 1)); - ZEPHIR_INIT_NVAR(&_10$$7); - zephir_substr(&_10$$7, &arg, zephir_get_intval(&_9$$7), 0, ZEPHIR_SUBSTR_NO_LENGTH); - zephir_fast_trim(&_8$$7, &_10$$7, NULL , ZEPHIR_TRIM_BOTH); - ZEPHIR_INIT_NVAR(&_11$$7); - ZVAL_LONG(&_12$$7, 2); - ZVAL_LONG(&_13$$7, (zephir_get_numberval(&pos) - 2)); - ZEPHIR_INIT_NVAR(&_14$$7); - zephir_substr(&_14$$7, &arg, 2 , zephir_get_intval(&_13$$7), 0); - zephir_fast_trim(&_11$$7, &_14$$7, NULL , ZEPHIR_TRIM_BOTH); - zephir_array_update_zval(&opts, &_11$$7, &_8$$7, PH_COPY | PH_SEPARATE); - } else { - ZEPHIR_INIT_NVAR(&_15$$8); - ZVAL_LONG(&_16$$8, 2); - ZEPHIR_INIT_NVAR(&_17$$8); - zephir_substr(&_17$$8, &arg, 2 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - zephir_fast_trim(&_15$$8, &_17$$8, NULL , ZEPHIR_TRIM_BOTH); - zephir_array_update_zval(&opts, &_15$$8, &__$true, PH_COPY | PH_SEPARATE); - } - } else { - ZEPHIR_INIT_NVAR(&_18$$9); - ZVAL_STRING(&_18$$9, "-"); - ZVAL_LONG(&_19$$9, 1); - ZEPHIR_CALL_FUNCTION(&_20$$9, "strncmp", &_6, 172, &arg, &_18$$9, &_19$$9); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&_20$$9, 0)) { - ZVAL_LONG(&_21$$10, 1); - ZEPHIR_INIT_NVAR(&_22$$10); - zephir_substr(&_22$$10, &arg, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - zephir_array_update_zval(&opts, &_22$$10, &__$true, PH_COPY | PH_SEPARATE); - } else { - zephir_array_append(&args, &arg, PH_SEPARATE, "phalcon/Cli/Console.zep", 181); - } - } - } else { - zephir_array_append(&args, &arg, PH_SEPARATE, "phalcon/Cli/Console.zep", 185); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &arguments, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &arguments, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&arg, &arguments, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&arg) == IS_STRING) { - ZEPHIR_INIT_NVAR(&_23$$14); - ZVAL_STRING(&_23$$14, "--"); - ZVAL_LONG(&_24$$14, 2); - ZEPHIR_CALL_FUNCTION(&_25$$14, "strncmp", &_6, 172, &arg, &_23$$14, &_24$$14); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&_25$$14, 0)) { - ZEPHIR_INIT_NVAR(&_26$$15); - ZVAL_STRING(&_26$$15, "="); - ZEPHIR_INIT_NVAR(&pos); - zephir_fast_strpos(&pos, &arg, &_26$$15, 0 ); - if (zephir_is_true(&pos)) { - ZEPHIR_INIT_NVAR(&_27$$16); - ZVAL_LONG(&_28$$16, (zephir_get_numberval(&pos) + 1)); - ZEPHIR_INIT_NVAR(&_29$$16); - zephir_substr(&_29$$16, &arg, zephir_get_intval(&_28$$16), 0, ZEPHIR_SUBSTR_NO_LENGTH); - zephir_fast_trim(&_27$$16, &_29$$16, NULL , ZEPHIR_TRIM_BOTH); - ZEPHIR_INIT_NVAR(&_30$$16); - ZVAL_LONG(&_31$$16, 2); - ZVAL_LONG(&_32$$16, (zephir_get_numberval(&pos) - 2)); - ZEPHIR_INIT_NVAR(&_33$$16); - zephir_substr(&_33$$16, &arg, 2 , zephir_get_intval(&_32$$16), 0); - zephir_fast_trim(&_30$$16, &_33$$16, NULL , ZEPHIR_TRIM_BOTH); - zephir_array_update_zval(&opts, &_30$$16, &_27$$16, PH_COPY | PH_SEPARATE); - } else { - ZEPHIR_INIT_NVAR(&_34$$17); - ZVAL_LONG(&_35$$17, 2); - ZEPHIR_INIT_NVAR(&_36$$17); - zephir_substr(&_36$$17, &arg, 2 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - zephir_fast_trim(&_34$$17, &_36$$17, NULL , ZEPHIR_TRIM_BOTH); - zephir_array_update_zval(&opts, &_34$$17, &__$true, PH_COPY | PH_SEPARATE); - } - } else { - ZEPHIR_INIT_NVAR(&_37$$18); - ZVAL_STRING(&_37$$18, "-"); - ZVAL_LONG(&_38$$18, 1); - ZEPHIR_CALL_FUNCTION(&_39$$18, "strncmp", &_6, 172, &arg, &_37$$18, &_38$$18); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&_39$$18, 0)) { - ZVAL_LONG(&_40$$19, 1); - ZEPHIR_INIT_NVAR(&_41$$19); - zephir_substr(&_41$$19, &arg, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - zephir_array_update_zval(&opts, &_41$$19, &__$true, PH_COPY | PH_SEPARATE); - } else { - zephir_array_append(&args, &arg, PH_SEPARATE, "phalcon/Cli/Console.zep", 181); - } - } - } else { - zephir_array_append(&args, &arg, PH_SEPARATE, "phalcon/Cli/Console.zep", 185); - } - ZEPHIR_CALL_METHOD(NULL, &arguments, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&arg); - if (str) { - ZEPHIR_INIT_VAR(&_42$$22); - ZEPHIR_CALL_CE_STATIC(&_43$$22, phalcon_cli_router_route_ce, "getdelimiter", &_44, 0); - zephir_check_call_status(); - zephir_fast_join(&_42$$22, &_43$$22, &args); - zephir_update_property_zval(this_ptr, ZEND_STRL("arguments"), &_42$$22); - } else { - if (zephir_fast_count_int(&args)) { - ZEPHIR_MAKE_REF(&args); - ZEPHIR_CALL_FUNCTION(&_45$$24, "array_shift", NULL, 24, &args); - ZEPHIR_UNREF(&args); - zephir_check_call_status(); - zephir_array_update_string(&handleArgs, SL("task"), &_45$$24, PH_COPY | PH_SEPARATE); - } - if (zephir_fast_count_int(&args)) { - ZEPHIR_MAKE_REF(&args); - ZEPHIR_CALL_FUNCTION(&_46$$25, "array_shift", NULL, 24, &args); - ZEPHIR_UNREF(&args); - zephir_check_call_status(); - zephir_array_update_string(&handleArgs, SL("action"), &_46$$25, PH_COPY | PH_SEPARATE); - } - if (zephir_fast_count_int(&args)) { - ZEPHIR_INIT_VAR(&_47$$26); - zephir_fast_array_merge(&_47$$26, &handleArgs, &args); - ZEPHIR_CPY_WRT(&handleArgs, &_47$$26); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("arguments"), &handleArgs); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &opts); - RETURN_THIS(); -} -zend_object *zephir_init_properties_Phalcon_Cli_Console(zend_class_entry *class_type) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_DispatcherInterface) { - zval _0, _2, _4, _1$$3, _3$$4, _5$$5; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc, DispatcherInterface, phalcon, mvc_dispatcherinterface, phalcon_mvc_dispatcherinterface_method_entry); - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("modules"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("modules"), &_3$$4); - } - zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_4) == IS_NULL) { - ZEPHIR_INIT_VAR(&_5$$5); - array_init(&_5$$5); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("arguments"), &_5$$5); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } + zend_class_implements(phalcon_mvc_dispatcherinterface_ce, 1, phalcon_dispatcher_dispatcherinterface_ce); + return SUCCESS; } +ZEPHIR_DOC_METHOD(Phalcon_Mvc_DispatcherInterface, getActiveController); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_DispatcherInterface, getControllerName); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_DispatcherInterface, getLastController); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_DispatcherInterface, setControllerSuffix); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_DispatcherInterface, setControllerName); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_DispatcherInterface, setDefaultController); @@ -43106,1611 +40278,2134 @@ zend_object *zephir_init_properties_Phalcon_Cli_Console(zend_class_entry *class_ -ZEPHIR_INIT_CLASS(Phalcon_Cli_Dispatcher) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_EntityInterface) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cli, Dispatcher, phalcon, cli_dispatcher, phalcon_dispatcher_abstractdispatcher_ce, phalcon_cli_dispatcher_method_entry, 0); - - zend_declare_property_string(phalcon_cli_dispatcher_ce, SL("defaultHandler"), "main", ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_cli_dispatcher_ce, SL("defaultAction"), "main", ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_cli_dispatcher_ce, SL("handlerSuffix"), "Task", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_cli_dispatcher_ce, SL("options"), ZEND_ACC_PROTECTED); - phalcon_cli_dispatcher_ce->create_object = zephir_init_properties_Phalcon_Cli_Dispatcher; + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc, EntityInterface, phalcon, mvc_entityinterface, phalcon_mvc_entityinterface_method_entry); - zend_class_implements(phalcon_cli_dispatcher_ce, 1, phalcon_cli_dispatcherinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Cli_Dispatcher, callActionMethod) -{ - zval _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval actionMethod; - zval *handler, handler_sub, *actionMethod_param = NULL, params, *params_param = NULL, _0, _1, _2; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&handler_sub); - ZVAL_UNDEF(¶ms); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&actionMethod); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_ZVAL(handler) - Z_PARAM_STR(actionMethod) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(params) - ZEND_PARSE_PARAMETERS_END(); -#endif - +ZEPHIR_DOC_METHOD(Phalcon_Mvc_EntityInterface, readAttribute); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_EntityInterface, writeAttribute); - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &handler, &actionMethod_param, ¶ms_param); - zephir_get_strval(&actionMethod, actionMethod_param); - if (!params_param) { - ZEPHIR_INIT_VAR(¶ms); - array_init(¶ms); - } else { - ZEPHIR_OBS_COPY_OR_DUP(¶ms, params_param); - } - ZEPHIR_CALL_FUNCTION(&_0, "array_values", NULL, 12, ¶ms); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(¶ms, &_0); - ZEPHIR_INIT_VAR(&_1); - zephir_read_property(&_2, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - zephir_fast_array_merge(&_1, ¶ms, &_2); - ZEPHIR_CPY_WRT(¶ms, &_1); - ZEPHIR_INIT_VAR(&_3); - zephir_create_array(&_3, 2, 0); - zephir_array_fast_append(&_3, handler); - zephir_array_fast_append(&_3, &actionMethod); - ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, &_3, ¶ms); - zephir_check_call_status(); - RETURN_MM(); -} +#ifdef HAVE_CONFIG_H +#endif -static PHP_METHOD(Phalcon_Cli_Dispatcher, getActiveTask) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "activeHandler"); -} -static PHP_METHOD(Phalcon_Cli_Dispatcher, getLastTask) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Micro) { - zval *this_ptr = getThis(); - + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc, Micro, phalcon, mvc_micro, phalcon_di_injectable_ce, phalcon_mvc_micro_method_entry, 0); + zend_declare_property_null(phalcon_mvc_micro_ce, SL("activeHandler"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_micro_ce, SL("afterBindingHandlers"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_micro_ce, SL("afterHandlers"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_micro_ce, SL("beforeHandlers"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_micro_ce, SL("container"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_micro_ce, SL("errorHandler"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_micro_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_micro_ce, SL("finishHandlers"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_micro_ce, SL("handlers"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_micro_ce, SL("modelBinder"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_micro_ce, SL("notFoundHandler"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_micro_ce, SL("responseHandler"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_micro_ce, SL("returnedValue"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_micro_ce, SL("router"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_micro_ce, SL("stopped"), 0, ZEND_ACC_PROTECTED); + phalcon_mvc_micro_ce->create_object = zephir_init_properties_Phalcon_Mvc_Micro; - RETURN_MEMBER(getThis(), "lastHandler"); + zend_class_implements(phalcon_mvc_micro_ce, 1, zend_ce_arrayaccess); + zend_class_implements(phalcon_mvc_micro_ce, 1, phalcon_events_eventsawareinterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Cli_Dispatcher, getOption) +static PHP_METHOD(Phalcon_Mvc_Micro, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_2 = NULL; - zval *option, option_sub, *filters = NULL, filters_sub, *defaultValue = NULL, defaultValue_sub, __$null, options, filter, optionValue, container, _0, _5, _6, _1$$5, _3$$5, _4$$5; + zval *container = NULL, container_sub, __$null; zval *this_ptr = getThis(); - ZVAL_UNDEF(&option_sub); - ZVAL_UNDEF(&filters_sub); - ZVAL_UNDEF(&defaultValue_sub); + ZVAL_UNDEF(&container_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&filter); - ZVAL_UNDEF(&optionValue); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_1$$5); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_4$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ZVAL(option) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(filters) - Z_PARAM_ZVAL_OR_NULL(defaultValue) + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(container, phalcon_di_diinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &option, &filters, &defaultValue); - if (!filters) { - filters = &filters_sub; - filters = &__$null; - } - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; + zephir_fetch_params(1, 0, 1, &container); + if (!container) { + container = &container_sub; + container = &__$null; } - zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&options, &_0); - ZEPHIR_OBS_VAR(&optionValue); - if (!(zephir_array_isset_fetch(&optionValue, &options, option, 0))) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - if (Z_TYPE_P(filters) == IS_NULL) { - RETURN_CCTOR(&optionValue); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - if (Z_TYPE_P(&container) != IS_OBJECT) { - ZEPHIR_INIT_VAR(&_3$$5); - ZVAL_STRING(&_3$$5, "the 'filter' service"); - ZEPHIR_CALL_CE_STATIC(&_1$$5, phalcon_cli_dispatcher_exception_ce, "containerservicenotfound", &_2, 0, &_3$$5); - zephir_check_call_status(); - ZVAL_LONG(&_4$$5, 0); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "throwdispatchexception", NULL, 0, &_1$$5, &_4$$5); + if (Z_TYPE_P(container) != IS_NULL) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setdi", NULL, 0, container); zephir_check_call_status(); } - ZEPHIR_INIT_VAR(&_6); - ZVAL_STRING(&_6, "filter"); - ZEPHIR_CALL_METHOD(&_5, &container, "getshared", NULL, 0, &_6); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&filter, &_5); - ZEPHIR_RETURN_CALL_METHOD(&filter, "sanitize", NULL, 0, &optionValue, filters); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Cli_Dispatcher, getOptions) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "options"); -} - -static PHP_METHOD(Phalcon_Cli_Dispatcher, getTaskName) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "handlerName"); -} - -static PHP_METHOD(Phalcon_Cli_Dispatcher, getTaskSuffix) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "handlerSuffix"); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Cli_Dispatcher, hasOption) +static PHP_METHOD(Phalcon_Mvc_Micro, after) { - zval *option, option_sub, _0; + zval *handler, handler_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&option_sub); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&handler_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(option) + Z_PARAM_ZVAL(handler) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &option); + zephir_fetch_params_without_memory_grow(1, 0, &handler); - zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - RETURN_BOOL(zephir_array_isset(&_0, option)); + zephir_update_property_array_append(this_ptr, SL("afterHandlers"), handler); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Cli_Dispatcher, setDefaultTask) +static PHP_METHOD(Phalcon_Mvc_Micro, afterBinding) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *taskName_param = NULL; - zval taskName; + zval *handler, handler_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&taskName); + ZVAL_UNDEF(&handler_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(taskName) + Z_PARAM_ZVAL(handler) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &taskName_param); - zephir_get_strval(&taskName, taskName_param); + zephir_fetch_params_without_memory_grow(1, 0, &handler); - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultHandler"), &taskName); - ZEPHIR_MM_RESTORE(); + zephir_update_property_array_append(this_ptr, SL("afterBindingHandlers"), handler); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Cli_Dispatcher, setOptions) +static PHP_METHOD(Phalcon_Mvc_Micro, before) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *options_param = NULL; - zval options; + zval *handler, handler_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&options); + ZVAL_UNDEF(&handler_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(options) + Z_PARAM_ZVAL(handler) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &options_param); - zephir_get_arrval(&options, options_param); + zephir_fetch_params_without_memory_grow(1, 0, &handler); - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); - ZEPHIR_MM_RESTORE(); + zephir_update_property_array_append(this_ptr, SL("beforeHandlers"), handler); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Cli_Dispatcher, setTaskName) +static PHP_METHOD(Phalcon_Mvc_Micro, delete) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *taskName_param = NULL; - zval taskName; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *routePattern_param = NULL, *handler, handler_sub, router, route, _0; + zval routePattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&taskName); + ZVAL_UNDEF(&routePattern); + ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&router); + ZVAL_UNDEF(&route); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(taskName) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(routePattern) + Z_PARAM_ZVAL(handler) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &taskName_param); - zephir_get_strval(&taskName, taskName_param); + zephir_fetch_params(1, 2, 0, &routePattern_param, &handler); + if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { + zephir_get_strval(&routePattern, routePattern_param); + } else { + ZEPHIR_INIT_VAR(&routePattern); + } - zephir_update_property_zval(this_ptr, ZEND_STRL("handlerName"), &taskName); - ZEPHIR_MM_RESTORE(); + ZEPHIR_CALL_METHOD(&router, this_ptr, "getrouter", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&route, &router, "adddelete", NULL, 0, &routePattern); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, &route, "getrouteid", NULL, 0); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("handlers"), &_0, handler); + RETURN_CCTOR(&route); } -static PHP_METHOD(Phalcon_Cli_Dispatcher, setTaskSuffix) +static PHP_METHOD(Phalcon_Mvc_Micro, error) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *taskSuffix_param = NULL; - zval taskSuffix; + zval *handler, handler_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&taskSuffix); + ZVAL_UNDEF(&handler_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(taskSuffix) + Z_PARAM_ZVAL(handler) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &taskSuffix_param); - zephir_get_strval(&taskSuffix, taskSuffix_param); + zephir_fetch_params_without_memory_grow(1, 0, &handler); - zephir_update_property_zval(this_ptr, ZEND_STRL("handlerSuffix"), &taskSuffix); - ZEPHIR_MM_RESTORE(); + zephir_update_property_zval(this_ptr, ZEND_STRL("errorHandler"), handler); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Cli_Dispatcher, handleException) +static PHP_METHOD(Phalcon_Mvc_Micro, finish) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *exception, exception_sub, eventsManager, _0, _1$$3, _2$$3; + zval *handler, handler_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&exception_sub); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&handler_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(exception, zend_ce_exception) + Z_PARAM_ZVAL(handler) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &exception); + zephir_fetch_params_without_memory_grow(1, 0, &handler); - zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_0); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "dispatch:beforeException"); - ZEPHIR_CALL_METHOD(&_1$$3, &eventsManager, "fire", NULL, 0, &_2$$3, this_ptr, exception); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_1$$3)) { - RETURN_MM_BOOL(0); - } - } - ZEPHIR_MM_RESTORE(); + zephir_update_property_array_append(this_ptr, SL("finishHandlers"), handler); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Cli_Dispatcher, throwDispatchException) +static PHP_METHOD(Phalcon_Mvc_Micro, get) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long exceptionCode, ZEPHIR_LAST_CALL_STATUS; - zval *message_param = NULL, *exceptionCode_param = NULL, exception, _0, _1; - zval message; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *routePattern_param = NULL, *handler, handler_sub, router, route, _0; + zval routePattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&exception); + ZVAL_UNDEF(&routePattern); + ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&router); + ZVAL_UNDEF(&route); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(message) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(exceptionCode) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(routePattern) + Z_PARAM_ZVAL(handler) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &message_param, &exceptionCode_param); - zephir_get_strval(&message, message_param); - if (!exceptionCode_param) { - exceptionCode = 0; + zephir_fetch_params(1, 2, 0, &routePattern_param, &handler); + if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { + zephir_get_strval(&routePattern, routePattern_param); } else { - exceptionCode = zephir_get_intval(exceptionCode_param); + ZEPHIR_INIT_VAR(&routePattern); } - ZEPHIR_INIT_VAR(&exception); - object_init_ex(&exception, phalcon_cli_dispatcher_exception_ce); - ZVAL_LONG(&_0, exceptionCode); - ZEPHIR_CALL_METHOD(NULL, &exception, "__construct", NULL, 8, &message, &_0); + ZEPHIR_CALL_METHOD(&router, this_ptr, "getrouter", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "handleexception", NULL, 0, &exception); + ZEPHIR_CALL_METHOD(&route, &router, "addget", NULL, 0, &routePattern); zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_1)) { - RETURN_MM_BOOL(0); - } - zephir_throw_exception_debug(&exception, "phalcon/Cli/Dispatcher.zep", 221); - ZEPHIR_MM_RESTORE(); - return; + ZEPHIR_CALL_METHOD(&_0, &route, "getrouteid", NULL, 0); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("handlers"), &_0, handler); + RETURN_CCTOR(&route); } -zend_object *zephir_init_properties_Phalcon_Cli_Dispatcher(zend_class_entry *class_type) +static PHP_METHOD(Phalcon_Mvc_Micro, getActiveHandler) { - zval _0, _2, _4, _6, _8, _1$$3, _3$$4, _5$$5, _7$$6, _9$$7; + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "activeHandler"); +} + +static PHP_METHOD(Phalcon_Mvc_Micro, getBoundModels) +{ + zval modelBinder, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_9$$7); - + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("params"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("handlerHashes"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("handlerHashes"), &_3$$4); - } - zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("camelCaseMap"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_4) == IS_NULL) { - ZEPHIR_INIT_VAR(&_5$$5); - array_init(&_5$$5); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("camelCaseMap"), &_5$$5); - } - zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("activeMethodMap"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_6) == IS_NULL) { - ZEPHIR_INIT_VAR(&_7$$6); - array_init(&_7$$6); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("activeMethodMap"), &_7$$6); - } - zephir_read_property_ex(&_8, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_8) == IS_NULL) { - ZEPHIR_INIT_VAR(&_9$$7); - array_init(&_9$$7); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_9$$7); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); + ZVAL_UNDEF(&modelBinder); + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelBinder"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&modelBinder, &_0); + if (Z_TYPE_P(&modelBinder) == IS_NULL) { + array_init(return_value); + RETURN_MM(); } + ZEPHIR_RETURN_CALL_METHOD(&modelBinder, "getboundmodels", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } +static PHP_METHOD(Phalcon_Mvc_Micro, getEventsManager) +{ + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H -#endif + RETURN_MEMBER(getThis(), "eventsManager"); +} +static PHP_METHOD(Phalcon_Mvc_Micro, setEventsManager) +{ + zval *eventsManager, eventsManager_sub; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&eventsManager_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); -ZEPHIR_INIT_CLASS(Phalcon_Cli_DispatcherInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Cli, DispatcherInterface, phalcon, cli_dispatcherinterface, phalcon_cli_dispatcherinterface_method_entry); - zend_class_implements(phalcon_cli_dispatcherinterface_ce, 1, phalcon_dispatcher_dispatcherinterface_ce); - return SUCCESS; + zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); } -ZEPHIR_DOC_METHOD(Phalcon_Cli_DispatcherInterface, getActiveTask); -ZEPHIR_DOC_METHOD(Phalcon_Cli_DispatcherInterface, getLastTask); -ZEPHIR_DOC_METHOD(Phalcon_Cli_DispatcherInterface, getOptions); -ZEPHIR_DOC_METHOD(Phalcon_Cli_DispatcherInterface, getTaskName); -ZEPHIR_DOC_METHOD(Phalcon_Cli_DispatcherInterface, getTaskSuffix); -ZEPHIR_DOC_METHOD(Phalcon_Cli_DispatcherInterface, setDefaultTask); -ZEPHIR_DOC_METHOD(Phalcon_Cli_DispatcherInterface, setOptions); -ZEPHIR_DOC_METHOD(Phalcon_Cli_DispatcherInterface, setTaskName); -ZEPHIR_DOC_METHOD(Phalcon_Cli_DispatcherInterface, setTaskSuffix); +static PHP_METHOD(Phalcon_Mvc_Micro, getHandlers) +{ + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H -#endif + RETURN_MEMBER(getThis(), "handlers"); +} +static PHP_METHOD(Phalcon_Mvc_Micro, getModelBinder) +{ + zval *this_ptr = getThis(); + RETURN_MEMBER(getThis(), "modelBinder"); +} -ZEPHIR_INIT_CLASS(Phalcon_Cli_Router) +static PHP_METHOD(Phalcon_Mvc_Micro, getReturnedValue) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cli, Router, phalcon, cli_router, phalcon_di_abstractinjectionaware_ce, phalcon_cli_router_method_entry, 0); + zval *this_ptr = getThis(); - zend_declare_property_null(phalcon_cli_router_ce, SL("action"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_cli_router_ce, SL("defaultAction"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_cli_router_ce, SL("defaultModule"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_cli_router_ce, SL("defaultParams"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_cli_router_ce, SL("defaultTask"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_cli_router_ce, SL("matchedRoute"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_cli_router_ce, SL("matches"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_cli_router_ce, SL("module"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_cli_router_ce, SL("params"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_cli_router_ce, SL("routes"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_cli_router_ce, SL("task"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_cli_router_ce, SL("wasMatched"), 0, ZEND_ACC_PROTECTED); - phalcon_cli_router_ce->create_object = zephir_init_properties_Phalcon_Cli_Router; - return SUCCESS; + + RETURN_MEMBER(getThis(), "returnedValue"); } -static PHP_METHOD(Phalcon_Cli_Router, __construct) +static PHP_METHOD(Phalcon_Mvc_Micro, getRouter) { - zval routes, _1$$3, _3$$3; + zval router, _0, _1$$3, _2$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *defaultRoutes_param = NULL, _0$$3, _2$$3, _4$$3; - zend_bool defaultRoutes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&routes); + ZVAL_UNDEF(&router); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(defaultRoutes) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_2$$3); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &defaultRoutes_param); - if (!defaultRoutes_param) { - defaultRoutes = 1; - } else { - defaultRoutes = zephir_get_boolval(defaultRoutes_param); - } - - ZEPHIR_INIT_VAR(&routes); - array_init(&routes); - if (defaultRoutes) { - ZEPHIR_INIT_VAR(&_0$$3); - object_init_ex(&_0$$3, phalcon_cli_router_route_ce); + zephir_read_property(&_0, this_ptr, ZEND_STRL("router"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&router, &_0); + if (Z_TYPE_P(&router) != IS_OBJECT) { ZEPHIR_INIT_VAR(&_1$$3); - zephir_create_array(&_1$$3, 1, 0); - add_assoc_long_ex(&_1$$3, SL("task"), 1); - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "#^(?::delimiter)?([a-zA-Z0-9\\_\\-]+)[:delimiter]{0,1}$#"); - ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 173, &_2$$3, &_1$$3); + ZVAL_STRING(&_1$$3, "router"); + ZEPHIR_CALL_METHOD(&router, this_ptr, "getsharedservice", NULL, 0, &_1$$3); zephir_check_call_status(); - zephir_array_append(&routes, &_0$$3, PH_SEPARATE, "phalcon/Cli/Router.zep", 120); - ZEPHIR_INIT_NVAR(&_2$$3); - object_init_ex(&_2$$3, phalcon_cli_router_route_ce); - ZEPHIR_INIT_VAR(&_3$$3); - zephir_create_array(&_3$$3, 3, 0); - add_assoc_long_ex(&_3$$3, SL("task"), 1); - add_assoc_long_ex(&_3$$3, SL("action"), 2); - add_assoc_long_ex(&_3$$3, SL("params"), 3); - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "#^(?::delimiter)?([a-zA-Z0-9\\_\\-]+):delimiter([a-zA-Z0-9\\.\\_]+)(:delimiter.*)*$#"); - ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", NULL, 173, &_4$$3, &_3$$3); + ZEPHIR_CALL_METHOD(NULL, &router, "clear", NULL, 0); zephir_check_call_status(); - zephir_array_append(&routes, &_2$$3, PH_SEPARATE, "phalcon/Cli/Router.zep", 129); + ZVAL_BOOL(&_2$$3, 1); + ZEPHIR_CALL_METHOD(NULL, &router, "removeextraslashes", NULL, 0, &_2$$3); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("router"), &router); } - zephir_update_property_zval(this_ptr, ZEND_STRL("routes"), &routes); - ZEPHIR_MM_RESTORE(); + RETURN_CCTOR(&router); } -static PHP_METHOD(Phalcon_Cli_Router, add) +static PHP_METHOD(Phalcon_Mvc_Micro, getService) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, route; - zval pattern; + zval *serviceName_param = NULL, container, _0; + zval serviceName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&route); + ZVAL_UNDEF(&serviceName); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(pattern) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(serviceName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &pattern_param, &paths); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + zephir_fetch_params(1, 1, 0, &serviceName_param); + if (UNEXPECTED(Z_TYPE_P(serviceName_param) != IS_STRING && Z_TYPE_P(serviceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'serviceName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); + if (EXPECTED(Z_TYPE_P(serviceName_param) == IS_STRING)) { + zephir_get_strval(&serviceName, serviceName_param); } else { - ZEPHIR_INIT_VAR(&pattern); - } - if (!paths) { - paths = &paths_sub; - paths = &__$null; + ZEPHIR_INIT_VAR(&serviceName); } - ZEPHIR_INIT_VAR(&route); - object_init_ex(&route, phalcon_cli_router_route_ce); - ZEPHIR_CALL_METHOD(NULL, &route, "__construct", NULL, 173, &pattern, paths); + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + if (Z_TYPE_P(&container) != IS_OBJECT) { + ZEPHIR_INIT_NVAR(&container); + object_init_ex(&container, phalcon_di_factorydefault_ce); + ZEPHIR_CALL_METHOD(NULL, &container, "__construct", NULL, 421); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), &container); + } + ZEPHIR_RETURN_CALL_METHOD(&container, "get", NULL, 422, &serviceName); zephir_check_call_status(); - zephir_update_property_array_append(this_ptr, SL("routes"), &route); - RETURN_CCTOR(&route); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Cli_Router, getActionName) +static PHP_METHOD(Phalcon_Mvc_Micro, getSharedService) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *serviceName_param = NULL, container, _0; + zval serviceName; zval *this_ptr = getThis(); + ZVAL_UNDEF(&serviceName); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(serviceName) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "action"); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &serviceName_param); + if (UNEXPECTED(Z_TYPE_P(serviceName_param) != IS_STRING && Z_TYPE_P(serviceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'serviceName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(serviceName_param) == IS_STRING)) { + zephir_get_strval(&serviceName, serviceName_param); + } else { + ZEPHIR_INIT_VAR(&serviceName); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + if (Z_TYPE_P(&container) != IS_OBJECT) { + ZEPHIR_INIT_NVAR(&container); + object_init_ex(&container, phalcon_di_factorydefault_ce); + ZEPHIR_CALL_METHOD(NULL, &container, "__construct", NULL, 421); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), &container); + } + ZEPHIR_RETURN_CALL_METHOD(&container, "getshared", NULL, 423, &serviceName); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Cli_Router, getMatchedRoute) +static PHP_METHOD(Phalcon_Mvc_Micro, handle) { + zval _73$$59, _78$$64, _83$$69; + zend_class_entry *_29$$21; + zend_bool _27$$7, _38$$7, _19$$11, _23$$16, _34$$25, _43$$31, _47$$36, _54$$42, _58$$47, _70$$57, _75$$62, _88$$79; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_3 = NULL; + zval *uri_param = NULL, __$true, __$false, container, eventsManager, status, router, matchedRoute, handler, beforeHandlers, params, returnedValue, e, errorHandler, afterHandlers, notFoundHandler, finishHandlers, finish, before, after, response, modelBinder, routeName, realHandler, methodName, lazyReturned, afterBindingHandlers, afterBinding, _0, _80, _1$$3, _2$$3, _4$$3, _5$$4, _8$$4, _9$$4, *_68$$4, _69$$4, _6$$5, _7$$5, _10$$7, _11$$7, _16$$7, *_17$$7, _18$$7, *_41$$7, _42$$7, *_52$$7, _53$$7, _12$$8, _13$$8, _14$$9, _15$$9, _22$$11, _20$$14, _21$$14, _26$$16, _24$$19, _25$$19, _28$$21, _30$$23, _31$$24, _32$$24, _33$$22, _35$$26, _36$$26, _37$$26, _39$$29, _40$$29, _46$$31, _44$$34, _45$$34, _50$$36, _48$$39, _49$$39, _51$$41, _57$$42, _55$$45, _56$$45, _61$$47, _59$$50, _60$$50, _62$$52, _63$$53, _64$$53, _65$$55, _66$$55, _67$$56, _74$$57, _71$$60, _72$$60, _79$$62, _76$$65, _77$$65, _81$$67, _82$$68, _84$$77, _85$$77, _86$$80, _87$$80, _89$$82; + zval uri, bindCacheKey; zval *this_ptr = getThis(); + ZVAL_UNDEF(&uri); + ZVAL_UNDEF(&bindCacheKey); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&eventsManager); + ZVAL_UNDEF(&status); + ZVAL_UNDEF(&router); + ZVAL_UNDEF(&matchedRoute); + ZVAL_UNDEF(&handler); + ZVAL_UNDEF(&beforeHandlers); + ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&returnedValue); + ZVAL_UNDEF(&e); + ZVAL_UNDEF(&errorHandler); + ZVAL_UNDEF(&afterHandlers); + ZVAL_UNDEF(¬FoundHandler); + ZVAL_UNDEF(&finishHandlers); + ZVAL_UNDEF(&finish); + ZVAL_UNDEF(&before); + ZVAL_UNDEF(&after); + ZVAL_UNDEF(&response); + ZVAL_UNDEF(&modelBinder); + ZVAL_UNDEF(&routeName); + ZVAL_UNDEF(&realHandler); + ZVAL_UNDEF(&methodName); + ZVAL_UNDEF(&lazyReturned); + ZVAL_UNDEF(&afterBindingHandlers); + ZVAL_UNDEF(&afterBinding); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_80); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_8$$4); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&_69$$4); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_7$$5); + ZVAL_UNDEF(&_10$$7); + ZVAL_UNDEF(&_11$$7); + ZVAL_UNDEF(&_16$$7); + ZVAL_UNDEF(&_18$$7); + ZVAL_UNDEF(&_42$$7); + ZVAL_UNDEF(&_53$$7); + ZVAL_UNDEF(&_12$$8); + ZVAL_UNDEF(&_13$$8); + ZVAL_UNDEF(&_14$$9); + ZVAL_UNDEF(&_15$$9); + ZVAL_UNDEF(&_22$$11); + ZVAL_UNDEF(&_20$$14); + ZVAL_UNDEF(&_21$$14); + ZVAL_UNDEF(&_26$$16); + ZVAL_UNDEF(&_24$$19); + ZVAL_UNDEF(&_25$$19); + ZVAL_UNDEF(&_28$$21); + ZVAL_UNDEF(&_30$$23); + ZVAL_UNDEF(&_31$$24); + ZVAL_UNDEF(&_32$$24); + ZVAL_UNDEF(&_33$$22); + ZVAL_UNDEF(&_35$$26); + ZVAL_UNDEF(&_36$$26); + ZVAL_UNDEF(&_37$$26); + ZVAL_UNDEF(&_39$$29); + ZVAL_UNDEF(&_40$$29); + ZVAL_UNDEF(&_46$$31); + ZVAL_UNDEF(&_44$$34); + ZVAL_UNDEF(&_45$$34); + ZVAL_UNDEF(&_50$$36); + ZVAL_UNDEF(&_48$$39); + ZVAL_UNDEF(&_49$$39); + ZVAL_UNDEF(&_51$$41); + ZVAL_UNDEF(&_57$$42); + ZVAL_UNDEF(&_55$$45); + ZVAL_UNDEF(&_56$$45); + ZVAL_UNDEF(&_61$$47); + ZVAL_UNDEF(&_59$$50); + ZVAL_UNDEF(&_60$$50); + ZVAL_UNDEF(&_62$$52); + ZVAL_UNDEF(&_63$$53); + ZVAL_UNDEF(&_64$$53); + ZVAL_UNDEF(&_65$$55); + ZVAL_UNDEF(&_66$$55); + ZVAL_UNDEF(&_67$$56); + ZVAL_UNDEF(&_74$$57); + ZVAL_UNDEF(&_71$$60); + ZVAL_UNDEF(&_72$$60); + ZVAL_UNDEF(&_79$$62); + ZVAL_UNDEF(&_76$$65); + ZVAL_UNDEF(&_77$$65); + ZVAL_UNDEF(&_81$$67); + ZVAL_UNDEF(&_82$$68); + ZVAL_UNDEF(&_84$$77); + ZVAL_UNDEF(&_85$$77); + ZVAL_UNDEF(&_86$$80); + ZVAL_UNDEF(&_87$$80); + ZVAL_UNDEF(&_89$$82); + ZVAL_UNDEF(&_73$$59); + ZVAL_UNDEF(&_78$$64); + ZVAL_UNDEF(&_83$$69); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(uri) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "matchedRoute"); -} + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &uri_param); + if (UNEXPECTED(Z_TYPE_P(uri_param) != IS_STRING && Z_TYPE_P(uri_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'uri' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(uri_param) == IS_STRING)) { + zephir_get_strval(&uri, uri_param); + } else { + ZEPHIR_INIT_VAR(&uri); + } -static PHP_METHOD(Phalcon_Cli_Router, getMatches) -{ - zval *this_ptr = getThis(); + ZEPHIR_INIT_VAR(&status); + ZVAL_NULL(&status); + ZEPHIR_INIT_VAR(&realHandler); + ZVAL_NULL(&realHandler); + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_mvc_micro_exception_ce); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "micro services"); + ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_mvc_micro_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Micro.zep", 419); + ZEPHIR_MM_RESTORE(); + return; + } + /* try_start_1: */ - RETURN_MEMBER(getThis(), "matches"); -} + ZEPHIR_INIT_VAR(&returnedValue); + ZVAL_NULL(&returnedValue); + zephir_read_property(&_5$$4, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_5$$4); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_7$$5); + ZVAL_STRING(&_7$$5, "micro:beforeHandleRoute"); + ZEPHIR_CALL_METHOD(&_6$$5, &eventsManager, "fire", NULL, 0, &_7$$5, this_ptr); + zephir_check_call_status_or_jump(try_end_1); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_6$$5)) { + RETURN_MM_BOOL(0); + } + } + ZEPHIR_INIT_VAR(&_9$$4); + ZVAL_STRING(&_9$$4, "router"); + ZEPHIR_CALL_METHOD(&_8$$4, &container, "getshared", NULL, 0, &_9$$4); + zephir_check_call_status_or_jump(try_end_1); + ZEPHIR_CPY_WRT(&router, &_8$$4); + ZEPHIR_CALL_METHOD(NULL, &router, "handle", NULL, 0, &uri); + zephir_check_call_status_or_jump(try_end_1); + ZEPHIR_CALL_METHOD(&matchedRoute, &router, "getmatchedroute", NULL, 0); + zephir_check_call_status_or_jump(try_end_1); + if (Z_TYPE_P(&matchedRoute) == IS_OBJECT) { + ZEPHIR_OBS_VAR(&handler); + zephir_read_property(&_10$$7, this_ptr, ZEND_STRL("handlers"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_11$$7, &matchedRoute, "getrouteid", NULL, 0); + zephir_check_call_status_or_jump(try_end_1); + if (UNEXPECTED(!(zephir_array_isset_fetch(&handler, &_10$$7, &_11$$7, 0)))) { + ZEPHIR_INIT_VAR(&_12$$8); + object_init_ex(&_12$$8, phalcon_mvc_micro_exception_ce); + ZEPHIR_INIT_VAR(&_13$$8); + ZVAL_STRING(&_13$$8, "Matched route doesn't have an associated handler"); + ZEPHIR_CALL_METHOD(NULL, &_12$$8, "__construct", NULL, 8, &_13$$8); + zephir_check_call_status_or_jump(try_end_1); + zephir_throw_exception_debug(&_12$$8, "phalcon/Mvc/Micro.zep", 455); + goto try_end_1; -static PHP_METHOD(Phalcon_Cli_Router, getModuleName) -{ - zval *this_ptr = getThis(); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("activeHandler"), &handler); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_15$$9); + ZVAL_STRING(&_15$$9, "micro:beforeExecuteRoute"); + ZEPHIR_CALL_METHOD(&_14$$9, &eventsManager, "fire", NULL, 0, &_15$$9, this_ptr); + zephir_check_call_status_or_jump(try_end_1); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_14$$9)) { + RETURN_MM_BOOL(0); + } + ZEPHIR_OBS_NVAR(&handler); + zephir_read_property(&handler, this_ptr, ZEND_STRL("activeHandler"), PH_NOISY_CC); + } + zephir_read_property(&_16$$7, this_ptr, ZEND_STRL("beforeHandlers"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&beforeHandlers, &_16$$7); + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$false); + } + zephir_is_iterable(&beforeHandlers, 0, "phalcon/Mvc/Micro.zep", 508); + if (Z_TYPE_P(&beforeHandlers) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&beforeHandlers), _17$$7) + { + ZEPHIR_INIT_NVAR(&before); + ZVAL_COPY(&before, _17$$7); + _19$$11 = Z_TYPE_P(&before) == IS_OBJECT; + if (_19$$11) { + _19$$11 = zephir_instance_of_ev(&before, phalcon_mvc_micro_middlewareinterface_ce); + } + if (_19$$11) { + ZEPHIR_CALL_METHOD(&status, &before, "call", NULL, 0, this_ptr); + zephir_check_call_status_or_jump(try_end_1); + } else { + if (UNEXPECTED(!(zephir_is_callable(&before)))) { + ZEPHIR_INIT_NVAR(&_20$$14); + object_init_ex(&_20$$14, phalcon_mvc_micro_exception_ce); + ZEPHIR_INIT_NVAR(&_21$$14); + ZVAL_STRING(&_21$$14, "'before' handler is not callable"); + ZEPHIR_CALL_METHOD(NULL, &_20$$14, "__construct", NULL, 8, &_21$$14); + zephir_check_call_status_or_jump(try_end_1); + zephir_throw_exception_debug(&_20$$14, "phalcon/Mvc/Micro.zep", 491); + goto try_end_1; + } + ZEPHIR_INIT_NVAR(&status); + ZEPHIR_CALL_USER_FUNC(&status, &before); + zephir_check_call_status_or_jump(try_end_1); + } + zephir_read_property(&_22$$11, this_ptr, ZEND_STRL("stopped"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_22$$11)) { + RETURN_CCTOR(&status); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &beforeHandlers, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_18$$7, &beforeHandlers, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_18$$7)) { + break; + } + ZEPHIR_CALL_METHOD(&before, &beforeHandlers, "current", NULL, 0); + zephir_check_call_status(); + _23$$16 = Z_TYPE_P(&before) == IS_OBJECT; + if (_23$$16) { + _23$$16 = zephir_instance_of_ev(&before, phalcon_mvc_micro_middlewareinterface_ce); + } + if (_23$$16) { + ZEPHIR_CALL_METHOD(&status, &before, "call", NULL, 0, this_ptr); + zephir_check_call_status_or_jump(try_end_1); + } else { + if (UNEXPECTED(!(zephir_is_callable(&before)))) { + ZEPHIR_INIT_NVAR(&_24$$19); + object_init_ex(&_24$$19, phalcon_mvc_micro_exception_ce); + ZEPHIR_INIT_NVAR(&_25$$19); + ZVAL_STRING(&_25$$19, "'before' handler is not callable"); + ZEPHIR_CALL_METHOD(NULL, &_24$$19, "__construct", NULL, 8, &_25$$19); + zephir_check_call_status_or_jump(try_end_1); + zephir_throw_exception_debug(&_24$$19, "phalcon/Mvc/Micro.zep", 491); + goto try_end_1; + } + ZEPHIR_INIT_NVAR(&status); + ZEPHIR_CALL_USER_FUNC(&status, &before); + zephir_check_call_status_or_jump(try_end_1); + } + zephir_read_property(&_26$$16, this_ptr, ZEND_STRL("stopped"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_26$$16)) { + RETURN_CCTOR(&status); + } + ZEPHIR_CALL_METHOD(NULL, &beforeHandlers, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&before); + ZEPHIR_CALL_METHOD(¶ms, &router, "getparams", NULL, 0); + zephir_check_call_status_or_jump(try_end_1); + zephir_read_property(&_16$$7, this_ptr, ZEND_STRL("modelBinder"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&modelBinder, &_16$$7); + _27$$7 = Z_TYPE_P(&handler) == IS_OBJECT; + if (_27$$7) { + _27$$7 = zephir_is_instance_of(&handler, SL("Closure")); + } + if (_27$$7) { + _29$$21 = zephir_fetch_class_str_ex(SL("Closure"), ZEND_FETCH_CLASS_AUTO); + ZEPHIR_CALL_CE_STATIC(&_28$$21, _29$$21, "bind", NULL, 0, &handler, this_ptr); + zephir_check_call_status_or_jump(try_end_1); + ZEPHIR_CPY_WRT(&handler, &_28$$21); + if (Z_TYPE_P(&modelBinder) != IS_NULL) { + ZEPHIR_CALL_METHOD(&routeName, &matchedRoute, "getname", NULL, 0); + zephir_check_call_status_or_jump(try_end_1); + if (Z_TYPE_P(&routeName) != IS_NULL) { + ZEPHIR_INIT_VAR(&_30$$23); + ZEPHIR_CONCAT_SV(&_30$$23, "_PHMB_", &routeName); + zephir_get_strval(&bindCacheKey, &_30$$23); + } else { + ZEPHIR_CALL_METHOD(&_31$$24, &matchedRoute, "getpattern", NULL, 0); + zephir_check_call_status_or_jump(try_end_1); + ZEPHIR_INIT_VAR(&_32$$24); + ZEPHIR_CONCAT_SV(&_32$$24, "_PHMB_", &_31$$24); + zephir_get_strval(&bindCacheKey, &_32$$24); + } + ZEPHIR_CALL_METHOD(&_33$$22, &modelBinder, "bindtohandler", NULL, 0, &handler, ¶ms, &bindCacheKey); + zephir_check_call_status_or_jump(try_end_1); + ZEPHIR_CPY_WRT(¶ms, &_33$$22); + } + } + if (Z_TYPE_P(&handler) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&realHandler); + zephir_array_fetch_long(&realHandler, &handler, 0, PH_NOISY, "phalcon/Mvc/Micro.zep", 539); + _34$$25 = zephir_instance_of_ev(&realHandler, phalcon_mvc_controller_ce); + if (_34$$25) { + _34$$25 = Z_TYPE_P(&modelBinder) != IS_NULL; + } + if (_34$$25) { + ZEPHIR_OBS_VAR(&methodName); + zephir_array_fetch_long(&methodName, &handler, 1, PH_NOISY, "phalcon/Mvc/Micro.zep", 542); + ZEPHIR_INIT_VAR(&_35$$26); + zephir_get_class(&_35$$26, &realHandler, 0); + ZEPHIR_INIT_VAR(&_36$$26); + ZEPHIR_CONCAT_SVSV(&_36$$26, "_PHMB_", &_35$$26, "_", &methodName); + zephir_get_strval(&bindCacheKey, &_36$$26); + ZEPHIR_CALL_METHOD(&_37$$26, &modelBinder, "bindtohandler", NULL, 0, &realHandler, ¶ms, &bindCacheKey, &methodName); + zephir_check_call_status_or_jump(try_end_1); + ZEPHIR_CPY_WRT(¶ms, &_37$$26); + } + } + _38$$7 = Z_TYPE_P(&realHandler) != IS_NULL; + if (_38$$7) { + _38$$7 = zephir_instance_of_ev(&realHandler, phalcon_mvc_micro_lazyloader_ce); + } + if (_38$$7) { + ZEPHIR_OBS_NVAR(&methodName); + zephir_array_fetch_long(&methodName, &handler, 1, PH_NOISY, "phalcon/Mvc/Micro.zep", 559); + ZEPHIR_CALL_METHOD(&lazyReturned, &realHandler, "callmethod", NULL, 0, &methodName, ¶ms, &modelBinder); + zephir_check_call_status_or_jump(try_end_1); + } else { + ZEPHIR_INIT_NVAR(&lazyReturned); + ZEPHIR_CALL_USER_FUNC_ARRAY(&lazyReturned, &handler, ¶ms); + zephir_check_call_status_or_jump(try_end_1); + } + ZEPHIR_CPY_WRT(&returnedValue, &lazyReturned); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_40$$29); + ZVAL_STRING(&_40$$29, "micro:afterBinding"); + ZEPHIR_CALL_METHOD(&_39$$29, &eventsManager, "fire", NULL, 0, &_40$$29, this_ptr); + zephir_check_call_status_or_jump(try_end_1); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_39$$29)) { + RETURN_MM_BOOL(0); + } + } + zephir_read_property(&_16$$7, this_ptr, ZEND_STRL("afterBindingHandlers"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&afterBindingHandlers, &_16$$7); + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$false); + } + zephir_is_iterable(&afterBindingHandlers, 0, "phalcon/Mvc/Micro.zep", 622); + if (Z_TYPE_P(&afterBindingHandlers) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&afterBindingHandlers), _41$$7) + { + ZEPHIR_INIT_NVAR(&afterBinding); + ZVAL_COPY(&afterBinding, _41$$7); + _43$$31 = Z_TYPE_P(&afterBinding) == IS_OBJECT; + if (_43$$31) { + _43$$31 = zephir_instance_of_ev(&afterBinding, phalcon_mvc_micro_middlewareinterface_ce); + } + if (_43$$31) { + ZEPHIR_CALL_METHOD(&status, &afterBinding, "call", NULL, 0, this_ptr); + zephir_check_call_status_or_jump(try_end_1); + } else { + if (UNEXPECTED(!(zephir_is_callable(&afterBinding)))) { + ZEPHIR_INIT_NVAR(&_44$$34); + object_init_ex(&_44$$34, phalcon_mvc_micro_exception_ce); + ZEPHIR_INIT_NVAR(&_45$$34); + ZVAL_STRING(&_45$$34, "'afterBinding' handler is not callable"); + ZEPHIR_CALL_METHOD(NULL, &_44$$34, "__construct", NULL, 8, &_45$$34); + zephir_check_call_status_or_jump(try_end_1); + zephir_throw_exception_debug(&_44$$34, "phalcon/Mvc/Micro.zep", 602); + goto try_end_1; - RETURN_MEMBER(getThis(), "module"); -} + } + ZEPHIR_INIT_NVAR(&status); + ZEPHIR_CALL_USER_FUNC(&status, &afterBinding); + zephir_check_call_status_or_jump(try_end_1); + } + zephir_read_property(&_46$$31, this_ptr, ZEND_STRL("stopped"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_46$$31)) { + RETURN_CCTOR(&status); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &afterBindingHandlers, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_42$$7, &afterBindingHandlers, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_42$$7)) { + break; + } + ZEPHIR_CALL_METHOD(&afterBinding, &afterBindingHandlers, "current", NULL, 0); + zephir_check_call_status(); + _47$$36 = Z_TYPE_P(&afterBinding) == IS_OBJECT; + if (_47$$36) { + _47$$36 = zephir_instance_of_ev(&afterBinding, phalcon_mvc_micro_middlewareinterface_ce); + } + if (_47$$36) { + ZEPHIR_CALL_METHOD(&status, &afterBinding, "call", NULL, 0, this_ptr); + zephir_check_call_status_or_jump(try_end_1); + } else { + if (UNEXPECTED(!(zephir_is_callable(&afterBinding)))) { + ZEPHIR_INIT_NVAR(&_48$$39); + object_init_ex(&_48$$39, phalcon_mvc_micro_exception_ce); + ZEPHIR_INIT_NVAR(&_49$$39); + ZVAL_STRING(&_49$$39, "'afterBinding' handler is not callable"); + ZEPHIR_CALL_METHOD(NULL, &_48$$39, "__construct", NULL, 8, &_49$$39); + zephir_check_call_status_or_jump(try_end_1); + zephir_throw_exception_debug(&_48$$39, "phalcon/Mvc/Micro.zep", 602); + goto try_end_1; -static PHP_METHOD(Phalcon_Cli_Router, getParams) -{ - zval *this_ptr = getThis(); + } + ZEPHIR_INIT_NVAR(&status); + ZEPHIR_CALL_USER_FUNC(&status, &afterBinding); + zephir_check_call_status_or_jump(try_end_1); + } + zephir_read_property(&_50$$36, this_ptr, ZEND_STRL("stopped"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_50$$36)) { + RETURN_CCTOR(&status); + } + ZEPHIR_CALL_METHOD(NULL, &afterBindingHandlers, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&afterBinding); + zephir_update_property_zval(this_ptr, ZEND_STRL("returnedValue"), &returnedValue); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_51$$41); + ZVAL_STRING(&_51$$41, "micro:afterExecuteRoute"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_51$$41, this_ptr); + zephir_check_call_status_or_jump(try_end_1); + } + zephir_read_property(&_16$$7, this_ptr, ZEND_STRL("afterHandlers"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&afterHandlers, &_16$$7); + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$false); + } + zephir_is_iterable(&afterHandlers, 0, "phalcon/Mvc/Micro.zep", 661); + if (Z_TYPE_P(&afterHandlers) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&afterHandlers), _52$$7) + { + ZEPHIR_INIT_NVAR(&after); + ZVAL_COPY(&after, _52$$7); + _54$$42 = Z_TYPE_P(&after) == IS_OBJECT; + if (_54$$42) { + _54$$42 = zephir_instance_of_ev(&after, phalcon_mvc_micro_middlewareinterface_ce); + } + if (_54$$42) { + ZEPHIR_CALL_METHOD(&status, &after, "call", NULL, 0, this_ptr); + zephir_check_call_status_or_jump(try_end_1); + } else { + if (UNEXPECTED(!(zephir_is_callable(&after)))) { + ZEPHIR_INIT_NVAR(&_55$$45); + object_init_ex(&_55$$45, phalcon_mvc_micro_exception_ce); + ZEPHIR_INIT_NVAR(&_56$$45); + ZVAL_STRING(&_56$$45, "One of the 'after' handlers is not callable"); + ZEPHIR_CALL_METHOD(NULL, &_55$$45, "__construct", NULL, 8, &_56$$45); + zephir_check_call_status_or_jump(try_end_1); + zephir_throw_exception_debug(&_55$$45, "phalcon/Mvc/Micro.zep", 648); + goto try_end_1; + + } + ZEPHIR_INIT_NVAR(&status); + ZEPHIR_CALL_USER_FUNC(&status, &after); + zephir_check_call_status_or_jump(try_end_1); + } + zephir_read_property(&_57$$42, this_ptr, ZEND_STRL("stopped"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_57$$42)) { + break; + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &afterHandlers, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_53$$7, &afterHandlers, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_53$$7)) { + break; + } + ZEPHIR_CALL_METHOD(&after, &afterHandlers, "current", NULL, 0); + zephir_check_call_status(); + _58$$47 = Z_TYPE_P(&after) == IS_OBJECT; + if (_58$$47) { + _58$$47 = zephir_instance_of_ev(&after, phalcon_mvc_micro_middlewareinterface_ce); + } + if (_58$$47) { + ZEPHIR_CALL_METHOD(&status, &after, "call", NULL, 0, this_ptr); + zephir_check_call_status_or_jump(try_end_1); + } else { + if (UNEXPECTED(!(zephir_is_callable(&after)))) { + ZEPHIR_INIT_NVAR(&_59$$50); + object_init_ex(&_59$$50, phalcon_mvc_micro_exception_ce); + ZEPHIR_INIT_NVAR(&_60$$50); + ZVAL_STRING(&_60$$50, "One of the 'after' handlers is not callable"); + ZEPHIR_CALL_METHOD(NULL, &_59$$50, "__construct", NULL, 8, &_60$$50); + zephir_check_call_status_or_jump(try_end_1); + zephir_throw_exception_debug(&_59$$50, "phalcon/Mvc/Micro.zep", 648); + goto try_end_1; + + } + ZEPHIR_INIT_NVAR(&status); + ZEPHIR_CALL_USER_FUNC(&status, &after); + zephir_check_call_status_or_jump(try_end_1); + } + zephir_read_property(&_61$$47, this_ptr, ZEND_STRL("stopped"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_61$$47)) { + break; + } + ZEPHIR_CALL_METHOD(NULL, &afterHandlers, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&after); + } else { + zephir_read_property(&_62$$52, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_62$$52); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_64$$53); + ZVAL_STRING(&_64$$53, "micro:beforeNotFound"); + ZEPHIR_CALL_METHOD(&_63$$53, &eventsManager, "fire", NULL, 0, &_64$$53, this_ptr); + zephir_check_call_status_or_jump(try_end_1); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_63$$53)) { + RETURN_MM_BOOL(0); + } + } + zephir_read_property(&_62$$52, this_ptr, ZEND_STRL("notFoundHandler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(¬FoundHandler, &_62$$52); + if (UNEXPECTED(!(zephir_is_callable(¬FoundHandler)))) { + ZEPHIR_INIT_VAR(&_65$$55); + object_init_ex(&_65$$55, phalcon_mvc_micro_exception_ce); + ZEPHIR_INIT_VAR(&_66$$55); + ZVAL_STRING(&_66$$55, "Not-Found handler is not callable or is not defined"); + ZEPHIR_CALL_METHOD(NULL, &_65$$55, "__construct", NULL, 8, &_66$$55); + zephir_check_call_status_or_jump(try_end_1); + zephir_throw_exception_debug(&_65$$55, "phalcon/Mvc/Micro.zep", 681); + goto try_end_1; + } + ZEPHIR_INIT_NVAR(&returnedValue); + ZEPHIR_CALL_USER_FUNC(&returnedValue, ¬FoundHandler); + zephir_check_call_status_or_jump(try_end_1); + } + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_67$$56); + ZVAL_STRING(&_67$$56, "micro:afterHandleRoute"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_67$$56, this_ptr, &returnedValue); + zephir_check_call_status_or_jump(try_end_1); + } + zephir_read_property(&_5$$4, this_ptr, ZEND_STRL("finishHandlers"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&finishHandlers, &_5$$4); + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$false); + } + zephir_is_iterable(&finishHandlers, 0, "phalcon/Mvc/Micro.zep", 736); + if (Z_TYPE_P(&finishHandlers) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&finishHandlers), _68$$4) + { + ZEPHIR_INIT_NVAR(&finish); + ZVAL_COPY(&finish, _68$$4); + _70$$57 = Z_TYPE_P(&finish) == IS_OBJECT; + if (_70$$57) { + _70$$57 = zephir_instance_of_ev(&finish, phalcon_mvc_micro_middlewareinterface_ce); + } + if (_70$$57) { + ZEPHIR_CALL_METHOD(&status, &finish, "call", NULL, 0, this_ptr); + zephir_check_call_status_or_jump(try_end_1); + } else { + if (UNEXPECTED(!(zephir_is_callable(&finish)))) { + ZEPHIR_INIT_NVAR(&_71$$60); + object_init_ex(&_71$$60, phalcon_mvc_micro_exception_ce); + ZEPHIR_INIT_NVAR(&_72$$60); + ZVAL_STRING(&_72$$60, "One of the 'finish' handlers is not callable"); + ZEPHIR_CALL_METHOD(NULL, &_71$$60, "__construct", NULL, 8, &_72$$60); + zephir_check_call_status_or_jump(try_end_1); + zephir_throw_exception_debug(&_71$$60, "phalcon/Mvc/Micro.zep", 717); + goto try_end_1; + } + ZEPHIR_INIT_NVAR(&_73$$59); + zephir_create_array(&_73$$59, 1, 0); + zephir_array_fast_append(&_73$$59, this_ptr); + ZEPHIR_INIT_NVAR(&status); + ZEPHIR_CALL_USER_FUNC_ARRAY(&status, &finish, &_73$$59); + zephir_check_call_status_or_jump(try_end_1); + } + zephir_read_property(&_74$$57, this_ptr, ZEND_STRL("stopped"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_74$$57)) { + break; + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &finishHandlers, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_69$$4, &finishHandlers, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_69$$4)) { + break; + } + ZEPHIR_CALL_METHOD(&finish, &finishHandlers, "current", NULL, 0); + zephir_check_call_status(); + _75$$62 = Z_TYPE_P(&finish) == IS_OBJECT; + if (_75$$62) { + _75$$62 = zephir_instance_of_ev(&finish, phalcon_mvc_micro_middlewareinterface_ce); + } + if (_75$$62) { + ZEPHIR_CALL_METHOD(&status, &finish, "call", NULL, 0, this_ptr); + zephir_check_call_status_or_jump(try_end_1); + } else { + if (UNEXPECTED(!(zephir_is_callable(&finish)))) { + ZEPHIR_INIT_NVAR(&_76$$65); + object_init_ex(&_76$$65, phalcon_mvc_micro_exception_ce); + ZEPHIR_INIT_NVAR(&_77$$65); + ZVAL_STRING(&_77$$65, "One of the 'finish' handlers is not callable"); + ZEPHIR_CALL_METHOD(NULL, &_76$$65, "__construct", NULL, 8, &_77$$65); + zephir_check_call_status_or_jump(try_end_1); + zephir_throw_exception_debug(&_76$$65, "phalcon/Mvc/Micro.zep", 717); + goto try_end_1; - RETURN_MEMBER(getThis(), "params"); + } + ZEPHIR_INIT_NVAR(&_78$$64); + zephir_create_array(&_78$$64, 1, 0); + zephir_array_fast_append(&_78$$64, this_ptr); + ZEPHIR_INIT_NVAR(&status); + ZEPHIR_CALL_USER_FUNC_ARRAY(&status, &finish, &_78$$64); + zephir_check_call_status_or_jump(try_end_1); + } + zephir_read_property(&_79$$62, this_ptr, ZEND_STRL("stopped"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_79$$62)) { + break; + } + ZEPHIR_CALL_METHOD(NULL, &finishHandlers, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&finish); + + try_end_1: + + if (EG(exception)) { + ZEPHIR_INIT_VAR(&_80); + ZVAL_OBJ(&_80, EG(exception)); + Z_ADDREF_P(&_80); + if (zephir_is_instance_of(&_80, SL("Throwable"))) { + zend_clear_exception(); + ZEPHIR_CPY_WRT(&e, &_80); + zephir_read_property(&_81$$67, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_81$$67); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_82$$68); + ZVAL_STRING(&_82$$68, "micro:beforeException"); + ZEPHIR_CALL_METHOD(&returnedValue, &eventsManager, "fire", NULL, 0, &_82$$68, this_ptr, &e); + zephir_check_call_status(); + } + zephir_read_property(&_81$$67, this_ptr, ZEND_STRL("errorHandler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&errorHandler, &_81$$67); + if (zephir_is_true(&errorHandler)) { + if (UNEXPECTED(!(zephir_is_callable(&errorHandler)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_micro_exception_ce, "Error handler is not callable", "phalcon/Mvc/Micro.zep", 757); + return; + } + ZEPHIR_INIT_VAR(&_83$$69); + zephir_create_array(&_83$$69, 1, 0); + zephir_array_fast_append(&_83$$69, &e); + ZEPHIR_INIT_NVAR(&returnedValue); + ZEPHIR_CALL_USER_FUNC_ARRAY(&returnedValue, &errorHandler, &_83$$69); + zephir_check_call_status(); + if (Z_TYPE_P(&returnedValue) == IS_OBJECT) { + if (!(zephir_instance_of_ev(&returnedValue, phalcon_http_responseinterface_ce))) { + zephir_throw_exception_debug(&e, "phalcon/Mvc/Micro.zep", 770); + ZEPHIR_MM_RESTORE(); + return; + } + } else { + if (!ZEPHIR_IS_FALSE_IDENTICAL(&returnedValue)) { + zephir_throw_exception_debug(&e, "phalcon/Mvc/Micro.zep", 774); + ZEPHIR_MM_RESTORE(); + return; + } + } + } else { + if (!ZEPHIR_IS_FALSE_IDENTICAL(&returnedValue)) { + zephir_throw_exception_debug(&e, "phalcon/Mvc/Micro.zep", 779); + ZEPHIR_MM_RESTORE(); + return; + } + } + } + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("responseHandler"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_0)) { + zephir_read_property(&_84$$77, this_ptr, ZEND_STRL("responseHandler"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(!(zephir_is_callable(&_84$$77)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_micro_exception_ce, "Response handler is not callable or is not defined", "phalcon/Mvc/Micro.zep", 792); + return; + } + zephir_read_property(&_85$$77, this_ptr, ZEND_STRL("responseHandler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&returnedValue); + ZEPHIR_CALL_USER_FUNC(&returnedValue, &_85$$77); + zephir_check_call_status(); + } else { + if (Z_TYPE_P(&returnedValue) == IS_STRING) { + ZEPHIR_INIT_VAR(&_87$$80); + ZVAL_STRING(&_87$$80, "response"); + ZEPHIR_CALL_METHOD(&_86$$80, &container, "getshared", NULL, 0, &_87$$80); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&response, &_86$$80); + ZEPHIR_CALL_METHOD(&_86$$80, &response, "issent", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_86$$80))) { + ZEPHIR_CALL_METHOD(NULL, &response, "setcontent", NULL, 0, &returnedValue); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &response, "send", NULL, 0); + zephir_check_call_status(); + } + } + _88$$79 = Z_TYPE_P(&returnedValue) == IS_OBJECT; + if (_88$$79) { + _88$$79 = zephir_instance_of_ev(&returnedValue, phalcon_http_responseinterface_ce); + } + if (_88$$79) { + ZEPHIR_CALL_METHOD(&_89$$82, &returnedValue, "issent", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_89$$82))) { + ZEPHIR_CALL_METHOD(NULL, &returnedValue, "send", NULL, 0); + zephir_check_call_status(); + } + } + } + RETURN_CCTOR(&returnedValue); } -static PHP_METHOD(Phalcon_Cli_Router, getRouteById) +static PHP_METHOD(Phalcon_Mvc_Micro, hasService) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *id, id_sub, route, _0, *_1, _2, _3$$3, _4$$5; + zval *serviceName_param = NULL, container, _0; + zval serviceName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&id_sub); - ZVAL_UNDEF(&route); + ZVAL_UNDEF(&serviceName); + ZVAL_UNDEF(&container); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(id) + Z_PARAM_STR(serviceName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &id); + zephir_fetch_params(1, 1, 0, &serviceName_param); + if (UNEXPECTED(Z_TYPE_P(serviceName_param) != IS_STRING && Z_TYPE_P(serviceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'serviceName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(serviceName_param) == IS_STRING)) { + zephir_get_strval(&serviceName, serviceName_param); + } else { + ZEPHIR_INIT_VAR(&serviceName); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); - zephir_is_iterable(&_0, 0, "phalcon/Cli/Router.zep", 209); - if (Z_TYPE_P(&_0) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _1) - { - ZEPHIR_INIT_NVAR(&route); - ZVAL_COPY(&route, _1); - ZEPHIR_CALL_METHOD(&_3$$3, &route, "getrouteid", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_EQUAL(&_3$$3, id)) { - RETURN_CCTOR(&route); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + if (Z_TYPE_P(&container) != IS_OBJECT) { + ZEPHIR_INIT_NVAR(&container); + object_init_ex(&container, phalcon_di_factorydefault_ce); + ZEPHIR_CALL_METHOD(NULL, &container, "__construct", NULL, 421); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &_0, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&route, &_0, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_4$$5, &route, "getrouteid", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_EQUAL(&_4$$5, id)) { - RETURN_CCTOR(&route); - } - ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); - zephir_check_call_status(); - } + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), &container); } - ZEPHIR_INIT_NVAR(&route); - RETURN_MM_BOOL(0); + ZEPHIR_RETURN_CALL_METHOD(&container, "has", NULL, 424, &serviceName); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Cli_Router, getRouteByName) +static PHP_METHOD(Phalcon_Mvc_Micro, head) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, route, _0, *_1, _2, _3$$3, _4$$5; - zval name; + zval *routePattern_param = NULL, *handler, handler_sub, router, route, _0; + zval routePattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); + ZVAL_UNDEF(&routePattern); + ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&router); ZVAL_UNDEF(&route); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(routePattern) + Z_PARAM_ZVAL(handler) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + zephir_fetch_params(1, 2, 0, &routePattern_param, &handler); + if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); + if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { + zephir_get_strval(&routePattern, routePattern_param); } else { - ZEPHIR_INIT_VAR(&name); + ZEPHIR_INIT_VAR(&routePattern); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); - zephir_is_iterable(&_0, 0, "phalcon/Cli/Router.zep", 225); - if (Z_TYPE_P(&_0) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _1) - { - ZEPHIR_INIT_NVAR(&route); - ZVAL_COPY(&route, _1); - ZEPHIR_CALL_METHOD(&_3$$3, &route, "getname", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_EQUAL(&_3$$3, &name)) { - RETURN_CCTOR(&route); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &_0, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&route, &_0, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_4$$5, &route, "getname", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_EQUAL(&_4$$5, &name)) { - RETURN_CCTOR(&route); - } - ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&route); - RETURN_MM_BOOL(0); + ZEPHIR_CALL_METHOD(&router, this_ptr, "getrouter", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&route, &router, "addhead", NULL, 0, &routePattern); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, &route, "getrouteid", NULL, 0); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("handlers"), &_0, handler); + RETURN_CCTOR(&route); } -static PHP_METHOD(Phalcon_Cli_Router, getRoutes) +static PHP_METHOD(Phalcon_Mvc_Micro, map) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *routePattern_param = NULL, *handler, handler_sub, router, route, _0; + zval routePattern; zval *this_ptr = getThis(); + ZVAL_UNDEF(&routePattern); + ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&router); + ZVAL_UNDEF(&route); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(routePattern) + Z_PARAM_ZVAL(handler) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "routes"); -} - -static PHP_METHOD(Phalcon_Cli_Router, getTaskName) -{ - zval *this_ptr = getThis(); - + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &routePattern_param, &handler); + if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { + zephir_get_strval(&routePattern, routePattern_param); + } else { + ZEPHIR_INIT_VAR(&routePattern); + } - RETURN_MEMBER(getThis(), "task"); + ZEPHIR_CALL_METHOD(&router, this_ptr, "getrouter", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&route, &router, "add", NULL, 0, &routePattern); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, &route, "getrouteid", NULL, 0); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("handlers"), &_0, handler); + RETURN_CCTOR(&route); } -static PHP_METHOD(Phalcon_Cli_Router, handle) +static PHP_METHOD(Phalcon_Mvc_Micro, mount) { - zval _34$$55; - zend_string *_8$$12, *_21$$32; - zend_ulong _7$$12, _20$$32; - zval _4$$9, _10$$15, _12$$18, _14$$21, _16$$24, _17$$29, _23$$35, _25$$38, _27$$41, _29$$44; - zend_bool _0$$3; + zend_bool _4$$7, _5$$7, _7$$15, _8$$15; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_37 = NULL; + zephir_fcall_cache_entry *_3 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *arguments = NULL, arguments_sub, __$true, __$false, __$null, moduleName, taskName, actionName, params, route, parts, pattern, routeFound, matches, paths, beforeMatch, converters, converter, part, position, matchPosition, strParams, _1$$3, *_2$$3, _3$$3, *_5$$12, _6$$12, _9$$15, _11$$18, _13$$21, _15$$24, *_18$$32, _19$$32, _22$$35, _24$$38, _26$$41, _28$$44, _30$$46, _31$$46, _32$$46, _33$$46, _35$$55, _36$$56, _38$$58; + zval *collection, collection_sub, mainHandler, handlers, lazyHandler, prefix, methods, pattern, subHandler, realHandler, prefixedPattern, route, handler, name, _0, *_1, _2, _6$$15; zval *this_ptr = getThis(); - ZVAL_UNDEF(&arguments_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&moduleName); - ZVAL_UNDEF(&taskName); - ZVAL_UNDEF(&actionName); - ZVAL_UNDEF(¶ms); - ZVAL_UNDEF(&route); - ZVAL_UNDEF(&parts); + ZVAL_UNDEF(&collection_sub); + ZVAL_UNDEF(&mainHandler); + ZVAL_UNDEF(&handlers); + ZVAL_UNDEF(&lazyHandler); + ZVAL_UNDEF(&prefix); + ZVAL_UNDEF(&methods); ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&routeFound); - ZVAL_UNDEF(&matches); - ZVAL_UNDEF(&paths); - ZVAL_UNDEF(&beforeMatch); - ZVAL_UNDEF(&converters); - ZVAL_UNDEF(&converter); - ZVAL_UNDEF(&part); - ZVAL_UNDEF(&position); - ZVAL_UNDEF(&matchPosition); - ZVAL_UNDEF(&strParams); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_6$$12); - ZVAL_UNDEF(&_9$$15); - ZVAL_UNDEF(&_11$$18); - ZVAL_UNDEF(&_13$$21); - ZVAL_UNDEF(&_15$$24); - ZVAL_UNDEF(&_19$$32); - ZVAL_UNDEF(&_22$$35); - ZVAL_UNDEF(&_24$$38); - ZVAL_UNDEF(&_26$$41); - ZVAL_UNDEF(&_28$$44); - ZVAL_UNDEF(&_30$$46); - ZVAL_UNDEF(&_31$$46); - ZVAL_UNDEF(&_32$$46); - ZVAL_UNDEF(&_33$$46); - ZVAL_UNDEF(&_35$$55); - ZVAL_UNDEF(&_36$$56); - ZVAL_UNDEF(&_38$$58); - ZVAL_UNDEF(&_4$$9); - ZVAL_UNDEF(&_10$$15); - ZVAL_UNDEF(&_12$$18); - ZVAL_UNDEF(&_14$$21); - ZVAL_UNDEF(&_16$$24); - ZVAL_UNDEF(&_17$$29); - ZVAL_UNDEF(&_23$$35); - ZVAL_UNDEF(&_25$$38); - ZVAL_UNDEF(&_27$$41); - ZVAL_UNDEF(&_29$$44); - ZVAL_UNDEF(&_34$$55); + ZVAL_UNDEF(&subHandler); + ZVAL_UNDEF(&realHandler); + ZVAL_UNDEF(&prefixedPattern); + ZVAL_UNDEF(&route); + ZVAL_UNDEF(&handler); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_6$$15); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(arguments) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(collection, phalcon_mvc_micro_collectioninterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &arguments); - if (!arguments) { - arguments = &arguments_sub; - arguments = &__$null; - } + zephir_fetch_params(1, 1, 0, &collection); - ZEPHIR_INIT_VAR(&routeFound); - ZVAL_BOOL(&routeFound, 0); - ZEPHIR_INIT_VAR(&parts); - array_init(&parts); - ZEPHIR_INIT_VAR(¶ms); - array_init(¶ms); - ZEPHIR_INIT_VAR(&matches); - ZVAL_NULL(&matches); - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$true); + ZEPHIR_CALL_METHOD(&mainHandler, collection, "gethandler", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_IS_EMPTY(&mainHandler))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_micro_exception_ce, "Collection requires a main handler", "phalcon/Mvc/Micro.zep", 915); + return; + } + ZEPHIR_CALL_METHOD(&handlers, collection, "gethandlers", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(!(zephir_fast_count_int(&handlers)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_micro_exception_ce, "There are no handlers to mount", "phalcon/Mvc/Micro.zep", 921); + return; + } + ZEPHIR_CALL_METHOD(&_0, collection, "islazy", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_0)) { + ZEPHIR_INIT_VAR(&lazyHandler); + object_init_ex(&lazyHandler, phalcon_mvc_micro_lazyloader_ce); + ZEPHIR_CALL_METHOD(NULL, &lazyHandler, "__construct", NULL, 425, &mainHandler); + zephir_check_call_status(); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$false); + ZEPHIR_CPY_WRT(&lazyHandler, &mainHandler); } - zephir_update_property_zval(this_ptr, ZEND_STRL("matchedRoute"), &__$null); - if (Z_TYPE_P(arguments) != IS_ARRAY) { - _0$$3 = Z_TYPE_P(arguments) != IS_STRING; - if (_0$$3) { - _0$$3 = Z_TYPE_P(arguments) != IS_NULL; - } - if (UNEXPECTED(_0$$3)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_router_exception_ce, "Arguments must be an array or string", "phalcon/Cli/Router.zep", 264); - return; - } - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); - zephir_is_iterable(&_1$$3, 0, "phalcon/Cli/Router.zep", 370); - if (Z_TYPE_P(&_1$$3) == IS_ARRAY) { - ZEND_HASH_REVERSE_FOREACH_VAL(Z_ARRVAL_P(&_1$$3), _2$$3) - { - ZEPHIR_INIT_NVAR(&route); - ZVAL_COPY(&route, _2$$3); - ZEPHIR_CALL_METHOD(&pattern, &route, "getcompiledpattern", NULL, 0); - zephir_check_call_status(); - if (zephir_memnstr_str(&pattern, SL("^"), "phalcon/Cli/Router.zep", 273)) { - ZEPHIR_INIT_NVAR(&routeFound); - zephir_preg_match(&routeFound, &pattern, arguments, &matches, 0, 0 , 0 ); + ZEPHIR_CALL_METHOD(&prefix, collection, "getprefix", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&handlers, 0, "phalcon/Mvc/Micro.zep", 979); + if (Z_TYPE_P(&handlers) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&handlers), _1) + { + ZEPHIR_INIT_NVAR(&handler); + ZVAL_COPY(&handler, _1); + if (UNEXPECTED(Z_TYPE_P(&handler) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_micro_exception_ce, "One of the registered handlers is invalid", "phalcon/Mvc/Micro.zep", 942); + return; + } + ZEPHIR_OBS_NVAR(&methods); + zephir_array_fetch_long(&methods, &handler, 0, PH_NOISY, "phalcon/Mvc/Micro.zep", 945); + ZEPHIR_OBS_NVAR(&pattern); + zephir_array_fetch_long(&pattern, &handler, 1, PH_NOISY, "phalcon/Mvc/Micro.zep", 946); + ZEPHIR_OBS_NVAR(&subHandler); + zephir_array_fetch_long(&subHandler, &handler, 2, PH_NOISY, "phalcon/Mvc/Micro.zep", 947); + ZEPHIR_OBS_NVAR(&name); + zephir_array_fetch_long(&name, &handler, 3, PH_NOISY, "phalcon/Mvc/Micro.zep", 948); + ZEPHIR_INIT_NVAR(&realHandler); + zephir_create_array(&realHandler, 2, 0); + zephir_array_fast_append(&realHandler, &lazyHandler); + zephir_array_fast_append(&realHandler, &subHandler); + if (!(ZEPHIR_IS_EMPTY(&prefix))) { + if (ZEPHIR_IS_STRING(&pattern, "/")) { + ZEPHIR_CPY_WRT(&prefixedPattern, &prefix); } else { - ZEPHIR_INIT_NVAR(&routeFound); - ZVAL_BOOL(&routeFound, ZEPHIR_IS_EQUAL(&pattern, arguments)); - } - if (zephir_is_true(&routeFound)) { - ZEPHIR_CALL_METHOD(&beforeMatch, &route, "getbeforematch", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&beforeMatch) != IS_NULL) { - if (UNEXPECTED(!(zephir_is_callable(&beforeMatch)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_router_exception_ce, "Before-Match callback is not callable in matched route", "phalcon/Cli/Router.zep", 292); - return; - } - ZEPHIR_INIT_NVAR(&_4$$9); - zephir_create_array(&_4$$9, 3, 0); - zephir_array_fast_append(&_4$$9, arguments); - zephir_array_fast_append(&_4$$9, &route); - zephir_array_fast_append(&_4$$9, this_ptr); - ZEPHIR_INIT_NVAR(&routeFound); - ZEPHIR_CALL_USER_FUNC_ARRAY(&routeFound, &beforeMatch, &_4$$9); - zephir_check_call_status(); - } - } - if (zephir_is_true(&routeFound)) { - ZEPHIR_CALL_METHOD(&paths, &route, "getpaths", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&parts, &paths); - if (Z_TYPE_P(&matches) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&converters, &route, "getconverters", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&paths, 0, "phalcon/Cli/Router.zep", 357); - if (Z_TYPE_P(&paths) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&paths), _7$$12, _8$$12, _5$$12) - { - ZEPHIR_INIT_NVAR(&part); - if (_8$$12 != NULL) { - ZVAL_STR_COPY(&part, _8$$12); - } else { - ZVAL_LONG(&part, _7$$12); - } - ZEPHIR_INIT_NVAR(&position); - ZVAL_COPY(&position, _5$$12); - ZEPHIR_OBS_NVAR(&matchPosition); - if (zephir_array_isset_fetch(&matchPosition, &matches, &position, 0)) { - ZEPHIR_OBS_NVAR(&converter); - if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { - ZEPHIR_INIT_NVAR(&_9$$15); - ZEPHIR_INIT_NVAR(&_10$$15); - zephir_create_array(&_10$$15, 1, 0); - zephir_array_fast_append(&_10$$15, &matchPosition); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_9$$15, &converter, &_10$$15); - zephir_check_call_status(); - zephir_array_update_zval(&parts, &part, &_9$$15, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&parts, &part, &matchPosition, PH_COPY | PH_SEPARATE); - } - } else { - ZEPHIR_OBS_NVAR(&converter); - if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { - ZEPHIR_INIT_NVAR(&_11$$18); - ZEPHIR_INIT_NVAR(&_12$$18); - zephir_create_array(&_12$$18, 1, 0); - zephir_array_fast_append(&_12$$18, &position); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_11$$18, &converter, &_12$$18); - zephir_check_call_status(); - zephir_array_update_zval(&parts, &part, &_11$$18, PH_COPY | PH_SEPARATE); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &paths, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_6$$12, &paths, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_6$$12)) { - break; - } - ZEPHIR_CALL_METHOD(&part, &paths, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&position, &paths, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&matchPosition); - if (zephir_array_isset_fetch(&matchPosition, &matches, &position, 0)) { - ZEPHIR_OBS_NVAR(&converter); - if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { - ZEPHIR_INIT_NVAR(&_13$$21); - ZEPHIR_INIT_NVAR(&_14$$21); - zephir_create_array(&_14$$21, 1, 0); - zephir_array_fast_append(&_14$$21, &matchPosition); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_13$$21, &converter, &_14$$21); - zephir_check_call_status(); - zephir_array_update_zval(&parts, &part, &_13$$21, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&parts, &part, &matchPosition, PH_COPY | PH_SEPARATE); - } - } else { - ZEPHIR_OBS_NVAR(&converter); - if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { - ZEPHIR_INIT_NVAR(&_15$$24); - ZEPHIR_INIT_NVAR(&_16$$24); - zephir_create_array(&_16$$24, 1, 0); - zephir_array_fast_append(&_16$$24, &position); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_15$$24, &converter, &_16$$24); - zephir_check_call_status(); - zephir_array_update_zval(&parts, &part, &_15$$24, PH_COPY | PH_SEPARATE); - } - } - ZEPHIR_CALL_METHOD(NULL, &paths, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&position); - ZEPHIR_INIT_NVAR(&part); - zephir_update_property_zval(this_ptr, ZEND_STRL("matches"), &matches); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("matchedRoute"), &route); - break; + ZEPHIR_INIT_NVAR(&prefixedPattern); + ZEPHIR_CONCAT_VV(&prefixedPattern, &prefix, &pattern); } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "rewind", NULL, 0); + } else { + ZEPHIR_CPY_WRT(&prefixedPattern, &pattern); + } + ZEPHIR_CALL_METHOD(&route, this_ptr, "map", &_3, 0, &prefixedPattern, &realHandler); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3$$3, &_1$$3, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&route, &_1$$3, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&pattern, &route, "getcompiledpattern", NULL, 0); - zephir_check_call_status(); - if (zephir_memnstr_str(&pattern, SL("^"), "phalcon/Cli/Router.zep", 273)) { - ZEPHIR_INIT_NVAR(&routeFound); - zephir_preg_match(&routeFound, &pattern, arguments, &matches, 0, 0 , 0 ); - } else { - ZEPHIR_INIT_NVAR(&routeFound); - ZVAL_BOOL(&routeFound, ZEPHIR_IS_EQUAL(&pattern, arguments)); - } - if (zephir_is_true(&routeFound)) { - ZEPHIR_CALL_METHOD(&beforeMatch, &route, "getbeforematch", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&beforeMatch) != IS_NULL) { - if (UNEXPECTED(!(zephir_is_callable(&beforeMatch)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_router_exception_ce, "Before-Match callback is not callable in matched route", "phalcon/Cli/Router.zep", 292); - return; - } - ZEPHIR_INIT_NVAR(&_17$$29); - zephir_create_array(&_17$$29, 3, 0); - zephir_array_fast_append(&_17$$29, arguments); - zephir_array_fast_append(&_17$$29, &route); - zephir_array_fast_append(&_17$$29, this_ptr); - ZEPHIR_INIT_NVAR(&routeFound); - ZEPHIR_CALL_USER_FUNC_ARRAY(&routeFound, &beforeMatch, &_17$$29); - zephir_check_call_status(); - } - } - if (zephir_is_true(&routeFound)) { - ZEPHIR_CALL_METHOD(&paths, &route, "getpaths", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&parts, &paths); - if (Z_TYPE_P(&matches) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&converters, &route, "getconverters", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&paths, 0, "phalcon/Cli/Router.zep", 357); - if (Z_TYPE_P(&paths) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&paths), _20$$32, _21$$32, _18$$32) - { - ZEPHIR_INIT_NVAR(&part); - if (_21$$32 != NULL) { - ZVAL_STR_COPY(&part, _21$$32); - } else { - ZVAL_LONG(&part, _20$$32); - } - ZEPHIR_INIT_NVAR(&position); - ZVAL_COPY(&position, _18$$32); - ZEPHIR_OBS_NVAR(&matchPosition); - if (zephir_array_isset_fetch(&matchPosition, &matches, &position, 0)) { - ZEPHIR_OBS_NVAR(&converter); - if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { - ZEPHIR_INIT_NVAR(&_22$$35); - ZEPHIR_INIT_NVAR(&_23$$35); - zephir_create_array(&_23$$35, 1, 0); - zephir_array_fast_append(&_23$$35, &matchPosition); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_22$$35, &converter, &_23$$35); - zephir_check_call_status(); - zephir_array_update_zval(&parts, &part, &_22$$35, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&parts, &part, &matchPosition, PH_COPY | PH_SEPARATE); - } - } else { - ZEPHIR_OBS_NVAR(&converter); - if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { - ZEPHIR_INIT_NVAR(&_24$$38); - ZEPHIR_INIT_NVAR(&_25$$38); - zephir_create_array(&_25$$38, 1, 0); - zephir_array_fast_append(&_25$$38, &position); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_24$$38, &converter, &_25$$38); - zephir_check_call_status(); - zephir_array_update_zval(&parts, &part, &_24$$38, PH_COPY | PH_SEPARATE); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &paths, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_19$$32, &paths, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_19$$32)) { - break; - } - ZEPHIR_CALL_METHOD(&part, &paths, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&position, &paths, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&matchPosition); - if (zephir_array_isset_fetch(&matchPosition, &matches, &position, 0)) { - ZEPHIR_OBS_NVAR(&converter); - if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { - ZEPHIR_INIT_NVAR(&_26$$41); - ZEPHIR_INIT_NVAR(&_27$$41); - zephir_create_array(&_27$$41, 1, 0); - zephir_array_fast_append(&_27$$41, &matchPosition); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_26$$41, &converter, &_27$$41); - zephir_check_call_status(); - zephir_array_update_zval(&parts, &part, &_26$$41, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&parts, &part, &matchPosition, PH_COPY | PH_SEPARATE); - } - } else { - ZEPHIR_OBS_NVAR(&converter); - if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { - ZEPHIR_INIT_NVAR(&_28$$44); - ZEPHIR_INIT_NVAR(&_29$$44); - zephir_create_array(&_29$$44, 1, 0); - zephir_array_fast_append(&_29$$44, &position); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_28$$44, &converter, &_29$$44); - zephir_check_call_status(); - zephir_array_update_zval(&parts, &part, &_28$$44, PH_COPY | PH_SEPARATE); - } - } - ZEPHIR_CALL_METHOD(NULL, &paths, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&position); - ZEPHIR_INIT_NVAR(&part); - zephir_update_property_zval(this_ptr, ZEND_STRL("matches"), &matches); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("matchedRoute"), &route); - break; - } - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "next", NULL, 0); - zephir_check_call_status(); + _4$$7 = Z_TYPE_P(&methods) == IS_STRING; + if (_4$$7) { + _4$$7 = !ZEPHIR_IS_STRING(&methods, ""); } - } - ZEPHIR_INIT_NVAR(&route); - if (zephir_is_true(&routeFound)) { - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$false); + _5$$7 = _4$$7; + if (!(_5$$7)) { + _5$$7 = Z_TYPE_P(&methods) == IS_ARRAY; } - } else { - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$false); + if (_5$$7) { + ZEPHIR_CALL_METHOD(NULL, &route, "via", NULL, 0, &methods); + zephir_check_call_status(); } - zephir_read_property(&_30$$46, this_ptr, ZEND_STRL("defaultModule"), PH_NOISY_CC | PH_READONLY); - zephir_update_property_zval(this_ptr, ZEND_STRL("module"), &_30$$46); - zephir_read_property(&_31$$46, this_ptr, ZEND_STRL("defaultTask"), PH_NOISY_CC | PH_READONLY); - zephir_update_property_zval(this_ptr, ZEND_STRL("task"), &_31$$46); - zephir_read_property(&_32$$46, this_ptr, ZEND_STRL("defaultAction"), PH_NOISY_CC | PH_READONLY); - zephir_update_property_zval(this_ptr, ZEND_STRL("action"), &_32$$46); - zephir_read_property(&_33$$46, this_ptr, ZEND_STRL("defaultParams"), PH_NOISY_CC | PH_READONLY); - zephir_update_property_zval(this_ptr, ZEND_STRL("params"), &_33$$46); - RETURN_THIS(); - } - } else { - ZEPHIR_CPY_WRT(&parts, arguments); - } - ZEPHIR_INIT_VAR(&moduleName); - ZVAL_NULL(&moduleName); - ZEPHIR_INIT_VAR(&taskName); - ZVAL_NULL(&taskName); - ZEPHIR_INIT_VAR(&actionName); - ZVAL_NULL(&actionName); - ZEPHIR_OBS_NVAR(&moduleName); - if (zephir_array_isset_string_fetch(&moduleName, &parts, SL("module"), 0)) { - zephir_array_unset_string(&parts, SL("module"), PH_SEPARATE); - } else { - ZEPHIR_OBS_NVAR(&moduleName); - zephir_read_property(&moduleName, this_ptr, ZEND_STRL("defaultModule"), PH_NOISY_CC); - } - ZEPHIR_OBS_NVAR(&taskName); - if (zephir_array_isset_string_fetch(&taskName, &parts, SL("task"), 0)) { - zephir_array_unset_string(&parts, SL("task"), PH_SEPARATE); - } else { - ZEPHIR_OBS_NVAR(&taskName); - zephir_read_property(&taskName, this_ptr, ZEND_STRL("defaultTask"), PH_NOISY_CC); - } - ZEPHIR_OBS_NVAR(&actionName); - if (zephir_array_isset_string_fetch(&actionName, &parts, SL("action"), 0)) { - zephir_array_unset_string(&parts, SL("action"), PH_SEPARATE); - } else { - ZEPHIR_OBS_NVAR(&actionName); - zephir_read_property(&actionName, this_ptr, ZEND_STRL("defaultAction"), PH_NOISY_CC); - } - ZEPHIR_OBS_NVAR(¶ms); - if (zephir_array_isset_string_fetch(¶ms, &parts, SL("params"), 0)) { - if (Z_TYPE_P(¶ms) != IS_ARRAY) { - zephir_cast_to_string(&_34$$55, ¶ms); - ZVAL_LONG(&_35$$55, 1); - ZEPHIR_INIT_VAR(&strParams); - zephir_substr(&strParams, &_34$$55, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - if (zephir_is_true(&strParams)) { - ZEPHIR_CALL_CE_STATIC(&_36$$56, phalcon_cli_router_route_ce, "getdelimiter", &_37, 0); + if (Z_TYPE_P(&name) == IS_STRING) { + ZEPHIR_CALL_METHOD(NULL, &route, "setname", NULL, 0, &name); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(¶ms); - zephir_fast_explode(¶ms, &_36$$56, &strParams, LONG_MAX); - } else { - ZEPHIR_INIT_NVAR(¶ms); - array_init(¶ms); } - } - zephir_array_unset_string(&parts, SL("params"), PH_SEPARATE); - } - if (zephir_fast_count_int(¶ms)) { - ZEPHIR_INIT_VAR(&_38$$58); - zephir_fast_array_merge(&_38$$58, ¶ms, &parts); - ZEPHIR_CPY_WRT(¶ms, &_38$$58); + } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CPY_WRT(¶ms, &parts); + ZEPHIR_CALL_METHOD(NULL, &handlers, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &handlers, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&handler, &handlers, "current", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&handler) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_micro_exception_ce, "One of the registered handlers is invalid", "phalcon/Mvc/Micro.zep", 942); + return; + } + ZEPHIR_OBS_NVAR(&methods); + zephir_array_fetch_long(&methods, &handler, 0, PH_NOISY, "phalcon/Mvc/Micro.zep", 945); + ZEPHIR_OBS_NVAR(&pattern); + zephir_array_fetch_long(&pattern, &handler, 1, PH_NOISY, "phalcon/Mvc/Micro.zep", 946); + ZEPHIR_OBS_NVAR(&subHandler); + zephir_array_fetch_long(&subHandler, &handler, 2, PH_NOISY, "phalcon/Mvc/Micro.zep", 947); + ZEPHIR_OBS_NVAR(&name); + zephir_array_fetch_long(&name, &handler, 3, PH_NOISY, "phalcon/Mvc/Micro.zep", 948); + ZEPHIR_INIT_NVAR(&_6$$15); + zephir_create_array(&_6$$15, 2, 0); + zephir_array_fast_append(&_6$$15, &lazyHandler); + zephir_array_fast_append(&_6$$15, &subHandler); + ZEPHIR_CPY_WRT(&realHandler, &_6$$15); + if (!(ZEPHIR_IS_EMPTY(&prefix))) { + if (ZEPHIR_IS_STRING(&pattern, "/")) { + ZEPHIR_CPY_WRT(&prefixedPattern, &prefix); + } else { + ZEPHIR_INIT_NVAR(&prefixedPattern); + ZEPHIR_CONCAT_VV(&prefixedPattern, &prefix, &pattern); + } + } else { + ZEPHIR_CPY_WRT(&prefixedPattern, &pattern); + } + ZEPHIR_CALL_METHOD(&route, this_ptr, "map", &_3, 0, &prefixedPattern, &realHandler); + zephir_check_call_status(); + _7$$15 = Z_TYPE_P(&methods) == IS_STRING; + if (_7$$15) { + _7$$15 = !ZEPHIR_IS_STRING(&methods, ""); + } + _8$$15 = _7$$15; + if (!(_8$$15)) { + _8$$15 = Z_TYPE_P(&methods) == IS_ARRAY; + } + if (_8$$15) { + ZEPHIR_CALL_METHOD(NULL, &route, "via", NULL, 0, &methods); + zephir_check_call_status(); + } + if (Z_TYPE_P(&name) == IS_STRING) { + ZEPHIR_CALL_METHOD(NULL, &route, "setname", NULL, 0, &name); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, &handlers, "next", NULL, 0); + zephir_check_call_status(); + } } - zephir_update_property_zval(this_ptr, ZEND_STRL("module"), &moduleName); - zephir_update_property_zval(this_ptr, ZEND_STRL("task"), &taskName); - zephir_update_property_zval(this_ptr, ZEND_STRL("action"), &actionName); - zephir_update_property_zval(this_ptr, ZEND_STRL("params"), ¶ms); - ZEPHIR_MM_RESTORE(); + ZEPHIR_INIT_NVAR(&handler); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Cli_Router, setDefaultAction) +static PHP_METHOD(Phalcon_Mvc_Micro, notFound) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *actionName_param = NULL; - zval actionName; + zval *handler, handler_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&actionName); + ZVAL_UNDEF(&handler_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(actionName) + Z_PARAM_ZVAL(handler) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &actionName_param); - zephir_get_strval(&actionName, actionName_param); + zephir_fetch_params_without_memory_grow(1, 0, &handler); - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultAction"), &actionName); - ZEPHIR_MM_RESTORE(); + zephir_update_property_zval(this_ptr, ZEND_STRL("notFoundHandler"), handler); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Cli_Router, setDefaultModule) +static PHP_METHOD(Phalcon_Mvc_Micro, offsetExists) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *moduleName_param = NULL; - zval moduleName; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *alias, alias_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&moduleName); + ZVAL_UNDEF(&alias_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(moduleName) + Z_PARAM_ZVAL(alias) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &moduleName_param); - zephir_get_strval(&moduleName, moduleName_param); + zephir_fetch_params(1, 1, 0, &alias); - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultModule"), &moduleName); - ZEPHIR_MM_RESTORE(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "hasservice", NULL, 0, alias); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Cli_Router, setDefaults) +static PHP_METHOD(Phalcon_Mvc_Micro, offsetGet) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *defaults_param = NULL, module, task, action, params; - zval defaults; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *alias, alias_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&defaults); - ZVAL_UNDEF(&module); - ZVAL_UNDEF(&task); - ZVAL_UNDEF(&action); - ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&alias_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(defaults) + Z_PARAM_ZVAL(alias) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &defaults_param); - ZEPHIR_OBS_COPY_OR_DUP(&defaults, defaults_param); + zephir_fetch_params(1, 1, 0, &alias); - if (zephir_array_isset_string_fetch(&module, &defaults, SL("module"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultModule"), &module); - } - if (zephir_array_isset_string_fetch(&task, &defaults, SL("task"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultTask"), &task); - } - if (zephir_array_isset_string_fetch(&action, &defaults, SL("action"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultAction"), &action); - } - if (zephir_array_isset_string_fetch(¶ms, &defaults, SL("params"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultParams"), ¶ms); - } - RETURN_THIS(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getservice", NULL, 0, alias); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Cli_Router, setDefaultTask) +static PHP_METHOD(Phalcon_Mvc_Micro, offsetSet) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *taskName_param = NULL; - zval taskName; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *alias, alias_sub, *definition, definition_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&taskName); + ZVAL_UNDEF(&alias_sub); + ZVAL_UNDEF(&definition_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(taskName) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(alias) + Z_PARAM_ZVAL(definition) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &taskName_param); - zephir_get_strval(&taskName, taskName_param); + zephir_fetch_params(1, 2, 0, &alias, &definition); - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultTask"), &taskName); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setservice", NULL, 0, alias, definition); + zephir_check_call_status(); ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Cli_Router, wasMatched) +static PHP_METHOD(Phalcon_Mvc_Micro, offsetUnset) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *alias, alias_sub, container, _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&alias_sub); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(alias) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "wasMatched"); -} + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &alias); -zend_object *zephir_init_properties_Phalcon_Cli_Router(zend_class_entry *class_type) -{ - zval _0, _2, _4, _1$$3, _3$$4, _5$$5; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("routes"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("params"), &_3$$4); - } - zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("defaultParams"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_4) == IS_NULL) { - ZEPHIR_INIT_VAR(&_5$$5); - array_init(&_5$$5); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("defaultParams"), &_5$$5); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + if (Z_TYPE_P(&container) != IS_OBJECT) { + ZEPHIR_INIT_NVAR(&container); + object_init_ex(&container, phalcon_di_factorydefault_ce); + ZEPHIR_CALL_METHOD(NULL, &container, "__construct", NULL, 421); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), &container); } + ZEPHIR_CALL_METHOD(NULL, &container, "remove", NULL, 426, alias); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } +static PHP_METHOD(Phalcon_Mvc_Micro, options) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *routePattern_param = NULL, *handler, handler_sub, router, route, _0; + zval routePattern; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&routePattern); + ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&router); + ZVAL_UNDEF(&route); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(routePattern) + Z_PARAM_ZVAL(handler) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &routePattern_param, &handler); + if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { + zephir_get_strval(&routePattern, routePattern_param); + } else { + ZEPHIR_INIT_VAR(&routePattern); + } - -ZEPHIR_INIT_CLASS(Phalcon_Cli_RouterInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Cli, RouterInterface, phalcon, cli_routerinterface, phalcon_cli_routerinterface_method_entry); - - return SUCCESS; + ZEPHIR_CALL_METHOD(&router, this_ptr, "getrouter", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&route, &router, "addoptions", NULL, 0, &routePattern); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, &route, "getrouteid", NULL, 0); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("handlers"), &_0, handler); + RETURN_CCTOR(&route); } -ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, add); -ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, getActionName); -ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, getMatchedRoute); -ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, getMatches); -ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, getModuleName); -ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, getParams); -ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, getRouteById); -ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, getRouteByName); -ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, getRoutes); -ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, getTaskName); -ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, handle); -ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, setDefaultAction); -ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, setDefaultModule); -ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, setDefaults); -ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, setDefaultTask); -ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, wasMatched); - - +static PHP_METHOD(Phalcon_Mvc_Micro, patch) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *routePattern_param = NULL, *handler, handler_sub, router, route, _0; + zval routePattern; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&routePattern); + ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&router); + ZVAL_UNDEF(&route); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(routePattern) + Z_PARAM_ZVAL(handler) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &routePattern_param, &handler); + if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { + zephir_get_strval(&routePattern, routePattern_param); + } else { + ZEPHIR_INIT_VAR(&routePattern); + } - -ZEPHIR_INIT_CLASS(Phalcon_Cli_Task) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cli, Task, phalcon, cli_task, phalcon_di_injectable_ce, phalcon_cli_task_method_entry, 0); - - zend_declare_property_null(phalcon_cli_task_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_cli_task_ce, 1, phalcon_cli_taskinterface_ce); - zend_class_implements(phalcon_cli_task_ce, 1, phalcon_events_eventsawareinterface_ce); - return SUCCESS; + ZEPHIR_CALL_METHOD(&router, this_ptr, "getrouter", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&route, &router, "addpatch", NULL, 0, &routePattern); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, &route, "getrouteid", NULL, 0); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("handlers"), &_0, handler); + RETURN_CCTOR(&route); } -static PHP_METHOD(Phalcon_Cli_Task, __construct) +static PHP_METHOD(Phalcon_Mvc_Micro, post) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *routePattern_param = NULL, *handler, handler_sub, router, route, _0; + zval routePattern; zval *this_ptr = getThis(); + ZVAL_UNDEF(&routePattern); + ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&router); + ZVAL_UNDEF(&route); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(routePattern) + Z_PARAM_ZVAL(handler) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("onconstruct")) == SUCCESS)) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "onconstruct", NULL, 0); - zephir_check_call_status(); + zephir_fetch_params(1, 2, 0, &routePattern_param, &handler); + if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { + zephir_get_strval(&routePattern, routePattern_param); + } else { + ZEPHIR_INIT_VAR(&routePattern); } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Cli_Task, getEventsManager) -{ - zval *this_ptr = getThis(); - - RETURN_MEMBER(getThis(), "eventsManager"); + ZEPHIR_CALL_METHOD(&router, this_ptr, "getrouter", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&route, &router, "addpost", NULL, 0, &routePattern); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, &route, "getrouteid", NULL, 0); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("handlers"), &_0, handler); + RETURN_CCTOR(&route); } -static PHP_METHOD(Phalcon_Cli_Task, setEventsManager) +static PHP_METHOD(Phalcon_Mvc_Micro, put) { - zval *eventsManager, eventsManager_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *routePattern_param = NULL, *handler, handler_sub, router, route, _0; + zval routePattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&eventsManager_sub); + ZVAL_UNDEF(&routePattern); + ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&router); + ZVAL_UNDEF(&route); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(routePattern) + Z_PARAM_ZVAL(handler) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &routePattern_param, &handler); + if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { + zephir_get_strval(&routePattern, routePattern_param); + } else { + ZEPHIR_INIT_VAR(&routePattern); + } - zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); + ZEPHIR_CALL_METHOD(&router, this_ptr, "getrouter", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&route, &router, "addput", NULL, 0, &routePattern); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, &route, "getrouteid", NULL, 0); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("handlers"), &_0, handler); + RETURN_CCTOR(&route); } +static PHP_METHOD(Phalcon_Mvc_Micro, setActiveHandler) +{ + zval *activeHandler, activeHandler_sub; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&activeHandler_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(activeHandler) + ZEND_PARSE_PARAMETERS_END(); #endif + zephir_fetch_params_without_memory_grow(1, 0, &activeHandler); - -ZEPHIR_INIT_CLASS(Phalcon_Cli_TaskInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Cli, TaskInterface, phalcon, cli_taskinterface, NULL); - - return SUCCESS; + zephir_update_property_zval(this_ptr, ZEND_STRL("activeHandler"), activeHandler); } +static PHP_METHOD(Phalcon_Mvc_Micro, setDI) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *container, container_sub, _0, _1, _2$$3; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&container_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &container); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "application"); + ZEPHIR_CALL_METHOD(&_0, container, "has", NULL, 0, &_1); + zephir_check_call_status(); + if (!(zephir_is_true(&_0))) { + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "application"); + ZEPHIR_CALL_METHOD(NULL, container, "set", NULL, 0, &_2$$3, this_ptr); + zephir_check_call_status(); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); + ZEPHIR_MM_RESTORE(); +} -ZEPHIR_INIT_CLASS(Phalcon_Cli_Console_Exception) +static PHP_METHOD(Phalcon_Mvc_Micro, setModelBinder) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cli\\Console, Exception, phalcon, cli_console_exception, phalcon_application_exception_ce, NULL, 0); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *modelBinder, modelBinder_sub, *cache = NULL, cache_sub, __$null, _0$$3; + zval *this_ptr = getThis(); - return SUCCESS; -} + ZVAL_UNDEF(&modelBinder_sub); + ZVAL_UNDEF(&cache_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_OBJECT_OF_CLASS(modelBinder, phalcon_mvc_model_binderinterface_ce) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(cache) + ZEND_PARSE_PARAMETERS_END(); +#endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &modelBinder, &cache); + if (!cache) { + cache = &cache_sub; + ZEPHIR_CPY_WRT(cache, &__$null); + } else { + ZEPHIR_SEPARATE_PARAM(cache); + } -#ifdef HAVE_CONFIG_H + if (Z_TYPE_P(cache) == IS_STRING) { + ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "getservice", NULL, 0, cache); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(cache, &_0$$3); + } + if (Z_TYPE_P(cache) != IS_NULL) { + ZEPHIR_CALL_METHOD(NULL, modelBinder, "setcache", NULL, 0, cache); + zephir_check_call_status(); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("modelBinder"), modelBinder); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Mvc_Micro, setResponseHandler) +{ + zval *handler, handler_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&handler_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(handler) + ZEND_PARSE_PARAMETERS_END(); #endif + zephir_fetch_params_without_memory_grow(1, 0, &handler); + zephir_update_property_zval(this_ptr, ZEND_STRL("responseHandler"), handler); + RETURN_THISW(); +} -ZEPHIR_INIT_CLASS(Phalcon_Cli_Dispatcher_Exception) +static PHP_METHOD(Phalcon_Mvc_Micro, setService) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cli\\Dispatcher, Exception, phalcon, cli_dispatcher_exception, phalcon_dispatcher_exception_ce, NULL, 0); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool shared; + zval *serviceName_param = NULL, *definition, definition_sub, *shared_param = NULL, container, _0; + zval serviceName; + zval *this_ptr = getThis(); - return SUCCESS; -} + ZVAL_UNDEF(&serviceName); + ZVAL_UNDEF(&definition_sub); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(serviceName) + Z_PARAM_ZVAL(definition) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(shared) + ZEND_PARSE_PARAMETERS_END(); +#endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &serviceName_param, &definition, &shared_param); + if (UNEXPECTED(Z_TYPE_P(serviceName_param) != IS_STRING && Z_TYPE_P(serviceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'serviceName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(serviceName_param) == IS_STRING)) { + zephir_get_strval(&serviceName, serviceName_param); + } else { + ZEPHIR_INIT_VAR(&serviceName); + } + if (!shared_param) { + shared = 0; + } else { + shared = zephir_get_boolval(shared_param); + } -#ifdef HAVE_CONFIG_H -#endif + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + if (Z_TYPE_P(&container) != IS_OBJECT) { + ZEPHIR_INIT_NVAR(&container); + object_init_ex(&container, phalcon_di_factorydefault_ce); + ZEPHIR_CALL_METHOD(NULL, &container, "__construct", NULL, 421); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), &container); + } + if (shared) { + ZVAL_BOOL(&_0, 1); + } else { + ZVAL_BOOL(&_0, 0); + } + ZEPHIR_RETURN_CALL_METHOD(&container, "set", NULL, 427, &serviceName, definition, &_0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Mvc_Micro, stop) +{ + zval __$true, __$false; + zval *this_ptr = getThis(); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$false); + } +} -ZEPHIR_INIT_CLASS(Phalcon_Cli_Router_Exception) +zend_object *zephir_init_properties_Phalcon_Mvc_Micro(zend_class_entry *class_type) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cli\\Router, Exception, phalcon, cli_router_exception, phalcon_exception_ce, NULL, 0); + zval _0, _2, _4, _6, _8, _1$$3, _3$$4, _5$$5, _7$$6, _9$$7; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_9$$7); + - return SUCCESS; + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("handlers"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("handlers"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("finishHandlers"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("finishHandlers"), &_3$$4); + } + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("beforeHandlers"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_4) == IS_NULL) { + ZEPHIR_INIT_VAR(&_5$$5); + array_init(&_5$$5); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("beforeHandlers"), &_5$$5); + } + zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("afterHandlers"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_6) == IS_NULL) { + ZEPHIR_INIT_VAR(&_7$$6); + array_init(&_7$$6); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("afterHandlers"), &_7$$6); + } + zephir_read_property_ex(&_8, this_ptr, ZEND_STRL("afterBindingHandlers"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_8) == IS_NULL) { + ZEPHIR_INIT_VAR(&_9$$7); + array_init(&_9$$7); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("afterBindingHandlers"), &_9$$7); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } } @@ -44723,4461 +42418,4453 @@ ZEPHIR_INIT_CLASS(Phalcon_Cli_Router_Exception) -ZEPHIR_INIT_CLASS(Phalcon_Cli_Router_Route) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Cli\\Router, Route, phalcon, cli_router_route, phalcon_cli_router_route_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc, Model, phalcon, mvc_model, phalcon_di_abstractinjectionaware_ce, phalcon_mvc_model_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - zend_declare_property_null(phalcon_cli_router_route_ce, SL("beforeMatch"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_cli_router_route_ce, SL("compiledPattern"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_cli_router_route_ce, SL("converters"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_cli_router_route_ce, SL("delimiter"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_cli_router_route_ce, SL("delimiterPath"), " ", ZEND_ACC_PROTECTED|ZEND_ACC_STATIC); - zend_declare_property_null(phalcon_cli_router_route_ce, SL("description"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_cli_router_route_ce, SL("id"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_cli_router_route_ce, SL("name"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_cli_router_route_ce, SL("paths"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_cli_router_route_ce, SL("pattern"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_cli_router_route_ce, SL("uniqueId"), 0, ZEND_ACC_PROTECTED|ZEND_ACC_STATIC); - phalcon_cli_router_route_ce->create_object = zephir_init_properties_Phalcon_Cli_Router_Route; - zephir_declare_class_constant_string(phalcon_cli_router_route_ce, SL("DEFAULT_DELIMITER"), " "); + zend_declare_property_long(phalcon_mvc_model_ce, SL("dirtyState"), 1, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_ce, SL("dirtyRelated"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_ce, SL("errorMessages"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_ce, SL("modelsManager"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_ce, SL("modelsMetaData"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_ce, SL("related"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_mvc_model_ce, SL("operationMade"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_ce, SL("oldSnapshot"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_model_ce, SL("skipped"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_ce, SL("snapshot"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_ce, SL("transaction"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_ce, SL("uniqueKey"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_ce, SL("uniqueParams"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_ce, SL("uniqueTypes"), ZEND_ACC_PROTECTED); + phalcon_mvc_model_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model; + zephir_declare_class_constant_long(phalcon_mvc_model_ce, SL("DIRTY_STATE_DETACHED"), 2); - zend_class_implements(phalcon_cli_router_route_ce, 1, phalcon_cli_router_routeinterface_ce); + zephir_declare_class_constant_long(phalcon_mvc_model_ce, SL("DIRTY_STATE_PERSISTENT"), 0); + + zephir_declare_class_constant_long(phalcon_mvc_model_ce, SL("DIRTY_STATE_TRANSIENT"), 1); + + zephir_declare_class_constant_long(phalcon_mvc_model_ce, SL("OP_CREATE"), 1); + + zephir_declare_class_constant_long(phalcon_mvc_model_ce, SL("OP_DELETE"), 3); + + zephir_declare_class_constant_long(phalcon_mvc_model_ce, SL("OP_NONE"), 0); + + zephir_declare_class_constant_long(phalcon_mvc_model_ce, SL("OP_UPDATE"), 2); + + zephir_declare_class_constant_string(phalcon_mvc_model_ce, SL("TRANSACTION_INDEX"), "transaction"); + + zend_class_implements(phalcon_mvc_model_ce, 1, phalcon_mvc_entityinterface_ce); + zend_class_implements(phalcon_mvc_model_ce, 1, phalcon_mvc_modelinterface_ce); + zend_class_implements(phalcon_mvc_model_ce, 1, phalcon_mvc_model_resultinterface_ce); + zend_class_implements(phalcon_mvc_model_ce, 1, zend_ce_serializable); + zend_class_implements(phalcon_mvc_model_ce, 1, zephir_get_internal_ce(SL("jsonserializable"))); return SUCCESS; } -static PHP_METHOD(Phalcon_Cli_Router_Route, __construct) +static PHP_METHOD(Phalcon_Mvc_Model, getTransaction) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "transaction"); +} + +static PHP_METHOD(Phalcon_Mvc_Model, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, routeId, uniqueId, _0, _1; - zval pattern; + zephir_fcall_cache_entry *_0 = NULL, *_3 = NULL; + zval *data = NULL, data_sub, *container = NULL, container_sub, *modelsManager = NULL, modelsManager_sub, __$null, _1$$4, _2$$4, _4$$4, _5$$5, _6$$5; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); + ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&container_sub); + ZVAL_UNDEF(&modelsManager_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&routeId); - ZVAL_UNDEF(&uniqueId); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_6$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(pattern) + ZEND_PARSE_PARAMETERS_START(0, 3) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_ZVAL_OR_NULL(data) + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(container, phalcon_di_diinterface_ce) + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(modelsManager, phalcon_mvc_model_managerinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &pattern_param, &paths); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); - RETURN_MM_NULL(); + zephir_fetch_params(1, 0, 3, &data, &container, &modelsManager); + if (!data) { + data = &data_sub; + data = &__$null; } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); + if (!container) { + container = &container_sub; + ZEPHIR_CPY_WRT(container, &__$null); } else { - ZEPHIR_INIT_VAR(&pattern); + ZEPHIR_SEPARATE_PARAM(container); } - if (!paths) { - paths = &paths_sub; - paths = &__$null; + if (!modelsManager) { + modelsManager = &modelsManager_sub; + ZEPHIR_CPY_WRT(modelsManager, &__$null); + } else { + ZEPHIR_SEPARATE_PARAM(modelsManager); } - ZEPHIR_OBS_VAR(&_0); - zephir_read_static_property_ce(&_0, phalcon_cli_router_route_ce, SL("delimiterPath"), PH_NOISY_CC); - zephir_update_property_zval(this_ptr, ZEND_STRL("delimiter"), &_0); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "reconfigure", NULL, 0, &pattern, paths); + if (Z_TYPE_P(container) != IS_OBJECT) { + ZEPHIR_CALL_CE_STATIC(container, phalcon_di_ce, "getdefault", &_0, 0); + zephir_check_call_status(); + } + if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_1$$4); + object_init_ex(&_1$$4, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_4$$4); + ZVAL_STRING(&_4$$4, "the services related to the ODM"); + ZEPHIR_CALL_CE_STATIC(&_2$$4, phalcon_mvc_model_exception_ce, "containerservicenotfound", &_3, 0, &_4$$4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_1$$4, "__construct", NULL, 8, &_2$$4); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$4, "phalcon/Mvc/Model.zep", 186); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); + if (Z_TYPE_P(modelsManager) != IS_OBJECT) { + ZEPHIR_INIT_VAR(&_6$$5); + ZVAL_STRING(&_6$$5, "modelsManager"); + ZEPHIR_CALL_METHOD(&_5$$5, container, "getshared", NULL, 0, &_6$$5); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(modelsManager, &_5$$5); + if (UNEXPECTED(Z_TYPE_P(modelsManager) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The injected service 'modelsManager' is not valid", "phalcon/Mvc/Model.zep", 200); + return; + } + } + zephir_update_property_zval(this_ptr, ZEND_STRL("modelsManager"), modelsManager); + ZEPHIR_CALL_METHOD(NULL, modelsManager, "initialize", NULL, 0, this_ptr); zephir_check_call_status(); - ZEPHIR_OBS_VAR(&_1); - zephir_read_static_property_ce(&_1, phalcon_cli_router_route_ce, SL("uniqueId"), PH_NOISY_CC); - ZEPHIR_CPY_WRT(&uniqueId, &_1); - ZEPHIR_CPY_WRT(&routeId, &uniqueId); - zephir_update_property_zval(this_ptr, ZEND_STRL("id"), &routeId); - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(&_1, (zephir_get_numberval(&uniqueId) + 1)); - zephir_update_static_property_ce(phalcon_cli_router_route_ce, ZEND_STRL("uniqueId"), &_1); + if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("onconstruct")) == SUCCESS)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "onconstruct", NULL, 0, data); + zephir_check_call_status(); + } + if (Z_TYPE_P(data) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "assign", NULL, 0, data); + zephir_check_call_status(); + } ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Cli_Router_Route, beforeMatch) +static PHP_METHOD(Phalcon_Mvc_Model, __call) { - zval *callback, callback_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval arguments; + zval *method_param = NULL, *arguments_param = NULL, modelName, status, records, _1, _2, _3; + zval method; zval *this_ptr = getThis(); - ZVAL_UNDEF(&callback_sub); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&status); + ZVAL_UNDEF(&records); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&arguments); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(callback) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(method) + Z_PARAM_ARRAY(arguments) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &callback); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &method_param, &arguments_param); + zephir_get_strval(&method, method_param); + zephir_get_arrval(&arguments, arguments_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("beforeMatch"), callback); - RETURN_THISW(); + ZEPHIR_CALL_SELF(&records, "invokefinder", &_0, 428, &method, &arguments); + zephir_check_call_status(); + if (!ZEPHIR_IS_FALSE_IDENTICAL(&records)) { + RETURN_CCTOR(&records); + } + ZEPHIR_INIT_VAR(&modelName); + zephir_get_class(&modelName, this_ptr, 0); + ZEPHIR_CALL_METHOD(&records, this_ptr, "getrelatedrecords", NULL, 0, &modelName, &method, &arguments); + zephir_check_call_status(); + if (!ZEPHIR_IS_FALSE_IDENTICAL(&records)) { + RETURN_CCTOR(&records); + } + zephir_read_property(&_1, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&status, &_1, "missingmethod", NULL, 0, this_ptr, &method, &arguments); + zephir_check_call_status(); + if (Z_TYPE_P(&status) != IS_NULL) { + RETURN_CCTOR(&status); + } + ZEPHIR_INIT_VAR(&_2); + object_init_ex(&_2, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_3); + ZEPHIR_CONCAT_SVSVS(&_3, "The method '", &method, "' doesn't exist on model '", &modelName, "'"); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 8, &_3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_2, "phalcon/Mvc/Model.zep", 269); + ZEPHIR_MM_RESTORE(); + return; } -static PHP_METHOD(Phalcon_Cli_Router_Route, compilePattern) +static PHP_METHOD(Phalcon_Mvc_Model, __callStatic) { - zend_bool _20; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *pattern_param = NULL, idPattern, part, _0$$3, _4$$3, _6$$3, _8$$3, _10$$3, _12$$3, _16$$3, _1$$4, _2$$4, _3$$4, _5$$5, _7$$6, _9$$7, _11$$8, _13$$9, _14$$9, _15$$9, _17$$10, _18$$10, _19$$10; - zval pattern; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval arguments; + zval *method_param = NULL, *arguments_param = NULL, modelName, records, _1, _2; + zval method; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&idPattern); - ZVAL_UNDEF(&part); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_8$$3); - ZVAL_UNDEF(&_10$$3); - ZVAL_UNDEF(&_12$$3); - ZVAL_UNDEF(&_16$$3); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_9$$7); - ZVAL_UNDEF(&_11$$8); - ZVAL_UNDEF(&_13$$9); - ZVAL_UNDEF(&_14$$9); - ZVAL_UNDEF(&_15$$9); - ZVAL_UNDEF(&_17$$10); - ZVAL_UNDEF(&_18$$10); - ZVAL_UNDEF(&_19$$10); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&records); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&arguments); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(pattern) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(method) + Z_PARAM_ARRAY(arguments) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &pattern_param); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); - } else { - ZEPHIR_INIT_VAR(&pattern); - } + zephir_fetch_params(1, 2, 0, &method_param, &arguments_param); + zephir_get_strval(&method, method_param); + zephir_get_arrval(&arguments, arguments_param); - if (zephir_memnstr_str(&pattern, SL(":"), "phalcon/Cli/Router/Route.zep", 120)) { - zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&idPattern); - ZEPHIR_CONCAT_VS(&idPattern, &_0$$3, "([a-zA-Z0-9\\_\\-]+)"); - if (zephir_memnstr_str(&pattern, SL(":delimiter"), "phalcon/Cli/Router/Route.zep", 126)) { - ZEPHIR_INIT_VAR(&_1$$4); - zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_3$$4); - ZVAL_STRING(&_3$$4, ":delimiter"); - zephir_fast_str_replace(&_1$$4, &_3$$4, &_2$$4, &pattern); - zephir_get_strval(&pattern, &_1$$4); - } - zephir_read_property(&_4$$3, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&part); - ZEPHIR_CONCAT_VS(&part, &_4$$3, ":module"); - if (zephir_memnstr(&pattern, &part, "phalcon/Cli/Router/Route.zep", 136)) { - ZEPHIR_INIT_VAR(&_5$$5); - zephir_fast_str_replace(&_5$$5, &part, &idPattern, &pattern); - zephir_get_strval(&pattern, &_5$$5); - } - zephir_read_property(&_6$$3, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&part); - ZEPHIR_CONCAT_VS(&part, &_6$$3, ":task"); - if (zephir_memnstr(&pattern, &part, "phalcon/Cli/Router/Route.zep", 142)) { - ZEPHIR_INIT_VAR(&_7$$6); - zephir_fast_str_replace(&_7$$6, &part, &idPattern, &pattern); - zephir_get_strval(&pattern, &_7$$6); - } - zephir_read_property(&_8$$3, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&part); - ZEPHIR_CONCAT_VS(&part, &_8$$3, ":namespace"); - if (zephir_memnstr(&pattern, &part, "phalcon/Cli/Router/Route.zep", 148)) { - ZEPHIR_INIT_VAR(&_9$$7); - zephir_fast_str_replace(&_9$$7, &part, &idPattern, &pattern); - zephir_get_strval(&pattern, &_9$$7); - } - zephir_read_property(&_10$$3, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&part); - ZEPHIR_CONCAT_VS(&part, &_10$$3, ":action"); - if (zephir_memnstr(&pattern, &part, "phalcon/Cli/Router/Route.zep", 154)) { - ZEPHIR_INIT_VAR(&_11$$8); - zephir_fast_str_replace(&_11$$8, &part, &idPattern, &pattern); - zephir_get_strval(&pattern, &_11$$8); - } - zephir_read_property(&_12$$3, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&part); - ZEPHIR_CONCAT_VS(&part, &_12$$3, ":params"); - if (zephir_memnstr(&pattern, &part, "phalcon/Cli/Router/Route.zep", 160)) { - ZEPHIR_INIT_VAR(&_13$$9); - zephir_read_property(&_14$$9, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_15$$9); - ZEPHIR_CONCAT_SVS(&_15$$9, "(", &_14$$9, ".*)*"); - zephir_fast_str_replace(&_13$$9, &part, &_15$$9, &pattern); - zephir_get_strval(&pattern, &_13$$9); - } - zephir_read_property(&_16$$3, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&part); - ZEPHIR_CONCAT_VS(&part, &_16$$3, ":int"); - if (zephir_memnstr(&pattern, &part, "phalcon/Cli/Router/Route.zep", 170)) { - ZEPHIR_INIT_VAR(&_17$$10); - zephir_read_property(&_18$$10, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_19$$10); - ZEPHIR_CONCAT_VS(&_19$$10, &_18$$10, "([0-9]+)"); - zephir_fast_str_replace(&_17$$10, &part, &_19$$10, &pattern); - zephir_get_strval(&pattern, &_17$$10); - } - } - _20 = zephir_memnstr_str(&pattern, SL("("), "phalcon/Cli/Router/Route.zep", 183); - if (!(_20)) { - _20 = zephir_memnstr_str(&pattern, SL("["), "phalcon/Cli/Router/Route.zep", 183); - } - if (_20) { - ZEPHIR_CONCAT_SVS(return_value, "#^", &pattern, "$#"); - RETURN_MM(); + ZEPHIR_CALL_SELF(&records, "invokefinder", &_0, 428, &method, &arguments); + zephir_check_call_status(); + if (!ZEPHIR_IS_FALSE_IDENTICAL(&records)) { + RETURN_CCTOR(&records); } - RETURN_CTOR(&pattern); + ZEPHIR_INIT_VAR(&modelName); + zephir_get_called_class(&modelName); + ZEPHIR_INIT_VAR(&_1); + object_init_ex(&_1, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_CONCAT_SVSVS(&_2, "The method '", &method, "' doesn't exist on model '", &modelName, "'"); + ZEPHIR_CALL_METHOD(NULL, &_1, "__construct", NULL, 8, &_2); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1, "phalcon/Mvc/Model.zep", 295); + ZEPHIR_MM_RESTORE(); + return; } -static PHP_METHOD(Phalcon_Cli_Router_Route, convert) +static PHP_METHOD(Phalcon_Mvc_Model, __get) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, *converter, converter_sub; - zval name; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *property_param = NULL, modelName, manager, lowerProperty, relation, _0, _4, _5, _6, _1$$3, _2$$4, _3$$4; + zval property, method; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&converter_sub); + ZVAL_UNDEF(&property); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&lowerProperty); + ZVAL_UNDEF(&relation); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(name) - Z_PARAM_ZVAL(converter) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(property) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &name_param, &converter); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + zephir_fetch_params(1, 1, 0, &property_param); + if (UNEXPECTED(Z_TYPE_P(property_param) != IS_STRING && Z_TYPE_P(property_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'property' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); + if (EXPECTED(Z_TYPE_P(property_param) == IS_STRING)) { + zephir_get_strval(&property, property_param); } else { - ZEPHIR_INIT_VAR(&name); + ZEPHIR_INIT_VAR(&property); } - zephir_update_property_array(this_ptr, SL("converters"), &name, converter); - RETURN_THIS(); + ZEPHIR_INIT_VAR(&modelName); + zephir_get_class(&modelName, this_ptr, 0); + ZEPHIR_CALL_METHOD(&manager, this_ptr, "getmodelsmanager", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&lowerProperty); + zephir_fast_strtolower(&lowerProperty, &property); + ZEPHIR_CALL_METHOD(&_0, &manager, "getrelationbyalias", NULL, 0, &modelName, &lowerProperty); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&relation, &_0); + if (Z_TYPE_P(&relation) == IS_OBJECT) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("dirtyRelated"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset(&_1$$3, &lowerProperty)) { + zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("dirtyRelated"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_3$$4, &_2$$4, &lowerProperty, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 327); + RETURN_CTOR(&_3$$4); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getrelated", NULL, 0, &lowerProperty); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_INIT_VAR(&_4); + zephir_camelize(&_4, &property, NULL ); + ZEPHIR_INIT_VAR(&_5); + ZEPHIR_CONCAT_SV(&_5, "get", &_4); + zephir_get_strval(&method, &_5); + if ((zephir_method_exists(this_ptr, &method) == SUCCESS)) { + ZEPHIR_RETURN_CALL_METHOD_ZVAL(this_ptr, &method, NULL, 0); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_INIT_VAR(&_6); + ZEPHIR_CONCAT_SVSV(&_6, "Access to undefined property ", &modelName, "::", &property); + ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_6); + zephir_check_call_status(); + RETURN_MM_NULL(); } -static PHP_METHOD(Phalcon_Cli_Router_Route, delimiter) +static PHP_METHOD(Phalcon_Mvc_Model, __isset) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *delimiter_param = NULL; - zval delimiter; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *property_param = NULL, manager, method, modelName, relation, result, _0, _1$$4; + zval property; zval *this_ptr = getThis(); - ZVAL_UNDEF(&delimiter); + ZVAL_UNDEF(&property); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&relation); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(delimiter) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(property) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &delimiter_param); - if (!delimiter_param) { - ZEPHIR_INIT_VAR(&delimiter); - } else { - if (UNEXPECTED(Z_TYPE_P(delimiter_param) != IS_STRING && Z_TYPE_P(delimiter_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'delimiter' must be of the type string")); + zephir_fetch_params(1, 1, 0, &property_param); + if (UNEXPECTED(Z_TYPE_P(property_param) != IS_STRING && Z_TYPE_P(property_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'property' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(delimiter_param) == IS_STRING)) { - zephir_get_strval(&delimiter, delimiter_param); + if (EXPECTED(Z_TYPE_P(property_param) == IS_STRING)) { + zephir_get_strval(&property, property_param); } else { - ZEPHIR_INIT_VAR(&delimiter); - } + ZEPHIR_INIT_VAR(&property); } - zephir_update_static_property_ce(phalcon_cli_router_route_ce, ZEND_STRL("delimiterPath"), &delimiter); - ZEPHIR_MM_RESTORE(); + ZEPHIR_INIT_VAR(&modelName); + zephir_get_class(&modelName, this_ptr, 0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmodelsmanager", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&manager, &_0); + ZEPHIR_CALL_METHOD(&_0, &manager, "getrelationbyalias", NULL, 0, &modelName, &property); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&relation, &_0); + if (Z_TYPE_P(&relation) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&result); + ZVAL_BOOL(&result, 1); + } else { + ZEPHIR_INIT_VAR(&_1$$4); + zephir_camelize(&_1$$4, &property, NULL ); + ZEPHIR_INIT_VAR(&method); + ZEPHIR_CONCAT_SV(&method, "get", &_1$$4); + ZEPHIR_INIT_NVAR(&result); + ZVAL_BOOL(&result, (zephir_method_exists(this_ptr, &method) == SUCCESS)); + } + RETURN_CCTOR(&result); } -static PHP_METHOD(Phalcon_Cli_Router_Route, extractNamedParams) +static PHP_METHOD(Phalcon_Mvc_Model, __set) { - long _0, _5$$10, _26$$18; - zend_long cursor = 0, cursorVar = 0, marker = 0, bracketCount, parenthesesCount, foundPattern, intermediate, numberMatches; - zend_bool notValid = 0, _6$$11, _7$$11, _8$$11, _9$$11, _10$$11, _11$$11, _12$$11, _13$$11, _14$$11, _15$$11, _16$$11, _17$$11, _25$$17; - zval matches; - char ch = 0; + zend_bool _0; + zval related; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *pattern_param = NULL, tmp, _1$$10, _2$$10, _3$$10, _18$$15, _19$$15, _20$$15, _22$$15, _23$$15, _28$$27, _29$$27; - zval pattern, route, item, variable, regexp, _4$$10, _21$$15, _24$$15, _27$$25, _30$$28; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *property_param = NULL, *value, value_sub, lowerProperty, modelName, manager, relation, referencedModel, item, dirtyState, _14, _15, _1$$3, _2$$4, _3$$4, _4$$6, _5$$7, _6$$8, _7$$9, _8$$9, *_9$$10, _10$$10, _11$$10, _12$$17, _13$$18, _16$$20, _17$$21; + zval property, _18$$21; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&route); + ZVAL_UNDEF(&property); + ZVAL_UNDEF(&_18$$21); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&lowerProperty); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&relation); + ZVAL_UNDEF(&referencedModel); ZVAL_UNDEF(&item); - ZVAL_UNDEF(&variable); - ZVAL_UNDEF(®exp); - ZVAL_UNDEF(&_4$$10); - ZVAL_UNDEF(&_21$$15); - ZVAL_UNDEF(&_24$$15); - ZVAL_UNDEF(&_27$$25); - ZVAL_UNDEF(&_30$$28); - ZVAL_UNDEF(&tmp); - ZVAL_UNDEF(&_1$$10); - ZVAL_UNDEF(&_2$$10); - ZVAL_UNDEF(&_3$$10); - ZVAL_UNDEF(&_18$$15); - ZVAL_UNDEF(&_19$$15); - ZVAL_UNDEF(&_20$$15); - ZVAL_UNDEF(&_22$$15); - ZVAL_UNDEF(&_23$$15); - ZVAL_UNDEF(&_28$$27); - ZVAL_UNDEF(&_29$$27); - ZVAL_UNDEF(&matches); + ZVAL_UNDEF(&dirtyState); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_15); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$6); + ZVAL_UNDEF(&_5$$7); + ZVAL_UNDEF(&_6$$8); + ZVAL_UNDEF(&_7$$9); + ZVAL_UNDEF(&_8$$9); + ZVAL_UNDEF(&_10$$10); + ZVAL_UNDEF(&_11$$10); + ZVAL_UNDEF(&_12$$17); + ZVAL_UNDEF(&_13$$18); + ZVAL_UNDEF(&_16$$20); + ZVAL_UNDEF(&_17$$21); + ZVAL_UNDEF(&related); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(pattern) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(property) + Z_PARAM_ZVAL(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &pattern_param); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); - } else { - ZEPHIR_INIT_VAR(&pattern); - } + zephir_fetch_params(1, 2, 0, &property_param, &value); + zephir_get_strval(&property, property_param); - bracketCount = 0; - parenthesesCount = 0; - foundPattern = 0; - intermediate = 0; - numberMatches = 0; - if (zephir_fast_strlen_ev(&pattern) == 0) { - RETURN_MM_BOOL(0); + _0 = Z_TYPE_P(value) == IS_OBJECT; + if (_0) { + _0 = zephir_instance_of_ev(value, phalcon_mvc_modelinterface_ce); } - ZEPHIR_INIT_VAR(&matches); - array_init(&matches); - ZEPHIR_INIT_VAR(&route); - for (_0 = 0; _0 < Z_STRLEN_P(&pattern); _0++) { - cursor = _0; - ch = ZEPHIR_STRING_OFFSET(&pattern, _0); - if (parenthesesCount == 0) { - if (ch == '{') { - if (bracketCount == 0) { - marker = (cursor + 1); - intermediate = 0; - notValid = 0; + if (_0) { + ZEPHIR_INIT_VAR(&lowerProperty); + zephir_fast_strtolower(&lowerProperty, &property); + ZEPHIR_INIT_VAR(&modelName); + zephir_get_class(&modelName, this_ptr, 0); + ZEPHIR_CALL_METHOD(&manager, this_ptr, "getmodelsmanager", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1$$3, &manager, "getrelationbyalias", NULL, 0, &modelName, &lowerProperty); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&relation, &_1$$3); + if (Z_TYPE_P(&relation) == IS_OBJECT) { + zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("dirtyState"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&dirtyState, &_2$$4); + ZEPHIR_CALL_METHOD(&_3$$4, value, "getdirtystate", NULL, 0); + zephir_check_call_status(); + if (!ZEPHIR_IS_EQUAL(&_3$$4, &dirtyState)) { + ZEPHIR_INIT_NVAR(&dirtyState); + ZVAL_LONG(&dirtyState, 1); + } + zephir_unset_property_array(this_ptr, ZEND_STRL("related"), &lowerProperty); + zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("related"), PH_NOISY_CC | PH_READONLY); + zephir_array_unset(&_2$$4, &lowerProperty, PH_SEPARATE); + zephir_update_property_array(this_ptr, SL("dirtyRelated"), &lowerProperty, value); + zephir_update_property_zval(this_ptr, ZEND_STRL("dirtyState"), &dirtyState); + RETVAL_ZVAL(value, 1, 0); + RETURN_MM(); + } + } else if (Z_TYPE_P(value) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&lowerProperty); + zephir_fast_strtolower(&lowerProperty, &property); + ZEPHIR_INIT_NVAR(&modelName); + zephir_get_class(&modelName, this_ptr, 0); + ZEPHIR_CALL_METHOD(&manager, this_ptr, "getmodelsmanager", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_4$$6, &manager, "getrelationbyalias", NULL, 0, &modelName, &lowerProperty); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&relation, &_4$$6); + if (Z_TYPE_P(&relation) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(&_5$$7, &relation, "gettype", NULL, 0); + zephir_check_call_status(); + do { + if (ZEPHIR_IS_LONG(&_5$$7, 0) || ZEPHIR_IS_LONG(&_5$$7, 1)) { + ZEPHIR_CALL_METHOD(&_6$$8, &relation, "getreferencedmodel", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&referencedModel, &manager, "load", NULL, 0, &_6$$8); + zephir_check_call_status(); + if (Z_TYPE_P(&referencedModel) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(NULL, &referencedModel, "assign", NULL, 0, value); + zephir_check_call_status(); + zephir_unset_property_array(this_ptr, ZEND_STRL("related"), &lowerProperty); + zephir_read_property(&_7$$9, this_ptr, ZEND_STRL("related"), PH_NOISY_CC | PH_READONLY); + zephir_array_unset(&_7$$9, &lowerProperty, PH_SEPARATE); + zephir_update_property_array(this_ptr, SL("dirtyRelated"), &lowerProperty, &referencedModel); + ZEPHIR_INIT_ZVAL_NREF(_8$$9); + ZVAL_LONG(&_8$$9, 1); + zephir_update_property_zval(this_ptr, ZEND_STRL("dirtyState"), &_8$$9); + RETVAL_ZVAL(value, 1, 0); + RETURN_MM(); + } + break; } - bracketCount++; - } else if (ch == '}') { - bracketCount--; - if (intermediate > 0) { - if (bracketCount == 0) { - numberMatches++; - ZEPHIR_INIT_NVAR(&variable); - ZEPHIR_INIT_NVAR(®exp); - ZVAL_LONG(&_1$$10, marker); - ZVAL_LONG(&_2$$10, (cursor - marker)); - ZEPHIR_INIT_NVAR(&_3$$10); - zephir_substr(&_3$$10, &pattern, zephir_get_intval(&_1$$10), zephir_get_intval(&_2$$10), 0); - zephir_cast_to_string(&_4$$10, &_3$$10); - ZEPHIR_CPY_WRT(&item, &_4$$10); - for (_5$$10 = 0; _5$$10 < Z_STRLEN_P(&item); _5$$10++) { - cursorVar = _5$$10; - ch = ZEPHIR_STRING_OFFSET(&item, _5$$10); - if (ch == '\0') { - break; - } - _6$$11 = cursorVar == 0; - if (_6$$11) { - _7$$11 = ch >= 'a'; - if (_7$$11) { - _7$$11 = ch <= 'z'; - } - _8$$11 = _7$$11; - if (!(_8$$11)) { - _9$$11 = ch >= 'A'; - if (_9$$11) { - _9$$11 = ch <= 'Z'; - } - _8$$11 = _9$$11; - } - _6$$11 = !(_8$$11); - } - if (_6$$11) { - notValid = 1; - break; - } - _10$$11 = ch >= 'a'; - if (_10$$11) { - _10$$11 = ch <= 'z'; - } - _11$$11 = _10$$11; - if (!(_11$$11)) { - _12$$11 = ch >= 'A'; - if (_12$$11) { - _12$$11 = ch <= 'Z'; - } - _11$$11 = _12$$11; - } - _13$$11 = _11$$11; - if (!(_13$$11)) { - _14$$11 = ch >= '0'; - if (_14$$11) { - _14$$11 = ch <= '9'; + if (ZEPHIR_IS_LONG(&_5$$7, 2) || ZEPHIR_IS_LONG(&_5$$7, 4)) { + ZEPHIR_INIT_VAR(&related); + array_init(&related); + zephir_is_iterable(value, 0, "phalcon/Mvc/Model.zep", 473); + if (Z_TYPE_P(value) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(value), _9$$10) + { + ZEPHIR_INIT_NVAR(&item); + ZVAL_COPY(&item, _9$$10); + if (Z_TYPE_P(&item) == IS_OBJECT) { + if (zephir_instance_of_ev(&item, phalcon_mvc_modelinterface_ce)) { + zephir_array_append(&related, &item, PH_SEPARATE, "phalcon/Mvc/Model.zep", 468); } - _13$$11 = _14$$11; - } - _15$$11 = _13$$11; - if (!(_15$$11)) { - _15$$11 = ch == '-'; - } - _16$$11 = _15$$11; - if (!(_16$$11)) { - _16$$11 = ch == '_'; - } - _17$$11 = _16$$11; - if (!(_17$$11)) { - _17$$11 = ch == ':'; } - if (_17$$11) { - if (ch == ':') { - ZVAL_LONG(&_18$$15, 0); - ZVAL_LONG(&_19$$15, cursorVar); - ZEPHIR_INIT_NVAR(&_20$$15); - zephir_substr(&_20$$15, &item, 0 , zephir_get_intval(&_19$$15), 0); - zephir_cast_to_string(&_21$$15, &_20$$15); - ZEPHIR_CPY_WRT(&variable, &_21$$15); - ZVAL_LONG(&_22$$15, (cursorVar + 1)); - ZEPHIR_INIT_NVAR(&_23$$15); - zephir_substr(&_23$$15, &item, zephir_get_intval(&_22$$15), 0, ZEPHIR_SUBSTR_NO_LENGTH); - zephir_cast_to_string(&_24$$15, &_23$$15); - ZEPHIR_CPY_WRT(®exp, &_24$$15); - break; - } - } else { - notValid = 1; + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, value, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_10$$10, value, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_10$$10)) { break; } - } - if (!(notValid)) { - ZEPHIR_INIT_NVAR(&tmp); - ZVAL_LONG(&tmp, numberMatches); - _25$$17 = zephir_is_true(&variable); - if (_25$$17) { - _25$$17 = zephir_is_true(®exp); - } - if (_25$$17) { - foundPattern = 0; - for (_26$$18 = 0; _26$$18 < Z_STRLEN_P(®exp); _26$$18++) { - ch = ZEPHIR_STRING_OFFSET(®exp, _26$$18); - if (ch == '\0') { - break; - } - if (!(foundPattern)) { - if (ch == '(') { - foundPattern = 1; - } - } else { - if (ch == ')') { - foundPattern = 2; - break; - } + ZEPHIR_CALL_METHOD(&item, value, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&item) == IS_OBJECT) { + if (zephir_instance_of_ev(&item, phalcon_mvc_modelinterface_ce)) { + zephir_array_append(&related, &item, PH_SEPARATE, "phalcon/Mvc/Model.zep", 468); } } - if (foundPattern != 2) { - ZEPHIR_INIT_NVAR(&_27$$25); - ZEPHIR_CONCAT_SVS(&_27$$25, "(", ®exp, ")"); - zephir_concat_self(&route, &_27$$25); - } else { - zephir_concat_self(&route, ®exp); - } - zephir_array_update_zval(&matches, &variable, &tmp, PH_COPY | PH_SEPARATE); - } else { - zephir_read_property(&_28$$27, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_29$$27); - ZEPHIR_CONCAT_SVS(&_29$$27, "([^", &_28$$27, "]*)"); - zephir_concat_self(&route, &_29$$27); - zephir_array_update_zval(&matches, &item, &tmp, PH_COPY | PH_SEPARATE); - } - } else { - ZEPHIR_INIT_NVAR(&_30$$28); - ZEPHIR_CONCAT_SVS(&_30$$28, "{", &item, "}"); - zephir_concat_self(&route, &_30$$28); + ZEPHIR_CALL_METHOD(NULL, value, "next", NULL, 0); + zephir_check_call_status(); } - continue; } + ZEPHIR_INIT_NVAR(&item); + zephir_unset_property_array(this_ptr, ZEND_STRL("related"), &lowerProperty); + zephir_read_property(&_11$$10, this_ptr, ZEND_STRL("related"), PH_NOISY_CC | PH_READONLY); + zephir_array_unset(&_11$$10, &lowerProperty, PH_SEPARATE); + if (zephir_fast_count_int(&related) > 0) { + zephir_update_property_array(this_ptr, SL("dirtyRelated"), &lowerProperty, &related); + ZEPHIR_INIT_ZVAL_NREF(_12$$17); + ZVAL_LONG(&_12$$17, 1); + zephir_update_property_zval(this_ptr, ZEND_STRL("dirtyState"), &_12$$17); + } else { + zephir_unset_property_array(this_ptr, ZEND_STRL("dirtyRelated"), &lowerProperty); + zephir_read_property(&_13$$18, this_ptr, ZEND_STRL("dirtyRelated"), PH_NOISY_CC | PH_READONLY); + zephir_array_unset(&_13$$18, &lowerProperty, PH_SEPARATE); + } + RETVAL_ZVAL(value, 1, 0); + RETURN_MM(); } - } + } while(0); + } - if (bracketCount == 0) { - if (ch == '(') { - parenthesesCount++; - } else if (ch == ')') { - parenthesesCount--; - if (parenthesesCount == 0) { - numberMatches++; - } - } - } - if (bracketCount > 0) { - intermediate++; - } else { - zephir_concat_self_char(&route, ch); + } + ZEPHIR_CALL_METHOD(&_14, this_ptr, "possiblesetter", NULL, 429, &property, value); + zephir_check_call_status(); + if (zephir_is_true(&_14)) { + RETVAL_ZVAL(value, 1, 0); + RETURN_MM(); + } + ZEPHIR_CALL_FUNCTION(&_15, "property_exists", NULL, 430, this_ptr, &property); + zephir_check_call_status(); + if (zephir_is_true(&_15)) { + ZEPHIR_CALL_METHOD(&manager, this_ptr, "getmodelsmanager", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_16$$20, &manager, "isvisiblemodelproperty", NULL, 0, this_ptr, &property); + zephir_check_call_status(); + if (UNEXPECTED(!zephir_is_true(&_16$$20))) { + ZEPHIR_INIT_VAR(&_17$$21); + object_init_ex(&_17$$21, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_18$$21); + ZEPHIR_CONCAT_SVS(&_18$$21, "Cannot access property '", &property, "' (not public)."); + ZEPHIR_CALL_METHOD(NULL, &_17$$21, "__construct", NULL, 8, &_18$$21); + zephir_check_call_status(); + zephir_throw_exception_debug(&_17$$21, "phalcon/Mvc/Model.zep", 502); + ZEPHIR_MM_RESTORE(); + return; } } - zephir_create_array(return_value, 2, 0); - zephir_array_fast_append(return_value, &route); - zephir_array_fast_append(return_value, &matches); + zephir_update_property_zval_zval(this_ptr, &property, value); + RETVAL_ZVAL(value, 1, 0); RETURN_MM(); } -static PHP_METHOD(Phalcon_Cli_Router_Route, getBeforeMatch) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "beforeMatch"); -} - -static PHP_METHOD(Phalcon_Cli_Router_Route, getCompiledPattern) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "compiledPattern"); -} - -static PHP_METHOD(Phalcon_Cli_Router_Route, getConverters) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "converters"); -} - -static PHP_METHOD(Phalcon_Cli_Router_Route, getDelimiter) -{ - zval _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - - zephir_read_static_property_ce(&_0, phalcon_cli_router_route_ce, SL("delimiterPath"), PH_NOISY_CC | PH_READONLY); - RETURN_CTORW(&_0); -} - -static PHP_METHOD(Phalcon_Cli_Router_Route, getDescription) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "description"); -} - -static PHP_METHOD(Phalcon_Cli_Router_Route, getName) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "name"); -} - -static PHP_METHOD(Phalcon_Cli_Router_Route, getPaths) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "paths"); -} - -static PHP_METHOD(Phalcon_Cli_Router_Route, getPattern) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "pattern"); -} - -static PHP_METHOD(Phalcon_Cli_Router_Route, getReversedPaths) +static PHP_METHOD(Phalcon_Mvc_Model, addBehavior) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *behavior, behavior_sub, _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&behavior_sub); ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(behavior, phalcon_mvc_model_behaviorinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &behavior); - zephir_read_property(&_0, this_ptr, ZEND_STRL("paths"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_FUNCTION("array_flip", NULL, 174, &_0); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "addbehavior", NULL, 0, this_ptr, behavior); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Cli_Router_Route, getRouteId) +static PHP_METHOD(Phalcon_Mvc_Model, appendMessage) { + zval *message, message_sub; zval *this_ptr = getThis(); + ZVAL_UNDEF(&message_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(message, phalcon_messages_messageinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "id"); + zephir_fetch_params_without_memory_grow(1, 0, &message); + + + zephir_update_property_array_append(this_ptr, SL("errorMessages"), message); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Cli_Router_Route, reConfigure) +static PHP_METHOD(Phalcon_Mvc_Model, assign) { - zend_bool _1$$10; + zend_bool _7$$12, _13$$18, _16$$22, _20$$28; + zend_string *_3$$3; + zend_ulong _2$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, _0$$4; - zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, moduleName, taskName, actionName, parts, routePaths, realClassName, namespaceName, pcrePattern, compiledPattern, extracted, _2$$9, _3$$18, _4$$18, _5$$21, _6$$21, _7$$21; - zval pattern; + zephir_fcall_cache_entry *_9 = NULL, *_12 = NULL, *_15 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *data_param = NULL, *whiteList = NULL, whiteList_sub, *dataColumnMap = NULL, dataColumnMap_sub, __$null, key, keyMapped, value, attribute, attributeField, metaData, columnMap, disableAssignSetters, _4, *_5, _6, *_0$$3, _1$$3, _8$$13, _10$$16, _11$$16, _14$$18, _17$$23, _18$$26, _19$$26, _21$$28; + zval data, dataMapped; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&dataMapped); + ZVAL_UNDEF(&whiteList_sub); + ZVAL_UNDEF(&dataColumnMap_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&moduleName); - ZVAL_UNDEF(&taskName); - ZVAL_UNDEF(&actionName); - ZVAL_UNDEF(&parts); - ZVAL_UNDEF(&routePaths); - ZVAL_UNDEF(&realClassName); - ZVAL_UNDEF(&namespaceName); - ZVAL_UNDEF(&pcrePattern); - ZVAL_UNDEF(&compiledPattern); - ZVAL_UNDEF(&extracted); - ZVAL_UNDEF(&_2$$9); - ZVAL_UNDEF(&_3$$18); - ZVAL_UNDEF(&_4$$18); - ZVAL_UNDEF(&_5$$21); - ZVAL_UNDEF(&_6$$21); - ZVAL_UNDEF(&_7$$21); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&keyMapped); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&attribute); + ZVAL_UNDEF(&attributeField); + ZVAL_UNDEF(&metaData); + ZVAL_UNDEF(&columnMap); + ZVAL_UNDEF(&disableAssignSetters); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_8$$13); + ZVAL_UNDEF(&_10$$16); + ZVAL_UNDEF(&_11$$16); + ZVAL_UNDEF(&_14$$18); + ZVAL_UNDEF(&_17$$23); + ZVAL_UNDEF(&_18$$26); + ZVAL_UNDEF(&_19$$26); + ZVAL_UNDEF(&_21$$28); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(pattern) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ARRAY(data) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_ZVAL_OR_NULL(whiteList) + Z_PARAM_ZVAL_OR_NULL(dataColumnMap) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &pattern_param, &paths); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); - } else { - ZEPHIR_INIT_VAR(&pattern); + zephir_fetch_params(1, 1, 2, &data_param, &whiteList, &dataColumnMap); + ZEPHIR_OBS_COPY_OR_DUP(&data, data_param); + if (!whiteList) { + whiteList = &whiteList_sub; + whiteList = &__$null; } - if (!paths) { - paths = &paths_sub; - ZEPHIR_CPY_WRT(paths, &__$null); - } else { - ZEPHIR_SEPARATE_PARAM(paths); + if (!dataColumnMap) { + dataColumnMap = &dataColumnMap_sub; + dataColumnMap = &__$null; } - if (Z_TYPE_P(paths) == IS_NULL) { - ZEPHIR_INIT_NVAR(paths); - array_init(paths); - } - if (Z_TYPE_P(paths) == IS_STRING) { - ZEPHIR_INIT_VAR(&moduleName); - ZVAL_NULL(&moduleName); - ZEPHIR_INIT_VAR(&taskName); - ZVAL_NULL(&taskName); - ZEPHIR_INIT_VAR(&actionName); - ZVAL_NULL(&actionName); - ZEPHIR_INIT_VAR(&parts); - zephir_fast_explode_str(&parts, SL("::"), paths, LONG_MAX); - do { - _0$$4 = zephir_fast_count_int(&parts); - if (_0$$4 == 3) { - ZEPHIR_OBS_NVAR(&moduleName); - zephir_array_fetch_long(&moduleName, &parts, 0, PH_NOISY, "phalcon/Cli/Router/Route.zep", 454); - ZEPHIR_OBS_NVAR(&taskName); - zephir_array_fetch_long(&taskName, &parts, 1, PH_NOISY, "phalcon/Cli/Router/Route.zep", 455); - ZEPHIR_OBS_NVAR(&actionName); - zephir_array_fetch_long(&actionName, &parts, 2, PH_NOISY, "phalcon/Cli/Router/Route.zep", 456); - break; - } - if (_0$$4 == 2) { - ZEPHIR_OBS_NVAR(&taskName); - zephir_array_fetch_long(&taskName, &parts, 0, PH_NOISY, "phalcon/Cli/Router/Route.zep", 460); - ZEPHIR_OBS_NVAR(&actionName); - zephir_array_fetch_long(&actionName, &parts, 1, PH_NOISY, "phalcon/Cli/Router/Route.zep", 461); - break; - } - if (_0$$4 == 1) { - ZEPHIR_OBS_NVAR(&taskName); - zephir_array_fetch_long(&taskName, &parts, 0, PH_NOISY, "phalcon/Cli/Router/Route.zep", 465); - break; - } - } while(0); - - ZEPHIR_INIT_VAR(&routePaths); - array_init(&routePaths); - if (Z_TYPE_P(&moduleName) != IS_NULL) { - zephir_array_update_string(&routePaths, SL("module"), &moduleName, PH_COPY | PH_SEPARATE); - } - if (Z_TYPE_P(&taskName) != IS_NULL) { - if (zephir_memnstr_str(&taskName, SL("\\"), "phalcon/Cli/Router/Route.zep", 479)) { - ZEPHIR_INIT_VAR(&realClassName); - zephir_get_class_ns(&realClassName, &taskName, 0); - ZEPHIR_INIT_VAR(&namespaceName); - zephir_get_ns_class(&namespaceName, &taskName, 0); - _1$$10 = Z_TYPE_P(&namespaceName) == IS_NULL; - if (!(_1$$10)) { - _1$$10 = Z_TYPE_P(&realClassName) == IS_NULL; + ZEPHIR_INIT_VAR(&disableAssignSetters); + ZVAL_BOOL(&disableAssignSetters, ZEPHIR_GLOBAL(orm).disable_assign_setters); + if (Z_TYPE_P(dataColumnMap) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&dataMapped); + array_init(&dataMapped); + zephir_is_iterable(&data, 0, "phalcon/Mvc/Model.zep", 648); + if (Z_TYPE_P(&data) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _2$$3, _3$$3, _0$$3) + { + ZEPHIR_INIT_NVAR(&key); + if (_3$$3 != NULL) { + ZVAL_STR_COPY(&key, _3$$3); + } else { + ZVAL_LONG(&key, _2$$3); } - if (UNEXPECTED(_1$$10)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_router_exception_ce, "The route contains invalid paths", "phalcon/Cli/Router/Route.zep", 489); - return; + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0$$3); + ZEPHIR_OBS_NVAR(&keyMapped); + if (zephir_array_isset_fetch(&keyMapped, dataColumnMap, &key, 0)) { + zephir_array_update_zval(&dataMapped, &keyMapped, &value, PH_COPY | PH_SEPARATE); } - if (zephir_is_true(&namespaceName)) { - zephir_array_update_string(&routePaths, SL("namespace"), &namespaceName, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &data, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1$$3, &data, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1$$3)) { + break; } - } else { - ZEPHIR_CPY_WRT(&realClassName, &taskName); + ZEPHIR_CALL_METHOD(&key, &data, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &data, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&keyMapped); + if (zephir_array_isset_fetch(&keyMapped, dataColumnMap, &key, 0)) { + zephir_array_update_zval(&dataMapped, &keyMapped, &value, PH_COPY | PH_SEPARATE); + } + ZEPHIR_CALL_METHOD(NULL, &data, "next", NULL, 0); + zephir_check_call_status(); } - ZEPHIR_INIT_VAR(&_2$$9); - zephir_uncamelize(&_2$$9, &realClassName, NULL ); - zephir_array_update_string(&routePaths, SL("task"), &_2$$9, PH_COPY | PH_SEPARATE); - } - if (Z_TYPE_P(&actionName) != IS_NULL) { - zephir_array_update_string(&routePaths, SL("action"), &actionName, PH_COPY | PH_SEPARATE); } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); } else { - ZEPHIR_CPY_WRT(&routePaths, paths); + ZEPHIR_CPY_WRT(&dataMapped, &data); } - if (UNEXPECTED(Z_TYPE_P(&routePaths) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_router_exception_ce, "The route contains invalid paths", "phalcon/Cli/Router/Route.zep", 513); - return; + if (zephir_fast_count_int(&dataMapped) == 0) { + RETURN_THIS(); } - if (!(zephir_start_with_str(&pattern, SL("#")))) { - if (zephir_memnstr_str(&pattern, SL("{"), "phalcon/Cli/Router/Route.zep", 521)) { - ZEPHIR_CALL_METHOD(&extracted, this_ptr, "extractnamedparams", NULL, 0, &pattern); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&pcrePattern); - zephir_array_fetch_long(&pcrePattern, &extracted, 0, PH_NOISY, "phalcon/Cli/Router/Route.zep", 526); - ZEPHIR_INIT_VAR(&_3$$18); - zephir_array_fetch_long(&_4$$18, &extracted, 1, PH_NOISY | PH_READONLY, "phalcon/Cli/Router/Route.zep", 527); - zephir_fast_array_merge(&_3$$18, &routePaths, &_4$$18); - ZEPHIR_CPY_WRT(&routePaths, &_3$$18); - } else { - ZEPHIR_CPY_WRT(&pcrePattern, &pattern); - } - ZEPHIR_CALL_METHOD(&compiledPattern, this_ptr, "compilepattern", NULL, 0, &pcrePattern); + ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_GLOBAL(orm).column_renaming) { + ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getcolumnmap", NULL, 0, this_ptr); zephir_check_call_status(); } else { - if (zephir_memnstr_str(&pattern, SL(":delimiter"), "phalcon/Cli/Router/Route.zep", 538)) { - ZEPHIR_INIT_VAR(&_5$$21); - zephir_read_property(&_6$$21, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_7$$21); - ZVAL_STRING(&_7$$21, ":delimiter"); - zephir_fast_str_replace(&_5$$21, &_7$$21, &_6$$21, &pattern); - zephir_get_strval(&pattern, &_5$$21); - } - ZEPHIR_CPY_WRT(&compiledPattern, &pattern); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("pattern"), &pattern); - zephir_update_property_zval(this_ptr, ZEND_STRL("compiledPattern"), &compiledPattern); - zephir_update_property_zval(this_ptr, ZEND_STRL("paths"), &routePaths); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Cli_Router_Route, reset) -{ - zval _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, 0); - zephir_update_static_property_ce(phalcon_cli_router_route_ce, ZEND_STRL("uniqueId"), &_0); -} - -static PHP_METHOD(Phalcon_Cli_Router_Route, setDescription) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *description_param = NULL; - zval description; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&description); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(description) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &description_param); - if (UNEXPECTED(Z_TYPE_P(description_param) != IS_STRING && Z_TYPE_P(description_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'description' must be of the type string")); - RETURN_MM_NULL(); + ZEPHIR_INIT_NVAR(&columnMap); + ZVAL_NULL(&columnMap); } - if (EXPECTED(Z_TYPE_P(description_param) == IS_STRING)) { - zephir_get_strval(&description, description_param); + ZEPHIR_CALL_METHOD(&_4, &metaData, "getattributes", NULL, 0, this_ptr); + zephir_check_call_status(); + zephir_is_iterable(&_4, 0, "phalcon/Mvc/Model.zep", 705); + if (Z_TYPE_P(&_4) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_4), _5) + { + ZEPHIR_INIT_NVAR(&attribute); + ZVAL_COPY(&attribute, _5); + _7$$12 = !(zephir_array_isset(&columnMap, &attribute)); + if (_7$$12) { + _7$$12 = ZEPHIR_GLOBAL(orm).case_insensitive_column_map; + } + if (_7$$12) { + ZEPHIR_CALL_SELF(&_8$$13, "caseinsensitivecolumnmap", &_9, 431, &columnMap, &attribute); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&attribute, &_8$$13); + } + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&attributeField); + if (!(zephir_array_isset_fetch(&attributeField, &columnMap, &attribute, 0))) { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_10$$16); + object_init_ex(&_10$$16, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_11$$16); + ZEPHIR_CONCAT_SVS(&_11$$16, "Column '", &attribute, "' doesn't make part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_10$$16, "__construct", &_12, 8, &_11$$16); + zephir_check_call_status(); + zephir_throw_exception_debug(&_10$$16, "phalcon/Mvc/Model.zep", 679); + ZEPHIR_MM_RESTORE(); + return; + } + continue; + } + } else { + ZEPHIR_CPY_WRT(&attributeField, &attribute); + } + ZEPHIR_OBS_NVAR(&value); + if (zephir_array_isset_fetch(&value, &dataMapped, &attributeField, 0)) { + if (Z_TYPE_P(whiteList) == IS_ARRAY) { + if (!(zephir_fast_in_array(&attributeField, whiteList))) { + continue; + } + } + _13$$18 = zephir_is_true(&disableAssignSetters); + if (!(_13$$18)) { + ZEPHIR_CALL_METHOD(&_14$$18, this_ptr, "possiblesetter", &_15, 429, &attributeField, &value); + zephir_check_call_status(); + _13$$18 = !zephir_is_true(&_14$$18); + } + if (_13$$18) { + zephir_update_property_zval_zval(this_ptr, &attributeField, &value); + } + } + } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_INIT_VAR(&description); + ZEPHIR_CALL_METHOD(NULL, &_4, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_6, &_4, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_6)) { + break; + } + ZEPHIR_CALL_METHOD(&attribute, &_4, "current", NULL, 0); + zephir_check_call_status(); + _16$$22 = !(zephir_array_isset(&columnMap, &attribute)); + if (_16$$22) { + _16$$22 = ZEPHIR_GLOBAL(orm).case_insensitive_column_map; + } + if (_16$$22) { + ZEPHIR_CALL_SELF(&_17$$23, "caseinsensitivecolumnmap", &_9, 431, &columnMap, &attribute); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&attribute, &_17$$23); + } + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&attributeField); + if (!(zephir_array_isset_fetch(&attributeField, &columnMap, &attribute, 0))) { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_18$$26); + object_init_ex(&_18$$26, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_19$$26); + ZEPHIR_CONCAT_SVS(&_19$$26, "Column '", &attribute, "' doesn't make part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_18$$26, "__construct", &_12, 8, &_19$$26); + zephir_check_call_status(); + zephir_throw_exception_debug(&_18$$26, "phalcon/Mvc/Model.zep", 679); + ZEPHIR_MM_RESTORE(); + return; + } + continue; + } + } else { + ZEPHIR_CPY_WRT(&attributeField, &attribute); + } + ZEPHIR_OBS_NVAR(&value); + if (zephir_array_isset_fetch(&value, &dataMapped, &attributeField, 0)) { + if (Z_TYPE_P(whiteList) == IS_ARRAY) { + if (!(zephir_fast_in_array(&attributeField, whiteList))) { + continue; + } + } + _20$$28 = zephir_is_true(&disableAssignSetters); + if (!(_20$$28)) { + ZEPHIR_CALL_METHOD(&_21$$28, this_ptr, "possiblesetter", &_15, 429, &attributeField, &value); + zephir_check_call_status(); + _20$$28 = !zephir_is_true(&_21$$28); + } + if (_20$$28) { + zephir_update_property_zval_zval(this_ptr, &attributeField, &value); + } + } + ZEPHIR_CALL_METHOD(NULL, &_4, "next", NULL, 0); + zephir_check_call_status(); + } } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("description"), &description); + ZEPHIR_INIT_NVAR(&attribute); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Cli_Router_Route, setName) +static PHP_METHOD(Phalcon_Mvc_Model, average) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL; - zval name; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *parameters_param = NULL, result, _0, _1; + zval parameters; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); + ZVAL_UNDEF(¶meters); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(parameters) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); + zephir_fetch_params(1, 0, 1, ¶meters_param); + if (!parameters_param) { + ZEPHIR_INIT_VAR(¶meters); + array_init(¶meters); } else { - ZEPHIR_INIT_VAR(&name); + zephir_get_arrval(¶meters, parameters_param); } - zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); - RETURN_THIS(); -} - -zend_object *zephir_init_properties_Phalcon_Cli_Router_Route(zend_class_entry *class_type) -{ - zval _0, _2, _1$$3, _3$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("paths"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("paths"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("converters"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("converters"), &_3$$4); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "AVG"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "average"); + ZEPHIR_CALL_SELF(&result, "groupresult", NULL, 0, &_0, &_1, ¶meters); + zephir_check_call_status(); + if (Z_TYPE_P(&result) == IS_STRING) { + RETURN_MM_DOUBLE(zephir_get_doubleval(&result)); } + RETURN_CCTOR(&result); } - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Cli_Router_RouteInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Cli\\Router, RouteInterface, phalcon, cli_router_routeinterface, phalcon_cli_router_routeinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, compilePattern); -ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, delimiter); -ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, getCompiledPattern); -ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, getDelimiter); -ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, getDescription); -ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, getName); -ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, getPaths); -ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, getPattern); -ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, getReversedPaths); -ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, getRouteId); -ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, reConfigure); -ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, reset); -ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, setDescription); -ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, setName); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Collection_CollectionInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Collection, CollectionInterface, phalcon, collection_collectioninterface, phalcon_collection_collectioninterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, __get); -ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, __isset); -ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, __set); -ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, __unset); -ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, clear); -ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, get); -ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, getKeys); -ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, getValues); -ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, has); -ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, init); -ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, remove); -ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, set); -ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, toArray); -ZEPHIR_DOC_METHOD(Phalcon_Collection_CollectionInterface, toJson); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Collection_Exception) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Collection, Exception, phalcon, collection_exception, phalcon_exception_ce, NULL, 0); - - zend_class_implements(phalcon_collection_exception_ce, 1, zend_ce_throwable); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Collection_ReadOnly) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Collection, ReadOnly, phalcon, collection_readonly, phalcon_collection_ce, phalcon_collection_readonly_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Collection_ReadOnly, remove) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *element_param = NULL; - zval element; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&element); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(element) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &element_param); - zephir_get_strval(&element, element_param); - - - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_collection_exception_ce, "The object is read only", "phalcon/Collection/ReadOnly.zep", 25); - return; -} - -static PHP_METHOD(Phalcon_Collection_ReadOnly, set) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *element_param = NULL, *value, value_sub; - zval element; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&element); - ZVAL_UNDEF(&value_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(element) - Z_PARAM_ZVAL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &element_param, &value); - zephir_get_strval(&element, element_param); - - - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_collection_exception_ce, "The object is read only", "phalcon/Collection/ReadOnly.zep", 33); - return; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Config_ConfigFactory) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Config, ConfigFactory, phalcon, config_configfactory, phalcon_factory_abstractfactory_ce, phalcon_config_configfactory_method_entry, 0); - - zend_declare_property_string(phalcon_config_configfactory_ce, SL("exception"), "Phalcon\\Config\\Exception", ZEND_ACC_PROTECTED); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Config_ConfigFactory, __construct) +static PHP_METHOD(Phalcon_Mvc_Model, cloneResult) { + zend_string *_4; + zend_ulong _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *services_param = NULL; - zval services; + zend_long dirtyState, ZEPHIR_LAST_CALL_STATUS; + zval data; + zval *base, base_sub, *data_param = NULL, *dirtyState_param = NULL, instance, key, value, _0, *_1, _2, _5; zval *this_ptr = getThis(); - ZVAL_UNDEF(&services); + ZVAL_UNDEF(&base_sub); + ZVAL_UNDEF(&instance); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&data); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_OBJECT_OF_CLASS(base, phalcon_mvc_modelinterface_ce) + Z_PARAM_ARRAY(data) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(services) + Z_PARAM_LONG(dirtyState) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &services_param); - if (!services_param) { - ZEPHIR_INIT_VAR(&services); - array_init(&services); + zephir_fetch_params(1, 2, 1, &base, &data_param, &dirtyState_param); + ZEPHIR_OBS_COPY_OR_DUP(&data, data_param); + if (!dirtyState_param) { + dirtyState = 0; } else { - zephir_get_arrval(&services, services_param); + dirtyState = zephir_get_intval(dirtyState_param); } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "init", NULL, 0, &services); + ZEPHIR_INIT_VAR(&instance); + if (zephir_clone(&instance, base) == FAILURE) { + RETURN_MM(); + } + ZVAL_LONG(&_0, dirtyState); + ZEPHIR_CALL_METHOD(NULL, &instance, "setdirtystate", NULL, 0, &_0); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + zephir_is_iterable(&data, 0, "phalcon/Mvc/Model.zep", 795); + if (Z_TYPE_P(&data) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _3, _4, _1) + { + ZEPHIR_INIT_NVAR(&key); + if (_4 != NULL) { + ZVAL_STR_COPY(&key, _4); + } else { + ZVAL_LONG(&key, _3); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _1); + if (UNEXPECTED(Z_TYPE_P(&key) != IS_STRING)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid key in array data provided to dumpResult()", "phalcon/Mvc/Model.zep", 785); + return; + } + zephir_update_property_zval_zval(&instance, &key, &value); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &data, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &data, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &data, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &data, "current", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&key) != IS_STRING)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid key in array data provided to dumpResult()", "phalcon/Mvc/Model.zep", 785); + return; + } + zephir_update_property_zval_zval(&instance, &key, &value); + ZEPHIR_CALL_METHOD(NULL, &data, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + ZEPHIR_INIT_VAR(&_5); + ZVAL_STRING(&_5, "afterFetch"); + ZEPHIR_CALL_METHOD(NULL, &instance, "fireevent", NULL, 0, &_5); + zephir_check_call_status(); + RETURN_CCTOR(&instance); } -static PHP_METHOD(Phalcon_Config_ConfigFactory, load) +static PHP_METHOD(Phalcon_Mvc_Model, cloneResultMap) { - zend_bool _2; + zend_string *_4; + zend_ulong _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_11 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *config = NULL, config_sub, adapter, extension, first, oldConfig, second, _4, _5, _6, _9, _10, _0$$3, _1$$3, _3$$5, _7$$9, _8$$9, _12$$10, _13$$10, _14$$11, _15$$11; + zephir_fcall_cache_entry *_8 = NULL, *_14 = NULL; + zend_bool keepSnapshots, _5$$6, _11$$3, _16$$24, _21$$21; + zend_long dirtyState, ZEPHIR_LAST_CALL_STATUS; + zval data; + zval *base, base_sub, *data_param = NULL, *columnMap, columnMap_sub, *dirtyState_param = NULL, *keepSnapshots_param = NULL, instance, attribute, key, value, castValue, attributeName, metaData, reverseMap, _0, *_1, _2, _6$$9, _7$$9, _9$$11, _10$$11, _12$$13, _13$$14, _15$$18, _17$$27, _18$$27, _19$$29, _20$$29, _22$$31, _23$$32, _24$$36, _25$$40; zval *this_ptr = getThis(); - ZVAL_UNDEF(&config_sub); - ZVAL_UNDEF(&adapter); - ZVAL_UNDEF(&extension); - ZVAL_UNDEF(&first); - ZVAL_UNDEF(&oldConfig); - ZVAL_UNDEF(&second); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&base_sub); + ZVAL_UNDEF(&columnMap_sub); + ZVAL_UNDEF(&instance); + ZVAL_UNDEF(&attribute); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&castValue); + ZVAL_UNDEF(&attributeName); + ZVAL_UNDEF(&metaData); + ZVAL_UNDEF(&reverseMap); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_6$$9); ZVAL_UNDEF(&_7$$9); - ZVAL_UNDEF(&_8$$9); - ZVAL_UNDEF(&_12$$10); - ZVAL_UNDEF(&_13$$10); - ZVAL_UNDEF(&_14$$11); - ZVAL_UNDEF(&_15$$11); + ZVAL_UNDEF(&_9$$11); + ZVAL_UNDEF(&_10$$11); + ZVAL_UNDEF(&_12$$13); + ZVAL_UNDEF(&_13$$14); + ZVAL_UNDEF(&_15$$18); + ZVAL_UNDEF(&_17$$27); + ZVAL_UNDEF(&_18$$27); + ZVAL_UNDEF(&_19$$29); + ZVAL_UNDEF(&_20$$29); + ZVAL_UNDEF(&_22$$31); + ZVAL_UNDEF(&_23$$32); + ZVAL_UNDEF(&_24$$36); + ZVAL_UNDEF(&_25$$40); + ZVAL_UNDEF(&data); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(config) + ZEND_PARSE_PARAMETERS_START(3, 5) + Z_PARAM_ZVAL(base) + Z_PARAM_ARRAY(data) + Z_PARAM_ZVAL(columnMap) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(dirtyState) + Z_PARAM_BOOL_OR_NULL(keepSnapshots, is_null_true) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &config); - ZEPHIR_SEPARATE_PARAM(config); - - - if (Z_TYPE_P(config) == IS_STRING) { - ZEPHIR_CPY_WRT(&oldConfig, config); - ZVAL_LONG(&_0$$3, 4); - ZEPHIR_CALL_FUNCTION(&extension, "pathinfo", NULL, 109, config, &_0$$3); - zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_IS_EMPTY(&extension))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_config_exception_ce, "You need to provide the extension in the file path", "phalcon/Config/ConfigFactory.zep", 66); - return; - } - ZEPHIR_INIT_VAR(&_1$$3); - zephir_create_array(&_1$$3, 2, 0); - zephir_array_update_string(&_1$$3, SL("adapter"), &extension, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_1$$3, SL("filePath"), &oldConfig, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(config, &_1$$3); - } - _2 = Z_TYPE_P(config) == IS_OBJECT; - if (_2) { - _2 = zephir_instance_of_ev(config, phalcon_config_configinterface_ce); - } - if (_2) { - ZEPHIR_CALL_METHOD(&_3$$5, config, "toarray", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(config, &_3$$5); - } - if (UNEXPECTED(Z_TYPE_P(config) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_config_exception_ce, "Config must be array or Phalcon\\Config object", "phalcon/Config/ConfigFactory.zep", 82); - return; - } - if (UNEXPECTED(!(zephir_array_isset_string(config, SL("filePath"))))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_config_exception_ce, "You must provide 'filePath' option in factory config parameter.", "phalcon/Config/ConfigFactory.zep", 88); - return; - } - if (UNEXPECTED(!(zephir_array_isset_string(config, SL("adapter"))))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_config_exception_ce, "You must provide 'adapter' option in factory config parameter.", "phalcon/Config/ConfigFactory.zep", 94); - return; + zephir_fetch_params(1, 3, 2, &base, &data_param, &columnMap, &dirtyState_param, &keepSnapshots_param); + ZEPHIR_OBS_COPY_OR_DUP(&data, data_param); + if (!dirtyState_param) { + dirtyState = 0; + } else { + dirtyState = zephir_get_intval(dirtyState_param); } - zephir_array_fetch_string(&_4, config, SL("adapter"), PH_NOISY | PH_READONLY, "phalcon/Config/ConfigFactory.zep", 97); - ZEPHIR_INIT_VAR(&adapter); - zephir_fast_strtolower(&adapter, &_4); - ZEPHIR_OBS_VAR(&first); - zephir_array_fetch_string(&first, config, SL("filePath"), PH_NOISY, "phalcon/Config/ConfigFactory.zep", 98); - ZEPHIR_INIT_VAR(&second); - ZVAL_NULL(&second); - ZVAL_LONG(&_5, 4); - ZEPHIR_CALL_FUNCTION(&_6, "pathinfo", NULL, 109, &first, &_5); - zephir_check_call_status(); - if (ZEPHIR_IS_EMPTY(&_6)) { - ZEPHIR_CALL_FUNCTION(&_7$$9, "lcfirst", NULL, 96, &adapter); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_8$$9); - ZEPHIR_CONCAT_VSV(&_8$$9, &first, ".", &_7$$9); - ZEPHIR_CPY_WRT(&first, &_8$$9); + if (!keepSnapshots_param) { + keepSnapshots = 0; + } else { + keepSnapshots = zephir_get_boolval(keepSnapshots_param); } - ZEPHIR_INIT_VAR(&_9); - ZVAL_STRING(&_9, "ini"); - ZEPHIR_INIT_VAR(&_10); - ZVAL_STRING(&_10, "yaml"); - if (ZEPHIR_IS_IDENTICAL(&_9, &adapter)) { - ZEPHIR_INIT_VAR(&_12$$10); - ZVAL_STRING(&_12$$10, "mode"); - ZVAL_LONG(&_13$$10, 1); - ZEPHIR_CALL_CE_STATIC(&second, phalcon_helper_arr_ce, "get", &_11, 16, config, &_12$$10, &_13$$10); - zephir_check_call_status(); - } else if (ZEPHIR_IS_IDENTICAL(&_10, &adapter)) { - ZEPHIR_INIT_VAR(&_14$$11); - array_init(&_14$$11); - ZEPHIR_INIT_VAR(&_15$$11); - ZVAL_STRING(&_15$$11, "callbacks"); - ZEPHIR_CALL_CE_STATIC(&second, phalcon_helper_arr_ce, "get", &_11, 16, config, &_15$$11, &_14$$11); - zephir_check_call_status(); + + + ZEPHIR_INIT_VAR(&instance); + if (zephir_clone(&instance, base) == FAILURE) { + RETURN_MM(); } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "newinstance", NULL, 0, &adapter, &first, &second); + ZVAL_LONG(&_0, dirtyState); + ZEPHIR_CALL_METHOD(NULL, &instance, "setdirtystate", NULL, 0, &_0); zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Config_ConfigFactory, newInstance) -{ - zend_bool _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, *fileName_param = NULL, *params = NULL, params_sub, __$null, definition, options, _0, _2; - zval name, fileName; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&fileName); - ZVAL_UNDEF(¶ms_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(name) - Z_PARAM_STR(fileName) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(params) - ZEND_PARSE_PARAMETERS_END(); -#endif + zephir_is_iterable(&data, 1, "phalcon/Mvc/Model.zep", 929); + if (Z_TYPE_P(&data) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _3, _4, _1) + { + ZEPHIR_INIT_NVAR(&key); + if (_4 != NULL) { + ZVAL_STR_COPY(&key, _4); + } else { + ZVAL_LONG(&key, _3); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _1); + if (Z_TYPE_P(&key) != IS_STRING) { + continue; + } + if (Z_TYPE_P(columnMap) != IS_ARRAY) { + zephir_update_property_zval_zval(&instance, &key, &value); + continue; + } + ZEPHIR_OBS_NVAR(&attribute); + if (!(zephir_array_isset_fetch(&attribute, columnMap, &key, 0))) { + _5$$6 = Z_TYPE_P(columnMap) == IS_ARRAY; + if (_5$$6) { + _5$$6 = !(ZEPHIR_IS_EMPTY(columnMap)); + } + if (_5$$6) { + ZEPHIR_CALL_METHOD(&metaData, &instance, "getmodelsmetadata", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&reverseMap, &metaData, "getreversecolumnmap", NULL, 0, &instance); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&attribute); + if (!(zephir_array_isset_fetch(&attribute, &reverseMap, &key, 0))) { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_6$$9); + object_init_ex(&_6$$9, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_7$$9); + ZEPHIR_CONCAT_SVS(&_7$$9, "Column '", &key, "' doesn't make part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_6$$9, "__construct", &_8, 8, &_7$$9); + zephir_check_call_status(); + zephir_throw_exception_debug(&_6$$9, "phalcon/Mvc/Model.zep", 855); + ZEPHIR_MM_RESTORE(); + return; + } + continue; + } + } else { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_9$$11); + object_init_ex(&_9$$11, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_10$$11); + ZEPHIR_CONCAT_SVS(&_10$$11, "Column '", &key, "' doesn't make part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_9$$11, "__construct", &_8, 8, &_10$$11); + zephir_check_call_status(); + zephir_throw_exception_debug(&_9$$11, "phalcon/Mvc/Model.zep", 864); + ZEPHIR_MM_RESTORE(); + return; + } + continue; + } + } + if (Z_TYPE_P(&attribute) != IS_ARRAY) { + zephir_update_property_zval_zval(&instance, &attribute, &value); + continue; + } + _11$$3 = !ZEPHIR_IS_STRING(&value, ""); + if (_11$$3) { + _11$$3 = Z_TYPE_P(&value) != IS_NULL; + } + if (_11$$3) { + zephir_array_fetch_long(&_12$$13, &attribute, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 878); + do { + if (ZEPHIR_IS_LONG(&_12$$13, 14) || ZEPHIR_IS_LONG(&_12$$13, 0) || ZEPHIR_IS_LONG(&_12$$13, 21) || ZEPHIR_IS_LONG(&_12$$13, 22) || ZEPHIR_IS_LONG(&_12$$13, 26)) { + ZVAL_LONG(&_13$$14, 10); + ZEPHIR_CALL_FUNCTION(&castValue, "intval", &_14, 51, &value, &_13$$14); + zephir_check_call_status(); + break; + } + if (ZEPHIR_IS_LONG(&_12$$13, 3) || ZEPHIR_IS_LONG(&_12$$13, 9) || ZEPHIR_IS_LONG(&_12$$13, 7)) { + ZEPHIR_INIT_NVAR(&castValue); + ZVAL_DOUBLE(&castValue, zephir_get_doubleval(&value)); + break; + } + if (ZEPHIR_IS_LONG(&_12$$13, 8)) { + ZEPHIR_INIT_NVAR(&castValue); + ZVAL_BOOL(&castValue, zephir_get_boolval(&value)); + break; + } + ZEPHIR_CPY_WRT(&castValue, &value); + break; + } while(0); + } else { + zephir_array_fetch_long(&_15$$18, &attribute, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 902); + do { + if (ZEPHIR_IS_LONG(&_15$$18, 14) || ZEPHIR_IS_LONG(&_15$$18, 8) || ZEPHIR_IS_LONG(&_15$$18, 3) || ZEPHIR_IS_LONG(&_15$$18, 9) || ZEPHIR_IS_LONG(&_15$$18, 7) || ZEPHIR_IS_LONG(&_15$$18, 0) || ZEPHIR_IS_LONG(&_15$$18, 21) || ZEPHIR_IS_LONG(&_15$$18, 22) || ZEPHIR_IS_LONG(&_15$$18, 26)) { + ZEPHIR_INIT_NVAR(&castValue); + ZVAL_NULL(&castValue); + break; + } + ZEPHIR_CPY_WRT(&castValue, &value); + break; + } while(0); - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &name_param, &fileName_param, ¶ms); - zephir_get_strval(&name, name_param); - zephir_get_strval(&fileName, fileName_param); - if (!params) { - params = ¶ms_sub; - params = &__$null; - } + } + ZEPHIR_OBS_NVAR(&attributeName); + zephir_array_fetch_long(&attributeName, &attribute, 0, PH_NOISY, "phalcon/Mvc/Model.zep", 921); + zephir_update_property_zval_zval(&instance, &attributeName, &castValue); + zephir_array_update_zval(&data, &key, &castValue, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &data, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &data, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &data, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &data, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&key) != IS_STRING) { + continue; + } + if (Z_TYPE_P(columnMap) != IS_ARRAY) { + zephir_update_property_zval_zval(&instance, &key, &value); + continue; + } + ZEPHIR_OBS_NVAR(&attribute); + if (!(zephir_array_isset_fetch(&attribute, columnMap, &key, 0))) { + _16$$24 = Z_TYPE_P(columnMap) == IS_ARRAY; + if (_16$$24) { + _16$$24 = !(ZEPHIR_IS_EMPTY(columnMap)); + } + if (_16$$24) { + ZEPHIR_CALL_METHOD(&metaData, &instance, "getmodelsmetadata", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&reverseMap, &metaData, "getreversecolumnmap", NULL, 0, &instance); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&attribute); + if (!(zephir_array_isset_fetch(&attribute, &reverseMap, &key, 0))) { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_17$$27); + object_init_ex(&_17$$27, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_18$$27); + ZEPHIR_CONCAT_SVS(&_18$$27, "Column '", &key, "' doesn't make part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_17$$27, "__construct", &_8, 8, &_18$$27); + zephir_check_call_status(); + zephir_throw_exception_debug(&_17$$27, "phalcon/Mvc/Model.zep", 855); + ZEPHIR_MM_RESTORE(); + return; + } + continue; + } + } else { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_19$$29); + object_init_ex(&_19$$29, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_20$$29); + ZEPHIR_CONCAT_SVS(&_20$$29, "Column '", &key, "' doesn't make part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_19$$29, "__construct", &_8, 8, &_20$$29); + zephir_check_call_status(); + zephir_throw_exception_debug(&_19$$29, "phalcon/Mvc/Model.zep", 864); + ZEPHIR_MM_RESTORE(); + return; + } + continue; + } + } + if (Z_TYPE_P(&attribute) != IS_ARRAY) { + zephir_update_property_zval_zval(&instance, &attribute, &value); + continue; + } + _21$$21 = !ZEPHIR_IS_STRING(&value, ""); + if (_21$$21) { + _21$$21 = Z_TYPE_P(&value) != IS_NULL; + } + if (_21$$21) { + zephir_array_fetch_long(&_22$$31, &attribute, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 878); + do { + if (ZEPHIR_IS_LONG(&_22$$31, 14) || ZEPHIR_IS_LONG(&_22$$31, 0) || ZEPHIR_IS_LONG(&_22$$31, 21) || ZEPHIR_IS_LONG(&_22$$31, 22) || ZEPHIR_IS_LONG(&_22$$31, 26)) { + ZVAL_LONG(&_23$$32, 10); + ZEPHIR_CALL_FUNCTION(&castValue, "intval", &_14, 51, &value, &_23$$32); + zephir_check_call_status(); + break; + } + if (ZEPHIR_IS_LONG(&_22$$31, 3) || ZEPHIR_IS_LONG(&_22$$31, 9) || ZEPHIR_IS_LONG(&_22$$31, 7)) { + ZEPHIR_INIT_NVAR(&castValue); + ZVAL_DOUBLE(&castValue, zephir_get_doubleval(&value)); + break; + } + if (ZEPHIR_IS_LONG(&_22$$31, 8)) { + ZEPHIR_INIT_NVAR(&castValue); + ZVAL_BOOL(&castValue, zephir_get_boolval(&value)); + break; + } + ZEPHIR_CPY_WRT(&castValue, &value); + break; + } while(0); + } else { + zephir_array_fetch_long(&_24$$36, &attribute, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 902); + do { + if (ZEPHIR_IS_LONG(&_24$$36, 14) || ZEPHIR_IS_LONG(&_24$$36, 8) || ZEPHIR_IS_LONG(&_24$$36, 3) || ZEPHIR_IS_LONG(&_24$$36, 9) || ZEPHIR_IS_LONG(&_24$$36, 7) || ZEPHIR_IS_LONG(&_24$$36, 0) || ZEPHIR_IS_LONG(&_24$$36, 21) || ZEPHIR_IS_LONG(&_24$$36, 22) || ZEPHIR_IS_LONG(&_24$$36, 26)) { + ZEPHIR_INIT_NVAR(&castValue); + ZVAL_NULL(&castValue); + break; + } + ZEPHIR_CPY_WRT(&castValue, &value); + break; + } while(0); - ZEPHIR_CALL_METHOD(&definition, this_ptr, "getservice", NULL, 0, &name); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&options); - array_init(&options); - zephir_array_append(&options, &fileName, PH_SEPARATE, "phalcon/Config/ConfigFactory.zep", 123); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "json"); - _1 = !ZEPHIR_IS_IDENTICAL(&_0, &name); - if (_1) { - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "php"); - _1 = !ZEPHIR_IS_IDENTICAL(&_2, &name); + } + ZEPHIR_OBS_NVAR(&attributeName); + zephir_array_fetch_long(&attributeName, &attribute, 0, PH_NOISY, "phalcon/Mvc/Model.zep", 921); + zephir_update_property_zval_zval(&instance, &attributeName, &castValue); + zephir_array_update_zval(&data, &key, &castValue, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &data, "next", NULL, 0); + zephir_check_call_status(); + } } - if (_1) { - zephir_array_append(&options, params, PH_SEPARATE, "phalcon/Config/ConfigFactory.zep", 126); + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + if (keepSnapshots) { + ZEPHIR_CALL_METHOD(NULL, &instance, "setsnapshotdata", NULL, 0, &data, columnMap); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &instance, "setoldsnapshotdata", NULL, 0, &data, columnMap); + zephir_check_call_status(); } - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(return_value, &definition, &options); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Config_ConfigFactory, getAdapters) -{ - zval *this_ptr = getThis(); - - - - zephir_create_array(return_value, 5, 0); - add_assoc_stringl_ex(return_value, SL("grouped"), SL("Phalcon\\Config\\Adapter\\Grouped")); - add_assoc_stringl_ex(return_value, SL("ini"), SL("Phalcon\\Config\\Adapter\\Ini")); - add_assoc_stringl_ex(return_value, SL("json"), SL("Phalcon\\Config\\Adapter\\Json")); - add_assoc_stringl_ex(return_value, SL("php"), SL("Phalcon\\Config\\Adapter\\Php")); - add_assoc_stringl_ex(return_value, SL("yaml"), SL("Phalcon\\Config\\Adapter\\Yaml")); - return; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Config_ConfigInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Config, ConfigInterface, phalcon, config_configinterface, phalcon_config_configinterface_method_entry); - - zend_class_implements(phalcon_config_configinterface_ce, 1, phalcon_collection_collectioninterface_ce); - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Config_ConfigInterface, getPathDelimiter); -ZEPHIR_DOC_METHOD(Phalcon_Config_ConfigInterface, merge); -ZEPHIR_DOC_METHOD(Phalcon_Config_ConfigInterface, path); -ZEPHIR_DOC_METHOD(Phalcon_Config_ConfigInterface, setPathDelimiter); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Config_Exception) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Config, Exception, phalcon, config_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Config_Adapter_Grouped) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Config\\Adapter, Grouped, phalcon, config_adapter_grouped, phalcon_config_ce, phalcon_config_adapter_grouped_method_entry, 0); - - return SUCCESS; + if ((zephir_method_exists_ex(&instance, ZEND_STRL("fireevent")) == SUCCESS)) { + ZEPHIR_INIT_VAR(&_25$$40); + ZVAL_STRING(&_25$$40, "afterFetch"); + ZEPHIR_CALL_METHOD(NULL, &instance, "fireevent", NULL, 0, &_25$$40); + zephir_check_call_status(); + } + RETURN_CCTOR(&instance); } -static PHP_METHOD(Phalcon_Config_Adapter_Grouped, __construct) +static PHP_METHOD(Phalcon_Mvc_Model, cloneResultMapHydrate) { - zend_bool _4$$3, _20$$11; + zend_bool _4$$7, _10$$16; + zend_string *_3; + zend_ulong _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL, *_5 = NULL, *_8 = NULL, *_10 = NULL, *_16 = NULL, *_17 = NULL; - zval defaultAdapter, _15$$9, _28$$17; - zval *arrayConfig_param = NULL, *defaultAdapter_param = NULL, configArray, configInstance, configName, _1, *_2, _3, _12$$3, _13$$3, _6$$5, _11$$5, _7$$6, _9$$6, _14$$9, _18$$10, _19$$10, _25$$11, _26$$11, _21$$13, _24$$13, _22$$14, _23$$14, _27$$17, _29$$18, _30$$18; - zval arrayConfig; + zephir_fcall_cache_entry *_6 = NULL, *_9 = NULL, *_14 = NULL; + zend_long hydrationMode, ZEPHIR_LAST_CALL_STATUS; + zval *data_param = NULL, *columnMap, columnMap_sub, *hydrationMode_param = NULL, key, value, attribute, attributeName, *_0, _1, _5$$8, _7$$10, _8$$10, _11$$17, _12$$19, _13$$19; + zval data, hydrateArray; zval *this_ptr = getThis(); - ZVAL_UNDEF(&arrayConfig); - ZVAL_UNDEF(&configArray); - ZVAL_UNDEF(&configInstance); - ZVAL_UNDEF(&configName); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&hydrateArray); + ZVAL_UNDEF(&columnMap_sub); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&attribute); + ZVAL_UNDEF(&attributeName); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_12$$3); - ZVAL_UNDEF(&_13$$3); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_11$$5); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_9$$6); - ZVAL_UNDEF(&_14$$9); - ZVAL_UNDEF(&_18$$10); - ZVAL_UNDEF(&_19$$10); - ZVAL_UNDEF(&_25$$11); - ZVAL_UNDEF(&_26$$11); - ZVAL_UNDEF(&_21$$13); - ZVAL_UNDEF(&_24$$13); - ZVAL_UNDEF(&_22$$14); - ZVAL_UNDEF(&_23$$14); - ZVAL_UNDEF(&_27$$17); - ZVAL_UNDEF(&_29$$18); - ZVAL_UNDEF(&_30$$18); - ZVAL_UNDEF(&defaultAdapter); - ZVAL_UNDEF(&_15$$9); - ZVAL_UNDEF(&_28$$17); + ZVAL_UNDEF(&_5$$8); + ZVAL_UNDEF(&_7$$10); + ZVAL_UNDEF(&_8$$10); + ZVAL_UNDEF(&_11$$17); + ZVAL_UNDEF(&_12$$19); + ZVAL_UNDEF(&_13$$19); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(arrayConfig) - Z_PARAM_OPTIONAL - Z_PARAM_STR(defaultAdapter) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_ARRAY(data) + Z_PARAM_ZVAL(columnMap) + Z_PARAM_LONG(hydrationMode) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &arrayConfig_param, &defaultAdapter_param); - ZEPHIR_OBS_COPY_OR_DUP(&arrayConfig, arrayConfig_param); - if (!defaultAdapter_param) { - ZEPHIR_INIT_VAR(&defaultAdapter); - ZVAL_STRING(&defaultAdapter, "php"); - } else { - if (UNEXPECTED(Z_TYPE_P(defaultAdapter_param) != IS_STRING && Z_TYPE_P(defaultAdapter_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'defaultAdapter' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(defaultAdapter_param) == IS_STRING)) { - zephir_get_strval(&defaultAdapter, defaultAdapter_param); - } else { - ZEPHIR_INIT_VAR(&defaultAdapter); - } - } + zephir_fetch_params(1, 3, 0, &data_param, &columnMap, &hydrationMode_param); + ZEPHIR_OBS_COPY_OR_DUP(&data, data_param); + hydrationMode = zephir_get_intval(hydrationMode_param); - ZEPHIR_INIT_VAR(&_1); - array_init(&_1); - ZEPHIR_CALL_PARENT(NULL, phalcon_config_adapter_grouped_ce, getThis(), "__construct", &_0, 0, &_1); - zephir_check_call_status(); - zephir_is_iterable(&arrayConfig, 0, "phalcon/Config/Adapter/Grouped.zep", 121); - if (Z_TYPE_P(&arrayConfig) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&arrayConfig), _2) + if (Z_TYPE_P(columnMap) != IS_ARRAY) { + if (hydrationMode == 1) { + RETURN_CTOR(&data); + } + } + ZEPHIR_INIT_VAR(&hydrateArray); + array_init(&hydrateArray); + zephir_is_iterable(&data, 0, "phalcon/Mvc/Model.zep", 1013); + if (Z_TYPE_P(&data) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _2, _3, _0) { - ZEPHIR_INIT_NVAR(&configName); - ZVAL_COPY(&configName, _2); - ZEPHIR_CPY_WRT(&configInstance, &configName); - _4$$3 = Z_TYPE_P(&configName) == IS_OBJECT; - if (_4$$3) { - _4$$3 = zephir_instance_of_ev(&configName, phalcon_config_configinterface_ce); + ZEPHIR_INIT_NVAR(&key); + if (_3 != NULL) { + ZVAL_STR_COPY(&key, _3); + } else { + ZVAL_LONG(&key, _2); } - if (_4$$3) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "merge", &_5, 0, &configInstance); - zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0); + if (Z_TYPE_P(&key) != IS_STRING) { continue; - } else if (Z_TYPE_P(&configName) == IS_STRING) { - ZEPHIR_INIT_NVAR(&_6$$5); - ZVAL_STRING(&_6$$5, ""); - if (ZEPHIR_IS_IDENTICAL(&_6$$5, &defaultAdapter)) { - ZEPHIR_INIT_NVAR(&_7$$6); - object_init_ex(&_7$$6, phalcon_config_configfactory_ce); - ZEPHIR_CALL_METHOD(NULL, &_7$$6, "__construct", &_8, 175); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_9$$6, &_7$$6, "load", &_10, 176, &configName); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "merge", &_5, 0, &_9$$6); + } + if (Z_TYPE_P(columnMap) == IS_ARRAY) { + _4$$7 = !(zephir_array_isset(columnMap, &key)); + if (_4$$7) { + _4$$7 = ZEPHIR_GLOBAL(orm).case_insensitive_column_map; + } + if (_4$$7) { + ZEPHIR_CALL_SELF(&_5$$8, "caseinsensitivecolumnmap", &_6, 431, columnMap, &key); zephir_check_call_status(); + ZEPHIR_CPY_WRT(&key, &_5$$8); + } + ZEPHIR_OBS_NVAR(&attribute); + if (!(zephir_array_isset_fetch(&attribute, columnMap, &key, 0))) { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_7$$10); + object_init_ex(&_7$$10, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_8$$10); + ZEPHIR_CONCAT_SVS(&_8$$10, "Column '", &key, "' doesn't make part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_7$$10, "__construct", &_9, 8, &_8$$10); + zephir_check_call_status(); + zephir_throw_exception_debug(&_7$$10, "phalcon/Mvc/Model.zep", 992); + ZEPHIR_MM_RESTORE(); + return; + } continue; } - ZEPHIR_INIT_NVAR(&_11$$5); - zephir_create_array(&_11$$5, 2, 0); - zephir_array_update_string(&_11$$5, SL("filePath"), &configName, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_11$$5, SL("adapter"), &defaultAdapter, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&configInstance, &_11$$5); - } else if (!(zephir_array_isset_string(&configInstance, SL("adapter")))) { - zephir_array_update_string(&configInstance, SL("adapter"), &defaultAdapter, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_string(&_12$$3, &configInstance, SL("adapter"), PH_NOISY | PH_READONLY, "phalcon/Config/Adapter/Grouped.zep", 105); - ZEPHIR_INIT_NVAR(&_13$$3); - ZVAL_STRING(&_13$$3, "array"); - if (ZEPHIR_IS_IDENTICAL(&_13$$3, &_12$$3)) { - if (!(zephir_array_isset_string(&configInstance, SL("config")))) { - ZEPHIR_INIT_NVAR(&_14$$9); - object_init_ex(&_14$$9, phalcon_config_exception_ce); - ZEPHIR_INIT_NVAR(&_15$$9); - ZEPHIR_CONCAT_SS(&_15$$9, "To use 'array' adapter you have to specify ", "the 'config' as an array."); - ZEPHIR_CALL_METHOD(NULL, &_14$$9, "__construct", &_16, 8, &_15$$9); - zephir_check_call_status(); - zephir_throw_exception_debug(&_14$$9, "phalcon/Config/Adapter/Grouped.zep", 110); - ZEPHIR_MM_RESTORE(); - return; + if (Z_TYPE_P(&attribute) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&attributeName); + zephir_array_fetch_long(&attributeName, &attribute, 0, PH_NOISY, "phalcon/Mvc/Model.zep", 1002); + } else { + ZEPHIR_CPY_WRT(&attributeName, &attribute); } - ZEPHIR_OBS_NVAR(&configArray); - zephir_array_fetch_string(&configArray, &configInstance, SL("config"), PH_NOISY, "phalcon/Config/Adapter/Grouped.zep", 113); - ZEPHIR_INIT_NVAR(&configInstance); - object_init_ex(&configInstance, phalcon_config_ce); - ZEPHIR_CALL_METHOD(NULL, &configInstance, "__construct", &_17, 22, &configArray); - zephir_check_call_status(); + zephir_array_update_zval(&hydrateArray, &attributeName, &value, PH_COPY | PH_SEPARATE); } else { - ZEPHIR_INIT_NVAR(&_18$$10); - object_init_ex(&_18$$10, phalcon_config_configfactory_ce); - ZEPHIR_CALL_METHOD(NULL, &_18$$10, "__construct", &_8, 175); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_19$$10, &_18$$10, "load", &_10, 176, &configInstance); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&configInstance, &_19$$10); + zephir_array_update_zval(&hydrateArray, &key, &value, PH_COPY | PH_SEPARATE); } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "merge", &_5, 0, &configInstance); - zephir_check_call_status(); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &arrayConfig, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &data, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_3, &arrayConfig, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_1, &data, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_3)) { + if (!zend_is_true(&_1)) { break; } - ZEPHIR_CALL_METHOD(&configName, &arrayConfig, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&key, &data, "key", NULL, 0); zephir_check_call_status(); - ZEPHIR_CPY_WRT(&configInstance, &configName); - _20$$11 = Z_TYPE_P(&configName) == IS_OBJECT; - if (_20$$11) { - _20$$11 = zephir_instance_of_ev(&configName, phalcon_config_configinterface_ce); - } - if (_20$$11) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "merge", &_5, 0, &configInstance); - zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &data, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&key) != IS_STRING) { continue; - } else if (Z_TYPE_P(&configName) == IS_STRING) { - ZEPHIR_INIT_NVAR(&_21$$13); - ZVAL_STRING(&_21$$13, ""); - if (ZEPHIR_IS_IDENTICAL(&_21$$13, &defaultAdapter)) { - ZEPHIR_INIT_NVAR(&_22$$14); - object_init_ex(&_22$$14, phalcon_config_configfactory_ce); - ZEPHIR_CALL_METHOD(NULL, &_22$$14, "__construct", &_8, 175); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_23$$14, &_22$$14, "load", &_10, 176, &configName); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "merge", &_5, 0, &_23$$14); + } + if (Z_TYPE_P(columnMap) == IS_ARRAY) { + _10$$16 = !(zephir_array_isset(columnMap, &key)); + if (_10$$16) { + _10$$16 = ZEPHIR_GLOBAL(orm).case_insensitive_column_map; + } + if (_10$$16) { + ZEPHIR_CALL_SELF(&_11$$17, "caseinsensitivecolumnmap", &_6, 431, columnMap, &key); zephir_check_call_status(); + ZEPHIR_CPY_WRT(&key, &_11$$17); + } + ZEPHIR_OBS_NVAR(&attribute); + if (!(zephir_array_isset_fetch(&attribute, columnMap, &key, 0))) { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_12$$19); + object_init_ex(&_12$$19, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_13$$19); + ZEPHIR_CONCAT_SVS(&_13$$19, "Column '", &key, "' doesn't make part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_12$$19, "__construct", &_9, 8, &_13$$19); + zephir_check_call_status(); + zephir_throw_exception_debug(&_12$$19, "phalcon/Mvc/Model.zep", 992); + ZEPHIR_MM_RESTORE(); + return; + } continue; } - ZEPHIR_INIT_NVAR(&_24$$13); - zephir_create_array(&_24$$13, 2, 0); - zephir_array_update_string(&_24$$13, SL("filePath"), &configName, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_24$$13, SL("adapter"), &defaultAdapter, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&configInstance, &_24$$13); - } else if (!(zephir_array_isset_string(&configInstance, SL("adapter")))) { - zephir_array_update_string(&configInstance, SL("adapter"), &defaultAdapter, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_string(&_25$$11, &configInstance, SL("adapter"), PH_NOISY | PH_READONLY, "phalcon/Config/Adapter/Grouped.zep", 105); - ZEPHIR_INIT_NVAR(&_26$$11); - ZVAL_STRING(&_26$$11, "array"); - if (ZEPHIR_IS_IDENTICAL(&_26$$11, &_25$$11)) { - if (!(zephir_array_isset_string(&configInstance, SL("config")))) { - ZEPHIR_INIT_NVAR(&_27$$17); - object_init_ex(&_27$$17, phalcon_config_exception_ce); - ZEPHIR_INIT_NVAR(&_28$$17); - ZEPHIR_CONCAT_SS(&_28$$17, "To use 'array' adapter you have to specify ", "the 'config' as an array."); - ZEPHIR_CALL_METHOD(NULL, &_27$$17, "__construct", &_16, 8, &_28$$17); - zephir_check_call_status(); - zephir_throw_exception_debug(&_27$$17, "phalcon/Config/Adapter/Grouped.zep", 110); - ZEPHIR_MM_RESTORE(); - return; + if (Z_TYPE_P(&attribute) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&attributeName); + zephir_array_fetch_long(&attributeName, &attribute, 0, PH_NOISY, "phalcon/Mvc/Model.zep", 1002); + } else { + ZEPHIR_CPY_WRT(&attributeName, &attribute); } - ZEPHIR_OBS_NVAR(&configArray); - zephir_array_fetch_string(&configArray, &configInstance, SL("config"), PH_NOISY, "phalcon/Config/Adapter/Grouped.zep", 113); - ZEPHIR_INIT_NVAR(&configInstance); - object_init_ex(&configInstance, phalcon_config_ce); - ZEPHIR_CALL_METHOD(NULL, &configInstance, "__construct", &_17, 22, &configArray); - zephir_check_call_status(); + zephir_array_update_zval(&hydrateArray, &attributeName, &value, PH_COPY | PH_SEPARATE); } else { - ZEPHIR_INIT_NVAR(&_29$$18); - object_init_ex(&_29$$18, phalcon_config_configfactory_ce); - ZEPHIR_CALL_METHOD(NULL, &_29$$18, "__construct", &_8, 175); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_30$$18, &_29$$18, "load", &_10, 176, &configInstance); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&configInstance, &_30$$18); + zephir_array_update_zval(&hydrateArray, &key, &value, PH_COPY | PH_SEPARATE); } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "merge", &_5, 0, &configInstance); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &arrayConfig, "next", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &data, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&configName); - ZEPHIR_MM_RESTORE(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Config_Adapter_Ini) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Config\\Adapter, Ini, phalcon, config_adapter_ini, phalcon_config_ce, phalcon_config_adapter_ini_method_entry, 0); - - return SUCCESS; + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + if (hydrationMode != 1) { + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_helper_arr_ce, "toobject", &_14, 432, &hydrateArray); + zephir_check_call_status(); + RETURN_MM(); + } + RETURN_CTOR(&hydrateArray); } -static PHP_METHOD(Phalcon_Config_Adapter_Ini, __construct) +static PHP_METHOD(Phalcon_Mvc_Model, collectRelatedToSave) { - zend_string *_6, *_10$$6, *_23$$12; - zend_ulong _5, _9$$6, _22$$12; - zval config; + zend_bool _6$$3, _7$$6; + zend_string *_5; + zend_ulong _4; + zval related, dirtyRelated; + zval name, record, _0, _1, *_2, _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_13 = NULL, *_19 = NULL, *_31 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *filePath_param = NULL, *mode = NULL, mode_sub, __$true, __$null, directives, iniConfig, lastValue, path, section, sections, *_3, _4, _0$$4, _1$$4, _2$$4, *_7$$6, _8$$6, _11$$7, _14$$8, _16$$9, _17$$9, _18$$10, *_20$$12, _21$$12, _24$$13, _26$$14, _28$$15, _29$$15, _30$$16; - zval filePath, _12$$7, _15$$8, _25$$13, _27$$14; zval *this_ptr = getThis(); - ZVAL_UNDEF(&filePath); - ZVAL_UNDEF(&_12$$7); - ZVAL_UNDEF(&_15$$8); - ZVAL_UNDEF(&_25$$13); - ZVAL_UNDEF(&_27$$14); - ZVAL_UNDEF(&mode_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&directives); - ZVAL_UNDEF(&iniConfig); - ZVAL_UNDEF(&lastValue); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(§ion); - ZVAL_UNDEF(§ions); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_0$$4); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_8$$6); - ZVAL_UNDEF(&_11$$7); - ZVAL_UNDEF(&_14$$8); - ZVAL_UNDEF(&_16$$9); - ZVAL_UNDEF(&_17$$9); - ZVAL_UNDEF(&_18$$10); - ZVAL_UNDEF(&_21$$12); - ZVAL_UNDEF(&_24$$13); - ZVAL_UNDEF(&_26$$14); - ZVAL_UNDEF(&_28$$15); - ZVAL_UNDEF(&_29$$15); - ZVAL_UNDEF(&_30$$16); - ZVAL_UNDEF(&config); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(filePath) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(mode) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&record); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&related); + ZVAL_UNDEF(&dirtyRelated); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &filePath_param, &mode); - if (UNEXPECTED(Z_TYPE_P(filePath_param) != IS_STRING && Z_TYPE_P(filePath_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'filePath' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(filePath_param) == IS_STRING)) { - zephir_get_strval(&filePath, filePath_param); - } else { - ZEPHIR_INIT_VAR(&filePath); - } - if (!mode) { - mode = &mode_sub; - ZEPHIR_CPY_WRT(mode, &__$null); - } else { - ZEPHIR_SEPARATE_PARAM(mode); - } - - if (EXPECTED(Z_TYPE_P(mode) == IS_NULL)) { - ZEPHIR_INIT_NVAR(mode); - ZVAL_LONG(mode, 1); - } - ZEPHIR_CALL_FUNCTION(&iniConfig, "parse_ini_file", NULL, 177, &filePath, &__$true, mode); - zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&iniConfig))) { - ZEPHIR_INIT_VAR(&_0$$4); - object_init_ex(&_0$$4, phalcon_config_exception_ce); - ZEPHIR_INIT_VAR(&_1$$4); - zephir_basename(&_1$$4, &filePath); - ZEPHIR_INIT_VAR(&_2$$4); - ZEPHIR_CONCAT_SVS(&_2$$4, "Configuration file ", &_1$$4, " cannot be loaded"); - ZEPHIR_CALL_METHOD(NULL, &_0$$4, "__construct", NULL, 8, &_2$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_0$$4, "phalcon/Config/Adapter/Ini.zep", 78); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_VAR(&config); - array_init(&config); - zephir_is_iterable(&iniConfig, 0, "phalcon/Config/Adapter/Ini.zep", 105); - if (Z_TYPE_P(&iniConfig) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&iniConfig), _5, _6, _3) + zephir_read_property(&_0, this_ptr, ZEND_STRL("related"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&related, &_0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("dirtyRelated"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&dirtyRelated, &_1); + zephir_is_iterable(&related, 0, "phalcon/Mvc/Model.zep", 1053); + if (Z_TYPE_P(&related) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&related), _4, _5, _2) { - ZEPHIR_INIT_NVAR(§ion); - if (_6 != NULL) { - ZVAL_STR_COPY(§ion, _6); + ZEPHIR_INIT_NVAR(&name); + if (_5 != NULL) { + ZVAL_STR_COPY(&name, _5); } else { - ZVAL_LONG(§ion, _5); + ZVAL_LONG(&name, _4); } - ZEPHIR_INIT_NVAR(&directives); - ZVAL_COPY(&directives, _3); - if (Z_TYPE_P(&directives) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(§ions); - array_init(§ions); - zephir_is_iterable(&directives, 0, "phalcon/Config/Adapter/Ini.zep", 94); - if (Z_TYPE_P(&directives) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&directives), _9$$6, _10$$6, _7$$6) - { - ZEPHIR_INIT_NVAR(&path); - if (_10$$6 != NULL) { - ZVAL_STR_COPY(&path, _10$$6); - } else { - ZVAL_LONG(&path, _9$$6); - } - ZEPHIR_INIT_NVAR(&lastValue); - ZVAL_COPY(&lastValue, _7$$6); - zephir_cast_to_string(&_12$$7, &path); - ZEPHIR_CALL_METHOD(&_11$$7, this_ptr, "parseinistring", &_13, 0, &_12$$7, &lastValue); - zephir_check_call_status(); - zephir_array_append(§ions, &_11$$7, PH_SEPARATE, "phalcon/Config/Adapter/Ini.zep", 91); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &directives, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_8$$6, &directives, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_8$$6)) { - break; - } - ZEPHIR_CALL_METHOD(&path, &directives, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&lastValue, &directives, "current", NULL, 0); - zephir_check_call_status(); - zephir_cast_to_string(&_15$$8, &path); - ZEPHIR_CALL_METHOD(&_14$$8, this_ptr, "parseinistring", &_13, 0, &_15$$8, &lastValue); - zephir_check_call_status(); - zephir_array_append(§ions, &_14$$8, PH_SEPARATE, "phalcon/Config/Adapter/Ini.zep", 91); - ZEPHIR_CALL_METHOD(NULL, &directives, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&lastValue); - ZEPHIR_INIT_NVAR(&path); - if (zephir_fast_count_int(§ions)) { - ZEPHIR_INIT_NVAR(&_16$$9); - ZEPHIR_INIT_NVAR(&_17$$9); - ZVAL_STRING(&_17$$9, "array_replace_recursive"); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_16$$9, &_17$$9, §ions); - zephir_check_call_status(); - zephir_array_update_zval(&config, §ion, &_16$$9, PH_COPY | PH_SEPARATE); - } - } else { - ZEPHIR_CALL_METHOD(&_18$$10, this_ptr, "cast", &_19, 0, &directives); - zephir_check_call_status(); - zephir_array_update_zval(&config, §ion, &_18$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&record); + ZVAL_COPY(&record, _2); + if (zephir_array_isset(&dirtyRelated, &name)) { + continue; + } + _6$$3 = Z_TYPE_P(&record) != IS_OBJECT; + if (!(_6$$3)) { + _6$$3 = !((zephir_instance_of_ev(&record, phalcon_mvc_modelinterface_ce))); + } + if (_6$$3) { + continue; } + zephir_array_update_zval(&dirtyRelated, &name, &record, PH_COPY | PH_SEPARATE); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &iniConfig, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &related, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_4, &iniConfig, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_3, &related, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_4)) { + if (!zend_is_true(&_3)) { break; } - ZEPHIR_CALL_METHOD(§ion, &iniConfig, "key", NULL, 0); + ZEPHIR_CALL_METHOD(&name, &related, "key", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&directives, &iniConfig, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&record, &related, "current", NULL, 0); zephir_check_call_status(); - if (Z_TYPE_P(&directives) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(§ions); - array_init(§ions); - zephir_is_iterable(&directives, 0, "phalcon/Config/Adapter/Ini.zep", 94); - if (Z_TYPE_P(&directives) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&directives), _22$$12, _23$$12, _20$$12) - { - ZEPHIR_INIT_NVAR(&path); - if (_23$$12 != NULL) { - ZVAL_STR_COPY(&path, _23$$12); - } else { - ZVAL_LONG(&path, _22$$12); - } - ZEPHIR_INIT_NVAR(&lastValue); - ZVAL_COPY(&lastValue, _20$$12); - zephir_cast_to_string(&_25$$13, &path); - ZEPHIR_CALL_METHOD(&_24$$13, this_ptr, "parseinistring", &_13, 0, &_25$$13, &lastValue); - zephir_check_call_status(); - zephir_array_append(§ions, &_24$$13, PH_SEPARATE, "phalcon/Config/Adapter/Ini.zep", 91); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &directives, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_21$$12, &directives, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_21$$12)) { - break; - } - ZEPHIR_CALL_METHOD(&path, &directives, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&lastValue, &directives, "current", NULL, 0); - zephir_check_call_status(); - zephir_cast_to_string(&_27$$14, &path); - ZEPHIR_CALL_METHOD(&_26$$14, this_ptr, "parseinistring", &_13, 0, &_27$$14, &lastValue); - zephir_check_call_status(); - zephir_array_append(§ions, &_26$$14, PH_SEPARATE, "phalcon/Config/Adapter/Ini.zep", 91); - ZEPHIR_CALL_METHOD(NULL, &directives, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&lastValue); - ZEPHIR_INIT_NVAR(&path); - if (zephir_fast_count_int(§ions)) { - ZEPHIR_INIT_NVAR(&_28$$15); - ZEPHIR_INIT_NVAR(&_29$$15); - ZVAL_STRING(&_29$$15, "array_replace_recursive"); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_28$$15, &_29$$15, §ions); - zephir_check_call_status(); - zephir_array_update_zval(&config, §ion, &_28$$15, PH_COPY | PH_SEPARATE); - } - } else { - ZEPHIR_CALL_METHOD(&_30$$16, this_ptr, "cast", &_19, 0, &directives); - zephir_check_call_status(); - zephir_array_update_zval(&config, §ion, &_30$$16, PH_COPY | PH_SEPARATE); + if (zephir_array_isset(&dirtyRelated, &name)) { + continue; } - ZEPHIR_CALL_METHOD(NULL, &iniConfig, "next", NULL, 0); + _7$$6 = Z_TYPE_P(&record) != IS_OBJECT; + if (!(_7$$6)) { + _7$$6 = !((zephir_instance_of_ev(&record, phalcon_mvc_modelinterface_ce))); + } + if (_7$$6) { + continue; + } + zephir_array_update_zval(&dirtyRelated, &name, &record, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &related, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&directives); - ZEPHIR_INIT_NVAR(§ion); - ZEPHIR_CALL_PARENT(NULL, phalcon_config_adapter_ini_ce, getThis(), "__construct", &_31, 0, &config); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + ZEPHIR_INIT_NVAR(&record); + ZEPHIR_INIT_NVAR(&name); + RETURN_CTOR(&dirtyRelated); } -static PHP_METHOD(Phalcon_Config_Adapter_Ini, cast) +static PHP_METHOD(Phalcon_Mvc_Model, count) { - zend_string *_3$$3; - zend_ulong _2$$3; - zend_bool _8; - zval _7; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *ini = NULL, ini_sub, key, lowerIni, value, *_0$$3, _1$$3, _4$$4, _6$$5, _9$$9, _10$$9, _11$$9, _12$$9; + zval *parameters = NULL, parameters_sub, __$null, result, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&ini_sub); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&lowerIni); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_9$$9); - ZVAL_UNDEF(&_10$$9); - ZVAL_UNDEF(&_11$$9); - ZVAL_UNDEF(&_12$$9); - ZVAL_UNDEF(&_7); + ZVAL_UNDEF(¶meters_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(ini) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(parameters) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &ini); - ZEPHIR_SEPARATE_PARAM(ini); + zephir_fetch_params(1, 0, 1, ¶meters); + if (!parameters) { + parameters = ¶meters_sub; + parameters = &__$null; + } - if (Z_TYPE_P(ini) == IS_ARRAY) { - zephir_is_iterable(ini, 1, "phalcon/Config/Adapter/Ini.zep", 121); - if (Z_TYPE_P(ini) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(ini), _2$$3, _3$$3, _0$$3) - { - ZEPHIR_INIT_NVAR(&key); - if (_3$$3 != NULL) { - ZVAL_STR_COPY(&key, _3$$3); - } else { - ZVAL_LONG(&key, _2$$3); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0$$3); - ZEPHIR_CALL_METHOD(&_4$$4, this_ptr, "cast", &_5, 178, &value); - zephir_check_call_status(); - zephir_array_update_zval(ini, &key, &_4$$4, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, ini, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1$$3, ini, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&key, ini, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, ini, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_6$$5, this_ptr, "cast", &_5, 178, &value); - zephir_check_call_status(); - zephir_array_update_zval(ini, &key, &_6$$5, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, ini, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - RETVAL_ZVAL(ini, 1, 0); - RETURN_MM(); - } - zephir_cast_to_string(&_7, ini); - ZEPHIR_CPY_WRT(ini, &_7); - ZEPHIR_INIT_VAR(&lowerIni); - zephir_fast_strtolower(&lowerIni, ini); - do { - if (ZEPHIR_IS_STRING(&lowerIni, "true") || ZEPHIR_IS_STRING(&lowerIni, "yes") || ZEPHIR_IS_STRING(&lowerIni, "on")) { - RETURN_MM_BOOL(1); - } - if (ZEPHIR_IS_STRING(&lowerIni, "false") || ZEPHIR_IS_STRING(&lowerIni, "no") || ZEPHIR_IS_STRING(&lowerIni, "off")) { - RETURN_MM_BOOL(0); - } - if (ZEPHIR_IS_STRING(&lowerIni, "null")) { - RETURN_MM_NULL(); - } - } while(0); - - _8 = Z_TYPE_P(ini) == IS_STRING; - if (_8) { - _8 = zephir_is_numeric(ini); - } - if (_8) { - ZEPHIR_INIT_VAR(&_9$$9); - ZEPHIR_INIT_VAR(&_10$$9); - ZVAL_STRING(&_10$$9, "/[.]+/"); - ZEPHIR_INIT_VAR(&_11$$9); - ZEPHIR_INIT_VAR(&_12$$9); - ZVAL_STRING(&_12$$9, "/[.]+/"); - zephir_preg_match(&_11$$9, &_12$$9, ini, &_9$$9, 0, 0 , 0 ); - if (zephir_is_true(&_11$$9)) { - RETURN_MM_DOUBLE(zephir_get_doubleval(ini)); - } else { - RETURN_MM_LONG(zephir_get_intval(ini)); - } + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "COUNT"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "rowcount"); + ZEPHIR_CALL_SELF(&result, "groupresult", NULL, 0, &_0, &_1, parameters); + zephir_check_call_status(); + if (Z_TYPE_P(&result) == IS_STRING) { + RETURN_MM_LONG(zephir_get_intval(&result)); } - RETVAL_ZVAL(ini, 1, 0); - RETURN_MM(); + RETURN_CCTOR(&result); } -static PHP_METHOD(Phalcon_Config_Adapter_Ini, parseIniString) +static PHP_METHOD(Phalcon_Mvc_Model, create) { + zval _2$$3; + zval metaData, _0, _1, _3$$3, _4$$3, _5$$3, _6$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *path_param = NULL, *value = NULL, value_sub, key, position, _0, _1, _2, _3, _4; - zval path; zval *this_ptr = getThis(); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&position); + ZVAL_UNDEF(&metaData); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(path) - Z_PARAM_ZVAL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_2$$3); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &path_param, &value); - if (UNEXPECTED(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 of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { - zephir_get_strval(&path, path_param); - } else { - ZEPHIR_INIT_VAR(&path); - } - ZEPHIR_SEPARATE_PARAM(value); - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "cast", NULL, 0, value); + ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL, 0); zephir_check_call_status(); - ZEPHIR_CPY_WRT(value, &_0); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "."); - ZEPHIR_INIT_VAR(&position); - zephir_fast_strpos(&position, &path, &_1, 0 ); - if (ZEPHIR_IS_FALSE_IDENTICAL(&position)) { - zephir_create_array(return_value, 1, 0); - zephir_array_update_zval(return_value, &path, value, PH_COPY); - RETURN_MM(); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getwriteconnection", NULL, 433); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "exists", NULL, 0, &metaData, &_1); + zephir_check_call_status(); + if (zephir_is_true(&_0)) { + ZEPHIR_INIT_VAR(&_2$$3); + zephir_create_array(&_2$$3, 1, 0); + ZEPHIR_INIT_VAR(&_3$$3); + object_init_ex(&_3$$3, phalcon_messages_message_ce); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "Record cannot be created because it already exists"); + ZVAL_NULL(&_5$$3); + ZEPHIR_INIT_VAR(&_6$$3); + ZVAL_STRING(&_6$$3, "InvalidCreateAttempt"); + ZEPHIR_CALL_METHOD(NULL, &_3$$3, "__construct", NULL, 6, &_4$$3, &_5$$3, &_6$$3); + zephir_check_call_status(); + zephir_array_fast_append(&_2$$3, &_3$$3); + zephir_update_property_zval(this_ptr, ZEND_STRL("errorMessages"), &_2$$3); + RETURN_MM_BOOL(0); } - ZVAL_LONG(&_2, 0); - ZEPHIR_INIT_VAR(&key); - zephir_substr(&key, &path, 0 , zephir_get_intval(&position), 0); - ZVAL_LONG(&_3, (zephir_get_numberval(&position) + 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); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "parseinistring", NULL, 179, &path, value); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "save", NULL, 0); zephir_check_call_status(); - zephir_array_update_zval(return_value, &key, &_0, PH_COPY); RETURN_MM(); } +static PHP_METHOD(Phalcon_Mvc_Model, delete) +{ + zval values, bindTypes, conditions; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval __$true, __$false, metaData, writeConnection, primaryKeys, bindDataTypes, columnMap, attributeField, primaryKey, bindType, value, schema, source, table, success, _0, _1, *_3, _4, _27, _2$$3, _5$$9, _6$$9, _8$$11, _9$$11, _10$$13, _11$$13, _12$$8, _14$$8, _15$$15, _16$$15, _17$$17, _18$$17, _19$$19, _20$$19, _21$$14, _23$$14, _24$$20, _25$$20, _26$$20, _28$$25, _29$$28; + zephir_fcall_cache_entry *_7 = NULL, *_13 = NULL, *_22 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&metaData); + ZVAL_UNDEF(&writeConnection); + ZVAL_UNDEF(&primaryKeys); + ZVAL_UNDEF(&bindDataTypes); + ZVAL_UNDEF(&columnMap); + ZVAL_UNDEF(&attributeField); + ZVAL_UNDEF(&primaryKey); + ZVAL_UNDEF(&bindType); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&source); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&success); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_27); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_5$$9); + ZVAL_UNDEF(&_6$$9); + ZVAL_UNDEF(&_8$$11); + ZVAL_UNDEF(&_9$$11); + ZVAL_UNDEF(&_10$$13); + ZVAL_UNDEF(&_11$$13); + ZVAL_UNDEF(&_12$$8); + ZVAL_UNDEF(&_14$$8); + ZVAL_UNDEF(&_15$$15); + ZVAL_UNDEF(&_16$$15); + ZVAL_UNDEF(&_17$$17); + ZVAL_UNDEF(&_18$$17); + ZVAL_UNDEF(&_19$$19); + ZVAL_UNDEF(&_20$$19); + ZVAL_UNDEF(&_21$$14); + ZVAL_UNDEF(&_23$$14); + ZVAL_UNDEF(&_24$$20); + ZVAL_UNDEF(&_25$$20); + ZVAL_UNDEF(&_26$$20); + ZVAL_UNDEF(&_28$$25); + ZVAL_UNDEF(&_29$$28); + ZVAL_UNDEF(&values); + ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&conditions); -#ifdef HAVE_CONFIG_H -#endif + ZEPHIR_MM_GROW(); + ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&writeConnection, this_ptr, "getwriteconnection", NULL, 433); + zephir_check_call_status(); + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, 3); + zephir_update_property_zval(this_ptr, ZEND_STRL("operationMade"), &_0); + ZEPHIR_INIT_VAR(&_1); + array_init(&_1); + zephir_update_property_zval(this_ptr, ZEND_STRL("errorMessages"), &_1); + if (ZEPHIR_GLOBAL(orm).virtual_foreign_keys) { + ZEPHIR_CALL_METHOD(&_2$$3, this_ptr, "checkforeignkeysreverserestrict", NULL, 434); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_2$$3)) { + RETURN_MM_BOOL(0); + } + } + ZEPHIR_INIT_VAR(&values); + array_init(&values); + ZEPHIR_INIT_VAR(&bindTypes); + array_init(&bindTypes); + ZEPHIR_INIT_VAR(&conditions); + array_init(&conditions); + ZEPHIR_CALL_METHOD(&primaryKeys, &metaData, "getprimarykeyattributes", NULL, 0, this_ptr); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&bindDataTypes, &metaData, "getbindtypes", NULL, 0, this_ptr); + zephir_check_call_status(); + if (ZEPHIR_GLOBAL(orm).column_renaming) { + ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getcolumnmap", NULL, 0, this_ptr); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&columnMap); + ZVAL_NULL(&columnMap); + } + if (UNEXPECTED(!(zephir_fast_count_int(&primaryKeys)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A primary key must be defined in the model in order to perform the operation", "phalcon/Mvc/Model.zep", 1206); + return; + } + zephir_is_iterable(&primaryKeys, 0, "phalcon/Mvc/Model.zep", 1254); + if (Z_TYPE_P(&primaryKeys) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&primaryKeys), _3) + { + ZEPHIR_INIT_NVAR(&primaryKey); + ZVAL_COPY(&primaryKey, _3); + ZEPHIR_OBS_NVAR(&bindType); + if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, &bindDataTypes, &primaryKey, 0)))) { + ZEPHIR_INIT_NVAR(&_5$$9); + object_init_ex(&_5$$9, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_6$$9); + ZEPHIR_CONCAT_SVS(&_6$$9, "Column '", &primaryKey, "' have not defined a bind data type"); + ZEPHIR_CALL_METHOD(NULL, &_5$$9, "__construct", &_7, 8, &_6$$9); + zephir_check_call_status(); + zephir_throw_exception_debug(&_5$$9, "phalcon/Mvc/Model.zep", 1220); + ZEPHIR_MM_RESTORE(); + return; + } + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&attributeField); + if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &primaryKey, 0)))) { + ZEPHIR_INIT_NVAR(&_8$$11); + object_init_ex(&_8$$11, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_9$$11); + ZEPHIR_CONCAT_SVS(&_9$$11, "Column '", &primaryKey, "' isn't part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_8$$11, "__construct", &_7, 8, &_9$$11); + zephir_check_call_status(); + zephir_throw_exception_debug(&_8$$11, "phalcon/Mvc/Model.zep", 1230); + ZEPHIR_MM_RESTORE(); + return; + } + } else { + ZEPHIR_CPY_WRT(&attributeField, &primaryKey); + } + ZEPHIR_OBS_NVAR(&value); + if (UNEXPECTED(!(zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)))) { + ZEPHIR_INIT_NVAR(&_10$$13); + object_init_ex(&_10$$13, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_11$$13); + ZEPHIR_CONCAT_SVS(&_11$$13, "Cannot delete the record because the primary key attribute: '", &attributeField, "' wasn't set"); + ZEPHIR_CALL_METHOD(NULL, &_10$$13, "__construct", &_7, 8, &_11$$13); + zephir_check_call_status(); + zephir_throw_exception_debug(&_10$$13, "phalcon/Mvc/Model.zep", 1243); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1249); + ZEPHIR_CALL_METHOD(&_12$$8, &writeConnection, "escapeidentifier", &_13, 0, &primaryKey); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_14$$8); + ZEPHIR_CONCAT_VS(&_14$$8, &_12$$8, " = ?"); + zephir_array_append(&conditions, &_14$$8, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1250); + zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1251); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &primaryKeys, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_4, &primaryKeys, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_4)) { + break; + } + ZEPHIR_CALL_METHOD(&primaryKey, &primaryKeys, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&bindType); + if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, &bindDataTypes, &primaryKey, 0)))) { + ZEPHIR_INIT_NVAR(&_15$$15); + object_init_ex(&_15$$15, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_16$$15); + ZEPHIR_CONCAT_SVS(&_16$$15, "Column '", &primaryKey, "' have not defined a bind data type"); + ZEPHIR_CALL_METHOD(NULL, &_15$$15, "__construct", &_7, 8, &_16$$15); + zephir_check_call_status(); + zephir_throw_exception_debug(&_15$$15, "phalcon/Mvc/Model.zep", 1220); + ZEPHIR_MM_RESTORE(); + return; + } + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&attributeField); + if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &primaryKey, 0)))) { + ZEPHIR_INIT_NVAR(&_17$$17); + object_init_ex(&_17$$17, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_18$$17); + ZEPHIR_CONCAT_SVS(&_18$$17, "Column '", &primaryKey, "' isn't part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_17$$17, "__construct", &_7, 8, &_18$$17); + zephir_check_call_status(); + zephir_throw_exception_debug(&_17$$17, "phalcon/Mvc/Model.zep", 1230); + ZEPHIR_MM_RESTORE(); + return; + } + } else { + ZEPHIR_CPY_WRT(&attributeField, &primaryKey); + } + ZEPHIR_OBS_NVAR(&value); + if (UNEXPECTED(!(zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)))) { + ZEPHIR_INIT_NVAR(&_19$$19); + object_init_ex(&_19$$19, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_20$$19); + ZEPHIR_CONCAT_SVS(&_20$$19, "Cannot delete the record because the primary key attribute: '", &attributeField, "' wasn't set"); + ZEPHIR_CALL_METHOD(NULL, &_19$$19, "__construct", &_7, 8, &_20$$19); + zephir_check_call_status(); + zephir_throw_exception_debug(&_19$$19, "phalcon/Mvc/Model.zep", 1243); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1249); + ZEPHIR_CALL_METHOD(&_21$$14, &writeConnection, "escapeidentifier", &_22, 0, &primaryKey); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_23$$14); + ZEPHIR_CONCAT_VS(&_23$$14, &_21$$14, " = ?"); + zephir_array_append(&conditions, &_23$$14, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1250); + zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1251); + ZEPHIR_CALL_METHOD(NULL, &primaryKeys, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&primaryKey); + if (ZEPHIR_GLOBAL(orm).events) { + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("skipped"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("skipped"), &__$false); + } + ZEPHIR_INIT_VAR(&_25$$20); + ZVAL_STRING(&_25$$20, "beforeDelete"); + ZEPHIR_CALL_METHOD(&_24$$20, this_ptr, "fireeventcancel", NULL, 0, &_25$$20); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_24$$20)) { + RETURN_MM_BOOL(0); + } + zephir_read_property(&_26$$20, this_ptr, ZEND_STRL("skipped"), PH_NOISY_CC | PH_READONLY); + if (ZEPHIR_IS_TRUE_IDENTICAL(&_26$$20)) { + RETURN_MM_BOOL(1); + } + } + ZEPHIR_CALL_METHOD(&schema, this_ptr, "getschema", NULL, 435); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&source, this_ptr, "getsource", NULL, 436); + zephir_check_call_status(); + if (zephir_is_true(&schema)) { + ZEPHIR_INIT_VAR(&table); + zephir_create_array(&table, 2, 0); + zephir_array_fast_append(&table, &schema); + zephir_array_fast_append(&table, &source); + } else { + ZEPHIR_CPY_WRT(&table, &source); + } + ZEPHIR_INIT_VAR(&_27); + zephir_fast_join_str(&_27, SL(" AND "), &conditions); + ZEPHIR_CALL_METHOD(&success, &writeConnection, "delete", NULL, 0, &table, &_27, &values, &bindTypes); + zephir_check_call_status(); + if (ZEPHIR_GLOBAL(orm).virtual_foreign_keys) { + ZEPHIR_CALL_METHOD(&_28$$25, this_ptr, "checkforeignkeysreversecascade", NULL, 437); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_28$$25)) { + RETURN_MM_BOOL(0); + } + } + if (ZEPHIR_GLOBAL(orm).events) { + if (zephir_is_true(&success)) { + ZEPHIR_INIT_VAR(&_29$$28); + ZVAL_STRING(&_29$$28, "afterDelete"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_29$$28); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, 2); + zephir_update_property_zval(this_ptr, ZEND_STRL("dirtyState"), &_0); + RETURN_CCTOR(&success); +} +static PHP_METHOD(Phalcon_Mvc_Model, dump) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); -ZEPHIR_INIT_CLASS(Phalcon_Config_Adapter_Json) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Config\\Adapter, Json, phalcon, config_adapter_json, phalcon_config_ce, phalcon_config_adapter_json_method_entry, 0); + ZEPHIR_MM_GROW(); - return SUCCESS; + ZEPHIR_RETURN_CALL_FUNCTION("get_object_vars", NULL, 438, this_ptr); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Config_Adapter_Json, __construct) +static PHP_METHOD(Phalcon_Mvc_Model, find) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL, *_2 = NULL; - zval *filePath_param = NULL, _1, _3, _4; - zval filePath; + zephir_fcall_cache_entry *_0 = NULL; + zval *parameters = NULL, parameters_sub, __$null, params, query, resultset, hydration; zval *this_ptr = getThis(); - ZVAL_UNDEF(&filePath); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); + ZVAL_UNDEF(¶meters_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&query); + ZVAL_UNDEF(&resultset); + ZVAL_UNDEF(&hydration); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(filePath) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(parameters) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &filePath_param); - if (UNEXPECTED(Z_TYPE_P(filePath_param) != IS_STRING && Z_TYPE_P(filePath_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'filePath' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(filePath_param) == IS_STRING)) { - zephir_get_strval(&filePath, filePath_param); - } else { - ZEPHIR_INIT_VAR(&filePath); + zephir_fetch_params(1, 0, 1, ¶meters); + if (!parameters) { + parameters = ¶meters_sub; + parameters = &__$null; } - ZEPHIR_INIT_VAR(&_3); - zephir_file_get_contents(&_3, &filePath); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_CE_STATIC(&_1, phalcon_helper_json_ce, "decode", &_2, 180, &_3, &_4); + if (Z_TYPE_P(parameters) != IS_ARRAY) { + ZEPHIR_INIT_VAR(¶ms); + array_init(¶ms); + if (Z_TYPE_P(parameters) != IS_NULL) { + zephir_array_append(¶ms, parameters, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1515); + } + } else { + ZEPHIR_CPY_WRT(¶ms, parameters); + } + ZEPHIR_CALL_STATIC(&query, "getpreparedquery", &_0, 439, ¶ms); zephir_check_call_status(); - ZEPHIR_CALL_PARENT(NULL, phalcon_config_adapter_json_ce, getThis(), "__construct", &_0, 0, &_1); + ZEPHIR_CALL_METHOD(&resultset, &query, "execute", NULL, 0); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + if (Z_TYPE_P(&resultset) == IS_OBJECT) { + ZEPHIR_OBS_VAR(&hydration); + if (zephir_array_isset_string_fetch(&hydration, ¶ms, SL("hydration"), 0)) { + ZEPHIR_CALL_METHOD(NULL, &resultset, "sethydratemode", NULL, 0, &hydration); + zephir_check_call_status(); + } + } + RETURN_CCTOR(&resultset); } +static PHP_METHOD(Phalcon_Mvc_Model, findFirst) +{ + zend_bool _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_2 = NULL; + zval *parameters = NULL, parameters_sub, __$null, params, query, _3, _1$$5; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(¶meters_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&query); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_1$$5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(parameters) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, ¶meters); + if (!parameters) { + parameters = ¶meters_sub; + parameters = &__$null; + } - -ZEPHIR_INIT_CLASS(Phalcon_Config_Adapter_Php) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Config\\Adapter, Php, phalcon, config_adapter_php, phalcon_config_ce, phalcon_config_adapter_php_method_entry, 0); - - return SUCCESS; + _0 = Z_TYPE_P(parameters) == IS_STRING; + if (!(_0)) { + _0 = zephir_is_numeric(parameters); + } + if (Z_TYPE_P(parameters) == IS_NULL) { + ZEPHIR_INIT_VAR(¶ms); + array_init(¶ms); + } else if (Z_TYPE_P(parameters) == IS_ARRAY) { + ZEPHIR_CPY_WRT(¶ms, parameters); + } else if (_0) { + ZEPHIR_INIT_VAR(&_1$$5); + zephir_create_array(&_1$$5, 1, 0); + zephir_array_fast_append(&_1$$5, parameters); + ZEPHIR_CPY_WRT(¶ms, &_1$$5); + } else { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Parameters passed must be of type array, string, numeric or null", "phalcon/Mvc/Model.zep", 1637); + return; + } + ZVAL_LONG(&_3, 1); + ZEPHIR_CALL_STATIC(&query, "getpreparedquery", &_2, 439, ¶ms, &_3); + zephir_check_call_status(); + ZVAL_BOOL(&_3, 1); + ZEPHIR_CALL_METHOD(NULL, &query, "setuniquerow", NULL, 0, &_3); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(&query, "execute", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Config_Adapter_Php, __construct) +static PHP_METHOD(Phalcon_Mvc_Model, fireEvent) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *filePath_param = NULL, _1; - zval filePath; + zval *eventName_param = NULL, _0; + zval eventName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&filePath); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&eventName); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(filePath) + Z_PARAM_STR(eventName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &filePath_param); - if (UNEXPECTED(Z_TYPE_P(filePath_param) != IS_STRING && Z_TYPE_P(filePath_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'filePath' must be of the type string")); + zephir_fetch_params(1, 1, 0, &eventName_param); + if (UNEXPECTED(Z_TYPE_P(eventName_param) != IS_STRING && Z_TYPE_P(eventName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(filePath_param) == IS_STRING)) { - zephir_get_strval(&filePath, filePath_param); + if (EXPECTED(Z_TYPE_P(eventName_param) == IS_STRING)) { + zephir_get_strval(&eventName, eventName_param); } else { - ZEPHIR_INIT_VAR(&filePath); + ZEPHIR_INIT_VAR(&eventName); } - ZEPHIR_OBSERVE_OR_NULLIFY_PPZV(&_1); - if (zephir_require_zval_ret(&_1, &filePath) == FAILURE) { - RETURN_MM_NULL(); + if ((zephir_method_exists(this_ptr, &eventName) == SUCCESS)) { + ZEPHIR_CALL_METHOD_ZVAL(NULL, this_ptr, &eventName, NULL, 0); + zephir_check_call_status(); } - ZEPHIR_CALL_PARENT(NULL, phalcon_config_adapter_php_ce, getThis(), "__construct", &_0, 0, &_1); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "notifyevent", NULL, 0, &eventName, this_ptr); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Config_Adapter_Yaml) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Config\\Adapter, Yaml, phalcon, config_adapter_yaml, phalcon_config_ce, phalcon_config_adapter_yaml_method_entry, 0); - - return SUCCESS; + RETURN_MM(); } -static PHP_METHOD(Phalcon_Config_Adapter_Yaml, __construct) +static PHP_METHOD(Phalcon_Mvc_Model, fireEventCancel) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_7 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, ndocs; - zval callbacks; - zval *filePath_param = NULL, *callbacks_param = NULL, yamlConfig, _0, _1, _2$$5, _3$$5, _4$$6, _5$$6, _6$$6; - zval filePath; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *eventName_param = NULL, _0$$3, _1; + zval eventName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&filePath); - ZVAL_UNDEF(&yamlConfig); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&eventName); + ZVAL_UNDEF(&_0$$3); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$5); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_4$$6); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_6$$6); - ZVAL_UNDEF(&callbacks); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(filePath) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY_OR_NULL(callbacks) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(eventName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &filePath_param, &callbacks_param); - if (UNEXPECTED(Z_TYPE_P(filePath_param) != IS_STRING && Z_TYPE_P(filePath_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'filePath' must be of the type string")); + zephir_fetch_params(1, 1, 0, &eventName_param); + if (UNEXPECTED(Z_TYPE_P(eventName_param) != IS_STRING && Z_TYPE_P(eventName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(filePath_param) == IS_STRING)) { - zephir_get_strval(&filePath, filePath_param); - } else { - ZEPHIR_INIT_VAR(&filePath); - } - if (!callbacks_param) { - ZEPHIR_INIT_VAR(&callbacks); + if (EXPECTED(Z_TYPE_P(eventName_param) == IS_STRING)) { + zephir_get_strval(&eventName, eventName_param); } else { - ZEPHIR_OBS_COPY_OR_DUP(&callbacks, callbacks_param); + ZEPHIR_INIT_VAR(&eventName); } - ndocs = 0; - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "yaml"); - ZEPHIR_CALL_FUNCTION(&_1, "extension_loaded", NULL, 181, &_0); + if ((zephir_method_exists(this_ptr, &eventName) == SUCCESS)) { + ZEPHIR_CALL_METHOD_ZVAL(&_0$$3, this_ptr, &eventName, NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_0$$3)) { + RETURN_MM_BOOL(0); + } + } + zephir_read_property(&_1, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_1, "notifyevent", NULL, 0, &eventName, this_ptr); zephir_check_call_status(); - if (UNEXPECTED(!zephir_is_true(&_1))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_config_exception_ce, "Yaml extension not loaded", "phalcon/Config/Adapter/Yaml.zep", 64); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Mvc_Model, getChangedFields) +{ + zend_string *_5; + zend_ulong _4; + zval changed; + zval metaData, name, snapshot, columnMap, allAttributes, value, _0, _1, *_2, _3, _6$$6, _7$$10; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&metaData); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&snapshot); + ZVAL_UNDEF(&columnMap); + ZVAL_UNDEF(&allAttributes); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_6$$6); + ZVAL_UNDEF(&_7$$10); + ZVAL_UNDEF(&changed); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("snapshot"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&snapshot, &_0); + if (UNEXPECTED(Z_TYPE_P(&snapshot) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The 'keepSnapshots' option must be enabled to track changes", "phalcon/Mvc/Model.zep", 1723); return; } - if (ZEPHIR_IS_EMPTY(&callbacks)) { - ZEPHIR_CALL_FUNCTION(&yamlConfig, "yaml_parse_file", NULL, 182, &filePath); + ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getreversecolumnmap", NULL, 0, this_ptr); + zephir_check_call_status(); + if (Z_TYPE_P(&columnMap) != IS_ARRAY) { + ZEPHIR_CALL_METHOD(&allAttributes, &metaData, "getdatatypes", NULL, 0, this_ptr); zephir_check_call_status(); } else { - ZVAL_LONG(&_2$$5, 0); - ZVAL_LONG(&_3$$5, ndocs); - ZEPHIR_MAKE_REF(&_3$$5); - ZEPHIR_CALL_FUNCTION(&yamlConfig, "yaml_parse_file", NULL, 182, &filePath, &_2$$5, &_3$$5, &callbacks); - ZEPHIR_UNREF(&_3$$5); - zephir_check_call_status(); + ZEPHIR_CPY_WRT(&allAttributes, &columnMap); } - if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&yamlConfig))) { - ZEPHIR_INIT_VAR(&_4$$6); - object_init_ex(&_4$$6, phalcon_config_exception_ce); - ZEPHIR_INIT_VAR(&_5$$6); - zephir_basename(&_5$$6, &filePath); - ZEPHIR_INIT_VAR(&_6$$6); - ZEPHIR_CONCAT_SVS(&_6$$6, "Configuration file ", &_5$$6, " can't be loaded"); - ZEPHIR_CALL_METHOD(NULL, &_4$$6, "__construct", NULL, 8, &_6$$6); + ZEPHIR_INIT_VAR(&changed); + array_init(&changed); + ZEPHIR_INIT_VAR(&_1); + zephir_is_iterable(&allAttributes, 0, "phalcon/Mvc/Model.zep", 1781); + if (Z_TYPE_P(&allAttributes) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&allAttributes), _4, _5, _2) + { + ZEPHIR_INIT_NVAR(&name); + if (_5 != NULL) { + ZVAL_STR_COPY(&name, _5); + } else { + ZVAL_LONG(&name, _4); + } + ZEPHIR_INIT_NVAR(&_1); + ZVAL_COPY(&_1, _2); + if (!(zephir_array_isset(&snapshot, &name))) { + zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1756); + continue; + } + ZEPHIR_OBS_NVAR(&value); + if (!(zephir_fetch_property_zval(&value, this_ptr, &name, PH_SILENT_CC))) { + zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1766); + continue; + } + zephir_array_fetch(&_6$$6, &snapshot, &name, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 1774); + if (!ZEPHIR_IS_IDENTICAL(&value, &_6$$6)) { + zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1775); + continue; + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &allAttributes, "rewind", NULL, 0); zephir_check_call_status(); - zephir_throw_exception_debug(&_4$$6, "phalcon/Config/Adapter/Yaml.zep", 76); - ZEPHIR_MM_RESTORE(); - return; + while (1) { + ZEPHIR_CALL_METHOD(&_3, &allAttributes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3)) { + break; + } + ZEPHIR_CALL_METHOD(&name, &allAttributes, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1, &allAttributes, "current", NULL, 0); + zephir_check_call_status(); + if (!(zephir_array_isset(&snapshot, &name))) { + zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1756); + continue; + } + ZEPHIR_OBS_NVAR(&value); + if (!(zephir_fetch_property_zval(&value, this_ptr, &name, PH_SILENT_CC))) { + zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1766); + continue; + } + zephir_array_fetch(&_7$$10, &snapshot, &name, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 1774); + if (!ZEPHIR_IS_IDENTICAL(&value, &_7$$10)) { + zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1775); + continue; + } + ZEPHIR_CALL_METHOD(NULL, &allAttributes, "next", NULL, 0); + zephir_check_call_status(); + } } - ZEPHIR_CALL_PARENT(NULL, phalcon_config_adapter_yaml_ce, getThis(), "__construct", &_7, 0, &yamlConfig); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + ZEPHIR_INIT_NVAR(&_1); + ZEPHIR_INIT_NVAR(&name); + RETURN_CTOR(&changed); } +static PHP_METHOD(Phalcon_Mvc_Model, getDirtyState) +{ + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H -#endif - + RETURN_MEMBER(getThis(), "dirtyState"); +} +static PHP_METHOD(Phalcon_Mvc_Model, getEventsManager) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); -ZEPHIR_INIT_CLASS(Phalcon_Crypt_CryptInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Crypt, CryptInterface, phalcon, crypt_cryptinterface, phalcon_crypt_cryptinterface_method_entry); + ZEPHIR_MM_GROW(); - return SUCCESS; + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "getcustomeventsmanager", NULL, 0, this_ptr); + zephir_check_call_status(); + RETURN_MM(); } -ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, decrypt); -ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, decryptBase64); -ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, encrypt); -ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, encryptBase64); -ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, getAvailableCiphers); -ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, getAuthTag); -ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, getAuthData); -ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, getAuthTagLength); -ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, getCipher); -ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, getKey); -ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, setAuthTag); -ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, setAuthData); -ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, setAuthTagLength); -ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, setCipher); -ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, setKey); -ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, setPadding); - - +static PHP_METHOD(Phalcon_Mvc_Model, getMessages) +{ + zend_bool _0; + zval filtered; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *filter = NULL, filter_sub, __$null, message, _1$$3, *_2$$3, _3$$3, _4$$4, _5$$6; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&filter_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&message); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&filtered); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(filter) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &filter); + if (!filter) { + filter = &filter_sub; + filter = &__$null; + } + _0 = Z_TYPE_P(filter) == IS_STRING; + if (_0) { + _0 = !(ZEPHIR_IS_EMPTY(filter)); + } + if (_0) { + ZEPHIR_INIT_VAR(&filtered); + array_init(&filtered); + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("errorMessages"), PH_NOISY_CC | PH_READONLY); + zephir_is_iterable(&_1$$3, 0, "phalcon/Mvc/Model.zep", 1838); + if (Z_TYPE_P(&_1$$3) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_1$$3), _2$$3) + { + ZEPHIR_INIT_NVAR(&message); + ZVAL_COPY(&message, _2$$3); + ZEPHIR_CALL_METHOD(&_4$$4, &message, "getfield", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_EQUAL(&_4$$4, filter)) { + zephir_array_append(&filtered, &message, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1834); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3$$3, &_1$$3, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&message, &_1$$3, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_5$$6, &message, "getfield", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_EQUAL(&_5$$6, filter)) { + zephir_array_append(&filtered, &message, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1834); + } + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&message); + RETURN_CTOR(&filtered); + } + RETURN_MM_MEMBER(getThis(), "errorMessages"); +} -ZEPHIR_INIT_CLASS(Phalcon_Crypt_Exception) +static PHP_METHOD(Phalcon_Mvc_Model, getModelsManager) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Crypt, Exception, phalcon, crypt_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; -} + zval *this_ptr = getThis(); + RETURN_MEMBER(getThis(), "modelsManager"); +} -#ifdef HAVE_CONFIG_H -#endif +static PHP_METHOD(Phalcon_Mvc_Model, getModelsMetaData) +{ + zval metaData, container, _0$$3, _1$$3, _2$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&metaData); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZEPHIR_MM_GROW(); + ZEPHIR_OBS_VAR(&metaData); + zephir_read_property(&metaData, this_ptr, ZEND_STRL("modelsMetaData"), PH_NOISY_CC); + if (Z_TYPE_P(&metaData) != IS_OBJECT) { + zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0$$3); + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "modelsMetadata"); + ZEPHIR_CALL_METHOD(&_1$$3, &container, "getshared", NULL, 0, &_2$$3); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&metaData, &_1$$3); + if (UNEXPECTED(Z_TYPE_P(&metaData) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The injected service 'modelsMetadata' is not valid", "phalcon/Mvc/Model.zep", 1872); + return; + } + zephir_update_property_zval(this_ptr, ZEND_STRL("modelsMetaData"), &metaData); + } + RETURN_CCTOR(&metaData); +} -ZEPHIR_INIT_CLASS(Phalcon_Crypt_Mismatch) +static PHP_METHOD(Phalcon_Mvc_Model, getOperationMade) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Crypt, Mismatch, phalcon, crypt_mismatch, phalcon_crypt_exception_ce, NULL, 0); + zval *this_ptr = getThis(); - return SUCCESS; + + + RETURN_MEMBER(getThis(), "operationMade"); } +static PHP_METHOD(Phalcon_Mvc_Model, getOldSnapshotData) +{ + zval *this_ptr = getThis(); + + RETURN_MEMBER(getThis(), "oldSnapshot"); +} -#ifdef HAVE_CONFIG_H -#endif +static PHP_METHOD(Phalcon_Mvc_Model, getReadConnection) +{ + zval transaction, _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&transaction); + ZVAL_UNDEF(&_0); + ZEPHIR_MM_GROW(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("transaction"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&transaction, &_0); + if (Z_TYPE_P(&transaction) == IS_OBJECT) { + ZEPHIR_RETURN_CALL_METHOD(&transaction, "getconnection", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "getreadconnection", NULL, 0, this_ptr); + zephir_check_call_status(); + RETURN_MM(); +} -ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Connection) +static PHP_METHOD(Phalcon_Mvc_Model, getReadConnectionService) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Pdo, Connection, phalcon, datamapper_pdo_connection, phalcon_datamapper_pdo_connection_abstractconnection_ce, phalcon_datamapper_pdo_connection_method_entry, 0); + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); - zend_declare_property_null(phalcon_datamapper_pdo_connection_ce, SL("arguments"), ZEND_ACC_PROTECTED); - phalcon_datamapper_pdo_connection_ce->create_object = zephir_init_properties_Phalcon_DataMapper_Pdo_Connection; + ZVAL_UNDEF(&_0); - return SUCCESS; + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "getreadconnectionservice", NULL, 0, this_ptr); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection, __construct) +static PHP_METHOD(Phalcon_Mvc_Model, getRelated) { + zend_bool _5$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval options, queries, available, _5; - zval *dsn_param = NULL, *username_param = NULL, *password_param = NULL, *options_param = NULL, *queries_param = NULL, *profiler = NULL, profiler_sub, __$true, __$null, parts, _0, _1$$3, _2$$3, _3$$3, _4$$4; - zval dsn, username, password; + zval *alias_param = NULL, *arguments = NULL, arguments_sub, __$null, relation, className, manager, result, lowerAlias, _0, _1, _2$$3, _3$$3, _4$$4, _6$$4, _7$$5; + zval alias; zval *this_ptr = getThis(); - ZVAL_UNDEF(&dsn); - ZVAL_UNDEF(&username); - ZVAL_UNDEF(&password); - ZVAL_UNDEF(&profiler_sub); - ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&alias); + ZVAL_UNDEF(&arguments_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&parts); + ZVAL_UNDEF(&relation); + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&lowerAlias); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2$$3); ZVAL_UNDEF(&_3$$3); ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&queries); - ZVAL_UNDEF(&available); - ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 6) - Z_PARAM_STR(dsn) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(alias) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(username) - Z_PARAM_STR_OR_NULL(password) - Z_PARAM_ARRAY(options) - Z_PARAM_ARRAY(queries) - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(profiler, phalcon_datamapper_pdo_profiler_profilerinterface_ce) + Z_PARAM_ZVAL_OR_NULL(arguments) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 5, &dsn_param, &username_param, &password_param, &options_param, &queries_param, &profiler); - zephir_get_strval(&dsn, dsn_param); - if (!username_param) { - ZEPHIR_INIT_VAR(&username); - } else { - zephir_get_strval(&username, username_param); - } - if (!password_param) { - ZEPHIR_INIT_VAR(&password); - } else { - zephir_get_strval(&password, password_param); - } - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); - } else { - zephir_get_arrval(&options, options_param); - } - if (!queries_param) { - ZEPHIR_INIT_VAR(&queries); - array_init(&queries); - } else { - zephir_get_arrval(&queries, queries_param); - } - if (!profiler) { - profiler = &profiler_sub; - ZEPHIR_CPY_WRT(profiler, &__$null); - } else { - ZEPHIR_SEPARATE_PARAM(profiler); + zephir_fetch_params(1, 1, 1, &alias_param, &arguments); + zephir_get_strval(&alias, alias_param); + if (!arguments) { + arguments = &arguments_sub; + arguments = &__$null; } - ZEPHIR_INIT_VAR(&parts); - zephir_fast_explode_str(&parts, SL(":"), &dsn, LONG_MAX); - ZEPHIR_INIT_VAR(&available); - zephir_create_array(&available, 4, 0); - zephir_array_update_string(&available, SL("mysql"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&available, SL("pgsql"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&available, SL("sqlite"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&available, SL("mssql"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_fetch_long(&_0, &parts, 0, PH_READONLY, "phalcon/DataMapper/Pdo/Connection.zep", 69); - if (!(zephir_array_isset(&available, &_0))) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, spl_ce_InvalidArgumentException); - zephir_array_fetch_long(&_2$$3, &parts, 0, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/Connection.zep", 71); + ZEPHIR_INIT_VAR(&className); + zephir_get_class(&className, this_ptr, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&manager, &_0); + ZEPHIR_INIT_VAR(&lowerAlias); + zephir_fast_strtolower(&lowerAlias, &alias); + ZEPHIR_CALL_METHOD(&_1, &manager, "getrelationbyalias", NULL, 0, &className, &lowerAlias); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&relation, &_1); + if (UNEXPECTED(Z_TYPE_P(&relation) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_2$$3); + object_init_ex(&_2$$3, phalcon_mvc_model_exception_ce); ZEPHIR_INIT_VAR(&_3$$3); - ZEPHIR_CONCAT_SVS(&_3$$3, "Driver not supported [", &_2$$3, "]"); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 40, &_3$$3); + ZEPHIR_CONCAT_SVSVS(&_3$$3, "There is no defined relations for the model '", &className, "' using alias '", &alias, "'"); + ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", NULL, 8, &_3$$3); zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/DataMapper/Pdo/Connection.zep", 72); + zephir_throw_exception_debug(&_2$$3, "phalcon/Mvc/Model.zep", 1951); ZEPHIR_MM_RESTORE(); return; } - if (!(zephir_array_isset_long(&options, 3))) { - ZEPHIR_INIT_VAR(&_4$$4); - ZVAL_LONG(&_4$$4, 2); - zephir_array_update_long(&options, 3, &_4$$4, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - } - ZEPHIR_INIT_VAR(&_5); - zephir_create_array(&_5, 5, 0); - zephir_array_fast_append(&_5, &dsn); - zephir_array_fast_append(&_5, &username); - zephir_array_fast_append(&_5, &password); - zephir_array_fast_append(&_5, &options); - zephir_array_fast_append(&_5, &queries); - zephir_update_property_zval(this_ptr, ZEND_STRL("arguments"), &_5); - if (Z_TYPE_P(profiler) == IS_NULL) { - ZEPHIR_INIT_NVAR(profiler); - object_init_ex(profiler, phalcon_datamapper_pdo_profiler_profiler_ce); - ZEPHIR_CALL_METHOD(NULL, profiler, "__construct", NULL, 200); + if (Z_TYPE_P(arguments) == IS_NULL) { + ZEPHIR_CALL_METHOD(&_4$$4, &relation, "isreusable", NULL, 0); + zephir_check_call_status(); + _5$$4 = zephir_is_true(&_4$$4); + if (_5$$4) { + ZEPHIR_CALL_METHOD(&_6$$4, this_ptr, "isrelationshiploaded", NULL, 0, &lowerAlias); + zephir_check_call_status(); + _5$$4 = zephir_is_true(&_6$$4); + } + if (_5$$4) { + zephir_read_property(&_7$$5, this_ptr, ZEND_STRL("related"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_OBS_VAR(&result); + zephir_array_fetch(&result, &_7$$5, &lowerAlias, PH_NOISY, "phalcon/Mvc/Model.zep", 1963); + } else { + ZEPHIR_CALL_METHOD(&result, &manager, "getrelationrecords", NULL, 0, &relation, this_ptr, arguments); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("related"), &lowerAlias, &result); + } + } else { + ZEPHIR_CALL_METHOD(&result, &manager, "getrelationrecords", NULL, 0, &relation, this_ptr, arguments); zephir_check_call_status(); } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setprofiler", NULL, 0, profiler); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + RETURN_CCTOR(&result); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection, __debugInfo) +static PHP_METHOD(Phalcon_Mvc_Model, isRelationshipLoaded) { - zval _1, _2, _3, _4, _5; - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *relationshipAlias_param = NULL, _0, _1; + zval relationshipAlias; zval *this_ptr = getThis(); + ZVAL_UNDEF(&relationshipAlias); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(relationshipAlias) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &relationshipAlias_param); + zephir_get_strval(&relationshipAlias, relationshipAlias_param); - zephir_create_array(return_value, 1, 0); - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 5, 0); - zephir_read_property(&_1, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_OBS_VAR(&_2); - zephir_array_fetch_long(&_2, &_1, 0, PH_NOISY, "phalcon/DataMapper/Pdo/Connection.zep", 106); - zephir_array_fast_append(&_0, &_2); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "****"); - zephir_array_fast_append(&_0, &_3); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "****"); - zephir_array_fast_append(&_0, &_3); - zephir_read_property(&_4, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_OBS_NVAR(&_2); - zephir_array_fetch_long(&_2, &_4, 3, PH_NOISY, "phalcon/DataMapper/Pdo/Connection.zep", 109); - zephir_array_fast_append(&_0, &_2); - zephir_read_property(&_5, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_OBS_NVAR(&_2); - zephir_array_fetch_long(&_2, &_5, 4, PH_NOISY, "phalcon/DataMapper/Pdo/Connection.zep", 111); - zephir_array_fast_append(&_0, &_2); - zephir_array_update_string(return_value, SL("arguments"), &_0, PH_COPY | PH_SEPARATE); - RETURN_MM(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("related"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + zephir_fast_strtolower(&_1, &relationshipAlias); + RETURN_MM_BOOL(zephir_array_isset(&_0, &_1)); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection, connect) +static PHP_METHOD(Phalcon_Mvc_Model, getSchema) { - zval dsn, options, password, query, queries, username, _0, _1$$3, _2$$3, _3$$3, _4$$3, _5$$3, _6$$3, _7$$3, _8$$3, *_9$$3, _10$$3; + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_11 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&dsn); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&password); - ZVAL_UNDEF(&query); - ZVAL_UNDEF(&queries); - ZVAL_UNDEF(&username); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_8$$3); - ZVAL_UNDEF(&_10$$3); ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "connect"); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "start", NULL, 0, &_2$$3); - zephir_check_call_status(); - zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_OBS_VAR(&dsn); - zephir_array_fetch_long(&dsn, &_3$$3, 0, PH_NOISY, "phalcon/DataMapper/Pdo/Connection.zep", 126); - zephir_read_property(&_4$$3, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_OBS_VAR(&username); - zephir_array_fetch_long(&username, &_4$$3, 1, PH_NOISY, "phalcon/DataMapper/Pdo/Connection.zep", 127); - zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_OBS_VAR(&password); - zephir_array_fetch_long(&password, &_5$$3, 2, PH_NOISY, "phalcon/DataMapper/Pdo/Connection.zep", 128); - zephir_read_property(&_6$$3, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_OBS_VAR(&options); - zephir_array_fetch_long(&options, &_6$$3, 3, PH_NOISY, "phalcon/DataMapper/Pdo/Connection.zep", 129); - zephir_read_property(&_7$$3, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_OBS_VAR(&queries); - zephir_array_fetch_long(&queries, &_7$$3, 4, PH_NOISY, "phalcon/DataMapper/Pdo/Connection.zep", 130); - ZEPHIR_INIT_NVAR(&_2$$3); - object_init_ex(&_2$$3, php_pdo_get_dbh_ce()); - ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", NULL, 0, &dsn, &username, &password, &options); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("pdo"), &_2$$3); - zephir_read_property(&_8$$3, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_8$$3, "finish", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&queries, 0, "phalcon/DataMapper/Pdo/Connection.zep", 140); - if (Z_TYPE_P(&queries) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&queries), _9$$3) - { - ZEPHIR_INIT_NVAR(&query); - ZVAL_COPY(&query, _9$$3); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "exec", &_11, 0, &query); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &queries, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_10$$3, &queries, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_10$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&query, &queries, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "exec", &_11, 0, &query); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &queries, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&query); - } - ZEPHIR_MM_RESTORE(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "getmodelschema", NULL, 0, this_ptr); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection, disconnect) +static PHP_METHOD(Phalcon_Mvc_Model, getSnapshotData) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval __$null, _0, _1, _2; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - - ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "disconnect"); - ZEPHIR_CALL_METHOD(NULL, &_0, "start", NULL, 0, &_1); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("pdo"), &__$null); - zephir_read_property(&_2, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_2, "finish", NULL, 0); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + RETURN_MEMBER(getThis(), "snapshot"); } -zend_object *zephir_init_properties_Phalcon_DataMapper_Pdo_Connection(zend_class_entry *class_type) +static PHP_METHOD(Phalcon_Mvc_Model, getSource) { - zval _0, _1$$3; + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("arguments"), &_1$$3); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); -ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_ConnectionLocator) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\DataMapper\\Pdo, ConnectionLocator, phalcon, datamapper_pdo_connectionlocator, phalcon_datamapper_pdo_connectionlocator_method_entry, 0); - zend_declare_property_null(phalcon_datamapper_pdo_connectionlocator_ce, SL("master"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_datamapper_pdo_connectionlocator_ce, SL("read"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_datamapper_pdo_connectionlocator_ce, SL("write"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_datamapper_pdo_connectionlocator_ce, SL("instances"), ZEND_ACC_PRIVATE); - phalcon_datamapper_pdo_connectionlocator_ce->create_object = zephir_init_properties_Phalcon_DataMapper_Pdo_ConnectionLocator; + ZEPHIR_MM_GROW(); - zend_class_implements(phalcon_datamapper_pdo_connectionlocator_ce, 1, phalcon_datamapper_pdo_connectionlocatorinterface_ce); - return SUCCESS; + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "getmodelsource", NULL, 0, this_ptr); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocator, __construct) +static PHP_METHOD(Phalcon_Mvc_Model, getUpdatedFields) { - zend_string *_3, *_8; - zend_ulong _2, _7; + zend_bool _5$$6, _7$$8; + zend_string *_4; + zend_ulong _3; + zval updated; + zval name, snapshot, oldSnapshot, value, _0, *_1, _2, _6$$6, _8$$8; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL, *_9 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval read, write; - zval *master, master_sub, *read_param = NULL, *write_param = NULL, name, callableObject, *_0, _1, *_5, _6; zval *this_ptr = getThis(); - ZVAL_UNDEF(&master_sub); ZVAL_UNDEF(&name); - ZVAL_UNDEF(&callableObject); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&read); - ZVAL_UNDEF(&write); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_OBJECT_OF_CLASS(master, phalcon_datamapper_pdo_connection_connectioninterface_ce) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(read) - Z_PARAM_ARRAY(write) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&snapshot); + ZVAL_UNDEF(&oldSnapshot); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_6$$6); + ZVAL_UNDEF(&_8$$8); + ZVAL_UNDEF(&updated); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &master, &read_param, &write_param); - if (!read_param) { - ZEPHIR_INIT_VAR(&read); - array_init(&read); - } else { - zephir_get_arrval(&read, read_param); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("snapshot"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&snapshot, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("oldSnapshot"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&oldSnapshot, &_0); + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).update_snapshot_on_save))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The 'updateSnapshotOnSave' option must be enabled for this method to work properly", "phalcon/Mvc/Model.zep", 2062); + return; } - if (!write_param) { - ZEPHIR_INIT_VAR(&write); - array_init(&write); - } else { - zephir_get_arrval(&write, write_param); + if (UNEXPECTED(Z_TYPE_P(&snapshot) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The 'keepSnapshots' option must be enabled to track changes", "phalcon/Mvc/Model.zep", 2068); + return; } - - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setmaster", NULL, 0, master); - zephir_check_call_status(); - zephir_is_iterable(&read, 0, "phalcon/DataMapper/Pdo/ConnectionLocator.zep", 78); - if (Z_TYPE_P(&read) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&read), _2, _3, _0) + zephir_read_property(&_0, this_ptr, ZEND_STRL("dirtyState"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(!ZEPHIR_IS_LONG(&_0, 0))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Change checking cannot be performed because the object has not been persisted or is deleted", "phalcon/Mvc/Model.zep", 2077); + return; + } + ZEPHIR_INIT_VAR(&updated); + array_init(&updated); + zephir_is_iterable(&snapshot, 0, "phalcon/Mvc/Model.zep", 2092); + if (Z_TYPE_P(&snapshot) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&snapshot), _3, _4, _1) { ZEPHIR_INIT_NVAR(&name); - if (_3 != NULL) { - ZVAL_STR_COPY(&name, _3); + if (_4 != NULL) { + ZVAL_STR_COPY(&name, _4); } else { - ZVAL_LONG(&name, _2); + ZVAL_LONG(&name, _3); } - ZEPHIR_INIT_NVAR(&callableObject); - ZVAL_COPY(&callableObject, _0); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setread", &_4, 0, &name, &callableObject); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &read, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &read, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _1); + _5$$6 = !(zephir_array_isset(&oldSnapshot, &name)); + if (!(_5$$6)) { + zephir_array_fetch(&_6$$6, &oldSnapshot, &name, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 2087); + _5$$6 = !ZEPHIR_IS_IDENTICAL(&value, &_6$$6); } - ZEPHIR_CALL_METHOD(&name, &read, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&callableObject, &read, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setread", &_4, 0, &name, &callableObject); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &read, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&callableObject); - ZEPHIR_INIT_NVAR(&name); - zephir_is_iterable(&write, 0, "phalcon/DataMapper/Pdo/ConnectionLocator.zep", 81); - if (Z_TYPE_P(&write) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&write), _7, _8, _5) - { - ZEPHIR_INIT_NVAR(&name); - if (_8 != NULL) { - ZVAL_STR_COPY(&name, _8); - } else { - ZVAL_LONG(&name, _7); + if (_5$$6) { + zephir_array_append(&updated, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 2088); } - ZEPHIR_INIT_NVAR(&callableObject); - ZVAL_COPY(&callableObject, _5); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setwrite", &_9, 0, &name, &callableObject); - zephir_check_call_status(); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &write, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &snapshot, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_6, &write, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_2, &snapshot, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_6)) { + if (!zend_is_true(&_2)) { break; } - ZEPHIR_CALL_METHOD(&name, &write, "key", NULL, 0); + ZEPHIR_CALL_METHOD(&name, &snapshot, "key", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&callableObject, &write, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&value, &snapshot, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setwrite", &_9, 0, &name, &callableObject); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &write, "next", NULL, 0); + _7$$8 = !(zephir_array_isset(&oldSnapshot, &name)); + if (!(_7$$8)) { + zephir_array_fetch(&_8$$8, &oldSnapshot, &name, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 2087); + _7$$8 = !ZEPHIR_IS_IDENTICAL(&value, &_8$$8); + } + if (_7$$8) { + zephir_array_append(&updated, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 2088); + } + ZEPHIR_CALL_METHOD(NULL, &snapshot, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&callableObject); + ZEPHIR_INIT_NVAR(&value); ZEPHIR_INIT_NVAR(&name); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocator, getMaster) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "master"); + RETURN_CTOR(&updated); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocator, getRead) +static PHP_METHOD(Phalcon_Mvc_Model, getWriteConnection) { + zval transaction, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, _0; - zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); + ZVAL_UNDEF(&transaction); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &name_param); - if (!name_param) { - ZEPHIR_INIT_VAR(&name); - ZVAL_STRING(&name, ""); - } else { - zephir_get_strval(&name, name_param); - } - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "read"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getconnection", NULL, 0, &_0, &name); + zephir_read_property(&_0, this_ptr, ZEND_STRL("transaction"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&transaction, &_0); + if (Z_TYPE_P(&transaction) == IS_OBJECT) { + ZEPHIR_RETURN_CALL_METHOD(&transaction, "getconnection", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "getwriteconnection", NULL, 0, this_ptr); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocator, getWrite) +static PHP_METHOD(Phalcon_Mvc_Model, getWriteConnectionService) { + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, _0; - zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &name_param); - if (!name_param) { - ZEPHIR_INIT_VAR(&name); - ZVAL_STRING(&name, ""); - } else { - zephir_get_strval(&name, name_param); - } - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "write"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getconnection", NULL, 0, &_0, &name); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "getwriteconnectionservice", NULL, 0, this_ptr); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocator, setMaster) -{ - zval *callableObject, callableObject_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&callableObject_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(callableObject, phalcon_datamapper_pdo_connection_connectioninterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &callableObject); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("master"), callableObject); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocator, setRead) +static PHP_METHOD(Phalcon_Mvc_Model, hasChanged) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, *callableObject, callableObject_sub; - zval name; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool allFields; + zval *fieldName = NULL, fieldName_sub, *allFields_param = NULL, __$null, changedFields, intersect; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&callableObject_sub); + ZVAL_UNDEF(&fieldName_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&changedFields); + ZVAL_UNDEF(&intersect); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(name) - Z_PARAM_ZVAL(callableObject) + ZEND_PARSE_PARAMETERS_START(0, 2) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(fieldName) + Z_PARAM_BOOL(allFields) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &name_param, &callableObject); - zephir_get_strval(&name, name_param); + zephir_fetch_params(1, 0, 2, &fieldName, &allFields_param); + if (!fieldName) { + fieldName = &fieldName_sub; + fieldName = &__$null; + } + if (!allFields_param) { + allFields = 0; + } else { + allFields = zephir_get_boolval(allFields_param); + } - zephir_update_property_array(this_ptr, SL("read"), &name, callableObject); - RETURN_THIS(); + ZEPHIR_CALL_METHOD(&changedFields, this_ptr, "getchangedfields", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(fieldName) == IS_STRING) { + RETURN_MM_BOOL(zephir_fast_in_array(fieldName, &changedFields)); + } + if (Z_TYPE_P(fieldName) == IS_ARRAY) { + ZEPHIR_CALL_FUNCTION(&intersect, "array_intersect", NULL, 440, fieldName, &changedFields); + zephir_check_call_status(); + if (allFields) { + RETURN_MM_BOOL(ZEPHIR_IS_EQUAL(&intersect, fieldName)); + } + RETURN_MM_BOOL(zephir_fast_count_int(&intersect) > 0); + } + RETURN_MM_BOOL(zephir_fast_count_int(&changedFields) > 0); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocator, setWrite) +static PHP_METHOD(Phalcon_Mvc_Model, hasSnapshotData) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, *callableObject, callableObject_sub; - zval name; + zval _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&callableObject_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(name) - Z_PARAM_ZVAL(callableObject) - ZEND_PARSE_PARAMETERS_END(); -#endif - + ZVAL_UNDEF(&_0); - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &name_param, &callableObject); - zephir_get_strval(&name, name_param); - zephir_update_property_array(this_ptr, SL("write"), &name, callableObject); - RETURN_THIS(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("snapshot"), PH_NOISY_CC | PH_READONLY); + RETURN_BOOL(!(ZEPHIR_IS_EMPTY(&_0))); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocator, getConnection) +static PHP_METHOD(Phalcon_Mvc_Model, hasUpdated) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *type_param = NULL, *name_param = NULL, collection, instanceName, instances, requested, _0, _1, _6, _2$$5, _3$$5, _4$$6, _5$$6; - zval type, name; + zend_bool allFields; + zval *fieldName = NULL, fieldName_sub, *allFields_param = NULL, __$null, updatedFields, intersect; zval *this_ptr = getThis(); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&instanceName); - ZVAL_UNDEF(&instances); - ZVAL_UNDEF(&requested); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_2$$5); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_4$$6); - ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&fieldName_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&updatedFields); + ZVAL_UNDEF(&intersect); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(type) + ZEND_PARSE_PARAMETERS_START(0, 2) Z_PARAM_OPTIONAL - Z_PARAM_STR(name) + Z_PARAM_ZVAL_OR_NULL(fieldName) + Z_PARAM_BOOL(allFields) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &type_param, &name_param); - zephir_get_strval(&type, type_param); - if (!name_param) { - ZEPHIR_INIT_VAR(&name); - ZVAL_STRING(&name, ""); + zephir_fetch_params(1, 0, 2, &fieldName, &allFields_param); + if (!fieldName) { + fieldName = &fieldName_sub; + fieldName = &__$null; + } + if (!allFields_param) { + allFields = 0; } else { - zephir_get_strval(&name, name_param); + allFields = zephir_get_boolval(allFields_param); } - ZEPHIR_OBS_VAR(&collection); - zephir_read_property_zval(&collection, this_ptr, &type, PH_NOISY_CC); - ZEPHIR_CPY_WRT(&requested, &name); - zephir_read_property(&_0, this_ptr, ZEND_STRL("instances"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&instances, &_0); - if (ZEPHIR_IS_EMPTY(&collection)) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getmaster", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, ""); - if (ZEPHIR_IS_IDENTICAL(&_1, &requested)) { - ZEPHIR_CALL_FUNCTION(&requested, "array_rand", NULL, 201, &collection); - zephir_check_call_status(); - } - if (!(zephir_array_isset(&collection, &requested))) { - ZEPHIR_INIT_VAR(&_2$$5); - object_init_ex(&_2$$5, phalcon_datamapper_pdo_exception_connectionnotfound_ce); - ZEPHIR_INIT_VAR(&_3$$5); - ZEPHIR_CONCAT_SVSV(&_3$$5, "Connection not found: ", &type, ":", &requested); - ZEPHIR_CALL_METHOD(NULL, &_2$$5, "__construct", NULL, 8, &_3$$5); - zephir_check_call_status(); - zephir_throw_exception_debug(&_2$$5, "phalcon/DataMapper/Pdo/ConnectionLocator.zep", 210); - ZEPHIR_MM_RESTORE(); - return; + ZEPHIR_CALL_METHOD(&updatedFields, this_ptr, "getupdatedfields", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(fieldName) == IS_STRING) { + RETURN_MM_BOOL(zephir_fast_in_array(fieldName, &updatedFields)); } - ZEPHIR_INIT_VAR(&instanceName); - ZEPHIR_CONCAT_VSV(&instanceName, &type, "-", &requested); - if (!(zephir_array_isset(&instances, &instanceName))) { - ZEPHIR_INIT_VAR(&_4$$6); - zephir_array_fetch(&_5$$6, &collection, &requested, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/ConnectionLocator.zep", 221); - ZEPHIR_CALL_USER_FUNC(&_4$$6, &_5$$6); + if (Z_TYPE_P(fieldName) == IS_ARRAY) { + ZEPHIR_CALL_FUNCTION(&intersect, "array_intersect", NULL, 440, fieldName, &updatedFields); zephir_check_call_status(); - zephir_array_update_zval(&instances, &instanceName, &_4$$6, PH_COPY | PH_SEPARATE); - zephir_update_property_zval(this_ptr, ZEND_STRL("instances"), &instances); - } - zephir_array_fetch(&_6, &instances, &instanceName, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/ConnectionLocator.zep", 225); - RETURN_CTOR(&_6); -} - -zend_object *zephir_init_properties_Phalcon_DataMapper_Pdo_ConnectionLocator(zend_class_entry *class_type) -{ - zval _0, _2, _4, _1$$3, _3$$4, _5$$5; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("instances"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("instances"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("write"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("write"), &_3$$4); - } - zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("read"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_4) == IS_NULL) { - ZEPHIR_INIT_VAR(&_5$$5); - array_init(&_5$$5); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("read"), &_5$$5); + if (allFields) { + RETURN_MM_BOOL(ZEPHIR_IS_EQUAL(&intersect, fieldName)); } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); + RETURN_MM_BOOL(zephir_fast_count_int(&intersect) > 0); } + RETURN_MM_BOOL(zephir_fast_count_int(&updatedFields) > 0); } - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_ConnectionLocatorInterface) +static PHP_METHOD(Phalcon_Mvc_Model, jsonSerialize) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\DataMapper\\Pdo, ConnectionLocatorInterface, phalcon, datamapper_pdo_connectionlocatorinterface, phalcon_datamapper_pdo_connectionlocatorinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocatorInterface, getMaster); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocatorInterface, getRead); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocatorInterface, getWrite); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocatorInterface, setMaster); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocatorInterface, setRead); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocatorInterface, setWrite); - - - -#ifdef HAVE_CONFIG_H -#endif - - + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); -ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Connection_AbstractConnection) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\DataMapper\\Pdo\\Connection, AbstractConnection, phalcon, datamapper_pdo_connection_abstractconnection, phalcon_datamapper_pdo_connection_abstractconnection_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + ZEPHIR_MM_GROW(); - zend_declare_property_null(phalcon_datamapper_pdo_connection_abstractconnection_ce, SL("pdo"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_datamapper_pdo_connection_abstractconnection_ce, SL("profiler"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_datamapper_pdo_connection_abstractconnection_ce, 1, phalcon_datamapper_pdo_connection_connectioninterface_ce); - return SUCCESS; + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "toarray", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, __call) +static PHP_METHOD(Phalcon_Mvc_Model, maximum) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval arguments, _2; - zval *name, name_sub, *arguments_param = NULL, className, message, _0, _3, _1$$3; + zval *parameters = NULL, parameters_sub, __$null, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name_sub); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&message); + ZVAL_UNDEF(¶meters_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&arguments); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(name) - Z_PARAM_ARRAY(arguments) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(parameters) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &name, &arguments_param); - zephir_get_arrval(&arguments, arguments_param); + zephir_fetch_params(1, 0, 1, ¶meters); + if (!parameters) { + parameters = ¶meters_sub; + parameters = &__$null; + } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - if (!((zephir_method_exists(&_0, name) == SUCCESS))) { - ZEPHIR_INIT_VAR(&className); - zephir_get_class(&className, this_ptr, 0); - ZEPHIR_INIT_VAR(&message); - ZEPHIR_CONCAT_SVSVS(&message, "Class '", &className, "' does not have a method '", name, "'"); - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, spl_ce_BadMethodCallException); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 95, &message); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 62); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_VAR(&_2); - zephir_create_array(&_2, 2, 0); - ZEPHIR_OBS_VAR(&_3); - zephir_read_property(&_3, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC); - zephir_array_fast_append(&_2, &_3); - zephir_array_fast_append(&_2, name); - ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, &_2, &arguments); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "MAX"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "maximum"); + ZEPHIR_RETURN_CALL_SELF("groupresult", NULL, 0, &_0, &_1, parameters); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, beginTransaction) +static PHP_METHOD(Phalcon_Mvc_Model, minimum) { - zval result, _0, _1, _2, _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *parameters = NULL, parameters_sub, __$null, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&result); + ZVAL_UNDEF(¶meters_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(parameters) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, ¶meters); + if (!parameters) { + parameters = ¶meters_sub; + parameters = &__$null; + } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "MIN"); ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "beginTransaction"); - ZEPHIR_CALL_METHOD(NULL, &_0, "start", NULL, 0, &_1); - zephir_check_call_status(); - zephir_read_property(&_2, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&result, &_2, "begintransaction", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_3, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_3, "finish", NULL, 0); + ZVAL_STRING(&_1, "minimum"); + ZEPHIR_RETURN_CALL_SELF("groupresult", NULL, 0, &_0, &_1, parameters); zephir_check_call_status(); - RETURN_CCTOR(&result); + RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, commit) +static PHP_METHOD(Phalcon_Mvc_Model, query) { - zval result, _0, _1, _2, _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *container = NULL, container_sub, __$null, criteria, _3, _1$$4, _2$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&container_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&criteria); ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(container, phalcon_di_diinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &container); + if (!container) { + container = &container_sub; + ZEPHIR_CPY_WRT(container, &__$null); + } else { + ZEPHIR_SEPARATE_PARAM(container); + } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "commit"); - ZEPHIR_CALL_METHOD(NULL, &_0, "start", NULL, 0, &_1); - zephir_check_call_status(); - zephir_read_property(&_2, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&result, &_2, "commit", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_3, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_3, "finish", NULL, 0); - zephir_check_call_status(); - RETURN_CCTOR(&result); -} -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, connect) -{ -} + if (Z_TYPE_P(container) != IS_OBJECT) { + ZEPHIR_CALL_CE_STATIC(container, phalcon_di_ce, "getdefault", &_0, 0); + zephir_check_call_status(); + } + ZEPHIR_INIT_VAR(&criteria); + if (zephir_instance_of_ev(container, phalcon_di_diinterface_ce)) { + ZEPHIR_INIT_VAR(&_2$$4); + ZVAL_STRING(&_2$$4, "Phalcon\\Mvc\\Model\\Criteria"); + ZEPHIR_CALL_METHOD(&_1$$4, container, "get", NULL, 0, &_2$$4); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&criteria, &_1$$4); + } else { + object_init_ex(&criteria, phalcon_mvc_model_criteria_ce); + if (zephir_has_constructor(&criteria)) { + ZEPHIR_CALL_METHOD(NULL, &criteria, "__construct", NULL, 0); + zephir_check_call_status(); + } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, disconnect) -{ + ZEPHIR_CALL_METHOD(NULL, &criteria, "setdi", NULL, 441, container); + zephir_check_call_status(); + } + ZEPHIR_INIT_VAR(&_3); + zephir_get_called_class(&_3); + ZEPHIR_CALL_METHOD(NULL, &criteria, "setmodelname", NULL, 442, &_3); + zephir_check_call_status(); + RETURN_CCTOR(&criteria); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, errorCode) +static PHP_METHOD(Phalcon_Mvc_Model, readAttribute) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval *attribute_param = NULL, _0; + zval attribute; zval *this_ptr = getThis(); + ZVAL_UNDEF(&attribute); ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(attribute) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &attribute_param); + if (UNEXPECTED(Z_TYPE_P(attribute_param) != IS_STRING && Z_TYPE_P(attribute_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'attribute' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(attribute_param) == IS_STRING)) { + zephir_get_strval(&attribute, attribute_param); + } else { + ZEPHIR_INIT_VAR(&attribute); + } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "errorcode", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); + + if (!(zephir_isset_property_zval(this_ptr, &attribute))) { + RETURN_MM_NULL(); + } + ZEPHIR_OBS_VAR(&_0); + zephir_read_property_zval(&_0, this_ptr, &attribute, PH_NOISY_CC); + RETURN_CCTOR(&_0); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, errorInfo) +static PHP_METHOD(Phalcon_Mvc_Model, refresh) { - zval _0; + zval fields, _9, _7$$9, _8$$10; + zval metaData, readConnection, schema, source, table, uniqueKey, tables, uniqueParams, dialect, row, attribute, manager, columnMap, _0, _1, _4, *_5, _6, _10, _11, _14, _2$$6, _3$$6, _12$$11, _13$$11; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&metaData); + ZVAL_UNDEF(&readConnection); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&source); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&uniqueKey); + ZVAL_UNDEF(&tables); + ZVAL_UNDEF(&uniqueParams); + ZVAL_UNDEF(&dialect); + ZVAL_UNDEF(&row); + ZVAL_UNDEF(&attribute); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&columnMap); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_2$$6); + ZVAL_UNDEF(&_3$$6); + ZVAL_UNDEF(&_12$$11); + ZVAL_UNDEF(&_13$$11); + ZVAL_UNDEF(&fields); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_7$$9); + ZVAL_UNDEF(&_8$$10); ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("dirtyState"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(!ZEPHIR_IS_LONG(&_0, 0))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/Mvc/Model.zep", 2347); + return; + } + ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL, 0); zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "errorinfo", NULL, 0); + ZEPHIR_CALL_METHOD(&readConnection, this_ptr, "getreadconnection", NULL, 443); zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, exec) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *statement_param = NULL, affectedRows, _0, _1, _2, _3; - zval statement; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&affectedRows); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(statement) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &statement_param); - zephir_get_strval(&statement, statement_param); - - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "exec"); - ZEPHIR_CALL_METHOD(NULL, &_0, "start", NULL, 0, &_1); + zephir_read_property(&_1, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&manager, &_1); + ZEPHIR_CALL_METHOD(&schema, this_ptr, "getschema", NULL, 435); zephir_check_call_status(); - zephir_read_property(&_2, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&affectedRows, &_2, "exec", NULL, 0, &statement); + ZEPHIR_CALL_METHOD(&source, this_ptr, "getsource", NULL, 436); zephir_check_call_status(); - zephir_read_property(&_3, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_3, "finish", NULL, 0, &statement); + if (zephir_is_true(&schema)) { + ZEPHIR_INIT_VAR(&table); + zephir_create_array(&table, 2, 0); + zephir_array_fast_append(&table, &schema); + zephir_array_fast_append(&table, &source); + } else { + ZEPHIR_CPY_WRT(&table, &source); + } + zephir_read_property(&_1, this_ptr, ZEND_STRL("uniqueKey"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&uniqueKey, &_1); + if (!(zephir_is_true(&uniqueKey))) { + ZEPHIR_CALL_METHOD(&_2$$6, this_ptr, "exists", NULL, 0, &metaData, &readConnection); + zephir_check_call_status(); + if (UNEXPECTED(!zephir_is_true(&_2$$6))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/Mvc/Model.zep", 2372); + return; + } + zephir_read_property(&_3$$6, this_ptr, ZEND_STRL("uniqueKey"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&uniqueKey, &_3$$6); + } + zephir_read_property(&_1, this_ptr, ZEND_STRL("uniqueParams"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&uniqueParams, &_1); + if (UNEXPECTED(Z_TYPE_P(&uniqueParams) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/Mvc/Model.zep", 2383); + return; + } + ZEPHIR_INIT_VAR(&fields); + array_init(&fields); + ZEPHIR_CALL_METHOD(&_4, &metaData, "getattributes", NULL, 0, this_ptr); zephir_check_call_status(); - RETURN_CCTOR(&affectedRows); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchAffected) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval values; - zval *statement_param = NULL, *values_param = NULL, sth; - zval statement; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&sth); - ZVAL_UNDEF(&values); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(statement) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(values) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &statement_param, &values_param); - zephir_get_strval(&statement, statement_param); - if (!values_param) { - ZEPHIR_INIT_VAR(&values); - array_init(&values); + zephir_is_iterable(&_4, 0, "phalcon/Mvc/Model.zep", 2398); + if (Z_TYPE_P(&_4) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_4), _5) + { + ZEPHIR_INIT_NVAR(&attribute); + ZVAL_COPY(&attribute, _5); + ZEPHIR_INIT_NVAR(&_7$$9); + zephir_create_array(&_7$$9, 1, 0); + zephir_array_fast_append(&_7$$9, &attribute); + zephir_array_append(&fields, &_7$$9, PH_SEPARATE, "phalcon/Mvc/Model.zep", 2392); + } ZEND_HASH_FOREACH_END(); } else { - zephir_get_arrval(&values, values_param); + ZEPHIR_CALL_METHOD(NULL, &_4, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_6, &_4, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_6)) { + break; + } + ZEPHIR_CALL_METHOD(&attribute, &_4, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_8$$10); + zephir_create_array(&_8$$10, 1, 0); + zephir_array_fast_append(&_8$$10, &attribute); + zephir_array_append(&fields, &_8$$10, PH_SEPARATE, "phalcon/Mvc/Model.zep", 2392); + ZEPHIR_CALL_METHOD(NULL, &_4, "next", NULL, 0); + zephir_check_call_status(); + } } - - - ZEPHIR_CALL_METHOD(&sth, this_ptr, "perform", NULL, 0, &statement, &values); + ZEPHIR_INIT_NVAR(&attribute); + ZEPHIR_CALL_METHOD(&dialect, &readConnection, "getdialect", NULL, 0); zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&sth, "rowcount", NULL, 0); + ZEPHIR_INIT_VAR(&_9); + zephir_create_array(&_9, 3, 0); + zephir_array_update_string(&_9, SL("columns"), &fields, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_10, &readConnection, "escapeidentifier", NULL, 0, &table); zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchAll) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval values, _0; - zval *statement_param = NULL, *values_param = NULL, _1; - zval statement; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&values); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(statement) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(values) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &statement_param, &values_param); - zephir_get_strval(&statement, statement_param); - if (!values_param) { - ZEPHIR_INIT_VAR(&values); - array_init(&values); - } else { - zephir_get_arrval(&values, values_param); + zephir_array_update_string(&_9, SL("tables"), &_10, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_9, SL("where"), &uniqueKey, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&tables, &dialect, "select", NULL, 0, &_9); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("uniqueTypes"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_11, 2); + ZEPHIR_CALL_METHOD(&row, &readConnection, "fetchone", NULL, 0, &tables, &_11, &uniqueParams, &_1); + zephir_check_call_status(); + if (Z_TYPE_P(&row) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getcolumnmap", NULL, 0, this_ptr); + zephir_check_call_status(); + ZVAL_NULL(&_12$$11); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "assign", NULL, 0, &row, &_12$$11, &columnMap); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_13$$11, &manager, "iskeepingsnapshots", NULL, 0, this_ptr); + zephir_check_call_status(); + if (zephir_is_true(&_13$$11)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setsnapshotdata", NULL, 0, &row, &columnMap); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setoldsnapshotdata", NULL, 0, &row, &columnMap); + zephir_check_call_status(); + } } - - - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 1, 0); - ZEPHIR_INIT_VAR(&_1); - ZVAL_LONG(&_1, 2); - zephir_array_fast_append(&_0, &_1); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "fetchAll"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "fetchdata", NULL, 0, &_1, &_0, &statement, &values); + ZEPHIR_INIT_VAR(&_14); + ZVAL_STRING(&_14, "afterFetch"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_14); zephir_check_call_status(); - RETURN_MM(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchAssoc) +static PHP_METHOD(Phalcon_Mvc_Model, save) { + zend_bool hasRelatedToSave = 0; + zval metaData, schema, writeConnection, readConnection, source, table, identityField, exists, success, relatedToSave, _0, _4, _1$$3, _2$$7, _3$$8, _5$$10, _6$$11, _7$$11, _8$$14, _9$$16, _10$$18, _11$$21, _12$$20; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_2 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval values; - zval *statement_param = NULL, *values_param = NULL, data, row, sth, _0, _1$$3, _3$$3; - zval statement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&row); - ZVAL_UNDEF(&sth); + ZVAL_UNDEF(&metaData); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&writeConnection); + ZVAL_UNDEF(&readConnection); + ZVAL_UNDEF(&source); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&identityField); + ZVAL_UNDEF(&exists); + ZVAL_UNDEF(&success); + ZVAL_UNDEF(&relatedToSave); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_4); ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&values); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(statement) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(values) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_2$$7); + ZVAL_UNDEF(&_3$$8); + ZVAL_UNDEF(&_5$$10); + ZVAL_UNDEF(&_6$$11); + ZVAL_UNDEF(&_7$$11); + ZVAL_UNDEF(&_8$$14); + ZVAL_UNDEF(&_9$$16); + ZVAL_UNDEF(&_10$$18); + ZVAL_UNDEF(&_11$$21); + ZVAL_UNDEF(&_12$$20); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &statement_param, &values_param); - zephir_get_strval(&statement, statement_param); - if (!values_param) { - ZEPHIR_INIT_VAR(&values); - array_init(&values); + + ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&writeConnection, this_ptr, "getwriteconnection", NULL, 433); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "prepareSave"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&relatedToSave, this_ptr, "collectrelatedtosave", NULL, 0); + zephir_check_call_status(); + hasRelatedToSave = zephir_fast_count_int(&relatedToSave) > 0; + if (hasRelatedToSave) { + ZEPHIR_CALL_METHOD(&_1$$3, this_ptr, "presaverelatedrecords", NULL, 0, &writeConnection, &relatedToSave); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_1$$3)) { + RETURN_MM_BOOL(0); + } + } + ZEPHIR_CALL_METHOD(&schema, this_ptr, "getschema", NULL, 435); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&source, this_ptr, "getsource", NULL, 436); + zephir_check_call_status(); + if (zephir_is_true(&schema)) { + ZEPHIR_INIT_VAR(&table); + zephir_create_array(&table, 2, 0); + zephir_array_fast_append(&table, &schema); + zephir_array_fast_append(&table, &source); } else { - zephir_get_arrval(&values, values_param); + ZEPHIR_CPY_WRT(&table, &source); } - - - ZEPHIR_INIT_VAR(&data); - array_init(&data); - ZEPHIR_CALL_METHOD(&sth, this_ptr, "perform", NULL, 0, &statement, &values); + ZEPHIR_CALL_METHOD(&readConnection, this_ptr, "getreadconnection", NULL, 443); zephir_check_call_status(); - ZVAL_LONG(&_0, 2); - ZEPHIR_CALL_METHOD(&row, &sth, "fetch", NULL, 0, &_0); + ZEPHIR_CALL_METHOD(&exists, this_ptr, "exists", NULL, 0, &metaData, &readConnection); zephir_check_call_status(); - while (1) { - if (!(zephir_is_true(&row))) { - break; + if (zephir_is_true(&exists)) { + ZEPHIR_INIT_ZVAL_NREF(_2$$7); + ZVAL_LONG(&_2$$7, 2); + zephir_update_property_zval(this_ptr, ZEND_STRL("operationMade"), &_2$$7); + } else { + ZEPHIR_INIT_ZVAL_NREF(_3$$8); + ZVAL_LONG(&_3$$8, 1); + zephir_update_property_zval(this_ptr, ZEND_STRL("operationMade"), &_3$$8); + } + ZEPHIR_INIT_NVAR(&_0); + array_init(&_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("errorMessages"), &_0); + ZEPHIR_CALL_METHOD(&identityField, &metaData, "getidentityfield", NULL, 0, this_ptr); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "presave", NULL, 0, &metaData, &exists, &identityField); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_4)) { + if (hasRelatedToSave) { + ZVAL_BOOL(&_5$$10, 0); + ZEPHIR_CALL_METHOD(NULL, &writeConnection, "rollback", NULL, 0, &_5$$10); + zephir_check_call_status(); } - ZEPHIR_CALL_FUNCTION(&_1$$3, "current", &_2, 4, &row); + if (UNEXPECTED(ZEPHIR_GLOBAL(orm).exception_on_failed_save)) { + ZEPHIR_INIT_VAR(&_6$$11); + object_init_ex(&_6$$11, phalcon_mvc_model_validationfailed_ce); + ZEPHIR_CALL_METHOD(&_7$$11, this_ptr, "getmessages", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_6$$11, "__construct", NULL, 444, this_ptr, &_7$$11); + zephir_check_call_status(); + zephir_throw_exception_debug(&_6$$11, "phalcon/Mvc/Model.zep", 2549); + ZEPHIR_MM_RESTORE(); + return; + } + RETURN_MM_BOOL(0); + } + if (zephir_is_true(&exists)) { + ZEPHIR_CALL_METHOD(&success, this_ptr, "dolowupdate", NULL, 0, &metaData, &writeConnection, &table); zephir_check_call_status(); - zephir_array_update_zval(&data, &_1$$3, &row, PH_COPY | PH_SEPARATE); - ZVAL_LONG(&_3$$3, 2); - ZEPHIR_CALL_METHOD(&row, &sth, "fetch", NULL, 0, &_3$$3); + } else { + ZEPHIR_CALL_METHOD(&success, this_ptr, "dolowinsert", NULL, 0, &metaData, &writeConnection, &table, &identityField); zephir_check_call_status(); } - RETURN_CCTOR(&data); + if (zephir_is_true(&success)) { + ZEPHIR_INIT_ZVAL_NREF(_8$$14); + ZVAL_LONG(&_8$$14, 0); + zephir_update_property_zval(this_ptr, ZEND_STRL("dirtyState"), &_8$$14); + } + if (hasRelatedToSave) { + if (ZEPHIR_IS_FALSE_IDENTICAL(&success)) { + ZVAL_BOOL(&_9$$16, 0); + ZEPHIR_CALL_METHOD(NULL, &writeConnection, "rollback", NULL, 0, &_9$$16); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(&success, this_ptr, "postsaverelatedrecords", NULL, 0, &writeConnection, &relatedToSave); + zephir_check_call_status(); + } + } + if (ZEPHIR_GLOBAL(orm).events) { + ZEPHIR_CALL_METHOD(&_10$$18, this_ptr, "postsave", NULL, 0, &success, &exists); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&success, &_10$$18); + } + if (ZEPHIR_IS_FALSE_IDENTICAL(&success)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "canceloperation", NULL, 0); + zephir_check_call_status(); + } else { + if (hasRelatedToSave) { + ZEPHIR_INIT_VAR(&_11$$21); + array_init(&_11$$21); + zephir_update_property_zval(this_ptr, ZEND_STRL("dirtyRelated"), &_11$$21); + } + ZEPHIR_INIT_VAR(&_12$$20); + ZVAL_STRING(&_12$$20, "afterSave"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_12$$20); + zephir_check_call_status(); + } + RETURN_CCTOR(&success); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchColumn) +static PHP_METHOD(Phalcon_Mvc_Model, serialize) { + zval _3$$4; + zend_bool _2$$3; + zval attributes, snapshot, manager, _0, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long column, ZEPHIR_LAST_CALL_STATUS; - zval values, _0; - zval *statement_param = NULL, *values_param = NULL, *column_param = NULL, _1; - zval statement; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&values); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&snapshot); + ZVAL_UNDEF(&manager); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(statement) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(values) - Z_PARAM_LONG(column) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &statement_param, &values_param, &column_param); - zephir_get_strval(&statement, statement_param); - if (!values_param) { - ZEPHIR_INIT_VAR(&values); - array_init(&values); - } else { - zephir_get_arrval(&values, values_param); - } - if (!column_param) { - column = 0; - } else { - column = zephir_get_intval(column_param); - } - - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 2, 0); - ZEPHIR_INIT_VAR(&_1); - ZVAL_LONG(&_1, 7); - zephir_array_fast_append(&_0, &_1); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_LONG(&_1, column); - zephir_array_fast_append(&_0, &_1); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "fetchAll"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "fetchdata", NULL, 0, &_1, &_0, &statement, &values); + ZEPHIR_CALL_METHOD(&attributes, this_ptr, "toarray", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmodelsmanager", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&manager, &_0); + ZEPHIR_CALL_METHOD(&_0, &manager, "iskeepingsnapshots", NULL, 0, this_ptr); + zephir_check_call_status(); + if (zephir_is_true(&_0)) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("snapshot"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&snapshot, &_1$$3); + _2$$3 = Z_TYPE_P(&snapshot) != IS_NULL; + if (_2$$3) { + _2$$3 = !ZEPHIR_IS_EQUAL(&attributes, &snapshot); + } + if (_2$$3) { + ZEPHIR_INIT_VAR(&_3$$4); + zephir_create_array(&_3$$4, 2, 0); + zephir_array_update_string(&_3$$4, SL("_attributes"), &attributes, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_3$$4, SL("snapshot"), &snapshot, PH_COPY | PH_SEPARATE); + ZEPHIR_RETURN_CALL_FUNCTION("serialize", NULL, 13, &_3$$4); + zephir_check_call_status(); + RETURN_MM(); + } + } + ZEPHIR_RETURN_CALL_FUNCTION("serialize", NULL, 13, &attributes); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchGroup) +static PHP_METHOD(Phalcon_Mvc_Model, unserialize) { + zend_string *_11$$3; + zend_ulong _10$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long flags, ZEPHIR_LAST_CALL_STATUS; - zval values, _0; - zval *statement_param = NULL, *values_param = NULL, *flags_param = NULL, _1; - zval statement; + zephir_fcall_cache_entry *_0 = NULL, *_3 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *data, data_sub, attributes, container, manager, key, value, snapshot, _1$$4, _2$$4, _4$$4, _5$$3, _6$$3, *_8$$3, _9$$3, _7$$7; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&values); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&snapshot); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_9$$3); + ZVAL_UNDEF(&_7$$7); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(statement) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(values) - Z_PARAM_LONG(flags) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(data) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &statement_param, &values_param, &flags_param); - zephir_get_strval(&statement, statement_param); - if (!values_param) { - ZEPHIR_INIT_VAR(&values); - array_init(&values); - } else { - zephir_get_arrval(&values, values_param); - } - if (!flags_param) { - flags = 2; - } else { - flags = zephir_get_intval(flags_param); - } + zephir_fetch_params(1, 1, 0, &data); - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 1, 0); - ZEPHIR_INIT_VAR(&_1); - ZVAL_LONG(&_1, (65536 | flags)); - zephir_array_fast_append(&_0, &_1); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "fetchAll"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "fetchdata", NULL, 0, &_1, &_0, &statement, &values); + ZEPHIR_CALL_FUNCTION(&attributes, "unserialize", NULL, 15, data); zephir_check_call_status(); - RETURN_MM(); + if (Z_TYPE_P(&attributes) == IS_ARRAY) { + ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_0, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_1$$4); + object_init_ex(&_1$$4, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_4$$4); + ZVAL_STRING(&_4$$4, "the services related to the ODM"); + ZEPHIR_CALL_CE_STATIC(&_2$$4, phalcon_mvc_model_exception_ce, "containerservicenotfound", &_3, 0, &_4$$4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_1$$4, "__construct", NULL, 8, &_2$$4); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$4, "phalcon/Mvc/Model.zep", 2670); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), &container); + ZEPHIR_INIT_VAR(&_6$$3); + ZVAL_STRING(&_6$$3, "modelsManager"); + ZEPHIR_CALL_METHOD(&_5$$3, &container, "getshared", NULL, 0, &_6$$3); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&manager, &_5$$3); + if (UNEXPECTED(Z_TYPE_P(&manager) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The injected service 'modelsManager' is not valid", "phalcon/Mvc/Model.zep", 2686); + return; + } + zephir_update_property_zval(this_ptr, ZEND_STRL("modelsManager"), &manager); + ZEPHIR_CALL_METHOD(NULL, &manager, "initialize", NULL, 0, this_ptr); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_5$$3, &manager, "iskeepingsnapshots", NULL, 0, this_ptr); + zephir_check_call_status(); + if (zephir_is_true(&_5$$3)) { + if (zephir_array_isset_string_fetch(&snapshot, &attributes, SL("snapshot"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("snapshot"), &snapshot); + zephir_array_fetch_string(&_7$$7, &attributes, SL("_attributes"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 2702); + ZEPHIR_CPY_WRT(&attributes, &_7$$7); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("snapshot"), &attributes); + } + } + zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model.zep", 2714); + if (Z_TYPE_P(&attributes) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&attributes), _10$$3, _11$$3, _8$$3) + { + ZEPHIR_INIT_NVAR(&key); + if (_11$$3 != NULL) { + ZVAL_STR_COPY(&key, _11$$3); + } else { + ZVAL_LONG(&key, _10$$3); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _8$$3); + zephir_update_property_zval_zval(this_ptr, &key, &value); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_9$$3, &attributes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_9$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &attributes, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &attributes, "current", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval_zval(this_ptr, &key, &value); + ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchObject) +static PHP_METHOD(Phalcon_Mvc_Model, setConnectionService) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval values, arguments; - zval *statement_param = NULL, *values_param = NULL, *className_param = NULL, *arguments_param = NULL, sth; - zval statement, className; + zval *connectionService_param = NULL, _0; + zval connectionService; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&sth); - ZVAL_UNDEF(&values); - ZVAL_UNDEF(&arguments); + ZVAL_UNDEF(&connectionService); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 4) - Z_PARAM_STR(statement) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(values) - Z_PARAM_STR(className) - Z_PARAM_ARRAY(arguments) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(connectionService) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 3, &statement_param, &values_param, &className_param, &arguments_param); - zephir_get_strval(&statement, statement_param); - if (!values_param) { - ZEPHIR_INIT_VAR(&values); - array_init(&values); - } else { - zephir_get_arrval(&values, values_param); - } - if (!className_param) { - ZEPHIR_INIT_VAR(&className); - ZVAL_STRING(&className, "stdClass"); - } else { - zephir_get_strval(&className, className_param); + zephir_fetch_params(1, 1, 0, &connectionService_param); + if (UNEXPECTED(Z_TYPE_P(connectionService_param) != IS_STRING && Z_TYPE_P(connectionService_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'connectionService' must be of the type string")); + RETURN_MM_NULL(); } - if (!arguments_param) { - ZEPHIR_INIT_VAR(&arguments); - array_init(&arguments); + if (EXPECTED(Z_TYPE_P(connectionService_param) == IS_STRING)) { + zephir_get_strval(&connectionService, connectionService_param); } else { - zephir_get_arrval(&arguments, arguments_param); + ZEPHIR_INIT_VAR(&connectionService); } - ZEPHIR_CALL_METHOD(&sth, this_ptr, "perform", NULL, 0, &statement, &values); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&sth, "fetchobject", NULL, 0, &className, &arguments); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "setconnectionservice", NULL, 0, this_ptr, &connectionService); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchObjects) +static PHP_METHOD(Phalcon_Mvc_Model, setDirtyState) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval values, arguments; - zval *statement_param = NULL, *values_param = NULL, *className_param = NULL, *arguments_param = NULL, sth, _0; - zval statement, className; + zval *dirtyState_param = NULL, _0; + zend_long dirtyState; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&sth); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&values); - ZVAL_UNDEF(&arguments); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 4) - Z_PARAM_STR(statement) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(values) - Z_PARAM_STR(className) - Z_PARAM_ARRAY(arguments) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(dirtyState) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 3, &statement_param, &values_param, &className_param, &arguments_param); - zephir_get_strval(&statement, statement_param); - if (!values_param) { - ZEPHIR_INIT_VAR(&values); - array_init(&values); - } else { - zephir_get_arrval(&values, values_param); - } - if (!className_param) { - ZEPHIR_INIT_VAR(&className); - ZVAL_STRING(&className, "stdClass"); - } else { - zephir_get_strval(&className, className_param); - } - if (!arguments_param) { - ZEPHIR_INIT_VAR(&arguments); - array_init(&arguments); - } else { - zephir_get_arrval(&arguments, arguments_param); - } + zephir_fetch_params_without_memory_grow(1, 0, &dirtyState_param); + dirtyState = zephir_get_intval(dirtyState_param); - ZEPHIR_CALL_METHOD(&sth, this_ptr, "perform", NULL, 0, &statement, &values); - zephir_check_call_status(); - ZVAL_LONG(&_0, 8); - ZEPHIR_RETURN_CALL_METHOD(&sth, "fetchall", NULL, 0, &_0, &className, &arguments); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, dirtyState); + zephir_update_property_zval(this_ptr, ZEND_STRL("dirtyState"), &_0); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchOne) +static PHP_METHOD(Phalcon_Mvc_Model, setEventsManager) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval values, _0; - zval *statement_param = NULL, *values_param = NULL, _1; - zval statement; + zval *eventsManager, eventsManager_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&values); + ZVAL_UNDEF(&eventsManager_sub); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(statement) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(values) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &statement_param, &values_param); - zephir_get_strval(&statement, statement_param); - if (!values_param) { - ZEPHIR_INIT_VAR(&values); - array_init(&values); - } else { - zephir_get_arrval(&values, values_param); - } + zephir_fetch_params(1, 1, 0, &eventsManager); - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 1, 0); - ZEPHIR_INIT_VAR(&_1); - ZVAL_LONG(&_1, 2); - zephir_array_fast_append(&_0, &_1); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "fetch"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "fetchdata", NULL, 0, &_1, &_0, &statement, &values); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "setcustomeventsmanager", NULL, 0, this_ptr, eventsManager); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchPairs) +static PHP_METHOD(Phalcon_Mvc_Model, setReadConnectionService) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval values, _0; - zval *statement_param = NULL, *values_param = NULL, _1; - zval statement; + zval *connectionService_param = NULL, _0; + zval connectionService; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&values); + ZVAL_UNDEF(&connectionService); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(statement) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(values) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(connectionService) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &statement_param, &values_param); - zephir_get_strval(&statement, statement_param); - if (!values_param) { - ZEPHIR_INIT_VAR(&values); - array_init(&values); + zephir_fetch_params(1, 1, 0, &connectionService_param); + if (UNEXPECTED(Z_TYPE_P(connectionService_param) != IS_STRING && Z_TYPE_P(connectionService_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'connectionService' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(connectionService_param) == IS_STRING)) { + zephir_get_strval(&connectionService, connectionService_param); } else { - zephir_get_arrval(&values, values_param); + ZEPHIR_INIT_VAR(&connectionService); } - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 1, 0); - ZEPHIR_INIT_VAR(&_1); - ZVAL_LONG(&_1, 12); - zephir_array_fast_append(&_0, &_1); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "fetchAll"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "fetchdata", NULL, 0, &_1, &_0, &statement, &values); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "setreadconnectionservice", NULL, 0, this_ptr, &connectionService); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchValue) +static PHP_METHOD(Phalcon_Mvc_Model, setOldSnapshotData) { + zend_string *_3$$3; + zend_ulong _2$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_6 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval values; - zval *statement_param = NULL, *values_param = NULL, sth, _0; - zval statement; + zval *data_param = NULL, *columnMap = NULL, columnMap_sub, __$null, key, value, attribute, *_0$$3, _1$$3, _4$$7, _5$$7, _7$$10, _8$$10, _9$$14, _10$$14, _11$$17, _12$$17; + zval data, snapshot; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&sth); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&values); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&snapshot); + ZVAL_UNDEF(&columnMap_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&attribute); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_4$$7); + ZVAL_UNDEF(&_5$$7); + ZVAL_UNDEF(&_7$$10); + ZVAL_UNDEF(&_8$$10); + ZVAL_UNDEF(&_9$$14); + ZVAL_UNDEF(&_10$$14); + ZVAL_UNDEF(&_11$$17); + ZVAL_UNDEF(&_12$$17); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(statement) + Z_PARAM_ARRAY(data) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(values) + Z_PARAM_ZVAL_OR_NULL(columnMap) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &statement_param, &values_param); - zephir_get_strval(&statement, statement_param); - if (!values_param) { - ZEPHIR_INIT_VAR(&values); - array_init(&values); - } else { - zephir_get_arrval(&values, values_param); + zephir_fetch_params(1, 1, 1, &data_param, &columnMap); + ZEPHIR_OBS_COPY_OR_DUP(&data, data_param); + if (!columnMap) { + columnMap = &columnMap_sub; + columnMap = &__$null; } - ZEPHIR_CALL_METHOD(&sth, this_ptr, "perform", NULL, 0, &statement, &values); - zephir_check_call_status(); - ZVAL_LONG(&_0, 0); - ZEPHIR_RETURN_CALL_METHOD(&sth, "fetchcolumn", NULL, 0, &_0); - zephir_check_call_status(); - RETURN_MM(); + if (Z_TYPE_P(columnMap) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&snapshot); + array_init(&snapshot); + zephir_is_iterable(&data, 0, "phalcon/Mvc/Model.zep", 2811); + if (Z_TYPE_P(&data) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _2$$3, _3$$3, _0$$3) + { + ZEPHIR_INIT_NVAR(&key); + if (_3$$3 != NULL) { + ZVAL_STR_COPY(&key, _3$$3); + } else { + ZVAL_LONG(&key, _2$$3); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0$$3); + if (Z_TYPE_P(&key) != IS_STRING) { + continue; + } + ZEPHIR_OBS_NVAR(&attribute); + if (!(zephir_array_isset_fetch(&attribute, columnMap, &key, 0))) { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_4$$7); + object_init_ex(&_4$$7, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_5$$7); + ZEPHIR_CONCAT_SVS(&_5$$7, "Column '", &key, "' doesn't make part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_4$$7, "__construct", &_6, 8, &_5$$7); + zephir_check_call_status(); + zephir_throw_exception_debug(&_4$$7, "phalcon/Mvc/Model.zep", 2791); + ZEPHIR_MM_RESTORE(); + return; + } + continue; + } + if (Z_TYPE_P(&attribute) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&attribute); + if (!(zephir_array_isset_long_fetch(&attribute, &attribute, 0, 0))) { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_7$$10); + object_init_ex(&_7$$10, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_8$$10); + ZEPHIR_CONCAT_SVS(&_8$$10, "Column '", &key, "' doesn't make part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_7$$10, "__construct", &_6, 8, &_8$$10); + zephir_check_call_status(); + zephir_throw_exception_debug(&_7$$10, "phalcon/Mvc/Model.zep", 2802); + ZEPHIR_MM_RESTORE(); + return; + } + continue; + } + } + zephir_array_update_zval(&snapshot, &attribute, &value, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &data, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1$$3, &data, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &data, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &data, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&key) != IS_STRING) { + continue; + } + ZEPHIR_OBS_NVAR(&attribute); + if (!(zephir_array_isset_fetch(&attribute, columnMap, &key, 0))) { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_9$$14); + object_init_ex(&_9$$14, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_10$$14); + ZEPHIR_CONCAT_SVS(&_10$$14, "Column '", &key, "' doesn't make part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_9$$14, "__construct", &_6, 8, &_10$$14); + zephir_check_call_status(); + zephir_throw_exception_debug(&_9$$14, "phalcon/Mvc/Model.zep", 2791); + ZEPHIR_MM_RESTORE(); + return; + } + continue; + } + if (Z_TYPE_P(&attribute) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&attribute); + if (!(zephir_array_isset_long_fetch(&attribute, &attribute, 0, 0))) { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_11$$17); + object_init_ex(&_11$$17, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_12$$17); + ZEPHIR_CONCAT_SVS(&_12$$17, "Column '", &key, "' doesn't make part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_11$$17, "__construct", &_6, 8, &_12$$17); + zephir_check_call_status(); + zephir_throw_exception_debug(&_11$$17, "phalcon/Mvc/Model.zep", 2802); + ZEPHIR_MM_RESTORE(); + return; + } + continue; + } + } + zephir_array_update_zval(&snapshot, &attribute, &value, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &data, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + } else { + ZEPHIR_CPY_WRT(&snapshot, &data); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("oldSnapshot"), &snapshot); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, getAdapter) +static PHP_METHOD(Phalcon_Mvc_Model, setSnapshotData) { + zend_bool _4$$4, _12$$12; + zend_string *_3$$3; + zend_ulong _2$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_6 = NULL, *_9 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *data_param = NULL, *columnMap = NULL, columnMap_sub, __$null, key, value, attribute, *_0$$3, _1$$3, _5$$6, _7$$8, _8$$8, _10$$11, _11$$11, _13$$14, _14$$16, _15$$16, _16$$19, _17$$19; + zval data, snapshot; zval *this_ptr = getThis(); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); - zephir_check_call_status(); - RETURN_MM_MEMBER(getThis(), "pdo"); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, getAttribute) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *attribute_param = NULL, _0, _1; - zend_long attribute, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&snapshot); + ZVAL_UNDEF(&columnMap_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&attribute); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&_7$$8); + ZVAL_UNDEF(&_8$$8); + ZVAL_UNDEF(&_10$$11); + ZVAL_UNDEF(&_11$$11); + ZVAL_UNDEF(&_13$$14); + ZVAL_UNDEF(&_14$$16); + ZVAL_UNDEF(&_15$$16); + ZVAL_UNDEF(&_16$$19); + ZVAL_UNDEF(&_17$$19); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(attribute) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(data) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(columnMap) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &attribute_param); - attribute = zephir_get_intval(attribute_param); - - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_1, attribute); - ZEPHIR_RETURN_CALL_METHOD(&_0, "getattribute", NULL, 0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, getAvailableDrivers) -{ - zend_class_entry *_0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - + zephir_fetch_params(1, 1, 1, &data_param, &columnMap); + ZEPHIR_OBS_COPY_OR_DUP(&data, data_param); + if (!columnMap) { + columnMap = &columnMap_sub; + columnMap = &__$null; + } - ZEPHIR_MM_GROW(); - _0 = zephir_fetch_class_str_ex(SL("PDO"), ZEND_FETCH_CLASS_AUTO); - ZEPHIR_RETURN_CALL_CE_STATIC(_0, "getavailabledrivers", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); + if (Z_TYPE_P(columnMap) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&snapshot); + array_init(&snapshot); + zephir_is_iterable(&data, 0, "phalcon/Mvc/Model.zep", 2876); + if (Z_TYPE_P(&data) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _2$$3, _3$$3, _0$$3) + { + ZEPHIR_INIT_NVAR(&key); + if (_3$$3 != NULL) { + ZVAL_STR_COPY(&key, _3$$3); + } else { + ZVAL_LONG(&key, _2$$3); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0$$3); + if (Z_TYPE_P(&key) != IS_STRING) { + continue; + } + _4$$4 = !(zephir_array_isset(columnMap, &key)); + if (_4$$4) { + _4$$4 = ZEPHIR_GLOBAL(orm).case_insensitive_column_map; + } + if (_4$$4) { + ZEPHIR_CALL_SELF(&_5$$6, "caseinsensitivecolumnmap", &_6, 431, columnMap, &key); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&key, &_5$$6); + } + ZEPHIR_OBS_NVAR(&attribute); + if (!(zephir_array_isset_fetch(&attribute, columnMap, &key, 0))) { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_7$$8); + object_init_ex(&_7$$8, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_8$$8); + ZEPHIR_CONCAT_SVS(&_8$$8, "Column '", &key, "' doesn't make part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_7$$8, "__construct", &_9, 8, &_8$$8); + zephir_check_call_status(); + zephir_throw_exception_debug(&_7$$8, "phalcon/Mvc/Model.zep", 2856); + ZEPHIR_MM_RESTORE(); + return; + } + continue; + } + if (Z_TYPE_P(&attribute) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&attribute); + if (!(zephir_array_isset_long_fetch(&attribute, &attribute, 0, 0))) { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_10$$11); + object_init_ex(&_10$$11, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_11$$11); + ZEPHIR_CONCAT_SVS(&_11$$11, "Column '", &key, "' doesn't make part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_10$$11, "__construct", &_9, 8, &_11$$11); + zephir_check_call_status(); + zephir_throw_exception_debug(&_10$$11, "phalcon/Mvc/Model.zep", 2867); + ZEPHIR_MM_RESTORE(); + return; + } + continue; + } + } + zephir_array_update_zval(&snapshot, &attribute, &value, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &data, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1$$3, &data, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &data, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &data, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&key) != IS_STRING) { + continue; + } + _12$$12 = !(zephir_array_isset(columnMap, &key)); + if (_12$$12) { + _12$$12 = ZEPHIR_GLOBAL(orm).case_insensitive_column_map; + } + if (_12$$12) { + ZEPHIR_CALL_SELF(&_13$$14, "caseinsensitivecolumnmap", &_6, 431, columnMap, &key); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&key, &_13$$14); + } + ZEPHIR_OBS_NVAR(&attribute); + if (!(zephir_array_isset_fetch(&attribute, columnMap, &key, 0))) { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_14$$16); + object_init_ex(&_14$$16, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_15$$16); + ZEPHIR_CONCAT_SVS(&_15$$16, "Column '", &key, "' doesn't make part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_14$$16, "__construct", &_9, 8, &_15$$16); + zephir_check_call_status(); + zephir_throw_exception_debug(&_14$$16, "phalcon/Mvc/Model.zep", 2856); + ZEPHIR_MM_RESTORE(); + return; + } + continue; + } + if (Z_TYPE_P(&attribute) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&attribute); + if (!(zephir_array_isset_long_fetch(&attribute, &attribute, 0, 0))) { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_16$$19); + object_init_ex(&_16$$19, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_17$$19); + ZEPHIR_CONCAT_SVS(&_17$$19, "Column '", &key, "' doesn't make part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_16$$19, "__construct", &_9, 8, &_17$$19); + zephir_check_call_status(); + zephir_throw_exception_debug(&_16$$19, "phalcon/Mvc/Model.zep", 2867); + ZEPHIR_MM_RESTORE(); + return; + } + continue; + } + } + zephir_array_update_zval(&snapshot, &attribute, &value, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &data, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + } else { + ZEPHIR_CPY_WRT(&snapshot, &data); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("snapshot"), &snapshot); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, getDriverName) +static PHP_METHOD(Phalcon_Mvc_Model, setTransaction) { - zval _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval *transaction, transaction_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_1, 16); - ZEPHIR_RETURN_CALL_METHOD(&_0, "getattribute", NULL, 0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} + ZVAL_UNDEF(&transaction_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(transaction, phalcon_mvc_model_transactioninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, getProfiler) -{ - zval *this_ptr = getThis(); + zephir_fetch_params_without_memory_grow(1, 0, &transaction); - RETURN_MEMBER(getThis(), "profiler"); + zephir_update_property_zval(this_ptr, ZEND_STRL("transaction"), transaction); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, getQuoteNames) +static PHP_METHOD(Phalcon_Mvc_Model, setup) { - zval quotes; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *driver_param = NULL, option, _0$$5, _1$$6; - zval driver; + zval *options_param = NULL, disableEvents, columnRenaming, notNullValidations, exceptionOnFailedSave, exceptionOnFailedMetaDataSave, phqlLiterals, virtualForeignKeys, lateStateBinding, castOnHydrate, ignoreUnknownColumns, updateSnapshotOnSave, disableAssignSetters, caseInsensitiveColumnMap, prefetchRecords, lastInsertId; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&driver); - ZVAL_UNDEF(&option); - ZVAL_UNDEF(&_0$$5); - ZVAL_UNDEF(&_1$$6); - ZVAL_UNDEF("es); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&disableEvents); + ZVAL_UNDEF(&columnRenaming); + ZVAL_UNDEF(¬NullValidations); + ZVAL_UNDEF(&exceptionOnFailedSave); + ZVAL_UNDEF(&exceptionOnFailedMetaDataSave); + ZVAL_UNDEF(&phqlLiterals); + ZVAL_UNDEF(&virtualForeignKeys); + ZVAL_UNDEF(&lateStateBinding); + ZVAL_UNDEF(&castOnHydrate); + ZVAL_UNDEF(&ignoreUnknownColumns); + ZVAL_UNDEF(&updateSnapshotOnSave); + ZVAL_UNDEF(&disableAssignSetters); + ZVAL_UNDEF(&caseInsensitiveColumnMap); + ZVAL_UNDEF(&prefetchRecords); + ZVAL_UNDEF(&lastInsertId); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR(driver) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &driver_param); - if (!driver_param) { - ZEPHIR_INIT_VAR(&driver); - ZVAL_STRING(&driver, ""); - } else { - zephir_get_strval(&driver, driver_param); - } + zephir_fetch_params(1, 1, 0, &options_param); + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); - ZEPHIR_CPY_WRT(&option, &driver); - if (ZEPHIR_IS_EMPTY(&option)) { - ZEPHIR_CALL_METHOD(&option, this_ptr, "getdrivername", NULL, 0); - zephir_check_call_status(); + ZEPHIR_OBS_VAR(&disableEvents); + if (zephir_array_isset_string_fetch(&disableEvents, &options, SL("events"), 0)) { + ZEPHIR_GLOBAL(orm).events = zend_is_true(&disableEvents); } - do { - if (ZEPHIR_IS_STRING(&option, "mysql")) { - ZEPHIR_INIT_VAR("es); - zephir_create_array("es, 4, 0); - add_assoc_stringl_ex("es, SL("prefix"), SL("`")); - add_assoc_stringl_ex("es, SL("suffix"), SL("`")); - add_assoc_stringl_ex("es, SL("find"), SL("`")); - add_assoc_stringl_ex("es, SL("replace"), SL("``")); - break; - } - if (ZEPHIR_IS_STRING(&option, "sqlsrv")) { - ZEPHIR_INIT_VAR(&_0$$5); - zephir_create_array(&_0$$5, 4, 0); - add_assoc_stringl_ex(&_0$$5, SL("prefix"), SL("[")); - add_assoc_stringl_ex(&_0$$5, SL("suffix"), SL("]")); - add_assoc_stringl_ex(&_0$$5, SL("find"), SL("]")); - add_assoc_stringl_ex(&_0$$5, SL("replace"), SL("][")); - ZEPHIR_CPY_WRT("es, &_0$$5); - break; - } - ZEPHIR_INIT_VAR(&_1$$6); - zephir_create_array(&_1$$6, 4, 0); - add_assoc_stringl_ex(&_1$$6, SL("prefix"), SL("\"")); - add_assoc_stringl_ex(&_1$$6, SL("suffix"), SL("\"")); - add_assoc_stringl_ex(&_1$$6, SL("find"), SL("\"")); - add_assoc_stringl_ex(&_1$$6, SL("replace"), SL("\"\"")); - ZEPHIR_CPY_WRT("es, &_1$$6); - break; - } while(0); - - RETURN_CTOR("es); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, inTransaction) -{ - zval result, _0, _1, _2, _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "inTransaction"); - ZEPHIR_CALL_METHOD(NULL, &_0, "start", NULL, 0, &_1); - zephir_check_call_status(); - zephir_read_property(&_2, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&result, &_2, "intransaction", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_3, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_3, "finish", NULL, 0); - zephir_check_call_status(); - RETURN_CCTOR(&result); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, isConnected) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_OBS_VAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC); - RETURN_MM_BOOL(zephir_get_boolval(&_0)); + ZEPHIR_OBS_VAR(&virtualForeignKeys); + if (zephir_array_isset_string_fetch(&virtualForeignKeys, &options, SL("virtualForeignKeys"), 0)) { + ZEPHIR_GLOBAL(orm).virtual_foreign_keys = zend_is_true(&virtualForeignKeys); + } + ZEPHIR_OBS_VAR(&columnRenaming); + if (zephir_array_isset_string_fetch(&columnRenaming, &options, SL("columnRenaming"), 0)) { + ZEPHIR_GLOBAL(orm).column_renaming = zend_is_true(&columnRenaming); + } + ZEPHIR_OBS_VAR(¬NullValidations); + if (zephir_array_isset_string_fetch(¬NullValidations, &options, SL("notNullValidations"), 0)) { + ZEPHIR_GLOBAL(orm).not_null_validations = zend_is_true(¬NullValidations); + } + ZEPHIR_OBS_VAR(&exceptionOnFailedSave); + if (zephir_array_isset_string_fetch(&exceptionOnFailedSave, &options, SL("exceptionOnFailedSave"), 0)) { + ZEPHIR_GLOBAL(orm).exception_on_failed_save = zend_is_true(&exceptionOnFailedSave); + } + ZEPHIR_OBS_VAR(&exceptionOnFailedMetaDataSave); + if (zephir_array_isset_string_fetch(&exceptionOnFailedMetaDataSave, &options, SL("exceptionOnFailedMetaDataSave"), 0)) { + ZEPHIR_GLOBAL(orm).exception_on_failed_metadata_save = zend_is_true(&exceptionOnFailedMetaDataSave); + } + ZEPHIR_OBS_VAR(&phqlLiterals); + if (zephir_array_isset_string_fetch(&phqlLiterals, &options, SL("phqlLiterals"), 0)) { + ZEPHIR_GLOBAL(orm).enable_literals = zend_is_true(&phqlLiterals); + } + ZEPHIR_OBS_VAR(&lateStateBinding); + if (zephir_array_isset_string_fetch(&lateStateBinding, &options, SL("lateStateBinding"), 0)) { + ZEPHIR_GLOBAL(orm).late_state_binding = zend_is_true(&lateStateBinding); + } + ZEPHIR_OBS_VAR(&castOnHydrate); + if (zephir_array_isset_string_fetch(&castOnHydrate, &options, SL("castOnHydrate"), 0)) { + ZEPHIR_GLOBAL(orm).cast_on_hydrate = zend_is_true(&castOnHydrate); + } + ZEPHIR_OBS_VAR(&ignoreUnknownColumns); + if (zephir_array_isset_string_fetch(&ignoreUnknownColumns, &options, SL("ignoreUnknownColumns"), 0)) { + ZEPHIR_GLOBAL(orm).ignore_unknown_columns = zend_is_true(&ignoreUnknownColumns); + } + ZEPHIR_OBS_VAR(&caseInsensitiveColumnMap); + if (zephir_array_isset_string_fetch(&caseInsensitiveColumnMap, &options, SL("caseInsensitiveColumnMap"), 0)) { + ZEPHIR_GLOBAL(orm).case_insensitive_column_map = zend_is_true(&caseInsensitiveColumnMap); + } + ZEPHIR_OBS_VAR(&updateSnapshotOnSave); + if (zephir_array_isset_string_fetch(&updateSnapshotOnSave, &options, SL("updateSnapshotOnSave"), 0)) { + ZEPHIR_GLOBAL(orm).update_snapshot_on_save = zend_is_true(&updateSnapshotOnSave); + } + ZEPHIR_OBS_VAR(&disableAssignSetters); + if (zephir_array_isset_string_fetch(&disableAssignSetters, &options, SL("disableAssignSetters"), 0)) { + ZEPHIR_GLOBAL(orm).disable_assign_setters = zend_is_true(&disableAssignSetters); + } + ZEPHIR_OBS_VAR(&prefetchRecords); + if (zephir_array_isset_string_fetch(&prefetchRecords, &options, SL("prefetchRecords"), 0)) { + ZEPHIR_GLOBAL(orm).resultset_prefetch_records = Z_LVAL_P(&prefetchRecords); + } + ZEPHIR_OBS_VAR(&lastInsertId); + if (zephir_array_isset_string_fetch(&lastInsertId, &options, SL("castLastInsertIdToInt"), 0)) { + ZEPHIR_GLOBAL(orm).cast_last_insert_id_to_int = zend_is_true(&lastInsertId); + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, lastInsertId) +static PHP_METHOD(Phalcon_Mvc_Model, setWriteConnectionService) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, result, _0, _1, _2, _3; - zval name, _4; + zval *connectionService_param = NULL, _0; + zval connectionService; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&result); + ZVAL_UNDEF(&connectionService); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(connectionService) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &name_param); - if (!name_param) { - ZEPHIR_INIT_VAR(&name); + zephir_fetch_params(1, 1, 0, &connectionService_param); + if (UNEXPECTED(Z_TYPE_P(connectionService_param) != IS_STRING && Z_TYPE_P(connectionService_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'connectionService' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(connectionService_param) == IS_STRING)) { + zephir_get_strval(&connectionService, connectionService_param); } else { - zephir_get_strval(&name, name_param); + ZEPHIR_INIT_VAR(&connectionService); } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "lastInsertId"); - ZEPHIR_CALL_METHOD(NULL, &_0, "start", NULL, 0, &_1); - zephir_check_call_status(); - zephir_read_property(&_2, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&result, &_2, "lastinsertid", NULL, 0, &name); - zephir_check_call_status(); - zephir_read_property(&_3, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_3, "finish", NULL, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "setwriteconnectionservice", NULL, 0, this_ptr, &connectionService); zephir_check_call_status(); - zephir_cast_to_string(&_4, &result); - RETURN_CTOR(&_4); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, perform) +static PHP_METHOD(Phalcon_Mvc_Model, skipOperation) { - zend_string *_5; - zend_ulong _4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_6 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval values; - zval *statement_param = NULL, *values_param = NULL, name, sth, value, _0, _1, *_2, _3, _7; - zval statement; + zval *skip_param = NULL, __$true, __$false; + zend_bool skip; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&sth); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&values); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(statement) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(values) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(skip) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &statement_param, &values_param); - zephir_get_strval(&statement, statement_param); - if (!values_param) { - ZEPHIR_INIT_VAR(&values); - array_init(&values); - } else { - zephir_get_arrval(&values, values_param); - } + zephir_fetch_params_without_memory_grow(1, 0, &skip_param); + skip = zephir_get_boolval(skip_param); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "perform"); - ZEPHIR_CALL_METHOD(NULL, &_0, "start", NULL, 0, &_1); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&sth, this_ptr, "prepare", NULL, 0, &statement); - zephir_check_call_status(); - zephir_is_iterable(&values, 0, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 582); - if (Z_TYPE_P(&values) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&values), _4, _5, _2) - { - ZEPHIR_INIT_NVAR(&name); - if (_5 != NULL) { - ZVAL_STR_COPY(&name, _5); - } else { - ZVAL_LONG(&name, _4); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _2); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "performbind", &_6, 0, &sth, &name, &value); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); + if (skip) { + zephir_update_property_zval(this_ptr, ZEND_STRL("skipped"), &__$true); } else { - ZEPHIR_CALL_METHOD(NULL, &values, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3, &values, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3)) { - break; - } - ZEPHIR_CALL_METHOD(&name, &values, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &values, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "performbind", &_6, 0, &sth, &name, &value); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &values, "next", NULL, 0); - zephir_check_call_status(); - } + zephir_update_property_zval(this_ptr, ZEND_STRL("skipped"), &__$false); } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&name); - ZEPHIR_CALL_METHOD(NULL, &sth, "execute", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_7, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_7, "finish", NULL, 0, &statement, &values); - zephir_check_call_status(); - RETURN_CCTOR(&sth); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, prepare) +static PHP_METHOD(Phalcon_Mvc_Model, sum) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval options; - zval *statement_param = NULL, *options_param = NULL, sth, _0, _1, _2, _3, _4; - zval statement; + zval *parameters = NULL, parameters_sub, __$null, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&sth); + ZVAL_UNDEF(¶meters_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(statement) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + Z_PARAM_ZVAL_OR_NULL(parameters) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &statement_param, &options_param); - zephir_get_strval(&statement, statement_param); - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); - } else { - zephir_get_arrval(&options, options_param); + zephir_fetch_params(1, 0, 1, ¶meters); + if (!parameters) { + parameters = ¶meters_sub; + parameters = &__$null; } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "SUM"); ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "prepare"); - ZEPHIR_CALL_METHOD(NULL, &_0, "start", NULL, 0, &_1); - zephir_check_call_status(); - zephir_read_property(&_2, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&sth, &_2, "prepare", NULL, 0, &statement, &options); - zephir_check_call_status(); - zephir_read_property(&_3, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_4, &sth, ZEND_STRL("queryString"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_3, "finish", NULL, 0, &_4); + ZVAL_STRING(&_1, "sumatory"); + ZEPHIR_RETURN_CALL_SELF("groupresult", NULL, 0, &_0, &_1, parameters); zephir_check_call_status(); - RETURN_CCTOR(&sth); + RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, query) +static PHP_METHOD(Phalcon_Mvc_Model, toArray) { - zval _2; + zend_bool _3$$4, _9$$14; + zval data; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_5 = NULL, *_8 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *statement_param = NULL, sth, _0, _1, _3, _4, _5; - zval statement; + zval *columns = NULL, columns_sub, __$null, metaData, columnMap, attribute, attributeField, value, _0, *_1, _2, _4$$5, _6$$7, _7$$7, _10$$15, _11$$17, _12$$17; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&sth); + ZVAL_UNDEF(&columns_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&metaData); + ZVAL_UNDEF(&columnMap); + ZVAL_UNDEF(&attribute); + ZVAL_UNDEF(&attributeField); + ZVAL_UNDEF(&value); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_6$$7); + ZVAL_UNDEF(&_7$$7); + ZVAL_UNDEF(&_10$$15); + ZVAL_UNDEF(&_11$$17); + ZVAL_UNDEF(&_12$$17); + ZVAL_UNDEF(&data); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(statement) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &statement_param); - zephir_get_strval(&statement, statement_param); - - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "query"); - ZEPHIR_CALL_METHOD(NULL, &_0, "start", NULL, 0, &_1); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - zephir_create_array(&_2, 2, 0); - ZEPHIR_OBS_VAR(&_3); - zephir_read_property(&_3, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC); - zephir_array_fast_append(&_2, &_3); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "query"); - zephir_array_fast_append(&_2, &_1); - ZEPHIR_INIT_NVAR(&_1); - zephir_get_args(&_1); - ZEPHIR_INIT_VAR(&sth); - ZEPHIR_CALL_USER_FUNC_ARRAY(&sth, &_2, &_1); - zephir_check_call_status(); - zephir_read_property(&_4, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_5, &sth, ZEND_STRL("queryString"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_4, "finish", NULL, 0, &_5); - zephir_check_call_status(); - RETURN_CCTOR(&sth); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, quote) -{ - zval _0$$3, _7$$4, _11$$5; - zend_string *_6; - zend_ulong _5; - zval elements; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *value, value_sub, *type_param = NULL, element, key, quotes, *_3, _4, _1$$3, _2$$3, _8$$4, _9$$4, _10$$4, _12$$5, _13$$5, _14$$5; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&element); - ZVAL_UNDEF(&key); - ZVAL_UNDEF("es); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_8$$4); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_10$$4); - ZVAL_UNDEF(&_12$$5); - ZVAL_UNDEF(&_13$$5); - ZVAL_UNDEF(&_14$$5); - ZVAL_UNDEF(&elements); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_11$$5); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_LONG(type) + Z_PARAM_ZVAL_OR_NULL(columns) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &value, &type_param); - if (!type_param) { - type = 2; - } else { - type = zephir_get_intval(type_param); + zephir_fetch_params(1, 0, 1, &columns); + if (!columns) { + columns = &columns_sub; + columns = &__$null; } - ZEPHIR_INIT_VAR(&elements); - array_init(&elements); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); + ZEPHIR_INIT_VAR(&data); + array_init(&data); + ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL, 0); zephir_check_call_status(); - ZEPHIR_CPY_WRT(&element, value); - ZEPHIR_CALL_METHOD("es, this_ptr, "getquotenames", NULL, 0); + ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getcolumnmap", NULL, 0, this_ptr); zephir_check_call_status(); - if (Z_TYPE_P(&element) != IS_ARRAY) { - zephir_cast_to_string(&_0$$3, &element); - ZEPHIR_CPY_WRT(&element, &_0$$3); - zephir_array_fetch_string(&_1$$3, "es, SL("prefix"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 667); - zephir_array_fetch_string(&_2$$3, "es, SL("suffix"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 667); - ZEPHIR_CONCAT_VVV(return_value, &_1$$3, &element, &_2$$3); - RETURN_MM(); - } - zephir_is_iterable(value, 0, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 676); - if (Z_TYPE_P(value) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(value), _5, _6, _3) + ZEPHIR_CALL_METHOD(&_0, &metaData, "getattributes", NULL, 0, this_ptr); + zephir_check_call_status(); + zephir_is_iterable(&_0, 0, "phalcon/Mvc/Model.zep", 3148); + if (Z_TYPE_P(&_0) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _1) { - ZEPHIR_INIT_NVAR(&key); - if (_6 != NULL) { - ZVAL_STR_COPY(&key, _6); + ZEPHIR_INIT_NVAR(&attribute); + ZVAL_COPY(&attribute, _1); + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + _3$$4 = !(zephir_array_isset(&columnMap, &attribute)); + if (_3$$4) { + _3$$4 = ZEPHIR_GLOBAL(orm).case_insensitive_column_map; + } + if (_3$$4) { + ZEPHIR_CALL_SELF(&_4$$5, "caseinsensitivecolumnmap", &_5, 431, &columnMap, &attribute); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&attribute, &_4$$5); + } + ZEPHIR_OBS_NVAR(&attributeField); + if (!(zephir_array_isset_fetch(&attributeField, &columnMap, &attribute, 0))) { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_6$$7); + object_init_ex(&_6$$7, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_7$$7); + ZEPHIR_CONCAT_SVS(&_7$$7, "Column '", &attribute, "' doesn't make part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_6$$7, "__construct", &_8, 8, &_7$$7); + zephir_check_call_status(); + zephir_throw_exception_debug(&_6$$7, "phalcon/Mvc/Model.zep", 3126); + ZEPHIR_MM_RESTORE(); + return; + } + continue; + } } else { - ZVAL_LONG(&key, _5); + ZEPHIR_CPY_WRT(&attributeField, &attribute); + } + if (Z_TYPE_P(columns) == IS_ARRAY) { + if (!(zephir_fast_in_array(&attributeField, columns))) { + continue; + } + } + ZEPHIR_OBS_NVAR(&value); + if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { + zephir_array_update_zval(&data, &attributeField, &value, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_zval(&data, &attributeField, &__$null, PH_COPY | PH_SEPARATE); } - ZEPHIR_INIT_NVAR(&element); - ZVAL_COPY(&element, _3); - zephir_cast_to_string(&_7$$4, &element); - ZEPHIR_CPY_WRT(&element, &_7$$4); - zephir_array_fetch_string(&_8$$4, "es, SL("prefix"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 673); - zephir_array_fetch_string(&_9$$4, "es, SL("suffix"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 673); - ZEPHIR_INIT_NVAR(&_10$$4); - ZEPHIR_CONCAT_VVV(&_10$$4, &_8$$4, &element, &_9$$4); - zephir_array_update_zval(&elements, &key, &_10$$4, PH_COPY | PH_SEPARATE); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, value, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_4, value, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_2, &_0, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_4)) { + if (!zend_is_true(&_2)) { break; } - ZEPHIR_CALL_METHOD(&key, value, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&element, value, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&attribute, &_0, "current", NULL, 0); zephir_check_call_status(); - zephir_cast_to_string(&_11$$5, &element); - ZEPHIR_CPY_WRT(&element, &_11$$5); - zephir_array_fetch_string(&_12$$5, "es, SL("prefix"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 673); - zephir_array_fetch_string(&_13$$5, "es, SL("suffix"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 673); - ZEPHIR_INIT_NVAR(&_14$$5); - ZEPHIR_CONCAT_VVV(&_14$$5, &_12$$5, &element, &_13$$5); - zephir_array_update_zval(&elements, &key, &_14$$5, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, value, "next", NULL, 0); + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + _9$$14 = !(zephir_array_isset(&columnMap, &attribute)); + if (_9$$14) { + _9$$14 = ZEPHIR_GLOBAL(orm).case_insensitive_column_map; + } + if (_9$$14) { + ZEPHIR_CALL_SELF(&_10$$15, "caseinsensitivecolumnmap", &_5, 431, &columnMap, &attribute); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&attribute, &_10$$15); + } + ZEPHIR_OBS_NVAR(&attributeField); + if (!(zephir_array_isset_fetch(&attributeField, &columnMap, &attribute, 0))) { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_11$$17); + object_init_ex(&_11$$17, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_12$$17); + ZEPHIR_CONCAT_SVS(&_12$$17, "Column '", &attribute, "' doesn't make part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_11$$17, "__construct", &_8, 8, &_12$$17); + zephir_check_call_status(); + zephir_throw_exception_debug(&_11$$17, "phalcon/Mvc/Model.zep", 3126); + ZEPHIR_MM_RESTORE(); + return; + } + continue; + } + } else { + ZEPHIR_CPY_WRT(&attributeField, &attribute); + } + if (Z_TYPE_P(columns) == IS_ARRAY) { + if (!(zephir_fast_in_array(&attributeField, columns))) { + continue; + } + } + ZEPHIR_OBS_NVAR(&value); + if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { + zephir_array_update_zval(&data, &attributeField, &value, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_zval(&data, &attributeField, &__$null, PH_COPY | PH_SEPARATE); + } + ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&element); - ZEPHIR_INIT_NVAR(&key); - zephir_fast_join_str(return_value, SL(", "), &elements); - RETURN_MM(); + ZEPHIR_INIT_NVAR(&attribute); + RETURN_CTOR(&data); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, rollBack) +static PHP_METHOD(Phalcon_Mvc_Model, update) { - zval result, _0, _1, _2, _3; + zval _3$$4; + zval metaData, _0, _1$$3, _2$$3, _4$$4, _5$$4, _6$$4, _7$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&result); + ZVAL_UNDEF(&metaData); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_3$$4); ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "rollBack"); - ZEPHIR_CALL_METHOD(NULL, &_0, "start", NULL, 0, &_1); - zephir_check_call_status(); - zephir_read_property(&_2, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&result, &_2, "rollback", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_3, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_3, "finish", NULL, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("dirtyState"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_0)) { + ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_2$$3, this_ptr, "getreadconnection", NULL, 443); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1$$3, this_ptr, "exists", NULL, 0, &metaData, &_2$$3); + zephir_check_call_status(); + if (!(zephir_is_true(&_1$$3))) { + ZEPHIR_INIT_VAR(&_3$$4); + zephir_create_array(&_3$$4, 1, 0); + ZEPHIR_INIT_VAR(&_4$$4); + object_init_ex(&_4$$4, phalcon_messages_message_ce); + ZEPHIR_INIT_VAR(&_5$$4); + ZVAL_STRING(&_5$$4, "Record cannot be updated because it does not exist"); + ZVAL_NULL(&_6$$4); + ZEPHIR_INIT_VAR(&_7$$4); + ZVAL_STRING(&_7$$4, "InvalidUpdateAttempt"); + ZEPHIR_CALL_METHOD(NULL, &_4$$4, "__construct", NULL, 6, &_5$$4, &_6$$4, &_7$$4); + zephir_check_call_status(); + zephir_array_fast_append(&_3$$4, &_4$$4); + zephir_update_property_zval(this_ptr, ZEND_STRL("errorMessages"), &_3$$4); + RETURN_MM_BOOL(0); + } + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "save", NULL, 0); zephir_check_call_status(); - RETURN_CCTOR(&result); + RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, setAttribute) +static PHP_METHOD(Phalcon_Mvc_Model, writeAttribute) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *attribute_param = NULL, *value, value_sub, _0, _1; - zend_long attribute, ZEPHIR_LAST_CALL_STATUS; + zval *attribute_param = NULL, *value, value_sub; + zval attribute; zval *this_ptr = getThis(); + ZVAL_UNDEF(&attribute); ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_LONG(attribute) + Z_PARAM_STR(attribute) Z_PARAM_ZVAL(value) ZEND_PARSE_PARAMETERS_END(); #endif @@ -49185,2920 +46872,4977 @@ static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, setAttri ZEPHIR_MM_GROW(); zephir_fetch_params(1, 2, 0, &attribute_param, &value); - attribute = zephir_get_intval(attribute_param); - - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_1, attribute); - ZEPHIR_RETURN_CALL_METHOD(&_0, "setattribute", NULL, 0, &_1, value); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, setProfiler) -{ - zval *profiler, profiler_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&profiler_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(profiler, phalcon_datamapper_pdo_profiler_profilerinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &profiler); + if (UNEXPECTED(Z_TYPE_P(attribute_param) != IS_STRING && Z_TYPE_P(attribute_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'attribute' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(attribute_param) == IS_STRING)) { + zephir_get_strval(&attribute, attribute_param); + } else { + ZEPHIR_INIT_VAR(&attribute); + } - zephir_update_property_zval(this_ptr, ZEND_STRL("profiler"), profiler); + zephir_update_property_zval_zval(this_ptr, &attribute, value); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, performBind) +static PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysRestrict) { - zend_bool _1$$4; - zval _8, _5$$4; + zend_string *_9$$7, *_30$$26; + zend_ulong _8$$7, _29$$26; + zend_bool error = 0, validateWithNulls = 0, _15$$3, _36$$22; + zval conditions, _17$$3, _38$$22; + zval manager, belongsTo, foreignKey, relation, position, bindParams, extraConditions, message, fields, referencedFields, field, referencedModel, value, allowNulls, _0, *_1, _2, _3$$5, _4$$3, _16$$3, _18$$3, *_6$$7, _7$$7, _10$$8, _11$$8, _12$$10, _13$$10, _14$$12, _19$$20, _20$$18, _21$$18, _24$$24, _25$$22, _37$$22, _39$$22, *_27$$26, _28$$26, _31$$27, _32$$27, _33$$29, _34$$29, _35$$31, _40$$39, _41$$37, _42$$37, _43$$42; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, _0$$3; - zval *statement, statement_sub, *name, name_sub, *arguments, arguments_sub, key, parameters, type, _7, _9, _2$$4, _3$$7, _4$$7, _6$$8; + zephir_fcall_cache_entry *_5 = NULL, *_22 = NULL, *_23 = NULL, *_26 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS, action = 0, numberNull = 0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement_sub); - ZVAL_UNDEF(&name_sub); - ZVAL_UNDEF(&arguments_sub); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(¶meters); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$7); - ZVAL_UNDEF(&_4$$7); - ZVAL_UNDEF(&_6$$8); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_5$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_OBJECT_OF_CLASS(statement, zephir_get_internal_ce(SL("pdostatement"))) - Z_PARAM_ZVAL(name) - Z_PARAM_ZVAL(arguments) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&belongsTo); + ZVAL_UNDEF(&foreignKey); + ZVAL_UNDEF(&relation); + ZVAL_UNDEF(&position); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&extraConditions); + ZVAL_UNDEF(&message); + ZVAL_UNDEF(&fields); + ZVAL_UNDEF(&referencedFields); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&referencedModel); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&allowNulls); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_16$$3); + ZVAL_UNDEF(&_18$$3); + ZVAL_UNDEF(&_7$$7); + ZVAL_UNDEF(&_10$$8); + ZVAL_UNDEF(&_11$$8); + ZVAL_UNDEF(&_12$$10); + ZVAL_UNDEF(&_13$$10); + ZVAL_UNDEF(&_14$$12); + ZVAL_UNDEF(&_19$$20); + ZVAL_UNDEF(&_20$$18); + ZVAL_UNDEF(&_21$$18); + ZVAL_UNDEF(&_24$$24); + ZVAL_UNDEF(&_25$$22); + ZVAL_UNDEF(&_37$$22); + ZVAL_UNDEF(&_39$$22); + ZVAL_UNDEF(&_28$$26); + ZVAL_UNDEF(&_31$$27); + ZVAL_UNDEF(&_32$$27); + ZVAL_UNDEF(&_33$$29); + ZVAL_UNDEF(&_34$$29); + ZVAL_UNDEF(&_35$$31); + ZVAL_UNDEF(&_40$$39); + ZVAL_UNDEF(&_41$$37); + ZVAL_UNDEF(&_42$$37); + ZVAL_UNDEF(&_43$$42); + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(&_17$$3); + ZVAL_UNDEF(&_38$$22); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &statement, &name, &arguments); - ZEPHIR_SEPARATE_PARAM(arguments); - - ZEPHIR_CPY_WRT(&key, name); - if (Z_TYPE_P(&key) == IS_LONG) { - _0$$3 = (zephir_get_numberval(&key) + 1); - ZEPHIR_INIT_NVAR(&key); - ZVAL_LONG(&key, _0$$3); - } - if (Z_TYPE_P(arguments) == IS_ARRAY) { - if (zephir_array_isset_long(arguments, 1)) { - ZEPHIR_OBS_VAR(&type); - zephir_array_fetch_long(&type, arguments, 1, PH_NOISY, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 746); - } else { - ZEPHIR_INIT_NVAR(&type); - ZVAL_LONG(&type, 2); - } - _1$$4 = ZEPHIR_IS_LONG_IDENTICAL(&type, 5); - if (_1$$4) { - ZEPHIR_OBS_VAR(&_2$$4); - zephir_array_fetch_long(&_2$$4, arguments, 0, PH_NOISY, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 751); - _1$$4 = ((Z_TYPE_P(&_2$$4) == IS_TRUE || Z_TYPE_P(&_2$$4) == IS_FALSE) == 1); - } - if (_1$$4) { - ZEPHIR_INIT_VAR(&_3$$7); - zephir_array_fetch_long(&_4$$7, arguments, 0, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 752); - if (zephir_is_true(&_4$$7)) { - ZEPHIR_INIT_NVAR(&_3$$7); - ZVAL_STRING(&_3$$7, "1"); - } else { - ZEPHIR_INIT_NVAR(&_3$$7); - ZVAL_STRING(&_3$$7, "0"); - } - zephir_array_update_long(arguments, 0, &_3$$7, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - } - ZEPHIR_INIT_VAR(&_5$$4); - zephir_create_array(&_5$$4, 1, 0); - zephir_array_fast_append(&_5$$4, &key); - ZEPHIR_INIT_VAR(¶meters); - zephir_fast_array_merge(¶meters, &_5$$4, arguments); - } else { - ZEPHIR_INIT_VAR(&_6$$8); - zephir_create_array(&_6$$8, 2, 0); - zephir_array_fast_append(&_6$$8, &key); - zephir_array_fast_append(&_6$$8, arguments); - ZEPHIR_CPY_WRT(¶meters, &_6$$8); - } - ZEPHIR_INIT_VAR(&_7); - ZEPHIR_INIT_VAR(&_8); - zephir_create_array(&_8, 2, 0); - zephir_array_fast_append(&_8, statement); - ZEPHIR_INIT_VAR(&_9); - ZVAL_STRING(&_9, "bindValue"); - zephir_array_fast_append(&_8, &_9); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_7, &_8, ¶meters); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&manager, &_0); + ZEPHIR_CALL_METHOD(&belongsTo, &manager, "getbelongsto", NULL, 0, this_ptr); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchData) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval arguments, values, _0; - zval *method_param = NULL, *arguments_param = NULL, *statement_param = NULL, *values_param = NULL, result, sth; - zval method, statement; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&sth); - ZVAL_UNDEF(&arguments); - ZVAL_UNDEF(&values); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 4) - Z_PARAM_STR(method) - Z_PARAM_ARRAY(arguments) - Z_PARAM_STR(statement) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(values) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 1, &method_param, &arguments_param, &statement_param, &values_param); - zephir_get_strval(&method, method_param); - zephir_get_arrval(&arguments, arguments_param); - zephir_get_strval(&statement, statement_param); - if (!values_param) { - ZEPHIR_INIT_VAR(&values); - array_init(&values); + error = 0; + zephir_is_iterable(&belongsTo, 0, "phalcon/Mvc/Model.zep", 3359); + if (Z_TYPE_P(&belongsTo) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&belongsTo), _1) + { + ZEPHIR_INIT_NVAR(&relation); + ZVAL_COPY(&relation, _1); + validateWithNulls = 0; + ZEPHIR_CALL_METHOD(&foreignKey, &relation, "getforeignkey", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&foreignKey)) { + continue; + } + action = 1; + if (zephir_array_isset_string(&foreignKey, SL("action"))) { + ZEPHIR_OBS_NVAR(&_3$$5); + zephir_array_fetch_string(&_3$$5, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3250); + action = zephir_get_intval(&_3$$5); + } + if (action != 1) { + continue; + } + ZEPHIR_CALL_METHOD(&_4$$3, &relation, "getreferencedmodel", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&referencedModel, &manager, "load", &_5, 0, &_4$$3); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&conditions); + array_init(&conditions); + ZEPHIR_INIT_NVAR(&bindParams); + array_init(&bindParams); + numberNull = 0; + ZEPHIR_CALL_METHOD(&fields, &relation, "getfields", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&referencedFields, &relation, "getreferencedfields", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&fields) == IS_ARRAY) { + zephir_is_iterable(&fields, 0, "phalcon/Mvc/Model.zep", 3293); + if (Z_TYPE_P(&fields) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&fields), _8$$7, _9$$7, _6$$7) + { + ZEPHIR_INIT_NVAR(&position); + if (_9$$7 != NULL) { + ZVAL_STR_COPY(&position, _9$$7); + } else { + ZVAL_LONG(&position, _8$$7); + } + ZEPHIR_INIT_NVAR(&field); + ZVAL_COPY(&field, _6$$7); + ZEPHIR_OBS_NVAR(&value); + zephir_fetch_property_zval(&value, this_ptr, &field, PH_SILENT_CC); + zephir_array_fetch(&_10$$8, &referencedFields, &position, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3285); + ZEPHIR_INIT_NVAR(&_11$$8); + ZEPHIR_CONCAT_SVSV(&_11$$8, "[", &_10$$8, "] = ?", &position); + zephir_array_append(&conditions, &_11$$8, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3285); + zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3286); + if (Z_TYPE_P(&value) == IS_NULL) { + numberNull++; + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &fields, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_7$$7, &fields, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_7$$7)) { + break; + } + ZEPHIR_CALL_METHOD(&position, &fields, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&field, &fields, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&value); + zephir_fetch_property_zval(&value, this_ptr, &field, PH_SILENT_CC); + zephir_array_fetch(&_12$$10, &referencedFields, &position, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3285); + ZEPHIR_INIT_NVAR(&_13$$10); + ZEPHIR_CONCAT_SVSV(&_13$$10, "[", &_12$$10, "] = ?", &position); + zephir_array_append(&conditions, &_13$$10, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3285); + zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3286); + if (Z_TYPE_P(&value) == IS_NULL) { + numberNull++; + } + ZEPHIR_CALL_METHOD(NULL, &fields, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&field); + ZEPHIR_INIT_NVAR(&position); + validateWithNulls = numberNull == zephir_fast_count_int(&fields); + } else { + ZEPHIR_OBS_NVAR(&value); + zephir_fetch_property_zval(&value, this_ptr, &fields, PH_SILENT_CC); + ZEPHIR_INIT_NVAR(&_14$$12); + ZEPHIR_CONCAT_SVS(&_14$$12, "[", &referencedFields, "] = ?0"); + zephir_array_append(&conditions, &_14$$12, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3297); + zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3298); + if (Z_TYPE_P(&value) == IS_NULL) { + validateWithNulls = 1; + } + } + ZEPHIR_OBS_NVAR(&extraConditions); + if (zephir_array_isset_string_fetch(&extraConditions, &foreignKey, SL("conditions"), 0)) { + zephir_array_append(&conditions, &extraConditions, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3309); + } + if (validateWithNulls) { + ZEPHIR_OBS_NVAR(&allowNulls); + if (zephir_array_isset_string_fetch(&allowNulls, &foreignKey, SL("allowNulls"), 0)) { + validateWithNulls = zephir_get_boolval(&allowNulls); + } else { + validateWithNulls = 0; + } + } + _15$$3 = !validateWithNulls; + if (_15$$3) { + ZEPHIR_INIT_NVAR(&_17$$3); + zephir_create_array(&_17$$3, 2, 0); + ZEPHIR_INIT_NVAR(&_18$$3); + zephir_fast_join_str(&_18$$3, SL(" AND "), &conditions); + zephir_array_fast_append(&_17$$3, &_18$$3); + zephir_array_update_string(&_17$$3, SL("bind"), &bindParams, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_16$$3, &referencedModel, "count", NULL, 0, &_17$$3); + zephir_check_call_status(); + _15$$3 = !zephir_is_true(&_16$$3); + } + if (_15$$3) { + ZEPHIR_OBS_NVAR(&message); + if (!(zephir_array_isset_string_fetch(&message, &foreignKey, SL("message"), 0))) { + ZEPHIR_INIT_NVAR(&message); + if (Z_TYPE_P(&fields) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&_19$$20); + zephir_fast_join_str(&_19$$20, SL(", "), &fields); + ZEPHIR_CONCAT_SVS(&message, "Value of fields \"", &_19$$20, "\" does not exist on referenced table"); + } else { + ZEPHIR_CONCAT_SVS(&message, "Value of field \"", &fields, "\" does not exist on referenced table"); + } + } + ZEPHIR_INIT_NVAR(&_20$$18); + object_init_ex(&_20$$18, phalcon_messages_message_ce); + ZEPHIR_INIT_NVAR(&_21$$18); + ZVAL_STRING(&_21$$18, "ConstraintViolation"); + ZEPHIR_CALL_METHOD(NULL, &_20$$18, "__construct", &_22, 6, &message, &fields, &_21$$18); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_23, 0, &_20$$18); + zephir_check_call_status(); + error = 1; + break; + } + } ZEND_HASH_FOREACH_END(); } else { - zephir_get_arrval(&values, values_param); + ZEPHIR_CALL_METHOD(NULL, &belongsTo, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &belongsTo, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&relation, &belongsTo, "current", NULL, 0); + zephir_check_call_status(); + validateWithNulls = 0; + ZEPHIR_CALL_METHOD(&foreignKey, &relation, "getforeignkey", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&foreignKey)) { + continue; + } + action = 1; + if (zephir_array_isset_string(&foreignKey, SL("action"))) { + ZEPHIR_OBS_NVAR(&_24$$24); + zephir_array_fetch_string(&_24$$24, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3250); + action = zephir_get_intval(&_24$$24); + } + if (action != 1) { + continue; + } + ZEPHIR_CALL_METHOD(&_25$$22, &relation, "getreferencedmodel", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&referencedModel, &manager, "load", &_26, 0, &_25$$22); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&conditions); + array_init(&conditions); + ZEPHIR_INIT_NVAR(&bindParams); + array_init(&bindParams); + numberNull = 0; + ZEPHIR_CALL_METHOD(&fields, &relation, "getfields", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&referencedFields, &relation, "getreferencedfields", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&fields) == IS_ARRAY) { + zephir_is_iterable(&fields, 0, "phalcon/Mvc/Model.zep", 3293); + if (Z_TYPE_P(&fields) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&fields), _29$$26, _30$$26, _27$$26) + { + ZEPHIR_INIT_NVAR(&position); + if (_30$$26 != NULL) { + ZVAL_STR_COPY(&position, _30$$26); + } else { + ZVAL_LONG(&position, _29$$26); + } + ZEPHIR_INIT_NVAR(&field); + ZVAL_COPY(&field, _27$$26); + ZEPHIR_OBS_NVAR(&value); + zephir_fetch_property_zval(&value, this_ptr, &field, PH_SILENT_CC); + zephir_array_fetch(&_31$$27, &referencedFields, &position, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3285); + ZEPHIR_INIT_NVAR(&_32$$27); + ZEPHIR_CONCAT_SVSV(&_32$$27, "[", &_31$$27, "] = ?", &position); + zephir_array_append(&conditions, &_32$$27, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3285); + zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3286); + if (Z_TYPE_P(&value) == IS_NULL) { + numberNull++; + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &fields, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_28$$26, &fields, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_28$$26)) { + break; + } + ZEPHIR_CALL_METHOD(&position, &fields, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&field, &fields, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&value); + zephir_fetch_property_zval(&value, this_ptr, &field, PH_SILENT_CC); + zephir_array_fetch(&_33$$29, &referencedFields, &position, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3285); + ZEPHIR_INIT_NVAR(&_34$$29); + ZEPHIR_CONCAT_SVSV(&_34$$29, "[", &_33$$29, "] = ?", &position); + zephir_array_append(&conditions, &_34$$29, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3285); + zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3286); + if (Z_TYPE_P(&value) == IS_NULL) { + numberNull++; + } + ZEPHIR_CALL_METHOD(NULL, &fields, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&field); + ZEPHIR_INIT_NVAR(&position); + validateWithNulls = numberNull == zephir_fast_count_int(&fields); + } else { + ZEPHIR_OBS_NVAR(&value); + zephir_fetch_property_zval(&value, this_ptr, &fields, PH_SILENT_CC); + ZEPHIR_INIT_NVAR(&_35$$31); + ZEPHIR_CONCAT_SVS(&_35$$31, "[", &referencedFields, "] = ?0"); + zephir_array_append(&conditions, &_35$$31, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3297); + zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3298); + if (Z_TYPE_P(&value) == IS_NULL) { + validateWithNulls = 1; + } + } + ZEPHIR_OBS_NVAR(&extraConditions); + if (zephir_array_isset_string_fetch(&extraConditions, &foreignKey, SL("conditions"), 0)) { + zephir_array_append(&conditions, &extraConditions, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3309); + } + if (validateWithNulls) { + ZEPHIR_OBS_NVAR(&allowNulls); + if (zephir_array_isset_string_fetch(&allowNulls, &foreignKey, SL("allowNulls"), 0)) { + validateWithNulls = zephir_get_boolval(&allowNulls); + } else { + validateWithNulls = 0; + } + } + _36$$22 = !validateWithNulls; + if (_36$$22) { + ZEPHIR_INIT_NVAR(&_38$$22); + zephir_create_array(&_38$$22, 2, 0); + ZEPHIR_INIT_NVAR(&_39$$22); + zephir_fast_join_str(&_39$$22, SL(" AND "), &conditions); + zephir_array_fast_append(&_38$$22, &_39$$22); + zephir_array_update_string(&_38$$22, SL("bind"), &bindParams, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_37$$22, &referencedModel, "count", NULL, 0, &_38$$22); + zephir_check_call_status(); + _36$$22 = !zephir_is_true(&_37$$22); + } + if (_36$$22) { + ZEPHIR_OBS_NVAR(&message); + if (!(zephir_array_isset_string_fetch(&message, &foreignKey, SL("message"), 0))) { + ZEPHIR_INIT_NVAR(&message); + if (Z_TYPE_P(&fields) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&_40$$39); + zephir_fast_join_str(&_40$$39, SL(", "), &fields); + ZEPHIR_CONCAT_SVS(&message, "Value of fields \"", &_40$$39, "\" does not exist on referenced table"); + } else { + ZEPHIR_CONCAT_SVS(&message, "Value of field \"", &fields, "\" does not exist on referenced table"); + } + } + ZEPHIR_INIT_NVAR(&_41$$37); + object_init_ex(&_41$$37, phalcon_messages_message_ce); + ZEPHIR_INIT_NVAR(&_42$$37); + ZVAL_STRING(&_42$$37, "ConstraintViolation"); + ZEPHIR_CALL_METHOD(NULL, &_41$$37, "__construct", &_22, 6, &message, &fields, &_42$$37); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_23, 0, &_41$$37); + zephir_check_call_status(); + error = 1; + break; + } + ZEPHIR_CALL_METHOD(NULL, &belongsTo, "next", NULL, 0); + zephir_check_call_status(); + } } - - - ZEPHIR_CALL_METHOD(&sth, this_ptr, "perform", NULL, 0, &statement, &values); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 2, 0); - zephir_array_fast_append(&_0, &sth); - zephir_array_fast_append(&_0, &method); - ZEPHIR_INIT_VAR(&result); - ZEPHIR_CALL_USER_FUNC_ARRAY(&result, &_0, &arguments); - zephir_check_call_status(); - if (Z_TYPE_P(&result) != IS_ARRAY) { - ZEPHIR_INIT_NVAR(&result); - array_init(&result); + ZEPHIR_INIT_NVAR(&relation); + if (error) { + if (ZEPHIR_GLOBAL(orm).events) { + ZEPHIR_INIT_VAR(&_43$$42); + ZVAL_STRING(&_43$$42, "onValidationFails"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_43$$42); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "canceloperation", NULL, 0); + zephir_check_call_status(); + } + RETURN_MM_BOOL(0); } - RETURN_CCTOR(&result); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\DataMapper\\Pdo\\Connection, ConnectionInterface, phalcon, datamapper_pdo_connection_connectioninterface, phalcon_datamapper_pdo_connection_connectioninterface_method_entry); - - zend_class_implements(phalcon_datamapper_pdo_connection_connectioninterface_ce, 1, phalcon_datamapper_pdo_connection_pdointerface_ce); - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, connect); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, disconnect); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, fetchAffected); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, fetchAll); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, fetchAssoc); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, fetchColumn); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, fetchGroup); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, fetchObject); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, fetchObjects); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, fetchOne); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, fetchPairs); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, fetchValue); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, getAdapter); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, getProfiler); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, isConnected); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, perform); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, setProfiler); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Connection_Decorated) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Pdo\\Connection, Decorated, phalcon, datamapper_pdo_connection_decorated, phalcon_datamapper_pdo_connection_abstractconnection_ce, phalcon_datamapper_pdo_connection_decorated_method_entry, 0); - - return SUCCESS; + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_Decorated, __construct) +static PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysReverseCascade) { + zend_bool _3$$3, _7$$9; + zval manager, relations, relation, foreignKey, related, _0, *_1, _2, _4$$5, _6$$7, _8$$11, _10$$13; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *pdo, pdo_sub, *profiler = NULL, profiler_sub, __$null; + zephir_fcall_cache_entry *_5 = NULL, *_9 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS, action = 0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pdo_sub); - ZVAL_UNDEF(&profiler_sub); - ZVAL_NULL(&__$null); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_OBJECT_OF_CLASS(pdo, php_pdo_get_dbh_ce()) - Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(profiler, phalcon_datamapper_pdo_profiler_profilerinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&relations); + ZVAL_UNDEF(&relation); + ZVAL_UNDEF(&foreignKey); + ZVAL_UNDEF(&related); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_6$$7); + ZVAL_UNDEF(&_8$$11); + ZVAL_UNDEF(&_10$$13); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &pdo, &profiler); - if (!profiler) { - profiler = &profiler_sub; - ZEPHIR_CPY_WRT(profiler, &__$null); - } else { - ZEPHIR_SEPARATE_PARAM(profiler); - } - - zephir_update_property_zval(this_ptr, ZEND_STRL("pdo"), pdo); - if (Z_TYPE_P(profiler) == IS_NULL) { - ZEPHIR_INIT_NVAR(profiler); - object_init_ex(profiler, phalcon_datamapper_pdo_profiler_profiler_ce); - ZEPHIR_CALL_METHOD(NULL, profiler, "__construct", NULL, 200); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setprofiler", NULL, 0, profiler); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&manager, &_0); + ZEPHIR_CALL_METHOD(&relations, &manager, "gethasoneandhasmany", NULL, 0, this_ptr); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_Decorated, connect) -{ - zval *this_ptr = getThis(); - - - -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_Decorated, disconnect) -{ - zval *this_ptr = getThis(); - - - - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_datamapper_pdo_exception_cannotdisconnect_ce, "Cannot disconnect a Decorated connection instance", "phalcon/DataMapper/Pdo/Connection/Decorated.zep", 66); - return; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Connection_PdoInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\DataMapper\\Pdo\\Connection, PdoInterface, phalcon, datamapper_pdo_connection_pdointerface, phalcon_datamapper_pdo_connection_pdointerface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, beginTransaction); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, commit); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, errorCode); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, errorInfo); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, exec); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, getAttribute); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, getAvailableDrivers); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, inTransaction); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, lastInsertId); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, prepare); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, query); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, quote); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, rollBack); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, setAttribute); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Exception_CannotDisconnect) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Pdo\\Exception, CannotDisconnect, phalcon, datamapper_pdo_exception_cannotdisconnect, phalcon_datamapper_pdo_exception_exception_ce, NULL, 0); - - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Exception_ConnectionNotFound) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Pdo\\Exception, ConnectionNotFound, phalcon, datamapper_pdo_exception_connectionnotfound, phalcon_datamapper_pdo_exception_exception_ce, NULL, 0); - - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Exception_Exception) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Pdo\\Exception, Exception, phalcon, datamapper_pdo_exception_exception, zend_ce_exception, NULL, 0); - - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Pdo\\Profiler, MemoryLogger, phalcon, datamapper_pdo_profiler_memorylogger, zephir_get_internal_ce(SL("psr\\log\\abstractlogger")), phalcon_datamapper_pdo_profiler_memorylogger_method_entry, 0); - - zend_declare_property_null(phalcon_datamapper_pdo_profiler_memorylogger_ce, SL("messages"), ZEND_ACC_PROTECTED); - phalcon_datamapper_pdo_profiler_memorylogger_ce->create_object = zephir_init_properties_Phalcon_DataMapper_Pdo_Profiler_MemoryLogger; - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger, getMessages) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "messages"); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger, emergency) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval context; - zval *message, message_sub, *context_param = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&message_sub); - ZVAL_UNDEF(&context); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(message) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(context) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &message, &context_param); - if (!context_param) { - ZEPHIR_INIT_VAR(&context); - array_init(&context); + zephir_is_iterable(&relations, 0, "phalcon/Mvc/Model.zep", 3435); + if (Z_TYPE_P(&relations) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relations), _1) + { + ZEPHIR_INIT_NVAR(&relation); + ZVAL_COPY(&relation, _1); + ZEPHIR_CALL_METHOD(&foreignKey, &relation, "getforeignkey", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&foreignKey)) { + continue; + } + action = 0; + _3$$3 = Z_TYPE_P(&foreignKey) == IS_ARRAY; + if (_3$$3) { + _3$$3 = zephir_array_isset_string(&foreignKey, SL("action")); + } + if (_3$$3) { + ZEPHIR_OBS_NVAR(&_4$$5); + zephir_array_fetch_string(&_4$$5, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3409); + action = zephir_get_intval(&_4$$5); + } + if (action != 2) { + continue; + } + ZEPHIR_CALL_METHOD(&related, &manager, "getrelationrecords", &_5, 0, &relation, this_ptr); + zephir_check_call_status(); + if (zephir_is_true(&related)) { + ZEPHIR_CALL_METHOD(&_6$$7, &related, "delete", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_6$$7)) { + RETURN_MM_BOOL(0); + } + } + } ZEND_HASH_FOREACH_END(); } else { - zephir_get_arrval(&context, context_param); + ZEPHIR_CALL_METHOD(NULL, &relations, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &relations, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&relation, &relations, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&foreignKey, &relation, "getforeignkey", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&foreignKey)) { + continue; + } + action = 0; + _7$$9 = Z_TYPE_P(&foreignKey) == IS_ARRAY; + if (_7$$9) { + _7$$9 = zephir_array_isset_string(&foreignKey, SL("action")); + } + if (_7$$9) { + ZEPHIR_OBS_NVAR(&_8$$11); + zephir_array_fetch_string(&_8$$11, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3409); + action = zephir_get_intval(&_8$$11); + } + if (action != 2) { + continue; + } + ZEPHIR_CALL_METHOD(&related, &manager, "getrelationrecords", &_9, 0, &relation, this_ptr); + zephir_check_call_status(); + if (zephir_is_true(&related)) { + ZEPHIR_CALL_METHOD(&_10$$13, &related, "delete", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_10$$13)) { + RETURN_MM_BOOL(0); + } + } + ZEPHIR_CALL_METHOD(NULL, &relations, "next", NULL, 0); + zephir_check_call_status(); + } } - - - ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_pdo_profiler_memorylogger_ce, getThis(), "emergency", NULL, 0, message, &context); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + ZEPHIR_INIT_NVAR(&relation); + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger, alert) +static PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysReverseRestrict) { + zval manager, relations, foreignKey, relation, relationClass, fields, message, _0, *_1, _2, _5$$3, _6$$3, _7$$3, _4$$5, _9$$7, _10$$7, _15$$9, _16$$9, _17$$9, _14$$11, _19$$13, _20$$13, _21$$16; + zend_bool error = 0, _3$$3, _13$$9; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval context; - zval *message, message_sub, *context_param = NULL; + zephir_fcall_cache_entry *_8 = NULL, *_11 = NULL, *_12 = NULL, *_18 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS, action = 0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&message_sub); - ZVAL_UNDEF(&context); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(message) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(context) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&relations); + ZVAL_UNDEF(&foreignKey); + ZVAL_UNDEF(&relation); + ZVAL_UNDEF(&relationClass); + ZVAL_UNDEF(&fields); + ZVAL_UNDEF(&message); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_9$$7); + ZVAL_UNDEF(&_10$$7); + ZVAL_UNDEF(&_15$$9); + ZVAL_UNDEF(&_16$$9); + ZVAL_UNDEF(&_17$$9); + ZVAL_UNDEF(&_14$$11); + ZVAL_UNDEF(&_19$$13); + ZVAL_UNDEF(&_20$$13); + ZVAL_UNDEF(&_21$$16); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &message, &context_param); - if (!context_param) { - ZEPHIR_INIT_VAR(&context); - array_init(&context); - } else { - zephir_get_arrval(&context, context_param); - } - - ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_pdo_profiler_memorylogger_ce, getThis(), "alert", NULL, 0, message, &context); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&manager, &_0); + ZEPHIR_CALL_METHOD(&relations, &manager, "gethasoneandhasmany", NULL, 0, this_ptr); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger, critical) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval context; - zval *message, message_sub, *context_param = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&message_sub); - ZVAL_UNDEF(&context); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(message) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(context) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &message, &context_param); - if (!context_param) { - ZEPHIR_INIT_VAR(&context); - array_init(&context); + error = 0; + zephir_is_iterable(&relations, 0, "phalcon/Mvc/Model.zep", 3521); + if (Z_TYPE_P(&relations) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relations), _1) + { + ZEPHIR_INIT_NVAR(&relation); + ZVAL_COPY(&relation, _1); + ZEPHIR_CALL_METHOD(&foreignKey, &relation, "getforeignkey", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&foreignKey)) { + continue; + } + action = 1; + _3$$3 = Z_TYPE_P(&foreignKey) == IS_ARRAY; + if (_3$$3) { + _3$$3 = zephir_array_isset_string(&foreignKey, SL("action")); + } + if (_3$$3) { + ZEPHIR_OBS_NVAR(&_4$$5); + zephir_array_fetch_string(&_4$$5, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3480); + action = zephir_get_intval(&_4$$5); + } + if (action != 1) { + continue; + } + ZEPHIR_CALL_METHOD(&relationClass, &relation, "getreferencedmodel", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&fields, &relation, "getfields", NULL, 0); + zephir_check_call_status(); + ZVAL_NULL(&_6$$3); + ZEPHIR_INIT_NVAR(&_7$$3); + ZVAL_STRING(&_7$$3, "count"); + ZEPHIR_CALL_METHOD(&_5$$3, &manager, "getrelationrecords", &_8, 0, &relation, this_ptr, &_6$$3, &_7$$3); + zephir_check_call_status(); + if (zephir_is_true(&_5$$3)) { + ZEPHIR_OBS_NVAR(&message); + if (!(zephir_array_isset_string_fetch(&message, &foreignKey, SL("message"), 0))) { + ZEPHIR_INIT_NVAR(&message); + ZEPHIR_CONCAT_SV(&message, "Record is referenced by model ", &relationClass); + } + ZEPHIR_INIT_NVAR(&_9$$7); + object_init_ex(&_9$$7, phalcon_messages_message_ce); + ZEPHIR_INIT_NVAR(&_10$$7); + ZVAL_STRING(&_10$$7, "ConstraintViolation"); + ZEPHIR_CALL_METHOD(NULL, &_9$$7, "__construct", &_11, 6, &message, &fields, &_10$$7); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_12, 0, &_9$$7); + zephir_check_call_status(); + error = 1; + break; + } + } ZEND_HASH_FOREACH_END(); } else { - zephir_get_arrval(&context, context_param); + ZEPHIR_CALL_METHOD(NULL, &relations, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &relations, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&relation, &relations, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&foreignKey, &relation, "getforeignkey", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&foreignKey)) { + continue; + } + action = 1; + _13$$9 = Z_TYPE_P(&foreignKey) == IS_ARRAY; + if (_13$$9) { + _13$$9 = zephir_array_isset_string(&foreignKey, SL("action")); + } + if (_13$$9) { + ZEPHIR_OBS_NVAR(&_14$$11); + zephir_array_fetch_string(&_14$$11, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3480); + action = zephir_get_intval(&_14$$11); + } + if (action != 1) { + continue; + } + ZEPHIR_CALL_METHOD(&relationClass, &relation, "getreferencedmodel", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&fields, &relation, "getfields", NULL, 0); + zephir_check_call_status(); + ZVAL_NULL(&_16$$9); + ZEPHIR_INIT_NVAR(&_17$$9); + ZVAL_STRING(&_17$$9, "count"); + ZEPHIR_CALL_METHOD(&_15$$9, &manager, "getrelationrecords", &_18, 0, &relation, this_ptr, &_16$$9, &_17$$9); + zephir_check_call_status(); + if (zephir_is_true(&_15$$9)) { + ZEPHIR_OBS_NVAR(&message); + if (!(zephir_array_isset_string_fetch(&message, &foreignKey, SL("message"), 0))) { + ZEPHIR_INIT_NVAR(&message); + ZEPHIR_CONCAT_SV(&message, "Record is referenced by model ", &relationClass); + } + ZEPHIR_INIT_NVAR(&_19$$13); + object_init_ex(&_19$$13, phalcon_messages_message_ce); + ZEPHIR_INIT_NVAR(&_20$$13); + ZVAL_STRING(&_20$$13, "ConstraintViolation"); + ZEPHIR_CALL_METHOD(NULL, &_19$$13, "__construct", &_11, 6, &message, &fields, &_20$$13); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_12, 0, &_19$$13); + zephir_check_call_status(); + error = 1; + break; + } + ZEPHIR_CALL_METHOD(NULL, &relations, "next", NULL, 0); + zephir_check_call_status(); + } } - - - ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_pdo_profiler_memorylogger_ce, getThis(), "critical", NULL, 0, message, &context); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + ZEPHIR_INIT_NVAR(&relation); + if (error) { + if (ZEPHIR_GLOBAL(orm).events) { + ZEPHIR_INIT_VAR(&_21$$16); + ZVAL_STRING(&_21$$16, "onValidationFails"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_21$$16); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "canceloperation", NULL, 0); + zephir_check_call_status(); + } + RETURN_MM_BOOL(0); + } + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger, error) +static PHP_METHOD(Phalcon_Mvc_Model, doLowInsert) { + zend_string *_52$$56; + zend_ulong _51$$56; + zend_bool useExplicitIdentity = 0, _45, _6$$11, _22$$26, _39$$40, _54$$56; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_5 = NULL, *_10 = NULL, *_11 = NULL, *_17 = NULL, *_19 = NULL, *_26 = NULL, *_27 = NULL, *_33 = NULL, *_35 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval context; - zval *message, message_sub, *context_param = NULL; + zval *metaData, metaData_sub, *connection, connection_sub, *table = NULL, table_sub, *identityField, identityField_sub, __$null, attributeField, attributes, automaticAttributes, bindDataTypes, bindSkip, bindType, bindTypes, columnMap, defaultValue, defaultValues, field, fields, lastInsertedId, manager, sequenceName, schema, snapshot, source, success, unsetDefaultValues, value, values, _0, *_1, _2, _3$$7, _4$$7, _7$$12, _8$$12, _9$$12, _12$$15, _13$$15, _14$$17, _15$$17, _16$$17, _18$$17, _20$$22, _21$$22, _23$$27, _24$$27, _25$$27, _28$$30, _29$$30, _30$$32, _31$$32, _32$$32, _34$$32, _36$$35, _37$$38, _38$$38, _40$$45, _41$$45, _42$$48, _43$$48, _44$$48, _46$$49, _47$$55, _48$$55, *_49$$56, _50$$56, _53$$56; zval *this_ptr = getThis(); - ZVAL_UNDEF(&message_sub); - ZVAL_UNDEF(&context); + ZVAL_UNDEF(&metaData_sub); + ZVAL_UNDEF(&connection_sub); + ZVAL_UNDEF(&table_sub); + ZVAL_UNDEF(&identityField_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&attributeField); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&automaticAttributes); + ZVAL_UNDEF(&bindDataTypes); + ZVAL_UNDEF(&bindSkip); + ZVAL_UNDEF(&bindType); + ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&columnMap); + ZVAL_UNDEF(&defaultValue); + ZVAL_UNDEF(&defaultValues); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&fields); + ZVAL_UNDEF(&lastInsertedId); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&sequenceName); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&snapshot); + ZVAL_UNDEF(&source); + ZVAL_UNDEF(&success); + ZVAL_UNDEF(&unsetDefaultValues); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&values); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$7); + ZVAL_UNDEF(&_4$$7); + ZVAL_UNDEF(&_7$$12); + ZVAL_UNDEF(&_8$$12); + ZVAL_UNDEF(&_9$$12); + ZVAL_UNDEF(&_12$$15); + ZVAL_UNDEF(&_13$$15); + ZVAL_UNDEF(&_14$$17); + ZVAL_UNDEF(&_15$$17); + ZVAL_UNDEF(&_16$$17); + ZVAL_UNDEF(&_18$$17); + ZVAL_UNDEF(&_20$$22); + ZVAL_UNDEF(&_21$$22); + ZVAL_UNDEF(&_23$$27); + ZVAL_UNDEF(&_24$$27); + ZVAL_UNDEF(&_25$$27); + ZVAL_UNDEF(&_28$$30); + ZVAL_UNDEF(&_29$$30); + ZVAL_UNDEF(&_30$$32); + ZVAL_UNDEF(&_31$$32); + ZVAL_UNDEF(&_32$$32); + ZVAL_UNDEF(&_34$$32); + ZVAL_UNDEF(&_36$$35); + ZVAL_UNDEF(&_37$$38); + ZVAL_UNDEF(&_38$$38); + ZVAL_UNDEF(&_40$$45); + ZVAL_UNDEF(&_41$$45); + ZVAL_UNDEF(&_42$$48); + ZVAL_UNDEF(&_43$$48); + ZVAL_UNDEF(&_44$$48); + ZVAL_UNDEF(&_46$$49); + ZVAL_UNDEF(&_47$$55); + ZVAL_UNDEF(&_48$$55); + ZVAL_UNDEF(&_50$$56); + ZVAL_UNDEF(&_53$$56); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(message) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(context) + ZEND_PARSE_PARAMETERS_START(4, 4) + Z_PARAM_OBJECT_OF_CLASS(metaData, phalcon_mvc_model_metadatainterface_ce) + Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_db_adapter_adapterinterface_ce) + Z_PARAM_ZVAL(table) + Z_PARAM_ZVAL(identityField) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &message, &context_param); - if (!context_param) { - ZEPHIR_INIT_VAR(&context); - array_init(&context); - } else { - zephir_get_arrval(&context, context_param); - } + zephir_fetch_params(1, 4, 0, &metaData, &connection, &table, &identityField); + ZEPHIR_SEPARATE_PARAM(table); - ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_pdo_profiler_memorylogger_ce, getThis(), "error", NULL, 0, message, &context); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger, warning) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval context; - zval *message, message_sub, *context_param = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&message_sub); - ZVAL_UNDEF(&context); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(message) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(context) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &message, &context_param); - if (!context_param) { - ZEPHIR_INIT_VAR(&context); - array_init(&context); - } else { - zephir_get_arrval(&context, context_param); - } - - - ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_pdo_profiler_memorylogger_ce, getThis(), "warning", NULL, 0, message, &context); + ZEPHIR_INIT_VAR(&bindSkip); + ZVAL_LONG(&bindSkip, 1024); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&manager, &_0); + ZEPHIR_INIT_VAR(&fields); + array_init(&fields); + ZEPHIR_INIT_VAR(&values); + array_init(&values); + ZEPHIR_INIT_VAR(&snapshot); + array_init(&snapshot); + ZEPHIR_INIT_VAR(&bindTypes); + array_init(&bindTypes); + ZEPHIR_INIT_VAR(&unsetDefaultValues); + array_init(&unsetDefaultValues); + ZEPHIR_CALL_METHOD(&attributes, metaData, "getattributes", NULL, 0, this_ptr); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger, notice) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval context; - zval *message, message_sub, *context_param = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&message_sub); - ZVAL_UNDEF(&context); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(message) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(context) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &message, &context_param); - if (!context_param) { - ZEPHIR_INIT_VAR(&context); - array_init(&context); - } else { - zephir_get_arrval(&context, context_param); - } - - - ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_pdo_profiler_memorylogger_ce, getThis(), "notice", NULL, 0, message, &context); + ZEPHIR_CALL_METHOD(&bindDataTypes, metaData, "getbindtypes", NULL, 0, this_ptr); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger, info) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval context; - zval *message, message_sub, *context_param = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&message_sub); - ZVAL_UNDEF(&context); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(message) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(context) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &message, &context_param); - if (!context_param) { - ZEPHIR_INIT_VAR(&context); - array_init(&context); - } else { - zephir_get_arrval(&context, context_param); - } - - - ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_pdo_profiler_memorylogger_ce, getThis(), "info", NULL, 0, message, &context); + ZEPHIR_CALL_METHOD(&automaticAttributes, metaData, "getautomaticcreateattributes", NULL, 0, this_ptr); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger, debug) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval context; - zval *message, message_sub, *context_param = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&message_sub); - ZVAL_UNDEF(&context); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(message) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(context) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &message, &context_param); - if (!context_param) { - ZEPHIR_INIT_VAR(&context); - array_init(&context); - } else { - zephir_get_arrval(&context, context_param); - } - - - ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_pdo_profiler_memorylogger_ce, getThis(), "debug", NULL, 0, message, &context); + ZEPHIR_CALL_METHOD(&defaultValues, metaData, "getdefaultvalues", NULL, 0, this_ptr); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger, log) -{ - zend_string *_3; - zend_ulong _2; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval context, replace; - zval *level, level_sub, *message, message_sub, *context_param = NULL, key, value, *_0, _1, _6, _4$$3, _5$$4; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&level_sub); - ZVAL_UNDEF(&message_sub); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&context); - ZVAL_UNDEF(&replace); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_ZVAL(level) - Z_PARAM_ZVAL(message) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(context) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &level, &message, &context_param); - if (!context_param) { - ZEPHIR_INIT_VAR(&context); - array_init(&context); + if (ZEPHIR_GLOBAL(orm).column_renaming) { + ZEPHIR_CALL_METHOD(&columnMap, metaData, "getcolumnmap", NULL, 0, this_ptr); + zephir_check_call_status(); } else { - zephir_get_arrval(&context, context_param); + ZEPHIR_INIT_NVAR(&columnMap); + ZVAL_NULL(&columnMap); } - - - ZEPHIR_INIT_VAR(&replace); - array_init(&replace); - zephir_is_iterable(&context, 0, "phalcon/DataMapper/Pdo/Profiler/MemoryLogger.zep", 130); - if (Z_TYPE_P(&context) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&context), _2, _3, _0) + zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model.zep", 3643); + if (Z_TYPE_P(&attributes) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _1) { - ZEPHIR_INIT_NVAR(&key); - if (_3 != NULL) { - ZVAL_STR_COPY(&key, _3); + ZEPHIR_INIT_NVAR(&field); + ZVAL_COPY(&field, _1); + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&attributeField); + if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &field, 0)))) { + ZEPHIR_INIT_NVAR(&_3$$7); + object_init_ex(&_3$$7, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_4$$7); + ZEPHIR_CONCAT_SVS(&_4$$7, "Column '", &field, "' isn't part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_3$$7, "__construct", &_5, 8, &_4$$7); + zephir_check_call_status(); + zephir_throw_exception_debug(&_3$$7, "phalcon/Mvc/Model.zep", 3577); + ZEPHIR_MM_RESTORE(); + return; + } } else { - ZVAL_LONG(&key, _2); + ZEPHIR_CPY_WRT(&attributeField, &field); + } + if (!(zephir_array_isset(&automaticAttributes, &attributeField))) { + if (!ZEPHIR_IS_EQUAL(&field, identityField)) { + ZEPHIR_OBS_NVAR(&value); + if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { + _6$$11 = Z_TYPE_P(&value) == IS_NULL; + if (_6$$11) { + _6$$11 = zephir_array_isset(&defaultValues, &field); + } + if (_6$$11) { + zephir_array_fetch(&_7$$12, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3594); + zephir_array_update_zval(&snapshot, &attributeField, &_7$$12, PH_COPY | PH_SEPARATE); + zephir_array_fetch(&_8$$12, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3595); + zephir_array_update_zval(&unsetDefaultValues, &attributeField, &_8$$12, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_9$$12, connection, "supportsdefaultvalue", &_10, 0); + zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&_9$$12))) { + continue; + } + ZEPHIR_CALL_METHOD(&value, connection, "getdefaultvalue", &_11, 0); + zephir_check_call_status(); + } else { + zephir_array_update_zval(&snapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_NVAR(&bindType); + if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, &bindDataTypes, &field, 0)))) { + ZEPHIR_INIT_NVAR(&_12$$15); + object_init_ex(&_12$$15, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_13$$15); + ZEPHIR_CONCAT_SVS(&_13$$15, "Column '", &field, "' have not defined a bind data type"); + ZEPHIR_CALL_METHOD(NULL, &_12$$15, "__construct", &_5, 8, &_13$$15); + zephir_check_call_status(); + zephir_throw_exception_debug(&_12$$15, "phalcon/Mvc/Model.zep", 3612); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3615); + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3616); + zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3617); + } else { + if (zephir_array_isset(&defaultValues, &field)) { + zephir_array_fetch(&_14$$17, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3620); + zephir_array_update_zval(&snapshot, &attributeField, &_14$$17, PH_COPY | PH_SEPARATE); + zephir_array_fetch(&_15$$17, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3621); + zephir_array_update_zval(&unsetDefaultValues, &attributeField, &_15$$17, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_16$$17, connection, "supportsdefaultvalue", &_17, 0); + zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&_16$$17))) { + continue; + } + ZEPHIR_CALL_METHOD(&_18$$17, connection, "getdefaultvalue", &_19, 0); + zephir_check_call_status(); + zephir_array_append(&values, &_18$$17, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3627); + } else { + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3629); + zephir_array_update_zval(&snapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); + } + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3633); + zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3634); + } + } } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0); - ZEPHIR_INIT_NVAR(&_4$$3); - ZEPHIR_CONCAT_SVS(&_4$$3, "{", &key, "}"); - zephir_array_update_zval(&replace, &_4$$3, &value, PH_COPY | PH_SEPARATE); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &context, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_1, &context, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_2, &attributes, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_1)) { + if (!zend_is_true(&_2)) { break; } - ZEPHIR_CALL_METHOD(&key, &context, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &context, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&field, &attributes, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_5$$4); - ZEPHIR_CONCAT_SVS(&_5$$4, "{", &key, "}"); - zephir_array_update_zval(&replace, &_5$$4, &value, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &context, "next", NULL, 0); + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&attributeField); + if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &field, 0)))) { + ZEPHIR_INIT_NVAR(&_20$$22); + object_init_ex(&_20$$22, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_21$$22); + ZEPHIR_CONCAT_SVS(&_21$$22, "Column '", &field, "' isn't part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_20$$22, "__construct", &_5, 8, &_21$$22); + zephir_check_call_status(); + zephir_throw_exception_debug(&_20$$22, "phalcon/Mvc/Model.zep", 3577); + ZEPHIR_MM_RESTORE(); + return; + } + } else { + ZEPHIR_CPY_WRT(&attributeField, &field); + } + if (!(zephir_array_isset(&automaticAttributes, &attributeField))) { + if (!ZEPHIR_IS_EQUAL(&field, identityField)) { + ZEPHIR_OBS_NVAR(&value); + if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { + _22$$26 = Z_TYPE_P(&value) == IS_NULL; + if (_22$$26) { + _22$$26 = zephir_array_isset(&defaultValues, &field); + } + if (_22$$26) { + zephir_array_fetch(&_23$$27, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3594); + zephir_array_update_zval(&snapshot, &attributeField, &_23$$27, PH_COPY | PH_SEPARATE); + zephir_array_fetch(&_24$$27, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3595); + zephir_array_update_zval(&unsetDefaultValues, &attributeField, &_24$$27, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_25$$27, connection, "supportsdefaultvalue", &_26, 0); + zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&_25$$27))) { + continue; + } + ZEPHIR_CALL_METHOD(&value, connection, "getdefaultvalue", &_27, 0); + zephir_check_call_status(); + } else { + zephir_array_update_zval(&snapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_NVAR(&bindType); + if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, &bindDataTypes, &field, 0)))) { + ZEPHIR_INIT_NVAR(&_28$$30); + object_init_ex(&_28$$30, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_29$$30); + ZEPHIR_CONCAT_SVS(&_29$$30, "Column '", &field, "' have not defined a bind data type"); + ZEPHIR_CALL_METHOD(NULL, &_28$$30, "__construct", &_5, 8, &_29$$30); + zephir_check_call_status(); + zephir_throw_exception_debug(&_28$$30, "phalcon/Mvc/Model.zep", 3612); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3615); + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3616); + zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3617); + } else { + if (zephir_array_isset(&defaultValues, &field)) { + zephir_array_fetch(&_30$$32, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3620); + zephir_array_update_zval(&snapshot, &attributeField, &_30$$32, PH_COPY | PH_SEPARATE); + zephir_array_fetch(&_31$$32, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3621); + zephir_array_update_zval(&unsetDefaultValues, &attributeField, &_31$$32, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_32$$32, connection, "supportsdefaultvalue", &_33, 0); + zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&_32$$32))) { + continue; + } + ZEPHIR_CALL_METHOD(&_34$$32, connection, "getdefaultvalue", &_35, 0); + zephir_check_call_status(); + zephir_array_append(&values, &_34$$32, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3627); + } else { + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3629); + zephir_array_update_zval(&snapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); + } + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3633); + zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3634); + } + } + } + ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - ZEPHIR_CALL_FUNCTION(&_6, "strtr", NULL, 5, message, &replace); - zephir_check_call_status(); - zephir_update_property_array_append(this_ptr, SL("messages"), &_6); - ZEPHIR_MM_RESTORE(); -} - -zend_object *zephir_init_properties_Phalcon_DataMapper_Pdo_Profiler_MemoryLogger(zend_class_entry *class_type) -{ - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("messages"), &_1$$3); + ZEPHIR_INIT_NVAR(&field); + if (!ZEPHIR_IS_FALSE_IDENTICAL(identityField)) { + ZEPHIR_CALL_METHOD(&defaultValue, connection, "getdefaultidvalue", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_36$$35, connection, "useexplicitidvalue", NULL, 0); + zephir_check_call_status(); + useExplicitIdentity = zephir_get_boolval(&_36$$35); + if (useExplicitIdentity) { + zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3653); } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Profiler_Profiler) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\DataMapper\\Pdo\\Profiler, Profiler, phalcon, datamapper_pdo_profiler_profiler, phalcon_datamapper_pdo_profiler_profiler_method_entry, 0); - - zend_declare_property_bool(phalcon_datamapper_pdo_profiler_profiler_ce, SL("active"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_datamapper_pdo_profiler_profiler_ce, SL("context"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_datamapper_pdo_profiler_profiler_ce, SL("logFormat"), "", ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_datamapper_pdo_profiler_profiler_ce, SL("logLevel"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_datamapper_pdo_profiler_profiler_ce, SL("logger"), ZEND_ACC_PROTECTED); - phalcon_datamapper_pdo_profiler_profiler_ce->create_object = zephir_init_properties_Phalcon_DataMapper_Pdo_Profiler_Profiler; - - zend_class_implements(phalcon_datamapper_pdo_profiler_profiler_ce, 1, phalcon_datamapper_pdo_profiler_profilerinterface_ce); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_Profiler, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *logger = NULL, logger_sub, __$null, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&logger_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(logger, zephir_get_internal_ce(SL("psr\\log\\loggerinterface"))) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &logger); - if (!logger) { - logger = &logger_sub; - ZEPHIR_CPY_WRT(logger, &__$null); - } else { - ZEPHIR_SEPARATE_PARAM(logger); - } - - - if (Z_TYPE_P(logger) == IS_NULL) { - ZEPHIR_INIT_NVAR(logger); - object_init_ex(logger, phalcon_datamapper_pdo_profiler_memorylogger_ce); - if (zephir_has_constructor(logger)) { - ZEPHIR_CALL_METHOD(NULL, logger, "__construct", NULL, 0); - zephir_check_call_status(); + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&attributeField); + if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, identityField, 0)))) { + ZEPHIR_INIT_VAR(&_37$$38); + object_init_ex(&_37$$38, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_38$$38); + ZEPHIR_CONCAT_SVS(&_38$$38, "Identity column '", identityField, "' isn't part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_37$$38, "__construct", &_5, 8, &_38$$38); + zephir_check_call_status(); + zephir_throw_exception_debug(&_37$$38, "phalcon/Mvc/Model.zep", 3663); + ZEPHIR_MM_RESTORE(); + return; + } + } else { + ZEPHIR_CPY_WRT(&attributeField, identityField); + } + ZEPHIR_OBS_NVAR(&value); + if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { + _39$$40 = Z_TYPE_P(&value) == IS_NULL; + if (!(_39$$40)) { + _39$$40 = ZEPHIR_IS_STRING_IDENTICAL(&value, ""); + } + if (_39$$40) { + if (useExplicitIdentity) { + zephir_array_append(&values, &defaultValue, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3675); + zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3675); + } + } else { + if (!(useExplicitIdentity)) { + zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3683); + } + ZEPHIR_OBS_NVAR(&bindType); + if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, &bindDataTypes, identityField, 0)))) { + ZEPHIR_INIT_VAR(&_40$$45); + object_init_ex(&_40$$45, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_41$$45); + ZEPHIR_CONCAT_SVS(&_41$$45, "Identity column '", identityField, "' isn\'t part of the table columns"); + ZEPHIR_CALL_METHOD(NULL, &_40$$45, "__construct", &_5, 8, &_41$$45); + zephir_check_call_status(); + zephir_throw_exception_debug(&_40$$45, "phalcon/Mvc/Model.zep", 3692); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3695); + zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3696); + } + } else { + if (useExplicitIdentity) { + zephir_array_append(&values, &defaultValue, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3700); + zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3701); + } } - } - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "{method} ({duration}s): {statement} {backtrace}"); - zephir_update_property_zval(this_ptr, ZEND_STRL("logFormat"), &_0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "debug"); - zephir_update_property_zval(this_ptr, ZEND_STRL("logLevel"), &_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("logger"), logger); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_Profiler, finish) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_9 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval values; - zval *statement_param = NULL, *values_param = NULL, __$true, ex, finish, _0, _1$$3, _2$$3, _3$$3, _4$$3, _5$$3, _6$$3, _7$$3, _8$$3, _10$$3, _11$$3, _12$$3, _13$$3, _14$$3, _15$$3; - zval statement; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&statement); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&ex); - ZVAL_UNDEF(&finish); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_8$$3); - ZVAL_UNDEF(&_10$$3); - ZVAL_UNDEF(&_11$$3); - ZVAL_UNDEF(&_12$$3); - ZVAL_UNDEF(&_13$$3); - ZVAL_UNDEF(&_14$$3); - ZVAL_UNDEF(&_15$$3); - ZVAL_UNDEF(&values); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(statement) - Z_PARAM_ARRAY(values) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &statement_param, &values_param); - if (!statement_param) { - ZEPHIR_INIT_VAR(&statement); - } else { - zephir_get_strval(&statement, statement_param); + if (Z_TYPE_P(table) == IS_ARRAY) { + zephir_array_fetch_long(&_42$$48, table, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3710); + zephir_array_fetch_long(&_43$$48, table, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3710); + ZEPHIR_INIT_VAR(&_44$$48); + ZEPHIR_CONCAT_VSV(&_44$$48, &_42$$48, ".", &_43$$48); + ZEPHIR_CPY_WRT(table, &_44$$48); } - if (!values_param) { - ZEPHIR_INIT_VAR(&values); - array_init(&values); - } else { - zephir_get_arrval(&values, values_param); + ZEPHIR_CALL_METHOD(&success, connection, "insert", NULL, 0, table, &values, &fields, &bindTypes); + zephir_check_call_status(); + _45 = zephir_is_true(&success); + if (_45) { + _45 = !ZEPHIR_IS_FALSE_IDENTICAL(identityField); } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("active"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(zephir_is_true(&_0))) { - ZEPHIR_INIT_VAR(&ex); - object_init_ex(&ex, phalcon_datamapper_pdo_exception_exception_ce); - ZEPHIR_CALL_METHOD(NULL, &ex, "__construct", NULL, 8); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&finish, "hrtime", NULL, 202, &__$true); + if (_45) { + ZEPHIR_INIT_VAR(&sequenceName); + ZVAL_NULL(&sequenceName); + ZEPHIR_CALL_METHOD(&_46$$49, connection, "supportsequences", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1$$3, &ex, "gettraceasstring", NULL, 203); + if (zephir_is_true(&_46$$49)) { + if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("getsequencename")) == SUCCESS)) { + ZEPHIR_CALL_METHOD(&sequenceName, this_ptr, "getsequencename", NULL, 0); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(&source, this_ptr, "getsource", NULL, 436); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&schema, this_ptr, "getschema", NULL, 435); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&sequenceName); + if (ZEPHIR_IS_EMPTY(&schema)) { + ZEPHIR_CONCAT_VSVS(&sequenceName, &source, "_", identityField, "_seq"); + } else { + ZEPHIR_CONCAT_VSVSVS(&sequenceName, &schema, ".", &source, "_", identityField, "_seq"); + } + } + } + ZEPHIR_CALL_METHOD(&lastInsertedId, connection, "lastinsertid", NULL, 0, &sequenceName); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "backtrace"); - zephir_update_property_array(this_ptr, SL("context"), &_2$$3, &_1$$3); - zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("context"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_4$$3, &_3$$3, SL("start"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/Profiler/Profiler.zep", 91); - ZEPHIR_INIT_VAR(&_5$$3); - zephir_sub_function(&_5$$3, &finish, &_4$$3); - ZEPHIR_INIT_VAR(&_6$$3); - ZVAL_STRING(&_6$$3, "duration"); - zephir_update_property_array(this_ptr, SL("context"), &_6$$3, &_5$$3); - ZEPHIR_INIT_VAR(&_7$$3); - ZVAL_STRING(&_7$$3, "finish"); - zephir_update_property_array(this_ptr, SL("context"), &_7$$3, &finish); - ZEPHIR_INIT_VAR(&_8$$3); - ZVAL_STRING(&_8$$3, "statement"); - zephir_update_property_array(this_ptr, SL("context"), &_8$$3, &statement); - ZEPHIR_INIT_NVAR(&_5$$3); - if (ZEPHIR_IS_EMPTY(&values)) { - ZEPHIR_INIT_NVAR(&_5$$3); - ZVAL_STRING(&_5$$3, ""); + if (UNEXPECTED(ZEPHIR_GLOBAL(orm).cast_last_insert_id_to_int)) { + ZVAL_LONG(&_47$$55, 10); + ZEPHIR_CALL_FUNCTION(&_48$$55, "intval", NULL, 51, &lastInsertedId, &_47$$55); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&lastInsertedId, &_48$$55); + } + zephir_update_property_zval_zval(this_ptr, &attributeField, &lastInsertedId); + zephir_array_update_zval(&snapshot, &attributeField, &lastInsertedId, PH_COPY | PH_SEPARATE); + zephir_update_property_zval(this_ptr, ZEND_STRL("uniqueParams"), &__$null); + } + if (zephir_is_true(&success)) { + zephir_is_iterable(&unsetDefaultValues, 0, "phalcon/Mvc/Model.zep", 3771); + if (Z_TYPE_P(&unsetDefaultValues) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&unsetDefaultValues), _51$$56, _52$$56, _49$$56) + { + ZEPHIR_INIT_NVAR(&attributeField); + if (_52$$56 != NULL) { + ZVAL_STR_COPY(&attributeField, _52$$56); + } else { + ZVAL_LONG(&attributeField, _51$$56); + } + ZEPHIR_INIT_NVAR(&defaultValue); + ZVAL_COPY(&defaultValue, _49$$56); + zephir_update_property_zval_zval(this_ptr, &attributeField, &defaultValue); + } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_CE_STATIC(&_5$$3, phalcon_helper_json_ce, "encode", &_9, 14, &values); + ZEPHIR_CALL_METHOD(NULL, &unsetDefaultValues, "rewind", NULL, 0); zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_50$$56, &unsetDefaultValues, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_50$$56)) { + break; + } + ZEPHIR_CALL_METHOD(&attributeField, &unsetDefaultValues, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&defaultValue, &unsetDefaultValues, "current", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval_zval(this_ptr, &attributeField, &defaultValue); + ZEPHIR_CALL_METHOD(NULL, &unsetDefaultValues, "next", NULL, 0); + zephir_check_call_status(); + } } - ZEPHIR_INIT_VAR(&_10$$3); - ZVAL_STRING(&_10$$3, "values"); - zephir_update_property_array(this_ptr, SL("context"), &_10$$3, &_5$$3); - zephir_read_property(&_11$$3, this_ptr, ZEND_STRL("logger"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_12$$3, this_ptr, ZEND_STRL("logLevel"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_13$$3, this_ptr, ZEND_STRL("logFormat"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_14$$3, this_ptr, ZEND_STRL("context"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_11$$3, "log", NULL, 0, &_12$$3, &_13$$3, &_14$$3); + ZEPHIR_INIT_NVAR(&defaultValue); + ZEPHIR_INIT_NVAR(&attributeField); + ZEPHIR_CALL_METHOD(&_53$$56, &manager, "iskeepingsnapshots", NULL, 0, this_ptr); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_15$$3); - array_init(&_15$$3); - zephir_update_property_zval(this_ptr, ZEND_STRL("context"), &_15$$3); - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_Profiler, getLogFormat) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "logFormat"); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_Profiler, getLogger) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "logger"); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_Profiler, getLogLevel) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "logLevel"); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_Profiler, isActive) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "active"); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_Profiler, setActive) -{ - zval *active_param = NULL, __$true, __$false; - zend_bool active; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(active) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &active_param); - active = zephir_get_boolval(active_param); - - - if (active) { - zephir_update_property_zval(this_ptr, ZEND_STRL("active"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("active"), &__$false); + _54$$56 = zephir_is_true(&_53$$56); + if (_54$$56) { + _54$$56 = ZEPHIR_GLOBAL(orm).update_snapshot_on_save; + } + if (_54$$56) { + zephir_update_property_zval(this_ptr, ZEND_STRL("snapshot"), &snapshot); + } } - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_Profiler, setLogFormat) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *logFormat_param = NULL; - zval logFormat; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&logFormat); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(logFormat) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &logFormat_param); - zephir_get_strval(&logFormat, logFormat_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("logFormat"), &logFormat); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_Profiler, setLogLevel) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *logLevel_param = NULL; - zval logLevel; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&logLevel); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(logLevel) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &logLevel_param); - zephir_get_strval(&logLevel, logLevel_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("logLevel"), &logLevel); - RETURN_THIS(); + RETURN_CCTOR(&success); } -static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_Profiler, start) +static PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) { - zval _1$$3; + zval _14$$26, _15$$26, _24$$49, _25$$49; + zval _35; + zend_bool changed = 0, useDynamicUpdate = 0, _36, _37; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_6 = NULL, *_12 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *method_param = NULL, __$true, _0, _2$$3; - zval method; + zval *metaData, metaData_sub, *connection, connection_sub, *table = NULL, table_sub, __$null, automaticAttributes, attributeField, bindSkip, bindDataTypes, bindType, bindTypes, columnMap, dataType, dataTypes, field, fields, manager, nonPrimary, newSnapshot, success, primaryKeys, snapshot, snapshotValue, uniqueKey, uniqueParams, uniqueTypes, value, values, _0, _1, *_2, _3, _4$$10, _5$$10, _7$$13, _8$$13, _9$$23, _10$$23, _11$$25, _13$$25, _16$$33, _17$$33, _18$$36, _19$$36, _20$$46, _21$$46, _22$$48, _23$$48, *_26$$55, _27$$55, _28$$59, _29$$59, _30$$65, _31$$65, _32$$69, _33$$69, _34$$69, _38$$71, _39$$72; zval *this_ptr = getThis(); - ZVAL_UNDEF(&method); - ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&metaData_sub); + ZVAL_UNDEF(&connection_sub); + ZVAL_UNDEF(&table_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&automaticAttributes); + ZVAL_UNDEF(&attributeField); + ZVAL_UNDEF(&bindSkip); + ZVAL_UNDEF(&bindDataTypes); + ZVAL_UNDEF(&bindType); + ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&columnMap); + ZVAL_UNDEF(&dataType); + ZVAL_UNDEF(&dataTypes); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&fields); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&nonPrimary); + ZVAL_UNDEF(&newSnapshot); + ZVAL_UNDEF(&success); + ZVAL_UNDEF(&primaryKeys); + ZVAL_UNDEF(&snapshot); + ZVAL_UNDEF(&snapshotValue); + ZVAL_UNDEF(&uniqueKey); + ZVAL_UNDEF(&uniqueParams); + ZVAL_UNDEF(&uniqueTypes); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&values); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4$$10); + ZVAL_UNDEF(&_5$$10); + ZVAL_UNDEF(&_7$$13); + ZVAL_UNDEF(&_8$$13); + ZVAL_UNDEF(&_9$$23); + ZVAL_UNDEF(&_10$$23); + ZVAL_UNDEF(&_11$$25); + ZVAL_UNDEF(&_13$$25); + ZVAL_UNDEF(&_16$$33); + ZVAL_UNDEF(&_17$$33); + ZVAL_UNDEF(&_18$$36); + ZVAL_UNDEF(&_19$$36); + ZVAL_UNDEF(&_20$$46); + ZVAL_UNDEF(&_21$$46); + ZVAL_UNDEF(&_22$$48); + ZVAL_UNDEF(&_23$$48); + ZVAL_UNDEF(&_27$$55); + ZVAL_UNDEF(&_28$$59); + ZVAL_UNDEF(&_29$$59); + ZVAL_UNDEF(&_30$$65); + ZVAL_UNDEF(&_31$$65); + ZVAL_UNDEF(&_32$$69); + ZVAL_UNDEF(&_33$$69); + ZVAL_UNDEF(&_34$$69); + ZVAL_UNDEF(&_38$$71); + ZVAL_UNDEF(&_39$$72); + ZVAL_UNDEF(&_35); + ZVAL_UNDEF(&_14$$26); + ZVAL_UNDEF(&_15$$26); + ZVAL_UNDEF(&_24$$49); + ZVAL_UNDEF(&_25$$49); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(method) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_OBJECT_OF_CLASS(metaData, phalcon_mvc_model_metadatainterface_ce) + Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_db_adapter_adapterinterface_ce) + Z_PARAM_ZVAL(table) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &method_param); - zephir_get_strval(&method, method_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("active"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(zephir_is_true(&_0))) { - ZEPHIR_INIT_VAR(&_1$$3); - zephir_create_array(&_1$$3, 2, 0); - zephir_array_update_string(&_1$$3, SL("method"), &method, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_FUNCTION(&_2$$3, "hrtime", NULL, 202, &__$true); - zephir_check_call_status(); - zephir_array_update_string(&_1$$3, SL("start"), &_2$$3, PH_COPY | PH_SEPARATE); - zephir_update_property_zval(this_ptr, ZEND_STRL("context"), &_1$$3); - } - ZEPHIR_MM_RESTORE(); -} + zephir_fetch_params(1, 3, 0, &metaData, &connection, &table); + ZEPHIR_SEPARATE_PARAM(table); -zend_object *zephir_init_properties_Phalcon_DataMapper_Pdo_Profiler_Profiler(zend_class_entry *class_type) -{ - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("context"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("context"), &_1$$3); + ZEPHIR_INIT_VAR(&bindSkip); + ZVAL_LONG(&bindSkip, 1024); + ZEPHIR_INIT_VAR(&fields); + array_init(&fields); + ZEPHIR_INIT_VAR(&values); + array_init(&values); + ZEPHIR_INIT_VAR(&bindTypes); + array_init(&bindTypes); + ZEPHIR_INIT_VAR(&newSnapshot); + array_init(&newSnapshot); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&manager, &_0); + ZEPHIR_CALL_METHOD(&_1, &manager, "isusingdynamicupdate", NULL, 0, this_ptr); + zephir_check_call_status(); + useDynamicUpdate = zephir_get_boolval(&_1); + zephir_read_property(&_0, this_ptr, ZEND_STRL("snapshot"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&snapshot, &_0); + if (useDynamicUpdate) { + if (Z_TYPE_P(&snapshot) != IS_ARRAY) { + useDynamicUpdate = 0; } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Profiler_ProfilerInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\DataMapper\\Pdo\\Profiler, ProfilerInterface, phalcon, datamapper_pdo_profiler_profilerinterface, phalcon_datamapper_pdo_profiler_profilerinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Profiler_ProfilerInterface, finish); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Profiler_ProfilerInterface, getLogger); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Profiler_ProfilerInterface, getLogFormat); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Profiler_ProfilerInterface, getLogLevel); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Profiler_ProfilerInterface, isActive); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Profiler_ProfilerInterface, setActive); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Profiler_ProfilerInterface, setLogFormat); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Profiler_ProfilerInterface, setLogLevel); -ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Profiler_ProfilerInterface, start); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Query_AbstractConditions) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Query, AbstractConditions, phalcon, datamapper_query_abstractconditions, phalcon_datamapper_query_abstractquery_ce, phalcon_datamapper_query_abstractconditions_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, limit) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *limit_param = NULL, _0, _1; - zend_long limit; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(limit) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &limit_param); - limit = zephir_get_intval(limit_param); + ZEPHIR_CALL_METHOD(&dataTypes, metaData, "getdatatypes", NULL, 0, this_ptr); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&bindDataTypes, metaData, "getbindtypes", NULL, 0, this_ptr); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&nonPrimary, metaData, "getnonprimarykeyattributes", NULL, 0, this_ptr); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&automaticAttributes, metaData, "getautomaticupdateattributes", NULL, 0, this_ptr); + zephir_check_call_status(); + if (ZEPHIR_GLOBAL(orm).column_renaming) { + ZEPHIR_CALL_METHOD(&columnMap, metaData, "getcolumnmap", NULL, 0, this_ptr); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&columnMap); + ZVAL_NULL(&columnMap); + } + zephir_is_iterable(&nonPrimary, 0, "phalcon/Mvc/Model.zep", 3947); + if (Z_TYPE_P(&nonPrimary) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&nonPrimary), _2) + { + ZEPHIR_INIT_NVAR(&field); + ZVAL_COPY(&field, _2); + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&attributeField); + if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &field, 0)))) { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_4$$10); + object_init_ex(&_4$$10, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_5$$10); + ZEPHIR_CONCAT_SVS(&_5$$10, "Column '", &field, "' isn't part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_4$$10, "__construct", &_6, 8, &_5$$10); + zephir_check_call_status(); + zephir_throw_exception_debug(&_4$$10, "phalcon/Mvc/Model.zep", 3835); + ZEPHIR_MM_RESTORE(); + return; + } + } + } else { + ZEPHIR_CPY_WRT(&attributeField, &field); + } + if (!(zephir_array_isset(&automaticAttributes, &attributeField))) { + ZEPHIR_OBS_NVAR(&bindType); + if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, &bindDataTypes, &field, 0)))) { + ZEPHIR_INIT_NVAR(&_7$$13); + object_init_ex(&_7$$13, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_8$$13); + ZEPHIR_CONCAT_SVS(&_8$$13, "Column '", &field, "' have not defined a bind data type"); + ZEPHIR_CALL_METHOD(NULL, &_7$$13, "__construct", &_6, 8, &_8$$13); + zephir_check_call_status(); + zephir_throw_exception_debug(&_7$$13, "phalcon/Mvc/Model.zep", 3849); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_OBS_NVAR(&value); + if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { + if (!(useDynamicUpdate)) { + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3861); + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3862); + zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3863); + } else { + ZEPHIR_OBS_NVAR(&snapshotValue); + if (!(zephir_array_isset_fetch(&snapshotValue, &snapshot, &attributeField, 0))) { + changed = 1; + } else { + if (Z_TYPE_P(&value) == IS_NULL) { + changed = Z_TYPE_P(&snapshotValue) != IS_NULL; + } else { + if (Z_TYPE_P(&snapshotValue) == IS_NULL) { + changed = 1; + } else { + ZEPHIR_OBS_NVAR(&dataType); + if (UNEXPECTED(!(zephir_array_isset_fetch(&dataType, &dataTypes, &field, 0)))) { + ZEPHIR_INIT_NVAR(&_9$$23); + object_init_ex(&_9$$23, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_10$$23); + ZEPHIR_CONCAT_SVS(&_10$$23, "Column '", &field, "' have not defined a data type"); + ZEPHIR_CALL_METHOD(NULL, &_9$$23, "__construct", &_6, 8, &_10$$23); + zephir_check_call_status(); + zephir_throw_exception_debug(&_9$$23, "phalcon/Mvc/Model.zep", 3888); + ZEPHIR_MM_RESTORE(); + return; + } + do { + if (ZEPHIR_IS_LONG(&dataType, 8)) { + changed = zephir_get_boolval(&snapshotValue) != zephir_get_boolval(&value); + break; + } + if (ZEPHIR_IS_LONG(&dataType, 3) || ZEPHIR_IS_LONG(&dataType, 7)) { + ZEPHIR_CALL_FUNCTION(&_11$$25, "floatval", &_12, 18, &snapshotValue); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_13$$25, "floatval", &_12, 18, &value); + zephir_check_call_status(); + changed = !ZEPHIR_IS_IDENTICAL(&_11$$25, &_13$$25); + break; + } + if (ZEPHIR_IS_LONG(&dataType, 0) || ZEPHIR_IS_LONG(&dataType, 1) || ZEPHIR_IS_LONG(&dataType, 2) || ZEPHIR_IS_LONG(&dataType, 4) || ZEPHIR_IS_LONG(&dataType, 5) || ZEPHIR_IS_LONG(&dataType, 6) || ZEPHIR_IS_LONG(&dataType, 2) || ZEPHIR_IS_LONG(&dataType, 14)) { + zephir_cast_to_string(&_14$$26, &snapshotValue); + zephir_cast_to_string(&_15$$26, &value); + changed = !ZEPHIR_IS_IDENTICAL(&_14$$26, &_15$$26); + break; + } + changed = !ZEPHIR_IS_EQUAL(&value, &snapshotValue); + } while(0); + } + } + } + if (changed) { + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3927); + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3928); + zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3929); + } + } + zephir_array_update_zval(&newSnapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_zval(&newSnapshot, &attributeField, &__$null, PH_COPY | PH_SEPARATE); + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3937); + zephir_array_append(&values, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3938); + zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3939); + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &nonPrimary, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3, &nonPrimary, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3)) { + break; + } + ZEPHIR_CALL_METHOD(&field, &nonPrimary, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&attributeField); + if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &field, 0)))) { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_16$$33); + object_init_ex(&_16$$33, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_17$$33); + ZEPHIR_CONCAT_SVS(&_17$$33, "Column '", &field, "' isn't part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_16$$33, "__construct", &_6, 8, &_17$$33); + zephir_check_call_status(); + zephir_throw_exception_debug(&_16$$33, "phalcon/Mvc/Model.zep", 3835); + ZEPHIR_MM_RESTORE(); + return; + } + } + } else { + ZEPHIR_CPY_WRT(&attributeField, &field); + } + if (!(zephir_array_isset(&automaticAttributes, &attributeField))) { + ZEPHIR_OBS_NVAR(&bindType); + if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, &bindDataTypes, &field, 0)))) { + ZEPHIR_INIT_NVAR(&_18$$36); + object_init_ex(&_18$$36, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_19$$36); + ZEPHIR_CONCAT_SVS(&_19$$36, "Column '", &field, "' have not defined a bind data type"); + ZEPHIR_CALL_METHOD(NULL, &_18$$36, "__construct", &_6, 8, &_19$$36); + zephir_check_call_status(); + zephir_throw_exception_debug(&_18$$36, "phalcon/Mvc/Model.zep", 3849); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_OBS_NVAR(&value); + if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { + if (!(useDynamicUpdate)) { + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3861); + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3862); + zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3863); + } else { + ZEPHIR_OBS_NVAR(&snapshotValue); + if (!(zephir_array_isset_fetch(&snapshotValue, &snapshot, &attributeField, 0))) { + changed = 1; + } else { + if (Z_TYPE_P(&value) == IS_NULL) { + changed = Z_TYPE_P(&snapshotValue) != IS_NULL; + } else { + if (Z_TYPE_P(&snapshotValue) == IS_NULL) { + changed = 1; + } else { + ZEPHIR_OBS_NVAR(&dataType); + if (UNEXPECTED(!(zephir_array_isset_fetch(&dataType, &dataTypes, &field, 0)))) { + ZEPHIR_INIT_NVAR(&_20$$46); + object_init_ex(&_20$$46, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_21$$46); + ZEPHIR_CONCAT_SVS(&_21$$46, "Column '", &field, "' have not defined a data type"); + ZEPHIR_CALL_METHOD(NULL, &_20$$46, "__construct", &_6, 8, &_21$$46); + zephir_check_call_status(); + zephir_throw_exception_debug(&_20$$46, "phalcon/Mvc/Model.zep", 3888); + ZEPHIR_MM_RESTORE(); + return; + } + do { + if (ZEPHIR_IS_LONG(&dataType, 8)) { + changed = zephir_get_boolval(&snapshotValue) != zephir_get_boolval(&value); + break; + } + if (ZEPHIR_IS_LONG(&dataType, 3) || ZEPHIR_IS_LONG(&dataType, 7)) { + ZEPHIR_CALL_FUNCTION(&_22$$48, "floatval", &_12, 18, &snapshotValue); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_23$$48, "floatval", &_12, 18, &value); + zephir_check_call_status(); + changed = !ZEPHIR_IS_IDENTICAL(&_22$$48, &_23$$48); + break; + } + if (ZEPHIR_IS_LONG(&dataType, 0) || ZEPHIR_IS_LONG(&dataType, 1) || ZEPHIR_IS_LONG(&dataType, 2) || ZEPHIR_IS_LONG(&dataType, 4) || ZEPHIR_IS_LONG(&dataType, 5) || ZEPHIR_IS_LONG(&dataType, 6) || ZEPHIR_IS_LONG(&dataType, 2) || ZEPHIR_IS_LONG(&dataType, 14)) { + zephir_cast_to_string(&_24$$49, &snapshotValue); + zephir_cast_to_string(&_25$$49, &value); + changed = !ZEPHIR_IS_IDENTICAL(&_24$$49, &_25$$49); + break; + } + changed = !ZEPHIR_IS_EQUAL(&value, &snapshotValue); + } while(0); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "LIMIT"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_LONG(&_1, limit); - zephir_update_property_array(this_ptr, SL("store"), &_0, &_1); - RETURN_THIS(); + } + } + } + if (changed) { + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3927); + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3928); + zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3929); + } + } + zephir_array_update_zval(&newSnapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_zval(&newSnapshot, &attributeField, &__$null, PH_COPY | PH_SEPARATE); + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3937); + zephir_array_append(&values, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3938); + zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3939); + } + } + ZEPHIR_CALL_METHOD(NULL, &nonPrimary, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&field); + if (!(zephir_fast_count_int(&fields))) { + if (useDynamicUpdate) { + zephir_update_property_zval(this_ptr, ZEND_STRL("oldSnapshot"), &snapshot); + } + RETURN_MM_BOOL(1); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("uniqueKey"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&uniqueKey, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("uniqueParams"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&uniqueParams, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("uniqueTypes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&uniqueTypes, &_0); + if (Z_TYPE_P(&uniqueParams) != IS_ARRAY) { + ZEPHIR_CALL_METHOD(&primaryKeys, metaData, "getprimarykeyattributes", NULL, 0, this_ptr); + zephir_check_call_status(); + if (UNEXPECTED(!(zephir_fast_count_int(&primaryKeys)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A primary key must be defined in the model in order to perform the operation", "phalcon/Mvc/Model.zep", 3971); + return; + } + ZEPHIR_INIT_NVAR(&uniqueParams); + array_init(&uniqueParams); + zephir_is_iterable(&primaryKeys, 0, "phalcon/Mvc/Model.zep", 3998); + if (Z_TYPE_P(&primaryKeys) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&primaryKeys), _26$$55) + { + ZEPHIR_INIT_NVAR(&field); + ZVAL_COPY(&field, _26$$55); + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&attributeField); + if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &field, 0)))) { + ZEPHIR_INIT_NVAR(&_28$$59); + object_init_ex(&_28$$59, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_29$$59); + ZEPHIR_CONCAT_SVS(&_29$$59, "Column '", &field, "' isn't part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_28$$59, "__construct", &_6, 8, &_29$$59); + zephir_check_call_status(); + zephir_throw_exception_debug(&_28$$59, "phalcon/Mvc/Model.zep", 3984); + ZEPHIR_MM_RESTORE(); + return; + } + } else { + ZEPHIR_CPY_WRT(&attributeField, &field); + } + ZEPHIR_OBS_NVAR(&value); + if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { + zephir_array_update_zval(&newSnapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); + zephir_array_append(&uniqueParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3992); + } else { + zephir_array_update_zval(&newSnapshot, &attributeField, &__$null, PH_COPY | PH_SEPARATE); + zephir_array_append(&uniqueParams, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3995); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &primaryKeys, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_27$$55, &primaryKeys, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_27$$55)) { + break; + } + ZEPHIR_CALL_METHOD(&field, &primaryKeys, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&attributeField); + if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &field, 0)))) { + ZEPHIR_INIT_NVAR(&_30$$65); + object_init_ex(&_30$$65, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_31$$65); + ZEPHIR_CONCAT_SVS(&_31$$65, "Column '", &field, "' isn't part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_30$$65, "__construct", &_6, 8, &_31$$65); + zephir_check_call_status(); + zephir_throw_exception_debug(&_30$$65, "phalcon/Mvc/Model.zep", 3984); + ZEPHIR_MM_RESTORE(); + return; + } + } else { + ZEPHIR_CPY_WRT(&attributeField, &field); + } + ZEPHIR_OBS_NVAR(&value); + if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { + zephir_array_update_zval(&newSnapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); + zephir_array_append(&uniqueParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3992); + } else { + zephir_array_update_zval(&newSnapshot, &attributeField, &__$null, PH_COPY | PH_SEPARATE); + zephir_array_append(&uniqueParams, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3995); + } + ZEPHIR_CALL_METHOD(NULL, &primaryKeys, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&field); + } + if (Z_TYPE_P(table) == IS_ARRAY) { + zephir_array_fetch_long(&_32$$69, table, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 4004); + zephir_array_fetch_long(&_33$$69, table, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 4004); + ZEPHIR_INIT_VAR(&_34$$69); + ZEPHIR_CONCAT_VSV(&_34$$69, &_32$$69, ".", &_33$$69); + ZEPHIR_CPY_WRT(table, &_34$$69); + } + ZEPHIR_INIT_VAR(&_35); + zephir_create_array(&_35, 3, 0); + zephir_array_update_string(&_35, SL("conditions"), &uniqueKey, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_35, SL("bind"), &uniqueParams, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_35, SL("bindTypes"), &uniqueTypes, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&success, connection, "update", NULL, 0, table, &fields, &values, &_35, &bindTypes); + zephir_check_call_status(); + _36 = zephir_is_true(&success); + if (_36) { + ZEPHIR_CALL_METHOD(&_1, &manager, "iskeepingsnapshots", NULL, 0, this_ptr); + zephir_check_call_status(); + _36 = zephir_is_true(&_1); + } + _37 = _36; + if (_37) { + _37 = ZEPHIR_GLOBAL(orm).update_snapshot_on_save; + } + if (_37) { + if (Z_TYPE_P(&snapshot) == IS_ARRAY) { + zephir_update_property_zval(this_ptr, ZEND_STRL("oldSnapshot"), &snapshot); + ZEPHIR_INIT_VAR(&_38$$71); + zephir_fast_array_merge(&_38$$71, &snapshot, &newSnapshot); + zephir_update_property_zval(this_ptr, ZEND_STRL("snapshot"), &_38$$71); + } else { + ZEPHIR_INIT_VAR(&_39$$72); + array_init(&_39$$72); + zephir_update_property_zval(this_ptr, ZEND_STRL("oldSnapshot"), &_39$$72); + zephir_update_property_zval(this_ptr, ZEND_STRL("snapshot"), &newSnapshot); + } + } + RETURN_CCTOR(&success); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, offset) +static PHP_METHOD(Phalcon_Mvc_Model, exists) { + zend_bool _6$$11, _14$$19; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *offset_param = NULL, _0, _1; - zend_long offset; + zephir_fcall_cache_entry *_5 = NULL, *_10 = NULL, *_18 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS, numberEmpty = 0, numberPrimary = 0; + zval *metaData, metaData_sub, *connection, connection_sub, __$null, attributeField, bindDataTypes, columnMap, field, joinWhere, num, primaryKeys, schema, source, table, type, uniqueKey, uniqueParams, uniqueTypes, value, wherePk, _0, _23, _24, _25, _26, *_1$$3, _2$$3, _3$$9, _4$$9, _7$$14, _8$$14, _9$$7, _11$$7, _12$$17, _13$$17, _15$$22, _16$$22, _17$$15, _19$$15, _20$$25, _21$$26, _22$$27, _27$$30, _28$$31; zval *this_ptr = getThis(); + ZVAL_UNDEF(&metaData_sub); + ZVAL_UNDEF(&connection_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&attributeField); + ZVAL_UNDEF(&bindDataTypes); + ZVAL_UNDEF(&columnMap); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&joinWhere); + ZVAL_UNDEF(&num); + ZVAL_UNDEF(&primaryKeys); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&source); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&uniqueKey); + ZVAL_UNDEF(&uniqueParams); + ZVAL_UNDEF(&uniqueTypes); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&wherePk); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_23); + ZVAL_UNDEF(&_24); + ZVAL_UNDEF(&_25); + ZVAL_UNDEF(&_26); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$9); + ZVAL_UNDEF(&_4$$9); + ZVAL_UNDEF(&_7$$14); + ZVAL_UNDEF(&_8$$14); + ZVAL_UNDEF(&_9$$7); + ZVAL_UNDEF(&_11$$7); + ZVAL_UNDEF(&_12$$17); + ZVAL_UNDEF(&_13$$17); + ZVAL_UNDEF(&_15$$22); + ZVAL_UNDEF(&_16$$22); + ZVAL_UNDEF(&_17$$15); + ZVAL_UNDEF(&_19$$15); + ZVAL_UNDEF(&_20$$25); + ZVAL_UNDEF(&_21$$26); + ZVAL_UNDEF(&_22$$27); + ZVAL_UNDEF(&_27$$30); + ZVAL_UNDEF(&_28$$31); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(offset) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(metaData, phalcon_mvc_model_metadatainterface_ce) + Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_db_adapter_adapterinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &offset_param); - offset = zephir_get_intval(offset_param); + zephir_fetch_params(1, 2, 0, &metaData, &connection); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "OFFSET"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_LONG(&_1, offset); - zephir_update_property_array(this_ptr, SL("store"), &_0, &_1); - RETURN_THIS(); + ZEPHIR_INIT_VAR(&uniqueParams); + ZVAL_NULL(&uniqueParams); + ZEPHIR_INIT_VAR(&uniqueTypes); + ZVAL_NULL(&uniqueTypes); + zephir_read_property(&_0, this_ptr, ZEND_STRL("uniqueKey"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&uniqueKey, &_0); + if (Z_TYPE_P(&uniqueKey) == IS_NULL) { + ZEPHIR_CALL_METHOD(&primaryKeys, metaData, "getprimarykeyattributes", NULL, 0, this_ptr); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&bindDataTypes, metaData, "getbindtypes", NULL, 0, this_ptr); + zephir_check_call_status(); + numberPrimary = zephir_fast_count_int(&primaryKeys); + if (!(numberPrimary)) { + RETURN_MM_BOOL(0); + } + if (ZEPHIR_GLOBAL(orm).column_renaming) { + ZEPHIR_CALL_METHOD(&columnMap, metaData, "getcolumnmap", NULL, 0, this_ptr); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&columnMap); + ZVAL_NULL(&columnMap); + } + numberEmpty = 0; + ZEPHIR_INIT_VAR(&wherePk); + array_init(&wherePk); + ZEPHIR_INIT_NVAR(&uniqueParams); + array_init(&uniqueParams); + ZEPHIR_INIT_NVAR(&uniqueTypes); + array_init(&uniqueTypes); + zephir_is_iterable(&primaryKeys, 0, "phalcon/Mvc/Model.zep", 4128); + if (Z_TYPE_P(&primaryKeys) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&primaryKeys), _1$$3) + { + ZEPHIR_INIT_NVAR(&field); + ZVAL_COPY(&field, _1$$3); + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&attributeField); + if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &field, 0)))) { + ZEPHIR_INIT_NVAR(&_3$$9); + object_init_ex(&_3$$9, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_4$$9); + ZEPHIR_CONCAT_SVS(&_4$$9, "Column '", &field, "' isn't part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_3$$9, "__construct", &_5, 8, &_4$$9); + zephir_check_call_status(); + zephir_throw_exception_debug(&_3$$9, "phalcon/Mvc/Model.zep", 4087); + ZEPHIR_MM_RESTORE(); + return; + } + } else { + ZEPHIR_CPY_WRT(&attributeField, &field); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_NULL(&value); + ZEPHIR_OBS_NVAR(&value); + if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { + _6$$11 = Z_TYPE_P(&value) == IS_NULL; + if (!(_6$$11)) { + _6$$11 = ZEPHIR_IS_STRING_IDENTICAL(&value, ""); + } + if (_6$$11) { + numberEmpty++; + } + zephir_array_append(&uniqueParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4108); + } else { + zephir_array_append(&uniqueParams, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4110); + numberEmpty++; + } + ZEPHIR_OBS_NVAR(&type); + if (UNEXPECTED(!(zephir_array_isset_fetch(&type, &bindDataTypes, &field, 0)))) { + ZEPHIR_INIT_NVAR(&_7$$14); + object_init_ex(&_7$$14, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_8$$14); + ZEPHIR_CONCAT_SVS(&_8$$14, "Column '", &field, "' isn't part of the table columns"); + ZEPHIR_CALL_METHOD(NULL, &_7$$14, "__construct", &_5, 8, &_8$$14); + zephir_check_call_status(); + zephir_throw_exception_debug(&_7$$14, "phalcon/Mvc/Model.zep", 4117); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_array_append(&uniqueTypes, &type, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4120); + ZEPHIR_CALL_METHOD(&_9$$7, connection, "escapeidentifier", &_10, 0, &field); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_11$$7); + ZEPHIR_CONCAT_VS(&_11$$7, &_9$$7, " = ?"); + zephir_array_append(&wherePk, &_11$$7, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4121); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &primaryKeys, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2$$3, &primaryKeys, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&field, &primaryKeys, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&attributeField); + if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &field, 0)))) { + ZEPHIR_INIT_NVAR(&_12$$17); + object_init_ex(&_12$$17, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_13$$17); + ZEPHIR_CONCAT_SVS(&_13$$17, "Column '", &field, "' isn't part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_12$$17, "__construct", &_5, 8, &_13$$17); + zephir_check_call_status(); + zephir_throw_exception_debug(&_12$$17, "phalcon/Mvc/Model.zep", 4087); + ZEPHIR_MM_RESTORE(); + return; + } + } else { + ZEPHIR_CPY_WRT(&attributeField, &field); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_NULL(&value); + ZEPHIR_OBS_NVAR(&value); + if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { + _14$$19 = Z_TYPE_P(&value) == IS_NULL; + if (!(_14$$19)) { + _14$$19 = ZEPHIR_IS_STRING_IDENTICAL(&value, ""); + } + if (_14$$19) { + numberEmpty++; + } + zephir_array_append(&uniqueParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4108); + } else { + zephir_array_append(&uniqueParams, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4110); + numberEmpty++; + } + ZEPHIR_OBS_NVAR(&type); + if (UNEXPECTED(!(zephir_array_isset_fetch(&type, &bindDataTypes, &field, 0)))) { + ZEPHIR_INIT_NVAR(&_15$$22); + object_init_ex(&_15$$22, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_16$$22); + ZEPHIR_CONCAT_SVS(&_16$$22, "Column '", &field, "' isn't part of the table columns"); + ZEPHIR_CALL_METHOD(NULL, &_15$$22, "__construct", &_5, 8, &_16$$22); + zephir_check_call_status(); + zephir_throw_exception_debug(&_15$$22, "phalcon/Mvc/Model.zep", 4117); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_array_append(&uniqueTypes, &type, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4120); + ZEPHIR_CALL_METHOD(&_17$$15, connection, "escapeidentifier", &_18, 0, &field); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_19$$15); + ZEPHIR_CONCAT_VS(&_19$$15, &_17$$15, " = ?"); + zephir_array_append(&wherePk, &_19$$15, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4121); + ZEPHIR_CALL_METHOD(NULL, &primaryKeys, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&field); + if (numberPrimary == numberEmpty) { + RETURN_MM_BOOL(0); + } + ZEPHIR_INIT_VAR(&joinWhere); + zephir_fast_join_str(&joinWhere, SL(" AND "), &wherePk); + zephir_update_property_zval(this_ptr, ZEND_STRL("uniqueKey"), &joinWhere); + zephir_update_property_zval(this_ptr, ZEND_STRL("uniqueParams"), &uniqueParams); + zephir_update_property_zval(this_ptr, ZEND_STRL("uniqueTypes"), &uniqueTypes); + ZEPHIR_CPY_WRT(&uniqueKey, &joinWhere); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("dirtyState"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_0))) { + RETURN_MM_BOOL(1); + } + if (Z_TYPE_P(&uniqueKey) == IS_NULL) { + zephir_read_property(&_20$$25, this_ptr, ZEND_STRL("uniqueKey"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&uniqueKey, &_20$$25); + } + if (Z_TYPE_P(&uniqueParams) == IS_NULL) { + zephir_read_property(&_21$$26, this_ptr, ZEND_STRL("uniqueParams"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&uniqueParams, &_21$$26); + } + if (Z_TYPE_P(&uniqueTypes) == IS_NULL) { + zephir_read_property(&_22$$27, this_ptr, ZEND_STRL("uniqueTypes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&uniqueTypes, &_22$$27); + } + ZEPHIR_CALL_METHOD(&schema, this_ptr, "getschema", NULL, 435); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&source, this_ptr, "getsource", NULL, 436); + zephir_check_call_status(); + if (zephir_is_true(&schema)) { + ZEPHIR_INIT_VAR(&table); + zephir_create_array(&table, 2, 0); + zephir_array_fast_append(&table, &schema); + zephir_array_fast_append(&table, &source); + } else { + ZEPHIR_CPY_WRT(&table, &source); + } + ZEPHIR_CALL_METHOD(&_23, connection, "escapeidentifier", NULL, 0, &table); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_24); + ZEPHIR_CONCAT_SVSV(&_24, "SELECT COUNT(*) \"rowcount\" FROM ", &_23, " WHERE ", &uniqueKey); + ZVAL_NULL(&_25); + ZEPHIR_CALL_METHOD(&num, connection, "fetchone", NULL, 0, &_24, &_25, &uniqueParams, &uniqueTypes); + zephir_check_call_status(); + zephir_array_fetch_string(&_26, &num, SL("rowcount"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 4182); + if (zephir_is_true(&_26)) { + ZEPHIR_INIT_ZVAL_NREF(_27$$30); + ZVAL_LONG(&_27$$30, 0); + zephir_update_property_zval(this_ptr, ZEND_STRL("dirtyState"), &_27$$30); + RETURN_MM_BOOL(1); + } else { + ZEPHIR_INIT_ZVAL_NREF(_28$$31); + ZVAL_LONG(&_28$$31, 1); + zephir_update_property_zval(this_ptr, ZEND_STRL("dirtyState"), &_28$$31); + } + RETURN_MM_BOOL(0); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, andWhere) +static PHP_METHOD(Phalcon_Mvc_Model, getRelatedRecords) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _0; - zval condition; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval arguments; + zval *modelName_param = NULL, *method_param = NULL, *arguments_param = NULL, manager, relation, queryMethod, extraArgs, alias, _0, _1$$3, _2$$3, _3$$5, _4$$5, _5$$5; + zval modelName, method; zval *this_ptr = getThis(); - ZVAL_UNDEF(&condition); - ZVAL_UNDEF(&value_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&relation); + ZVAL_UNDEF(&queryMethod); + ZVAL_UNDEF(&extraArgs); + ZVAL_UNDEF(&alias); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&arguments); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(condition) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(value) - Z_PARAM_LONG(type) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(modelName) + Z_PARAM_STR(method) + Z_PARAM_ARRAY(arguments) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &condition_param, &value, &type_param); - zephir_get_strval(&condition, condition_param); - if (!value) { - value = &value_sub; - value = &__$null; + zephir_fetch_params(1, 3, 0, &modelName_param, &method_param, &arguments_param); + if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); + RETURN_MM_NULL(); } - if (!type_param) { - type = -1; + if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { + zephir_get_strval(&modelName, modelName_param); } else { - type = zephir_get_intval(type_param); + ZEPHIR_INIT_VAR(&modelName); + } + if (UNEXPECTED(Z_TYPE_P(method_param) != IS_STRING && Z_TYPE_P(method_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'method' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(method_param) == IS_STRING)) { + zephir_get_strval(&method, method_param); + } else { + ZEPHIR_INIT_VAR(&method); } + ZEPHIR_OBS_COPY_OR_DUP(&arguments, arguments_param); - ZVAL_LONG(&_0, type); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "where", NULL, 0, &condition, value, &_0); - zephir_check_call_status(); - RETURN_THIS(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&manager, &_0); + ZEPHIR_INIT_VAR(&relation); + ZVAL_BOOL(&relation, 0); + ZEPHIR_INIT_VAR(&queryMethod); + ZVAL_NULL(&queryMethod); + ZEPHIR_OBS_VAR(&extraArgs); + zephir_array_isset_long_fetch(&extraArgs, &arguments, 0, 0); + if (zephir_start_with_str(&method, SL("get"))) { + ZVAL_LONG(&_1$$3, 3); + ZEPHIR_INIT_VAR(&alias); + zephir_substr(&alias, &method, 3 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + ZEPHIR_CALL_METHOD(&_2$$3, &manager, "getrelationbyalias", NULL, 0, &modelName, &alias); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&relation, &_2$$3); + if (Z_TYPE_P(&relation) != IS_OBJECT) { + RETURN_MM_BOOL(0); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getrelated", NULL, 0, &alias, &extraArgs); + zephir_check_call_status(); + RETURN_MM(); + } + if (zephir_start_with_str(&method, SL("count"))) { + ZEPHIR_INIT_NVAR(&queryMethod); + ZVAL_STRING(&queryMethod, "count"); + ZVAL_LONG(&_4$$5, 5); + ZEPHIR_INIT_VAR(&_5$$5); + zephir_substr(&_5$$5, &method, 5 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + ZEPHIR_CALL_METHOD(&_3$$5, &manager, "getrelationbyalias", NULL, 0, &modelName, &_5$$5); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&relation, &_3$$5); + if (Z_TYPE_P(&relation) != IS_OBJECT) { + RETURN_MM_BOOL(0); + } + ZEPHIR_RETURN_CALL_METHOD(&manager, "getrelationrecords", NULL, 0, &relation, this_ptr, &extraArgs, &queryMethod); + zephir_check_call_status(); + RETURN_MM(); + } + RETURN_MM_BOOL(0); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, appendWhere) +static PHP_METHOD(Phalcon_Mvc_Model, groupResult) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _0, _1; - zval condition; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *functionName_param = NULL, *alias_param = NULL, *parameters = NULL, parameters_sub, __$null, params, distinctColumn, groupColumn, columns, resultset, cache, firstRow, groupColumns, builder, query, container, manager, transaction, bindParams, bindTypes, _1, _2, _3; + zval functionName, alias; zval *this_ptr = getThis(); - ZVAL_UNDEF(&condition); - ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&functionName); + ZVAL_UNDEF(&alias); + ZVAL_UNDEF(¶meters_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&distinctColumn); + ZVAL_UNDEF(&groupColumn); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&resultset); + ZVAL_UNDEF(&cache); + ZVAL_UNDEF(&firstRow); + ZVAL_UNDEF(&groupColumns); + ZVAL_UNDEF(&builder); + ZVAL_UNDEF(&query); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&transaction); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(condition) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(functionName) + Z_PARAM_STR(alias) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(value) - Z_PARAM_LONG(type) + Z_PARAM_ZVAL_OR_NULL(parameters) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &condition_param, &value, &type_param); - zephir_get_strval(&condition, condition_param); - if (!value) { - value = &value_sub; - value = &__$null; + zephir_fetch_params(1, 2, 1, &functionName_param, &alias_param, ¶meters); + if (UNEXPECTED(Z_TYPE_P(functionName_param) != IS_STRING && Z_TYPE_P(functionName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'functionName' must be of the type string")); + RETURN_MM_NULL(); } - if (!type_param) { - type = -1; + if (EXPECTED(Z_TYPE_P(functionName_param) == IS_STRING)) { + zephir_get_strval(&functionName, functionName_param); } else { - type = zephir_get_intval(type_param); + ZEPHIR_INIT_VAR(&functionName); + } + if (UNEXPECTED(Z_TYPE_P(alias_param) != IS_STRING && Z_TYPE_P(alias_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'alias' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(alias_param) == IS_STRING)) { + zephir_get_strval(&alias, alias_param); + } else { + ZEPHIR_INIT_VAR(&alias); + } + if (!parameters) { + parameters = ¶meters_sub; + parameters = &__$null; } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "WHERE"); - ZVAL_LONG(&_1, type); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendcondition", NULL, 0, &_0, &condition, value, &_1); + ZEPHIR_INIT_VAR(&bindParams); + array_init(&bindParams); + ZEPHIR_INIT_VAR(&bindTypes); + array_init(&bindTypes); + ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_0, 0); zephir_check_call_status(); - RETURN_THIS(); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "modelsManager"); + ZEPHIR_CALL_METHOD(&_1, &container, "getshared", NULL, 0, &_2); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&manager, &_1); + if (Z_TYPE_P(parameters) != IS_ARRAY) { + ZEPHIR_INIT_VAR(¶ms); + array_init(¶ms); + if (Z_TYPE_P(parameters) != IS_NULL) { + zephir_array_append(¶ms, parameters, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4287); + } + } else { + ZEPHIR_CPY_WRT(¶ms, parameters); + } + ZEPHIR_OBS_VAR(&groupColumn); + if (!(zephir_array_isset_string_fetch(&groupColumn, ¶ms, SL("column"), 0))) { + ZEPHIR_INIT_NVAR(&groupColumn); + ZVAL_STRING(&groupColumn, "*"); + } + ZEPHIR_OBS_VAR(&distinctColumn); + if (zephir_array_isset_string_fetch(&distinctColumn, ¶ms, SL("distinct"), 0)) { + ZEPHIR_INIT_VAR(&columns); + ZEPHIR_CONCAT_VSVSV(&columns, &functionName, "(DISTINCT ", &distinctColumn, ") AS ", &alias); + } else { + ZEPHIR_OBS_VAR(&groupColumns); + ZEPHIR_INIT_NVAR(&columns); + if (zephir_array_isset_string_fetch(&groupColumns, ¶ms, SL("group"), 0)) { + ZEPHIR_CONCAT_VSVSVSV(&columns, &groupColumns, ", ", &functionName, "(", &groupColumn, ") AS ", &alias); + } else { + ZEPHIR_CONCAT_VSVSV(&columns, &functionName, "(", &groupColumn, ") AS ", &alias); + } + } + ZEPHIR_CALL_METHOD(&_1, &manager, "createbuilder", NULL, 0, ¶ms); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&builder, &_1); + ZEPHIR_CALL_METHOD(NULL, &builder, "columns", NULL, 0, &columns); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_2); + zephir_get_called_class(&_2); + ZEPHIR_CALL_METHOD(NULL, &builder, "from", NULL, 0, &_2); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1, &builder, "getquery", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&query, &_1); + ZEPHIR_OBS_VAR(&transaction); + if (zephir_array_isset_string_fetch(&transaction, ¶ms, SL("transaction"), 0)) { + if (zephir_instance_of_ev(&transaction, phalcon_mvc_model_transactioninterface_ce)) { + ZEPHIR_CALL_METHOD(NULL, &query, "settransaction", NULL, 0, &transaction); + zephir_check_call_status(); + } + } + if (zephir_array_isset_string(¶ms, SL("bind"))) { + ZEPHIR_OBS_NVAR(&bindParams); + zephir_array_fetch_string(&bindParams, ¶ms, SL("bind"), PH_NOISY, "phalcon/Mvc/Model.zep", 4330); + if (zephir_array_isset_string(¶ms, SL("bindTypes"))) { + ZEPHIR_OBS_NVAR(&bindTypes); + zephir_array_fetch_string(&bindTypes, ¶ms, SL("bindTypes"), PH_NOISY, "phalcon/Mvc/Model.zep", 4333); + } + } + ZEPHIR_OBS_VAR(&cache); + if (zephir_array_isset_string_fetch(&cache, ¶ms, SL("cache"), 0)) { + ZEPHIR_CALL_METHOD(NULL, &query, "cache", NULL, 0, &cache); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(&resultset, &query, "execute", NULL, 0, &bindParams, &bindTypes); + zephir_check_call_status(); + if (zephir_array_isset_string(¶ms, SL("group"))) { + RETURN_CCTOR(&resultset); + } + ZEPHIR_CALL_METHOD(&firstRow, &resultset, "getfirst", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&_3); + zephir_read_property_zval(&_3, &firstRow, &alias, PH_NOISY_CC); + RETURN_CCTOR(&_3); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, orderBy) +static PHP_METHOD(Phalcon_Mvc_Model, invokeFinder) { + zend_class_entry *_13; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *orderBy, orderBy_sub, _0; + zval arguments, _9$$14; + zval *method_param = NULL, *arguments_param = NULL, extraMethod, type, modelName, value, model, attributes, field, extraMethodFirst, metaData, params, _12, _0$$3, _1$$4, _2$$5, _3$$7, _5$$13, _6$$13, _7$$14, _8$$14, _10$$15, _11$$15; + zval method, _4$$7; zval *this_ptr = getThis(); - ZVAL_UNDEF(&orderBy_sub); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&_4$$7); + ZVAL_UNDEF(&extraMethod); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&extraMethodFirst); + ZVAL_UNDEF(&metaData); + ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&_3$$7); + ZVAL_UNDEF(&_5$$13); + ZVAL_UNDEF(&_6$$13); + ZVAL_UNDEF(&_7$$14); + ZVAL_UNDEF(&_8$$14); + ZVAL_UNDEF(&_10$$15); + ZVAL_UNDEF(&_11$$15); + ZVAL_UNDEF(&arguments); + ZVAL_UNDEF(&_9$$14); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(orderBy) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(method) + Z_PARAM_ARRAY(arguments) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &orderBy); - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "ORDER"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processvalue", NULL, 0, &_0, orderBy); - zephir_check_call_status(); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, orWhere) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _0, _1, _2; - zval condition; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&condition); - ZVAL_UNDEF(&value_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(condition) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(value) - Z_PARAM_LONG(type) - ZEND_PARSE_PARAMETERS_END(); -#endif + zephir_fetch_params(1, 2, 0, &method_param, &arguments_param); + zephir_get_strval(&method, method_param); + zephir_get_arrval(&arguments, arguments_param); - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &condition_param, &value, &type_param); - zephir_get_strval(&condition, condition_param); - if (!value) { - value = &value_sub; - value = &__$null; + ZEPHIR_INIT_VAR(&extraMethod); + ZVAL_NULL(&extraMethod); + if (zephir_start_with_str(&method, SL("findFirstBy"))) { + ZEPHIR_INIT_VAR(&type); + ZVAL_STRING(&type, "findFirst"); + ZVAL_LONG(&_0$$3, 11); + ZEPHIR_INIT_NVAR(&extraMethod); + zephir_substr(&extraMethod, &method, 11 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + } else if (zephir_start_with_str(&method, SL("findBy"))) { + ZEPHIR_INIT_NVAR(&type); + ZVAL_STRING(&type, "find"); + ZVAL_LONG(&_1$$4, 6); + ZEPHIR_INIT_NVAR(&extraMethod); + zephir_substr(&extraMethod, &method, 6 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + } else if (zephir_start_with_str(&method, SL("countBy"))) { + ZEPHIR_INIT_NVAR(&type); + ZVAL_STRING(&type, "count"); + ZVAL_LONG(&_2$$5, 7); + ZEPHIR_INIT_NVAR(&extraMethod); + zephir_substr(&extraMethod, &method, 7 , 0, ZEPHIR_SUBSTR_NO_LENGTH); } - if (!type_param) { - type = -1; - } else { - type = zephir_get_intval(type_param); + ZEPHIR_INIT_VAR(&modelName); + zephir_get_called_class(&modelName); + if (!(zephir_is_true(&extraMethod))) { + RETURN_MM_BOOL(0); } - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "WHERE"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "OR "); - ZVAL_LONG(&_2, type); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addcondition", NULL, 0, &_0, &_1, &condition, value, &_2); + if (UNEXPECTED(!(zephir_array_isset_long(&arguments, 0)))) { + ZEPHIR_INIT_VAR(&_3$$7); + object_init_ex(&_3$$7, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_4$$7); + ZEPHIR_CONCAT_SVS(&_4$$7, "The static method '", &method, "' requires one argument"); + ZEPHIR_CALL_METHOD(NULL, &_3$$7, "__construct", NULL, 8, &_4$$7); + zephir_check_call_status(); + zephir_throw_exception_debug(&_3$$7, "phalcon/Mvc/Model.zep", 4412); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_VAR(&model); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(&model, &modelName); zephir_check_call_status(); - RETURN_THIS(); + ZEPHIR_CALL_METHOD(&metaData, &model, "getmodelsmetadata", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&attributes, &metaData, "getreversecolumnmap", NULL, 0, &model); + zephir_check_call_status(); + if (Z_TYPE_P(&attributes) != IS_ARRAY) { + ZEPHIR_CALL_METHOD(&attributes, &metaData, "getdatatypes", NULL, 0, &model); + zephir_check_call_status(); + } + if (zephir_array_isset(&attributes, &extraMethod)) { + ZEPHIR_CPY_WRT(&field, &extraMethod); + } else { + ZEPHIR_CALL_FUNCTION(&extraMethodFirst, "lcfirst", NULL, 96, &extraMethod); + zephir_check_call_status(); + if (zephir_array_isset(&attributes, &extraMethodFirst)) { + ZEPHIR_CPY_WRT(&field, &extraMethodFirst); + } else { + ZEPHIR_INIT_NVAR(&field); + zephir_uncamelize(&field, &extraMethod, NULL ); + if (UNEXPECTED(!(zephir_array_isset(&attributes, &field)))) { + ZEPHIR_INIT_VAR(&_5$$13); + object_init_ex(&_5$$13, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_6$$13); + ZEPHIR_CONCAT_SVS(&_6$$13, "Cannot resolve attribute '", &extraMethod, "' in the model"); + ZEPHIR_CALL_METHOD(NULL, &_5$$13, "__construct", NULL, 8, &_6$$13); + zephir_check_call_status(); + zephir_throw_exception_debug(&_5$$13, "phalcon/Mvc/Model.zep", 4449); + ZEPHIR_MM_RESTORE(); + return; + } + } + } + ZEPHIR_OBS_VAR(&value); + zephir_array_isset_long_fetch(&value, &arguments, 0, 0); + ZEPHIR_INIT_VAR(¶ms); + if (Z_TYPE_P(&value) != IS_NULL) { + ZEPHIR_INIT_VAR(&_7$$14); + zephir_create_array(&_7$$14, 2, 0); + ZEPHIR_INIT_VAR(&_8$$14); + ZEPHIR_CONCAT_SVS(&_8$$14, "[", &field, "] = ?0"); + zephir_array_update_string(&_7$$14, SL("conditions"), &_8$$14, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_9$$14); + zephir_create_array(&_9$$14, 1, 0); + zephir_array_fast_append(&_9$$14, &value); + zephir_array_update_string(&_7$$14, SL("bind"), &_9$$14, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(¶ms, &_7$$14); + } else { + ZEPHIR_INIT_VAR(&_10$$15); + zephir_create_array(&_10$$15, 1, 0); + ZEPHIR_INIT_VAR(&_11$$15); + ZEPHIR_CONCAT_SVS(&_11$$15, "[", &field, "] IS NULL"); + zephir_array_update_string(&_10$$15, SL("conditions"), &_11$$15, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(¶ms, &_10$$15); + } + zephir_array_unset_long(&arguments, 0, PH_SEPARATE); + zephir_array_unset_string(&arguments, SL("conditions"), PH_SEPARATE); + zephir_array_unset_string(&arguments, SL("bind"), PH_SEPARATE); + ZEPHIR_INIT_VAR(&_12); + zephir_fast_array_merge(&_12, ¶ms, &arguments); + ZEPHIR_CPY_WRT(¶ms, &_12); + _13 = zephir_fetch_class(&modelName); + ZEPHIR_RETURN_CALL_CE_STATIC_ZVAL(_13, type, NULL, 0, ¶ms); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, where) +static PHP_METHOD(Phalcon_Mvc_Model, possibleSetter) { + zval localMethods; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _0, _1, _2; - zval condition; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *property_param = NULL, *value, value_sub, possibleSetter, _0; + zval property; zval *this_ptr = getThis(); - ZVAL_UNDEF(&condition); + ZVAL_UNDEF(&property); ZVAL_UNDEF(&value_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&possibleSetter); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&localMethods); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(condition) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(value) - Z_PARAM_LONG(type) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(property) + Z_PARAM_ZVAL(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &condition_param, &value, &type_param); - zephir_get_strval(&condition, condition_param); - if (!value) { - value = &value_sub; - value = &__$null; - } - if (!type_param) { - type = -1; - } else { - type = zephir_get_intval(type_param); - } + zephir_fetch_params(1, 2, 0, &property_param, &value); + zephir_get_strval(&property, property_param); + ZEPHIR_INIT_VAR(&localMethods); + zephir_create_array(&localMethods, 10, 0); + add_assoc_long_ex(&localMethods, SL("setConnectionService"), 1); + add_assoc_long_ex(&localMethods, SL("setDirtyState"), 1); + add_assoc_long_ex(&localMethods, SL("setEventsManager"), 1); + add_assoc_long_ex(&localMethods, SL("setReadConnectionService"), 1); + add_assoc_long_ex(&localMethods, SL("setOldSnapshotData"), 1); + add_assoc_long_ex(&localMethods, SL("setSchema"), 1); + add_assoc_long_ex(&localMethods, SL("setSnapshotData"), 1); + add_assoc_long_ex(&localMethods, SL("setSource"), 1); + add_assoc_long_ex(&localMethods, SL("setTransaction"), 1); + add_assoc_long_ex(&localMethods, SL("setWriteConnectionService"), 1); ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "WHERE"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "AND "); - ZVAL_LONG(&_2, type); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addcondition", NULL, 0, &_0, &_1, &condition, value, &_2); - zephir_check_call_status(); - RETURN_THIS(); + zephir_camelize(&_0, &property, NULL ); + ZEPHIR_INIT_VAR(&possibleSetter); + ZEPHIR_CONCAT_SV(&possibleSetter, "set", &_0); + if (!((zephir_method_exists(this_ptr, &possibleSetter) == SUCCESS))) { + RETURN_MM_BOOL(0); + } + if (!(zephir_array_isset(&localMethods, &possibleSetter))) { + ZEPHIR_CALL_METHOD_ZVAL(NULL, this_ptr, &possibleSetter, NULL, 0, value); + zephir_check_call_status(); + } + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, whereEquals) +static PHP_METHOD(Phalcon_Mvc_Model, preSave) { - zend_string *_3; - zend_ulong _2; + zval eventName; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL; + zephir_fcall_cache_entry *_8 = NULL, *_16 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *columnsValues_param = NULL, key, value, *_0, _1, _5$$5, _6$$6, _7$$7, _8$$10, _9$$11, _10$$12; - zval columnsValues; + zend_bool exists, error = 0, isNull = 0, _9$$27, _10$$27, _11$$27, _19$$47, _20$$47, _21$$47; + zval *metaData, metaData_sub, *exists_param = NULL, *identityField, identityField_sub, __$true, __$false, notNull, columnMap, dataTypeNumeric, automaticAttributes, defaultValues, field, attributeField, value, emptyStringValues, _27, _28, _0$$3, _1$$3, _2$$3, _3$$8, *_4$$11, _5$$11, _6$$19, _7$$19, _12$$27, _13$$32, _14$$32, _15$$32, _17$$39, _18$$39, _22$$47, _23$$52, _24$$52, _25$$52, _26$$57, _29$$59, _30$$60, _31$$60, _32$$60, _33$$60, _34$$60, _35$$60; zval *this_ptr = getThis(); - ZVAL_UNDEF(&columnsValues); - ZVAL_UNDEF(&key); + ZVAL_UNDEF(&metaData_sub); + ZVAL_UNDEF(&identityField_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(¬Null); + ZVAL_UNDEF(&columnMap); + ZVAL_UNDEF(&dataTypeNumeric); + ZVAL_UNDEF(&automaticAttributes); + ZVAL_UNDEF(&defaultValues); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&attributeField); ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_6$$6); - ZVAL_UNDEF(&_7$$7); - ZVAL_UNDEF(&_8$$10); - ZVAL_UNDEF(&_9$$11); - ZVAL_UNDEF(&_10$$12); + ZVAL_UNDEF(&emptyStringValues); + ZVAL_UNDEF(&_27); + ZVAL_UNDEF(&_28); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$8); + ZVAL_UNDEF(&_5$$11); + ZVAL_UNDEF(&_6$$19); + ZVAL_UNDEF(&_7$$19); + ZVAL_UNDEF(&_12$$27); + ZVAL_UNDEF(&_13$$32); + ZVAL_UNDEF(&_14$$32); + ZVAL_UNDEF(&_15$$32); + ZVAL_UNDEF(&_17$$39); + ZVAL_UNDEF(&_18$$39); + ZVAL_UNDEF(&_22$$47); + ZVAL_UNDEF(&_23$$52); + ZVAL_UNDEF(&_24$$52); + ZVAL_UNDEF(&_25$$52); + ZVAL_UNDEF(&_26$$57); + ZVAL_UNDEF(&_29$$59); + ZVAL_UNDEF(&_30$$60); + ZVAL_UNDEF(&_31$$60); + ZVAL_UNDEF(&_32$$60); + ZVAL_UNDEF(&_33$$60); + ZVAL_UNDEF(&_34$$60); + ZVAL_UNDEF(&_35$$60); + ZVAL_UNDEF(&eventName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(columnsValues) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_OBJECT_OF_CLASS(metaData, phalcon_mvc_model_metadatainterface_ce) + Z_PARAM_BOOL(exists) + Z_PARAM_ZVAL(identityField) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &columnsValues_param); - zephir_get_arrval(&columnsValues, columnsValues_param); + zephir_fetch_params(1, 3, 0, &metaData, &exists_param, &identityField); + exists = zephir_get_boolval(exists_param); - zephir_is_iterable(&columnsValues, 0, "phalcon/DataMapper/Query/AbstractConditions.zep", 164); - if (Z_TYPE_P(&columnsValues) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&columnsValues), _2, _3, _0) - { - ZEPHIR_INIT_NVAR(&key); - if (_3 != NULL) { - ZVAL_STR_COPY(&key, _3); + if (ZEPHIR_GLOBAL(orm).events) { + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, "beforeValidation"); + ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "fireeventcancel", NULL, 0, &_1$$3); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_0$$3)) { + RETURN_MM_BOOL(0); + } + if (exists) { + ZEPHIR_INIT_VAR(&eventName); + ZVAL_STRING(&eventName, "beforeValidationOnUpdate"); + } else { + ZEPHIR_INIT_NVAR(&eventName); + ZVAL_STRING(&eventName, "beforeValidationOnCreate"); + } + ZEPHIR_CALL_METHOD(&_2$$3, this_ptr, "fireeventcancel", NULL, 0, &eventName); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_2$$3)) { + RETURN_MM_BOOL(0); + } + } + if (ZEPHIR_GLOBAL(orm).virtual_foreign_keys) { + ZEPHIR_CALL_METHOD(&_3$$8, this_ptr, "checkforeignkeysrestrict", NULL, 445); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_3$$8)) { + RETURN_MM_BOOL(0); + } + } + if (ZEPHIR_GLOBAL(orm).not_null_validations) { + ZEPHIR_CALL_METHOD(¬Null, metaData, "getnotnullattributes", NULL, 0, this_ptr); + zephir_check_call_status(); + if (Z_TYPE_P(¬Null) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&dataTypeNumeric, metaData, "getdatatypesnumeric", NULL, 0, this_ptr); + zephir_check_call_status(); + if (ZEPHIR_GLOBAL(orm).column_renaming) { + ZEPHIR_CALL_METHOD(&columnMap, metaData, "getcolumnmap", NULL, 0, this_ptr); + zephir_check_call_status(); } else { - ZVAL_LONG(&key, _2); + ZEPHIR_INIT_NVAR(&columnMap); + ZVAL_NULL(&columnMap); } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0); - if (zephir_is_numeric(&key)) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "where", &_4, 0, &value); - zephir_check_call_status(); - } else if (Z_TYPE_P(&value) == IS_NULL) { - ZEPHIR_INIT_NVAR(&_5$$5); - ZEPHIR_CONCAT_VS(&_5$$5, &key, " IS NULL"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "where", &_4, 0, &_5$$5); - zephir_check_call_status(); - } else if (Z_TYPE_P(&value) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&_6$$6); - ZEPHIR_CONCAT_VS(&_6$$6, &key, " IN "); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "where", &_4, 0, &_6$$6, &value); + if (exists) { + ZEPHIR_CALL_METHOD(&automaticAttributes, metaData, "getautomaticupdateattributes", NULL, 0, this_ptr); zephir_check_call_status(); } else { - ZEPHIR_INIT_NVAR(&_7$$7); - ZEPHIR_CONCAT_VS(&_7$$7, &key, " = "); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "where", &_4, 0, &_7$$7, &value); + ZEPHIR_CALL_METHOD(&automaticAttributes, metaData, "getautomaticcreateattributes", NULL, 0, this_ptr); zephir_check_call_status(); } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &columnsValues, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &columnsValues, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&key, &columnsValues, "key", NULL, 0); + ZEPHIR_CALL_METHOD(&defaultValues, metaData, "getdefaultvalues", NULL, 0, this_ptr); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &columnsValues, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&emptyStringValues, metaData, "getemptystringattributes", NULL, 0, this_ptr); zephir_check_call_status(); - if (zephir_is_numeric(&key)) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "where", &_4, 0, &value); + error = 0; + zephir_is_iterable(¬Null, 0, "phalcon/Mvc/Model.zep", 4686); + if (Z_TYPE_P(¬Null) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(¬Null), _4$$11) + { + ZEPHIR_INIT_NVAR(&field); + ZVAL_COPY(&field, _4$$11); + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&attributeField); + if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &field, 0)))) { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_6$$19); + object_init_ex(&_6$$19, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_7$$19); + ZEPHIR_CONCAT_SVS(&_7$$19, "Column '", &field, "' isn't part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_6$$19, "__construct", &_8, 8, &_7$$19); + zephir_check_call_status(); + zephir_throw_exception_debug(&_6$$19, "phalcon/Mvc/Model.zep", 4610); + ZEPHIR_MM_RESTORE(); + return; + } + } + } else { + ZEPHIR_CPY_WRT(&attributeField, &field); + } + if (!(zephir_array_isset(&automaticAttributes, &attributeField))) { + isNull = 0; + ZEPHIR_OBS_NVAR(&value); + if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { + if (Z_TYPE_P(&value) != IS_OBJECT) { + if (!(zephir_array_isset(&dataTypeNumeric, &field))) { + if (zephir_array_isset(&emptyStringValues, &field)) { + if (Z_TYPE_P(&value) == IS_NULL) { + isNull = 1; + } + } else { + _9$$27 = Z_TYPE_P(&value) == IS_NULL; + if (!(_9$$27)) { + _10$$27 = ZEPHIR_IS_STRING_IDENTICAL(&value, ""); + if (_10$$27) { + _11$$27 = !(zephir_array_isset(&defaultValues, &field)); + if (!(_11$$27)) { + zephir_array_fetch(&_12$$27, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 4640); + _11$$27 = !ZEPHIR_IS_IDENTICAL(&value, &_12$$27); + } + _10$$27 = _11$$27; + } + _9$$27 = _10$$27; + } + if (_9$$27) { + isNull = 1; + } + } + } else { + if (!(zephir_is_numeric(&value))) { + isNull = 1; + } + } + } + } else { + isNull = 1; + } + if (isNull) { + if (!(exists)) { + if (ZEPHIR_IS_EQUAL(&field, identityField)) { + continue; + } + if (zephir_array_isset(&defaultValues, &field)) { + continue; + } + } + ZEPHIR_INIT_NVAR(&_13$$32); + object_init_ex(&_13$$32, phalcon_messages_message_ce); + ZEPHIR_INIT_NVAR(&_14$$32); + ZEPHIR_CONCAT_VS(&_14$$32, &attributeField, " is required"); + ZEPHIR_INIT_NVAR(&_15$$32); + ZVAL_STRING(&_15$$32, "PresenceOf"); + ZEPHIR_CALL_METHOD(NULL, &_13$$32, "__construct", &_16, 6, &_14$$32, &attributeField, &_15$$32); + zephir_check_call_status(); + zephir_update_property_array_append(this_ptr, SL("errorMessages"), &_13$$32); + error = 1; + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, ¬Null, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_5$$11, ¬Null, "valid", NULL, 0); zephir_check_call_status(); - } else if (Z_TYPE_P(&value) == IS_NULL) { - ZEPHIR_INIT_NVAR(&_8$$10); - ZEPHIR_CONCAT_VS(&_8$$10, &key, " IS NULL"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "where", &_4, 0, &_8$$10); + if (!zend_is_true(&_5$$11)) { + break; + } + ZEPHIR_CALL_METHOD(&field, ¬Null, "current", NULL, 0); zephir_check_call_status(); - } else if (Z_TYPE_P(&value) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&_9$$11); - ZEPHIR_CONCAT_VS(&_9$$11, &key, " IN "); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "where", &_4, 0, &_9$$11, &value); + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&attributeField); + if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &field, 0)))) { + if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { + ZEPHIR_INIT_NVAR(&_17$$39); + object_init_ex(&_17$$39, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_18$$39); + ZEPHIR_CONCAT_SVS(&_18$$39, "Column '", &field, "' isn't part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_17$$39, "__construct", &_8, 8, &_18$$39); + zephir_check_call_status(); + zephir_throw_exception_debug(&_17$$39, "phalcon/Mvc/Model.zep", 4610); + ZEPHIR_MM_RESTORE(); + return; + } + } + } else { + ZEPHIR_CPY_WRT(&attributeField, &field); + } + if (!(zephir_array_isset(&automaticAttributes, &attributeField))) { + isNull = 0; + ZEPHIR_OBS_NVAR(&value); + if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { + if (Z_TYPE_P(&value) != IS_OBJECT) { + if (!(zephir_array_isset(&dataTypeNumeric, &field))) { + if (zephir_array_isset(&emptyStringValues, &field)) { + if (Z_TYPE_P(&value) == IS_NULL) { + isNull = 1; + } + } else { + _19$$47 = Z_TYPE_P(&value) == IS_NULL; + if (!(_19$$47)) { + _20$$47 = ZEPHIR_IS_STRING_IDENTICAL(&value, ""); + if (_20$$47) { + _21$$47 = !(zephir_array_isset(&defaultValues, &field)); + if (!(_21$$47)) { + zephir_array_fetch(&_22$$47, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 4640); + _21$$47 = !ZEPHIR_IS_IDENTICAL(&value, &_22$$47); + } + _20$$47 = _21$$47; + } + _19$$47 = _20$$47; + } + if (_19$$47) { + isNull = 1; + } + } + } else { + if (!(zephir_is_numeric(&value))) { + isNull = 1; + } + } + } + } else { + isNull = 1; + } + if (isNull) { + if (!(exists)) { + if (ZEPHIR_IS_EQUAL(&field, identityField)) { + continue; + } + if (zephir_array_isset(&defaultValues, &field)) { + continue; + } + } + ZEPHIR_INIT_NVAR(&_23$$52); + object_init_ex(&_23$$52, phalcon_messages_message_ce); + ZEPHIR_INIT_NVAR(&_24$$52); + ZEPHIR_CONCAT_VS(&_24$$52, &attributeField, " is required"); + ZEPHIR_INIT_NVAR(&_25$$52); + ZVAL_STRING(&_25$$52, "PresenceOf"); + ZEPHIR_CALL_METHOD(NULL, &_23$$52, "__construct", &_16, 6, &_24$$52, &attributeField, &_25$$52); + zephir_check_call_status(); + zephir_update_property_array_append(this_ptr, SL("errorMessages"), &_23$$52); + error = 1; + } + } + ZEPHIR_CALL_METHOD(NULL, ¬Null, "next", NULL, 0); zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&_10$$12); - ZEPHIR_CONCAT_VS(&_10$$12, &key, " = "); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "where", &_4, 0, &_10$$12, &value); + } + } + ZEPHIR_INIT_NVAR(&field); + if (error) { + if (ZEPHIR_GLOBAL(orm).events) { + ZEPHIR_INIT_VAR(&_26$$57); + ZVAL_STRING(&_26$$57, "onValidationFails"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_26$$57); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "canceloperation", NULL, 0); zephir_check_call_status(); } - ZEPHIR_CALL_METHOD(NULL, &columnsValues, "next", NULL, 0); - zephir_check_call_status(); + RETURN_MM_BOOL(0); + } } } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, addCondition) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *store_param = NULL, *andor_param = NULL, *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _0$$3, _1$$3, _2, _3; - zval store, andor, condition, _4; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&store); - ZVAL_UNDEF(&andor); - ZVAL_UNDEF(&condition); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&value_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 5) - Z_PARAM_STR(store) - Z_PARAM_STR(andor) - Z_PARAM_STR(condition) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(value) - Z_PARAM_LONG(type) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 2, &store_param, &andor_param, &condition_param, &value, &type_param); - zephir_get_strval(&store, store_param); - zephir_get_strval(&andor, andor_param); - zephir_get_strval(&condition, condition_param); - if (!value) { - value = &value_sub; - value = &__$null; - } - if (!type_param) { - type = -1; - } else { - type = zephir_get_intval(type_param); + ZEPHIR_INIT_VAR(&_28); + ZVAL_STRING(&_28, "validation"); + ZEPHIR_CALL_METHOD(&_27, this_ptr, "fireeventcancel", NULL, 0, &_28); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_27)) { + if (ZEPHIR_GLOBAL(orm).events) { + ZEPHIR_INIT_VAR(&_29$$59); + ZVAL_STRING(&_29$$59, "onValidationFails"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_29$$59); + zephir_check_call_status(); + } + RETURN_MM_BOOL(0); } - - - if (!(ZEPHIR_IS_EMPTY(value))) { - ZVAL_LONG(&_1$$3, type); - ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "bindinline", NULL, 0, value, &_1$$3); + if (ZEPHIR_GLOBAL(orm).events) { + if (exists) { + ZEPHIR_INIT_NVAR(&eventName); + ZVAL_STRING(&eventName, "afterValidationOnUpdate"); + } else { + ZEPHIR_INIT_NVAR(&eventName); + ZVAL_STRING(&eventName, "afterValidationOnCreate"); + } + ZEPHIR_CALL_METHOD(&_30$$60, this_ptr, "fireeventcancel", NULL, 0, &eventName); zephir_check_call_status(); - zephir_concat_self(&condition, &_0$$3); - } - zephir_read_property(&_2, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_3, &_2, &store, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 187); - if (ZEPHIR_IS_EMPTY(&_3)) { - ZEPHIR_INIT_NVAR(&andor); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_30$$60)) { + RETURN_MM_BOOL(0); + } + ZEPHIR_INIT_VAR(&_32$$60); + ZVAL_STRING(&_32$$60, "afterValidation"); + ZEPHIR_CALL_METHOD(&_31$$60, this_ptr, "fireeventcancel", NULL, 0, &_32$$60); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_31$$60)) { + RETURN_MM_BOOL(0); + } + ZEPHIR_INIT_NVAR(&_32$$60); + ZVAL_STRING(&_32$$60, "beforeSave"); + ZEPHIR_CALL_METHOD(&_33$$60, this_ptr, "fireeventcancel", NULL, 0, &_32$$60); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_33$$60)) { + RETURN_MM_BOOL(0); + } + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("skipped"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("skipped"), &__$false); + } + if (exists) { + ZEPHIR_INIT_NVAR(&eventName); + ZVAL_STRING(&eventName, "beforeUpdate"); + } else { + ZEPHIR_INIT_NVAR(&eventName); + ZVAL_STRING(&eventName, "beforeCreate"); + } + ZEPHIR_CALL_METHOD(&_34$$60, this_ptr, "fireeventcancel", NULL, 0, &eventName); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_34$$60)) { + RETURN_MM_BOOL(0); + } + zephir_read_property(&_35$$60, this_ptr, ZEND_STRL("skipped"), PH_NOISY_CC | PH_READONLY); + if (ZEPHIR_IS_TRUE_IDENTICAL(&_35$$60)) { + RETURN_MM_BOOL(1); + } } - ZEPHIR_INIT_VAR(&_4); - ZEPHIR_CONCAT_VV(&_4, &andor, &condition); - zephir_update_property_array_multi(this_ptr, SL("store"), &_4, SL("za"), 2, &store); - ZEPHIR_MM_RESTORE(); + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, buildBy) +static PHP_METHOD(Phalcon_Mvc_Model, preSaveRelatedRecords) { + zval _18$$10, _20$$12, _36$$20, _37$$22; + zend_string *_5; + zend_ulong _4; + zend_bool nesting = 0, _13$$5, _31$$15; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_7 = NULL, *_9 = NULL, *_11 = NULL, *_19 = NULL, *_22 = NULL, *_25 = NULL, *_27 = NULL, *_29 = NULL, *_39 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *type_param = NULL, _0, _1, _2, _3, _4, _5; - zval type; + zval *connection, connection_sub, *related, related_sub, className, manager, type, relation, columns, referencedFields, referencedModel, message, name, record, _0, _1, *_2, _3, _6$$3, _8$$6, _10$$7, _12$$5, _14$$5, _23$$5, _15$$8, *_16$$8, _17$$8, _21$$8, _24$$13, _26$$16, _28$$17, _30$$15, _32$$15, _40$$15, _33$$18, *_34$$18, _35$$18, _38$$18; zval *this_ptr = getThis(); + ZVAL_UNDEF(&connection_sub); + ZVAL_UNDEF(&related_sub); + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&manager); ZVAL_UNDEF(&type); + ZVAL_UNDEF(&relation); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&referencedFields); + ZVAL_UNDEF(&referencedModel); + ZVAL_UNDEF(&message); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&record); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_8$$6); + ZVAL_UNDEF(&_10$$7); + ZVAL_UNDEF(&_12$$5); + ZVAL_UNDEF(&_14$$5); + ZVAL_UNDEF(&_23$$5); + ZVAL_UNDEF(&_15$$8); + ZVAL_UNDEF(&_17$$8); + ZVAL_UNDEF(&_21$$8); + ZVAL_UNDEF(&_24$$13); + ZVAL_UNDEF(&_26$$16); + ZVAL_UNDEF(&_28$$17); + ZVAL_UNDEF(&_30$$15); + ZVAL_UNDEF(&_32$$15); + ZVAL_UNDEF(&_40$$15); + ZVAL_UNDEF(&_33$$18); + ZVAL_UNDEF(&_35$$18); + ZVAL_UNDEF(&_38$$18); + ZVAL_UNDEF(&_18$$10); + ZVAL_UNDEF(&_20$$12); + ZVAL_UNDEF(&_36$$20); + ZVAL_UNDEF(&_37$$22); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(type) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_db_adapter_adapterinterface_ce) + Z_PARAM_ZVAL(related) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &type_param); - zephir_get_strval(&type, type_param); + zephir_fetch_params(1, 2, 0, &connection, &related); - zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_1, &_0, &type, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 203); - if (ZEPHIR_IS_EMPTY(&_1)) { - RETURN_MM_STRING(""); + nesting = 0; + if (nesting) { + ZVAL_BOOL(&_0, 1); + } else { + ZVAL_BOOL(&_0, 0); } - zephir_read_property(&_3, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_4, &_3, &type, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 208); - ZEPHIR_INIT_VAR(&_5); - ZVAL_STRING(&_5, ","); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "indent", NULL, 0, &_4, &_5); + ZEPHIR_CALL_METHOD(NULL, connection, "begin", NULL, 0, &_0); zephir_check_call_status(); - ZEPHIR_CONCAT_SVSV(return_value, " ", &type, " BY", &_2); - RETURN_MM(); + ZEPHIR_INIT_VAR(&className); + zephir_get_class(&className, this_ptr, 0); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getmodelsmanager", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&manager, &_1); + zephir_is_iterable(related, 0, "phalcon/Mvc/Model.zep", 4864); + if (Z_TYPE_P(related) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(related), _4, _5, _2) + { + ZEPHIR_INIT_NVAR(&name); + if (_5 != NULL) { + ZVAL_STR_COPY(&name, _5); + } else { + ZVAL_LONG(&name, _4); + } + ZEPHIR_INIT_NVAR(&record); + ZVAL_COPY(&record, _2); + ZEPHIR_CALL_METHOD(&_6$$3, &manager, "getrelationbyalias", &_7, 0, &className, &name); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&relation, &_6$$3); + if (Z_TYPE_P(&relation) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(&type, &relation, "gettype", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&type, 0)) { + if (UNEXPECTED(Z_TYPE_P(&record) != IS_OBJECT)) { + if (nesting) { + ZVAL_BOOL(&_8$$6, 1); + } else { + ZVAL_BOOL(&_8$$6, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_9, 0, &_8$$6); + zephir_check_call_status(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects can be stored as part of belongs-to relations", "phalcon/Mvc/Model.zep", 4807); + return; + } + ZEPHIR_CALL_METHOD(&columns, &relation, "getfields", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&referencedModel, &relation, "getreferencedmodel", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&referencedFields, &relation, "getreferencedfields", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&columns) == IS_ARRAY)) { + if (nesting) { + ZVAL_BOOL(&_10$$7, 1); + } else { + ZVAL_BOOL(&_10$$7, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_11, 0, &_10$$7); + zephir_check_call_status(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/Mvc/Model.zep", 4817); + return; + } + zephir_read_property(&_12$$5, &record, ZEND_STRL("dirtyState"), PH_NOISY_CC | PH_READONLY); + _13$$5 = !ZEPHIR_IS_LONG_IDENTICAL(&_12$$5, 0); + if (_13$$5) { + ZEPHIR_CALL_METHOD(&_14$$5, &record, "save", NULL, 0); + zephir_check_call_status(); + _13$$5 = !zephir_is_true(&_14$$5); + } + if (_13$$5) { + ZEPHIR_CALL_METHOD(&_15$$8, &record, "getmessages", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&_15$$8, 0, "phalcon/Mvc/Model.zep", 4850); + if (Z_TYPE_P(&_15$$8) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_15$$8), _16$$8) + { + ZEPHIR_INIT_NVAR(&message); + ZVAL_COPY(&message, _16$$8); + if (Z_TYPE_P(&message) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_18$$10); + zephir_create_array(&_18$$10, 1, 0); + zephir_array_update_string(&_18$$10, SL("model"), &record, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_18$$10); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_19, 0, &message); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_15$$8, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_17$$8, &_15$$8, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_17$$8)) { + break; + } + ZEPHIR_CALL_METHOD(&message, &_15$$8, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&message) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_20$$12); + zephir_create_array(&_20$$12, 1, 0); + zephir_array_update_string(&_20$$12, SL("model"), &record, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_20$$12); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_19, 0, &message); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_15$$8, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&message); + if (nesting) { + ZVAL_BOOL(&_21$$8, 1); + } else { + ZVAL_BOOL(&_21$$8, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_22, 0, &_21$$8); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + ZEPHIR_CALL_METHOD(&_23$$5, &record, "readattribute", NULL, 0, &referencedFields); + zephir_check_call_status(); + zephir_update_property_zval_zval(this_ptr, &columns, &_23$$5); + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, related, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3, related, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3)) { + break; + } + ZEPHIR_CALL_METHOD(&name, related, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&record, related, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_24$$13, &manager, "getrelationbyalias", &_25, 0, &className, &name); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&relation, &_24$$13); + if (Z_TYPE_P(&relation) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(&type, &relation, "gettype", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&type, 0)) { + if (UNEXPECTED(Z_TYPE_P(&record) != IS_OBJECT)) { + if (nesting) { + ZVAL_BOOL(&_26$$16, 1); + } else { + ZVAL_BOOL(&_26$$16, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_27, 0, &_26$$16); + zephir_check_call_status(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects can be stored as part of belongs-to relations", "phalcon/Mvc/Model.zep", 4807); + return; + } + ZEPHIR_CALL_METHOD(&columns, &relation, "getfields", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&referencedModel, &relation, "getreferencedmodel", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&referencedFields, &relation, "getreferencedfields", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&columns) == IS_ARRAY)) { + if (nesting) { + ZVAL_BOOL(&_28$$17, 1); + } else { + ZVAL_BOOL(&_28$$17, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_29, 0, &_28$$17); + zephir_check_call_status(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/Mvc/Model.zep", 4817); + return; + } + zephir_read_property(&_30$$15, &record, ZEND_STRL("dirtyState"), PH_NOISY_CC | PH_READONLY); + _31$$15 = !ZEPHIR_IS_LONG_IDENTICAL(&_30$$15, 0); + if (_31$$15) { + ZEPHIR_CALL_METHOD(&_32$$15, &record, "save", NULL, 0); + zephir_check_call_status(); + _31$$15 = !zephir_is_true(&_32$$15); + } + if (_31$$15) { + ZEPHIR_CALL_METHOD(&_33$$18, &record, "getmessages", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&_33$$18, 0, "phalcon/Mvc/Model.zep", 4850); + if (Z_TYPE_P(&_33$$18) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_33$$18), _34$$18) + { + ZEPHIR_INIT_NVAR(&message); + ZVAL_COPY(&message, _34$$18); + if (Z_TYPE_P(&message) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_36$$20); + zephir_create_array(&_36$$20, 1, 0); + zephir_array_update_string(&_36$$20, SL("model"), &record, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_36$$20); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_19, 0, &message); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_33$$18, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_35$$18, &_33$$18, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_35$$18)) { + break; + } + ZEPHIR_CALL_METHOD(&message, &_33$$18, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&message) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_37$$22); + zephir_create_array(&_37$$22, 1, 0); + zephir_array_update_string(&_37$$22, SL("model"), &record, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_37$$22); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_19, 0, &message); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_33$$18, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&message); + if (nesting) { + ZVAL_BOOL(&_38$$18, 1); + } else { + ZVAL_BOOL(&_38$$18, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_39, 0, &_38$$18); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + ZEPHIR_CALL_METHOD(&_40$$15, &record, "readattribute", NULL, 0, &referencedFields); + zephir_check_call_status(); + zephir_update_property_zval_zval(this_ptr, &columns, &_40$$15); + } + } + ZEPHIR_CALL_METHOD(NULL, related, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&record); + ZEPHIR_INIT_NVAR(&name); + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, buildCondition) +static PHP_METHOD(Phalcon_Mvc_Model, postSave) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *type_param = NULL, _0, _1, _2, _3, _4; - zval type; + zval *success_param = NULL, *exists_param = NULL, _0$$4, _1$$5; + zend_bool success, exists; zval *this_ptr = getThis(); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_0$$4); + ZVAL_UNDEF(&_1$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(type) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_BOOL(success) + Z_PARAM_BOOL(exists) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &type_param); - zephir_get_strval(&type, type_param); + zephir_fetch_params(1, 2, 0, &success_param, &exists_param); + success = zephir_get_boolval(success_param); + exists = zephir_get_boolval(exists_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_1, &_0, &type, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 220); - if (ZEPHIR_IS_EMPTY(&_1)) { - RETURN_MM_STRING(""); + if (success) { + if (exists) { + ZEPHIR_INIT_VAR(&_0$$4); + ZVAL_STRING(&_0$$4, "afterUpdate"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_0$$4); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_VAR(&_1$$5); + ZVAL_STRING(&_1$$5, "afterCreate"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_1$$5); + zephir_check_call_status(); + } } - zephir_read_property(&_3, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_4, &_3, &type, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 225); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "indent", NULL, 0, &_4); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVV(return_value, " ", &type, &_2); - RETURN_MM(); + RETURN_MM_BOOL(success); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, buildLimitEarly) +static PHP_METHOD(Phalcon_Mvc_Model, postSaveRelatedRecords) { - zend_bool _3, _6; - zval _0, _1, _2, _4, _5, _7, _8, _9$$3, _10$$3, _11$$3; - zval limit; + zval _25$$16, _27$$18, _33$$20, _35$$20, _40$$24, _41$$26, _48$$31, _49$$33, _55$$35, _57$$35, _62$$39, _63$$41, _90$$57, _91$$59, _97$$61, _99$$61, _104$$65, _105$$67, _112$$72, _113$$74, _119$$76, _121$$76, _126$$80, _127$$82; + zend_string *_4; + zend_ulong _3; + zend_bool nesting = 0, isThrough = 0, _8$$4, _73$$45; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_6 = NULL, *_10 = NULL, *_12 = NULL, *_14 = NULL, *_17 = NULL, *_26 = NULL, *_29 = NULL, *_31 = NULL, *_32 = NULL, *_43 = NULL, *_51 = NULL, *_53 = NULL, *_54 = NULL, *_65 = NULL, *_67 = NULL, *_71 = NULL, *_75 = NULL, *_77 = NULL, *_80 = NULL, *_93 = NULL, *_95 = NULL, *_96 = NULL, *_107 = NULL, *_115 = NULL, *_117 = NULL, *_118 = NULL, *_129 = NULL, *_131 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *connection, connection_sub, *related, related_sub, className, manager, relation, name, record, message, columns, referencedModel, referencedFields, relatedRecords, value, recordAfter, intermediateModel, intermediateFields, intermediateValue, intermediateModelName, intermediateReferencedFields, existingIntermediateModel, _0, *_1, _2, _134, _5$$3, _7$$4, _18$$4, *_19$$4, _20$$4, _9$$6, _11$$7, _13$$10, _15$$10, _16$$10, _21$$12, _22$$14, *_23$$14, _24$$14, _28$$14, _30$$19, _36$$19, _34$$20, _37$$22, *_38$$22, _39$$22, _42$$22, _44$$27, _45$$29, *_46$$29, _47$$29, _50$$29, _52$$34, _58$$34, _56$$35, _59$$37, *_60$$37, _61$$37, _64$$37, _66$$43, _68$$43, _69$$43, _70$$44, _72$$45, _83$$45, *_84$$45, _85$$45, _74$$47, _76$$48, _78$$49, _79$$51, _81$$51, _82$$51, _86$$53, _87$$55, *_88$$55, _89$$55, _92$$55, _94$$60, _100$$60, _98$$61, _101$$63, *_102$$63, _103$$63, _106$$63, _108$$68, _109$$70, *_110$$70, _111$$70, _114$$70, _116$$75, _122$$75, _120$$76, _123$$78, *_124$$78, _125$$78, _128$$78, _130$$84, _132$$84, _133$$84; zval *this_ptr = getThis(); - ZVAL_UNDEF(&limit); + ZVAL_UNDEF(&connection_sub); + ZVAL_UNDEF(&related_sub); + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&relation); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&record); + ZVAL_UNDEF(&message); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&referencedModel); + ZVAL_UNDEF(&referencedFields); + ZVAL_UNDEF(&relatedRecords); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&recordAfter); + ZVAL_UNDEF(&intermediateModel); + ZVAL_UNDEF(&intermediateFields); + ZVAL_UNDEF(&intermediateValue); + ZVAL_UNDEF(&intermediateModelName); + ZVAL_UNDEF(&intermediateReferencedFields); + ZVAL_UNDEF(&existingIntermediateModel); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9$$3); - ZVAL_UNDEF(&_10$$3); - ZVAL_UNDEF(&_11$$3); + ZVAL_UNDEF(&_134); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_18$$4); + ZVAL_UNDEF(&_20$$4); + ZVAL_UNDEF(&_9$$6); + ZVAL_UNDEF(&_11$$7); + ZVAL_UNDEF(&_13$$10); + ZVAL_UNDEF(&_15$$10); + ZVAL_UNDEF(&_16$$10); + ZVAL_UNDEF(&_21$$12); + ZVAL_UNDEF(&_22$$14); + ZVAL_UNDEF(&_24$$14); + ZVAL_UNDEF(&_28$$14); + ZVAL_UNDEF(&_30$$19); + ZVAL_UNDEF(&_36$$19); + ZVAL_UNDEF(&_34$$20); + ZVAL_UNDEF(&_37$$22); + ZVAL_UNDEF(&_39$$22); + ZVAL_UNDEF(&_42$$22); + ZVAL_UNDEF(&_44$$27); + ZVAL_UNDEF(&_45$$29); + ZVAL_UNDEF(&_47$$29); + ZVAL_UNDEF(&_50$$29); + ZVAL_UNDEF(&_52$$34); + ZVAL_UNDEF(&_58$$34); + ZVAL_UNDEF(&_56$$35); + ZVAL_UNDEF(&_59$$37); + ZVAL_UNDEF(&_61$$37); + ZVAL_UNDEF(&_64$$37); + ZVAL_UNDEF(&_66$$43); + ZVAL_UNDEF(&_68$$43); + ZVAL_UNDEF(&_69$$43); + ZVAL_UNDEF(&_70$$44); + ZVAL_UNDEF(&_72$$45); + ZVAL_UNDEF(&_83$$45); + ZVAL_UNDEF(&_85$$45); + ZVAL_UNDEF(&_74$$47); + ZVAL_UNDEF(&_76$$48); + ZVAL_UNDEF(&_78$$49); + ZVAL_UNDEF(&_79$$51); + ZVAL_UNDEF(&_81$$51); + ZVAL_UNDEF(&_82$$51); + ZVAL_UNDEF(&_86$$53); + ZVAL_UNDEF(&_87$$55); + ZVAL_UNDEF(&_89$$55); + ZVAL_UNDEF(&_92$$55); + ZVAL_UNDEF(&_94$$60); + ZVAL_UNDEF(&_100$$60); + ZVAL_UNDEF(&_98$$61); + ZVAL_UNDEF(&_101$$63); + ZVAL_UNDEF(&_103$$63); + ZVAL_UNDEF(&_106$$63); + ZVAL_UNDEF(&_108$$68); + ZVAL_UNDEF(&_109$$70); + ZVAL_UNDEF(&_111$$70); + ZVAL_UNDEF(&_114$$70); + ZVAL_UNDEF(&_116$$75); + ZVAL_UNDEF(&_122$$75); + ZVAL_UNDEF(&_120$$76); + ZVAL_UNDEF(&_123$$78); + ZVAL_UNDEF(&_125$$78); + ZVAL_UNDEF(&_128$$78); + ZVAL_UNDEF(&_130$$84); + ZVAL_UNDEF(&_132$$84); + ZVAL_UNDEF(&_133$$84); + ZVAL_UNDEF(&_25$$16); + ZVAL_UNDEF(&_27$$18); + ZVAL_UNDEF(&_33$$20); + ZVAL_UNDEF(&_35$$20); + ZVAL_UNDEF(&_40$$24); + ZVAL_UNDEF(&_41$$26); + ZVAL_UNDEF(&_48$$31); + ZVAL_UNDEF(&_49$$33); + ZVAL_UNDEF(&_55$$35); + ZVAL_UNDEF(&_57$$35); + ZVAL_UNDEF(&_62$$39); + ZVAL_UNDEF(&_63$$41); + ZVAL_UNDEF(&_90$$57); + ZVAL_UNDEF(&_91$$59); + ZVAL_UNDEF(&_97$$61); + ZVAL_UNDEF(&_99$$61); + ZVAL_UNDEF(&_104$$65); + ZVAL_UNDEF(&_105$$67); + ZVAL_UNDEF(&_112$$72); + ZVAL_UNDEF(&_113$$74); + ZVAL_UNDEF(&_119$$76); + ZVAL_UNDEF(&_121$$76); + ZVAL_UNDEF(&_126$$80); + ZVAL_UNDEF(&_127$$82); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_db_adapter_adapterinterface_ce) + Z_PARAM_ZVAL(related) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &connection, &related); - ZEPHIR_INIT_VAR(&limit); - zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "getdrivername", NULL, 0); + + nesting = 0; + ZEPHIR_INIT_VAR(&className); + zephir_get_class(&className, this_ptr, 0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmodelsmanager", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "sqlsrv"); - _3 = ZEPHIR_IS_IDENTICAL(&_2, &_1); - if (_3) { - zephir_read_property(&_4, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_5, &_4, SL("LIMIT"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 239); - _3 = ZEPHIR_GT_LONG(&_5, 0); - } - _6 = _3; - if (_6) { - zephir_read_property(&_7, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_8, &_7, SL("OFFSET"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 241); - _6 = ZEPHIR_IS_LONG_IDENTICAL(&_8, 0); + ZEPHIR_CPY_WRT(&manager, &_0); + zephir_is_iterable(related, 0, "phalcon/Mvc/Model.zep", 5113); + if (Z_TYPE_P(related) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(related), _3, _4, _1) + { + ZEPHIR_INIT_NVAR(&name); + if (_4 != NULL) { + ZVAL_STR_COPY(&name, _4); + } else { + ZVAL_LONG(&name, _3); + } + ZEPHIR_INIT_NVAR(&record); + ZVAL_COPY(&record, _1); + ZEPHIR_CALL_METHOD(&_5$$3, &manager, "getrelationbyalias", &_6, 0, &className, &name); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&relation, &_5$$3); + if (Z_TYPE_P(&relation) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(&_7$$4, &relation, "gettype", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&_7$$4, 0)) { + continue; + } + _8$$4 = Z_TYPE_P(&record) != IS_OBJECT; + if (_8$$4) { + _8$$4 = Z_TYPE_P(&record) != IS_ARRAY; + } + if (UNEXPECTED(_8$$4)) { + if (nesting) { + ZVAL_BOOL(&_9$$6, 1); + } else { + ZVAL_BOOL(&_9$$6, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_10, 0, &_9$$6); + zephir_check_call_status(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects/arrays can be stored as part of has-many/has-one/has-one-through/has-many-to-many relations", "phalcon/Mvc/Model.zep", 4926); + return; + } + ZEPHIR_CALL_METHOD(&columns, &relation, "getfields", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&referencedModel, &relation, "getreferencedmodel", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&referencedFields, &relation, "getreferencedfields", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&columns) == IS_ARRAY)) { + if (nesting) { + ZVAL_BOOL(&_11$$7, 1); + } else { + ZVAL_BOOL(&_11$$7, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_12, 0, &_11$$7); + zephir_check_call_status(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/Mvc/Model.zep", 4936); + return; + } + if (Z_TYPE_P(&record) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&relatedRecords); + zephir_create_array(&relatedRecords, 1, 0); + zephir_array_fast_append(&relatedRecords, &record); + } else { + ZEPHIR_CPY_WRT(&relatedRecords, &record); + } + ZEPHIR_OBS_NVAR(&value); + if (UNEXPECTED(!(zephir_fetch_property_zval(&value, this_ptr, &columns, PH_SILENT_CC)))) { + if (nesting) { + ZVAL_BOOL(&_13$$10, 1); + } else { + ZVAL_BOOL(&_13$$10, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_14, 0, &_13$$10); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_15$$10); + object_init_ex(&_15$$10, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_16$$10); + ZEPHIR_CONCAT_SVS(&_16$$10, "The column '", &columns, "' needs to be present in the model"); + ZEPHIR_CALL_METHOD(NULL, &_15$$10, "__construct", &_17, 8, &_16$$10); + zephir_check_call_status(); + zephir_throw_exception_debug(&_15$$10, "phalcon/Mvc/Model.zep", 4953); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_METHOD(&_18$$4, &relation, "isthrough", NULL, 0); + zephir_check_call_status(); + isThrough = zephir_get_boolval(&_18$$4); + if (isThrough) { + ZEPHIR_CALL_METHOD(&intermediateModelName, &relation, "getintermediatemodel", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&intermediateFields, &relation, "getintermediatefields", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&intermediateReferencedFields, &relation, "getintermediatereferencedfields", NULL, 0); + zephir_check_call_status(); + } + zephir_is_iterable(&relatedRecords, 0, "phalcon/Mvc/Model.zep", 5099); + if (Z_TYPE_P(&relatedRecords) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relatedRecords), _19$$4) + { + ZEPHIR_INIT_NVAR(&recordAfter); + ZVAL_COPY(&recordAfter, _19$$4); + if (!(isThrough)) { + ZEPHIR_CALL_METHOD(NULL, &recordAfter, "writeattribute", NULL, 0, &referencedFields, &value); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(&_21$$12, &recordAfter, "save", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_21$$12))) { + ZEPHIR_CALL_METHOD(&_22$$14, &recordAfter, "getmessages", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&_22$$14, 0, "phalcon/Mvc/Model.zep", 5012); + if (Z_TYPE_P(&_22$$14) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_22$$14), _23$$14) + { + ZEPHIR_INIT_NVAR(&message); + ZVAL_COPY(&message, _23$$14); + if (Z_TYPE_P(&message) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_25$$16); + zephir_create_array(&_25$$16, 1, 0); + zephir_array_update_string(&_25$$16, SL("model"), &recordAfter, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_25$$16); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_22$$14, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_24$$14, &_22$$14, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_24$$14)) { + break; + } + ZEPHIR_CALL_METHOD(&message, &_22$$14, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&message) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_27$$18); + zephir_create_array(&_27$$18, 1, 0); + zephir_array_update_string(&_27$$18, SL("model"), &recordAfter, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_27$$18); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_22$$14, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&message); + if (nesting) { + ZVAL_BOOL(&_28$$14, 1); + } else { + ZVAL_BOOL(&_28$$14, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_29, 0, &_28$$14); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + if (isThrough) { + ZEPHIR_CALL_METHOD(&_30$$19, &manager, "load", &_31, 0, &intermediateModelName); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&intermediateModel, &_30$$19); + ZEPHIR_CALL_METHOD(&_30$$19, &relation, "gettype", &_32, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&_30$$19, 3)) { + ZEPHIR_INIT_NVAR(&_33$$20); + zephir_create_array(&_33$$20, 2, 0); + ZEPHIR_INIT_NVAR(&_34$$20); + ZEPHIR_CONCAT_SVS(&_34$$20, "[", &intermediateFields, "] = ?0"); + zephir_array_fast_append(&_33$$20, &_34$$20); + ZEPHIR_INIT_NVAR(&_35$$20); + zephir_create_array(&_35$$20, 1, 0); + zephir_array_fast_append(&_35$$20, &value); + zephir_array_update_string(&_33$$20, SL("bind"), &_35$$20, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&existingIntermediateModel, &intermediateModel, "findfirst", NULL, 0, &_33$$20); + zephir_check_call_status(); + if (zephir_is_true(&existingIntermediateModel)) { + ZEPHIR_CPY_WRT(&intermediateModel, &existingIntermediateModel); + } + } + ZEPHIR_CALL_METHOD(NULL, &intermediateModel, "writeattribute", NULL, 0, &intermediateFields, &value); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&intermediateValue, &recordAfter, "readattribute", NULL, 0, &referencedFields); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &intermediateModel, "writeattribute", NULL, 0, &intermediateReferencedFields, &intermediateValue); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_36$$19, &intermediateModel, "save", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_36$$19))) { + ZEPHIR_CALL_METHOD(&_37$$22, &intermediateModel, "getmessages", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&_37$$22, 0, "phalcon/Mvc/Model.zep", 5093); + if (Z_TYPE_P(&_37$$22) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_37$$22), _38$$22) + { + ZEPHIR_INIT_NVAR(&message); + ZVAL_COPY(&message, _38$$22); + if (Z_TYPE_P(&message) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_40$$24); + zephir_create_array(&_40$$24, 1, 0); + zephir_array_update_string(&_40$$24, SL("model"), &intermediateModel, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_40$$24); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_37$$22, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_39$$22, &_37$$22, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_39$$22)) { + break; + } + ZEPHIR_CALL_METHOD(&message, &_37$$22, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&message) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_41$$26); + zephir_create_array(&_41$$26, 1, 0); + zephir_array_update_string(&_41$$26, SL("model"), &intermediateModel, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_41$$26); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_37$$22, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&message); + if (nesting) { + ZVAL_BOOL(&_42$$22, 1); + } else { + ZVAL_BOOL(&_42$$22, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_43, 0, &_42$$22); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &relatedRecords, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_20$$4, &relatedRecords, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_20$$4)) { + break; + } + ZEPHIR_CALL_METHOD(&recordAfter, &relatedRecords, "current", NULL, 0); + zephir_check_call_status(); + if (!(isThrough)) { + ZEPHIR_CALL_METHOD(NULL, &recordAfter, "writeattribute", NULL, 0, &referencedFields, &value); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(&_44$$27, &recordAfter, "save", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_44$$27))) { + ZEPHIR_CALL_METHOD(&_45$$29, &recordAfter, "getmessages", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&_45$$29, 0, "phalcon/Mvc/Model.zep", 5012); + if (Z_TYPE_P(&_45$$29) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_45$$29), _46$$29) + { + ZEPHIR_INIT_NVAR(&message); + ZVAL_COPY(&message, _46$$29); + if (Z_TYPE_P(&message) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_48$$31); + zephir_create_array(&_48$$31, 1, 0); + zephir_array_update_string(&_48$$31, SL("model"), &recordAfter, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_48$$31); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_45$$29, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_47$$29, &_45$$29, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_47$$29)) { + break; + } + ZEPHIR_CALL_METHOD(&message, &_45$$29, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&message) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_49$$33); + zephir_create_array(&_49$$33, 1, 0); + zephir_array_update_string(&_49$$33, SL("model"), &recordAfter, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_49$$33); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_45$$29, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&message); + if (nesting) { + ZVAL_BOOL(&_50$$29, 1); + } else { + ZVAL_BOOL(&_50$$29, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_51, 0, &_50$$29); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + if (isThrough) { + ZEPHIR_CALL_METHOD(&_52$$34, &manager, "load", &_53, 0, &intermediateModelName); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&intermediateModel, &_52$$34); + ZEPHIR_CALL_METHOD(&_52$$34, &relation, "gettype", &_54, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&_52$$34, 3)) { + ZEPHIR_INIT_NVAR(&_55$$35); + zephir_create_array(&_55$$35, 2, 0); + ZEPHIR_INIT_NVAR(&_56$$35); + ZEPHIR_CONCAT_SVS(&_56$$35, "[", &intermediateFields, "] = ?0"); + zephir_array_fast_append(&_55$$35, &_56$$35); + ZEPHIR_INIT_NVAR(&_57$$35); + zephir_create_array(&_57$$35, 1, 0); + zephir_array_fast_append(&_57$$35, &value); + zephir_array_update_string(&_55$$35, SL("bind"), &_57$$35, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&existingIntermediateModel, &intermediateModel, "findfirst", NULL, 0, &_55$$35); + zephir_check_call_status(); + if (zephir_is_true(&existingIntermediateModel)) { + ZEPHIR_CPY_WRT(&intermediateModel, &existingIntermediateModel); + } + } + ZEPHIR_CALL_METHOD(NULL, &intermediateModel, "writeattribute", NULL, 0, &intermediateFields, &value); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&intermediateValue, &recordAfter, "readattribute", NULL, 0, &referencedFields); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &intermediateModel, "writeattribute", NULL, 0, &intermediateReferencedFields, &intermediateValue); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_58$$34, &intermediateModel, "save", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_58$$34))) { + ZEPHIR_CALL_METHOD(&_59$$37, &intermediateModel, "getmessages", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&_59$$37, 0, "phalcon/Mvc/Model.zep", 5093); + if (Z_TYPE_P(&_59$$37) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_59$$37), _60$$37) + { + ZEPHIR_INIT_NVAR(&message); + ZVAL_COPY(&message, _60$$37); + if (Z_TYPE_P(&message) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_62$$39); + zephir_create_array(&_62$$39, 1, 0); + zephir_array_update_string(&_62$$39, SL("model"), &intermediateModel, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_62$$39); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_59$$37, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_61$$37, &_59$$37, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_61$$37)) { + break; + } + ZEPHIR_CALL_METHOD(&message, &_59$$37, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&message) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_63$$41); + zephir_create_array(&_63$$41, 1, 0); + zephir_array_update_string(&_63$$41, SL("model"), &intermediateModel, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_63$$41); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_59$$37, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&message); + if (nesting) { + ZVAL_BOOL(&_64$$37, 1); + } else { + ZVAL_BOOL(&_64$$37, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_65, 0, &_64$$37); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + } + ZEPHIR_CALL_METHOD(NULL, &relatedRecords, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&recordAfter); + } else { + if (UNEXPECTED(Z_TYPE_P(&record) != IS_ARRAY)) { + if (nesting) { + ZVAL_BOOL(&_66$$43, 1); + } else { + ZVAL_BOOL(&_66$$43, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_67, 0, &_66$$43); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_68$$43); + object_init_ex(&_68$$43, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_69$$43); + ZEPHIR_CONCAT_SVSVS(&_69$$43, "There are no defined relations for the model '", &className, "' using alias '", &name, "'"); + ZEPHIR_CALL_METHOD(NULL, &_68$$43, "__construct", &_17, 8, &_69$$43); + zephir_check_call_status(); + zephir_throw_exception_debug(&_68$$43, "phalcon/Mvc/Model.zep", 5105); + ZEPHIR_MM_RESTORE(); + return; + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, related, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, related, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&name, related, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&record, related, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_70$$44, &manager, "getrelationbyalias", &_71, 0, &className, &name); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&relation, &_70$$44); + if (Z_TYPE_P(&relation) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(&_72$$45, &relation, "gettype", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&_72$$45, 0)) { + continue; + } + _73$$45 = Z_TYPE_P(&record) != IS_OBJECT; + if (_73$$45) { + _73$$45 = Z_TYPE_P(&record) != IS_ARRAY; + } + if (UNEXPECTED(_73$$45)) { + if (nesting) { + ZVAL_BOOL(&_74$$47, 1); + } else { + ZVAL_BOOL(&_74$$47, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_75, 0, &_74$$47); + zephir_check_call_status(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects/arrays can be stored as part of has-many/has-one/has-one-through/has-many-to-many relations", "phalcon/Mvc/Model.zep", 4926); + return; + } + ZEPHIR_CALL_METHOD(&columns, &relation, "getfields", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&referencedModel, &relation, "getreferencedmodel", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&referencedFields, &relation, "getreferencedfields", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&columns) == IS_ARRAY)) { + if (nesting) { + ZVAL_BOOL(&_76$$48, 1); + } else { + ZVAL_BOOL(&_76$$48, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_77, 0, &_76$$48); + zephir_check_call_status(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/Mvc/Model.zep", 4936); + return; + } + if (Z_TYPE_P(&record) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_78$$49); + zephir_create_array(&_78$$49, 1, 0); + zephir_array_fast_append(&_78$$49, &record); + ZEPHIR_CPY_WRT(&relatedRecords, &_78$$49); + } else { + ZEPHIR_CPY_WRT(&relatedRecords, &record); + } + ZEPHIR_OBS_NVAR(&value); + if (UNEXPECTED(!(zephir_fetch_property_zval(&value, this_ptr, &columns, PH_SILENT_CC)))) { + if (nesting) { + ZVAL_BOOL(&_79$$51, 1); + } else { + ZVAL_BOOL(&_79$$51, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_80, 0, &_79$$51); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_81$$51); + object_init_ex(&_81$$51, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_82$$51); + ZEPHIR_CONCAT_SVS(&_82$$51, "The column '", &columns, "' needs to be present in the model"); + ZEPHIR_CALL_METHOD(NULL, &_81$$51, "__construct", &_17, 8, &_82$$51); + zephir_check_call_status(); + zephir_throw_exception_debug(&_81$$51, "phalcon/Mvc/Model.zep", 4953); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_METHOD(&_83$$45, &relation, "isthrough", NULL, 0); + zephir_check_call_status(); + isThrough = zephir_get_boolval(&_83$$45); + if (isThrough) { + ZEPHIR_CALL_METHOD(&intermediateModelName, &relation, "getintermediatemodel", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&intermediateFields, &relation, "getintermediatefields", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&intermediateReferencedFields, &relation, "getintermediatereferencedfields", NULL, 0); + zephir_check_call_status(); + } + zephir_is_iterable(&relatedRecords, 0, "phalcon/Mvc/Model.zep", 5099); + if (Z_TYPE_P(&relatedRecords) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relatedRecords), _84$$45) + { + ZEPHIR_INIT_NVAR(&recordAfter); + ZVAL_COPY(&recordAfter, _84$$45); + if (!(isThrough)) { + ZEPHIR_CALL_METHOD(NULL, &recordAfter, "writeattribute", NULL, 0, &referencedFields, &value); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(&_86$$53, &recordAfter, "save", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_86$$53))) { + ZEPHIR_CALL_METHOD(&_87$$55, &recordAfter, "getmessages", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&_87$$55, 0, "phalcon/Mvc/Model.zep", 5012); + if (Z_TYPE_P(&_87$$55) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_87$$55), _88$$55) + { + ZEPHIR_INIT_NVAR(&message); + ZVAL_COPY(&message, _88$$55); + if (Z_TYPE_P(&message) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_90$$57); + zephir_create_array(&_90$$57, 1, 0); + zephir_array_update_string(&_90$$57, SL("model"), &recordAfter, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_90$$57); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_87$$55, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_89$$55, &_87$$55, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_89$$55)) { + break; + } + ZEPHIR_CALL_METHOD(&message, &_87$$55, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&message) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_91$$59); + zephir_create_array(&_91$$59, 1, 0); + zephir_array_update_string(&_91$$59, SL("model"), &recordAfter, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_91$$59); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_87$$55, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&message); + if (nesting) { + ZVAL_BOOL(&_92$$55, 1); + } else { + ZVAL_BOOL(&_92$$55, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_93, 0, &_92$$55); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + if (isThrough) { + ZEPHIR_CALL_METHOD(&_94$$60, &manager, "load", &_95, 0, &intermediateModelName); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&intermediateModel, &_94$$60); + ZEPHIR_CALL_METHOD(&_94$$60, &relation, "gettype", &_96, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&_94$$60, 3)) { + ZEPHIR_INIT_NVAR(&_97$$61); + zephir_create_array(&_97$$61, 2, 0); + ZEPHIR_INIT_NVAR(&_98$$61); + ZEPHIR_CONCAT_SVS(&_98$$61, "[", &intermediateFields, "] = ?0"); + zephir_array_fast_append(&_97$$61, &_98$$61); + ZEPHIR_INIT_NVAR(&_99$$61); + zephir_create_array(&_99$$61, 1, 0); + zephir_array_fast_append(&_99$$61, &value); + zephir_array_update_string(&_97$$61, SL("bind"), &_99$$61, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&existingIntermediateModel, &intermediateModel, "findfirst", NULL, 0, &_97$$61); + zephir_check_call_status(); + if (zephir_is_true(&existingIntermediateModel)) { + ZEPHIR_CPY_WRT(&intermediateModel, &existingIntermediateModel); + } + } + ZEPHIR_CALL_METHOD(NULL, &intermediateModel, "writeattribute", NULL, 0, &intermediateFields, &value); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&intermediateValue, &recordAfter, "readattribute", NULL, 0, &referencedFields); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &intermediateModel, "writeattribute", NULL, 0, &intermediateReferencedFields, &intermediateValue); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_100$$60, &intermediateModel, "save", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_100$$60))) { + ZEPHIR_CALL_METHOD(&_101$$63, &intermediateModel, "getmessages", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&_101$$63, 0, "phalcon/Mvc/Model.zep", 5093); + if (Z_TYPE_P(&_101$$63) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_101$$63), _102$$63) + { + ZEPHIR_INIT_NVAR(&message); + ZVAL_COPY(&message, _102$$63); + if (Z_TYPE_P(&message) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_104$$65); + zephir_create_array(&_104$$65, 1, 0); + zephir_array_update_string(&_104$$65, SL("model"), &intermediateModel, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_104$$65); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_101$$63, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_103$$63, &_101$$63, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_103$$63)) { + break; + } + ZEPHIR_CALL_METHOD(&message, &_101$$63, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&message) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_105$$67); + zephir_create_array(&_105$$67, 1, 0); + zephir_array_update_string(&_105$$67, SL("model"), &intermediateModel, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_105$$67); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_101$$63, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&message); + if (nesting) { + ZVAL_BOOL(&_106$$63, 1); + } else { + ZVAL_BOOL(&_106$$63, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_107, 0, &_106$$63); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &relatedRecords, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_85$$45, &relatedRecords, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_85$$45)) { + break; + } + ZEPHIR_CALL_METHOD(&recordAfter, &relatedRecords, "current", NULL, 0); + zephir_check_call_status(); + if (!(isThrough)) { + ZEPHIR_CALL_METHOD(NULL, &recordAfter, "writeattribute", NULL, 0, &referencedFields, &value); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(&_108$$68, &recordAfter, "save", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_108$$68))) { + ZEPHIR_CALL_METHOD(&_109$$70, &recordAfter, "getmessages", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&_109$$70, 0, "phalcon/Mvc/Model.zep", 5012); + if (Z_TYPE_P(&_109$$70) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_109$$70), _110$$70) + { + ZEPHIR_INIT_NVAR(&message); + ZVAL_COPY(&message, _110$$70); + if (Z_TYPE_P(&message) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_112$$72); + zephir_create_array(&_112$$72, 1, 0); + zephir_array_update_string(&_112$$72, SL("model"), &recordAfter, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_112$$72); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_109$$70, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_111$$70, &_109$$70, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_111$$70)) { + break; + } + ZEPHIR_CALL_METHOD(&message, &_109$$70, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&message) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_113$$74); + zephir_create_array(&_113$$74, 1, 0); + zephir_array_update_string(&_113$$74, SL("model"), &recordAfter, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_113$$74); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_109$$70, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&message); + if (nesting) { + ZVAL_BOOL(&_114$$70, 1); + } else { + ZVAL_BOOL(&_114$$70, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_115, 0, &_114$$70); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + if (isThrough) { + ZEPHIR_CALL_METHOD(&_116$$75, &manager, "load", &_117, 0, &intermediateModelName); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&intermediateModel, &_116$$75); + ZEPHIR_CALL_METHOD(&_116$$75, &relation, "gettype", &_118, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&_116$$75, 3)) { + ZEPHIR_INIT_NVAR(&_119$$76); + zephir_create_array(&_119$$76, 2, 0); + ZEPHIR_INIT_NVAR(&_120$$76); + ZEPHIR_CONCAT_SVS(&_120$$76, "[", &intermediateFields, "] = ?0"); + zephir_array_fast_append(&_119$$76, &_120$$76); + ZEPHIR_INIT_NVAR(&_121$$76); + zephir_create_array(&_121$$76, 1, 0); + zephir_array_fast_append(&_121$$76, &value); + zephir_array_update_string(&_119$$76, SL("bind"), &_121$$76, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&existingIntermediateModel, &intermediateModel, "findfirst", NULL, 0, &_119$$76); + zephir_check_call_status(); + if (zephir_is_true(&existingIntermediateModel)) { + ZEPHIR_CPY_WRT(&intermediateModel, &existingIntermediateModel); + } + } + ZEPHIR_CALL_METHOD(NULL, &intermediateModel, "writeattribute", NULL, 0, &intermediateFields, &value); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&intermediateValue, &recordAfter, "readattribute", NULL, 0, &referencedFields); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &intermediateModel, "writeattribute", NULL, 0, &intermediateReferencedFields, &intermediateValue); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_122$$75, &intermediateModel, "save", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_122$$75))) { + ZEPHIR_CALL_METHOD(&_123$$78, &intermediateModel, "getmessages", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&_123$$78, 0, "phalcon/Mvc/Model.zep", 5093); + if (Z_TYPE_P(&_123$$78) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_123$$78), _124$$78) + { + ZEPHIR_INIT_NVAR(&message); + ZVAL_COPY(&message, _124$$78); + if (Z_TYPE_P(&message) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_126$$80); + zephir_create_array(&_126$$80, 1, 0); + zephir_array_update_string(&_126$$80, SL("model"), &intermediateModel, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_126$$80); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_123$$78, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_125$$78, &_123$$78, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_125$$78)) { + break; + } + ZEPHIR_CALL_METHOD(&message, &_123$$78, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&message) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_127$$82); + zephir_create_array(&_127$$82, 1, 0); + zephir_array_update_string(&_127$$82, SL("model"), &intermediateModel, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_127$$82); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_123$$78, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&message); + if (nesting) { + ZVAL_BOOL(&_128$$78, 1); + } else { + ZVAL_BOOL(&_128$$78, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_129, 0, &_128$$78); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + } + ZEPHIR_CALL_METHOD(NULL, &relatedRecords, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&recordAfter); + } else { + if (UNEXPECTED(Z_TYPE_P(&record) != IS_ARRAY)) { + if (nesting) { + ZVAL_BOOL(&_130$$84, 1); + } else { + ZVAL_BOOL(&_130$$84, 0); + } + ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_131, 0, &_130$$84); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_132$$84); + object_init_ex(&_132$$84, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_133$$84); + ZEPHIR_CONCAT_SVSVS(&_133$$84, "There are no defined relations for the model '", &className, "' using alias '", &name, "'"); + ZEPHIR_CALL_METHOD(NULL, &_132$$84, "__construct", &_17, 8, &_133$$84); + zephir_check_call_status(); + zephir_throw_exception_debug(&_132$$84, "phalcon/Mvc/Model.zep", 5105); + ZEPHIR_MM_RESTORE(); + return; + } + } + ZEPHIR_CALL_METHOD(NULL, related, "next", NULL, 0); + zephir_check_call_status(); + } } - if (_6) { - zephir_read_property(&_9$$3, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_10$$3, &_9$$3, SL("LIMIT"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 242); - ZEPHIR_INIT_VAR(&_11$$3); - ZEPHIR_CONCAT_SV(&_11$$3, " TOP ", &_10$$3); - zephir_get_strval(&limit, &_11$$3); + ZEPHIR_INIT_NVAR(&record); + ZEPHIR_INIT_NVAR(&name); + if (nesting) { + ZVAL_BOOL(&_134, 1); + } else { + ZVAL_BOOL(&_134, 0); } - RETURN_CTOR(&limit); + ZEPHIR_CALL_METHOD(NULL, connection, "commit", NULL, 0, &_134); + zephir_check_call_status(); + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, buildLimit) +static PHP_METHOD(Phalcon_Mvc_Model, allowEmptyStringValues) { - zval method, suffix, _0, _1, _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *attributes_param = NULL, __$true, keysAttributes, attribute, *_0, _1, _2; + zval attributes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&suffix); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&attributes); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&keysAttributes); + ZVAL_UNDEF(&attribute); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &attributes_param); + ZEPHIR_OBS_COPY_OR_DUP(&attributes, attributes_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&suffix, &_0, "getdrivername", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "sqlsrv"); - if (!ZEPHIR_IS_IDENTICAL(&_1, &suffix)) { - ZEPHIR_INIT_NVAR(&suffix); - ZVAL_STRING(&suffix, "common"); - } - ZEPHIR_INIT_VAR(&_2); - zephir_ucfirst(&_2, &suffix); - ZEPHIR_INIT_VAR(&method); - ZEPHIR_CONCAT_SV(&method, "buildLimit", &_2); - ZEPHIR_RETURN_CALL_METHOD_ZVAL(this_ptr, &method, NULL, 0); - zephir_check_call_status(); - RETURN_MM(); -} -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, buildLimitCommon) -{ - zval _0, _1, _5, _6, _10, _2$$3, _3$$3, _4$$3, _7$$4, _8$$4, _9$$4, _11$$5, _12$$5; - zval limit; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&limit); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_8$$4); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_11$$5); - ZVAL_UNDEF(&_12$$5); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&limit); - zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_1, &_0, SL("LIMIT"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 277); - if (!ZEPHIR_IS_LONG_IDENTICAL(&_1, 0)) { - zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_3$$3, &_2$$3, SL("LIMIT"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 278); - ZEPHIR_INIT_VAR(&_4$$3); - ZEPHIR_CONCAT_SV(&_4$$3, "LIMIT ", &_3$$3); - zephir_concat_self(&limit, &_4$$3); - } - zephir_read_property(&_5, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_6, &_5, SL("OFFSET"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 281); - if (!ZEPHIR_IS_LONG_IDENTICAL(&_6, 0)) { - zephir_read_property(&_7$$4, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_8$$4, &_7$$4, SL("OFFSET"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 282); - ZEPHIR_INIT_VAR(&_9$$4); - ZEPHIR_CONCAT_SV(&_9$$4, " OFFSET ", &_8$$4); - zephir_concat_self(&limit, &_9$$4); - } - ZEPHIR_INIT_VAR(&_10); - ZVAL_STRING(&_10, ""); - if (!ZEPHIR_IS_IDENTICAL(&_10, &limit)) { - ZEPHIR_INIT_VAR(&_11$$5); - zephir_fast_trim(&_11$$5, &limit, NULL , ZEPHIR_TRIM_LEFT); - ZEPHIR_INIT_VAR(&_12$$5); - ZEPHIR_CONCAT_SV(&_12$$5, " ", &_11$$5); - zephir_get_strval(&limit, &_12$$5); + ZEPHIR_INIT_VAR(&keysAttributes); + array_init(&keysAttributes); + zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model.zep", 5146); + if (Z_TYPE_P(&attributes) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _0) + { + ZEPHIR_INIT_NVAR(&attribute); + ZVAL_COPY(&attribute, _0); + zephir_array_update_zval(&keysAttributes, &attribute, &__$true, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &attributes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&attribute, &attributes, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_update_zval(&keysAttributes, &attribute, &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); + zephir_check_call_status(); + } } - RETURN_CTOR(&limit); + ZEPHIR_INIT_NVAR(&attribute); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getmodelsmetadata", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_2, "setemptystringattributes", NULL, 0, this_ptr, &keysAttributes); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, buildLimitSqlsrv) +static PHP_METHOD(Phalcon_Mvc_Model, cancelOperation) { - zend_bool _2; - zval _0, _1, _3, _4, _5$$3, _6$$3, _7$$3, _8$$3, _9$$3; - zval limit; + zval _0, _1$$3, _2$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&limit); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_8$$3); - ZVAL_UNDEF(&_9$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(&limit); - zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_1, &_0, SL("LIMIT"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 301); - _2 = ZEPHIR_GT_LONG(&_1, 0); - if (_2) { - zephir_read_property(&_3, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_4, &_3, SL("OFFSET"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 301); - _2 = ZEPHIR_GT_LONG(&_4, 0); - } - if (_2) { - zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_6$$3, &_5$$3, SL("OFFSET"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 302); - zephir_read_property(&_7$$3, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_8$$3, &_7$$3, SL("LIMIT"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 303); - ZEPHIR_INIT_VAR(&_9$$3); - ZEPHIR_CONCAT_SVSSVS(&_9$$3, " OFFSET ", &_6$$3, " ROWS", " FETCH NEXT ", &_8$$3, " ROWS ONLY"); - zephir_get_strval(&limit, &_9$$3); + zephir_read_property(&_0, this_ptr, ZEND_STRL("operationMade"), PH_NOISY_CC | PH_READONLY); + if (ZEPHIR_IS_LONG(&_0, 3)) { + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, "notDeleted"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_1$$3); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_VAR(&_2$$4); + ZVAL_STRING(&_2$$4, "notSaved"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_2$$4); + zephir_check_call_status(); } - RETURN_CTOR(&limit); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, appendCondition) +static PHP_METHOD(Phalcon_Mvc_Model, belongsTo) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *store_param = NULL, *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, key, _2, _3, _6, _7, _8, _9, _10, _11, _0$$3, _1$$3, _4$$4; - zval store, condition; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval referenceModel; + zval *fields, fields_sub, *referenceModel_param = NULL, *referencedFields, referencedFields_sub, *options = NULL, options_sub, __$null, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&store); - ZVAL_UNDEF(&condition); - ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&fields_sub); + ZVAL_UNDEF(&referencedFields_sub); + ZVAL_UNDEF(&options_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&referenceModel); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 4) - Z_PARAM_STR(store) - Z_PARAM_STR(condition) + ZEND_PARSE_PARAMETERS_START(3, 4) + Z_PARAM_ZVAL(fields) + Z_PARAM_STR(referenceModel) + Z_PARAM_ZVAL(referencedFields) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(value) - Z_PARAM_LONG(type) + Z_PARAM_ZVAL_OR_NULL(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 2, &store_param, &condition_param, &value, &type_param); - zephir_get_strval(&store, store_param); - zephir_get_strval(&condition, condition_param); - if (!value) { - value = &value_sub; - value = &__$null; + zephir_fetch_params(1, 3, 1, &fields, &referenceModel_param, &referencedFields, &options); + if (UNEXPECTED(Z_TYPE_P(referenceModel_param) != IS_STRING && Z_TYPE_P(referenceModel_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceModel' must be of the type string")); + RETURN_MM_NULL(); } - if (!type_param) { - type = -1; + if (EXPECTED(Z_TYPE_P(referenceModel_param) == IS_STRING)) { + zephir_get_strval(&referenceModel, referenceModel_param); } else { - type = zephir_get_intval(type_param); + ZEPHIR_INIT_VAR(&referenceModel); + } + if (!options) { + options = &options_sub; + options = &__$null; } - if (!(ZEPHIR_IS_EMPTY(value))) { - ZVAL_LONG(&_1$$3, type); - ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "bindinline", NULL, 0, value, &_1$$3); - zephir_check_call_status(); - zephir_concat_self(&condition, &_0$$3); - } - zephir_read_property(&_2, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_3, &_2, &store, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 329); - if (ZEPHIR_IS_EMPTY(&_3)) { - ZEPHIR_INIT_VAR(&_4$$4); - ZVAL_STRING(&_4$$4, ""); - zephir_update_property_array_multi(this_ptr, SL("store"), &_4$$4, SL("za"), 2, &store); - } - zephir_read_property(&_6, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_7, &_6, &store, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 333); - ZEPHIR_CALL_CE_STATIC(&key, phalcon_helper_arr_ce, "lastkey", &_5, 49, &_7); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "addbelongsto", NULL, 0, this_ptr, fields, &referenceModel, referencedFields, options); zephir_check_call_status(); - zephir_read_property(&_8, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_9, &_8, &store, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 335); - zephir_array_fetch(&_10, &_9, &key, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 335); - ZEPHIR_INIT_VAR(&_11); - ZEPHIR_CONCAT_VV(&_11, &_10, &condition); - zephir_update_property_array_multi(this_ptr, SL("store"), &_11, SL("zz"), 2, &store, &key); - ZEPHIR_MM_RESTORE(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, processValue) +static PHP_METHOD(Phalcon_Mvc_Model, getPreparedQuery) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *store_param = NULL, *data = NULL, data_sub, _0$$3, _1$$4, _2$$4, _3$$4; - zval store; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *params, params_sub, *limit = NULL, limit_sub, __$null, builder, bindParams, bindTypes, transaction, cache, manager, query, container, _1, _2, _3$$5, _4$$7; zval *this_ptr = getThis(); - ZVAL_UNDEF(&store); - ZVAL_UNDEF(&data_sub); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(¶ms_sub); + ZVAL_UNDEF(&limit_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&builder); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&transaction); + ZVAL_UNDEF(&cache); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&query); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_4$$7); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(store) - Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(params) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(limit) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &store_param, &data); - zephir_get_strval(&store, store_param); - ZEPHIR_SEPARATE_PARAM(data); + zephir_fetch_params(1, 1, 1, ¶ms, &limit); + if (!limit) { + limit = &limit_sub; + limit = &__$null; + } - if (Z_TYPE_P(data) == IS_STRING) { - ZEPHIR_INIT_VAR(&_0$$3); - zephir_create_array(&_0$$3, 1, 0); - zephir_array_fast_append(&_0$$3, data); - ZEPHIR_CPY_WRT(data, &_0$$3); + ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_0, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "modelsManager"); + ZEPHIR_CALL_METHOD(&_1, &container, "getshared", NULL, 0, &_2); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&manager, &_1); + ZEPHIR_CALL_METHOD(&_1, &manager, "createbuilder", NULL, 0, params); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&builder, &_1); + ZEPHIR_INIT_NVAR(&_2); + zephir_get_called_class(&_2); + ZEPHIR_CALL_METHOD(NULL, &builder, "from", NULL, 0, &_2); + zephir_check_call_status(); + if (Z_TYPE_P(limit) != IS_NULL) { + ZEPHIR_CALL_METHOD(NULL, &builder, "limit", NULL, 0, limit); + zephir_check_call_status(); } - if (Z_TYPE_P(data) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&_1$$4); - zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_3$$4, &_2$$4, &store, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 352); - zephir_fast_array_merge(&_1$$4, &_3$$4, data); - zephir_update_property_array(this_ptr, SL("store"), &store, &_1$$4); + ZEPHIR_CALL_METHOD(&_1, &builder, "getquery", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&query, &_1); + ZEPHIR_OBS_VAR(&bindParams); + if (zephir_array_isset_string_fetch(&bindParams, params, SL("bind"), 0)) { + if (Z_TYPE_P(&bindParams) == IS_ARRAY) { + ZVAL_BOOL(&_3$$5, 1); + ZEPHIR_CALL_METHOD(NULL, &query, "setbindparams", NULL, 0, &bindParams, &_3$$5); + zephir_check_call_status(); + } + ZEPHIR_OBS_VAR(&bindTypes); + if (zephir_array_isset_string_fetch(&bindTypes, params, SL("bindTypes"), 0)) { + if (Z_TYPE_P(&bindTypes) == IS_ARRAY) { + ZVAL_BOOL(&_4$$7, 1); + ZEPHIR_CALL_METHOD(NULL, &query, "setbindtypes", NULL, 0, &bindTypes, &_4$$7); + zephir_check_call_status(); + } + } } - ZEPHIR_MM_RESTORE(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Query_AbstractQuery) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\DataMapper\\Query, AbstractQuery, phalcon, datamapper_query_abstractquery, phalcon_datamapper_query_abstractquery_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_null(phalcon_datamapper_query_abstractquery_ce, SL("bind"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_datamapper_query_abstractquery_ce, SL("connection"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_datamapper_query_abstractquery_ce, SL("store"), ZEND_ACC_PROTECTED); - phalcon_datamapper_query_abstractquery_ce->create_object = zephir_init_properties_Phalcon_DataMapper_Query_AbstractQuery; - - return SUCCESS; + ZEPHIR_OBS_VAR(&transaction); + if (zephir_array_isset_string_fetch(&transaction, params, SL("transaction"), 0)) { + if (zephir_instance_of_ev(&transaction, phalcon_mvc_model_transactioninterface_ce)) { + ZEPHIR_CALL_METHOD(NULL, &query, "settransaction", NULL, 0, &transaction); + zephir_check_call_status(); + } + } + ZEPHIR_OBS_VAR(&cache); + if (zephir_array_isset_string_fetch(&cache, params, SL("cache"), 0)) { + ZEPHIR_CALL_METHOD(NULL, &query, "cache", NULL, 0, &cache); + zephir_check_call_status(); + } + RETURN_CCTOR(&query); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, __construct) +static PHP_METHOD(Phalcon_Mvc_Model, hasMany) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *connection, connection_sub, *bind, bind_sub, _0, _1; + zval referenceModel; + zval *fields, fields_sub, *referenceModel_param = NULL, *referencedFields, referencedFields_sub, *options = NULL, options_sub, __$null, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&connection_sub); - ZVAL_UNDEF(&bind_sub); + ZVAL_UNDEF(&fields_sub); + ZVAL_UNDEF(&referencedFields_sub); + ZVAL_UNDEF(&options_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&referenceModel); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_datamapper_pdo_connection_ce) - Z_PARAM_OBJECT_OF_CLASS(bind, phalcon_datamapper_query_bind_ce) + ZEND_PARSE_PARAMETERS_START(3, 4) + Z_PARAM_ZVAL(fields) + Z_PARAM_STR(referenceModel) + Z_PARAM_ZVAL(referencedFields) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &connection, &bind); + zephir_fetch_params(1, 3, 1, &fields, &referenceModel_param, &referencedFields, &options); + if (UNEXPECTED(Z_TYPE_P(referenceModel_param) != IS_STRING && Z_TYPE_P(referenceModel_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceModel' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(referenceModel_param) == IS_STRING)) { + zephir_get_strval(&referenceModel, referenceModel_param); + } else { + ZEPHIR_INIT_VAR(&referenceModel); + } + if (!options) { + options = &options_sub; + options = &__$null; + } - zephir_update_property_zval(this_ptr, ZEND_STRL("bind"), bind); - zephir_update_property_zval(this_ptr, ZEND_STRL("connection"), connection); - ZEPHIR_INIT_VAR(&_0); - array_init(&_0); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "UNION"); - zephir_update_property_array(this_ptr, SL("store"), &_1, &_0); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "reset", NULL, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "addhasmany", NULL, 0, this_ptr, fields, &referenceModel, referencedFields, options); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, bindInline) +static PHP_METHOD(Phalcon_Mvc_Model, hasManyToMany) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *value, value_sub, *type_param = NULL, _0, _1; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval intermediateModel, referenceModel; + zval *fields, fields_sub, *intermediateModel_param = NULL, *intermediateFields, intermediateFields_sub, *intermediateReferencedFields, intermediateReferencedFields_sub, *referenceModel_param = NULL, *referencedFields, referencedFields_sub, *options = NULL, options_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&fields_sub); + ZVAL_UNDEF(&intermediateFields_sub); + ZVAL_UNDEF(&intermediateReferencedFields_sub); + ZVAL_UNDEF(&referencedFields_sub); + ZVAL_UNDEF(&options_sub); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&intermediateModel); + ZVAL_UNDEF(&referenceModel); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_START(6, 7) + Z_PARAM_ZVAL(fields) + Z_PARAM_STR(intermediateModel) + Z_PARAM_ZVAL(intermediateFields) + Z_PARAM_ZVAL(intermediateReferencedFields) + Z_PARAM_STR(referenceModel) + Z_PARAM_ZVAL(referencedFields) Z_PARAM_OPTIONAL - Z_PARAM_LONG(type) + Z_PARAM_ZVAL(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &value, &type_param); - if (!type_param) { - type = -1; + zephir_fetch_params(1, 6, 1, &fields, &intermediateModel_param, &intermediateFields, &intermediateReferencedFields, &referenceModel_param, &referencedFields, &options); + if (UNEXPECTED(Z_TYPE_P(intermediateModel_param) != IS_STRING && Z_TYPE_P(intermediateModel_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'intermediateModel' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(intermediateModel_param) == IS_STRING)) { + zephir_get_strval(&intermediateModel, intermediateModel_param); } else { - type = zephir_get_intval(type_param); + ZEPHIR_INIT_VAR(&intermediateModel); + } + if (UNEXPECTED(Z_TYPE_P(referenceModel_param) != IS_STRING && Z_TYPE_P(referenceModel_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceModel' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(referenceModel_param) == IS_STRING)) { + zephir_get_strval(&referenceModel, referenceModel_param); + } else { + ZEPHIR_INIT_VAR(&referenceModel); + } + if (!options) { + options = &options_sub; + ZEPHIR_INIT_VAR(options); + array_init(options); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_1, type); - ZEPHIR_RETURN_CALL_METHOD(&_0, "bindinline", NULL, 0, value, &_1); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "addhasmanytomany", NULL, 0, this_ptr, fields, &intermediateModel, intermediateFields, intermediateReferencedFields, &referenceModel, referencedFields, options); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, bindValue) +static PHP_METHOD(Phalcon_Mvc_Model, hasOne) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *value, value_sub, *type_param = NULL, _0, _1; - zval key; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval referenceModel; + zval *fields, fields_sub, *referenceModel_param = NULL, *referencedFields, referencedFields_sub, *options = NULL, options_sub, __$null, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&fields_sub); + ZVAL_UNDEF(&referencedFields_sub); + ZVAL_UNDEF(&options_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&referenceModel); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(key) - Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_START(3, 4) + Z_PARAM_ZVAL(fields) + Z_PARAM_STR(referenceModel) + Z_PARAM_ZVAL(referencedFields) Z_PARAM_OPTIONAL - Z_PARAM_LONG(type) + Z_PARAM_ZVAL_OR_NULL(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &key_param, &value, &type_param); - zephir_get_strval(&key, key_param); - if (!type_param) { - type = -1; + zephir_fetch_params(1, 3, 1, &fields, &referenceModel_param, &referencedFields, &options); + if (UNEXPECTED(Z_TYPE_P(referenceModel_param) != IS_STRING && Z_TYPE_P(referenceModel_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceModel' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(referenceModel_param) == IS_STRING)) { + zephir_get_strval(&referenceModel, referenceModel_param); } else { - type = zephir_get_intval(type_param); + ZEPHIR_INIT_VAR(&referenceModel); + } + if (!options) { + options = &options_sub; + options = &__$null; } - zephir_read_property(&_0, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_1, type); - ZEPHIR_CALL_METHOD(NULL, &_0, "setvalue", NULL, 0, &key, value, &_1); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "addhasone", NULL, 0, this_ptr, fields, &referenceModel, referencedFields, options); zephir_check_call_status(); - RETURN_THIS(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, bindValues) +static PHP_METHOD(Phalcon_Mvc_Model, hasOneThrough) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *values_param = NULL, _0; - zval values; + zval intermediateModel, referenceModel; + zval *fields, fields_sub, *intermediateModel_param = NULL, *intermediateFields, intermediateFields_sub, *intermediateReferencedFields, intermediateReferencedFields_sub, *referenceModel_param = NULL, *referencedFields, referencedFields_sub, *options = NULL, options_sub, __$null, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&values); + ZVAL_UNDEF(&fields_sub); + ZVAL_UNDEF(&intermediateFields_sub); + ZVAL_UNDEF(&intermediateReferencedFields_sub); + ZVAL_UNDEF(&referencedFields_sub); + ZVAL_UNDEF(&options_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&intermediateModel); + ZVAL_UNDEF(&referenceModel); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(values) + ZEND_PARSE_PARAMETERS_START(6, 7) + Z_PARAM_ZVAL(fields) + Z_PARAM_STR(intermediateModel) + Z_PARAM_ZVAL(intermediateFields) + Z_PARAM_ZVAL(intermediateReferencedFields) + Z_PARAM_STR(referenceModel) + Z_PARAM_ZVAL(referencedFields) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &values_param); - zephir_get_arrval(&values, values_param); + zephir_fetch_params(1, 6, 1, &fields, &intermediateModel_param, &intermediateFields, &intermediateReferencedFields, &referenceModel_param, &referencedFields, &options); + if (UNEXPECTED(Z_TYPE_P(intermediateModel_param) != IS_STRING && Z_TYPE_P(intermediateModel_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'intermediateModel' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(intermediateModel_param) == IS_STRING)) { + zephir_get_strval(&intermediateModel, intermediateModel_param); + } else { + ZEPHIR_INIT_VAR(&intermediateModel); + } + if (UNEXPECTED(Z_TYPE_P(referenceModel_param) != IS_STRING && Z_TYPE_P(referenceModel_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceModel' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(referenceModel_param) == IS_STRING)) { + zephir_get_strval(&referenceModel, referenceModel_param); + } else { + ZEPHIR_INIT_VAR(&referenceModel); + } + if (!options) { + options = &options_sub; + options = &__$null; + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_0, "setvalues", NULL, 0, &values); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "addhasonethrough", NULL, 0, this_ptr, fields, &intermediateModel, intermediateFields, intermediateReferencedFields, &referenceModel, referencedFields, options); zephir_check_call_status(); - RETURN_THIS(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, getBindValues) +static PHP_METHOD(Phalcon_Mvc_Model, keepSnapshots) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *keepSnapshot_param = NULL, _0, _1; + zend_bool keepSnapshot; zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(keepSnapshot) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &keepSnapshot_param); + keepSnapshot = zephir_get_boolval(keepSnapshot_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "toarray", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); -} -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, getStatement) -{ + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + if (keepSnapshot) { + ZVAL_BOOL(&_1, 1); + } else { + ZVAL_BOOL(&_1, 0); + } + ZEPHIR_CALL_METHOD(NULL, &_0, "keepsnapshots", NULL, 0, this_ptr, &_1); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, perform) +static PHP_METHOD(Phalcon_Mvc_Model, setSchema) { - zval _0, _1, _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *schema_param = NULL, _0; + zval schema; zval *this_ptr = getThis(); + ZVAL_UNDEF(&schema); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(schema) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &schema_param); + if (UNEXPECTED(Z_TYPE_P(schema_param) != IS_STRING && Z_TYPE_P(schema_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schema' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schema_param) == IS_STRING)) { + zephir_get_strval(&schema, schema_param); + } else { + ZEPHIR_INIT_VAR(&schema); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getstatement", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getbindvalues", NULL, 0); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&_0, "perform", NULL, 0, &_1, &_2); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "setmodelschema", NULL, 0, this_ptr, &schema); zephir_check_call_status(); - RETURN_MM(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, setFlag) +static PHP_METHOD(Phalcon_Mvc_Model, setSource) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_bool enable; - zval *flag_param = NULL, *enable_param = NULL, __$true, flags, _0$$4, _1$$4; - zval flag; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *source_param = NULL, _0; + zval source; zval *this_ptr = getThis(); - ZVAL_UNDEF(&flag); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&flags); - ZVAL_UNDEF(&_0$$4); - ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&source); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(flag) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(enable) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(source) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &flag_param, &enable_param); - zephir_get_strval(&flag, flag_param); - if (!enable_param) { - enable = 1; + zephir_fetch_params(1, 1, 0, &source_param); + if (UNEXPECTED(Z_TYPE_P(source_param) != IS_STRING && Z_TYPE_P(source_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'source' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(source_param) == IS_STRING)) { + zephir_get_strval(&source, source_param); } else { - enable = zephir_get_boolval(enable_param); + ZEPHIR_INIT_VAR(&source); } - if (enable) { - zephir_update_property_array_multi(this_ptr, SL("store"), &__$true, SL("sz"), 3, SL("FLAGS"), &flag); - } else { - zephir_read_property(&_0$$4, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_OBS_VAR(&flags); - zephir_array_fetch_string(&flags, &_0$$4, SL("FLAGS"), PH_NOISY, "phalcon/DataMapper/Query/AbstractQuery.zep", 148); - zephir_array_unset(&flags, &flag, PH_SEPARATE); - ZEPHIR_INIT_VAR(&_1$$4); - ZVAL_STRING(&_1$$4, "FLAGS"); - zephir_update_property_array(this_ptr, SL("store"), &_1$$4, &flags); - } - ZEPHIR_MM_RESTORE(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "setmodelsource", NULL, 0, this_ptr, &source); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, quoteIdentifier) +static PHP_METHOD(Phalcon_Mvc_Model, skipAttributes) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, *type_param = NULL, _0, _1; - zval name; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *attributes_param = NULL; + zval attributes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(type) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &name_param, &type_param); - zephir_get_strval(&name, name_param); - if (!type_param) { - type = 2; - } else { - type = zephir_get_intval(type_param); - } + zephir_fetch_params(1, 1, 0, &attributes_param); + ZEPHIR_OBS_COPY_OR_DUP(&attributes, attributes_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_1, type); - ZEPHIR_RETURN_CALL_METHOD(&_0, "quote", NULL, 0, &name, &_1); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "skipattributesoncreate", NULL, 0, &attributes); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "skipattributesonupdate", NULL, 0, &attributes); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, reset) +static PHP_METHOD(Phalcon_Mvc_Model, skipAttributesOnCreate) { - zval _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *attributes_param = NULL, __$null, attribute, *_0, _1, _2; + zval attributes, keysAttributes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&keysAttributes); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&attribute); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_13); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_15); - ZVAL_UNDEF(&_16); - ZVAL_UNDEF(&_17); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &attributes_param); + ZEPHIR_OBS_COPY_OR_DUP(&attributes, attributes_param); - ZEPHIR_INIT_VAR(&_0); - array_init(&_0); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "COLUMNS"); - zephir_update_property_array(this_ptr, SL("store"), &_1, &_0); - ZEPHIR_INIT_VAR(&_2); - array_init(&_2); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "FLAGS"); - zephir_update_property_array(this_ptr, SL("store"), &_3, &_2); - ZEPHIR_INIT_VAR(&_4); - array_init(&_4); - ZEPHIR_INIT_VAR(&_5); - ZVAL_STRING(&_5, "FROM"); - zephir_update_property_array(this_ptr, SL("store"), &_5, &_4); - ZEPHIR_INIT_VAR(&_6); - array_init(&_6); - ZEPHIR_INIT_VAR(&_7); - ZVAL_STRING(&_7, "GROUP"); - zephir_update_property_array(this_ptr, SL("store"), &_7, &_6); - ZEPHIR_INIT_VAR(&_8); - array_init(&_8); - ZEPHIR_INIT_VAR(&_9); - ZVAL_STRING(&_9, "HAVING"); - zephir_update_property_array(this_ptr, SL("store"), &_9, &_8); - ZEPHIR_INIT_VAR(&_10); - ZVAL_STRING(&_10, "LIMIT"); - ZEPHIR_INIT_VAR(&_11); - ZVAL_LONG(&_11, 0); - zephir_update_property_array(this_ptr, SL("store"), &_10, &_11); - ZEPHIR_INIT_VAR(&_12); - array_init(&_12); - ZEPHIR_INIT_VAR(&_13); - ZVAL_STRING(&_13, "ORDER"); - zephir_update_property_array(this_ptr, SL("store"), &_13, &_12); - ZEPHIR_INIT_VAR(&_14); - ZVAL_STRING(&_14, "OFFSET"); - ZEPHIR_INIT_VAR(&_15); - ZVAL_LONG(&_15, 0); - zephir_update_property_array(this_ptr, SL("store"), &_14, &_15); - ZEPHIR_INIT_VAR(&_16); - array_init(&_16); - ZEPHIR_INIT_VAR(&_17); - ZVAL_STRING(&_17, "WHERE"); - zephir_update_property_array(this_ptr, SL("store"), &_17, &_16); + + ZEPHIR_INIT_VAR(&keysAttributes); + array_init(&keysAttributes); + zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model.zep", 5605); + if (Z_TYPE_P(&attributes) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _0) + { + ZEPHIR_INIT_NVAR(&attribute); + ZVAL_COPY(&attribute, _0); + zephir_array_update_zval(&keysAttributes, &attribute, &__$null, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &attributes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&attribute, &attributes, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_update_zval(&keysAttributes, &attribute, &__$null, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&attribute); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getmodelsmetadata", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_2, "setautomaticcreateattributes", NULL, 0, this_ptr, &keysAttributes); + zephir_check_call_status(); ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, buildFlags) +static PHP_METHOD(Phalcon_Mvc_Model, skipAttributesOnUpdate) { - zval _0, _1, _2, _3, _4, _5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *attributes_param = NULL, __$null, attribute, *_0, _1, _2; + zval attributes, keysAttributes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&keysAttributes); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&attribute); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &attributes_param); + ZEPHIR_OBS_COPY_OR_DUP(&attributes, attributes_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_1, &_0, SL("FLAGS"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractQuery.zep", 194); - if (ZEPHIR_IS_EMPTY(&_1)) { - RETURN_MM_STRING(""); + + ZEPHIR_INIT_VAR(&keysAttributes); + array_init(&keysAttributes); + zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model.zep", 5640); + if (Z_TYPE_P(&attributes) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _0) + { + ZEPHIR_INIT_NVAR(&attribute); + ZVAL_COPY(&attribute, _0); + zephir_array_update_zval(&keysAttributes, &attribute, &__$null, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &attributes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&attribute, &attributes, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_update_zval(&keysAttributes, &attribute, &__$null, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); + zephir_check_call_status(); + } } - ZEPHIR_INIT_VAR(&_2); - ZEPHIR_INIT_VAR(&_3); - zephir_read_property(&_4, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_5, &_4, SL("FLAGS"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractQuery.zep", 198); - zephir_array_keys(&_3, &_5); - zephir_fast_join_str(&_2, SL(" "), &_3); - ZEPHIR_CONCAT_SV(return_value, " ", &_2); - RETURN_MM(); + ZEPHIR_INIT_NVAR(&attribute); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getmodelsmetadata", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_2, "setautomaticupdateattributes", NULL, 0, this_ptr, &keysAttributes); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, buildReturning) +static PHP_METHOD(Phalcon_Mvc_Model, useDynamicUpdate) { - zval _0, _1, _2, _3, _4, _5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *dynamicUpdate_param = NULL, _0, _1; + zend_bool dynamicUpdate; zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(dynamicUpdate) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &dynamicUpdate_param); + dynamicUpdate = zephir_get_boolval(dynamicUpdate_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_1, &_0, SL("RETURNING"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractQuery.zep", 208); - if (ZEPHIR_IS_EMPTY(&_1)) { - RETURN_MM_STRING(""); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); + if (dynamicUpdate) { + ZVAL_BOOL(&_1, 1); + } else { + ZVAL_BOOL(&_1, 0); } - zephir_read_property(&_3, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_4, &_3, SL("RETURNING"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractQuery.zep", 212); - ZEPHIR_INIT_VAR(&_5); - ZVAL_STRING(&_5, ","); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "indent", NULL, 0, &_4, &_5); + ZEPHIR_CALL_METHOD(NULL, &_0, "usedynamicupdate", NULL, 0, this_ptr, &_1); zephir_check_call_status(); - ZEPHIR_CONCAT_SV(return_value, " RETURNING", &_2); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, indent) +static PHP_METHOD(Phalcon_Mvc_Model, validate) { + zend_object_iterator *_1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval glue, _1; - zval *collection_param = NULL, *glue_param = NULL, _0; - zval collection; + zephir_fcall_cache_entry *_7 = NULL, *_8 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *validator, validator_sub, messages, message, _0, _2$$4, _3$$4, _4$$4, _5$$4, _6$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&validator_sub); + ZVAL_UNDEF(&messages); + ZVAL_UNDEF(&message); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&glue); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(collection) - Z_PARAM_OPTIONAL - Z_PARAM_STR(glue) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(validator, phalcon_validation_validationinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &collection_param, &glue_param); - zephir_get_arrval(&collection, collection_param); - if (!glue_param) { - ZEPHIR_INIT_VAR(&glue); - ZVAL_STRING(&glue, ""); - } else { - zephir_get_strval(&glue, glue_param); - } + zephir_fetch_params(1, 1, 0, &validator); - if (ZEPHIR_IS_EMPTY(&collection)) { - RETURN_MM_STRING(""); + ZVAL_NULL(&_0); + ZEPHIR_CALL_METHOD(&messages, validator, "validate", NULL, 0, &_0, this_ptr); + zephir_check_call_status(); + if (((Z_TYPE_P(&messages) == IS_TRUE || Z_TYPE_P(&messages) == IS_FALSE) == 1)) { + RETURN_CCTOR(&messages); } - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_CONCAT_VS(&_1, &glue, " "); - zephir_fast_join(&_0, &_1, &collection); - ZEPHIR_CONCAT_SV(return_value, " ", &_0); - RETURN_MM(); -} - -zend_object *zephir_init_properties_Phalcon_DataMapper_Query_AbstractQuery(zend_class_entry *class_type) -{ - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("store"), &_1$$3); + _1 = zephir_get_iterator(&messages); + _1->funcs->rewind(_1); + for (;_1->funcs->valid(_1) == SUCCESS && !EG(exception); _1->funcs->move_forward(_1)) { + { + ZEPHIR_ITERATOR_COPY(&message, _1); } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); + ZEPHIR_INIT_NVAR(&_2$$4); + object_init_ex(&_2$$4, phalcon_messages_message_ce); + ZEPHIR_CALL_METHOD(&_3$$4, &message, "getmessage", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_4$$4, &message, "getfield", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_5$$4, &message, "gettype", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_6$$4, &message, "getcode", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_2$$4, "__construct", &_7, 6, &_3$$4, &_4$$4, &_5$$4, &_6$$4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_8, 0, &_2$$4); + zephir_check_call_status(); } + zend_iterator_dtor(_1); + RETURN_MM_BOOL(!(zephir_fast_count_int(&messages))); } +static PHP_METHOD(Phalcon_Mvc_Model, validationHasFailed) +{ + zval _0; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H -#endif - + ZVAL_UNDEF(&_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("errorMessages"), PH_NOISY_CC | PH_READONLY); + RETURN_BOOL(zephir_fast_count_int(&_0) > 0); +} -ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Query_Bind) +static PHP_METHOD(Phalcon_Mvc_Model, caseInsensitiveColumnMap) { - ZEPHIR_REGISTER_CLASS(Phalcon\\DataMapper\\Query, Bind, phalcon, datamapper_query_bind, phalcon_datamapper_query_bind_method_entry, 0); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *columnMap, columnMap_sub, *key, key_sub, cmKey, _0, *_1, _2, _3$$3, _4$$3, _5$$5, _6$$5; + zval *this_ptr = getThis(); - zend_declare_property_long(phalcon_datamapper_query_bind_ce, SL("inlineCount"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_datamapper_query_bind_ce, SL("store"), ZEND_ACC_PROTECTED); - phalcon_datamapper_query_bind_ce->create_object = zephir_init_properties_Phalcon_DataMapper_Query_Bind; - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_DataMapper_Query_Bind, bindInline) -{ - zend_bool _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *value, value_sub, *type_param = NULL, key, _3, _4, _5, _1$$3, _2$$4; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(value) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(type) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &value, &type_param); - if (!type_param) { - type = -1; - } else { - type = zephir_get_intval(type_param); - } - - - _0 = Z_TYPE_P(value) == IS_OBJECT; - if (_0) { - _0 = zephir_instance_of_ev(value, phalcon_datamapper_query_select_ce); - } - if (_0) { - ZEPHIR_CALL_METHOD(&_1$$3, value, "getstatement", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVS(return_value, "(", &_1$$3, ")"); - RETURN_MM(); - } - if (Z_TYPE_P(value) == IS_ARRAY) { - ZVAL_LONG(&_2$$4, type); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "inlinearray", NULL, 0, value, &_2$$4); - zephir_check_call_status(); - RETURN_MM(); - } - zephir_read_property(&_3, this_ptr, ZEND_STRL("inlineCount"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_ZVAL_NREF(_4); - ZVAL_LONG(&_4, (zephir_get_numberval(&_3) + 1)); - zephir_update_property_zval(this_ptr, ZEND_STRL("inlineCount"), &_4); - zephir_read_property(&_4, this_ptr, ZEND_STRL("inlineCount"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&key); - ZEPHIR_CONCAT_SVS(&key, "__", &_4, "__"); - ZVAL_LONG(&_5, type); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setvalue", NULL, 0, &key, value, &_5); - zephir_check_call_status(); - ZEPHIR_CONCAT_SV(return_value, ":", &key); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_DataMapper_Query_Bind, remove) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *key_param = NULL, store, _0; - zval key; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&store); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - zephir_get_strval(&key, key_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&store, &_0); - zephir_array_unset(&store, &key, PH_SEPARATE); - zephir_update_property_zval(this_ptr, ZEND_STRL("store"), &store); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_DataMapper_Query_Bind, setValue) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *value, value_sub, *type_param = NULL, localType; - zval key; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&localType); + ZVAL_UNDEF(&columnMap_sub); + ZVAL_UNDEF(&key_sub); + ZVAL_UNDEF(&cmKey); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(key) - Z_PARAM_ZVAL(value) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(type) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &key_param, &value, &type_param); - zephir_get_strval(&key, key_param); - if (!type_param) { - type = -1; - } else { - type = zephir_get_intval(type_param); - } - - - ZEPHIR_INIT_VAR(&localType); - ZVAL_LONG(&localType, type); - if (ZEPHIR_IS_LONG_IDENTICAL(&localType, -1)) { - ZEPHIR_CALL_METHOD(&localType, this_ptr, "gettype", NULL, 0, value); - zephir_check_call_status(); - } - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 2, 0); - zephir_array_fast_append(&_0, value); - zephir_array_fast_append(&_0, &localType); - zephir_update_property_array(this_ptr, SL("store"), &key, &_0); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_DataMapper_Query_Bind, setValues) -{ - zend_string *_3; - zend_ulong _2; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *values_param = NULL, *type_param = NULL, key, value, *_0, _1, _4$$3, _6$$4; - zval values; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&values); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_6$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(values) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(type) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &values_param, &type_param); - zephir_get_arrval(&values, values_param); - if (!type_param) { - type = -1; - } else { - type = zephir_get_intval(type_param); - } - - - zephir_is_iterable(&values, 0, "phalcon/DataMapper/Query/Bind.zep", 111); - if (Z_TYPE_P(&values) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&values), _2, _3, _0) - { - ZEPHIR_INIT_NVAR(&key); - if (_3 != NULL) { - ZVAL_STR_COPY(&key, _3); - } else { - ZVAL_LONG(&key, _2); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0); - ZVAL_LONG(&_4$$3, type); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setvalue", &_5, 0, &key, &value, &_4$$3); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &values, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &values, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&key, &values, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &values, "current", NULL, 0); - zephir_check_call_status(); - ZVAL_LONG(&_6$$4, type); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setvalue", &_5, 0, &key, &value, &_6$$4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &values, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_DataMapper_Query_Bind, toArray) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "store"); -} - -static PHP_METHOD(Phalcon_DataMapper_Query_Bind, getType) -{ - zval *value, value_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&value_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &value); - - - if (Z_TYPE_P(value) == IS_NULL) { - RETURN_LONG(0); - } - if (((Z_TYPE_P(value) == IS_TRUE || Z_TYPE_P(value) == IS_FALSE) == 1)) { - RETURN_LONG(5); - } - if (Z_TYPE_P(value) == IS_LONG) { - RETURN_LONG(1); - } - RETURN_LONG(2); -} - -static PHP_METHOD(Phalcon_DataMapper_Query_Bind, inlineArray) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *data_param = NULL, *type_param = NULL, key, value, *_0, _1, _11, _2$$3, _3$$3, _4$$3, _6$$3, _7$$4, _8$$4, _9$$4, _10$$4; - zval data, keys; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&keys); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3$$3); ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_8$$4); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_10$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_6$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ARRAY(data) - Z_PARAM_LONG(type) + Z_PARAM_ZVAL(columnMap) + Z_PARAM_ZVAL(key) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &data_param, &type_param); - zephir_get_arrval(&data, data_param); - type = zephir_get_intval(type_param); + zephir_fetch_params(1, 2, 0, &columnMap, &key); - ZEPHIR_INIT_VAR(&keys); - array_init(&keys); - zephir_is_iterable(&data, 0, "phalcon/DataMapper/Query/Bind.zep", 170); - if (Z_TYPE_P(&data) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&data), _0) + ZEPHIR_INIT_VAR(&_0); + zephir_array_keys(&_0, columnMap); + zephir_is_iterable(&_0, 0, "phalcon/Mvc/Model.zep", 5776); + if (Z_TYPE_P(&_0) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _1) { - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0); - zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("inlineCount"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_ZVAL_NREF(_3$$3); - ZVAL_LONG(&_3$$3, (zephir_get_numberval(&_2$$3) + 1)); - zephir_update_property_zval(this_ptr, ZEND_STRL("inlineCount"), &_3$$3); - zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("inlineCount"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&key); - ZEPHIR_CONCAT_SVS(&key, "__", &_3$$3, "__"); - ZVAL_LONG(&_4$$3, type); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setvalue", &_5, 0, &key, &value, &_4$$3); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_6$$3); - ZEPHIR_CONCAT_SV(&_6$$3, ":", &key); - zephir_array_append(&keys, &_6$$3, PH_SEPARATE, "phalcon/DataMapper/Query/Bind.zep", 167); + ZEPHIR_INIT_NVAR(&cmKey); + ZVAL_COPY(&cmKey, _1); + ZEPHIR_INIT_NVAR(&_3$$3); + zephir_fast_strtolower(&_3$$3, &cmKey); + ZEPHIR_INIT_NVAR(&_4$$3); + zephir_fast_strtolower(&_4$$3, key); + if (ZEPHIR_IS_EQUAL(&_3$$3, &_4$$3)) { + RETURN_CCTOR(&cmKey); + } } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &data, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_1, &data, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_2, &_0, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_1)) { + if (!zend_is_true(&_2)) { break; } - ZEPHIR_CALL_METHOD(&value, &data, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&cmKey, &_0, "current", NULL, 0); zephir_check_call_status(); - zephir_read_property(&_7$$4, this_ptr, ZEND_STRL("inlineCount"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_ZVAL_NREF(_8$$4); - ZVAL_LONG(&_8$$4, (zephir_get_numberval(&_7$$4) + 1)); - zephir_update_property_zval(this_ptr, ZEND_STRL("inlineCount"), &_8$$4); - zephir_read_property(&_8$$4, this_ptr, ZEND_STRL("inlineCount"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&key); - ZEPHIR_CONCAT_SVS(&key, "__", &_8$$4, "__"); - ZVAL_LONG(&_9$$4, type); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setvalue", &_5, 0, &key, &value, &_9$$4); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_10$$4); - ZEPHIR_CONCAT_SV(&_10$$4, ":", &key); - zephir_array_append(&keys, &_10$$4, PH_SEPARATE, "phalcon/DataMapper/Query/Bind.zep", 167); - ZEPHIR_CALL_METHOD(NULL, &data, "next", NULL, 0); + ZEPHIR_INIT_NVAR(&_5$$5); + zephir_fast_strtolower(&_5$$5, &cmKey); + ZEPHIR_INIT_NVAR(&_6$$5); + zephir_fast_strtolower(&_6$$5, key); + if (ZEPHIR_IS_EQUAL(&_5$$5, &_6$$5)) { + RETURN_CCTOR(&cmKey); + } + ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_VAR(&_11); - zephir_fast_join_str(&_11, SL(", "), &keys); - ZEPHIR_CONCAT_SVS(return_value, "(", &_11, ")"); + ZEPHIR_INIT_NVAR(&cmKey); + RETVAL_ZVAL(key, 1, 0); RETURN_MM(); } -zend_object *zephir_init_properties_Phalcon_DataMapper_Query_Bind(zend_class_entry *class_type) +zend_object *zephir_init_properties_Phalcon_Mvc_Model(zend_class_entry *class_type) { - zval _0, _1$$3; + zval _0, _2, _4, _6, _8, _10, _1$$3, _3$$4, _5$$5, _7$$6, _9$$7, _11$$8; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_10); ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_9$$7); + ZVAL_UNDEF(&_11$$8); ZEPHIR_MM_GROW(); @@ -52106,11 +51850,41 @@ zend_object *zephir_init_properties_Phalcon_DataMapper_Query_Bind(zend_class_ent { zval local_this_ptr, *this_ptr = &local_this_ptr; ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("uniqueParams"), PH_NOISY_CC | PH_READONLY); if (Z_TYPE_P(&_0) == IS_NULL) { ZEPHIR_INIT_VAR(&_1$$3); array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("store"), &_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("uniqueParams"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("snapshot"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("snapshot"), &_3$$4); + } + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("oldSnapshot"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_4) == IS_NULL) { + ZEPHIR_INIT_VAR(&_5$$5); + array_init(&_5$$5); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("oldSnapshot"), &_5$$5); + } + zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("related"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_6) == IS_NULL) { + ZEPHIR_INIT_VAR(&_7$$6); + array_init(&_7$$6); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("related"), &_7$$6); + } + zephir_read_property_ex(&_8, this_ptr, ZEND_STRL("errorMessages"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_8) == IS_NULL) { + ZEPHIR_INIT_VAR(&_9$$7); + array_init(&_9$$7); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("errorMessages"), &_9$$7); + } + zephir_read_property_ex(&_10, this_ptr, ZEND_STRL("dirtyRelated"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_10) == IS_NULL) { + ZEPHIR_INIT_VAR(&_11$$8); + array_init(&_11$$8); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("dirtyRelated"), &_11$$8); } ZEPHIR_MM_RESTORE(); return Z_OBJ_P(this_ptr); @@ -52127,1888 +51901,2539 @@ zend_object *zephir_init_properties_Phalcon_DataMapper_Query_Bind(zend_class_ent -ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Query_Delete) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_ModelInterface) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Query, Delete, phalcon, datamapper_query_delete, phalcon_datamapper_query_abstractconditions_ce, phalcon_datamapper_query_delete_method_entry, 0); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc, ModelInterface, phalcon, mvc_modelinterface, phalcon_mvc_modelinterface_method_entry); return SUCCESS; } -static PHP_METHOD(Phalcon_DataMapper_Query_Delete, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *connection, connection_sub, *bind, bind_sub, _1, _2, _3, _4; - zval *this_ptr = getThis(); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, appendMessage); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, assign); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, average); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, cloneResult); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, cloneResultMap); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, cloneResultMapHydrate); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, count); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, create); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, delete); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, find); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, findFirst); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, fireEvent); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, fireEventCancel); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getDirtyState); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getMessages); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getModelsMetaData); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getOperationMade); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getReadConnection); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getReadConnectionService); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getRelated); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getSchema); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getSource); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getWriteConnection); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getWriteConnectionService); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, maximum); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, minimum); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, query); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, refresh); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, save); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, setConnectionService); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, setDirtyState); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, setReadConnectionService); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, setSnapshotData); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, setTransaction); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, setWriteConnectionService); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, skipOperation); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, sum); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, validationHasFailed); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, update); - ZVAL_UNDEF(&connection_sub); - ZVAL_UNDEF(&bind_sub); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_datamapper_pdo_connection_ce) - Z_PARAM_OBJECT_OF_CLASS(bind, phalcon_datamapper_query_bind_ce) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &connection, &bind); - ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_query_delete_ce, getThis(), "__construct", &_0, 0, connection, bind); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "FROM"); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, ""); - zephir_update_property_array(this_ptr, SL("store"), &_1, &_2); - ZEPHIR_INIT_VAR(&_3); - array_init(&_3); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "RETURNING"); - zephir_update_property_array(this_ptr, SL("store"), &_4, &_3); - ZEPHIR_MM_RESTORE(); -} -static PHP_METHOD(Phalcon_DataMapper_Query_Delete, from) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_ModuleDefinitionInterface) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *table_param = NULL, _0; - zval table; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc, ModuleDefinitionInterface, phalcon, mvc_moduledefinitioninterface, phalcon_mvc_moduledefinitioninterface_method_entry); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(table) - ZEND_PARSE_PARAMETERS_END(); + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModuleDefinitionInterface, registerAutoloaders); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModuleDefinitionInterface, registerServices); + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &table_param); - zephir_get_strval(&table, table_param); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "FROM"); - zephir_update_property_array(this_ptr, SL("store"), &_0, &table); - RETURN_THIS(); + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Router) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc, Router, phalcon, mvc_router, phalcon_di_abstractinjectionaware_ce, phalcon_mvc_router_method_entry, 0); + + zend_declare_property_null(phalcon_mvc_router_ce, SL("action"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_ce, SL("controller"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_ce, SL("defaultAction"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_ce, SL("defaultController"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_ce, SL("defaultModule"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_ce, SL("defaultNamespace"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_ce, SL("defaultParams"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_ce, SL("keyRouteNames"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_ce, SL("keyRouteIds"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_ce, SL("matchedRoute"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_ce, SL("matches"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_ce, SL("module"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_ce, SL("namespaceName"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_ce, SL("notFoundPaths"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_ce, SL("params"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_router_ce, SL("removeExtraSlashes"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_ce, SL("routes"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_router_ce, SL("wasMatched"), 0, ZEND_ACC_PROTECTED); + phalcon_mvc_router_ce->create_object = zephir_init_properties_Phalcon_Mvc_Router; + zephir_declare_class_constant_long(phalcon_mvc_router_ce, SL("POSITION_FIRST"), 0); + + zephir_declare_class_constant_long(phalcon_mvc_router_ce, SL("POSITION_LAST"), 1); + + zend_class_implements(phalcon_mvc_router_ce, 1, phalcon_mvc_routerinterface_ce); + zend_class_implements(phalcon_mvc_router_ce, 1, phalcon_events_eventsawareinterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_DataMapper_Query_Delete, returning) +static PHP_METHOD(Phalcon_Mvc_Router, getKeyRouteNames) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "keyRouteNames"); +} + +static PHP_METHOD(Phalcon_Mvc_Router, setKeyRouteNames) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *columns_param = NULL, _0, _1, _2, _3; - zval columns; + zval *keyRouteNames_param = NULL; + zval keyRouteNames; zval *this_ptr = getThis(); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&keyRouteNames); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(columns) + Z_PARAM_ARRAY(keyRouteNames) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &columns_param); - zephir_get_arrval(&columns, columns_param); + zephir_fetch_params(1, 1, 0, &keyRouteNames_param); + zephir_get_arrval(&keyRouteNames, keyRouteNames_param); - ZEPHIR_INIT_VAR(&_0); - zephir_read_property(&_1, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_2, &_1, SL("RETURNING"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Delete.zep", 60); - zephir_fast_array_merge(&_0, &_2, &columns); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "RETURNING"); - zephir_update_property_array(this_ptr, SL("store"), &_3, &_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("keyRouteNames"), &keyRouteNames); RETURN_THIS(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Delete, getStatement) +static PHP_METHOD(Phalcon_Mvc_Router, getKeyRouteIds) { - zval _0, _1, _2, _3, _4, _5; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - - ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "buildflags", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_2, &_1, SL("FROM"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Delete.zep", 75); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "WHERE"); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "buildcondition", NULL, 0, &_4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_5, this_ptr, "buildreturning", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVVV(return_value, "DELETE", &_0, " FROM ", &_2, &_3, &_5); - RETURN_MM(); + RETURN_MEMBER(getThis(), "keyRouteIds"); } -static PHP_METHOD(Phalcon_DataMapper_Query_Delete, reset) +static PHP_METHOD(Phalcon_Mvc_Router, setKeyRouteIds) { - zval _1, _2, _3, _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; + zval *keyRouteIds_param = NULL; + zval keyRouteIds; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_query_delete_ce, getThis(), "reset", &_0, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "FROM"); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, ""); - zephir_update_property_array(this_ptr, SL("store"), &_1, &_2); - ZEPHIR_INIT_VAR(&_3); - array_init(&_3); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "RETURNING"); - zephir_update_property_array(this_ptr, SL("store"), &_4, &_3); - ZEPHIR_MM_RESTORE(); -} - - - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&keyRouteIds); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(keyRouteIds) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &keyRouteIds_param); + zephir_get_arrval(&keyRouteIds, keyRouteIds_param); - -ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Query_Insert) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Query, Insert, phalcon, datamapper_query_insert, phalcon_datamapper_query_abstractquery_ce, phalcon_datamapper_query_insert_method_entry, 0); - - return SUCCESS; + zephir_update_property_zval(this_ptr, ZEND_STRL("keyRouteIds"), &keyRouteIds); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Insert, __construct) +static PHP_METHOD(Phalcon_Mvc_Router, __construct) { + zval routes, _1$$3, _3$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *connection, connection_sub, *bind, bind_sub, _1, _2, _3, _4; + zval *defaultRoutes_param = NULL, _0$$3, _2$$3, _4$$3; + zend_bool defaultRoutes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&connection_sub); - ZVAL_UNDEF(&bind_sub); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&routes); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_datamapper_pdo_connection_ce) - Z_PARAM_OBJECT_OF_CLASS(bind, phalcon_datamapper_query_bind_ce) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(defaultRoutes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &connection, &bind); + zephir_fetch_params(1, 0, 1, &defaultRoutes_param); + if (!defaultRoutes_param) { + defaultRoutes = 1; + } else { + if (UNEXPECTED(Z_TYPE_P(defaultRoutes_param) != IS_TRUE && Z_TYPE_P(defaultRoutes_param) != IS_FALSE)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'defaultRoutes' must be of the type bool")); + RETURN_MM_NULL(); + } + defaultRoutes = (Z_TYPE_P(defaultRoutes_param) == IS_TRUE); + } - ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_query_insert_ce, getThis(), "__construct", &_0, 0, connection, bind); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "FROM"); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, ""); - zephir_update_property_array(this_ptr, SL("store"), &_1, &_2); - ZEPHIR_INIT_VAR(&_3); - array_init(&_3); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "RETURNING"); - zephir_update_property_array(this_ptr, SL("store"), &_4, &_3); + ZEPHIR_INIT_VAR(&routes); + array_init(&routes); + if (defaultRoutes) { + ZEPHIR_INIT_VAR(&_0$$3); + object_init_ex(&_0$$3, phalcon_mvc_router_route_ce); + ZEPHIR_INIT_VAR(&_1$$3); + zephir_create_array(&_1$$3, 1, 0); + add_assoc_long_ex(&_1$$3, SL("controller"), 1); + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "#^/([\\w0-9\\_\\-]+)[/]{0,1}$#u"); + ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 117, &_2$$3, &_1$$3); + zephir_check_call_status(); + zephir_array_append(&routes, &_0$$3, PH_SEPARATE, "phalcon/Mvc/Router.zep", 171); + ZEPHIR_INIT_NVAR(&_2$$3); + object_init_ex(&_2$$3, phalcon_mvc_router_route_ce); + ZEPHIR_INIT_VAR(&_3$$3); + zephir_create_array(&_3$$3, 3, 0); + add_assoc_long_ex(&_3$$3, SL("controller"), 1); + add_assoc_long_ex(&_3$$3, SL("action"), 2); + add_assoc_long_ex(&_3$$3, SL("params"), 3); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "#^/([\\w0-9\\_\\-]+)/([\\w0-9\\.\\_]+)(/.*)*$#u"); + ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", NULL, 117, &_4$$3, &_3$$3); + zephir_check_call_status(); + zephir_array_append(&routes, &_2$$3, PH_SEPARATE, "phalcon/Mvc/Router.zep", 180); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("routes"), &routes); ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Insert, column) +static PHP_METHOD(Phalcon_Mvc_Router, add) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *column_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _1$$3, _2$$3; - zval column, _0; + zend_long position, ZEPHIR_LAST_CALL_STATUS; + zval *pattern_param = NULL, *paths = NULL, paths_sub, *httpMethods = NULL, httpMethods_sub, *position_param = NULL, __$null, route, _0; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&column); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_UNDEF(&httpMethods_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&route); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(column) + ZEND_PARSE_PARAMETERS_START(1, 4) + Z_PARAM_STR(pattern) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(value) - Z_PARAM_LONG(type) + Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_ZVAL_OR_NULL(httpMethods) + Z_PARAM_LONG(position) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &column_param, &value, &type_param); - zephir_get_strval(&column, column_param); - if (!value) { - value = &value_sub; - value = &__$null; + zephir_fetch_params(1, 1, 3, &pattern_param, &paths, &httpMethods, &position_param); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); } - if (!type_param) { - type = -1; + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); } else { - type = zephir_get_intval(type_param); + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; + } + if (!httpMethods) { + httpMethods = &httpMethods_sub; + httpMethods = &__$null; + } + if (!position_param) { + position = 1; + } else { + position = zephir_get_intval(position_param); } - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_CONCAT_SV(&_0, ":", &column); - zephir_update_property_array_multi(this_ptr, SL("store"), &_0, SL("sz"), 3, SL("COLUMNS"), &column); - if (Z_TYPE_P(value) != IS_NULL) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_2$$3, type); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "setvalue", NULL, 0, &column, value, &_2$$3); - zephir_check_call_status(); - } - RETURN_THIS(); + ZEPHIR_INIT_VAR(&route); + object_init_ex(&route, phalcon_mvc_router_route_ce); + ZEPHIR_CALL_METHOD(NULL, &route, "__construct", NULL, 117, &pattern, paths, httpMethods); + zephir_check_call_status(); + ZVAL_LONG(&_0, position); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "attach", NULL, 0, &route, &_0); + zephir_check_call_status(); + RETURN_CCTOR(&route); } -static PHP_METHOD(Phalcon_DataMapper_Query_Insert, columns) +static PHP_METHOD(Phalcon_Mvc_Router, addConnect) { - zend_string *_3; - zend_ulong _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *columns_param = NULL, column, value, *_0, _1; - zval columns; + zend_long position, ZEPHIR_LAST_CALL_STATUS; + zval *pattern_param = NULL, *paths = NULL, paths_sub, *position_param = NULL, __$null, _0, _1; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&column); - ZVAL_UNDEF(&value); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(columns) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_LONG(position) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &columns_param); - zephir_get_arrval(&columns, columns_param); - - - zephir_is_iterable(&columns, 0, "phalcon/DataMapper/Query/Insert.zep", 76); - if (Z_TYPE_P(&columns) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&columns), _2, _3, _0) - { - ZEPHIR_INIT_NVAR(&column); - if (_3 != NULL) { - ZVAL_STR_COPY(&column, _3); - } else { - ZVAL_LONG(&column, _2); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0); - if (Z_TYPE_P(&column) == IS_LONG) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "column", &_4, 0, &value); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "column", &_4, 0, &column, &value); - zephir_check_call_status(); - } - } ZEND_HASH_FOREACH_END(); + zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &position_param); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); } else { - ZEPHIR_CALL_METHOD(NULL, &columns, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &columns, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&column, &columns, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &columns, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&column) == IS_LONG) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "column", &_4, 0, &value); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "column", &_4, 0, &column, &value); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, &columns, "next", NULL, 0); - zephir_check_call_status(); - } + ZEPHIR_INIT_VAR(&pattern); } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&column); - RETURN_THIS(); + if (!paths) { + paths = &paths_sub; + paths = &__$null; + } + if (!position_param) { + position = 1; + } else { + position = zephir_get_intval(position_param); + } + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "CONNECT"); + ZVAL_LONG(&_1, position); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &pattern, paths, &_0, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Insert, into) +static PHP_METHOD(Phalcon_Mvc_Router, addDelete) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *table_param = NULL, _0; - zval table; + zend_long position, ZEPHIR_LAST_CALL_STATUS; + zval *pattern_param = NULL, *paths = NULL, paths_sub, *position_param = NULL, __$null, _0, _1; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(table) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_LONG(position) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &table_param); - zephir_get_strval(&table, table_param); + zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &position_param); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); + } else { + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; + } + if (!position_param) { + position = 1; + } else { + position = zephir_get_intval(position_param); + } ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "FROM"); - zephir_update_property_array(this_ptr, SL("store"), &_0, &table); - RETURN_THIS(); + ZVAL_STRING(&_0, "DELETE"); + ZVAL_LONG(&_1, position); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &pattern, paths, &_0, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Insert, getLastInsertId) +static PHP_METHOD(Phalcon_Mvc_Router, addGet) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, _0; - zval name; + zend_long position, ZEPHIR_LAST_CALL_STATUS; + zval *pattern_param = NULL, *paths = NULL, paths_sub, *position_param = NULL, __$null, _0, _1; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(pattern) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) + Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_LONG(position) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &name_param); - if (!name_param) { - ZEPHIR_INIT_VAR(&name); + zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &position_param); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); } else { - zephir_get_strval(&name, name_param); + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; + } + if (!position_param) { + position = 1; + } else { + position = zephir_get_intval(position_param); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "lastinsertid", NULL, 0, &name); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "GET"); + ZVAL_LONG(&_1, position); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &pattern, paths, &_0, &_1); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Insert, getStatement) +static PHP_METHOD(Phalcon_Mvc_Router, addHead) { - zval _0, _1, _2, _3, _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zend_long position, ZEPHIR_LAST_CALL_STATUS; + zval *pattern_param = NULL, *paths = NULL, paths_sub, *position_param = NULL, __$null, _0, _1; + zval pattern; zval *this_ptr = getThis(); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_LONG(position) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &position_param); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); + } else { + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; + } + if (!position_param) { + position = 1; + } else { + position = zephir_get_intval(position_param); + } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "buildflags", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_2, &_1, SL("FROM"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Insert.zep", 113); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "buildcolumns", NULL, 204); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "buildreturning", NULL, 0); + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "HEAD"); + ZVAL_LONG(&_1, position); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &pattern, paths, &_0, &_1); zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVVV(return_value, "INSERT", &_0, " INTO ", &_2, &_3, &_4); RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Insert, returning) +static PHP_METHOD(Phalcon_Mvc_Router, addOptions) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *columns_param = NULL, _0, _1, _2, _3; - zval columns; + zend_long position, ZEPHIR_LAST_CALL_STATUS; + zval *pattern_param = NULL, *paths = NULL, paths_sub, *position_param = NULL, __$null, _0, _1; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(columns) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_LONG(position) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &columns_param); - zephir_get_arrval(&columns, columns_param); + zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &position_param); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); + } else { + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; + } + if (!position_param) { + position = 1; + } else { + position = zephir_get_intval(position_param); + } ZEPHIR_INIT_VAR(&_0); - zephir_read_property(&_1, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_2, &_1, SL("RETURNING"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Insert.zep", 127); - zephir_fast_array_merge(&_0, &_2, &columns); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "RETURNING"); - zephir_update_property_array(this_ptr, SL("store"), &_3, &_0); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_DataMapper_Query_Insert, reset) -{ - zval _1, _2, _3, _4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_query_insert_ce, getThis(), "reset", &_0, 0); + ZVAL_STRING(&_0, "OPTIONS"); + ZVAL_LONG(&_1, position); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &pattern, paths, &_0, &_1); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "FROM"); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, ""); - zephir_update_property_array(this_ptr, SL("store"), &_1, &_2); - ZEPHIR_INIT_VAR(&_3); - array_init(&_3); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "RETURNING"); - zephir_update_property_array(this_ptr, SL("store"), &_4, &_3); - ZEPHIR_MM_RESTORE(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Insert, set) +static PHP_METHOD(Phalcon_Mvc_Router, addPatch) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *column_param = NULL, *value = NULL, value_sub, __$null, _0; - zval column; + zend_long position, ZEPHIR_LAST_CALL_STATUS; + zval *pattern_param = NULL, *paths = NULL, paths_sub, *position_param = NULL, __$null, _0, _1; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&column); - ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(column) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(pattern) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(value) + Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_LONG(position) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &column_param, &value); - zephir_get_strval(&column, column_param); - if (!value) { - value = &value_sub; - ZEPHIR_CPY_WRT(value, &__$null); + zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &position_param); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); } else { - ZEPHIR_SEPARATE_PARAM(value); + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; + } + if (!position_param) { + position = 1; + } else { + position = zephir_get_intval(position_param); } - if (Z_TYPE_P(value) == IS_NULL) { - ZEPHIR_INIT_NVAR(value); - ZVAL_STRING(value, "NULL"); - } - zephir_update_property_array_multi(this_ptr, SL("store"), value, SL("sz"), 3, SL("COLUMNS"), &column); - zephir_read_property(&_0, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_0, "remove", NULL, 0, &column); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "PATCH"); + ZVAL_LONG(&_1, position); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &pattern, paths, &_0, &_1); zephir_check_call_status(); - RETURN_THIS(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Insert, buildColumns) +static PHP_METHOD(Phalcon_Mvc_Router, addPost) { - zend_string *_6; - zend_ulong _5; - zval columns; - zval column, _0, _1, _2, *_3, _4, _10, _11, _12, _13, _14, _15, _16, _17, _7$$3, _9$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_8 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zend_long position, ZEPHIR_LAST_CALL_STATUS; + zval *pattern_param = NULL, *paths = NULL, paths_sub, *position_param = NULL, __$null, _0, _1; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&column); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_13); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_15); - ZVAL_UNDEF(&_16); - ZVAL_UNDEF(&_17); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&columns); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_LONG(position) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&columns); - array_init(&columns); - zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_1, &_0, SL("COLUMNS"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Insert.zep", 176); - ZEPHIR_INIT_VAR(&_2); - zephir_is_iterable(&_1, 0, "phalcon/DataMapper/Query/Insert.zep", 180); - if (Z_TYPE_P(&_1) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_1), _5, _6, _3) - { - ZEPHIR_INIT_NVAR(&column); - if (_6 != NULL) { - ZVAL_STR_COPY(&column, _6); - } else { - ZVAL_LONG(&column, _5); - } - ZEPHIR_INIT_NVAR(&_2); - ZVAL_COPY(&_2, _3); - ZEPHIR_CALL_METHOD(&_7$$3, this_ptr, "quoteidentifier", &_8, 0, &column); - zephir_check_call_status(); - zephir_array_append(&columns, &_7$$3, PH_SEPARATE, "phalcon/DataMapper/Query/Insert.zep", 177); - } ZEND_HASH_FOREACH_END(); + zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &position_param); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); } else { - ZEPHIR_CALL_METHOD(NULL, &_1, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_4, &_1, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_4)) { - break; - } - ZEPHIR_CALL_METHOD(&column, &_1, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2, &_1, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_9$$4, this_ptr, "quoteidentifier", &_8, 0, &column); - zephir_check_call_status(); - zephir_array_append(&columns, &_9$$4, PH_SEPARATE, "phalcon/DataMapper/Query/Insert.zep", 177); - ZEPHIR_CALL_METHOD(NULL, &_1, "next", NULL, 0); - zephir_check_call_status(); - } + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; + } + if (!position_param) { + position = 1; + } else { + position = zephir_get_intval(position_param); } - ZEPHIR_INIT_NVAR(&_2); - ZEPHIR_INIT_NVAR(&column); - ZEPHIR_INIT_VAR(&_10); - ZEPHIR_INIT_VAR(&_12); - ZVAL_STRING(&_12, ","); - ZEPHIR_CALL_METHOD(&_11, this_ptr, "indent", NULL, 0, &columns, &_12); - zephir_check_call_status(); - zephir_fast_trim(&_10, &_11, NULL , ZEPHIR_TRIM_LEFT); - ZEPHIR_INIT_NVAR(&_12); - zephir_read_property(&_14, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_15, &_14, SL("COLUMNS"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Insert.zep", 183); - ZEPHIR_CALL_FUNCTION(&_16, "array_values", NULL, 12, &_15); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_17); - ZVAL_STRING(&_17, ","); - ZEPHIR_CALL_METHOD(&_13, this_ptr, "indent", NULL, 0, &_16, &_17); - zephir_check_call_status(); - zephir_fast_trim(&_12, &_13, NULL , ZEPHIR_TRIM_LEFT); - ZEPHIR_CONCAT_SVSVS(return_value, " (", &_10, ") VALUES (", &_12, ")"); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - -ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Query_QueryFactory) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\DataMapper\\Query, QueryFactory, phalcon, datamapper_query_queryfactory, phalcon_datamapper_query_queryfactory_method_entry, 0); - zend_declare_property_string(phalcon_datamapper_query_queryfactory_ce, SL("selectClass"), "", ZEND_ACC_PROTECTED); - return SUCCESS; + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "POST"); + ZVAL_LONG(&_1, position); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &pattern, paths, &_0, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Query_QueryFactory, __construct) +static PHP_METHOD(Phalcon_Mvc_Router, addPurge) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *selectClass_param = NULL; - zval selectClass; + zend_long position, ZEPHIR_LAST_CALL_STATUS; + zval *pattern_param = NULL, *paths = NULL, paths_sub, *position_param = NULL, __$null, _0, _1; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&selectClass); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(pattern) Z_PARAM_OPTIONAL - Z_PARAM_STR(selectClass) + Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_LONG(position) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &selectClass_param); - if (!selectClass_param) { - ZEPHIR_INIT_VAR(&selectClass); - ZVAL_STRING(&selectClass, ""); + zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &position_param); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); } else { - zephir_get_strval(&selectClass, selectClass_param); + ZEPHIR_INIT_VAR(&pattern); } - - - if (ZEPHIR_IS_EMPTY(&selectClass)) { - ZEPHIR_INIT_NVAR(&selectClass); - ZVAL_STRING(&selectClass, "Phalcon\\DataMapper\\Query\\Select"); + if (!paths) { + paths = &paths_sub; + paths = &__$null; } - zephir_update_property_zval(this_ptr, ZEND_STRL("selectClass"), &selectClass); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_DataMapper_Query_QueryFactory, newBind) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - - - ZEPHIR_MM_GROW(); - - object_init_ex(return_value, phalcon_datamapper_query_bind_ce); - if (zephir_has_constructor(return_value)) { - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 0); - zephir_check_call_status(); + if (!position_param) { + position = 1; + } else { + position = zephir_get_intval(position_param); } + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "PURGE"); + ZVAL_LONG(&_1, position); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &pattern, paths, &_0, &_1); + zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Query_QueryFactory, newDelete) +static PHP_METHOD(Phalcon_Mvc_Router, addPut) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *connection, connection_sub, _0; + zend_long position, ZEPHIR_LAST_CALL_STATUS; + zval *pattern_param = NULL, *paths = NULL, paths_sub, *position_param = NULL, __$null, _0, _1; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&connection_sub); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_datamapper_pdo_connection_ce) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_LONG(position) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &connection); + zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &position_param); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); + } else { + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; + } + if (!position_param) { + position = 1; + } else { + position = zephir_get_intval(position_param); + } - object_init_ex(return_value, phalcon_datamapper_query_delete_ce); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "newbind", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 205, connection, &_0); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "PUT"); + ZVAL_LONG(&_1, position); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &pattern, paths, &_0, &_1); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Query_QueryFactory, newInsert) +static PHP_METHOD(Phalcon_Mvc_Router, addTrace) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *connection, connection_sub, _0; + zend_long position, ZEPHIR_LAST_CALL_STATUS; + zval *pattern_param = NULL, *paths = NULL, paths_sub, *position_param = NULL, __$null, _0, _1; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&connection_sub); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_datamapper_pdo_connection_ce) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_LONG(position) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &connection); + zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &position_param); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); + } else { + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; + } + if (!position_param) { + position = 1; + } else { + position = zephir_get_intval(position_param); + } - object_init_ex(return_value, phalcon_datamapper_query_insert_ce); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "newbind", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 206, connection, &_0); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "TRACE"); + ZVAL_LONG(&_1, position); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &pattern, paths, &_0, &_1); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Query_QueryFactory, newSelect) +static PHP_METHOD(Phalcon_Mvc_Router, attach) { - zend_class_entry *_2; - zval selectClass; + zval _1$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *connection, connection_sub, _0, _1, _3; + zend_long position; + zval *route, route_sub, *position_param = NULL, _0$$4, _2$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&connection_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&selectClass); + ZVAL_UNDEF(&route_sub); + ZVAL_UNDEF(&_0$$4); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_1$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_datamapper_pdo_connection_ce) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_OBJECT_OF_CLASS(route, phalcon_mvc_router_routeinterface_ce) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(position) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &connection); + zephir_fetch_params(1, 1, 1, &route, &position_param); + if (!position_param) { + position = 1; + } else { + position = zephir_get_intval(position_param); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("selectClass"), PH_NOISY_CC | PH_READONLY); - zephir_get_strval(&selectClass, &_0); - zephir_fetch_safe_class(&_1, &selectClass); - _2 = zephir_fetch_class_str_ex(Z_STRVAL_P(&_1), Z_STRLEN_P(&_1), ZEND_FETCH_CLASS_AUTO); - if(!_2) { - RETURN_MM_NULL(); - } - object_init_ex(return_value, _2); - if (zephir_has_constructor(return_value)) { - ZEPHIR_CALL_METHOD(&_3, this_ptr, "newbind", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 0, connection, &_3); - zephir_check_call_status(); - } + do { + if (position == 1) { + zephir_update_property_array_append(this_ptr, SL("routes"), route); + break; + } + if (position == 0) { + ZEPHIR_INIT_VAR(&_0$$4); + ZEPHIR_INIT_VAR(&_1$$4); + zephir_create_array(&_1$$4, 1, 0); + zephir_array_fast_append(&_1$$4, route); + zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); + zephir_fast_array_merge(&_0$$4, &_1$$4, &_2$$4); + zephir_update_property_zval(this_ptr, ZEND_STRL("routes"), &_0$$4); + break; + } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_router_exception_ce, "Invalid route position", "phalcon/Mvc/Router.zep", 459); + return; + } while(0); - RETURN_MM(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_DataMapper_Query_QueryFactory, newUpdate) +static PHP_METHOD(Phalcon_Mvc_Router, clear) { + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *connection, connection_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&connection_sub); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_datamapper_pdo_connection_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &connection); - - object_init_ex(return_value, phalcon_datamapper_query_update_ce); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "newbind", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 207, connection, &_0); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("routes"), &_0); + ZEPHIR_MM_RESTORE(); } +static PHP_METHOD(Phalcon_Mvc_Router, getEventsManager) +{ + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H -#endif + RETURN_MEMBER(getThis(), "eventsManager"); +} +static PHP_METHOD(Phalcon_Mvc_Router, getActionName) +{ + zval *this_ptr = getThis(); + RETURN_MEMBER(getThis(), "action"); +} -ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Query_Select) +static PHP_METHOD(Phalcon_Mvc_Router, getControllerName) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Query, Select, phalcon, datamapper_query_select, phalcon_datamapper_query_abstractconditions_ce, phalcon_datamapper_query_select_method_entry, 0); - - zend_declare_property_string(phalcon_datamapper_query_select_ce, SL("asAlias"), "", ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_datamapper_query_select_ce, SL("forUpdate"), 0, ZEND_ACC_PROTECTED); - zephir_declare_class_constant_string(phalcon_datamapper_query_select_ce, SL("JOIN_INNER"), "INNER"); - - zephir_declare_class_constant_string(phalcon_datamapper_query_select_ce, SL("JOIN_LEFT"), "LEFT"); + zval *this_ptr = getThis(); - zephir_declare_class_constant_string(phalcon_datamapper_query_select_ce, SL("JOIN_NATURAL"), "NATURAL"); - zephir_declare_class_constant_string(phalcon_datamapper_query_select_ce, SL("JOIN_RIGHT"), "RIGHT"); - return SUCCESS; + RETURN_MEMBER(getThis(), "controller"); } -static PHP_METHOD(Phalcon_DataMapper_Query_Select, __call) +static PHP_METHOD(Phalcon_Mvc_Router, getMatchedRoute) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval params, proxied, _0$$3, _3$$3; - zval *method_param = NULL, *params_param = NULL, __$true, _5, _1$$3, _2$$3, _4$$3; - zval method, _6; zval *this_ptr = getThis(); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&_6); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(¶ms); - ZVAL_UNDEF(&proxied); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_3$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(method) - Z_PARAM_ARRAY(params) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &method_param, ¶ms_param); - zephir_get_strval(&method, method_param); - zephir_get_arrval(¶ms, params_param); - ZEPHIR_INIT_VAR(&proxied); - zephir_create_array(&proxied, 10, 0); - zephir_array_update_string(&proxied, SL("fetchAffected"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&proxied, SL("fetchAll"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&proxied, SL("fetchAssoc"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&proxied, SL("fetchCol"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&proxied, SL("fetchGroup"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&proxied, SL("fetchObject"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&proxied, SL("fetchObjects"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&proxied, SL("fetchOne"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&proxied, SL("fetchPairs"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&proxied, SL("fetchValue"), &__$true, PH_COPY | PH_SEPARATE); - if (EXPECTED(zephir_array_isset(&proxied, &method))) { - ZEPHIR_INIT_VAR(&_0$$3); - zephir_create_array(&_0$$3, 2, 0); - ZEPHIR_OBS_VAR(&_1$$3); - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC); - zephir_array_fast_append(&_0$$3, &_1$$3); - zephir_array_fast_append(&_0$$3, &method); - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_INIT_VAR(&_3$$3); - zephir_create_array(&_3$$3, 2, 0); - ZEPHIR_CALL_METHOD(&_4$$3, this_ptr, "getstatement", NULL, 0); - zephir_check_call_status(); - zephir_array_fast_append(&_3$$3, &_4$$3); - ZEPHIR_CALL_METHOD(&_4$$3, this_ptr, "getbindvalues", NULL, 0); - zephir_check_call_status(); - zephir_array_fast_append(&_3$$3, &_4$$3); - zephir_fast_array_merge(&_2$$3, &_3$$3, ¶ms); - ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, &_0$$3, &_2$$3); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_INIT_VAR(&_5); - object_init_ex(&_5, spl_ce_BadMethodCallException); - ZEPHIR_INIT_VAR(&_6); - ZEPHIR_CONCAT_SVS(&_6, "Unknown method: [", &method, "]"); - ZEPHIR_CALL_METHOD(NULL, &_5, "__construct", NULL, 95, &_6); - zephir_check_call_status(); - zephir_throw_exception_debug(&_5, "phalcon/DataMapper/Query/Select.zep", 98); - ZEPHIR_MM_RESTORE(); - return; + RETURN_MEMBER(getThis(), "matchedRoute"); } -static PHP_METHOD(Phalcon_DataMapper_Query_Select, andHaving) +static PHP_METHOD(Phalcon_Mvc_Router, getMatches) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _0; - zval condition; zval *this_ptr = getThis(); - ZVAL_UNDEF(&condition); - ZVAL_UNDEF(&value_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(condition) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(value) - Z_PARAM_LONG(type) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &condition_param, &value, &type_param); - zephir_get_strval(&condition, condition_param); - if (!value) { - value = &value_sub; - value = &__$null; - } - if (!type_param) { - type = -1; - } else { - type = zephir_get_intval(type_param); - } + RETURN_MEMBER(getThis(), "matches"); +} +static PHP_METHOD(Phalcon_Mvc_Router, getModuleName) +{ + zval *this_ptr = getThis(); - ZVAL_LONG(&_0, type); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "having", NULL, 0, &condition, value, &_0); - zephir_check_call_status(); - RETURN_THIS(); + + + RETURN_MEMBER(getThis(), "module"); } -static PHP_METHOD(Phalcon_DataMapper_Query_Select, asAlias) +static PHP_METHOD(Phalcon_Mvc_Router, getNamespaceName) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *asAlias_param = NULL; - zval asAlias; zval *this_ptr = getThis(); - ZVAL_UNDEF(&asAlias); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(asAlias) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &asAlias_param); - zephir_get_strval(&asAlias, asAlias_param); + RETURN_MEMBER(getThis(), "namespaceName"); +} + +static PHP_METHOD(Phalcon_Mvc_Router, getParams) +{ + zval *this_ptr = getThis(); - zephir_update_property_zval(this_ptr, ZEND_STRL("asAlias"), &asAlias); - RETURN_THIS(); + + RETURN_MEMBER(getThis(), "params"); } -static PHP_METHOD(Phalcon_DataMapper_Query_Select, appendHaving) +static PHP_METHOD(Phalcon_Mvc_Router, getRouteById) { + zend_string *_7; + zend_ulong _6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _0, _1; - zval condition; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *id, id_sub, route, routeId, key, _0, _3, *_4, _5, _1$$3, _2$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&condition); - ZVAL_UNDEF(&value_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&id_sub); + ZVAL_UNDEF(&route); + ZVAL_UNDEF(&routeId); + ZVAL_UNDEF(&key); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(condition) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(value) - Z_PARAM_LONG(type) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(id) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &condition_param, &value, &type_param); - zephir_get_strval(&condition, condition_param); - if (!value) { - value = &value_sub; - value = &__$null; + zephir_fetch_params(1, 1, 0, &id); + + + ZEPHIR_OBS_VAR(&key); + zephir_read_property(&_0, this_ptr, ZEND_STRL("keyRouteIds"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_fetch(&key, &_0, id, 0)) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_2$$3, &_1$$3, &key, PH_NOISY | PH_READONLY, "phalcon/Mvc/Router.zep", 549); + RETURN_CTOR(&_2$$3); } - if (!type_param) { - type = -1; + zephir_read_property(&_3, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); + zephir_is_iterable(&_3, 0, "phalcon/Mvc/Router.zep", 561); + if (Z_TYPE_P(&_3) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_3), _6, _7, _4) + { + ZEPHIR_INIT_NVAR(&key); + if (_7 != NULL) { + ZVAL_STR_COPY(&key, _7); + } else { + ZVAL_LONG(&key, _6); + } + ZEPHIR_INIT_NVAR(&route); + ZVAL_COPY(&route, _4); + ZEPHIR_CALL_METHOD(&routeId, &route, "getrouteid", NULL, 0); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("keyRouteIds"), &routeId, &key); + if (ZEPHIR_IS_EQUAL(&routeId, id)) { + RETURN_CCTOR(&route); + } + } ZEND_HASH_FOREACH_END(); } else { - type = zephir_get_intval(type_param); + ZEPHIR_CALL_METHOD(NULL, &_3, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_5, &_3, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_5)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &_3, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&route, &_3, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&routeId, &route, "getrouteid", NULL, 0); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("keyRouteIds"), &routeId, &key); + if (ZEPHIR_IS_EQUAL(&routeId, id)) { + RETURN_CCTOR(&route); + } + ZEPHIR_CALL_METHOD(NULL, &_3, "next", NULL, 0); + zephir_check_call_status(); + } } - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "HAVING"); - ZVAL_LONG(&_1, type); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendcondition", NULL, 0, &_0, &condition, value, &_1); - zephir_check_call_status(); - RETURN_THIS(); + ZEPHIR_INIT_NVAR(&route); + ZEPHIR_INIT_NVAR(&key); + RETURN_MM_BOOL(0); } -static PHP_METHOD(Phalcon_DataMapper_Query_Select, appendJoin) +static PHP_METHOD(Phalcon_Mvc_Router, getRouteByName) { + zend_string *_7; + zend_ulong _6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, end, key, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _0$$3, _1$$3, _2$$3; - zval condition; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, route, routeName, key, _0, _3, *_4, _5, _1$$3, _2$$3; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&condition); - ZVAL_UNDEF(&value_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&end); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&route); + ZVAL_UNDEF(&routeName); ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_3); ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_13); - ZVAL_UNDEF(&_0$$3); ZVAL_UNDEF(&_1$$3); ZVAL_UNDEF(&_2$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(condition) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(value) - Z_PARAM_LONG(type) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &condition_param, &value, &type_param); - zephir_get_strval(&condition, condition_param); - if (!value) { - value = &value_sub; - value = &__$null; + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); } - if (!type_param) { - type = -1; + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); } else { - type = zephir_get_intval(type_param); + ZEPHIR_INIT_VAR(&name); } - if (!(ZEPHIR_IS_EMPTY(value))) { - zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_2$$3, type); - ZEPHIR_CALL_METHOD(&_1$$3, &_0$$3, "bindinline", NULL, 0, value, &_2$$3); + ZEPHIR_OBS_VAR(&key); + zephir_read_property(&_0, this_ptr, ZEND_STRL("keyRouteNames"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_fetch(&key, &_0, &name, 0)) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_2$$3, &_1$$3, &key, PH_NOISY | PH_READONLY, "phalcon/Mvc/Router.zep", 576); + RETURN_CTOR(&_2$$3); + } + zephir_read_property(&_3, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); + zephir_is_iterable(&_3, 0, "phalcon/Mvc/Router.zep", 591); + if (Z_TYPE_P(&_3) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_3), _6, _7, _4) + { + ZEPHIR_INIT_NVAR(&key); + if (_7 != NULL) { + ZVAL_STR_COPY(&key, _7); + } else { + ZVAL_LONG(&key, _6); + } + ZEPHIR_INIT_NVAR(&route); + ZVAL_COPY(&route, _4); + ZEPHIR_CALL_METHOD(&routeName, &route, "getname", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&routeName))) { + zephir_update_property_array(this_ptr, SL("keyRouteNames"), &routeName, &key); + if (ZEPHIR_IS_EQUAL(&routeName, &name)) { + RETURN_CCTOR(&route); + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_3, "rewind", NULL, 0); zephir_check_call_status(); - zephir_concat_self(&condition, &_1$$3); + while (1) { + ZEPHIR_CALL_METHOD(&_5, &_3, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_5)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &_3, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&route, &_3, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&routeName, &route, "getname", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&routeName))) { + zephir_update_property_array(this_ptr, SL("keyRouteNames"), &routeName, &key); + if (ZEPHIR_IS_EQUAL(&routeName, &name)) { + RETURN_CCTOR(&route); + } + } + ZEPHIR_CALL_METHOD(NULL, &_3, "next", NULL, 0); + zephir_check_call_status(); + } } - zephir_read_property(&_4, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_5, &_4, SL("FROM"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 173); - ZEPHIR_CALL_CE_STATIC(&end, phalcon_helper_arr_ce, "lastkey", &_3, 49, &_5); - zephir_check_call_status(); - zephir_read_property(&_6, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_7, &_6, SL("FROM"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 174); - zephir_array_fetch(&_8, &_7, &end, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 174); - ZEPHIR_CALL_CE_STATIC(&key, phalcon_helper_arr_ce, "lastkey", &_3, 49, &_8); - zephir_check_call_status(); - zephir_read_property(&_9, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_10, &_9, SL("FROM"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 176); - zephir_array_fetch(&_11, &_10, &end, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 176); - zephir_array_fetch(&_12, &_11, &key, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 176); - ZEPHIR_INIT_VAR(&_13); - ZEPHIR_CONCAT_VV(&_13, &_12, &condition); - zephir_update_property_array_multi(this_ptr, SL("store"), &_13, SL("szz"), 4, SL("FROM"), &end, &key); - RETURN_THIS(); + ZEPHIR_INIT_NVAR(&route); + ZEPHIR_INIT_NVAR(&key); + RETURN_MM_BOOL(0); } -static PHP_METHOD(Phalcon_DataMapper_Query_Select, columns) +static PHP_METHOD(Phalcon_Mvc_Router, getRoutes) { - zval _0, _1, _2, _3, _4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - - ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(&_0); - zephir_read_property(&_1, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_2, &_1, SL("COLUMNS"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 192); - ZEPHIR_INIT_VAR(&_3); - zephir_get_args(&_3); - zephir_fast_array_merge(&_0, &_2, &_3); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "COLUMNS"); - zephir_update_property_array(this_ptr, SL("store"), &_4, &_0); - RETURN_THIS(); + RETURN_MEMBER(getThis(), "routes"); } -static PHP_METHOD(Phalcon_DataMapper_Query_Select, distinct) +static PHP_METHOD(Phalcon_Mvc_Router, handle) { + zend_string *_35$$33, *_75$$82; + zend_ulong _34$$33, _74$$82; + zval _29$$28, _40$$39, _42$$42, _47$$50, _49$$53, _69$$77, _80$$88, _82$$91, _87$$99, _89$$102; + zend_bool _2, _38$$34, _45$$45, _78$$83, _85$$94; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_11 = NULL, *_13 = NULL, *_26 = NULL, *_28 = NULL, *_31 = NULL, *_66 = NULL, *_68 = NULL, *_71 = NULL, *_91 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *enable_param = NULL, _0, _1; - zend_bool enable; + zval *uri_param = NULL, __$true, __$false, __$null, request, currentHostName, routeFound, parts, params, matches, notFoundPaths, vnamespace, module, controller, action, paramsStr, strParams, route, methods, container, hostname, regexHostName, matched, pattern, handledUri, beforeMatch, paths, converters, part, position, matchPosition, converter, eventsManager, _0, _1, _4, *_6, _7, _92, _93, _94, _95, _96, _3$$3, _5$$6, _8$$9, _14$$9, _15$$9, _9$$10, _10$$10, _12$$10, _16$$8, _17$$8, _18$$13, _22$$13, _23$$13, _19$$14, _20$$14, _21$$14, _24$$17, _25$$23, _27$$27, _30$$31, *_32$$33, _33$$33, _36$$35, _37$$35, _39$$39, _41$$42, _43$$46, _44$$46, _46$$50, _48$$53, _50$$58, _54$$58, _55$$58, _51$$59, _52$$59, _53$$59, _56$$57, _57$$57, _58$$62, _62$$62, _63$$62, _59$$63, _60$$63, _61$$63, _64$$66, _65$$72, _67$$76, _70$$80, *_72$$82, _73$$82, _76$$84, _77$$84, _79$$88, _81$$91, _83$$95, _84$$95, _86$$99, _88$$102, _90$$107, _97$$115, _98$$117, _99$$119; + zval uri; zval *this_ptr = getThis(); + ZVAL_UNDEF(&uri); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&request); + ZVAL_UNDEF(¤tHostName); + ZVAL_UNDEF(&routeFound); + ZVAL_UNDEF(&parts); + ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&matches); + ZVAL_UNDEF(¬FoundPaths); + ZVAL_UNDEF(&vnamespace); + ZVAL_UNDEF(&module); + ZVAL_UNDEF(&controller); + ZVAL_UNDEF(&action); + ZVAL_UNDEF(¶msStr); + ZVAL_UNDEF(&strParams); + ZVAL_UNDEF(&route); + ZVAL_UNDEF(&methods); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&hostname); + ZVAL_UNDEF(®exHostName); + ZVAL_UNDEF(&matched); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&handledUri); + ZVAL_UNDEF(&beforeMatch); + ZVAL_UNDEF(&paths); + ZVAL_UNDEF(&converters); + ZVAL_UNDEF(&part); + ZVAL_UNDEF(&position); + ZVAL_UNDEF(&matchPosition); + ZVAL_UNDEF(&converter); + ZVAL_UNDEF(&eventsManager); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(enable) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &enable_param); - if (!enable_param) { - enable = 1; - } else { - enable = zephir_get_boolval(enable_param); - } - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "DISTINCT"); - if (enable) { - ZVAL_BOOL(&_1, 1); - } else { - ZVAL_BOOL(&_1, 0); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setflag", NULL, 0, &_0, &_1); - zephir_check_call_status(); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_DataMapper_Query_Select, from) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *table_param = NULL; - zval table; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_92); + ZVAL_UNDEF(&_93); + ZVAL_UNDEF(&_94); + ZVAL_UNDEF(&_95); + ZVAL_UNDEF(&_96); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&_8$$9); + ZVAL_UNDEF(&_14$$9); + ZVAL_UNDEF(&_15$$9); + ZVAL_UNDEF(&_9$$10); + ZVAL_UNDEF(&_10$$10); + ZVAL_UNDEF(&_12$$10); + ZVAL_UNDEF(&_16$$8); + ZVAL_UNDEF(&_17$$8); + ZVAL_UNDEF(&_18$$13); + ZVAL_UNDEF(&_22$$13); + ZVAL_UNDEF(&_23$$13); + ZVAL_UNDEF(&_19$$14); + ZVAL_UNDEF(&_20$$14); + ZVAL_UNDEF(&_21$$14); + ZVAL_UNDEF(&_24$$17); + ZVAL_UNDEF(&_25$$23); + ZVAL_UNDEF(&_27$$27); + ZVAL_UNDEF(&_30$$31); + ZVAL_UNDEF(&_33$$33); + ZVAL_UNDEF(&_36$$35); + ZVAL_UNDEF(&_37$$35); + ZVAL_UNDEF(&_39$$39); + ZVAL_UNDEF(&_41$$42); + ZVAL_UNDEF(&_43$$46); + ZVAL_UNDEF(&_44$$46); + ZVAL_UNDEF(&_46$$50); + ZVAL_UNDEF(&_48$$53); + ZVAL_UNDEF(&_50$$58); + ZVAL_UNDEF(&_54$$58); + ZVAL_UNDEF(&_55$$58); + ZVAL_UNDEF(&_51$$59); + ZVAL_UNDEF(&_52$$59); + ZVAL_UNDEF(&_53$$59); + ZVAL_UNDEF(&_56$$57); + ZVAL_UNDEF(&_57$$57); + ZVAL_UNDEF(&_58$$62); + ZVAL_UNDEF(&_62$$62); + ZVAL_UNDEF(&_63$$62); + ZVAL_UNDEF(&_59$$63); + ZVAL_UNDEF(&_60$$63); + ZVAL_UNDEF(&_61$$63); + ZVAL_UNDEF(&_64$$66); + ZVAL_UNDEF(&_65$$72); + ZVAL_UNDEF(&_67$$76); + ZVAL_UNDEF(&_70$$80); + ZVAL_UNDEF(&_73$$82); + ZVAL_UNDEF(&_76$$84); + ZVAL_UNDEF(&_77$$84); + ZVAL_UNDEF(&_79$$88); + ZVAL_UNDEF(&_81$$91); + ZVAL_UNDEF(&_83$$95); + ZVAL_UNDEF(&_84$$95); + ZVAL_UNDEF(&_86$$99); + ZVAL_UNDEF(&_88$$102); + ZVAL_UNDEF(&_90$$107); + ZVAL_UNDEF(&_97$$115); + ZVAL_UNDEF(&_98$$117); + ZVAL_UNDEF(&_99$$119); + ZVAL_UNDEF(&_29$$28); + ZVAL_UNDEF(&_40$$39); + ZVAL_UNDEF(&_42$$42); + ZVAL_UNDEF(&_47$$50); + ZVAL_UNDEF(&_49$$53); + ZVAL_UNDEF(&_69$$77); + ZVAL_UNDEF(&_80$$88); + ZVAL_UNDEF(&_82$$91); + ZVAL_UNDEF(&_87$$99); + ZVAL_UNDEF(&_89$$102); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(table) + Z_PARAM_STR(uri) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &table_param); - zephir_get_strval(&table, table_param); - - - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 1, 0); - zephir_array_fast_append(&_0, &table); - zephir_update_property_array_multi(this_ptr, SL("store"), &_0, SL("sa"), 3, SL("FROM")); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_DataMapper_Query_Select, forUpdate) -{ - zval *enable_param = NULL, __$true, __$false; - zend_bool enable; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(enable) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(0, 1, &enable_param); - if (!enable_param) { - enable = 1; + zephir_fetch_params(1, 1, 0, &uri_param); + if (UNEXPECTED(Z_TYPE_P(uri_param) != IS_STRING && Z_TYPE_P(uri_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'uri' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(uri_param) == IS_STRING)) { + zephir_get_strval(&uri, uri_param); } else { - enable = zephir_get_boolval(enable_param); + ZEPHIR_INIT_VAR(&uri); } - if (enable) { - zephir_update_property_zval(this_ptr, ZEND_STRL("forUpdate"), &__$true); + ZVAL_LONG(&_0, 5); + ZEPHIR_CALL_FUNCTION(&_1, "parse_url", NULL, 118, &uri, &_0); + zephir_check_call_status(); + zephir_get_strval(&uri, &_1); + zephir_read_property(&_0, this_ptr, ZEND_STRL("removeExtraSlashes"), PH_NOISY_CC | PH_READONLY); + _2 = zephir_is_true(&_0); + if (_2) { + _2 = !ZEPHIR_IS_STRING(&uri, "/"); + } + if (_2) { + ZEPHIR_INIT_VAR(&_3$$3); + ZVAL_STRING(&_3$$3, "/"); + ZEPHIR_INIT_VAR(&handledUri); + zephir_fast_trim(&handledUri, &uri, &_3$$3, ZEPHIR_TRIM_RIGHT); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("forUpdate"), &__$false); + ZEPHIR_CPY_WRT(&handledUri, &uri); } - RETURN_THISW(); + if (ZEPHIR_IS_EMPTY(&handledUri)) { + ZEPHIR_INIT_NVAR(&handledUri); + ZVAL_STRING(&handledUri, "/"); + } + ZEPHIR_INIT_VAR(&request); + ZVAL_NULL(&request); + ZEPHIR_INIT_VAR(¤tHostName); + ZVAL_NULL(¤tHostName); + ZEPHIR_INIT_VAR(&routeFound); + ZVAL_BOOL(&routeFound, 0); + ZEPHIR_INIT_VAR(&parts); + array_init(&parts); + ZEPHIR_INIT_VAR(¶ms); + array_init(¶ms); + ZEPHIR_INIT_VAR(&matches); + ZVAL_NULL(&matches); + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$false); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("matchedRoute"), &__$null); + zephir_read_property(&_4, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_4); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_5$$6); + ZVAL_STRING(&_5$$6, "router:beforeCheckRoutes"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_5$$6, this_ptr); + zephir_check_call_status(); + } + zephir_read_property(&_4, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); + zephir_is_iterable(&_4, 0, "phalcon/Mvc/Router.zep", 892); + if (Z_TYPE_P(&_4) == IS_ARRAY) { + ZEND_HASH_REVERSE_FOREACH_VAL(Z_ARRVAL_P(&_4), _6) + { + ZEPHIR_INIT_NVAR(&route); + ZVAL_COPY(&route, _6); + ZEPHIR_INIT_NVAR(¶ms); + array_init(¶ms); + ZEPHIR_INIT_NVAR(&matches); + ZVAL_NULL(&matches); + ZEPHIR_CALL_METHOD(&methods, &route, "gethttpmethods", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&methods) != IS_NULL) { + if (Z_TYPE_P(&request) == IS_NULL) { + zephir_read_property(&_8$$9, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_8$$9); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_NVAR(&_9$$10); + object_init_ex(&_9$$10, phalcon_mvc_router_exception_ce); + ZEPHIR_INIT_NVAR(&_12$$10); + ZVAL_STRING(&_12$$10, "the 'request' service"); + ZEPHIR_CALL_CE_STATIC(&_10$$10, phalcon_mvc_router_exception_ce, "containerservicenotfound", &_11, 0, &_12$$10); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_9$$10, "__construct", &_13, 8, &_10$$10); + zephir_check_call_status(); + zephir_throw_exception_debug(&_9$$10, "phalcon/Mvc/Router.zep", 678); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_NVAR(&_15$$9); + ZVAL_STRING(&_15$$9, "request"); + ZEPHIR_CALL_METHOD(&_14$$9, &container, "getshared", NULL, 0, &_15$$9); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&request, &_14$$9); + } + ZVAL_BOOL(&_17$$8, 1); + ZEPHIR_CALL_METHOD(&_16$$8, &request, "ismethod", NULL, 0, &methods, &_17$$8); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_16$$8)) { + continue; + } + } + ZEPHIR_CALL_METHOD(&hostname, &route, "gethostname", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&hostname) != IS_NULL) { + if (Z_TYPE_P(&request) == IS_NULL) { + zephir_read_property(&_18$$13, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_18$$13); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_NVAR(&_19$$14); + object_init_ex(&_19$$14, phalcon_mvc_router_exception_ce); + ZEPHIR_INIT_NVAR(&_21$$14); + ZVAL_STRING(&_21$$14, "the 'request' service"); + ZEPHIR_CALL_CE_STATIC(&_20$$14, phalcon_mvc_router_exception_ce, "containerservicenotfound", &_11, 0, &_21$$14); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_19$$14, "__construct", &_13, 8, &_20$$14); + zephir_check_call_status(); + zephir_throw_exception_debug(&_19$$14, "phalcon/Mvc/Router.zep", 709); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_NVAR(&_23$$13); + ZVAL_STRING(&_23$$13, "request"); + ZEPHIR_CALL_METHOD(&_22$$13, &container, "getshared", NULL, 0, &_23$$13); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&request, &_22$$13); + } + if (Z_TYPE_P(¤tHostName) == IS_NULL) { + ZEPHIR_CALL_METHOD(¤tHostName, &request, "gethttphost", NULL, 0); + zephir_check_call_status(); + } + if (!(zephir_is_true(¤tHostName))) { + continue; + } + if (zephir_memnstr_str(&hostname, SL("("), "phalcon/Mvc/Router.zep", 733)) { + if (!(zephir_memnstr_str(&hostname, SL("#"), "phalcon/Mvc/Router.zep", 734))) { + ZEPHIR_INIT_NVAR(®exHostName); + ZEPHIR_CONCAT_SV(®exHostName, "#^", &hostname); + if (!(zephir_memnstr_str(&hostname, SL(":"), "phalcon/Mvc/Router.zep", 737))) { + zephir_concat_self_str(®exHostName, SL("(:[[:digit:]]+)?")); + } + zephir_concat_self_str(®exHostName, SL("$#i")); + } else { + ZEPHIR_CPY_WRT(®exHostName, &hostname); + } + ZEPHIR_INIT_NVAR(&_24$$17); + ZEPHIR_INIT_NVAR(&matched); + zephir_preg_match(&matched, ®exHostName, ¤tHostName, &_24$$17, 0, 0 , 0 ); + } else { + ZEPHIR_INIT_NVAR(&matched); + ZVAL_BOOL(&matched, ZEPHIR_IS_EQUAL(¤tHostName, &hostname)); + } + if (!(zephir_is_true(&matched))) { + continue; + } + } + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_25$$23); + ZVAL_STRING(&_25$$23, "router:beforeCheckRoute"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_26, 0, &_25$$23, this_ptr, &route); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(&pattern, &route, "getcompiledpattern", NULL, 0); + zephir_check_call_status(); + if (zephir_memnstr_str(&pattern, SL("^"), "phalcon/Mvc/Router.zep", 765)) { + ZEPHIR_INIT_NVAR(&routeFound); + zephir_preg_match(&routeFound, &pattern, &handledUri, &matches, 0, 0 , 0 ); + } else { + ZEPHIR_INIT_NVAR(&routeFound); + ZVAL_BOOL(&routeFound, ZEPHIR_IS_EQUAL(&pattern, &handledUri)); + } + if (zephir_is_true(&routeFound)) { + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_27$$27); + ZVAL_STRING(&_27$$27, "router:matchedRoute"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_28, 0, &_27$$27, this_ptr, &route); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(&beforeMatch, &route, "getbeforematch", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&beforeMatch) != IS_NULL) { + if (UNEXPECTED(!(zephir_is_callable(&beforeMatch)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_router_exception_ce, "Before-Match callback is not callable in matched route", "phalcon/Mvc/Router.zep", 788); + return; + } + ZEPHIR_INIT_NVAR(&_29$$28); + zephir_create_array(&_29$$28, 3, 0); + zephir_array_fast_append(&_29$$28, &handledUri); + zephir_array_fast_append(&_29$$28, &route); + zephir_array_fast_append(&_29$$28, this_ptr); + ZEPHIR_INIT_NVAR(&routeFound); + ZEPHIR_CALL_USER_FUNC_ARRAY(&routeFound, &beforeMatch, &_29$$28); + zephir_check_call_status(); + } + } else { + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_30$$31); + ZVAL_STRING(&_30$$31, "router:notMatchedRoute"); + ZEPHIR_CALL_METHOD(&routeFound, &eventsManager, "fire", &_31, 0, &_30$$31, this_ptr, &route); + zephir_check_call_status(); + } + } + if (zephir_is_true(&routeFound)) { + ZEPHIR_CALL_METHOD(&paths, &route, "getpaths", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&parts, &paths); + if (Z_TYPE_P(&matches) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&converters, &route, "getconverters", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&paths, 0, "phalcon/Mvc/Router.zep", 880); + if (Z_TYPE_P(&paths) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&paths), _34$$33, _35$$33, _32$$33) + { + ZEPHIR_INIT_NVAR(&part); + if (_35$$33 != NULL) { + ZVAL_STR_COPY(&part, _35$$33); + } else { + ZVAL_LONG(&part, _34$$33); + } + ZEPHIR_INIT_NVAR(&position); + ZVAL_COPY(&position, _32$$33); + if (UNEXPECTED(Z_TYPE_P(&part) != IS_STRING)) { + ZEPHIR_INIT_NVAR(&_36$$35); + object_init_ex(&_36$$35, phalcon_mvc_router_exception_ce); + ZEPHIR_INIT_NVAR(&_37$$35); + ZEPHIR_CONCAT_SV(&_37$$35, "Wrong key in paths: ", &part); + ZEPHIR_CALL_METHOD(NULL, &_36$$35, "__construct", &_13, 8, &_37$$35); + zephir_check_call_status(); + zephir_throw_exception_debug(&_36$$35, "phalcon/Mvc/Router.zep", 828); + ZEPHIR_MM_RESTORE(); + return; + } + _38$$34 = Z_TYPE_P(&position) != IS_STRING; + if (_38$$34) { + _38$$34 = Z_TYPE_P(&position) != IS_LONG; + } + if (_38$$34) { + continue; + } + ZEPHIR_OBS_NVAR(&matchPosition); + if (zephir_array_isset_fetch(&matchPosition, &matches, &position, 0)) { + if (Z_TYPE_P(&converters) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&converter); + if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { + ZEPHIR_INIT_NVAR(&_39$$39); + ZEPHIR_INIT_NVAR(&_40$$39); + zephir_create_array(&_40$$39, 1, 0); + zephir_array_fast_append(&_40$$39, &matchPosition); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_39$$39, &converter, &_40$$39); + zephir_check_call_status(); + zephir_array_update_zval(&parts, &part, &_39$$39, PH_COPY | PH_SEPARATE); + continue; + } + } + zephir_array_update_zval(&parts, &part, &matchPosition, PH_COPY | PH_SEPARATE); + } else { + if (Z_TYPE_P(&converters) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&converter); + if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { + ZEPHIR_INIT_NVAR(&_41$$42); + ZEPHIR_INIT_NVAR(&_42$$42); + zephir_create_array(&_42$$42, 1, 0); + zephir_array_fast_append(&_42$$42, &position); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_41$$42, &converter, &_42$$42); + zephir_check_call_status(); + zephir_array_update_zval(&parts, &part, &_41$$42, PH_COPY | PH_SEPARATE); + } + } else { + if (Z_TYPE_P(&position) == IS_LONG) { + zephir_array_unset(&parts, &part, PH_SEPARATE); + } + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &paths, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_33$$33, &paths, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_33$$33)) { + break; + } + ZEPHIR_CALL_METHOD(&part, &paths, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&position, &paths, "current", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&part) != IS_STRING)) { + ZEPHIR_INIT_NVAR(&_43$$46); + object_init_ex(&_43$$46, phalcon_mvc_router_exception_ce); + ZEPHIR_INIT_NVAR(&_44$$46); + ZEPHIR_CONCAT_SV(&_44$$46, "Wrong key in paths: ", &part); + ZEPHIR_CALL_METHOD(NULL, &_43$$46, "__construct", &_13, 8, &_44$$46); + zephir_check_call_status(); + zephir_throw_exception_debug(&_43$$46, "phalcon/Mvc/Router.zep", 828); + ZEPHIR_MM_RESTORE(); + return; + } + _45$$45 = Z_TYPE_P(&position) != IS_STRING; + if (_45$$45) { + _45$$45 = Z_TYPE_P(&position) != IS_LONG; + } + if (_45$$45) { + continue; + } + ZEPHIR_OBS_NVAR(&matchPosition); + if (zephir_array_isset_fetch(&matchPosition, &matches, &position, 0)) { + if (Z_TYPE_P(&converters) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&converter); + if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { + ZEPHIR_INIT_NVAR(&_46$$50); + ZEPHIR_INIT_NVAR(&_47$$50); + zephir_create_array(&_47$$50, 1, 0); + zephir_array_fast_append(&_47$$50, &matchPosition); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_46$$50, &converter, &_47$$50); + zephir_check_call_status(); + zephir_array_update_zval(&parts, &part, &_46$$50, PH_COPY | PH_SEPARATE); + continue; + } + } + zephir_array_update_zval(&parts, &part, &matchPosition, PH_COPY | PH_SEPARATE); + } else { + if (Z_TYPE_P(&converters) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&converter); + if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { + ZEPHIR_INIT_NVAR(&_48$$53); + ZEPHIR_INIT_NVAR(&_49$$53); + zephir_create_array(&_49$$53, 1, 0); + zephir_array_fast_append(&_49$$53, &position); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_48$$53, &converter, &_49$$53); + zephir_check_call_status(); + zephir_array_update_zval(&parts, &part, &_48$$53, PH_COPY | PH_SEPARATE); + } + } else { + if (Z_TYPE_P(&position) == IS_LONG) { + zephir_array_unset(&parts, &part, PH_SEPARATE); + } + } + } + ZEPHIR_CALL_METHOD(NULL, &paths, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&position); + ZEPHIR_INIT_NVAR(&part); + zephir_update_property_zval(this_ptr, ZEND_STRL("matches"), &matches); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("matchedRoute"), &route); + break; + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_4, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_7, &_4, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_7)) { + break; + } + ZEPHIR_CALL_METHOD(&route, &_4, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(¶ms); + array_init(¶ms); + ZEPHIR_INIT_NVAR(&matches); + ZVAL_NULL(&matches); + ZEPHIR_CALL_METHOD(&methods, &route, "gethttpmethods", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&methods) != IS_NULL) { + if (Z_TYPE_P(&request) == IS_NULL) { + zephir_read_property(&_50$$58, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_50$$58); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_NVAR(&_51$$59); + object_init_ex(&_51$$59, phalcon_mvc_router_exception_ce); + ZEPHIR_INIT_NVAR(&_53$$59); + ZVAL_STRING(&_53$$59, "the 'request' service"); + ZEPHIR_CALL_CE_STATIC(&_52$$59, phalcon_mvc_router_exception_ce, "containerservicenotfound", &_11, 0, &_53$$59); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_51$$59, "__construct", &_13, 8, &_52$$59); + zephir_check_call_status(); + zephir_throw_exception_debug(&_51$$59, "phalcon/Mvc/Router.zep", 678); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_NVAR(&_55$$58); + ZVAL_STRING(&_55$$58, "request"); + ZEPHIR_CALL_METHOD(&_54$$58, &container, "getshared", NULL, 0, &_55$$58); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&request, &_54$$58); + } + ZVAL_BOOL(&_57$$57, 1); + ZEPHIR_CALL_METHOD(&_56$$57, &request, "ismethod", NULL, 0, &methods, &_57$$57); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_56$$57)) { + continue; + } + } + ZEPHIR_CALL_METHOD(&hostname, &route, "gethostname", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&hostname) != IS_NULL) { + if (Z_TYPE_P(&request) == IS_NULL) { + zephir_read_property(&_58$$62, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_58$$62); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_NVAR(&_59$$63); + object_init_ex(&_59$$63, phalcon_mvc_router_exception_ce); + ZEPHIR_INIT_NVAR(&_61$$63); + ZVAL_STRING(&_61$$63, "the 'request' service"); + ZEPHIR_CALL_CE_STATIC(&_60$$63, phalcon_mvc_router_exception_ce, "containerservicenotfound", &_11, 0, &_61$$63); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_59$$63, "__construct", &_13, 8, &_60$$63); + zephir_check_call_status(); + zephir_throw_exception_debug(&_59$$63, "phalcon/Mvc/Router.zep", 709); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_NVAR(&_63$$62); + ZVAL_STRING(&_63$$62, "request"); + ZEPHIR_CALL_METHOD(&_62$$62, &container, "getshared", NULL, 0, &_63$$62); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&request, &_62$$62); + } + if (Z_TYPE_P(¤tHostName) == IS_NULL) { + ZEPHIR_CALL_METHOD(¤tHostName, &request, "gethttphost", NULL, 0); + zephir_check_call_status(); + } + if (!(zephir_is_true(¤tHostName))) { + continue; + } + if (zephir_memnstr_str(&hostname, SL("("), "phalcon/Mvc/Router.zep", 733)) { + if (!(zephir_memnstr_str(&hostname, SL("#"), "phalcon/Mvc/Router.zep", 734))) { + ZEPHIR_INIT_NVAR(®exHostName); + ZEPHIR_CONCAT_SV(®exHostName, "#^", &hostname); + if (!(zephir_memnstr_str(&hostname, SL(":"), "phalcon/Mvc/Router.zep", 737))) { + zephir_concat_self_str(®exHostName, SL("(:[[:digit:]]+)?")); + } + zephir_concat_self_str(®exHostName, SL("$#i")); + } else { + ZEPHIR_CPY_WRT(®exHostName, &hostname); + } + ZEPHIR_INIT_NVAR(&_64$$66); + ZEPHIR_INIT_NVAR(&matched); + zephir_preg_match(&matched, ®exHostName, ¤tHostName, &_64$$66, 0, 0 , 0 ); + } else { + ZEPHIR_INIT_NVAR(&matched); + ZVAL_BOOL(&matched, ZEPHIR_IS_EQUAL(¤tHostName, &hostname)); + } + if (!(zephir_is_true(&matched))) { + continue; + } + } + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_65$$72); + ZVAL_STRING(&_65$$72, "router:beforeCheckRoute"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_66, 0, &_65$$72, this_ptr, &route); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(&pattern, &route, "getcompiledpattern", NULL, 0); + zephir_check_call_status(); + if (zephir_memnstr_str(&pattern, SL("^"), "phalcon/Mvc/Router.zep", 765)) { + ZEPHIR_INIT_NVAR(&routeFound); + zephir_preg_match(&routeFound, &pattern, &handledUri, &matches, 0, 0 , 0 ); + } else { + ZEPHIR_INIT_NVAR(&routeFound); + ZVAL_BOOL(&routeFound, ZEPHIR_IS_EQUAL(&pattern, &handledUri)); + } + if (zephir_is_true(&routeFound)) { + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_67$$76); + ZVAL_STRING(&_67$$76, "router:matchedRoute"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_68, 0, &_67$$76, this_ptr, &route); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(&beforeMatch, &route, "getbeforematch", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&beforeMatch) != IS_NULL) { + if (UNEXPECTED(!(zephir_is_callable(&beforeMatch)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_router_exception_ce, "Before-Match callback is not callable in matched route", "phalcon/Mvc/Router.zep", 788); + return; + } + ZEPHIR_INIT_NVAR(&_69$$77); + zephir_create_array(&_69$$77, 3, 0); + zephir_array_fast_append(&_69$$77, &handledUri); + zephir_array_fast_append(&_69$$77, &route); + zephir_array_fast_append(&_69$$77, this_ptr); + ZEPHIR_INIT_NVAR(&routeFound); + ZEPHIR_CALL_USER_FUNC_ARRAY(&routeFound, &beforeMatch, &_69$$77); + zephir_check_call_status(); + } + } else { + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_70$$80); + ZVAL_STRING(&_70$$80, "router:notMatchedRoute"); + ZEPHIR_CALL_METHOD(&routeFound, &eventsManager, "fire", &_71, 0, &_70$$80, this_ptr, &route); + zephir_check_call_status(); + } + } + if (zephir_is_true(&routeFound)) { + ZEPHIR_CALL_METHOD(&paths, &route, "getpaths", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&parts, &paths); + if (Z_TYPE_P(&matches) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&converters, &route, "getconverters", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&paths, 0, "phalcon/Mvc/Router.zep", 880); + if (Z_TYPE_P(&paths) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&paths), _74$$82, _75$$82, _72$$82) + { + ZEPHIR_INIT_NVAR(&part); + if (_75$$82 != NULL) { + ZVAL_STR_COPY(&part, _75$$82); + } else { + ZVAL_LONG(&part, _74$$82); + } + ZEPHIR_INIT_NVAR(&position); + ZVAL_COPY(&position, _72$$82); + if (UNEXPECTED(Z_TYPE_P(&part) != IS_STRING)) { + ZEPHIR_INIT_NVAR(&_76$$84); + object_init_ex(&_76$$84, phalcon_mvc_router_exception_ce); + ZEPHIR_INIT_NVAR(&_77$$84); + ZEPHIR_CONCAT_SV(&_77$$84, "Wrong key in paths: ", &part); + ZEPHIR_CALL_METHOD(NULL, &_76$$84, "__construct", &_13, 8, &_77$$84); + zephir_check_call_status(); + zephir_throw_exception_debug(&_76$$84, "phalcon/Mvc/Router.zep", 828); + ZEPHIR_MM_RESTORE(); + return; + } + _78$$83 = Z_TYPE_P(&position) != IS_STRING; + if (_78$$83) { + _78$$83 = Z_TYPE_P(&position) != IS_LONG; + } + if (_78$$83) { + continue; + } + ZEPHIR_OBS_NVAR(&matchPosition); + if (zephir_array_isset_fetch(&matchPosition, &matches, &position, 0)) { + if (Z_TYPE_P(&converters) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&converter); + if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { + ZEPHIR_INIT_NVAR(&_79$$88); + ZEPHIR_INIT_NVAR(&_80$$88); + zephir_create_array(&_80$$88, 1, 0); + zephir_array_fast_append(&_80$$88, &matchPosition); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_79$$88, &converter, &_80$$88); + zephir_check_call_status(); + zephir_array_update_zval(&parts, &part, &_79$$88, PH_COPY | PH_SEPARATE); + continue; + } + } + zephir_array_update_zval(&parts, &part, &matchPosition, PH_COPY | PH_SEPARATE); + } else { + if (Z_TYPE_P(&converters) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&converter); + if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { + ZEPHIR_INIT_NVAR(&_81$$91); + ZEPHIR_INIT_NVAR(&_82$$91); + zephir_create_array(&_82$$91, 1, 0); + zephir_array_fast_append(&_82$$91, &position); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_81$$91, &converter, &_82$$91); + zephir_check_call_status(); + zephir_array_update_zval(&parts, &part, &_81$$91, PH_COPY | PH_SEPARATE); + } + } else { + if (Z_TYPE_P(&position) == IS_LONG) { + zephir_array_unset(&parts, &part, PH_SEPARATE); + } + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &paths, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_73$$82, &paths, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_73$$82)) { + break; + } + ZEPHIR_CALL_METHOD(&part, &paths, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&position, &paths, "current", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&part) != IS_STRING)) { + ZEPHIR_INIT_NVAR(&_83$$95); + object_init_ex(&_83$$95, phalcon_mvc_router_exception_ce); + ZEPHIR_INIT_NVAR(&_84$$95); + ZEPHIR_CONCAT_SV(&_84$$95, "Wrong key in paths: ", &part); + ZEPHIR_CALL_METHOD(NULL, &_83$$95, "__construct", &_13, 8, &_84$$95); + zephir_check_call_status(); + zephir_throw_exception_debug(&_83$$95, "phalcon/Mvc/Router.zep", 828); + ZEPHIR_MM_RESTORE(); + return; + } + _85$$94 = Z_TYPE_P(&position) != IS_STRING; + if (_85$$94) { + _85$$94 = Z_TYPE_P(&position) != IS_LONG; + } + if (_85$$94) { + continue; + } + ZEPHIR_OBS_NVAR(&matchPosition); + if (zephir_array_isset_fetch(&matchPosition, &matches, &position, 0)) { + if (Z_TYPE_P(&converters) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&converter); + if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { + ZEPHIR_INIT_NVAR(&_86$$99); + ZEPHIR_INIT_NVAR(&_87$$99); + zephir_create_array(&_87$$99, 1, 0); + zephir_array_fast_append(&_87$$99, &matchPosition); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_86$$99, &converter, &_87$$99); + zephir_check_call_status(); + zephir_array_update_zval(&parts, &part, &_86$$99, PH_COPY | PH_SEPARATE); + continue; + } + } + zephir_array_update_zval(&parts, &part, &matchPosition, PH_COPY | PH_SEPARATE); + } else { + if (Z_TYPE_P(&converters) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&converter); + if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { + ZEPHIR_INIT_NVAR(&_88$$102); + ZEPHIR_INIT_NVAR(&_89$$102); + zephir_create_array(&_89$$102, 1, 0); + zephir_array_fast_append(&_89$$102, &position); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_88$$102, &converter, &_89$$102); + zephir_check_call_status(); + zephir_array_update_zval(&parts, &part, &_88$$102, PH_COPY | PH_SEPARATE); + } + } else { + if (Z_TYPE_P(&position) == IS_LONG) { + zephir_array_unset(&parts, &part, PH_SEPARATE); + } + } + } + ZEPHIR_CALL_METHOD(NULL, &paths, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&position); + ZEPHIR_INIT_NVAR(&part); + zephir_update_property_zval(this_ptr, ZEND_STRL("matches"), &matches); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("matchedRoute"), &route); + break; + } + ZEPHIR_CALL_METHOD(NULL, &_4, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&route); + if (zephir_is_true(&routeFound)) { + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$false); + } + } else { + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$false); + } + } + if (!(zephir_is_true(&routeFound))) { + zephir_read_property(&_90$$107, this_ptr, ZEND_STRL("notFoundPaths"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(¬FoundPaths, &_90$$107); + if (Z_TYPE_P(¬FoundPaths) != IS_NULL) { + ZEPHIR_CALL_CE_STATIC(&parts, phalcon_mvc_router_route_ce, "getroutepaths", &_91, 0, ¬FoundPaths); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&routeFound); + ZVAL_BOOL(&routeFound, 1); + } + } + zephir_read_property(&_92, this_ptr, ZEND_STRL("defaultNamespace"), PH_NOISY_CC | PH_READONLY); + zephir_update_property_zval(this_ptr, ZEND_STRL("namespaceName"), &_92); + zephir_read_property(&_93, this_ptr, ZEND_STRL("defaultModule"), PH_NOISY_CC | PH_READONLY); + zephir_update_property_zval(this_ptr, ZEND_STRL("module"), &_93); + zephir_read_property(&_94, this_ptr, ZEND_STRL("defaultController"), PH_NOISY_CC | PH_READONLY); + zephir_update_property_zval(this_ptr, ZEND_STRL("controller"), &_94); + zephir_read_property(&_95, this_ptr, ZEND_STRL("defaultAction"), PH_NOISY_CC | PH_READONLY); + zephir_update_property_zval(this_ptr, ZEND_STRL("action"), &_95); + zephir_read_property(&_96, this_ptr, ZEND_STRL("defaultParams"), PH_NOISY_CC | PH_READONLY); + zephir_update_property_zval(this_ptr, ZEND_STRL("params"), &_96); + if (zephir_is_true(&routeFound)) { + ZEPHIR_OBS_VAR(&vnamespace); + if (zephir_array_isset_string_fetch(&vnamespace, &parts, SL("namespace"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("namespaceName"), &vnamespace); + zephir_array_unset_string(&parts, SL("namespace"), PH_SEPARATE); + } + ZEPHIR_OBS_VAR(&module); + if (zephir_array_isset_string_fetch(&module, &parts, SL("module"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("module"), &module); + zephir_array_unset_string(&parts, SL("module"), PH_SEPARATE); + } + ZEPHIR_OBS_VAR(&controller); + if (zephir_array_isset_string_fetch(&controller, &parts, SL("controller"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("controller"), &controller); + zephir_array_unset_string(&parts, SL("controller"), PH_SEPARATE); + } + ZEPHIR_OBS_VAR(&action); + if (zephir_array_isset_string_fetch(&action, &parts, SL("action"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("action"), &action); + zephir_array_unset_string(&parts, SL("action"), PH_SEPARATE); + } + ZEPHIR_OBS_VAR(¶msStr); + if (zephir_array_isset_string_fetch(¶msStr, &parts, SL("params"), 0)) { + if (Z_TYPE_P(¶msStr) == IS_STRING) { + ZEPHIR_INIT_VAR(&_97$$115); + ZVAL_STRING(&_97$$115, "/"); + ZEPHIR_INIT_VAR(&strParams); + zephir_fast_trim(&strParams, ¶msStr, &_97$$115, ZEPHIR_TRIM_BOTH); + if (!ZEPHIR_IS_STRING_IDENTICAL(&strParams, "")) { + ZEPHIR_INIT_NVAR(¶ms); + zephir_fast_explode_str(¶ms, SL("/"), &strParams, LONG_MAX); + } + } + zephir_array_unset_string(&parts, SL("params"), PH_SEPARATE); + } + if (zephir_fast_count_int(¶ms)) { + ZEPHIR_INIT_VAR(&_98$$117); + zephir_fast_array_merge(&_98$$117, ¶ms, &parts); + zephir_update_property_zval(this_ptr, ZEND_STRL("params"), &_98$$117); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("params"), &parts); + } + } + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_99$$119); + ZVAL_STRING(&_99$$119, "router:afterCheckRoutes"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_99$$119, this_ptr); + zephir_check_call_status(); + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Select, getStatement) +static PHP_METHOD(Phalcon_Mvc_Router, isExactControllerName) { - zval _0, _1, _2, _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - - ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(&_0); - zephir_read_property(&_1, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_2, &_1, SL("UNION"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 246); - zephir_fast_join_str(&_0, SL(""), &_2); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "getcurrentstatement", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CONCAT_VV(return_value, &_0, &_3); - RETURN_MM(); + RETURN_BOOL(1); } -static PHP_METHOD(Phalcon_DataMapper_Query_Select, groupBy) +static PHP_METHOD(Phalcon_Mvc_Router, mount) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *groupBy, groupBy_sub, _0; + zval *group, group_sub, groupRoutes, beforeMatch, hostname, routes, route, eventsManager, _0, _6, _1$$3, *_2$$5, _3$$5, *_4$$8, _5$$8; zval *this_ptr = getThis(); - ZVAL_UNDEF(&groupBy_sub); + ZVAL_UNDEF(&group_sub); + ZVAL_UNDEF(&groupRoutes); + ZVAL_UNDEF(&beforeMatch); + ZVAL_UNDEF(&hostname); + ZVAL_UNDEF(&routes); + ZVAL_UNDEF(&route); + ZVAL_UNDEF(&eventsManager); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_5$$8); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(groupBy) + Z_PARAM_OBJECT_OF_CLASS(group, phalcon_mvc_router_groupinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &groupBy); + zephir_fetch_params(1, 1, 0, &group); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "GROUP"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processvalue", NULL, 0, &_0, groupBy); + zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_0); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, "router:beforeMount"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_1$$3, this_ptr, group); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(&groupRoutes, group, "getroutes", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(!(zephir_fast_count_int(&groupRoutes)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_router_exception_ce, "The group of routes does not contain any routes", "phalcon/Mvc/Router.zep", 1013); + return; + } + ZEPHIR_CALL_METHOD(&beforeMatch, group, "getbeforematch", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&beforeMatch) != IS_NULL) { + zephir_is_iterable(&groupRoutes, 0, "phalcon/Mvc/Router.zep", 1025); + if (Z_TYPE_P(&groupRoutes) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&groupRoutes), _2$$5) + { + ZEPHIR_INIT_NVAR(&route); + ZVAL_COPY(&route, _2$$5); + ZEPHIR_CALL_METHOD(NULL, &route, "beforematch", NULL, 0, &beforeMatch); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &groupRoutes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3$$5, &groupRoutes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3$$5)) { + break; + } + ZEPHIR_CALL_METHOD(&route, &groupRoutes, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &route, "beforematch", NULL, 0, &beforeMatch); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &groupRoutes, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&route); + } + ZEPHIR_CALL_METHOD(&hostname, group, "gethostname", NULL, 0); zephir_check_call_status(); + if (Z_TYPE_P(&hostname) != IS_NULL) { + zephir_is_iterable(&groupRoutes, 0, "phalcon/Mvc/Router.zep", 1034); + if (Z_TYPE_P(&groupRoutes) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&groupRoutes), _4$$8) + { + ZEPHIR_INIT_NVAR(&route); + ZVAL_COPY(&route, _4$$8); + ZEPHIR_CALL_METHOD(NULL, &route, "sethostname", NULL, 0, &hostname); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &groupRoutes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_5$$8, &groupRoutes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_5$$8)) { + break; + } + ZEPHIR_CALL_METHOD(&route, &groupRoutes, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &route, "sethostname", NULL, 0, &hostname); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &groupRoutes, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&route); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&routes, &_0); + ZEPHIR_INIT_VAR(&_6); + zephir_fast_array_merge(&_6, &routes, &groupRoutes); + zephir_update_property_zval(this_ptr, ZEND_STRL("routes"), &_6); RETURN_THIS(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Select, hasColumns) +static PHP_METHOD(Phalcon_Mvc_Router, notFound) { - zval _0, _1; + zend_bool _0; + zval *paths, paths_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_1, &_0, SL("COLUMNS"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 270); - RETURN_BOOL(zephir_fast_count_int(&_1) > 0); + ZVAL_UNDEF(&paths_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(paths) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &paths); + + + _0 = Z_TYPE_P(paths) != IS_ARRAY; + if (_0) { + _0 = Z_TYPE_P(paths) != IS_STRING; + } + if (UNEXPECTED(_0)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_router_exception_ce, "The not-found paths must be an array or string", "phalcon/Mvc/Router.zep", 1056); + return; + } + zephir_update_property_zval(this_ptr, ZEND_STRL("notFoundPaths"), paths); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Select, having) +static PHP_METHOD(Phalcon_Mvc_Router, removeExtraSlashes) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _0, _1, _2; - zval condition; + zval *remove_param = NULL, __$true, __$false; + zend_bool remove; zval *this_ptr = getThis(); - ZVAL_UNDEF(&condition); - ZVAL_UNDEF(&value_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(condition) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(value) - Z_PARAM_LONG(type) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(remove) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &condition_param, &value, &type_param); - zephir_get_strval(&condition, condition_param); - if (!value) { - value = &value_sub; - value = &__$null; - } - if (!type_param) { - type = -1; - } else { - type = zephir_get_intval(type_param); + zephir_fetch_params_without_memory_grow(1, 0, &remove_param); + if (UNEXPECTED(Z_TYPE_P(remove_param) != IS_TRUE && Z_TYPE_P(remove_param) != IS_FALSE)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'remove' must be of the type bool")); + RETURN_NULL(); } + remove = (Z_TYPE_P(remove_param) == IS_TRUE); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "HAVING"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "AND "); - ZVAL_LONG(&_2, type); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addcondition", NULL, 0, &_0, &_1, &condition, value, &_2); - zephir_check_call_status(); - RETURN_THIS(); + if (remove) { + zephir_update_property_zval(this_ptr, ZEND_STRL("removeExtraSlashes"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("removeExtraSlashes"), &__$false); + } + RETURN_THISW(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Select, join) +static PHP_METHOD(Phalcon_Mvc_Router, setDefaultAction) { - zend_bool _5, _10; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_19 = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *join_param = NULL, *table_param = NULL, *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, key, _0, _1, _2, _3, _4, _6, _7, _8, _9, _11, _12, _13, _14, _20, _21, _16$$5, _17$$5, _18$$5; - zval join, table, condition, _22, _15$$4; + zval *actionName_param = NULL; + zval actionName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&join); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&condition); - ZVAL_UNDEF(&_22); - ZVAL_UNDEF(&_15$$4); - ZVAL_UNDEF(&value_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_13); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_20); - ZVAL_UNDEF(&_21); - ZVAL_UNDEF(&_16$$5); - ZVAL_UNDEF(&_17$$5); - ZVAL_UNDEF(&_18$$5); + ZVAL_UNDEF(&actionName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 5) - Z_PARAM_STR(join) - Z_PARAM_STR(table) - Z_PARAM_STR(condition) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(value) - Z_PARAM_LONG(type) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(actionName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 2, &join_param, &table_param, &condition_param, &value, &type_param); - zephir_get_strval(&join, join_param); - zephir_get_strval(&table, table_param); - zephir_get_strval(&condition, condition_param); - if (!value) { - value = &value_sub; - value = &__$null; + zephir_fetch_params(1, 1, 0, &actionName_param); + if (UNEXPECTED(Z_TYPE_P(actionName_param) != IS_STRING && Z_TYPE_P(actionName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'actionName' must be of the type string")); + RETURN_MM_NULL(); } - if (!type_param) { - type = -1; + if (EXPECTED(Z_TYPE_P(actionName_param) == IS_STRING)) { + zephir_get_strval(&actionName, actionName_param); } else { - type = zephir_get_intval(type_param); + ZEPHIR_INIT_VAR(&actionName); } - ZEPHIR_INIT_VAR(&_0); - zephir_fast_trim(&_0, &join, NULL , ZEPHIR_TRIM_BOTH); - ZEPHIR_INIT_NVAR(&join); - zephir_fast_strtoupper(&join, &_0); - ZVAL_LONG(&_1, -4); - ZEPHIR_INIT_VAR(&_2); - zephir_substr(&_2, &join, -4 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - if (!ZEPHIR_IS_STRING_IDENTICAL(&_2, "JOIN")) { - zephir_concat_self_str(&join, " JOIN", sizeof(" JOIN") - 1); - } - ZEPHIR_INIT_VAR(&_3); - zephir_fast_trim(&_3, &condition, NULL , ZEPHIR_TRIM_LEFT); - zephir_get_strval(&condition, &_3); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, ""); - _5 = !ZEPHIR_IS_IDENTICAL(&_4, &condition); - if (_5) { - ZEPHIR_INIT_VAR(&_6); - ZVAL_LONG(&_7, 0); - ZVAL_LONG(&_8, 3); - ZEPHIR_INIT_VAR(&_9); - zephir_substr(&_9, &condition, 0 , 3 , 0); - zephir_fast_strtoupper(&_6, &_9); - _5 = !ZEPHIR_IS_STRING_IDENTICAL(&_6, "ON "); - } - _10 = _5; - if (_10) { - ZEPHIR_INIT_VAR(&_11); - ZVAL_LONG(&_12, 0); - ZVAL_LONG(&_13, 6); - ZEPHIR_INIT_VAR(&_14); - zephir_substr(&_14, &condition, 0 , 6 , 0); - zephir_fast_strtoupper(&_11, &_14); - _10 = !ZEPHIR_IS_STRING_IDENTICAL(&_11, "USING "); - } - if (_10) { - ZEPHIR_INIT_VAR(&_15$$4); - ZEPHIR_CONCAT_SV(&_15$$4, "ON ", &condition); - ZEPHIR_CPY_WRT(&condition, &_15$$4); - } - if (!(ZEPHIR_IS_EMPTY(value))) { - zephir_read_property(&_16$$5, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_18$$5, type); - ZEPHIR_CALL_METHOD(&_17$$5, &_16$$5, "bindinline", NULL, 0, value, &_18$$5); - zephir_check_call_status(); - zephir_concat_self(&condition, &_17$$5); - } - zephir_read_property(&_20, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_21, &_20, SL("FROM"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 331); - ZEPHIR_CALL_CE_STATIC(&key, phalcon_helper_arr_ce, "lastkey", &_19, 49, &_21); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_22); - ZEPHIR_CONCAT_VSVSV(&_22, &join, " ", &table, " ", &condition); - zephir_update_property_array_multi(this_ptr, SL("store"), &_22, SL("sza"), 4, SL("FROM"), &key); + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultAction"), &actionName); RETURN_THIS(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Select, orHaving) +static PHP_METHOD(Phalcon_Mvc_Router, setDefaultController) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _0, _1, _2; - zval condition; + zval *controllerName_param = NULL; + zval controllerName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&condition); - ZVAL_UNDEF(&value_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&controllerName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(condition) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(value) - Z_PARAM_LONG(type) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(controllerName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &condition_param, &value, &type_param); - zephir_get_strval(&condition, condition_param); - if (!value) { - value = &value_sub; - value = &__$null; + zephir_fetch_params(1, 1, 0, &controllerName_param); + if (UNEXPECTED(Z_TYPE_P(controllerName_param) != IS_STRING && Z_TYPE_P(controllerName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'controllerName' must be of the type string")); + RETURN_MM_NULL(); } - if (!type_param) { - type = -1; + if (EXPECTED(Z_TYPE_P(controllerName_param) == IS_STRING)) { + zephir_get_strval(&controllerName, controllerName_param); } else { - type = zephir_get_intval(type_param); + ZEPHIR_INIT_VAR(&controllerName); } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "HAVING"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "OR "); - ZVAL_LONG(&_2, type); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addcondition", NULL, 0, &_0, &_1, &condition, value, &_2); - zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultController"), &controllerName); RETURN_THIS(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Select, reset) +static PHP_METHOD(Phalcon_Mvc_Router, setDefaultModule) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval __$true, __$false, _1; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; + zval *moduleName_param = NULL; + zval moduleName; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&moduleName); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(moduleName) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_query_select_ce, getThis(), "reset", &_0, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, ""); - zephir_update_property_zval(this_ptr, ZEND_STRL("asAlias"), &_1); - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("forUpdate"), &__$true); + zephir_fetch_params(1, 1, 0, &moduleName_param); + if (UNEXPECTED(Z_TYPE_P(moduleName_param) != IS_STRING && Z_TYPE_P(moduleName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'moduleName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(moduleName_param) == IS_STRING)) { + zephir_get_strval(&moduleName, moduleName_param); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("forUpdate"), &__$false); + ZEPHIR_INIT_VAR(&moduleName); } + + + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultModule"), &moduleName); RETURN_THIS(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Select, subSelect) +static PHP_METHOD(Phalcon_Mvc_Router, setDefaultNamespace) { - zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval *namespaceName_param = NULL; + zval namespaceName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&namespaceName); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(namespaceName) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &namespaceName_param); + if (UNEXPECTED(Z_TYPE_P(namespaceName_param) != IS_STRING && Z_TYPE_P(namespaceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'namespaceName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(namespaceName_param) == IS_STRING)) { + zephir_get_strval(&namespaceName, namespaceName_param); + } else { + ZEPHIR_INIT_VAR(&namespaceName); + } - object_init_ex(return_value, phalcon_datamapper_query_select_ce); - zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_1, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 208, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); + + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultNamespace"), &namespaceName); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Select, union) +static PHP_METHOD(Phalcon_Mvc_Router, setDefaults) { - zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval *defaults_param = NULL, namespaceName, module, controller, action, params; + zval defaults; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&defaults); + ZVAL_UNDEF(&namespaceName); + ZVAL_UNDEF(&module); + ZVAL_UNDEF(&controller); + ZVAL_UNDEF(&action); + ZVAL_UNDEF(¶ms); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(defaults) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &defaults_param); + ZEPHIR_OBS_COPY_OR_DUP(&defaults, defaults_param); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, " UNION "); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getcurrentstatement", NULL, 0, &_1); - zephir_check_call_status(); - zephir_update_property_array_multi(this_ptr, SL("store"), &_0, SL("sa"), 3, SL("UNION")); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "reset", NULL, 0); - zephir_check_call_status(); + + if (zephir_array_isset_string_fetch(&namespaceName, &defaults, SL("namespace"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultNamespace"), &namespaceName); + } + if (zephir_array_isset_string_fetch(&module, &defaults, SL("module"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultModule"), &module); + } + if (zephir_array_isset_string_fetch(&controller, &defaults, SL("controller"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultController"), &controller); + } + if (zephir_array_isset_string_fetch(&action, &defaults, SL("action"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultAction"), &action); + } + if (zephir_array_isset_string_fetch(¶ms, &defaults, SL("params"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultParams"), ¶ms); + } RETURN_THIS(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Select, unionAll) +static PHP_METHOD(Phalcon_Mvc_Router, getDefaults) { - zval _0, _1; + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, " UNION ALL "); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getcurrentstatement", NULL, 0, &_1); - zephir_check_call_status(); - zephir_update_property_array_multi(this_ptr, SL("store"), &_0, SL("sa"), 3, SL("UNION")); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "reset", NULL, 0); - zephir_check_call_status(); - RETURN_THIS(); + zephir_create_array(return_value, 5, 0); + ZEPHIR_OBS_VAR(&_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("defaultNamespace"), PH_NOISY_CC); + zephir_array_update_string(return_value, SL("namespace"), &_0, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("defaultModule"), PH_NOISY_CC); + zephir_array_update_string(return_value, SL("module"), &_0, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("defaultController"), PH_NOISY_CC); + zephir_array_update_string(return_value, SL("controller"), &_0, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("defaultAction"), PH_NOISY_CC); + zephir_array_update_string(return_value, SL("action"), &_0, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("defaultParams"), PH_NOISY_CC); + zephir_array_update_string(return_value, SL("params"), &_0, PH_COPY | PH_SEPARATE); + RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Select, getCurrentStatement) +static PHP_METHOD(Phalcon_Mvc_Router, setEventsManager) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *suffix_param = NULL, statement, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13$$4, _14$$4; - zval suffix, forUpdate; + zval *eventsManager, eventsManager_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&suffix); - ZVAL_UNDEF(&forUpdate); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_13$$4); - ZVAL_UNDEF(&_14$$4); + ZVAL_UNDEF(&eventsManager_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR(suffix) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &suffix_param); - if (!suffix_param) { - ZEPHIR_INIT_VAR(&suffix); - ZVAL_STRING(&suffix, ""); - } else { - zephir_get_strval(&suffix, suffix_param); - } + zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); - ZEPHIR_INIT_VAR(&forUpdate); - zephir_read_property(&_0, this_ptr, ZEND_STRL("forUpdate"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_0)) { - ZEPHIR_INIT_NVAR(&forUpdate); - ZVAL_STRING(&forUpdate, " FOR UPDATE"); - } - ZEPHIR_CALL_METHOD(&_1, this_ptr, "buildflags", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "buildlimitearly", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "buildcolumns", NULL, 209); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "buildfrom", NULL, 210); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_6); - ZVAL_STRING(&_6, "WHERE"); - ZEPHIR_CALL_METHOD(&_5, this_ptr, "buildcondition", NULL, 0, &_6); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_6); - ZVAL_STRING(&_6, "GROUP"); - ZEPHIR_CALL_METHOD(&_7, this_ptr, "buildby", NULL, 0, &_6); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_6); - ZVAL_STRING(&_6, "HAVING"); - ZEPHIR_CALL_METHOD(&_8, this_ptr, "buildcondition", NULL, 0, &_6); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_6); - ZVAL_STRING(&_6, "ORDER"); - ZEPHIR_CALL_METHOD(&_9, this_ptr, "buildby", NULL, 0, &_6); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_10, this_ptr, "buildlimit", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&statement); - ZEPHIR_CONCAT_SVVVVVVVVVV(&statement, "SELECT", &_1, &_2, &_3, &_4, &_5, &_7, &_8, &_9, &_10, &forUpdate); - zephir_read_property(&_11, this_ptr, ZEND_STRL("asAlias"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_12); - ZVAL_STRING(&_12, ""); - if (UNEXPECTED(!ZEPHIR_IS_IDENTICAL(&_12, &_11))) { - zephir_read_property(&_13$$4, this_ptr, ZEND_STRL("asAlias"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_14$$4); - ZEPHIR_CONCAT_SVSV(&_14$$4, "(", &statement, ") AS ", &_13$$4); - ZEPHIR_CPY_WRT(&statement, &_14$$4); - } - ZEPHIR_CONCAT_VV(return_value, &statement, &suffix); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); } -static PHP_METHOD(Phalcon_DataMapper_Query_Select, buildColumns) +static PHP_METHOD(Phalcon_Mvc_Router, wasMatched) { - zval columns, _0, _3, _1$$3, _2$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); - - ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "hascolumns", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_0))) { - ZEPHIR_INIT_VAR(&columns); - zephir_create_array(&columns, 1, 0); - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "*"); - zephir_array_fast_append(&columns, &_1$$3); - } else { - zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_OBS_NVAR(&columns); - zephir_array_fetch_string(&columns, &_2$$4, SL("COLUMNS"), PH_NOISY, "phalcon/DataMapper/Query/Select.zep", 457); - } - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, ","); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "indent", NULL, 0, &columns, &_3); - zephir_check_call_status(); - RETURN_MM(); + RETURN_MEMBER(getThis(), "wasMatched"); } -static PHP_METHOD(Phalcon_DataMapper_Query_Select, buildFrom) +zend_object *zephir_init_properties_Phalcon_Mvc_Router(zend_class_entry *class_type) { - zval from; - zval table, _0, _1, _2, _3, *_4, _5, _14, _15, _6$$4, _8$$4, _10$$4, _11$$5, _12$$5, _13$$5; + zval _0, _2, _4, _6, _8, _10, _1$$3, _3$$4, _5$$5, _7$$6, _9$$7, _11$$8; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_7 = NULL, *_9 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_15); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_8$$4); - ZVAL_UNDEF(&_10$$4); - ZVAL_UNDEF(&_11$$5); - ZVAL_UNDEF(&_12$$5); - ZVAL_UNDEF(&_13$$5); - ZVAL_UNDEF(&from); - - - ZEPHIR_MM_GROW(); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_9$$7); + ZVAL_UNDEF(&_11$$8); + - ZEPHIR_INIT_VAR(&from); - array_init(&from); - zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_1, &_0, SL("FROM"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 473); - if (ZEPHIR_IS_EMPTY(&_1)) { - RETURN_MM_STRING(""); - } - zephir_read_property(&_2, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_3, &_2, SL("FROM"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 477); - zephir_is_iterable(&_3, 0, "phalcon/DataMapper/Query/Select.zep", 481); - if (Z_TYPE_P(&_3) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_3), _4) - { - ZEPHIR_INIT_NVAR(&table); - ZVAL_COPY(&table, _4); - ZEPHIR_MAKE_REF(&table); - ZEPHIR_CALL_FUNCTION(&_6$$4, "array_shift", &_7, 24, &table); - ZEPHIR_UNREF(&table); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_8$$4, this_ptr, "indent", &_9, 0, &table); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_10$$4); - ZEPHIR_CONCAT_VV(&_10$$4, &_6$$4, &_8$$4); - zephir_array_append(&from, &_10$$4, PH_SEPARATE, "phalcon/DataMapper/Query/Select.zep", 478); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_3, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5, &_3, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5)) { - break; - } - ZEPHIR_CALL_METHOD(&table, &_3, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_MAKE_REF(&table); - ZEPHIR_CALL_FUNCTION(&_11$$5, "array_shift", &_7, 24, &table); - ZEPHIR_UNREF(&table); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_12$$5, this_ptr, "indent", &_9, 0, &table); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_13$$5); - ZEPHIR_CONCAT_VV(&_13$$5, &_11$$5, &_12$$5); - zephir_array_append(&from, &_13$$5, PH_SEPARATE, "phalcon/DataMapper/Query/Select.zep", 478); - ZEPHIR_CALL_METHOD(NULL, &_3, "next", NULL, 0); - zephir_check_call_status(); + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("routes"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("params"), &_3$$4); + } + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("matches"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_4) == IS_NULL) { + ZEPHIR_INIT_VAR(&_5$$5); + array_init(&_5$$5); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("matches"), &_5$$5); } + zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("keyRouteIds"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_6) == IS_NULL) { + ZEPHIR_INIT_VAR(&_7$$6); + array_init(&_7$$6); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("keyRouteIds"), &_7$$6); + } + zephir_read_property_ex(&_8, this_ptr, ZEND_STRL("keyRouteNames"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_8) == IS_NULL) { + ZEPHIR_INIT_VAR(&_9$$7); + array_init(&_9$$7); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("keyRouteNames"), &_9$$7); + } + zephir_read_property_ex(&_10, this_ptr, ZEND_STRL("defaultParams"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_10) == IS_NULL) { + ZEPHIR_INIT_VAR(&_11$$8); + array_init(&_11$$8); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("defaultParams"), &_11$$8); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); } - ZEPHIR_INIT_NVAR(&table); - ZEPHIR_INIT_VAR(&_15); - ZVAL_STRING(&_15, ","); - ZEPHIR_CALL_METHOD(&_14, this_ptr, "indent", &_9, 0, &from, &_15); - zephir_check_call_status(); - ZEPHIR_CONCAT_SV(return_value, " FROM", &_14); - RETURN_MM(); } @@ -54021,3833 +54446,3537 @@ static PHP_METHOD(Phalcon_DataMapper_Query_Select, buildFrom) -ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Query_Update) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_RouterInterface) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Query, Update, phalcon, datamapper_query_update, phalcon_datamapper_query_abstractconditions_ce, phalcon_datamapper_query_update_method_entry, 0); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc, RouterInterface, phalcon, mvc_routerinterface, phalcon_mvc_routerinterface_method_entry); return SUCCESS; } -static PHP_METHOD(Phalcon_DataMapper_Query_Update, __construct) +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, add); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, attach); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, addConnect); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, addDelete); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, addHead); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, addGet); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, addOptions); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, addPatch); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, addPost); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, addPurge); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, addPut); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, addTrace); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, clear); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, getActionName); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, getControllerName); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, getMatchedRoute); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, getMatches); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, getModuleName); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, getNamespaceName); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, getParams); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, getRoutes); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, getRouteById); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, getRouteByName); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, handle); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, mount); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, setDefaultAction); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, setDefaultController); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, setDefaultModule); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, setDefaults); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, wasMatched); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_View) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc, View, phalcon, mvc_view, phalcon_di_injectable_ce, phalcon_mvc_view_method_entry, 0); + + zend_declare_property_null(phalcon_mvc_view_ce, SL("actionName"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_ce, SL("activeRenderPaths"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_mvc_view_ce, SL("basePath"), "", ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_mvc_view_ce, SL("content"), "", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_ce, SL("controllerName"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_mvc_view_ce, SL("currentRenderLevel"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_view_ce, SL("disabled"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_ce, SL("disabledLevels"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_view_ce, SL("engines"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_ce, SL("layout"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_mvc_view_ce, SL("layoutsDir"), "", ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_mvc_view_ce, SL("mainView"), "index", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_ce, SL("options"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_ce, SL("params"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_ce, SL("pickView"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_mvc_view_ce, SL("partialsDir"), "", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_ce, SL("registeredEngines"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_mvc_view_ce, SL("renderLevel"), 5, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_ce, SL("templatesAfter"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_ce, SL("templatesBefore"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_ce, SL("viewsDirs"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_ce, SL("viewParams"), ZEND_ACC_PROTECTED); + phalcon_mvc_view_ce->create_object = zephir_init_properties_Phalcon_Mvc_View; + zephir_declare_class_constant_long(phalcon_mvc_view_ce, SL("LEVEL_ACTION_VIEW"), 1); + + zephir_declare_class_constant_long(phalcon_mvc_view_ce, SL("LEVEL_BEFORE_TEMPLATE"), 2); + + zephir_declare_class_constant_long(phalcon_mvc_view_ce, SL("LEVEL_LAYOUT"), 3); + + zephir_declare_class_constant_long(phalcon_mvc_view_ce, SL("LEVEL_MAIN_LAYOUT"), 5); + + zephir_declare_class_constant_long(phalcon_mvc_view_ce, SL("LEVEL_NO_RENDER"), 0); + + zephir_declare_class_constant_long(phalcon_mvc_view_ce, SL("LEVEL_AFTER_TEMPLATE"), 4); + + zend_class_implements(phalcon_mvc_view_ce, 1, phalcon_mvc_viewinterface_ce); + zend_class_implements(phalcon_mvc_view_ce, 1, phalcon_events_eventsawareinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Mvc_View, getCurrentRenderLevel) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *connection, connection_sub, *bind, bind_sub, _1, _2, _3, _4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&connection_sub); - ZVAL_UNDEF(&bind_sub); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_datamapper_pdo_connection_ce) - Z_PARAM_OBJECT_OF_CLASS(bind, phalcon_datamapper_query_bind_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &connection, &bind); + RETURN_MEMBER(getThis(), "currentRenderLevel"); +} +static PHP_METHOD(Phalcon_Mvc_View, getRegisteredEngines) +{ + zval *this_ptr = getThis(); - ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_query_update_ce, getThis(), "__construct", &_0, 0, connection, bind); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "FROM"); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, ""); - zephir_update_property_array(this_ptr, SL("store"), &_1, &_2); - ZEPHIR_INIT_VAR(&_3); - array_init(&_3); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "RETURNING"); - zephir_update_property_array(this_ptr, SL("store"), &_4, &_3); - ZEPHIR_MM_RESTORE(); + + + RETURN_MEMBER(getThis(), "registeredEngines"); } -static PHP_METHOD(Phalcon_DataMapper_Query_Update, column) +static PHP_METHOD(Phalcon_Mvc_View, getRenderLevel) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "renderLevel"); +} + +static PHP_METHOD(Phalcon_Mvc_View, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long type, ZEPHIR_LAST_CALL_STATUS; - zval *column_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _1$$3, _2$$3; - zval column, _0; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&column); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&value_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(column) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(value) - Z_PARAM_LONG(type) + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &column_param, &value, &type_param); - zephir_get_strval(&column, column_param); - if (!value) { - value = &value_sub; - value = &__$null; - } - if (!type_param) { - type = -1; + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); } else { - type = zephir_get_intval(type_param); + zephir_get_arrval(&options, options_param); } - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_CONCAT_SV(&_0, ":", &column); - zephir_update_property_array_multi(this_ptr, SL("store"), &_0, SL("sz"), 3, SL("COLUMNS"), &column); - if (Z_TYPE_P(value) != IS_NULL) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_2$$3, type); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "setvalue", NULL, 0, &column, value, &_2$$3); - zephir_check_call_status(); - } - RETURN_THIS(); + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Update, columns) +static PHP_METHOD(Phalcon_Mvc_View, __get) { - zend_string *_3; - zend_ulong _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *columns_param = NULL, column, value, *_0, _1; - zval columns; + zval *key_param = NULL; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&column); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&key); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(columns) + Z_PARAM_STR(key) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &columns_param); - zephir_get_arrval(&columns, columns_param); - - - zephir_is_iterable(&columns, 0, "phalcon/DataMapper/Query/Update.zep", 76); - if (Z_TYPE_P(&columns) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&columns), _2, _3, _0) - { - ZEPHIR_INIT_NVAR(&column); - if (_3 != NULL) { - ZVAL_STR_COPY(&column, _3); - } else { - ZVAL_LONG(&column, _2); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0); - if (Z_TYPE_P(&column) == IS_LONG) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "column", &_4, 0, &value); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "column", &_4, 0, &column, &value); - zephir_check_call_status(); - } - } ZEND_HASH_FOREACH_END(); + zephir_fetch_params(1, 1, 0, &key_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_CALL_METHOD(NULL, &columns, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &columns, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&column, &columns, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &columns, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&column) == IS_LONG) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "column", &_4, 0, &value); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "column", &_4, 0, &column, &value); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, &columns, "next", NULL, 0); - zephir_check_call_status(); - } + ZEPHIR_INIT_VAR(&key); } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&column); - RETURN_THIS(); + + + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getvar", NULL, 0, &key); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Update, from) +static PHP_METHOD(Phalcon_Mvc_View, __isset) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *table_param = NULL, _0; - zval table; + zval *key_param = NULL, _0; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); + ZVAL_UNDEF(&key); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(table) + Z_PARAM_STR(key) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &table_param); - zephir_get_strval(&table, table_param); + zephir_fetch_params(1, 1, 0, &key_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "FROM"); - zephir_update_property_array(this_ptr, SL("store"), &_0, &table); - RETURN_THIS(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); + RETURN_MM_BOOL(zephir_array_isset(&_0, &key)); } -static PHP_METHOD(Phalcon_DataMapper_Query_Update, getStatement) +static PHP_METHOD(Phalcon_Mvc_View, __set) { - zval _0, _1, _2, _3, _4, _5, _6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, *value, value_sub; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(key) + Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &key_param, &value); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "buildflags", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_2, &_1, SL("FROM"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Update.zep", 101); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "buildcolumns", NULL, 211); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_5); - ZVAL_STRING(&_5, "WHERE"); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "buildcondition", NULL, 0, &_5); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_6, this_ptr, "buildreturning", NULL, 0); + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setvar", NULL, 0, &key, value); zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVVVV(return_value, "UPDATE", &_0, " ", &_2, &_3, &_4, &_6); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Update, hasColumns) +static PHP_METHOD(Phalcon_Mvc_View, cleanTemplateAfter) { - zval _0, _1; + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_1, &_0, SL("COLUMNS"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Update.zep", 113); - RETURN_BOOL(zephir_fast_count_int(&_1) > 0); + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("templatesAfter"), &_0); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Update, returning) +static PHP_METHOD(Phalcon_Mvc_View, cleanTemplateBefore) { + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *columns_param = NULL, _0, _1, _2, _3; - zval columns; zval *this_ptr = getThis(); - ZVAL_UNDEF(&columns); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(columns) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &columns_param); - zephir_get_arrval(&columns, columns_param); - ZEPHIR_INIT_VAR(&_0); - zephir_read_property(&_1, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_2, &_1, SL("RETURNING"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Update.zep", 126); - zephir_fast_array_merge(&_0, &_2, &columns); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "RETURNING"); - zephir_update_property_array(this_ptr, SL("store"), &_3, &_0); + array_init(&_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("templatesBefore"), &_0); RETURN_THIS(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Update, reset) +static PHP_METHOD(Phalcon_Mvc_View, disableLevel) { - zval _1, _2, _3, _4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; + zval *level, level_sub, __$true; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&level_sub); + ZVAL_BOOL(&__$true, 1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(level) + ZEND_PARSE_PARAMETERS_END(); +#endif - ZEPHIR_MM_GROW(); + zephir_fetch_params_without_memory_grow(1, 0, &level); - ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_query_update_ce, getThis(), "reset", &_0, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "FROM"); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, ""); - zephir_update_property_array(this_ptr, SL("store"), &_1, &_2); - ZEPHIR_INIT_VAR(&_3); - array_init(&_3); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "RETURNING"); - zephir_update_property_array(this_ptr, SL("store"), &_4, &_3); - ZEPHIR_MM_RESTORE(); + + if (Z_TYPE_P(level) == IS_ARRAY) { + zephir_update_property_zval(this_ptr, ZEND_STRL("disabledLevels"), level); + } else { + zephir_update_property_array(this_ptr, SL("disabledLevels"), level, &__$true); + } + RETURN_THISW(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Update, set) +static PHP_METHOD(Phalcon_Mvc_View, disable) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *column_param = NULL, *value = NULL, value_sub, __$null, _0; - zval column; + zval __$true, __$false; zval *this_ptr = getThis(); - ZVAL_UNDEF(&column); - ZVAL_UNDEF(&value_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(column) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &column_param, &value); - zephir_get_strval(&column, column_param); - if (!value) { - value = &value_sub; - ZEPHIR_CPY_WRT(value, &__$null); + + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("disabled"), &__$true); } else { - ZEPHIR_SEPARATE_PARAM(value); + zephir_update_property_zval(this_ptr, ZEND_STRL("disabled"), &__$false); } + RETURN_THISW(); +} +static PHP_METHOD(Phalcon_Mvc_View, enable) +{ + zval __$true, __$false; + zval *this_ptr = getThis(); - if (Z_TYPE_P(value) == IS_NULL) { - ZEPHIR_INIT_NVAR(value); - ZVAL_STRING(value, "NULL"); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + + + + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("disabled"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("disabled"), &__$false); } - zephir_update_property_array_multi(this_ptr, SL("store"), value, SL("sz"), 3, SL("COLUMNS"), &column); - zephir_read_property(&_0, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_0, "remove", NULL, 0, &column); - zephir_check_call_status(); - RETURN_THIS(); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_DataMapper_Query_Update, buildColumns) +static PHP_METHOD(Phalcon_Mvc_View, exists) { - zend_string *_5; - zend_ulong _4; - zval assignments; - zval column, value, _0, _1, *_2, _3, _11, _12, _6$$3, _8$$3, _9$$4, _10$$4; + zend_string *_9$$4, *_16$$9; + zend_ulong _8$$4, _15$$9; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_7 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *view_param = NULL, basePath, viewsDir, engines, extension, _0, _2, *_3, _4, _1$$3, _5$$4, *_6$$4, _7$$4, _10$$5, _11$$7, _12$$9, *_13$$9, _14$$9, _17$$10, _18$$12; + zval view; zval *this_ptr = getThis(); - ZVAL_UNDEF(&column); - ZVAL_UNDEF(&value); + ZVAL_UNDEF(&view); + ZVAL_UNDEF(&basePath); + ZVAL_UNDEF(&viewsDir); + ZVAL_UNDEF(&engines); + ZVAL_UNDEF(&extension); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_8$$3); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_10$$4); - ZVAL_UNDEF(&assignments); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&_11$$7); + ZVAL_UNDEF(&_12$$9); + ZVAL_UNDEF(&_14$$9); + ZVAL_UNDEF(&_17$$10); + ZVAL_UNDEF(&_18$$12); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(view) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &view_param); + if (UNEXPECTED(Z_TYPE_P(view_param) != IS_STRING && Z_TYPE_P(view_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'view' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(view_param) == IS_STRING)) { + zephir_get_strval(&view, view_param); + } else { + ZEPHIR_INIT_VAR(&view); + } - ZEPHIR_INIT_VAR(&assignments); - array_init(&assignments); - zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_1, &_0, SL("COLUMNS"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Update.zep", 175); - zephir_is_iterable(&_1, 0, "phalcon/DataMapper/Query/Update.zep", 179); - if (Z_TYPE_P(&_1) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_1), _4, _5, _2) + + zephir_read_property(&_0, this_ptr, ZEND_STRL("basePath"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&basePath, &_0); + ZEPHIR_OBS_VAR(&engines); + zephir_read_property(&engines, this_ptr, ZEND_STRL("registeredEngines"), PH_NOISY_CC); + if (ZEPHIR_IS_EMPTY(&engines)) { + ZEPHIR_INIT_VAR(&_1$$3); + zephir_create_array(&_1$$3, 1, 0); + add_assoc_stringl_ex(&_1$$3, SL(".phtml"), SL("Phalcon\\Mvc\\View\\Engine\\Php")); + ZEPHIR_CPY_WRT(&engines, &_1$$3); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "registerengines", NULL, 0, &engines); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getviewsdirs", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&_2, 0, "phalcon/Mvc/View.zep", 327); + if (Z_TYPE_P(&_2) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_2), _3) { - ZEPHIR_INIT_NVAR(&column); - if (_5 != NULL) { - ZVAL_STR_COPY(&column, _5); + ZEPHIR_INIT_NVAR(&viewsDir); + ZVAL_COPY(&viewsDir, _3); + ZEPHIR_INIT_NVAR(&_5$$4); + zephir_is_iterable(&engines, 0, "phalcon/Mvc/View.zep", 325); + if (Z_TYPE_P(&engines) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&engines), _8$$4, _9$$4, _6$$4) + { + ZEPHIR_INIT_NVAR(&extension); + if (_9$$4 != NULL) { + ZVAL_STR_COPY(&extension, _9$$4); + } else { + ZVAL_LONG(&extension, _8$$4); + } + ZEPHIR_INIT_NVAR(&_5$$4); + ZVAL_COPY(&_5$$4, _6$$4); + ZEPHIR_INIT_NVAR(&_10$$5); + ZEPHIR_CONCAT_VVVV(&_10$$5, &basePath, &viewsDir, &view, &extension); + if ((zephir_file_exists(&_10$$5) == SUCCESS)) { + RETURN_MM_BOOL(1); + } + } ZEND_HASH_FOREACH_END(); } else { - ZVAL_LONG(&column, _4); + ZEPHIR_CALL_METHOD(NULL, &engines, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_7$$4, &engines, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_7$$4)) { + break; + } + ZEPHIR_CALL_METHOD(&extension, &engines, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_5$$4, &engines, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_11$$7); + ZEPHIR_CONCAT_VVVV(&_11$$7, &basePath, &viewsDir, &view, &extension); + if ((zephir_file_exists(&_11$$7) == SUCCESS)) { + RETURN_MM_BOOL(1); + } + ZEPHIR_CALL_METHOD(NULL, &engines, "next", NULL, 0); + zephir_check_call_status(); + } } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _2); - ZEPHIR_CALL_METHOD(&_6$$3, this_ptr, "quoteidentifier", &_7, 0, &column); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_8$$3); - ZEPHIR_CONCAT_VSV(&_8$$3, &_6$$3, " = ", &value); - zephir_array_append(&assignments, &_8$$3, PH_SEPARATE, "phalcon/DataMapper/Query/Update.zep", 176); + ZEPHIR_INIT_NVAR(&_5$$4); + ZEPHIR_INIT_NVAR(&extension); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &_1, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &_2, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_3, &_1, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_4, &_2, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_3)) { + if (!zend_is_true(&_4)) { break; } - ZEPHIR_CALL_METHOD(&column, &_1, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &_1, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&viewsDir, &_2, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_9$$4, this_ptr, "quoteidentifier", &_7, 0, &column); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_10$$4); - ZEPHIR_CONCAT_VSV(&_10$$4, &_9$$4, " = ", &value); - zephir_array_append(&assignments, &_10$$4, PH_SEPARATE, "phalcon/DataMapper/Query/Update.zep", 176); - ZEPHIR_CALL_METHOD(NULL, &_1, "next", NULL, 0); + ZEPHIR_INIT_NVAR(&_12$$9); + zephir_is_iterable(&engines, 0, "phalcon/Mvc/View.zep", 325); + if (Z_TYPE_P(&engines) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&engines), _15$$9, _16$$9, _13$$9) + { + ZEPHIR_INIT_NVAR(&extension); + if (_16$$9 != NULL) { + ZVAL_STR_COPY(&extension, _16$$9); + } else { + ZVAL_LONG(&extension, _15$$9); + } + ZEPHIR_INIT_NVAR(&_12$$9); + ZVAL_COPY(&_12$$9, _13$$9); + ZEPHIR_INIT_NVAR(&_17$$10); + ZEPHIR_CONCAT_VVVV(&_17$$10, &basePath, &viewsDir, &view, &extension); + if ((zephir_file_exists(&_17$$10) == SUCCESS)) { + RETURN_MM_BOOL(1); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &engines, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_14$$9, &engines, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_14$$9)) { + break; + } + ZEPHIR_CALL_METHOD(&extension, &engines, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_12$$9, &engines, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_18$$12); + ZEPHIR_CONCAT_VVVV(&_18$$12, &basePath, &viewsDir, &view, &extension); + if ((zephir_file_exists(&_18$$12) == SUCCESS)) { + RETURN_MM_BOOL(1); + } + ZEPHIR_CALL_METHOD(NULL, &engines, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&_12$$9); + ZEPHIR_INIT_NVAR(&extension); + ZEPHIR_CALL_METHOD(NULL, &_2, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&column); - ZEPHIR_INIT_VAR(&_12); - ZVAL_STRING(&_12, ","); - ZEPHIR_CALL_METHOD(&_11, this_ptr, "indent", NULL, 0, &assignments, &_12); - zephir_check_call_status(); - ZEPHIR_CONCAT_SV(return_value, " SET", &_11); - RETURN_MM(); + ZEPHIR_INIT_NVAR(&viewsDir); + RETURN_MM_BOOL(0); } +static PHP_METHOD(Phalcon_Mvc_View, finish) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H -#endif - + ZEPHIR_MM_GROW(); + ZEPHIR_CALL_FUNCTION(NULL, "ob_end_clean", NULL, 497); + zephir_check_call_status(); + RETURN_THIS(); +} +static PHP_METHOD(Phalcon_Mvc_View, getActionName) +{ + zval *this_ptr = getThis(); -ZEPHIR_INIT_CLASS(Phalcon_Db_AbstractDb) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Db, AbstractDb, phalcon, db_abstractdb, phalcon_db_abstractdb_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - return SUCCESS; + RETURN_MEMBER(getThis(), "actionName"); } -static PHP_METHOD(Phalcon_Db_AbstractDb, setup) +static PHP_METHOD(Phalcon_Mvc_View, getActiveRenderPath) { + zend_bool _1$$3; + zval activeRenderPath, _0, _2$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *options_param = NULL, escapeIdentifiers, forceCasting; - zval options; + zend_long ZEPHIR_LAST_CALL_STATUS, viewsDirsCount = 0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&escapeIdentifiers); - ZVAL_UNDEF(&forceCasting); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(options) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&activeRenderPath); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2$$4); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &options_param); - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); - - ZEPHIR_OBS_VAR(&escapeIdentifiers); - if (zephir_array_isset_string_fetch(&escapeIdentifiers, &options, SL("escapeSqlIdentifiers"), 0)) { - ZEPHIR_GLOBAL(db).escape_identifiers = zend_is_true(&escapeIdentifiers); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getviewsdirs", NULL, 0); + zephir_check_call_status(); + viewsDirsCount = zephir_fast_count_int(&_0); + ZEPHIR_OBS_VAR(&activeRenderPath); + zephir_read_property(&activeRenderPath, this_ptr, ZEND_STRL("activeRenderPaths"), PH_NOISY_CC); + if (viewsDirsCount == 1) { + _1$$3 = Z_TYPE_P(&activeRenderPath) == IS_ARRAY; + if (_1$$3) { + _1$$3 = ((zephir_fast_count_int(&activeRenderPath)) ? 1 : 0); + } + if (_1$$3) { + zephir_array_fetch_long(&_2$$4, &activeRenderPath, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/View.zep", 361); + ZEPHIR_CPY_WRT(&activeRenderPath, &_2$$4); + } } - ZEPHIR_OBS_VAR(&forceCasting); - if (zephir_array_isset_string_fetch(&forceCasting, &options, SL("forceCasting"), 0)) { - ZEPHIR_GLOBAL(db).force_casting = zend_is_true(&forceCasting); + if (Z_TYPE_P(&activeRenderPath) == IS_NULL) { + ZEPHIR_INIT_NVAR(&activeRenderPath); + ZVAL_STRING(&activeRenderPath, ""); } - ZEPHIR_MM_RESTORE(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Db_Column) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Column, phalcon, db_column, phalcon_db_column_method_entry, 0); - - zend_declare_property_null(phalcon_db_column_ce, SL("after"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_db_column_ce, SL("autoIncrement"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_db_column_ce, SL("bindType"), 2, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_column_ce, SL("_default"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_db_column_ce, SL("first"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_db_column_ce, SL("isNumeric"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_column_ce, SL("name"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_column_ce, SL("comment"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_db_column_ce, SL("notNull"), 1, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_db_column_ce, SL("primary"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_db_column_ce, SL("scale"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_db_column_ce, SL("size"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_column_ce, SL("type"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_db_column_ce, SL("typeReference"), -1, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_column_ce, SL("typeValues"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_db_column_ce, SL("unsigned"), 0, ZEND_ACC_PROTECTED); - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("BIND_PARAM_BLOB"), 3); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("BIND_PARAM_BOOL"), 5); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("BIND_PARAM_DECIMAL"), 32); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("BIND_PARAM_INT"), 1); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("BIND_PARAM_NULL"), 0); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("BIND_PARAM_STR"), 2); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("BIND_SKIP"), 1024); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_BIGINTEGER"), 14); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_BIT"), 19); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_BINARY"), 26); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_BLOB"), 11); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_BOOLEAN"), 8); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_CHAR"), 5); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_DATE"), 1); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_DATETIME"), 4); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_DECIMAL"), 3); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_DOUBLE"), 9); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_ENUM"), 18); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_FLOAT"), 7); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_INTEGER"), 0); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_JSON"), 15); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_JSONB"), 16); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_LONGBLOB"), 13); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_LONGTEXT"), 24); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_MEDIUMBLOB"), 12); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_MEDIUMINTEGER"), 21); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_MEDIUMTEXT"), 23); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_SMALLINTEGER"), 22); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_TEXT"), 6); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_TIME"), 20); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_TIMESTAMP"), 17); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_TINYBLOB"), 10); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_TINYINTEGER"), 26); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_TINYTEXT"), 25); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_VARBINARY"), 27); - - zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_VARCHAR"), 2); - - zend_class_implements(phalcon_db_column_ce, 1, phalcon_db_columninterface_ce); - return SUCCESS; + RETURN_CCTOR(&activeRenderPath); } -static PHP_METHOD(Phalcon_Db_Column, getDefault) +static PHP_METHOD(Phalcon_Mvc_View, getBasePath) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "_default"); + RETURN_MEMBER(getThis(), "basePath"); } -static PHP_METHOD(Phalcon_Db_Column, getName) +static PHP_METHOD(Phalcon_Mvc_View, getContent) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "name"); + RETURN_MEMBER(getThis(), "content"); } -static PHP_METHOD(Phalcon_Db_Column, getComment) +static PHP_METHOD(Phalcon_Mvc_View, getControllerName) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "comment"); + RETURN_MEMBER(getThis(), "controllerName"); } -static PHP_METHOD(Phalcon_Db_Column, getScale) +static PHP_METHOD(Phalcon_Mvc_View, getEventsManager) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "scale"); + RETURN_MEMBER(getThis(), "eventsManager"); } -static PHP_METHOD(Phalcon_Db_Column, getSize) +static PHP_METHOD(Phalcon_Mvc_View, getLayout) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "size"); + RETURN_MEMBER(getThis(), "layout"); } -static PHP_METHOD(Phalcon_Db_Column, getType) +static PHP_METHOD(Phalcon_Mvc_View, getLayoutsDir) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "type"); + RETURN_MEMBER(getThis(), "layoutsDir"); } -static PHP_METHOD(Phalcon_Db_Column, getTypeReference) +static PHP_METHOD(Phalcon_Mvc_View, getMainView) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "typeReference"); + RETURN_MEMBER(getThis(), "mainView"); } -static PHP_METHOD(Phalcon_Db_Column, getTypeValues) +static PHP_METHOD(Phalcon_Mvc_View, getParamsToView) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "typeValues"); + RETURN_MEMBER(getThis(), "viewParams"); } -static PHP_METHOD(Phalcon_Db_Column, __construct) +static PHP_METHOD(Phalcon_Mvc_View, getPartial) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval definition; - zval *name_param = NULL, *definition_param = NULL, __$true, __$false, type, notNull, primary, size, scale, dunsigned, first, after, bindType, isNumeric, autoIncrement, defaultValue, typeReference, typeValues, comment; - zval name; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *partialPath_param = NULL, *params = NULL, params_sub, __$null; + zval partialPath; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(¬Null); - ZVAL_UNDEF(&primary); - ZVAL_UNDEF(&size); - ZVAL_UNDEF(&scale); - ZVAL_UNDEF(&dunsigned); - ZVAL_UNDEF(&first); - ZVAL_UNDEF(&after); - ZVAL_UNDEF(&bindType); - ZVAL_UNDEF(&isNumeric); - ZVAL_UNDEF(&autoIncrement); - ZVAL_UNDEF(&defaultValue); - ZVAL_UNDEF(&typeReference); - ZVAL_UNDEF(&typeValues); - ZVAL_UNDEF(&comment); - ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&partialPath); + ZVAL_UNDEF(¶ms_sub); + ZVAL_NULL(&__$null); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(name) - Z_PARAM_ARRAY(definition) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(partialPath) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(params) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &name_param, &definition_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + zephir_fetch_params(1, 1, 1, &partialPath_param, ¶ms); + if (UNEXPECTED(Z_TYPE_P(partialPath_param) != IS_STRING && Z_TYPE_P(partialPath_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'partialPath' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); + if (EXPECTED(Z_TYPE_P(partialPath_param) == IS_STRING)) { + zephir_get_strval(&partialPath, partialPath_param); } else { - ZEPHIR_INIT_VAR(&name); - } - ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); - ZEPHIR_OBS_VAR(&type); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&type, &definition, SL("type"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Column type is required", "phalcon/Db/Column.zep", 348); - return; - } - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &type); - ZEPHIR_OBS_VAR(&typeReference); - if (zephir_array_isset_string_fetch(&typeReference, &definition, SL("typeReference"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("typeReference"), &typeReference); - } - ZEPHIR_OBS_VAR(&typeValues); - if (zephir_array_isset_string_fetch(&typeValues, &definition, SL("typeValues"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("typeValues"), &typeValues); - } - ZEPHIR_OBS_VAR(¬Null); - if (zephir_array_isset_string_fetch(¬Null, &definition, SL("notNull"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("notNull"), ¬Null); - } - ZEPHIR_OBS_VAR(&primary); - if (zephir_array_isset_string_fetch(&primary, &definition, SL("primary"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("primary"), &primary); - } - ZEPHIR_OBS_VAR(&size); - if (zephir_array_isset_string_fetch(&size, &definition, SL("size"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("size"), &size); - } - ZEPHIR_OBS_VAR(&scale); - if (zephir_array_isset_string_fetch(&scale, &definition, SL("scale"), 0)) { - do { - if (ZEPHIR_IS_LONG(&type, 14) || ZEPHIR_IS_LONG(&type, 3) || ZEPHIR_IS_LONG(&type, 9) || ZEPHIR_IS_LONG(&type, 7) || ZEPHIR_IS_LONG(&type, 0) || ZEPHIR_IS_LONG(&type, 21) || ZEPHIR_IS_LONG(&type, 22) || ZEPHIR_IS_LONG(&type, 26)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("scale"), &scale); - break; - } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Column type does not support scale parameter", "phalcon/Db/Column.zep", 398); - return; - } while(0); - - } - ZEPHIR_OBS_VAR(&defaultValue); - if (zephir_array_isset_string_fetch(&defaultValue, &definition, SL("default"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("_default"), &defaultValue); - } - ZEPHIR_OBS_VAR(&dunsigned); - if (zephir_array_isset_string_fetch(&dunsigned, &definition, SL("unsigned"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("unsigned"), &dunsigned); - } - ZEPHIR_OBS_VAR(&isNumeric); - if (zephir_array_isset_string_fetch(&isNumeric, &definition, SL("isNumeric"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("isNumeric"), &isNumeric); - } - ZEPHIR_OBS_VAR(&autoIncrement); - if (zephir_array_isset_string_fetch(&autoIncrement, &definition, SL("autoIncrement"), 0)) { - if (!(zephir_is_true(&autoIncrement))) { - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("autoIncrement"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("autoIncrement"), &__$false); - } - } else { - do { - if (ZEPHIR_IS_LONG(&type, 14) || ZEPHIR_IS_LONG(&type, 0) || ZEPHIR_IS_LONG(&type, 21) || ZEPHIR_IS_LONG(&type, 22) || ZEPHIR_IS_LONG(&type, 26)) { - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("autoIncrement"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("autoIncrement"), &__$false); - } - break; - } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Column type cannot be auto-increment", "phalcon/Db/Column.zep", 442); - return; - } while(0); - - } - } - if (zephir_array_isset_string_fetch(&first, &definition, SL("first"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("first"), &first); - } - if (zephir_array_isset_string_fetch(&after, &definition, SL("after"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("after"), &after); - } - if (zephir_array_isset_string_fetch(&bindType, &definition, SL("bindType"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("bindType"), &bindType); + ZEPHIR_INIT_VAR(&partialPath); } - if (zephir_array_isset_string_fetch(&comment, &definition, SL("comment"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("comment"), &comment); + if (!params) { + params = ¶ms_sub; + params = &__$null; } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Db_Column, getAfterPosition) -{ - zval *this_ptr = getThis(); - - RETURN_MEMBER(getThis(), "after"); + ZEPHIR_CALL_FUNCTION(NULL, "ob_start", NULL, 388); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "partial", NULL, 0, &partialPath, params); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_FUNCTION("ob_get_clean", NULL, 395); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Column, getBindType) +static PHP_METHOD(Phalcon_Mvc_View, getPartialsDir) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "bindType"); + RETURN_MEMBER(getThis(), "partialsDir"); } -static PHP_METHOD(Phalcon_Db_Column, hasDefault) +static PHP_METHOD(Phalcon_Mvc_View, getRender) { - zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval params, _1$$3; + zval *controllerName_param = NULL, *actionName_param = NULL, *params_param = NULL, *configCallback = NULL, configCallback_sub, __$null, view, _0$$3; + zval controllerName, actionName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&controllerName); + ZVAL_UNDEF(&actionName); + ZVAL_UNDEF(&configCallback_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&view); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&_1$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 4) + Z_PARAM_STR(controllerName) + Z_PARAM_STR(actionName) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(params) + Z_PARAM_ZVAL_OR_NULL(configCallback) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 2, &controllerName_param, &actionName_param, ¶ms_param, &configCallback); + if (UNEXPECTED(Z_TYPE_P(controllerName_param) != IS_STRING && Z_TYPE_P(controllerName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'controllerName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(controllerName_param) == IS_STRING)) { + zephir_get_strval(&controllerName, controllerName_param); + } else { + ZEPHIR_INIT_VAR(&controllerName); + } + if (UNEXPECTED(Z_TYPE_P(actionName_param) != IS_STRING && Z_TYPE_P(actionName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'actionName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(actionName_param) == IS_STRING)) { + zephir_get_strval(&actionName, actionName_param); + } else { + ZEPHIR_INIT_VAR(&actionName); + } + if (!params_param) { + ZEPHIR_INIT_VAR(¶ms); + array_init(¶ms); + } else { + zephir_get_arrval(¶ms, params_param); + } + if (!configCallback) { + configCallback = &configCallback_sub; + configCallback = &__$null; + } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "isautoincrement", NULL, 0); + + ZEPHIR_INIT_VAR(&view); + if (zephir_clone(&view, this_ptr) == FAILURE) { + RETURN_MM(); + } + ZEPHIR_CALL_METHOD(NULL, &view, "reset", NULL, 0); zephir_check_call_status(); - if (zephir_is_true(&_0)) { - RETURN_MM_BOOL(0); + ZEPHIR_CALL_METHOD(NULL, &view, "setvars", NULL, 0, ¶ms); + zephir_check_call_status(); + if (Z_TYPE_P(configCallback) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_0$$3); + ZEPHIR_INIT_VAR(&_1$$3); + zephir_create_array(&_1$$3, 1, 0); + zephir_array_fast_append(&_1$$3, &view); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_0$$3, configCallback, &_1$$3); + zephir_check_call_status(); } - zephir_read_property(&_1, this_ptr, ZEND_STRL("_default"), PH_NOISY_CC | PH_READONLY); - RETURN_MM_BOOL(Z_TYPE_P(&_1) != IS_NULL); + ZEPHIR_CALL_METHOD(NULL, &view, "start", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &view, "render", NULL, 0, &controllerName, &actionName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &view, "finish", NULL, 0); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(&view, "getcontent", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Column, isAutoIncrement) +static PHP_METHOD(Phalcon_Mvc_View, getVar) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *key_param = NULL, value, _0; + zval key; zval *this_ptr = getThis(); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "autoIncrement"); -} - -static PHP_METHOD(Phalcon_Db_Column, isFirst) -{ - zval *this_ptr = getThis(); - + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &key_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } - RETURN_MEMBER(getThis(), "first"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&value, &_0, &key, 1))) { + RETURN_MM_NULL(); + } + RETURN_CTOR(&value); } -static PHP_METHOD(Phalcon_Db_Column, isNotNull) +static PHP_METHOD(Phalcon_Mvc_View, getViewsDir) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "notNull"); + RETURN_MEMBER(getThis(), "viewsDirs"); } -static PHP_METHOD(Phalcon_Db_Column, isNumeric) +static PHP_METHOD(Phalcon_Mvc_View, getViewsDirs) { + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + ZEPHIR_MM_GROW(); - RETURN_MEMBER(getThis(), "isNumeric"); + ZEPHIR_OBS_VAR(&_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("viewsDirs"), PH_NOISY_CC); + if (Z_TYPE_P(&_0) == IS_STRING) { + zephir_create_array(return_value, 1, 0); + ZEPHIR_OBS_VAR(&_1$$3); + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("viewsDirs"), PH_NOISY_CC); + zephir_array_fast_append(return_value, &_1$$3); + RETURN_MM(); + } + RETURN_MM_MEMBER(getThis(), "viewsDirs"); } -static PHP_METHOD(Phalcon_Db_Column, isPrimary) +static PHP_METHOD(Phalcon_Mvc_View, isDisabled) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "primary"); + RETURN_MEMBER(getThis(), "disabled"); } -static PHP_METHOD(Phalcon_Db_Column, isUnsigned) +static PHP_METHOD(Phalcon_Mvc_View, partial) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *partialPath_param = NULL, *params = NULL, params_sub, __$null, viewParams, _3, _4, _5, _6, _7, _0$$3, _1$$3, _2$$3; + zval partialPath; zval *this_ptr = getThis(); - - - RETURN_MEMBER(getThis(), "unsigned"); -} - - - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&partialPath); + ZVAL_UNDEF(¶ms_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&viewParams); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(partialPath) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(params) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &partialPath_param, ¶ms); + if (UNEXPECTED(Z_TYPE_P(partialPath_param) != IS_STRING && Z_TYPE_P(partialPath_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'partialPath' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(partialPath_param) == IS_STRING)) { + zephir_get_strval(&partialPath, partialPath_param); + } else { + ZEPHIR_INIT_VAR(&partialPath); + } + if (!params) { + params = ¶ms_sub; + params = &__$null; + } - -ZEPHIR_INIT_CLASS(Phalcon_Db_ColumnInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, ColumnInterface, phalcon, db_columninterface, phalcon_db_columninterface_method_entry); - - return SUCCESS; + if (Z_TYPE_P(params) == IS_ARRAY) { + zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&viewParams, &_0$$3); + ZEPHIR_INIT_VAR(&_1$$3); + zephir_fast_array_merge(&_1$$3, &viewParams, params); + zephir_update_property_zval(this_ptr, ZEND_STRL("viewParams"), &_1$$3); + ZEPHIR_INIT_VAR(&_2$$3); + ZEPHIR_CREATE_SYMBOL_TABLE(); + + } + ZEPHIR_CALL_METHOD(&_3, this_ptr, "loadtemplateengines", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_4, this_ptr, ZEND_STRL("partialsDir"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_5); + ZEPHIR_CONCAT_VV(&_5, &_4, &partialPath); + ZVAL_BOOL(&_6, 0); + ZVAL_BOOL(&_7, 0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "enginerender", NULL, 0, &_3, &_5, &_6, &_7); + zephir_check_call_status(); + if (Z_TYPE_P(params) == IS_ARRAY) { + zephir_update_property_zval(this_ptr, ZEND_STRL("viewParams"), &viewParams); + } + ZEPHIR_MM_RESTORE(); } -ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, getAfterPosition); -ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, getBindType); -ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, getDefault); -ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, getName); -ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, getScale); -ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, getSize); -ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, getType); -ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, getTypeReference); -ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, getTypeValues); -ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, hasDefault); -ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, isAutoIncrement); -ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, isFirst); -ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, isNotNull); -ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, isNumeric); -ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, isPrimary); -ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, isUnsigned); - - +static PHP_METHOD(Phalcon_Mvc_View, pick) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *renderView, renderView_sub, pickView, layout, parts, _0$$4; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&renderView_sub); + ZVAL_UNDEF(&pickView); + ZVAL_UNDEF(&layout); + ZVAL_UNDEF(&parts); + ZVAL_UNDEF(&_0$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(renderView) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &renderView); - -ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Dialect, phalcon, db_dialect, phalcon_db_dialect_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_null(phalcon_db_dialect_ce, SL("escapeChar"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_dialect_ce, SL("customFunctions"), ZEND_ACC_PROTECTED); - phalcon_db_dialect_ce->create_object = zephir_init_properties_Phalcon_Db_Dialect; - - zend_class_implements(phalcon_db_dialect_ce, 1, phalcon_db_dialectinterface_ce); - return SUCCESS; + if (Z_TYPE_P(renderView) == IS_ARRAY) { + ZEPHIR_CPY_WRT(&pickView, renderView); + } else { + ZEPHIR_INIT_VAR(&layout); + ZVAL_NULL(&layout); + if (zephir_memnstr_str(renderView, SL("/"), "phalcon/Mvc/View.zep", 668)) { + ZEPHIR_INIT_VAR(&parts); + zephir_fast_explode_str(&parts, SL("/"), renderView, LONG_MAX); + ZEPHIR_OBS_NVAR(&layout); + zephir_array_fetch_long(&layout, &parts, 0, PH_NOISY, "phalcon/Mvc/View.zep", 670); + } + ZEPHIR_INIT_VAR(&_0$$4); + zephir_create_array(&_0$$4, 1, 0); + zephir_array_fast_append(&_0$$4, renderView); + ZEPHIR_CPY_WRT(&pickView, &_0$$4); + if (Z_TYPE_P(&layout) != IS_NULL) { + zephir_array_append(&pickView, &layout, PH_SEPARATE, "phalcon/Mvc/View.zep", 676); + } + } + zephir_update_property_zval(this_ptr, ZEND_STRL("pickView"), &pickView); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Dialect, createSavepoint) +static PHP_METHOD(Phalcon_Mvc_View, registerEngines) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL; - zval name; + zval *engines_param = NULL; + zval engines; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); + ZVAL_UNDEF(&engines); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + Z_PARAM_ARRAY(engines) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } + zephir_fetch_params(1, 1, 0, &engines_param); + ZEPHIR_OBS_COPY_OR_DUP(&engines, engines_param); - ZEPHIR_CONCAT_SV(return_value, "SAVEPOINT ", &name); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("registeredEngines"), &engines); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Dialect, escape) +static PHP_METHOD(Phalcon_Mvc_View, render) { - zend_bool _2$$5, _12$$7, _13$$7, _17$$9, _18$$9; - zend_string *_11; - zend_ulong _10; - zval _7; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *str_param = NULL, *escapeChar_param = NULL, parts, key, part, newParts, _5, _6, *_8, _9, _0$$4, _3$$6, _14$$7, _16$$7, _19$$9, _21$$9; - zval str, escapeChar, _1$$4, _4$$6, _15$$7, _20$$9; + zval params; + zval *controllerName_param = NULL, *actionName_param = NULL, *params_param = NULL, result; + zval controllerName, actionName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&str); - ZVAL_UNDEF(&escapeChar); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_4$$6); - ZVAL_UNDEF(&_15$$7); - ZVAL_UNDEF(&_20$$9); - ZVAL_UNDEF(&parts); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&part); - ZVAL_UNDEF(&newParts); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_0$$4); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&_14$$7); - ZVAL_UNDEF(&_16$$7); - ZVAL_UNDEF(&_19$$9); - ZVAL_UNDEF(&_21$$9); - ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&controllerName); + ZVAL_UNDEF(&actionName); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(¶ms); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(str) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(controllerName) + Z_PARAM_STR(actionName) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) + Z_PARAM_ARRAY(params) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &str_param, &escapeChar_param); - if (UNEXPECTED(Z_TYPE_P(str_param) != IS_STRING && Z_TYPE_P(str_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'str' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(str_param) == IS_STRING)) { - zephir_get_strval(&str, str_param); - } else { - ZEPHIR_INIT_VAR(&str); + zephir_fetch_params(1, 2, 1, &controllerName_param, &actionName_param, ¶ms_param); + if (UNEXPECTED(Z_TYPE_P(controllerName_param) != IS_STRING && Z_TYPE_P(controllerName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'controllerName' must be of the type string")); + RETURN_MM_NULL(); } - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); + if (EXPECTED(Z_TYPE_P(controllerName_param) == IS_STRING)) { + zephir_get_strval(&controllerName, controllerName_param); } else { - zephir_get_strval(&escapeChar, escapeChar_param); - } - - - if (!(ZEPHIR_GLOBAL(db).escape_identifiers)) { - RETURN_CTOR(&str); + ZEPHIR_INIT_VAR(&controllerName); } - if (ZEPHIR_IS_EMPTY(&escapeChar)) { - ZEPHIR_OBS_VAR(&_0$$4); - zephir_read_property(&_0$$4, this_ptr, ZEND_STRL("escapeChar"), PH_NOISY_CC); - zephir_cast_to_string(&_1$$4, &_0$$4); - ZEPHIR_CPY_WRT(&escapeChar, &_1$$4); + if (UNEXPECTED(Z_TYPE_P(actionName_param) != IS_STRING && Z_TYPE_P(actionName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'actionName' must be of the type string")); + RETURN_MM_NULL(); } - if (!(zephir_memnstr_str(&str, SL("."), "phalcon/Db/Dialect.zep", 52))) { - _2$$5 = !ZEPHIR_IS_STRING(&escapeChar, ""); - if (_2$$5) { - _2$$5 = !ZEPHIR_IS_STRING(&str, "*"); - } - if (_2$$5) { - ZEPHIR_INIT_VAR(&_3$$6); - ZEPHIR_INIT_VAR(&_4$$6); - ZEPHIR_CONCAT_VV(&_4$$6, &escapeChar, &escapeChar); - zephir_fast_str_replace(&_3$$6, &escapeChar, &_4$$6, &str); - ZEPHIR_CONCAT_VVV(return_value, &escapeChar, &_3$$6, &escapeChar); - RETURN_MM(); - } - RETURN_CTOR(&str); + if (EXPECTED(Z_TYPE_P(actionName_param) == IS_STRING)) { + zephir_get_strval(&actionName, actionName_param); + } else { + ZEPHIR_INIT_VAR(&actionName); } - ZEPHIR_INIT_VAR(&_5); - ZEPHIR_INIT_VAR(&_6); - zephir_fast_trim(&_6, &str, &escapeChar, ZEPHIR_TRIM_BOTH); - zephir_fast_explode_str(&_5, SL("."), &_6, LONG_MAX); - zephir_get_arrval(&_7, &_5); - ZEPHIR_CPY_WRT(&parts, &_7); - ZEPHIR_CPY_WRT(&newParts, &parts); - zephir_is_iterable(&parts, 0, "phalcon/Db/Dialect.zep", 72); - if (Z_TYPE_P(&parts) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&parts), _10, _11, _8) - { - ZEPHIR_INIT_NVAR(&key); - if (_11 != NULL) { - ZVAL_STR_COPY(&key, _11); - } else { - ZVAL_LONG(&key, _10); - } - ZEPHIR_INIT_NVAR(&part); - ZVAL_COPY(&part, _8); - _12$$7 = ZEPHIR_IS_STRING(&escapeChar, ""); - if (!(_12$$7)) { - _12$$7 = ZEPHIR_IS_STRING(&part, ""); - } - _13$$7 = _12$$7; - if (!(_13$$7)) { - _13$$7 = ZEPHIR_IS_STRING(&part, "*"); - } - if (_13$$7) { - continue; - } - ZEPHIR_INIT_NVAR(&_14$$7); - ZEPHIR_INIT_NVAR(&_15$$7); - ZEPHIR_CONCAT_VV(&_15$$7, &escapeChar, &escapeChar); - zephir_fast_str_replace(&_14$$7, &escapeChar, &_15$$7, &part); - ZEPHIR_INIT_NVAR(&_16$$7); - ZEPHIR_CONCAT_VVV(&_16$$7, &escapeChar, &_14$$7, &escapeChar); - zephir_array_update_zval(&newParts, &key, &_16$$7, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); + if (!params_param) { + ZEPHIR_INIT_VAR(¶ms); + array_init(¶ms); } else { - ZEPHIR_CALL_METHOD(NULL, &parts, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_9, &parts, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_9)) { - break; - } - ZEPHIR_CALL_METHOD(&key, &parts, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&part, &parts, "current", NULL, 0); - zephir_check_call_status(); - _17$$9 = ZEPHIR_IS_STRING(&escapeChar, ""); - if (!(_17$$9)) { - _17$$9 = ZEPHIR_IS_STRING(&part, ""); - } - _18$$9 = _17$$9; - if (!(_18$$9)) { - _18$$9 = ZEPHIR_IS_STRING(&part, "*"); - } - if (_18$$9) { - continue; - } - ZEPHIR_INIT_NVAR(&_19$$9); - ZEPHIR_INIT_NVAR(&_20$$9); - ZEPHIR_CONCAT_VV(&_20$$9, &escapeChar, &escapeChar); - zephir_fast_str_replace(&_19$$9, &escapeChar, &_20$$9, &part); - ZEPHIR_INIT_NVAR(&_21$$9); - ZEPHIR_CONCAT_VVV(&_21$$9, &escapeChar, &_19$$9, &escapeChar); - zephir_array_update_zval(&newParts, &key, &_21$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &parts, "next", NULL, 0); - zephir_check_call_status(); - } + zephir_get_arrval(¶ms, params_param); } - ZEPHIR_INIT_NVAR(&part); - ZEPHIR_INIT_NVAR(&key); - zephir_fast_join_str(return_value, SL("."), &newParts); - RETURN_MM(); + + + ZEPHIR_CALL_METHOD(&result, this_ptr, "processrender", NULL, 0, &controllerName, &actionName, ¶ms); + zephir_check_call_status(); + if (!(zephir_is_true(&result))) { + RETURN_MM_BOOL(0); + } + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Dialect, escapeSchema) +static PHP_METHOD(Phalcon_Mvc_View, reset) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *str_param = NULL, *escapeChar_param = NULL, _0$$4, _2; - zval str, escapeChar, _1$$4; + zval __$true, __$false, __$null, _0, _1, _2; zval *this_ptr = getThis(); - ZVAL_UNDEF(&str); - ZVAL_UNDEF(&escapeChar); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_0$$4); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(str) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &str_param, &escapeChar_param); - if (UNEXPECTED(Z_TYPE_P(str_param) != IS_STRING && Z_TYPE_P(str_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'str' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(str_param) == IS_STRING)) { - zephir_get_strval(&str, str_param); + + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("disabled"), &__$true); } else { - ZEPHIR_INIT_VAR(&str); + zephir_update_property_zval(this_ptr, ZEND_STRL("disabled"), &__$false); } - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("engines"), &__$true); } else { - zephir_get_strval(&escapeChar, escapeChar_param); - } - - - if (!(ZEPHIR_GLOBAL(db).escape_identifiers)) { - RETURN_CTOR(&str); - } - if (ZEPHIR_IS_STRING(&escapeChar, "")) { - ZEPHIR_OBS_VAR(&_0$$4); - zephir_read_property(&_0$$4, this_ptr, ZEND_STRL("escapeChar"), PH_NOISY_CC); - zephir_cast_to_string(&_1$$4, &_0$$4); - ZEPHIR_CPY_WRT(&escapeChar, &_1$$4); + zephir_update_property_zval(this_ptr, ZEND_STRL("engines"), &__$false); } + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, 5); + zephir_update_property_zval(this_ptr, ZEND_STRL("renderLevel"), &_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("content"), &__$null); + ZEPHIR_INIT_VAR(&_1); + array_init(&_1); + zephir_update_property_zval(this_ptr, ZEND_STRL("templatesBefore"), &_1); ZEPHIR_INIT_VAR(&_2); - zephir_fast_trim(&_2, &str, &escapeChar, ZEPHIR_TRIM_BOTH); - ZEPHIR_CONCAT_VVV(return_value, &escapeChar, &_2, &escapeChar); - RETURN_MM(); + array_init(&_2); + zephir_update_property_zval(this_ptr, ZEND_STRL("templatesAfter"), &_2); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Dialect, forUpdate) +static PHP_METHOD(Phalcon_Mvc_View, setBasePath) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *sqlQuery_param = NULL; - zval sqlQuery; + zval *basePath_param = NULL; + zval basePath; zval *this_ptr = getThis(); - ZVAL_UNDEF(&sqlQuery); + ZVAL_UNDEF(&basePath); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(sqlQuery) + Z_PARAM_STR(basePath) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &sqlQuery_param); - if (UNEXPECTED(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { - zephir_get_strval(&sqlQuery, sqlQuery_param); - } else { - ZEPHIR_INIT_VAR(&sqlQuery); - } + zephir_fetch_params(1, 1, 0, &basePath_param); + zephir_get_strval(&basePath, basePath_param); - ZEPHIR_CONCAT_VS(return_value, &sqlQuery, " FOR UPDATE"); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("basePath"), &basePath); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Dialect, getColumnList) +static PHP_METHOD(Phalcon_Mvc_View, setContent) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval escapeChar; - zval *columnList_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, column, *_0, _1, _2$$3, _4$$4; - zval columnList, bindCounts, columns; + zval *content_param = NULL; + zval content; zval *this_ptr = getThis(); - ZVAL_UNDEF(&columnList); - ZVAL_UNDEF(&bindCounts); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&column); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&escapeChar); + ZVAL_UNDEF(&content); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ARRAY(columnList) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) - Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(content) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &columnList_param, &escapeChar_param, &bindCounts_param); - ZEPHIR_OBS_COPY_OR_DUP(&columnList, columnList_param); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); - } else { - zephir_get_strval(&escapeChar, escapeChar_param); - } - if (!bindCounts_param) { - ZEPHIR_INIT_VAR(&bindCounts); - array_init(&bindCounts); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); - } - - - ZEPHIR_INIT_VAR(&columns); - array_init(&columns); - zephir_is_iterable(&columnList, 0, "phalcon/Db/Dialect.zep", 128); - if (Z_TYPE_P(&columnList) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&columnList), _0) - { - ZEPHIR_INIT_NVAR(&column); - ZVAL_COPY(&column, _0); - ZEPHIR_CALL_METHOD(&_2$$3, this_ptr, "getsqlcolumn", &_3, 53, &column, &escapeChar, &bindCounts); - zephir_check_call_status(); - zephir_array_append(&columns, &_2$$3, PH_SEPARATE, "phalcon/Db/Dialect.zep", 125); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &columnList, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &columnList, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&column, &columnList, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_4$$4, this_ptr, "getsqlcolumn", &_3, 53, &column, &escapeChar, &bindCounts); - zephir_check_call_status(); - zephir_array_append(&columns, &_4$$4, PH_SEPARATE, "phalcon/Db/Dialect.zep", 125); - ZEPHIR_CALL_METHOD(NULL, &columnList, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&column); - zephir_fast_join_str(return_value, SL(", "), &columns); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Db_Dialect, getCustomFunctions) -{ - zval *this_ptr = getThis(); - + zephir_fetch_params(1, 1, 0, &content_param); + zephir_get_strval(&content, content_param); - RETURN_MEMBER(getThis(), "customFunctions"); + zephir_update_property_zval(this_ptr, ZEND_STRL("content"), &content); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Dialect, getSqlColumn) +static PHP_METHOD(Phalcon_Mvc_View, setEventsManager) { - zend_bool _5, _3$$4, _4$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval bindCounts; - zval escapeChar; - zval *column = NULL, column_sub, *escapeChar_param = NULL, *bindCounts_param = NULL, columnExpression, columnAlias, columnField, columnDomain, _6, _0$$3, _1$$6, _2$$7; + zval *eventsManager, eventsManager_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&column_sub); - ZVAL_UNDEF(&columnExpression); - ZVAL_UNDEF(&columnAlias); - ZVAL_UNDEF(&columnField); - ZVAL_UNDEF(&columnDomain); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$6); - ZVAL_UNDEF(&_2$$7); - ZVAL_UNDEF(&escapeChar); - ZVAL_UNDEF(&bindCounts); + ZVAL_UNDEF(&eventsManager_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ZVAL(column) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) - Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &column, &escapeChar_param, &bindCounts_param); - ZEPHIR_SEPARATE_PARAM(column); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); - } else { - zephir_get_strval(&escapeChar, escapeChar_param); - } - if (!bindCounts_param) { - ZEPHIR_INIT_VAR(&bindCounts); - array_init(&bindCounts); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); - } + zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); - if (Z_TYPE_P(column) != IS_ARRAY) { - ZVAL_NULL(&_0$$3); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparequalified", NULL, 0, column, &_0$$3, &escapeChar); - zephir_check_call_status(); - RETURN_MM(); - } - if (!(zephir_array_isset_string(column, SL("type")))) { - ZEPHIR_OBS_VAR(&columnField); - zephir_array_fetch_long(&columnField, column, 0, PH_NOISY, "phalcon/Db/Dialect.zep", 160); - if (Z_TYPE_P(&columnField) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&columnExpression); - zephir_create_array(&columnExpression, 2, 0); - add_assoc_stringl_ex(&columnExpression, SL("type"), SL("scalar")); - zephir_array_update_string(&columnExpression, SL("value"), &columnField, PH_COPY | PH_SEPARATE); - } else if (ZEPHIR_IS_STRING_IDENTICAL(&columnField, "*")) { - ZEPHIR_INIT_VAR(&_1$$6); - zephir_create_array(&_1$$6, 1, 0); - add_assoc_stringl_ex(&_1$$6, SL("type"), SL("all")); - ZEPHIR_CPY_WRT(&columnExpression, &_1$$6); - } else { - ZEPHIR_INIT_VAR(&_2$$7); - zephir_create_array(&_2$$7, 2, 0); - add_assoc_stringl_ex(&_2$$7, SL("type"), SL("qualified")); - zephir_array_update_string(&_2$$7, SL("name"), &columnField, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&columnExpression, &_2$$7); - } - ZEPHIR_OBS_VAR(&columnDomain); - _3$$4 = zephir_array_isset_long_fetch(&columnDomain, column, 1, 0); - if (_3$$4) { - _3$$4 = !ZEPHIR_IS_STRING_IDENTICAL(&columnDomain, ""); - } - if (_3$$4) { - zephir_array_update_string(&columnExpression, SL("domain"), &columnDomain, PH_COPY | PH_SEPARATE); - } - ZEPHIR_OBS_VAR(&columnAlias); - _4$$4 = zephir_array_isset_long_fetch(&columnAlias, column, 2, 0); - if (_4$$4) { - _4$$4 = zephir_is_true(&columnAlias); - } - if (_4$$4) { - zephir_array_update_string(&columnExpression, SL("sqlAlias"), &columnAlias, PH_COPY | PH_SEPARATE); - } - } else { - ZEPHIR_CPY_WRT(&columnExpression, column); - } - ZEPHIR_CALL_METHOD(column, this_ptr, "getsqlexpression", NULL, 0, &columnExpression, &escapeChar, &bindCounts); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&columnAlias); - _5 = zephir_array_isset_string_fetch(&columnAlias, &columnExpression, SL("sqlAlias"), 0); - if (!(_5)) { - ZEPHIR_OBS_NVAR(&columnAlias); - _5 = zephir_array_isset_string_fetch(&columnAlias, &columnExpression, SL("alias"), 0); - } - if (_5) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparecolumnalias", NULL, 0, column, &columnAlias, &escapeChar); - zephir_check_call_status(); - RETURN_MM(); - } - ZVAL_NULL(&_6); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparecolumnalias", NULL, 0, column, &_6, &escapeChar); - zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); } -static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpression) +static PHP_METHOD(Phalcon_Mvc_View, setLayout) { - zend_bool _1$$9; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, i = 0, _2$$9; - zval escapeChar; - zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, type, times, postTimes, rawValue, value, _11, _12, _0$$7, _3$$9, _4$$11, _5$$11, _6$$8, _7$$14, _8$$14, _9$$18, _10$$18; - zval expression, bindCounts, placeholders; + zval *layout_param = NULL; + zval layout; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expression); - ZVAL_UNDEF(&bindCounts); - ZVAL_UNDEF(&placeholders); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(×); - ZVAL_UNDEF(&postTimes); - ZVAL_UNDEF(&rawValue); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_0$$7); - ZVAL_UNDEF(&_3$$9); - ZVAL_UNDEF(&_4$$11); - ZVAL_UNDEF(&_5$$11); - ZVAL_UNDEF(&_6$$8); - ZVAL_UNDEF(&_7$$14); - ZVAL_UNDEF(&_8$$14); - ZVAL_UNDEF(&_9$$18); - ZVAL_UNDEF(&_10$$18); - ZVAL_UNDEF(&escapeChar); + ZVAL_UNDEF(&layout); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ARRAY(expression) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) - Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(layout) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); - ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); - } else { - zephir_get_strval(&escapeChar, escapeChar_param); - } - if (!bindCounts_param) { - ZEPHIR_INIT_VAR(&bindCounts); - array_init(&bindCounts); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); - } - + zephir_fetch_params(1, 1, 0, &layout_param); + zephir_get_strval(&layout, layout_param); - ZEPHIR_OBS_VAR(&type); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&type, &expression, SL("type"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL expression", "phalcon/Db/Dialect.zep", 224); - return; - } - do { - if (ZEPHIR_IS_STRING(&type, "scalar")) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionscalar", NULL, 54, &expression, &escapeChar, &bindCounts); - zephir_check_call_status(); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&type, "object")) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionobject", NULL, 55, &expression, &escapeChar, &bindCounts); - zephir_check_call_status(); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&type, "qualified")) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionqualified", NULL, 56, &expression, &escapeChar); - zephir_check_call_status(); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&type, "literal")) { - zephir_array_fetch_string(&_0$$7, &expression, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 258); - RETURN_CTOR(&_0$$7); - } - if (ZEPHIR_IS_STRING(&type, "placeholder")) { - ZEPHIR_OBS_VAR(×); - if (zephir_array_isset_string_fetch(×, &expression, SL("times"), 0)) { - ZEPHIR_INIT_VAR(&placeholders); - array_init(&placeholders); - ZEPHIR_OBS_VAR(&rawValue); - zephir_array_fetch_string(&rawValue, &expression, SL("rawValue"), PH_NOISY, "phalcon/Db/Dialect.zep", 264); - ZEPHIR_OBS_VAR(&value); - zephir_array_fetch_string(&value, &expression, SL("value"), PH_NOISY, "phalcon/Db/Dialect.zep", 265); - ZEPHIR_OBS_VAR(&postTimes); - if (zephir_array_isset_fetch(&postTimes, &bindCounts, &rawValue, 0)) { - ZEPHIR_CPY_WRT(×, &postTimes); - } - ZEPHIR_CPY_WRT(&_3$$9, ×); - _2$$9 = 1; - _1$$9 = 0; - if (ZEPHIR_GE_LONG(&_3$$9, _2$$9)) { - while (1) { - if (_1$$9) { - _2$$9++; - if (!(ZEPHIR_GE_LONG(&_3$$9, _2$$9))) { - break; - } - } else { - _1$$9 = 1; - } - i = _2$$9; - ZEPHIR_INIT_NVAR(&_4$$11); - ZVAL_LONG(&_4$$11, ((i - 1))); - ZEPHIR_INIT_NVAR(&_5$$11); - ZEPHIR_CONCAT_VV(&_5$$11, &value, &_4$$11); - zephir_array_append(&placeholders, &_5$$11, PH_SEPARATE, "phalcon/Db/Dialect.zep", 272); - } - } - zephir_fast_join_str(return_value, SL(", "), &placeholders); - RETURN_MM(); - } - zephir_array_fetch_string(&_6$$8, &expression, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 278); - RETURN_CTOR(&_6$$8); - } - if (ZEPHIR_IS_STRING(&type, "binary-op")) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionbinaryoperations", NULL, 57, &expression, &escapeChar, &bindCounts); - zephir_check_call_status(); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&type, "unary-op")) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionunaryoperations", NULL, 58, &expression, &escapeChar, &bindCounts); - zephir_check_call_status(); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&type, "parentheses")) { - zephir_array_fetch_string(&_8$$14, &expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 304); - ZEPHIR_CALL_METHOD(&_7$$14, this_ptr, "getsqlexpression", NULL, 59, &_8$$14, &escapeChar, &bindCounts); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVS(return_value, "(", &_7$$14, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&type, "functionCall")) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionfunctioncall", NULL, 60, &expression, &escapeChar, &bindCounts); - zephir_check_call_status(); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&type, "list")) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionlist", NULL, 61, &expression, &escapeChar, &bindCounts); - zephir_check_call_status(); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&type, "all")) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionall", NULL, 62, &expression, &escapeChar); - zephir_check_call_status(); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&type, "select")) { - zephir_array_fetch_string(&_10$$18, &expression, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 336); - ZEPHIR_CALL_METHOD(&_9$$18, this_ptr, "select", NULL, 0, &_10$$18); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVS(return_value, "(", &_9$$18, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&type, "cast")) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressioncastvalue", NULL, 63, &expression, &escapeChar, &bindCounts); - zephir_check_call_status(); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&type, "convert")) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionconvertvalue", NULL, 64, &expression, &escapeChar, &bindCounts); - zephir_check_call_status(); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&type, "case")) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressioncase", NULL, 65, &expression, &escapeChar, &bindCounts); - zephir_check_call_status(); - RETURN_MM(); - } - } while(0); - ZEPHIR_INIT_VAR(&_11); - object_init_ex(&_11, phalcon_db_exception_ce); - ZEPHIR_INIT_VAR(&_12); - ZEPHIR_CONCAT_SVS(&_12, "Invalid SQL expression type '", &type, "'"); - ZEPHIR_CALL_METHOD(NULL, &_11, "__construct", NULL, 8, &_12); - zephir_check_call_status(); - zephir_throw_exception_debug(&_11, "phalcon/Db/Dialect.zep", 369); - ZEPHIR_MM_RESTORE(); - return; + zephir_update_property_zval(this_ptr, ZEND_STRL("layout"), &layout); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Dialect, getSqlTable) +static PHP_METHOD(Phalcon_Mvc_View, setLayoutsDir) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval escapeChar; - zval *table, table_sub, *escapeChar_param = NULL, tableName, schemaName, aliasName; + zval *layoutsDir_param = NULL; + zval layoutsDir; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table_sub); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&aliasName); - ZVAL_UNDEF(&escapeChar); + ZVAL_UNDEF(&layoutsDir); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(table) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(layoutsDir) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table, &escapeChar_param); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); - } else { - zephir_get_strval(&escapeChar, escapeChar_param); - } + zephir_fetch_params(1, 1, 0, &layoutsDir_param); + zephir_get_strval(&layoutsDir, layoutsDir_param); - if (Z_TYPE_P(table) == IS_ARRAY) { - ZEPHIR_OBS_VAR(&tableName); - zephir_array_fetch_long(&tableName, table, 0, PH_NOISY, "phalcon/Db/Dialect.zep", 385); - ZEPHIR_OBS_VAR(&schemaName); - zephir_array_isset_long_fetch(&schemaName, table, 1, 0); - ZEPHIR_OBS_VAR(&aliasName); - zephir_array_isset_long_fetch(&aliasName, table, 2, 0); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparetable", NULL, 0, &tableName, &schemaName, &aliasName, &escapeChar); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "escape", NULL, 66, table, &escapeChar); - zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("layoutsDir"), &layoutsDir); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Dialect, limit) +static PHP_METHOD(Phalcon_Mvc_View, setMainView) { - zend_bool _2$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *sqlQuery_param = NULL, *number, number_sub, _0$$3, _1$$3, _3$$3, _4$$4, _5$$4; - zval sqlQuery; + zval *viewPath_param = NULL; + zval viewPath; zval *this_ptr = getThis(); - ZVAL_UNDEF(&sqlQuery); - ZVAL_UNDEF(&number_sub); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&viewPath); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(sqlQuery) - Z_PARAM_ZVAL(number) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(viewPath) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &sqlQuery_param, &number); - if (UNEXPECTED(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { - zephir_get_strval(&sqlQuery, sqlQuery_param); - } else { - ZEPHIR_INIT_VAR(&sqlQuery); - } + zephir_fetch_params(1, 1, 0, &viewPath_param); + zephir_get_strval(&viewPath, viewPath_param); - if (Z_TYPE_P(number) == IS_ARRAY) { - zephir_array_fetch_long(&_0$$3, number, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 428); - ZEPHIR_INIT_VAR(&_1$$3); - ZEPHIR_CONCAT_SV(&_1$$3, " LIMIT ", &_0$$3); - zephir_concat_self(&sqlQuery, &_1$$3); - _2$$3 = zephir_array_isset_long(number, 1); - if (_2$$3) { - zephir_array_fetch_long(&_3$$3, number, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 430); - _2$$3 = ((zephir_fast_strlen_ev(&_3$$3)) ? 1 : 0); - } - if (_2$$3) { - zephir_array_fetch_long(&_4$$4, number, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 431); - ZEPHIR_INIT_VAR(&_5$$4); - ZEPHIR_CONCAT_SV(&_5$$4, " OFFSET ", &_4$$4); - zephir_concat_self(&sqlQuery, &_5$$4); - } - RETURN_CTOR(&sqlQuery); - } - ZEPHIR_CONCAT_VSV(return_value, &sqlQuery, " LIMIT ", number); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("mainView"), &viewPath); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Dialect, registerCustomFunction) +static PHP_METHOD(Phalcon_Mvc_View, setPartialsDir) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, *customFunction, customFunction_sub; - zval name; + zval *partialsDir_param = NULL; + zval partialsDir; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&customFunction_sub); + ZVAL_UNDEF(&partialsDir); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(name) - Z_PARAM_ZVAL(customFunction) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(partialsDir) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &name_param, &customFunction); - zephir_get_strval(&name, name_param); + zephir_fetch_params(1, 1, 0, &partialsDir_param); + zephir_get_strval(&partialsDir, partialsDir_param); - zephir_update_property_array(this_ptr, SL("customFunctions"), &name, customFunction); + zephir_update_property_zval(this_ptr, ZEND_STRL("partialsDir"), &partialsDir); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Dialect, releaseSavepoint) +static PHP_METHOD(Phalcon_Mvc_View, setParamToView) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL; - zval name; + zval *key_param = NULL, *value, value_sub; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(key) + Z_PARAM_ZVAL(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + zephir_fetch_params(1, 2, 0, &key_param, &value); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_INIT_VAR(&name); + ZEPHIR_INIT_VAR(&key); } - ZEPHIR_CONCAT_SV(return_value, "RELEASE SAVEPOINT ", &name); - RETURN_MM(); + zephir_update_property_array(this_ptr, SL("viewParams"), &key, value); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Dialect, rollbackSavepoint) +static PHP_METHOD(Phalcon_Mvc_View, setRenderLevel) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL; - zval name; + zval *level_param = NULL, _0; + zend_long level; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + Z_PARAM_LONG(level) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } + zephir_fetch_params_without_memory_grow(1, 0, &level_param); + level = zephir_get_intval(level_param); - ZEPHIR_CONCAT_SV(return_value, "ROLLBACK TO SAVEPOINT ", &name); - RETURN_MM(); + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, level); + zephir_update_property_zval(this_ptr, ZEND_STRL("renderLevel"), &_0); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Db_Dialect, select) +static PHP_METHOD(Phalcon_Mvc_View, setTemplateAfter) { - zend_bool _5, _9, _12, _15, _18, _21, _23; + zval _0$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *definition_param = NULL, tables, columns, sql, distinct, joins, where, escapeChar, groupBy, having, orderBy, limit, forUpdate, bindCounts, _0, _1, _2, _3, _4, _6$$10, _7$$10, _8$$10, _10$$11, _11$$11, _13$$12, _14$$12, _16$$13, _17$$13, _19$$14, _20$$14; - zval definition, _22$$15; + zval *templateAfter, templateAfter_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&_22$$15); - ZVAL_UNDEF(&tables); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&distinct); - ZVAL_UNDEF(&joins); - ZVAL_UNDEF(&where); - ZVAL_UNDEF(&escapeChar); - ZVAL_UNDEF(&groupBy); - ZVAL_UNDEF(&having); - ZVAL_UNDEF(&orderBy); - ZVAL_UNDEF(&limit); - ZVAL_UNDEF(&forUpdate); - ZVAL_UNDEF(&bindCounts); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6$$10); - ZVAL_UNDEF(&_7$$10); - ZVAL_UNDEF(&_8$$10); - ZVAL_UNDEF(&_10$$11); - ZVAL_UNDEF(&_11$$11); - ZVAL_UNDEF(&_13$$12); - ZVAL_UNDEF(&_14$$12); - ZVAL_UNDEF(&_16$$13); - ZVAL_UNDEF(&_17$$13); - ZVAL_UNDEF(&_19$$14); - ZVAL_UNDEF(&_20$$14); + ZVAL_UNDEF(&templateAfter_sub); + ZVAL_UNDEF(&_0$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(definition) + Z_PARAM_ZVAL(templateAfter) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &definition_param); - ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); + zephir_fetch_params(1, 1, 0, &templateAfter); - ZEPHIR_OBS_VAR(&tables); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&tables, &definition, SL("tables"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'tables' is required in the definition array", "phalcon/Db/Dialect.zep", 477); - return; - } - ZEPHIR_OBS_VAR(&columns); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&columns, &definition, SL("columns"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/Db/Dialect.zep", 483); - return; - } - ZEPHIR_OBS_VAR(&distinct); - if (zephir_array_isset_string_fetch(&distinct, &definition, SL("distinct"), 0)) { - ZEPHIR_INIT_VAR(&sql); - if (zephir_is_true(&distinct)) { - ZVAL_STRING(&sql, "SELECT DISTINCT"); - } else { - ZVAL_STRING(&sql, "SELECT ALL"); - } + if (Z_TYPE_P(templateAfter) != IS_ARRAY) { + ZEPHIR_INIT_VAR(&_0$$3); + zephir_create_array(&_0$$3, 1, 0); + zephir_array_fast_append(&_0$$3, templateAfter); + zephir_update_property_zval(this_ptr, ZEND_STRL("templatesAfter"), &_0$$3); } else { - ZEPHIR_INIT_NVAR(&sql); - ZVAL_STRING(&sql, "SELECT"); - } - ZEPHIR_OBS_VAR(&bindCounts); - zephir_array_isset_string_fetch(&bindCounts, &definition, SL("bindCounts"), 0); - if (Z_TYPE_P(&bindCounts) != IS_ARRAY) { - ZEPHIR_INIT_NVAR(&bindCounts); - array_init(&bindCounts); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("escapeChar"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&escapeChar, &_0); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getcolumnlist", NULL, 67, &columns, &escapeChar, &bindCounts); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - ZEPHIR_CONCAT_SV(&_2, " ", &_1); - zephir_concat_self(&sql, &_2); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "getsqlexpressionfrom", NULL, 68, &tables, &escapeChar); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_4); - ZEPHIR_CONCAT_SV(&_4, " ", &_3); - zephir_concat_self(&sql, &_4); - ZEPHIR_OBS_VAR(&joins); - _5 = zephir_array_isset_string_fetch(&joins, &definition, SL("joins"), 0); - if (_5) { - _5 = zephir_is_true(&joins); - } - if (_5) { - zephir_array_fetch_string(&_7$$10, &definition, SL("joins"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 517); - ZEPHIR_CALL_METHOD(&_6$$10, this_ptr, "getsqlexpressionjoins", NULL, 69, &_7$$10, &escapeChar, &bindCounts); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_8$$10); - ZEPHIR_CONCAT_SV(&_8$$10, " ", &_6$$10); - zephir_concat_self(&sql, &_8$$10); - } - ZEPHIR_OBS_VAR(&where); - _9 = zephir_array_isset_string_fetch(&where, &definition, SL("where"), 0); - if (_9) { - _9 = zephir_is_true(&where); - } - if (_9) { - ZEPHIR_CALL_METHOD(&_10$$11, this_ptr, "getsqlexpressionwhere", NULL, 70, &where, &escapeChar, &bindCounts); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_11$$11); - ZEPHIR_CONCAT_SV(&_11$$11, " ", &_10$$11); - zephir_concat_self(&sql, &_11$$11); - } - ZEPHIR_OBS_VAR(&groupBy); - _12 = zephir_array_isset_string_fetch(&groupBy, &definition, SL("group"), 0); - if (_12) { - _12 = zephir_is_true(&groupBy); - } - if (_12) { - ZEPHIR_CALL_METHOD(&_13$$12, this_ptr, "getsqlexpressiongroupby", NULL, 71, &groupBy, &escapeChar); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_14$$12); - ZEPHIR_CONCAT_SV(&_14$$12, " ", &_13$$12); - zephir_concat_self(&sql, &_14$$12); - } - ZEPHIR_OBS_VAR(&having); - _15 = zephir_array_isset_string_fetch(&having, &definition, SL("having"), 0); - if (_15) { - _15 = zephir_is_true(&having); - } - if (_15) { - ZEPHIR_CALL_METHOD(&_16$$13, this_ptr, "getsqlexpressionhaving", NULL, 72, &having, &escapeChar, &bindCounts); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_17$$13); - ZEPHIR_CONCAT_SV(&_17$$13, " ", &_16$$13); - zephir_concat_self(&sql, &_17$$13); - } - ZEPHIR_OBS_VAR(&orderBy); - _18 = zephir_array_isset_string_fetch(&orderBy, &definition, SL("order"), 0); - if (_18) { - _18 = zephir_is_true(&orderBy); - } - if (_18) { - ZEPHIR_CALL_METHOD(&_19$$14, this_ptr, "getsqlexpressionorderby", NULL, 73, &orderBy, &escapeChar, &bindCounts); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_20$$14); - ZEPHIR_CONCAT_SV(&_20$$14, " ", &_19$$14); - zephir_concat_self(&sql, &_20$$14); - } - ZEPHIR_OBS_VAR(&limit); - _21 = zephir_array_isset_string_fetch(&limit, &definition, SL("limit"), 0); - if (_21) { - _21 = zephir_is_true(&limit); - } - if (_21) { - ZEPHIR_INIT_VAR(&_22$$15); - zephir_create_array(&_22$$15, 2, 0); - zephir_array_update_string(&_22$$15, SL("sql"), &sql, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_22$$15, SL("value"), &limit, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&sql, this_ptr, "getsqlexpressionlimit", NULL, 74, &_22$$15, &escapeChar, &bindCounts); - zephir_check_call_status(); - } - _23 = zephir_array_isset_string_fetch(&forUpdate, &definition, SL("forUpdate"), 1); - if (_23) { - _23 = zephir_is_true(&forUpdate); - } - if (_23) { - zephir_concat_self_str(&sql, SL(" FOR UPDATE")); + zephir_update_property_zval(this_ptr, ZEND_STRL("templatesAfter"), templateAfter); } - RETURN_CCTOR(&sql); -} - -static PHP_METHOD(Phalcon_Db_Dialect, supportsSavepoints) -{ - zval *this_ptr = getThis(); - - - - RETURN_BOOL(1); -} - -static PHP_METHOD(Phalcon_Db_Dialect, supportsReleaseSavepoints) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - - - ZEPHIR_MM_GROW(); - - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "supportssavepoints", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Dialect, getColumnSize) +static PHP_METHOD(Phalcon_Mvc_View, setTemplateBefore) { + zval _0$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *column, column_sub, _0; + zval *templateBefore, templateBefore_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&column_sub); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&templateBefore_sub); + ZVAL_UNDEF(&_0$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + Z_PARAM_ZVAL(templateBefore) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &column); + zephir_fetch_params(1, 1, 0, &templateBefore); - ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVS(return_value, "(", &_0, ")"); - RETURN_MM(); + if (Z_TYPE_P(templateBefore) != IS_ARRAY) { + ZEPHIR_INIT_VAR(&_0$$3); + zephir_create_array(&_0$$3, 1, 0); + zephir_array_fast_append(&_0$$3, templateBefore); + zephir_update_property_zval(this_ptr, ZEND_STRL("templatesBefore"), &_0$$3); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("templatesBefore"), templateBefore); + } + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Dialect, getColumnSizeAndScale) +static PHP_METHOD(Phalcon_Mvc_View, setVar) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *column, column_sub, _0, _1; + zval *key_param = NULL, *value, value_sub; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&column_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(key) + Z_PARAM_ZVAL(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &column); + zephir_fetch_params(1, 2, 0, &key_param, &value); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } - ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, column, "getscale", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVS(return_value, "(", &_0, ",", &_1, ")"); - RETURN_MM(); + zephir_update_property_array(this_ptr, SL("viewParams"), &key, value); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Dialect, checkColumnType) +static PHP_METHOD(Phalcon_Mvc_View, setVars) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *column, column_sub, _0; + zend_bool merge; + zval *params_param = NULL, *merge_param = NULL, _0$$3, _1$$3; + zval params; zval *this_ptr = getThis(); - ZVAL_UNDEF(&column_sub); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(params) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(merge) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &column); + zephir_fetch_params(1, 1, 1, ¶ms_param, &merge_param); + ZEPHIR_OBS_COPY_OR_DUP(¶ms, params_param); + if (!merge_param) { + merge = 1; + } else { + merge = zephir_get_boolval(merge_param); + } - ZEPHIR_CALL_METHOD(&_0, column, "gettype", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&_0) == IS_STRING) { - ZEPHIR_RETURN_CALL_METHOD(column, "gettypereference", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); + if (merge) { + ZEPHIR_INIT_VAR(&_0$$3); + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); + zephir_fast_array_merge(&_0$$3, &_1$$3, ¶ms); + zephir_update_property_zval(this_ptr, ZEND_STRL("viewParams"), &_0$$3); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("viewParams"), ¶ms); } - ZEPHIR_RETURN_CALL_METHOD(column, "gettype", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Dialect, checkColumnTypeSql) +static PHP_METHOD(Phalcon_Mvc_View, setViewsDir) { + zend_string *_6$$5; + zend_ulong _5$$5; + zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *column, column_sub, _0; + zephir_fcall_cache_entry *_2 = NULL; + zval *viewsDir, viewsDir_sub, position, directory, newViewsDir, _1$$4, *_3$$5, _4$$5, _7$$6, _8$$8; zval *this_ptr = getThis(); - ZVAL_UNDEF(&column_sub); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&viewsDir_sub); + ZVAL_UNDEF(&position); + ZVAL_UNDEF(&directory); + ZVAL_UNDEF(&newViewsDir); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_8$$8); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + Z_PARAM_ZVAL(viewsDir) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &column); + zephir_fetch_params(1, 1, 0, &viewsDir); - ZEPHIR_CALL_METHOD(&_0, column, "gettype", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&_0) != IS_STRING) { - RETURN_MM_STRING(""); + _0 = Z_TYPE_P(viewsDir) != IS_STRING; + if (_0) { + _0 = Z_TYPE_P(viewsDir) != IS_ARRAY; } - ZEPHIR_RETURN_CALL_METHOD(column, "gettype", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); + if (_0) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Views directory must be a string or an array", "phalcon/Mvc/View.zep", 949); + return; + } + if (Z_TYPE_P(viewsDir) == IS_STRING) { + ZEPHIR_CALL_CE_STATIC(&_1$$4, phalcon_helper_str_ce, "dirseparator", &_2, 129, viewsDir); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("viewsDirs"), &_1$$4); + } else { + ZEPHIR_INIT_VAR(&newViewsDir); + array_init(&newViewsDir); + zephir_is_iterable(viewsDir, 0, "phalcon/Mvc/View.zep", 967); + if (Z_TYPE_P(viewsDir) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(viewsDir), _5$$5, _6$$5, _3$$5) + { + ZEPHIR_INIT_NVAR(&position); + if (_6$$5 != NULL) { + ZVAL_STR_COPY(&position, _6$$5); + } else { + ZVAL_LONG(&position, _5$$5); + } + ZEPHIR_INIT_NVAR(&directory); + ZVAL_COPY(&directory, _3$$5); + if (Z_TYPE_P(&directory) != IS_STRING) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Views directory item must be a string", "phalcon/Mvc/View.zep", 961); + return; + } + ZEPHIR_CALL_CE_STATIC(&_7$$6, phalcon_helper_str_ce, "dirseparator", &_2, 129, &directory); + zephir_check_call_status(); + zephir_array_update_zval(&newViewsDir, &position, &_7$$6, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, viewsDir, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_4$$5, viewsDir, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_4$$5)) { + break; + } + ZEPHIR_CALL_METHOD(&position, viewsDir, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&directory, viewsDir, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&directory) != IS_STRING) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Views directory item must be a string", "phalcon/Mvc/View.zep", 961); + return; + } + ZEPHIR_CALL_CE_STATIC(&_8$$8, phalcon_helper_str_ce, "dirseparator", &_2, 129, &directory); + zephir_check_call_status(); + zephir_array_update_zval(&newViewsDir, &position, &_8$$8, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, viewsDir, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&directory); + ZEPHIR_INIT_NVAR(&position); + zephir_update_property_zval(this_ptr, ZEND_STRL("viewsDirs"), &newViewsDir); + } + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionAll) +static PHP_METHOD(Phalcon_Mvc_View, start) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval __$null; zend_long ZEPHIR_LAST_CALL_STATUS; - zval escapeChar; - zval *expression_param = NULL, *escapeChar_param = NULL, domain, _0; - zval expression; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expression); - ZVAL_UNDEF(&domain); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&escapeChar); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(expression) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_NULL(&__$null); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); - ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); - } else { - zephir_get_strval(&escapeChar, escapeChar_param); - } - - ZEPHIR_OBS_VAR(&domain); - zephir_array_isset_string_fetch(&domain, &expression, SL("domain"), 0); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "*"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparequalified", NULL, 0, &_0, &domain, &escapeChar); + ZEPHIR_CALL_FUNCTION(NULL, "ob_start", NULL, 388); zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("content"), &__$null); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionBinaryOperations) +static PHP_METHOD(Phalcon_Mvc_View, toString) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval escapeChar; - zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, left, right, _0, _1, _2; - zval expression, bindCounts; + zval params; + zval *controllerName_param = NULL, *actionName_param = NULL, *params_param = NULL, result, _0; + zval controllerName, actionName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expression); - ZVAL_UNDEF(&bindCounts); - ZVAL_UNDEF(&left); - ZVAL_UNDEF(&right); + ZVAL_UNDEF(&controllerName); + ZVAL_UNDEF(&actionName); + ZVAL_UNDEF(&result); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&escapeChar); + ZVAL_UNDEF(¶ms); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ARRAY(expression) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(controllerName) + Z_PARAM_STR(actionName) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) - Z_PARAM_ARRAY(bindCounts) + Z_PARAM_ARRAY(params) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); - ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); + zephir_fetch_params(1, 2, 1, &controllerName_param, &actionName_param, ¶ms_param); + if (UNEXPECTED(Z_TYPE_P(controllerName_param) != IS_STRING && Z_TYPE_P(controllerName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'controllerName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(controllerName_param) == IS_STRING)) { + zephir_get_strval(&controllerName, controllerName_param); } else { - zephir_get_strval(&escapeChar, escapeChar_param); + ZEPHIR_INIT_VAR(&controllerName); } - if (!bindCounts_param) { - ZEPHIR_INIT_VAR(&bindCounts); - array_init(&bindCounts); + if (UNEXPECTED(Z_TYPE_P(actionName_param) != IS_STRING && Z_TYPE_P(actionName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'actionName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(actionName_param) == IS_STRING)) { + zephir_get_strval(&actionName, actionName_param); } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + ZEPHIR_INIT_VAR(&actionName); + } + if (!params_param) { + ZEPHIR_INIT_VAR(¶ms); + array_init(¶ms); + } else { + zephir_get_arrval(¶ms, params_param); } - zephir_array_fetch_string(&_0, &expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 654); - ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", NULL, 0, &_0, &escapeChar, &bindCounts); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "start", NULL, 0); zephir_check_call_status(); - zephir_array_fetch_string(&_1, &expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 660); - ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", NULL, 59, &_1, &escapeChar, &bindCounts); + ZVAL_BOOL(&_0, 0); + ZEPHIR_CALL_METHOD(&result, this_ptr, "processrender", NULL, 0, &controllerName, &actionName, ¶ms, &_0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "finish", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&result))) { + RETURN_MM_STRING(""); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getcontent", NULL, 0); zephir_check_call_status(); - zephir_array_fetch_string(&_2, &expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 665); - ZEPHIR_CONCAT_VSVSV(return_value, &left, " ", &_2, " ", &right); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionCase) +static PHP_METHOD(Phalcon_Mvc_View, engineRender) { + zend_string *_9$$3, *_28$$16; + zend_ulong _8$$3, _27$$16; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_5 = NULL, *_13 = NULL, *_16 = NULL, *_20 = NULL, *_23 = NULL, *_32 = NULL, *_35 = NULL, *_39 = NULL, *_42 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval escapeChar, sql; - zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, whenClause, _0, _1, _2, _3, *_4, _5, _6$$3, _7$$4, _8$$4, _9$$4, _10$$4, _11$$4, _12$$5, _13$$5, _14$$5, _15$$6, _16$$7, _17$$7, _18$$7, _19$$7, _20$$7, _21$$8, _22$$8, _23$$8; - zval expression, bindCounts; + zend_bool silence, mustClean; + zval viewPath, _45$$30; + zval *engines_param = NULL, *viewPath_param = NULL, *silence_param = NULL, *mustClean_param = NULL, basePath, engine, eventsManager, extension, viewsDir, viewsDirPath, viewEnginePath, viewEnginePaths, viewParams, _0, _1, *_2, _3, _4$$3, *_6$$3, _7$$3, _11$$8, _12$$8, _14$$7, _15$$10, _18$$13, _19$$13, _21$$12, _22$$15, _24$$16, *_25$$16, _26$$16, _30$$21, _31$$21, _33$$20, _34$$23, _37$$26, _38$$26, _40$$25, _41$$28, _43$$29, _44$$30; + zval engines, _10$$8, _17$$13, _29$$21, _36$$26; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expression); - ZVAL_UNDEF(&bindCounts); - ZVAL_UNDEF(&whenClause); + ZVAL_UNDEF(&engines); + ZVAL_UNDEF(&_10$$8); + ZVAL_UNDEF(&_17$$13); + ZVAL_UNDEF(&_29$$21); + ZVAL_UNDEF(&_36$$26); + ZVAL_UNDEF(&basePath); + ZVAL_UNDEF(&engine); + ZVAL_UNDEF(&eventsManager); + ZVAL_UNDEF(&extension); + ZVAL_UNDEF(&viewsDir); + ZVAL_UNDEF(&viewsDirPath); + ZVAL_UNDEF(&viewEnginePath); + ZVAL_UNDEF(&viewEnginePaths); + ZVAL_UNDEF(&viewParams); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_8$$4); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_10$$4); - ZVAL_UNDEF(&_11$$4); - ZVAL_UNDEF(&_12$$5); - ZVAL_UNDEF(&_13$$5); - ZVAL_UNDEF(&_14$$5); - ZVAL_UNDEF(&_15$$6); - ZVAL_UNDEF(&_16$$7); - ZVAL_UNDEF(&_17$$7); - ZVAL_UNDEF(&_18$$7); - ZVAL_UNDEF(&_19$$7); - ZVAL_UNDEF(&_20$$7); - ZVAL_UNDEF(&_21$$8); - ZVAL_UNDEF(&_22$$8); - ZVAL_UNDEF(&_23$$8); - ZVAL_UNDEF(&escapeChar); - ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_11$$8); + ZVAL_UNDEF(&_12$$8); + ZVAL_UNDEF(&_14$$7); + ZVAL_UNDEF(&_15$$10); + ZVAL_UNDEF(&_18$$13); + ZVAL_UNDEF(&_19$$13); + ZVAL_UNDEF(&_21$$12); + ZVAL_UNDEF(&_22$$15); + ZVAL_UNDEF(&_24$$16); + ZVAL_UNDEF(&_26$$16); + ZVAL_UNDEF(&_30$$21); + ZVAL_UNDEF(&_31$$21); + ZVAL_UNDEF(&_33$$20); + ZVAL_UNDEF(&_34$$23); + ZVAL_UNDEF(&_37$$26); + ZVAL_UNDEF(&_38$$26); + ZVAL_UNDEF(&_40$$25); + ZVAL_UNDEF(&_41$$28); + ZVAL_UNDEF(&_43$$29); + ZVAL_UNDEF(&_44$$30); + ZVAL_UNDEF(&viewPath); + ZVAL_UNDEF(&_45$$30); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ARRAY(expression) + ZEND_PARSE_PARAMETERS_START(3, 4) + Z_PARAM_ARRAY(engines) + Z_PARAM_STR(viewPath) + Z_PARAM_BOOL(silence) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) - Z_PARAM_ARRAY(bindCounts) + Z_PARAM_BOOL(mustClean) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); - ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); - } else { - zephir_get_strval(&escapeChar, escapeChar_param); - } - if (!bindCounts_param) { - ZEPHIR_INIT_VAR(&bindCounts); - array_init(&bindCounts); + zephir_fetch_params(1, 3, 1, &engines_param, &viewPath_param, &silence_param, &mustClean_param); + zephir_get_arrval(&engines, engines_param); + zephir_get_strval(&viewPath, viewPath_param); + silence = zephir_get_boolval(silence_param); + if (!mustClean_param) { + mustClean = 1; } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + mustClean = zephir_get_boolval(mustClean_param); } - zephir_array_fetch_string(&_1, &expression, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 682); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getsqlexpression", NULL, 0, &_1, &escapeChar, &bindCounts); + zephir_read_property(&_0, this_ptr, ZEND_STRL("basePath"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&basePath, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&viewParams, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_0); + ZEPHIR_INIT_VAR(&viewEnginePaths); + array_init(&viewEnginePaths); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getviewsdirs", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - ZEPHIR_CONCAT_SV(&_2, "CASE ", &_0); - zephir_get_strval(&sql, &_2); - zephir_array_fetch_string(&_3, &expression, SL("when-clauses"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 684); - zephir_is_iterable(&_3, 0, "phalcon/Db/Dialect.zep", 695); - if (Z_TYPE_P(&_3) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_3), _4) + zephir_is_iterable(&_1, 0, "phalcon/Mvc/View.zep", 1073); + if (Z_TYPE_P(&_1) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_1), _2) { - ZEPHIR_INIT_NVAR(&whenClause); - ZVAL_COPY(&whenClause, _4); - zephir_array_fetch_string(&_6$$3, &whenClause, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 685); - if (ZEPHIR_IS_STRING(&_6$$3, "when")) { - zephir_array_fetch_string(&_8$$4, &whenClause, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 687); - ZEPHIR_CALL_METHOD(&_7$$4, this_ptr, "getsqlexpression", NULL, 59, &_8$$4, &escapeChar, &bindCounts); - zephir_check_call_status(); - zephir_array_fetch_string(&_10$$4, &whenClause, SL("then"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 689); - ZEPHIR_CALL_METHOD(&_9$$4, this_ptr, "getsqlexpression", NULL, 59, &_10$$4, &escapeChar, &bindCounts); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_11$$4); - ZEPHIR_CONCAT_SVSV(&_11$$4, " WHEN ", &_7$$4, " THEN ", &_9$$4); - zephir_concat_self(&sql, &_11$$4); + ZEPHIR_INIT_NVAR(&viewsDir); + ZVAL_COPY(&viewsDir, _2); + ZEPHIR_CALL_METHOD(&_4$$3, this_ptr, "isabsolutepath", &_5, 498, &viewPath); + zephir_check_call_status(); + if (!(zephir_is_true(&_4$$3))) { + ZEPHIR_INIT_NVAR(&viewsDirPath); + ZEPHIR_CONCAT_VVV(&viewsDirPath, &basePath, &viewsDir, &viewPath); } else { - zephir_array_fetch_string(&_13$$5, &whenClause, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 691); - ZEPHIR_CALL_METHOD(&_12$$5, this_ptr, "getsqlexpression", NULL, 59, &_13$$5, &escapeChar, &bindCounts); + ZEPHIR_CPY_WRT(&viewsDirPath, &viewPath); + } + zephir_is_iterable(&engines, 0, "phalcon/Mvc/View.zep", 1068); + if (Z_TYPE_P(&engines) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&engines), _8$$3, _9$$3, _6$$3) + { + ZEPHIR_INIT_NVAR(&extension); + if (_9$$3 != NULL) { + ZVAL_STR_COPY(&extension, _9$$3); + } else { + ZVAL_LONG(&extension, _8$$3); + } + ZEPHIR_INIT_NVAR(&engine); + ZVAL_COPY(&engine, _6$$3); + ZEPHIR_INIT_NVAR(&viewEnginePath); + ZEPHIR_CONCAT_VV(&viewEnginePath, &viewsDirPath, &extension); + if ((zephir_file_exists(&viewEnginePath) == SUCCESS)) { + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_10$$8); + zephir_create_array(&_10$$8, 1, 0); + zephir_array_fast_append(&_10$$8, &viewEnginePath); + zephir_update_property_zval(this_ptr, ZEND_STRL("activeRenderPaths"), &_10$$8); + ZEPHIR_INIT_NVAR(&_12$$8); + ZVAL_STRING(&_12$$8, "view:beforeRenderView"); + ZEPHIR_CALL_METHOD(&_11$$8, &eventsManager, "fire", &_13, 0, &_12$$8, this_ptr, &viewEnginePath); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_11$$8)) { + continue; + } + } + if (mustClean) { + ZVAL_BOOL(&_14$$7, 1); + } else { + ZVAL_BOOL(&_14$$7, 0); + } + ZEPHIR_CALL_METHOD(NULL, &engine, "render", NULL, 0, &viewEnginePath, &viewParams, &_14$$7); + zephir_check_call_status(); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_15$$10); + ZVAL_STRING(&_15$$10, "view:afterRenderView"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_16, 0, &_15$$10, this_ptr); + zephir_check_call_status(); + } + RETURN_MM_NULL(); + } + zephir_array_append(&viewEnginePaths, &viewEnginePath, PH_SEPARATE, "phalcon/Mvc/View.zep", 1066); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &engines, "rewind", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_14$$5); - ZEPHIR_CONCAT_SV(&_14$$5, " ELSE ", &_12$$5); - zephir_concat_self(&sql, &_14$$5); + while (1) { + ZEPHIR_CALL_METHOD(&_7$$3, &engines, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_7$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&extension, &engines, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&engine, &engines, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&viewEnginePath); + ZEPHIR_CONCAT_VV(&viewEnginePath, &viewsDirPath, &extension); + if ((zephir_file_exists(&viewEnginePath) == SUCCESS)) { + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_17$$13); + zephir_create_array(&_17$$13, 1, 0); + zephir_array_fast_append(&_17$$13, &viewEnginePath); + zephir_update_property_zval(this_ptr, ZEND_STRL("activeRenderPaths"), &_17$$13); + ZEPHIR_INIT_NVAR(&_19$$13); + ZVAL_STRING(&_19$$13, "view:beforeRenderView"); + ZEPHIR_CALL_METHOD(&_18$$13, &eventsManager, "fire", &_20, 0, &_19$$13, this_ptr, &viewEnginePath); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_18$$13)) { + continue; + } + } + if (mustClean) { + ZVAL_BOOL(&_21$$12, 1); + } else { + ZVAL_BOOL(&_21$$12, 0); + } + ZEPHIR_CALL_METHOD(NULL, &engine, "render", NULL, 0, &viewEnginePath, &viewParams, &_21$$12); + zephir_check_call_status(); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_22$$15); + ZVAL_STRING(&_22$$15, "view:afterRenderView"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_23, 0, &_22$$15, this_ptr); + zephir_check_call_status(); + } + RETURN_MM_NULL(); + } + zephir_array_append(&viewEnginePaths, &viewEnginePath, PH_SEPARATE, "phalcon/Mvc/View.zep", 1066); + ZEPHIR_CALL_METHOD(NULL, &engines, "next", NULL, 0); + zephir_check_call_status(); + } } + ZEPHIR_INIT_NVAR(&engine); + ZEPHIR_INIT_NVAR(&extension); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &_3, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &_1, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_5, &_3, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_3, &_1, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_5)) { + if (!zend_is_true(&_3)) { break; } - ZEPHIR_CALL_METHOD(&whenClause, &_3, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&viewsDir, &_1, "current", NULL, 0); zephir_check_call_status(); - zephir_array_fetch_string(&_15$$6, &whenClause, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 685); - if (ZEPHIR_IS_STRING(&_15$$6, "when")) { - zephir_array_fetch_string(&_17$$7, &whenClause, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 687); - ZEPHIR_CALL_METHOD(&_16$$7, this_ptr, "getsqlexpression", NULL, 59, &_17$$7, &escapeChar, &bindCounts); - zephir_check_call_status(); - zephir_array_fetch_string(&_19$$7, &whenClause, SL("then"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 689); - ZEPHIR_CALL_METHOD(&_18$$7, this_ptr, "getsqlexpression", NULL, 59, &_19$$7, &escapeChar, &bindCounts); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_20$$7); - ZEPHIR_CONCAT_SVSV(&_20$$7, " WHEN ", &_16$$7, " THEN ", &_18$$7); - zephir_concat_self(&sql, &_20$$7); + ZEPHIR_CALL_METHOD(&_24$$16, this_ptr, "isabsolutepath", &_5, 498, &viewPath); + zephir_check_call_status(); + if (!(zephir_is_true(&_24$$16))) { + ZEPHIR_INIT_NVAR(&viewsDirPath); + ZEPHIR_CONCAT_VVV(&viewsDirPath, &basePath, &viewsDir, &viewPath); } else { - zephir_array_fetch_string(&_22$$8, &whenClause, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 691); - ZEPHIR_CALL_METHOD(&_21$$8, this_ptr, "getsqlexpression", NULL, 59, &_22$$8, &escapeChar, &bindCounts); + ZEPHIR_CPY_WRT(&viewsDirPath, &viewPath); + } + zephir_is_iterable(&engines, 0, "phalcon/Mvc/View.zep", 1068); + if (Z_TYPE_P(&engines) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&engines), _27$$16, _28$$16, _25$$16) + { + ZEPHIR_INIT_NVAR(&extension); + if (_28$$16 != NULL) { + ZVAL_STR_COPY(&extension, _28$$16); + } else { + ZVAL_LONG(&extension, _27$$16); + } + ZEPHIR_INIT_NVAR(&engine); + ZVAL_COPY(&engine, _25$$16); + ZEPHIR_INIT_NVAR(&viewEnginePath); + ZEPHIR_CONCAT_VV(&viewEnginePath, &viewsDirPath, &extension); + if ((zephir_file_exists(&viewEnginePath) == SUCCESS)) { + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_29$$21); + zephir_create_array(&_29$$21, 1, 0); + zephir_array_fast_append(&_29$$21, &viewEnginePath); + zephir_update_property_zval(this_ptr, ZEND_STRL("activeRenderPaths"), &_29$$21); + ZEPHIR_INIT_NVAR(&_31$$21); + ZVAL_STRING(&_31$$21, "view:beforeRenderView"); + ZEPHIR_CALL_METHOD(&_30$$21, &eventsManager, "fire", &_32, 0, &_31$$21, this_ptr, &viewEnginePath); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_30$$21)) { + continue; + } + } + if (mustClean) { + ZVAL_BOOL(&_33$$20, 1); + } else { + ZVAL_BOOL(&_33$$20, 0); + } + ZEPHIR_CALL_METHOD(NULL, &engine, "render", NULL, 0, &viewEnginePath, &viewParams, &_33$$20); + zephir_check_call_status(); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_34$$23); + ZVAL_STRING(&_34$$23, "view:afterRenderView"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_35, 0, &_34$$23, this_ptr); + zephir_check_call_status(); + } + RETURN_MM_NULL(); + } + zephir_array_append(&viewEnginePaths, &viewEnginePath, PH_SEPARATE, "phalcon/Mvc/View.zep", 1066); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &engines, "rewind", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_23$$8); - ZEPHIR_CONCAT_SV(&_23$$8, " ELSE ", &_21$$8); - zephir_concat_self(&sql, &_23$$8); + while (1) { + ZEPHIR_CALL_METHOD(&_26$$16, &engines, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_26$$16)) { + break; + } + ZEPHIR_CALL_METHOD(&extension, &engines, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&engine, &engines, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&viewEnginePath); + ZEPHIR_CONCAT_VV(&viewEnginePath, &viewsDirPath, &extension); + if ((zephir_file_exists(&viewEnginePath) == SUCCESS)) { + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_36$$26); + zephir_create_array(&_36$$26, 1, 0); + zephir_array_fast_append(&_36$$26, &viewEnginePath); + zephir_update_property_zval(this_ptr, ZEND_STRL("activeRenderPaths"), &_36$$26); + ZEPHIR_INIT_NVAR(&_38$$26); + ZVAL_STRING(&_38$$26, "view:beforeRenderView"); + ZEPHIR_CALL_METHOD(&_37$$26, &eventsManager, "fire", &_39, 0, &_38$$26, this_ptr, &viewEnginePath); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_37$$26)) { + continue; + } + } + if (mustClean) { + ZVAL_BOOL(&_40$$25, 1); + } else { + ZVAL_BOOL(&_40$$25, 0); + } + ZEPHIR_CALL_METHOD(NULL, &engine, "render", NULL, 0, &viewEnginePath, &viewParams, &_40$$25); + zephir_check_call_status(); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_41$$28); + ZVAL_STRING(&_41$$28, "view:afterRenderView"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_42, 0, &_41$$28, this_ptr); + zephir_check_call_status(); + } + RETURN_MM_NULL(); + } + zephir_array_append(&viewEnginePaths, &viewEnginePath, PH_SEPARATE, "phalcon/Mvc/View.zep", 1066); + ZEPHIR_CALL_METHOD(NULL, &engines, "next", NULL, 0); + zephir_check_call_status(); + } } - ZEPHIR_CALL_METHOD(NULL, &_3, "next", NULL, 0); + ZEPHIR_INIT_NVAR(&engine); + ZEPHIR_INIT_NVAR(&extension); + ZEPHIR_CALL_METHOD(NULL, &_1, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&whenClause); - ZEPHIR_CONCAT_VS(return_value, &sql, " END"); - RETURN_MM(); + ZEPHIR_INIT_NVAR(&viewsDir); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + zephir_update_property_zval(this_ptr, ZEND_STRL("activeRenderPaths"), &viewEnginePaths); + ZEPHIR_INIT_VAR(&_43$$29); + ZVAL_STRING(&_43$$29, "view:notFoundView"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_43$$29, this_ptr, &viewEnginePath); + zephir_check_call_status(); + } + if (!(silence)) { + ZEPHIR_INIT_VAR(&_44$$30); + object_init_ex(&_44$$30, phalcon_mvc_view_exception_ce); + ZEPHIR_INIT_VAR(&_45$$30); + ZEPHIR_CONCAT_SVS(&_45$$30, "View '", &viewPath, "' was not found in any of the views directory"); + ZEPHIR_CALL_METHOD(NULL, &_44$$30, "__construct", NULL, 8, &_45$$30); + zephir_check_call_status(); + zephir_throw_exception_debug(&_44$$30, "phalcon/Mvc/View.zep", 1082); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionCastValue) +static PHP_METHOD(Phalcon_Mvc_View, isAbsolutePath) { + unsigned char _6, _2$$3, _4$$3; + zend_bool _5, _1$$3, _3$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval escapeChar; - zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, left, right, _0, _1; - zval expression, bindCounts; + zval *path_param = NULL, _0; + zval path; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expression); - ZVAL_UNDEF(&bindCounts); - ZVAL_UNDEF(&left); - ZVAL_UNDEF(&right); + ZVAL_UNDEF(&path); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&escapeChar); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ARRAY(expression) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) - Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(path) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); - ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); - } else { - zephir_get_strval(&escapeChar, escapeChar_param); - } - if (!bindCounts_param) { - ZEPHIR_INIT_VAR(&bindCounts); - array_init(&bindCounts); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); - } + zephir_fetch_params(1, 1, 0, &path_param); + zephir_get_strval(&path, path_param); - zephir_array_fetch_string(&_0, &expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 712); - ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", NULL, 0, &_0, &escapeChar, &bindCounts); - zephir_check_call_status(); - zephir_array_fetch_string(&_1, &expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 718); - ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", NULL, 59, &_1, &escapeChar, &bindCounts); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVS(return_value, "CAST(", &left, " AS ", &right, ")"); - RETURN_MM(); + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_GET_CONSTANT(&_0, "PHP_OS"); + if (ZEPHIR_IS_STRING(&_0, "WINNT")) { + _1$$3 = zephir_fast_strlen_ev(&path) >= 3; + if (_1$$3) { + _2$$3 = ZEPHIR_STRING_OFFSET(&path, 1); + _1$$3 = _2$$3 == ':'; + } + _3$$3 = _1$$3; + if (_3$$3) { + _4$$3 = ZEPHIR_STRING_OFFSET(&path, 2); + _3$$3 = _4$$3 == '\\'; + } + RETURN_MM_BOOL(_3$$3); + } + _5 = zephir_fast_strlen_ev(&path) >= 1; + if (_5) { + _6 = ZEPHIR_STRING_OFFSET(&path, 0); + _5 = _6 == '/'; + } + RETURN_MM_BOOL(_5); } -static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionConvertValue) +static PHP_METHOD(Phalcon_Mvc_View, loadTemplateEngines) { + zval _18$$11, _24$$17; + zend_class_entry *_12$$9, *_20$$15; + zend_string *_10$$5; + zend_ulong _9$$5; + zval engines, di, registeredEngines, engineService, extension, _0, _1$$3, _2$$4, _3$$6, _4$$6, _6$$6, *_7$$5, _8$$5, _11$$9, _15$$12, _16$$12, _17$$11, _19$$15, _21$$18, _22$$18, _23$$17; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_5 = NULL, *_13 = NULL, *_14 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval escapeChar; - zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, left, right, _0, _1; - zval expression, bindCounts; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expression); - ZVAL_UNDEF(&bindCounts); - ZVAL_UNDEF(&left); - ZVAL_UNDEF(&right); + ZVAL_UNDEF(&engines); + ZVAL_UNDEF(&di); + ZVAL_UNDEF(®isteredEngines); + ZVAL_UNDEF(&engineService); + ZVAL_UNDEF(&extension); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&escapeChar); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ARRAY(expression) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) - Z_PARAM_ARRAY(bindCounts) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$6); + ZVAL_UNDEF(&_4$$6); + ZVAL_UNDEF(&_6$$6); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_11$$9); + ZVAL_UNDEF(&_15$$12); + ZVAL_UNDEF(&_16$$12); + ZVAL_UNDEF(&_17$$11); + ZVAL_UNDEF(&_19$$15); + ZVAL_UNDEF(&_21$$18); + ZVAL_UNDEF(&_22$$18); + ZVAL_UNDEF(&_23$$17); + ZVAL_UNDEF(&_18$$11); + ZVAL_UNDEF(&_24$$17); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); - ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); - } else { - zephir_get_strval(&escapeChar, escapeChar_param); - } - if (!bindCounts_param) { - ZEPHIR_INIT_VAR(&bindCounts); - array_init(&bindCounts); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); - } - - zephir_array_fetch_string(&_0, &expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 740); - ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", NULL, 0, &_0, &escapeChar, &bindCounts); - zephir_check_call_status(); - zephir_array_fetch_string(&_1, &expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 746); - ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", NULL, 59, &_1, &escapeChar, &bindCounts); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVS(return_value, "CONVERT(", &left, " USING ", &right, ")"); - RETURN_MM(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("engines"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&engines, &_0); + if (ZEPHIR_IS_FALSE_IDENTICAL(&engines)) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&di, &_1$$3); + ZEPHIR_INIT_NVAR(&engines); + array_init(&engines); + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("registeredEngines"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(®isteredEngines, &_1$$3); + if (ZEPHIR_IS_EMPTY(®isteredEngines)) { + ZEPHIR_INIT_VAR(&_2$$4); + object_init_ex(&_2$$4, phalcon_mvc_view_engine_php_ce); + ZEPHIR_CALL_METHOD(NULL, &_2$$4, "__construct", NULL, 499, this_ptr, &di); + zephir_check_call_status(); + zephir_array_update_string(&engines, SL(".phtml"), &_2$$4, PH_COPY | PH_SEPARATE); + } else { + if (Z_TYPE_P(&di) != IS_OBJECT) { + ZEPHIR_INIT_VAR(&_3$$6); + object_init_ex(&_3$$6, phalcon_mvc_view_exception_ce); + ZEPHIR_INIT_VAR(&_6$$6); + ZVAL_STRING(&_6$$6, "application services"); + ZEPHIR_CALL_CE_STATIC(&_4$$6, phalcon_mvc_view_exception_ce, "containerservicenotfound", &_5, 0, &_6$$6); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_3$$6, "__construct", NULL, 8, &_4$$6); + zephir_check_call_status(); + zephir_throw_exception_debug(&_3$$6, "phalcon/Mvc/View.zep", 1127); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_is_iterable(®isteredEngines, 0, "phalcon/Mvc/View.zep", 1164); + if (Z_TYPE_P(®isteredEngines) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(®isteredEngines), _9$$5, _10$$5, _7$$5) + { + ZEPHIR_INIT_NVAR(&extension); + if (_10$$5 != NULL) { + ZVAL_STR_COPY(&extension, _10$$5); + } else { + ZVAL_LONG(&extension, _9$$5); + } + ZEPHIR_INIT_NVAR(&engineService); + ZVAL_COPY(&engineService, _7$$5); + if (Z_TYPE_P(&engineService) == IS_OBJECT) { + if (zephir_is_instance_of(&engineService, SL("Closure"))) { + _12$$9 = zephir_fetch_class_str_ex(SL("Closure"), ZEND_FETCH_CLASS_AUTO); + ZEPHIR_CALL_CE_STATIC(&_11$$9, _12$$9, "bind", &_13, 0, &engineService, &di); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&engineService, &_11$$9); + ZEPHIR_CALL_FUNCTION(&_11$$9, "call_user_func", &_14, 255, &engineService, this_ptr); + zephir_check_call_status(); + zephir_array_update_zval(&engines, &extension, &_11$$9, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_zval(&engines, &extension, &engineService, PH_COPY | PH_SEPARATE); + } + } else { + if (Z_TYPE_P(&engineService) != IS_STRING) { + ZEPHIR_INIT_NVAR(&_15$$12); + object_init_ex(&_15$$12, phalcon_mvc_view_exception_ce); + ZEPHIR_INIT_NVAR(&_16$$12); + ZEPHIR_CONCAT_SV(&_16$$12, "Invalid template engine registration for extension: ", &extension); + ZEPHIR_CALL_METHOD(NULL, &_15$$12, "__construct", NULL, 8, &_16$$12); + zephir_check_call_status(); + zephir_throw_exception_debug(&_15$$12, "phalcon/Mvc/View.zep", 1155); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_NVAR(&_18$$11); + zephir_create_array(&_18$$11, 1, 0); + zephir_array_fast_append(&_18$$11, this_ptr); + ZEPHIR_CALL_METHOD(&_17$$11, &di, "get", NULL, 0, &engineService, &_18$$11); + zephir_check_call_status(); + zephir_array_update_zval(&engines, &extension, &_17$$11, PH_COPY | PH_SEPARATE); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, ®isteredEngines, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_8$$5, ®isteredEngines, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_8$$5)) { + break; + } + ZEPHIR_CALL_METHOD(&extension, ®isteredEngines, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&engineService, ®isteredEngines, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&engineService) == IS_OBJECT) { + if (zephir_is_instance_of(&engineService, SL("Closure"))) { + _20$$15 = zephir_fetch_class_str_ex(SL("Closure"), ZEND_FETCH_CLASS_AUTO); + ZEPHIR_CALL_CE_STATIC(&_19$$15, _20$$15, "bind", &_13, 0, &engineService, &di); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&engineService, &_19$$15); + ZEPHIR_CALL_FUNCTION(&_19$$15, "call_user_func", &_14, 255, &engineService, this_ptr); + zephir_check_call_status(); + zephir_array_update_zval(&engines, &extension, &_19$$15, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_zval(&engines, &extension, &engineService, PH_COPY | PH_SEPARATE); + } + } else { + if (Z_TYPE_P(&engineService) != IS_STRING) { + ZEPHIR_INIT_NVAR(&_21$$18); + object_init_ex(&_21$$18, phalcon_mvc_view_exception_ce); + ZEPHIR_INIT_NVAR(&_22$$18); + ZEPHIR_CONCAT_SV(&_22$$18, "Invalid template engine registration for extension: ", &extension); + ZEPHIR_CALL_METHOD(NULL, &_21$$18, "__construct", NULL, 8, &_22$$18); + zephir_check_call_status(); + zephir_throw_exception_debug(&_21$$18, "phalcon/Mvc/View.zep", 1155); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_NVAR(&_24$$17); + zephir_create_array(&_24$$17, 1, 0); + zephir_array_fast_append(&_24$$17, this_ptr); + ZEPHIR_CALL_METHOD(&_23$$17, &di, "get", NULL, 0, &engineService, &_24$$17); + zephir_check_call_status(); + zephir_array_update_zval(&engines, &extension, &_23$$17, PH_COPY | PH_SEPARATE); + } + ZEPHIR_CALL_METHOD(NULL, ®isteredEngines, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&engineService); + ZEPHIR_INIT_NVAR(&extension); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("engines"), &engines); + } + RETURN_CCTOR(&engines); } -static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionFrom) +static PHP_METHOD(Phalcon_Mvc_View, processRender) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval escapeChar; - zval *expression, expression_sub, *escapeChar_param = NULL, table, tables, *_0$$3, _1$$3, _5$$3, _2$$4, _4$$5; + zend_long ZEPHIR_LAST_CALL_STATUS, renderLevel = 0; + zend_bool fireEvents, silence = 0, _5, _30; + zval params; + zval *controllerName_param = NULL, *actionName_param = NULL, *params_param = NULL, *fireEvents_param = NULL, layoutsDir, layout, pickView, layoutName, engines, renderView, pickViewAction, eventsManager, disabledLevels, templatesBefore, templatesAfter, templateBefore, templateAfter, _0, _2, _4, _8, _9, _1$$3, _6$$11, _7$$11, _10$$15, _11$$17, *_12$$17, _13$$17, _14$$18, _15$$18, _16$$19, _17$$19, _18$$21, _19$$21, _20$$23, *_21$$23, _22$$23, _23$$24, _24$$24, _25$$25, _26$$25, _27$$27, _28$$27, _29$$13, _31$$28; + zval controllerName, actionName, _3$$7; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expression_sub); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&tables); + ZVAL_UNDEF(&controllerName); + ZVAL_UNDEF(&actionName); + ZVAL_UNDEF(&_3$$7); + ZVAL_UNDEF(&layoutsDir); + ZVAL_UNDEF(&layout); + ZVAL_UNDEF(&pickView); + ZVAL_UNDEF(&layoutName); + ZVAL_UNDEF(&engines); + ZVAL_UNDEF(&renderView); + ZVAL_UNDEF(&pickViewAction); + ZVAL_UNDEF(&eventsManager); + ZVAL_UNDEF(&disabledLevels); + ZVAL_UNDEF(&templatesBefore); + ZVAL_UNDEF(&templatesAfter); + ZVAL_UNDEF(&templateBefore); + ZVAL_UNDEF(&templateAfter); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9); ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&escapeChar); + ZVAL_UNDEF(&_6$$11); + ZVAL_UNDEF(&_7$$11); + ZVAL_UNDEF(&_10$$15); + ZVAL_UNDEF(&_11$$17); + ZVAL_UNDEF(&_13$$17); + ZVAL_UNDEF(&_14$$18); + ZVAL_UNDEF(&_15$$18); + ZVAL_UNDEF(&_16$$19); + ZVAL_UNDEF(&_17$$19); + ZVAL_UNDEF(&_18$$21); + ZVAL_UNDEF(&_19$$21); + ZVAL_UNDEF(&_20$$23); + ZVAL_UNDEF(&_22$$23); + ZVAL_UNDEF(&_23$$24); + ZVAL_UNDEF(&_24$$24); + ZVAL_UNDEF(&_25$$25); + ZVAL_UNDEF(&_26$$25); + ZVAL_UNDEF(&_27$$27); + ZVAL_UNDEF(&_28$$27); + ZVAL_UNDEF(&_29$$13); + ZVAL_UNDEF(&_31$$28); + ZVAL_UNDEF(¶ms); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(expression) + ZEND_PARSE_PARAMETERS_START(2, 4) + Z_PARAM_STR(controllerName) + Z_PARAM_STR(actionName) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) + Z_PARAM_ARRAY(params) + Z_PARAM_BOOL(fireEvents) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); + zephir_fetch_params(1, 2, 2, &controllerName_param, &actionName_param, ¶ms_param, &fireEvents_param); + if (UNEXPECTED(Z_TYPE_P(controllerName_param) != IS_STRING && Z_TYPE_P(controllerName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'controllerName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(controllerName_param) == IS_STRING)) { + zephir_get_strval(&controllerName, controllerName_param); } else { - zephir_get_strval(&escapeChar, escapeChar_param); + ZEPHIR_INIT_VAR(&controllerName); + } + if (UNEXPECTED(Z_TYPE_P(actionName_param) != IS_STRING && Z_TYPE_P(actionName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'actionName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(actionName_param) == IS_STRING)) { + zephir_get_strval(&actionName, actionName_param); + } else { + ZEPHIR_INIT_VAR(&actionName); + } + if (!params_param) { + ZEPHIR_INIT_VAR(¶ms); + array_init(¶ms); + } else { + zephir_get_arrval(¶ms, params_param); + } + if (!fireEvents_param) { + fireEvents = 1; + } else { + fireEvents = zephir_get_boolval(fireEvents_param); } - if (Z_TYPE_P(expression) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&tables); - array_init(&tables); - zephir_is_iterable(expression, 0, "phalcon/Db/Dialect.zep", 768); - if (Z_TYPE_P(expression) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(expression), _0$$3) - { - ZEPHIR_INIT_NVAR(&table); - ZVAL_COPY(&table, _0$$3); - ZEPHIR_CALL_METHOD(&_2$$4, this_ptr, "getsqltable", &_3, 75, &table, &escapeChar); - zephir_check_call_status(); - zephir_array_append(&tables, &_2$$4, PH_SEPARATE, "phalcon/Db/Dialect.zep", 765); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, expression, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1$$3, expression, "valid", NULL, 0); + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, 0); + zephir_update_property_zval(this_ptr, ZEND_STRL("currentRenderLevel"), &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("disabled"), PH_NOISY_CC | PH_READONLY); + if (!ZEPHIR_IS_FALSE_IDENTICAL(&_0)) { + ZEPHIR_CALL_FUNCTION(&_1$$3, "ob_get_contents", NULL, 500); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("content"), &_1$$3); + RETURN_MM_BOOL(0); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("controllerName"), &controllerName); + zephir_update_property_zval(this_ptr, ZEND_STRL("actionName"), &actionName); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setvars", NULL, 0, ¶ms); + zephir_check_call_status(); + zephir_read_property(&_2, this_ptr, ZEND_STRL("layoutsDir"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&layoutsDir, &_2); + if (!(zephir_is_true(&layoutsDir))) { + ZEPHIR_INIT_NVAR(&layoutsDir); + ZVAL_STRING(&layoutsDir, "layouts/"); + } + zephir_read_property(&_2, this_ptr, ZEND_STRL("layout"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&layout, &_2); + if (zephir_is_true(&layout)) { + ZEPHIR_CPY_WRT(&layoutName, &layout); + } else { + ZEPHIR_CPY_WRT(&layoutName, &controllerName); + } + ZEPHIR_CALL_METHOD(&engines, this_ptr, "loadtemplateengines", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_2, this_ptr, ZEND_STRL("pickView"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&pickView, &_2); + if (Z_TYPE_P(&pickView) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$7); + ZEPHIR_CONCAT_VSV(&_3$$7, &controllerName, "/", &actionName); + ZEPHIR_CPY_WRT(&renderView, &_3$$7); + } else { + ZEPHIR_OBS_NVAR(&renderView); + zephir_array_fetch_long(&renderView, &pickView, 0, PH_NOISY, "phalcon/Mvc/View.zep", 1242); + if (Z_TYPE_P(&layoutName) == IS_NULL) { + ZEPHIR_OBS_VAR(&pickViewAction); + if (zephir_array_isset_long_fetch(&pickViewAction, &pickView, 1, 0)) { + ZEPHIR_CPY_WRT(&layoutName, &pickViewAction); + } + } + } + zephir_read_property(&_2, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_2); + ZEPHIR_INIT_VAR(&_4); + ZEPHIR_CREATE_SYMBOL_TABLE(); + + _5 = fireEvents; + if (_5) { + _5 = Z_TYPE_P(&eventsManager) == IS_OBJECT; + } + if (_5) { + ZEPHIR_INIT_VAR(&_7$$11); + ZVAL_STRING(&_7$$11, "view:beforeRender"); + ZEPHIR_CALL_METHOD(&_6$$11, &eventsManager, "fire", NULL, 0, &_7$$11, this_ptr); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_6$$11)) { + RETURN_MM_BOOL(0); + } + } + ZEPHIR_CALL_FUNCTION(&_8, "ob_get_contents", NULL, 500); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("content"), &_8); + silence = 1; + zephir_read_property(&_2, this_ptr, ZEND_STRL("disabledLevels"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&disabledLevels, &_2); + ZEPHIR_OBS_VAR(&_9); + zephir_read_property(&_9, this_ptr, ZEND_STRL("renderLevel"), PH_NOISY_CC); + renderLevel = zephir_get_intval(&_9); + if (renderLevel) { + if (renderLevel >= 1) { + if (!(zephir_array_isset_long(&disabledLevels, 1))) { + ZEPHIR_INIT_ZVAL_NREF(_10$$15); + ZVAL_LONG(&_10$$15, 1); + zephir_update_property_zval(this_ptr, ZEND_STRL("currentRenderLevel"), &_10$$15); + if (silence) { + ZVAL_BOOL(&_10$$15, 1); + } else { + ZVAL_BOOL(&_10$$15, 0); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "enginerender", NULL, 0, &engines, &renderView, &_10$$15); zephir_check_call_status(); - if (!zend_is_true(&_1$$3)) { - break; + } + } + if (renderLevel >= 2) { + if (!(zephir_array_isset_long(&disabledLevels, 2))) { + ZEPHIR_INIT_ZVAL_NREF(_11$$17); + ZVAL_LONG(&_11$$17, 2); + zephir_update_property_zval(this_ptr, ZEND_STRL("currentRenderLevel"), &_11$$17); + zephir_read_property(&_11$$17, this_ptr, ZEND_STRL("templatesBefore"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&templatesBefore, &_11$$17); + silence = 0; + zephir_is_iterable(&templatesBefore, 0, "phalcon/Mvc/View.zep", 1318); + if (Z_TYPE_P(&templatesBefore) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&templatesBefore), _12$$17) + { + ZEPHIR_INIT_NVAR(&templateBefore); + ZVAL_COPY(&templateBefore, _12$$17); + ZEPHIR_INIT_NVAR(&_14$$18); + ZEPHIR_CONCAT_VV(&_14$$18, &layoutsDir, &templateBefore); + if (silence) { + ZVAL_BOOL(&_15$$18, 1); + } else { + ZVAL_BOOL(&_15$$18, 0); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "enginerender", NULL, 0, &engines, &_14$$18, &_15$$18); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &templatesBefore, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_13$$17, &templatesBefore, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_13$$17)) { + break; + } + ZEPHIR_CALL_METHOD(&templateBefore, &templatesBefore, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_16$$19); + ZEPHIR_CONCAT_VV(&_16$$19, &layoutsDir, &templateBefore); + if (silence) { + ZVAL_BOOL(&_17$$19, 1); + } else { + ZVAL_BOOL(&_17$$19, 0); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "enginerender", NULL, 0, &engines, &_16$$19, &_17$$19); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &templatesBefore, "next", NULL, 0); + zephir_check_call_status(); + } } - ZEPHIR_CALL_METHOD(&table, expression, "current", NULL, 0); + ZEPHIR_INIT_NVAR(&templateBefore); + silence = 1; + } + } + if (renderLevel >= 3) { + if (!(zephir_array_isset_long(&disabledLevels, 3))) { + ZEPHIR_INIT_ZVAL_NREF(_18$$21); + ZVAL_LONG(&_18$$21, 3); + zephir_update_property_zval(this_ptr, ZEND_STRL("currentRenderLevel"), &_18$$21); + ZEPHIR_INIT_VAR(&_19$$21); + ZEPHIR_CONCAT_VV(&_19$$21, &layoutsDir, &layoutName); + if (silence) { + ZVAL_BOOL(&_18$$21, 1); + } else { + ZVAL_BOOL(&_18$$21, 0); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "enginerender", NULL, 0, &engines, &_19$$21, &_18$$21); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_4$$5, this_ptr, "getsqltable", &_3, 75, &table, &escapeChar); + } + } + if (renderLevel >= 4) { + if (!(zephir_array_isset_long(&disabledLevels, 4))) { + ZEPHIR_INIT_ZVAL_NREF(_20$$23); + ZVAL_LONG(&_20$$23, 4); + zephir_update_property_zval(this_ptr, ZEND_STRL("currentRenderLevel"), &_20$$23); + zephir_read_property(&_20$$23, this_ptr, ZEND_STRL("templatesAfter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&templatesAfter, &_20$$23); + silence = 0; + zephir_is_iterable(&templatesAfter, 0, "phalcon/Mvc/View.zep", 1354); + if (Z_TYPE_P(&templatesAfter) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&templatesAfter), _21$$23) + { + ZEPHIR_INIT_NVAR(&templateAfter); + ZVAL_COPY(&templateAfter, _21$$23); + ZEPHIR_INIT_NVAR(&_23$$24); + ZEPHIR_CONCAT_VV(&_23$$24, &layoutsDir, &templateAfter); + if (silence) { + ZVAL_BOOL(&_24$$24, 1); + } else { + ZVAL_BOOL(&_24$$24, 0); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "enginerender", NULL, 0, &engines, &_23$$24, &_24$$24); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &templatesAfter, "rewind", NULL, 0); zephir_check_call_status(); - zephir_array_append(&tables, &_4$$5, PH_SEPARATE, "phalcon/Db/Dialect.zep", 765); - ZEPHIR_CALL_METHOD(NULL, expression, "next", NULL, 0); + while (1) { + ZEPHIR_CALL_METHOD(&_22$$23, &templatesAfter, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_22$$23)) { + break; + } + ZEPHIR_CALL_METHOD(&templateAfter, &templatesAfter, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_25$$25); + ZEPHIR_CONCAT_VV(&_25$$25, &layoutsDir, &templateAfter); + if (silence) { + ZVAL_BOOL(&_26$$25, 1); + } else { + ZVAL_BOOL(&_26$$25, 0); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "enginerender", NULL, 0, &engines, &_25$$25, &_26$$25); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &templatesAfter, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&templateAfter); + silence = 1; + } + } + if (renderLevel >= 5) { + if (!(zephir_array_isset_long(&disabledLevels, 5))) { + ZEPHIR_INIT_ZVAL_NREF(_27$$27); + ZVAL_LONG(&_27$$27, 5); + zephir_update_property_zval(this_ptr, ZEND_STRL("currentRenderLevel"), &_27$$27); + zephir_read_property(&_27$$27, this_ptr, ZEND_STRL("mainView"), PH_NOISY_CC | PH_READONLY); + if (silence) { + ZVAL_BOOL(&_28$$27, 1); + } else { + ZVAL_BOOL(&_28$$27, 0); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "enginerender", NULL, 0, &engines, &_27$$27, &_28$$27); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&table); - ZEPHIR_INIT_VAR(&_5$$3); - zephir_fast_join_str(&_5$$3, SL(", "), &tables); - ZEPHIR_CPY_WRT(&tables, &_5$$3); - } else { - ZEPHIR_CPY_WRT(&tables, expression); + ZEPHIR_INIT_ZVAL_NREF(_29$$13); + ZVAL_LONG(&_29$$13, 0); + zephir_update_property_zval(this_ptr, ZEND_STRL("currentRenderLevel"), &_29$$13); } - ZEPHIR_CONCAT_SV(return_value, "FROM ", &tables); - RETURN_MM(); + _30 = fireEvents; + if (_30) { + _30 = Z_TYPE_P(&eventsManager) == IS_OBJECT; + } + if (_30) { + ZEPHIR_INIT_VAR(&_31$$28); + ZVAL_STRING(&_31$$28, "view:afterRender"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_31$$28, this_ptr); + zephir_check_call_status(); + } + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionFunctionCall) +zend_object *zephir_init_properties_Phalcon_Mvc_View(zend_class_entry *class_type) { - zend_bool _1, _3$$4; + zval _0, _2, _4, _6, _8, _10, _12, _14, _1$$3, _3$$4, _5$$5, _7$$6, _9$$7, _11$$8, _13$$9, _15$$10; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval escapeChar; - zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, __$false, name, customFunction, arguments, _0, _4$$4; - zval expression, bindCounts, _2$$4; - zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_9$$7); + ZVAL_UNDEF(&_11$$8); + ZVAL_UNDEF(&_13$$9); + ZVAL_UNDEF(&_15$$10); + - ZVAL_UNDEF(&expression); - ZVAL_UNDEF(&bindCounts); - ZVAL_UNDEF(&_2$$4); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&customFunction); - ZVAL_UNDEF(&arguments); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&escapeChar); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ARRAY(expression) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) - Z_PARAM_ARRAY(bindCounts) - ZEND_PARSE_PARAMETERS_END(); + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("viewParams"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("viewsDirs"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("viewsDirs"), &_3$$4); + } + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("templatesBefore"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_4) == IS_NULL) { + ZEPHIR_INIT_VAR(&_5$$5); + array_init(&_5$$5); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("templatesBefore"), &_5$$5); + } + zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("templatesAfter"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_6) == IS_NULL) { + ZEPHIR_INIT_VAR(&_7$$6); + array_init(&_7$$6); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("templatesAfter"), &_7$$6); + } + zephir_read_property_ex(&_8, this_ptr, ZEND_STRL("registeredEngines"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_8) == IS_NULL) { + ZEPHIR_INIT_VAR(&_9$$7); + array_init(&_9$$7); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("registeredEngines"), &_9$$7); + } + zephir_read_property_ex(&_10, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_10) == IS_NULL) { + ZEPHIR_INIT_VAR(&_11$$8); + array_init(&_11$$8); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("params"), &_11$$8); + } + zephir_read_property_ex(&_12, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_12) == IS_NULL) { + ZEPHIR_INIT_VAR(&_13$$9); + array_init(&_13$$9); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_13$$9); + } + zephir_read_property_ex(&_14, this_ptr, ZEND_STRL("disabledLevels"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_14) == IS_NULL) { + ZEPHIR_INIT_VAR(&_15$$10); + array_init(&_15$$10); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("disabledLevels"), &_15$$10); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); - ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); - } else { - zephir_get_strval(&escapeChar, escapeChar_param); - } - if (!bindCounts_param) { - ZEPHIR_INIT_VAR(&bindCounts); - array_init(&bindCounts); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); - } - ZEPHIR_OBS_VAR(&name); - zephir_array_fetch_string(&name, &expression, SL("name"), PH_NOISY, "phalcon/Db/Dialect.zep", 789); - ZEPHIR_OBS_VAR(&customFunction); - zephir_read_property(&_0, this_ptr, ZEND_STRL("customFunctions"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&customFunction, &_0, &name, 0)) { - ZEPHIR_RETURN_CALL_ZVAL_FUNCTION(&customFunction, NULL, 0, this_ptr, &expression, &escapeChar); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_OBS_VAR(&arguments); - _1 = zephir_array_isset_string_fetch(&arguments, &expression, SL("arguments"), 0); - if (_1) { - _1 = Z_TYPE_P(&arguments) == IS_ARRAY; - } - if (_1) { - ZEPHIR_INIT_VAR(&_2$$4); - zephir_create_array(&_2$$4, 3, 0); - add_assoc_stringl_ex(&_2$$4, SL("type"), SL("list")); - zephir_array_update_string(&_2$$4, SL("parentheses"), &__$false, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_2$$4, SL("value"), &arguments, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&arguments, this_ptr, "getsqlexpression", NULL, 0, &_2$$4, &escapeChar, &bindCounts); - zephir_check_call_status(); - _3$$4 = zephir_array_isset_string(&expression, SL("distinct")); - if (_3$$4) { - zephir_array_fetch_string(&_4$$4, &expression, SL("distinct"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 806); - _3$$4 = zephir_is_true(&_4$$4); - } - if (_3$$4) { - ZEPHIR_CONCAT_VSVS(return_value, &name, "(DISTINCT ", &arguments, ")"); - RETURN_MM(); - } - ZEPHIR_CONCAT_VSVS(return_value, &name, "(", &arguments, ")"); - RETURN_MM(); - } - ZEPHIR_CONCAT_VS(return_value, &name, "()"); - RETURN_MM(); + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_ViewBaseInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc, ViewBaseInterface, phalcon, mvc_viewbaseinterface, phalcon_mvc_viewbaseinterface_method_entry); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionGroupBy) +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewBaseInterface, getContent); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewBaseInterface, getParamsToView); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewBaseInterface, getViewsDir); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewBaseInterface, partial); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewBaseInterface, setContent); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewBaseInterface, setParamToView); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewBaseInterface, setVar); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewBaseInterface, setViewsDir); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_ViewInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc, ViewInterface, phalcon, mvc_viewinterface, phalcon_mvc_viewinterface_method_entry); + + zend_class_implements(phalcon_mvc_viewinterface_ce, 1, phalcon_mvc_viewbaseinterface_ce); + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, cleanTemplateAfter); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, cleanTemplateBefore); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, disable); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, enable); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, finish); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, getActionName); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, getActiveRenderPath); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, getBasePath); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, getControllerName); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, getLayout); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, getLayoutsDir); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, getMainView); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, getPartialsDir); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, isDisabled); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, pick); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, registerEngines); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, render); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, reset); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, setBasePath); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, setLayout); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, setLayoutsDir); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, setMainView); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, setPartialsDir); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, setRenderLevel); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, setTemplateAfter); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, setTemplateBefore); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, start); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Controller_BindModelInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Controller, BindModelInterface, phalcon, mvc_controller_bindmodelinterface, phalcon_mvc_controller_bindmodelinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Controller_BindModelInterface, getModelName); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Behavior) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model, Behavior, phalcon, mvc_model_behavior, phalcon_mvc_model_behavior_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_mvc_model_behavior_ce, SL("options"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_mvc_model_behavior_ce, 1, phalcon_mvc_model_behaviorinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Mvc_Model_Behavior, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval bindCounts; - zval escapeChar; - zval *expression, expression_sub, *escapeChar_param = NULL, *bindCounts_param = NULL, field, fields, *_0$$3, _1$$3, _5$$3, _2$$4, _4$$6; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expression_sub); - ZVAL_UNDEF(&field); - ZVAL_UNDEF(&fields); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_4$$6); - ZVAL_UNDEF(&escapeChar); - ZVAL_UNDEF(&bindCounts); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ZVAL(expression) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) - Z_PARAM_ARRAY(bindCounts) + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &expression, &escapeChar_param, &bindCounts_param); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); - } else { - zephir_get_strval(&escapeChar, escapeChar_param); - } - if (!bindCounts_param) { - ZEPHIR_INIT_VAR(&bindCounts); - array_init(&bindCounts); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + zephir_get_arrval(&options, options_param); } - if (Z_TYPE_P(expression) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&fields); - array_init(&fields); - zephir_is_iterable(expression, 0, "phalcon/Db/Dialect.zep", 844); - if (Z_TYPE_P(expression) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(expression), _0$$3) - { - ZEPHIR_INIT_NVAR(&field); - ZVAL_COPY(&field, _0$$3); - if (UNEXPECTED(Z_TYPE_P(&field) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-GROUP-BY expression", "phalcon/Db/Dialect.zep", 834); - return; - } - ZEPHIR_CALL_METHOD(&_2$$4, this_ptr, "getsqlexpression", &_3, 0, &field, &escapeChar, &bindCounts); - zephir_check_call_status(); - zephir_array_append(&fields, &_2$$4, PH_SEPARATE, "phalcon/Db/Dialect.zep", 841); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, expression, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1$$3, expression, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&field, expression, "current", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&field) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-GROUP-BY expression", "phalcon/Db/Dialect.zep", 834); - return; - } - ZEPHIR_CALL_METHOD(&_4$$6, this_ptr, "getsqlexpression", &_3, 59, &field, &escapeChar, &bindCounts); - zephir_check_call_status(); - zephir_array_append(&fields, &_4$$6, PH_SEPARATE, "phalcon/Db/Dialect.zep", 841); - ZEPHIR_CALL_METHOD(NULL, expression, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&field); - ZEPHIR_INIT_VAR(&_5$$3); - zephir_fast_join_str(&_5$$3, SL(", "), &fields); - ZEPHIR_CPY_WRT(&fields, &_5$$3); - } else { - ZEPHIR_CPY_WRT(&fields, expression); - } - ZEPHIR_CONCAT_SV(return_value, "GROUP BY ", &fields); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionHaving) +static PHP_METHOD(Phalcon_Mvc_Model_Behavior, getOptions) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval escapeChar; - zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, _0; - zval expression, bindCounts; + zval *eventName_param = NULL, options, eventOptions, _0; + zval eventName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expression); - ZVAL_UNDEF(&bindCounts); + ZVAL_UNDEF(&eventName); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&eventOptions); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&escapeChar); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ARRAY(expression) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) - Z_PARAM_ARRAY(bindCounts) + Z_PARAM_STR_OR_NULL(eventName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); - ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); + zephir_fetch_params(1, 0, 1, &eventName_param); + if (!eventName_param) { + ZEPHIR_INIT_VAR(&eventName); } else { - zephir_get_strval(&escapeChar, escapeChar_param); + if (UNEXPECTED(Z_TYPE_P(eventName_param) != IS_STRING && Z_TYPE_P(eventName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventName' must be of the type string")); + RETURN_MM_NULL(); } - if (!bindCounts_param) { - ZEPHIR_INIT_VAR(&bindCounts); - array_init(&bindCounts); + if (EXPECTED(Z_TYPE_P(eventName_param) == IS_STRING)) { + zephir_get_strval(&eventName, eventName_param); } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + ZEPHIR_INIT_VAR(&eventName); + } } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getsqlexpression", NULL, 0, &expression, &escapeChar, &bindCounts); - zephir_check_call_status(); - ZEPHIR_CONCAT_SV(return_value, "HAVING ", &_0); - RETURN_MM(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&options, &_0); + if (!ZEPHIR_IS_NULL(&eventName)) { + if (!(zephir_array_isset_fetch(&eventOptions, &options, &eventName, 1))) { + RETURN_MM_NULL(); + } + RETURN_CTOR(&eventOptions); + } + RETURN_CCTOR(&options); } -static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionJoins) +static PHP_METHOD(Phalcon_Mvc_Model_Behavior, missingMethod) { - zend_bool _2$$3, _9$$3, _13$$11, _19$$11; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL, *_11 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval bindCounts; - zval escapeChar, sql; - zval *expression, expression_sub, *escapeChar_param = NULL, *bindCounts_param = NULL, condition, join, joinCondition, joinTable, joinType, joinConditionsArray, *_0, _1, _10$$3, _12$$3, *_4$$6, _5$$6, _8$$6, _6$$7, _7$$8, _20$$11, _21$$11, *_14$$14, _15$$14, _18$$14, _16$$15, _17$$16; + zval arguments; + zval method; + zval *model, model_sub, *method_param = NULL, *arguments_param = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expression_sub); - ZVAL_UNDEF(&condition); - ZVAL_UNDEF(&join); - ZVAL_UNDEF(&joinCondition); - ZVAL_UNDEF(&joinTable); - ZVAL_UNDEF(&joinType); - ZVAL_UNDEF(&joinConditionsArray); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_10$$3); - ZVAL_UNDEF(&_12$$3); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_8$$6); - ZVAL_UNDEF(&_6$$7); - ZVAL_UNDEF(&_7$$8); - ZVAL_UNDEF(&_20$$11); - ZVAL_UNDEF(&_21$$11); - ZVAL_UNDEF(&_15$$14); - ZVAL_UNDEF(&_18$$14); - ZVAL_UNDEF(&_16$$15); - ZVAL_UNDEF(&_17$$16); - ZVAL_UNDEF(&escapeChar); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&bindCounts); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&arguments); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ZVAL(expression) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_STR(method) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) - Z_PARAM_ARRAY(bindCounts) + Z_PARAM_ARRAY(arguments) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &expression, &escapeChar_param, &bindCounts_param); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); - } else { - zephir_get_strval(&escapeChar, escapeChar_param); - } - if (!bindCounts_param) { - ZEPHIR_INIT_VAR(&bindCounts); - array_init(&bindCounts); + zephir_fetch_params(1, 2, 1, &model, &method_param, &arguments_param); + zephir_get_strval(&method, method_param); + if (!arguments_param) { + ZEPHIR_INIT_VAR(&arguments); + array_init(&arguments); } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + zephir_get_arrval(&arguments, arguments_param); } - ZEPHIR_INIT_VAR(&joinType); - ZVAL_STRING(&joinType, ""); - ZEPHIR_INIT_VAR(&sql); - zephir_is_iterable(expression, 0, "phalcon/Db/Dialect.zep", 918); - if (Z_TYPE_P(expression) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(expression), _0) - { - ZEPHIR_INIT_NVAR(&join); - ZVAL_COPY(&join, _0); - ZEPHIR_OBS_NVAR(&joinConditionsArray); - _2$$3 = zephir_array_isset_string_fetch(&joinConditionsArray, &join, SL("conditions"), 0); - if (_2$$3) { - _2$$3 = !(ZEPHIR_IS_EMPTY(&joinConditionsArray)); - } - if (_2$$3) { - if (!(zephir_array_isset_long(&joinConditionsArray, 0))) { - ZEPHIR_CALL_METHOD(&joinCondition, this_ptr, "getsqlexpression", &_3, 0, &joinConditionsArray, &escapeChar, &bindCounts); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&joinCondition); - array_init(&joinCondition); - zephir_is_iterable(&joinConditionsArray, 0, "phalcon/Db/Dialect.zep", 903); - if (Z_TYPE_P(&joinConditionsArray) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&joinConditionsArray), _4$$6) - { - ZEPHIR_INIT_NVAR(&condition); - ZVAL_COPY(&condition, _4$$6); - ZEPHIR_CALL_METHOD(&_6$$7, this_ptr, "getsqlexpression", &_3, 59, &condition, &escapeChar, &bindCounts); - zephir_check_call_status(); - zephir_array_append(&joinCondition, &_6$$7, PH_SEPARATE, "phalcon/Db/Dialect.zep", 900); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &joinConditionsArray, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5$$6, &joinConditionsArray, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5$$6)) { - break; - } - ZEPHIR_CALL_METHOD(&condition, &joinConditionsArray, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_7$$8, this_ptr, "getsqlexpression", &_3, 59, &condition, &escapeChar, &bindCounts); - zephir_check_call_status(); - zephir_array_append(&joinCondition, &_7$$8, PH_SEPARATE, "phalcon/Db/Dialect.zep", 900); - ZEPHIR_CALL_METHOD(NULL, &joinConditionsArray, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&condition); - ZEPHIR_INIT_NVAR(&_8$$6); - zephir_fast_join_str(&_8$$6, SL(" AND "), &joinCondition); - ZEPHIR_CPY_WRT(&joinCondition, &_8$$6); - } - } else { - ZEPHIR_INIT_NVAR(&joinCondition); - ZVAL_LONG(&joinCondition, 1); - } - ZEPHIR_OBS_NVAR(&joinType); - _9$$3 = zephir_array_isset_string_fetch(&joinType, &join, SL("type"), 0); - if (_9$$3) { - _9$$3 = zephir_is_true(&joinType); - } - if (_9$$3) { - zephir_concat_self_str(&joinType, SL(" ")); - } - zephir_array_fetch_string(&_10$$3, &join, SL("source"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 913); - ZEPHIR_CALL_METHOD(&joinTable, this_ptr, "getsqltable", &_11, 75, &_10$$3, &escapeChar); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_12$$3); - ZEPHIR_CONCAT_SVSVSV(&_12$$3, " ", &joinType, "JOIN ", &joinTable, " ON ", &joinCondition); - zephir_concat_self(&sql, &_12$$3); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, expression, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, expression, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&join, expression, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&joinConditionsArray); - _13$$11 = zephir_array_isset_string_fetch(&joinConditionsArray, &join, SL("conditions"), 0); - if (_13$$11) { - _13$$11 = !(ZEPHIR_IS_EMPTY(&joinConditionsArray)); - } - if (_13$$11) { - if (!(zephir_array_isset_long(&joinConditionsArray, 0))) { - ZEPHIR_CALL_METHOD(&joinCondition, this_ptr, "getsqlexpression", &_3, 59, &joinConditionsArray, &escapeChar, &bindCounts); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&joinCondition); - array_init(&joinCondition); - zephir_is_iterable(&joinConditionsArray, 0, "phalcon/Db/Dialect.zep", 903); - if (Z_TYPE_P(&joinConditionsArray) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&joinConditionsArray), _14$$14) - { - ZEPHIR_INIT_NVAR(&condition); - ZVAL_COPY(&condition, _14$$14); - ZEPHIR_CALL_METHOD(&_16$$15, this_ptr, "getsqlexpression", &_3, 59, &condition, &escapeChar, &bindCounts); - zephir_check_call_status(); - zephir_array_append(&joinCondition, &_16$$15, PH_SEPARATE, "phalcon/Db/Dialect.zep", 900); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &joinConditionsArray, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_15$$14, &joinConditionsArray, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_15$$14)) { - break; - } - ZEPHIR_CALL_METHOD(&condition, &joinConditionsArray, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_17$$16, this_ptr, "getsqlexpression", &_3, 59, &condition, &escapeChar, &bindCounts); - zephir_check_call_status(); - zephir_array_append(&joinCondition, &_17$$16, PH_SEPARATE, "phalcon/Db/Dialect.zep", 900); - ZEPHIR_CALL_METHOD(NULL, &joinConditionsArray, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&condition); - ZEPHIR_INIT_NVAR(&_18$$14); - zephir_fast_join_str(&_18$$14, SL(" AND "), &joinCondition); - ZEPHIR_CPY_WRT(&joinCondition, &_18$$14); - } - } else { - ZEPHIR_INIT_NVAR(&joinCondition); - ZVAL_LONG(&joinCondition, 1); - } - ZEPHIR_OBS_NVAR(&joinType); - _19$$11 = zephir_array_isset_string_fetch(&joinType, &join, SL("type"), 0); - if (_19$$11) { - _19$$11 = zephir_is_true(&joinType); - } - if (_19$$11) { - zephir_concat_self_str(&joinType, SL(" ")); - } - zephir_array_fetch_string(&_20$$11, &join, SL("source"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 913); - ZEPHIR_CALL_METHOD(&joinTable, this_ptr, "getsqltable", &_11, 75, &_20$$11, &escapeChar); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_21$$11); - ZEPHIR_CONCAT_SVSVSV(&_21$$11, " ", &joinType, "JOIN ", &joinTable, " ON ", &joinCondition); - zephir_concat_self(&sql, &_21$$11); - ZEPHIR_CALL_METHOD(NULL, expression, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&join); - RETURN_CTOR(&sql); + RETURN_MM_NULL(); } -static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionLimit) +static PHP_METHOD(Phalcon_Mvc_Model_Behavior, mustTakeAction) { - zend_bool _2$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval bindCounts, _4; - zval escapeChar; - zval *expression, expression_sub, *escapeChar_param = NULL, *bindCounts_param = NULL, sql, value, limit, offset, _0$$4, _1$$5, _3$$7; + zval *eventName_param = NULL, _0; + zval eventName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expression_sub); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&limit); - ZVAL_UNDEF(&offset); - ZVAL_UNDEF(&_0$$4); - ZVAL_UNDEF(&_1$$5); - ZVAL_UNDEF(&_3$$7); - ZVAL_UNDEF(&escapeChar); - ZVAL_UNDEF(&bindCounts); - ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&eventName); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ZVAL(expression) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) - Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(eventName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &expression, &escapeChar_param, &bindCounts_param); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); - } else { - zephir_get_strval(&escapeChar, escapeChar_param); + zephir_fetch_params(1, 1, 0, &eventName_param); + if (UNEXPECTED(Z_TYPE_P(eventName_param) != IS_STRING && Z_TYPE_P(eventName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventName' must be of the type string")); + RETURN_MM_NULL(); } - if (!bindCounts_param) { - ZEPHIR_INIT_VAR(&bindCounts); - array_init(&bindCounts); + if (EXPECTED(Z_TYPE_P(eventName_param) == IS_STRING)) { + zephir_get_strval(&eventName, eventName_param); } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + ZEPHIR_INIT_VAR(&eventName); } - ZEPHIR_INIT_VAR(&sql); - ZVAL_STRING(&sql, ""); - ZEPHIR_INIT_VAR(&offset); - ZVAL_NULL(&offset); - ZEPHIR_OBS_VAR(&value); - zephir_array_fetch_string(&value, expression, SL("value"), PH_NOISY, "phalcon/Db/Dialect.zep", 934); - if (zephir_array_isset_string(expression, SL("sql"))) { - ZEPHIR_OBS_NVAR(&sql); - zephir_array_fetch_string(&sql, expression, SL("sql"), PH_NOISY, "phalcon/Db/Dialect.zep", 937); - } - if (Z_TYPE_P(&value) == IS_ARRAY) { - ZEPHIR_OBS_VAR(&_0$$4); - zephir_array_fetch_string(&_0$$4, &value, SL("number"), PH_NOISY, "phalcon/Db/Dialect.zep", 941); - if (Z_TYPE_P(&_0$$4) == IS_ARRAY) { - zephir_array_fetch_string(&_1$$5, &value, SL("number"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 943); - ZEPHIR_CALL_METHOD(&limit, this_ptr, "getsqlexpression", NULL, 0, &_1$$5, &escapeChar, &bindCounts); - zephir_check_call_status(); - } else { - ZEPHIR_OBS_NVAR(&limit); - zephir_array_fetch_string(&limit, &value, SL("number"), PH_NOISY, "phalcon/Db/Dialect.zep", 948); - } - ZEPHIR_OBS_NVAR(&offset); - _2$$4 = zephir_array_isset_string_fetch(&offset, &value, SL("offset"), 0); - if (_2$$4) { - _2$$4 = Z_TYPE_P(&offset) == IS_ARRAY; - } - if (_2$$4) { - ZEPHIR_CALL_METHOD(&_3$$7, this_ptr, "getsqlexpression", NULL, 59, &offset, &escapeChar, &bindCounts); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&offset, &_3$$7); - } - } else { - ZEPHIR_CPY_WRT(&limit, &value); - } - ZEPHIR_INIT_VAR(&_4); - zephir_create_array(&_4, 2, 0); - zephir_array_fast_append(&_4, &limit); - zephir_array_fast_append(&_4, &offset); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "limit", NULL, 0, &sql, &_4); - zephir_check_call_status(); - RETURN_MM(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + RETURN_MM_BOOL(zephir_array_isset(&_0, &eventName)); } -static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionList) +static PHP_METHOD(Phalcon_Mvc_Model_Behavior, notify) { - zend_bool _0, _1, _7$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval escapeChar; - zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, item, values, separator, *_2$$4, _3$$4, _8$$4, _9$$4, _4$$5, _6$$6; - zval expression, bindCounts, items; + zval *type_param = NULL, *model, model_sub; + zval type; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expression); - ZVAL_UNDEF(&bindCounts); - ZVAL_UNDEF(&items); - ZVAL_UNDEF(&item); - ZVAL_UNDEF(&values); - ZVAL_UNDEF(&separator); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_8$$4); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_6$$6); - ZVAL_UNDEF(&escapeChar); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&model_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ARRAY(expression) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) - Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(type) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); - ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); - } else { - zephir_get_strval(&escapeChar, escapeChar_param); - } - if (!bindCounts_param) { - ZEPHIR_INIT_VAR(&bindCounts); - array_init(&bindCounts); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); - } + zephir_fetch_params(1, 2, 0, &type_param, &model); + zephir_get_strval(&type, type_param); - ZEPHIR_INIT_VAR(&items); - array_init(&items); - ZEPHIR_INIT_VAR(&separator); - ZVAL_STRING(&separator, ", "); - if (zephir_array_isset_string(&expression, SL("separator"))) { - ZEPHIR_OBS_NVAR(&separator); - zephir_array_fetch_string(&separator, &expression, SL("separator"), PH_NOISY, "phalcon/Db/Dialect.zep", 987); - } - ZEPHIR_OBS_VAR(&values); - _0 = zephir_array_isset_long_fetch(&values, &expression, 0, 0); - if (!(_0)) { - ZEPHIR_OBS_NVAR(&values); - _0 = zephir_array_isset_string_fetch(&values, &expression, SL("value"), 0); - } - _1 = _0; - if (_1) { - _1 = Z_TYPE_P(&values) == IS_ARRAY; - } - if (_1) { - zephir_is_iterable(&values, 0, "phalcon/Db/Dialect.zep", 996); - if (Z_TYPE_P(&values) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&values), _2$$4) - { - ZEPHIR_INIT_NVAR(&item); - ZVAL_COPY(&item, _2$$4); - ZEPHIR_CALL_METHOD(&_4$$5, this_ptr, "getsqlexpression", &_5, 0, &item, &escapeChar, &bindCounts); - zephir_check_call_status(); - zephir_array_append(&items, &_4$$5, PH_SEPARATE, "phalcon/Db/Dialect.zep", 993); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &values, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3$$4, &values, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3$$4)) { - break; - } - ZEPHIR_CALL_METHOD(&item, &values, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_6$$6, this_ptr, "getsqlexpression", &_5, 59, &item, &escapeChar, &bindCounts); - zephir_check_call_status(); - zephir_array_append(&items, &_6$$6, PH_SEPARATE, "phalcon/Db/Dialect.zep", 993); - ZEPHIR_CALL_METHOD(NULL, &values, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&item); - _7$$4 = zephir_array_isset_string(&expression, SL("parentheses")); - if (_7$$4) { - zephir_array_fetch_string(&_8$$4, &expression, SL("parentheses"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 996); - _7$$4 = ZEPHIR_IS_FALSE_IDENTICAL(&_8$$4); - } - if (_7$$4) { - zephir_fast_join(return_value, &separator, &items); - RETURN_MM(); - } - ZEPHIR_INIT_VAR(&_9$$4); - zephir_fast_join(&_9$$4, &separator, &items); - ZEPHIR_CONCAT_SVS(return_value, "(", &_9$$4, ")"); - RETURN_MM(); - } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-list expression", "phalcon/Db/Dialect.zep", 1003); - return; + RETURN_MM_NULL(); } -static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionObject) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_BehaviorInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model, BehaviorInterface, phalcon, mvc_model_behaviorinterface, phalcon_mvc_model_behaviorinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_BehaviorInterface, missingMethod); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_BehaviorInterface, notify); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Binder) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model, Binder, phalcon, mvc_model_binder, phalcon_mvc_model_binder_method_entry, 0); + + zend_declare_property_null(phalcon_mvc_model_binder_ce, SL("boundModels"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_binder_ce, SL("cache"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_binder_ce, SL("internalCache"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_binder_ce, SL("originalValues"), ZEND_ACC_PROTECTED); + phalcon_mvc_model_binder_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_Binder; + + zend_class_implements(phalcon_mvc_model_binder_ce, 1, phalcon_mvc_model_binderinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Mvc_Model_Binder, getBoundModels) { - zend_bool _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval escapeChar; - zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, domain, objectExpression; - zval expression, bindCounts; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expression); - ZVAL_UNDEF(&bindCounts); - ZVAL_UNDEF(&domain); - ZVAL_UNDEF(&objectExpression); - ZVAL_UNDEF(&escapeChar); + + + RETURN_MEMBER(getThis(), "boundModels"); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Binder, getOriginalValues) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "originalValues"); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Binder, __construct) +{ + zval *cache = NULL, cache_sub, __$null; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&cache_sub); + ZVAL_NULL(&__$null); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ARRAY(expression) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) - Z_PARAM_ARRAY(bindCounts) + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(cache, phalcon_cache_adapter_adapterinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); - ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); - } else { - zephir_get_strval(&escapeChar, escapeChar_param); - } - if (!bindCounts_param) { - ZEPHIR_INIT_VAR(&bindCounts); - array_init(&bindCounts); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + zephir_fetch_params_without_memory_grow(0, 1, &cache); + if (!cache) { + cache = &cache_sub; + cache = &__$null; } - ZEPHIR_INIT_VAR(&domain); - ZVAL_NULL(&domain); - ZEPHIR_INIT_VAR(&objectExpression); - zephir_create_array(&objectExpression, 1, 0); - add_assoc_stringl_ex(&objectExpression, SL("type"), SL("all")); - ZEPHIR_OBS_NVAR(&domain); - _0 = zephir_array_isset_string_fetch(&domain, &expression, SL("column"), 0); - if (!(_0)) { - ZEPHIR_OBS_NVAR(&domain); - _0 = zephir_array_isset_string_fetch(&domain, &expression, SL("domain"), 0); - } - _1 = _0; - if (_1) { - _1 = !ZEPHIR_IS_STRING(&domain, ""); - } - if (_1) { - zephir_array_update_string(&objectExpression, SL("domain"), &domain, PH_COPY | PH_SEPARATE); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpression", NULL, 0, &objectExpression, &escapeChar, &bindCounts); - zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("cache"), cache); } -static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionOrderBy) +static PHP_METHOD(Phalcon_Mvc_Model_Binder, bindToHandler) { - zend_bool _4$$4, _7$$7; + zend_string *_6$$4; + zend_ulong _5$$4; + zend_bool _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; + zephir_fcall_cache_entry *_7 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval bindCounts; - zval escapeChar; - zval *expression, expression_sub, *escapeChar_param = NULL, *bindCounts_param = NULL, field, fields, type, fieldSql, *_0$$3, _1$$3, _9$$3, _2$$4, _5$$6, _6$$7, _8$$9; + zval cacheKey, methodName; + zval params; + zval *handler, handler_sub, *params_param = NULL, *cacheKey_param = NULL, *methodName_param = NULL, paramKey, className, boundModel, paramsCache, paramValue, _0, _2, *_3$$4, _4$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expression_sub); - ZVAL_UNDEF(&field); - ZVAL_UNDEF(&fields); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&fieldSql); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_9$$3); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_6$$7); - ZVAL_UNDEF(&_8$$9); - ZVAL_UNDEF(&escapeChar); - ZVAL_UNDEF(&bindCounts); + ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(¶mKey); + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&boundModel); + ZVAL_UNDEF(¶msCache); + ZVAL_UNDEF(¶mValue); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&cacheKey); + ZVAL_UNDEF(&methodName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ZVAL(expression) + ZEND_PARSE_PARAMETERS_START(3, 4) + Z_PARAM_OBJECT(handler) + Z_PARAM_ARRAY(params) + Z_PARAM_STR(cacheKey) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) - Z_PARAM_ARRAY(bindCounts) + Z_PARAM_STR_OR_NULL(methodName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &expression, &escapeChar_param, &bindCounts_param); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); + zephir_fetch_params(1, 3, 1, &handler, ¶ms_param, &cacheKey_param, &methodName_param); + zephir_get_arrval(¶ms, params_param); + zephir_get_strval(&cacheKey, cacheKey_param); + if (!methodName_param) { + ZEPHIR_INIT_VAR(&methodName); } else { - zephir_get_strval(&escapeChar, escapeChar_param); + if (UNEXPECTED(Z_TYPE_P(methodName_param) != IS_STRING && Z_TYPE_P(methodName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'methodName' must be of the type string")); + RETURN_MM_NULL(); } - if (!bindCounts_param) { - ZEPHIR_INIT_VAR(&bindCounts); - array_init(&bindCounts); + if (EXPECTED(Z_TYPE_P(methodName_param) == IS_STRING)) { + zephir_get_strval(&methodName, methodName_param); } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + ZEPHIR_INIT_VAR(&methodName); + } } - ZEPHIR_INIT_VAR(&fieldSql); - ZVAL_NULL(&fieldSql); - if (Z_TYPE_P(expression) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&fields); - array_init(&fields); - zephir_is_iterable(expression, 0, "phalcon/Db/Dialect.zep", 1068); - if (Z_TYPE_P(expression) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(expression), _0$$3) + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("originalValues"), &_0); + _1 = !((zephir_is_instance_of(handler, SL("Closure")))); + if (_1) { + _1 = ZEPHIR_IS_NULL(&methodName); + } + if (UNEXPECTED(_1)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "You must specify methodName for handler or pass Closure as handler", "phalcon/Mvc/Model/Binder.zep", 75); + return; + } + ZEPHIR_INIT_VAR(&_2); + array_init(&_2); + zephir_update_property_zval(this_ptr, ZEND_STRL("boundModels"), &_2); + ZEPHIR_CALL_METHOD(¶msCache, this_ptr, "getparamsfromcache", NULL, 0, &cacheKey); + zephir_check_call_status(); + if (Z_TYPE_P(¶msCache) == IS_ARRAY) { + zephir_is_iterable(¶msCache, 0, "phalcon/Mvc/Model/Binder.zep", 90); + if (Z_TYPE_P(¶msCache) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(¶msCache), _5$$4, _6$$4, _3$$4) { - ZEPHIR_INIT_NVAR(&field); - ZVAL_COPY(&field, _0$$3); - if (UNEXPECTED(Z_TYPE_P(&field) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-ORDER-BY expression", "phalcon/Db/Dialect.zep", 1049); - return; + ZEPHIR_INIT_NVAR(¶mKey); + if (_6$$4 != NULL) { + ZVAL_STR_COPY(¶mKey, _6$$4); + } else { + ZVAL_LONG(¶mKey, _5$$4); } - zephir_array_fetch_long(&_2$$4, &field, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 1053); - ZEPHIR_CALL_METHOD(&fieldSql, this_ptr, "getsqlexpression", &_3, 0, &_2$$4, &escapeChar, &bindCounts); + ZEPHIR_INIT_NVAR(&className); + ZVAL_COPY(&className, _3$$4); + ZEPHIR_OBS_NVAR(¶mValue); + zephir_array_fetch(¶mValue, ¶ms, ¶mKey, PH_NOISY, "phalcon/Mvc/Model/Binder.zep", 83); + ZEPHIR_CALL_METHOD(&boundModel, this_ptr, "findboundmodel", &_7, 0, ¶mValue, &className); zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&type); - _4$$4 = zephir_array_isset_long_fetch(&type, &field, 1, 0); - if (_4$$4) { - _4$$4 = !ZEPHIR_IS_STRING(&type, ""); - } - if (_4$$4) { - ZEPHIR_INIT_NVAR(&_5$$6); - ZEPHIR_CONCAT_SV(&_5$$6, " ", &type); - zephir_concat_self(&fieldSql, &_5$$6); - } - zephir_array_append(&fields, &fieldSql, PH_SEPARATE, "phalcon/Db/Dialect.zep", 1065); + zephir_update_property_array(this_ptr, SL("originalValues"), ¶mKey, ¶mValue); + zephir_array_update_zval(¶ms, ¶mKey, &boundModel, PH_COPY | PH_SEPARATE); + zephir_update_property_array(this_ptr, SL("boundModels"), ¶mKey, &boundModel); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, expression, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, ¶msCache, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_1$$3, expression, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_4$$4, ¶msCache, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_1$$3)) { + if (!zend_is_true(&_4$$4)) { break; } - ZEPHIR_CALL_METHOD(&field, expression, "current", NULL, 0); + ZEPHIR_CALL_METHOD(¶mKey, ¶msCache, "key", NULL, 0); zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&field) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-ORDER-BY expression", "phalcon/Db/Dialect.zep", 1049); - return; - } - zephir_array_fetch_long(&_6$$7, &field, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 1053); - ZEPHIR_CALL_METHOD(&fieldSql, this_ptr, "getsqlexpression", &_3, 59, &_6$$7, &escapeChar, &bindCounts); + ZEPHIR_CALL_METHOD(&className, ¶msCache, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(¶mValue); + zephir_array_fetch(¶mValue, ¶ms, ¶mKey, PH_NOISY, "phalcon/Mvc/Model/Binder.zep", 83); + ZEPHIR_CALL_METHOD(&boundModel, this_ptr, "findboundmodel", &_7, 0, ¶mValue, &className); zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&type); - _7$$7 = zephir_array_isset_long_fetch(&type, &field, 1, 0); - if (_7$$7) { - _7$$7 = !ZEPHIR_IS_STRING(&type, ""); - } - if (_7$$7) { - ZEPHIR_INIT_NVAR(&_8$$9); - ZEPHIR_CONCAT_SV(&_8$$9, " ", &type); - zephir_concat_self(&fieldSql, &_8$$9); - } - zephir_array_append(&fields, &fieldSql, PH_SEPARATE, "phalcon/Db/Dialect.zep", 1065); - ZEPHIR_CALL_METHOD(NULL, expression, "next", NULL, 0); + zephir_update_property_array(this_ptr, SL("originalValues"), ¶mKey, ¶mValue); + zephir_array_update_zval(¶ms, ¶mKey, &boundModel, PH_COPY | PH_SEPARATE); + zephir_update_property_array(this_ptr, SL("boundModels"), ¶mKey, &boundModel); + ZEPHIR_CALL_METHOD(NULL, ¶msCache, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&field); - ZEPHIR_INIT_VAR(&_9$$3); - zephir_fast_join_str(&_9$$3, SL(", "), &fields); - ZEPHIR_CPY_WRT(&fields, &_9$$3); - } else { - ZEPHIR_CPY_WRT(&fields, expression); + ZEPHIR_INIT_NVAR(&className); + ZEPHIR_INIT_NVAR(¶mKey); + RETURN_CTOR(¶ms); } - ZEPHIR_CONCAT_SV(return_value, "ORDER BY ", &fields); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getparamsfromreflection", NULL, 0, handler, ¶ms, &cacheKey, &methodName); + zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionQualified) +static PHP_METHOD(Phalcon_Mvc_Model_Binder, findBoundModel) { + zend_class_entry *_0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval escapeChar; - zval *expression_param = NULL, *escapeChar_param = NULL, column, domain; - zval expression; + zval className; + zval *paramValue, paramValue_sub, *className_param = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expression); - ZVAL_UNDEF(&column); - ZVAL_UNDEF(&domain); - ZVAL_UNDEF(&escapeChar); + ZVAL_UNDEF(¶mValue_sub); + ZVAL_UNDEF(&className); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(expression) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(paramValue) + Z_PARAM_STR(className) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); - ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); - } else { - zephir_get_strval(&escapeChar, escapeChar_param); - } + zephir_fetch_params(1, 2, 0, ¶mValue, &className_param); + zephir_get_strval(&className, className_param); - ZEPHIR_OBS_VAR(&column); - zephir_array_fetch_string(&column, &expression, SL("name"), PH_NOISY, "phalcon/Db/Dialect.zep", 1083); - ZEPHIR_OBS_VAR(&domain); - if (!(zephir_array_isset_string_fetch(&domain, &expression, SL("domain"), 0))) { - ZEPHIR_INIT_NVAR(&domain); - ZVAL_NULL(&domain); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparequalified", NULL, 0, &column, &domain, &escapeChar); + _0 = zephir_fetch_class(&className); + ZEPHIR_RETURN_CALL_CE_STATIC(_0, "findfirst", NULL, 0, paramValue); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionScalar) +static PHP_METHOD(Phalcon_Mvc_Model_Binder, getCache) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval escapeChar; - zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, value, _0$$3; - zval expression, bindCounts; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expression); - ZVAL_UNDEF(&bindCounts); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&escapeChar); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ARRAY(expression) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) - Z_PARAM_ARRAY(bindCounts) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); - ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); - } else { - zephir_get_strval(&escapeChar, escapeChar_param); - } - if (!bindCounts_param) { - ZEPHIR_INIT_VAR(&bindCounts); - array_init(&bindCounts); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); - } - if (zephir_array_isset_string(&expression, SL("column"))) { - zephir_array_fetch_string(&_0$$3, &expression, SL("column"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 1107); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlcolumn", NULL, 53, &_0$$3); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_OBS_VAR(&value); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&value, &expression, SL("value"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL expression", "phalcon/Db/Dialect.zep", 1111); - return; - } - if (Z_TYPE_P(&value) == IS_ARRAY) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpression", NULL, 0, &value, &escapeChar, &bindCounts); - zephir_check_call_status(); - RETURN_MM(); - } - RETURN_CCTOR(&value); + RETURN_MEMBER(getThis(), "cache"); } -static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionUnaryOperations) +static PHP_METHOD(Phalcon_Mvc_Model_Binder, getParamsFromCache) { + zend_bool _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval escapeChar; - zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, left, right, _0$$3, _1$$3, _2$$4, _3$$4; - zval expression, bindCounts; + zval *cacheKey_param = NULL, cache, internalParams, _0, _1, _3; + zval cacheKey; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expression); - ZVAL_UNDEF(&bindCounts); - ZVAL_UNDEF(&left); - ZVAL_UNDEF(&right); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&escapeChar); + ZVAL_UNDEF(&cacheKey); + ZVAL_UNDEF(&cache); + ZVAL_UNDEF(&internalParams); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ARRAY(expression) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) - Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(cacheKey) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); - ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); - } else { - zephir_get_strval(&escapeChar, escapeChar_param); - } - if (!bindCounts_param) { - ZEPHIR_INIT_VAR(&bindCounts); - array_init(&bindCounts); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); - } + zephir_fetch_params(1, 1, 0, &cacheKey_param); + zephir_get_strval(&cacheKey, cacheKey_param); - ZEPHIR_OBS_VAR(&left); - if (zephir_array_isset_string_fetch(&left, &expression, SL("left"), 0)) { - ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "getsqlexpression", NULL, 0, &left, &escapeChar, &bindCounts); - zephir_check_call_status(); - zephir_array_fetch_string(&_1$$3, &expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 1138); - ZEPHIR_CONCAT_VSV(return_value, &_0$$3, " ", &_1$$3); - RETURN_MM(); + ZEPHIR_OBS_VAR(&internalParams); + zephir_read_property(&_0, this_ptr, ZEND_STRL("internalCache"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_fetch(&internalParams, &_0, &cacheKey, 0)) { + RETURN_CCTOR(&internalParams); } - ZEPHIR_OBS_VAR(&right); - if (zephir_array_isset_string_fetch(&right, &expression, SL("right"), 0)) { - zephir_array_fetch_string(&_2$$4, &expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 1145); - ZEPHIR_CALL_METHOD(&_3$$4, this_ptr, "getsqlexpression", NULL, 59, &right, &escapeChar, &bindCounts); + zephir_read_property(&_1, this_ptr, ZEND_STRL("cache"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&cache, &_1); + _2 = Z_TYPE_P(&cache) == IS_NULL; + if (!(_2)) { + ZEPHIR_CALL_METHOD(&_3, &cache, "has", NULL, 0, &cacheKey); zephir_check_call_status(); - ZEPHIR_CONCAT_VSV(return_value, &_2$$4, " ", &_3$$4); - RETURN_MM(); - } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-unary expression", "phalcon/Db/Dialect.zep", 1148); - return; -} - -static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionWhere) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval bindCounts; - zval escapeChar; - zval *expression, expression_sub, *escapeChar_param = NULL, *bindCounts_param = NULL, whereSql; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&expression_sub); - ZVAL_UNDEF(&whereSql); - ZVAL_UNDEF(&escapeChar); - ZVAL_UNDEF(&bindCounts); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ZVAL(expression) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(escapeChar) - Z_PARAM_ARRAY(bindCounts) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &expression, &escapeChar_param, &bindCounts_param); - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); - } else { - zephir_get_strval(&escapeChar, escapeChar_param); - } - if (!bindCounts_param) { - ZEPHIR_INIT_VAR(&bindCounts); - array_init(&bindCounts); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + _2 = !zephir_is_true(&_3); } - - - if (Z_TYPE_P(expression) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&whereSql, this_ptr, "getsqlexpression", NULL, 0, expression, &escapeChar, &bindCounts); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(&whereSql, expression); + if (_2) { + RETURN_MM_NULL(); } - ZEPHIR_CONCAT_SV(return_value, "WHERE ", &whereSql); - RETURN_MM(); + ZEPHIR_CALL_METHOD(&internalParams, &cache, "get", NULL, 0, &cacheKey); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("internalCache"), &cacheKey, &internalParams); + RETURN_CCTOR(&internalParams); } -static PHP_METHOD(Phalcon_Db_Dialect, prepareColumnAlias) +static PHP_METHOD(Phalcon_Mvc_Model_Binder, getParamsFromReflection) { + zend_class_entry *_9$$10, *_17$$24; + zend_string *_4; + zend_ulong _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_8 = NULL, *_12 = NULL, *_13 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *qualified_param = NULL, *alias_param = NULL, *escapeChar_param = NULL, _0$$3; - zval qualified, alias, escapeChar; + zval cacheKey, methodName; + zval params, paramsCache; + zval *handler, handler_sub, *params_param = NULL, *cacheKey_param = NULL, *methodName_param = NULL, methodParams, reflection, paramKey, methodParam, className, realClasses, boundModel, cache, handlerClass, reflectionClass, paramsKeys, paramValue, _0, *_1, _2, _5$$7, _6$$5, _7$$5, _10$$14, _11$$14, _14$$21, _15$$19, _16$$19, _18$$28, _19$$28; zval *this_ptr = getThis(); - ZVAL_UNDEF(&qualified); - ZVAL_UNDEF(&alias); - ZVAL_UNDEF(&escapeChar); - ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&methodParams); + ZVAL_UNDEF(&reflection); + ZVAL_UNDEF(¶mKey); + ZVAL_UNDEF(&methodParam); + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&realClasses); + ZVAL_UNDEF(&boundModel); + ZVAL_UNDEF(&cache); + ZVAL_UNDEF(&handlerClass); + ZVAL_UNDEF(&reflectionClass); + ZVAL_UNDEF(¶msKeys); + ZVAL_UNDEF(¶mValue); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_5$$7); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_7$$5); + ZVAL_UNDEF(&_10$$14); + ZVAL_UNDEF(&_11$$14); + ZVAL_UNDEF(&_14$$21); + ZVAL_UNDEF(&_15$$19); + ZVAL_UNDEF(&_16$$19); + ZVAL_UNDEF(&_18$$28); + ZVAL_UNDEF(&_19$$28); + ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(¶msCache); + ZVAL_UNDEF(&cacheKey); + ZVAL_UNDEF(&methodName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(qualified) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(alias) - Z_PARAM_STR_OR_NULL(escapeChar) + ZEND_PARSE_PARAMETERS_START(4, 4) + Z_PARAM_OBJECT(handler) + Z_PARAM_ARRAY(params) + Z_PARAM_STR(cacheKey) + Z_PARAM_STR(methodName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &qualified_param, &alias_param, &escapeChar_param); - if (UNEXPECTED(Z_TYPE_P(qualified_param) != IS_STRING && Z_TYPE_P(qualified_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'qualified' must be of the type string")); + zephir_fetch_params(1, 4, 0, &handler, ¶ms_param, &cacheKey_param, &methodName_param); + zephir_get_arrval(¶ms, params_param); + zephir_get_strval(&cacheKey, cacheKey_param); + if (UNEXPECTED(Z_TYPE_P(methodName_param) != IS_STRING && Z_TYPE_P(methodName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'methodName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(qualified_param) == IS_STRING)) { - zephir_get_strval(&qualified, qualified_param); - } else { - ZEPHIR_INIT_VAR(&qualified); - } - if (!alias_param) { - ZEPHIR_INIT_VAR(&alias); - } else { - zephir_get_strval(&alias, alias_param); - } - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); + if (EXPECTED(Z_TYPE_P(methodName_param) == IS_STRING)) { + zephir_get_strval(&methodName, methodName_param); } else { - zephir_get_strval(&escapeChar, escapeChar_param); + ZEPHIR_INIT_VAR(&methodName); } - if (!ZEPHIR_IS_STRING(&alias, "")) { - ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "escape", NULL, 66, &alias, &escapeChar); + ZEPHIR_INIT_VAR(&realClasses); + ZVAL_NULL(&realClasses); + ZEPHIR_INIT_VAR(¶msCache); + array_init(¶msCache); + ZEPHIR_INIT_VAR(&reflection); + if (!ZEPHIR_IS_NULL(&methodName)) { + object_init_ex(&reflection, zephir_get_internal_ce(SL("reflectionmethod"))); + ZEPHIR_CALL_METHOD(NULL, &reflection, "__construct", NULL, 448, handler, &methodName); zephir_check_call_status(); - ZEPHIR_CONCAT_VSV(return_value, &qualified, " AS ", &_0$$3); - RETURN_MM(); - } - RETURN_CTOR(&qualified); -} - -static PHP_METHOD(Phalcon_Db_Dialect, prepareTable) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *table_param = NULL, *schema_param = NULL, *alias_param = NULL, *escapeChar_param = NULL, _0, _1$$3, _2$$3, _3$$4, _4$$4; - zval table, schema, alias, escapeChar; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&alias); - ZVAL_UNDEF(&escapeChar); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 4) - Z_PARAM_STR(table) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) - Z_PARAM_STR_OR_NULL(alias) - Z_PARAM_STR_OR_NULL(escapeChar) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 3, &table_param, &schema_param, &alias_param, &escapeChar_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); - } else { - ZEPHIR_INIT_VAR(&table); - } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); - } else { - zephir_get_strval(&schema, schema_param); - } - if (!alias_param) { - ZEPHIR_INIT_VAR(&alias); - } else { - zephir_get_strval(&alias, alias_param); - } - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); } else { - zephir_get_strval(&escapeChar, escapeChar_param); + object_init_ex(&reflection, zephir_get_internal_ce(SL("reflectionfunction"))); + ZEPHIR_CALL_METHOD(NULL, &reflection, "__construct", NULL, 151, handler); + zephir_check_call_status(); } - - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "escape", NULL, 66, &table, &escapeChar); + zephir_read_property(&_0, this_ptr, ZEND_STRL("cache"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&cache, &_0); + ZEPHIR_CALL_METHOD(&methodParams, &reflection, "getparameters", NULL, 152); zephir_check_call_status(); - zephir_get_strval(&table, &_0); - if (!ZEPHIR_IS_STRING(&schema, "")) { - ZEPHIR_CALL_METHOD(&_1$$3, this_ptr, "escapeschema", NULL, 76, &schema, &escapeChar); + ZEPHIR_INIT_VAR(¶msKeys); + zephir_array_keys(¶msKeys, ¶ms); + zephir_is_iterable(&methodParams, 0, "phalcon/Mvc/Model/Binder.zep", 223); + if (Z_TYPE_P(&methodParams) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&methodParams), _3, _4, _1) + { + ZEPHIR_INIT_NVAR(¶mKey); + if (_4 != NULL) { + ZVAL_STR_COPY(¶mKey, _4); + } else { + ZVAL_LONG(¶mKey, _3); + } + ZEPHIR_INIT_NVAR(&methodParam); + ZVAL_COPY(&methodParam, _1); + ZEPHIR_CALL_METHOD(&reflectionClass, &methodParam, "getclass", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&reflectionClass))) { + continue; + } + ZEPHIR_CALL_METHOD(&className, &reflectionClass, "getname", NULL, 0); + zephir_check_call_status(); + if (!(zephir_array_isset(¶ms, ¶mKey))) { + zephir_array_fetch(&_5$$7, ¶msKeys, ¶mKey, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Binder.zep", 175); + ZEPHIR_CPY_WRT(¶mKey, &_5$$7); + } + ZEPHIR_INIT_NVAR(&boundModel); + ZVAL_NULL(&boundModel); + ZEPHIR_OBS_NVAR(¶mValue); + zephir_array_fetch(¶mValue, ¶ms, ¶mKey, PH_NOISY, "phalcon/Mvc/Model/Binder.zep", 179); + ZEPHIR_INIT_NVAR(&_6$$5); + ZVAL_STRING(&_6$$5, "Phalcon\\Mvc\\Model"); + ZEPHIR_CALL_FUNCTION(&_7$$5, "is_subclass_of", &_8, 449, &className, &_6$$5); + zephir_check_call_status(); + if (ZEPHIR_IS_STRING(&className, "Phalcon\\Mvc\\Model")) { + if (Z_TYPE_P(&realClasses) == IS_NULL) { + if (zephir_instance_of_ev(handler, phalcon_mvc_controller_bindmodelinterface_ce)) { + ZEPHIR_INIT_NVAR(&handlerClass); + zephir_get_class(&handlerClass, handler, 0); + _9$$10 = zephir_fetch_class(&handlerClass); + ZEPHIR_CALL_CE_STATIC(&realClasses, _9$$10, "getmodelname", NULL, 0); + zephir_check_call_status(); + } else if (zephir_instance_of_ev(handler, phalcon_mvc_model_binder_bindableinterface_ce)) { + ZEPHIR_CALL_METHOD(&realClasses, handler, "getmodelname", NULL, 0); + zephir_check_call_status(); + } else { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Handler must implement Phalcon\\Mvc\\Model\\Binder\\BindableInterface in order to use Phalcon\\Mvc\\Model as parameter", "phalcon/Mvc/Model/Binder.zep", 191); + return; + } + } + if (Z_TYPE_P(&realClasses) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&className); + if (UNEXPECTED(!(zephir_array_isset_fetch(&className, &realClasses, ¶mKey, 0)))) { + ZEPHIR_INIT_NVAR(&_10$$14); + object_init_ex(&_10$$14, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_11$$14); + ZEPHIR_CONCAT_SVS(&_11$$14, "You should provide model class name for ", ¶mKey, " parameter"); + ZEPHIR_CALL_METHOD(NULL, &_10$$14, "__construct", &_12, 8, &_11$$14); + zephir_check_call_status(); + zephir_throw_exception_debug(&_10$$14, "phalcon/Mvc/Model/Binder.zep", 199); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_METHOD(&boundModel, this_ptr, "findboundmodel", &_13, 0, ¶mValue, &className); + zephir_check_call_status(); + } else if (Z_TYPE_P(&realClasses) == IS_STRING) { + ZEPHIR_CPY_WRT(&className, &realClasses); + ZEPHIR_CALL_METHOD(&boundModel, this_ptr, "findboundmodel", &_13, 0, ¶mValue, &className); + zephir_check_call_status(); + } else { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "getModelName should return array or string", "phalcon/Mvc/Model/Binder.zep", 209); + return; + } + } else if (zephir_is_true(&_7$$5)) { + ZEPHIR_CALL_METHOD(&boundModel, this_ptr, "findboundmodel", &_13, 0, ¶mValue, &className); + zephir_check_call_status(); + } + if (Z_TYPE_P(&boundModel) != IS_NULL) { + zephir_update_property_array(this_ptr, SL("originalValues"), ¶mKey, ¶mValue); + zephir_array_update_zval(¶ms, ¶mKey, &boundModel, PH_COPY | PH_SEPARATE); + zephir_update_property_array(this_ptr, SL("boundModels"), ¶mKey, &boundModel); + zephir_array_update_zval(¶msCache, ¶mKey, &className, PH_COPY | PH_SEPARATE); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &methodParams, "rewind", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_CONCAT_VSV(&_2$$3, &_1$$3, ".", &table); - zephir_get_strval(&table, &_2$$3); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &methodParams, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(¶mKey, &methodParams, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&methodParam, &methodParams, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&reflectionClass, &methodParam, "getclass", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&reflectionClass))) { + continue; + } + ZEPHIR_CALL_METHOD(&className, &reflectionClass, "getname", NULL, 0); + zephir_check_call_status(); + if (!(zephir_array_isset(¶ms, ¶mKey))) { + zephir_array_fetch(&_14$$21, ¶msKeys, ¶mKey, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Binder.zep", 175); + ZEPHIR_CPY_WRT(¶mKey, &_14$$21); + } + ZEPHIR_INIT_NVAR(&boundModel); + ZVAL_NULL(&boundModel); + ZEPHIR_OBS_NVAR(¶mValue); + zephir_array_fetch(¶mValue, ¶ms, ¶mKey, PH_NOISY, "phalcon/Mvc/Model/Binder.zep", 179); + ZEPHIR_INIT_NVAR(&_15$$19); + ZVAL_STRING(&_15$$19, "Phalcon\\Mvc\\Model"); + ZEPHIR_CALL_FUNCTION(&_16$$19, "is_subclass_of", &_8, 449, &className, &_15$$19); + zephir_check_call_status(); + if (ZEPHIR_IS_STRING(&className, "Phalcon\\Mvc\\Model")) { + if (Z_TYPE_P(&realClasses) == IS_NULL) { + if (zephir_instance_of_ev(handler, phalcon_mvc_controller_bindmodelinterface_ce)) { + ZEPHIR_INIT_NVAR(&handlerClass); + zephir_get_class(&handlerClass, handler, 0); + _17$$24 = zephir_fetch_class(&handlerClass); + ZEPHIR_CALL_CE_STATIC(&realClasses, _17$$24, "getmodelname", NULL, 0); + zephir_check_call_status(); + } else if (zephir_instance_of_ev(handler, phalcon_mvc_model_binder_bindableinterface_ce)) { + ZEPHIR_CALL_METHOD(&realClasses, handler, "getmodelname", NULL, 0); + zephir_check_call_status(); + } else { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Handler must implement Phalcon\\Mvc\\Model\\Binder\\BindableInterface in order to use Phalcon\\Mvc\\Model as parameter", "phalcon/Mvc/Model/Binder.zep", 191); + return; + } + } + if (Z_TYPE_P(&realClasses) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&className); + if (UNEXPECTED(!(zephir_array_isset_fetch(&className, &realClasses, ¶mKey, 0)))) { + ZEPHIR_INIT_NVAR(&_18$$28); + object_init_ex(&_18$$28, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_19$$28); + ZEPHIR_CONCAT_SVS(&_19$$28, "You should provide model class name for ", ¶mKey, " parameter"); + ZEPHIR_CALL_METHOD(NULL, &_18$$28, "__construct", &_12, 8, &_19$$28); + zephir_check_call_status(); + zephir_throw_exception_debug(&_18$$28, "phalcon/Mvc/Model/Binder.zep", 199); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_METHOD(&boundModel, this_ptr, "findboundmodel", &_13, 0, ¶mValue, &className); + zephir_check_call_status(); + } else if (Z_TYPE_P(&realClasses) == IS_STRING) { + ZEPHIR_CPY_WRT(&className, &realClasses); + ZEPHIR_CALL_METHOD(&boundModel, this_ptr, "findboundmodel", &_13, 0, ¶mValue, &className); + zephir_check_call_status(); + } else { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "getModelName should return array or string", "phalcon/Mvc/Model/Binder.zep", 209); + return; + } + } else if (zephir_is_true(&_16$$19)) { + ZEPHIR_CALL_METHOD(&boundModel, this_ptr, "findboundmodel", &_13, 0, ¶mValue, &className); + zephir_check_call_status(); + } + if (Z_TYPE_P(&boundModel) != IS_NULL) { + zephir_update_property_array(this_ptr, SL("originalValues"), ¶mKey, ¶mValue); + zephir_array_update_zval(¶ms, ¶mKey, &boundModel, PH_COPY | PH_SEPARATE); + zephir_update_property_array(this_ptr, SL("boundModels"), ¶mKey, &boundModel); + zephir_array_update_zval(¶msCache, ¶mKey, &className, PH_COPY | PH_SEPARATE); + } + ZEPHIR_CALL_METHOD(NULL, &methodParams, "next", NULL, 0); + zephir_check_call_status(); + } } - if (!ZEPHIR_IS_STRING(&alias, "")) { - ZEPHIR_CALL_METHOD(&_3$$4, this_ptr, "escape", NULL, 66, &alias, &escapeChar); + ZEPHIR_INIT_NVAR(&methodParam); + ZEPHIR_INIT_NVAR(¶mKey); + if (Z_TYPE_P(&cache) != IS_NULL) { + ZEPHIR_CALL_METHOD(NULL, &cache, "set", NULL, 0, &cacheKey, ¶msCache); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_4$$4); - ZEPHIR_CONCAT_VSV(&_4$$4, &table, " AS ", &_3$$4); - zephir_get_strval(&table, &_4$$4); } - RETURN_CTOR(&table); + zephir_update_property_array(this_ptr, SL("internalCache"), &cacheKey, ¶msCache); + RETURN_CTOR(¶ms); } -static PHP_METHOD(Phalcon_Db_Dialect, prepareQualified) +static PHP_METHOD(Phalcon_Mvc_Model_Binder, setCache) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *column_param = NULL, *domain_param = NULL, *escapeChar_param = NULL; - zval column, domain, escapeChar, _0$$3; + zval *cache, cache_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&column); - ZVAL_UNDEF(&domain); - ZVAL_UNDEF(&escapeChar); - ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&cache_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(column) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(domain) - Z_PARAM_STR_OR_NULL(escapeChar) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(cache, phalcon_cache_adapter_adapterinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &column_param, &domain_param, &escapeChar_param); - if (UNEXPECTED(Z_TYPE_P(column_param) != IS_STRING && Z_TYPE_P(column_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'column' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(column_param) == IS_STRING)) { - zephir_get_strval(&column, column_param); - } else { - ZEPHIR_INIT_VAR(&column); - } - if (!domain_param) { - ZEPHIR_INIT_VAR(&domain); - } else { - zephir_get_strval(&domain, domain_param); - } - if (!escapeChar_param) { - ZEPHIR_INIT_VAR(&escapeChar); - } else { - zephir_get_strval(&escapeChar, escapeChar_param); - } + zephir_fetch_params_without_memory_grow(1, 0, &cache); - if (!ZEPHIR_IS_STRING(&domain, "")) { - ZEPHIR_INIT_VAR(&_0$$3); - ZEPHIR_CONCAT_VSV(&_0$$3, &domain, ".", &column); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "escape", NULL, 66, &_0$$3, &escapeChar); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "escape", NULL, 66, &column, &escapeChar); - zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("cache"), cache); + RETURN_THISW(); } -zend_object *zephir_init_properties_Phalcon_Db_Dialect(zend_class_entry *class_type) +zend_object *zephir_init_properties_Phalcon_Mvc_Model_Binder(zend_class_entry *class_type) { - zval _0, _1$$3; + zval _0, _2, _4, _1$$3, _3$$4, _5$$5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); ZEPHIR_MM_GROW(); @@ -57855,11 +57984,23 @@ zend_object *zephir_init_properties_Phalcon_Db_Dialect(zend_class_entry *class_t { zval local_this_ptr, *this_ptr = &local_this_ptr; ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("customFunctions"), PH_NOISY_CC | PH_READONLY); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("originalValues"), PH_NOISY_CC | PH_READONLY); if (Z_TYPE_P(&_0) == IS_NULL) { ZEPHIR_INIT_VAR(&_1$$3); array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("customFunctions"), &_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("originalValues"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("internalCache"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("internalCache"), &_3$$4); + } + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("boundModels"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_4) == IS_NULL) { + ZEPHIR_INIT_VAR(&_5$$5); + array_init(&_5$$5); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("boundModels"), &_5$$5); } ZEPHIR_MM_RESTORE(); return Z_OBJ_P(this_ptr); @@ -57876,47 +58017,17 @@ zend_object *zephir_init_properties_Phalcon_Db_Dialect(zend_class_entry *class_t -ZEPHIR_INIT_CLASS(Phalcon_Db_DialectInterface) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_BinderInterface) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, DialectInterface, phalcon, db_dialectinterface, phalcon_db_dialectinterface_method_entry); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model, BinderInterface, phalcon, mvc_model_binderinterface, phalcon_mvc_model_binderinterface_method_entry); return SUCCESS; } -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addColumn); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addForeignKey); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addIndex); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addPrimaryKey); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, createSavepoint); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, createTable); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, createView); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeColumns); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeIndexes); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeReferences); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropColumn); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropForeignKey); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropIndex); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropPrimaryKey); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropTable); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropView); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, forUpdate); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, getColumnDefinition); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, getColumnList); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, getCustomFunctions); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, getSqlExpression); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, limit); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, listTables); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, modifyColumn); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, registerCustomFunction); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, releaseSavepoint); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, rollbackSavepoint); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, select); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, sharedLock); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, supportsReleaseSavepoints); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, supportsSavepoints); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, tableExists); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, tableOptions); -ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, viewExists); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_BinderInterface, bindToHandler); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_BinderInterface, getBoundModels); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_BinderInterface, getCache); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_BinderInterface, setCache); @@ -57927,3797 +58038,4741 @@ ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, viewExists); -ZEPHIR_INIT_CLASS(Phalcon_Db_Enum) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Criteria) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Enum, phalcon, db_enum, NULL, 0); + ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model, Criteria, phalcon, mvc_model_criteria, phalcon_mvc_model_criteria_method_entry, 0); - zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_ASSOC"), 2); + zend_declare_property_null(phalcon_mvc_model_criteria_ce, SL("bindParams"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_criteria_ce, SL("bindTypes"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_mvc_model_criteria_ce, SL("hiddenParamNumber"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_criteria_ce, SL("model"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_criteria_ce, SL("params"), ZEND_ACC_PROTECTED); + phalcon_mvc_model_criteria_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_Criteria; - zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_BOTH"), 4); + zend_class_implements(phalcon_mvc_model_criteria_ce, 1, phalcon_mvc_model_criteriainterface_ce); + zend_class_implements(phalcon_mvc_model_criteria_ce, 1, phalcon_di_injectionawareinterface_ce); + return SUCCESS; +} - zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_BOUND"), 6); - - zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_CLASS"), 8); - - zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_CLASSTYPE"), 262144); - - zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_COLUMN"), 7); - - zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_FUNC"), 10); +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, andWhere) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *conditions_param = NULL, *bindParams = NULL, bindParams_sub, *bindTypes = NULL, bindTypes_sub, __$null, currentConditions, _0, _1$$3; + zval conditions; + zval *this_ptr = getThis(); - zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_GROUP"), 65536); + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(&bindParams_sub); + ZVAL_UNDEF(&bindTypes_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(¤tConditions); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(conditions) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(bindParams) + Z_PARAM_ZVAL_OR_NULL(bindTypes) + ZEND_PARSE_PARAMETERS_END(); +#endif - zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_INTO"), 9); - zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_KEY_PAIR"), 12); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &conditions_param, &bindParams, &bindTypes); + if (UNEXPECTED(Z_TYPE_P(conditions_param) != IS_STRING && Z_TYPE_P(conditions_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'conditions' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(conditions_param) == IS_STRING)) { + zephir_get_strval(&conditions, conditions_param); + } else { + ZEPHIR_INIT_VAR(&conditions); + } + if (!bindParams) { + bindParams = &bindParams_sub; + bindParams = &__$null; + } + if (!bindTypes) { + bindTypes = &bindTypes_sub; + bindTypes = &__$null; + } - zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_LAZY"), 1); - zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_NAMED"), 11); + ZEPHIR_OBS_VAR(¤tConditions); + zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_string_fetch(¤tConditions, &_0, SL("conditions"), 0)) { + ZEPHIR_INIT_VAR(&_1$$3); + ZEPHIR_CONCAT_SVSVS(&_1$$3, "(", ¤tConditions, ") AND (", &conditions, ")"); + zephir_get_strval(&conditions, &_1$$3); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "where", NULL, 0, &conditions, bindParams, bindTypes); + zephir_check_call_status(); + RETURN_MM(); +} - zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_NUM"), 3); +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, betweenWhere) +{ + zval _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *expr_param = NULL, *minimum, minimum_sub, *maximum, maximum_sub, hiddenParam, minimumKey, nextHiddenParam, maximumKey, _0; + zval expr; + zval *this_ptr = getThis(); - zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_OBJ"), 5); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&minimum_sub); + ZVAL_UNDEF(&maximum_sub); + ZVAL_UNDEF(&hiddenParam); + ZVAL_UNDEF(&minimumKey); + ZVAL_UNDEF(&nextHiddenParam); + ZVAL_UNDEF(&maximumKey); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(expr) + Z_PARAM_ZVAL(minimum) + Z_PARAM_ZVAL(maximum) + ZEND_PARSE_PARAMETERS_END(); +#endif - zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_PROPS_LATE"), 1048576); - zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_SERIALIZE"), 524288); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &expr_param, &minimum, &maximum); + if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { + zephir_get_strval(&expr, expr_param); + } else { + ZEPHIR_INIT_VAR(&expr); + } - zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_UNIQUE"), 196608); - return SUCCESS; + ZEPHIR_OBS_VAR(&hiddenParam); + zephir_read_property(&hiddenParam, this_ptr, ZEND_STRL("hiddenParamNumber"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(&nextHiddenParam); + ZVAL_LONG(&nextHiddenParam, (zephir_get_numberval(&hiddenParam) + 1)); + ZEPHIR_INIT_VAR(&minimumKey); + ZEPHIR_CONCAT_SV(&minimumKey, "ACP", &hiddenParam); + ZEPHIR_INIT_VAR(&maximumKey); + ZEPHIR_CONCAT_SV(&maximumKey, "ACP", &nextHiddenParam); + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_CONCAT_VSVSVS(&_0, &expr, " BETWEEN :", &minimumKey, ": AND :", &maximumKey, ":"); + ZEPHIR_INIT_VAR(&_1); + zephir_create_array(&_1, 2, 0); + zephir_array_update_zval(&_1, &minimumKey, minimum, PH_COPY); + zephir_array_update_zval(&_1, &maximumKey, maximum, PH_COPY); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "andwhere", NULL, 0, &_0, &_1); + zephir_check_call_status(); + ZEPHIR_SEPARATE(&nextHiddenParam); + zephir_increment(&nextHiddenParam); + zephir_update_property_zval(this_ptr, ZEND_STRL("hiddenParamNumber"), &nextHiddenParam); + RETURN_THIS(); } +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, bind) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_bool merge, _5; + zval *bindParams_param = NULL, *merge_param = NULL, _0, _3, _4, _1$$3, _2$$3, _6$$4, _7$$4, _8$$4, _9$$4, _10$$5; + zval bindParams; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_8$$4); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&_10$$5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(bindParams) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(merge) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &bindParams_param, &merge_param); + ZEPHIR_OBS_COPY_OR_DUP(&bindParams, bindParams_param); + if (!merge_param) { + merge = 0; + } else { + merge = zephir_get_boolval(merge_param); + } - -ZEPHIR_INIT_CLASS(Phalcon_Db_Exception) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db, Exception, phalcon, db_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; + zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_string(&_0, SL("bind")))) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "bind"); + zephir_update_property_array(this_ptr, SL("params"), &_2$$3, &_1$$3); + } + zephir_read_property(&_3, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_OBS_VAR(&_4); + zephir_array_fetch_string(&_4, &_3, SL("bind"), PH_NOISY, "phalcon/Mvc/Model/Criteria.zep", 129); + _5 = Z_TYPE_P(&_4) == IS_ARRAY; + if (_5) { + _5 = merge; + } + if (_5) { + zephir_read_property(&_6$$4, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_7$$4, &_6$$4, SL("bind"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Criteria.zep", 130); + ZEPHIR_INIT_VAR(&_8$$4); + zephir_add_function(&_8$$4, &_7$$4, &bindParams); + ZEPHIR_INIT_VAR(&_9$$4); + ZVAL_STRING(&_9$$4, "bind"); + zephir_update_property_array(this_ptr, SL("params"), &_9$$4, &_8$$4); + } else { + ZEPHIR_INIT_VAR(&_10$$5); + ZVAL_STRING(&_10$$5, "bind"); + zephir_update_property_array(this_ptr, SL("params"), &_10$$5, &bindParams); + } + RETURN_THIS(); } +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, bindTypes) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *bindTypes_param = NULL, _0; + zval bindTypes; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(bindTypes) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &bindTypes_param); + ZEPHIR_OBS_COPY_OR_DUP(&bindTypes, bindTypes_param); - -ZEPHIR_INIT_CLASS(Phalcon_Db_Index) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Index, phalcon, db_index, phalcon_db_index_method_entry, 0); - - zend_declare_property_null(phalcon_db_index_ce, SL("columns"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_index_ce, SL("name"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_index_ce, SL("type"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_db_index_ce, 1, phalcon_db_indexinterface_ce); - return SUCCESS; + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "bindTypes"); + zephir_update_property_array(this_ptr, SL("params"), &_0, &bindTypes); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Index, getColumns) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, cache) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *cache_param = NULL, _0; + zval cache; zval *this_ptr = getThis(); + ZVAL_UNDEF(&cache); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(cache) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "columns"); -} - -static PHP_METHOD(Phalcon_Db_Index, getName) -{ - zval *this_ptr = getThis(); - + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &cache_param); + ZEPHIR_OBS_COPY_OR_DUP(&cache, cache_param); - RETURN_MEMBER(getThis(), "name"); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "cache"); + zephir_update_property_array(this_ptr, SL("params"), &_0, &cache); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Index, getType) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, columns) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *columns, columns_sub, _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&columns_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(columns) + ZEND_PARSE_PARAMETERS_END(); +#endif + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &columns); - RETURN_MEMBER(getThis(), "type"); + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "columns"); + zephir_update_property_array(this_ptr, SL("params"), &_0, columns); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Index, __construct) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, conditions) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval columns; - zval *name_param = NULL, *columns_param = NULL, *type_param = NULL; - zval name, type; + zval *conditions_param = NULL, _0; + zval conditions; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(name) - Z_PARAM_ARRAY(columns) - Z_PARAM_OPTIONAL - Z_PARAM_STR(type) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(conditions) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &name_param, &columns_param, &type_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + zephir_fetch_params(1, 1, 0, &conditions_param); + if (UNEXPECTED(Z_TYPE_P(conditions_param) != IS_STRING && Z_TYPE_P(conditions_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'conditions' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - ZEPHIR_OBS_COPY_OR_DUP(&columns, columns_param); - if (!type_param) { - ZEPHIR_INIT_VAR(&type); - ZVAL_STRING(&type, ""); + if (EXPECTED(Z_TYPE_P(conditions_param) == IS_STRING)) { + zephir_get_strval(&conditions, conditions_param); } else { - zephir_get_strval(&type, type_param); + ZEPHIR_INIT_VAR(&conditions); } - zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); - zephir_update_property_zval(this_ptr, ZEND_STRL("columns"), &columns); - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &type); - ZEPHIR_MM_RESTORE(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Db_IndexInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, IndexInterface, phalcon, db_indexinterface, phalcon_db_indexinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getColumns); -ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getName); -ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getType); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Db_Profiler) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Profiler, phalcon, db_profiler, phalcon_db_profiler_method_entry, 0); - - zend_declare_property_null(phalcon_db_profiler_ce, SL("activeProfile"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_profiler_ce, SL("allProfiles"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_db_profiler_ce, SL("totalSeconds"), 0, ZEND_ACC_PROTECTED); - return SUCCESS; + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "conditions"); + zephir_update_property_array(this_ptr, SL("params"), &_0, &conditions); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Profiler, getLastProfile) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, createBuilder) { + zval container, manager, builder, _1, _2, _3, _4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_0 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&builder); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + + ZEPHIR_MM_GROW(); - RETURN_MEMBER(getThis(), "activeProfile"); + ZEPHIR_CALL_METHOD(&container, this_ptr, "getdi", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&container) != IS_OBJECT) { + ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_0, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setdi", NULL, 0, &container); + zephir_check_call_status(); + } + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "modelsManager"); + ZEPHIR_CALL_METHOD(&_1, &container, "getshared", NULL, 0, &_2); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&manager, &_1); + zephir_read_property(&_3, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&builder, &manager, "createbuilder", NULL, 0, &_3); + zephir_check_call_status(); + zephir_read_property(&_4, this_ptr, ZEND_STRL("model"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &builder, "from", NULL, 0, &_4); + zephir_check_call_status(); + RETURN_CCTOR(&builder); } -static PHP_METHOD(Phalcon_Db_Profiler, getNumberTotalStatements) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, distinct) { - zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *distinct, distinct_sub, _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&distinct_sub); ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(distinct) + ZEND_PARSE_PARAMETERS_END(); +#endif - - zephir_read_property(&_0, this_ptr, ZEND_STRL("allProfiles"), PH_NOISY_CC | PH_READONLY); - RETURN_LONG(zephir_fast_count_int(&_0)); -} - -static PHP_METHOD(Phalcon_Db_Profiler, getTotalElapsedSeconds) -{ - zval *this_ptr = getThis(); - + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &distinct); - RETURN_MEMBER(getThis(), "totalSeconds"); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "distinct"); + zephir_update_property_array(this_ptr, SL("params"), &_0, distinct); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Profiler, getProfiles) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, execute) { + zend_class_entry *_1; + zval model, _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&_0); - RETURN_MEMBER(getThis(), "allProfiles"); + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&model, this_ptr, "getmodelname", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&model) != IS_STRING)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Model name must be string", "phalcon/Mvc/Model/Criteria.zep", 245); + return; + } + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getparams", NULL, 0); + zephir_check_call_status(); + _1 = zephir_fetch_class(&model); + ZEPHIR_RETURN_CALL_CE_STATIC(_1, "find", NULL, 0, &_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Profiler, reset) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, forUpdate) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *forUpdate_param = NULL, _0, _1; + zend_bool forUpdate; zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(forUpdate) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &forUpdate_param); + if (!forUpdate_param) { + forUpdate = 1; + } else { + forUpdate = zephir_get_boolval(forUpdate_param); + } + ZEPHIR_INIT_VAR(&_0); - array_init(&_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("allProfiles"), &_0); + ZVAL_STRING(&_0, "for_update"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_BOOL(&_1, forUpdate); + zephir_update_property_array(this_ptr, SL("params"), &_0, &_1); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Profiler, startProfile) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, fromInput) { + zend_bool _6$$4, _7$$7, _11$$10, _12$$13; + zend_string *_5$$3; + zend_ulong _4$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *sqlStatement_param = NULL, *sqlVariables = NULL, sqlVariables_sub, *sqlBindTypes = NULL, sqlBindTypes_sub, __$true, __$null, activeProfile, _0; - zval sqlStatement; + zval data, conditions, bind, _1$$3; + zval modelName, operator, _17$$16; + zval *container, container_sub, *modelName_param = NULL, *data_param = NULL, *operator_param = NULL, __$null, attribute, field, value, type, metaData, model, dataTypes, criteria, columnMap, _0$$3, *_2$$3, _3$$3, _8$$9, _9$$9, _10$$8, _13$$15, _14$$15, _15$$14, _16$$16; zval *this_ptr = getThis(); - ZVAL_UNDEF(&sqlStatement); - ZVAL_UNDEF(&sqlVariables_sub); - ZVAL_UNDEF(&sqlBindTypes_sub); - ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&container_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&activeProfile); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&attribute); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&metaData); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&dataTypes); + ZVAL_UNDEF(&criteria); + ZVAL_UNDEF(&columnMap); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_8$$9); + ZVAL_UNDEF(&_9$$9); + ZVAL_UNDEF(&_10$$8); + ZVAL_UNDEF(&_13$$15); + ZVAL_UNDEF(&_14$$15); + ZVAL_UNDEF(&_15$$14); + ZVAL_UNDEF(&_16$$16); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&operator); + ZVAL_UNDEF(&_17$$16); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(&bind); + ZVAL_UNDEF(&_1$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(sqlStatement) + ZEND_PARSE_PARAMETERS_START(3, 4) + Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + Z_PARAM_STR(modelName) + Z_PARAM_ARRAY(data) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(sqlVariables) - Z_PARAM_ZVAL_OR_NULL(sqlBindTypes) + Z_PARAM_STR(operator) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &sqlStatement_param, &sqlVariables, &sqlBindTypes); - zephir_get_strval(&sqlStatement, sqlStatement_param); - if (!sqlVariables) { - sqlVariables = &sqlVariables_sub; - sqlVariables = &__$null; + zephir_fetch_params(1, 3, 1, &container, &modelName_param, &data_param, &operator_param); + if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { + zephir_get_strval(&modelName, modelName_param); + } else { + ZEPHIR_INIT_VAR(&modelName); + } + ZEPHIR_OBS_COPY_OR_DUP(&data, data_param); + if (!operator_param) { + ZEPHIR_INIT_VAR(&operator); + ZVAL_STRING(&operator, "AND"); + } else { + if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { + zephir_get_strval(&operator, operator_param); + } else { + ZEPHIR_INIT_VAR(&operator); } - if (!sqlBindTypes) { - sqlBindTypes = &sqlBindTypes_sub; - sqlBindTypes = &__$null; } - ZEPHIR_INIT_VAR(&activeProfile); - object_init_ex(&activeProfile, phalcon_db_profiler_item_ce); - if (zephir_has_constructor(&activeProfile)) { - ZEPHIR_CALL_METHOD(NULL, &activeProfile, "__construct", NULL, 0); + ZEPHIR_INIT_VAR(&conditions); + array_init(&conditions); + if (zephir_fast_count_int(&data)) { + ZEPHIR_INIT_VAR(&_0$$3); + ZVAL_STRING(&_0$$3, "modelsMetadata"); + ZEPHIR_CALL_METHOD(&metaData, container, "getshared", NULL, 0, &_0$$3); zephir_check_call_status(); - } - - ZEPHIR_CALL_METHOD(NULL, &activeProfile, "setsqlstatement", NULL, 217, &sqlStatement); - zephir_check_call_status(); - if (Z_TYPE_P(sqlVariables) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(NULL, &activeProfile, "setsqlvariables", NULL, 218, sqlVariables); + ZEPHIR_INIT_VAR(&_1$$3); + zephir_create_array(&_1$$3, 2, 0); + zephir_array_fast_append(&_1$$3, &__$null); + zephir_array_fast_append(&_1$$3, container); + ZEPHIR_INIT_VAR(&model); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(&model, &modelName, &_1$$3); zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&dataTypes, &metaData, "getdatatypes", NULL, 0, &model); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getreversecolumnmap", NULL, 0, &model); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&bind); + array_init(&bind); + zephir_is_iterable(&data, 0, "phalcon/Mvc/Model/Criteria.zep", 322); + if (Z_TYPE_P(&data) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _4$$3, _5$$3, _2$$3) + { + ZEPHIR_INIT_NVAR(&field); + if (_5$$3 != NULL) { + ZVAL_STR_COPY(&field, _5$$3); + } else { + ZVAL_LONG(&field, _4$$3); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _2$$3); + _6$$4 = Z_TYPE_P(&columnMap) == IS_ARRAY; + if (_6$$4) { + _6$$4 = ((zephir_fast_count_int(&columnMap)) ? 1 : 0); + } + if (_6$$4) { + ZEPHIR_OBS_NVAR(&attribute); + zephir_array_fetch(&attribute, &columnMap, &field, PH_NOISY, "phalcon/Mvc/Model/Criteria.zep", 297); + } else { + ZEPHIR_CPY_WRT(&attribute, &field); + } + ZEPHIR_OBS_NVAR(&type); + if (zephir_array_isset_fetch(&type, &dataTypes, &attribute, 0)) { + _7$$7 = Z_TYPE_P(&value) != IS_NULL; + if (_7$$7) { + _7$$7 = !ZEPHIR_IS_STRING_IDENTICAL(&value, ""); + } + if (_7$$7) { + if (ZEPHIR_IS_LONG(&type, 2)) { + ZEPHIR_INIT_NVAR(&_8$$9); + ZEPHIR_CONCAT_SVSVS(&_8$$9, "[", &field, "] LIKE :", &field, ":"); + zephir_array_append(&conditions, &_8$$9, PH_SEPARATE, "phalcon/Mvc/Model/Criteria.zep", 308); + ZEPHIR_INIT_NVAR(&_9$$9); + ZEPHIR_CONCAT_SVS(&_9$$9, "%", &value, "%"); + zephir_array_update_zval(&bind, &field, &_9$$9, PH_COPY | PH_SEPARATE); + continue; + } + ZEPHIR_INIT_NVAR(&_10$$8); + ZEPHIR_CONCAT_SVSVS(&_10$$8, "[", &field, "] = :", &field, ":"); + zephir_array_append(&conditions, &_10$$8, PH_SEPARATE, "phalcon/Mvc/Model/Criteria.zep", 317); + zephir_array_update_zval(&bind, &field, &value, PH_COPY | PH_SEPARATE); + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &data, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3$$3, &data, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&field, &data, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &data, "current", NULL, 0); + zephir_check_call_status(); + _11$$10 = Z_TYPE_P(&columnMap) == IS_ARRAY; + if (_11$$10) { + _11$$10 = ((zephir_fast_count_int(&columnMap)) ? 1 : 0); + } + if (_11$$10) { + ZEPHIR_OBS_NVAR(&attribute); + zephir_array_fetch(&attribute, &columnMap, &field, PH_NOISY, "phalcon/Mvc/Model/Criteria.zep", 297); + } else { + ZEPHIR_CPY_WRT(&attribute, &field); + } + ZEPHIR_OBS_NVAR(&type); + if (zephir_array_isset_fetch(&type, &dataTypes, &attribute, 0)) { + _12$$13 = Z_TYPE_P(&value) != IS_NULL; + if (_12$$13) { + _12$$13 = !ZEPHIR_IS_STRING_IDENTICAL(&value, ""); + } + if (_12$$13) { + if (ZEPHIR_IS_LONG(&type, 2)) { + ZEPHIR_INIT_NVAR(&_13$$15); + ZEPHIR_CONCAT_SVSVS(&_13$$15, "[", &field, "] LIKE :", &field, ":"); + zephir_array_append(&conditions, &_13$$15, PH_SEPARATE, "phalcon/Mvc/Model/Criteria.zep", 308); + ZEPHIR_INIT_NVAR(&_14$$15); + ZEPHIR_CONCAT_SVS(&_14$$15, "%", &value, "%"); + zephir_array_update_zval(&bind, &field, &_14$$15, PH_COPY | PH_SEPARATE); + continue; + } + ZEPHIR_INIT_NVAR(&_15$$14); + ZEPHIR_CONCAT_SVSVS(&_15$$14, "[", &field, "] = :", &field, ":"); + zephir_array_append(&conditions, &_15$$14, PH_SEPARATE, "phalcon/Mvc/Model/Criteria.zep", 317); + zephir_array_update_zval(&bind, &field, &value, PH_COPY | PH_SEPARATE); + } + } + ZEPHIR_CALL_METHOD(NULL, &data, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&field); } - if (Z_TYPE_P(sqlBindTypes) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(NULL, &activeProfile, "setsqlbindtypes", NULL, 219, sqlBindTypes); + ZEPHIR_INIT_VAR(&criteria); + object_init_ex(&criteria, phalcon_mvc_model_criteria_ce); + if (zephir_has_constructor(&criteria)) { + ZEPHIR_CALL_METHOD(NULL, &criteria, "__construct", NULL, 0); zephir_check_call_status(); } - ZEPHIR_CALL_FUNCTION(&_0, "hrtime", NULL, 202, &__$true); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &activeProfile, "setinitialtime", NULL, 220, &_0); + + ZEPHIR_CALL_METHOD(NULL, &criteria, "setdi", NULL, 441, container); zephir_check_call_status(); - if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("beforestartprofile")) == SUCCESS)) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "beforestartprofile", NULL, 0, &activeProfile); + if (zephir_fast_count_int(&conditions)) { + ZEPHIR_INIT_VAR(&_16$$16); + ZEPHIR_INIT_VAR(&_17$$16); + ZEPHIR_CONCAT_SVS(&_17$$16, " ", &operator, " "); + zephir_fast_join(&_16$$16, &_17$$16, &conditions); + ZEPHIR_CALL_METHOD(NULL, &criteria, "where", NULL, 450, &_16$$16); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &criteria, "bind", NULL, 451, &bind); zephir_check_call_status(); } - zephir_update_property_zval(this_ptr, ZEND_STRL("activeProfile"), &activeProfile); - RETURN_THIS(); + ZEPHIR_CALL_METHOD(NULL, &criteria, "setmodelname", NULL, 442, &modelName); + zephir_check_call_status(); + RETURN_CCTOR(&criteria); } -static PHP_METHOD(Phalcon_Db_Profiler, stopProfile) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, getColumns) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval __$true, activeProfile, finalTime, initialTime, _0, _1, _2; + zval columns, _0; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&activeProfile); - ZVAL_UNDEF(&finalTime); - ZVAL_UNDEF(&initialTime); + ZVAL_UNDEF(&columns); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZEPHIR_MM_GROW(); - ZEPHIR_CALL_FUNCTION(&finalTime, "hrtime", NULL, 202, &__$true); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("activeProfile"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&activeProfile, &_0); - ZEPHIR_CALL_METHOD(NULL, &activeProfile, "setfinaltime", NULL, 0, &finalTime); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&initialTime, &activeProfile, "getinitialtime", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("totalSeconds"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - zephir_sub_function(&_1, &finalTime, &initialTime); - ZEPHIR_INIT_VAR(&_2); - zephir_add_function(&_2, &_0, &_1); - zephir_update_property_zval(this_ptr, ZEND_STRL("totalSeconds"), &_2); - zephir_update_property_array_append(this_ptr, SL("allProfiles"), &activeProfile); - if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("afterendprofile")) == SUCCESS)) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "afterendprofile", NULL, 0, &activeProfile); - zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_string_fetch(&columns, &_0, SL("columns"), 1))) { + RETURN_NULL(); } - RETURN_THIS(); + RETURN_CTORW(&columns); } +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, getConditions) +{ + zval conditions, _0; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(&_0); -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Db_RawValue) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Db, RawValue, phalcon, db_rawvalue, phalcon_db_rawvalue_method_entry, 0); - zend_declare_property_null(phalcon_db_rawvalue_ce, SL("value"), ZEND_ACC_PROTECTED); - return SUCCESS; + zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_string_fetch(&conditions, &_0, SL("conditions"), 1))) { + RETURN_NULL(); + } + RETURN_CTORW(&conditions); } -static PHP_METHOD(Phalcon_Db_RawValue, getValue) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, getDI) { + zval _0, _1; zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + - RETURN_MEMBER(getThis(), "value"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_1, &_0, SL("di"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Criteria.zep", 379); + RETURN_CTORW(&_1); } -static PHP_METHOD(Phalcon_Db_RawValue, __toString) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, getGroupBy) { + zval group, _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&group); + ZVAL_UNDEF(&_0); - RETURN_MEMBER(getThis(), "value"); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_string_fetch(&group, &_0, SL("group"), 1))) { + RETURN_NULL(); + } + RETURN_CTORW(&group); } -static PHP_METHOD(Phalcon_Db_RawValue, __construct) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, getHaving) { - zval _2$$5; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *value, value_sub, _0$$3, _1$$4; + zval having, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$5); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif - + ZVAL_UNDEF(&having); + ZVAL_UNDEF(&_0); - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &value); - if (ZEPHIR_IS_STRING_IDENTICAL(value, "")) { - ZEPHIR_INIT_VAR(&_0$$3); - ZEPHIR_INIT_NVAR(&_0$$3); - ZVAL_STRING(&_0$$3, "''"); - zephir_update_property_zval(this_ptr, ZEND_STRL("value"), &_0$$3); - } else if (Z_TYPE_P(value) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$4); - ZEPHIR_INIT_NVAR(&_1$$4); - ZVAL_STRING(&_1$$4, "NULL"); - zephir_update_property_zval(this_ptr, ZEND_STRL("value"), &_1$$4); - } else { - zephir_cast_to_string(&_2$$5, value); - zephir_update_property_zval(this_ptr, ZEND_STRL("value"), &_2$$5); + zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_string_fetch(&having, &_0, SL("having"), 1))) { + RETURN_NULL(); } - ZEPHIR_MM_RESTORE(); + RETURN_CTORW(&having); } +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, getLimit) +{ + zval limit, _0; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&limit); + ZVAL_UNDEF(&_0); -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Db_Reference) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Reference, phalcon, db_reference, phalcon_db_reference_method_entry, 0); - zend_declare_property_null(phalcon_db_reference_ce, SL("columns"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_reference_ce, SL("name"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_reference_ce, SL("referencedColumns"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_reference_ce, SL("referencedSchema"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_reference_ce, SL("referencedTable"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_reference_ce, SL("schemaName"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_reference_ce, SL("onDelete"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_reference_ce, SL("onUpdate"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_db_reference_ce, 1, phalcon_db_referenceinterface_ce); - return SUCCESS; + zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_string_fetch(&limit, &_0, SL("limit"), 1))) { + RETURN_NULL(); + } + RETURN_CTORW(&limit); } -static PHP_METHOD(Phalcon_Db_Reference, getColumns) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, getModelName) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "columns"); + RETURN_MEMBER(getThis(), "model"); } -static PHP_METHOD(Phalcon_Db_Reference, getName) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, getOrderBy) { + zval order, _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&order); + ZVAL_UNDEF(&_0); + - RETURN_MEMBER(getThis(), "name"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_string_fetch(&order, &_0, SL("order"), 1))) { + RETURN_NULL(); + } + RETURN_CTORW(&order); } -static PHP_METHOD(Phalcon_Db_Reference, getReferencedColumns) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, getParams) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "referencedColumns"); + RETURN_MEMBER(getThis(), "params"); } -static PHP_METHOD(Phalcon_Db_Reference, getReferencedSchema) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, getWhere) { + zval conditions, _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(&_0); + - RETURN_MEMBER(getThis(), "referencedSchema"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_string_fetch(&conditions, &_0, SL("conditions"), 1))) { + RETURN_NULL(); + } + RETURN_CTORW(&conditions); } -static PHP_METHOD(Phalcon_Db_Reference, getReferencedTable) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, groupBy) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *group, group_sub, _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&group_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(group) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "referencedTable"); -} - -static PHP_METHOD(Phalcon_Db_Reference, getSchemaName) -{ - zval *this_ptr = getThis(); - + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &group); - RETURN_MEMBER(getThis(), "schemaName"); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "group"); + zephir_update_property_array(this_ptr, SL("params"), &_0, group); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Reference, getOnDelete) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, having) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *having, having_sub, _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&having_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(having) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "onDelete"); -} - -static PHP_METHOD(Phalcon_Db_Reference, getOnUpdate) -{ - zval *this_ptr = getThis(); - + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &having); - RETURN_MEMBER(getThis(), "onUpdate"); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "having"); + zephir_update_property_array(this_ptr, SL("params"), &_0, having); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Reference, __construct) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, innerJoin) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval definition; - zval *name_param = NULL, *definition_param = NULL, columns, schema, referencedTable, referencedSchema, referencedColumns, onDelete, onUpdate; - zval name; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *model_param = NULL, *conditions = NULL, conditions_sub, *alias = NULL, alias_sub, __$null, _0; + zval model; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&referencedTable); - ZVAL_UNDEF(&referencedSchema); - ZVAL_UNDEF(&referencedColumns); - ZVAL_UNDEF(&onDelete); - ZVAL_UNDEF(&onUpdate); - ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&conditions_sub); + ZVAL_UNDEF(&alias_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(name) - Z_PARAM_ARRAY(definition) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(model) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(conditions) + Z_PARAM_ZVAL_OR_NULL(alias) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &name_param, &definition_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + zephir_fetch_params(1, 1, 2, &model_param, &conditions, &alias); + if (UNEXPECTED(Z_TYPE_P(model_param) != IS_STRING && Z_TYPE_P(model_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'model' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); + if (EXPECTED(Z_TYPE_P(model_param) == IS_STRING)) { + zephir_get_strval(&model, model_param); } else { - ZEPHIR_INIT_VAR(&name); - } - ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); - ZEPHIR_OBS_VAR(&referencedTable); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&referencedTable, &definition, SL("referencedTable"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Referenced table is required", "phalcon/Db/Reference.zep", 103); - return; - } - zephir_update_property_zval(this_ptr, ZEND_STRL("referencedTable"), &referencedTable); - ZEPHIR_OBS_VAR(&columns); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&columns, &definition, SL("columns"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Foreign key columns are required", "phalcon/Db/Reference.zep", 109); - return; - } - zephir_update_property_zval(this_ptr, ZEND_STRL("columns"), &columns); - ZEPHIR_OBS_VAR(&referencedColumns); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&referencedColumns, &definition, SL("referencedColumns"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Referenced columns of the foreign key are required", "phalcon/Db/Reference.zep", 117); - return; + ZEPHIR_INIT_VAR(&model); } - zephir_update_property_zval(this_ptr, ZEND_STRL("referencedColumns"), &referencedColumns); - ZEPHIR_OBS_VAR(&schema); - if (zephir_array_isset_string_fetch(&schema, &definition, SL("schema"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("schemaName"), &schema); + if (!conditions) { + conditions = &conditions_sub; + conditions = &__$null; } - ZEPHIR_OBS_VAR(&referencedSchema); - if (zephir_array_isset_string_fetch(&referencedSchema, &definition, SL("referencedSchema"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("referencedSchema"), &referencedSchema); + if (!alias) { + alias = &alias_sub; + alias = &__$null; } - ZEPHIR_OBS_VAR(&onDelete); - if (zephir_array_isset_string_fetch(&onDelete, &definition, SL("onDelete"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("onDelete"), &onDelete); - } - ZEPHIR_OBS_VAR(&onUpdate); - if (zephir_array_isset_string_fetch(&onUpdate, &definition, SL("onUpdate"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("onUpdate"), &onUpdate); - } - if (UNEXPECTED(zephir_fast_count_int(&columns) != zephir_fast_count_int(&referencedColumns))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Number of columns is not equals than the number of columns referenced", "phalcon/Db/Reference.zep", 141); - return; - } - ZEPHIR_MM_RESTORE(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Db_ReferenceInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, ReferenceInterface, phalcon, db_referenceinterface, phalcon_db_referenceinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Db_ReferenceInterface, getColumns); -ZEPHIR_DOC_METHOD(Phalcon_Db_ReferenceInterface, getName); -ZEPHIR_DOC_METHOD(Phalcon_Db_ReferenceInterface, getOnDelete); -ZEPHIR_DOC_METHOD(Phalcon_Db_ReferenceInterface, getOnUpdate); -ZEPHIR_DOC_METHOD(Phalcon_Db_ReferenceInterface, getReferencedColumns); -ZEPHIR_DOC_METHOD(Phalcon_Db_ReferenceInterface, getReferencedSchema); -ZEPHIR_DOC_METHOD(Phalcon_Db_ReferenceInterface, getReferencedTable); -ZEPHIR_DOC_METHOD(Phalcon_Db_ReferenceInterface, getSchemaName); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Db_ResultInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, ResultInterface, phalcon, db_resultinterface, phalcon_db_resultinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Db_ResultInterface, dataSeek); -ZEPHIR_DOC_METHOD(Phalcon_Db_ResultInterface, execute); -ZEPHIR_DOC_METHOD(Phalcon_Db_ResultInterface, fetch); -ZEPHIR_DOC_METHOD(Phalcon_Db_ResultInterface, fetchAll); -ZEPHIR_DOC_METHOD(Phalcon_Db_ResultInterface, fetchArray); -ZEPHIR_DOC_METHOD(Phalcon_Db_ResultInterface, getInternalResult); -ZEPHIR_DOC_METHOD(Phalcon_Db_ResultInterface, numRows); -ZEPHIR_DOC_METHOD(Phalcon_Db_ResultInterface, setFetchMode); - - - - -static int phalcon_db_checktype(zval *return_value, zval *placeholder) { - - if (Z_TYPE_P(placeholder) != IS_STRING) { - - } - - return 0; -} - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Db_Adapter_AbstractAdapter) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Db\\Adapter, AbstractAdapter, phalcon, db_adapter_abstractadapter, phalcon_db_adapter_abstractadapter_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_long(phalcon_db_adapter_abstractadapter_ce, SL("connectionConsecutive"), 0, ZEND_ACC_PROTECTED|ZEND_ACC_STATIC); - zend_declare_property_null(phalcon_db_adapter_abstractadapter_ce, SL("connectionId"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_adapter_abstractadapter_ce, SL("descriptor"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_adapter_abstractadapter_ce, SL("dialect"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_adapter_abstractadapter_ce, SL("dialectType"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_adapter_abstractadapter_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_adapter_abstractadapter_ce, SL("realSqlStatement"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_adapter_abstractadapter_ce, SL("sqlBindTypes"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_adapter_abstractadapter_ce, SL("sqlStatement"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_adapter_abstractadapter_ce, SL("sqlVariables"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_db_adapter_abstractadapter_ce, SL("transactionLevel"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_db_adapter_abstractadapter_ce, SL("transactionsWithSavepoints"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_adapter_abstractadapter_ce, SL("type"), ZEND_ACC_PROTECTED); - phalcon_db_adapter_abstractadapter_ce->create_object = zephir_init_properties_Phalcon_Db_Adapter_AbstractAdapter; - - zend_class_implements(phalcon_db_adapter_abstractadapter_ce, 1, phalcon_db_adapter_adapterinterface_ce); - zend_class_implements(phalcon_db_adapter_abstractadapter_ce, 1, phalcon_events_eventsawareinterface_ce); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getDialectType) -{ - zval *this_ptr = getThis(); - - RETURN_MEMBER(getThis(), "dialectType"); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "INNER"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "join", NULL, 0, &model, conditions, alias, &_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getSqlVariables) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, inWhere) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval values, bindParams, bindKeys; + zval *expr_param = NULL, *values_param = NULL, hiddenParam, value, *_1, _2, _5, _6, _3$$4, _4$$5; + zval expr, key, queryKey, _0$$3; zval *this_ptr = getThis(); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&queryKey); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&hiddenParam); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&values); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindKeys); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(expr) + Z_PARAM_ARRAY(values) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "sqlVariables"); -} - -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getType) -{ - zval *this_ptr = getThis(); - + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &expr_param, &values_param); + if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { + zephir_get_strval(&expr, expr_param); + } else { + ZEPHIR_INIT_VAR(&expr); + } + ZEPHIR_OBS_COPY_OR_DUP(&values, values_param); - RETURN_MEMBER(getThis(), "type"); + if (!(zephir_fast_count_int(&values))) { + ZEPHIR_INIT_VAR(&_0$$3); + ZEPHIR_CONCAT_VSV(&_0$$3, &expr, " != ", &expr); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "andwhere", NULL, 0, &_0$$3); + zephir_check_call_status(); + RETURN_THIS(); + } + ZEPHIR_OBS_VAR(&hiddenParam); + zephir_read_property(&hiddenParam, this_ptr, ZEND_STRL("hiddenParamNumber"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(&bindParams); + array_init(&bindParams); + ZEPHIR_INIT_VAR(&bindKeys); + array_init(&bindKeys); + zephir_is_iterable(&values, 0, "phalcon/Mvc/Model/Criteria.zep", 559); + if (Z_TYPE_P(&values) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&values), _1) + { + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _1); + ZEPHIR_INIT_NVAR(&_3$$4); + ZEPHIR_CONCAT_SV(&_3$$4, "ACP", &hiddenParam); + zephir_get_strval(&key, &_3$$4); + ZEPHIR_INIT_NVAR(&queryKey); + ZEPHIR_CONCAT_SVS(&queryKey, ":", &key, ":"); + zephir_array_append(&bindKeys, &queryKey, PH_SEPARATE, "phalcon/Mvc/Model/Criteria.zep", 549); + zephir_array_update_zval(&bindParams, &key, &value, PH_COPY | PH_SEPARATE); + ZEPHIR_SEPARATE(&hiddenParam); + zephir_increment(&hiddenParam); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &values, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &values, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&value, &values, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_4$$5); + ZEPHIR_CONCAT_SV(&_4$$5, "ACP", &hiddenParam); + zephir_get_strval(&key, &_4$$5); + ZEPHIR_INIT_NVAR(&queryKey); + ZEPHIR_CONCAT_SVS(&queryKey, ":", &key, ":"); + zephir_array_append(&bindKeys, &queryKey, PH_SEPARATE, "phalcon/Mvc/Model/Criteria.zep", 549); + zephir_array_update_zval(&bindParams, &key, &value, PH_COPY | PH_SEPARATE); + ZEPHIR_SEPARATE(&hiddenParam); + zephir_increment(&hiddenParam); + ZEPHIR_CALL_METHOD(NULL, &values, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_VAR(&_5); + zephir_fast_join_str(&_5, SL(", "), &bindKeys); + ZEPHIR_INIT_VAR(&_6); + ZEPHIR_CONCAT_VSVS(&_6, &expr, " IN (", &_5, ")"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "andwhere", NULL, 0, &_6, &bindParams); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("hiddenParamNumber"), &hiddenParam); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, __construct) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, join) { + zval join, _1$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *descriptor_param = NULL, dialectClass, connectionId, _0, _1$$3, _2$$4; - zval descriptor; + zval *model_param = NULL, *conditions = NULL, conditions_sub, *alias = NULL, alias_sub, *type = NULL, type_sub, __$null, mergedJoins, currentJoins, _0, _4, _2$$5, _3$$6; + zval model; zval *this_ptr = getThis(); - ZVAL_UNDEF(&descriptor); - ZVAL_UNDEF(&dialectClass); - ZVAL_UNDEF(&connectionId); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&conditions_sub); + ZVAL_UNDEF(&alias_sub); + ZVAL_UNDEF(&type_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&mergedJoins); + ZVAL_UNDEF(¤tJoins); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&_3$$6); + ZVAL_UNDEF(&join); + ZVAL_UNDEF(&_1$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(descriptor) + ZEND_PARSE_PARAMETERS_START(1, 4) + Z_PARAM_STR(model) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(conditions) + Z_PARAM_ZVAL_OR_NULL(alias) + Z_PARAM_ZVAL_OR_NULL(type) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &descriptor_param); - ZEPHIR_OBS_COPY_OR_DUP(&descriptor, descriptor_param); + zephir_fetch_params(1, 1, 3, &model_param, &conditions, &alias, &type); + if (UNEXPECTED(Z_TYPE_P(model_param) != IS_STRING && Z_TYPE_P(model_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'model' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(model_param) == IS_STRING)) { + zephir_get_strval(&model, model_param); + } else { + ZEPHIR_INIT_VAR(&model); + } + if (!conditions) { + conditions = &conditions_sub; + conditions = &__$null; + } + if (!alias) { + alias = &alias_sub; + alias = &__$null; + } + if (!type) { + type = &type_sub; + type = &__$null; + } - ZEPHIR_OBS_VAR(&connectionId); - zephir_read_static_property_ce(&connectionId, phalcon_db_adapter_abstractadapter_ce, SL("connectionConsecutive"), PH_NOISY_CC); - zephir_update_property_zval(this_ptr, ZEND_STRL("connectionId"), &connectionId); - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, (zephir_get_numberval(&connectionId) + 1)); - zephir_update_static_property_ce(phalcon_db_adapter_abstractadapter_ce, ZEND_STRL("connectionConsecutive"), &_0); - ZEPHIR_OBS_VAR(&dialectClass); - if (!(zephir_array_isset_string_fetch(&dialectClass, &descriptor, SL("dialectClass"), 0))) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("dialectType"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&dialectClass); - ZEPHIR_CONCAT_SV(&dialectClass, "phalcon\\db\\dialect\\", &_1$$3); - } - if (Z_TYPE_P(&dialectClass) == IS_STRING) { - ZEPHIR_INIT_VAR(&_2$$4); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(&_2$$4, &dialectClass); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("dialect"), &_2$$4); - } else if (Z_TYPE_P(&dialectClass) == IS_OBJECT) { - zephir_update_property_zval(this_ptr, ZEND_STRL("dialect"), &dialectClass); + ZEPHIR_INIT_VAR(&join); + zephir_create_array(&join, 4, 0); + zephir_array_fast_append(&join, &model); + zephir_array_fast_append(&join, conditions); + zephir_array_fast_append(&join, alias); + zephir_array_fast_append(&join, type); + ZEPHIR_OBS_VAR(¤tJoins); + zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_string_fetch(¤tJoins, &_0, SL("joins"), 0)) { + if (Z_TYPE_P(¤tJoins) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&_1$$4); + zephir_create_array(&_1$$4, 1, 0); + zephir_array_fast_append(&_1$$4, &join); + ZEPHIR_INIT_VAR(&mergedJoins); + zephir_fast_array_merge(&mergedJoins, ¤tJoins, &_1$$4); + } else { + ZEPHIR_INIT_VAR(&_2$$5); + zephir_create_array(&_2$$5, 1, 0); + zephir_array_fast_append(&_2$$5, &join); + ZEPHIR_CPY_WRT(&mergedJoins, &_2$$5); + } + } else { + ZEPHIR_INIT_VAR(&_3$$6); + zephir_create_array(&_3$$6, 1, 0); + zephir_array_fast_append(&_3$$6, &join); + ZEPHIR_CPY_WRT(&mergedJoins, &_3$$6); } - zephir_update_property_zval(this_ptr, ZEND_STRL("descriptor"), &descriptor); - ZEPHIR_MM_RESTORE(); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "joins"); + zephir_update_property_array(this_ptr, SL("params"), &_4, &mergedJoins); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, addColumn) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, leftJoin) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *column, column_sub, _0, _1; - zval tableName, schemaName; + zval *model_param = NULL, *conditions = NULL, conditions_sub, *alias = NULL, alias_sub, __$null, _0; + zval model; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&conditions_sub); + ZVAL_UNDEF(&alias_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(model) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(conditions) + Z_PARAM_ZVAL_OR_NULL(alias) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + zephir_fetch_params(1, 1, 2, &model_param, &conditions, &alias); + if (UNEXPECTED(Z_TYPE_P(model_param) != IS_STRING && Z_TYPE_P(model_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'model' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); + if (EXPECTED(Z_TYPE_P(model_param) == IS_STRING)) { + zephir_get_strval(&model, model_param); } else { - ZEPHIR_INIT_VAR(&tableName); + ZEPHIR_INIT_VAR(&model); } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); + if (!conditions) { + conditions = &conditions_sub; + conditions = &__$null; } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); + if (!alias) { + alias = &alias_sub; + alias = &__$null; } - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "addcolumn", NULL, 0, &tableName, &schemaName, column); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "LEFT"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "join", NULL, 0, &model, conditions, alias, &_0); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, addForeignKey) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, limit) { + zval _5$$5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *reference, reference_sub, _0, _1; - zval tableName, schemaName; + zval *limit_param = NULL, *offset_param = NULL, _0, _1, _2, _3$$4, _4$$4, _6$$5; + zend_long limit, offset, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&reference_sub); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_5$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(reference, phalcon_db_referenceinterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_LONG(limit) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(offset) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &reference); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); + zephir_fetch_params(1, 1, 1, &limit_param, &offset_param); + limit = zephir_get_intval(limit_param); + if (!offset_param) { + offset = 0; } else { - ZEPHIR_INIT_VAR(&schemaName); + offset = zephir_get_intval(offset_param); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "addforeignkey", NULL, 0, &tableName, &schemaName, reference); + ZVAL_LONG(&_0, limit); + ZEPHIR_CALL_FUNCTION(&_1, "abs", NULL, 238, &_0); zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); + limit = zephir_get_numberval(&_1); + ZVAL_LONG(&_0, offset); + ZEPHIR_CALL_FUNCTION(&_2, "abs", NULL, 238, &_0); zephir_check_call_status(); - RETURN_MM(); + offset = zephir_get_numberval(&_2); + if (UNEXPECTED(limit == 0)) { + RETURN_THIS(); + } + if (offset == 0) { + ZEPHIR_INIT_VAR(&_3$$4); + ZVAL_STRING(&_3$$4, "limit"); + ZEPHIR_INIT_VAR(&_4$$4); + ZVAL_LONG(&_4$$4, limit); + zephir_update_property_array(this_ptr, SL("params"), &_3$$4, &_4$$4); + } else { + ZEPHIR_INIT_VAR(&_5$$5); + zephir_create_array(&_5$$5, 2, 0); + ZEPHIR_INIT_VAR(&_6$$5); + ZVAL_LONG(&_6$$5, limit); + zephir_array_update_string(&_5$$5, SL("number"), &_6$$5, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_6$$5); + ZVAL_LONG(&_6$$5, offset); + zephir_array_update_string(&_5$$5, SL("offset"), &_6$$5, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_6$$5); + ZVAL_STRING(&_6$$5, "limit"); + zephir_update_property_array(this_ptr, SL("params"), &_6$$5, &_5$$5); + } + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, addIndex) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, notBetweenWhere) { + zval _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *index, index_sub, _0, _1; - zval tableName, schemaName; + zval *expr_param = NULL, *minimum, minimum_sub, *maximum, maximum_sub, hiddenParam, nextHiddenParam, _0, _1; + zval expr, minimumKey, maximumKey, _2; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&index_sub); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&minimumKey); + ZVAL_UNDEF(&maximumKey); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&minimum_sub); + ZVAL_UNDEF(&maximum_sub); + ZVAL_UNDEF(&hiddenParam); + ZVAL_UNDEF(&nextHiddenParam); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(index, phalcon_db_indexinterface_ce) + Z_PARAM_STR(expr) + Z_PARAM_ZVAL(minimum) + Z_PARAM_ZVAL(maximum) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + zephir_fetch_params(1, 3, 0, &expr_param, &minimum, &maximum); + if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); + if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { + zephir_get_strval(&expr, expr_param); } else { - ZEPHIR_INIT_VAR(&schemaName); + ZEPHIR_INIT_VAR(&expr); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "addindex", NULL, 0, &tableName, &schemaName, index); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); + ZEPHIR_OBS_VAR(&hiddenParam); + zephir_read_property(&hiddenParam, this_ptr, ZEND_STRL("hiddenParamNumber"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(&nextHiddenParam); + ZVAL_LONG(&nextHiddenParam, (zephir_get_numberval(&hiddenParam) + 1)); + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_CONCAT_SV(&_0, "ACP", &hiddenParam); + zephir_get_strval(&minimumKey, &_0); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_CONCAT_SV(&_1, "ACP", &nextHiddenParam); + zephir_get_strval(&maximumKey, &_1); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_CONCAT_VSVSVS(&_2, &expr, " NOT BETWEEN :", &minimumKey, ": AND :", &maximumKey, ":"); + ZEPHIR_INIT_VAR(&_3); + zephir_create_array(&_3, 2, 0); + zephir_array_update_zval(&_3, &minimumKey, minimum, PH_COPY); + zephir_array_update_zval(&_3, &maximumKey, maximum, PH_COPY); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "andwhere", NULL, 0, &_2, &_3); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_SEPARATE(&nextHiddenParam); + zephir_increment(&nextHiddenParam); + zephir_update_property_zval(this_ptr, ZEND_STRL("hiddenParamNumber"), &nextHiddenParam); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, addPrimaryKey) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, notInWhere) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *index, index_sub, _0, _1; - zval tableName, schemaName; + zval values, bindParams, bindKeys; + zval *expr_param = NULL, *values_param = NULL, hiddenParam, value, *_0, _1, _6, _7, _2$$3, _4$$4; + zval expr, key, _3$$3, _5$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&index_sub); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&hiddenParam); + ZVAL_UNDEF(&value); ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&values); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindKeys); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(index, phalcon_db_indexinterface_ce) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(expr) + Z_PARAM_ARRAY(values) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + zephir_fetch_params(1, 2, 0, &expr_param, &values_param); + if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); + if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { + zephir_get_strval(&expr, expr_param); } else { - ZEPHIR_INIT_VAR(&schemaName); + ZEPHIR_INIT_VAR(&expr); } + ZEPHIR_OBS_COPY_OR_DUP(&values, values_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "addprimarykey", NULL, 0, &tableName, &schemaName, index); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); + ZEPHIR_OBS_VAR(&hiddenParam); + zephir_read_property(&hiddenParam, this_ptr, ZEND_STRL("hiddenParamNumber"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(&bindParams); + array_init(&bindParams); + ZEPHIR_INIT_VAR(&bindKeys); + array_init(&bindKeys); + zephir_is_iterable(&values, 0, "phalcon/Mvc/Model/Criteria.zep", 742); + if (Z_TYPE_P(&values) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&values), _0) + { + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0); + ZEPHIR_INIT_NVAR(&_2$$3); + ZEPHIR_CONCAT_SV(&_2$$3, "ACP", &hiddenParam); + zephir_get_strval(&key, &_2$$3); + ZEPHIR_INIT_NVAR(&_3$$3); + ZEPHIR_CONCAT_SVS(&_3$$3, ":", &key, ":"); + zephir_array_append(&bindKeys, &_3$$3, PH_SEPARATE, "phalcon/Mvc/Model/Criteria.zep", 732); + zephir_array_update_zval(&bindParams, &key, &value, PH_COPY | PH_SEPARATE); + ZEPHIR_SEPARATE(&hiddenParam); + zephir_increment(&hiddenParam); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &values, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &values, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&value, &values, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_4$$4); + ZEPHIR_CONCAT_SV(&_4$$4, "ACP", &hiddenParam); + zephir_get_strval(&key, &_4$$4); + ZEPHIR_INIT_NVAR(&_5$$4); + ZEPHIR_CONCAT_SVS(&_5$$4, ":", &key, ":"); + zephir_array_append(&bindKeys, &_5$$4, PH_SEPARATE, "phalcon/Mvc/Model/Criteria.zep", 732); + zephir_array_update_zval(&bindParams, &key, &value, PH_COPY | PH_SEPARATE); + ZEPHIR_SEPARATE(&hiddenParam); + zephir_increment(&hiddenParam); + ZEPHIR_CALL_METHOD(NULL, &values, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_VAR(&_6); + zephir_fast_join_str(&_6, SL(", "), &bindKeys); + ZEPHIR_INIT_VAR(&_7); + ZEPHIR_CONCAT_VSVS(&_7, &expr, " NOT IN (", &_6, ")"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "andwhere", NULL, 0, &_7, &bindParams); zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("hiddenParamNumber"), &hiddenParam); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, createSavepoint) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, orderBy) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, dialect, _0, _1, _2; - zval name; + zval *orderColumns_param = NULL, _0; + zval orderColumns; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&dialect); + ZVAL_UNDEF(&orderColumns); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + Z_PARAM_STR(orderColumns) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + zephir_fetch_params(1, 1, 0, &orderColumns_param); + if (UNEXPECTED(Z_TYPE_P(orderColumns_param) != IS_STRING && Z_TYPE_P(orderColumns_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'orderColumns' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); + if (EXPECTED(Z_TYPE_P(orderColumns_param) == IS_STRING)) { + zephir_get_strval(&orderColumns, orderColumns_param); } else { - ZEPHIR_INIT_VAR(&name); + ZEPHIR_INIT_VAR(&orderColumns); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&dialect, &_0); - ZEPHIR_CALL_METHOD(&_1, &dialect, "supportssavepoints", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(!zephir_is_true(&_1))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter.", "phalcon/Db/Adapter/AbstractAdapter.zep", 231); - return; - } - ZEPHIR_CALL_METHOD(&_2, &dialect, "createsavepoint", NULL, 0, &name); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_2); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "order"); + zephir_update_property_array(this_ptr, SL("params"), &_0, &orderColumns); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, createTable) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, orWhere) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval definition; - zval *tableName_param = NULL, *schemaName_param = NULL, *definition_param = NULL, columns, _0, _1; - zval tableName, schemaName; + zval *conditions_param = NULL, *bindParams = NULL, bindParams_sub, *bindTypes = NULL, bindTypes_sub, __$null, currentConditions, _0, _1$$3; + zval conditions; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(&bindParams_sub); + ZVAL_UNDEF(&bindTypes_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(¤tConditions); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&_1$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_ARRAY(definition) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(conditions) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(bindParams) + Z_PARAM_ZVAL_OR_NULL(bindTypes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &definition_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + zephir_fetch_params(1, 1, 2, &conditions_param, &bindParams, &bindTypes); + if (UNEXPECTED(Z_TYPE_P(conditions_param) != IS_STRING && Z_TYPE_P(conditions_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'conditions' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); + if (EXPECTED(Z_TYPE_P(conditions_param) == IS_STRING)) { + zephir_get_strval(&conditions, conditions_param); } else { - ZEPHIR_INIT_VAR(&tableName); + ZEPHIR_INIT_VAR(&conditions); } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); + if (!bindParams) { + bindParams = &bindParams_sub; + bindParams = &__$null; } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); + if (!bindTypes) { + bindTypes = &bindTypes_sub; + bindTypes = &__$null; } - ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); - ZEPHIR_OBS_VAR(&columns); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&columns, &definition, SL("columns"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The table must contain at least one column", "phalcon/Db/Adapter/AbstractAdapter.zep", 247); - return; - } - if (UNEXPECTED(!(zephir_fast_count_int(&columns)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The table must contain at least one column", "phalcon/Db/Adapter/AbstractAdapter.zep", 251); - return; + ZEPHIR_OBS_VAR(¤tConditions); + zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_string_fetch(¤tConditions, &_0, SL("conditions"), 0)) { + ZEPHIR_INIT_VAR(&_1$$3); + ZEPHIR_CONCAT_SVSVS(&_1$$3, "(", ¤tConditions, ") OR (", &conditions, ")"); + zephir_get_strval(&conditions, &_1$$3); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "createtable", NULL, 0, &tableName, &schemaName, &definition); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "where", NULL, 0, &conditions, bindParams, bindTypes); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, createView) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, rightJoin) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval definition; - zval *viewName_param = NULL, *definition_param = NULL, *schemaName_param = NULL, _0, _1; - zval viewName, schemaName; + zval *model_param = NULL, *conditions = NULL, conditions_sub, *alias = NULL, alias_sub, __$null, _0; + zval model; zval *this_ptr = getThis(); - ZVAL_UNDEF(&viewName); - ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&conditions_sub); + ZVAL_UNDEF(&alias_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&definition); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(viewName) - Z_PARAM_ARRAY(definition) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(model) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) + Z_PARAM_ZVAL_OR_NULL(conditions) + Z_PARAM_ZVAL_OR_NULL(alias) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &viewName_param, &definition_param, &schemaName_param); - if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); + zephir_fetch_params(1, 1, 2, &model_param, &conditions, &alias); + if (UNEXPECTED(Z_TYPE_P(model_param) != IS_STRING && Z_TYPE_P(model_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'model' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { - zephir_get_strval(&viewName, viewName_param); + if (EXPECTED(Z_TYPE_P(model_param) == IS_STRING)) { + zephir_get_strval(&model, model_param); } else { - ZEPHIR_INIT_VAR(&viewName); + ZEPHIR_INIT_VAR(&model); } - ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - zephir_get_strval(&schemaName, schemaName_param); + if (!conditions) { + conditions = &conditions_sub; + conditions = &__$null; + } + if (!alias) { + alias = &alias_sub; + alias = &__$null; } - if (UNEXPECTED(!(zephir_array_isset_string(&definition, SL("sql"))))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The table must contain at least one column", "phalcon/Db/Adapter/AbstractAdapter.zep", 269); - return; - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "createview", NULL, 0, &viewName, &definition, &schemaName); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "RIGHT"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "join", NULL, 0, &model, conditions, alias, &_0); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, delete) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, setDI) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval placeholders, dataTypes; - zval whereCondition, _0$$3; - zval *table, table_sub, *whereCondition_param = NULL, *placeholders_param = NULL, *dataTypes_param = NULL, sql, escapedTable; + zval *container, container_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table_sub); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&escapedTable); - ZVAL_UNDEF(&whereCondition); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&placeholders); - ZVAL_UNDEF(&dataTypes); + ZVAL_UNDEF(&container_sub); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 4) - Z_PARAM_ZVAL(table) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(whereCondition) - Z_PARAM_ARRAY(placeholders) - Z_PARAM_ARRAY(dataTypes) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 3, &table, &whereCondition_param, &placeholders_param, &dataTypes_param); - if (!whereCondition_param) { - ZEPHIR_INIT_VAR(&whereCondition); - } else { - zephir_get_strval(&whereCondition, whereCondition_param); + zephir_fetch_params(1, 1, 0, &container); + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "di"); + zephir_update_property_array(this_ptr, SL("params"), &_0, container); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, setModelName) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *modelName_param = NULL; + zval modelName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&modelName); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(modelName) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &modelName_param); + if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); + RETURN_MM_NULL(); } - if (!placeholders_param) { - ZEPHIR_INIT_VAR(&placeholders); - array_init(&placeholders); + if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { + zephir_get_strval(&modelName, modelName_param); } else { - zephir_get_arrval(&placeholders, placeholders_param); + ZEPHIR_INIT_VAR(&modelName); } - if (!dataTypes_param) { - ZEPHIR_INIT_VAR(&dataTypes); - array_init(&dataTypes); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("model"), &modelName); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, sharedLock) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *sharedLock_param = NULL, _0, _1; + zend_bool sharedLock; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(sharedLock) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &sharedLock_param); + if (!sharedLock_param) { + sharedLock = 1; } else { - zephir_get_arrval(&dataTypes, dataTypes_param); + sharedLock = zephir_get_boolval(sharedLock_param); } - ZEPHIR_CALL_METHOD(&escapedTable, this_ptr, "escapeidentifier", NULL, 0, table); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&sql); - ZEPHIR_CONCAT_SV(&sql, "DELETE FROM ", &escapedTable); - if (!(ZEPHIR_IS_EMPTY(&whereCondition))) { - ZEPHIR_INIT_VAR(&_0$$3); - ZEPHIR_CONCAT_SV(&_0$$3, " WHERE ", &whereCondition); - zephir_concat_self(&sql, &_0$$3); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &sql, &placeholders, &dataTypes); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "shared_lock"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_BOOL(&_1, sharedLock); + zephir_update_property_array(this_ptr, SL("params"), &_0, &_1); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, describeIndexes) +static PHP_METHOD(Phalcon_Mvc_Model_Criteria, where) { - zend_string *_11; - zend_ulong _10; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_13 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *table_param = NULL, *schema_param = NULL, indexes, index, keyName, indexObjects, name, indexColumns, columns, _0, _1, _2, _3, *_4, _5, *_8, _9, _6$$3, _7$$6, _12$$9, _14$$10; - zval table, schema; + zval *conditions_param = NULL, *bindParams = NULL, bindParams_sub, *bindTypes = NULL, bindTypes_sub, __$null, currentBindParams, currentBindTypes, _0, _1$$3, _2$$4, _3$$4, _4$$5, _5$$6, _6$$7, _7$$7, _8$$8; + zval conditions; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&indexes); - ZVAL_UNDEF(&index); - ZVAL_UNDEF(&keyName); - ZVAL_UNDEF(&indexObjects); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&indexColumns); - ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(&bindParams_sub); + ZVAL_UNDEF(&bindTypes_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(¤tBindParams); + ZVAL_UNDEF(¤tBindTypes); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_12$$9); - ZVAL_UNDEF(&_14$$10); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&_6$$7); + ZVAL_UNDEF(&_7$$7); + ZVAL_UNDEF(&_8$$8); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(conditions) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) + Z_PARAM_ZVAL_OR_NULL(bindParams) + Z_PARAM_ZVAL_OR_NULL(bindTypes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); + zephir_fetch_params(1, 1, 2, &conditions_param, &bindParams, &bindTypes); + if (UNEXPECTED(Z_TYPE_P(conditions_param) != IS_STRING && Z_TYPE_P(conditions_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'conditions' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); + if (EXPECTED(Z_TYPE_P(conditions_param) == IS_STRING)) { + zephir_get_strval(&conditions, conditions_param); } else { - ZEPHIR_INIT_VAR(&table); + ZEPHIR_INIT_VAR(&conditions); } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); - } else { - zephir_get_strval(&schema, schema_param); + if (!bindParams) { + bindParams = &bindParams_sub; + bindParams = &__$null; + } + if (!bindTypes) { + bindTypes = &bindTypes_sub; + bindTypes = &__$null; } - ZEPHIR_INIT_VAR(&indexes); - array_init(&indexes); - zephir_read_property(&_1, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_2, &_1, "describeindexes", NULL, 0, &table, &schema); - zephir_check_call_status(); - ZVAL_LONG(&_3, 3); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, 0, &_2, &_3); - zephir_check_call_status(); - zephir_is_iterable(&_0, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 348); - if (Z_TYPE_P(&_0) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _4) - { - ZEPHIR_INIT_NVAR(&index); - ZVAL_COPY(&index, _4); - zephir_array_fetch_long(&keyName, &index, 2, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 336); - if (!(zephir_array_isset(&indexes, &keyName))) { - ZEPHIR_INIT_NVAR(&columns); - array_init(&columns); - } else { - ZEPHIR_OBS_NVAR(&columns); - zephir_array_fetch(&columns, &indexes, &keyName, PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 341); - } - zephir_array_fetch_long(&_6$$3, &index, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 344); - zephir_array_append(&columns, &_6$$3, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 344); - zephir_array_update_zval(&indexes, &keyName, &columns, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5, &_0, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5)) { - break; - } - ZEPHIR_CALL_METHOD(&index, &_0, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&keyName); - zephir_array_fetch_long(&keyName, &index, 2, PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 336); - if (!(zephir_array_isset(&indexes, &keyName))) { - ZEPHIR_INIT_NVAR(&columns); - array_init(&columns); - } else { - ZEPHIR_OBS_NVAR(&columns); - zephir_array_fetch(&columns, &indexes, &keyName, PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 341); - } - zephir_array_fetch_long(&_7$$6, &index, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 344); - zephir_array_append(&columns, &_7$$6, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 344); - zephir_array_update_zval(&indexes, &keyName, &columns, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); - zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "conditions"); + zephir_update_property_array(this_ptr, SL("params"), &_0, &conditions); + if (Z_TYPE_P(bindParams) == IS_ARRAY) { + ZEPHIR_OBS_VAR(¤tBindParams); + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_string_fetch(¤tBindParams, &_1$$3, SL("bind"), 0)) { + ZEPHIR_INIT_VAR(&_2$$4); + zephir_fast_array_merge(&_2$$4, ¤tBindParams, bindParams); + ZEPHIR_INIT_VAR(&_3$$4); + ZVAL_STRING(&_3$$4, "bind"); + zephir_update_property_array(this_ptr, SL("params"), &_3$$4, &_2$$4); + } else { + ZEPHIR_INIT_VAR(&_4$$5); + ZVAL_STRING(&_4$$5, "bind"); + zephir_update_property_array(this_ptr, SL("params"), &_4$$5, bindParams); } } - ZEPHIR_INIT_NVAR(&index); - ZEPHIR_INIT_VAR(&indexObjects); - array_init(&indexObjects); - zephir_is_iterable(&indexes, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 357); - if (Z_TYPE_P(&indexes) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&indexes), _10, _11, _8) - { - ZEPHIR_INIT_NVAR(&name); - if (_11 != NULL) { - ZVAL_STR_COPY(&name, _11); - } else { - ZVAL_LONG(&name, _10); - } - ZEPHIR_INIT_NVAR(&indexColumns); - ZVAL_COPY(&indexColumns, _8); - ZEPHIR_INIT_NVAR(&_12$$9); - object_init_ex(&_12$$9, phalcon_db_index_ce); - ZEPHIR_CALL_METHOD(NULL, &_12$$9, "__construct", &_13, 32, &name, &indexColumns); - zephir_check_call_status(); - zephir_array_update_zval(&indexObjects, &name, &_12$$9, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &indexes, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_9, &indexes, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_9)) { - break; - } - ZEPHIR_CALL_METHOD(&name, &indexes, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&indexColumns, &indexes, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_14$$10); - object_init_ex(&_14$$10, phalcon_db_index_ce); - ZEPHIR_CALL_METHOD(NULL, &_14$$10, "__construct", &_13, 32, &name, &indexColumns); - zephir_check_call_status(); - zephir_array_update_zval(&indexObjects, &name, &_14$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &indexes, "next", NULL, 0); - zephir_check_call_status(); + if (Z_TYPE_P(bindTypes) == IS_ARRAY) { + ZEPHIR_OBS_VAR(¤tBindTypes); + zephir_read_property(&_5$$6, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_string_fetch(¤tBindTypes, &_5$$6, SL("bindTypes"), 0)) { + ZEPHIR_INIT_VAR(&_6$$7); + zephir_fast_array_merge(&_6$$7, ¤tBindTypes, bindTypes); + ZEPHIR_INIT_VAR(&_7$$7); + ZVAL_STRING(&_7$$7, "bindTypes"); + zephir_update_property_array(this_ptr, SL("params"), &_7$$7, &_6$$7); + } else { + ZEPHIR_INIT_VAR(&_8$$8); + ZVAL_STRING(&_8$$8, "bindTypes"); + zephir_update_property_array(this_ptr, SL("params"), &_8$$8, bindTypes); } } - ZEPHIR_INIT_NVAR(&indexColumns); - ZEPHIR_INIT_NVAR(&name); - RETURN_CCTOR(&indexObjects); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, describeReferences) +zend_object *zephir_init_properties_Phalcon_Mvc_Model_Criteria(zend_class_entry *class_type) { - zval _12$$3, _19$$6, _25$$9, _29$$10; - zend_string *_23; - zend_ulong _22; + zval _0, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_27 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *table_param = NULL, *schema_param = NULL, references, reference, arrayReference, constraintName, referenceObjects, name, referencedSchema, referencedTable, columns, referencedColumns, _0, _1, _2, _3, *_4, _5, *_20, _21, _6$$5, _7$$5, _8$$5, _9$$5, _10$$3, _11$$3, _13$$8, _14$$8, _15$$8, _16$$8, _17$$6, _18$$6, _24$$9, _26$$9, _28$$10, _30$$10; - zval table, schema; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("params"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_CriteriaInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model, CriteriaInterface, phalcon, mvc_model_criteriainterface, phalcon_mvc_model_criteriainterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, andWhere); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, betweenWhere); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, bind); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, bindTypes); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, cache); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, conditions); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, distinct); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, execute); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, forUpdate); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, getColumns); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, getConditions); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, getGroupBy); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, getHaving); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, getLimit); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, getModelName); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, getOrderBy); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, getParams); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, getWhere); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, groupBy); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, having); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, innerJoin); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, inWhere); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, leftJoin); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, limit); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, notBetweenWhere); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, notInWhere); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, orderBy); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, orWhere); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, rightJoin); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, setModelName); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, sharedLock); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, where); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model, Exception, phalcon, mvc_model_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Manager) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model, Manager, phalcon, mvc_model_manager, phalcon_mvc_model_manager_method_entry, 0); + + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("aliases"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("behaviors"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("belongsTo"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("belongsToSingle"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("container"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("customEventsManager"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("dynamicUpdate"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("hasMany"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("hasManySingle"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("hasManyToMany"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("hasManyToManySingle"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("hasOne"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("hasOneSingle"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("hasOneThrough"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("hasOneThroughSingle"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("initialized"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("keepSnapshots"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("lastInitialized"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("lastQuery"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("modelVisibility"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_mvc_model_manager_ce, SL("prefix"), "", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("readConnectionServices"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("sources"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("schemas"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("writeConnectionServices"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("reusable"), ZEND_ACC_PROTECTED); + phalcon_mvc_model_manager_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_Manager; + + zend_class_implements(phalcon_mvc_model_manager_ce, 1, phalcon_mvc_model_managerinterface_ce); + zend_class_implements(phalcon_mvc_model_manager_ce, 1, phalcon_di_injectionawareinterface_ce); + zend_class_implements(phalcon_mvc_model_manager_ce, 1, phalcon_events_eventsawareinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Mvc_Model_Manager, setDI) +{ + zval *container, container_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&references); - ZVAL_UNDEF(&reference); - ZVAL_UNDEF(&arrayReference); - ZVAL_UNDEF(&constraintName); - ZVAL_UNDEF(&referenceObjects); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&referencedSchema); - ZVAL_UNDEF(&referencedTable); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&referencedColumns); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_21); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_10$$3); - ZVAL_UNDEF(&_11$$3); - ZVAL_UNDEF(&_13$$8); - ZVAL_UNDEF(&_14$$8); - ZVAL_UNDEF(&_15$$8); - ZVAL_UNDEF(&_16$$8); - ZVAL_UNDEF(&_17$$6); - ZVAL_UNDEF(&_18$$6); - ZVAL_UNDEF(&_24$$9); - ZVAL_UNDEF(&_26$$9); - ZVAL_UNDEF(&_28$$10); - ZVAL_UNDEF(&_30$$10); - ZVAL_UNDEF(&_12$$3); - ZVAL_UNDEF(&_19$$6); - ZVAL_UNDEF(&_25$$9); - ZVAL_UNDEF(&_29$$10); + ZVAL_UNDEF(&container_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); - } else { - ZEPHIR_INIT_VAR(&table); - } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); - } else { - if (UNEXPECTED(Z_TYPE_P(schema_param) != IS_STRING && Z_TYPE_P(schema_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schema' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schema_param) == IS_STRING)) { - zephir_get_strval(&schema, schema_param); - } else { - ZEPHIR_INIT_VAR(&schema); - } - } + zephir_fetch_params_without_memory_grow(1, 0, &container); - ZEPHIR_INIT_VAR(&references); - array_init(&references); - zephir_read_property(&_1, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_2, &_1, "describereferences", NULL, 0, &table, &schema); - zephir_check_call_status(); - ZVAL_LONG(&_3, 3); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, 0, &_2, &_3); - zephir_check_call_status(); - zephir_is_iterable(&_0, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 403); - if (Z_TYPE_P(&_0) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _4) - { - ZEPHIR_INIT_NVAR(&reference); - ZVAL_COPY(&reference, _4); - zephir_array_fetch_long(&constraintName, &reference, 2, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 378); - if (!(zephir_array_isset(&references, &constraintName))) { - ZEPHIR_OBS_NVAR(&referencedSchema); - zephir_array_fetch_long(&referencedSchema, &reference, 3, PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 381); - ZEPHIR_OBS_NVAR(&referencedTable); - zephir_array_fetch_long(&referencedTable, &reference, 4, PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 382); - ZEPHIR_INIT_NVAR(&columns); - array_init(&columns); - ZEPHIR_INIT_NVAR(&referencedColumns); - array_init(&referencedColumns); - } else { - zephir_array_fetch(&_6$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 386); - ZEPHIR_OBS_NVAR(&referencedSchema); - zephir_array_fetch_string(&referencedSchema, &_6$$5, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 386); - zephir_array_fetch(&_7$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 387); - ZEPHIR_OBS_NVAR(&referencedTable); - zephir_array_fetch_string(&referencedTable, &_7$$5, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 387); - zephir_array_fetch(&_8$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 388); - ZEPHIR_OBS_NVAR(&columns); - zephir_array_fetch_string(&columns, &_8$$5, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 388); - zephir_array_fetch(&_9$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 389); - ZEPHIR_OBS_NVAR(&referencedColumns); - zephir_array_fetch_string(&referencedColumns, &_9$$5, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 389); - } - zephir_array_fetch_long(&_10$$3, &reference, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 392); - zephir_array_append(&columns, &_10$$3, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 392); - zephir_array_fetch_long(&_11$$3, &reference, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 393); - zephir_array_append(&referencedColumns, &_11$$3, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 393); - ZEPHIR_INIT_NVAR(&_12$$3); - zephir_create_array(&_12$$3, 4, 0); - zephir_array_update_string(&_12$$3, SL("referencedSchema"), &referencedSchema, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_12$$3, SL("referencedTable"), &referencedTable, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_12$$3, SL("columns"), &columns, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_12$$3, SL("referencedColumns"), &referencedColumns, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&references, &constraintName, &_12$$3, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5, &_0, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5)) { - break; - } - ZEPHIR_CALL_METHOD(&reference, &_0, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&constraintName); - zephir_array_fetch_long(&constraintName, &reference, 2, PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 378); - if (!(zephir_array_isset(&references, &constraintName))) { - ZEPHIR_OBS_NVAR(&referencedSchema); - zephir_array_fetch_long(&referencedSchema, &reference, 3, PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 381); - ZEPHIR_OBS_NVAR(&referencedTable); - zephir_array_fetch_long(&referencedTable, &reference, 4, PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 382); - ZEPHIR_INIT_NVAR(&columns); - array_init(&columns); - ZEPHIR_INIT_NVAR(&referencedColumns); - array_init(&referencedColumns); - } else { - zephir_array_fetch(&_13$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 386); - ZEPHIR_OBS_NVAR(&referencedSchema); - zephir_array_fetch_string(&referencedSchema, &_13$$8, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 386); - zephir_array_fetch(&_14$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 387); - ZEPHIR_OBS_NVAR(&referencedTable); - zephir_array_fetch_string(&referencedTable, &_14$$8, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 387); - zephir_array_fetch(&_15$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 388); - ZEPHIR_OBS_NVAR(&columns); - zephir_array_fetch_string(&columns, &_15$$8, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 388); - zephir_array_fetch(&_16$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 389); - ZEPHIR_OBS_NVAR(&referencedColumns); - zephir_array_fetch_string(&referencedColumns, &_16$$8, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 389); - } - zephir_array_fetch_long(&_17$$6, &reference, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 392); - zephir_array_append(&columns, &_17$$6, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 392); - zephir_array_fetch_long(&_18$$6, &reference, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 393); - zephir_array_append(&referencedColumns, &_18$$6, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 393); - ZEPHIR_INIT_NVAR(&_19$$6); - zephir_create_array(&_19$$6, 4, 0); - zephir_array_update_string(&_19$$6, SL("referencedSchema"), &referencedSchema, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_19$$6, SL("referencedTable"), &referencedTable, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_19$$6, SL("columns"), &columns, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_19$$6, SL("referencedColumns"), &referencedColumns, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&references, &constraintName, &_19$$6, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&reference); - ZEPHIR_INIT_VAR(&referenceObjects); - array_init(&referenceObjects); - zephir_is_iterable(&references, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 417); - if (Z_TYPE_P(&references) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&references), _22, _23, _20) - { - ZEPHIR_INIT_NVAR(&name); - if (_23 != NULL) { - ZVAL_STR_COPY(&name, _23); - } else { - ZVAL_LONG(&name, _22); - } - ZEPHIR_INIT_NVAR(&arrayReference); - ZVAL_COPY(&arrayReference, _20); - ZEPHIR_INIT_NVAR(&_24$$9); - object_init_ex(&_24$$9, phalcon_db_reference_ce); - ZEPHIR_INIT_NVAR(&_25$$9); - zephir_create_array(&_25$$9, 4, 0); - ZEPHIR_OBS_NVAR(&_26$$9); - zephir_array_fetch_string(&_26$$9, &arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 409); - zephir_array_update_string(&_25$$9, SL("referencedSchema"), &_26$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_26$$9); - zephir_array_fetch_string(&_26$$9, &arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 410); - zephir_array_update_string(&_25$$9, SL("referencedTable"), &_26$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_26$$9); - zephir_array_fetch_string(&_26$$9, &arrayReference, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 411); - zephir_array_update_string(&_25$$9, SL("columns"), &_26$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_26$$9); - zephir_array_fetch_string(&_26$$9, &arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 413); - zephir_array_update_string(&_25$$9, SL("referencedColumns"), &_26$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &_24$$9, "__construct", &_27, 33, &name, &_25$$9); - zephir_check_call_status(); - zephir_array_update_zval(&referenceObjects, &name, &_24$$9, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &references, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_21, &references, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_21)) { - break; - } - ZEPHIR_CALL_METHOD(&name, &references, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&arrayReference, &references, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_28$$10); - object_init_ex(&_28$$10, phalcon_db_reference_ce); - ZEPHIR_INIT_NVAR(&_29$$10); - zephir_create_array(&_29$$10, 4, 0); - ZEPHIR_OBS_NVAR(&_30$$10); - zephir_array_fetch_string(&_30$$10, &arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 409); - zephir_array_update_string(&_29$$10, SL("referencedSchema"), &_30$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_30$$10); - zephir_array_fetch_string(&_30$$10, &arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 410); - zephir_array_update_string(&_29$$10, SL("referencedTable"), &_30$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_30$$10); - zephir_array_fetch_string(&_30$$10, &arrayReference, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 411); - zephir_array_update_string(&_29$$10, SL("columns"), &_30$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_30$$10); - zephir_array_fetch_string(&_30$$10, &arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 413); - zephir_array_update_string(&_29$$10, SL("referencedColumns"), &_30$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &_28$$10, "__construct", &_27, 33, &name, &_29$$10); - zephir_check_call_status(); - zephir_array_update_zval(&referenceObjects, &name, &_28$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &references, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&arrayReference); - ZEPHIR_INIT_NVAR(&name); - RETURN_CCTOR(&referenceObjects); + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, dropColumn) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getDI) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *columnName_param = NULL, _0, _1; - zval tableName, schemaName, columnName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&columnName); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + + + RETURN_MEMBER(getThis(), "container"); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Manager, setEventsManager) +{ + zval *eventsManager, eventsManager_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&eventsManager_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_STR(columnName) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &columnName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } - zephir_get_strval(&columnName, columnName_param); + zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "dropcolumn", NULL, 0, &tableName, &schemaName, &columnName); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); - zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, dropForeignKey) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getEventsManager) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "eventsManager"); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Manager, setCustomEventsManager) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName_param = NULL, _0, _1; - zval tableName, schemaName, referenceName; + zval *model, model_sub, *eventsManager, eventsManager_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&referenceName); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&eventsManager_sub); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_STR(referenceName) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } - if (UNEXPECTED(Z_TYPE_P(referenceName_param) != IS_STRING && Z_TYPE_P(referenceName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(referenceName_param) == IS_STRING)) { - zephir_get_strval(&referenceName, referenceName_param); - } else { - ZEPHIR_INIT_VAR(&referenceName); - } + zephir_fetch_params(1, 2, 0, &model, &eventsManager); - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "dropforeignkey", NULL, 0, &tableName, &schemaName, &referenceName); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_VAR(&_0); + zephir_get_class(&_0, model, 1); + zephir_update_property_array(this_ptr, SL("customEventsManager"), &_0, eventsManager); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, dropIndex) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getCustomEventsManager) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *indexName, indexName_sub, _0, _1; - zval tableName, schemaName; + zval *model, model_sub, eventsManager, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&indexName_sub); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&eventsManager); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_ZVAL(indexName) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &indexName); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } + zephir_fetch_params(1, 1, 0, &model); - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "dropindex", NULL, 0, &tableName, &schemaName, indexName); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); - zephir_check_call_status(); - RETURN_MM(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("customEventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + zephir_get_class(&_1, model, 1); + if (zephir_array_isset_fetch(&eventsManager, &_0, &_1, 1)) { + RETURN_CTOR(&eventsManager); + } + RETURN_MM_NULL(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, dropPrimaryKey) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, initialize) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, _0, _1; - zval tableName, schemaName; + zval *model, model_sub, __$true, className, eventsManager, _0, _1, _2$$5; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&model_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&eventsManager); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &tableName_param, &schemaName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); + zephir_fetch_params(1, 1, 0, &model); + + + ZEPHIR_INIT_VAR(&className); + zephir_get_class(&className, model, 1); + zephir_read_property(&_0, this_ptr, ZEND_STRL("initialized"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset(&_0, &className)) { + RETURN_MM_BOOL(0); } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); + zephir_update_property_array(this_ptr, SL("initialized"), &className, &__$true); + if ((zephir_method_exists_ex(model, ZEND_STRL("initialize")) == SUCCESS)) { + ZEPHIR_CALL_METHOD(NULL, model, "initialize", NULL, 0); + zephir_check_call_status(); } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); + zephir_update_property_zval(this_ptr, ZEND_STRL("lastInitialized"), model); + zephir_read_property(&_1, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_1); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_2$$5); + ZVAL_STRING(&_2$$5, "modelsManager:afterInitialize"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_2$$5, this_ptr, model); + zephir_check_call_status(); } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "dropprimarykey", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); - zephir_check_call_status(); - RETURN_MM(); + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, dropTable) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, isInitialized) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool ifExists; - zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, _0, _1, _2; - zval tableName, schemaName; + zval *className_param = NULL, _0, _1; + zval className; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&className); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(tableName) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) - Z_PARAM_BOOL(ifExists) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(className) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &tableName_param, &schemaName_param, &ifExists_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + zephir_fetch_params(1, 1, 0, &className_param); + if (UNEXPECTED(Z_TYPE_P(className_param) != IS_STRING && Z_TYPE_P(className_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'className' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } - } - if (!ifExists_param) { - ifExists = 1; + if (EXPECTED(Z_TYPE_P(className_param) == IS_STRING)) { + zephir_get_strval(&className, className_param); } else { - ifExists = zephir_get_boolval(ifExists_param); + ZEPHIR_INIT_VAR(&className); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - if (ifExists) { - ZVAL_BOOL(&_2, 1); - } else { - ZVAL_BOOL(&_2, 0); - } - ZEPHIR_CALL_METHOD(&_1, &_0, "droptable", NULL, 0, &tableName, &schemaName, &_2); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); - zephir_check_call_status(); - RETURN_MM(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("initialized"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + zephir_fast_strtolower(&_1, &className); + RETURN_MM_BOOL(zephir_array_isset(&_0, &_1)); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, dropView) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getLastInitialized) { + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "lastInitialized"); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Manager, load) +{ + zval _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool ifExists; - zval *viewName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, _0, _1, _2; - zval viewName, schemaName; + zval *modelName_param = NULL, __$null, model, _3, _0$$3; + zval modelName, _1$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&viewName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&_1$$3); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_0$$3); ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(viewName) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) - Z_PARAM_BOOL(ifExists) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(modelName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &viewName_param, &schemaName_param, &ifExists_param); - if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { - zephir_get_strval(&viewName, viewName_param); - } else { - ZEPHIR_INIT_VAR(&viewName); - } - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + zephir_fetch_params(1, 1, 0, &modelName_param); + if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } - } - if (!ifExists_param) { - ifExists = 1; + if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { + zephir_get_strval(&modelName, modelName_param); } else { - ifExists = zephir_get_boolval(ifExists_param); + ZEPHIR_INIT_VAR(&modelName); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - if (ifExists) { - ZVAL_BOOL(&_2, 1); - } else { - ZVAL_BOOL(&_2, 0); + if (UNEXPECTED(!(zephir_class_exists(&modelName, 1)))) { + ZEPHIR_INIT_VAR(&_0$$3); + object_init_ex(&_0$$3, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_1$$3); + ZEPHIR_CONCAT_SVS(&_1$$3, "Model '", &modelName, "' could not be loaded"); + ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 8, &_1$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_0$$3, "phalcon/Mvc/Model/Manager.zep", 347); + ZEPHIR_MM_RESTORE(); + return; } - ZEPHIR_CALL_METHOD(&_1, &_0, "dropview", NULL, 0, &viewName, &schemaName, &_2); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); + ZEPHIR_INIT_VAR(&_2); + zephir_create_array(&_2, 3, 0); + zephir_array_fast_append(&_2, &__$null); + ZEPHIR_OBS_VAR(&_3); + zephir_read_property(&_3, this_ptr, ZEND_STRL("container"), PH_NOISY_CC); + zephir_array_fast_append(&_2, &_3); + zephir_array_fast_append(&_2, this_ptr); + ZEPHIR_INIT_VAR(&model); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(&model, &modelName, &_2); zephir_check_call_status(); - RETURN_MM(); + RETURN_CCTOR(&model); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, escapeIdentifier) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, setModelPrefix) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *identifier, identifier_sub, _0$$3, _1$$3, _2$$3, _3$$3, _4$$3, _5$$3, _6; + zval *prefix_param = NULL; + zval prefix; zval *this_ptr = getThis(); - ZVAL_UNDEF(&identifier_sub); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&prefix); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(identifier) + Z_PARAM_STR(prefix) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &identifier); + zephir_fetch_params(1, 1, 0, &prefix_param); + if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { + zephir_get_strval(&prefix, prefix_param); + } else { + ZEPHIR_INIT_VAR(&prefix); + } - if (Z_TYPE_P(identifier) == IS_ARRAY) { - zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_long(&_2$$3, identifier, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 522); - ZEPHIR_CALL_METHOD(&_1$$3, &_0$$3, "escape", NULL, 0, &_2$$3); - zephir_check_call_status(); - zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_long(&_5$$3, identifier, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 522); - ZEPHIR_CALL_METHOD(&_4$$3, &_3$$3, "escape", NULL, 0, &_5$$3); - zephir_check_call_status(); - ZEPHIR_CONCAT_VSV(return_value, &_1$$3, ".", &_4$$3); - RETURN_MM(); - } - zephir_read_property(&_6, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_6, "escape", NULL, 0, identifier); - zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &prefix); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, fetchAll) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getModelPrefix) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "prefix"); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Manager, setModelSource) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval bindParams, bindTypes; - zend_long fetchMode, ZEPHIR_LAST_CALL_STATUS; - zval *sqlQuery_param = NULL, *fetchMode_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, result, _1, _0$$4; - zval sqlQuery; + zval source; + zval *model, model_sub, *source_param = NULL, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&sqlQuery); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_0$$4); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&source); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 4) - Z_PARAM_STR(sqlQuery) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(fetchMode) - Z_PARAM_ARRAY(bindParams) - Z_PARAM_ARRAY(bindTypes) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_STR(source) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 3, &sqlQuery_param, &fetchMode_param, &bindParams_param, &bindTypes_param); - zephir_get_strval(&sqlQuery, sqlQuery_param); - if (!fetchMode_param) { - fetchMode = 2; - } else { - fetchMode = zephir_get_intval(fetchMode_param); - } - if (!bindParams_param) { - ZEPHIR_INIT_VAR(&bindParams); - array_init(&bindParams); - } else { - zephir_get_arrval(&bindParams, bindParams_param); + zephir_fetch_params(1, 2, 0, &model, &source_param); + if (UNEXPECTED(Z_TYPE_P(source_param) != IS_STRING && Z_TYPE_P(source_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'source' must be of the type string")); + RETURN_MM_NULL(); } - if (!bindTypes_param) { - ZEPHIR_INIT_VAR(&bindTypes); - array_init(&bindTypes); + if (EXPECTED(Z_TYPE_P(source_param) == IS_STRING)) { + zephir_get_strval(&source, source_param); } else { - zephir_get_arrval(&bindTypes, bindTypes_param); + ZEPHIR_INIT_VAR(&source); } - ZEPHIR_CALL_METHOD(&result, this_ptr, "query", NULL, 0, &sqlQuery, &bindParams, &bindTypes); - zephir_check_call_status(); - if (Z_TYPE_P(&result) != IS_OBJECT) { - array_init(return_value); - RETURN_MM(); - } - if (UNEXPECTED(fetchMode == 7)) { - ZVAL_LONG(&_0$$4, 7); - ZEPHIR_RETURN_CALL_METHOD(&result, "fetchall", NULL, 0, &_0$$4); - zephir_check_call_status(); - RETURN_MM(); - } - ZVAL_LONG(&_1, fetchMode); - ZEPHIR_CALL_METHOD(NULL, &result, "setfetchmode", NULL, 0, &_1); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&result, "fetchall", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_VAR(&_0); + zephir_get_class(&_0, model, 1); + zephir_update_property_array(this_ptr, SL("sources"), &_0, &source); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, fetchColumn) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, isVisibleModelProperty) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval placeholders; - zval *sqlQuery_param = NULL, *placeholders_param = NULL, *column = NULL, column_sub, row, columnValue, _0; - zval sqlQuery; + zval property; + zval *model, model_sub, *property_param = NULL, properties, className, _0, _2, _1$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&sqlQuery); - ZVAL_UNDEF(&column_sub); - ZVAL_UNDEF(&row); - ZVAL_UNDEF(&columnValue); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&properties); + ZVAL_UNDEF(&className); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&placeholders); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&property); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(sqlQuery) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(placeholders) - Z_PARAM_ZVAL(column) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_STR(property) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &sqlQuery_param, &placeholders_param, &column); - zephir_get_strval(&sqlQuery, sqlQuery_param); - if (!placeholders_param) { - ZEPHIR_INIT_VAR(&placeholders); - array_init(&placeholders); - } else { - zephir_get_arrval(&placeholders, placeholders_param); - } - if (!column) { - column = &column_sub; - ZEPHIR_INIT_VAR(column); - ZVAL_LONG(column, 0); - } + zephir_fetch_params(1, 2, 0, &model, &property_param); + zephir_get_strval(&property, property_param); - ZVAL_LONG(&_0, 4); - ZEPHIR_CALL_METHOD(&row, this_ptr, "fetchone", NULL, 0, &sqlQuery, &_0, &placeholders); - zephir_check_call_status(); - if (!(zephir_array_isset_fetch(&columnValue, &row, column, 1))) { - RETURN_MM_BOOL(0); + ZEPHIR_INIT_VAR(&className); + zephir_get_class(&className, model, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelVisibility"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset(&_0, &className))) { + ZEPHIR_CALL_FUNCTION(&_1$$3, "get_object_vars", NULL, 438, model); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("modelVisibility"), &className, &_1$$3); } - RETURN_CTOR(&columnValue); + zephir_read_property(&_2, this_ptr, ZEND_STRL("modelVisibility"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_OBS_VAR(&properties); + zephir_array_fetch(&properties, &_2, &className, PH_NOISY, "phalcon/Mvc/Model/Manager.zep", 428); + RETURN_MM_BOOL(zephir_array_key_exists(&properties, &property)); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, fetchOne) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getModelSource) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval bindParams, bindTypes; - zval *sqlQuery_param = NULL, *fetchMode = NULL, fetchMode_sub, *bindParams_param = NULL, *bindTypes_param = NULL, result; - zval sqlQuery; + zval *model, model_sub, entityName, _0, _3, _4, _5, _1$$3, _2$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&sqlQuery); - ZVAL_UNDEF(&fetchMode_sub); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&entityName); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 4) - Z_PARAM_STR(sqlQuery) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL(fetchMode) - Z_PARAM_ARRAY(bindParams) - Z_PARAM_ARRAY(bindTypes) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 3, &sqlQuery_param, &fetchMode, &bindParams_param, &bindTypes_param); - if (UNEXPECTED(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { - zephir_get_strval(&sqlQuery, sqlQuery_param); - } else { - ZEPHIR_INIT_VAR(&sqlQuery); - } - if (!fetchMode) { - fetchMode = &fetchMode_sub; - ZEPHIR_INIT_VAR(fetchMode); - ZVAL_LONG(fetchMode, 2); - } - if (!bindParams_param) { - ZEPHIR_INIT_VAR(&bindParams); - array_init(&bindParams); - } else { - zephir_get_arrval(&bindParams, bindParams_param); - } - if (!bindTypes_param) { - ZEPHIR_INIT_VAR(&bindTypes); - array_init(&bindTypes); - } else { - zephir_get_arrval(&bindTypes, bindTypes_param); - } + zephir_fetch_params(1, 1, 0, &model); - ZEPHIR_CALL_METHOD(&result, this_ptr, "query", NULL, 0, &sqlQuery, &bindParams, &bindTypes); - zephir_check_call_status(); - if (Z_TYPE_P(&result) != IS_OBJECT) { - array_init(return_value); - RETURN_MM(); - } - if (Z_TYPE_P(fetchMode) != IS_NULL) { - ZEPHIR_CALL_METHOD(NULL, &result, "setfetchmode", NULL, 0, fetchMode); + ZEPHIR_INIT_VAR(&entityName); + zephir_get_class(&entityName, model, 1); + zephir_read_property(&_0, this_ptr, ZEND_STRL("sources"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset(&_0, &entityName))) { + ZEPHIR_INIT_VAR(&_1$$3); + ZEPHIR_INIT_VAR(&_2$$3); + zephir_get_class_ns(&_2$$3, model, 0); + zephir_uncamelize(&_1$$3, &_2$$3, NULL ); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setmodelsource", NULL, 0, model, &_1$$3); zephir_check_call_status(); } - ZEPHIR_RETURN_CALL_METHOD(&result, "fetch", NULL, 0); - zephir_check_call_status(); + zephir_read_property(&_3, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_4, this_ptr, ZEND_STRL("sources"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_5, &_4, &entityName, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 451); + ZEPHIR_CONCAT_VV(return_value, &_3, &_5); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, forUpdate) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, setModelSchema) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *sqlQuery_param = NULL, _0; - zval sqlQuery; + zval schema; + zval *model, model_sub, *schema_param = NULL, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&sqlQuery); + ZVAL_UNDEF(&model_sub); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&schema); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(sqlQuery) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_STR(schema) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &sqlQuery_param); - if (UNEXPECTED(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be of the type string")); + zephir_fetch_params(1, 2, 0, &model, &schema_param); + if (UNEXPECTED(Z_TYPE_P(schema_param) != IS_STRING && Z_TYPE_P(schema_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schema' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { - zephir_get_strval(&sqlQuery, sqlQuery_param); + if (EXPECTED(Z_TYPE_P(schema_param) == IS_STRING)) { + zephir_get_strval(&schema, schema_param); } else { - ZEPHIR_INIT_VAR(&sqlQuery); + ZEPHIR_INIT_VAR(&schema); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "forupdate", NULL, 0, &sqlQuery); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_VAR(&_0); + zephir_get_class(&_0, model, 1); + zephir_update_property_array(this_ptr, SL("schemas"), &_0, &schema); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getColumnDefinition) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getModelSchema) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *column, column_sub, _0; + zval *model, model_sub, schema, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&schema); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &column); + zephir_fetch_params(1, 1, 0, &model); - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "getcolumndefinition", NULL, 0, column); - zephir_check_call_status(); - RETURN_MM(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("schemas"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + zephir_get_class(&_1, model, 1); + if (!(zephir_array_isset_fetch(&schema, &_0, &_1, 1))) { + RETURN_MM_NULL(); + } + RETURN_CTOR(&schema); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getColumnList) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, setConnectionService) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *columnList, columnList_sub, _0; + zval connectionService; + zval *model, model_sub, *connectionService_param = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&columnList_sub); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&connectionService); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(columnList) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_STR(connectionService) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &columnList); + zephir_fetch_params(1, 2, 0, &model, &connectionService_param); + if (UNEXPECTED(Z_TYPE_P(connectionService_param) != IS_STRING && Z_TYPE_P(connectionService_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'connectionService' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(connectionService_param) == IS_STRING)) { + zephir_get_strval(&connectionService, connectionService_param); + } else { + ZEPHIR_INIT_VAR(&connectionService); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "getcolumnlist", NULL, 0, columnList); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setreadconnectionservice", NULL, 0, model, &connectionService); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setwriteconnectionservice", NULL, 0, model, &connectionService); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getConnectionId) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, setWriteConnectionService) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval connectionService; + zval *model, model_sub, *connectionService_param = NULL, _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&connectionService); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_STR(connectionService) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "connectionId"); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &model, &connectionService_param); + if (UNEXPECTED(Z_TYPE_P(connectionService_param) != IS_STRING && Z_TYPE_P(connectionService_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'connectionService' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(connectionService_param) == IS_STRING)) { + zephir_get_strval(&connectionService, connectionService_param); + } else { + ZEPHIR_INIT_VAR(&connectionService); + } + + + ZEPHIR_INIT_VAR(&_0); + zephir_get_class(&_0, model, 1); + zephir_update_property_array(this_ptr, SL("writeConnectionServices"), &_0, &connectionService); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getDefaultIdValue) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, setReadConnectionService) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval connectionService; + zval *model, model_sub, *connectionService_param = NULL, _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&model_sub); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&connectionService); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_STR(connectionService) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &model, &connectionService_param); + if (UNEXPECTED(Z_TYPE_P(connectionService_param) != IS_STRING && Z_TYPE_P(connectionService_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'connectionService' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(connectionService_param) == IS_STRING)) { + zephir_get_strval(&connectionService, connectionService_param); + } else { + ZEPHIR_INIT_VAR(&connectionService); + } + - object_init_ex(return_value, phalcon_db_rawvalue_ce); ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "null"); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 34, &_0); - zephir_check_call_status(); - RETURN_MM(); + zephir_get_class(&_0, model, 1); + zephir_update_property_array(this_ptr, SL("readConnectionServices"), &_0, &connectionService); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getDefaultValue) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getReadConnection) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *model, model_sub, _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&model_sub); ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &model); - object_init_ex(return_value, phalcon_db_rawvalue_ce); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "DEFAULT"); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 34, &_0); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("readConnectionServices"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getconnection", NULL, 0, model, &_0); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getDescriptor) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getWriteConnection) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *model, model_sub, _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "descriptor"); -} - -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getDialect) -{ - zval *this_ptr = getThis(); - + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &model); - RETURN_MEMBER(getThis(), "dialect"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("writeConnectionServices"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getconnection", NULL, 0, model, &_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getEventsManager) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getConnection) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_3 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *model, model_sub, *connectionServices, connectionServices_sub, container, service, connection, _0, _5, _1$$3, _2$$3, _4$$3; zval *this_ptr = getThis(); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&connectionServices_sub); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&service); + ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_ZVAL(connectionServices) + ZEND_PARSE_PARAMETERS_END(); +#endif + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &model, &connectionServices); - RETURN_MEMBER(getThis(), "eventsManager"); + + ZEPHIR_CALL_METHOD(&service, this_ptr, "getconnectionservice", NULL, 0, model, connectionServices); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "the services related to the ORM"); + ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_mvc_model_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model/Manager.zep", 535); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_METHOD(&_5, &container, "getshared", NULL, 0, &service); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&connection, &_5); + if (UNEXPECTED(Z_TYPE_P(&connection) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid injected connection service", "phalcon/Mvc/Model/Manager.zep", 544); + return; + } + RETURN_CCTOR(&connection); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getNestedTransactionSavepointName) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getReadConnectionService) { - zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *model, model_sub, _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&model_sub); ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &model); - zephir_read_property(&_0, this_ptr, ZEND_STRL("transactionLevel"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CONCAT_SV(return_value, "PHALCON_SAVEPOINT_", &_0); - return; + zephir_read_property(&_0, this_ptr, ZEND_STRL("readConnectionServices"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getconnectionservice", NULL, 0, model, &_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getRealSQLStatement) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getWriteConnectionService) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *model, model_sub, _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "realSqlStatement"); -} - -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getSQLBindTypes) -{ - zval *this_ptr = getThis(); - + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &model); - RETURN_MEMBER(getThis(), "sqlBindTypes"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("writeConnectionServices"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getconnectionservice", NULL, 0, model, &_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getSQLStatement) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getConnectionService) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *model, model_sub, *connectionServices, connectionServices_sub, connection, _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&connectionServices_sub); + ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_ZVAL(connectionServices) + ZEND_PARSE_PARAMETERS_END(); +#endif + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &model, &connectionServices); - RETURN_MEMBER(getThis(), "sqlStatement"); + + ZEPHIR_INIT_VAR(&_0); + zephir_get_class(&_0, model, 1); + if (!(zephir_array_isset_fetch(&connection, connectionServices, &_0, 1))) { + RETURN_MM_STRING("db"); + } + RETURN_CTOR(&connection); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, insert) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, notifyEvent) { - zend_bool _6$$4, _11$$12; - zend_string *_5; - zend_ulong _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval values; - zval *table_param = NULL, *values_param = NULL, *fields = NULL, fields_sub, *dataTypes = NULL, dataTypes_sub, __$null, bindDataTypes, bindType, escapedTable, escapedFields, field, insertSql, insertValues, joinedValues, placeholders, position, tableName, value, *_2, _3, _16, _17, _0$$3, _9$$8, _10$$9, _14$$16, _15$$17, *_18$$22, _19$$22, _22$$22, _20$$23, _21$$24; - zval table, _1$$3, _7$$5, _8$$7, _12$$13, _13$$15; + zval *eventName_param = NULL, *model, model_sub, status, behavior, modelsBehaviors, eventsManager, customEventsManager, _0, _1, _4, _6, *_2$$3, _3$$3; + zval eventName, _5$$8, _7$$10; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_8$$7); - ZVAL_UNDEF(&_12$$13); - ZVAL_UNDEF(&_13$$15); - ZVAL_UNDEF(&fields_sub); - ZVAL_UNDEF(&dataTypes_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&bindDataTypes); - ZVAL_UNDEF(&bindType); - ZVAL_UNDEF(&escapedTable); - ZVAL_UNDEF(&escapedFields); - ZVAL_UNDEF(&field); - ZVAL_UNDEF(&insertSql); - ZVAL_UNDEF(&insertValues); - ZVAL_UNDEF(&joinedValues); - ZVAL_UNDEF(&placeholders); - ZVAL_UNDEF(&position); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_16); - ZVAL_UNDEF(&_17); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_9$$8); - ZVAL_UNDEF(&_10$$9); - ZVAL_UNDEF(&_14$$16); - ZVAL_UNDEF(&_15$$17); - ZVAL_UNDEF(&_19$$22); - ZVAL_UNDEF(&_22$$22); - ZVAL_UNDEF(&_20$$23); - ZVAL_UNDEF(&_21$$24); - ZVAL_UNDEF(&values); + ZVAL_UNDEF(&eventName); + ZVAL_UNDEF(&_5$$8); + ZVAL_UNDEF(&_7$$10); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&status); + ZVAL_UNDEF(&behavior); + ZVAL_UNDEF(&modelsBehaviors); + ZVAL_UNDEF(&eventsManager); + ZVAL_UNDEF(&customEventsManager); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_3$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 4) - Z_PARAM_STR(table) - Z_PARAM_ARRAY(values) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(fields) - Z_PARAM_ZVAL_OR_NULL(dataTypes) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(eventName) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 2, &table_param, &values_param, &fields, &dataTypes); - zephir_get_strval(&table, table_param); - ZEPHIR_OBS_COPY_OR_DUP(&values, values_param); - if (!fields) { - fields = &fields_sub; - fields = &__$null; + zephir_fetch_params(1, 2, 0, &eventName_param, &model); + if (UNEXPECTED(Z_TYPE_P(eventName_param) != IS_STRING && Z_TYPE_P(eventName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventName' must be of the type string")); + RETURN_MM_NULL(); } - if (!dataTypes) { - dataTypes = &dataTypes_sub; - dataTypes = &__$null; + if (EXPECTED(Z_TYPE_P(eventName_param) == IS_STRING)) { + zephir_get_strval(&eventName, eventName_param); + } else { + ZEPHIR_INIT_VAR(&eventName); } - if (UNEXPECTED(!(zephir_fast_count_int(&values)))) { - ZEPHIR_INIT_VAR(&_0$$3); - object_init_ex(&_0$$3, phalcon_db_exception_ce); - ZEPHIR_INIT_VAR(&_1$$3); - ZEPHIR_CONCAT_SVS(&_1$$3, "Unable to insert into ", &table, " without data"); - ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 8, &_1$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_0$$3, "phalcon/Db/Adapter/AbstractAdapter.zep", 802); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_VAR(&placeholders); - array_init(&placeholders); - ZEPHIR_INIT_VAR(&insertValues); - array_init(&insertValues); - ZEPHIR_INIT_VAR(&bindDataTypes); - array_init(&bindDataTypes); - zephir_is_iterable(&values, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 840); - if (Z_TYPE_P(&values) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&values), _4, _5, _2) - { - ZEPHIR_INIT_NVAR(&position); - if (_5 != NULL) { - ZVAL_STR_COPY(&position, _5); - } else { - ZVAL_LONG(&position, _4); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _2); - _6$$4 = Z_TYPE_P(&value) == IS_OBJECT; - if (_6$$4) { - _6$$4 = zephir_instance_of_ev(&value, phalcon_db_rawvalue_ce); - } - if (_6$$4) { - zephir_cast_to_string(&_7$$5, &value); - zephir_array_append(&placeholders, &_7$$5, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 815); - } else { - if (Z_TYPE_P(&value) == IS_OBJECT) { - zephir_cast_to_string(&_8$$7, &value); - ZEPHIR_CPY_WRT(&value, &_8$$7); - } - if (Z_TYPE_P(&value) == IS_NULL) { - ZEPHIR_INIT_NVAR(&_9$$8); - ZVAL_STRING(&_9$$8, "null"); - zephir_array_append(&placeholders, &_9$$8, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 822); - } else { - ZEPHIR_INIT_NVAR(&_10$$9); - ZVAL_STRING(&_10$$9, "?"); - zephir_array_append(&placeholders, &_10$$9, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 824); - zephir_array_append(&insertValues, &value, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 825); - if (Z_TYPE_P(dataTypes) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&bindType); - if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, dataTypes, &position, 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Incomplete number of bind types", "phalcon/Db/Adapter/AbstractAdapter.zep", 831); - return; - } - zephir_array_append(&bindDataTypes, &bindType, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 834); - } - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &values, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3, &values, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3)) { - break; - } - ZEPHIR_CALL_METHOD(&position, &values, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &values, "current", NULL, 0); - zephir_check_call_status(); - _11$$12 = Z_TYPE_P(&value) == IS_OBJECT; - if (_11$$12) { - _11$$12 = zephir_instance_of_ev(&value, phalcon_db_rawvalue_ce); - } - if (_11$$12) { - zephir_cast_to_string(&_12$$13, &value); - zephir_array_append(&placeholders, &_12$$13, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 815); - } else { - if (Z_TYPE_P(&value) == IS_OBJECT) { - zephir_cast_to_string(&_13$$15, &value); - ZEPHIR_CPY_WRT(&value, &_13$$15); - } - if (Z_TYPE_P(&value) == IS_NULL) { - ZEPHIR_INIT_NVAR(&_14$$16); - ZVAL_STRING(&_14$$16, "null"); - zephir_array_append(&placeholders, &_14$$16, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 822); - } else { - ZEPHIR_INIT_NVAR(&_15$$17); - ZVAL_STRING(&_15$$17, "?"); - zephir_array_append(&placeholders, &_15$$17, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 824); - zephir_array_append(&insertValues, &value, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 825); - if (Z_TYPE_P(dataTypes) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&bindType); - if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, dataTypes, &position, 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Incomplete number of bind types", "phalcon/Db/Adapter/AbstractAdapter.zep", 831); - return; - } - zephir_array_append(&bindDataTypes, &bindType, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 834); - } - } - } - ZEPHIR_CALL_METHOD(NULL, &values, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&position); - ZEPHIR_INIT_VAR(&_16); - ZVAL_STRING(&_16, "."); - ZEPHIR_INIT_VAR(&_17); - zephir_fast_strpos(&_17, &table, &_16, 0 ); - if (ZEPHIR_GT_LONG(&_17, 0)) { - ZEPHIR_INIT_VAR(&tableName); - zephir_fast_explode_str(&tableName, SL("."), &table, LONG_MAX); - } else { - ZEPHIR_CPY_WRT(&tableName, &table); - } - ZEPHIR_CALL_METHOD(&escapedTable, this_ptr, "escapeidentifier", NULL, 0, &tableName); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&joinedValues); - zephir_fast_join_str(&joinedValues, SL(", "), &placeholders); - ZEPHIR_INIT_VAR(&insertSql); - if (Z_TYPE_P(fields) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&escapedFields); - array_init(&escapedFields); - zephir_is_iterable(fields, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 860); - if (Z_TYPE_P(fields) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(fields), _18$$22) + ZEPHIR_INIT_VAR(&status); + ZVAL_NULL(&status); + ZEPHIR_OBS_VAR(&modelsBehaviors); + zephir_read_property(&_0, this_ptr, ZEND_STRL("behaviors"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + zephir_get_class(&_1, model, 1); + if (zephir_array_isset_fetch(&modelsBehaviors, &_0, &_1, 0)) { + zephir_is_iterable(&modelsBehaviors, 0, "phalcon/Mvc/Model/Manager.zep", 615); + if (Z_TYPE_P(&modelsBehaviors) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&modelsBehaviors), _2$$3) { - ZEPHIR_INIT_NVAR(&field); - ZVAL_COPY(&field, _18$$22); - ZEPHIR_CALL_METHOD(&_20$$23, this_ptr, "escapeidentifier", NULL, 0, &field); + ZEPHIR_INIT_NVAR(&behavior); + ZVAL_COPY(&behavior, _2$$3); + ZEPHIR_CALL_METHOD(&status, &behavior, "notify", NULL, 0, &eventName, model); zephir_check_call_status(); - zephir_array_append(&escapedFields, &_20$$23, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 857); + if (ZEPHIR_IS_FALSE_IDENTICAL(&status)) { + RETURN_MM_BOOL(0); + } } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, fields, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &modelsBehaviors, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_19$$22, fields, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_3$$3, &modelsBehaviors, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_19$$22)) { + if (!zend_is_true(&_3$$3)) { break; } - ZEPHIR_CALL_METHOD(&field, fields, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&behavior, &modelsBehaviors, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_21$$24, this_ptr, "escapeidentifier", NULL, 0, &field); + ZEPHIR_CALL_METHOD(&status, &behavior, "notify", NULL, 0, &eventName, model); zephir_check_call_status(); - zephir_array_append(&escapedFields, &_21$$24, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 857); - ZEPHIR_CALL_METHOD(NULL, fields, "next", NULL, 0); + if (ZEPHIR_IS_FALSE_IDENTICAL(&status)) { + RETURN_MM_BOOL(0); + } + ZEPHIR_CALL_METHOD(NULL, &modelsBehaviors, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&field); - ZEPHIR_INIT_VAR(&_22$$22); - zephir_fast_join_str(&_22$$22, SL(", "), &escapedFields); - ZEPHIR_CONCAT_SVSVSVS(&insertSql, "INSERT INTO ", &escapedTable, " (", &_22$$22, ") VALUES (", &joinedValues, ")"); - } else { - ZEPHIR_CONCAT_SVSVS(&insertSql, "INSERT INTO ", &escapedTable, " VALUES (", &joinedValues, ")"); + ZEPHIR_INIT_NVAR(&behavior); } - if (!(zephir_fast_count_int(&bindDataTypes))) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &insertSql, &insertValues); + zephir_read_property(&_4, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_4); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_5$$8); + ZEPHIR_CONCAT_SV(&_5$$8, "model:", &eventName); + ZEPHIR_CALL_METHOD(&status, &eventsManager, "fire", NULL, 0, &_5$$8, model); zephir_check_call_status(); - RETURN_MM(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&status)) { + RETURN_CCTOR(&status); + } } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &insertSql, &insertValues, &bindDataTypes); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_OBS_VAR(&customEventsManager); + zephir_read_property(&_4, this_ptr, ZEND_STRL("customEventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_6); + zephir_get_class(&_6, model, 1); + if (zephir_array_isset_fetch(&customEventsManager, &_4, &_6, 0)) { + ZEPHIR_INIT_VAR(&_7$$10); + ZEPHIR_CONCAT_SV(&_7$$10, "model:", &eventName); + ZEPHIR_CALL_METHOD(&status, &customEventsManager, "fire", NULL, 0, &_7$$10, model); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&status)) { + RETURN_MM_BOOL(0); + } + } + RETURN_CCTOR(&status); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, insertAsDict) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, missingMethod) { - zend_string *_4; - zend_ulong _3; - zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *table_param = NULL, *data, data_sub, *dataTypes = NULL, dataTypes_sub, __$null, values, fields, field, value, *_1, _2; - zval table; + zval eventName, _5$$8; + zval *model, model_sub, *eventName_param = NULL, *data, data_sub, modelsBehaviors, result, eventsManager, behavior, _0, _1, _4, *_2$$3, _3$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); + ZVAL_UNDEF(&model_sub); ZVAL_UNDEF(&data_sub); - ZVAL_UNDEF(&dataTypes_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&values); - ZVAL_UNDEF(&fields); - ZVAL_UNDEF(&field); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&modelsBehaviors); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&eventsManager); + ZVAL_UNDEF(&behavior); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&eventName); + ZVAL_UNDEF(&_5$$8); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(table) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_STR(eventName) Z_PARAM_ZVAL(data) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(dataTypes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &table_param, &data, &dataTypes); - zephir_get_strval(&table, table_param); - if (!dataTypes) { - dataTypes = &dataTypes_sub; - dataTypes = &__$null; + zephir_fetch_params(1, 3, 0, &model, &eventName_param, &data); + if (UNEXPECTED(Z_TYPE_P(eventName_param) != IS_STRING && Z_TYPE_P(eventName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(eventName_param) == IS_STRING)) { + zephir_get_strval(&eventName, eventName_param); + } else { + ZEPHIR_INIT_VAR(&eventName); } - ZEPHIR_INIT_VAR(&values); - array_init(&values); - ZEPHIR_INIT_VAR(&fields); - array_init(&fields); - _0 = Z_TYPE_P(data) != IS_ARRAY; - if (!(_0)) { - _0 = ZEPHIR_IS_EMPTY(data); - } - if (_0) { - RETURN_MM_BOOL(0); - } - zephir_is_iterable(data, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 906); - if (Z_TYPE_P(data) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(data), _3, _4, _1) - { - ZEPHIR_INIT_NVAR(&field); - if (_4 != NULL) { - ZVAL_STR_COPY(&field, _4); - } else { - ZVAL_LONG(&field, _3); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _1); - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 902); - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 903); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, data, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, data, "valid", NULL, 0); + ZEPHIR_OBS_VAR(&modelsBehaviors); + zephir_read_property(&_0, this_ptr, ZEND_STRL("behaviors"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + zephir_get_class(&_1, model, 1); + if (zephir_array_isset_fetch(&modelsBehaviors, &_0, &_1, 0)) { + zephir_is_iterable(&modelsBehaviors, 0, "phalcon/Mvc/Model/Manager.zep", 673); + if (Z_TYPE_P(&modelsBehaviors) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&modelsBehaviors), _2$$3) + { + ZEPHIR_INIT_NVAR(&behavior); + ZVAL_COPY(&behavior, _2$$3); + ZEPHIR_CALL_METHOD(&result, &behavior, "missingmethod", NULL, 0, model, &eventName, data); + zephir_check_call_status(); + if (Z_TYPE_P(&result) != IS_NULL) { + RETURN_CCTOR(&result); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &modelsBehaviors, "rewind", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; + while (1) { + ZEPHIR_CALL_METHOD(&_3$$3, &modelsBehaviors, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&behavior, &modelsBehaviors, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&result, &behavior, "missingmethod", NULL, 0, model, &eventName, data); + zephir_check_call_status(); + if (Z_TYPE_P(&result) != IS_NULL) { + RETURN_CCTOR(&result); + } + ZEPHIR_CALL_METHOD(NULL, &modelsBehaviors, "next", NULL, 0); + zephir_check_call_status(); } - ZEPHIR_CALL_METHOD(&field, data, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, data, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 902); - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 903); - ZEPHIR_CALL_METHOD(NULL, data, "next", NULL, 0); - zephir_check_call_status(); } + ZEPHIR_INIT_NVAR(&behavior); } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&field); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "insert", NULL, 0, &table, &values, &fields, dataTypes); - zephir_check_call_status(); - RETURN_MM(); + zephir_read_property(&_4, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_4); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_5$$8); + ZEPHIR_CONCAT_SV(&_5$$8, "model:", &eventName); + ZEPHIR_RETURN_CALL_METHOD(&eventsManager, "fire", NULL, 0, &_5$$8, model, data); + zephir_check_call_status(); + RETURN_MM(); + } + RETURN_MM_NULL(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, isNestedTransactionsWithSavepoints) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, addBehavior) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *model, model_sub, *behavior, behavior_sub, entityName, _0, _1$$3; zval *this_ptr = getThis(); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&behavior_sub); + ZVAL_UNDEF(&entityName); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_OBJECT_OF_CLASS(behavior, phalcon_mvc_model_behaviorinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &model, &behavior); - RETURN_MEMBER(getThis(), "transactionsWithSavepoints"); + ZEPHIR_INIT_VAR(&entityName); + zephir_get_class(&entityName, model, 1); + zephir_read_property(&_0, this_ptr, ZEND_STRL("behaviors"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset(&_0, &entityName))) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_array(this_ptr, SL("behaviors"), &entityName, &_1$$3); + } + zephir_update_property_array_multi(this_ptr, SL("behaviors"), behavior, SL("za"), 2, &entityName); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, limit) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, keepSnapshots) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long number, ZEPHIR_LAST_CALL_STATUS; - zval *sqlQuery_param = NULL, *number_param = NULL, _0, _1; - zval sqlQuery; + zend_bool keepSnapshots; + zval *model, model_sub, *keepSnapshots_param = NULL, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&sqlQuery); + ZVAL_UNDEF(&model_sub); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(sqlQuery) - Z_PARAM_LONG(number) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_BOOL(keepSnapshots) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &sqlQuery_param, &number_param); - if (UNEXPECTED(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { - zephir_get_strval(&sqlQuery, sqlQuery_param); - } else { - ZEPHIR_INIT_VAR(&sqlQuery); - } - number = zephir_get_intval(number_param); + zephir_fetch_params(1, 2, 0, &model, &keepSnapshots_param); + keepSnapshots = zephir_get_boolval(keepSnapshots_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_1, number); - ZEPHIR_RETURN_CALL_METHOD(&_0, "limit", NULL, 0, &sqlQuery, &_1); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_VAR(&_0); + zephir_get_class(&_0, model, 1); + ZEPHIR_INIT_VAR(&_1); + ZVAL_BOOL(&_1, keepSnapshots); + zephir_update_property_array(this_ptr, SL("keepSnapshots"), &_0, &_1); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, listTables) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, isKeepingSnapshots) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *schemaName_param = NULL, tables, table, allTables, _0, _1, _2, *_3, _4, _5$$3, _6$$4; - zval schemaName; + zval *model, model_sub, isKeeping, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&tables); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&allTables); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&isKeeping); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &schemaName_param); - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } + zephir_fetch_params(1, 1, 0, &model); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("keepSnapshots"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + zephir_get_class(&_1, model, 1); + if (!(zephir_array_isset_fetch(&isKeeping, &_0, &_1, 1))) { + RETURN_MM_BOOL(0); } + RETURN_CTOR(&isKeeping); +} +static PHP_METHOD(Phalcon_Mvc_Model_Manager, useDynamicUpdate) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_bool dynamicUpdate; + zval *model, model_sub, *dynamicUpdate_param = NULL, entityName, _0, _1; + zval *this_ptr = getThis(); - ZEPHIR_INIT_VAR(&allTables); - array_init(&allTables); - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "listtables", NULL, 0, &schemaName); - zephir_check_call_status(); - ZVAL_LONG(&_2, 3); - ZEPHIR_CALL_METHOD(&tables, this_ptr, "fetchall", NULL, 0, &_1, &_2); - zephir_check_call_status(); - zephir_is_iterable(&tables, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 953); - if (Z_TYPE_P(&tables) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&tables), _3) - { - ZEPHIR_INIT_NVAR(&table); - ZVAL_COPY(&table, _3); - zephir_array_fetch_long(&_5$$3, &table, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 950); - zephir_array_append(&allTables, &_5$$3, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 950); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &tables, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_4, &tables, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_4)) { - break; - } - ZEPHIR_CALL_METHOD(&table, &tables, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_fetch_long(&_6$$4, &table, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 950); - zephir_array_append(&allTables, &_6$$4, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 950); - ZEPHIR_CALL_METHOD(NULL, &tables, "next", NULL, 0); - zephir_check_call_status(); - } + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&entityName); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_BOOL(dynamicUpdate) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &model, &dynamicUpdate_param); + dynamicUpdate = zephir_get_boolval(dynamicUpdate_param); + + + ZEPHIR_INIT_VAR(&entityName); + zephir_get_class(&entityName, model, 1); + ZEPHIR_INIT_VAR(&_0); + ZVAL_BOOL(&_0, dynamicUpdate); + zephir_update_property_array(this_ptr, SL("dynamicUpdate"), &entityName, &_0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_BOOL(&_1, dynamicUpdate); + zephir_update_property_array(this_ptr, SL("keepSnapshots"), &entityName, &_1); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Manager, isUsingDynamicUpdate) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *model, model_sub, isUsing, _0, _1; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&isUsing); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &model); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dynamicUpdate"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + zephir_get_class(&_1, model, 1); + if (!(zephir_array_isset_fetch(&isUsing, &_0, &_1, 1))) { + RETURN_MM_BOOL(0); } - ZEPHIR_INIT_NVAR(&table); - RETURN_CCTOR(&allTables); + RETURN_CTOR(&isUsing); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, listViews) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, addHasOne) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *schemaName_param = NULL, tables, table, allTables, _0, _1, _2, *_3, _4, _5$$3, _6$$4; - zval schemaName; + zval referencedModel, keyRelation; + zval *model, model_sub, *fields, fields_sub, *referencedModel_param = NULL, *referencedFields, referencedFields_sub, *options = NULL, options_sub, __$null, entityName, referencedEntity, relation, relations, alias, lowerAlias, singleRelations, _0, _1, _2, _3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&tables); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&allTables); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&fields_sub); + ZVAL_UNDEF(&referencedFields_sub); + ZVAL_UNDEF(&options_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&entityName); + ZVAL_UNDEF(&referencedEntity); + ZVAL_UNDEF(&relation); + ZVAL_UNDEF(&relations); + ZVAL_UNDEF(&alias); + ZVAL_UNDEF(&lowerAlias); + ZVAL_UNDEF(&singleRelations); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&referencedModel); + ZVAL_UNDEF(&keyRelation); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(4, 5) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_ZVAL(fields) + Z_PARAM_STR(referencedModel) + Z_PARAM_ZVAL(referencedFields) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) + Z_PARAM_ZVAL_OR_NULL(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &schemaName_param); - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + zephir_fetch_params(1, 4, 1, &model, &fields, &referencedModel_param, &referencedFields, &options); + if (UNEXPECTED(Z_TYPE_P(referencedModel_param) != IS_STRING && Z_TYPE_P(referencedModel_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referencedModel' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); + if (EXPECTED(Z_TYPE_P(referencedModel_param) == IS_STRING)) { + zephir_get_strval(&referencedModel, referencedModel_param); } else { - ZEPHIR_INIT_VAR(&schemaName); + ZEPHIR_INIT_VAR(&referencedModel); } + if (!options) { + options = &options_sub; + options = &__$null; } - ZEPHIR_INIT_VAR(&allTables); - array_init(&allTables); - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "listviews", NULL, 0, &schemaName); - zephir_check_call_status(); - ZVAL_LONG(&_2, 3); - ZEPHIR_CALL_METHOD(&tables, this_ptr, "fetchall", NULL, 0, &_1, &_2); + ZEPHIR_INIT_VAR(&entityName); + zephir_get_class(&entityName, model, 1); + ZEPHIR_INIT_VAR(&referencedEntity); + zephir_fast_strtolower(&referencedEntity, &referencedModel); + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_CONCAT_VSV(&_0, &entityName, "$", &referencedEntity); + zephir_get_strval(&keyRelation, &_0); + ZEPHIR_OBS_VAR(&relations); + zephir_read_property(&_1, this_ptr, ZEND_STRL("hasOne"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&relations, &_1, &keyRelation, 0))) { + ZEPHIR_INIT_NVAR(&relations); + array_init(&relations); + } + if (Z_TYPE_P(referencedFields) == IS_ARRAY) { + if (UNEXPECTED(zephir_fast_count_int(fields) != zephir_fast_count_int(referencedFields))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Number of referenced fields are not the same", "phalcon/Mvc/Model/Manager.zep", 786); + return; + } + } + ZEPHIR_INIT_VAR(&relation); + object_init_ex(&relation, phalcon_mvc_model_relation_ce); + ZVAL_LONG(&_2, 1); + ZEPHIR_CALL_METHOD(NULL, &relation, "__construct", NULL, 452, &_2, &referencedModel, fields, referencedFields, options); zephir_check_call_status(); - zephir_is_iterable(&tables, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 980); - if (Z_TYPE_P(&tables) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&tables), _3) - { - ZEPHIR_INIT_NVAR(&table); - ZVAL_COPY(&table, _3); - zephir_array_fetch_long(&_5$$3, &table, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 977); - zephir_array_append(&allTables, &_5$$3, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 977); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &tables, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_4, &tables, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_4)) { - break; - } - ZEPHIR_CALL_METHOD(&table, &tables, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_fetch_long(&_6$$4, &table, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 977); - zephir_array_append(&allTables, &_6$$4, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 977); - ZEPHIR_CALL_METHOD(NULL, &tables, "next", NULL, 0); - zephir_check_call_status(); + ZEPHIR_OBS_VAR(&alias); + if (zephir_array_isset_string_fetch(&alias, options, SL("alias"), 0)) { + if (UNEXPECTED(Z_TYPE_P(&alias) != IS_STRING)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Relation alias must be a string", "phalcon/Mvc/Model/Manager.zep", 806); + return; } + ZEPHIR_INIT_VAR(&lowerAlias); + zephir_fast_strtolower(&lowerAlias, &alias); + } else { + ZEPHIR_CPY_WRT(&lowerAlias, &referencedEntity); } - ZEPHIR_INIT_NVAR(&table); - RETURN_CCTOR(&allTables); + zephir_array_append(&relations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 819); + ZEPHIR_INIT_VAR(&_3); + ZEPHIR_CONCAT_VSV(&_3, &entityName, "$", &lowerAlias); + zephir_update_property_array(this_ptr, SL("aliases"), &_3, &relation); + zephir_update_property_array(this_ptr, SL("hasOne"), &keyRelation, &relations); + ZEPHIR_OBS_VAR(&singleRelations); + zephir_read_property(&_2, this_ptr, ZEND_STRL("hasOneSingle"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&singleRelations, &_2, &entityName, 0))) { + ZEPHIR_INIT_NVAR(&singleRelations); + array_init(&singleRelations); + } + zephir_array_append(&singleRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 833); + zephir_update_property_array(this_ptr, SL("hasOneSingle"), &entityName, &singleRelations); + RETURN_CCTOR(&relation); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, modifyColumn) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, addHasOneThrough) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *column, column_sub, *currentColumn = NULL, currentColumn_sub, __$null, _0, _1; - zval tableName, schemaName; + zval intermediateModel, referencedModel, keyRelation; + zval *model, model_sub, *fields, fields_sub, *intermediateModel_param = NULL, *intermediateFields, intermediateFields_sub, *intermediateReferencedFields, intermediateReferencedFields_sub, *referencedModel_param = NULL, *referencedFields, referencedFields_sub, *options = NULL, options_sub, __$null, entityName, referencedEntity, hasOneThrough, relation, relations, alias, lowerAlias, singleRelations, intermediateEntity, _0, _1, _2; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&column_sub); - ZVAL_UNDEF(¤tColumn_sub); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&fields_sub); + ZVAL_UNDEF(&intermediateFields_sub); + ZVAL_UNDEF(&intermediateReferencedFields_sub); + ZVAL_UNDEF(&referencedFields_sub); + ZVAL_UNDEF(&options_sub); ZVAL_NULL(&__$null); + ZVAL_UNDEF(&entityName); + ZVAL_UNDEF(&referencedEntity); + ZVAL_UNDEF(&hasOneThrough); + ZVAL_UNDEF(&relation); + ZVAL_UNDEF(&relations); + ZVAL_UNDEF(&alias); + ZVAL_UNDEF(&lowerAlias); + ZVAL_UNDEF(&singleRelations); + ZVAL_UNDEF(&intermediateEntity); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&intermediateModel); + ZVAL_UNDEF(&referencedModel); + ZVAL_UNDEF(&keyRelation); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 4) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + ZEND_PARSE_PARAMETERS_START(7, 8) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_ZVAL(fields) + Z_PARAM_STR(intermediateModel) + Z_PARAM_ZVAL(intermediateFields) + Z_PARAM_ZVAL(intermediateReferencedFields) + Z_PARAM_STR(referencedModel) + Z_PARAM_ZVAL(referencedFields) Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(currentColumn, phalcon_db_columninterface_ce) + Z_PARAM_ZVAL_OR_NULL(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 1, &tableName_param, &schemaName_param, &column, ¤tColumn); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + zephir_fetch_params(1, 7, 1, &model, &fields, &intermediateModel_param, &intermediateFields, &intermediateReferencedFields, &referencedModel_param, &referencedFields, &options); + if (UNEXPECTED(Z_TYPE_P(intermediateModel_param) != IS_STRING && Z_TYPE_P(intermediateModel_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'intermediateModel' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); + if (EXPECTED(Z_TYPE_P(intermediateModel_param) == IS_STRING)) { + zephir_get_strval(&intermediateModel, intermediateModel_param); } else { - ZEPHIR_INIT_VAR(&tableName); + ZEPHIR_INIT_VAR(&intermediateModel); } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + if (UNEXPECTED(Z_TYPE_P(referencedModel_param) != IS_STRING && Z_TYPE_P(referencedModel_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referencedModel' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); + if (EXPECTED(Z_TYPE_P(referencedModel_param) == IS_STRING)) { + zephir_get_strval(&referencedModel, referencedModel_param); } else { - ZEPHIR_INIT_VAR(&schemaName); + ZEPHIR_INIT_VAR(&referencedModel); } - if (!currentColumn) { - currentColumn = ¤tColumn_sub; - currentColumn = &__$null; + if (!options) { + options = &options_sub; + options = &__$null; } - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "modifycolumn", NULL, 0, &tableName, &schemaName, column, currentColumn); + ZEPHIR_INIT_VAR(&entityName); + zephir_get_class(&entityName, model, 1); + ZEPHIR_INIT_VAR(&intermediateEntity); + zephir_fast_strtolower(&intermediateEntity, &intermediateModel); + ZEPHIR_INIT_VAR(&referencedEntity); + zephir_fast_strtolower(&referencedEntity, &referencedModel); + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_CONCAT_VSV(&_0, &entityName, "$", &referencedEntity); + zephir_get_strval(&keyRelation, &_0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("hasOneThrough"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&hasOneThrough, &_1); + ZEPHIR_OBS_VAR(&relations); + if (!(zephir_array_isset_fetch(&relations, &hasOneThrough, &keyRelation, 0))) { + ZEPHIR_INIT_NVAR(&relations); + array_init(&relations); + } + if (Z_TYPE_P(intermediateFields) == IS_ARRAY) { + if (UNEXPECTED(zephir_fast_count_int(fields) != zephir_fast_count_int(intermediateFields))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Number of referenced fields are not the same", "phalcon/Mvc/Model/Manager.zep", 878); + return; + } + } + if (Z_TYPE_P(intermediateReferencedFields) == IS_ARRAY) { + if (UNEXPECTED(zephir_fast_count_int(fields) != zephir_fast_count_int(intermediateFields))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Number of referenced fields are not the same", "phalcon/Mvc/Model/Manager.zep", 890); + return; + } + } + ZEPHIR_INIT_VAR(&relation); + object_init_ex(&relation, phalcon_mvc_model_relation_ce); + ZVAL_LONG(&_1, 3); + ZEPHIR_CALL_METHOD(NULL, &relation, "__construct", NULL, 452, &_1, &referencedModel, fields, referencedFields, options); zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); + ZEPHIR_CALL_METHOD(NULL, &relation, "setintermediaterelation", NULL, 453, intermediateFields, &intermediateModel, intermediateReferencedFields); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_OBS_VAR(&alias); + if (zephir_array_isset_string_fetch(&alias, options, SL("alias"), 0)) { + if (Z_TYPE_P(&alias) != IS_STRING) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Relation alias must be a string", "phalcon/Mvc/Model/Manager.zep", 919); + return; + } + ZEPHIR_INIT_VAR(&lowerAlias); + zephir_fast_strtolower(&lowerAlias, &alias); + } else { + ZEPHIR_CPY_WRT(&lowerAlias, &referencedEntity); + } + zephir_array_append(&relations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 930); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_CONCAT_VSV(&_2, &entityName, "$", &lowerAlias); + zephir_update_property_array(this_ptr, SL("aliases"), &_2, &relation); + zephir_update_property_array(this_ptr, SL("hasOneThrough"), &keyRelation, &relations); + ZEPHIR_OBS_VAR(&singleRelations); + zephir_read_property(&_1, this_ptr, ZEND_STRL("hasOneThroughSingle"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&singleRelations, &_1, &entityName, 0))) { + ZEPHIR_INIT_NVAR(&singleRelations); + array_init(&singleRelations); + } + zephir_array_append(&singleRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 952); + zephir_update_property_array(this_ptr, SL("hasOneThroughSingle"), &entityName, &singleRelations); + RETURN_CCTOR(&relation); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, releaseSavepoint) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, addBelongsTo) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, dialect, _0, _1, _2, _3; - zval name; + zval referencedModel, keyRelation; + zval *model, model_sub, *fields, fields_sub, *referencedModel_param = NULL, *referencedFields, referencedFields_sub, *options = NULL, options_sub, __$null, entityName, referencedEntity, relation, relations, alias, lowerAlias, singleRelations, _0, _1, _2, _3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&dialect); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&fields_sub); + ZVAL_UNDEF(&referencedFields_sub); + ZVAL_UNDEF(&options_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&entityName); + ZVAL_UNDEF(&referencedEntity); + ZVAL_UNDEF(&relation); + ZVAL_UNDEF(&relations); + ZVAL_UNDEF(&alias); + ZVAL_UNDEF(&lowerAlias); + ZVAL_UNDEF(&singleRelations); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&referencedModel); + ZVAL_UNDEF(&keyRelation); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_START(4, 5) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_ZVAL(fields) + Z_PARAM_STR(referencedModel) + Z_PARAM_ZVAL(referencedFields) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + zephir_fetch_params(1, 4, 1, &model, &fields, &referencedModel_param, &referencedFields, &options); + if (UNEXPECTED(Z_TYPE_P(referencedModel_param) != IS_STRING && Z_TYPE_P(referencedModel_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referencedModel' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); + if (EXPECTED(Z_TYPE_P(referencedModel_param) == IS_STRING)) { + zephir_get_strval(&referencedModel, referencedModel_param); } else { - ZEPHIR_INIT_VAR(&name); + ZEPHIR_INIT_VAR(&referencedModel); + } + if (!options) { + options = &options_sub; + options = &__$null; } - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&dialect, &_0); - ZEPHIR_CALL_METHOD(&_1, &dialect, "supportssavepoints", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(!zephir_is_true(&_1))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/Db/Adapter/AbstractAdapter.zep", 1010); - return; + ZEPHIR_INIT_VAR(&entityName); + zephir_get_class(&entityName, model, 1); + ZEPHIR_INIT_VAR(&referencedEntity); + zephir_fast_strtolower(&referencedEntity, &referencedModel); + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_CONCAT_VSV(&_0, &entityName, "$", &referencedEntity); + zephir_get_strval(&keyRelation, &_0); + ZEPHIR_OBS_VAR(&relations); + zephir_read_property(&_1, this_ptr, ZEND_STRL("belongsTo"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&relations, &_1, &keyRelation, 0))) { + ZEPHIR_INIT_NVAR(&relations); + array_init(&relations); } - ZEPHIR_CALL_METHOD(&_2, &dialect, "supportsreleasesavepoints", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_2))) { - RETURN_MM_BOOL(0); + if (Z_TYPE_P(referencedFields) == IS_ARRAY) { + if (UNEXPECTED(zephir_fast_count_int(fields) != zephir_fast_count_int(referencedFields))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Number of referenced fields are not the same", "phalcon/Mvc/Model/Manager.zep", 990); + return; + } } - ZEPHIR_CALL_METHOD(&_3, &dialect, "releasesavepoint", NULL, 0, &name); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_3); + ZEPHIR_INIT_VAR(&relation); + object_init_ex(&relation, phalcon_mvc_model_relation_ce); + ZVAL_LONG(&_2, 0); + ZEPHIR_CALL_METHOD(NULL, &relation, "__construct", NULL, 452, &_2, &referencedModel, fields, referencedFields, options); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_OBS_VAR(&alias); + if (zephir_array_isset_string_fetch(&alias, options, SL("alias"), 0)) { + if (UNEXPECTED(Z_TYPE_P(&alias) != IS_STRING)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Relation alias must be a string", "phalcon/Mvc/Model/Manager.zep", 1010); + return; + } + ZEPHIR_INIT_VAR(&lowerAlias); + zephir_fast_strtolower(&lowerAlias, &alias); + } else { + ZEPHIR_CPY_WRT(&lowerAlias, &referencedEntity); + } + zephir_array_append(&relations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1023); + ZEPHIR_INIT_VAR(&_3); + ZEPHIR_CONCAT_VSV(&_3, &entityName, "$", &lowerAlias); + zephir_update_property_array(this_ptr, SL("aliases"), &_3, &relation); + zephir_update_property_array(this_ptr, SL("belongsTo"), &keyRelation, &relations); + ZEPHIR_OBS_VAR(&singleRelations); + zephir_read_property(&_2, this_ptr, ZEND_STRL("belongsToSingle"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&singleRelations, &_2, &entityName, 0))) { + ZEPHIR_INIT_NVAR(&singleRelations); + array_init(&singleRelations); + } + zephir_array_append(&singleRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1037); + zephir_update_property_array(this_ptr, SL("belongsToSingle"), &entityName, &singleRelations); + RETURN_CCTOR(&relation); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, rollbackSavepoint) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, addHasMany) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, dialect, _0, _1, _2; - zval name; + zval referencedModel, keyRelation; + zval *model, model_sub, *fields, fields_sub, *referencedModel_param = NULL, *referencedFields, referencedFields_sub, *options = NULL, options_sub, __$null, entityName, referencedEntity, hasMany, relation, relations, alias, lowerAlias, singleRelations, _0, _1, _2; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&dialect); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&fields_sub); + ZVAL_UNDEF(&referencedFields_sub); + ZVAL_UNDEF(&options_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&entityName); + ZVAL_UNDEF(&referencedEntity); + ZVAL_UNDEF(&hasMany); + ZVAL_UNDEF(&relation); + ZVAL_UNDEF(&relations); + ZVAL_UNDEF(&alias); + ZVAL_UNDEF(&lowerAlias); + ZVAL_UNDEF(&singleRelations); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&referencedModel); + ZVAL_UNDEF(&keyRelation); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_START(4, 5) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_ZVAL(fields) + Z_PARAM_STR(referencedModel) + Z_PARAM_ZVAL(referencedFields) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + zephir_fetch_params(1, 4, 1, &model, &fields, &referencedModel_param, &referencedFields, &options); + if (UNEXPECTED(Z_TYPE_P(referencedModel_param) != IS_STRING && Z_TYPE_P(referencedModel_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referencedModel' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); + if (EXPECTED(Z_TYPE_P(referencedModel_param) == IS_STRING)) { + zephir_get_strval(&referencedModel, referencedModel_param); } else { - ZEPHIR_INIT_VAR(&name); + ZEPHIR_INIT_VAR(&referencedModel); + } + if (!options) { + options = &options_sub; + options = &__$null; } - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&dialect, &_0); - ZEPHIR_CALL_METHOD(&_1, &dialect, "supportssavepoints", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(!zephir_is_true(&_1))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/Db/Adapter/AbstractAdapter.zep", 1034); - return; + ZEPHIR_INIT_VAR(&entityName); + zephir_get_class(&entityName, model, 1); + ZEPHIR_INIT_VAR(&referencedEntity); + zephir_fast_strtolower(&referencedEntity, &referencedModel); + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_CONCAT_VSV(&_0, &entityName, "$", &referencedEntity); + zephir_get_strval(&keyRelation, &_0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("hasMany"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&hasMany, &_1); + ZEPHIR_OBS_VAR(&relations); + if (!(zephir_array_isset_fetch(&relations, &hasMany, &keyRelation, 0))) { + ZEPHIR_INIT_NVAR(&relations); + array_init(&relations); } - ZEPHIR_CALL_METHOD(&_2, &dialect, "rollbacksavepoint", NULL, 0, &name); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_2); + if (Z_TYPE_P(referencedFields) == IS_ARRAY) { + if (UNEXPECTED(zephir_fast_count_int(fields) != zephir_fast_count_int(referencedFields))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Number of referenced fields are not the same", "phalcon/Mvc/Model/Manager.zep", 1077); + return; + } + } + ZEPHIR_INIT_VAR(&relation); + object_init_ex(&relation, phalcon_mvc_model_relation_ce); + ZVAL_LONG(&_1, 2); + ZEPHIR_CALL_METHOD(NULL, &relation, "__construct", NULL, 452, &_1, &referencedModel, fields, referencedFields, options); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_OBS_VAR(&alias); + if (zephir_array_isset_string_fetch(&alias, options, SL("alias"), 0)) { + if (UNEXPECTED(Z_TYPE_P(&alias) != IS_STRING)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Relation alias must be a string", "phalcon/Mvc/Model/Manager.zep", 1097); + return; + } + ZEPHIR_INIT_VAR(&lowerAlias); + zephir_fast_strtolower(&lowerAlias, &alias); + } else { + ZEPHIR_CPY_WRT(&lowerAlias, &referencedEntity); + } + zephir_array_append(&relations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1110); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_CONCAT_VSV(&_2, &entityName, "$", &lowerAlias); + zephir_update_property_array(this_ptr, SL("aliases"), &_2, &relation); + zephir_update_property_array(this_ptr, SL("hasMany"), &keyRelation, &relations); + ZEPHIR_OBS_VAR(&singleRelations); + zephir_read_property(&_1, this_ptr, ZEND_STRL("hasManySingle"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&singleRelations, &_1, &entityName, 0))) { + ZEPHIR_INIT_NVAR(&singleRelations); + array_init(&singleRelations); + } + zephir_array_append(&singleRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1124); + zephir_update_property_array(this_ptr, SL("hasManySingle"), &entityName, &singleRelations); + RETURN_CCTOR(&relation); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, setEventsManager) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, addHasManyToMany) { - zval *eventsManager, eventsManager_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval intermediateModel, referencedModel, keyRelation; + zval *model, model_sub, *fields, fields_sub, *intermediateModel_param = NULL, *intermediateFields, intermediateFields_sub, *intermediateReferencedFields, intermediateReferencedFields_sub, *referencedModel_param = NULL, *referencedFields, referencedFields_sub, *options = NULL, options_sub, __$null, entityName, referencedEntity, hasManyToMany, relation, relations, alias, lowerAlias, singleRelations, intermediateEntity, _0, _1, _2; zval *this_ptr = getThis(); - ZVAL_UNDEF(&eventsManager_sub); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&fields_sub); + ZVAL_UNDEF(&intermediateFields_sub); + ZVAL_UNDEF(&intermediateReferencedFields_sub); + ZVAL_UNDEF(&referencedFields_sub); + ZVAL_UNDEF(&options_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&entityName); + ZVAL_UNDEF(&referencedEntity); + ZVAL_UNDEF(&hasManyToMany); + ZVAL_UNDEF(&relation); + ZVAL_UNDEF(&relations); + ZVAL_UNDEF(&alias); + ZVAL_UNDEF(&lowerAlias); + ZVAL_UNDEF(&singleRelations); + ZVAL_UNDEF(&intermediateEntity); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&intermediateModel); + ZVAL_UNDEF(&referencedModel); + ZVAL_UNDEF(&keyRelation); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) + ZEND_PARSE_PARAMETERS_START(7, 8) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_ZVAL(fields) + Z_PARAM_STR(intermediateModel) + Z_PARAM_ZVAL(intermediateFields) + Z_PARAM_ZVAL(intermediateReferencedFields) + Z_PARAM_STR(referencedModel) + Z_PARAM_ZVAL(referencedFields) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(options) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 7, 1, &model, &fields, &intermediateModel_param, &intermediateFields, &intermediateReferencedFields, &referencedModel_param, &referencedFields, &options); + if (UNEXPECTED(Z_TYPE_P(intermediateModel_param) != IS_STRING && Z_TYPE_P(intermediateModel_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'intermediateModel' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(intermediateModel_param) == IS_STRING)) { + zephir_get_strval(&intermediateModel, intermediateModel_param); + } else { + ZEPHIR_INIT_VAR(&intermediateModel); + } + if (UNEXPECTED(Z_TYPE_P(referencedModel_param) != IS_STRING && Z_TYPE_P(referencedModel_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referencedModel' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(referencedModel_param) == IS_STRING)) { + zephir_get_strval(&referencedModel, referencedModel_param); + } else { + ZEPHIR_INIT_VAR(&referencedModel); + } + if (!options) { + options = &options_sub; + options = &__$null; + } - zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); + ZEPHIR_INIT_VAR(&entityName); + zephir_get_class(&entityName, model, 1); + ZEPHIR_INIT_VAR(&intermediateEntity); + zephir_fast_strtolower(&intermediateEntity, &intermediateModel); + ZEPHIR_INIT_VAR(&referencedEntity); + zephir_fast_strtolower(&referencedEntity, &referencedModel); + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_CONCAT_VSV(&_0, &entityName, "$", &referencedEntity); + zephir_get_strval(&keyRelation, &_0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("hasManyToMany"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&hasManyToMany, &_1); + ZEPHIR_OBS_VAR(&relations); + if (!(zephir_array_isset_fetch(&relations, &hasManyToMany, &keyRelation, 0))) { + ZEPHIR_INIT_NVAR(&relations); + array_init(&relations); + } + if (Z_TYPE_P(intermediateFields) == IS_ARRAY) { + if (UNEXPECTED(zephir_fast_count_int(fields) != zephir_fast_count_int(intermediateFields))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Number of referenced fields are not the same", "phalcon/Mvc/Model/Manager.zep", 1169); + return; + } + } + if (Z_TYPE_P(intermediateReferencedFields) == IS_ARRAY) { + if (UNEXPECTED(zephir_fast_count_int(fields) != zephir_fast_count_int(intermediateFields))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Number of referenced fields are not the same", "phalcon/Mvc/Model/Manager.zep", 1181); + return; + } + } + ZEPHIR_INIT_VAR(&relation); + object_init_ex(&relation, phalcon_mvc_model_relation_ce); + ZVAL_LONG(&_1, 4); + ZEPHIR_CALL_METHOD(NULL, &relation, "__construct", NULL, 452, &_1, &referencedModel, fields, referencedFields, options); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &relation, "setintermediaterelation", NULL, 453, intermediateFields, &intermediateModel, intermediateReferencedFields); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&alias); + if (zephir_array_isset_string_fetch(&alias, options, SL("alias"), 0)) { + if (Z_TYPE_P(&alias) != IS_STRING) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Relation alias must be a string", "phalcon/Mvc/Model/Manager.zep", 1210); + return; + } + ZEPHIR_INIT_VAR(&lowerAlias); + zephir_fast_strtolower(&lowerAlias, &alias); + } else { + ZEPHIR_CPY_WRT(&lowerAlias, &referencedEntity); + } + zephir_array_append(&relations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1221); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_CONCAT_VSV(&_2, &entityName, "$", &lowerAlias); + zephir_update_property_array(this_ptr, SL("aliases"), &_2, &relation); + zephir_update_property_array(this_ptr, SL("hasManyToMany"), &keyRelation, &relations); + ZEPHIR_OBS_VAR(&singleRelations); + zephir_read_property(&_1, this_ptr, ZEND_STRL("hasManyToManySingle"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&singleRelations, &_1, &entityName, 0))) { + ZEPHIR_INIT_NVAR(&singleRelations); + array_init(&singleRelations); + } + zephir_array_append(&singleRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1243); + zephir_update_property_array(this_ptr, SL("hasManyToManySingle"), &entityName, &singleRelations); + RETURN_CCTOR(&relation); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, setDialect) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, existsBelongsTo) { - zval *dialect, dialect_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *modelName_param = NULL, *modelRelation_param = NULL, entityName, _0, _1, _2, _3; + zval modelName, modelRelation, keyRelation; zval *this_ptr = getThis(); - ZVAL_UNDEF(&dialect_sub); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&modelRelation); + ZVAL_UNDEF(&keyRelation); + ZVAL_UNDEF(&entityName); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(dialect, phalcon_db_dialectinterface_ce) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(modelName) + Z_PARAM_STR(modelRelation) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &dialect); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &modelName_param, &modelRelation_param); + if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { + zephir_get_strval(&modelName, modelName_param); + } else { + ZEPHIR_INIT_VAR(&modelName); + } + if (UNEXPECTED(Z_TYPE_P(modelRelation_param) != IS_STRING && Z_TYPE_P(modelRelation_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelRelation' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(modelRelation_param) == IS_STRING)) { + zephir_get_strval(&modelRelation, modelRelation_param); + } else { + ZEPHIR_INIT_VAR(&modelRelation); + } - zephir_update_property_zval(this_ptr, ZEND_STRL("dialect"), dialect); + ZEPHIR_INIT_VAR(&entityName); + zephir_fast_strtolower(&entityName, &modelName); + ZEPHIR_INIT_VAR(&_0); + zephir_fast_strtolower(&_0, &modelRelation); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_CONCAT_VSV(&_1, &entityName, "$", &_0); + zephir_get_strval(&keyRelation, &_1); + zephir_read_property(&_2, this_ptr, ZEND_STRL("initialized"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset(&_2, &entityName))) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "load", NULL, 0, &modelName); + zephir_check_call_status(); + } + zephir_read_property(&_3, this_ptr, ZEND_STRL("belongsTo"), PH_NOISY_CC | PH_READONLY); + RETURN_MM_BOOL(zephir_array_isset(&_3, &keyRelation)); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, setNestedTransactionsWithSavepoints) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, existsHasMany) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *nestedTransactionsWithSavepoints_param = NULL, __$true, __$false, _0, _1, _2; - zend_bool nestedTransactionsWithSavepoints; + zval *modelName_param = NULL, *modelRelation_param = NULL, entityName, _0, _1, _2, _3; + zval modelName, modelRelation, keyRelation; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&modelRelation); + ZVAL_UNDEF(&keyRelation); + ZVAL_UNDEF(&entityName); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(nestedTransactionsWithSavepoints) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(modelName) + Z_PARAM_STR(modelRelation) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &nestedTransactionsWithSavepoints_param); - nestedTransactionsWithSavepoints = zephir_get_boolval(nestedTransactionsWithSavepoints_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("transactionLevel"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(ZEPHIR_GT_LONG(&_0, 0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Nested transaction with savepoints behavior cannot be changed while a transaction is open", "phalcon/Db/Adapter/AbstractAdapter.zep", 1066); - return; + zephir_fetch_params(1, 2, 0, &modelName_param, &modelRelation_param); + if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); + RETURN_MM_NULL(); } - zephir_read_property(&_1, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_2, &_1, "supportssavepoints", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(!zephir_is_true(&_2))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/Db/Adapter/AbstractAdapter.zep", 1072); - return; + if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { + zephir_get_strval(&modelName, modelName_param); + } else { + ZEPHIR_INIT_VAR(&modelName); } - if (nestedTransactionsWithSavepoints) { - zephir_update_property_zval(this_ptr, ZEND_STRL("transactionsWithSavepoints"), &__$true); + if (UNEXPECTED(Z_TYPE_P(modelRelation_param) != IS_STRING && Z_TYPE_P(modelRelation_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelRelation' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(modelRelation_param) == IS_STRING)) { + zephir_get_strval(&modelRelation, modelRelation_param); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("transactionsWithSavepoints"), &__$false); + ZEPHIR_INIT_VAR(&modelRelation); } - RETURN_THIS(); + + + ZEPHIR_INIT_VAR(&entityName); + zephir_fast_strtolower(&entityName, &modelName); + ZEPHIR_INIT_VAR(&_0); + zephir_fast_strtolower(&_0, &modelRelation); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_CONCAT_VSV(&_1, &entityName, "$", &_0); + zephir_get_strval(&keyRelation, &_1); + zephir_read_property(&_2, this_ptr, ZEND_STRL("initialized"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset(&_2, &entityName))) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "load", NULL, 0, &modelName); + zephir_check_call_status(); + } + zephir_read_property(&_3, this_ptr, ZEND_STRL("hasMany"), PH_NOISY_CC | PH_READONLY); + RETURN_MM_BOOL(zephir_array_isset(&_3, &keyRelation)); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, sharedLock) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, existsHasOne) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *sqlQuery_param = NULL, _0; - zval sqlQuery; + zval *modelName_param = NULL, *modelRelation_param = NULL, entityName, _0, _1, _2, _3; + zval modelName, modelRelation, keyRelation; zval *this_ptr = getThis(); - ZVAL_UNDEF(&sqlQuery); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&modelRelation); + ZVAL_UNDEF(&keyRelation); + ZVAL_UNDEF(&entityName); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(sqlQuery) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(modelName) + Z_PARAM_STR(modelRelation) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &sqlQuery_param); - if (UNEXPECTED(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be of the type string")); + zephir_fetch_params(1, 2, 0, &modelName_param, &modelRelation_param); + if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { - zephir_get_strval(&sqlQuery, sqlQuery_param); + if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { + zephir_get_strval(&modelName, modelName_param); } else { - ZEPHIR_INIT_VAR(&sqlQuery); + ZEPHIR_INIT_VAR(&modelName); + } + if (UNEXPECTED(Z_TYPE_P(modelRelation_param) != IS_STRING && Z_TYPE_P(modelRelation_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelRelation' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(modelRelation_param) == IS_STRING)) { + zephir_get_strval(&modelRelation, modelRelation_param); + } else { + ZEPHIR_INIT_VAR(&modelRelation); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "sharedlock", NULL, 0, &sqlQuery); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, supportSequences) -{ - zval *this_ptr = getThis(); - - - - RETURN_BOOL(0); + ZEPHIR_INIT_VAR(&entityName); + zephir_fast_strtolower(&entityName, &modelName); + ZEPHIR_INIT_VAR(&_0); + zephir_fast_strtolower(&_0, &modelRelation); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_CONCAT_VSV(&_1, &entityName, "$", &_0); + zephir_get_strval(&keyRelation, &_1); + zephir_read_property(&_2, this_ptr, ZEND_STRL("initialized"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset(&_2, &entityName))) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "load", NULL, 0, &modelName); + zephir_check_call_status(); + } + zephir_read_property(&_3, this_ptr, ZEND_STRL("hasOne"), PH_NOISY_CC | PH_READONLY); + RETURN_MM_BOOL(zephir_array_isset(&_3, &keyRelation)); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, tableExists) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, existsHasOneThrough) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, _0, _1, _2, _3, _4; - zval tableName, schemaName; + zval *modelName_param = NULL, *modelRelation_param = NULL, entityName, _0, _1, _2, _3; + zval modelName, modelRelation, keyRelation; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&modelRelation); + ZVAL_UNDEF(&keyRelation); + ZVAL_UNDEF(&entityName); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(tableName) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(modelName) + Z_PARAM_STR(modelRelation) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + zephir_fetch_params(1, 2, 0, &modelName_param, &modelRelation_param); + if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); + if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { + zephir_get_strval(&modelName, modelName_param); } else { - ZEPHIR_INIT_VAR(&tableName); + ZEPHIR_INIT_VAR(&modelName); } - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + if (UNEXPECTED(Z_TYPE_P(modelRelation_param) != IS_STRING && Z_TYPE_P(modelRelation_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelRelation' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); + if (EXPECTED(Z_TYPE_P(modelRelation_param) == IS_STRING)) { + zephir_get_strval(&modelRelation, modelRelation_param); } else { - ZEPHIR_INIT_VAR(&schemaName); - } + ZEPHIR_INIT_VAR(&modelRelation); } - zephir_read_property(&_1, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_2, &_1, "tableexists", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZVAL_LONG(&_3, 3); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchone", NULL, 0, &_2, &_3); - zephir_check_call_status(); - zephir_array_fetch_long(&_4, &_0, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 1108); - RETURN_MM_BOOL(ZEPHIR_GT_LONG(&_4, 0)); + ZEPHIR_INIT_VAR(&entityName); + zephir_fast_strtolower(&entityName, &modelName); + ZEPHIR_INIT_VAR(&_0); + zephir_fast_strtolower(&_0, &modelRelation); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_CONCAT_VSV(&_1, &entityName, "$", &_0); + zephir_get_strval(&keyRelation, &_1); + zephir_read_property(&_2, this_ptr, ZEND_STRL("initialized"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset(&_2, &entityName))) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "load", NULL, 0, &modelName); + zephir_check_call_status(); + } + zephir_read_property(&_3, this_ptr, ZEND_STRL("hasOneThrough"), PH_NOISY_CC | PH_READONLY); + RETURN_MM_BOOL(zephir_array_isset(&_3, &keyRelation)); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, tableOptions) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, existsHasManyToMany) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, sql, _0, _1, _2, _3; - zval tableName, schemaName; + zval *modelName_param = NULL, *modelRelation_param = NULL, entityName, _0, _1, _2, _3; + zval modelName, modelRelation, keyRelation; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&modelRelation); + ZVAL_UNDEF(&keyRelation); + ZVAL_UNDEF(&entityName); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(tableName) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(modelName) + Z_PARAM_STR(modelRelation) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + zephir_fetch_params(1, 2, 0, &modelName_param, &modelRelation_param); + if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); + if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { + zephir_get_strval(&modelName, modelName_param); } else { - ZEPHIR_INIT_VAR(&tableName); + ZEPHIR_INIT_VAR(&modelName); } - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); + if (UNEXPECTED(Z_TYPE_P(modelRelation_param) != IS_STRING && Z_TYPE_P(modelRelation_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelRelation' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(modelRelation_param) == IS_STRING)) { + zephir_get_strval(&modelRelation, modelRelation_param); } else { - zephir_get_strval(&schemaName, schemaName_param); + ZEPHIR_INIT_VAR(&modelRelation); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&sql, &_0, "tableoptions", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - if (!(zephir_is_true(&sql))) { - array_init(return_value); - RETURN_MM(); + ZEPHIR_INIT_VAR(&entityName); + zephir_fast_strtolower(&entityName, &modelName); + ZEPHIR_INIT_VAR(&_0); + zephir_fast_strtolower(&_0, &modelRelation); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_CONCAT_VSV(&_1, &entityName, "$", &_0); + zephir_get_strval(&keyRelation, &_1); + zephir_read_property(&_2, this_ptr, ZEND_STRL("initialized"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset(&_2, &entityName))) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "load", NULL, 0, &modelName); + zephir_check_call_status(); } - ZVAL_LONG(&_2, 2); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "fetchall", NULL, 0, &sql, &_2); - zephir_check_call_status(); - zephir_array_fetch_long(&_3, &_1, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 1130); - RETURN_CTOR(&_3); + zephir_read_property(&_3, this_ptr, ZEND_STRL("hasManyToMany"), PH_NOISY_CC | PH_READONLY); + RETURN_MM_BOOL(zephir_array_isset(&_3, &keyRelation)); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, update) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getRelationByAlias) { - zend_bool _5$$3, _11$$12; - zend_string *_3; - zend_ulong _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *table_param = NULL, *fields, fields_sub, *values, values_sub, *whereCondition = NULL, whereCondition_sub, *dataTypes = NULL, dataTypes_sub, __$null, bindDataTypes, bindType, conditions, escapedField, escapedTable, field, placeholders, position, setClause, tableName, updateSql, updateValues, value, whereBind, whereTypes, *_0, _1, _17, _18, _7$$5, _9$$8, _10$$9, _13$$14, _15$$17, _16$$18; - zval table, _6$$5, _8$$7, _12$$14, _14$$16; + zval *modelName_param = NULL, *alias_param = NULL, relation, _0, _1; + zval modelName, alias, _2; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_8$$7); - ZVAL_UNDEF(&_12$$14); - ZVAL_UNDEF(&_14$$16); - ZVAL_UNDEF(&fields_sub); - ZVAL_UNDEF(&values_sub); - ZVAL_UNDEF(&whereCondition_sub); - ZVAL_UNDEF(&dataTypes_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&bindDataTypes); - ZVAL_UNDEF(&bindType); - ZVAL_UNDEF(&conditions); - ZVAL_UNDEF(&escapedField); - ZVAL_UNDEF(&escapedTable); - ZVAL_UNDEF(&field); - ZVAL_UNDEF(&placeholders); - ZVAL_UNDEF(&position); - ZVAL_UNDEF(&setClause); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&updateSql); - ZVAL_UNDEF(&updateValues); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&whereBind); - ZVAL_UNDEF(&whereTypes); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&alias); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&relation); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_17); - ZVAL_UNDEF(&_18); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_9$$8); - ZVAL_UNDEF(&_10$$9); - ZVAL_UNDEF(&_13$$14); - ZVAL_UNDEF(&_15$$17); - ZVAL_UNDEF(&_16$$18); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 5) - Z_PARAM_STR(table) - Z_PARAM_ZVAL(fields) - Z_PARAM_ZVAL(values) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(whereCondition) - Z_PARAM_ZVAL_OR_NULL(dataTypes) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(modelName) + Z_PARAM_STR(alias) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 2, &table_param, &fields, &values, &whereCondition, &dataTypes); - zephir_get_strval(&table, table_param); - if (!whereCondition) { - whereCondition = &whereCondition_sub; - whereCondition = &__$null; + zephir_fetch_params(1, 2, 0, &modelName_param, &alias_param); + if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); + RETURN_MM_NULL(); } - if (!dataTypes) { - dataTypes = &dataTypes_sub; - dataTypes = &__$null; + if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { + zephir_get_strval(&modelName, modelName_param); + } else { + ZEPHIR_INIT_VAR(&modelName); + } + if (UNEXPECTED(Z_TYPE_P(alias_param) != IS_STRING && Z_TYPE_P(alias_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'alias' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(alias_param) == IS_STRING)) { + zephir_get_strval(&alias, alias_param); + } else { + ZEPHIR_INIT_VAR(&alias); } - ZEPHIR_INIT_VAR(&placeholders); - array_init(&placeholders); - ZEPHIR_INIT_VAR(&updateValues); - array_init(&updateValues); - ZEPHIR_INIT_VAR(&bindDataTypes); - array_init(&bindDataTypes); - zephir_is_iterable(values, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 1220); - if (Z_TYPE_P(values) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(values), _2, _3, _0) - { - ZEPHIR_INIT_NVAR(&position); - if (_3 != NULL) { - ZVAL_STR_COPY(&position, _3); - } else { - ZVAL_LONG(&position, _2); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0); - ZEPHIR_OBS_NVAR(&field); - if (UNEXPECTED(!(zephir_array_isset_fetch(&field, fields, &position, 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The number of values in the update is not the same as fields", "phalcon/Db/Adapter/AbstractAdapter.zep", 1185); - return; - } - ZEPHIR_CALL_METHOD(&escapedField, this_ptr, "escapeidentifier", &_4, 0, &field); + zephir_read_property(&_0, this_ptr, ZEND_STRL("aliases"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_CONCAT_VSV(&_2, &modelName, "$", &alias); + zephir_fast_strtolower(&_1, &_2); + if (!(zephir_array_isset_fetch(&relation, &_0, &_1, 1))) { + RETURN_MM_BOOL(0); + } + RETURN_CTOR(&relation); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Manager, _mergeFindParameters) +{ + zend_bool _6$$6, _9$$11, _16$$17, _17$$17, _22$$26, _23$$26; + zend_string *_5$$5, *_15$$16; + zend_ulong _4$$5, _14$$16; + zval findParams; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *findParamsOne = NULL, findParamsOne_sub, *findParamsTwo = NULL, findParamsTwo_sub, key, value, _0$$3, _1$$4, *_2$$5, _3$$5, _7$$9, _8$$9, _10$$14, _11$$14, *_12$$16, _13$$16, _18$$20, _19$$20, _20$$24, _21$$24, _24$$29, _25$$29, _26$$33, _27$$33; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&findParamsOne_sub); + ZVAL_UNDEF(&findParamsTwo_sub); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_7$$9); + ZVAL_UNDEF(&_8$$9); + ZVAL_UNDEF(&_10$$14); + ZVAL_UNDEF(&_11$$14); + ZVAL_UNDEF(&_13$$16); + ZVAL_UNDEF(&_18$$20); + ZVAL_UNDEF(&_19$$20); + ZVAL_UNDEF(&_20$$24); + ZVAL_UNDEF(&_21$$24); + ZVAL_UNDEF(&_24$$29); + ZVAL_UNDEF(&_25$$29); + ZVAL_UNDEF(&_26$$33); + ZVAL_UNDEF(&_27$$33); + ZVAL_UNDEF(&findParams); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(findParamsOne) + Z_PARAM_ZVAL(findParamsTwo) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &findParamsOne, &findParamsTwo); + ZEPHIR_SEPARATE_PARAM(findParamsOne); + ZEPHIR_SEPARATE_PARAM(findParamsTwo); + + + ZEPHIR_INIT_VAR(&findParams); + array_init(&findParams); + if (Z_TYPE_P(findParamsOne) == IS_STRING) { + ZEPHIR_INIT_VAR(&_0$$3); + zephir_create_array(&_0$$3, 1, 0); + zephir_array_update_string(&_0$$3, SL("conditions"), findParamsOne, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(findParamsOne, &_0$$3); + } + if (Z_TYPE_P(findParamsTwo) == IS_STRING) { + ZEPHIR_INIT_VAR(&_1$$4); + zephir_create_array(&_1$$4, 1, 0); + zephir_array_update_string(&_1$$4, SL("conditions"), findParamsTwo, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(findParamsTwo, &_1$$4); + } + if (Z_TYPE_P(findParamsOne) == IS_ARRAY) { + zephir_is_iterable(findParamsOne, 0, "phalcon/Mvc/Model/Manager.zep", 1431); + if (Z_TYPE_P(findParamsOne) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(findParamsOne), _4$$5, _5$$5, _2$$5) + { + ZEPHIR_INIT_NVAR(&key); + if (_5$$5 != NULL) { + ZVAL_STR_COPY(&key, _5$$5); + } else { + ZVAL_LONG(&key, _4$$5); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _2$$5); + _6$$6 = ZEPHIR_IS_LONG_IDENTICAL(&key, 0); + if (!(_6$$6)) { + _6$$6 = ZEPHIR_IS_STRING_IDENTICAL(&key, "conditions"); + } + if (_6$$6) { + if (!(zephir_array_isset_long(&findParams, 0))) { + zephir_array_update_long(&findParams, 0, &value, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + } else { + zephir_array_fetch_long(&_7$$9, &findParams, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1425); + ZEPHIR_INIT_NVAR(&_8$$9); + ZEPHIR_CONCAT_SVSVS(&_8$$9, "(", &_7$$9, ") AND (", &value, ")"); + zephir_array_update_long(&findParams, 0, &_8$$9, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + } + } else { + zephir_array_update_zval(&findParams, &key, &value, PH_COPY | PH_SEPARATE); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, findParamsOne, "rewind", NULL, 0); zephir_check_call_status(); - _5$$3 = Z_TYPE_P(&value) == IS_OBJECT; - if (_5$$3) { - _5$$3 = zephir_instance_of_ev(&value, phalcon_db_rawvalue_ce); - } - if (_5$$3) { - zephir_cast_to_string(&_6$$5, &value); - ZEPHIR_INIT_NVAR(&_7$$5); - ZEPHIR_CONCAT_VSV(&_7$$5, &escapedField, " = ", &_6$$5); - zephir_array_append(&placeholders, &_7$$5, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1191); - } else { - if (Z_TYPE_P(&value) == IS_OBJECT) { - zephir_cast_to_string(&_8$$7, &value); - ZEPHIR_CPY_WRT(&value, &_8$$7); + while (1) { + ZEPHIR_CALL_METHOD(&_3$$5, findParamsOne, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3$$5)) { + break; } - if (Z_TYPE_P(&value) == IS_NULL) { - ZEPHIR_INIT_NVAR(&_9$$8); - ZEPHIR_CONCAT_VS(&_9$$8, &escapedField, " = null"); - zephir_array_append(&placeholders, &_9$$8, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1198); + ZEPHIR_CALL_METHOD(&key, findParamsOne, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, findParamsOne, "current", NULL, 0); + zephir_check_call_status(); + _9$$11 = ZEPHIR_IS_LONG_IDENTICAL(&key, 0); + if (!(_9$$11)) { + _9$$11 = ZEPHIR_IS_STRING_IDENTICAL(&key, "conditions"); + } + if (_9$$11) { + if (!(zephir_array_isset_long(&findParams, 0))) { + zephir_array_update_long(&findParams, 0, &value, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + } else { + zephir_array_fetch_long(&_10$$14, &findParams, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1425); + ZEPHIR_INIT_NVAR(&_11$$14); + ZEPHIR_CONCAT_SVSVS(&_11$$14, "(", &_10$$14, ") AND (", &value, ")"); + zephir_array_update_long(&findParams, 0, &_11$$14, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + } + } else { + zephir_array_update_zval(&findParams, &key, &value, PH_COPY | PH_SEPARATE); + } + ZEPHIR_CALL_METHOD(NULL, findParamsOne, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + } + if (Z_TYPE_P(findParamsTwo) == IS_ARRAY) { + zephir_is_iterable(findParamsTwo, 0, "phalcon/Mvc/Model/Manager.zep", 1456); + if (Z_TYPE_P(findParamsTwo) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(findParamsTwo), _14$$16, _15$$16, _12$$16) + { + ZEPHIR_INIT_NVAR(&key); + if (_15$$16 != NULL) { + ZVAL_STR_COPY(&key, _15$$16); } else { - zephir_array_append(&updateValues, &value, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1200); - if (Z_TYPE_P(dataTypes) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&bindType); - if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, dataTypes, &position, 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Incomplete number of bind types", "phalcon/Db/Adapter/AbstractAdapter.zep", 1206); - return; + ZVAL_LONG(&key, _14$$16); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _12$$16); + _16$$17 = ZEPHIR_IS_LONG_IDENTICAL(&key, 0); + if (!(_16$$17)) { + _16$$17 = ZEPHIR_IS_STRING_IDENTICAL(&key, "conditions"); + } + _17$$17 = ZEPHIR_IS_STRING_IDENTICAL(&key, "bind"); + if (!(_17$$17)) { + _17$$17 = ZEPHIR_IS_STRING_IDENTICAL(&key, "bindTypes"); + } + if (_16$$17) { + if (!(zephir_array_isset_long(&findParams, 0))) { + zephir_array_update_long(&findParams, 0, &value, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + } else { + zephir_array_fetch_long(&_18$$20, &findParams, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1439); + ZEPHIR_INIT_NVAR(&_19$$20); + ZEPHIR_CONCAT_SVSVS(&_19$$20, "(", &_18$$20, ") AND (", &value, ")"); + zephir_array_update_long(&findParams, 0, &_19$$20, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + } + } else if (_17$$17) { + if (Z_TYPE_P(&value) == IS_ARRAY) { + if (!(zephir_array_isset(&findParams, &key))) { + zephir_array_update_zval(&findParams, &key, &value, PH_COPY | PH_SEPARATE); + } else { + ZEPHIR_INIT_NVAR(&_20$$24); + zephir_array_fetch(&_21$$24, &findParams, &key, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1447); + zephir_fast_array_merge(&_20$$24, &_21$$24, &value); + zephir_array_update_zval(&findParams, &key, &_20$$24, PH_COPY | PH_SEPARATE); } - zephir_array_append(&bindDataTypes, &bindType, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1209); } - ZEPHIR_INIT_NVAR(&_10$$9); - ZEPHIR_CONCAT_VS(&_10$$9, &escapedField, " = ?"); - zephir_array_append(&placeholders, &_10$$9, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1212); + } else { + zephir_array_update_zval(&findParams, &key, &value, PH_COPY | PH_SEPARATE); } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, values, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, values, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&position, values, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, values, "current", NULL, 0); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, findParamsTwo, "rewind", NULL, 0); zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&field); - if (UNEXPECTED(!(zephir_array_isset_fetch(&field, fields, &position, 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The number of values in the update is not the same as fields", "phalcon/Db/Adapter/AbstractAdapter.zep", 1185); - return; - } - ZEPHIR_CALL_METHOD(&escapedField, this_ptr, "escapeidentifier", &_4, 0, &field); + while (1) { + ZEPHIR_CALL_METHOD(&_13$$16, findParamsTwo, "valid", NULL, 0); zephir_check_call_status(); - _11$$12 = Z_TYPE_P(&value) == IS_OBJECT; - if (_11$$12) { - _11$$12 = zephir_instance_of_ev(&value, phalcon_db_rawvalue_ce); + if (!zend_is_true(&_13$$16)) { + break; } - if (_11$$12) { - zephir_cast_to_string(&_12$$14, &value); - ZEPHIR_INIT_NVAR(&_13$$14); - ZEPHIR_CONCAT_VSV(&_13$$14, &escapedField, " = ", &_12$$14); - zephir_array_append(&placeholders, &_13$$14, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1191); - } else { - if (Z_TYPE_P(&value) == IS_OBJECT) { - zephir_cast_to_string(&_14$$16, &value); - ZEPHIR_CPY_WRT(&value, &_14$$16); + ZEPHIR_CALL_METHOD(&key, findParamsTwo, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, findParamsTwo, "current", NULL, 0); + zephir_check_call_status(); + _22$$26 = ZEPHIR_IS_LONG_IDENTICAL(&key, 0); + if (!(_22$$26)) { + _22$$26 = ZEPHIR_IS_STRING_IDENTICAL(&key, "conditions"); } - if (Z_TYPE_P(&value) == IS_NULL) { - ZEPHIR_INIT_NVAR(&_15$$17); - ZEPHIR_CONCAT_VS(&_15$$17, &escapedField, " = null"); - zephir_array_append(&placeholders, &_15$$17, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1198); - } else { - zephir_array_append(&updateValues, &value, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1200); - if (Z_TYPE_P(dataTypes) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&bindType); - if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, dataTypes, &position, 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Incomplete number of bind types", "phalcon/Db/Adapter/AbstractAdapter.zep", 1206); - return; + _23$$26 = ZEPHIR_IS_STRING_IDENTICAL(&key, "bind"); + if (!(_23$$26)) { + _23$$26 = ZEPHIR_IS_STRING_IDENTICAL(&key, "bindTypes"); + } + if (_22$$26) { + if (!(zephir_array_isset_long(&findParams, 0))) { + zephir_array_update_long(&findParams, 0, &value, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + } else { + zephir_array_fetch_long(&_24$$29, &findParams, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1439); + ZEPHIR_INIT_NVAR(&_25$$29); + ZEPHIR_CONCAT_SVSVS(&_25$$29, "(", &_24$$29, ") AND (", &value, ")"); + zephir_array_update_long(&findParams, 0, &_25$$29, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + } + } else if (_23$$26) { + if (Z_TYPE_P(&value) == IS_ARRAY) { + if (!(zephir_array_isset(&findParams, &key))) { + zephir_array_update_zval(&findParams, &key, &value, PH_COPY | PH_SEPARATE); + } else { + ZEPHIR_INIT_NVAR(&_26$$33); + zephir_array_fetch(&_27$$33, &findParams, &key, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1447); + zephir_fast_array_merge(&_26$$33, &_27$$33, &value); + zephir_array_update_zval(&findParams, &key, &_26$$33, PH_COPY | PH_SEPARATE); } - zephir_array_append(&bindDataTypes, &bindType, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1209); } - ZEPHIR_INIT_NVAR(&_16$$18); - ZEPHIR_CONCAT_VS(&_16$$18, &escapedField, " = ?"); - zephir_array_append(&placeholders, &_16$$18, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1212); + } else { + zephir_array_update_zval(&findParams, &key, &value, PH_COPY | PH_SEPARATE); } - } - ZEPHIR_CALL_METHOD(NULL, values, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&position); - ZEPHIR_INIT_VAR(&_17); - ZVAL_STRING(&_17, "."); - ZEPHIR_INIT_VAR(&_18); - zephir_fast_strpos(&_18, &table, &_17, 0 ); - if (ZEPHIR_GT_LONG(&_18, 0)) { - ZEPHIR_INIT_VAR(&tableName); - zephir_fast_explode_str(&tableName, SL("."), &table, LONG_MAX); - } else { - ZEPHIR_CPY_WRT(&tableName, &table); - } - ZEPHIR_CALL_METHOD(&escapedTable, this_ptr, "escapeidentifier", &_4, 0, &tableName); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&setClause); - zephir_fast_join_str(&setClause, SL(", "), &placeholders); - ZEPHIR_INIT_VAR(&updateSql); - if (Z_TYPE_P(whereCondition) != IS_NULL) { - ZEPHIR_CONCAT_SVSVS(&updateSql, "UPDATE ", &escapedTable, " SET ", &setClause, " WHERE "); - if (Z_TYPE_P(whereCondition) == IS_STRING) { - zephir_concat_self(&updateSql, whereCondition); - } else { - if (UNEXPECTED(Z_TYPE_P(whereCondition) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid WHERE clause conditions", "phalcon/Db/Adapter/AbstractAdapter.zep", 1243); - return; - } - ZEPHIR_OBS_VAR(&conditions); - if (zephir_array_isset_string_fetch(&conditions, whereCondition, SL("conditions"), 0)) { - zephir_concat_self(&updateSql, &conditions); - } - ZEPHIR_OBS_VAR(&whereBind); - if (zephir_array_isset_string_fetch(&whereBind, whereCondition, SL("bind"), 0)) { - zephir_merge_append(&updateValues, &whereBind); - } - ZEPHIR_OBS_VAR(&whereTypes); - if (zephir_array_isset_string_fetch(&whereTypes, whereCondition, SL("bindTypes"), 0)) { - zephir_merge_append(&bindDataTypes, &whereTypes); + ZEPHIR_CALL_METHOD(NULL, findParamsTwo, "next", NULL, 0); + zephir_check_call_status(); } } - } else { - ZEPHIR_CONCAT_SVSV(&updateSql, "UPDATE ", &escapedTable, " SET ", &setClause); - } - if (!(zephir_fast_count_int(&bindDataTypes))) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &updateSql, &updateValues); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &updateSql, &updateValues, &bindDataTypes); - zephir_check_call_status(); - RETURN_MM(); + RETURN_CTOR(&findParams); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, updateAsDict) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getRelationRecords) { - zend_string *_4; - zend_ulong _3; - zend_bool _0; + zend_string *_20$$11; + zend_ulong _19$$11; + zend_bool reusable = 0, _35$$21; + zval placeholders, conditions, joinConditions, _36, _34$$21; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_24 = NULL, *_29 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *table_param = NULL, *data, data_sub, *whereCondition = NULL, whereCondition_sub, *dataTypes = NULL, dataTypes_sub, __$null, values, fields, field, value, *_1, _2; - zval table; + zval method, retrieveMethod; + zval *relation, relation_sub, *record, record_sub, *parameters = NULL, parameters_sub, *method_param = NULL, __$null, referencedModel, intermediateModel, intermediateFields, fields, builder, extraParameters, refPosition, field, referencedFields, findParams, findArguments, uniqueKey, records, arguments, rows, firstRow, query, _0, _31, _32, _1$$3, _2$$3, _3$$3, _4$$3, _5$$3, _6$$3, _7$$3, _11$$3, _8$$6, _9$$6, _10$$6, _12$$8, _13$$8, _14$$10, _15$$10, _16$$11, *_17$$11, _18$$11, _21$$12, _22$$12, _23$$12, _25$$12, _26$$13, _27$$13, _28$$13, _30$$13, _33$$16; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&data_sub); - ZVAL_UNDEF(&whereCondition_sub); - ZVAL_UNDEF(&dataTypes_sub); + ZVAL_UNDEF(&relation_sub); + ZVAL_UNDEF(&record_sub); + ZVAL_UNDEF(¶meters_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&values); + ZVAL_UNDEF(&referencedModel); + ZVAL_UNDEF(&intermediateModel); + ZVAL_UNDEF(&intermediateFields); ZVAL_UNDEF(&fields); + ZVAL_UNDEF(&builder); + ZVAL_UNDEF(&extraParameters); + ZVAL_UNDEF(&refPosition); ZVAL_UNDEF(&field); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&referencedFields); + ZVAL_UNDEF(&findParams); + ZVAL_UNDEF(&findArguments); + ZVAL_UNDEF(&uniqueKey); + ZVAL_UNDEF(&records); + ZVAL_UNDEF(&arguments); + ZVAL_UNDEF(&rows); + ZVAL_UNDEF(&firstRow); + ZVAL_UNDEF(&query); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_31); + ZVAL_UNDEF(&_32); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_11$$3); + ZVAL_UNDEF(&_8$$6); + ZVAL_UNDEF(&_9$$6); + ZVAL_UNDEF(&_10$$6); + ZVAL_UNDEF(&_12$$8); + ZVAL_UNDEF(&_13$$8); + ZVAL_UNDEF(&_14$$10); + ZVAL_UNDEF(&_15$$10); + ZVAL_UNDEF(&_16$$11); + ZVAL_UNDEF(&_18$$11); + ZVAL_UNDEF(&_21$$12); + ZVAL_UNDEF(&_22$$12); + ZVAL_UNDEF(&_23$$12); + ZVAL_UNDEF(&_25$$12); + ZVAL_UNDEF(&_26$$13); + ZVAL_UNDEF(&_27$$13); + ZVAL_UNDEF(&_28$$13); + ZVAL_UNDEF(&_30$$13); + ZVAL_UNDEF(&_33$$16); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&retrieveMethod); + ZVAL_UNDEF(&placeholders); + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(&joinConditions); + ZVAL_UNDEF(&_36); + ZVAL_UNDEF(&_34$$21); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 4) - Z_PARAM_STR(table) - Z_PARAM_ZVAL(data) + Z_PARAM_OBJECT_OF_CLASS(relation, phalcon_mvc_model_relationinterface_ce) + Z_PARAM_OBJECT_OF_CLASS(record, phalcon_mvc_modelinterface_ce) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(whereCondition) - Z_PARAM_ZVAL_OR_NULL(dataTypes) + Z_PARAM_ZVAL_OR_NULL(parameters) + Z_PARAM_STR_OR_NULL(method) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 2, &table_param, &data, &whereCondition, &dataTypes); - zephir_get_strval(&table, table_param); - if (!whereCondition) { - whereCondition = &whereCondition_sub; - whereCondition = &__$null; + zephir_fetch_params(1, 2, 2, &relation, &record, ¶meters, &method_param); + if (!parameters) { + parameters = ¶meters_sub; + parameters = &__$null; } - if (!dataTypes) { - dataTypes = &dataTypes_sub; - dataTypes = &__$null; + if (!method_param) { + ZEPHIR_INIT_VAR(&method); + } else { + zephir_get_strval(&method, method_param); } - ZEPHIR_INIT_VAR(&values); - array_init(&values); - ZEPHIR_INIT_VAR(&fields); - array_init(&fields); - _0 = Z_TYPE_P(data) != IS_ARRAY; - if (!(_0)) { - _0 = ZEPHIR_IS_EMPTY(data); - } - if (_0) { - RETURN_MM_BOOL(0); - } - zephir_is_iterable(data, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 1316); - if (Z_TYPE_P(data) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(data), _3, _4, _1) - { - ZEPHIR_INIT_NVAR(&field); - if (_4 != NULL) { - ZVAL_STR_COPY(&field, _4); - } else { - ZVAL_LONG(&field, _3); + ZEPHIR_INIT_VAR(&placeholders); + array_init(&placeholders); + ZEPHIR_CALL_METHOD(&extraParameters, relation, "getparams", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&referencedModel, relation, "getreferencedmodel", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, relation, "isthrough", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_0)) { + ZEPHIR_INIT_VAR(&conditions); + array_init(&conditions); + ZEPHIR_CALL_METHOD(&intermediateModel, relation, "getintermediatemodel", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&intermediateFields, relation, "getintermediatefields", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&fields, relation, "getfields", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&fields) == IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not supported", "phalcon/Mvc/Model/Manager.zep", 1508); + return; + } + ZEPHIR_INIT_VAR(&_1$$3); + ZEPHIR_CONCAT_SVSVS(&_1$$3, "[", &intermediateModel, "].[", &intermediateFields, "] = :APR0:"); + zephir_array_append(&conditions, &_1$$3, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1511); + ZEPHIR_CALL_METHOD(&_2$$3, record, "readattribute", NULL, 0, &fields); + zephir_check_call_status(); + zephir_array_update_string(&placeholders, SL("APR0"), &_2$$3, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&joinConditions); + array_init(&joinConditions); + ZEPHIR_CALL_METHOD(&intermediateFields, relation, "getintermediatereferencedfields", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&intermediateFields) == IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not supported", "phalcon/Mvc/Model/Manager.zep", 1522); + return; + } + ZEPHIR_CALL_METHOD(&_3$$3, relation, "getreferencedfields", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_4$$3); + ZEPHIR_CONCAT_SVSVSVSVS(&_4$$3, "[", &intermediateModel, "].[", &intermediateFields, "] = [", &referencedModel, "].[", &_3$$3, "]"); + zephir_array_append(&joinConditions, &_4$$3, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1525); + ZEPHIR_CALL_METHOD(&_5$$3, this_ptr, "_mergefindparameters", NULL, 454, &extraParameters, parameters); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&builder, this_ptr, "createbuilder", NULL, 0, &_5$$3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &builder, "from", NULL, 0, &referencedModel); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_6$$3); + zephir_fast_join_str(&_6$$3, SL(" AND "), &joinConditions); + ZEPHIR_CALL_METHOD(NULL, &builder, "innerjoin", NULL, 0, &intermediateModel, &_6$$3); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_7$$3); + zephir_fast_join_str(&_7$$3, SL(" AND "), &conditions); + ZEPHIR_CALL_METHOD(NULL, &builder, "andwhere", NULL, 0, &_7$$3, &placeholders); + zephir_check_call_status(); + if (ZEPHIR_IS_STRING(&method, "count")) { + ZEPHIR_INIT_VAR(&_8$$6); + ZVAL_STRING(&_8$$6, "COUNT(*) AS rowcount"); + ZEPHIR_CALL_METHOD(NULL, &builder, "columns", NULL, 0, &_8$$6); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_9$$6, &builder, "getquery", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&rows, &_9$$6, "execute", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&firstRow, &rows, "getfirst", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_8$$6); + ZVAL_STRING(&_8$$6, "rowcount"); + ZEPHIR_CALL_METHOD(&_10$$6, &firstRow, "readattribute", NULL, 0, &_8$$6); + zephir_check_call_status(); + RETURN_MM_LONG(zephir_get_intval(&_10$$6)); + } + ZEPHIR_CALL_METHOD(&_11$$3, &builder, "getquery", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&query, &_11$$3); + ZEPHIR_CALL_METHOD(&_11$$3, relation, "gettype", NULL, 0); + zephir_check_call_status(); + do { + if (ZEPHIR_IS_LONG(&_11$$3, 4)) { + ZEPHIR_RETURN_CALL_METHOD(&query, "execute", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _1); - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1312); - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1313); - } ZEND_HASH_FOREACH_END(); + if (ZEPHIR_IS_LONG(&_11$$3, 3)) { + ZVAL_BOOL(&_13$$8, 1); + ZEPHIR_CALL_METHOD(&_12$$8, &query, "setuniquerow", NULL, 0, &_13$$8); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(&_12$$8, "execute", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Unknown relation type", "phalcon/Mvc/Model/Manager.zep", 1570); + return; + } while(0); + + } + ZEPHIR_INIT_NVAR(&conditions); + array_init(&conditions); + ZEPHIR_CALL_METHOD(&fields, relation, "getfields", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&referencedFields, relation, "getreferencedfields", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&fields) != IS_ARRAY) { + ZEPHIR_INIT_VAR(&_14$$10); + ZEPHIR_CONCAT_SVS(&_14$$10, "[", &referencedFields, "] = :APR0:"); + zephir_array_append(&conditions, &_14$$10, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1587); + ZEPHIR_CALL_METHOD(&_15$$10, record, "readattribute", NULL, 0, &fields); + zephir_check_call_status(); + zephir_array_update_string(&placeholders, SL("APR0"), &_15$$10, PH_COPY | PH_SEPARATE); } else { - ZEPHIR_CALL_METHOD(NULL, data, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(&_16$$11, relation, "getfields", NULL, 0); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, data, "valid", NULL, 0); + zephir_is_iterable(&_16$$11, 0, "phalcon/Mvc/Model/Manager.zep", 1594); + if (Z_TYPE_P(&_16$$11) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_16$$11), _19$$11, _20$$11, _17$$11) + { + ZEPHIR_INIT_NVAR(&refPosition); + if (_20$$11 != NULL) { + ZVAL_STR_COPY(&refPosition, _20$$11); + } else { + ZVAL_LONG(&refPosition, _19$$11); + } + ZEPHIR_INIT_NVAR(&field); + ZVAL_COPY(&field, _17$$11); + zephir_array_fetch(&_21$$12, &referencedFields, &refPosition, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1591); + ZEPHIR_INIT_NVAR(&_22$$12); + ZEPHIR_CONCAT_SVSVS(&_22$$12, "[", &_21$$12, "] = :APR", &refPosition, ":"); + zephir_array_append(&conditions, &_22$$12, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1591); + ZEPHIR_CALL_METHOD(&_23$$12, record, "readattribute", &_24, 0, &field); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_25$$12); + ZEPHIR_CONCAT_SV(&_25$$12, "APR", &refPosition); + zephir_array_update_zval(&placeholders, &_25$$12, &_23$$12, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_16$$11, "rewind", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_2)) { + while (1) { + ZEPHIR_CALL_METHOD(&_18$$11, &_16$$11, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_18$$11)) { + break; + } + ZEPHIR_CALL_METHOD(&refPosition, &_16$$11, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&field, &_16$$11, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_fetch(&_26$$13, &referencedFields, &refPosition, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1591); + ZEPHIR_INIT_NVAR(&_27$$13); + ZEPHIR_CONCAT_SVSVS(&_27$$13, "[", &_26$$13, "] = :APR", &refPosition, ":"); + zephir_array_append(&conditions, &_27$$13, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1591); + ZEPHIR_CALL_METHOD(&_28$$13, record, "readattribute", &_29, 0, &field); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_30$$13); + ZEPHIR_CONCAT_SV(&_30$$13, "APR", &refPosition); + zephir_array_update_zval(&placeholders, &_30$$13, &_28$$13, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &_16$$11, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&field); + ZEPHIR_INIT_NVAR(&refPosition); + } + ZEPHIR_INIT_VAR(&findParams); + zephir_create_array(&findParams, 3, 0); + ZEPHIR_INIT_VAR(&_31); + zephir_fast_join_str(&_31, SL(" AND "), &conditions); + zephir_array_fast_append(&findParams, &_31); + zephir_array_update_string(&findParams, SL("bind"), &placeholders, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_32, record, "getdi", NULL, 0); + zephir_check_call_status(); + zephir_array_update_string(&findParams, SL("di"), &_32, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&findArguments, this_ptr, "_mergefindparameters", NULL, 454, &findParams, parameters); + zephir_check_call_status(); + if (Z_TYPE_P(&extraParameters) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&findParams, this_ptr, "_mergefindparameters", NULL, 454, &extraParameters, &findArguments); + zephir_check_call_status(); + } else { + ZEPHIR_CPY_WRT(&findParams, &findArguments); + } + if (ZEPHIR_IS_NULL(&method)) { + ZEPHIR_CALL_METHOD(&_33$$16, relation, "gettype", NULL, 0); + zephir_check_call_status(); + do { + if (ZEPHIR_IS_LONG(&_33$$16, 0) || ZEPHIR_IS_LONG(&_33$$16, 1)) { + ZEPHIR_INIT_VAR(&retrieveMethod); + ZVAL_STRING(&retrieveMethod, "findFirst"); break; } - ZEPHIR_CALL_METHOD(&field, data, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, data, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1312); - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1313); - ZEPHIR_CALL_METHOD(NULL, data, "next", NULL, 0); - zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&_33$$16, 2)) { + ZEPHIR_INIT_NVAR(&retrieveMethod); + ZVAL_STRING(&retrieveMethod, "find"); + break; + } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Unknown relation type", "phalcon/Mvc/Model/Manager.zep", 1632); + return; + } while(0); + + } else { + ZEPHIR_CPY_WRT(&retrieveMethod, &method); + } + ZEPHIR_CALL_METHOD(&_32, relation, "isreusable", NULL, 0); + zephir_check_call_status(); + reusable = zephir_get_boolval(&_32); + if (reusable) { + ZEPHIR_INIT_VAR(&_34$$21); + zephir_create_array(&_34$$21, 2, 0); + zephir_array_fast_append(&_34$$21, &findParams); + zephir_array_fast_append(&_34$$21, &retrieveMethod); + ZEPHIR_INIT_VAR(&uniqueKey); + zephir_unique_key(&uniqueKey, &referencedModel, &_34$$21); + ZEPHIR_CALL_METHOD(&records, this_ptr, "getreusablerecords", NULL, 0, &referencedModel, &uniqueKey); + zephir_check_call_status(); + _35$$21 = Z_TYPE_P(&records) == IS_ARRAY; + if (!(_35$$21)) { + _35$$21 = Z_TYPE_P(&records) == IS_OBJECT; + } + if (_35$$21) { + RETURN_CCTOR(&records); } } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&field); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "update", NULL, 0, &table, &fields, &values, whereCondition, dataTypes); + ZEPHIR_INIT_VAR(&arguments); + zephir_create_array(&arguments, 1, 0); + zephir_array_fast_append(&arguments, &findParams); + ZEPHIR_INIT_VAR(&_36); + zephir_create_array(&_36, 2, 0); + ZEPHIR_CALL_METHOD(&_32, this_ptr, "load", NULL, 0, &referencedModel); zephir_check_call_status(); - RETURN_MM(); + zephir_array_fast_append(&_36, &_32); + zephir_array_fast_append(&_36, &retrieveMethod); + ZEPHIR_INIT_NVAR(&records); + ZEPHIR_CALL_USER_FUNC_ARRAY(&records, &_36, &arguments); + zephir_check_call_status(); + if (reusable) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setreusablerecords", NULL, 0, &referencedModel, &uniqueKey, &records); + zephir_check_call_status(); + } + RETURN_CCTOR(&records); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, useExplicitIdValue) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getReusableRecords) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *modelName_param = NULL, *key_param = NULL, records, _0; + zval modelName, key; zval *this_ptr = getThis(); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&records); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(modelName) + Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &modelName_param, &key_param); + if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { + zephir_get_strval(&modelName, modelName_param); + } else { + ZEPHIR_INIT_VAR(&modelName); + } + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } - RETURN_BOOL(0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("reusable"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&records, &_0, &key, 1))) { + RETURN_MM_NULL(); + } + RETURN_CTOR(&records); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, supportsDefaultValue) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, setReusableRecords) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *modelName_param = NULL, *key_param = NULL, *records, records_sub; + zval modelName, key; zval *this_ptr = getThis(); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&records_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(modelName) + Z_PARAM_STR(key) + Z_PARAM_ZVAL(records) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_BOOL(1); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &modelName_param, &key_param, &records); + if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { + zephir_get_strval(&modelName, modelName_param); + } else { + ZEPHIR_INIT_VAR(&modelName); + } + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } + + + zephir_update_property_array(this_ptr, SL("reusable"), &key, records); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, viewExists) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, clearReusableObjects) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("reusable"), &_0); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getBelongsToRecords) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *viewName_param = NULL, *schemaName_param = NULL, _0, _1, _2, _3, _4; - zval viewName, schemaName; + zval *modelName_param = NULL, *modelRelation_param = NULL, *record, record_sub, *parameters = NULL, parameters_sub, *method_param = NULL, __$null, relations, _0, _1, _2, _3, _4; + zval modelName, modelRelation, method, keyRelation; zval *this_ptr = getThis(); - ZVAL_UNDEF(&viewName); - ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&modelRelation); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&keyRelation); + ZVAL_UNDEF(&record_sub); + ZVAL_UNDEF(¶meters_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&relations); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); @@ -61725,13146 +62780,12443 @@ static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, viewExists) ZVAL_UNDEF(&_4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(viewName) + ZEND_PARSE_PARAMETERS_START(3, 5) + Z_PARAM_STR(modelName) + Z_PARAM_STR(modelRelation) + Z_PARAM_OBJECT_OF_CLASS(record, phalcon_mvc_modelinterface_ce) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) + Z_PARAM_ZVAL_OR_NULL(parameters) + Z_PARAM_STR_OR_NULL(method) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName_param); - if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); + zephir_fetch_params(1, 3, 2, &modelName_param, &modelRelation_param, &record, ¶meters, &method_param); + if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { - zephir_get_strval(&viewName, viewName_param); + if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { + zephir_get_strval(&modelName, modelName_param); } else { - ZEPHIR_INIT_VAR(&viewName); + ZEPHIR_INIT_VAR(&modelName); } - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + if (UNEXPECTED(Z_TYPE_P(modelRelation_param) != IS_STRING && Z_TYPE_P(modelRelation_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelRelation' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); + if (EXPECTED(Z_TYPE_P(modelRelation_param) == IS_STRING)) { + zephir_get_strval(&modelRelation, modelRelation_param); } else { - ZEPHIR_INIT_VAR(&schemaName); + ZEPHIR_INIT_VAR(&modelRelation); + } + if (!parameters) { + parameters = ¶meters_sub; + parameters = &__$null; } + if (!method_param) { + ZEPHIR_INIT_VAR(&method); + } else { + zephir_get_strval(&method, method_param); } - zephir_read_property(&_1, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_2, &_1, "viewexists", NULL, 0, &viewName, &schemaName); - zephir_check_call_status(); - ZVAL_LONG(&_3, 3); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchone", NULL, 0, &_2, &_3); + ZEPHIR_INIT_VAR(&_0); + zephir_fast_strtolower(&_0, &modelName); + ZEPHIR_INIT_VAR(&_1); + zephir_fast_strtolower(&_1, &modelRelation); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_CONCAT_VSV(&_2, &_0, "$", &_1); + zephir_get_strval(&keyRelation, &_2); + ZEPHIR_OBS_VAR(&relations); + zephir_read_property(&_3, this_ptr, ZEND_STRL("hasMany"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&relations, &_3, &keyRelation, 0))) { + RETURN_MM_BOOL(0); + } + zephir_array_fetch_long(&_4, &relations, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1729); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getrelationrecords", NULL, 0, &_4, record, parameters, &method); zephir_check_call_status(); - zephir_array_fetch_long(&_4, &_0, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 1349); - RETURN_MM_BOOL(ZEPHIR_GT_LONG(&_4, 0)); + RETURN_MM(); } -zend_object *zephir_init_properties_Phalcon_Db_Adapter_AbstractAdapter(zend_class_entry *class_type) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getHasManyRecords) { - zval _0, _2, _1$$3, _3$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *modelName_param = NULL, *modelRelation_param = NULL, *record, record_sub, *parameters = NULL, parameters_sub, *method_param = NULL, __$null, relations, _0, _1, _2, _3, _4; + zval modelName, modelRelation, method, keyRelation; + zval *this_ptr = getThis(); - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("sqlBindTypes"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("sqlBindTypes"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("descriptor"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("descriptor"), &_3$$4); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Db_Adapter_AdapterInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db\\Adapter, AdapterInterface, phalcon, db_adapter_adapterinterface, phalcon_db_adapter_adapterinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, addColumn); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, addIndex); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, addForeignKey); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, addPrimaryKey); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, affectedRows); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, begin); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, close); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, commit); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, connect); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, createSavepoint); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, createTable); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, createView); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, delete); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, describeColumns); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, describeIndexes); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, describeReferences); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, dropColumn); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, dropForeignKey); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, dropIndex); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, dropPrimaryKey); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, dropTable); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, dropView); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, escapeIdentifier); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, escapeString); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, execute); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, fetchAll); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, fetchColumn); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, fetchOne); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, forUpdate); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getColumnDefinition); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getColumnList); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getConnectionId); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getDescriptor); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getDialect); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getDialectType); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getDefaultIdValue); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getDefaultValue); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getInternalHandler); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getNestedTransactionSavepointName); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getRealSQLStatement); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getSQLStatement); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getSQLBindTypes); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getSQLVariables); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getType); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, insert); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, insertAsDict); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, isNestedTransactionsWithSavepoints); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, isUnderTransaction); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, lastInsertId); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, limit); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, listTables); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, listViews); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, modifyColumn); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, query); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, releaseSavepoint); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, rollback); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, rollbackSavepoint); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, sharedLock); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, setNestedTransactionsWithSavepoints); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, supportSequences); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, tableExists); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, tableOptions); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, update); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, updateAsDict); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, useExplicitIdValue); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, supportsDefaultValue); -ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, viewExists); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Db_Adapter_PdoFactory) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Adapter, PdoFactory, phalcon, db_adapter_pdofactory, phalcon_factory_abstractfactory_ce, phalcon_db_adapter_pdofactory_method_entry, 0); - - zend_declare_property_string(phalcon_db_adapter_pdofactory_ce, SL("exception"), "Phalcon\\Db\\Exception", ZEND_ACC_PROTECTED); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Db_Adapter_PdoFactory, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *services_param = NULL; - zval services; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&services); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&modelRelation); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&keyRelation); + ZVAL_UNDEF(&record_sub); + ZVAL_UNDEF(¶meters_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&relations); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(3, 5) + Z_PARAM_STR(modelName) + Z_PARAM_STR(modelRelation) + Z_PARAM_OBJECT_OF_CLASS(record, phalcon_mvc_modelinterface_ce) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(services) + Z_PARAM_ZVAL_OR_NULL(parameters) + Z_PARAM_STR_OR_NULL(method) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &services_param); - if (!services_param) { - ZEPHIR_INIT_VAR(&services); - array_init(&services); + zephir_fetch_params(1, 3, 2, &modelName_param, &modelRelation_param, &record, ¶meters, &method_param); + if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { + zephir_get_strval(&modelName, modelName_param); } else { - ZEPHIR_OBS_COPY_OR_DUP(&services, services_param); + ZEPHIR_INIT_VAR(&modelName); + } + if (UNEXPECTED(Z_TYPE_P(modelRelation_param) != IS_STRING && Z_TYPE_P(modelRelation_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelRelation' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(modelRelation_param) == IS_STRING)) { + zephir_get_strval(&modelRelation, modelRelation_param); + } else { + ZEPHIR_INIT_VAR(&modelRelation); + } + if (!parameters) { + parameters = ¶meters_sub; + parameters = &__$null; + } + if (!method_param) { + ZEPHIR_INIT_VAR(&method); + } else { + zephir_get_strval(&method, method_param); } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "init", NULL, 0, &services); + ZEPHIR_INIT_VAR(&_0); + zephir_fast_strtolower(&_0, &modelName); + ZEPHIR_INIT_VAR(&_1); + zephir_fast_strtolower(&_1, &modelRelation); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_CONCAT_VSV(&_2, &_0, "$", &_1); + zephir_get_strval(&keyRelation, &_2); + ZEPHIR_OBS_VAR(&relations); + zephir_read_property(&_3, this_ptr, ZEND_STRL("hasMany"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&relations, &_3, &keyRelation, 0))) { + RETURN_MM_BOOL(0); + } + zephir_array_fetch_long(&_4, &relations, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1759); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getrelationrecords", NULL, 0, &_4, record, parameters, &method); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Adapter_PdoFactory, load) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getHasOneRecords) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_1 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *config = NULL, config_sub, name, options, _0, _2, _3; + zval *modelName_param = NULL, *modelRelation_param = NULL, *record, record_sub, *parameters = NULL, parameters_sub, *method_param = NULL, __$null, relations, _0, _1, _2, _3, _4; + zval modelName, modelRelation, method, keyRelation; zval *this_ptr = getThis(); - ZVAL_UNDEF(&config_sub); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&options); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&modelRelation); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&keyRelation); + ZVAL_UNDEF(&record_sub); + ZVAL_UNDEF(¶meters_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&relations); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(config) + ZEND_PARSE_PARAMETERS_START(3, 5) + Z_PARAM_STR(modelName) + Z_PARAM_STR(modelRelation) + Z_PARAM_OBJECT_OF_CLASS(record, phalcon_mvc_modelinterface_ce) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(parameters) + Z_PARAM_STR_OR_NULL(method) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &config); - ZEPHIR_SEPARATE_PARAM(config); + zephir_fetch_params(1, 3, 2, &modelName_param, &modelRelation_param, &record, ¶meters, &method_param); + if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { + zephir_get_strval(&modelName, modelName_param); + } else { + ZEPHIR_INIT_VAR(&modelName); + } + if (UNEXPECTED(Z_TYPE_P(modelRelation_param) != IS_STRING && Z_TYPE_P(modelRelation_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelRelation' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(modelRelation_param) == IS_STRING)) { + zephir_get_strval(&modelRelation, modelRelation_param); + } else { + ZEPHIR_INIT_VAR(&modelRelation); + } + if (!parameters) { + parameters = ¶meters_sub; + parameters = &__$null; + } + if (!method_param) { + ZEPHIR_INIT_VAR(&method); + } else { + zephir_get_strval(&method, method_param); + } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "checkconfig", NULL, 0, config); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(config, &_0); - ZEPHIR_OBS_VAR(&name); - zephir_array_fetch_string(&name, config, SL("adapter"), PH_NOISY, "phalcon/Db/Adapter/PdoFactory.zep", 51); - zephir_array_unset_string(config, SL("adapter"), PH_SEPARATE); + ZEPHIR_INIT_VAR(&_0); + zephir_fast_strtolower(&_0, &modelName); + ZEPHIR_INIT_VAR(&_1); + zephir_fast_strtolower(&_1, &modelRelation); ZEPHIR_INIT_VAR(&_2); - array_init(&_2); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "options"); - ZEPHIR_CALL_CE_STATIC(&options, phalcon_helper_arr_ce, "get", &_1, 16, config, &_3, &_2); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "newinstance", NULL, 0, &name, &options); + ZEPHIR_CONCAT_VSV(&_2, &_0, "$", &_1); + zephir_get_strval(&keyRelation, &_2); + ZEPHIR_OBS_VAR(&relations); + zephir_read_property(&_3, this_ptr, ZEND_STRL("hasOne"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&relations, &_3, &keyRelation, 0))) { + RETURN_MM_BOOL(0); + } + zephir_array_fetch_long(&_4, &relations, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1789); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getrelationrecords", NULL, 0, &_4, record, parameters, &method); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Adapter_PdoFactory, newInstance) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getBelongsTo) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval options, _0; - zval *name_param = NULL, *options_param = NULL, definition; - zval name; + zval *model, model_sub, relations, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&options); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&relations); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &name_param, &options_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); - } + zephir_fetch_params(1, 1, 0, &model); - ZEPHIR_CALL_METHOD(&definition, this_ptr, "getservice", NULL, 0, &name); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 1, 0); - zephir_array_fast_append(&_0, &options); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(return_value, &definition, &_0); - zephir_check_call_status(); - RETURN_MM(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("belongsToSingle"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + zephir_get_class(&_1, model, 1); + if (!(zephir_array_isset_fetch(&relations, &_0, &_1, 1))) { + array_init(return_value); + RETURN_MM(); + } + RETURN_CTOR(&relations); } -static PHP_METHOD(Phalcon_Db_Adapter_PdoFactory, getAdapters) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getHasMany) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *model, model_sub, relations, _0, _1; zval *this_ptr = getThis(); - - - zephir_create_array(return_value, 3, 0); - add_assoc_stringl_ex(return_value, SL("mysql"), SL("Phalcon\\Db\\Adapter\\Pdo\\Mysql")); - add_assoc_stringl_ex(return_value, SL("postgresql"), SL("Phalcon\\Db\\Adapter\\Pdo\\Postgresql")); - add_assoc_stringl_ex(return_value, SL("sqlite"), SL("Phalcon\\Db\\Adapter\\Pdo\\Sqlite")); - return; -} - - - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&relations); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &model); - -ZEPHIR_INIT_CLASS(Phalcon_Db_Adapter_Pdo_AbstractPdo) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Adapter\\Pdo, AbstractPdo, phalcon, db_adapter_pdo_abstractpdo, phalcon_db_adapter_abstractadapter_ce, phalcon_db_adapter_pdo_abstractpdo_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_long(phalcon_db_adapter_pdo_abstractpdo_ce, SL("affectedRows"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_adapter_pdo_abstractpdo_ce, SL("pdo"), ZEND_ACC_PROTECTED); - return SUCCESS; + zephir_read_property(&_0, this_ptr, ZEND_STRL("hasManySingle"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + zephir_get_class(&_1, model, 1); + if (!(zephir_array_isset_fetch(&relations, &_0, &_1, 1))) { + array_init(return_value); + RETURN_MM(); + } + RETURN_CTOR(&relations); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, __construct) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getHasOne) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_0 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *descriptor_param = NULL; - zval descriptor; + zval *model, model_sub, relations, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&descriptor); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&relations); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(descriptor) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &descriptor_param); - ZEPHIR_OBS_COPY_OR_DUP(&descriptor, descriptor_param); - - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0, &descriptor); - zephir_check_call_status(); - ZEPHIR_CALL_PARENT(NULL, phalcon_db_adapter_pdo_abstractpdo_ce, getThis(), "__construct", &_0, 0, &descriptor); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, affectedRows) -{ - zval *this_ptr = getThis(); - + zephir_fetch_params(1, 1, 0, &model); - RETURN_MEMBER(getThis(), "affectedRows"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("hasOneSingle"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + zephir_get_class(&_1, model, 1); + if (!(zephir_array_isset_fetch(&relations, &_0, &_1, 1))) { + array_init(return_value); + RETURN_MM(); + } + RETURN_CTOR(&relations); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, begin) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getHasOneThrough) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, transactionLevel = 0; - zval *nesting_param = NULL, pdo, eventsManager, savepointName, _0, _1, _6, _2$$4, _3$$5, _7$$7; - zend_bool nesting, _4, _5; + zval *model, model_sub, relations, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pdo); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&savepointName); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&relations); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_7$$7); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(nesting) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &nesting_param); - if (!nesting_param) { - nesting = 1; - } else { - nesting = zephir_get_boolval(nesting_param); - } + zephir_fetch_params(1, 1, 0, &model); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&pdo, &_0); - if (Z_TYPE_P(&pdo) != IS_OBJECT) { - RETURN_MM_BOOL(0); - } - RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("transactionLevel"))); - ZEPHIR_OBS_VAR(&_1); - zephir_read_property(&_1, this_ptr, ZEND_STRL("transactionLevel"), PH_NOISY_CC); - transactionLevel = zephir_get_intval(&_1); - if (transactionLevel == 1) { - zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_2$$4); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_3$$5); - ZVAL_STRING(&_3$$5, "db:beginTransaction"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_3$$5, this_ptr); - zephir_check_call_status(); - } - ZEPHIR_RETURN_CALL_METHOD(&pdo, "begintransaction", NULL, 0); - zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("hasOneThroughSingle"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + zephir_get_class(&_1, model, 1); + if (!(zephir_array_isset_fetch(&relations, &_0, &_1, 1))) { + array_init(return_value); RETURN_MM(); } - _4 = !transactionLevel; - if (!(_4)) { - _4 = !nesting; - } - _5 = _4; - if (!(_5)) { - ZEPHIR_CALL_METHOD(&_6, this_ptr, "isnestedtransactionswithsavepoints", NULL, 0); - zephir_check_call_status(); - _5 = !zephir_is_true(&_6); - } - if (_5) { - RETURN_MM_BOOL(0); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_0); - ZEPHIR_CALL_METHOD(&savepointName, this_ptr, "getnestedtransactionsavepointname", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_7$$7); - ZVAL_STRING(&_7$$7, "db:createSavepoint"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_7$$7, this_ptr, &savepointName); - zephir_check_call_status(); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "createsavepoint", NULL, 0, &savepointName); - zephir_check_call_status(); - RETURN_MM(); + RETURN_CTOR(&relations); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, commit) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getHasManyToMany) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, transactionLevel = 0; - zval *nesting_param = NULL, pdo, eventsManager, savepointName, _0, _1, _6, _2$$5, _3$$6, _7$$9; - zend_bool nesting, _4, _5; + zval *model, model_sub, relations, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pdo); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&savepointName); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&relations); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_2$$5); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&_7$$9); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(nesting) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &nesting_param); - if (!nesting_param) { - nesting = 1; - } else { - nesting = zephir_get_boolval(nesting_param); - } + zephir_fetch_params(1, 1, 0, &model); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&pdo, &_0); - if (Z_TYPE_P(&pdo) != IS_OBJECT) { - RETURN_MM_BOOL(0); - } - ZEPHIR_OBS_VAR(&_1); - zephir_read_property(&_1, this_ptr, ZEND_STRL("transactionLevel"), PH_NOISY_CC); - transactionLevel = zephir_get_intval(&_1); - if (UNEXPECTED(!transactionLevel)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "There is no active transaction", "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 164); - return; - } - if (transactionLevel == 1) { - zephir_read_property(&_2$$5, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_2$$5); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_3$$6); - ZVAL_STRING(&_3$$6, "db:commitTransaction"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_3$$6, this_ptr); - zephir_check_call_status(); - } - RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("transactionLevel"))); - ZEPHIR_RETURN_CALL_METHOD(&pdo, "commit", NULL, 0); - zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("hasManyToManySingle"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + zephir_get_class(&_1, model, 1); + if (!(zephir_array_isset_fetch(&relations, &_0, &_1, 1))) { + array_init(return_value); RETURN_MM(); } - _4 = !transactionLevel; - if (!(_4)) { - _4 = !nesting; - } - _5 = _4; - if (!(_5)) { - ZEPHIR_CALL_METHOD(&_6, this_ptr, "isnestedtransactionswithsavepoints", NULL, 0); - zephir_check_call_status(); - _5 = !zephir_is_true(&_6); - } - if (_5) { - if (transactionLevel > 0) { - RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("transactionLevel"))); - } - RETURN_MM_BOOL(0); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_0); - ZEPHIR_CALL_METHOD(&savepointName, this_ptr, "getnestedtransactionsavepointname", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_7$$9); - ZVAL_STRING(&_7$$9, "db:releaseSavepoint"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_7$$9, this_ptr, &savepointName); - zephir_check_call_status(); - } - RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("transactionLevel"))); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "releasesavepoint", NULL, 0, &savepointName); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, close) -{ - zval __$null; - zval *this_ptr = getThis(); - - ZVAL_NULL(&__$null); - - - - zephir_update_property_zval(this_ptr, ZEND_STRL("pdo"), &__$null); - RETURN_BOOL(1); + RETURN_CTOR(&relations); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, connect) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getHasOneAndHasMany) { - zend_string *_8; - zend_ulong _7; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *descriptor_param = NULL, username, password, dsnParts, dsnAttributes, dsnAttributesCustomRaw, dsnAttributesMap, key, options, persistent, value, _3, _4, *_5, _6, _11, _12, _13, _0$$3, _2$$9, _9$$11, _10$$12; - zval descriptor, _1$$3; + zval *model, model_sub, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&descriptor); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&username); - ZVAL_UNDEF(&password); - ZVAL_UNDEF(&dsnParts); - ZVAL_UNDEF(&dsnAttributes); - ZVAL_UNDEF(&dsnAttributesCustomRaw); - ZVAL_UNDEF(&dsnAttributesMap); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&persistent); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_13); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_2$$9); - ZVAL_UNDEF(&_9$$11); - ZVAL_UNDEF(&_10$$12); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY_OR_NULL(descriptor) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &descriptor_param); - if (!descriptor_param) { - ZEPHIR_INIT_VAR(&descriptor); - } else { - zephir_get_arrval(&descriptor, descriptor_param); - } + zephir_fetch_params(1, 1, 0, &model); - if (ZEPHIR_IS_EMPTY(&descriptor)) { - ZEPHIR_OBS_VAR(&_0$$3); - zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("descriptor"), PH_NOISY_CC); - zephir_get_arrval(&_1$$3, &_0$$3); - ZEPHIR_CPY_WRT(&descriptor, &_1$$3); - } - ZEPHIR_OBS_VAR(&username); - if (zephir_array_isset_string_fetch(&username, &descriptor, SL("username"), 0)) { - zephir_array_unset_string(&descriptor, SL("username"), PH_SEPARATE); - } - ZEPHIR_OBS_VAR(&password); - if (zephir_array_isset_string_fetch(&password, &descriptor, SL("password"), 0)) { - zephir_array_unset_string(&descriptor, SL("password"), PH_SEPARATE); - } - if (zephir_array_isset_string(&descriptor, SL("dialectClass"))) { - zephir_array_unset_string(&descriptor, SL("dialectClass"), PH_SEPARATE); - } - ZEPHIR_OBS_VAR(&options); - if (zephir_array_isset_string_fetch(&options, &descriptor, SL("options"), 0)) { - zephir_array_unset_string(&descriptor, SL("options"), PH_SEPARATE); - } else { - ZEPHIR_INIT_NVAR(&options); - array_init(&options); - } - ZEPHIR_OBS_VAR(&persistent); - if (zephir_array_isset_string_fetch(&persistent, &descriptor, SL("persistent"), 0)) { - ZEPHIR_INIT_VAR(&_2$$9); - ZVAL_BOOL(&_2$$9, zephir_get_boolval(&persistent)); - zephir_array_update_long(&options, 12, &_2$$9, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - } - ZEPHIR_INIT_VAR(&_3); - ZVAL_LONG(&_3, 2); - zephir_array_update_long(&options, 3, &_3, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - ZEPHIR_INIT_VAR(&dsnParts); - array_init(&dsnParts); - ZEPHIR_OBS_VAR(&dsnAttributesCustomRaw); - if (zephir_array_isset_string_fetch(&dsnAttributesCustomRaw, &descriptor, SL("dsn"), 0)) { - zephir_array_append(&dsnParts, &dsnAttributesCustomRaw, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 297); - zephir_array_unset_string(&descriptor, SL("dsn"), PH_SEPARATE); - } - ZEPHIR_CALL_METHOD(&_4, this_ptr, "getdsndefaults", NULL, 0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "gethasone", NULL, 0, model); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&dsnAttributesMap); - zephir_fast_array_merge(&dsnAttributesMap, &_4, &descriptor); - zephir_is_iterable(&dsnAttributesMap, 0, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 317); - if (Z_TYPE_P(&dsnAttributesMap) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&dsnAttributesMap), _7, _8, _5) - { - ZEPHIR_INIT_NVAR(&key); - if (_8 != NULL) { - ZVAL_STR_COPY(&key, _8); - } else { - ZVAL_LONG(&key, _7); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _5); - ZEPHIR_INIT_NVAR(&_9$$11); - ZEPHIR_CONCAT_VSV(&_9$$11, &key, "=", &value); - zephir_array_append(&dsnParts, &_9$$11, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 313); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &dsnAttributesMap, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_6, &dsnAttributesMap, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_6)) { - break; - } - ZEPHIR_CALL_METHOD(&key, &dsnAttributesMap, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &dsnAttributesMap, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_10$$12); - ZEPHIR_CONCAT_VSV(&_10$$12, &key, "=", &value); - zephir_array_append(&dsnParts, &_10$$12, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 313); - ZEPHIR_CALL_METHOD(NULL, &dsnAttributesMap, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - ZEPHIR_INIT_VAR(&dsnAttributes); - zephir_fast_join_str(&dsnAttributes, SL(";"), &dsnParts); - ZEPHIR_INIT_VAR(&_11); - object_init_ex(&_11, php_pdo_get_dbh_ce()); - zephir_read_property(&_12, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_13); - ZEPHIR_CONCAT_VSV(&_13, &_12, ":", &dsnAttributes); - ZEPHIR_CALL_METHOD(NULL, &_11, "__construct", NULL, 0, &_13, &username, &password, &options); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "gethasmany", NULL, 0, model); zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("pdo"), &_11); - RETURN_MM_BOOL(1); + zephir_fast_array_merge(return_value, &_0, &_1); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, convertBoundParams) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getRelations) { + zval allRelations; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, setOrder = 0; - zval params; - zval *sql_param = NULL, *params_param = NULL, boundSql, placeHolders, bindPattern, matches, placeMatch, value, _0, _1, _2, *_3$$3, _4$$3, _9$$3, _5$$4, _6$$5, _7$$8, _8$$9; - zval sql; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *modelName_param = NULL, entityName, relations, relation, _0, _3, _6, _9, _12, *_1$$3, _2$$3, *_4$$6, _5$$6, *_7$$9, _8$$9, *_10$$12, _11$$12, *_13$$15, _14$$15; + zval modelName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&boundSql); - ZVAL_UNDEF(&placeHolders); - ZVAL_UNDEF(&bindPattern); - ZVAL_UNDEF(&matches); - ZVAL_UNDEF(&placeMatch); - ZVAL_UNDEF(&value); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&entityName); + ZVAL_UNDEF(&relations); + ZVAL_UNDEF(&relation); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_9$$3); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_7$$8); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_5$$6); ZVAL_UNDEF(&_8$$9); - ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&_11$$12); + ZVAL_UNDEF(&_14$$15); + ZVAL_UNDEF(&allRelations); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(sql) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(params) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(modelName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &sql_param, ¶ms_param); - if (UNEXPECTED(Z_TYPE_P(sql_param) != IS_STRING && Z_TYPE_P(sql_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sql' must be of the type string")); + zephir_fetch_params(1, 1, 0, &modelName_param); + if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(sql_param) == IS_STRING)) { - zephir_get_strval(&sql, sql_param); - } else { - ZEPHIR_INIT_VAR(&sql); - } - if (!params_param) { - ZEPHIR_INIT_VAR(¶ms); - array_init(¶ms); + if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { + zephir_get_strval(&modelName, modelName_param); } else { - zephir_get_arrval(¶ms, params_param); + ZEPHIR_INIT_VAR(&modelName); } - ZEPHIR_INIT_VAR(&placeHolders); - array_init(&placeHolders); - ZEPHIR_INIT_VAR(&bindPattern); - ZVAL_STRING(&bindPattern, "/\\?([0-9]+)|:([a-zA-Z0-9_]+):/"); - ZEPHIR_INIT_VAR(&matches); - ZVAL_NULL(&matches); - setOrder = 2; - ZVAL_LONG(&_0, setOrder); - ZEPHIR_INIT_VAR(&_1); - ZVAL_LONG(&_2, setOrder); - zephir_preg_match(&_1, &bindPattern, &sql, &matches, 1, zephir_get_intval(&_0) , 0 ); - if (zephir_is_true(&_1)) { - zephir_is_iterable(&matches, 0, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 373); - if (Z_TYPE_P(&matches) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&matches), _3$$3) + ZEPHIR_INIT_VAR(&entityName); + zephir_fast_strtolower(&entityName, &modelName); + ZEPHIR_INIT_VAR(&allRelations); + array_init(&allRelations); + ZEPHIR_OBS_VAR(&relations); + zephir_read_property(&_0, this_ptr, ZEND_STRL("belongsToSingle"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_fetch(&relations, &_0, &entityName, 0)) { + zephir_is_iterable(&relations, 0, "phalcon/Mvc/Model/Manager.zep", 1901); + if (Z_TYPE_P(&relations) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relations), _1$$3) { - ZEPHIR_INIT_NVAR(&placeMatch); - ZVAL_COPY(&placeMatch, _3$$3); - ZEPHIR_OBS_NVAR(&value); - zephir_array_fetch_long(&_5$$4, &placeMatch, 1, PH_READONLY, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 356); - if (!(zephir_array_isset_fetch(&value, ¶ms, &_5$$4, 0))) { - if (UNEXPECTED(!(zephir_array_isset_long(&placeMatch, 2)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Matched parameter wasn't found in parameters list", "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 360); - return; - } - ZEPHIR_OBS_NVAR(&value); - zephir_array_fetch_long(&_6$$5, &placeMatch, 2, PH_READONLY, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 363); - if (UNEXPECTED(!(zephir_array_isset_fetch(&value, ¶ms, &_6$$5, 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Matched parameter wasn't found in parameters list", "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 366); - return; - } + ZEPHIR_INIT_NVAR(&relation); + ZVAL_COPY(&relation, _1$$3); + zephir_array_append(&allRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1899); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &relations, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2$$3, &relations, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2$$3)) { + break; } - zephir_array_append(&placeHolders, &value, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 370); + ZEPHIR_CALL_METHOD(&relation, &relations, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_append(&allRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1899); + ZEPHIR_CALL_METHOD(NULL, &relations, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&relation); + } + ZEPHIR_OBS_NVAR(&relations); + zephir_read_property(&_3, this_ptr, ZEND_STRL("hasManySingle"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_fetch(&relations, &_3, &entityName, 0)) { + zephir_is_iterable(&relations, 0, "phalcon/Mvc/Model/Manager.zep", 1910); + if (Z_TYPE_P(&relations) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relations), _4$$6) + { + ZEPHIR_INIT_NVAR(&relation); + ZVAL_COPY(&relation, _4$$6); + zephir_array_append(&allRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1908); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &matches, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &relations, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_4$$3, &matches, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_5$$6, &relations, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_4$$3)) { + if (!zend_is_true(&_5$$6)) { break; } - ZEPHIR_CALL_METHOD(&placeMatch, &matches, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&relation, &relations, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&value); - zephir_array_fetch_long(&_7$$8, &placeMatch, 1, PH_READONLY, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 356); - if (!(zephir_array_isset_fetch(&value, ¶ms, &_7$$8, 0))) { - if (UNEXPECTED(!(zephir_array_isset_long(&placeMatch, 2)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Matched parameter wasn't found in parameters list", "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 360); - return; - } - ZEPHIR_OBS_NVAR(&value); - zephir_array_fetch_long(&_8$$9, &placeMatch, 2, PH_READONLY, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 363); - if (UNEXPECTED(!(zephir_array_isset_fetch(&value, ¶ms, &_8$$9, 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Matched parameter wasn't found in parameters list", "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 366); - return; - } - } - zephir_array_append(&placeHolders, &value, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 370); - ZEPHIR_CALL_METHOD(NULL, &matches, "next", NULL, 0); + zephir_array_append(&allRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1908); + ZEPHIR_CALL_METHOD(NULL, &relations, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&placeMatch); - ZEPHIR_INIT_VAR(&_9$$3); - ZVAL_STRING(&_9$$3, "?"); - ZEPHIR_CALL_FUNCTION(&boundSql, "preg_replace", NULL, 50, &bindPattern, &_9$$3, &sql); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(&boundSql, &sql); + ZEPHIR_INIT_NVAR(&relation); } - zephir_create_array(return_value, 2, 0); - zephir_array_update_string(return_value, SL("sql"), &boundSql, PH_COPY | PH_SEPARATE); - zephir_array_update_string(return_value, SL("params"), &placeHolders, PH_COPY | PH_SEPARATE); - RETURN_MM(); + ZEPHIR_OBS_NVAR(&relations); + zephir_read_property(&_6, this_ptr, ZEND_STRL("hasOneSingle"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_fetch(&relations, &_6, &entityName, 0)) { + zephir_is_iterable(&relations, 0, "phalcon/Mvc/Model/Manager.zep", 1919); + if (Z_TYPE_P(&relations) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relations), _7$$9) + { + ZEPHIR_INIT_NVAR(&relation); + ZVAL_COPY(&relation, _7$$9); + zephir_array_append(&allRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1917); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &relations, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_8$$9, &relations, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_8$$9)) { + break; + } + ZEPHIR_CALL_METHOD(&relation, &relations, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_append(&allRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1917); + ZEPHIR_CALL_METHOD(NULL, &relations, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&relation); + } + ZEPHIR_OBS_NVAR(&relations); + zephir_read_property(&_9, this_ptr, ZEND_STRL("hasOneThroughSingle"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_fetch(&relations, &_9, &entityName, 0)) { + zephir_is_iterable(&relations, 0, "phalcon/Mvc/Model/Manager.zep", 1928); + if (Z_TYPE_P(&relations) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relations), _10$$12) + { + ZEPHIR_INIT_NVAR(&relation); + ZVAL_COPY(&relation, _10$$12); + zephir_array_append(&allRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1926); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &relations, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_11$$12, &relations, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_11$$12)) { + break; + } + ZEPHIR_CALL_METHOD(&relation, &relations, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_append(&allRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1926); + ZEPHIR_CALL_METHOD(NULL, &relations, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&relation); + } + ZEPHIR_OBS_NVAR(&relations); + zephir_read_property(&_12, this_ptr, ZEND_STRL("hasManyToManySingle"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_fetch(&relations, &_12, &entityName, 0)) { + zephir_is_iterable(&relations, 0, "phalcon/Mvc/Model/Manager.zep", 1937); + if (Z_TYPE_P(&relations) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relations), _13$$15) + { + ZEPHIR_INIT_NVAR(&relation); + ZVAL_COPY(&relation, _13$$15); + zephir_array_append(&allRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1935); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &relations, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_14$$15, &relations, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_14$$15)) { + break; + } + ZEPHIR_CALL_METHOD(&relation, &relations, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_append(&allRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1935); + ZEPHIR_CALL_METHOD(NULL, &relations, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&relation); + } + RETURN_CTOR(&allRelations); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, escapeString) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getRelationsBetween) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *str_param = NULL, _0; - zval str; + zval *first_param = NULL, *second_param = NULL, relations, _0, _1, _2, _3, _4, _5, _6, _7; + zval first, second, keyRelation; zval *this_ptr = getThis(); - ZVAL_UNDEF(&str); + ZVAL_UNDEF(&first); + ZVAL_UNDEF(&second); + ZVAL_UNDEF(&keyRelation); + ZVAL_UNDEF(&relations); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(str) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(first) + Z_PARAM_STR(second) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &str_param); - zephir_get_strval(&str, str_param); + zephir_fetch_params(1, 2, 0, &first_param, &second_param); + if (UNEXPECTED(Z_TYPE_P(first_param) != IS_STRING && Z_TYPE_P(first_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'first' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(first_param) == IS_STRING)) { + zephir_get_strval(&first, first_param); + } else { + ZEPHIR_INIT_VAR(&first); + } + if (UNEXPECTED(Z_TYPE_P(second_param) != IS_STRING && Z_TYPE_P(second_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'second' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(second_param) == IS_STRING)) { + zephir_get_strval(&second, second_param); + } else { + ZEPHIR_INIT_VAR(&second); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "quote", NULL, 0, &str); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_VAR(&_0); + zephir_fast_strtolower(&_0, &first); + ZEPHIR_INIT_VAR(&_1); + zephir_fast_strtolower(&_1, &second); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_CONCAT_VSV(&_2, &_0, "$", &_1); + zephir_get_strval(&keyRelation, &_2); + ZEPHIR_OBS_VAR(&relations); + zephir_read_property(&_3, this_ptr, ZEND_STRL("belongsTo"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_fetch(&relations, &_3, &keyRelation, 0)) { + RETURN_CCTOR(&relations); + } + ZEPHIR_OBS_NVAR(&relations); + zephir_read_property(&_4, this_ptr, ZEND_STRL("hasMany"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_fetch(&relations, &_4, &keyRelation, 0)) { + RETURN_CCTOR(&relations); + } + ZEPHIR_OBS_NVAR(&relations); + zephir_read_property(&_5, this_ptr, ZEND_STRL("hasOne"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_fetch(&relations, &_5, &keyRelation, 0)) { + RETURN_CCTOR(&relations); + } + ZEPHIR_OBS_NVAR(&relations); + zephir_read_property(&_6, this_ptr, ZEND_STRL("hasOneThrough"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_fetch(&relations, &_6, &keyRelation, 0)) { + RETURN_CCTOR(&relations); + } + ZEPHIR_OBS_NVAR(&relations); + zephir_read_property(&_7, this_ptr, ZEND_STRL("hasManyToMany"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_fetch(&relations, &_7, &keyRelation, 0)) { + RETURN_CCTOR(&relations); + } + RETURN_MM_BOOL(0); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, execute) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, createQuery) { + zval _6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval bindParams, bindTypes; - zval *sqlStatement_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, eventsManager, affectedRows, pdo, newStatement, statement, _0, _1$$3, _2$$3, _3$$9; - zval sqlStatement; + zephir_fcall_cache_entry *_3 = NULL; + zval *phql_param = NULL, container, query, _0, _5, _7, _1$$3, _2$$3, _4$$3; + zval phql; zval *this_ptr = getThis(); - ZVAL_UNDEF(&sqlStatement); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&affectedRows); - ZVAL_UNDEF(&pdo); - ZVAL_UNDEF(&newStatement); - ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&phql); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&query); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_7); ZVAL_UNDEF(&_1$$3); ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$9); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(sqlStatement) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(bindParams) - Z_PARAM_ARRAY(bindTypes) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(phql) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &sqlStatement_param, &bindParams_param, &bindTypes_param); - if (UNEXPECTED(Z_TYPE_P(sqlStatement_param) != IS_STRING && Z_TYPE_P(sqlStatement_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlStatement' must be of the type string")); + zephir_fetch_params(1, 1, 0, &phql_param); + if (UNEXPECTED(Z_TYPE_P(phql_param) != IS_STRING && Z_TYPE_P(phql_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'phql' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(sqlStatement_param) == IS_STRING)) { - zephir_get_strval(&sqlStatement, sqlStatement_param); - } else { - ZEPHIR_INIT_VAR(&sqlStatement); - } - if (!bindParams_param) { - ZEPHIR_INIT_VAR(&bindParams); - array_init(&bindParams); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindParams, bindParams_param); - } - if (!bindTypes_param) { - ZEPHIR_INIT_VAR(&bindTypes); - array_init(&bindTypes); + if (EXPECTED(Z_TYPE_P(phql_param) == IS_STRING)) { + zephir_get_strval(&phql, phql_param); } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindTypes, bindTypes_param); + ZEPHIR_INIT_VAR(&phql); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_0); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlStatement"), &sqlStatement); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlVariables"), &bindParams); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlBindTypes"), &bindTypes); - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "db:beforeQuery"); - ZEPHIR_CALL_METHOD(&_1$$3, &eventsManager, "fire", NULL, 0, &_2$$3, this_ptr); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_1$$3)) { - RETURN_MM_BOOL(0); - } - } - ZEPHIR_INIT_VAR(&affectedRows); - ZVAL_LONG(&affectedRows, 0); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "preparerealsql", NULL, 0, &sqlStatement, &bindParams); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&pdo, &_0); - if (!(ZEPHIR_IS_EMPTY(&bindParams))) { - ZEPHIR_CALL_METHOD(&statement, &pdo, "prepare", NULL, 0, &sqlStatement); + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "the services related to the ORM"); + ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_mvc_model_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); zephir_check_call_status(); - if (Z_TYPE_P(&statement) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&newStatement, this_ptr, "executeprepared", NULL, 0, &statement, &bindParams, &bindTypes); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&affectedRows, &newStatement, "rowcount", NULL, 0); - zephir_check_call_status(); - } - } else { - ZEPHIR_CALL_METHOD(&affectedRows, &pdo, "exec", NULL, 0, &sqlStatement); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model/Manager.zep", 2004); + ZEPHIR_MM_RESTORE(); + return; } - if (Z_TYPE_P(&affectedRows) == IS_LONG) { - zephir_update_property_zval(this_ptr, ZEND_STRL("affectedRows"), &affectedRows); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_3$$9); - ZVAL_STRING(&_3$$9, "db:afterQuery"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_3$$9, this_ptr); - zephir_check_call_status(); - } - } - RETURN_MM_BOOL(1); + ZEPHIR_INIT_VAR(&_6); + zephir_create_array(&_6, 2, 0); + zephir_array_fast_append(&_6, &phql); + zephir_array_fast_append(&_6, &container); + ZEPHIR_INIT_VAR(&_7); + ZVAL_STRING(&_7, "Phalcon\\Mvc\\Model\\Query"); + ZEPHIR_CALL_METHOD(&_5, &container, "get", NULL, 0, &_7, &_6); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&query, &_5); + zephir_update_property_zval(this_ptr, ZEND_STRL("lastQuery"), &query); + RETURN_CCTOR(&query); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, executePrepared) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, executeQuery) { - zval _5$$8, _8$$13, _25$$39, _27$$44; - zend_bool _4$$3, _24$$34; - zend_string *_3, *_13$$22, *_21$$31, *_31$$53, *_39$$62; - zend_ulong _2, _12$$22, _20$$31, _30$$53, _38$$62; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_7 = NULL, *_9 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval placeholders; - zval *statement, statement_sub, *placeholders_param = NULL, *dataTypes, dataTypes_sub, wildcard, value, type, castValue, parameter, position, itemValue, *_0, _1, _6$$12, *_10$$22, _11$$22, _14$$24, _15$$25, _16$$27, _17$$28, *_18$$31, _19$$31, _22$$32, _23$$33, _26$$43, *_28$$53, _29$$53, _32$$55, _33$$56, _34$$58, _35$$59, *_36$$62, _37$$62, _40$$63, _41$$64; + zval *phql_param = NULL, *placeholders = NULL, placeholders_sub, *types = NULL, types_sub, __$null, query; + zval phql; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement_sub); - ZVAL_UNDEF(&dataTypes_sub); - ZVAL_UNDEF(&wildcard); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&castValue); - ZVAL_UNDEF(¶meter); - ZVAL_UNDEF(&position); - ZVAL_UNDEF(&itemValue); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_6$$12); - ZVAL_UNDEF(&_11$$22); - ZVAL_UNDEF(&_14$$24); - ZVAL_UNDEF(&_15$$25); - ZVAL_UNDEF(&_16$$27); - ZVAL_UNDEF(&_17$$28); - ZVAL_UNDEF(&_19$$31); - ZVAL_UNDEF(&_22$$32); - ZVAL_UNDEF(&_23$$33); - ZVAL_UNDEF(&_26$$43); - ZVAL_UNDEF(&_29$$53); - ZVAL_UNDEF(&_32$$55); - ZVAL_UNDEF(&_33$$56); - ZVAL_UNDEF(&_34$$58); - ZVAL_UNDEF(&_35$$59); - ZVAL_UNDEF(&_37$$62); - ZVAL_UNDEF(&_40$$63); - ZVAL_UNDEF(&_41$$64); - ZVAL_UNDEF(&placeholders); - ZVAL_UNDEF(&_5$$8); - ZVAL_UNDEF(&_8$$13); - ZVAL_UNDEF(&_25$$39); - ZVAL_UNDEF(&_27$$44); + ZVAL_UNDEF(&phql); + ZVAL_UNDEF(&placeholders_sub); + ZVAL_UNDEF(&types_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&query); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_OBJECT_OF_CLASS(statement, zephir_get_internal_ce(SL("pdostatement"))) - Z_PARAM_ARRAY(placeholders) - Z_PARAM_ZVAL(dataTypes) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(phql) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(placeholders) + Z_PARAM_ZVAL_OR_NULL(types) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &statement, &placeholders_param, &dataTypes); - ZEPHIR_OBS_COPY_OR_DUP(&placeholders, placeholders_param); - + zephir_fetch_params(1, 1, 2, &phql_param, &placeholders, &types); + if (UNEXPECTED(Z_TYPE_P(phql_param) != IS_STRING && Z_TYPE_P(phql_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'phql' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(phql_param) == IS_STRING)) { + zephir_get_strval(&phql, phql_param); + } else { + ZEPHIR_INIT_VAR(&phql); + } + if (!placeholders) { + placeholders = &placeholders_sub; + placeholders = &__$null; + } + if (!types) { + types = &types_sub; + types = &__$null; + } - zephir_is_iterable(&placeholders, 0, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 586); - if (Z_TYPE_P(&placeholders) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&placeholders), _2, _3, _0) - { - ZEPHIR_INIT_NVAR(&wildcard); - if (_3 != NULL) { - ZVAL_STR_COPY(&wildcard, _3); - } else { - ZVAL_LONG(&wildcard, _2); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0); - if (Z_TYPE_P(&wildcard) == IS_LONG) { - ZEPHIR_INIT_NVAR(¶meter); - ZVAL_LONG(¶meter, (zephir_get_numberval(&wildcard) + 1)); - } else if (Z_TYPE_P(&wildcard) == IS_STRING) { - ZEPHIR_CPY_WRT(¶meter, &wildcard); - } else { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid bind parameter (1)", "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 506); - return; - } - _4$$3 = Z_TYPE_P(dataTypes) == IS_ARRAY; - if (_4$$3) { - ZEPHIR_OBS_NVAR(&type); - _4$$3 = zephir_array_isset_fetch(&type, dataTypes, &wildcard, 0); - } - if (_4$$3) { - if (ZEPHIR_IS_LONG(&type, 32)) { - zephir_cast_to_string(&_5$$8, &value); - ZEPHIR_CPY_WRT(&castValue, &_5$$8); - ZEPHIR_INIT_NVAR(&type); - ZVAL_LONG(&type, 1024); - } else { - if (ZEPHIR_GLOBAL(db).force_casting) { - if (Z_TYPE_P(&value) != IS_ARRAY) { - do { - if (ZEPHIR_IS_LONG(&type, 1)) { - ZVAL_LONG(&_6$$12, 10); - ZEPHIR_CALL_FUNCTION(&castValue, "intval", &_7, 51, &value, &_6$$12); - zephir_check_call_status(); - break; - } - if (ZEPHIR_IS_LONG(&type, 2)) { - zephir_cast_to_string(&_8$$13, &value); - ZEPHIR_CPY_WRT(&castValue, &_8$$13); - break; - } - if (ZEPHIR_IS_LONG(&type, 0)) { - ZEPHIR_INIT_NVAR(&castValue); - ZVAL_NULL(&castValue); - break; - } - if (ZEPHIR_IS_LONG(&type, 5)) { - ZEPHIR_INIT_NVAR(&castValue); - ZVAL_BOOL(&castValue, zephir_get_boolval(&value)); - break; - } - ZEPHIR_CPY_WRT(&castValue, &value); - break; - } while(0); - } else { - ZEPHIR_CPY_WRT(&castValue, &value); - } - } else { - ZEPHIR_CPY_WRT(&castValue, &value); - } - } - if (Z_TYPE_P(&castValue) != IS_ARRAY) { - if (ZEPHIR_IS_LONG(&type, 1024)) { - ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, ¶meter, &castValue); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, ¶meter, &castValue, &type); - zephir_check_call_status(); - } - } else { - zephir_is_iterable(&castValue, 0, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 574); - if (Z_TYPE_P(&castValue) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&castValue), _12$$22, _13$$22, _10$$22) - { - ZEPHIR_INIT_NVAR(&position); - if (_13$$22 != NULL) { - ZVAL_STR_COPY(&position, _13$$22); - } else { - ZVAL_LONG(&position, _12$$22); - } - ZEPHIR_INIT_NVAR(&itemValue); - ZVAL_COPY(&itemValue, _10$$22); - if (ZEPHIR_IS_LONG(&type, 1024)) { - ZEPHIR_INIT_NVAR(&_14$$24); - ZEPHIR_CONCAT_VV(&_14$$24, ¶meter, &position); - ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_14$$24, &itemValue); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&_15$$25); - ZEPHIR_CONCAT_VV(&_15$$25, ¶meter, &position); - ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_15$$25, &itemValue, &type); - zephir_check_call_status(); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &castValue, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_11$$22, &castValue, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_11$$22)) { - break; - } - ZEPHIR_CALL_METHOD(&position, &castValue, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&itemValue, &castValue, "current", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&type, 1024)) { - ZEPHIR_INIT_NVAR(&_16$$27); - ZEPHIR_CONCAT_VV(&_16$$27, ¶meter, &position); - ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_16$$27, &itemValue); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&_17$$28); - ZEPHIR_CONCAT_VV(&_17$$28, ¶meter, &position); - ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_17$$28, &itemValue, &type); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, &castValue, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&itemValue); - ZEPHIR_INIT_NVAR(&position); - } - } else { - if (Z_TYPE_P(&value) != IS_ARRAY) { - ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, ¶meter, &value); - zephir_check_call_status(); - } else { - zephir_is_iterable(&value, 0, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 582); - if (Z_TYPE_P(&value) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&value), _20$$31, _21$$31, _18$$31) - { - ZEPHIR_INIT_NVAR(&position); - if (_21$$31 != NULL) { - ZVAL_STR_COPY(&position, _21$$31); - } else { - ZVAL_LONG(&position, _20$$31); - } - ZEPHIR_INIT_NVAR(&itemValue); - ZVAL_COPY(&itemValue, _18$$31); - ZEPHIR_INIT_NVAR(&_22$$32); - ZEPHIR_CONCAT_VV(&_22$$32, ¶meter, &position); - ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_22$$32, &itemValue); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &value, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_19$$31, &value, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_19$$31)) { - break; - } - ZEPHIR_CALL_METHOD(&position, &value, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&itemValue, &value, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_23$$33); - ZEPHIR_CONCAT_VV(&_23$$33, ¶meter, &position); - ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_23$$33, &itemValue); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &value, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&itemValue); - ZEPHIR_INIT_NVAR(&position); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &placeholders, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(&query, this_ptr, "createquery", NULL, 0, &phql); + zephir_check_call_status(); + if (Z_TYPE_P(placeholders) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(NULL, &query, "setbindparams", NULL, 0, placeholders); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &placeholders, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&wildcard, &placeholders, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &placeholders, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&wildcard) == IS_LONG) { - ZEPHIR_INIT_NVAR(¶meter); - ZVAL_LONG(¶meter, (zephir_get_numberval(&wildcard) + 1)); - } else if (Z_TYPE_P(&wildcard) == IS_STRING) { - ZEPHIR_CPY_WRT(¶meter, &wildcard); - } else { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid bind parameter (1)", "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 506); - return; - } - _24$$34 = Z_TYPE_P(dataTypes) == IS_ARRAY; - if (_24$$34) { - ZEPHIR_OBS_NVAR(&type); - _24$$34 = zephir_array_isset_fetch(&type, dataTypes, &wildcard, 0); - } - if (_24$$34) { - if (ZEPHIR_IS_LONG(&type, 32)) { - zephir_cast_to_string(&_25$$39, &value); - ZEPHIR_CPY_WRT(&castValue, &_25$$39); - ZEPHIR_INIT_NVAR(&type); - ZVAL_LONG(&type, 1024); - } else { - if (ZEPHIR_GLOBAL(db).force_casting) { - if (Z_TYPE_P(&value) != IS_ARRAY) { - do { - if (ZEPHIR_IS_LONG(&type, 1)) { - ZVAL_LONG(&_26$$43, 10); - ZEPHIR_CALL_FUNCTION(&castValue, "intval", &_7, 51, &value, &_26$$43); - zephir_check_call_status(); - break; - } - if (ZEPHIR_IS_LONG(&type, 2)) { - zephir_cast_to_string(&_27$$44, &value); - ZEPHIR_CPY_WRT(&castValue, &_27$$44); - break; - } - if (ZEPHIR_IS_LONG(&type, 0)) { - ZEPHIR_INIT_NVAR(&castValue); - ZVAL_NULL(&castValue); - break; - } - if (ZEPHIR_IS_LONG(&type, 5)) { - ZEPHIR_INIT_NVAR(&castValue); - ZVAL_BOOL(&castValue, zephir_get_boolval(&value)); - break; - } - ZEPHIR_CPY_WRT(&castValue, &value); - break; - } while(0); - - } else { - ZEPHIR_CPY_WRT(&castValue, &value); - } - } else { - ZEPHIR_CPY_WRT(&castValue, &value); - } - } - if (Z_TYPE_P(&castValue) != IS_ARRAY) { - if (ZEPHIR_IS_LONG(&type, 1024)) { - ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, ¶meter, &castValue); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, ¶meter, &castValue, &type); - zephir_check_call_status(); - } - } else { - zephir_is_iterable(&castValue, 0, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 574); - if (Z_TYPE_P(&castValue) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&castValue), _30$$53, _31$$53, _28$$53) - { - ZEPHIR_INIT_NVAR(&position); - if (_31$$53 != NULL) { - ZVAL_STR_COPY(&position, _31$$53); - } else { - ZVAL_LONG(&position, _30$$53); - } - ZEPHIR_INIT_NVAR(&itemValue); - ZVAL_COPY(&itemValue, _28$$53); - if (ZEPHIR_IS_LONG(&type, 1024)) { - ZEPHIR_INIT_NVAR(&_32$$55); - ZEPHIR_CONCAT_VV(&_32$$55, ¶meter, &position); - ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_32$$55, &itemValue); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&_33$$56); - ZEPHIR_CONCAT_VV(&_33$$56, ¶meter, &position); - ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_33$$56, &itemValue, &type); - zephir_check_call_status(); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &castValue, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_29$$53, &castValue, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_29$$53)) { - break; - } - ZEPHIR_CALL_METHOD(&position, &castValue, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&itemValue, &castValue, "current", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&type, 1024)) { - ZEPHIR_INIT_NVAR(&_34$$58); - ZEPHIR_CONCAT_VV(&_34$$58, ¶meter, &position); - ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_34$$58, &itemValue); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&_35$$59); - ZEPHIR_CONCAT_VV(&_35$$59, ¶meter, &position); - ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_35$$59, &itemValue, &type); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, &castValue, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&itemValue); - ZEPHIR_INIT_NVAR(&position); - } - } else { - if (Z_TYPE_P(&value) != IS_ARRAY) { - ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, ¶meter, &value); - zephir_check_call_status(); - } else { - zephir_is_iterable(&value, 0, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 582); - if (Z_TYPE_P(&value) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&value), _38$$62, _39$$62, _36$$62) - { - ZEPHIR_INIT_NVAR(&position); - if (_39$$62 != NULL) { - ZVAL_STR_COPY(&position, _39$$62); - } else { - ZVAL_LONG(&position, _38$$62); - } - ZEPHIR_INIT_NVAR(&itemValue); - ZVAL_COPY(&itemValue, _36$$62); - ZEPHIR_INIT_NVAR(&_40$$63); - ZEPHIR_CONCAT_VV(&_40$$63, ¶meter, &position); - ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_40$$63, &itemValue); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &value, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_37$$62, &value, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_37$$62)) { - break; - } - ZEPHIR_CALL_METHOD(&position, &value, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&itemValue, &value, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_41$$64); - ZEPHIR_CONCAT_VV(&_41$$64, ¶meter, &position); - ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_41$$64, &itemValue); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &value, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&itemValue); - ZEPHIR_INIT_NVAR(&position); - } - } - ZEPHIR_CALL_METHOD(NULL, &placeholders, "next", NULL, 0); - zephir_check_call_status(); - } } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&wildcard); - ZEPHIR_CALL_METHOD(NULL, statement, "execute", NULL, 0); + if (Z_TYPE_P(types) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(NULL, &query, "setbindtypes", NULL, 0, types); + zephir_check_call_status(); + } + ZEPHIR_RETURN_CALL_METHOD(&query, "execute", NULL, 0); zephir_check_call_status(); - RETVAL_ZVAL(statement, 1, 0); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, getErrorInfo) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, createBuilder) { - zval _0; + zval _6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_3 = NULL; + zval *params = NULL, params_sub, __$null, container, _0, _5, _7, _1$$3, _2$$3, _4$$3; zval *this_ptr = getThis(); + ZVAL_UNDEF(¶ms_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&container); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_6); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(params) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, ¶ms); + if (!params) { + params = ¶ms_sub; + params = &__$null; + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "errorinfo", NULL, 0); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "the services related to the ORM"); + ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_mvc_model_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model/Manager.zep", 2083); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_VAR(&_6); + zephir_create_array(&_6, 2, 0); + zephir_array_fast_append(&_6, params); + zephir_array_fast_append(&_6, &container); + ZEPHIR_INIT_VAR(&_7); + ZVAL_STRING(&_7, "Phalcon\\Mvc\\Model\\Query\\Builder"); + ZEPHIR_CALL_METHOD(&_5, &container, "get", NULL, 0, &_7, &_6); zephir_check_call_status(); - RETURN_MM(); + RETURN_CCTOR(&_5); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, getInternalHandler) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, getLastQuery) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "pdo"); + RETURN_MEMBER(getThis(), "lastQuery"); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, getTransactionLevel) +static PHP_METHOD(Phalcon_Mvc_Model_Manager, __destruct) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "transactionLevel"); + ZEPHIR_MM_GROW(); + + phalcon_orm_destroy_cache(); + ZEPHIR_CALL_CE_STATIC(NULL, phalcon_mvc_model_query_ce, "clean", &_0, 0); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, isUnderTransaction) +zend_object *zephir_init_properties_Phalcon_Mvc_Model_Manager(zend_class_entry *class_type) +{ + zval _0, _2, _4, _6, _8, _10, _12, _14, _16, _18, _20, _22, _24, _26, _28, _30, _32, _34, _36, _38, _40, _42, _1$$3, _3$$4, _5$$5, _7$$6, _9$$7, _11$$8, _13$$9, _15$$10, _17$$11, _19$$12, _21$$13, _23$$14, _25$$15, _27$$16, _29$$17, _31$$18, _33$$19, _35$$20, _37$$21, _39$$22, _41$$23, _43$$24; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_16); + ZVAL_UNDEF(&_18); + ZVAL_UNDEF(&_20); + ZVAL_UNDEF(&_22); + ZVAL_UNDEF(&_24); + ZVAL_UNDEF(&_26); + ZVAL_UNDEF(&_28); + ZVAL_UNDEF(&_30); + ZVAL_UNDEF(&_32); + ZVAL_UNDEF(&_34); + ZVAL_UNDEF(&_36); + ZVAL_UNDEF(&_38); + ZVAL_UNDEF(&_40); + ZVAL_UNDEF(&_42); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_9$$7); + ZVAL_UNDEF(&_11$$8); + ZVAL_UNDEF(&_13$$9); + ZVAL_UNDEF(&_15$$10); + ZVAL_UNDEF(&_17$$11); + ZVAL_UNDEF(&_19$$12); + ZVAL_UNDEF(&_21$$13); + ZVAL_UNDEF(&_23$$14); + ZVAL_UNDEF(&_25$$15); + ZVAL_UNDEF(&_27$$16); + ZVAL_UNDEF(&_29$$17); + ZVAL_UNDEF(&_31$$18); + ZVAL_UNDEF(&_33$$19); + ZVAL_UNDEF(&_35$$20); + ZVAL_UNDEF(&_37$$21); + ZVAL_UNDEF(&_39$$22); + ZVAL_UNDEF(&_41$$23); + ZVAL_UNDEF(&_43$$24); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("reusable"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("reusable"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("writeConnectionServices"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("writeConnectionServices"), &_3$$4); + } + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("schemas"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_4) == IS_NULL) { + ZEPHIR_INIT_VAR(&_5$$5); + array_init(&_5$$5); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("schemas"), &_5$$5); + } + zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("sources"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_6) == IS_NULL) { + ZEPHIR_INIT_VAR(&_7$$6); + array_init(&_7$$6); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("sources"), &_7$$6); + } + zephir_read_property_ex(&_8, this_ptr, ZEND_STRL("readConnectionServices"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_8) == IS_NULL) { + ZEPHIR_INIT_VAR(&_9$$7); + array_init(&_9$$7); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("readConnectionServices"), &_9$$7); + } + zephir_read_property_ex(&_10, this_ptr, ZEND_STRL("modelVisibility"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_10) == IS_NULL) { + ZEPHIR_INIT_VAR(&_11$$8); + array_init(&_11$$8); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("modelVisibility"), &_11$$8); + } + zephir_read_property_ex(&_12, this_ptr, ZEND_STRL("keepSnapshots"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_12) == IS_NULL) { + ZEPHIR_INIT_VAR(&_13$$9); + array_init(&_13$$9); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("keepSnapshots"), &_13$$9); + } + zephir_read_property_ex(&_14, this_ptr, ZEND_STRL("initialized"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_14) == IS_NULL) { + ZEPHIR_INIT_VAR(&_15$$10); + array_init(&_15$$10); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("initialized"), &_15$$10); + } + zephir_read_property_ex(&_16, this_ptr, ZEND_STRL("hasOneThroughSingle"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_16) == IS_NULL) { + ZEPHIR_INIT_VAR(&_17$$11); + array_init(&_17$$11); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("hasOneThroughSingle"), &_17$$11); + } + zephir_read_property_ex(&_18, this_ptr, ZEND_STRL("hasOneThrough"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_18) == IS_NULL) { + ZEPHIR_INIT_VAR(&_19$$12); + array_init(&_19$$12); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("hasOneThrough"), &_19$$12); + } + zephir_read_property_ex(&_20, this_ptr, ZEND_STRL("hasOneSingle"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_20) == IS_NULL) { + ZEPHIR_INIT_VAR(&_21$$13); + array_init(&_21$$13); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("hasOneSingle"), &_21$$13); + } + zephir_read_property_ex(&_22, this_ptr, ZEND_STRL("hasOne"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_22) == IS_NULL) { + ZEPHIR_INIT_VAR(&_23$$14); + array_init(&_23$$14); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("hasOne"), &_23$$14); + } + zephir_read_property_ex(&_24, this_ptr, ZEND_STRL("hasManyToManySingle"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_24) == IS_NULL) { + ZEPHIR_INIT_VAR(&_25$$15); + array_init(&_25$$15); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("hasManyToManySingle"), &_25$$15); + } + zephir_read_property_ex(&_26, this_ptr, ZEND_STRL("hasManyToMany"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_26) == IS_NULL) { + ZEPHIR_INIT_VAR(&_27$$16); + array_init(&_27$$16); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("hasManyToMany"), &_27$$16); + } + zephir_read_property_ex(&_28, this_ptr, ZEND_STRL("hasManySingle"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_28) == IS_NULL) { + ZEPHIR_INIT_VAR(&_29$$17); + array_init(&_29$$17); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("hasManySingle"), &_29$$17); + } + zephir_read_property_ex(&_30, this_ptr, ZEND_STRL("hasMany"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_30) == IS_NULL) { + ZEPHIR_INIT_VAR(&_31$$18); + array_init(&_31$$18); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("hasMany"), &_31$$18); + } + zephir_read_property_ex(&_32, this_ptr, ZEND_STRL("dynamicUpdate"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_32) == IS_NULL) { + ZEPHIR_INIT_VAR(&_33$$19); + array_init(&_33$$19); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("dynamicUpdate"), &_33$$19); + } + zephir_read_property_ex(&_34, this_ptr, ZEND_STRL("customEventsManager"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_34) == IS_NULL) { + ZEPHIR_INIT_VAR(&_35$$20); + array_init(&_35$$20); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("customEventsManager"), &_35$$20); + } + zephir_read_property_ex(&_36, this_ptr, ZEND_STRL("belongsToSingle"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_36) == IS_NULL) { + ZEPHIR_INIT_VAR(&_37$$21); + array_init(&_37$$21); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("belongsToSingle"), &_37$$21); + } + zephir_read_property_ex(&_38, this_ptr, ZEND_STRL("belongsTo"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_38) == IS_NULL) { + ZEPHIR_INIT_VAR(&_39$$22); + array_init(&_39$$22); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("belongsTo"), &_39$$22); + } + zephir_read_property_ex(&_40, this_ptr, ZEND_STRL("behaviors"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_40) == IS_NULL) { + ZEPHIR_INIT_VAR(&_41$$23); + array_init(&_41$$23); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("behaviors"), &_41$$23); + } + zephir_read_property_ex(&_42, this_ptr, ZEND_STRL("aliases"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_42) == IS_NULL) { + ZEPHIR_INIT_VAR(&_43$$24); + array_init(&_43$$24); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("aliases"), &_43$$24); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_ManagerInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model, ManagerInterface, phalcon, mvc_model_managerinterface, phalcon_mvc_model_managerinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, addBehavior); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, addBelongsTo); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, addHasMany); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, addHasOne); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, addHasOneThrough); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, addHasManyToMany); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, createBuilder); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, createQuery); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, executeQuery); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, existsBelongsTo); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, existsHasMany); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, existsHasOne); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, existsHasOneThrough); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, existsHasManyToMany); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getBelongsTo); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getBelongsToRecords); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getHasMany); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getHasManyRecords); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getHasManyToMany); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getHasOne); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getHasOneThrough); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getHasOneAndHasMany); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getHasOneRecords); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getLastInitialized); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getLastQuery); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getModelSchema); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getModelSource); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getReadConnection); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getReadConnectionService); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getRelationByAlias); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getRelationRecords); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getRelations); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getRelationsBetween); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getWriteConnection); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getWriteConnectionService); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, load); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, initialize); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, isInitialized); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, isKeepingSnapshots); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, isUsingDynamicUpdate); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, isVisibleModelProperty); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, keepSnapshots); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, missingMethod); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, notifyEvent); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, setConnectionService); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, setReadConnectionService); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, setModelSchema); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, setModelSource); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, setWriteConnectionService); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, useDynamicUpdate); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_MetaData) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model, MetaData, phalcon, mvc_model_metadata, phalcon_mvc_model_metadata_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_mvc_model_metadata_ce, SL("adapter"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_metadata_ce, SL("columnMap"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_metadata_ce, SL("container"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_metadata_ce, SL("metaData"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_metadata_ce, SL("strategy"), ZEND_ACC_PROTECTED); + phalcon_mvc_model_metadata_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_MetaData; + zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_ATTRIBUTES"), 0); + + zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_AUTOMATIC_DEFAULT_INSERT"), 10); + + zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_AUTOMATIC_DEFAULT_UPDATE"), 11); + + zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_COLUMN_MAP"), 0); + + zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_DATE_AT"), 6); + + zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_DATE_IN"), 7); + + zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_DATA_TYPES"), 4); + + zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_DATA_TYPES_BIND"), 9); + + zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_DATA_TYPES_NUMERIC"), 5); + + zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_DEFAULT_VALUES"), 12); + + zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_EMPTY_STRING_VALUES"), 13); + + zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_IDENTITY_COLUMN"), 8); + + zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_NON_PRIMARY_KEY"), 2); + + zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_NOT_NULL"), 3); + + zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_PRIMARY_KEY"), 1); + + zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_REVERSE_COLUMN_MAP"), 1); + + zend_class_implements(phalcon_mvc_model_metadata_ce, 1, phalcon_di_injectionawareinterface_ce); + zend_class_implements(phalcon_mvc_model_metadata_ce, 1, phalcon_mvc_model_metadatainterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getAttributes) { - zval pdo, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *model, model_sub, data, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pdo); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&data); ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &model); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&pdo, &_0); - if (Z_TYPE_P(&pdo) != IS_OBJECT) { - RETURN_MM_BOOL(0); - } - ZEPHIR_RETURN_CALL_METHOD(&pdo, "intransaction", NULL, 0); + + ZVAL_LONG(&_0, 0); + ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); zephir_check_call_status(); - RETURN_MM(); + if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 102); + return; + } + RETURN_CCTOR(&data); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, lastInsertId) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getAutomaticCreateAttributes) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *sequenceName = NULL, sequenceName_sub, __$null, pdo, _0; + zval *model, model_sub, data, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&sequenceName_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&pdo); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&data); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(sequenceName) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &sequenceName); - if (!sequenceName) { - sequenceName = &sequenceName_sub; - sequenceName = &__$null; - } + zephir_fetch_params(1, 1, 0, &model); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&pdo, &_0); - if (Z_TYPE_P(&pdo) != IS_OBJECT) { - RETURN_MM_BOOL(0); - } - ZEPHIR_RETURN_CALL_METHOD(&pdo, "lastinsertid", NULL, 0, sequenceName); + ZVAL_LONG(&_0, 10); + ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); zephir_check_call_status(); - RETURN_MM(); + if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 129); + return; + } + RETURN_CCTOR(&data); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, prepare) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getAutomaticUpdateAttributes) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *sqlStatement_param = NULL, _0; - zval sqlStatement; + zval *model, model_sub, data, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&sqlStatement); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&data); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(sqlStatement) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &sqlStatement_param); - if (UNEXPECTED(Z_TYPE_P(sqlStatement_param) != IS_STRING && Z_TYPE_P(sqlStatement_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlStatement' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(sqlStatement_param) == IS_STRING)) { - zephir_get_strval(&sqlStatement, sqlStatement_param); - } else { - ZEPHIR_INIT_VAR(&sqlStatement); - } + zephir_fetch_params(1, 1, 0, &model); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "prepare", NULL, 0, &sqlStatement); + ZVAL_LONG(&_0, 11); + ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); zephir_check_call_status(); - RETURN_MM(); + if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 156); + return; + } + RETURN_CCTOR(&data); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, query) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getBindTypes) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval bindParams, bindTypes; - zval *sqlStatement_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, eventsManager, pdo, statement, params, types, _0, _3, _1$$3, _2$$3, _4$$9; - zval sqlStatement; + zval *model, model_sub, data, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&sqlStatement); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&pdo); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(¶ms); - ZVAL_UNDEF(&types); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&data); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$9); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(sqlStatement) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(bindParams) - Z_PARAM_ARRAY(bindTypes) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &sqlStatement_param, &bindParams_param, &bindTypes_param); - if (UNEXPECTED(Z_TYPE_P(sqlStatement_param) != IS_STRING && Z_TYPE_P(sqlStatement_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlStatement' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(sqlStatement_param) == IS_STRING)) { - zephir_get_strval(&sqlStatement, sqlStatement_param); - } else { - ZEPHIR_INIT_VAR(&sqlStatement); - } - if (!bindParams_param) { - ZEPHIR_INIT_VAR(&bindParams); - array_init(&bindParams); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindParams, bindParams_param); - } - if (!bindTypes_param) { - ZEPHIR_INIT_VAR(&bindTypes); - array_init(&bindTypes); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&bindTypes, bindTypes_param); + zephir_fetch_params(1, 1, 0, &model); + + + ZVAL_LONG(&_0, 9); + ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 183); + return; } + RETURN_CCTOR(&data); +} + +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getColumnMap) +{ + zend_bool _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *model, model_sub, data, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif - zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_0); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlStatement"), &sqlStatement); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlVariables"), &bindParams); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlBindTypes"), &bindTypes); - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "db:beforeQuery"); - ZEPHIR_CALL_METHOD(&_1$$3, &eventsManager, "fire", NULL, 0, &_2$$3, this_ptr); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_1$$3)) { - RETURN_MM_BOOL(0); - } + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &model); + + + ZVAL_LONG(&_0, 0); + ZEPHIR_CALL_METHOD(&data, this_ptr, "readcolumnmapindex", NULL, 27, model, &_0); + zephir_check_call_status(); + _1 = Z_TYPE_P(&data) != IS_NULL; + if (_1) { + _1 = Z_TYPE_P(&data) != IS_ARRAY; } - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&pdo, &_0); - if (!(ZEPHIR_IS_EMPTY(&bindParams))) { - ZEPHIR_CPY_WRT(¶ms, &bindParams); - ZEPHIR_CPY_WRT(&types, &bindTypes); - } else { - ZEPHIR_INIT_NVAR(¶ms); - array_init(¶ms); - ZEPHIR_INIT_NVAR(&types); - array_init(&types); + if (UNEXPECTED(_1)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 207); + return; } - ZEPHIR_CALL_METHOD(&statement, &pdo, "prepare", NULL, 0, &sqlStatement); + RETURN_CCTOR(&data); +} + +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getDefaultValues) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *model, model_sub, data, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &model); + + + ZVAL_LONG(&_0, 12); + ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&statement) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Cannot prepare statement", "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 749); + if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 231); return; } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "preparerealsql", NULL, 0, &sqlStatement, &bindParams); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "executeprepared", NULL, 0, &statement, ¶ms, &types); + RETURN_CCTOR(&data); +} + +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getDataTypes) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *model, model_sub, data, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &model); + + + ZVAL_LONG(&_0, 4); + ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); zephir_check_call_status(); - ZEPHIR_CPY_WRT(&statement, &_3); - if (Z_TYPE_P(&statement) == IS_OBJECT) { - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_4$$9); - ZVAL_STRING(&_4$$9, "db:afterQuery"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_4$$9, this_ptr); - zephir_check_call_status(); - } - object_init_ex(return_value, phalcon_db_result_pdo_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 52, this_ptr, &statement, &sqlStatement, &bindParams, &bindTypes); - zephir_check_call_status(); - RETURN_MM(); + if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 255); + return; } - RETURN_CCTOR(&statement); + RETURN_CCTOR(&data); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, rollback) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getDataTypesNumeric) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, transactionLevel = 0; - zval *nesting_param = NULL, pdo, eventsManager, savepointName, _0, _1, _6, _2$$5, _3$$6, _7$$9; - zend_bool nesting, _4, _5; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *model, model_sub, data, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pdo); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&savepointName); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&data); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_2$$5); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&_7$$9); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(nesting) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &nesting_param); - if (!nesting_param) { - nesting = 1; - } else { - nesting = zephir_get_boolval(nesting_param); - } + zephir_fetch_params(1, 1, 0, &model); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&pdo, &_0); - if (Z_TYPE_P(&pdo) != IS_OBJECT) { - RETURN_MM_BOOL(0); - } - ZEPHIR_OBS_VAR(&_1); - zephir_read_property(&_1, this_ptr, ZEND_STRL("transactionLevel"), PH_NOISY_CC); - transactionLevel = zephir_get_intval(&_1); - if (UNEXPECTED(!transactionLevel)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "There is no active transaction", "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 793); + ZVAL_LONG(&_0, 5); + ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 282); return; } - if (transactionLevel == 1) { - zephir_read_property(&_2$$5, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_2$$5); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_3$$6); - ZVAL_STRING(&_3$$6, "db:rollbackTransaction"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_3$$6, this_ptr); - zephir_check_call_status(); - } - RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("transactionLevel"))); - ZEPHIR_RETURN_CALL_METHOD(&pdo, "rollback", NULL, 0); + RETURN_CCTOR(&data); +} + +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getDI) +{ + zval container, _0, _1$$3, _2$$3, _4$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_3 = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$3); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + if (Z_TYPE_P(&container) != IS_OBJECT) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "internal services"); + ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_mvc_model_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); zephir_check_call_status(); - RETURN_MM(); - } - _4 = !transactionLevel; - if (!(_4)) { - _4 = !nesting; - } - _5 = _4; - if (!(_5)) { - ZEPHIR_CALL_METHOD(&_6, this_ptr, "isnestedtransactionswithsavepoints", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); zephir_check_call_status(); - _5 = !zephir_is_true(&_6); - } - if (_5) { - if (transactionLevel > 0) { - RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("transactionLevel"))); - } - RETURN_MM_BOOL(0); + zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model/MetaData.zep", 300); + ZEPHIR_MM_RESTORE(); + return; } - ZEPHIR_CALL_METHOD(&savepointName, this_ptr, "getnestedtransactionsavepointname", NULL, 0); + RETURN_CCTOR(&container); +} + +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getEmptyStringAttributes) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *model, model_sub, data, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &model); + + + ZVAL_LONG(&_0, 13); + ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_0); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_7$$9); - ZVAL_STRING(&_7$$9, "db:rollbackSavepoint"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_7$$9, this_ptr, &savepointName); - zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 327); + return; } - RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("transactionLevel"))); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "rollbacksavepoint", NULL, 0, &savepointName); + RETURN_CCTOR(&data); +} + +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getIdentityField) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *model, model_sub, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &model); + + + ZVAL_LONG(&_0, 8); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "readmetadataindex", NULL, 26, model, &_0); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, getDsnDefaults) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getNonPrimaryKeyAttributes) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *model, model_sub, data, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &model); + + + ZVAL_LONG(&_0, 2); + ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 367); + return; + } + RETURN_CCTOR(&data); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, prepareRealSql) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getNotNullAttributes) { - zend_string *_3$$3; - zend_ulong _2$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval parameters, keys, values; - zval *statement_param = NULL, *parameters_param = NULL, key, result, value, *_0$$3, _1$$3, _16$$3, _4$$5, _5$$6, _6$$7, _7$$8, _8$$8, _9$$9, _10$$11, _11$$12, _12$$13, _13$$14, _14$$14, _15$$15; - zval statement; + zval *model, model_sub, data, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_16$$3); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_6$$7); - ZVAL_UNDEF(&_7$$8); - ZVAL_UNDEF(&_8$$8); - ZVAL_UNDEF(&_9$$9); - ZVAL_UNDEF(&_10$$11); - ZVAL_UNDEF(&_11$$12); - ZVAL_UNDEF(&_12$$13); - ZVAL_UNDEF(&_13$$14); - ZVAL_UNDEF(&_14$$14); - ZVAL_UNDEF(&_15$$15); - ZVAL_UNDEF(¶meters); - ZVAL_UNDEF(&keys); - ZVAL_UNDEF(&values); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(statement) - Z_PARAM_ARRAY(parameters) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &statement_param, ¶meters_param); - zephir_get_strval(&statement, statement_param); - zephir_get_arrval(¶meters, parameters_param); + zephir_fetch_params(1, 1, 0, &model); - ZEPHIR_CPY_WRT(&result, &statement); - ZEPHIR_CPY_WRT(&values, ¶meters); - if (!(ZEPHIR_IS_EMPTY(¶meters))) { - ZEPHIR_INIT_VAR(&keys); - array_init(&keys); - zephir_is_iterable(¶meters, 0, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 881); - if (Z_TYPE_P(¶meters) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(¶meters), _2$$3, _3$$3, _0$$3) - { - ZEPHIR_INIT_NVAR(&key); - if (_3$$3 != NULL) { - ZVAL_STR_COPY(&key, _3$$3); - } else { - ZVAL_LONG(&key, _2$$3); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0$$3); - if (Z_TYPE_P(&key) == IS_STRING) { - ZEPHIR_INIT_NVAR(&_4$$5); - ZEPHIR_CONCAT_SVS(&_4$$5, "/:", &key, "/"); - zephir_array_append(&keys, &_4$$5, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 867); - } else { - ZEPHIR_INIT_NVAR(&_5$$6); - ZVAL_STRING(&_5$$6, "/[?]/"); - zephir_array_append(&keys, &_5$$6, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 869); - } - if (Z_TYPE_P(&value) == IS_STRING) { - ZEPHIR_INIT_NVAR(&_6$$7); - ZEPHIR_CONCAT_SVS(&_6$$7, "'", &value, "'"); - zephir_array_update_zval(&values, &key, &_6$$7, PH_COPY | PH_SEPARATE); - } else if (Z_TYPE_P(&value) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&_7$$8); - zephir_fast_join_str(&_7$$8, SL("','"), &value); - ZEPHIR_INIT_NVAR(&_8$$8); - ZEPHIR_CONCAT_SVS(&_8$$8, "'", &_7$$8, "'"); - zephir_array_update_zval(&values, &key, &_8$$8, PH_COPY | PH_SEPARATE); - } else if (Z_TYPE_P(&value) == IS_NULL) { - ZEPHIR_INIT_NVAR(&_9$$9); - ZVAL_STRING(&_9$$9, "NULL"); - zephir_array_update_zval(&values, &key, &_9$$9, PH_COPY | PH_SEPARATE); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, ¶meters, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1$$3, ¶meters, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&key, ¶meters, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, ¶meters, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&key) == IS_STRING) { - ZEPHIR_INIT_NVAR(&_10$$11); - ZEPHIR_CONCAT_SVS(&_10$$11, "/:", &key, "/"); - zephir_array_append(&keys, &_10$$11, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 867); - } else { - ZEPHIR_INIT_NVAR(&_11$$12); - ZVAL_STRING(&_11$$12, "/[?]/"); - zephir_array_append(&keys, &_11$$12, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 869); - } - if (Z_TYPE_P(&value) == IS_STRING) { - ZEPHIR_INIT_NVAR(&_12$$13); - ZEPHIR_CONCAT_SVS(&_12$$13, "'", &value, "'"); - zephir_array_update_zval(&values, &key, &_12$$13, PH_COPY | PH_SEPARATE); - } else if (Z_TYPE_P(&value) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&_13$$14); - zephir_fast_join_str(&_13$$14, SL("','"), &value); - ZEPHIR_INIT_NVAR(&_14$$14); - ZEPHIR_CONCAT_SVS(&_14$$14, "'", &_13$$14, "'"); - zephir_array_update_zval(&values, &key, &_14$$14, PH_COPY | PH_SEPARATE); - } else if (Z_TYPE_P(&value) == IS_NULL) { - ZEPHIR_INIT_NVAR(&_15$$15); - ZVAL_STRING(&_15$$15, "NULL"); - zephir_array_update_zval(&values, &key, &_15$$15, PH_COPY | PH_SEPARATE); - } - ZEPHIR_CALL_METHOD(NULL, ¶meters, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - ZVAL_LONG(&_16$$3, 1); - ZEPHIR_CALL_FUNCTION(&result, "preg_replace", NULL, 50, &keys, &values, &statement, &_16$$3); - zephir_check_call_status(); + ZVAL_LONG(&_0, 3); + ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 391); + return; } - zephir_update_property_zval(this_ptr, ZEND_STRL("realSqlStatement"), &result); - ZEPHIR_MM_RESTORE(); + RETURN_CCTOR(&data); } +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getPrimaryKeyAttributes) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *model, model_sub, data, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &model); -#ifdef HAVE_CONFIG_H + ZVAL_LONG(&_0, 1); + ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 415); + return; + } + RETURN_CCTOR(&data); +} + +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getReverseColumnMap) +{ + zend_bool _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *model, model_sub, data, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &model); + ZVAL_LONG(&_0, 1); + ZEPHIR_CALL_METHOD(&data, this_ptr, "readcolumnmapindex", NULL, 27, model, &_0); + zephir_check_call_status(); + _1 = Z_TYPE_P(&data) != IS_NULL; + if (_1) { + _1 = Z_TYPE_P(&data) != IS_ARRAY; + } + if (UNEXPECTED(_1)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 442); + return; + } + RETURN_CCTOR(&data); +} -ZEPHIR_INIT_CLASS(Phalcon_Db_Adapter_Pdo_Mysql) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getStrategy) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Adapter\\Pdo, Mysql, phalcon, db_adapter_pdo_mysql, phalcon_db_adapter_pdo_abstractpdo_ce, phalcon_db_adapter_pdo_mysql_method_entry, 0); + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); - zend_declare_property_string(phalcon_db_adapter_pdo_mysql_ce, SL("dialectType"), "mysql", ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_db_adapter_pdo_mysql_ce, SL("type"), "mysql", ZEND_ACC_PROTECTED); - return SUCCESS; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("strategy"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_mvc_model_metadata_strategy_introspection_ce); + if (zephir_has_constructor(&_1$$3)) { + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 0); + zephir_check_call_status(); + } + + zephir_update_property_zval(this_ptr, ZEND_STRL("strategy"), &_1$$3); + } + RETURN_MM_MEMBER(getThis(), "strategy"); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, addForeignKey) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, hasAttribute) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *reference, reference_sub, foreignKeyCheck, _0, _1, _2, _3, _4; - zval tableName, schemaName; + zval attribute; + zval *model, model_sub, *attribute_param = NULL, columnMap, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&reference_sub); - ZVAL_UNDEF(&foreignKeyCheck); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&columnMap); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&attribute); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(reference, phalcon_db_referenceinterface_ce) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_STR(attribute) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &reference); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + zephir_fetch_params(1, 2, 0, &model, &attribute_param); + zephir_get_strval(&attribute, attribute_param); + + + ZEPHIR_CALL_METHOD(&columnMap, this_ptr, "getreversecolumnmap", NULL, 0, model); + zephir_check_call_status(); + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + RETURN_MM_BOOL(zephir_array_isset(&columnMap, &attribute)); + } + ZEPHIR_CALL_METHOD(&_0, this_ptr, "readmetadata", NULL, 28, model); + zephir_check_call_status(); + zephir_array_fetch_long(&_1, &_0, 4, PH_READONLY, "phalcon/Mvc/Model/MetaData.zep", 482); + RETURN_MM_BOOL(zephir_array_isset(&_1, &attribute)); +} + +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, isEmpty) +{ + zval _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); + RETURN_BOOL(zephir_fast_count_int(&_0) == 0); +} + +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, read) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, _0; + zval key; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &key_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_INIT_VAR(&tableName); + ZEPHIR_INIT_VAR(&key); } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "get", NULL, 0, &key); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, readColumnMap) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *model, model_sub, keyName, data, _0, _1$$4, _2$$4, _3$$4; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&keyName); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &model); + + + if (!(ZEPHIR_GLOBAL(orm).column_renaming)) { RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); + ZEPHIR_INIT_VAR(&keyName); + zephir_get_class(&keyName, model, 1); + ZEPHIR_OBS_VAR(&data); + zephir_read_property(&_0, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&data, &_0, &keyName, 0))) { + ZVAL_NULL(&_1$$4); + ZVAL_NULL(&_2$$4); + ZVAL_NULL(&_3$$4); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "initialize", NULL, 29, model, &_1$$4, &_2$$4, &_3$$4); + zephir_check_call_status(); + zephir_read_property(&_1$$4, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_OBS_NVAR(&data); + zephir_array_fetch(&data, &_1$$4, &keyName, PH_NOISY, "phalcon/Mvc/Model/MetaData.zep", 531); } + RETURN_CCTOR(&data); +} + +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, readColumnMapIndex) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long index, ZEPHIR_LAST_CALL_STATUS; + zval *model, model_sub, *index_param = NULL, keyName, columnMapModel, map, _0, _1$$4, _2$$4, _3$$4; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&keyName); + ZVAL_UNDEF(&columnMapModel); + ZVAL_UNDEF(&map); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_LONG(index) + ZEND_PARSE_PARAMETERS_END(); +#endif - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "getforeignkeychecks", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&foreignKeyCheck, this_ptr, "prepare", NULL, 0, &_1); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2, &foreignKeyCheck, "execute", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(!zephir_is_true(&_2))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "DATABASE PARAMETER 'FOREIGN_KEY_CHECKS' HAS TO BE 1", "phalcon/Db/Adapter/Pdo/Mysql.zep", 66); - return; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &model, &index_param); + index = zephir_get_intval(index_param); + + + if (!(ZEPHIR_GLOBAL(orm).column_renaming)) { + RETURN_MM_NULL(); } - zephir_read_property(&_3, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_4, &_3, "addforeignkey", NULL, 0, &tableName, &schemaName, reference); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_4); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_VAR(&keyName); + zephir_get_class(&keyName, model, 1); + ZEPHIR_OBS_VAR(&columnMapModel); + zephir_read_property(&_0, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&columnMapModel, &_0, &keyName, 0))) { + ZVAL_NULL(&_1$$4); + ZVAL_NULL(&_2$$4); + ZVAL_NULL(&_3$$4); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "initialize", NULL, 29, model, &_1$$4, &_2$$4, &_3$$4); + zephir_check_call_status(); + zephir_read_property(&_1$$4, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_OBS_NVAR(&columnMapModel); + zephir_array_fetch(&columnMapModel, &_1$$4, &keyName, PH_NOISY, "phalcon/Mvc/Model/MetaData.zep", 562); + } + zephir_array_isset_long_fetch(&map, &columnMapModel, index, 1); + RETURN_CTOR(&map); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, readMetaData) { - zend_bool _5$$3, _66$$49; - zval definition; + zval key; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_64 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *table_param = NULL, *schema_param = NULL, __$true, __$false, columns, columnType, fields, field, oldColumn, sizePattern, matches, matchOne, matchTwo, columnName, _0, _1, _2, *_3, _4, _49$$3, _50$$3, _51$$3, _52$$3, _61$$3, _63$$3, _6$$4, _7$$4, _8$$5, _9$$5, _10$$6, _11$$6, _12$$7, _13$$7, _14$$8, _15$$8, _16$$9, _17$$9, _18$$10, _19$$11, _20$$12, _21$$13, _22$$14, _23$$14, _24$$15, _25$$15, _26$$16, _27$$17, _28$$18, _29$$19, _30$$20, _31$$21, _32$$22, _33$$23, _34$$24, _35$$25, _36$$26, _37$$27, _38$$28, _39$$29, _40$$30, _41$$31, _42$$32, _43$$32, _44$$33, _45$$33, _46$$33, _47$$35, _48$$36, _53$$43, _54$$44, _55$$44, _56$$44, _57$$45, _58$$46, _59$$47, _60$$47, _62$$48, _65$$49, _110$$49, _111$$49, _112$$49, _113$$49, _122$$49, _124$$49, _67$$50, _68$$50, _69$$51, _70$$51, _71$$52, _72$$52, _73$$53, _74$$53, _75$$54, _76$$54, _77$$55, _78$$55, _79$$56, _80$$57, _81$$58, _82$$59, _83$$60, _84$$60, _85$$61, _86$$61, _87$$62, _88$$63, _89$$64, _90$$65, _91$$66, _92$$67, _93$$68, _94$$69, _95$$70, _96$$71, _97$$72, _98$$73, _99$$74, _100$$75, _101$$76, _102$$77, _103$$78, _104$$78, _105$$79, _106$$79, _107$$79, _108$$81, _109$$82, _114$$89, _115$$90, _116$$90, _117$$90, _118$$91, _119$$92, _120$$93, _121$$93, _123$$94; - zval table, schema; + zval *model, model_sub, source, schema, _0, _1, _2, _3, _4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&source); ZVAL_UNDEF(&schema); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&columnType); - ZVAL_UNDEF(&fields); - ZVAL_UNDEF(&field); - ZVAL_UNDEF(&oldColumn); - ZVAL_UNDEF(&sizePattern); - ZVAL_UNDEF(&matches); - ZVAL_UNDEF(&matchOne); - ZVAL_UNDEF(&matchTwo); - ZVAL_UNDEF(&columnName); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_49$$3); - ZVAL_UNDEF(&_50$$3); - ZVAL_UNDEF(&_51$$3); - ZVAL_UNDEF(&_52$$3); - ZVAL_UNDEF(&_61$$3); - ZVAL_UNDEF(&_63$$3); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_10$$6); - ZVAL_UNDEF(&_11$$6); - ZVAL_UNDEF(&_12$$7); - ZVAL_UNDEF(&_13$$7); - ZVAL_UNDEF(&_14$$8); - ZVAL_UNDEF(&_15$$8); - ZVAL_UNDEF(&_16$$9); - ZVAL_UNDEF(&_17$$9); - ZVAL_UNDEF(&_18$$10); - ZVAL_UNDEF(&_19$$11); - ZVAL_UNDEF(&_20$$12); - ZVAL_UNDEF(&_21$$13); - ZVAL_UNDEF(&_22$$14); - ZVAL_UNDEF(&_23$$14); - ZVAL_UNDEF(&_24$$15); - ZVAL_UNDEF(&_25$$15); - ZVAL_UNDEF(&_26$$16); - ZVAL_UNDEF(&_27$$17); - ZVAL_UNDEF(&_28$$18); - ZVAL_UNDEF(&_29$$19); - ZVAL_UNDEF(&_30$$20); - ZVAL_UNDEF(&_31$$21); - ZVAL_UNDEF(&_32$$22); - ZVAL_UNDEF(&_33$$23); - ZVAL_UNDEF(&_34$$24); - ZVAL_UNDEF(&_35$$25); - ZVAL_UNDEF(&_36$$26); - ZVAL_UNDEF(&_37$$27); - ZVAL_UNDEF(&_38$$28); - ZVAL_UNDEF(&_39$$29); - ZVAL_UNDEF(&_40$$30); - ZVAL_UNDEF(&_41$$31); - ZVAL_UNDEF(&_42$$32); - ZVAL_UNDEF(&_43$$32); - ZVAL_UNDEF(&_44$$33); - ZVAL_UNDEF(&_45$$33); - ZVAL_UNDEF(&_46$$33); - ZVAL_UNDEF(&_47$$35); - ZVAL_UNDEF(&_48$$36); - ZVAL_UNDEF(&_53$$43); - ZVAL_UNDEF(&_54$$44); - ZVAL_UNDEF(&_55$$44); - ZVAL_UNDEF(&_56$$44); - ZVAL_UNDEF(&_57$$45); - ZVAL_UNDEF(&_58$$46); - ZVAL_UNDEF(&_59$$47); - ZVAL_UNDEF(&_60$$47); - ZVAL_UNDEF(&_62$$48); - ZVAL_UNDEF(&_65$$49); - ZVAL_UNDEF(&_110$$49); - ZVAL_UNDEF(&_111$$49); - ZVAL_UNDEF(&_112$$49); - ZVAL_UNDEF(&_113$$49); - ZVAL_UNDEF(&_122$$49); - ZVAL_UNDEF(&_124$$49); - ZVAL_UNDEF(&_67$$50); - ZVAL_UNDEF(&_68$$50); - ZVAL_UNDEF(&_69$$51); - ZVAL_UNDEF(&_70$$51); - ZVAL_UNDEF(&_71$$52); - ZVAL_UNDEF(&_72$$52); - ZVAL_UNDEF(&_73$$53); - ZVAL_UNDEF(&_74$$53); - ZVAL_UNDEF(&_75$$54); - ZVAL_UNDEF(&_76$$54); - ZVAL_UNDEF(&_77$$55); - ZVAL_UNDEF(&_78$$55); - ZVAL_UNDEF(&_79$$56); - ZVAL_UNDEF(&_80$$57); - ZVAL_UNDEF(&_81$$58); - ZVAL_UNDEF(&_82$$59); - ZVAL_UNDEF(&_83$$60); - ZVAL_UNDEF(&_84$$60); - ZVAL_UNDEF(&_85$$61); - ZVAL_UNDEF(&_86$$61); - ZVAL_UNDEF(&_87$$62); - ZVAL_UNDEF(&_88$$63); - ZVAL_UNDEF(&_89$$64); - ZVAL_UNDEF(&_90$$65); - ZVAL_UNDEF(&_91$$66); - ZVAL_UNDEF(&_92$$67); - ZVAL_UNDEF(&_93$$68); - ZVAL_UNDEF(&_94$$69); - ZVAL_UNDEF(&_95$$70); - ZVAL_UNDEF(&_96$$71); - ZVAL_UNDEF(&_97$$72); - ZVAL_UNDEF(&_98$$73); - ZVAL_UNDEF(&_99$$74); - ZVAL_UNDEF(&_100$$75); - ZVAL_UNDEF(&_101$$76); - ZVAL_UNDEF(&_102$$77); - ZVAL_UNDEF(&_103$$78); - ZVAL_UNDEF(&_104$$78); - ZVAL_UNDEF(&_105$$79); - ZVAL_UNDEF(&_106$$79); - ZVAL_UNDEF(&_107$$79); - ZVAL_UNDEF(&_108$$81); - ZVAL_UNDEF(&_109$$82); - ZVAL_UNDEF(&_114$$89); - ZVAL_UNDEF(&_115$$90); - ZVAL_UNDEF(&_116$$90); - ZVAL_UNDEF(&_117$$90); - ZVAL_UNDEF(&_118$$91); - ZVAL_UNDEF(&_119$$92); - ZVAL_UNDEF(&_120$$93); - ZVAL_UNDEF(&_121$$93); - ZVAL_UNDEF(&_123$$94); - ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&key); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - zephir_get_strval(&table, table_param); - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); - } else { - zephir_get_strval(&schema, schema_param); + zephir_fetch_params(1, 1, 0, &model); + + + ZEPHIR_CALL_METHOD(&source, model, "getsource", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&schema, model, "getschema", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + zephir_get_class(&_0, model, 1); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_CONCAT_VSVV(&_1, &_0, "-", &schema, &source); + zephir_get_strval(&key, &_1); + zephir_read_property(&_2, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset(&_2, &key))) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "initialize", NULL, 29, model, &key, &source, &schema); + zephir_check_call_status(); } + zephir_read_property(&_3, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_4, &_3, &key, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/MetaData.zep", 598); + RETURN_CTOR(&_4); +} +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, readMetaDataIndex) +{ + zval key; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long index, ZEPHIR_LAST_CALL_STATUS; + zval *model, model_sub, *index_param = NULL, source, schema, _0, _1, _2, _3, _4, _5, _6; + zval *this_ptr = getThis(); - ZEPHIR_INIT_VAR(&oldColumn); - ZVAL_NULL(&oldColumn); - ZEPHIR_INIT_VAR(&sizePattern); - ZVAL_STRING(&sizePattern, "#\\(([0-9]+)(?:,\\s*([0-9]+))*\\)#"); - ZEPHIR_INIT_VAR(&columns); - array_init(&columns); - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "describecolumns", NULL, 0, &table, &schema); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&source); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&key); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_LONG(index) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &model, &index_param); + index = zephir_get_intval(index_param); + + + ZEPHIR_CALL_METHOD(&source, model, "getsource", NULL, 0); zephir_check_call_status(); - ZVAL_LONG(&_2, 3); - ZEPHIR_CALL_METHOD(&fields, this_ptr, "fetchall", NULL, 0, &_1, &_2); + ZEPHIR_CALL_METHOD(&schema, model, "getschema", NULL, 0); zephir_check_call_status(); - zephir_is_iterable(&fields, 0, "phalcon/Db/Adapter/Pdo/Mysql.zep", 468); - if (Z_TYPE_P(&fields) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&fields), _3) - { - ZEPHIR_INIT_NVAR(&field); - ZVAL_COPY(&field, _3); - ZEPHIR_INIT_NVAR(&definition); - zephir_create_array(&definition, 1, 0); - add_assoc_long_ex(&definition, SL("bindType"), 2); - ZEPHIR_OBS_NVAR(&columnType); - zephir_array_fetch_long(&columnType, &field, 1, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 121); - do { - _5$$3 = 1; - if (_5$$3 == zephir_start_with_str(&columnType, SL("bigint"))) { - ZEPHIR_INIT_NVAR(&_6$$4); - ZVAL_LONG(&_6$$4, 14); - zephir_array_update_string(&definition, SL("type"), &_6$$4, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_7$$4); - ZVAL_LONG(&_7$$4, 1); - zephir_array_update_string(&definition, SL("bindType"), &_7$$4, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("mediumint"))) { - ZEPHIR_INIT_NVAR(&_8$$5); - ZVAL_LONG(&_8$$5, 21); - zephir_array_update_string(&definition, SL("type"), &_8$$5, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_9$$5); - ZVAL_LONG(&_9$$5, 1); - zephir_array_update_string(&definition, SL("bindType"), &_9$$5, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("smallint"))) { - ZEPHIR_INIT_NVAR(&_10$$6); - ZVAL_LONG(&_10$$6, 22); - zephir_array_update_string(&definition, SL("type"), &_10$$6, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_11$$6); - ZVAL_LONG(&_11$$6, 1); - zephir_array_update_string(&definition, SL("bindType"), &_11$$6, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("tinyint"))) { - ZEPHIR_INIT_NVAR(&_12$$7); - ZVAL_LONG(&_12$$7, 26); - zephir_array_update_string(&definition, SL("type"), &_12$$7, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_13$$7); - ZVAL_LONG(&_13$$7, 1); - zephir_array_update_string(&definition, SL("bindType"), &_13$$7, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("int"))) { - ZEPHIR_INIT_NVAR(&_14$$8); - ZVAL_LONG(&_14$$8, 0); - zephir_array_update_string(&definition, SL("type"), &_14$$8, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_15$$8); - ZVAL_LONG(&_15$$8, 1); - zephir_array_update_string(&definition, SL("bindType"), &_15$$8, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("bit"))) { - ZEPHIR_INIT_NVAR(&_16$$9); - ZVAL_LONG(&_16$$9, 19); - zephir_array_update_string(&definition, SL("type"), &_16$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_17$$9); - ZVAL_LONG(&_17$$9, 1); - zephir_array_update_string(&definition, SL("bindType"), &_17$$9, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("enum"))) { - ZEPHIR_INIT_NVAR(&_18$$10); - ZVAL_LONG(&_18$$10, 18); - zephir_array_update_string(&definition, SL("type"), &_18$$10, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("datetime"))) { - ZEPHIR_INIT_NVAR(&_19$$11); - ZVAL_LONG(&_19$$11, 4); - zephir_array_update_string(&definition, SL("type"), &_19$$11, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("date"))) { - ZEPHIR_INIT_NVAR(&_20$$12); - ZVAL_LONG(&_20$$12, 1); - zephir_array_update_string(&definition, SL("type"), &_20$$12, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("decimal"))) { - ZEPHIR_INIT_NVAR(&_21$$13); - ZVAL_LONG(&_21$$13, 3); - zephir_array_update_string(&definition, SL("type"), &_21$$13, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("double"))) { - ZEPHIR_INIT_NVAR(&_22$$14); - ZVAL_LONG(&_22$$14, 9); - zephir_array_update_string(&definition, SL("type"), &_22$$14, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_23$$14); - ZVAL_LONG(&_23$$14, 32); - zephir_array_update_string(&definition, SL("bindType"), &_23$$14, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("float"))) { - ZEPHIR_INIT_NVAR(&_24$$15); - ZVAL_LONG(&_24$$15, 7); - zephir_array_update_string(&definition, SL("type"), &_24$$15, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_25$$15); - ZVAL_LONG(&_25$$15, 32); - zephir_array_update_string(&definition, SL("bindType"), &_25$$15, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("mediumblob"))) { - ZEPHIR_INIT_NVAR(&_26$$16); - ZVAL_LONG(&_26$$16, 12); - zephir_array_update_string(&definition, SL("type"), &_26$$16, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("longblob"))) { - ZEPHIR_INIT_NVAR(&_27$$17); - ZVAL_LONG(&_27$$17, 13); - zephir_array_update_string(&definition, SL("type"), &_27$$17, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("tinyblob"))) { - ZEPHIR_INIT_NVAR(&_28$$18); - ZVAL_LONG(&_28$$18, 10); - zephir_array_update_string(&definition, SL("type"), &_28$$18, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("blob"))) { - ZEPHIR_INIT_NVAR(&_29$$19); - ZVAL_LONG(&_29$$19, 11); - zephir_array_update_string(&definition, SL("type"), &_29$$19, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("timestamp"))) { - ZEPHIR_INIT_NVAR(&_30$$20); - ZVAL_LONG(&_30$$20, 17); - zephir_array_update_string(&definition, SL("type"), &_30$$20, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("time"))) { - ZEPHIR_INIT_NVAR(&_31$$21); - ZVAL_LONG(&_31$$21, 20); - zephir_array_update_string(&definition, SL("type"), &_31$$21, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("json"))) { - ZEPHIR_INIT_NVAR(&_32$$22); - ZVAL_LONG(&_32$$22, 15); - zephir_array_update_string(&definition, SL("type"), &_32$$22, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("longtext"))) { - ZEPHIR_INIT_NVAR(&_33$$23); - ZVAL_LONG(&_33$$23, 24); - zephir_array_update_string(&definition, SL("type"), &_33$$23, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("mediumtext"))) { - ZEPHIR_INIT_NVAR(&_34$$24); - ZVAL_LONG(&_34$$24, 23); - zephir_array_update_string(&definition, SL("type"), &_34$$24, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("tinytext"))) { - ZEPHIR_INIT_NVAR(&_35$$25); - ZVAL_LONG(&_35$$25, 25); - zephir_array_update_string(&definition, SL("type"), &_35$$25, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("text"))) { - ZEPHIR_INIT_NVAR(&_36$$26); - ZVAL_LONG(&_36$$26, 6); - zephir_array_update_string(&definition, SL("type"), &_36$$26, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("varchar"))) { - ZEPHIR_INIT_NVAR(&_37$$27); - ZVAL_LONG(&_37$$27, 2); - zephir_array_update_string(&definition, SL("type"), &_37$$27, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("char"))) { - ZEPHIR_INIT_NVAR(&_38$$28); - ZVAL_LONG(&_38$$28, 5); - zephir_array_update_string(&definition, SL("type"), &_38$$28, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("varbinary"))) { - ZEPHIR_INIT_NVAR(&_39$$29); - ZVAL_LONG(&_39$$29, 26); - zephir_array_update_string(&definition, SL("type"), &_39$$29, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_start_with_str(&columnType, SL("binary"))) { - ZEPHIR_INIT_NVAR(&_40$$30); - ZVAL_LONG(&_40$$30, 26); - zephir_array_update_string(&definition, SL("type"), &_40$$30, PH_COPY | PH_SEPARATE); - break; - } - ZEPHIR_INIT_NVAR(&_41$$31); - ZVAL_LONG(&_41$$31, 2); - zephir_array_update_string(&definition, SL("type"), &_41$$31, PH_COPY | PH_SEPARATE); - break; - } while(0); - - if (zephir_memnstr_str(&columnType, SL("("), "phalcon/Db/Adapter/Pdo/Mysql.zep", 385)) { - ZEPHIR_INIT_NVAR(&matches); - ZVAL_NULL(&matches); - zephir_array_fetch_string(&_42$$32, &definition, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 388); - ZEPHIR_INIT_NVAR(&_43$$32); - zephir_preg_match(&_43$$32, &sizePattern, &columnType, &matches, 0, 0 , 0 ); - if (ZEPHIR_IS_LONG(&_42$$32, 18)) { - ZVAL_LONG(&_44$$33, 5); - ZVAL_LONG(&_45$$33, -1); - ZEPHIR_INIT_NVAR(&_46$$33); - zephir_substr(&_46$$33, &columnType, 5 , -1 , 0); - zephir_array_update_string(&definition, SL("size"), &_46$$33, PH_COPY | PH_SEPARATE); - } else if (zephir_is_true(&_43$$32)) { - ZEPHIR_OBS_NVAR(&matchOne); - if (zephir_array_isset_long_fetch(&matchOne, &matches, 1, 0)) { - ZEPHIR_INIT_NVAR(&_47$$35); - ZVAL_LONG(&_47$$35, zephir_get_intval(&matchOne)); - zephir_array_update_string(&definition, SL("size"), &_47$$35, PH_COPY | PH_SEPARATE); - } - ZEPHIR_OBS_NVAR(&matchTwo); - if (zephir_array_isset_long_fetch(&matchTwo, &matches, 2, 0)) { - ZEPHIR_INIT_NVAR(&_48$$36); - ZVAL_LONG(&_48$$36, zephir_get_intval(&matchTwo)); - zephir_array_update_string(&definition, SL("scale"), &_48$$36, PH_COPY | PH_SEPARATE); - } - } - } - if (zephir_memnstr_str(&columnType, SL("unsigned"), "phalcon/Db/Adapter/Pdo/Mysql.zep", 404)) { - zephir_array_update_string(&definition, SL("unsigned"), &__$true, PH_COPY | PH_SEPARATE); - } - if (Z_TYPE_P(&oldColumn) == IS_NULL) { - zephir_array_update_string(&definition, SL("first"), &__$true, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_49$$3, &field, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 420); - if (ZEPHIR_IS_STRING(&_49$$3, "PRI")) { - zephir_array_update_string(&definition, SL("primary"), &__$true, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_50$$3, &field, 3, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 427); - if (ZEPHIR_IS_STRING(&_50$$3, "YES")) { - zephir_array_update_string(&definition, SL("notNull"), &__$false, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_51$$3, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 434); - if (ZEPHIR_IS_STRING(&_51$$3, "auto_increment")) { - zephir_array_update_string(&definition, SL("autoIncrement"), &__$true, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_52$$3, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 441); - if (Z_TYPE_P(&_52$$3) != IS_NULL) { - zephir_array_fetch_long(&_53$$43, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 442); - if (zephir_memnstr_str(&_53$$43, SL("on update"), "phalcon/Db/Adapter/Pdo/Mysql.zep", 442)) { - zephir_array_fetch_long(&_54$$44, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 443); - zephir_array_fetch_long(&_55$$44, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 443); - ZEPHIR_INIT_NVAR(&_56$$44); - ZEPHIR_CONCAT_VSV(&_56$$44, &_54$$44, " ", &_55$$44); - zephir_array_update_string(&definition, SL("default"), &_56$$44, PH_COPY | PH_SEPARATE); - } else { - zephir_array_fetch_long(&_57$$45, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 445); - zephir_array_update_string(&definition, SL("default"), &_57$$45, PH_COPY | PH_SEPARATE); - } - } else { - zephir_array_fetch_long(&_58$$46, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 448); - if (zephir_memnstr_str(&_58$$46, SL("on update"), "phalcon/Db/Adapter/Pdo/Mysql.zep", 448)) { - zephir_array_fetch_long(&_59$$47, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 449); - ZEPHIR_INIT_NVAR(&_60$$47); - ZEPHIR_CONCAT_SV(&_60$$47, "NULL ", &_59$$47); - zephir_array_update_string(&definition, SL("default"), &_60$$47, PH_COPY | PH_SEPARATE); - } - } - zephir_array_fetch_long(&_61$$3, &field, 8, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 456); - if (Z_TYPE_P(&_61$$3) != IS_NULL) { - zephir_array_fetch_long(&_62$$48, &field, 8, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 457); - zephir_array_update_string(&definition, SL("comment"), &_62$$48, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&columnName, &field, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 463); - ZEPHIR_INIT_NVAR(&_63$$3); - object_init_ex(&_63$$3, phalcon_db_column_ce); - ZEPHIR_CALL_METHOD(NULL, &_63$$3, "__construct", &_64, 212, &columnName, &definition); - zephir_check_call_status(); - zephir_array_append(&columns, &_63$$3, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Mysql.zep", 464); - ZEPHIR_CPY_WRT(&oldColumn, &columnName); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &fields, "rewind", NULL, 0); + ZEPHIR_INIT_VAR(&_0); + zephir_get_class(&_0, model, 1); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_CONCAT_VSVV(&_1, &_0, "-", &schema, &source); + zephir_get_strval(&key, &_1); + zephir_read_property(&_2, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_3, &_2, &key, PH_READONLY, "phalcon/Mvc/Model/MetaData.zep", 626); + if (!(zephir_array_isset_long(&_3, index))) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "initialize", NULL, 29, model, &key, &source, &schema); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_4, &fields, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_4)) { - break; - } - ZEPHIR_CALL_METHOD(&field, &fields, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_65$$49); - zephir_create_array(&_65$$49, 1, 0); - add_assoc_long_ex(&_65$$49, SL("bindType"), 2); - ZEPHIR_CPY_WRT(&definition, &_65$$49); - ZEPHIR_OBS_NVAR(&columnType); - zephir_array_fetch_long(&columnType, &field, 1, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 121); - do { - _66$$49 = 1; - if (_66$$49 == zephir_start_with_str(&columnType, SL("bigint"))) { - ZEPHIR_INIT_NVAR(&_67$$50); - ZVAL_LONG(&_67$$50, 14); - zephir_array_update_string(&definition, SL("type"), &_67$$50, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_68$$50); - ZVAL_LONG(&_68$$50, 1); - zephir_array_update_string(&definition, SL("bindType"), &_68$$50, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("mediumint"))) { - ZEPHIR_INIT_NVAR(&_69$$51); - ZVAL_LONG(&_69$$51, 21); - zephir_array_update_string(&definition, SL("type"), &_69$$51, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_70$$51); - ZVAL_LONG(&_70$$51, 1); - zephir_array_update_string(&definition, SL("bindType"), &_70$$51, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("smallint"))) { - ZEPHIR_INIT_NVAR(&_71$$52); - ZVAL_LONG(&_71$$52, 22); - zephir_array_update_string(&definition, SL("type"), &_71$$52, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_72$$52); - ZVAL_LONG(&_72$$52, 1); - zephir_array_update_string(&definition, SL("bindType"), &_72$$52, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("tinyint"))) { - ZEPHIR_INIT_NVAR(&_73$$53); - ZVAL_LONG(&_73$$53, 26); - zephir_array_update_string(&definition, SL("type"), &_73$$53, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_74$$53); - ZVAL_LONG(&_74$$53, 1); - zephir_array_update_string(&definition, SL("bindType"), &_74$$53, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("int"))) { - ZEPHIR_INIT_NVAR(&_75$$54); - ZVAL_LONG(&_75$$54, 0); - zephir_array_update_string(&definition, SL("type"), &_75$$54, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_76$$54); - ZVAL_LONG(&_76$$54, 1); - zephir_array_update_string(&definition, SL("bindType"), &_76$$54, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("bit"))) { - ZEPHIR_INIT_NVAR(&_77$$55); - ZVAL_LONG(&_77$$55, 19); - zephir_array_update_string(&definition, SL("type"), &_77$$55, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_78$$55); - ZVAL_LONG(&_78$$55, 1); - zephir_array_update_string(&definition, SL("bindType"), &_78$$55, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("enum"))) { - ZEPHIR_INIT_NVAR(&_79$$56); - ZVAL_LONG(&_79$$56, 18); - zephir_array_update_string(&definition, SL("type"), &_79$$56, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("datetime"))) { - ZEPHIR_INIT_NVAR(&_80$$57); - ZVAL_LONG(&_80$$57, 4); - zephir_array_update_string(&definition, SL("type"), &_80$$57, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("date"))) { - ZEPHIR_INIT_NVAR(&_81$$58); - ZVAL_LONG(&_81$$58, 1); - zephir_array_update_string(&definition, SL("type"), &_81$$58, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("decimal"))) { - ZEPHIR_INIT_NVAR(&_82$$59); - ZVAL_LONG(&_82$$59, 3); - zephir_array_update_string(&definition, SL("type"), &_82$$59, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("double"))) { - ZEPHIR_INIT_NVAR(&_83$$60); - ZVAL_LONG(&_83$$60, 9); - zephir_array_update_string(&definition, SL("type"), &_83$$60, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_84$$60); - ZVAL_LONG(&_84$$60, 32); - zephir_array_update_string(&definition, SL("bindType"), &_84$$60, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("float"))) { - ZEPHIR_INIT_NVAR(&_85$$61); - ZVAL_LONG(&_85$$61, 7); - zephir_array_update_string(&definition, SL("type"), &_85$$61, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_86$$61); - ZVAL_LONG(&_86$$61, 32); - zephir_array_update_string(&definition, SL("bindType"), &_86$$61, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("mediumblob"))) { - ZEPHIR_INIT_NVAR(&_87$$62); - ZVAL_LONG(&_87$$62, 12); - zephir_array_update_string(&definition, SL("type"), &_87$$62, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("longblob"))) { - ZEPHIR_INIT_NVAR(&_88$$63); - ZVAL_LONG(&_88$$63, 13); - zephir_array_update_string(&definition, SL("type"), &_88$$63, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("tinyblob"))) { - ZEPHIR_INIT_NVAR(&_89$$64); - ZVAL_LONG(&_89$$64, 10); - zephir_array_update_string(&definition, SL("type"), &_89$$64, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("blob"))) { - ZEPHIR_INIT_NVAR(&_90$$65); - ZVAL_LONG(&_90$$65, 11); - zephir_array_update_string(&definition, SL("type"), &_90$$65, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("timestamp"))) { - ZEPHIR_INIT_NVAR(&_91$$66); - ZVAL_LONG(&_91$$66, 17); - zephir_array_update_string(&definition, SL("type"), &_91$$66, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("time"))) { - ZEPHIR_INIT_NVAR(&_92$$67); - ZVAL_LONG(&_92$$67, 20); - zephir_array_update_string(&definition, SL("type"), &_92$$67, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("json"))) { - ZEPHIR_INIT_NVAR(&_93$$68); - ZVAL_LONG(&_93$$68, 15); - zephir_array_update_string(&definition, SL("type"), &_93$$68, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("longtext"))) { - ZEPHIR_INIT_NVAR(&_94$$69); - ZVAL_LONG(&_94$$69, 24); - zephir_array_update_string(&definition, SL("type"), &_94$$69, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("mediumtext"))) { - ZEPHIR_INIT_NVAR(&_95$$70); - ZVAL_LONG(&_95$$70, 23); - zephir_array_update_string(&definition, SL("type"), &_95$$70, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("tinytext"))) { - ZEPHIR_INIT_NVAR(&_96$$71); - ZVAL_LONG(&_96$$71, 25); - zephir_array_update_string(&definition, SL("type"), &_96$$71, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("text"))) { - ZEPHIR_INIT_NVAR(&_97$$72); - ZVAL_LONG(&_97$$72, 6); - zephir_array_update_string(&definition, SL("type"), &_97$$72, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("varchar"))) { - ZEPHIR_INIT_NVAR(&_98$$73); - ZVAL_LONG(&_98$$73, 2); - zephir_array_update_string(&definition, SL("type"), &_98$$73, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("char"))) { - ZEPHIR_INIT_NVAR(&_99$$74); - ZVAL_LONG(&_99$$74, 5); - zephir_array_update_string(&definition, SL("type"), &_99$$74, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("varbinary"))) { - ZEPHIR_INIT_NVAR(&_100$$75); - ZVAL_LONG(&_100$$75, 26); - zephir_array_update_string(&definition, SL("type"), &_100$$75, PH_COPY | PH_SEPARATE); - break; - } - if (_66$$49 == zephir_start_with_str(&columnType, SL("binary"))) { - ZEPHIR_INIT_NVAR(&_101$$76); - ZVAL_LONG(&_101$$76, 26); - zephir_array_update_string(&definition, SL("type"), &_101$$76, PH_COPY | PH_SEPARATE); - break; - } - ZEPHIR_INIT_NVAR(&_102$$77); - ZVAL_LONG(&_102$$77, 2); - zephir_array_update_string(&definition, SL("type"), &_102$$77, PH_COPY | PH_SEPARATE); - break; - } while(0); - - if (zephir_memnstr_str(&columnType, SL("("), "phalcon/Db/Adapter/Pdo/Mysql.zep", 385)) { - ZEPHIR_INIT_NVAR(&matches); - ZVAL_NULL(&matches); - zephir_array_fetch_string(&_103$$78, &definition, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 388); - ZEPHIR_INIT_NVAR(&_104$$78); - zephir_preg_match(&_104$$78, &sizePattern, &columnType, &matches, 0, 0 , 0 ); - if (ZEPHIR_IS_LONG(&_103$$78, 18)) { - ZVAL_LONG(&_105$$79, 5); - ZVAL_LONG(&_106$$79, -1); - ZEPHIR_INIT_NVAR(&_107$$79); - zephir_substr(&_107$$79, &columnType, 5 , -1 , 0); - zephir_array_update_string(&definition, SL("size"), &_107$$79, PH_COPY | PH_SEPARATE); - } else if (zephir_is_true(&_104$$78)) { - ZEPHIR_OBS_NVAR(&matchOne); - if (zephir_array_isset_long_fetch(&matchOne, &matches, 1, 0)) { - ZEPHIR_INIT_NVAR(&_108$$81); - ZVAL_LONG(&_108$$81, zephir_get_intval(&matchOne)); - zephir_array_update_string(&definition, SL("size"), &_108$$81, PH_COPY | PH_SEPARATE); - } - ZEPHIR_OBS_NVAR(&matchTwo); - if (zephir_array_isset_long_fetch(&matchTwo, &matches, 2, 0)) { - ZEPHIR_INIT_NVAR(&_109$$82); - ZVAL_LONG(&_109$$82, zephir_get_intval(&matchTwo)); - zephir_array_update_string(&definition, SL("scale"), &_109$$82, PH_COPY | PH_SEPARATE); - } - } - } - if (zephir_memnstr_str(&columnType, SL("unsigned"), "phalcon/Db/Adapter/Pdo/Mysql.zep", 404)) { - zephir_array_update_string(&definition, SL("unsigned"), &__$true, PH_COPY | PH_SEPARATE); - } - if (Z_TYPE_P(&oldColumn) == IS_NULL) { - zephir_array_update_string(&definition, SL("first"), &__$true, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_110$$49, &field, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 420); - if (ZEPHIR_IS_STRING(&_110$$49, "PRI")) { - zephir_array_update_string(&definition, SL("primary"), &__$true, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_111$$49, &field, 3, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 427); - if (ZEPHIR_IS_STRING(&_111$$49, "YES")) { - zephir_array_update_string(&definition, SL("notNull"), &__$false, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_112$$49, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 434); - if (ZEPHIR_IS_STRING(&_112$$49, "auto_increment")) { - zephir_array_update_string(&definition, SL("autoIncrement"), &__$true, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_113$$49, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 441); - if (Z_TYPE_P(&_113$$49) != IS_NULL) { - zephir_array_fetch_long(&_114$$89, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 442); - if (zephir_memnstr_str(&_114$$89, SL("on update"), "phalcon/Db/Adapter/Pdo/Mysql.zep", 442)) { - zephir_array_fetch_long(&_115$$90, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 443); - zephir_array_fetch_long(&_116$$90, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 443); - ZEPHIR_INIT_NVAR(&_117$$90); - ZEPHIR_CONCAT_VSV(&_117$$90, &_115$$90, " ", &_116$$90); - zephir_array_update_string(&definition, SL("default"), &_117$$90, PH_COPY | PH_SEPARATE); - } else { - zephir_array_fetch_long(&_118$$91, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 445); - zephir_array_update_string(&definition, SL("default"), &_118$$91, PH_COPY | PH_SEPARATE); - } - } else { - zephir_array_fetch_long(&_119$$92, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 448); - if (zephir_memnstr_str(&_119$$92, SL("on update"), "phalcon/Db/Adapter/Pdo/Mysql.zep", 448)) { - zephir_array_fetch_long(&_120$$93, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 449); - ZEPHIR_INIT_NVAR(&_121$$93); - ZEPHIR_CONCAT_SV(&_121$$93, "NULL ", &_120$$93); - zephir_array_update_string(&definition, SL("default"), &_121$$93, PH_COPY | PH_SEPARATE); - } - } - zephir_array_fetch_long(&_122$$49, &field, 8, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 456); - if (Z_TYPE_P(&_122$$49) != IS_NULL) { - zephir_array_fetch_long(&_123$$94, &field, 8, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 457); - zephir_array_update_string(&definition, SL("comment"), &_123$$94, PH_COPY | PH_SEPARATE); - } - ZEPHIR_OBS_NVAR(&columnName); - zephir_array_fetch_long(&columnName, &field, 0, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 463); - ZEPHIR_INIT_NVAR(&_124$$49); - object_init_ex(&_124$$49, phalcon_db_column_ce); - ZEPHIR_CALL_METHOD(NULL, &_124$$49, "__construct", &_64, 212, &columnName, &definition); - zephir_check_call_status(); - zephir_array_append(&columns, &_124$$49, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Mysql.zep", 464); - ZEPHIR_CPY_WRT(&oldColumn, &columnName); - ZEPHIR_CALL_METHOD(NULL, &fields, "next", NULL, 0); - zephir_check_call_status(); - } } - ZEPHIR_INIT_NVAR(&field); - RETURN_CCTOR(&columns); + zephir_read_property(&_4, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_5, &_4, &key, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/MetaData.zep", 630); + zephir_array_fetch_long(&_6, &_5, index, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/MetaData.zep", 630); + RETURN_CTOR(&_6); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeIndexes) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, reset) { - zend_string *_25; - zend_ulong _24; + zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_29 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *table_param = NULL, *schema_param = NULL, __$null, indexes, index, keyName, indexType, indexObjects, columns, name, _0, _1, _2, _3, *_4, _5, *_22, _23, _6$$4, _7$$3, _9$$3, _10$$3, _8$$6, _11$$7, _12$$8, _13$$9, _14$$12, _15$$11, _17$$11, _18$$11, _16$$14, _19$$15, _20$$16, _21$$17, _26$$19, _27$$19, _28$$19, _30$$20, _31$$20, _32$$20; - zval table, schema; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&indexes); - ZVAL_UNDEF(&index); - ZVAL_UNDEF(&keyName); - ZVAL_UNDEF(&indexType); - ZVAL_UNDEF(&indexObjects); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&name); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_23); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_9$$3); - ZVAL_UNDEF(&_10$$3); - ZVAL_UNDEF(&_8$$6); - ZVAL_UNDEF(&_11$$7); - ZVAL_UNDEF(&_12$$8); - ZVAL_UNDEF(&_13$$9); - ZVAL_UNDEF(&_14$$12); - ZVAL_UNDEF(&_15$$11); - ZVAL_UNDEF(&_17$$11); - ZVAL_UNDEF(&_18$$11); - ZVAL_UNDEF(&_16$$14); - ZVAL_UNDEF(&_19$$15); - ZVAL_UNDEF(&_20$$16); - ZVAL_UNDEF(&_21$$17); - ZVAL_UNDEF(&_26$$19); - ZVAL_UNDEF(&_27$$19); - ZVAL_UNDEF(&_28$$19); - ZVAL_UNDEF(&_30$$20); - ZVAL_UNDEF(&_31$$20); - ZVAL_UNDEF(&_32$$20); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("metaData"), &_0); + ZEPHIR_INIT_VAR(&_1); + array_init(&_1); + zephir_update_property_zval(this_ptr, ZEND_STRL("columnMap"), &_1); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, setAutomaticCreateAttributes) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval attributes; + zval *model, model_sub, *attributes_param = NULL, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); - } else { - ZEPHIR_INIT_VAR(&table); - } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); - } else { - if (UNEXPECTED(Z_TYPE_P(schema_param) != IS_STRING && Z_TYPE_P(schema_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schema' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schema_param) == IS_STRING)) { - zephir_get_strval(&schema, schema_param); - } else { - ZEPHIR_INIT_VAR(&schema); - } - } + zephir_fetch_params(1, 2, 0, &model, &attributes_param); + zephir_get_arrval(&attributes, attributes_param); - ZEPHIR_INIT_VAR(&indexes); - array_init(&indexes); - zephir_read_property(&_1, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_2, &_1, "describeindexes", NULL, 0, &table, &schema); + ZVAL_LONG(&_0, 10); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "writemetadataindex", NULL, 30, model, &_0, &attributes); zephir_check_call_status(); - ZVAL_LONG(&_3, 2); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, 0, &_2, &_3); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, setAutomaticUpdateAttributes) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval attributes; + zval *model, model_sub, *attributes_param = NULL, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&attributes); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &model, &attributes_param); + zephir_get_arrval(&attributes, attributes_param); + + + ZVAL_LONG(&_0, 11); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "writemetadataindex", NULL, 30, model, &_0, &attributes); zephir_check_call_status(); - zephir_is_iterable(&_0, 0, "phalcon/Db/Adapter/Pdo/Mysql.zep", 514); - if (Z_TYPE_P(&_0) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _4) - { - ZEPHIR_INIT_NVAR(&index); - ZVAL_COPY(&index, _4); - zephir_array_fetch_string(&keyName, &index, SL("Key_name"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 487); - zephir_array_fetch_string(&indexType, &index, SL("Index_type"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 488); - if (!(zephir_array_isset(&indexes, &keyName))) { - ZEPHIR_INIT_NVAR(&_6$$4); - array_init(&_6$$4); - zephir_array_update_zval(&indexes, &keyName, &_6$$4, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch(&_7$$3, &indexes, &keyName, PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 494); - if (!(zephir_array_isset_string(&_7$$3, SL("columns")))) { - ZEPHIR_INIT_NVAR(&columns); - array_init(&columns); - } else { - zephir_array_fetch(&_8$$6, &indexes, &keyName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 497); - ZEPHIR_OBS_NVAR(&columns); - zephir_array_fetch_string(&columns, &_8$$6, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 497); - } - zephir_array_fetch_string(&_9$$3, &index, SL("Column_name"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 500); - zephir_array_append(&columns, &_9$$3, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Mysql.zep", 500); - zephir_array_update_multi(&indexes, &columns, SL("zs"), 3, &keyName, SL("columns")); - zephir_array_fetch_string(&_10$$3, &index, SL("Non_unique"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 507); - if (ZEPHIR_IS_STRING(&keyName, "PRIMARY")) { - ZEPHIR_INIT_NVAR(&_11$$7); - ZVAL_STRING(&_11$$7, "PRIMARY"); - zephir_array_update_multi(&indexes, &_11$$7, SL("zs"), 3, &keyName, SL("type")); - } else if (ZEPHIR_IS_STRING(&indexType, "FULLTEXT")) { - ZEPHIR_INIT_NVAR(&_12$$8); - ZVAL_STRING(&_12$$8, "FULLTEXT"); - zephir_array_update_multi(&indexes, &_12$$8, SL("zs"), 3, &keyName, SL("type")); - } else if (ZEPHIR_IS_LONG(&_10$$3, 0)) { - ZEPHIR_INIT_NVAR(&_13$$9); - ZVAL_STRING(&_13$$9, "UNIQUE"); - zephir_array_update_multi(&indexes, &_13$$9, SL("zs"), 3, &keyName, SL("type")); - } else { - zephir_array_update_multi(&indexes, &__$null, SL("zs"), 3, &keyName, SL("type")); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5, &_0, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5)) { - break; - } - ZEPHIR_CALL_METHOD(&index, &_0, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&keyName); - zephir_array_fetch_string(&keyName, &index, SL("Key_name"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 487); - ZEPHIR_OBS_NVAR(&indexType); - zephir_array_fetch_string(&indexType, &index, SL("Index_type"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 488); - if (!(zephir_array_isset(&indexes, &keyName))) { - ZEPHIR_INIT_NVAR(&_14$$12); - array_init(&_14$$12); - zephir_array_update_zval(&indexes, &keyName, &_14$$12, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch(&_15$$11, &indexes, &keyName, PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 494); - if (!(zephir_array_isset_string(&_15$$11, SL("columns")))) { - ZEPHIR_INIT_NVAR(&columns); - array_init(&columns); - } else { - zephir_array_fetch(&_16$$14, &indexes, &keyName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 497); - ZEPHIR_OBS_NVAR(&columns); - zephir_array_fetch_string(&columns, &_16$$14, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 497); - } - zephir_array_fetch_string(&_17$$11, &index, SL("Column_name"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 500); - zephir_array_append(&columns, &_17$$11, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Mysql.zep", 500); - zephir_array_update_multi(&indexes, &columns, SL("zs"), 3, &keyName, SL("columns")); - zephir_array_fetch_string(&_18$$11, &index, SL("Non_unique"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 507); - if (ZEPHIR_IS_STRING(&keyName, "PRIMARY")) { - ZEPHIR_INIT_NVAR(&_19$$15); - ZVAL_STRING(&_19$$15, "PRIMARY"); - zephir_array_update_multi(&indexes, &_19$$15, SL("zs"), 3, &keyName, SL("type")); - } else if (ZEPHIR_IS_STRING(&indexType, "FULLTEXT")) { - ZEPHIR_INIT_NVAR(&_20$$16); - ZVAL_STRING(&_20$$16, "FULLTEXT"); - zephir_array_update_multi(&indexes, &_20$$16, SL("zs"), 3, &keyName, SL("type")); - } else if (ZEPHIR_IS_LONG(&_18$$11, 0)) { - ZEPHIR_INIT_NVAR(&_21$$17); - ZVAL_STRING(&_21$$17, "UNIQUE"); - zephir_array_update_multi(&indexes, &_21$$17, SL("zs"), 3, &keyName, SL("type")); - } else { - zephir_array_update_multi(&indexes, &__$null, SL("zs"), 3, &keyName, SL("type")); - } - ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&index); - ZEPHIR_INIT_VAR(&indexObjects); - array_init(&indexObjects); - zephir_is_iterable(&indexes, 0, "phalcon/Db/Adapter/Pdo/Mysql.zep", 524); - if (Z_TYPE_P(&indexes) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&indexes), _24, _25, _22) - { - ZEPHIR_INIT_NVAR(&name); - if (_25 != NULL) { - ZVAL_STR_COPY(&name, _25); - } else { - ZVAL_LONG(&name, _24); - } - ZEPHIR_INIT_NVAR(&index); - ZVAL_COPY(&index, _22); - ZEPHIR_INIT_NVAR(&_26$$19); - object_init_ex(&_26$$19, phalcon_db_index_ce); - zephir_array_fetch_string(&_27$$19, &index, SL("columns"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 519); - zephir_array_fetch_string(&_28$$19, &index, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 521); - ZEPHIR_CALL_METHOD(NULL, &_26$$19, "__construct", &_29, 32, &name, &_27$$19, &_28$$19); - zephir_check_call_status(); - zephir_array_update_zval(&indexObjects, &name, &_26$$19, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &indexes, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_23, &indexes, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_23)) { - break; - } - ZEPHIR_CALL_METHOD(&name, &indexes, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&index, &indexes, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_30$$20); - object_init_ex(&_30$$20, phalcon_db_index_ce); - zephir_array_fetch_string(&_31$$20, &index, SL("columns"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 519); - zephir_array_fetch_string(&_32$$20, &index, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 521); - ZEPHIR_CALL_METHOD(NULL, &_30$$20, "__construct", &_29, 32, &name, &_31$$20, &_32$$20); - zephir_check_call_status(); - zephir_array_update_zval(&indexObjects, &name, &_30$$20, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &indexes, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&index); - ZEPHIR_INIT_NVAR(&name); - RETURN_CCTOR(&indexObjects); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeReferences) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, setEmptyStringAttributes) { - zval _14$$3, _23$$6, _29$$9, _33$$10; - zend_string *_27; - zend_ulong _26; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_31 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *table_param = NULL, *schema_param = NULL, references, reference, arrayReference, constraintName, referenceObjects, name, referencedSchema, referencedTable, columns, referencedColumns, referenceUpdate, referenceDelete, _0, _1, _2, _3, *_4, _5, *_24, _25, _6$$5, _7$$5, _8$$5, _9$$5, _10$$5, _11$$5, _12$$3, _13$$3, _15$$8, _16$$8, _17$$8, _18$$8, _19$$8, _20$$8, _21$$6, _22$$6, _28$$9, _30$$9, _32$$10, _34$$10; - zval table, schema; + zval attributes; + zval *model, model_sub, *attributes_param = NULL, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&references); - ZVAL_UNDEF(&reference); - ZVAL_UNDEF(&arrayReference); - ZVAL_UNDEF(&constraintName); - ZVAL_UNDEF(&referenceObjects); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&referencedSchema); - ZVAL_UNDEF(&referencedTable); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&referencedColumns); - ZVAL_UNDEF(&referenceUpdate); - ZVAL_UNDEF(&referenceDelete); + ZVAL_UNDEF(&model_sub); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&attributes); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &model, &attributes_param); + zephir_get_arrval(&attributes, attributes_param); + + + ZVAL_LONG(&_0, 13); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "writemetadataindex", NULL, 30, model, &_0, &attributes); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, setDI) +{ + zval *container, container_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&container_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &container); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); +} + +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, setStrategy) +{ + zval *strategy, strategy_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&strategy_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(strategy, phalcon_mvc_model_metadata_strategy_strategyinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &strategy); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("strategy"), strategy); +} + +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, write) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval data; + zval *key_param = NULL, *data_param = NULL, result, option, _1, _2, _0$$3; + zval key; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&option); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_25); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_10$$5); - ZVAL_UNDEF(&_11$$5); - ZVAL_UNDEF(&_12$$3); - ZVAL_UNDEF(&_13$$3); - ZVAL_UNDEF(&_15$$8); - ZVAL_UNDEF(&_16$$8); - ZVAL_UNDEF(&_17$$8); - ZVAL_UNDEF(&_18$$8); - ZVAL_UNDEF(&_19$$8); - ZVAL_UNDEF(&_20$$8); - ZVAL_UNDEF(&_21$$6); - ZVAL_UNDEF(&_22$$6); - ZVAL_UNDEF(&_28$$9); - ZVAL_UNDEF(&_30$$9); - ZVAL_UNDEF(&_32$$10); - ZVAL_UNDEF(&_34$$10); - ZVAL_UNDEF(&_14$$3); - ZVAL_UNDEF(&_23$$6); - ZVAL_UNDEF(&_29$$9); - ZVAL_UNDEF(&_33$$10); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&data); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(key) + Z_PARAM_ARRAY(data) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); - } else { - ZEPHIR_INIT_VAR(&table); - } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); - } else { - if (UNEXPECTED(Z_TYPE_P(schema_param) != IS_STRING && Z_TYPE_P(schema_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schema' must be of the type string")); + zephir_fetch_params(1, 2, 0, &key_param, &data_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(schema_param) == IS_STRING)) { - zephir_get_strval(&schema, schema_param); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_INIT_VAR(&schema); - } + ZEPHIR_INIT_VAR(&key); } + zephir_get_arrval(&data, data_param); - ZEPHIR_INIT_VAR(&references); - array_init(&references); - zephir_read_property(&_1, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_2, &_1, "describereferences", NULL, 0, &table, &schema); - zephir_check_call_status(); - ZVAL_LONG(&_3, 3); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, 0, &_2, &_3); - zephir_check_call_status(); - zephir_is_iterable(&_0, 0, "phalcon/Db/Adapter/Pdo/Mysql.zep", 577); - if (Z_TYPE_P(&_0) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _4) - { - ZEPHIR_INIT_NVAR(&reference); - ZVAL_COPY(&reference, _4); - zephir_array_fetch_long(&constraintName, &reference, 2, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 546); - if (!(zephir_array_isset(&references, &constraintName))) { - ZEPHIR_OBS_NVAR(&referencedSchema); - zephir_array_fetch_long(&referencedSchema, &reference, 3, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 549); - ZEPHIR_OBS_NVAR(&referencedTable); - zephir_array_fetch_long(&referencedTable, &reference, 4, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 550); - ZEPHIR_OBS_NVAR(&referenceUpdate); - zephir_array_fetch_long(&referenceUpdate, &reference, 6, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 551); - ZEPHIR_OBS_NVAR(&referenceDelete); - zephir_array_fetch_long(&referenceDelete, &reference, 7, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 552); - ZEPHIR_INIT_NVAR(&columns); - array_init(&columns); - ZEPHIR_INIT_NVAR(&referencedColumns); - array_init(&referencedColumns); - } else { - zephir_array_fetch(&_6$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 556); - ZEPHIR_OBS_NVAR(&referencedSchema); - zephir_array_fetch_string(&referencedSchema, &_6$$5, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 556); - zephir_array_fetch(&_7$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 557); - ZEPHIR_OBS_NVAR(&referencedTable); - zephir_array_fetch_string(&referencedTable, &_7$$5, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 557); - zephir_array_fetch(&_8$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 558); - ZEPHIR_OBS_NVAR(&columns); - zephir_array_fetch_string(&columns, &_8$$5, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 558); - zephir_array_fetch(&_9$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 559); - ZEPHIR_OBS_NVAR(&referencedColumns); - zephir_array_fetch_string(&referencedColumns, &_9$$5, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 559); - zephir_array_fetch(&_10$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 560); - ZEPHIR_OBS_NVAR(&referenceUpdate); - zephir_array_fetch_string(&referenceUpdate, &_10$$5, SL("onUpdate"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 560); - zephir_array_fetch(&_11$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 561); - ZEPHIR_OBS_NVAR(&referenceDelete); - zephir_array_fetch_string(&referenceDelete, &_11$$5, SL("onDelete"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 561); - } - zephir_array_fetch_long(&_12$$3, &reference, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 564); - zephir_array_append(&columns, &_12$$3, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Mysql.zep", 564); - zephir_array_fetch_long(&_13$$3, &reference, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 565); - zephir_array_append(&referencedColumns, &_13$$3, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Mysql.zep", 565); - ZEPHIR_INIT_NVAR(&_14$$3); - zephir_create_array(&_14$$3, 6, 0); - zephir_array_update_string(&_14$$3, SL("referencedSchema"), &referencedSchema, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_14$$3, SL("referencedTable"), &referencedTable, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_14$$3, SL("columns"), &columns, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_14$$3, SL("referencedColumns"), &referencedColumns, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_14$$3, SL("onUpdate"), &referenceUpdate, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_14$$3, SL("onDelete"), &referenceDelete, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&references, &constraintName, &_14$$3, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5, &_0, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5)) { - break; - } - ZEPHIR_CALL_METHOD(&reference, &_0, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&constraintName); - zephir_array_fetch_long(&constraintName, &reference, 2, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 546); - if (!(zephir_array_isset(&references, &constraintName))) { - ZEPHIR_OBS_NVAR(&referencedSchema); - zephir_array_fetch_long(&referencedSchema, &reference, 3, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 549); - ZEPHIR_OBS_NVAR(&referencedTable); - zephir_array_fetch_long(&referencedTable, &reference, 4, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 550); - ZEPHIR_OBS_NVAR(&referenceUpdate); - zephir_array_fetch_long(&referenceUpdate, &reference, 6, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 551); - ZEPHIR_OBS_NVAR(&referenceDelete); - zephir_array_fetch_long(&referenceDelete, &reference, 7, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 552); - ZEPHIR_INIT_NVAR(&columns); - array_init(&columns); - ZEPHIR_INIT_NVAR(&referencedColumns); - array_init(&referencedColumns); - } else { - zephir_array_fetch(&_15$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 556); - ZEPHIR_OBS_NVAR(&referencedSchema); - zephir_array_fetch_string(&referencedSchema, &_15$$8, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 556); - zephir_array_fetch(&_16$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 557); - ZEPHIR_OBS_NVAR(&referencedTable); - zephir_array_fetch_string(&referencedTable, &_16$$8, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 557); - zephir_array_fetch(&_17$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 558); - ZEPHIR_OBS_NVAR(&columns); - zephir_array_fetch_string(&columns, &_17$$8, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 558); - zephir_array_fetch(&_18$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 559); - ZEPHIR_OBS_NVAR(&referencedColumns); - zephir_array_fetch_string(&referencedColumns, &_18$$8, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 559); - zephir_array_fetch(&_19$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 560); - ZEPHIR_OBS_NVAR(&referenceUpdate); - zephir_array_fetch_string(&referenceUpdate, &_19$$8, SL("onUpdate"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 560); - zephir_array_fetch(&_20$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 561); - ZEPHIR_OBS_NVAR(&referenceDelete); - zephir_array_fetch_string(&referenceDelete, &_20$$8, SL("onDelete"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 561); - } - zephir_array_fetch_long(&_21$$6, &reference, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 564); - zephir_array_append(&columns, &_21$$6, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Mysql.zep", 564); - zephir_array_fetch_long(&_22$$6, &reference, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 565); - zephir_array_append(&referencedColumns, &_22$$6, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Mysql.zep", 565); - ZEPHIR_INIT_NVAR(&_23$$6); - zephir_create_array(&_23$$6, 6, 0); - zephir_array_update_string(&_23$$6, SL("referencedSchema"), &referencedSchema, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_23$$6, SL("referencedTable"), &referencedTable, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_23$$6, SL("columns"), &columns, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_23$$6, SL("referencedColumns"), &referencedColumns, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_23$$6, SL("onUpdate"), &referenceUpdate, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_23$$6, SL("onDelete"), &referenceDelete, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&references, &constraintName, &_23$$6, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); - zephir_check_call_status(); + + /* try_start_1: */ + + ZEPHIR_INIT_VAR(&option); + ZVAL_BOOL(&option, ZEPHIR_GLOBAL(orm).exception_on_failed_metadata_save); + zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&result, &_0$$3, "set", NULL, 0, &key, &data); + zephir_check_call_status_or_jump(try_end_1); + if (ZEPHIR_IS_FALSE_IDENTICAL(&result)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "throwwriteexception", NULL, 31, &option); + zephir_check_call_status_or_jump(try_end_1); } - } - ZEPHIR_INIT_NVAR(&reference); - ZEPHIR_INIT_VAR(&referenceObjects); - array_init(&referenceObjects); - zephir_is_iterable(&references, 0, "phalcon/Db/Adapter/Pdo/Mysql.zep", 592); - if (Z_TYPE_P(&references) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&references), _26, _27, _24) - { - ZEPHIR_INIT_NVAR(&name); - if (_27 != NULL) { - ZVAL_STR_COPY(&name, _27); - } else { - ZVAL_LONG(&name, _26); - } - ZEPHIR_INIT_NVAR(&arrayReference); - ZVAL_COPY(&arrayReference, _24); - ZEPHIR_INIT_NVAR(&_28$$9); - object_init_ex(&_28$$9, phalcon_db_reference_ce); - ZEPHIR_INIT_NVAR(&_29$$9); - zephir_create_array(&_29$$9, 6, 0); - ZEPHIR_OBS_NVAR(&_30$$9); - zephir_array_fetch_string(&_30$$9, &arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 582); - zephir_array_update_string(&_29$$9, SL("referencedSchema"), &_30$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_30$$9); - zephir_array_fetch_string(&_30$$9, &arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 583); - zephir_array_update_string(&_29$$9, SL("referencedTable"), &_30$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_30$$9); - zephir_array_fetch_string(&_30$$9, &arrayReference, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 584); - zephir_array_update_string(&_29$$9, SL("columns"), &_30$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_30$$9); - zephir_array_fetch_string(&_30$$9, &arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 585); - zephir_array_update_string(&_29$$9, SL("referencedColumns"), &_30$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_30$$9); - zephir_array_fetch_string(&_30$$9, &arrayReference, SL("onUpdate"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 586); - zephir_array_update_string(&_29$$9, SL("onUpdate"), &_30$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_30$$9); - zephir_array_fetch_string(&_30$$9, &arrayReference, SL("onDelete"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 588); - zephir_array_update_string(&_29$$9, SL("onDelete"), &_30$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &_28$$9, "__construct", &_31, 33, &name, &_29$$9); - zephir_check_call_status(); - zephir_array_update_zval(&referenceObjects, &name, &_28$$9, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &references, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_25, &references, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_25)) { - break; - } - ZEPHIR_CALL_METHOD(&name, &references, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&arrayReference, &references, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_32$$10); - object_init_ex(&_32$$10, phalcon_db_reference_ce); - ZEPHIR_INIT_NVAR(&_33$$10); - zephir_create_array(&_33$$10, 6, 0); - ZEPHIR_OBS_NVAR(&_34$$10); - zephir_array_fetch_string(&_34$$10, &arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 582); - zephir_array_update_string(&_33$$10, SL("referencedSchema"), &_34$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_34$$10); - zephir_array_fetch_string(&_34$$10, &arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 583); - zephir_array_update_string(&_33$$10, SL("referencedTable"), &_34$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_34$$10); - zephir_array_fetch_string(&_34$$10, &arrayReference, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 584); - zephir_array_update_string(&_33$$10, SL("columns"), &_34$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_34$$10); - zephir_array_fetch_string(&_34$$10, &arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 585); - zephir_array_update_string(&_33$$10, SL("referencedColumns"), &_34$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_34$$10); - zephir_array_fetch_string(&_34$$10, &arrayReference, SL("onUpdate"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 586); - zephir_array_update_string(&_33$$10, SL("onUpdate"), &_34$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_34$$10); - zephir_array_fetch_string(&_34$$10, &arrayReference, SL("onDelete"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 588); - zephir_array_update_string(&_33$$10, SL("onDelete"), &_34$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &_32$$10, "__construct", &_31, 33, &name, &_33$$10); - zephir_check_call_status(); - zephir_array_update_zval(&referenceObjects, &name, &_32$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &references, "next", NULL, 0); + + try_end_1: + + if (EG(exception)) { + ZEPHIR_INIT_VAR(&_1); + ZVAL_OBJ(&_1, EG(exception)); + Z_ADDREF_P(&_1); + ZEPHIR_INIT_VAR(&_2); + if (zephir_is_instance_of(&_1, SL("Exception"))) { + zend_clear_exception(); + ZEPHIR_CPY_WRT(&_2, &_1); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "throwwriteexception", NULL, 31, &option); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&arrayReference); - ZEPHIR_INIT_NVAR(&name); - RETURN_CCTOR(&referenceObjects); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, getDsnDefaults) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, writeMetaDataIndex) { + zend_bool _0, _1; + zval key; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long index, ZEPHIR_LAST_CALL_STATUS; + zval *model, model_sub, *index_param = NULL, *data, data_sub, source, schema, _2, _3, _4; zval *this_ptr = getThis(); - - - zephir_create_array(return_value, 1, 0); - add_assoc_stringl_ex(return_value, SL("charset"), SL("utf8mb4")); - return; -} - - - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&source); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&key); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_LONG(index) + Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &model, &index_param, &data); + index = zephir_get_intval(index_param); - -ZEPHIR_INIT_CLASS(Phalcon_Db_Adapter_Pdo_Postgresql) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Adapter\\Pdo, Postgresql, phalcon, db_adapter_pdo_postgresql, phalcon_db_adapter_pdo_abstractpdo_ce, phalcon_db_adapter_pdo_postgresql_method_entry, 0); - - zend_declare_property_string(phalcon_db_adapter_pdo_postgresql_ce, SL("dialectType"), "postgresql", ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_db_adapter_pdo_postgresql_ce, SL("type"), "pgsql", ZEND_ACC_PROTECTED); - return SUCCESS; + _0 = Z_TYPE_P(data) != IS_ARRAY; + if (_0) { + _0 = Z_TYPE_P(data) != IS_STRING; + } + _1 = _0; + if (_1) { + _1 = ((Z_TYPE_P(data) == IS_TRUE || Z_TYPE_P(data) == IS_FALSE) != 1); + } + if (UNEXPECTED(_1)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid data for index", "phalcon/Mvc/Model/MetaData.zep", 765); + return; + } + ZEPHIR_CALL_METHOD(&source, model, "getsource", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&schema, model, "getschema", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + zephir_get_class(&_2, model, 1); + ZEPHIR_INIT_VAR(&_3); + ZEPHIR_CONCAT_VSVV(&_3, &_2, "-", &schema, &source); + zephir_get_strval(&key, &_3); + zephir_read_property(&_4, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset(&_4, &key))) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "initialize", NULL, 29, model, &key, &source, &schema); + zephir_check_call_status(); + } + zephir_update_property_array_multi(this_ptr, SL("metaData"), data, SL("zl"), 2, &key, index); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, __construct) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, initialize) { + zval prefixKey; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_1 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *descriptor_param = NULL, _0$$3; - zval descriptor; + zval *model, model_sub, *key, key_sub, *table, table_sub, *schema, schema_sub, strategy, className, metaData, data, modelMetadata, modelColumnMap, container, keyName, _4, _5, _0$$3, _1$$4, _2$$8, _3$$8; zval *this_ptr = getThis(); - ZVAL_UNDEF(&descriptor); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&key_sub); + ZVAL_UNDEF(&table_sub); + ZVAL_UNDEF(&schema_sub); + ZVAL_UNDEF(&strategy); + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&metaData); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&modelMetadata); + ZVAL_UNDEF(&modelColumnMap); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&keyName); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$8); + ZVAL_UNDEF(&_3$$8); + ZVAL_UNDEF(&prefixKey); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(descriptor) + ZEND_PARSE_PARAMETERS_START(4, 4) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_ZVAL(key) + Z_PARAM_ZVAL(table) + Z_PARAM_ZVAL(schema) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &descriptor_param); - ZEPHIR_OBS_COPY_OR_DUP(&descriptor, descriptor_param); + zephir_fetch_params(1, 4, 0, &model, &key, &table, &schema); - if (zephir_array_isset_string(&descriptor, SL("charset"))) { - ZEPHIR_INIT_VAR(&_0$$3); - ZVAL_STRING(&_0$$3, "Postgres does not allow the charset to be changed in the DSN."); - ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_0$$3); + ZEPHIR_INIT_VAR(&strategy); + ZVAL_NULL(&strategy); + ZEPHIR_INIT_VAR(&className); + zephir_get_class(&className, model, 0); + if (Z_TYPE_P(key) != IS_NULL) { + zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&metaData, &_0$$3); + if (!(zephir_array_isset(&metaData, key))) { + ZEPHIR_INIT_VAR(&_1$$4); + ZEPHIR_CONCAT_SV(&_1$$4, "meta-", key); + zephir_get_strval(&prefixKey, &_1$$4); + ZEPHIR_CALL_METHOD(&data, this_ptr, "read", NULL, 0, &prefixKey); + zephir_check_call_status(); + if (Z_TYPE_P(&data) != IS_NULL) { + zephir_update_property_array(this_ptr, SL("metaData"), key, &data); + } else { + if ((zephir_method_exists_ex(model, ZEND_STRL("metadata")) == SUCCESS)) { + ZEPHIR_CALL_METHOD(&modelMetadata, model, "metadata", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&modelMetadata) != IS_ARRAY)) { + ZEPHIR_INIT_VAR(&_2$$8); + object_init_ex(&_2$$8, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_3$$8); + ZEPHIR_CONCAT_SV(&_3$$8, "Invalid meta-data for model ", &className); + ZEPHIR_CALL_METHOD(NULL, &_2$$8, "__construct", NULL, 8, &_3$$8); + zephir_check_call_status(); + zephir_throw_exception_debug(&_2$$8, "phalcon/Mvc/Model/MetaData.zep", 817); + ZEPHIR_MM_RESTORE(); + return; + } + } else { + ZEPHIR_CALL_METHOD(&container, this_ptr, "getdi", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&strategy, this_ptr, "getstrategy", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&modelMetadata, &strategy, "getmetadata", NULL, 0, model, &container); + zephir_check_call_status(); + } + zephir_update_property_array(this_ptr, SL("metaData"), key, &modelMetadata); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "write", NULL, 0, &prefixKey, &modelMetadata); + zephir_check_call_status(); + } + } + } + if (!(ZEPHIR_GLOBAL(orm).column_renaming)) { + RETURN_MM_NULL(); + } + ZEPHIR_INIT_VAR(&keyName); + zephir_fast_strtolower(&keyName, &className); + zephir_read_property(&_4, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset(&_4, &keyName)) { + RETURN_MM_NULL(); + } + ZEPHIR_INIT_VAR(&_5); + ZEPHIR_CONCAT_SV(&_5, "map-", &keyName); + zephir_get_strval(&prefixKey, &_5); + ZEPHIR_CALL_METHOD(&data, this_ptr, "read", NULL, 0, &prefixKey); + zephir_check_call_status(); + if (Z_TYPE_P(&data) != IS_NULL) { + zephir_update_property_array(this_ptr, SL("columnMap"), &keyName, &data); + RETURN_MM_NULL(); + } + if (Z_TYPE_P(&strategy) != IS_OBJECT) { + ZEPHIR_CALL_METHOD(&container, this_ptr, "getdi", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&strategy, this_ptr, "getstrategy", NULL, 0); zephir_check_call_status(); } - ZEPHIR_CALL_PARENT(NULL, phalcon_db_adapter_pdo_postgresql_ce, getThis(), "__construct", &_1, 0, &descriptor); + ZEPHIR_CALL_METHOD(&modelColumnMap, &strategy, "getcolumnmaps", NULL, 0, model, &container); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("columnMap"), &keyName, &modelColumnMap); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "write", NULL, 0, &prefixKey, &modelColumnMap); zephir_check_call_status(); ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, connect) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData, throwWriteException) { - zend_bool _3$$6; + zval message; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_5 = NULL; - zval *descriptor_param = NULL, __$null, schema, sql, status, _0$$3, _2$$6, _4$$6; - zval descriptor, _1$$3; + zval *option, option_sub, _0$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&descriptor); - ZVAL_UNDEF(&_1$$3); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&status); + ZVAL_UNDEF(&option_sub); ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_2$$6); - ZVAL_UNDEF(&_4$$6); + ZVAL_UNDEF(&message); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY_OR_NULL(descriptor) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(option) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &descriptor_param); - if (!descriptor_param) { - ZEPHIR_INIT_VAR(&descriptor); + zephir_fetch_params(1, 1, 0, &option); + + + ZEPHIR_INIT_VAR(&message); + ZVAL_STRING(&message, "Failed to store metaData to the cache adapter"); + if (zephir_is_true(option)) { + ZEPHIR_INIT_VAR(&_0$$3); + object_init_ex(&_0$$3, phalcon_mvc_model_exception_ce); + ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 8, &message); + zephir_check_call_status(); + zephir_throw_exception_debug(&_0$$3, "phalcon/Mvc/Model/MetaData.zep", 901); + ZEPHIR_MM_RESTORE(); + return; } else { - zephir_get_arrval(&descriptor, descriptor_param); + ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &message); + zephir_check_call_status(); } + ZEPHIR_MM_RESTORE(); +} +zend_object *zephir_init_properties_Phalcon_Mvc_Model_MetaData(zend_class_entry *class_type) +{ + zval _0, _2, _1$$3, _3$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + - if (ZEPHIR_IS_EMPTY(&descriptor)) { - ZEPHIR_OBS_VAR(&_0$$3); - zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("descriptor"), PH_NOISY_CC); - zephir_get_arrval(&_1$$3, &_0$$3); - ZEPHIR_CPY_WRT(&descriptor, &_1$$3); + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("metaData"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("columnMap"), &_3$$4); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); } - ZEPHIR_OBS_VAR(&schema); - if (zephir_array_isset_string_fetch(&schema, &descriptor, SL("schema"), 0)) { - zephir_array_unset_string(&descriptor, SL("schema"), PH_SEPARATE); - } else { - ZEPHIR_INIT_NVAR(&schema); - ZVAL_NULL(&schema); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_MetaDataInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model, MetaDataInterface, phalcon, mvc_model_metadatainterface, phalcon_mvc_model_metadatainterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getAttributes); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getAutomaticCreateAttributes); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getAutomaticUpdateAttributes); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getBindTypes); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getColumnMap); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getDefaultValues); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getDataTypes); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getDataTypesNumeric); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getEmptyStringAttributes); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getIdentityField); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getNonPrimaryKeyAttributes); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getNotNullAttributes); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getPrimaryKeyAttributes); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getReverseColumnMap); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getStrategy); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, hasAttribute); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, isEmpty); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, read); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, readColumnMap); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, readColumnMapIndex); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, readMetaData); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, readMetaDataIndex); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, reset); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, setAutomaticCreateAttributes); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, setAutomaticUpdateAttributes); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, setEmptyStringAttributes); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, writeMetaDataIndex); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, setStrategy); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, write); + + + + +#ifdef HAVE_CONFIG_H +#endif + + +#if PHP_VERSION_ID < 70000 +#else +#endif + +static void phalcon_orm_destroy_cache() { + + zend_phalcon_globals *phalcon_globals_ptr = ZEPHIR_VGLOBAL; + + if (phalcon_globals_ptr->orm.parser_cache != NULL) { + zend_hash_destroy(phalcon_globals_ptr->orm.parser_cache); + FREE_HASHTABLE(phalcon_globals_ptr->orm.parser_cache); + phalcon_globals_ptr->orm.parser_cache = NULL; } - if (zephir_array_isset_string(&descriptor, SL("password"))) { - ZEPHIR_OBS_VAR(&_2$$6); - zephir_array_fetch_string(&_2$$6, &descriptor, SL("password"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 85); - _3$$6 = Z_TYPE_P(&_2$$6) == IS_STRING; - if (_3$$6) { - zephir_array_fetch_string(&_4$$6, &descriptor, SL("password"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 85); - _3$$6 = zephir_fast_strlen_ev(&_4$$6) == 0; + + if (phalcon_globals_ptr->orm.ast_cache != NULL) { + zend_hash_destroy(phalcon_globals_ptr->orm.ast_cache); + FREE_HASHTABLE(phalcon_globals_ptr->orm.ast_cache); + phalcon_globals_ptr->orm.ast_cache = NULL; + } +} + +static void phalcon_orm_singlequotes(zval *return_value, zval *str) { + + int i; + smart_str escaped_str = {0}; + char *marker; + + if (Z_TYPE_P(str) != IS_STRING) { + RETURN_ZVAL(str, 1, 0); + } + + marker = Z_STRVAL_P(str); + + for (i = 0; i < Z_STRLEN_P(str); i++) { + if ((*marker) == '\0') { + break; } - if (_3$$6) { - zephir_array_update_string(&descriptor, SL("password"), &__$null, PH_COPY | PH_SEPARATE); + if ((*marker) == '\'') { + if (i > 0) { + if (*(marker - 1) != '\\') { + smart_str_appendc(&escaped_str, '\''); + } + } else { + smart_str_appendc(&escaped_str, '\''); + } } + smart_str_appendc(&escaped_str, (*marker)); + marker++; } - ZEPHIR_CALL_PARENT(&status, phalcon_db_adapter_pdo_postgresql_ce, getThis(), "connect", &_5, 0, &descriptor); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&schema))) { - ZEPHIR_INIT_VAR(&sql); - ZEPHIR_CONCAT_SVS(&sql, "SET search_path TO '", &schema, "'"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "execute", NULL, 0, &sql); - zephir_check_call_status(); + + smart_str_0(&escaped_str); + +#if PHP_VERSION_ID < 70000 + if (escaped_str.len) { + RETURN_STRINGL(escaped_str.c, escaped_str.len, 0); } - RETURN_CCTOR(&status); +#else + if (escaped_str.s) { + RETURN_STR(escaped_str.s); + } +#endif + + smart_str_free(&escaped_str); + RETURN_EMPTY_STRING(); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, createTable) + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Query) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model, Query, phalcon, mvc_model_query, phalcon_mvc_model_query_method_entry, 0); + + zend_declare_property_null(phalcon_mvc_model_query_ce, SL("ast"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_ce, SL("bindParams"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_ce, SL("bindTypes"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_ce, SL("cache"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_ce, SL("cacheOptions"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_ce, SL("container"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_ce, SL("enableImplicitJoins"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_ce, SL("intermediate"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_ce, SL("manager"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_ce, SL("metaData"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_ce, SL("models"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_ce, SL("modelsInstances"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_mvc_model_query_ce, SL("nestingLevel"), -1, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_ce, SL("phql"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_model_query_ce, SL("sharedLock"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_ce, SL("sqlAliases"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_ce, SL("sqlAliasesModels"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_ce, SL("sqlAliasesModelsInstances"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_ce, SL("sqlColumnAliases"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_ce, SL("sqlModelsAliases"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_ce, SL("type"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_model_query_ce, SL("uniqueRow"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_ce, SL("transaction"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_ce, SL("internalPhqlCache"), ZEND_ACC_PROTECTED|ZEND_ACC_STATIC); + phalcon_mvc_model_query_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_Query; + zephir_declare_class_constant_long(phalcon_mvc_model_query_ce, SL("TYPE_DELETE"), 303); + + zephir_declare_class_constant_long(phalcon_mvc_model_query_ce, SL("TYPE_INSERT"), 306); + + zephir_declare_class_constant_long(phalcon_mvc_model_query_ce, SL("TYPE_SELECT"), 309); + + zephir_declare_class_constant_long(phalcon_mvc_model_query_ce, SL("TYPE_UPDATE"), 300); + + zend_class_implements(phalcon_mvc_model_query_ce, 1, phalcon_mvc_model_queryinterface_ce); + zend_class_implements(phalcon_mvc_model_query_ce, 1, phalcon_di_injectionawareinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Mvc_Model_Query, getTransaction) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "transaction"); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Query, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval definition; - zval *tableName_param = NULL, *schemaName_param = NULL, *definition_param = NULL, sql, queries, query, exception, columns, _0, *_1$$6, _2$$6, _3$$7, _5$$9, _6$$5, _7$$12, _8$$12; - zval tableName, schemaName; + zval options; + zval *phql_param = NULL, *container = NULL, container_sub, *options_param = NULL, __$true, __$false, __$null, enableImplicitJoins, _0, _1; + zval phql; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&queries); - ZVAL_UNDEF(&query); - ZVAL_UNDEF(&exception); - ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&phql); + ZVAL_UNDEF(&container_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&enableImplicitJoins); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2$$6); - ZVAL_UNDEF(&_3$$7); - ZVAL_UNDEF(&_5$$9); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_7$$12); - ZVAL_UNDEF(&_8$$12); - ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_ARRAY(definition) + ZEND_PARSE_PARAMETERS_START(0, 3) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(phql) + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(container, phalcon_di_diinterface_ce) + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &definition_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); + zephir_fetch_params(1, 0, 3, &phql_param, &container, &options_param); + if (!phql_param) { + ZEPHIR_INIT_VAR(&phql); } else { - ZEPHIR_INIT_VAR(&tableName); + zephir_get_strval(&phql, phql_param); } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); + if (!container) { + container = &container_sub; + container = &__$null; } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); } else { - ZEPHIR_INIT_VAR(&schemaName); + zephir_get_arrval(&options, options_param); } - ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); - ZEPHIR_OBS_VAR(&columns); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&columns, &definition, SL("columns"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The table must contain at least one column", "phalcon/Db/Adapter/Pdo/Postgresql.zep", 109); - return; - } - if (UNEXPECTED(!(zephir_fast_count_int(&columns)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The table must contain at least one column", "phalcon/Db/Adapter/Pdo/Postgresql.zep", 113); - return; + zephir_update_property_zval(this_ptr, ZEND_STRL("phql"), &phql); + if (Z_TYPE_P(container) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setdi", NULL, 0, container); + zephir_check_call_status(); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&sql, &_0, "createtable", NULL, 0, &tableName, &schemaName, &definition); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&queries); - zephir_fast_explode_str(&queries, SL(";"), &sql, LONG_MAX); - if (zephir_fast_count_int(&queries) > 1) { - - /* try_start_1: */ - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "begin", NULL, 0); - zephir_check_call_status_or_jump(try_end_1); - zephir_is_iterable(&queries, 0, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 132); - if (Z_TYPE_P(&queries) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&queries), _1$$6) - { - ZEPHIR_INIT_NVAR(&query); - ZVAL_COPY(&query, _1$$6); - if (ZEPHIR_IS_EMPTY(&query)) { - continue; - } - ZEPHIR_INIT_NVAR(&_3$$7); - ZEPHIR_CONCAT_VS(&_3$$7, &query, ";"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "query", &_4, 0, &_3$$7); - zephir_check_call_status_or_jump(try_end_1); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &queries, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2$$6, &queries, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2$$6)) { - break; - } - ZEPHIR_CALL_METHOD(&query, &queries, "current", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_EMPTY(&query)) { - continue; - } - ZEPHIR_INIT_NVAR(&_5$$9); - ZEPHIR_CONCAT_VS(&_5$$9, &query, ";"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "query", &_4, 0, &_5$$9); - zephir_check_call_status_or_jump(try_end_1); - ZEPHIR_CALL_METHOD(NULL, &queries, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&query); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "commit", NULL, 0); - zephir_check_call_status_or_jump(try_end_1); - RETURN_MM(); - - try_end_1: - - if (EG(exception)) { - ZEPHIR_INIT_VAR(&_6$$5); - ZVAL_OBJ(&_6$$5, EG(exception)); - Z_ADDREF_P(&_6$$5); - if (zephir_is_instance_of(&_6$$5, SL("Throwable"))) { - zend_clear_exception(); - ZEPHIR_CPY_WRT(&exception, &_6$$5); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "rollback", NULL, 0); - zephir_check_call_status(); - zephir_throw_exception_debug(&exception, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 136); - ZEPHIR_MM_RESTORE(); - return; - } + ZEPHIR_OBS_VAR(&enableImplicitJoins); + if (zephir_array_isset_string_fetch(&enableImplicitJoins, &options, SL("enable_implicit_joins"), 0)) { + if (ZEPHIR_IS_TRUE(&enableImplicitJoins)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("enableImplicitJoins"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("enableImplicitJoins"), &__$false); } } else { - zephir_array_fetch_long(&_7$$12, &queries, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 139); - ZEPHIR_INIT_VAR(&_8$$12); - ZEPHIR_CONCAT_VS(&_8$$12, &_7$$12, ";"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_8$$12); - zephir_check_call_status(); - RETURN_MM(); + if (ZEPHIR_GLOBAL(orm).enable_implicit_joins) { + zephir_update_property_zval(this_ptr, ZEND_STRL("enableImplicitJoins"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("enableImplicitJoins"), &__$false); + } } - RETURN_MM_BOOL(1); + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &_0); + ZEPHIR_INIT_VAR(&_1); + array_init(&_1); + zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &_1); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) +static PHP_METHOD(Phalcon_Mvc_Model_Query, cache) { - zend_bool _5$$3, _64$$41; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_55 = NULL, *_58 = NULL, *_62 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *table_param = NULL, *schema_param = NULL, __$true, __$false, __$null, columns, columnType, fields, field, definition, oldColumn, columnName, charSize, numericSize, numericScale, _0, _1, _2, *_3, _4, _47$$3, _48$$3, _49$$3, _50$$3, _59$$3, _61$$3, _6$$4, _7$$4, _8$$5, _9$$5, _10$$6, _11$$6, _12$$7, _13$$7, _14$$8, _15$$8, _16$$9, _17$$9, _18$$10, _19$$11, _20$$12, _21$$12, _22$$13, _23$$13, _24$$14, _25$$14, _26$$15, _27$$15, _28$$16, _29$$16, _30$$17, _31$$18, _32$$19, _33$$20, _34$$21, _35$$22, _36$$23, _37$$24, _38$$25, _39$$26, _40$$27, _41$$28, _42$$29, _43$$30, _44$$31, _45$$31, _46$$32, _51$$38, _52$$38, _53$$38, _54$$38, _56$$38, _57$$38, _60$$40, _63$$41, _106$$41, _107$$41, _108$$41, _109$$41, _116$$41, _118$$41, _65$$42, _66$$42, _67$$43, _68$$43, _69$$44, _70$$44, _71$$45, _72$$45, _73$$46, _74$$46, _75$$47, _76$$47, _77$$48, _78$$49, _79$$50, _80$$50, _81$$51, _82$$51, _83$$52, _84$$52, _85$$53, _86$$53, _87$$54, _88$$54, _89$$55, _90$$56, _91$$57, _92$$58, _93$$59, _94$$60, _95$$61, _96$$62, _97$$63, _98$$64, _99$$65, _100$$66, _101$$67, _102$$68, _103$$69, _104$$69, _105$$70, _110$$76, _111$$76, _112$$76, _113$$76, _114$$76, _115$$76, _117$$78; - zval table, schema; + zval *cacheOptions_param = NULL; + zval cacheOptions; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&columnType); - ZVAL_UNDEF(&fields); - ZVAL_UNDEF(&field); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&oldColumn); - ZVAL_UNDEF(&columnName); - ZVAL_UNDEF(&charSize); - ZVAL_UNDEF(&numericSize); - ZVAL_UNDEF(&numericScale); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_47$$3); - ZVAL_UNDEF(&_48$$3); - ZVAL_UNDEF(&_49$$3); - ZVAL_UNDEF(&_50$$3); - ZVAL_UNDEF(&_59$$3); - ZVAL_UNDEF(&_61$$3); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_10$$6); - ZVAL_UNDEF(&_11$$6); - ZVAL_UNDEF(&_12$$7); - ZVAL_UNDEF(&_13$$7); - ZVAL_UNDEF(&_14$$8); - ZVAL_UNDEF(&_15$$8); - ZVAL_UNDEF(&_16$$9); - ZVAL_UNDEF(&_17$$9); - ZVAL_UNDEF(&_18$$10); - ZVAL_UNDEF(&_19$$11); - ZVAL_UNDEF(&_20$$12); - ZVAL_UNDEF(&_21$$12); - ZVAL_UNDEF(&_22$$13); - ZVAL_UNDEF(&_23$$13); - ZVAL_UNDEF(&_24$$14); - ZVAL_UNDEF(&_25$$14); - ZVAL_UNDEF(&_26$$15); - ZVAL_UNDEF(&_27$$15); - ZVAL_UNDEF(&_28$$16); - ZVAL_UNDEF(&_29$$16); - ZVAL_UNDEF(&_30$$17); - ZVAL_UNDEF(&_31$$18); - ZVAL_UNDEF(&_32$$19); - ZVAL_UNDEF(&_33$$20); - ZVAL_UNDEF(&_34$$21); - ZVAL_UNDEF(&_35$$22); - ZVAL_UNDEF(&_36$$23); - ZVAL_UNDEF(&_37$$24); - ZVAL_UNDEF(&_38$$25); - ZVAL_UNDEF(&_39$$26); - ZVAL_UNDEF(&_40$$27); - ZVAL_UNDEF(&_41$$28); - ZVAL_UNDEF(&_42$$29); - ZVAL_UNDEF(&_43$$30); - ZVAL_UNDEF(&_44$$31); - ZVAL_UNDEF(&_45$$31); - ZVAL_UNDEF(&_46$$32); - ZVAL_UNDEF(&_51$$38); - ZVAL_UNDEF(&_52$$38); - ZVAL_UNDEF(&_53$$38); - ZVAL_UNDEF(&_54$$38); - ZVAL_UNDEF(&_56$$38); - ZVAL_UNDEF(&_57$$38); - ZVAL_UNDEF(&_60$$40); - ZVAL_UNDEF(&_63$$41); - ZVAL_UNDEF(&_106$$41); - ZVAL_UNDEF(&_107$$41); - ZVAL_UNDEF(&_108$$41); - ZVAL_UNDEF(&_109$$41); - ZVAL_UNDEF(&_116$$41); - ZVAL_UNDEF(&_118$$41); - ZVAL_UNDEF(&_65$$42); - ZVAL_UNDEF(&_66$$42); - ZVAL_UNDEF(&_67$$43); - ZVAL_UNDEF(&_68$$43); - ZVAL_UNDEF(&_69$$44); - ZVAL_UNDEF(&_70$$44); - ZVAL_UNDEF(&_71$$45); - ZVAL_UNDEF(&_72$$45); - ZVAL_UNDEF(&_73$$46); - ZVAL_UNDEF(&_74$$46); - ZVAL_UNDEF(&_75$$47); - ZVAL_UNDEF(&_76$$47); - ZVAL_UNDEF(&_77$$48); - ZVAL_UNDEF(&_78$$49); - ZVAL_UNDEF(&_79$$50); - ZVAL_UNDEF(&_80$$50); - ZVAL_UNDEF(&_81$$51); - ZVAL_UNDEF(&_82$$51); - ZVAL_UNDEF(&_83$$52); - ZVAL_UNDEF(&_84$$52); - ZVAL_UNDEF(&_85$$53); - ZVAL_UNDEF(&_86$$53); - ZVAL_UNDEF(&_87$$54); - ZVAL_UNDEF(&_88$$54); - ZVAL_UNDEF(&_89$$55); - ZVAL_UNDEF(&_90$$56); - ZVAL_UNDEF(&_91$$57); - ZVAL_UNDEF(&_92$$58); - ZVAL_UNDEF(&_93$$59); - ZVAL_UNDEF(&_94$$60); - ZVAL_UNDEF(&_95$$61); - ZVAL_UNDEF(&_96$$62); - ZVAL_UNDEF(&_97$$63); - ZVAL_UNDEF(&_98$$64); - ZVAL_UNDEF(&_99$$65); - ZVAL_UNDEF(&_100$$66); - ZVAL_UNDEF(&_101$$67); - ZVAL_UNDEF(&_102$$68); - ZVAL_UNDEF(&_103$$69); - ZVAL_UNDEF(&_104$$69); - ZVAL_UNDEF(&_105$$70); - ZVAL_UNDEF(&_110$$76); - ZVAL_UNDEF(&_111$$76); - ZVAL_UNDEF(&_112$$76); - ZVAL_UNDEF(&_113$$76); - ZVAL_UNDEF(&_114$$76); - ZVAL_UNDEF(&_115$$76); - ZVAL_UNDEF(&_117$$78); + ZVAL_UNDEF(&cacheOptions); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(cacheOptions) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - zephir_get_strval(&table, table_param); - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); - } else { - zephir_get_strval(&schema, schema_param); - } + zephir_fetch_params(1, 1, 0, &cacheOptions_param); + zephir_get_arrval(&cacheOptions, cacheOptions_param); - ZEPHIR_INIT_VAR(&oldColumn); - ZVAL_NULL(&oldColumn); - ZEPHIR_INIT_VAR(&columns); - array_init(&columns); - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "describecolumns", NULL, 0, &table, &schema); - zephir_check_call_status(); - ZVAL_LONG(&_2, 3); - ZEPHIR_CALL_METHOD(&fields, this_ptr, "fetchall", NULL, 0, &_1, &_2); - zephir_check_call_status(); - zephir_is_iterable(&fields, 0, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 531); - if (Z_TYPE_P(&fields) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&fields), _3) - { - ZEPHIR_INIT_NVAR(&field); - ZVAL_COPY(&field, _3); - ZEPHIR_INIT_NVAR(&definition); - zephir_create_array(&definition, 1, 0); - add_assoc_long_ex(&definition, SL("bindType"), 2); - ZEPHIR_OBS_NVAR(&columnType); - zephir_array_fetch_long(&columnType, &field, 1, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 184); - ZEPHIR_OBS_NVAR(&charSize); - zephir_array_fetch_long(&charSize, &field, 2, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 185); - ZEPHIR_OBS_NVAR(&numericSize); - zephir_array_fetch_long(&numericSize, &field, 3, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 186); - ZEPHIR_OBS_NVAR(&numericScale); - zephir_array_fetch_long(&numericScale, &field, 4, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 187); - do { - _5$$3 = 1; - if (_5$$3 == zephir_memnstr_str(&columnType, SL("boolean"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 205)) { - ZEPHIR_INIT_NVAR(&_6$$4); - ZVAL_LONG(&_6$$4, 8); - zephir_array_update_string(&definition, SL("type"), &_6$$4, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_7$$4); - ZVAL_LONG(&_7$$4, 5); - zephir_array_update_string(&definition, SL("bindType"), &_7$$4, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("bigint"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 217)) { - ZEPHIR_INIT_NVAR(&_8$$5); - ZVAL_LONG(&_8$$5, 14); - zephir_array_update_string(&definition, SL("type"), &_8$$5, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_9$$5); - ZVAL_LONG(&_9$$5, 1); - zephir_array_update_string(&definition, SL("bindType"), &_9$$5, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("mediumint"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 227)) { - ZEPHIR_INIT_NVAR(&_10$$6); - ZVAL_LONG(&_10$$6, 21); - zephir_array_update_string(&definition, SL("type"), &_10$$6, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_11$$6); - ZVAL_LONG(&_11$$6, 1); - zephir_array_update_string(&definition, SL("bindType"), &_11$$6, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("smallint"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 237)) { - ZEPHIR_INIT_NVAR(&_12$$7); - ZVAL_LONG(&_12$$7, 22); - zephir_array_update_string(&definition, SL("type"), &_12$$7, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_13$$7); - ZVAL_LONG(&_13$$7, 1); - zephir_array_update_string(&definition, SL("bindType"), &_13$$7, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("tinyint"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 247)) { - ZEPHIR_INIT_NVAR(&_14$$8); - ZVAL_LONG(&_14$$8, 26); - zephir_array_update_string(&definition, SL("type"), &_14$$8, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_15$$8); - ZVAL_LONG(&_15$$8, 1); - zephir_array_update_string(&definition, SL("bindType"), &_15$$8, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("int"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 260)) { - ZEPHIR_INIT_NVAR(&_16$$9); - ZVAL_LONG(&_16$$9, 0); - zephir_array_update_string(&definition, SL("type"), &_16$$9, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_17$$9); - ZVAL_LONG(&_17$$9, 1); - zephir_array_update_string(&definition, SL("bindType"), &_17$$9, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("bit"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 270)) { - ZEPHIR_INIT_NVAR(&_18$$10); - ZVAL_LONG(&_18$$10, 19); - zephir_array_update_string(&definition, SL("type"), &_18$$10, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("size"), &numericSize, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("enum"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 279)) { - ZEPHIR_INIT_NVAR(&_19$$11); - ZVAL_LONG(&_19$$11, 18); - zephir_array_update_string(&definition, SL("type"), &_19$$11, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("datetime"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 287)) { - ZEPHIR_INIT_NVAR(&_20$$12); - ZVAL_LONG(&_20$$12, 4); - zephir_array_update_string(&definition, SL("type"), &_20$$12, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_21$$12); - ZVAL_LONG(&_21$$12, 0); - zephir_array_update_string(&definition, SL("size"), &_21$$12, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("date"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 296)) { - ZEPHIR_INIT_NVAR(&_22$$13); - ZVAL_LONG(&_22$$13, 1); - zephir_array_update_string(&definition, SL("type"), &_22$$13, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_23$$13); - ZVAL_LONG(&_23$$13, 0); - zephir_array_update_string(&definition, SL("size"), &_23$$13, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("decimal"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 306) || _5$$3 == zephir_memnstr_str(&columnType, SL("numeric"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 307)) { - ZEPHIR_INIT_NVAR(&_24$$14); - ZVAL_LONG(&_24$$14, 3); - zephir_array_update_string(&definition, SL("type"), &_24$$14, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("size"), &numericSize, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_25$$14); - ZVAL_LONG(&_25$$14, 32); - zephir_array_update_string(&definition, SL("bindType"), &_25$$14, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("double precision"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 318)) { - ZEPHIR_INIT_NVAR(&_26$$15); - ZVAL_LONG(&_26$$15, 9); - zephir_array_update_string(&definition, SL("type"), &_26$$15, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("size"), &numericSize, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_27$$15); - ZVAL_LONG(&_27$$15, 32); - zephir_array_update_string(&definition, SL("bindType"), &_27$$15, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("float"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 329) || _5$$3 == zephir_memnstr_str(&columnType, SL("real"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 330)) { - ZEPHIR_INIT_NVAR(&_28$$16); - ZVAL_LONG(&_28$$16, 7); - zephir_array_update_string(&definition, SL("type"), &_28$$16, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("size"), &numericSize, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_29$$16); - ZVAL_LONG(&_29$$16, 32); - zephir_array_update_string(&definition, SL("bindType"), &_29$$16, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("mediumblob"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 341)) { - ZEPHIR_INIT_NVAR(&_30$$17); - ZVAL_LONG(&_30$$17, 6); - zephir_array_update_string(&definition, SL("type"), &_30$$17, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("longblob"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 349)) { - ZEPHIR_INIT_NVAR(&_31$$18); - ZVAL_LONG(&_31$$18, 13); - zephir_array_update_string(&definition, SL("type"), &_31$$18, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("tinyblob"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 357)) { - ZEPHIR_INIT_NVAR(&_32$$19); - ZVAL_LONG(&_32$$19, 10); - zephir_array_update_string(&definition, SL("type"), &_32$$19, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("blob"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 365)) { - ZEPHIR_INIT_NVAR(&_33$$20); - ZVAL_LONG(&_33$$20, 11); - zephir_array_update_string(&definition, SL("type"), &_33$$20, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("timestamp"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 373)) { - ZEPHIR_INIT_NVAR(&_34$$21); - ZVAL_LONG(&_34$$21, 17); - zephir_array_update_string(&definition, SL("type"), &_34$$21, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("time"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 381)) { - ZEPHIR_INIT_NVAR(&_35$$22); - ZVAL_LONG(&_35$$22, 20); - zephir_array_update_string(&definition, SL("type"), &_35$$22, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("jsonb"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 389)) { - ZEPHIR_INIT_NVAR(&_36$$23); - ZVAL_LONG(&_36$$23, 16); - zephir_array_update_string(&definition, SL("type"), &_36$$23, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("json"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 397)) { - ZEPHIR_INIT_NVAR(&_37$$24); - ZVAL_LONG(&_37$$24, 15); - zephir_array_update_string(&definition, SL("type"), &_37$$24, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("longtext"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 405)) { - ZEPHIR_INIT_NVAR(&_38$$25); - ZVAL_LONG(&_38$$25, 24); - zephir_array_update_string(&definition, SL("type"), &_38$$25, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("mediumtext"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 413)) { - ZEPHIR_INIT_NVAR(&_39$$26); - ZVAL_LONG(&_39$$26, 23); - zephir_array_update_string(&definition, SL("type"), &_39$$26, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("tinytext"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 421)) { - ZEPHIR_INIT_NVAR(&_40$$27); - ZVAL_LONG(&_40$$27, 25); - zephir_array_update_string(&definition, SL("type"), &_40$$27, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("text"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 429)) { - ZEPHIR_INIT_NVAR(&_41$$28); - ZVAL_LONG(&_41$$28, 6); - zephir_array_update_string(&definition, SL("type"), &_41$$28, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("varying"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 437) || _5$$3 == zephir_memnstr_str(&columnType, SL("varchar"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 438)) { - ZEPHIR_INIT_NVAR(&_42$$29); - ZVAL_LONG(&_42$$29, 2); - zephir_array_update_string(&definition, SL("type"), &_42$$29, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("size"), &charSize, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("char"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 447)) { - ZEPHIR_INIT_NVAR(&_43$$30); - ZVAL_LONG(&_43$$30, 5); - zephir_array_update_string(&definition, SL("type"), &_43$$30, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("size"), &charSize, PH_COPY | PH_SEPARATE); - break; - } - if (_5$$3 == zephir_memnstr_str(&columnType, SL("uuid"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 456)) { - ZEPHIR_INIT_NVAR(&_44$$31); - ZVAL_LONG(&_44$$31, 5); - zephir_array_update_string(&definition, SL("type"), &_44$$31, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_45$$31); - ZVAL_LONG(&_45$$31, 36); - zephir_array_update_string(&definition, SL("size"), &_45$$31, PH_COPY | PH_SEPARATE); - break; - } - ZEPHIR_INIT_NVAR(&_46$$32); - ZVAL_LONG(&_46$$32, 2); - zephir_array_update_string(&definition, SL("type"), &_46$$32, PH_COPY | PH_SEPARATE); - break; - } while(0); + zephir_update_property_zval(this_ptr, ZEND_STRL("cacheOptions"), &cacheOptions); + RETURN_THIS(); +} - if (Z_TYPE_P(&oldColumn) == IS_NULL) { - zephir_array_update_string(&definition, SL("first"), &__$true, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_47$$3, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 483); - if (ZEPHIR_IS_STRING(&_47$$3, "PRI")) { - zephir_array_update_string(&definition, SL("primary"), &__$true, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_48$$3, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 490); - if (ZEPHIR_IS_STRING(&_48$$3, "YES")) { - zephir_array_update_string(&definition, SL("notNull"), &__$false, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_49$$3, &field, 7, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 497); - if (ZEPHIR_IS_STRING(&_49$$3, "auto_increment")) { - zephir_array_update_string(&definition, SL("autoIncrement"), &__$true, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_50$$3, &field, 9, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 504); - if (Z_TYPE_P(&_50$$3) != IS_NULL) { - zephir_array_fetch_long(&_51$$38, &field, 9, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 509); - ZEPHIR_INIT_NVAR(&_52$$38); - ZVAL_STRING(&_52$$38, "/^'|'?::[[:alnum:][:space:]]+$/"); - ZEPHIR_INIT_NVAR(&_53$$38); - ZVAL_STRING(&_53$$38, ""); - ZEPHIR_CALL_FUNCTION(&_54$$38, "preg_replace", &_55, 50, &_52$$38, &_53$$38, &_51$$38); - zephir_check_call_status(); - zephir_array_update_string(&definition, SL("default"), &_54$$38, PH_COPY | PH_SEPARATE); - zephir_array_fetch_string(&_56$$38, &definition, SL("default"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 511); - ZEPHIR_INIT_NVAR(&_52$$38); - ZVAL_STRING(&_52$$38, "null"); - ZEPHIR_CALL_FUNCTION(&_57$$38, "strcasecmp", &_58, 47, &_56$$38, &_52$$38); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&_57$$38, 0)) { - zephir_array_update_string(&definition, SL("default"), &__$null, PH_COPY | PH_SEPARATE); - } - } - zephir_array_fetch_long(&_59$$3, &field, 10, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 519); - if (Z_TYPE_P(&_59$$3) != IS_NULL) { - zephir_array_fetch_long(&_60$$40, &field, 10, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 520); - zephir_array_update_string(&definition, SL("comment"), &_60$$40, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&columnName, &field, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 526); - ZEPHIR_INIT_NVAR(&_61$$3); - object_init_ex(&_61$$3, phalcon_db_column_ce); - ZEPHIR_CALL_METHOD(NULL, &_61$$3, "__construct", &_62, 212, &columnName, &definition); - zephir_check_call_status(); - zephir_array_append(&columns, &_61$$3, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 527); - ZEPHIR_CPY_WRT(&oldColumn, &columnName); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &fields, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_4, &fields, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_4)) { - break; - } - ZEPHIR_CALL_METHOD(&field, &fields, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_63$$41); - zephir_create_array(&_63$$41, 1, 0); - add_assoc_long_ex(&_63$$41, SL("bindType"), 2); - ZEPHIR_CPY_WRT(&definition, &_63$$41); - ZEPHIR_OBS_NVAR(&columnType); - zephir_array_fetch_long(&columnType, &field, 1, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 184); - ZEPHIR_OBS_NVAR(&charSize); - zephir_array_fetch_long(&charSize, &field, 2, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 185); - ZEPHIR_OBS_NVAR(&numericSize); - zephir_array_fetch_long(&numericSize, &field, 3, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 186); - ZEPHIR_OBS_NVAR(&numericScale); - zephir_array_fetch_long(&numericScale, &field, 4, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 187); - do { - _64$$41 = 1; - if (_64$$41 == zephir_memnstr_str(&columnType, SL("boolean"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 205)) { - ZEPHIR_INIT_NVAR(&_65$$42); - ZVAL_LONG(&_65$$42, 8); - zephir_array_update_string(&definition, SL("type"), &_65$$42, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_66$$42); - ZVAL_LONG(&_66$$42, 5); - zephir_array_update_string(&definition, SL("bindType"), &_66$$42, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("bigint"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 217)) { - ZEPHIR_INIT_NVAR(&_67$$43); - ZVAL_LONG(&_67$$43, 14); - zephir_array_update_string(&definition, SL("type"), &_67$$43, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_68$$43); - ZVAL_LONG(&_68$$43, 1); - zephir_array_update_string(&definition, SL("bindType"), &_68$$43, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("mediumint"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 227)) { - ZEPHIR_INIT_NVAR(&_69$$44); - ZVAL_LONG(&_69$$44, 21); - zephir_array_update_string(&definition, SL("type"), &_69$$44, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_70$$44); - ZVAL_LONG(&_70$$44, 1); - zephir_array_update_string(&definition, SL("bindType"), &_70$$44, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("smallint"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 237)) { - ZEPHIR_INIT_NVAR(&_71$$45); - ZVAL_LONG(&_71$$45, 22); - zephir_array_update_string(&definition, SL("type"), &_71$$45, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_72$$45); - ZVAL_LONG(&_72$$45, 1); - zephir_array_update_string(&definition, SL("bindType"), &_72$$45, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("tinyint"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 247)) { - ZEPHIR_INIT_NVAR(&_73$$46); - ZVAL_LONG(&_73$$46, 26); - zephir_array_update_string(&definition, SL("type"), &_73$$46, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_74$$46); - ZVAL_LONG(&_74$$46, 1); - zephir_array_update_string(&definition, SL("bindType"), &_74$$46, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("int"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 260)) { - ZEPHIR_INIT_NVAR(&_75$$47); - ZVAL_LONG(&_75$$47, 0); - zephir_array_update_string(&definition, SL("type"), &_75$$47, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_76$$47); - ZVAL_LONG(&_76$$47, 1); - zephir_array_update_string(&definition, SL("bindType"), &_76$$47, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("bit"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 270)) { - ZEPHIR_INIT_NVAR(&_77$$48); - ZVAL_LONG(&_77$$48, 19); - zephir_array_update_string(&definition, SL("type"), &_77$$48, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("size"), &numericSize, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("enum"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 279)) { - ZEPHIR_INIT_NVAR(&_78$$49); - ZVAL_LONG(&_78$$49, 18); - zephir_array_update_string(&definition, SL("type"), &_78$$49, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("datetime"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 287)) { - ZEPHIR_INIT_NVAR(&_79$$50); - ZVAL_LONG(&_79$$50, 4); - zephir_array_update_string(&definition, SL("type"), &_79$$50, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_80$$50); - ZVAL_LONG(&_80$$50, 0); - zephir_array_update_string(&definition, SL("size"), &_80$$50, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("date"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 296)) { - ZEPHIR_INIT_NVAR(&_81$$51); - ZVAL_LONG(&_81$$51, 1); - zephir_array_update_string(&definition, SL("type"), &_81$$51, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_82$$51); - ZVAL_LONG(&_82$$51, 0); - zephir_array_update_string(&definition, SL("size"), &_82$$51, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("decimal"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 306) || _64$$41 == zephir_memnstr_str(&columnType, SL("numeric"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 307)) { - ZEPHIR_INIT_NVAR(&_83$$52); - ZVAL_LONG(&_83$$52, 3); - zephir_array_update_string(&definition, SL("type"), &_83$$52, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("size"), &numericSize, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_84$$52); - ZVAL_LONG(&_84$$52, 32); - zephir_array_update_string(&definition, SL("bindType"), &_84$$52, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("double precision"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 318)) { - ZEPHIR_INIT_NVAR(&_85$$53); - ZVAL_LONG(&_85$$53, 9); - zephir_array_update_string(&definition, SL("type"), &_85$$53, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("size"), &numericSize, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_86$$53); - ZVAL_LONG(&_86$$53, 32); - zephir_array_update_string(&definition, SL("bindType"), &_86$$53, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("float"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 329) || _64$$41 == zephir_memnstr_str(&columnType, SL("real"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 330)) { - ZEPHIR_INIT_NVAR(&_87$$54); - ZVAL_LONG(&_87$$54, 7); - zephir_array_update_string(&definition, SL("type"), &_87$$54, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("size"), &numericSize, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_88$$54); - ZVAL_LONG(&_88$$54, 32); - zephir_array_update_string(&definition, SL("bindType"), &_88$$54, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("mediumblob"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 341)) { - ZEPHIR_INIT_NVAR(&_89$$55); - ZVAL_LONG(&_89$$55, 6); - zephir_array_update_string(&definition, SL("type"), &_89$$55, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("longblob"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 349)) { - ZEPHIR_INIT_NVAR(&_90$$56); - ZVAL_LONG(&_90$$56, 13); - zephir_array_update_string(&definition, SL("type"), &_90$$56, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("tinyblob"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 357)) { - ZEPHIR_INIT_NVAR(&_91$$57); - ZVAL_LONG(&_91$$57, 10); - zephir_array_update_string(&definition, SL("type"), &_91$$57, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("blob"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 365)) { - ZEPHIR_INIT_NVAR(&_92$$58); - ZVAL_LONG(&_92$$58, 11); - zephir_array_update_string(&definition, SL("type"), &_92$$58, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("timestamp"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 373)) { - ZEPHIR_INIT_NVAR(&_93$$59); - ZVAL_LONG(&_93$$59, 17); - zephir_array_update_string(&definition, SL("type"), &_93$$59, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("time"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 381)) { - ZEPHIR_INIT_NVAR(&_94$$60); - ZVAL_LONG(&_94$$60, 20); - zephir_array_update_string(&definition, SL("type"), &_94$$60, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("jsonb"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 389)) { - ZEPHIR_INIT_NVAR(&_95$$61); - ZVAL_LONG(&_95$$61, 16); - zephir_array_update_string(&definition, SL("type"), &_95$$61, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("json"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 397)) { - ZEPHIR_INIT_NVAR(&_96$$62); - ZVAL_LONG(&_96$$62, 15); - zephir_array_update_string(&definition, SL("type"), &_96$$62, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("longtext"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 405)) { - ZEPHIR_INIT_NVAR(&_97$$63); - ZVAL_LONG(&_97$$63, 24); - zephir_array_update_string(&definition, SL("type"), &_97$$63, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("mediumtext"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 413)) { - ZEPHIR_INIT_NVAR(&_98$$64); - ZVAL_LONG(&_98$$64, 23); - zephir_array_update_string(&definition, SL("type"), &_98$$64, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("tinytext"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 421)) { - ZEPHIR_INIT_NVAR(&_99$$65); - ZVAL_LONG(&_99$$65, 25); - zephir_array_update_string(&definition, SL("type"), &_99$$65, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("text"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 429)) { - ZEPHIR_INIT_NVAR(&_100$$66); - ZVAL_LONG(&_100$$66, 6); - zephir_array_update_string(&definition, SL("type"), &_100$$66, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("varying"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 437) || _64$$41 == zephir_memnstr_str(&columnType, SL("varchar"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 438)) { - ZEPHIR_INIT_NVAR(&_101$$67); - ZVAL_LONG(&_101$$67, 2); - zephir_array_update_string(&definition, SL("type"), &_101$$67, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("size"), &charSize, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("char"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 447)) { - ZEPHIR_INIT_NVAR(&_102$$68); - ZVAL_LONG(&_102$$68, 5); - zephir_array_update_string(&definition, SL("type"), &_102$$68, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("size"), &charSize, PH_COPY | PH_SEPARATE); - break; - } - if (_64$$41 == zephir_memnstr_str(&columnType, SL("uuid"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 456)) { - ZEPHIR_INIT_NVAR(&_103$$69); - ZVAL_LONG(&_103$$69, 5); - zephir_array_update_string(&definition, SL("type"), &_103$$69, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_104$$69); - ZVAL_LONG(&_104$$69, 36); - zephir_array_update_string(&definition, SL("size"), &_104$$69, PH_COPY | PH_SEPARATE); - break; - } - ZEPHIR_INIT_NVAR(&_105$$70); - ZVAL_LONG(&_105$$70, 2); - zephir_array_update_string(&definition, SL("type"), &_105$$70, PH_COPY | PH_SEPARATE); - break; - } while(0); +static PHP_METHOD(Phalcon_Mvc_Model_Query, clean) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *this_ptr = getThis(); - if (Z_TYPE_P(&oldColumn) == IS_NULL) { - zephir_array_update_string(&definition, SL("first"), &__$true, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_106$$41, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 483); - if (ZEPHIR_IS_STRING(&_106$$41, "PRI")) { - zephir_array_update_string(&definition, SL("primary"), &__$true, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_107$$41, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 490); - if (ZEPHIR_IS_STRING(&_107$$41, "YES")) { - zephir_array_update_string(&definition, SL("notNull"), &__$false, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_108$$41, &field, 7, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 497); - if (ZEPHIR_IS_STRING(&_108$$41, "auto_increment")) { - zephir_array_update_string(&definition, SL("autoIncrement"), &__$true, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_109$$41, &field, 9, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 504); - if (Z_TYPE_P(&_109$$41) != IS_NULL) { - zephir_array_fetch_long(&_110$$76, &field, 9, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 509); - ZEPHIR_INIT_NVAR(&_111$$76); - ZVAL_STRING(&_111$$76, "/^'|'?::[[:alnum:][:space:]]+$/"); - ZEPHIR_INIT_NVAR(&_112$$76); - ZVAL_STRING(&_112$$76, ""); - ZEPHIR_CALL_FUNCTION(&_113$$76, "preg_replace", &_55, 50, &_111$$76, &_112$$76, &_110$$76); - zephir_check_call_status(); - zephir_array_update_string(&definition, SL("default"), &_113$$76, PH_COPY | PH_SEPARATE); - zephir_array_fetch_string(&_114$$76, &definition, SL("default"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 511); - ZEPHIR_INIT_NVAR(&_111$$76); - ZVAL_STRING(&_111$$76, "null"); - ZEPHIR_CALL_FUNCTION(&_115$$76, "strcasecmp", &_58, 47, &_114$$76, &_111$$76); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&_115$$76, 0)) { - zephir_array_update_string(&definition, SL("default"), &__$null, PH_COPY | PH_SEPARATE); - } - } - zephir_array_fetch_long(&_116$$41, &field, 10, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 519); - if (Z_TYPE_P(&_116$$41) != IS_NULL) { - zephir_array_fetch_long(&_117$$78, &field, 10, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 520); - zephir_array_update_string(&definition, SL("comment"), &_117$$78, PH_COPY | PH_SEPARATE); - } - ZEPHIR_OBS_NVAR(&columnName); - zephir_array_fetch_long(&columnName, &field, 0, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 526); - ZEPHIR_INIT_NVAR(&_118$$41); - object_init_ex(&_118$$41, phalcon_db_column_ce); - ZEPHIR_CALL_METHOD(NULL, &_118$$41, "__construct", &_62, 212, &columnName, &definition); - zephir_check_call_status(); - zephir_array_append(&columns, &_118$$41, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 527); - ZEPHIR_CPY_WRT(&oldColumn, &columnName); - ZEPHIR_CALL_METHOD(NULL, &fields, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&field); - RETURN_CCTOR(&columns); + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + zephir_update_static_property_ce(phalcon_mvc_model_query_ce, ZEND_STRL("internalPhqlCache"), &_0); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeReferences) +static PHP_METHOD(Phalcon_Mvc_Model_Query, execute) { - zval _14$$3, _23$$6, _29$$9, _33$$10; - zend_string *_27; - zend_ulong _26; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_31 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *table_param = NULL, *schema_param = NULL, references, reference, arrayReference, constraintName, referenceObjects, name, referencedSchema, referencedTable, columns, referencedColumns, referenceUpdate, referenceDelete, _0, _1, _2, _3, *_4, _5, *_24, _25, _6$$5, _7$$5, _8$$5, _9$$5, _10$$5, _11$$5, _12$$3, _13$$3, _15$$8, _16$$8, _17$$8, _18$$8, _19$$8, _20$$8, _21$$6, _22$$6, _28$$9, _30$$9, _32$$10, _34$$10; - zval table, schema; + zephir_fcall_cache_entry *_1 = NULL; + zval *bindParams_param = NULL, *bindTypes_param = NULL, uniqueRow, cacheOptions, key, cacheService, cache, result, preparedResult, defaultBindParams, mergedParams, defaultBindTypes, mergedTypes, type, lifetime, intermediate, _0, _2$$3, _3$$3, _4$$3, _5$$7, _6$$17, _7$$17; + zval bindParams, bindTypes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&references); - ZVAL_UNDEF(&reference); - ZVAL_UNDEF(&arrayReference); - ZVAL_UNDEF(&constraintName); - ZVAL_UNDEF(&referenceObjects); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&referencedSchema); - ZVAL_UNDEF(&referencedTable); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&referencedColumns); - ZVAL_UNDEF(&referenceUpdate); - ZVAL_UNDEF(&referenceDelete); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&uniqueRow); + ZVAL_UNDEF(&cacheOptions); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&cacheService); + ZVAL_UNDEF(&cache); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&preparedResult); + ZVAL_UNDEF(&defaultBindParams); + ZVAL_UNDEF(&mergedParams); + ZVAL_UNDEF(&defaultBindTypes); + ZVAL_UNDEF(&mergedTypes); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&lifetime); + ZVAL_UNDEF(&intermediate); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_25); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_10$$5); - ZVAL_UNDEF(&_11$$5); - ZVAL_UNDEF(&_12$$3); - ZVAL_UNDEF(&_13$$3); - ZVAL_UNDEF(&_15$$8); - ZVAL_UNDEF(&_16$$8); - ZVAL_UNDEF(&_17$$8); - ZVAL_UNDEF(&_18$$8); - ZVAL_UNDEF(&_19$$8); - ZVAL_UNDEF(&_20$$8); - ZVAL_UNDEF(&_21$$6); - ZVAL_UNDEF(&_22$$6); - ZVAL_UNDEF(&_28$$9); - ZVAL_UNDEF(&_30$$9); - ZVAL_UNDEF(&_32$$10); - ZVAL_UNDEF(&_34$$10); - ZVAL_UNDEF(&_14$$3); - ZVAL_UNDEF(&_23$$6); - ZVAL_UNDEF(&_29$$9); - ZVAL_UNDEF(&_33$$10); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$7); + ZVAL_UNDEF(&_6$$17); + ZVAL_UNDEF(&_7$$17); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) + ZEND_PARSE_PARAMETERS_START(0, 2) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) + Z_PARAM_ARRAY(bindParams) + Z_PARAM_ARRAY(bindTypes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); - } else { - ZEPHIR_INIT_VAR(&table); - } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); + zephir_fetch_params(1, 0, 2, &bindParams_param, &bindTypes_param); + if (!bindParams_param) { + ZEPHIR_INIT_VAR(&bindParams); + array_init(&bindParams); } else { - if (UNEXPECTED(Z_TYPE_P(schema_param) != IS_STRING && Z_TYPE_P(schema_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schema' must be of the type string")); - RETURN_MM_NULL(); + zephir_get_arrval(&bindParams, bindParams_param); } - if (EXPECTED(Z_TYPE_P(schema_param) == IS_STRING)) { - zephir_get_strval(&schema, schema_param); + if (!bindTypes_param) { + ZEPHIR_INIT_VAR(&bindTypes); + array_init(&bindTypes); } else { - ZEPHIR_INIT_VAR(&schema); - } + zephir_get_arrval(&bindTypes, bindTypes_param); } - ZEPHIR_INIT_VAR(&references); - array_init(&references); - zephir_read_property(&_1, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_2, &_1, "describereferences", NULL, 0, &table, &schema); - zephir_check_call_status(); - ZVAL_LONG(&_3, 3); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, 0, &_2, &_3); - zephir_check_call_status(); - zephir_is_iterable(&_0, 0, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 583); - if (Z_TYPE_P(&_0) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _4) - { - ZEPHIR_INIT_NVAR(&reference); - ZVAL_COPY(&reference, _4); - zephir_array_fetch_long(&constraintName, &reference, 2, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 552); - if (!(zephir_array_isset(&references, &constraintName))) { - ZEPHIR_OBS_NVAR(&referencedSchema); - zephir_array_fetch_long(&referencedSchema, &reference, 3, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 555); - ZEPHIR_OBS_NVAR(&referencedTable); - zephir_array_fetch_long(&referencedTable, &reference, 4, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 556); - ZEPHIR_OBS_NVAR(&referenceUpdate); - zephir_array_fetch_long(&referenceUpdate, &reference, 6, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 557); - ZEPHIR_OBS_NVAR(&referenceDelete); - zephir_array_fetch_long(&referenceDelete, &reference, 7, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 558); - ZEPHIR_INIT_NVAR(&columns); - array_init(&columns); - ZEPHIR_INIT_NVAR(&referencedColumns); - array_init(&referencedColumns); - } else { - zephir_array_fetch(&_6$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 562); - ZEPHIR_OBS_NVAR(&referencedSchema); - zephir_array_fetch_string(&referencedSchema, &_6$$5, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 562); - zephir_array_fetch(&_7$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 563); - ZEPHIR_OBS_NVAR(&referencedTable); - zephir_array_fetch_string(&referencedTable, &_7$$5, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 563); - zephir_array_fetch(&_8$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 564); - ZEPHIR_OBS_NVAR(&columns); - zephir_array_fetch_string(&columns, &_8$$5, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 564); - zephir_array_fetch(&_9$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 565); - ZEPHIR_OBS_NVAR(&referencedColumns); - zephir_array_fetch_string(&referencedColumns, &_9$$5, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 565); - zephir_array_fetch(&_10$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 566); - ZEPHIR_OBS_NVAR(&referenceUpdate); - zephir_array_fetch_string(&referenceUpdate, &_10$$5, SL("onUpdate"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 566); - zephir_array_fetch(&_11$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 567); - ZEPHIR_OBS_NVAR(&referenceDelete); - zephir_array_fetch_string(&referenceDelete, &_11$$5, SL("onDelete"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 567); - } - zephir_array_fetch_long(&_12$$3, &reference, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 570); - zephir_array_append(&columns, &_12$$3, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 570); - zephir_array_fetch_long(&_13$$3, &reference, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 571); - zephir_array_append(&referencedColumns, &_13$$3, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 571); - ZEPHIR_INIT_NVAR(&_14$$3); - zephir_create_array(&_14$$3, 6, 0); - zephir_array_update_string(&_14$$3, SL("referencedSchema"), &referencedSchema, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_14$$3, SL("referencedTable"), &referencedTable, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_14$$3, SL("columns"), &columns, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_14$$3, SL("referencedColumns"), &referencedColumns, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_14$$3, SL("onUpdate"), &referenceUpdate, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_14$$3, SL("onDelete"), &referenceDelete, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&references, &constraintName, &_14$$3, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("uniqueRow"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&uniqueRow, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("cacheOptions"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&cacheOptions, &_0); + if (Z_TYPE_P(&cacheOptions) != IS_NULL) { + if (UNEXPECTED(Z_TYPE_P(&cacheOptions) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid caching options", "phalcon/Mvc/Model/Query.zep", 276); + return; + } + ZEPHIR_OBS_VAR(&key); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&key, &cacheOptions, SL("key"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A cache key must be provided to identify the cached resultset in the cache backend", "phalcon/Mvc/Model/Query.zep", 285); + return; + } + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "lifetime"); + ZVAL_LONG(&_3$$3, 3600); + ZEPHIR_CALL_CE_STATIC(&lifetime, phalcon_helper_arr_ce, "get", &_1, 16, &cacheOptions, &_2$$3, &_3$$3); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5, &_0, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5)) { - break; + ZEPHIR_INIT_NVAR(&_2$$3); + ZVAL_STRING(&_2$$3, "service"); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "modelsCache"); + ZEPHIR_CALL_CE_STATIC(&cacheService, phalcon_helper_arr_ce, "get", &_1, 16, &cacheOptions, &_2$$3, &_4$$3); + zephir_check_call_status(); + zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&cache, &_3$$3, "getshared", NULL, 0, &cacheService); + zephir_check_call_status(); + if (UNEXPECTED(!((zephir_is_instance_of(&cache, SL("Psr\\SimpleCache\\CacheInterface")))))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Cache service must be an object implementing Psr\\SimpleCache\\CacheInterface", "phalcon/Mvc/Model/Query.zep", 296); + return; + } + ZEPHIR_CALL_METHOD(&result, &cache, "get", NULL, 0, &key); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&result))) { + if (UNEXPECTED(Z_TYPE_P(&result) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Cache didn't return a valid resultset", "phalcon/Mvc/Model/Query.zep", 305); + return; } - ZEPHIR_CALL_METHOD(&reference, &_0, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&constraintName); - zephir_array_fetch_long(&constraintName, &reference, 2, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 552); - if (!(zephir_array_isset(&references, &constraintName))) { - ZEPHIR_OBS_NVAR(&referencedSchema); - zephir_array_fetch_long(&referencedSchema, &reference, 3, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 555); - ZEPHIR_OBS_NVAR(&referencedTable); - zephir_array_fetch_long(&referencedTable, &reference, 4, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 556); - ZEPHIR_OBS_NVAR(&referenceUpdate); - zephir_array_fetch_long(&referenceUpdate, &reference, 6, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 557); - ZEPHIR_OBS_NVAR(&referenceDelete); - zephir_array_fetch_long(&referenceDelete, &reference, 7, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 558); - ZEPHIR_INIT_NVAR(&columns); - array_init(&columns); - ZEPHIR_INIT_NVAR(&referencedColumns); - array_init(&referencedColumns); - } else { - zephir_array_fetch(&_15$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 562); - ZEPHIR_OBS_NVAR(&referencedSchema); - zephir_array_fetch_string(&referencedSchema, &_15$$8, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 562); - zephir_array_fetch(&_16$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 563); - ZEPHIR_OBS_NVAR(&referencedTable); - zephir_array_fetch_string(&referencedTable, &_16$$8, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 563); - zephir_array_fetch(&_17$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 564); - ZEPHIR_OBS_NVAR(&columns); - zephir_array_fetch_string(&columns, &_17$$8, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 564); - zephir_array_fetch(&_18$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 565); - ZEPHIR_OBS_NVAR(&referencedColumns); - zephir_array_fetch_string(&referencedColumns, &_18$$8, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 565); - zephir_array_fetch(&_19$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 566); - ZEPHIR_OBS_NVAR(&referenceUpdate); - zephir_array_fetch_string(&referenceUpdate, &_19$$8, SL("onUpdate"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 566); - zephir_array_fetch(&_20$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 567); - ZEPHIR_OBS_NVAR(&referenceDelete); - zephir_array_fetch_string(&referenceDelete, &_20$$8, SL("onDelete"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 567); - } - zephir_array_fetch_long(&_21$$6, &reference, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 570); - zephir_array_append(&columns, &_21$$6, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 570); - zephir_array_fetch_long(&_22$$6, &reference, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 571); - zephir_array_append(&referencedColumns, &_22$$6, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 571); - ZEPHIR_INIT_NVAR(&_23$$6); - zephir_create_array(&_23$$6, 6, 0); - zephir_array_update_string(&_23$$6, SL("referencedSchema"), &referencedSchema, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_23$$6, SL("referencedTable"), &referencedTable, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_23$$6, SL("columns"), &columns, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_23$$6, SL("referencedColumns"), &referencedColumns, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_23$$6, SL("onUpdate"), &referenceUpdate, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_23$$6, SL("onDelete"), &referenceDelete, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&references, &constraintName, &_23$$6, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); + ZVAL_BOOL(&_5$$7, 0); + ZEPHIR_CALL_METHOD(NULL, &result, "setisfresh", NULL, 0, &_5$$7); zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&reference); - ZEPHIR_INIT_VAR(&referenceObjects); - array_init(&referenceObjects); - zephir_is_iterable(&references, 0, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 599); - if (Z_TYPE_P(&references) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&references), _26, _27, _24) - { - ZEPHIR_INIT_NVAR(&name); - if (_27 != NULL) { - ZVAL_STR_COPY(&name, _27); + if (zephir_is_true(&uniqueRow)) { + ZEPHIR_CALL_METHOD(&preparedResult, &result, "getfirst", NULL, 0); + zephir_check_call_status(); } else { - ZVAL_LONG(&name, _26); + ZEPHIR_CPY_WRT(&preparedResult, &result); } - ZEPHIR_INIT_NVAR(&arrayReference); - ZVAL_COPY(&arrayReference, _24); - ZEPHIR_INIT_NVAR(&_28$$9); - object_init_ex(&_28$$9, phalcon_db_reference_ce); - ZEPHIR_INIT_NVAR(&_29$$9); - zephir_create_array(&_29$$9, 6, 0); - ZEPHIR_OBS_NVAR(&_30$$9); - zephir_array_fetch_string(&_30$$9, &arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 589); - zephir_array_update_string(&_29$$9, SL("referencedSchema"), &_30$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_30$$9); - zephir_array_fetch_string(&_30$$9, &arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 590); - zephir_array_update_string(&_29$$9, SL("referencedTable"), &_30$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_30$$9); - zephir_array_fetch_string(&_30$$9, &arrayReference, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 591); - zephir_array_update_string(&_29$$9, SL("columns"), &_30$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_30$$9); - zephir_array_fetch_string(&_30$$9, &arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 592); - zephir_array_update_string(&_29$$9, SL("referencedColumns"), &_30$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_30$$9); - zephir_array_fetch_string(&_30$$9, &arrayReference, SL("onUpdate"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 593); - zephir_array_update_string(&_29$$9, SL("onUpdate"), &_30$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_30$$9); - zephir_array_fetch_string(&_30$$9, &arrayReference, SL("onDelete"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 595); - zephir_array_update_string(&_29$$9, SL("onDelete"), &_30$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &_28$$9, "__construct", &_31, 33, &name, &_29$$9); - zephir_check_call_status(); - zephir_array_update_zval(&referenceObjects, &name, &_28$$9, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); + RETURN_CCTOR(&preparedResult); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("cache"), &cache); + } + ZEPHIR_CALL_METHOD(&intermediate, this_ptr, "parse", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&defaultBindParams); + zephir_read_property(&defaultBindParams, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(&mergedParams); + zephir_add_function(&mergedParams, &defaultBindParams, &bindParams); + ZEPHIR_OBS_VAR(&defaultBindTypes); + zephir_read_property(&defaultBindTypes, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC); + if (Z_TYPE_P(&defaultBindTypes) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&mergedTypes); + zephir_add_function(&mergedTypes, &defaultBindTypes, &bindTypes); } else { - ZEPHIR_CALL_METHOD(NULL, &references, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_25, &references, "valid", NULL, 0); + ZEPHIR_CPY_WRT(&mergedTypes, &bindTypes); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&type, &_0); + do { + if (ZEPHIR_IS_LONG(&type, 309)) { + ZEPHIR_CALL_METHOD(&result, this_ptr, "executeselect", NULL, 456, &intermediate, &mergedParams, &mergedTypes); zephir_check_call_status(); - if (!zend_is_true(&_25)) { - break; - } - ZEPHIR_CALL_METHOD(&name, &references, "key", NULL, 0); + break; + } + if (ZEPHIR_IS_LONG(&type, 306)) { + ZEPHIR_CALL_METHOD(&result, this_ptr, "executeinsert", NULL, 457, &intermediate, &mergedParams, &mergedTypes); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&arrayReference, &references, "current", NULL, 0); + break; + } + if (ZEPHIR_IS_LONG(&type, 300)) { + ZEPHIR_CALL_METHOD(&result, this_ptr, "executeupdate", NULL, 458, &intermediate, &mergedParams, &mergedTypes); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_32$$10); - object_init_ex(&_32$$10, phalcon_db_reference_ce); - ZEPHIR_INIT_NVAR(&_33$$10); - zephir_create_array(&_33$$10, 6, 0); - ZEPHIR_OBS_NVAR(&_34$$10); - zephir_array_fetch_string(&_34$$10, &arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 589); - zephir_array_update_string(&_33$$10, SL("referencedSchema"), &_34$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_34$$10); - zephir_array_fetch_string(&_34$$10, &arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 590); - zephir_array_update_string(&_33$$10, SL("referencedTable"), &_34$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_34$$10); - zephir_array_fetch_string(&_34$$10, &arrayReference, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 591); - zephir_array_update_string(&_33$$10, SL("columns"), &_34$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_34$$10); - zephir_array_fetch_string(&_34$$10, &arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 592); - zephir_array_update_string(&_33$$10, SL("referencedColumns"), &_34$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_34$$10); - zephir_array_fetch_string(&_34$$10, &arrayReference, SL("onUpdate"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 593); - zephir_array_update_string(&_33$$10, SL("onUpdate"), &_34$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_34$$10); - zephir_array_fetch_string(&_34$$10, &arrayReference, SL("onDelete"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 595); - zephir_array_update_string(&_33$$10, SL("onDelete"), &_34$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &_32$$10, "__construct", &_31, 33, &name, &_33$$10); - zephir_check_call_status(); - zephir_array_update_zval(&referenceObjects, &name, &_32$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &references, "next", NULL, 0); + break; + } + if (ZEPHIR_IS_LONG(&type, 303)) { + ZEPHIR_CALL_METHOD(&result, this_ptr, "executedelete", NULL, 459, &intermediate, &mergedParams, &mergedTypes); zephir_check_call_status(); + break; + } + ZEPHIR_INIT_VAR(&_6$$17); + object_init_ex(&_6$$17, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_7$$17); + ZEPHIR_CONCAT_SV(&_7$$17, "Unknown statement ", &type); + ZEPHIR_CALL_METHOD(NULL, &_6$$17, "__construct", NULL, 8, &_7$$17); + zephir_check_call_status(); + zephir_throw_exception_debug(&_6$$17, "phalcon/Mvc/Model/Query.zep", 388); + ZEPHIR_MM_RESTORE(); + return; + } while(0); + + if (Z_TYPE_P(&cacheOptions) != IS_NULL) { + if (!ZEPHIR_IS_LONG(&type, 309)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only PHQL statements that return resultsets can be cached", "phalcon/Mvc/Model/Query.zep", 401); + return; } + ZEPHIR_CALL_METHOD(NULL, &cache, "set", NULL, 0, &key, &result, &lifetime); + zephir_check_call_status(); } - ZEPHIR_INIT_NVAR(&arrayReference); - ZEPHIR_INIT_NVAR(&name); - RETURN_CCTOR(&referenceObjects); + if (zephir_is_true(&uniqueRow)) { + ZEPHIR_CALL_METHOD(&preparedResult, &result, "getfirst", NULL, 0); + zephir_check_call_status(); + } else { + ZEPHIR_CPY_WRT(&preparedResult, &result); + } + RETURN_CCTOR(&preparedResult); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, getDefaultIdValue) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getCache) { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - - ZEPHIR_MM_GROW(); - object_init_ex(return_value, phalcon_db_rawvalue_ce); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "DEFAULT"); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 34, &_0); - zephir_check_call_status(); - RETURN_MM(); + RETURN_MEMBER(getThis(), "cache"); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, modifyColumn) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getCacheOptions) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *column, column_sub, *currentColumn = NULL, currentColumn_sub, __$null, sql, queries, query, exception, _0, *_1$$4, _2$$4, _3$$5, _5$$7, _6$$3, _7$$10, _8$$10, _9$$10; - zval tableName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&column_sub); - ZVAL_UNDEF(¤tColumn_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&queries); - ZVAL_UNDEF(&query); - ZVAL_UNDEF(&exception); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_5$$7); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$10); - ZVAL_UNDEF(&_8$$10); - ZVAL_UNDEF(&_9$$10); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 4) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) - Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(currentColumn, phalcon_db_columninterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 1, &tableName_param, &schemaName_param, &column, ¤tColumn); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } - if (!currentColumn) { - currentColumn = ¤tColumn_sub; - currentColumn = &__$null; - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&sql, &_0, "modifycolumn", NULL, 0, &tableName, &schemaName, column, currentColumn); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&queries); - zephir_fast_explode_str(&queries, SL(";"), &sql, LONG_MAX); - if (zephir_fast_count_int(&queries) > 1) { + RETURN_MEMBER(getThis(), "cacheOptions"); +} - /* try_start_1: */ +static PHP_METHOD(Phalcon_Mvc_Model_Query, getBindParams) +{ + zval *this_ptr = getThis(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "begin", NULL, 0); - zephir_check_call_status_or_jump(try_end_1); - zephir_is_iterable(&queries, 0, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 655); - if (Z_TYPE_P(&queries) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&queries), _1$$4) - { - ZEPHIR_INIT_NVAR(&query); - ZVAL_COPY(&query, _1$$4); - if (ZEPHIR_IS_EMPTY(&query)) { - continue; - } - ZEPHIR_INIT_NVAR(&_3$$5); - ZEPHIR_CONCAT_VS(&_3$$5, &query, ";"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "query", &_4, 0, &_3$$5); - zephir_check_call_status_or_jump(try_end_1); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &queries, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2$$4, &queries, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2$$4)) { - break; - } - ZEPHIR_CALL_METHOD(&query, &queries, "current", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_EMPTY(&query)) { - continue; - } - ZEPHIR_INIT_NVAR(&_5$$7); - ZEPHIR_CONCAT_VS(&_5$$7, &query, ";"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "query", &_4, 0, &_5$$7); - zephir_check_call_status_or_jump(try_end_1); - ZEPHIR_CALL_METHOD(NULL, &queries, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&query); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "commit", NULL, 0); - zephir_check_call_status_or_jump(try_end_1); - RETURN_MM(); - try_end_1: - if (EG(exception)) { - ZEPHIR_INIT_VAR(&_6$$3); - ZVAL_OBJ(&_6$$3, EG(exception)); - Z_ADDREF_P(&_6$$3); - if (zephir_is_instance_of(&_6$$3, SL("Throwable"))) { - zend_clear_exception(); - ZEPHIR_CPY_WRT(&exception, &_6$$3); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "rollback", NULL, 0); - zephir_check_call_status(); - zephir_throw_exception_debug(&exception, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 659); - ZEPHIR_MM_RESTORE(); - return; - } - } - } else { - ZEPHIR_INIT_VAR(&_7$$10); - if (!(ZEPHIR_IS_EMPTY(&sql))) { - zephir_array_fetch_long(&_8$$10, &queries, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 662); - ZEPHIR_INIT_VAR(&_9$$10); - ZEPHIR_CONCAT_VS(&_9$$10, &_8$$10, ";"); - ZEPHIR_CALL_METHOD(&_7$$10, this_ptr, "execute", NULL, 0, &_9$$10); - zephir_check_call_status(); - } else { - ZVAL_BOOL(&_7$$10, 1); - } - RETURN_CCTOR(&_7$$10); - } - RETURN_MM_BOOL(1); + RETURN_MEMBER(getThis(), "bindParams"); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, supportSequences) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getBindTypes) { zval *this_ptr = getThis(); - RETURN_BOOL(1); + RETURN_MEMBER(getThis(), "bindTypes"); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, useExplicitIdValue) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getDI) { zval *this_ptr = getThis(); - RETURN_BOOL(1); + RETURN_MEMBER(getThis(), "container"); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, getDsnDefaults) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getIntermediate) { zval *this_ptr = getThis(); - array_init(return_value); - return; + RETURN_MEMBER(getThis(), "intermediate"); } +static PHP_METHOD(Phalcon_Mvc_Model_Query, getSingleResult) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *bindParams_param = NULL, *bindTypes_param = NULL, _0, _1; + zval bindParams, bindTypes; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 2) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(bindParams) + Z_PARAM_ARRAY(bindTypes) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 2, &bindParams_param, &bindTypes_param); + if (!bindParams_param) { + ZEPHIR_INIT_VAR(&bindParams); + array_init(&bindParams); + } else { + zephir_get_arrval(&bindParams, bindParams_param); + } + if (!bindTypes_param) { + ZEPHIR_INIT_VAR(&bindTypes); + array_init(&bindTypes); + } else { + zephir_get_arrval(&bindTypes, bindTypes_param); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("uniqueRow"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_0)) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &bindParams, &bindTypes); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_CALL_METHOD(&_1, this_ptr, "execute", NULL, 0, &bindParams, &bindTypes); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(&_1, "getfirst", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); +} -ZEPHIR_INIT_CLASS(Phalcon_Db_Adapter_Pdo_Sqlite) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getSql) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Adapter\\Pdo, Sqlite, phalcon, db_adapter_pdo_sqlite, phalcon_db_adapter_pdo_abstractpdo_ce, phalcon_db_adapter_pdo_sqlite_method_entry, 0); + zval intermediate, _0, _1$$3, _2$$3, _3$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); - zend_declare_property_string(phalcon_db_adapter_pdo_sqlite_ce, SL("dialectType"), "sqlite", ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_db_adapter_pdo_sqlite_ce, SL("type"), "sqlite", ZEND_ACC_PROTECTED); - return SUCCESS; + ZVAL_UNDEF(&intermediate); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&intermediate, this_ptr, "parse", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); + if (ZEPHIR_IS_LONG(&_0, 309)) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); + ZVAL_BOOL(&_3$$3, 1); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "executeselect", NULL, 456, &intermediate, &_1$$3, &_2$$3, &_3$$3); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "This type of statement generates multiple SQL statements", "phalcon/Mvc/Model/Query.zep", 507); + return; } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, __construct) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getType) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "type"); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Query, getUniqueRow) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "uniqueRow"); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Query, parse) { + zval intermediate, phql, ast, irPhql, uniqueId, type, _0, _2$$5, _3$$7, _4$$13, _5$$13; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_1 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *descriptor_param = NULL, _0$$3; - zval descriptor; + zephir_fcall_cache_entry *_1 = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&descriptor); + ZVAL_UNDEF(&intermediate); + ZVAL_UNDEF(&phql); + ZVAL_UNDEF(&ast); + ZVAL_UNDEF(&irPhql); + ZVAL_UNDEF(&uniqueId); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&_3$$7); + ZVAL_UNDEF(&_4$$13); + ZVAL_UNDEF(&_5$$13); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("intermediate"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&intermediate, &_0); + if (Z_TYPE_P(&intermediate) == IS_ARRAY) { + RETURN_CCTOR(&intermediate); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&phql, &_0); + ZEPHIR_CALL_CE_STATIC(&ast, phalcon_mvc_model_query_lang_ce, "parsephql", &_1, 0, &phql); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&irPhql); + ZVAL_NULL(&irPhql); + ZEPHIR_INIT_VAR(&uniqueId); + ZVAL_NULL(&uniqueId); + if (Z_TYPE_P(&ast) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&uniqueId); + if (zephir_array_isset_string_fetch(&uniqueId, &ast, SL("id"), 0)) { + ZEPHIR_OBS_NVAR(&irPhql); + zephir_read_static_property_ce(&_2$$5, phalcon_mvc_model_query_ce, SL("internalPhqlCache"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_fetch(&irPhql, &_2$$5, &uniqueId, 0)) { + if (Z_TYPE_P(&irPhql) == IS_ARRAY) { + zephir_array_fetch_string(&_3$$7, &ast, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 560); + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_3$$7); + RETURN_CCTOR(&irPhql); + } + } + } + ZEPHIR_OBS_VAR(&type); + if (zephir_array_isset_string_fetch(&type, &ast, SL("type"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("ast"), &ast); + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &type); + do { + if (ZEPHIR_IS_LONG(&type, 309)) { + ZEPHIR_CALL_METHOD(&irPhql, this_ptr, "_prepareselect", NULL, 460); + zephir_check_call_status(); + break; + } + if (ZEPHIR_IS_LONG(&type, 306)) { + ZEPHIR_CALL_METHOD(&irPhql, this_ptr, "_prepareinsert", NULL, 461); + zephir_check_call_status(); + break; + } + if (ZEPHIR_IS_LONG(&type, 300)) { + ZEPHIR_CALL_METHOD(&irPhql, this_ptr, "_prepareupdate", NULL, 462); + zephir_check_call_status(); + break; + } + if (ZEPHIR_IS_LONG(&type, 303)) { + ZEPHIR_CALL_METHOD(&irPhql, this_ptr, "_preparedelete", NULL, 463); + zephir_check_call_status(); + break; + } + ZEPHIR_INIT_VAR(&_4$$13); + object_init_ex(&_4$$13, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_5$$13); + ZEPHIR_CONCAT_SVSV(&_5$$13, "Unknown statement ", &type, ", when preparing: ", &phql); + ZEPHIR_CALL_METHOD(NULL, &_4$$13, "__construct", NULL, 8, &_5$$13); + zephir_check_call_status(); + zephir_throw_exception_debug(&_4$$13, "phalcon/Mvc/Model/Query.zep", 594); + ZEPHIR_MM_RESTORE(); + return; + } while(0); + + } + } + if (UNEXPECTED(Z_TYPE_P(&irPhql) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted AST", "phalcon/Mvc/Model/Query.zep", 600); + return; + } + if (Z_TYPE_P(&uniqueId) == IS_LONG) { + zephir_update_static_property_array_multi_ce(phalcon_mvc_model_query_ce, SL("internalPhqlCache"), &irPhql, SL("z"), 1, &uniqueId); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("intermediate"), &irPhql); + RETURN_CCTOR(&irPhql); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Query, setBindParams) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_bool merge; + zval *bindParams_param = NULL, *merge_param = NULL, currentBindParams, _0$$3; + zval bindParams; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(¤tBindParams); ZVAL_UNDEF(&_0$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(descriptor) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(bindParams) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(merge) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &descriptor_param); - ZEPHIR_OBS_COPY_OR_DUP(&descriptor, descriptor_param); + zephir_fetch_params(1, 1, 1, &bindParams_param, &merge_param); + ZEPHIR_OBS_COPY_OR_DUP(&bindParams, bindParams_param); + if (!merge_param) { + merge = 0; + } else { + merge = zephir_get_boolval(merge_param); + } - if (zephir_array_isset_string(&descriptor, SL("charset"))) { + if (merge) { + zephir_read_property(¤tBindParams, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); ZEPHIR_INIT_VAR(&_0$$3); - ZVAL_STRING(&_0$$3, "SQLite does not allow the charset to be changed in the DSN."); - ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_0$$3); - zephir_check_call_status(); + zephir_add_function(&_0$$3, ¤tBindParams, &bindParams); + zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &_0$$3); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &bindParams); } - ZEPHIR_CALL_PARENT(NULL, phalcon_db_adapter_pdo_sqlite_ce, getThis(), "__construct", &_1, 0, &descriptor); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, connect) +static PHP_METHOD(Phalcon_Mvc_Model_Query, setBindTypes) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_2 = NULL; - zval *descriptor_param = NULL, dbname, _0$$3; - zval descriptor, _1$$3; + zend_bool merge; + zval *bindTypes_param = NULL, *merge_param = NULL, currentBindTypes, _0$$4; + zval bindTypes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&descriptor); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&dbname); - ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(¤tBindTypes); + ZVAL_UNDEF(&_0$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(bindTypes) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY_OR_NULL(descriptor) + Z_PARAM_BOOL(merge) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &descriptor_param); - if (!descriptor_param) { - ZEPHIR_INIT_VAR(&descriptor); + zephir_fetch_params(1, 1, 1, &bindTypes_param, &merge_param); + ZEPHIR_OBS_COPY_OR_DUP(&bindTypes, bindTypes_param); + if (!merge_param) { + merge = 0; } else { - zephir_get_arrval(&descriptor, descriptor_param); + merge = zephir_get_boolval(merge_param); } - if (ZEPHIR_IS_EMPTY(&descriptor)) { - ZEPHIR_OBS_VAR(&_0$$3); - zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("descriptor"), PH_NOISY_CC); - zephir_get_arrval(&_1$$3, &_0$$3); - ZEPHIR_CPY_WRT(&descriptor, &_1$$3); + if (UNEXPECTED(merge)) { + zephir_read_property(¤tBindTypes, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(¤tBindTypes) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&_0$$4); + zephir_add_function(&_0$$4, ¤tBindTypes, &bindTypes); + zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &_0$$4); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &bindTypes); + } + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &bindTypes); } - ZEPHIR_OBS_VAR(&dbname); - if (zephir_array_isset_string_fetch(&dbname, &descriptor, SL("dbname"), 0)) { - zephir_array_update_string(&descriptor, SL("dsn"), &dbname, PH_COPY | PH_SEPARATE); - zephir_array_unset_string(&descriptor, SL("dbname"), PH_SEPARATE); - } else if (UNEXPECTED(!(zephir_array_isset_string(&descriptor, SL("dsn"))))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The database must be specified with either 'dbname' or 'dsn'.", "phalcon/Db/Adapter/Pdo/Sqlite.zep", 82); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Query, setDI) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *container, container_sub, manager, metaData, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&container_sub); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&metaData); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &container); + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "modelsManager"); + ZEPHIR_CALL_METHOD(&manager, container, "getshared", NULL, 0, &_0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&manager) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Injected service 'modelsManager' is invalid", "phalcon/Mvc/Model/Query.zep", 664); return; } - ZEPHIR_RETURN_CALL_PARENT(phalcon_db_adapter_pdo_sqlite_ce, getThis(), "connect", &_2, 0, &descriptor); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "modelsMetadata"); + ZEPHIR_CALL_METHOD(&metaData, container, "getshared", NULL, 0, &_0); zephir_check_call_status(); - RETURN_MM(); + if (UNEXPECTED(Z_TYPE_P(&metaData) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Injected service 'modelsMetaData' is invalid", "phalcon/Mvc/Model/Query.zep", 670); + return; + } + zephir_update_property_zval(this_ptr, ZEND_STRL("manager"), &manager); + zephir_update_property_zval(this_ptr, ZEND_STRL("metaData"), &metaData); + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) +static PHP_METHOD(Phalcon_Mvc_Model_Query, setIntermediate) { - zend_bool _5$$3, _34$$3, _43$$28, _71$$28; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_33 = NULL, *_40 = NULL, *_41 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *table_param = NULL, *schema_param = NULL, __$true, __$false, columns, columnType, fields, field, definition, oldColumn, sizePattern, matches, matchOne, matchTwo, columnName, _0, _1, _2, *_3, _4, _28$$3, _29$$3, _30$$3, _31$$3, _32$$3, _35$$3, _6$$4, _7$$4, _8$$5, _9$$5, _10$$5, _11$$7, _12$$7, _13$$8, _14$$9, _15$$10, _16$$11, _17$$11, _18$$12, _19$$12, _20$$13, _21$$14, _22$$15, _23$$16, _24$$17, _25$$18, _26$$20, _27$$21, _36$$27, _37$$27, _38$$27, _39$$27, _42$$28, _66$$28, _67$$28, _68$$28, _69$$28, _70$$28, _72$$28, _44$$29, _45$$29, _46$$30, _47$$30, _48$$30, _49$$32, _50$$32, _51$$33, _52$$34, _53$$35, _54$$36, _55$$36, _56$$37, _57$$37, _58$$38, _59$$39, _60$$40, _61$$41, _62$$42, _63$$43, _64$$45, _65$$46, _73$$52, _74$$52, _75$$52, _76$$52; - zval table, schema; + zval *intermediate_param = NULL; + zval intermediate; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&intermediate); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(intermediate) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &intermediate_param); + ZEPHIR_OBS_COPY_OR_DUP(&intermediate, intermediate_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("intermediate"), &intermediate); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Query, setSharedLock) +{ + zval *sharedLock_param = NULL, __$true, __$false; + zend_bool sharedLock; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); ZVAL_BOOL(&__$true, 1); ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&columnType); - ZVAL_UNDEF(&fields); - ZVAL_UNDEF(&field); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&oldColumn); - ZVAL_UNDEF(&sizePattern); - ZVAL_UNDEF(&matches); - ZVAL_UNDEF(&matchOne); - ZVAL_UNDEF(&matchTwo); - ZVAL_UNDEF(&columnName); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_28$$3); - ZVAL_UNDEF(&_29$$3); - ZVAL_UNDEF(&_30$$3); - ZVAL_UNDEF(&_31$$3); - ZVAL_UNDEF(&_32$$3); - ZVAL_UNDEF(&_35$$3); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_10$$5); - ZVAL_UNDEF(&_11$$7); - ZVAL_UNDEF(&_12$$7); - ZVAL_UNDEF(&_13$$8); - ZVAL_UNDEF(&_14$$9); - ZVAL_UNDEF(&_15$$10); - ZVAL_UNDEF(&_16$$11); - ZVAL_UNDEF(&_17$$11); - ZVAL_UNDEF(&_18$$12); - ZVAL_UNDEF(&_19$$12); - ZVAL_UNDEF(&_20$$13); - ZVAL_UNDEF(&_21$$14); - ZVAL_UNDEF(&_22$$15); - ZVAL_UNDEF(&_23$$16); - ZVAL_UNDEF(&_24$$17); - ZVAL_UNDEF(&_25$$18); - ZVAL_UNDEF(&_26$$20); - ZVAL_UNDEF(&_27$$21); - ZVAL_UNDEF(&_36$$27); - ZVAL_UNDEF(&_37$$27); - ZVAL_UNDEF(&_38$$27); - ZVAL_UNDEF(&_39$$27); - ZVAL_UNDEF(&_42$$28); - ZVAL_UNDEF(&_66$$28); - ZVAL_UNDEF(&_67$$28); - ZVAL_UNDEF(&_68$$28); - ZVAL_UNDEF(&_69$$28); - ZVAL_UNDEF(&_70$$28); - ZVAL_UNDEF(&_72$$28); - ZVAL_UNDEF(&_44$$29); - ZVAL_UNDEF(&_45$$29); - ZVAL_UNDEF(&_46$$30); - ZVAL_UNDEF(&_47$$30); - ZVAL_UNDEF(&_48$$30); - ZVAL_UNDEF(&_49$$32); - ZVAL_UNDEF(&_50$$32); - ZVAL_UNDEF(&_51$$33); - ZVAL_UNDEF(&_52$$34); - ZVAL_UNDEF(&_53$$35); - ZVAL_UNDEF(&_54$$36); - ZVAL_UNDEF(&_55$$36); - ZVAL_UNDEF(&_56$$37); - ZVAL_UNDEF(&_57$$37); - ZVAL_UNDEF(&_58$$38); - ZVAL_UNDEF(&_59$$39); - ZVAL_UNDEF(&_60$$40); - ZVAL_UNDEF(&_61$$41); - ZVAL_UNDEF(&_62$$42); - ZVAL_UNDEF(&_63$$43); - ZVAL_UNDEF(&_64$$45); - ZVAL_UNDEF(&_65$$46); - ZVAL_UNDEF(&_73$$52); - ZVAL_UNDEF(&_74$$52); - ZVAL_UNDEF(&_75$$52); - ZVAL_UNDEF(&_76$$52); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) + Z_PARAM_BOOL(sharedLock) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); - } else { - ZEPHIR_INIT_VAR(&table); - } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); + zephir_fetch_params_without_memory_grow(0, 1, &sharedLock_param); + if (!sharedLock_param) { + sharedLock = 0; } else { - if (UNEXPECTED(Z_TYPE_P(schema_param) != IS_STRING && Z_TYPE_P(schema_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schema' must be of the type string")); - RETURN_MM_NULL(); + sharedLock = zephir_get_boolval(sharedLock_param); } - if (EXPECTED(Z_TYPE_P(schema_param) == IS_STRING)) { - zephir_get_strval(&schema, schema_param); + + + if (sharedLock) { + zephir_update_property_zval(this_ptr, ZEND_STRL("sharedLock"), &__$true); } else { - ZEPHIR_INIT_VAR(&schema); - } + zephir_update_property_zval(this_ptr, ZEND_STRL("sharedLock"), &__$false); } + RETURN_THISW(); +} +static PHP_METHOD(Phalcon_Mvc_Model_Query, setTransaction) +{ + zval *transaction, transaction_sub; + zval *this_ptr = getThis(); - ZEPHIR_INIT_VAR(&oldColumn); - ZVAL_NULL(&oldColumn); - ZEPHIR_INIT_VAR(&sizePattern); - ZVAL_STRING(&sizePattern, "#\\(([0-9]+)(?:,\\s*([0-9]+))*\\)#"); - ZEPHIR_INIT_VAR(&columns); - array_init(&columns); - zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "describecolumns", NULL, 0, &table, &schema); - zephir_check_call_status(); - ZVAL_LONG(&_2, 3); - ZEPHIR_CALL_METHOD(&fields, this_ptr, "fetchall", NULL, 0, &_1, &_2); - zephir_check_call_status(); - zephir_is_iterable(&fields, 0, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 312); - if (Z_TYPE_P(&fields) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&fields), _3) - { - ZEPHIR_INIT_NVAR(&field); - ZVAL_COPY(&field, _3); - ZEPHIR_INIT_NVAR(&definition); - zephir_create_array(&definition, 1, 0); - add_assoc_long_ex(&definition, SL("bindType"), 2); - ZEPHIR_OBS_NVAR(&columnType); - zephir_array_fetch_long(&columnType, &field, 2, PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 128); - _5$$3 = zephir_memnstr_str(&columnType, SL("int"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 150); - if (!(_5$$3)) { - _5$$3 = zephir_memnstr_str(&columnType, SL("INT"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 150); - } - if (zephir_memnstr_str(&columnType, SL("bigint"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 143)) { - ZEPHIR_INIT_NVAR(&_6$$4); - ZVAL_LONG(&_6$$4, 14); - zephir_array_update_string(&definition, SL("type"), &_6$$4, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_7$$4); - ZVAL_LONG(&_7$$4, 1); - zephir_array_update_string(&definition, SL("bindType"), &_7$$4, PH_COPY | PH_SEPARATE); - } else if (_5$$3) { - ZEPHIR_INIT_NVAR(&_8$$5); - ZVAL_LONG(&_8$$5, 0); - zephir_array_update_string(&definition, SL("type"), &_8$$5, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_9$$5); - ZVAL_LONG(&_9$$5, 1); - zephir_array_update_string(&definition, SL("bindType"), &_9$$5, PH_COPY | PH_SEPARATE); - zephir_array_fetch_long(&_10$$5, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 158); - if (zephir_is_true(&_10$$5)) { - zephir_array_update_string(&definition, SL("autoIncrement"), &__$true, PH_COPY | PH_SEPARATE); - } - } else if (zephir_memnstr_str(&columnType, SL("tinyint(1)"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 161)) { - ZEPHIR_INIT_NVAR(&_11$$7); - ZVAL_LONG(&_11$$7, 8); - zephir_array_update_string(&definition, SL("type"), &_11$$7, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_12$$7); - ZVAL_LONG(&_12$$7, 5); - zephir_array_update_string(&definition, SL("bindType"), &_12$$7, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&columnType); - ZVAL_STRING(&columnType, "boolean"); - } else if (zephir_memnstr_str(&columnType, SL("enum"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 172)) { - ZEPHIR_INIT_NVAR(&_13$$8); - ZVAL_LONG(&_13$$8, 5); - zephir_array_update_string(&definition, SL("type"), &_13$$8, PH_COPY | PH_SEPARATE); - } else if (zephir_memnstr_str(&columnType, SL("datetime"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 181)) { - ZEPHIR_INIT_NVAR(&_14$$9); - ZVAL_LONG(&_14$$9, 4); - zephir_array_update_string(&definition, SL("type"), &_14$$9, PH_COPY | PH_SEPARATE); - } else if (zephir_memnstr_str(&columnType, SL("date"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 186)) { - ZEPHIR_INIT_NVAR(&_15$$10); - ZVAL_LONG(&_15$$10, 1); - zephir_array_update_string(&definition, SL("type"), &_15$$10, PH_COPY | PH_SEPARATE); - } else if (zephir_memnstr_str(&columnType, SL("decimal"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 195)) { - ZEPHIR_INIT_NVAR(&_16$$11); - ZVAL_LONG(&_16$$11, 3); - zephir_array_update_string(&definition, SL("type"), &_16$$11, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_17$$11); - ZVAL_LONG(&_17$$11, 32); - zephir_array_update_string(&definition, SL("bindType"), &_17$$11, PH_COPY | PH_SEPARATE); - } else if (zephir_memnstr_str(&columnType, SL("float"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 202)) { - ZEPHIR_INIT_NVAR(&_18$$12); - ZVAL_LONG(&_18$$12, 7); - zephir_array_update_string(&definition, SL("type"), &_18$$12, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_19$$12); - ZVAL_LONG(&_19$$12, 3); - zephir_array_update_string(&definition, SL("bindType"), &_19$$12, PH_COPY | PH_SEPARATE); - } else if (zephir_memnstr_str(&columnType, SL("timestamp"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 213)) { - ZEPHIR_INIT_NVAR(&_20$$13); - ZVAL_LONG(&_20$$13, 17); - zephir_array_update_string(&definition, SL("type"), &_20$$13, PH_COPY | PH_SEPARATE); - } else if (zephir_memnstr_str(&columnType, SL("varchar"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 222)) { - ZEPHIR_INIT_NVAR(&_21$$14); - ZVAL_LONG(&_21$$14, 2); - zephir_array_update_string(&definition, SL("type"), &_21$$14, PH_COPY | PH_SEPARATE); - } else if (zephir_memnstr_str(&columnType, SL("char"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 227)) { - ZEPHIR_INIT_NVAR(&_22$$15); - ZVAL_LONG(&_22$$15, 5); - zephir_array_update_string(&definition, SL("type"), &_22$$15, PH_COPY | PH_SEPARATE); - } else if (zephir_memnstr_str(&columnType, SL("text"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 232)) { - ZEPHIR_INIT_NVAR(&_23$$16); - ZVAL_LONG(&_23$$16, 6); - zephir_array_update_string(&definition, SL("type"), &_23$$16, PH_COPY | PH_SEPARATE); - } else { - ZEPHIR_INIT_NVAR(&_24$$17); - ZVAL_LONG(&_24$$17, 2); - zephir_array_update_string(&definition, SL("type"), &_24$$17, PH_COPY | PH_SEPARATE); - } - if (zephir_memnstr_str(&columnType, SL("("), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 249)) { - ZEPHIR_INIT_NVAR(&matches); - ZVAL_NULL(&matches); - ZEPHIR_INIT_NVAR(&_25$$18); - zephir_preg_match(&_25$$18, &sizePattern, &columnType, &matches, 0, 0 , 0 ); - if (zephir_is_true(&_25$$18)) { - ZEPHIR_OBS_NVAR(&matchOne); - if (zephir_array_isset_long_fetch(&matchOne, &matches, 1, 0)) { - ZEPHIR_INIT_NVAR(&_26$$20); - ZVAL_LONG(&_26$$20, zephir_get_intval(&matchOne)); - zephir_array_update_string(&definition, SL("size"), &_26$$20, PH_COPY | PH_SEPARATE); - } - ZEPHIR_OBS_NVAR(&matchTwo); - if (zephir_array_isset_long_fetch(&matchTwo, &matches, 2, 0)) { - ZEPHIR_INIT_NVAR(&_27$$21); - ZVAL_LONG(&_27$$21, zephir_get_intval(&matchTwo)); - zephir_array_update_string(&definition, SL("scale"), &_27$$21, PH_COPY | PH_SEPARATE); - } - } - } - if (zephir_memnstr_str(&columnType, SL("unsigned"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 265)) { - zephir_array_update_string(&definition, SL("unsigned"), &__$true, PH_COPY | PH_SEPARATE); - } - if (Z_TYPE_P(&oldColumn) == IS_NULL) { - zephir_array_update_string(&definition, SL("first"), &__$true, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_28$$3, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 281); - if (zephir_is_true(&_28$$3)) { - zephir_array_update_string(&definition, SL("primary"), &__$true, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_29$$3, &field, 3, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 288); - if (ZEPHIR_IS_LONG(&_29$$3, 0)) { - zephir_array_update_string(&definition, SL("notNull"), &__$false, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_30$$3, &field, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 296); - ZEPHIR_INIT_NVAR(&_31$$3); - ZVAL_STRING(&_31$$3, "null"); - ZEPHIR_CALL_FUNCTION(&_32$$3, "strcasecmp", &_33, 47, &_30$$3, &_31$$3); - zephir_check_call_status(); - _34$$3 = !ZEPHIR_IS_LONG(&_32$$3, 0); - if (_34$$3) { - zephir_array_fetch_long(&_35$$3, &field, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 296); - _34$$3 = !ZEPHIR_IS_STRING(&_35$$3, ""); - } - if (_34$$3) { - zephir_array_fetch_long(&_36$$27, &field, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 301); - ZEPHIR_INIT_NVAR(&_37$$27); - ZVAL_STRING(&_37$$27, "/^'|'$/"); - ZEPHIR_INIT_NVAR(&_38$$27); - ZVAL_STRING(&_38$$27, ""); - ZEPHIR_CALL_FUNCTION(&_39$$27, "preg_replace", &_40, 50, &_37$$27, &_38$$27, &_36$$27); - zephir_check_call_status(); - zephir_array_update_string(&definition, SL("default"), &_39$$27, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&columnName, &field, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 307); - ZEPHIR_INIT_NVAR(&_31$$3); - object_init_ex(&_31$$3, phalcon_db_column_ce); - ZEPHIR_CALL_METHOD(NULL, &_31$$3, "__construct", &_41, 212, &columnName, &definition); - zephir_check_call_status(); - zephir_array_append(&columns, &_31$$3, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 308); - ZEPHIR_CPY_WRT(&oldColumn, &columnName); - } ZEND_HASH_FOREACH_END(); + ZVAL_UNDEF(&transaction_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(transaction, phalcon_mvc_model_transactioninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &transaction); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("transaction"), transaction); + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Query, setType) +{ + zval *type_param = NULL, _0; + zend_long type; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(type) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &type_param); + type = zephir_get_intval(type_param); + + + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, type); + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_0); + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Query, setUniqueRow) +{ + zval *uniqueRow_param = NULL, __$true, __$false; + zend_bool uniqueRow; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(uniqueRow) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &uniqueRow_param); + uniqueRow = zephir_get_boolval(uniqueRow_param); + + + if (uniqueRow) { + zephir_update_property_zval(this_ptr, ZEND_STRL("uniqueRow"), &__$true); } else { - ZEPHIR_CALL_METHOD(NULL, &fields, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_4, &fields, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_4)) { - break; - } - ZEPHIR_CALL_METHOD(&field, &fields, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_42$$28); - zephir_create_array(&_42$$28, 1, 0); - add_assoc_long_ex(&_42$$28, SL("bindType"), 2); - ZEPHIR_CPY_WRT(&definition, &_42$$28); - ZEPHIR_OBS_NVAR(&columnType); - zephir_array_fetch_long(&columnType, &field, 2, PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 128); - _43$$28 = zephir_memnstr_str(&columnType, SL("int"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 150); - if (!(_43$$28)) { - _43$$28 = zephir_memnstr_str(&columnType, SL("INT"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 150); - } - if (zephir_memnstr_str(&columnType, SL("bigint"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 143)) { - ZEPHIR_INIT_NVAR(&_44$$29); - ZVAL_LONG(&_44$$29, 14); - zephir_array_update_string(&definition, SL("type"), &_44$$29, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_45$$29); - ZVAL_LONG(&_45$$29, 1); - zephir_array_update_string(&definition, SL("bindType"), &_45$$29, PH_COPY | PH_SEPARATE); - } else if (_43$$28) { - ZEPHIR_INIT_NVAR(&_46$$30); - ZVAL_LONG(&_46$$30, 0); - zephir_array_update_string(&definition, SL("type"), &_46$$30, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_47$$30); - ZVAL_LONG(&_47$$30, 1); - zephir_array_update_string(&definition, SL("bindType"), &_47$$30, PH_COPY | PH_SEPARATE); - zephir_array_fetch_long(&_48$$30, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 158); - if (zephir_is_true(&_48$$30)) { - zephir_array_update_string(&definition, SL("autoIncrement"), &__$true, PH_COPY | PH_SEPARATE); - } - } else if (zephir_memnstr_str(&columnType, SL("tinyint(1)"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 161)) { - ZEPHIR_INIT_NVAR(&_49$$32); - ZVAL_LONG(&_49$$32, 8); - zephir_array_update_string(&definition, SL("type"), &_49$$32, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_50$$32); - ZVAL_LONG(&_50$$32, 5); - zephir_array_update_string(&definition, SL("bindType"), &_50$$32, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&columnType); - ZVAL_STRING(&columnType, "boolean"); - } else if (zephir_memnstr_str(&columnType, SL("enum"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 172)) { - ZEPHIR_INIT_NVAR(&_51$$33); - ZVAL_LONG(&_51$$33, 5); - zephir_array_update_string(&definition, SL("type"), &_51$$33, PH_COPY | PH_SEPARATE); - } else if (zephir_memnstr_str(&columnType, SL("datetime"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 181)) { - ZEPHIR_INIT_NVAR(&_52$$34); - ZVAL_LONG(&_52$$34, 4); - zephir_array_update_string(&definition, SL("type"), &_52$$34, PH_COPY | PH_SEPARATE); - } else if (zephir_memnstr_str(&columnType, SL("date"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 186)) { - ZEPHIR_INIT_NVAR(&_53$$35); - ZVAL_LONG(&_53$$35, 1); - zephir_array_update_string(&definition, SL("type"), &_53$$35, PH_COPY | PH_SEPARATE); - } else if (zephir_memnstr_str(&columnType, SL("decimal"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 195)) { - ZEPHIR_INIT_NVAR(&_54$$36); - ZVAL_LONG(&_54$$36, 3); - zephir_array_update_string(&definition, SL("type"), &_54$$36, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_55$$36); - ZVAL_LONG(&_55$$36, 32); - zephir_array_update_string(&definition, SL("bindType"), &_55$$36, PH_COPY | PH_SEPARATE); - } else if (zephir_memnstr_str(&columnType, SL("float"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 202)) { - ZEPHIR_INIT_NVAR(&_56$$37); - ZVAL_LONG(&_56$$37, 7); - zephir_array_update_string(&definition, SL("type"), &_56$$37, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_57$$37); - ZVAL_LONG(&_57$$37, 3); - zephir_array_update_string(&definition, SL("bindType"), &_57$$37, PH_COPY | PH_SEPARATE); - } else if (zephir_memnstr_str(&columnType, SL("timestamp"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 213)) { - ZEPHIR_INIT_NVAR(&_58$$38); - ZVAL_LONG(&_58$$38, 17); - zephir_array_update_string(&definition, SL("type"), &_58$$38, PH_COPY | PH_SEPARATE); - } else if (zephir_memnstr_str(&columnType, SL("varchar"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 222)) { - ZEPHIR_INIT_NVAR(&_59$$39); - ZVAL_LONG(&_59$$39, 2); - zephir_array_update_string(&definition, SL("type"), &_59$$39, PH_COPY | PH_SEPARATE); - } else if (zephir_memnstr_str(&columnType, SL("char"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 227)) { - ZEPHIR_INIT_NVAR(&_60$$40); - ZVAL_LONG(&_60$$40, 5); - zephir_array_update_string(&definition, SL("type"), &_60$$40, PH_COPY | PH_SEPARATE); - } else if (zephir_memnstr_str(&columnType, SL("text"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 232)) { - ZEPHIR_INIT_NVAR(&_61$$41); - ZVAL_LONG(&_61$$41, 6); - zephir_array_update_string(&definition, SL("type"), &_61$$41, PH_COPY | PH_SEPARATE); - } else { - ZEPHIR_INIT_NVAR(&_62$$42); - ZVAL_LONG(&_62$$42, 2); - zephir_array_update_string(&definition, SL("type"), &_62$$42, PH_COPY | PH_SEPARATE); - } - if (zephir_memnstr_str(&columnType, SL("("), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 249)) { - ZEPHIR_INIT_NVAR(&matches); - ZVAL_NULL(&matches); - ZEPHIR_INIT_NVAR(&_63$$43); - zephir_preg_match(&_63$$43, &sizePattern, &columnType, &matches, 0, 0 , 0 ); - if (zephir_is_true(&_63$$43)) { - ZEPHIR_OBS_NVAR(&matchOne); - if (zephir_array_isset_long_fetch(&matchOne, &matches, 1, 0)) { - ZEPHIR_INIT_NVAR(&_64$$45); - ZVAL_LONG(&_64$$45, zephir_get_intval(&matchOne)); - zephir_array_update_string(&definition, SL("size"), &_64$$45, PH_COPY | PH_SEPARATE); - } - ZEPHIR_OBS_NVAR(&matchTwo); - if (zephir_array_isset_long_fetch(&matchTwo, &matches, 2, 0)) { - ZEPHIR_INIT_NVAR(&_65$$46); - ZVAL_LONG(&_65$$46, zephir_get_intval(&matchTwo)); - zephir_array_update_string(&definition, SL("scale"), &_65$$46, PH_COPY | PH_SEPARATE); - } - } - } - if (zephir_memnstr_str(&columnType, SL("unsigned"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 265)) { - zephir_array_update_string(&definition, SL("unsigned"), &__$true, PH_COPY | PH_SEPARATE); - } - if (Z_TYPE_P(&oldColumn) == IS_NULL) { - zephir_array_update_string(&definition, SL("first"), &__$true, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_66$$28, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 281); - if (zephir_is_true(&_66$$28)) { - zephir_array_update_string(&definition, SL("primary"), &__$true, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_67$$28, &field, 3, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 288); - if (ZEPHIR_IS_LONG(&_67$$28, 0)) { - zephir_array_update_string(&definition, SL("notNull"), &__$false, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch_long(&_68$$28, &field, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 296); - ZEPHIR_INIT_NVAR(&_69$$28); - ZVAL_STRING(&_69$$28, "null"); - ZEPHIR_CALL_FUNCTION(&_70$$28, "strcasecmp", &_33, 47, &_68$$28, &_69$$28); - zephir_check_call_status(); - _71$$28 = !ZEPHIR_IS_LONG(&_70$$28, 0); - if (_71$$28) { - zephir_array_fetch_long(&_72$$28, &field, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 296); - _71$$28 = !ZEPHIR_IS_STRING(&_72$$28, ""); - } - if (_71$$28) { - zephir_array_fetch_long(&_73$$52, &field, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 301); - ZEPHIR_INIT_NVAR(&_74$$52); - ZVAL_STRING(&_74$$52, "/^'|'$/"); - ZEPHIR_INIT_NVAR(&_75$$52); - ZVAL_STRING(&_75$$52, ""); - ZEPHIR_CALL_FUNCTION(&_76$$52, "preg_replace", &_40, 50, &_74$$52, &_75$$52, &_73$$52); - zephir_check_call_status(); - zephir_array_update_string(&definition, SL("default"), &_76$$52, PH_COPY | PH_SEPARATE); - } - ZEPHIR_OBS_NVAR(&columnName); - zephir_array_fetch_long(&columnName, &field, 1, PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 307); - ZEPHIR_INIT_NVAR(&_69$$28); - object_init_ex(&_69$$28, phalcon_db_column_ce); - ZEPHIR_CALL_METHOD(NULL, &_69$$28, "__construct", &_41, 212, &columnName, &definition); - zephir_check_call_status(); - zephir_array_append(&columns, &_69$$28, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 308); - ZEPHIR_CPY_WRT(&oldColumn, &columnName); - ZEPHIR_CALL_METHOD(NULL, &fields, "next", NULL, 0); - zephir_check_call_status(); - } + zephir_update_property_zval(this_ptr, ZEND_STRL("uniqueRow"), &__$false); } - ZEPHIR_INIT_NVAR(&field); - RETURN_CCTOR(&columns); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeIndexes) +static PHP_METHOD(Phalcon_Mvc_Model_Query, executeDelete) { - zend_string *_46; - zend_ulong _45; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_17 = NULL, *_50 = NULL; + zephir_fcall_cache_entry *_4 = NULL, *_6 = NULL, *_8 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *table_param = NULL, *schema_param = NULL, __$null, indexes, index, keyName, indexObjects, name, columns, describeIndexes, describeIndex, indexSql, _0, _1, _2, _3, *_4, _5, *_43, _44, _6$$4, _7$$3, _9$$3, _10$$3, _11$$3, *_12$$3, _13$$3, _16$$3, _18$$3, _8$$6, _14$$7, _15$$8, _19$$9, _20$$9, _21$$9, _22$$9, _23$$10, _24$$11, _25$$14, _26$$13, _28$$13, _29$$13, _30$$13, *_31$$13, _32$$13, _35$$13, _36$$13, _27$$16, _33$$17, _34$$18, _37$$19, _38$$19, _39$$19, _40$$19, _41$$20, _42$$21, _47$$23, _48$$23, _49$$23, _51$$24, _52$$24, _53$$24; - zval table, schema; + zval *intermediate_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, models, modelName, model, records, connection, record, _0, _3, _9, _1$$4, _2$$5, _5$$6, _7$$7; + zval intermediate, bindParams, bindTypes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&indexes); - ZVAL_UNDEF(&index); - ZVAL_UNDEF(&keyName); - ZVAL_UNDEF(&indexObjects); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&describeIndexes); - ZVAL_UNDEF(&describeIndex); - ZVAL_UNDEF(&indexSql); + ZVAL_UNDEF(&intermediate); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&models); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&records); + ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&record); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_44); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_9$$3); - ZVAL_UNDEF(&_10$$3); - ZVAL_UNDEF(&_11$$3); - ZVAL_UNDEF(&_13$$3); - ZVAL_UNDEF(&_16$$3); - ZVAL_UNDEF(&_18$$3); - ZVAL_UNDEF(&_8$$6); - ZVAL_UNDEF(&_14$$7); - ZVAL_UNDEF(&_15$$8); - ZVAL_UNDEF(&_19$$9); - ZVAL_UNDEF(&_20$$9); - ZVAL_UNDEF(&_21$$9); - ZVAL_UNDEF(&_22$$9); - ZVAL_UNDEF(&_23$$10); - ZVAL_UNDEF(&_24$$11); - ZVAL_UNDEF(&_25$$14); - ZVAL_UNDEF(&_26$$13); - ZVAL_UNDEF(&_28$$13); - ZVAL_UNDEF(&_29$$13); - ZVAL_UNDEF(&_30$$13); - ZVAL_UNDEF(&_32$$13); - ZVAL_UNDEF(&_35$$13); - ZVAL_UNDEF(&_36$$13); - ZVAL_UNDEF(&_27$$16); - ZVAL_UNDEF(&_33$$17); - ZVAL_UNDEF(&_34$$18); - ZVAL_UNDEF(&_37$$19); - ZVAL_UNDEF(&_38$$19); - ZVAL_UNDEF(&_39$$19); - ZVAL_UNDEF(&_40$$19); - ZVAL_UNDEF(&_41$$20); - ZVAL_UNDEF(&_42$$21); - ZVAL_UNDEF(&_47$$23); - ZVAL_UNDEF(&_48$$23); - ZVAL_UNDEF(&_49$$23); - ZVAL_UNDEF(&_51$$24); - ZVAL_UNDEF(&_52$$24); - ZVAL_UNDEF(&_53$$24); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&_7$$7); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_ARRAY(intermediate) + Z_PARAM_ARRAY(bindParams) + Z_PARAM_ARRAY(bindTypes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); - } else { - ZEPHIR_INIT_VAR(&table); - } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); - } else { - if (UNEXPECTED(Z_TYPE_P(schema_param) != IS_STRING && Z_TYPE_P(schema_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schema' must be of the type string")); - RETURN_MM_NULL(); + zephir_fetch_params(1, 3, 0, &intermediate_param, &bindParams_param, &bindTypes_param); + zephir_get_arrval(&intermediate, intermediate_param); + zephir_get_arrval(&bindParams, bindParams_param); + zephir_get_arrval(&bindTypes, bindTypes_param); + + + ZEPHIR_OBS_VAR(&models); + zephir_array_fetch_string(&models, &intermediate, SL("models"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 738); + if (UNEXPECTED(zephir_array_isset_long(&models, 1))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Delete from several models at the same time is still not supported", "phalcon/Mvc/Model/Query.zep", 743); + return; } - if (EXPECTED(Z_TYPE_P(schema_param) == IS_STRING)) { - zephir_get_strval(&schema, schema_param); - } else { - ZEPHIR_INIT_VAR(&schema); + ZEPHIR_OBS_VAR(&modelName); + zephir_array_fetch_long(&modelName, &models, 0, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 746); + ZEPHIR_OBS_VAR(&model); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&model, &_0, &modelName, 0))) { + zephir_read_property(&_1$$4, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&model, &_1$$4, "load", NULL, 0, &modelName); + zephir_check_call_status(); } + ZEPHIR_CALL_METHOD(&records, this_ptr, "getrelatedrecords", NULL, 464, &model, &intermediate, &bindParams, &bindTypes); + zephir_check_call_status(); + if (!(zephir_fast_count_int(&records))) { + object_init_ex(return_value, phalcon_mvc_model_query_status_ce); + ZVAL_BOOL(&_2$$5, 1); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 465, &_2$$5); + zephir_check_call_status(); + RETURN_MM(); } - - - ZEPHIR_INIT_VAR(&indexes); - array_init(&indexes); - zephir_read_property(&_1, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_2, &_1, "describeindexes", NULL, 0, &table, &schema); + ZEPHIR_CALL_METHOD(&connection, this_ptr, "getwriteconnection", NULL, 0, &model, &intermediate, &bindParams, &bindTypes); zephir_check_call_status(); - ZVAL_LONG(&_3, 2); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, 0, &_2, &_3); + ZEPHIR_CALL_METHOD(NULL, &connection, "begin", NULL, 0); zephir_check_call_status(); - zephir_is_iterable(&_0, 0, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 370); - if (Z_TYPE_P(&_0) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _4) - { - ZEPHIR_INIT_NVAR(&index); - ZVAL_COPY(&index, _4); - ZEPHIR_OBS_NVAR(&keyName); - zephir_array_fetch_string(&keyName, &index, SL("name"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 332); - if (!(zephir_array_isset(&indexes, &keyName))) { - ZEPHIR_INIT_NVAR(&_6$$4); - array_init(&_6$$4); - zephir_array_update_zval(&indexes, &keyName, &_6$$4, PH_COPY | PH_SEPARATE); - } - zephir_array_fetch(&_7$$3, &indexes, &keyName, PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 338); - if (!(zephir_array_isset_string(&_7$$3, SL("columns")))) { - ZEPHIR_INIT_NVAR(&columns); - array_init(&columns); - } else { - zephir_array_fetch(&_8$$6, &indexes, &keyName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 341); - ZEPHIR_OBS_NVAR(&columns); - zephir_array_fetch_string(&columns, &_8$$6, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 341); - } - zephir_read_property(&_9$$3, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_10$$3, &_9$$3, "describeindex", NULL, 0, &keyName); - zephir_check_call_status(); - ZVAL_LONG(&_11$$3, 2); - ZEPHIR_CALL_METHOD(&describeIndexes, this_ptr, "fetchall", NULL, 0, &_10$$3, &_11$$3); - zephir_check_call_status(); - zephir_is_iterable(&describeIndexes, 0, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 353); - if (Z_TYPE_P(&describeIndexes) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&describeIndexes), _12$$3) - { - ZEPHIR_INIT_NVAR(&describeIndex); - ZVAL_COPY(&describeIndex, _12$$3); - zephir_array_fetch_string(&_14$$7, &describeIndex, SL("name"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 350); - zephir_array_append(&columns, &_14$$7, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 350); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &describeIndexes, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_13$$3, &describeIndexes, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_13$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&describeIndex, &describeIndexes, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_fetch_string(&_15$$8, &describeIndex, SL("name"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 350); - zephir_array_append(&columns, &_15$$8, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 350); - ZEPHIR_CALL_METHOD(NULL, &describeIndexes, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&describeIndex); - zephir_array_update_multi(&indexes, &columns, SL("zs"), 3, &keyName, SL("columns")); - zephir_read_property(&_11$$3, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_16$$3, &_11$$3, "listindexessql", NULL, 0, &table, &schema, &keyName); + ZEPHIR_CALL_METHOD(NULL, &records, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3, &records, "valid", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_3))) { + break; + } + ZEPHIR_CALL_METHOD(&record, &records, "current", &_4, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_5$$6, &record, "delete", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_5$$6))) { + ZEPHIR_CALL_METHOD(NULL, &connection, "rollback", &_6, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&indexSql, this_ptr, "fetchcolumn", &_17, 0, &_16$$3); + object_init_ex(return_value, phalcon_mvc_model_query_status_ce); + ZVAL_BOOL(&_7$$7, 0); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 465, &_7$$7, &record); zephir_check_call_status(); - zephir_array_fetch_string(&_18$$3, &index, SL("unique"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 359); - if (zephir_is_true(&_18$$3)) { - ZEPHIR_INIT_NVAR(&_19$$9); - ZEPHIR_INIT_NVAR(&_20$$9); - ZVAL_STRING(&_20$$9, "# UNIQUE #i"); - ZEPHIR_INIT_NVAR(&_21$$9); - ZEPHIR_INIT_NVAR(&_22$$9); - ZVAL_STRING(&_22$$9, "# UNIQUE #i"); - zephir_preg_match(&_21$$9, &_22$$9, &indexSql, &_19$$9, 0, 0 , 0 ); - if (zephir_is_true(&_21$$9)) { - ZEPHIR_INIT_NVAR(&_23$$10); - ZVAL_STRING(&_23$$10, "UNIQUE"); - zephir_array_update_multi(&indexes, &_23$$10, SL("zs"), 3, &keyName, SL("type")); - } else { - ZEPHIR_INIT_NVAR(&_24$$11); - ZVAL_STRING(&_24$$11, "PRIMARY"); - zephir_array_update_multi(&indexes, &_24$$11, SL("zs"), 3, &keyName, SL("type")); - } - } else { - zephir_array_update_multi(&indexes, &__$null, SL("zs"), 3, &keyName, SL("type")); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); + RETURN_MM(); + } + ZEPHIR_CALL_METHOD(NULL, &records, "next", &_8, 0); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5, &_0, "valid", NULL, 0); + } + ZEPHIR_CALL_METHOD(NULL, &connection, "commit", NULL, 0); + zephir_check_call_status(); + object_init_ex(return_value, phalcon_mvc_model_query_status_ce); + ZVAL_BOOL(&_9, 1); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 465, &_9); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Query, executeInsert) +{ + zend_string *_5; + zend_ulong _4; + zend_bool automaticFields = 0, _18$$8, _31$$17; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_7 = NULL, *_9 = NULL, *_14 = NULL, *_16 = NULL, *_17 = NULL, *_22 = NULL, *_24 = NULL, *_30 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *intermediate_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, modelName, manager, connection, metaData, attributes, fields, columnMap, dialect, insertValues, number, value, model, values, exprValue, insertValue, wildcard, fieldName, attributeName, insertModel, _0, _1, *_2, _3, _34, _6$$8, _8$$11, _10$$11, _11$$11, _12$$12, _13$$12, _15$$13, _19$$15, _20$$15, _21$$17, _23$$20, _25$$20, _26$$20, _27$$21, _28$$21, _29$$22, _32$$24, _33$$24; + zval intermediate, bindParams, bindTypes; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&intermediate); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&metaData); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&fields); + ZVAL_UNDEF(&columnMap); + ZVAL_UNDEF(&dialect); + ZVAL_UNDEF(&insertValues); + ZVAL_UNDEF(&number); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&values); + ZVAL_UNDEF(&exprValue); + ZVAL_UNDEF(&insertValue); + ZVAL_UNDEF(&wildcard); + ZVAL_UNDEF(&fieldName); + ZVAL_UNDEF(&attributeName); + ZVAL_UNDEF(&insertModel); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_34); + ZVAL_UNDEF(&_6$$8); + ZVAL_UNDEF(&_8$$11); + ZVAL_UNDEF(&_10$$11); + ZVAL_UNDEF(&_11$$11); + ZVAL_UNDEF(&_12$$12); + ZVAL_UNDEF(&_13$$12); + ZVAL_UNDEF(&_15$$13); + ZVAL_UNDEF(&_19$$15); + ZVAL_UNDEF(&_20$$15); + ZVAL_UNDEF(&_21$$17); + ZVAL_UNDEF(&_23$$20); + ZVAL_UNDEF(&_25$$20); + ZVAL_UNDEF(&_26$$20); + ZVAL_UNDEF(&_27$$21); + ZVAL_UNDEF(&_28$$21); + ZVAL_UNDEF(&_29$$22); + ZVAL_UNDEF(&_32$$24); + ZVAL_UNDEF(&_33$$24); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_ARRAY(intermediate) + Z_PARAM_ARRAY(bindParams) + Z_PARAM_ARRAY(bindTypes) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &intermediate_param, &bindParams_param, &bindTypes_param); + zephir_get_arrval(&intermediate, intermediate_param); + zephir_get_arrval(&bindParams, bindParams_param); + zephir_get_arrval(&bindTypes, bindTypes_param); + + + ZEPHIR_OBS_VAR(&modelName); + zephir_array_fetch_string(&modelName, &intermediate, SL("model"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 827); + zephir_read_property(&_0, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&manager, &_0); + ZEPHIR_OBS_VAR(&model); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&model, &_0, &modelName, 0))) { + ZEPHIR_CALL_METHOD(&model, &manager, "load", NULL, 0, &modelName); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(&connection, this_ptr, "getwriteconnection", NULL, 0, &model, &intermediate, &bindParams, &bindTypes); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&metaData, &_1); + ZEPHIR_CALL_METHOD(&attributes, &metaData, "getattributes", NULL, 0, &model); + zephir_check_call_status(); + automaticFields = 0; + ZEPHIR_OBS_VAR(&fields); + if (!(zephir_array_isset_string_fetch(&fields, &intermediate, SL("fields"), 0))) { + automaticFields = 1; + ZEPHIR_CPY_WRT(&fields, &attributes); + if (ZEPHIR_GLOBAL(orm).column_renaming) { + ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getcolumnmap", NULL, 0, &model); zephir_check_call_status(); - if (!zend_is_true(&_5)) { - break; + } else { + ZEPHIR_INIT_NVAR(&columnMap); + ZVAL_NULL(&columnMap); + } + } + ZEPHIR_OBS_VAR(&values); + zephir_array_fetch_string(&values, &intermediate, SL("values"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 862); + if (UNEXPECTED(zephir_fast_count_int(&fields) != zephir_fast_count_int(&values))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The column count does not match the values count", "phalcon/Mvc/Model/Query.zep", 871); + return; + } + ZEPHIR_CALL_METHOD(&dialect, &connection, "getdialect", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&insertValues); + array_init(&insertValues); + zephir_is_iterable(&values, 0, "phalcon/Mvc/Model/Query.zep", 942); + if (Z_TYPE_P(&values) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&values), _4, _5, _2) + { + ZEPHIR_INIT_NVAR(&number); + if (_5 != NULL) { + ZVAL_STR_COPY(&number, _5); + } else { + ZVAL_LONG(&number, _4); } - ZEPHIR_CALL_METHOD(&index, &_0, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&keyName); - zephir_array_fetch_string(&keyName, &index, SL("name"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 332); - if (!(zephir_array_isset(&indexes, &keyName))) { - ZEPHIR_INIT_NVAR(&_25$$14); - array_init(&_25$$14); - zephir_array_update_zval(&indexes, &keyName, &_25$$14, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _2); + ZEPHIR_OBS_NVAR(&exprValue); + zephir_array_fetch_string(&exprValue, &value, SL("value"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 881); + zephir_array_fetch_string(&_6$$8, &value, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 883); + do { + if (ZEPHIR_IS_LONG(&_6$$8, 260) || ZEPHIR_IS_LONG(&_6$$8, 258) || ZEPHIR_IS_LONG(&_6$$8, 259)) { + ZEPHIR_CALL_METHOD(&insertValue, &dialect, "getsqlexpression", &_7, 0, &exprValue); + zephir_check_call_status(); + break; } - zephir_array_fetch(&_26$$13, &indexes, &keyName, PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 338); - if (!(zephir_array_isset_string(&_26$$13, SL("columns")))) { - ZEPHIR_INIT_NVAR(&columns); - array_init(&columns); - } else { - zephir_array_fetch(&_27$$16, &indexes, &keyName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 341); - ZEPHIR_OBS_NVAR(&columns); - zephir_array_fetch_string(&columns, &_27$$16, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 341); + if (ZEPHIR_IS_LONG(&_6$$8, 322)) { + ZEPHIR_INIT_NVAR(&insertValue); + ZVAL_NULL(&insertValue); + break; } - zephir_read_property(&_28$$13, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_29$$13, &_28$$13, "describeindex", NULL, 0, &keyName); - zephir_check_call_status(); - ZVAL_LONG(&_30$$13, 2); - ZEPHIR_CALL_METHOD(&describeIndexes, this_ptr, "fetchall", NULL, 0, &_29$$13, &_30$$13); - zephir_check_call_status(); - zephir_is_iterable(&describeIndexes, 0, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 353); - if (Z_TYPE_P(&describeIndexes) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&describeIndexes), _31$$13) - { - ZEPHIR_INIT_NVAR(&describeIndex); - ZVAL_COPY(&describeIndex, _31$$13); - zephir_array_fetch_string(&_33$$17, &describeIndex, SL("name"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 350); - zephir_array_append(&columns, &_33$$17, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 350); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &describeIndexes, "rewind", NULL, 0); + if (ZEPHIR_IS_LONG(&_6$$8, 273) || ZEPHIR_IS_LONG(&_6$$8, 274) || ZEPHIR_IS_LONG(&_6$$8, 277)) { + ZEPHIR_CALL_METHOD(&_8$$11, &dialect, "getsqlexpression", &_9, 0, &exprValue); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_32$$13, &describeIndexes, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_32$$13)) { - break; - } - ZEPHIR_CALL_METHOD(&describeIndex, &describeIndexes, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_fetch_string(&_34$$18, &describeIndex, SL("name"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 350); - zephir_array_append(&columns, &_34$$18, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 350); - ZEPHIR_CALL_METHOD(NULL, &describeIndexes, "next", NULL, 0); + ZEPHIR_INIT_NVAR(&_10$$11); + ZVAL_STRING(&_10$$11, ":"); + ZEPHIR_INIT_NVAR(&_11$$11); + ZVAL_STRING(&_11$$11, ""); + ZEPHIR_INIT_NVAR(&wildcard); + zephir_fast_str_replace(&wildcard, &_10$$11, &_11$$11, &_8$$11); + ZEPHIR_OBS_NVAR(&insertValue); + if (UNEXPECTED(!(zephir_array_isset_fetch(&insertValue, &bindParams, &wildcard, 0)))) { + ZEPHIR_INIT_NVAR(&_12$$12); + object_init_ex(&_12$$12, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_13$$12); + ZEPHIR_CONCAT_SVS(&_13$$12, "Bound parameter '", &wildcard, "' cannot be replaced because it isn't in the placeholders list"); + ZEPHIR_CALL_METHOD(NULL, &_12$$12, "__construct", &_14, 8, &_13$$12); zephir_check_call_status(); + zephir_throw_exception_debug(&_12$$12, "phalcon/Mvc/Model/Query.zep", 907); + ZEPHIR_MM_RESTORE(); + return; } + break; } - ZEPHIR_INIT_NVAR(&describeIndex); - zephir_array_update_multi(&indexes, &columns, SL("zs"), 3, &keyName, SL("columns")); - zephir_read_property(&_30$$13, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_35$$13, &_30$$13, "listindexessql", NULL, 0, &table, &schema, &keyName); + ZEPHIR_INIT_NVAR(&insertValue); + object_init_ex(&insertValue, phalcon_db_rawvalue_ce); + ZEPHIR_CALL_METHOD(&_15$$13, &dialect, "getsqlexpression", &_16, 0, &exprValue); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&indexSql, this_ptr, "fetchcolumn", &_17, 0, &_35$$13); + ZEPHIR_CALL_METHOD(NULL, &insertValue, "__construct", &_17, 34, &_15$$13); zephir_check_call_status(); - zephir_array_fetch_string(&_36$$13, &index, SL("unique"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 359); - if (zephir_is_true(&_36$$13)) { - ZEPHIR_INIT_NVAR(&_37$$19); - ZEPHIR_INIT_NVAR(&_38$$19); - ZVAL_STRING(&_38$$19, "# UNIQUE #i"); - ZEPHIR_INIT_NVAR(&_39$$19); - ZEPHIR_INIT_NVAR(&_40$$19); - ZVAL_STRING(&_40$$19, "# UNIQUE #i"); - zephir_preg_match(&_39$$19, &_40$$19, &indexSql, &_37$$19, 0, 0 , 0 ); - if (zephir_is_true(&_39$$19)) { - ZEPHIR_INIT_NVAR(&_41$$20); - ZVAL_STRING(&_41$$20, "UNIQUE"); - zephir_array_update_multi(&indexes, &_41$$20, SL("zs"), 3, &keyName, SL("type")); - } else { - ZEPHIR_INIT_NVAR(&_42$$21); - ZVAL_STRING(&_42$$21, "PRIMARY"); - zephir_array_update_multi(&indexes, &_42$$21, SL("zs"), 3, &keyName, SL("type")); - } - } else { - zephir_array_update_multi(&indexes, &__$null, SL("zs"), 3, &keyName, SL("type")); + break; + } while(0); + + ZEPHIR_OBS_NVAR(&fieldName); + zephir_array_fetch(&fieldName, &fields, &number, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 920); + _18$$8 = automaticFields; + if (_18$$8) { + _18$$8 = Z_TYPE_P(&columnMap) == IS_ARRAY; + } + if (_18$$8) { + ZEPHIR_OBS_NVAR(&attributeName); + if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeName, &columnMap, &fieldName, 0)))) { + ZEPHIR_INIT_NVAR(&_19$$15); + object_init_ex(&_19$$15, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_20$$15); + ZEPHIR_CONCAT_SVS(&_20$$15, "Column '", &fieldName, "' isn't part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_19$$15, "__construct", &_14, 8, &_20$$15); + zephir_check_call_status(); + zephir_throw_exception_debug(&_19$$15, "phalcon/Mvc/Model/Query.zep", 930); + ZEPHIR_MM_RESTORE(); + return; } - ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&index); - ZEPHIR_INIT_VAR(&indexObjects); - array_init(&indexObjects); - zephir_is_iterable(&indexes, 0, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 380); - if (Z_TYPE_P(&indexes) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&indexes), _45, _46, _43) - { - ZEPHIR_INIT_NVAR(&name); - if (_46 != NULL) { - ZVAL_STR_COPY(&name, _46); } else { - ZVAL_LONG(&name, _45); + ZEPHIR_CPY_WRT(&attributeName, &fieldName); } - ZEPHIR_INIT_NVAR(&index); - ZVAL_COPY(&index, _43); - ZEPHIR_INIT_NVAR(&_47$$23); - object_init_ex(&_47$$23, phalcon_db_index_ce); - zephir_array_fetch_string(&_48$$23, &index, SL("columns"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 375); - zephir_array_fetch_string(&_49$$23, &index, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 377); - ZEPHIR_CALL_METHOD(NULL, &_47$$23, "__construct", &_50, 32, &name, &_48$$23, &_49$$23); - zephir_check_call_status(); - zephir_array_update_zval(&indexObjects, &name, &_47$$23, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&insertValues, &attributeName, &insertValue, PH_COPY | PH_SEPARATE); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &indexes, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &values, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_44, &indexes, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_3, &values, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_44)) { + if (!zend_is_true(&_3)) { break; } - ZEPHIR_CALL_METHOD(&name, &indexes, "key", NULL, 0); + ZEPHIR_CALL_METHOD(&number, &values, "key", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&index, &indexes, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&value, &values, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_51$$24); - object_init_ex(&_51$$24, phalcon_db_index_ce); - zephir_array_fetch_string(&_52$$24, &index, SL("columns"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 375); - zephir_array_fetch_string(&_53$$24, &index, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 377); - ZEPHIR_CALL_METHOD(NULL, &_51$$24, "__construct", &_50, 32, &name, &_52$$24, &_53$$24); - zephir_check_call_status(); - zephir_array_update_zval(&indexObjects, &name, &_51$$24, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &indexes, "next", NULL, 0); + ZEPHIR_OBS_NVAR(&exprValue); + zephir_array_fetch_string(&exprValue, &value, SL("value"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 881); + zephir_array_fetch_string(&_21$$17, &value, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 883); + do { + if (ZEPHIR_IS_LONG(&_21$$17, 260) || ZEPHIR_IS_LONG(&_21$$17, 258) || ZEPHIR_IS_LONG(&_21$$17, 259)) { + ZEPHIR_CALL_METHOD(&insertValue, &dialect, "getsqlexpression", &_22, 0, &exprValue); + zephir_check_call_status(); + break; + } + if (ZEPHIR_IS_LONG(&_21$$17, 322)) { + ZEPHIR_INIT_NVAR(&insertValue); + ZVAL_NULL(&insertValue); + break; + } + if (ZEPHIR_IS_LONG(&_21$$17, 273) || ZEPHIR_IS_LONG(&_21$$17, 274) || ZEPHIR_IS_LONG(&_21$$17, 277)) { + ZEPHIR_CALL_METHOD(&_23$$20, &dialect, "getsqlexpression", &_24, 0, &exprValue); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_25$$20); + ZVAL_STRING(&_25$$20, ":"); + ZEPHIR_INIT_NVAR(&_26$$20); + ZVAL_STRING(&_26$$20, ""); + ZEPHIR_INIT_NVAR(&wildcard); + zephir_fast_str_replace(&wildcard, &_25$$20, &_26$$20, &_23$$20); + ZEPHIR_OBS_NVAR(&insertValue); + if (UNEXPECTED(!(zephir_array_isset_fetch(&insertValue, &bindParams, &wildcard, 0)))) { + ZEPHIR_INIT_NVAR(&_27$$21); + object_init_ex(&_27$$21, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_28$$21); + ZEPHIR_CONCAT_SVS(&_28$$21, "Bound parameter '", &wildcard, "' cannot be replaced because it isn't in the placeholders list"); + ZEPHIR_CALL_METHOD(NULL, &_27$$21, "__construct", &_14, 8, &_28$$21); + zephir_check_call_status(); + zephir_throw_exception_debug(&_27$$21, "phalcon/Mvc/Model/Query.zep", 907); + ZEPHIR_MM_RESTORE(); + return; + } + break; + } + ZEPHIR_INIT_NVAR(&insertValue); + object_init_ex(&insertValue, phalcon_db_rawvalue_ce); + ZEPHIR_CALL_METHOD(&_29$$22, &dialect, "getsqlexpression", &_30, 0, &exprValue); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &insertValue, "__construct", &_17, 34, &_29$$22); + zephir_check_call_status(); + break; + } while(0); + + ZEPHIR_OBS_NVAR(&fieldName); + zephir_array_fetch(&fieldName, &fields, &number, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 920); + _31$$17 = automaticFields; + if (_31$$17) { + _31$$17 = Z_TYPE_P(&columnMap) == IS_ARRAY; + } + if (_31$$17) { + ZEPHIR_OBS_NVAR(&attributeName); + if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeName, &columnMap, &fieldName, 0)))) { + ZEPHIR_INIT_NVAR(&_32$$24); + object_init_ex(&_32$$24, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_33$$24); + ZEPHIR_CONCAT_SVS(&_33$$24, "Column '", &fieldName, "' isn't part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_32$$24, "__construct", &_14, 8, &_33$$24); + zephir_check_call_status(); + zephir_throw_exception_debug(&_32$$24, "phalcon/Mvc/Model/Query.zep", 930); + ZEPHIR_MM_RESTORE(); + return; + } + } else { + ZEPHIR_CPY_WRT(&attributeName, &fieldName); + } + zephir_array_update_zval(&insertValues, &attributeName, &insertValue, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &values, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&index); - ZEPHIR_INIT_NVAR(&name); - RETURN_CCTOR(&indexObjects); + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&number); + ZEPHIR_CALL_METHOD(&insertModel, &manager, "load", NULL, 0, &modelName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &insertModel, "assign", NULL, 0, &insertValues); + zephir_check_call_status(); + object_init_ex(return_value, phalcon_mvc_model_query_status_ce); + ZEPHIR_CALL_METHOD(&_34, &insertModel, "create", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 465, &_34, &insertModel); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeReferences) +static PHP_METHOD(Phalcon_Mvc_Model_Query, executeSelect) { - zval _14$$3, _21$$6, _27$$9, _31$$10; - zend_string *_7, *_25; - zend_ulong _6, _24; + zend_string *_17, *_63, *_69, *_84$$93; + zend_ulong _16, _62, _68, _83$$93; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_29 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *table_param = NULL, *schema_param = NULL, references, reference, arrayReference, constraintName, referenceObjects, name, referencedSchema, referencedTable, columns, referencedColumns, number, _0, _1, _2, _3, *_4, _5, *_22, _23, _8$$5, _9$$5, _10$$5, _11$$5, _12$$3, _13$$3, _15$$8, _16$$8, _17$$8, _18$$8, _19$$6, _20$$6, _26$$9, _28$$9, _30$$10, _32$$10; - zval table, schema; + zephir_fcall_cache_entry *_4 = NULL, *_5 = NULL, *_8 = NULL, *_20 = NULL, *_21 = NULL, *_22 = NULL, *_30 = NULL, *_41 = NULL, *_42 = NULL, *_43 = NULL, *_51 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS, numberObjects = 0; + zend_bool simulate, haveObjects = 0, haveScalars = 0, isComplex = 0, isSimpleStd = 0, isKeepingSnapshots = 0, _38$$28, _59$$46, _90$$83; + zval *intermediate_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, *simulate_param = NULL, __$true, __$null, manager, modelName, models, model, connection, connectionTypes, columns, column, selectColumns, simpleColumnMap, metaData, aliasCopy, sqlColumn, attributes, instance, columnMap, attribute, columnAlias, sqlAlias, dialect, sqlSelect, bindCounts, processed, wildcard, value, processedTypes, typeWildcard, result, resultData, cache, resultObject, columns1, typesColumnMap, wildcardValue, resultsetClassName, _0, *_1, _2, *_10, _11, *_14, _15, *_60, _61, *_66, _67, _73, _3$$3, _6$$5, _7$$7, _9$$9, _12$$11, _13$$16, _18$$28, _19$$29, *_23$$31, _24$$31, _29$$31, _26$$34, _28$$35, _31$$36, *_32$$37, _33$$37, _36$$41, _37$$42, _39$$46, _40$$47, *_44$$49, _45$$49, _50$$49, _47$$52, _49$$53, _52$$54, *_53$$55, _54$$55, _57$$59, _58$$60, _64$$67, _65$$71, _70$$73, _71$$76, _72$$79, _74$$90, *_75$$90, _76$$90, _78$$91, _80$$92, *_81$$93, _82$$93, _86$$94, _88$$95, _89$$85, _98$$83, _91$$98, _92$$98, _93$$97, _94$$97, _95$$99, _96$$99; + zval intermediate, bindParams, bindTypes, _25$$34, _27$$35, _34$$38, _35$$39, _46$$52, _48$$53, _55$$56, _56$$57, _77$$91, _79$$92, _85$$94, _87$$95, _97$$97; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&references); - ZVAL_UNDEF(&reference); - ZVAL_UNDEF(&arrayReference); - ZVAL_UNDEF(&constraintName); - ZVAL_UNDEF(&referenceObjects); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&referencedSchema); - ZVAL_UNDEF(&referencedTable); + ZVAL_UNDEF(&intermediate); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&_25$$34); + ZVAL_UNDEF(&_27$$35); + ZVAL_UNDEF(&_34$$38); + ZVAL_UNDEF(&_35$$39); + ZVAL_UNDEF(&_46$$52); + ZVAL_UNDEF(&_48$$53); + ZVAL_UNDEF(&_55$$56); + ZVAL_UNDEF(&_56$$57); + ZVAL_UNDEF(&_77$$91); + ZVAL_UNDEF(&_79$$92); + ZVAL_UNDEF(&_85$$94); + ZVAL_UNDEF(&_87$$95); + ZVAL_UNDEF(&_97$$97); + ZVAL_BOOL(&__$true, 1); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&models); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&connectionTypes); ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&referencedColumns); - ZVAL_UNDEF(&number); + ZVAL_UNDEF(&column); + ZVAL_UNDEF(&selectColumns); + ZVAL_UNDEF(&simpleColumnMap); + ZVAL_UNDEF(&metaData); + ZVAL_UNDEF(&aliasCopy); + ZVAL_UNDEF(&sqlColumn); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&instance); + ZVAL_UNDEF(&columnMap); + ZVAL_UNDEF(&attribute); + ZVAL_UNDEF(&columnAlias); + ZVAL_UNDEF(&sqlAlias); + ZVAL_UNDEF(&dialect); + ZVAL_UNDEF(&sqlSelect); + ZVAL_UNDEF(&bindCounts); + ZVAL_UNDEF(&processed); + ZVAL_UNDEF(&wildcard); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&processedTypes); + ZVAL_UNDEF(&typeWildcard); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&resultData); + ZVAL_UNDEF(&cache); + ZVAL_UNDEF(&resultObject); + ZVAL_UNDEF(&columns1); + ZVAL_UNDEF(&typesColumnMap); + ZVAL_UNDEF(&wildcardValue); + ZVAL_UNDEF(&resultsetClassName); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_23); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_10$$5); - ZVAL_UNDEF(&_11$$5); - ZVAL_UNDEF(&_12$$3); - ZVAL_UNDEF(&_13$$3); - ZVAL_UNDEF(&_15$$8); - ZVAL_UNDEF(&_16$$8); - ZVAL_UNDEF(&_17$$8); - ZVAL_UNDEF(&_18$$8); - ZVAL_UNDEF(&_19$$6); - ZVAL_UNDEF(&_20$$6); - ZVAL_UNDEF(&_26$$9); - ZVAL_UNDEF(&_28$$9); - ZVAL_UNDEF(&_30$$10); - ZVAL_UNDEF(&_32$$10); - ZVAL_UNDEF(&_14$$3); - ZVAL_UNDEF(&_21$$6); - ZVAL_UNDEF(&_27$$9); - ZVAL_UNDEF(&_31$$10); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_15); + ZVAL_UNDEF(&_61); + ZVAL_UNDEF(&_67); + ZVAL_UNDEF(&_73); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_7$$7); + ZVAL_UNDEF(&_9$$9); + ZVAL_UNDEF(&_12$$11); + ZVAL_UNDEF(&_13$$16); + ZVAL_UNDEF(&_18$$28); + ZVAL_UNDEF(&_19$$29); + ZVAL_UNDEF(&_24$$31); + ZVAL_UNDEF(&_29$$31); + ZVAL_UNDEF(&_26$$34); + ZVAL_UNDEF(&_28$$35); + ZVAL_UNDEF(&_31$$36); + ZVAL_UNDEF(&_33$$37); + ZVAL_UNDEF(&_36$$41); + ZVAL_UNDEF(&_37$$42); + ZVAL_UNDEF(&_39$$46); + ZVAL_UNDEF(&_40$$47); + ZVAL_UNDEF(&_45$$49); + ZVAL_UNDEF(&_50$$49); + ZVAL_UNDEF(&_47$$52); + ZVAL_UNDEF(&_49$$53); + ZVAL_UNDEF(&_52$$54); + ZVAL_UNDEF(&_54$$55); + ZVAL_UNDEF(&_57$$59); + ZVAL_UNDEF(&_58$$60); + ZVAL_UNDEF(&_64$$67); + ZVAL_UNDEF(&_65$$71); + ZVAL_UNDEF(&_70$$73); + ZVAL_UNDEF(&_71$$76); + ZVAL_UNDEF(&_72$$79); + ZVAL_UNDEF(&_74$$90); + ZVAL_UNDEF(&_76$$90); + ZVAL_UNDEF(&_78$$91); + ZVAL_UNDEF(&_80$$92); + ZVAL_UNDEF(&_82$$93); + ZVAL_UNDEF(&_86$$94); + ZVAL_UNDEF(&_88$$95); + ZVAL_UNDEF(&_89$$85); + ZVAL_UNDEF(&_98$$83); + ZVAL_UNDEF(&_91$$98); + ZVAL_UNDEF(&_92$$98); + ZVAL_UNDEF(&_93$$97); + ZVAL_UNDEF(&_94$$97); + ZVAL_UNDEF(&_95$$99); + ZVAL_UNDEF(&_96$$99); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) + ZEND_PARSE_PARAMETERS_START(3, 4) + Z_PARAM_ARRAY(intermediate) + Z_PARAM_ARRAY(bindParams) + Z_PARAM_ARRAY(bindTypes) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) + Z_PARAM_BOOL(simulate) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); - } else { - ZEPHIR_INIT_VAR(&table); - } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); - } else { - if (UNEXPECTED(Z_TYPE_P(schema_param) != IS_STRING && Z_TYPE_P(schema_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schema' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schema_param) == IS_STRING)) { - zephir_get_strval(&schema, schema_param); + zephir_fetch_params(1, 3, 1, &intermediate_param, &bindParams_param, &bindTypes_param, &simulate_param); + zephir_get_arrval(&intermediate, intermediate_param); + zephir_get_arrval(&bindParams, bindParams_param); + zephir_get_arrval(&bindTypes, bindTypes_param); + if (!simulate_param) { + simulate = 0; } else { - ZEPHIR_INIT_VAR(&schema); - } + simulate = zephir_get_boolval(simulate_param); } - ZEPHIR_INIT_VAR(&references); - array_init(&references); - zephir_read_property(&_1, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_2, &_1, "describereferences", NULL, 0, &table, &schema); - zephir_check_call_status(); - ZVAL_LONG(&_3, 3); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, 0, &_2, &_3); - zephir_check_call_status(); - zephir_is_iterable(&_0, 0, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 420); - if (Z_TYPE_P(&_0) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_0), _6, _7, _4) + zephir_read_property(&_0, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&manager, &_0); + ZEPHIR_INIT_VAR(&connectionTypes); + array_init(&connectionTypes); + ZEPHIR_OBS_VAR(&models); + zephir_array_fetch_string(&models, &intermediate, SL("models"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 979); + zephir_is_iterable(&models, 0, "phalcon/Mvc/Model/Query.zep", 1007); + if (Z_TYPE_P(&models) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&models), _1) { - ZEPHIR_INIT_NVAR(&number); - if (_7 != NULL) { - ZVAL_STR_COPY(&number, _7); - } else { - ZVAL_LONG(&number, _6); + ZEPHIR_INIT_NVAR(&modelName); + ZVAL_COPY(&modelName, _1); + ZEPHIR_OBS_NVAR(&model); + zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&model, &_3$$3, &modelName, 0))) { + ZEPHIR_CALL_METHOD(&model, &manager, "load", &_4, 0, &modelName); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("modelsInstances"), &modelName, &model); } - ZEPHIR_INIT_NVAR(&reference); - ZVAL_COPY(&reference, _4); - ZEPHIR_INIT_NVAR(&constraintName); - ZEPHIR_CONCAT_SV(&constraintName, "foreign_key_", &number); - if (!(zephir_array_isset(&references, &constraintName))) { - ZEPHIR_INIT_NVAR(&referencedSchema); - ZVAL_NULL(&referencedSchema); - ZEPHIR_OBS_NVAR(&referencedTable); - zephir_array_fetch_long(&referencedTable, &reference, 2, PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 399); - ZEPHIR_INIT_NVAR(&columns); - array_init(&columns); - ZEPHIR_INIT_NVAR(&referencedColumns); - array_init(&referencedColumns); - } else { - zephir_array_fetch(&_8$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 403); - ZEPHIR_OBS_NVAR(&referencedSchema); - zephir_array_fetch_string(&referencedSchema, &_8$$5, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 403); - zephir_array_fetch(&_9$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 404); - ZEPHIR_OBS_NVAR(&referencedTable); - zephir_array_fetch_string(&referencedTable, &_9$$5, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 404); - zephir_array_fetch(&_10$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 405); - ZEPHIR_OBS_NVAR(&columns); - zephir_array_fetch_string(&columns, &_10$$5, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 405); - zephir_array_fetch(&_11$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 406); - ZEPHIR_OBS_NVAR(&referencedColumns); - zephir_array_fetch_string(&referencedColumns, &_11$$5, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 406); + ZEPHIR_CALL_METHOD(&connection, this_ptr, "getreadconnection", &_5, 0, &model, &intermediate, &bindParams, &bindTypes); + zephir_check_call_status(); + if (Z_TYPE_P(&connection) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(&_6$$5, &connection, "gettype", NULL, 0); + zephir_check_call_status(); + zephir_array_update_zval(&connectionTypes, &_6$$5, &__$true, PH_COPY | PH_SEPARATE); + if (UNEXPECTED(zephir_fast_count_int(&connectionTypes) == 2)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Cannot use models of different database systems in the same query", "phalcon/Mvc/Model/Query.zep", 1002); + return; + } } - zephir_array_fetch_long(&_12$$3, &reference, 3, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 409); - zephir_array_append(&columns, &_12$$3, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 409); - zephir_array_fetch_long(&_13$$3, &reference, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 410); - zephir_array_append(&referencedColumns, &_13$$3, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 410); - ZEPHIR_INIT_NVAR(&_14$$3); - zephir_create_array(&_14$$3, 4, 0); - zephir_array_update_string(&_14$$3, SL("referencedSchema"), &referencedSchema, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_14$$3, SL("referencedTable"), &referencedTable, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_14$$3, SL("columns"), &columns, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_14$$3, SL("referencedColumns"), &referencedColumns, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&references, &constraintName, &_14$$3, PH_COPY | PH_SEPARATE); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &models, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_5, &_0, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_2, &models, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_5)) { + if (!zend_is_true(&_2)) { break; } - ZEPHIR_CALL_METHOD(&number, &_0, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&reference, &_0, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&modelName, &models, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&constraintName); - ZEPHIR_CONCAT_SV(&constraintName, "foreign_key_", &number); - if (!(zephir_array_isset(&references, &constraintName))) { - ZEPHIR_INIT_NVAR(&referencedSchema); - ZVAL_NULL(&referencedSchema); - ZEPHIR_OBS_NVAR(&referencedTable); - zephir_array_fetch_long(&referencedTable, &reference, 2, PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 399); - ZEPHIR_INIT_NVAR(&columns); - array_init(&columns); - ZEPHIR_INIT_NVAR(&referencedColumns); - array_init(&referencedColumns); - } else { - zephir_array_fetch(&_15$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 403); - ZEPHIR_OBS_NVAR(&referencedSchema); - zephir_array_fetch_string(&referencedSchema, &_15$$8, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 403); - zephir_array_fetch(&_16$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 404); - ZEPHIR_OBS_NVAR(&referencedTable); - zephir_array_fetch_string(&referencedTable, &_16$$8, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 404); - zephir_array_fetch(&_17$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 405); - ZEPHIR_OBS_NVAR(&columns); - zephir_array_fetch_string(&columns, &_17$$8, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 405); - zephir_array_fetch(&_18$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 406); - ZEPHIR_OBS_NVAR(&referencedColumns); - zephir_array_fetch_string(&referencedColumns, &_18$$8, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 406); + ZEPHIR_OBS_NVAR(&model); + zephir_read_property(&_7$$7, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&model, &_7$$7, &modelName, 0))) { + ZEPHIR_CALL_METHOD(&model, &manager, "load", &_8, 0, &modelName); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("modelsInstances"), &modelName, &model); } - zephir_array_fetch_long(&_19$$6, &reference, 3, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 409); - zephir_array_append(&columns, &_19$$6, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 409); - zephir_array_fetch_long(&_20$$6, &reference, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 410); - zephir_array_append(&referencedColumns, &_20$$6, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 410); - ZEPHIR_INIT_NVAR(&_21$$6); - zephir_create_array(&_21$$6, 4, 0); - zephir_array_update_string(&_21$$6, SL("referencedSchema"), &referencedSchema, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_21$$6, SL("referencedTable"), &referencedTable, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_21$$6, SL("columns"), &columns, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_21$$6, SL("referencedColumns"), &referencedColumns, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&references, &constraintName, &_21$$6, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); + ZEPHIR_CALL_METHOD(&connection, this_ptr, "getreadconnection", &_5, 0, &model, &intermediate, &bindParams, &bindTypes); + zephir_check_call_status(); + if (Z_TYPE_P(&connection) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(&_9$$9, &connection, "gettype", NULL, 0); + zephir_check_call_status(); + zephir_array_update_zval(&connectionTypes, &_9$$9, &__$true, PH_COPY | PH_SEPARATE); + if (UNEXPECTED(zephir_fast_count_int(&connectionTypes) == 2)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Cannot use models of different database systems in the same query", "phalcon/Mvc/Model/Query.zep", 1002); + return; + } + } + ZEPHIR_CALL_METHOD(NULL, &models, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&reference); - ZEPHIR_INIT_NVAR(&number); - ZEPHIR_INIT_VAR(&referenceObjects); - array_init(&referenceObjects); - zephir_is_iterable(&references, 0, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 434); - if (Z_TYPE_P(&references) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&references), _24, _25, _22) + ZEPHIR_INIT_NVAR(&modelName); + ZEPHIR_OBS_VAR(&columns); + zephir_array_fetch_string(&columns, &intermediate, SL("columns"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1007); + haveObjects = 0; + haveScalars = 0; + isComplex = 0; + numberObjects = 0; + ZEPHIR_CPY_WRT(&columns1, &columns); + zephir_is_iterable(&columns, 0, "phalcon/Mvc/Model/Query.zep", 1035); + if (Z_TYPE_P(&columns) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&columns), _10) { - ZEPHIR_INIT_NVAR(&name); - if (_25 != NULL) { - ZVAL_STR_COPY(&name, _25); + ZEPHIR_INIT_NVAR(&column); + ZVAL_COPY(&column, _10); + if (UNEXPECTED(Z_TYPE_P(&column) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid column definition", "phalcon/Mvc/Model/Query.zep", 1019); + return; + } + zephir_array_fetch_string(&_12$$11, &column, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1022); + if (ZEPHIR_IS_STRING(&_12$$11, "scalar")) { + if (!(zephir_array_isset_string(&column, SL("balias")))) { + isComplex = 1; + } + haveScalars = 1; } else { - ZVAL_LONG(&name, _24); + haveObjects = 1; + numberObjects++; } - ZEPHIR_INIT_NVAR(&arrayReference); - ZVAL_COPY(&arrayReference, _22); - ZEPHIR_INIT_NVAR(&_26$$9); - object_init_ex(&_26$$9, phalcon_db_reference_ce); - ZEPHIR_INIT_NVAR(&_27$$9); - zephir_create_array(&_27$$9, 4, 0); - ZEPHIR_OBS_NVAR(&_28$$9); - zephir_array_fetch_string(&_28$$9, &arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 426); - zephir_array_update_string(&_27$$9, SL("referencedSchema"), &_28$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_28$$9); - zephir_array_fetch_string(&_28$$9, &arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 427); - zephir_array_update_string(&_27$$9, SL("referencedTable"), &_28$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_28$$9); - zephir_array_fetch_string(&_28$$9, &arrayReference, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 428); - zephir_array_update_string(&_27$$9, SL("columns"), &_28$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_28$$9); - zephir_array_fetch_string(&_28$$9, &arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 430); - zephir_array_update_string(&_27$$9, SL("referencedColumns"), &_28$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &_26$$9, "__construct", &_29, 33, &name, &_27$$9); - zephir_check_call_status(); - zephir_array_update_zval(&referenceObjects, &name, &_26$$9, PH_COPY | PH_SEPARATE); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &references, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &columns, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_23, &references, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_11, &columns, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_23)) { + if (!zend_is_true(&_11)) { break; } - ZEPHIR_CALL_METHOD(&name, &references, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&arrayReference, &references, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&column, &columns, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_30$$10); - object_init_ex(&_30$$10, phalcon_db_reference_ce); - ZEPHIR_INIT_NVAR(&_31$$10); - zephir_create_array(&_31$$10, 4, 0); - ZEPHIR_OBS_NVAR(&_32$$10); - zephir_array_fetch_string(&_32$$10, &arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 426); - zephir_array_update_string(&_31$$10, SL("referencedSchema"), &_32$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_32$$10); - zephir_array_fetch_string(&_32$$10, &arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 427); - zephir_array_update_string(&_31$$10, SL("referencedTable"), &_32$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_32$$10); - zephir_array_fetch_string(&_32$$10, &arrayReference, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 428); - zephir_array_update_string(&_31$$10, SL("columns"), &_32$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_32$$10); - zephir_array_fetch_string(&_32$$10, &arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 430); - zephir_array_update_string(&_31$$10, SL("referencedColumns"), &_32$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &_30$$10, "__construct", &_29, 33, &name, &_31$$10); - zephir_check_call_status(); - zephir_array_update_zval(&referenceObjects, &name, &_30$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &references, "next", NULL, 0); + if (UNEXPECTED(Z_TYPE_P(&column) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid column definition", "phalcon/Mvc/Model/Query.zep", 1019); + return; + } + zephir_array_fetch_string(&_13$$16, &column, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1022); + if (ZEPHIR_IS_STRING(&_13$$16, "scalar")) { + if (!(zephir_array_isset_string(&column, SL("balias")))) { + isComplex = 1; + } + haveScalars = 1; + } else { + haveObjects = 1; + numberObjects++; + } + ZEPHIR_CALL_METHOD(NULL, &columns, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&arrayReference); - ZEPHIR_INIT_NVAR(&name); - RETURN_CCTOR(&referenceObjects); -} - -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, getDefaultValue) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - object_init_ex(return_value, phalcon_db_rawvalue_ce); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "NULL"); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 34, &_0); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, useExplicitIdValue) -{ - zval *this_ptr = getThis(); - - - - RETURN_BOOL(1); -} - -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, supportsDefaultValue) -{ - zval *this_ptr = getThis(); - - - - RETURN_BOOL(0); -} - -static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, getDsnDefaults) -{ - zval *this_ptr = getThis(); - - - - array_init(return_value); - return; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Mysql) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Mysql, phalcon, db_dialect_mysql, phalcon_db_dialect_ce, phalcon_db_dialect_mysql_method_entry, 0); - - zend_declare_property_string(phalcon_db_dialect_mysql_ce, SL("escapeChar"), "`", ZEND_ACC_PROTECTED); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, addColumn) -{ - zend_bool _6$$5, _7$$5, _8$$5; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *column, column_sub, afterPosition, defaultValue, upperDefaultValue, _0, _1, _2, _3, _4, _5, _14, _15, _9$$5, _10$$6, _11$$7, _12$$7, _13$$7, _16$$11; - zval tableName, schemaName, sql; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&column_sub); - ZVAL_UNDEF(&afterPosition); - ZVAL_UNDEF(&defaultValue); - ZVAL_UNDEF(&upperDefaultValue); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_15); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_10$$6); - ZVAL_UNDEF(&_11$$7); - ZVAL_UNDEF(&_12$$7); - ZVAL_UNDEF(&_13$$7); - ZVAL_UNDEF(&_16$$11); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); + ZEPHIR_INIT_NVAR(&column); + if (!(isComplex)) { + if (haveObjects) { + if (haveScalars) { + isComplex = 1; + } else { + if (numberObjects == 1) { + isSimpleStd = 0; + } else { + isComplex = 1; + } + } + } else { + isSimpleStd = 1; + } } - - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, column, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getcolumndefinition", NULL, 0, column); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_3); - ZEPHIR_CONCAT_SVSVSV(&_3, "ALTER TABLE ", &_0, " ADD `", &_1, "` ", &_2); - zephir_get_strval(&sql, &_3); - ZEPHIR_CALL_METHOD(&_4, column, "isnotnull", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_4)) { - zephir_concat_self_str(&sql, " NOT NULL", sizeof(" NOT NULL") - 1); + ZEPHIR_INIT_VAR(&instance); + ZVAL_NULL(&instance); + ZEPHIR_INIT_VAR(&selectColumns); + array_init(&selectColumns); + ZEPHIR_INIT_VAR(&simpleColumnMap); + array_init(&simpleColumnMap); + zephir_read_property(&_0, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&metaData, &_0); + zephir_is_iterable(&columns, 0, "phalcon/Mvc/Model/Query.zep", 1141); + if (Z_TYPE_P(&columns) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&columns), _16, _17, _14) + { + ZEPHIR_INIT_NVAR(&aliasCopy); + if (_17 != NULL) { + ZVAL_STR_COPY(&aliasCopy, _17); + } else { + ZVAL_LONG(&aliasCopy, _16); + } + ZEPHIR_INIT_NVAR(&column); + ZVAL_COPY(&column, _14); + ZEPHIR_OBS_NVAR(&sqlColumn); + zephir_array_fetch_string(&sqlColumn, &column, SL("column"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1058); + zephir_array_fetch_string(&_18$$28, &column, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1061); + if (ZEPHIR_IS_STRING(&_18$$28, "object")) { + ZEPHIR_OBS_NVAR(&modelName); + zephir_array_fetch_string(&modelName, &column, SL("model"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1062); + ZEPHIR_OBS_NVAR(&instance); + zephir_read_property(&_19$$29, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&instance, &_19$$29, &modelName, 0))) { + ZEPHIR_CALL_METHOD(&instance, &manager, "load", &_20, 0, &modelName); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("modelsInstances"), &modelName, &instance); + } + ZEPHIR_CALL_METHOD(&attributes, &metaData, "getattributes", &_21, 0, &instance); + zephir_check_call_status(); + if (isComplex) { + if (ZEPHIR_GLOBAL(orm).column_renaming) { + ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getcolumnmap", &_22, 0, &instance); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&columnMap); + ZVAL_NULL(&columnMap); + } + zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model/Query.zep", 1098); + if (Z_TYPE_P(&attributes) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _23$$31) + { + ZEPHIR_INIT_NVAR(&attribute); + ZVAL_COPY(&attribute, _23$$31); + ZEPHIR_INIT_NVAR(&_25$$34); + zephir_create_array(&_25$$34, 3, 0); + zephir_array_fast_append(&_25$$34, &attribute); + zephir_array_fast_append(&_25$$34, &sqlColumn); + ZEPHIR_INIT_NVAR(&_26$$34); + ZEPHIR_CONCAT_SVSV(&_26$$34, "_", &sqlColumn, "_", &attribute); + zephir_array_fast_append(&_25$$34, &_26$$34); + zephir_array_append(&selectColumns, &_25$$34, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1091); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_24$$31, &attributes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_24$$31)) { + break; + } + ZEPHIR_CALL_METHOD(&attribute, &attributes, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_27$$35); + zephir_create_array(&_27$$35, 3, 0); + zephir_array_fast_append(&_27$$35, &attribute); + zephir_array_fast_append(&_27$$35, &sqlColumn); + ZEPHIR_INIT_NVAR(&_28$$35); + ZEPHIR_CONCAT_SVSV(&_28$$35, "_", &sqlColumn, "_", &attribute); + zephir_array_fast_append(&_27$$35, &_28$$35); + zephir_array_append(&selectColumns, &_27$$35, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1091); + ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&attribute); + zephir_array_update_multi(&columns1, &instance, SL("zs"), 3, &aliasCopy, SL("instance")); + zephir_array_update_multi(&columns1, &attributes, SL("zs"), 3, &aliasCopy, SL("attributes")); + zephir_array_update_multi(&columns1, &columnMap, SL("zs"), 3, &aliasCopy, SL("columnMap")); + ZEPHIR_CALL_METHOD(&_29$$31, &manager, "iskeepingsnapshots", &_30, 0, &instance); + zephir_check_call_status(); + isKeepingSnapshots = zephir_get_boolval(&_29$$31); + if (isKeepingSnapshots) { + ZEPHIR_INIT_NVAR(&_31$$36); + ZVAL_BOOL(&_31$$36, isKeepingSnapshots); + zephir_array_update_multi(&columns1, &_31$$36, SL("zs"), 3, &aliasCopy, SL("keepSnapshots")); + } + } else { + zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model/Query.zep", 1115); + if (Z_TYPE_P(&attributes) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _32$$37) + { + ZEPHIR_INIT_NVAR(&attribute); + ZVAL_COPY(&attribute, _32$$37); + ZEPHIR_INIT_NVAR(&_34$$38); + zephir_create_array(&_34$$38, 2, 0); + zephir_array_fast_append(&_34$$38, &attribute); + zephir_array_fast_append(&_34$$38, &sqlColumn); + zephir_array_append(&selectColumns, &_34$$38, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1113); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_33$$37, &attributes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_33$$37)) { + break; + } + ZEPHIR_CALL_METHOD(&attribute, &attributes, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_35$$39); + zephir_create_array(&_35$$39, 2, 0); + zephir_array_fast_append(&_35$$39, &attribute); + zephir_array_fast_append(&_35$$39, &sqlColumn); + zephir_array_append(&selectColumns, &_35$$39, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1113); + ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&attribute); + } + } else { + ZEPHIR_INIT_NVAR(&columnAlias); + if (Z_TYPE_P(&aliasCopy) == IS_LONG) { + ZEPHIR_INIT_NVAR(&_36$$41); + zephir_create_array(&_36$$41, 2, 0); + zephir_array_fast_append(&_36$$41, &sqlColumn); + zephir_array_fast_append(&_36$$41, &__$null); + ZEPHIR_CPY_WRT(&columnAlias, &_36$$41); + } else { + ZEPHIR_INIT_NVAR(&_37$$42); + zephir_create_array(&_37$$42, 3, 0); + zephir_array_fast_append(&_37$$42, &sqlColumn); + zephir_array_fast_append(&_37$$42, &__$null); + zephir_array_fast_append(&_37$$42, &aliasCopy); + ZEPHIR_CPY_WRT(&columnAlias, &_37$$42); + } + zephir_array_append(&selectColumns, &columnAlias, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1126); + } + _38$$28 = !isComplex; + if (_38$$28) { + _38$$28 = isSimpleStd; + } + if (_38$$28) { + ZEPHIR_OBS_NVAR(&sqlAlias); + if (zephir_array_isset_string_fetch(&sqlAlias, &column, SL("sqlAlias"), 0)) { + zephir_array_update_zval(&simpleColumnMap, &sqlAlias, &aliasCopy, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_zval(&simpleColumnMap, &aliasCopy, &aliasCopy, PH_COPY | PH_SEPARATE); + } + } + } ZEND_HASH_FOREACH_END(); } else { - zephir_concat_self_str(&sql, " NULL", sizeof(" NULL") - 1); - } - ZEPHIR_CALL_METHOD(&_5, column, "hasdefault", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_5)) { - ZEPHIR_CALL_METHOD(&defaultValue, column, "getdefault", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &columns, "rewind", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&upperDefaultValue); - zephir_fast_strtoupper(&upperDefaultValue, &defaultValue); - _6$$5 = zephir_memnstr_str(&upperDefaultValue, SL("CURRENT_TIMESTAMP"), "phalcon/Db/Dialect/Mysql.zep", 54); - if (!(_6$$5)) { - _6$$5 = zephir_memnstr_str(&upperDefaultValue, SL("NULL"), "phalcon/Db/Dialect/Mysql.zep", 54); - } - _7$$5 = _6$$5; - if (!(_7$$5)) { - _7$$5 = Z_TYPE_P(&defaultValue) == IS_LONG; - } - _8$$5 = _7$$5; - if (!(_8$$5)) { - ZEPHIR_CALL_FUNCTION(&_9$$5, "is_float", NULL, 213, &defaultValue); + while (1) { + ZEPHIR_CALL_METHOD(&_15, &columns, "valid", NULL, 0); zephir_check_call_status(); - _8$$5 = zephir_is_true(&_9$$5); - } - if (_8$$5) { - ZEPHIR_INIT_VAR(&_10$$6); - ZEPHIR_CONCAT_SV(&_10$$6, " DEFAULT ", &defaultValue); - zephir_concat_self(&sql, &_10$$6); - } else { - ZEPHIR_INIT_VAR(&_11$$7); - ZVAL_STRING(&_11$$7, "\""); - ZEPHIR_CALL_FUNCTION(&_12$$7, "addcslashes", NULL, 214, &defaultValue, &_11$$7); + if (!zend_is_true(&_15)) { + break; + } + ZEPHIR_CALL_METHOD(&aliasCopy, &columns, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&column, &columns, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&sqlColumn); + zephir_array_fetch_string(&sqlColumn, &column, SL("column"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1058); + zephir_array_fetch_string(&_39$$46, &column, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1061); + if (ZEPHIR_IS_STRING(&_39$$46, "object")) { + ZEPHIR_OBS_NVAR(&modelName); + zephir_array_fetch_string(&modelName, &column, SL("model"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1062); + ZEPHIR_OBS_NVAR(&instance); + zephir_read_property(&_40$$47, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&instance, &_40$$47, &modelName, 0))) { + ZEPHIR_CALL_METHOD(&instance, &manager, "load", &_41, 0, &modelName); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("modelsInstances"), &modelName, &instance); + } + ZEPHIR_CALL_METHOD(&attributes, &metaData, "getattributes", &_42, 0, &instance); + zephir_check_call_status(); + if (isComplex) { + if (ZEPHIR_GLOBAL(orm).column_renaming) { + ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getcolumnmap", &_43, 0, &instance); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&columnMap); + ZVAL_NULL(&columnMap); + } + zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model/Query.zep", 1098); + if (Z_TYPE_P(&attributes) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _44$$49) + { + ZEPHIR_INIT_NVAR(&attribute); + ZVAL_COPY(&attribute, _44$$49); + ZEPHIR_INIT_NVAR(&_46$$52); + zephir_create_array(&_46$$52, 3, 0); + zephir_array_fast_append(&_46$$52, &attribute); + zephir_array_fast_append(&_46$$52, &sqlColumn); + ZEPHIR_INIT_NVAR(&_47$$52); + ZEPHIR_CONCAT_SVSV(&_47$$52, "_", &sqlColumn, "_", &attribute); + zephir_array_fast_append(&_46$$52, &_47$$52); + zephir_array_append(&selectColumns, &_46$$52, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1091); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_45$$49, &attributes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_45$$49)) { + break; + } + ZEPHIR_CALL_METHOD(&attribute, &attributes, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_48$$53); + zephir_create_array(&_48$$53, 3, 0); + zephir_array_fast_append(&_48$$53, &attribute); + zephir_array_fast_append(&_48$$53, &sqlColumn); + ZEPHIR_INIT_NVAR(&_49$$53); + ZEPHIR_CONCAT_SVSV(&_49$$53, "_", &sqlColumn, "_", &attribute); + zephir_array_fast_append(&_48$$53, &_49$$53); + zephir_array_append(&selectColumns, &_48$$53, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1091); + ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&attribute); + zephir_array_update_multi(&columns1, &instance, SL("zs"), 3, &aliasCopy, SL("instance")); + zephir_array_update_multi(&columns1, &attributes, SL("zs"), 3, &aliasCopy, SL("attributes")); + zephir_array_update_multi(&columns1, &columnMap, SL("zs"), 3, &aliasCopy, SL("columnMap")); + ZEPHIR_CALL_METHOD(&_50$$49, &manager, "iskeepingsnapshots", &_51, 0, &instance); + zephir_check_call_status(); + isKeepingSnapshots = zephir_get_boolval(&_50$$49); + if (isKeepingSnapshots) { + ZEPHIR_INIT_NVAR(&_52$$54); + ZVAL_BOOL(&_52$$54, isKeepingSnapshots); + zephir_array_update_multi(&columns1, &_52$$54, SL("zs"), 3, &aliasCopy, SL("keepSnapshots")); + } + } else { + zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model/Query.zep", 1115); + if (Z_TYPE_P(&attributes) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _53$$55) + { + ZEPHIR_INIT_NVAR(&attribute); + ZVAL_COPY(&attribute, _53$$55); + ZEPHIR_INIT_NVAR(&_55$$56); + zephir_create_array(&_55$$56, 2, 0); + zephir_array_fast_append(&_55$$56, &attribute); + zephir_array_fast_append(&_55$$56, &sqlColumn); + zephir_array_append(&selectColumns, &_55$$56, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1113); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_54$$55, &attributes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_54$$55)) { + break; + } + ZEPHIR_CALL_METHOD(&attribute, &attributes, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_56$$57); + zephir_create_array(&_56$$57, 2, 0); + zephir_array_fast_append(&_56$$57, &attribute); + zephir_array_fast_append(&_56$$57, &sqlColumn); + zephir_array_append(&selectColumns, &_56$$57, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1113); + ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&attribute); + } + } else { + if (Z_TYPE_P(&aliasCopy) == IS_LONG) { + ZEPHIR_INIT_NVAR(&_57$$59); + zephir_create_array(&_57$$59, 2, 0); + zephir_array_fast_append(&_57$$59, &sqlColumn); + zephir_array_fast_append(&_57$$59, &__$null); + ZEPHIR_CPY_WRT(&columnAlias, &_57$$59); + } else { + ZEPHIR_INIT_NVAR(&_58$$60); + zephir_create_array(&_58$$60, 3, 0); + zephir_array_fast_append(&_58$$60, &sqlColumn); + zephir_array_fast_append(&_58$$60, &__$null); + zephir_array_fast_append(&_58$$60, &aliasCopy); + ZEPHIR_CPY_WRT(&columnAlias, &_58$$60); + } + zephir_array_append(&selectColumns, &columnAlias, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1126); + } + _59$$46 = !isComplex; + if (_59$$46) { + _59$$46 = isSimpleStd; + } + if (_59$$46) { + ZEPHIR_OBS_NVAR(&sqlAlias); + if (zephir_array_isset_string_fetch(&sqlAlias, &column, SL("sqlAlias"), 0)) { + zephir_array_update_zval(&simpleColumnMap, &sqlAlias, &aliasCopy, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_zval(&simpleColumnMap, &aliasCopy, &aliasCopy, PH_COPY | PH_SEPARATE); + } + } + ZEPHIR_CALL_METHOD(NULL, &columns, "next", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_13$$7); - ZEPHIR_CONCAT_SVS(&_13$$7, " DEFAULT \"", &_12$$7, "\""); - zephir_concat_self(&sql, &_13$$7); } } - ZEPHIR_CALL_METHOD(&_14, column, "isautoincrement", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_14)) { - zephir_concat_self_str(&sql, " AUTO_INCREMENT", sizeof(" AUTO_INCREMENT") - 1); - } - ZEPHIR_CALL_METHOD(&_15, column, "isfirst", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_15)) { - zephir_concat_self_str(&sql, " FIRST", sizeof(" FIRST") - 1); + ZEPHIR_INIT_NVAR(&column); + ZEPHIR_INIT_NVAR(&aliasCopy); + ZEPHIR_INIT_VAR(&processed); + array_init(&processed); + ZEPHIR_INIT_VAR(&bindCounts); + array_init(&bindCounts); + zephir_array_update_string(&intermediate, SL("columns"), &selectColumns, PH_COPY | PH_SEPARATE); + zephir_is_iterable(&bindParams, 0, "phalcon/Mvc/Model/Query.zep", 1162); + if (Z_TYPE_P(&bindParams) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&bindParams), _62, _63, _60) + { + ZEPHIR_INIT_NVAR(&wildcard); + if (_63 != NULL) { + ZVAL_STR_COPY(&wildcard, _63); + } else { + ZVAL_LONG(&wildcard, _62); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _60); + if (Z_TYPE_P(&wildcard) == IS_LONG) { + ZEPHIR_INIT_NVAR(&wildcardValue); + ZEPHIR_CONCAT_SV(&wildcardValue, ":", &wildcard); + } else { + ZEPHIR_CPY_WRT(&wildcardValue, &wildcard); + } + zephir_array_update_zval(&processed, &wildcardValue, &value, PH_COPY | PH_SEPARATE); + if (Z_TYPE_P(&value) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&_64$$67); + ZVAL_LONG(&_64$$67, zephir_fast_count_int(&value)); + zephir_array_update_zval(&bindCounts, &wildcardValue, &_64$$67, PH_COPY | PH_SEPARATE); + } + } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(&afterPosition, column, "getafterposition", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &bindParams, "rewind", NULL, 0); zephir_check_call_status(); - if (zephir_is_true(&afterPosition)) { - ZEPHIR_INIT_VAR(&_16$$11); - ZEPHIR_CONCAT_SVS(&_16$$11, " AFTER `", &afterPosition, "`"); - zephir_concat_self(&sql, &_16$$11); + while (1) { + ZEPHIR_CALL_METHOD(&_61, &bindParams, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_61)) { + break; + } + ZEPHIR_CALL_METHOD(&wildcard, &bindParams, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &bindParams, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&wildcard) == IS_LONG) { + ZEPHIR_INIT_NVAR(&wildcardValue); + ZEPHIR_CONCAT_SV(&wildcardValue, ":", &wildcard); + } else { + ZEPHIR_CPY_WRT(&wildcardValue, &wildcard); + } + zephir_array_update_zval(&processed, &wildcardValue, &value, PH_COPY | PH_SEPARATE); + if (Z_TYPE_P(&value) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&_65$$71); + ZVAL_LONG(&_65$$71, zephir_fast_count_int(&value)); + zephir_array_update_zval(&bindCounts, &wildcardValue, &_65$$71, PH_COPY | PH_SEPARATE); + } + ZEPHIR_CALL_METHOD(NULL, &bindParams, "next", NULL, 0); + zephir_check_call_status(); } } - RETURN_CTOR(&sql); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, addForeignKey) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *reference, reference_sub, onDelete, onUpdate, _0, _1, _2, _5, _6, _7, _8, _9, _10, _11, _12, _3$$3, _4$$3, _13$$4, _14$$5; - zval tableName, schemaName, sql; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&reference_sub); - ZVAL_UNDEF(&onDelete); - ZVAL_UNDEF(&onUpdate); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_13$$4); - ZVAL_UNDEF(&_14$$5); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(reference, phalcon_db_referenceinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &reference); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&wildcard); + ZEPHIR_INIT_VAR(&processedTypes); + array_init(&processedTypes); + zephir_is_iterable(&bindTypes, 0, "phalcon/Mvc/Model/Query.zep", 1175); + if (Z_TYPE_P(&bindTypes) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&bindTypes), _68, _69, _66) + { + ZEPHIR_INIT_NVAR(&typeWildcard); + if (_69 != NULL) { + ZVAL_STR_COPY(&typeWildcard, _69); + } else { + ZVAL_LONG(&typeWildcard, _68); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _66); + if (Z_TYPE_P(&typeWildcard) == IS_LONG) { + ZEPHIR_INIT_NVAR(&_70$$73); + ZEPHIR_CONCAT_SV(&_70$$73, ":", &typeWildcard); + zephir_array_update_zval(&processedTypes, &_70$$73, &value, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_zval(&processedTypes, &typeWildcard, &value, PH_COPY | PH_SEPARATE); + } + } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); + ZEPHIR_CALL_METHOD(NULL, &bindTypes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_67, &bindTypes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_67)) { + break; + } + ZEPHIR_CALL_METHOD(&typeWildcard, &bindTypes, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &bindTypes, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&typeWildcard) == IS_LONG) { + ZEPHIR_INIT_NVAR(&_71$$76); + ZEPHIR_CONCAT_SV(&_71$$76, ":", &typeWildcard); + zephir_array_update_zval(&processedTypes, &_71$$76, &value, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_zval(&processedTypes, &typeWildcard, &value, PH_COPY | PH_SEPARATE); + } + ZEPHIR_CALL_METHOD(NULL, &bindTypes, "next", NULL, 0); + zephir_check_call_status(); + } } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&typeWildcard); + if (zephir_fast_count_int(&bindCounts)) { + zephir_array_update_string(&intermediate, SL("bindCounts"), &bindCounts, PH_COPY | PH_SEPARATE); } - - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); + ZEPHIR_CALL_METHOD(&dialect, &connection, "getdialect", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_CONCAT_SVS(&_1, "ALTER TABLE ", &_0, " ADD"); - zephir_get_strval(&sql, &_1); - ZEPHIR_CALL_METHOD(&_2, reference, "getname", NULL, 0); + ZEPHIR_CALL_METHOD(&sqlSelect, &dialect, "select", NULL, 0, &intermediate); zephir_check_call_status(); - if (zephir_is_true(&_2)) { - ZEPHIR_CALL_METHOD(&_3$$3, reference, "getname", NULL, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("sharedLock"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_0)) { + ZEPHIR_CALL_METHOD(&_72$$79, &dialect, "sharedlock", NULL, 0, &sqlSelect); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_4$$3); - ZEPHIR_CONCAT_SVS(&_4$$3, " CONSTRAINT `", &_3$$3, "`"); - zephir_concat_self(&sql, &_4$$3); + ZEPHIR_CPY_WRT(&sqlSelect, &_72$$79); } - ZEPHIR_CALL_METHOD(&_6, reference, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_5, this_ptr, "getcolumnlist", NULL, 67, &_6); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_8, reference, "getreferencedtable", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_9, reference, "getreferencedschema", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_7, this_ptr, "preparetable", NULL, 0, &_8, &_9); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_11, reference, "getreferencedcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_10, this_ptr, "getcolumnlist", NULL, 67, &_11); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_12); - ZEPHIR_CONCAT_SVSVSVS(&_12, " FOREIGN KEY (", &_5, ") REFERENCES ", &_7, "(", &_10, ")"); - zephir_concat_self(&sql, &_12); - ZEPHIR_CALL_METHOD(&onDelete, reference, "getondelete", NULL, 0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&onDelete))) { - ZEPHIR_INIT_VAR(&_13$$4); - ZEPHIR_CONCAT_SV(&_13$$4, " ON DELETE ", &onDelete); - zephir_concat_self(&sql, &_13$$4); + if (simulate) { + zephir_create_array(return_value, 3, 0); + zephir_array_update_string(return_value, SL("sql"), &sqlSelect, PH_COPY | PH_SEPARATE); + zephir_array_update_string(return_value, SL("bind"), &processed, PH_COPY | PH_SEPARATE); + zephir_array_update_string(return_value, SL("bindTypes"), &processedTypes, PH_COPY | PH_SEPARATE); + RETURN_MM(); } - ZEPHIR_CALL_METHOD(&onUpdate, reference, "getonupdate", NULL, 0); + ZEPHIR_CALL_METHOD(&result, &connection, "query", NULL, 0, &sqlSelect, &processed, &processedTypes); zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&onUpdate))) { - ZEPHIR_INIT_VAR(&_14$$5); - ZEPHIR_CONCAT_SV(&_14$$5, " ON UPDATE ", &onUpdate); - zephir_concat_self(&sql, &_14$$5); - } - RETURN_CTOR(&sql); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, addIndex) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *index, index_sub, indexType, _0, _1, _3, _4, _5, _6, _2$$3; - zval tableName, schemaName, sql; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&index_sub); - ZVAL_UNDEF(&indexType); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_2$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(index, phalcon_db_indexinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); + if (zephir_instance_of_ev(&result, phalcon_db_resultinterface_ce)) { + ZEPHIR_CPY_WRT(&resultData, &result); } else { - ZEPHIR_INIT_VAR(&schemaName); + ZEPHIR_INIT_NVAR(&resultData); + ZVAL_NULL(&resultData); } + zephir_read_property(&_73, this_ptr, ZEND_STRL("cache"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&cache, &_73); + if (!(isComplex)) { + if (isSimpleStd) { + ZEPHIR_INIT_VAR(&resultObject); + object_init_ex(&resultObject, phalcon_mvc_model_row_ce); + if (zephir_has_constructor(&resultObject)) { + ZEPHIR_CALL_METHOD(NULL, &resultObject, "__construct", NULL, 0); + zephir_check_call_status(); + } - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_CONCAT_SV(&_1, "ALTER TABLE ", &_0); - zephir_get_strval(&sql, &_1); - ZEPHIR_CALL_METHOD(&indexType, index, "gettype", NULL, 0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&indexType))) { - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_CONCAT_SVS(&_2$$3, " ADD ", &indexType, " INDEX "); - zephir_concat_self(&sql, &_2$$3); - } else { - zephir_concat_self_str(&sql, " ADD INDEX ", sizeof(" ADD INDEX ") - 1); + isKeepingSnapshots = 0; + } else { + if (Z_TYPE_P(&instance) == IS_OBJECT) { + ZEPHIR_CPY_WRT(&resultObject, &instance); + } else { + ZEPHIR_CPY_WRT(&resultObject, &model); + } + if (!(ZEPHIR_GLOBAL(orm).cast_on_hydrate)) { + ZEPHIR_CALL_METHOD(&simpleColumnMap, &metaData, "getcolumnmap", NULL, 0, &resultObject); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getcolumnmap", NULL, 0, &resultObject); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&typesColumnMap, &metaData, "getdatatypes", NULL, 0, &resultObject); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&simpleColumnMap); + if (Z_TYPE_P(&columnMap) == IS_NULL) { + array_init(&simpleColumnMap); + ZEPHIR_CALL_METHOD(&_74$$90, &metaData, "getattributes", NULL, 0, &resultObject); + zephir_check_call_status(); + zephir_is_iterable(&_74$$90, 0, "phalcon/Mvc/Model/Query.zep", 1263); + if (Z_TYPE_P(&_74$$90) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_74$$90), _75$$90) + { + ZEPHIR_INIT_NVAR(&attribute); + ZVAL_COPY(&attribute, _75$$90); + ZEPHIR_INIT_NVAR(&_77$$91); + zephir_create_array(&_77$$91, 2, 0); + zephir_array_fast_append(&_77$$91, &attribute); + ZEPHIR_OBS_NVAR(&_78$$91); + zephir_array_fetch(&_78$$91, &typesColumnMap, &attribute, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1261); + zephir_array_fast_append(&_77$$91, &_78$$91); + zephir_array_update_zval(&simpleColumnMap, &attribute, &_77$$91, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_74$$90, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_76$$90, &_74$$90, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_76$$90)) { + break; + } + ZEPHIR_CALL_METHOD(&attribute, &_74$$90, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_79$$92); + zephir_create_array(&_79$$92, 2, 0); + zephir_array_fast_append(&_79$$92, &attribute); + ZEPHIR_OBS_NVAR(&_80$$92); + zephir_array_fetch(&_80$$92, &typesColumnMap, &attribute, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1261); + zephir_array_fast_append(&_79$$92, &_80$$92); + zephir_array_update_zval(&simpleColumnMap, &attribute, &_79$$92, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &_74$$90, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&attribute); + } else { + array_init(&simpleColumnMap); + zephir_is_iterable(&columnMap, 0, "phalcon/Mvc/Model/Query.zep", 1272); + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&columnMap), _83$$93, _84$$93, _81$$93) + { + ZEPHIR_INIT_NVAR(&column); + if (_84$$93 != NULL) { + ZVAL_STR_COPY(&column, _84$$93); + } else { + ZVAL_LONG(&column, _83$$93); + } + ZEPHIR_INIT_NVAR(&attribute); + ZVAL_COPY(&attribute, _81$$93); + ZEPHIR_INIT_NVAR(&_85$$94); + zephir_create_array(&_85$$94, 2, 0); + zephir_array_fast_append(&_85$$94, &attribute); + ZEPHIR_OBS_NVAR(&_86$$94); + zephir_array_fetch(&_86$$94, &typesColumnMap, &column, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1270); + zephir_array_fast_append(&_85$$94, &_86$$94); + zephir_array_update_zval(&simpleColumnMap, &column, &_85$$94, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &columnMap, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_82$$93, &columnMap, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_82$$93)) { + break; + } + ZEPHIR_CALL_METHOD(&column, &columnMap, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&attribute, &columnMap, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_87$$95); + zephir_create_array(&_87$$95, 2, 0); + zephir_array_fast_append(&_87$$95, &attribute); + ZEPHIR_OBS_NVAR(&_88$$95); + zephir_array_fetch(&_88$$95, &typesColumnMap, &column, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1270); + zephir_array_fast_append(&_87$$95, &_88$$95); + zephir_array_update_zval(&simpleColumnMap, &column, &_87$$95, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &columnMap, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&attribute); + ZEPHIR_INIT_NVAR(&column); + } + } + ZEPHIR_CALL_METHOD(&_89$$85, &manager, "iskeepingsnapshots", NULL, 0, &resultObject); + zephir_check_call_status(); + isKeepingSnapshots = zephir_get_boolval(&_89$$85); + } + _90$$83 = zephir_instance_of_ev(&resultObject, phalcon_mvc_modelinterface_ce); + if (_90$$83) { + _90$$83 = (zephir_method_exists_ex(&resultObject, ZEND_STRL("getresultsetclass")) == SUCCESS); + } + if (_90$$83) { + ZEPHIR_CALL_METHOD(&resultsetClassName, &resultObject, "getresultsetclass", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&resultsetClassName)) { + if (UNEXPECTED(!(zephir_class_exists(&resultsetClassName, 1)))) { + ZEPHIR_INIT_VAR(&_91$$98); + object_init_ex(&_91$$98, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_92$$98); + ZEPHIR_CONCAT_SVS(&_92$$98, "Resultset class \"", &resultsetClassName, "\" not found"); + ZEPHIR_CALL_METHOD(NULL, &_91$$98, "__construct", NULL, 8, &_92$$98); + zephir_check_call_status(); + zephir_throw_exception_debug(&_91$$98, "phalcon/Mvc/Model/Query.zep", 1288); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_VAR(&_93$$97); + ZVAL_STRING(&_93$$97, "Phalcon\\Mvc\\Model\\ResultsetInterface"); + ZEPHIR_CALL_FUNCTION(&_94$$97, "is_subclass_of", NULL, 449, &resultsetClassName, &_93$$97); + zephir_check_call_status(); + if (UNEXPECTED(!zephir_is_true(&_94$$97))) { + ZEPHIR_INIT_VAR(&_95$$99); + object_init_ex(&_95$$99, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_96$$99); + ZEPHIR_CONCAT_SVS(&_96$$99, "Resultset class \"", &resultsetClassName, "\" must be an implementation of Phalcon\\Mvc\\Model\\ResultsetInterface"); + ZEPHIR_CALL_METHOD(NULL, &_95$$99, "__construct", NULL, 8, &_96$$99); + zephir_check_call_status(); + zephir_throw_exception_debug(&_95$$99, "phalcon/Mvc/Model/Query.zep", 1294); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_VAR(&_97$$97); + zephir_create_array(&_97$$97, 5, 0); + zephir_array_fast_append(&_97$$97, &simpleColumnMap); + zephir_array_fast_append(&_97$$97, &resultObject); + zephir_array_fast_append(&_97$$97, &resultData); + zephir_array_fast_append(&_97$$97, &cache); + ZEPHIR_INIT_NVAR(&_93$$97); + ZVAL_BOOL(&_93$$97, isKeepingSnapshots); + zephir_array_fast_append(&_97$$97, &_93$$97); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(return_value, &resultsetClassName, &_97$$97); + zephir_check_call_status(); + RETURN_MM(); + } + } + object_init_ex(return_value, phalcon_mvc_model_resultset_simple_ce); + if (isKeepingSnapshots) { + ZVAL_BOOL(&_98$$83, 1); + } else { + ZVAL_BOOL(&_98$$83, 0); + } + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 466, &simpleColumnMap, &resultObject, &resultData, &cache, &_98$$83); + zephir_check_call_status(); + RETURN_MM(); } - ZEPHIR_CALL_METHOD(&_3, index, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_5, index, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "getcolumnlist", NULL, 67, &_5); + object_init_ex(return_value, phalcon_mvc_model_resultset_complex_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 467, &columns1, &resultData, &cache); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_6); - ZEPHIR_CONCAT_SVSVS(&_6, "`", &_3, "` (", &_4, ")"); - zephir_concat_self(&sql, &_6); - RETURN_CTOR(&sql); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, addPrimaryKey) +static PHP_METHOD(Phalcon_Mvc_Model_Query, executeUpdate) { + zend_string *_5; + zend_ulong _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_7 = NULL, *_9 = NULL, *_14 = NULL, *_16 = NULL, *_17 = NULL, *_19 = NULL, *_21 = NULL, *_27 = NULL, *_30 = NULL, *_32 = NULL, *_34 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *index, index_sub, _0, _1, _2; - zval tableName, schemaName; + zval *intermediate_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, models, modelName, model, connection, dialect, fields, values, updateValues, fieldName, value, selectBindParams, selectBindTypes, number, field, records, exprValue, updateValue, wildcard, record, _0, *_2, _3, _29, _35, _1$$4, _6$$5, _8$$10, _10$$10, _11$$10, _12$$11, _13$$11, _15$$13, _18$$14, _20$$19, _22$$19, _23$$19, _24$$20, _25$$20, _26$$22, _28$$23, _31$$24, _33$$25; + zval intermediate, bindParams, bindTypes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&index_sub); + ZVAL_UNDEF(&intermediate); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&models); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&dialect); + ZVAL_UNDEF(&fields); + ZVAL_UNDEF(&values); + ZVAL_UNDEF(&updateValues); + ZVAL_UNDEF(&fieldName); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&selectBindParams); + ZVAL_UNDEF(&selectBindTypes); + ZVAL_UNDEF(&number); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&records); + ZVAL_UNDEF(&exprValue); + ZVAL_UNDEF(&updateValue); + ZVAL_UNDEF(&wildcard); + ZVAL_UNDEF(&record); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_29); + ZVAL_UNDEF(&_35); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_8$$10); + ZVAL_UNDEF(&_10$$10); + ZVAL_UNDEF(&_11$$10); + ZVAL_UNDEF(&_12$$11); + ZVAL_UNDEF(&_13$$11); + ZVAL_UNDEF(&_15$$13); + ZVAL_UNDEF(&_18$$14); + ZVAL_UNDEF(&_20$$19); + ZVAL_UNDEF(&_22$$19); + ZVAL_UNDEF(&_23$$19); + ZVAL_UNDEF(&_24$$20); + ZVAL_UNDEF(&_25$$20); + ZVAL_UNDEF(&_26$$22); + ZVAL_UNDEF(&_28$$23); + ZVAL_UNDEF(&_31$$24); + ZVAL_UNDEF(&_33$$25); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(index, phalcon_db_indexinterface_ce) + Z_PARAM_ARRAY(intermediate) + Z_PARAM_ARRAY(bindParams) + Z_PARAM_ARRAY(bindTypes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } + zephir_fetch_params(1, 3, 0, &intermediate_param, &bindParams_param, &bindTypes_param); + zephir_get_arrval(&intermediate, intermediate_param); + zephir_get_arrval(&bindParams, bindParams_param); + zephir_get_arrval(&bindTypes, bindTypes_param); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2, index, "getcolumns", NULL, 0); + ZEPHIR_OBS_VAR(&models); + zephir_array_fetch_string(&models, &intermediate, SL("models"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1342); + if (UNEXPECTED(zephir_array_isset_long(&models, 1))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Updating several models at the same time is still not supported", "phalcon/Mvc/Model/Query.zep", 1347); + return; + } + ZEPHIR_OBS_VAR(&modelName); + zephir_array_fetch_long(&modelName, &models, 0, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1350); + ZEPHIR_OBS_VAR(&model); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&model, &_0, &modelName, 0))) { + zephir_read_property(&_1$$4, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&model, &_1$$4, "load", NULL, 0, &modelName); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(&connection, this_ptr, "getwriteconnection", NULL, 0, &model, &intermediate, &bindParams, &bindTypes); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getcolumnlist", NULL, 67, &_2); + ZEPHIR_CALL_METHOD(&dialect, &connection, "getdialect", NULL, 0); zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVS(return_value, "ALTER TABLE ", &_0, " ADD PRIMARY KEY (", &_1, ")"); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, createTable) -{ - zend_bool _9$$10, _10$$10, _11$$10, _28$$19, _29$$19, _30$$19; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_6 = NULL, *_13 = NULL, *_17 = NULL, *_45 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval definition, createLines; - zval *tableName_param = NULL, *schemaName_param = NULL, *definition_param = NULL, temporary, options, table, columns, column, indexes, index, reference, references, indexName, columnLine, indexType, onDelete, onUpdate, defaultValue, upperDefaultValue, *_2, _3, _86, _87, _0$$5, _1$$6, _4$$7, _5$$7, _7$$7, _8$$7, _19$$7, _20$$7, _21$$7, _12$$10, _14$$11, _15$$12, _16$$12, _18$$12, _22$$15, _23$$15, _24$$16, _25$$16, _26$$16, _27$$16, _36$$16, _37$$16, _38$$16, _31$$19, _32$$20, _33$$21, _34$$21, _35$$21, _39$$24, _40$$24, *_41$$25, _42$$25, _43$$27, _44$$27, _46$$27, _47$$29, _48$$29, _49$$29, _50$$30, _51$$30, _52$$30, _53$$32, _54$$32, _55$$32, _56$$34, _57$$34, _58$$34, _59$$35, _60$$35, _61$$35, *_62$$36, _63$$36, _64$$37, _65$$37, _66$$37, _67$$37, _68$$37, _69$$37, _70$$37, _71$$37, _72$$37, _73$$38, _74$$39, _75$$40, _76$$40, _77$$40, _78$$40, _79$$40, _80$$40, _81$$40, _82$$40, _83$$40, _84$$41, _85$$42, _88$$43, _89$$43; - zval tableName, schemaName, indexSql, referenceSql, sql; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&indexSql); - ZVAL_UNDEF(&referenceSql); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&temporary); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&column); - ZVAL_UNDEF(&indexes); - ZVAL_UNDEF(&index); - ZVAL_UNDEF(&reference); - ZVAL_UNDEF(&references); - ZVAL_UNDEF(&indexName); - ZVAL_UNDEF(&columnLine); - ZVAL_UNDEF(&indexType); - ZVAL_UNDEF(&onDelete); - ZVAL_UNDEF(&onUpdate); - ZVAL_UNDEF(&defaultValue); - ZVAL_UNDEF(&upperDefaultValue); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_86); - ZVAL_UNDEF(&_87); - ZVAL_UNDEF(&_0$$5); - ZVAL_UNDEF(&_1$$6); - ZVAL_UNDEF(&_4$$7); - ZVAL_UNDEF(&_5$$7); - ZVAL_UNDEF(&_7$$7); - ZVAL_UNDEF(&_8$$7); - ZVAL_UNDEF(&_19$$7); - ZVAL_UNDEF(&_20$$7); - ZVAL_UNDEF(&_21$$7); - ZVAL_UNDEF(&_12$$10); - ZVAL_UNDEF(&_14$$11); - ZVAL_UNDEF(&_15$$12); - ZVAL_UNDEF(&_16$$12); - ZVAL_UNDEF(&_18$$12); - ZVAL_UNDEF(&_22$$15); - ZVAL_UNDEF(&_23$$15); - ZVAL_UNDEF(&_24$$16); - ZVAL_UNDEF(&_25$$16); - ZVAL_UNDEF(&_26$$16); - ZVAL_UNDEF(&_27$$16); - ZVAL_UNDEF(&_36$$16); - ZVAL_UNDEF(&_37$$16); - ZVAL_UNDEF(&_38$$16); - ZVAL_UNDEF(&_31$$19); - ZVAL_UNDEF(&_32$$20); - ZVAL_UNDEF(&_33$$21); - ZVAL_UNDEF(&_34$$21); - ZVAL_UNDEF(&_35$$21); - ZVAL_UNDEF(&_39$$24); - ZVAL_UNDEF(&_40$$24); - ZVAL_UNDEF(&_42$$25); - ZVAL_UNDEF(&_43$$27); - ZVAL_UNDEF(&_44$$27); - ZVAL_UNDEF(&_46$$27); - ZVAL_UNDEF(&_47$$29); - ZVAL_UNDEF(&_48$$29); - ZVAL_UNDEF(&_49$$29); - ZVAL_UNDEF(&_50$$30); - ZVAL_UNDEF(&_51$$30); - ZVAL_UNDEF(&_52$$30); - ZVAL_UNDEF(&_53$$32); - ZVAL_UNDEF(&_54$$32); - ZVAL_UNDEF(&_55$$32); - ZVAL_UNDEF(&_56$$34); - ZVAL_UNDEF(&_57$$34); - ZVAL_UNDEF(&_58$$34); - ZVAL_UNDEF(&_59$$35); - ZVAL_UNDEF(&_60$$35); - ZVAL_UNDEF(&_61$$35); - ZVAL_UNDEF(&_63$$36); - ZVAL_UNDEF(&_64$$37); - ZVAL_UNDEF(&_65$$37); - ZVAL_UNDEF(&_66$$37); - ZVAL_UNDEF(&_67$$37); - ZVAL_UNDEF(&_68$$37); - ZVAL_UNDEF(&_69$$37); - ZVAL_UNDEF(&_70$$37); - ZVAL_UNDEF(&_71$$37); - ZVAL_UNDEF(&_72$$37); - ZVAL_UNDEF(&_73$$38); - ZVAL_UNDEF(&_74$$39); - ZVAL_UNDEF(&_75$$40); - ZVAL_UNDEF(&_76$$40); - ZVAL_UNDEF(&_77$$40); - ZVAL_UNDEF(&_78$$40); - ZVAL_UNDEF(&_79$$40); - ZVAL_UNDEF(&_80$$40); - ZVAL_UNDEF(&_81$$40); - ZVAL_UNDEF(&_82$$40); - ZVAL_UNDEF(&_83$$40); - ZVAL_UNDEF(&_84$$41); - ZVAL_UNDEF(&_85$$42); - ZVAL_UNDEF(&_88$$43); - ZVAL_UNDEF(&_89$$43); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&createLines); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_ARRAY(definition) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &definition_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } - ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); - - - ZEPHIR_OBS_VAR(&columns); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&columns, &definition, SL("columns"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/Db/Dialect/Mysql.zep", 151); - return; - } - ZEPHIR_CALL_METHOD(&table, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&temporary); - ZVAL_BOOL(&temporary, 0); - ZEPHIR_OBS_VAR(&options); - if (zephir_array_isset_string_fetch(&options, &definition, SL("options"), 0)) { - ZEPHIR_OBS_NVAR(&temporary); - zephir_array_isset_string_fetch(&temporary, &options, SL("temporary"), 0); - } - if (zephir_is_true(&temporary)) { - ZEPHIR_INIT_VAR(&_0$$5); - ZEPHIR_CONCAT_SVS(&_0$$5, "CREATE TEMPORARY TABLE ", &table, " (\n\t"); - zephir_get_strval(&sql, &_0$$5); - } else { - ZEPHIR_INIT_VAR(&_1$$6); - ZEPHIR_CONCAT_SVS(&_1$$6, "CREATE TABLE ", &table, " (\n\t"); - zephir_get_strval(&sql, &_1$$6); - } - ZEPHIR_INIT_VAR(&createLines); - array_init(&createLines); - zephir_is_iterable(&columns, 0, "phalcon/Db/Dialect/Mysql.zep", 228); - if (Z_TYPE_P(&columns) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&columns), _2) + ZEPHIR_OBS_VAR(&fields); + zephir_array_fetch_string(&fields, &intermediate, SL("fields"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1369); + ZEPHIR_OBS_VAR(&values); + zephir_array_fetch_string(&values, &intermediate, SL("values"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1370); + ZEPHIR_INIT_VAR(&updateValues); + array_init(&updateValues); + ZEPHIR_CPY_WRT(&selectBindParams, &bindParams); + ZEPHIR_CPY_WRT(&selectBindTypes, &bindTypes); + zephir_is_iterable(&fields, 0, "phalcon/Mvc/Model/Query.zep", 1442); + if (Z_TYPE_P(&fields) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&fields), _4, _5, _2) { - ZEPHIR_INIT_NVAR(&column); - ZVAL_COPY(&column, _2); - ZEPHIR_CALL_METHOD(&_4$$7, &column, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_5$$7, this_ptr, "getcolumndefinition", &_6, 0, &column); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&columnLine); - ZEPHIR_CONCAT_SVSV(&columnLine, "`", &_4$$7, "` ", &_5$$7); - ZEPHIR_CALL_METHOD(&_7$$7, &column, "isnotnull", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_7$$7)) { - zephir_concat_self_str(&columnLine, SL(" NOT NULL")); + ZEPHIR_INIT_NVAR(&number); + if (_5 != NULL) { + ZVAL_STR_COPY(&number, _5); } else { - zephir_concat_self_str(&columnLine, SL(" NULL")); + ZVAL_LONG(&number, _4); } - ZEPHIR_CALL_METHOD(&_8$$7, &column, "hasdefault", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_8$$7)) { - ZEPHIR_CALL_METHOD(&defaultValue, &column, "getdefault", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&upperDefaultValue); - zephir_fast_strtoupper(&upperDefaultValue, &defaultValue); - _9$$10 = zephir_memnstr_str(&upperDefaultValue, SL("CURRENT_TIMESTAMP"), "phalcon/Db/Dialect/Mysql.zep", 194); - if (!(_9$$10)) { - _9$$10 = zephir_memnstr_str(&upperDefaultValue, SL("NULL"), "phalcon/Db/Dialect/Mysql.zep", 194); + ZEPHIR_INIT_NVAR(&field); + ZVAL_COPY(&field, _2); + ZEPHIR_OBS_NVAR(&value); + zephir_array_fetch(&value, &values, &number, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1385); + ZEPHIR_OBS_NVAR(&exprValue); + zephir_array_fetch_string(&exprValue, &value, SL("value"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1386); + if (zephir_array_isset_string(&field, SL("balias"))) { + ZEPHIR_OBS_NVAR(&fieldName); + zephir_array_fetch_string(&fieldName, &field, SL("balias"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1389); + } else { + ZEPHIR_OBS_NVAR(&fieldName); + zephir_array_fetch_string(&fieldName, &field, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1391); + } + zephir_array_fetch_string(&_6$$5, &value, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1394); + do { + if (ZEPHIR_IS_LONG(&_6$$5, 260) || ZEPHIR_IS_LONG(&_6$$5, 258) || ZEPHIR_IS_LONG(&_6$$5, 259)) { + ZEPHIR_CALL_METHOD(&updateValue, &dialect, "getsqlexpression", &_7, 0, &exprValue); + zephir_check_call_status(); + break; } - _10$$10 = _9$$10; - if (!(_10$$10)) { - _10$$10 = Z_TYPE_P(&defaultValue) == IS_LONG; + if (ZEPHIR_IS_LONG(&_6$$5, 322)) { + ZEPHIR_INIT_NVAR(&updateValue); + ZVAL_NULL(&updateValue); + break; } - _11$$10 = _10$$10; - if (!(_11$$10)) { - ZEPHIR_CALL_FUNCTION(&_12$$10, "is_float", &_13, 213, &defaultValue); + if (ZEPHIR_IS_LONG(&_6$$5, 273) || ZEPHIR_IS_LONG(&_6$$5, 274) || ZEPHIR_IS_LONG(&_6$$5, 277)) { + ZEPHIR_CALL_METHOD(&_8$$10, &dialect, "getsqlexpression", &_9, 0, &exprValue); zephir_check_call_status(); - _11$$10 = zephir_is_true(&_12$$10); + ZEPHIR_INIT_NVAR(&_10$$10); + ZVAL_STRING(&_10$$10, ":"); + ZEPHIR_INIT_NVAR(&_11$$10); + ZVAL_STRING(&_11$$10, ""); + ZEPHIR_INIT_NVAR(&wildcard); + zephir_fast_str_replace(&wildcard, &_10$$10, &_11$$10, &_8$$10); + ZEPHIR_OBS_NVAR(&updateValue); + if (UNEXPECTED(!(zephir_array_isset_fetch(&updateValue, &bindParams, &wildcard, 0)))) { + ZEPHIR_INIT_NVAR(&_12$$11); + object_init_ex(&_12$$11, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_13$$11); + ZEPHIR_CONCAT_SVS(&_13$$11, "Bound parameter '", &wildcard, "' cannot be replaced because it's not in the placeholders list"); + ZEPHIR_CALL_METHOD(NULL, &_12$$11, "__construct", &_14, 8, &_13$$11); + zephir_check_call_status(); + zephir_throw_exception_debug(&_12$$11, "phalcon/Mvc/Model/Query.zep", 1417); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_array_unset(&selectBindParams, &wildcard, PH_SEPARATE); + zephir_array_unset(&selectBindTypes, &wildcard, PH_SEPARATE); + break; } - if (_11$$10) { - ZEPHIR_INIT_NVAR(&_14$$11); - ZEPHIR_CONCAT_SV(&_14$$11, " DEFAULT ", &defaultValue); - zephir_concat_self(&columnLine, &_14$$11); - } else { - ZEPHIR_INIT_NVAR(&_15$$12); - ZVAL_STRING(&_15$$12, "\""); - ZEPHIR_CALL_FUNCTION(&_16$$12, "addcslashes", &_17, 214, &defaultValue, &_15$$12); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_18$$12); - ZEPHIR_CONCAT_SVS(&_18$$12, " DEFAULT \"", &_16$$12, "\""); - zephir_concat_self(&columnLine, &_18$$12); + if (ZEPHIR_IS_LONG(&_6$$5, 277)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not supported", "phalcon/Mvc/Model/Query.zep", 1426); + return; } - } - ZEPHIR_CALL_METHOD(&_19$$7, &column, "isautoincrement", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_19$$7)) { - zephir_concat_self_str(&columnLine, SL(" AUTO_INCREMENT")); - } - ZEPHIR_CALL_METHOD(&_20$$7, &column, "isprimary", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_20$$7)) { - zephir_concat_self_str(&columnLine, SL(" PRIMARY KEY")); - } - ZEPHIR_CALL_METHOD(&_21$$7, &column, "getcomment", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_21$$7)) { - ZEPHIR_CALL_METHOD(&_22$$15, &column, "getcomment", NULL, 0); + ZEPHIR_INIT_NVAR(&updateValue); + object_init_ex(&updateValue, phalcon_db_rawvalue_ce); + ZEPHIR_CALL_METHOD(&_15$$13, &dialect, "getsqlexpression", &_16, 0, &exprValue); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_23$$15); - ZEPHIR_CONCAT_SVS(&_23$$15, " COMMENT '", &_22$$15, "'"); - zephir_concat_self(&columnLine, &_23$$15); - } - zephir_array_append(&createLines, &columnLine, PH_SEPARATE, "phalcon/Db/Dialect/Mysql.zep", 222); + ZEPHIR_CALL_METHOD(NULL, &updateValue, "__construct", &_17, 34, &_15$$13); + zephir_check_call_status(); + break; + } while(0); + + zephir_array_update_zval(&updateValues, &fieldName, &updateValue, PH_COPY | PH_SEPARATE); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &columns, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &fields, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_3, &columns, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_3, &fields, "valid", NULL, 0); zephir_check_call_status(); if (!zend_is_true(&_3)) { break; } - ZEPHIR_CALL_METHOD(&column, &columns, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&number, &fields, "key", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_24$$16, &column, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_25$$16, this_ptr, "getcolumndefinition", &_6, 0, &column); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&columnLine); - ZEPHIR_CONCAT_SVSV(&columnLine, "`", &_24$$16, "` ", &_25$$16); - ZEPHIR_CALL_METHOD(&_26$$16, &column, "isnotnull", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_26$$16)) { - zephir_concat_self_str(&columnLine, SL(" NOT NULL")); + ZEPHIR_CALL_METHOD(&field, &fields, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&value); + zephir_array_fetch(&value, &values, &number, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1385); + ZEPHIR_OBS_NVAR(&exprValue); + zephir_array_fetch_string(&exprValue, &value, SL("value"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1386); + if (zephir_array_isset_string(&field, SL("balias"))) { + ZEPHIR_OBS_NVAR(&fieldName); + zephir_array_fetch_string(&fieldName, &field, SL("balias"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1389); } else { - zephir_concat_self_str(&columnLine, SL(" NULL")); + ZEPHIR_OBS_NVAR(&fieldName); + zephir_array_fetch_string(&fieldName, &field, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1391); } - ZEPHIR_CALL_METHOD(&_27$$16, &column, "hasdefault", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_27$$16)) { - ZEPHIR_CALL_METHOD(&defaultValue, &column, "getdefault", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&upperDefaultValue); - zephir_fast_strtoupper(&upperDefaultValue, &defaultValue); - _28$$19 = zephir_memnstr_str(&upperDefaultValue, SL("CURRENT_TIMESTAMP"), "phalcon/Db/Dialect/Mysql.zep", 194); - if (!(_28$$19)) { - _28$$19 = zephir_memnstr_str(&upperDefaultValue, SL("NULL"), "phalcon/Db/Dialect/Mysql.zep", 194); + zephir_array_fetch_string(&_18$$14, &value, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1394); + do { + if (ZEPHIR_IS_LONG(&_18$$14, 260) || ZEPHIR_IS_LONG(&_18$$14, 258) || ZEPHIR_IS_LONG(&_18$$14, 259)) { + ZEPHIR_CALL_METHOD(&updateValue, &dialect, "getsqlexpression", &_19, 0, &exprValue); + zephir_check_call_status(); + break; } - _29$$19 = _28$$19; - if (!(_29$$19)) { - _29$$19 = Z_TYPE_P(&defaultValue) == IS_LONG; + if (ZEPHIR_IS_LONG(&_18$$14, 322)) { + ZEPHIR_INIT_NVAR(&updateValue); + ZVAL_NULL(&updateValue); + break; } - _30$$19 = _29$$19; - if (!(_30$$19)) { - ZEPHIR_CALL_FUNCTION(&_31$$19, "is_float", &_13, 213, &defaultValue); + if (ZEPHIR_IS_LONG(&_18$$14, 273) || ZEPHIR_IS_LONG(&_18$$14, 274) || ZEPHIR_IS_LONG(&_18$$14, 277)) { + ZEPHIR_CALL_METHOD(&_20$$19, &dialect, "getsqlexpression", &_21, 0, &exprValue); zephir_check_call_status(); - _30$$19 = zephir_is_true(&_31$$19); + ZEPHIR_INIT_NVAR(&_22$$19); + ZVAL_STRING(&_22$$19, ":"); + ZEPHIR_INIT_NVAR(&_23$$19); + ZVAL_STRING(&_23$$19, ""); + ZEPHIR_INIT_NVAR(&wildcard); + zephir_fast_str_replace(&wildcard, &_22$$19, &_23$$19, &_20$$19); + ZEPHIR_OBS_NVAR(&updateValue); + if (UNEXPECTED(!(zephir_array_isset_fetch(&updateValue, &bindParams, &wildcard, 0)))) { + ZEPHIR_INIT_NVAR(&_24$$20); + object_init_ex(&_24$$20, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_25$$20); + ZEPHIR_CONCAT_SVS(&_25$$20, "Bound parameter '", &wildcard, "' cannot be replaced because it's not in the placeholders list"); + ZEPHIR_CALL_METHOD(NULL, &_24$$20, "__construct", &_14, 8, &_25$$20); + zephir_check_call_status(); + zephir_throw_exception_debug(&_24$$20, "phalcon/Mvc/Model/Query.zep", 1417); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_array_unset(&selectBindParams, &wildcard, PH_SEPARATE); + zephir_array_unset(&selectBindTypes, &wildcard, PH_SEPARATE); + break; } - if (_30$$19) { - ZEPHIR_INIT_NVAR(&_32$$20); - ZEPHIR_CONCAT_SV(&_32$$20, " DEFAULT ", &defaultValue); - zephir_concat_self(&columnLine, &_32$$20); - } else { - ZEPHIR_INIT_NVAR(&_33$$21); - ZVAL_STRING(&_33$$21, "\""); - ZEPHIR_CALL_FUNCTION(&_34$$21, "addcslashes", &_17, 214, &defaultValue, &_33$$21); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_35$$21); - ZEPHIR_CONCAT_SVS(&_35$$21, " DEFAULT \"", &_34$$21, "\""); - zephir_concat_self(&columnLine, &_35$$21); + if (ZEPHIR_IS_LONG(&_18$$14, 277)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not supported", "phalcon/Mvc/Model/Query.zep", 1426); + return; } - } - ZEPHIR_CALL_METHOD(&_36$$16, &column, "isautoincrement", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_36$$16)) { - zephir_concat_self_str(&columnLine, SL(" AUTO_INCREMENT")); - } - ZEPHIR_CALL_METHOD(&_37$$16, &column, "isprimary", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_37$$16)) { - zephir_concat_self_str(&columnLine, SL(" PRIMARY KEY")); - } - ZEPHIR_CALL_METHOD(&_38$$16, &column, "getcomment", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_38$$16)) { - ZEPHIR_CALL_METHOD(&_39$$24, &column, "getcomment", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_40$$24); - ZEPHIR_CONCAT_SVS(&_40$$24, " COMMENT '", &_39$$24, "'"); - zephir_concat_self(&columnLine, &_40$$24); - } - zephir_array_append(&createLines, &columnLine, PH_SEPARATE, "phalcon/Db/Dialect/Mysql.zep", 222); - ZEPHIR_CALL_METHOD(NULL, &columns, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&column); - ZEPHIR_OBS_VAR(&indexes); - if (zephir_array_isset_string_fetch(&indexes, &definition, SL("indexes"), 0)) { - zephir_is_iterable(&indexes, 0, "phalcon/Db/Dialect/Mysql.zep", 248); - if (Z_TYPE_P(&indexes) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&indexes), _41$$25) - { - ZEPHIR_INIT_NVAR(&index); - ZVAL_COPY(&index, _41$$25); - ZEPHIR_CALL_METHOD(&indexName, &index, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&indexType, &index, "gettype", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_STRING(&indexName, "PRIMARY")) { - ZEPHIR_CALL_METHOD(&_44$$27, &index, "getcolumns", NULL, 0); + ZEPHIR_INIT_NVAR(&updateValue); + object_init_ex(&updateValue, phalcon_db_rawvalue_ce); + ZEPHIR_CALL_METHOD(&_26$$22, &dialect, "getsqlexpression", &_27, 0, &exprValue); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_43$$27, this_ptr, "getcolumnlist", &_45, 67, &_44$$27); + ZEPHIR_CALL_METHOD(NULL, &updateValue, "__construct", &_17, 34, &_26$$22); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_46$$27); - ZEPHIR_CONCAT_SVS(&_46$$27, "PRIMARY KEY (", &_43$$27, ")"); - zephir_get_strval(&indexSql, &_46$$27); - } else { - if (!(ZEPHIR_IS_EMPTY(&indexType))) { - ZEPHIR_CALL_METHOD(&_48$$29, &index, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_47$$29, this_ptr, "getcolumnlist", &_45, 67, &_48$$29); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_49$$29); - ZEPHIR_CONCAT_VSVSVS(&_49$$29, &indexType, " KEY `", &indexName, "` (", &_47$$29, ")"); - zephir_get_strval(&indexSql, &_49$$29); - } else { - ZEPHIR_CALL_METHOD(&_51$$30, &index, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_50$$30, this_ptr, "getcolumnlist", &_45, 67, &_51$$30); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_52$$30); - ZEPHIR_CONCAT_SVSVS(&_52$$30, "KEY `", &indexName, "` (", &_50$$30, ")"); - zephir_get_strval(&indexSql, &_52$$30); - } - } - zephir_array_append(&createLines, &indexSql, PH_SEPARATE, "phalcon/Db/Dialect/Mysql.zep", 246); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &indexes, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_42$$25, &indexes, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_42$$25)) { break; - } - ZEPHIR_CALL_METHOD(&index, &indexes, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&indexName, &index, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&indexType, &index, "gettype", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_STRING(&indexName, "PRIMARY")) { - ZEPHIR_CALL_METHOD(&_54$$32, &index, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_53$$32, this_ptr, "getcolumnlist", &_45, 67, &_54$$32); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_55$$32); - ZEPHIR_CONCAT_SVS(&_55$$32, "PRIMARY KEY (", &_53$$32, ")"); - zephir_get_strval(&indexSql, &_55$$32); - } else { - if (!(ZEPHIR_IS_EMPTY(&indexType))) { - ZEPHIR_CALL_METHOD(&_57$$34, &index, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_56$$34, this_ptr, "getcolumnlist", &_45, 67, &_57$$34); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_58$$34); - ZEPHIR_CONCAT_VSVSVS(&_58$$34, &indexType, " KEY `", &indexName, "` (", &_56$$34, ")"); - zephir_get_strval(&indexSql, &_58$$34); - } else { - ZEPHIR_CALL_METHOD(&_60$$35, &index, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_59$$35, this_ptr, "getcolumnlist", &_45, 67, &_60$$35); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_61$$35); - ZEPHIR_CONCAT_SVSVS(&_61$$35, "KEY `", &indexName, "` (", &_59$$35, ")"); - zephir_get_strval(&indexSql, &_61$$35); - } - } - zephir_array_append(&createLines, &indexSql, PH_SEPARATE, "phalcon/Db/Dialect/Mysql.zep", 246); - ZEPHIR_CALL_METHOD(NULL, &indexes, "next", NULL, 0); - zephir_check_call_status(); - } + } while(0); + + zephir_array_update_zval(&updateValues, &fieldName, &updateValue, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &fields, "next", NULL, 0); + zephir_check_call_status(); } - ZEPHIR_INIT_NVAR(&index); } - ZEPHIR_OBS_VAR(&references); - if (zephir_array_isset_string_fetch(&references, &definition, SL("references"), 0)) { - zephir_is_iterable(&references, 0, "phalcon/Db/Dialect/Mysql.zep", 270); - if (Z_TYPE_P(&references) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&references), _62$$36) - { - ZEPHIR_INIT_NVAR(&reference); - ZVAL_COPY(&reference, _62$$36); - ZEPHIR_CALL_METHOD(&_64$$37, &reference, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_66$$37, &reference, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_65$$37, this_ptr, "getcolumnlist", &_45, 67, &_66$$37); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_68$$37, &reference, "getreferencedtable", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_69$$37, &reference, "getreferencedschema", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_67$$37, this_ptr, "preparetable", NULL, 0, &_68$$37, &_69$$37); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_71$$37, &reference, "getreferencedcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_70$$37, this_ptr, "getcolumnlist", &_45, 67, &_71$$37); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_72$$37); - ZEPHIR_CONCAT_SVSVSSVSVS(&_72$$37, "CONSTRAINT `", &_64$$37, "` FOREIGN KEY (", &_65$$37, ")", " REFERENCES ", &_67$$37, " (", &_70$$37, ")"); - zephir_get_strval(&referenceSql, &_72$$37); - ZEPHIR_CALL_METHOD(&onDelete, &reference, "getondelete", NULL, 0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&onDelete))) { - ZEPHIR_INIT_NVAR(&_73$$38); - ZEPHIR_CONCAT_SV(&_73$$38, " ON DELETE ", &onDelete); - zephir_concat_self(&referenceSql, &_73$$38); - } - ZEPHIR_CALL_METHOD(&onUpdate, &reference, "getonupdate", NULL, 0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&onUpdate))) { - ZEPHIR_INIT_NVAR(&_74$$39); - ZEPHIR_CONCAT_SV(&_74$$39, " ON UPDATE ", &onUpdate); - zephir_concat_self(&referenceSql, &_74$$39); - } - zephir_array_append(&createLines, &referenceSql, PH_SEPARATE, "phalcon/Db/Dialect/Mysql.zep", 268); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &references, "rewind", NULL, 0); + ZEPHIR_INIT_NVAR(&field); + ZEPHIR_INIT_NVAR(&number); + ZEPHIR_CALL_METHOD(&records, this_ptr, "getrelatedrecords", NULL, 464, &model, &intermediate, &selectBindParams, &selectBindTypes); + zephir_check_call_status(); + if (!(zephir_fast_count_int(&records))) { + object_init_ex(return_value, phalcon_mvc_model_query_status_ce); + ZVAL_BOOL(&_28$$23, 1); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 465, &_28$$23); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_CALL_METHOD(&connection, this_ptr, "getwriteconnection", NULL, 0, &model, &intermediate, &bindParams, &bindTypes); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &connection, "begin", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &records, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_29, &records, "valid", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_29))) { + break; + } + ZEPHIR_CALL_METHOD(&record, &records, "current", &_30, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &record, "assign", NULL, 0, &updateValues); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_31$$24, &record, "update", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_31$$24))) { + ZEPHIR_CALL_METHOD(NULL, &connection, "rollback", &_32, 0); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_63$$36, &references, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_63$$36)) { - break; - } - ZEPHIR_CALL_METHOD(&reference, &references, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_75$$40, &reference, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_77$$40, &reference, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_76$$40, this_ptr, "getcolumnlist", &_45, 67, &_77$$40); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_79$$40, &reference, "getreferencedtable", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_80$$40, &reference, "getreferencedschema", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_78$$40, this_ptr, "preparetable", NULL, 0, &_79$$40, &_80$$40); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_82$$40, &reference, "getreferencedcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_81$$40, this_ptr, "getcolumnlist", &_45, 67, &_82$$40); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_83$$40); - ZEPHIR_CONCAT_SVSVSSVSVS(&_83$$40, "CONSTRAINT `", &_75$$40, "` FOREIGN KEY (", &_76$$40, ")", " REFERENCES ", &_78$$40, " (", &_81$$40, ")"); - zephir_get_strval(&referenceSql, &_83$$40); - ZEPHIR_CALL_METHOD(&onDelete, &reference, "getondelete", NULL, 0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&onDelete))) { - ZEPHIR_INIT_NVAR(&_84$$41); - ZEPHIR_CONCAT_SV(&_84$$41, " ON DELETE ", &onDelete); - zephir_concat_self(&referenceSql, &_84$$41); - } - ZEPHIR_CALL_METHOD(&onUpdate, &reference, "getonupdate", NULL, 0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&onUpdate))) { - ZEPHIR_INIT_NVAR(&_85$$42); - ZEPHIR_CONCAT_SV(&_85$$42, " ON UPDATE ", &onUpdate); - zephir_concat_self(&referenceSql, &_85$$42); - } - zephir_array_append(&createLines, &referenceSql, PH_SEPARATE, "phalcon/Db/Dialect/Mysql.zep", 268); - ZEPHIR_CALL_METHOD(NULL, &references, "next", NULL, 0); - zephir_check_call_status(); - } + object_init_ex(return_value, phalcon_mvc_model_query_status_ce); + ZVAL_BOOL(&_33$$25, 0); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 465, &_33$$25, &record); + zephir_check_call_status(); + RETURN_MM(); } - ZEPHIR_INIT_NVAR(&reference); - } - ZEPHIR_INIT_VAR(&_86); - zephir_fast_join_str(&_86, SL(",\n\t"), &createLines); - ZEPHIR_INIT_VAR(&_87); - ZEPHIR_CONCAT_VS(&_87, &_86, "\n)"); - zephir_concat_self(&sql, &_87); - if (zephir_array_isset_string(&definition, SL("options"))) { - ZEPHIR_CALL_METHOD(&_88$$43, this_ptr, "gettableoptions", NULL, 0, &definition); + ZEPHIR_CALL_METHOD(NULL, &records, "next", &_34, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_89$$43); - ZEPHIR_CONCAT_SV(&_89$$43, " ", &_88$$43); - zephir_concat_self(&sql, &_89$$43); } - RETURN_CTOR(&sql); + ZEPHIR_CALL_METHOD(NULL, &connection, "commit", NULL, 0); + zephir_check_call_status(); + object_init_ex(return_value, phalcon_mvc_model_query_status_ce); + ZVAL_BOOL(&_35, 1); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 465, &_35); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, createView) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getCallArgument) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval definition; - zval *viewName_param = NULL, *definition_param = NULL, *schemaName_param = NULL, viewSql, _0; - zval viewName, schemaName; + zval *argument_param = NULL, _0; + zval argument; zval *this_ptr = getThis(); - ZVAL_UNDEF(&viewName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&viewSql); + ZVAL_UNDEF(&argument); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&definition); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(viewName) - Z_PARAM_ARRAY(definition) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(argument) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &viewName_param, &definition_param, &schemaName_param); - if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { - zephir_get_strval(&viewName, viewName_param); - } else { - ZEPHIR_INIT_VAR(&viewName); - } - ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - zephir_get_strval(&schemaName, schemaName_param); - } + zephir_fetch_params(1, 1, 0, &argument_param); + ZEPHIR_OBS_COPY_OR_DUP(&argument, argument_param); - ZEPHIR_OBS_VAR(&viewSql); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&viewSql, &definition, SL("sql"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/Db/Dialect/Mysql.zep", 291); - return; + zephir_array_fetch_string(&_0, &argument, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1504); + if (ZEPHIR_IS_LONG(&_0, 352)) { + zephir_create_array(return_value, 1, 0); + add_assoc_stringl_ex(return_value, SL("type"), SL("all")); + RETURN_MM(); } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &viewName, &schemaName); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getexpression", NULL, 468, &argument); zephir_check_call_status(); - ZEPHIR_CONCAT_SVSV(return_value, "CREATE VIEW ", &_0, " AS ", &viewSql); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, describeColumns) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getCaseExpression) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_6 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *table_param = NULL, *schema_param = NULL, _0; - zval table, schema; + zval *expr_param = NULL, whenClauses, whenExpr, _0, *_1, _2, _18, _19, _4$$4, _5$$4, _7$$4, _9$$5, _10$$5, _12$$7, _13$$7, _14$$7, _16$$8, _17$$8; + zval expr, _3$$4, _8$$5, _11$$7, _15$$8; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_11$$7); + ZVAL_UNDEF(&_15$$8); + ZVAL_UNDEF(&whenClauses); + ZVAL_UNDEF(&whenExpr); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_18); + ZVAL_UNDEF(&_19); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&_12$$7); + ZVAL_UNDEF(&_13$$7); + ZVAL_UNDEF(&_14$$7); + ZVAL_UNDEF(&_16$$8); + ZVAL_UNDEF(&_17$$8); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(expr) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); - } else { - ZEPHIR_INIT_VAR(&table); - } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); - } else { - zephir_get_strval(&schema, schema_param); - } - - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &table, &schema); - zephir_check_call_status(); - ZEPHIR_CONCAT_SV(return_value, "SHOW FULL COLUMNS FROM ", &_0); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, describeIndexes) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *table_param = NULL, *schema_param = NULL, _0; - zval table, schema; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) - ZEND_PARSE_PARAMETERS_END(); -#endif + zephir_fetch_params(1, 1, 0, &expr_param); + ZEPHIR_OBS_COPY_OR_DUP(&expr, expr_param); - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); - } else { - ZEPHIR_INIT_VAR(&table); - } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); + ZEPHIR_INIT_VAR(&whenClauses); + array_init(&whenClauses); + zephir_array_fetch_string(&_0, &expr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1522); + zephir_is_iterable(&_0, 0, "phalcon/Mvc/Model/Query.zep", 1537); + if (Z_TYPE_P(&_0) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _1) + { + ZEPHIR_INIT_NVAR(&whenExpr); + ZVAL_COPY(&whenExpr, _1); + if (zephir_array_isset_string(&whenExpr, SL("right"))) { + ZEPHIR_INIT_NVAR(&_3$$4); + zephir_create_array(&_3$$4, 3, 0); + add_assoc_stringl_ex(&_3$$4, SL("type"), SL("when")); + zephir_array_fetch_string(&_5$$4, &whenExpr, SL("left"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1526); + ZEPHIR_CALL_METHOD(&_4$$4, this_ptr, "getexpression", &_6, 468, &_5$$4); + zephir_check_call_status(); + zephir_array_update_string(&_3$$4, SL("expr"), &_4$$4, PH_COPY | PH_SEPARATE); + zephir_array_fetch_string(&_7$$4, &whenExpr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1527); + ZEPHIR_CALL_METHOD(&_4$$4, this_ptr, "getexpression", &_6, 468, &_7$$4); + zephir_check_call_status(); + zephir_array_update_string(&_3$$4, SL("then"), &_4$$4, PH_COPY | PH_SEPARATE); + zephir_array_append(&whenClauses, &_3$$4, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1528); + } else { + ZEPHIR_INIT_NVAR(&_8$$5); + zephir_create_array(&_8$$5, 2, 0); + add_assoc_stringl_ex(&_8$$5, SL("type"), SL("else")); + zephir_array_fetch_string(&_10$$5, &whenExpr, SL("left"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1532); + ZEPHIR_CALL_METHOD(&_9$$5, this_ptr, "getexpression", &_6, 468, &_10$$5); + zephir_check_call_status(); + zephir_array_update_string(&_8$$5, SL("expr"), &_9$$5, PH_COPY | PH_SEPARATE); + zephir_array_append(&whenClauses, &_8$$5, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1533); + } + } ZEND_HASH_FOREACH_END(); } else { - zephir_get_strval(&schema, schema_param); + ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &_0, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&whenExpr, &_0, "current", NULL, 0); + zephir_check_call_status(); + if (zephir_array_isset_string(&whenExpr, SL("right"))) { + ZEPHIR_INIT_NVAR(&_11$$7); + zephir_create_array(&_11$$7, 3, 0); + add_assoc_stringl_ex(&_11$$7, SL("type"), SL("when")); + zephir_array_fetch_string(&_13$$7, &whenExpr, SL("left"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1526); + ZEPHIR_CALL_METHOD(&_12$$7, this_ptr, "getexpression", &_6, 468, &_13$$7); + zephir_check_call_status(); + zephir_array_update_string(&_11$$7, SL("expr"), &_12$$7, PH_COPY | PH_SEPARATE); + zephir_array_fetch_string(&_14$$7, &whenExpr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1527); + ZEPHIR_CALL_METHOD(&_12$$7, this_ptr, "getexpression", &_6, 468, &_14$$7); + zephir_check_call_status(); + zephir_array_update_string(&_11$$7, SL("then"), &_12$$7, PH_COPY | PH_SEPARATE); + zephir_array_append(&whenClauses, &_11$$7, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1528); + } else { + ZEPHIR_INIT_NVAR(&_15$$8); + zephir_create_array(&_15$$8, 2, 0); + add_assoc_stringl_ex(&_15$$8, SL("type"), SL("else")); + zephir_array_fetch_string(&_17$$8, &whenExpr, SL("left"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1532); + ZEPHIR_CALL_METHOD(&_16$$8, this_ptr, "getexpression", &_6, 468, &_17$$8); + zephir_check_call_status(); + zephir_array_update_string(&_15$$8, SL("expr"), &_16$$8, PH_COPY | PH_SEPARATE); + zephir_array_append(&whenClauses, &_15$$8, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1533); + } + ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); + zephir_check_call_status(); + } } - - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &table, &schema); + ZEPHIR_INIT_NVAR(&whenExpr); + zephir_create_array(return_value, 3, 0); + add_assoc_stringl_ex(return_value, SL("type"), SL("case")); + zephir_array_fetch_string(&_19, &expr, SL("left"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1539); + ZEPHIR_CALL_METHOD(&_18, this_ptr, "getexpression", &_6, 468, &_19); zephir_check_call_status(); - ZEPHIR_CONCAT_SV(return_value, "SHOW INDEXES FROM ", &_0); + zephir_array_update_string(return_value, SL("expr"), &_18, PH_COPY | PH_SEPARATE); + zephir_array_update_string(return_value, SL("when-clauses"), &whenClauses, PH_COPY | PH_SEPARATE); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, describeReferences) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getExpression) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *table_param = NULL, *schema_param = NULL; - zval table, schema, sql, _0$$3, _1$$4; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool quoting, tempNotQuoting = 0; + zval *expr_param = NULL, *quoting_param = NULL, exprType, exprLeft, exprRight, left, right, listItems, exprListItem, exprReturn, value, escapedValue, exprValue, valueParts, name, bindType, bind, _0$$5, _1$$6, _2$$8, _3$$9, _4$$10, _5$$11, _6$$12, _7$$13, _8$$14, _9$$16, _10$$17, _11$$18, _12$$19, _13$$20, _14$$21, _15$$22, _16$$23, _17$$24, _18$$25, _19$$25, _20$$26, _21$$27, _22$$28, _23$$33, _24$$33, _25$$33, _26$$33, _27$$33, _28$$34, _29$$34, _30$$34, _31$$37, _32$$37, _33$$37, _34$$38, _35$$38, _36$$38, _37$$39, _38$$39, _39$$39, _40$$40, _41$$40, _42$$40, _43$$41, _44$$41, _45$$41, _46$$42, _47$$42, _48$$42, _49$$43, _56$$43, _57$$43, _50$$44, _51$$44, _52$$45, _53$$45, _54$$46, _55$$46, _58$$47, _59$$47, _60$$48, _61$$48, _62$$49, _63$$50, _64$$51, _65$$52, _66$$53, _67$$54, _68$$55, _69$$56, _70$$57, _71$$58, _72$$59, _73$$60, _74$$61, _75$$62, _76$$63, _77$$64, _78$$65, _79$$66, _80$$66, _81$$69, _82$$69, _83$$69, _84$$70, _85$$70, *_86$$72, _87$$72, _88$$73, _89$$74; + zval expr; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&exprType); + ZVAL_UNDEF(&exprLeft); + ZVAL_UNDEF(&exprRight); + ZVAL_UNDEF(&left); + ZVAL_UNDEF(&right); + ZVAL_UNDEF(&listItems); + ZVAL_UNDEF(&exprListItem); + ZVAL_UNDEF(&exprReturn); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&escapedValue); + ZVAL_UNDEF(&exprValue); + ZVAL_UNDEF(&valueParts); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&bindType); + ZVAL_UNDEF(&bind); + ZVAL_UNDEF(&_0$$5); + ZVAL_UNDEF(&_1$$6); + ZVAL_UNDEF(&_2$$8); + ZVAL_UNDEF(&_3$$9); + ZVAL_UNDEF(&_4$$10); + ZVAL_UNDEF(&_5$$11); + ZVAL_UNDEF(&_6$$12); + ZVAL_UNDEF(&_7$$13); + ZVAL_UNDEF(&_8$$14); + ZVAL_UNDEF(&_9$$16); + ZVAL_UNDEF(&_10$$17); + ZVAL_UNDEF(&_11$$18); + ZVAL_UNDEF(&_12$$19); + ZVAL_UNDEF(&_13$$20); + ZVAL_UNDEF(&_14$$21); + ZVAL_UNDEF(&_15$$22); + ZVAL_UNDEF(&_16$$23); + ZVAL_UNDEF(&_17$$24); + ZVAL_UNDEF(&_18$$25); + ZVAL_UNDEF(&_19$$25); + ZVAL_UNDEF(&_20$$26); + ZVAL_UNDEF(&_21$$27); + ZVAL_UNDEF(&_22$$28); + ZVAL_UNDEF(&_23$$33); + ZVAL_UNDEF(&_24$$33); + ZVAL_UNDEF(&_25$$33); + ZVAL_UNDEF(&_26$$33); + ZVAL_UNDEF(&_27$$33); + ZVAL_UNDEF(&_28$$34); + ZVAL_UNDEF(&_29$$34); + ZVAL_UNDEF(&_30$$34); + ZVAL_UNDEF(&_31$$37); + ZVAL_UNDEF(&_32$$37); + ZVAL_UNDEF(&_33$$37); + ZVAL_UNDEF(&_34$$38); + ZVAL_UNDEF(&_35$$38); + ZVAL_UNDEF(&_36$$38); + ZVAL_UNDEF(&_37$$39); + ZVAL_UNDEF(&_38$$39); + ZVAL_UNDEF(&_39$$39); + ZVAL_UNDEF(&_40$$40); + ZVAL_UNDEF(&_41$$40); + ZVAL_UNDEF(&_42$$40); + ZVAL_UNDEF(&_43$$41); + ZVAL_UNDEF(&_44$$41); + ZVAL_UNDEF(&_45$$41); + ZVAL_UNDEF(&_46$$42); + ZVAL_UNDEF(&_47$$42); + ZVAL_UNDEF(&_48$$42); + ZVAL_UNDEF(&_49$$43); + ZVAL_UNDEF(&_56$$43); + ZVAL_UNDEF(&_57$$43); + ZVAL_UNDEF(&_50$$44); + ZVAL_UNDEF(&_51$$44); + ZVAL_UNDEF(&_52$$45); + ZVAL_UNDEF(&_53$$45); + ZVAL_UNDEF(&_54$$46); + ZVAL_UNDEF(&_55$$46); + ZVAL_UNDEF(&_58$$47); + ZVAL_UNDEF(&_59$$47); + ZVAL_UNDEF(&_60$$48); + ZVAL_UNDEF(&_61$$48); + ZVAL_UNDEF(&_62$$49); + ZVAL_UNDEF(&_63$$50); + ZVAL_UNDEF(&_64$$51); + ZVAL_UNDEF(&_65$$52); + ZVAL_UNDEF(&_66$$53); + ZVAL_UNDEF(&_67$$54); + ZVAL_UNDEF(&_68$$55); + ZVAL_UNDEF(&_69$$56); + ZVAL_UNDEF(&_70$$57); + ZVAL_UNDEF(&_71$$58); + ZVAL_UNDEF(&_72$$59); + ZVAL_UNDEF(&_73$$60); + ZVAL_UNDEF(&_74$$61); + ZVAL_UNDEF(&_75$$62); + ZVAL_UNDEF(&_76$$63); + ZVAL_UNDEF(&_77$$64); + ZVAL_UNDEF(&_78$$65); + ZVAL_UNDEF(&_79$$66); + ZVAL_UNDEF(&_80$$66); + ZVAL_UNDEF(&_81$$69); + ZVAL_UNDEF(&_82$$69); + ZVAL_UNDEF(&_83$$69); + ZVAL_UNDEF(&_84$$70); + ZVAL_UNDEF(&_85$$70); + ZVAL_UNDEF(&_87$$72); + ZVAL_UNDEF(&_88$$73); + ZVAL_UNDEF(&_89$$74); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) + Z_PARAM_ARRAY(expr) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) + Z_PARAM_BOOL(quoting) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); - } else { - ZEPHIR_INIT_VAR(&table); - } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); + zephir_fetch_params(1, 1, 1, &expr_param, "ing_param); + zephir_get_arrval(&expr, expr_param); + if (!quoting_param) { + quoting = 1; } else { - zephir_get_strval(&schema, schema_param); + quoting = zephir_get_boolval(quoting_param); } - ZEPHIR_INIT_VAR(&sql); - ZVAL_STRING(&sql, "SELECT DISTINCT KCU.TABLE_NAME, KCU.COLUMN_NAME, KCU.CONSTRAINT_NAME, KCU.REFERENCED_TABLE_SCHEMA, KCU.REFERENCED_TABLE_NAME, KCU.REFERENCED_COLUMN_NAME, RC.UPDATE_RULE, RC.DELETE_RULE FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS KCU LEFT JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS RC ON RC.CONSTRAINT_NAME = KCU.CONSTRAINT_NAME AND RC.CONSTRAINT_SCHEMA = KCU.CONSTRAINT_SCHEMA WHERE KCU.REFERENCED_TABLE_NAME IS NOT NULL AND "); - if (!(ZEPHIR_IS_EMPTY(&schema))) { - ZEPHIR_INIT_VAR(&_0$$3); - ZEPHIR_CONCAT_SVSVS(&_0$$3, "KCU.CONSTRAINT_SCHEMA = '", &schema, "' AND KCU.TABLE_NAME = '", &table, "'"); - zephir_concat_self(&sql, &_0$$3); - } else { - ZEPHIR_INIT_VAR(&_1$$4); - ZEPHIR_CONCAT_SVS(&_1$$4, "KCU.CONSTRAINT_SCHEMA = DATABASE() AND KCU.TABLE_NAME = '", &table, "'"); - zephir_concat_self(&sql, &_1$$4); - } - RETURN_CTOR(&sql); + ZEPHIR_INIT_VAR(&left); + ZVAL_NULL(&left); + ZEPHIR_INIT_VAR(&right); + ZVAL_NULL(&right); + ZEPHIR_OBS_VAR(&exprType); + if (zephir_array_isset_string_fetch(&exprType, &expr, SL("type"), 0)) { + tempNotQuoting = 1; + if (!ZEPHIR_IS_LONG(&exprType, 409)) { + ZEPHIR_OBS_VAR(&exprLeft); + if (zephir_array_isset_string_fetch(&exprLeft, &expr, SL("left"), 0)) { + if (tempNotQuoting) { + ZVAL_BOOL(&_0$$5, 1); + } else { + ZVAL_BOOL(&_0$$5, 0); + } + ZEPHIR_CALL_METHOD(&left, this_ptr, "getexpression", NULL, 468, &exprLeft, &_0$$5); + zephir_check_call_status(); + } + ZEPHIR_OBS_VAR(&exprRight); + if (zephir_array_isset_string_fetch(&exprRight, &expr, SL("right"), 0)) { + if (tempNotQuoting) { + ZVAL_BOOL(&_1$$6, 1); + } else { + ZVAL_BOOL(&_1$$6, 0); + } + ZEPHIR_CALL_METHOD(&right, this_ptr, "getexpression", NULL, 468, &exprRight, &_1$$6); + zephir_check_call_status(); + } + } + do { + if (ZEPHIR_IS_LONG(&exprType, '<')) { + ZEPHIR_INIT_VAR(&exprReturn); + zephir_create_array(&exprReturn, 4, 0); + add_assoc_stringl_ex(&exprReturn, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&exprReturn, SL("op"), SL("<")); + zephir_array_update_string(&exprReturn, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&exprReturn, SL("right"), &right, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_LONG(&exprType, '=')) { + ZEPHIR_INIT_VAR(&_2$$8); + zephir_create_array(&_2$$8, 4, 0); + add_assoc_stringl_ex(&_2$$8, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_2$$8, SL("op"), SL("=")); + zephir_array_update_string(&_2$$8, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_2$$8, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_2$$8); + break; + } + if (ZEPHIR_IS_LONG(&exprType, '>')) { + ZEPHIR_INIT_VAR(&_3$$9); + zephir_create_array(&_3$$9, 4, 0); + add_assoc_stringl_ex(&_3$$9, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_3$$9, SL("op"), SL(">")); + zephir_array_update_string(&_3$$9, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_3$$9, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_3$$9); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 270)) { + ZEPHIR_INIT_VAR(&_4$$10); + zephir_create_array(&_4$$10, 4, 0); + add_assoc_stringl_ex(&_4$$10, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_4$$10, SL("op"), SL("<>")); + zephir_array_update_string(&_4$$10, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_4$$10, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_4$$10); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 271)) { + ZEPHIR_INIT_VAR(&_5$$11); + zephir_create_array(&_5$$11, 4, 0); + add_assoc_stringl_ex(&_5$$11, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_5$$11, SL("op"), SL("<=")); + zephir_array_update_string(&_5$$11, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_5$$11, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_5$$11); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 272)) { + ZEPHIR_INIT_VAR(&_6$$12); + zephir_create_array(&_6$$12, 4, 0); + add_assoc_stringl_ex(&_6$$12, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_6$$12, SL("op"), SL(">=")); + zephir_array_update_string(&_6$$12, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_6$$12, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_6$$12); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 266)) { + ZEPHIR_INIT_VAR(&_7$$13); + zephir_create_array(&_7$$13, 4, 0); + add_assoc_stringl_ex(&_7$$13, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_7$$13, SL("op"), SL("AND")); + zephir_array_update_string(&_7$$13, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_7$$13, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_7$$13); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 267)) { + ZEPHIR_INIT_VAR(&_8$$14); + zephir_create_array(&_8$$14, 4, 0); + add_assoc_stringl_ex(&_8$$14, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_8$$14, SL("op"), SL("OR")); + zephir_array_update_string(&_8$$14, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_8$$14, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_8$$14); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 355)) { + ZEPHIR_CALL_METHOD(&exprReturn, this_ptr, "getqualified", NULL, 469, &expr); + zephir_check_call_status(); + break; + } + if (ZEPHIR_IS_LONG(&exprType, '+')) { + ZEPHIR_INIT_VAR(&_9$$16); + zephir_create_array(&_9$$16, 4, 0); + add_assoc_stringl_ex(&_9$$16, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_9$$16, SL("op"), SL("+")); + zephir_array_update_string(&_9$$16, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_9$$16, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_9$$16); + break; + } + if (ZEPHIR_IS_LONG(&exprType, '-')) { + ZEPHIR_INIT_VAR(&_10$$17); + zephir_create_array(&_10$$17, 4, 0); + add_assoc_stringl_ex(&_10$$17, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_10$$17, SL("op"), SL("-")); + zephir_array_update_string(&_10$$17, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_10$$17, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_10$$17); + break; + } + if (ZEPHIR_IS_LONG(&exprType, '*')) { + ZEPHIR_INIT_VAR(&_11$$18); + zephir_create_array(&_11$$18, 4, 0); + add_assoc_stringl_ex(&_11$$18, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_11$$18, SL("op"), SL("*")); + zephir_array_update_string(&_11$$18, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_11$$18, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_11$$18); + break; + } + if (ZEPHIR_IS_LONG(&exprType, '/')) { + ZEPHIR_INIT_VAR(&_12$$19); + zephir_create_array(&_12$$19, 4, 0); + add_assoc_stringl_ex(&_12$$19, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_12$$19, SL("op"), SL("/")); + zephir_array_update_string(&_12$$19, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_12$$19, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_12$$19); + break; + } + if (ZEPHIR_IS_LONG(&exprType, '%')) { + ZEPHIR_INIT_VAR(&_13$$20); + zephir_create_array(&_13$$20, 4, 0); + add_assoc_stringl_ex(&_13$$20, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_13$$20, SL("op"), SL("%")); + zephir_array_update_string(&_13$$20, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_13$$20, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_13$$20); + break; + } + if (ZEPHIR_IS_LONG(&exprType, '&')) { + ZEPHIR_INIT_VAR(&_14$$21); + zephir_create_array(&_14$$21, 4, 0); + add_assoc_stringl_ex(&_14$$21, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_14$$21, SL("op"), SL("&")); + zephir_array_update_string(&_14$$21, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_14$$21, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_14$$21); + break; + } + if (ZEPHIR_IS_LONG(&exprType, '|')) { + ZEPHIR_INIT_VAR(&_15$$22); + zephir_create_array(&_15$$22, 4, 0); + add_assoc_stringl_ex(&_15$$22, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_15$$22, SL("op"), SL("|")); + zephir_array_update_string(&_15$$22, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_15$$22, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_15$$22); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 356) || ZEPHIR_IS_LONG(&exprType, 407)) { + ZEPHIR_INIT_VAR(&_16$$23); + zephir_create_array(&_16$$23, 2, 0); + add_assoc_stringl_ex(&_16$$23, SL("type"), SL("parentheses")); + zephir_array_update_string(&_16$$23, SL("left"), &left, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_16$$23); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 367)) { + ZEPHIR_INIT_VAR(&_17$$24); + zephir_create_array(&_17$$24, 3, 0); + add_assoc_stringl_ex(&_17$$24, SL("type"), SL("unary-op")); + add_assoc_stringl_ex(&_17$$24, SL("op"), SL("-")); + zephir_array_update_string(&_17$$24, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_17$$24); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 258) || ZEPHIR_IS_LONG(&exprType, 259) || ZEPHIR_IS_LONG(&exprType, 414)) { + ZEPHIR_INIT_VAR(&_18$$25); + zephir_create_array(&_18$$25, 2, 0); + add_assoc_stringl_ex(&_18$$25, SL("type"), SL("literal")); + ZEPHIR_OBS_VAR(&_19$$25); + zephir_array_fetch_string(&_19$$25, &expr, SL("value"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1755); + zephir_array_update_string(&_18$$25, SL("value"), &_19$$25, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_18$$25); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 334)) { + ZEPHIR_INIT_VAR(&_20$$26); + zephir_create_array(&_20$$26, 2, 0); + add_assoc_stringl_ex(&_20$$26, SL("type"), SL("literal")); + add_assoc_stringl_ex(&_20$$26, SL("value"), SL("TRUE")); + ZEPHIR_CPY_WRT(&exprReturn, &_20$$26); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 335)) { + ZEPHIR_INIT_VAR(&_21$$27); + zephir_create_array(&_21$$27, 2, 0); + add_assoc_stringl_ex(&_21$$27, SL("type"), SL("literal")); + add_assoc_stringl_ex(&_21$$27, SL("value"), SL("FALSE")); + ZEPHIR_CPY_WRT(&exprReturn, &_21$$27); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 260)) { + ZEPHIR_OBS_VAR(&value); + zephir_array_fetch_string(&value, &expr, SL("value"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1776); + if (quoting) { + if (zephir_memnstr_str(&value, SL("'"), "phalcon/Mvc/Model/Query.zep", 1783)) { + ZEPHIR_INIT_VAR(&escapedValue); + phalcon_orm_singlequotes(&escapedValue, &value); + } else { + ZEPHIR_CPY_WRT(&escapedValue, &value); + } + ZEPHIR_INIT_VAR(&exprValue); + ZEPHIR_CONCAT_SVS(&exprValue, "'", &escapedValue, "'"); + } else { + ZEPHIR_CPY_WRT(&exprValue, &value); + } + ZEPHIR_INIT_VAR(&_22$$28); + zephir_create_array(&_22$$28, 2, 0); + add_assoc_stringl_ex(&_22$$28, SL("type"), SL("literal")); + zephir_array_update_string(&_22$$28, SL("value"), &exprValue, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_22$$28); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 273)) { + ZEPHIR_INIT_VAR(&_23$$33); + zephir_create_array(&_23$$33, 2, 0); + add_assoc_stringl_ex(&_23$$33, SL("type"), SL("placeholder")); + ZEPHIR_INIT_VAR(&_24$$33); + zephir_array_fetch_string(&_25$$33, &expr, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1804); + ZEPHIR_INIT_VAR(&_26$$33); + ZVAL_STRING(&_26$$33, "?"); + ZEPHIR_INIT_VAR(&_27$$33); + ZVAL_STRING(&_27$$33, ":"); + zephir_fast_str_replace(&_24$$33, &_26$$33, &_27$$33, &_25$$33); + zephir_array_update_string(&_23$$33, SL("value"), &_24$$33, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_23$$33); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 274)) { + ZEPHIR_INIT_VAR(&_28$$34); + zephir_create_array(&_28$$34, 2, 0); + add_assoc_stringl_ex(&_28$$34, SL("type"), SL("placeholder")); + zephir_array_fetch_string(&_29$$34, &expr, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1813); + ZEPHIR_INIT_VAR(&_30$$34); + ZEPHIR_CONCAT_SV(&_30$$34, ":", &_29$$34); + zephir_array_update_string(&_28$$34, SL("value"), &_30$$34, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_28$$34); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 277)) { + ZEPHIR_OBS_NVAR(&value); + zephir_array_fetch_string(&value, &expr, SL("value"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1818); + if (zephir_memnstr_str(&value, SL(":"), "phalcon/Mvc/Model/Query.zep", 1820)) { + ZEPHIR_INIT_VAR(&valueParts); + zephir_fast_explode_str(&valueParts, SL(":"), &value, LONG_MAX); + ZEPHIR_OBS_VAR(&name); + zephir_array_fetch_long(&name, &valueParts, 0, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1822); + ZEPHIR_OBS_VAR(&bindType); + zephir_array_fetch_long(&bindType, &valueParts, 1, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1823); + do { + if (ZEPHIR_IS_STRING(&bindType, "str")) { + ZEPHIR_INIT_VAR(&_31$$37); + ZVAL_LONG(&_31$$37, 2); + zephir_update_property_array(this_ptr, SL("bindTypes"), &name, &_31$$37); + ZEPHIR_INIT_VAR(&_32$$37); + zephir_create_array(&_32$$37, 2, 0); + add_assoc_stringl_ex(&_32$$37, SL("type"), SL("placeholder")); + ZEPHIR_INIT_VAR(&_33$$37); + ZEPHIR_CONCAT_SV(&_33$$37, ":", &name); + zephir_array_update_string(&_32$$37, SL("value"), &_33$$37, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_32$$37); + break; + } + if (ZEPHIR_IS_STRING(&bindType, "int")) { + ZEPHIR_INIT_VAR(&_34$$38); + ZVAL_LONG(&_34$$38, 1); + zephir_update_property_array(this_ptr, SL("bindTypes"), &name, &_34$$38); + ZEPHIR_INIT_VAR(&_35$$38); + zephir_create_array(&_35$$38, 2, 0); + add_assoc_stringl_ex(&_35$$38, SL("type"), SL("placeholder")); + ZEPHIR_INIT_VAR(&_36$$38); + ZEPHIR_CONCAT_SV(&_36$$38, ":", &name); + zephir_array_update_string(&_35$$38, SL("value"), &_36$$38, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_35$$38); + break; + } + if (ZEPHIR_IS_STRING(&bindType, "double")) { + ZEPHIR_INIT_VAR(&_37$$39); + ZVAL_LONG(&_37$$39, 32); + zephir_update_property_array(this_ptr, SL("bindTypes"), &name, &_37$$39); + ZEPHIR_INIT_VAR(&_38$$39); + zephir_create_array(&_38$$39, 2, 0); + add_assoc_stringl_ex(&_38$$39, SL("type"), SL("placeholder")); + ZEPHIR_INIT_VAR(&_39$$39); + ZEPHIR_CONCAT_SV(&_39$$39, ":", &name); + zephir_array_update_string(&_38$$39, SL("value"), &_39$$39, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_38$$39); + break; + } + if (ZEPHIR_IS_STRING(&bindType, "bool")) { + ZEPHIR_INIT_VAR(&_40$$40); + ZVAL_LONG(&_40$$40, 5); + zephir_update_property_array(this_ptr, SL("bindTypes"), &name, &_40$$40); + ZEPHIR_INIT_VAR(&_41$$40); + zephir_create_array(&_41$$40, 2, 0); + add_assoc_stringl_ex(&_41$$40, SL("type"), SL("placeholder")); + ZEPHIR_INIT_VAR(&_42$$40); + ZEPHIR_CONCAT_SV(&_42$$40, ":", &name); + zephir_array_update_string(&_41$$40, SL("value"), &_42$$40, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_41$$40); + break; + } + if (ZEPHIR_IS_STRING(&bindType, "blob")) { + ZEPHIR_INIT_VAR(&_43$$41); + ZVAL_LONG(&_43$$41, 3); + zephir_update_property_array(this_ptr, SL("bindTypes"), &name, &_43$$41); + ZEPHIR_INIT_VAR(&_44$$41); + zephir_create_array(&_44$$41, 2, 0); + add_assoc_stringl_ex(&_44$$41, SL("type"), SL("placeholder")); + ZEPHIR_INIT_VAR(&_45$$41); + ZEPHIR_CONCAT_SV(&_45$$41, ":", &name); + zephir_array_update_string(&_44$$41, SL("value"), &_45$$41, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_44$$41); + break; + } + if (ZEPHIR_IS_STRING(&bindType, "null")) { + ZEPHIR_INIT_VAR(&_46$$42); + ZVAL_LONG(&_46$$42, 0); + zephir_update_property_array(this_ptr, SL("bindTypes"), &name, &_46$$42); + ZEPHIR_INIT_VAR(&_47$$42); + zephir_create_array(&_47$$42, 2, 0); + add_assoc_stringl_ex(&_47$$42, SL("type"), SL("placeholder")); + ZEPHIR_INIT_VAR(&_48$$42); + ZEPHIR_CONCAT_SV(&_48$$42, ":", &name); + zephir_array_update_string(&_47$$42, SL("value"), &_48$$42, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_47$$42); + break; + } + if (ZEPHIR_IS_STRING(&bindType, "array") || ZEPHIR_IS_STRING(&bindType, "array-str") || ZEPHIR_IS_STRING(&bindType, "array-int")) { + ZEPHIR_OBS_VAR(&bind); + zephir_read_property(&_49$$43, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(!(zephir_array_isset_fetch(&bind, &_49$$43, &name, 0)))) { + ZEPHIR_INIT_VAR(&_50$$44); + object_init_ex(&_50$$44, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_51$$44); + ZEPHIR_CONCAT_SV(&_51$$44, "Bind value is required for array type placeholder: ", &name); + ZEPHIR_CALL_METHOD(NULL, &_50$$44, "__construct", NULL, 8, &_51$$44); + zephir_check_call_status(); + zephir_throw_exception_debug(&_50$$44, "phalcon/Mvc/Model/Query.zep", 1893); + ZEPHIR_MM_RESTORE(); + return; + } + if (UNEXPECTED(Z_TYPE_P(&bind) != IS_ARRAY)) { + ZEPHIR_INIT_VAR(&_52$$45); + object_init_ex(&_52$$45, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_53$$45); + ZEPHIR_CONCAT_SV(&_53$$45, "Bind type requires an array in placeholder: ", &name); + ZEPHIR_CALL_METHOD(NULL, &_52$$45, "__construct", NULL, 8, &_53$$45); + zephir_check_call_status(); + zephir_throw_exception_debug(&_52$$45, "phalcon/Mvc/Model/Query.zep", 1899); + ZEPHIR_MM_RESTORE(); + return; + } + if (UNEXPECTED(zephir_fast_count_int(&bind) < 1)) { + ZEPHIR_INIT_VAR(&_54$$46); + object_init_ex(&_54$$46, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_55$$46); + ZEPHIR_CONCAT_SV(&_55$$46, "At least one value must be bound in placeholder: ", &name); + ZEPHIR_CALL_METHOD(NULL, &_54$$46, "__construct", NULL, 8, &_55$$46); + zephir_check_call_status(); + zephir_throw_exception_debug(&_54$$46, "phalcon/Mvc/Model/Query.zep", 1905); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_VAR(&_56$$43); + zephir_create_array(&_56$$43, 4, 0); + add_assoc_stringl_ex(&_56$$43, SL("type"), SL("placeholder")); + ZEPHIR_INIT_VAR(&_57$$43); + ZEPHIR_CONCAT_SV(&_57$$43, ":", &name); + zephir_array_update_string(&_56$$43, SL("value"), &_57$$43, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_56$$43, SL("rawValue"), &name, PH_COPY | PH_SEPARATE); + add_assoc_long_ex(&_56$$43, SL("times"), zephir_fast_count_int(&bind)); + ZEPHIR_CPY_WRT(&exprReturn, &_56$$43); + break; + } + ZEPHIR_INIT_VAR(&_58$$47); + object_init_ex(&_58$$47, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_59$$47); + ZEPHIR_CONCAT_SV(&_59$$47, "Unknown bind type: ", &bindType); + ZEPHIR_CALL_METHOD(NULL, &_58$$47, "__construct", NULL, 8, &_59$$47); + zephir_check_call_status(); + zephir_throw_exception_debug(&_58$$47, "phalcon/Mvc/Model/Query.zep", 1920); + ZEPHIR_MM_RESTORE(); + return; + } while(0); + + } else { + ZEPHIR_INIT_VAR(&_60$$48); + zephir_create_array(&_60$$48, 2, 0); + add_assoc_stringl_ex(&_60$$48, SL("type"), SL("placeholder")); + ZEPHIR_INIT_VAR(&_61$$48); + ZEPHIR_CONCAT_SV(&_61$$48, ":", &value); + zephir_array_update_string(&_60$$48, SL("value"), &_61$$48, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_60$$48); + } + break; + } + if (ZEPHIR_IS_LONG(&exprType, 322)) { + ZEPHIR_INIT_VAR(&_62$$49); + zephir_create_array(&_62$$49, 2, 0); + add_assoc_stringl_ex(&_62$$49, SL("type"), SL("literal")); + add_assoc_stringl_ex(&_62$$49, SL("value"), SL("NULL")); + ZEPHIR_CPY_WRT(&exprReturn, &_62$$49); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 268)) { + ZEPHIR_INIT_VAR(&_63$$50); + zephir_create_array(&_63$$50, 4, 0); + add_assoc_stringl_ex(&_63$$50, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_63$$50, SL("op"), SL("LIKE")); + zephir_array_update_string(&_63$$50, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_63$$50, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_63$$50); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 351)) { + ZEPHIR_INIT_VAR(&_64$$51); + zephir_create_array(&_64$$51, 4, 0); + add_assoc_stringl_ex(&_64$$51, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_64$$51, SL("op"), SL("NOT LIKE")); + zephir_array_update_string(&_64$$51, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_64$$51, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_64$$51); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 275)) { + ZEPHIR_INIT_VAR(&_65$$52); + zephir_create_array(&_65$$52, 4, 0); + add_assoc_stringl_ex(&_65$$52, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_65$$52, SL("op"), SL("ILIKE")); + zephir_array_update_string(&_65$$52, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_65$$52, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_65$$52); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 357)) { + ZEPHIR_INIT_VAR(&_66$$53); + zephir_create_array(&_66$$53, 4, 0); + add_assoc_stringl_ex(&_66$$53, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_66$$53, SL("op"), SL("NOT ILIKE")); + zephir_array_update_string(&_66$$53, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_66$$53, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_66$$53); + break; + } + if (ZEPHIR_IS_LONG(&exprType, '!')) { + ZEPHIR_INIT_VAR(&_67$$54); + zephir_create_array(&_67$$54, 3, 0); + add_assoc_stringl_ex(&_67$$54, SL("type"), SL("unary-op")); + add_assoc_stringl_ex(&_67$$54, SL("op"), SL("NOT ")); + zephir_array_update_string(&_67$$54, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_67$$54); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 365)) { + ZEPHIR_INIT_VAR(&_68$$55); + zephir_create_array(&_68$$55, 3, 0); + add_assoc_stringl_ex(&_68$$55, SL("type"), SL("unary-op")); + add_assoc_stringl_ex(&_68$$55, SL("op"), SL(" IS NULL")); + zephir_array_update_string(&_68$$55, SL("left"), &left, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_68$$55); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 366)) { + ZEPHIR_INIT_VAR(&_69$$56); + zephir_create_array(&_69$$56, 3, 0); + add_assoc_stringl_ex(&_69$$56, SL("type"), SL("unary-op")); + add_assoc_stringl_ex(&_69$$56, SL("op"), SL(" IS NOT NULL")); + zephir_array_update_string(&_69$$56, SL("left"), &left, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_69$$56); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 315)) { + ZEPHIR_INIT_VAR(&_70$$57); + zephir_create_array(&_70$$57, 4, 0); + add_assoc_stringl_ex(&_70$$57, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_70$$57, SL("op"), SL("IN")); + zephir_array_update_string(&_70$$57, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_70$$57, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_70$$57); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 323)) { + ZEPHIR_INIT_VAR(&_71$$58); + zephir_create_array(&_71$$58, 4, 0); + add_assoc_stringl_ex(&_71$$58, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_71$$58, SL("op"), SL("NOT IN")); + zephir_array_update_string(&_71$$58, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_71$$58, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_71$$58); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 408)) { + ZEPHIR_INIT_VAR(&_72$$59); + zephir_create_array(&_72$$59, 3, 0); + add_assoc_stringl_ex(&_72$$59, SL("type"), SL("unary-op")); + add_assoc_stringl_ex(&_72$$59, SL("op"), SL("EXISTS")); + zephir_array_update_string(&_72$$59, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_72$$59); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 330)) { + ZEPHIR_INIT_VAR(&_73$$60); + zephir_create_array(&_73$$60, 3, 0); + add_assoc_stringl_ex(&_73$$60, SL("type"), SL("unary-op")); + add_assoc_stringl_ex(&_73$$60, SL("op"), SL("DISTINCT ")); + zephir_array_update_string(&_73$$60, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_73$$60); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 332)) { + ZEPHIR_INIT_VAR(&_74$$61); + zephir_create_array(&_74$$61, 4, 0); + add_assoc_stringl_ex(&_74$$61, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_74$$61, SL("op"), SL("BETWEEN NOT")); + zephir_array_update_string(&_74$$61, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_74$$61, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_74$$61); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 331)) { + ZEPHIR_INIT_VAR(&_75$$62); + zephir_create_array(&_75$$62, 4, 0); + add_assoc_stringl_ex(&_75$$62, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_75$$62, SL("op"), SL("BETWEEN")); + zephir_array_update_string(&_75$$62, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_75$$62, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_75$$62); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 276)) { + ZEPHIR_INIT_VAR(&_76$$63); + zephir_create_array(&_76$$63, 4, 0); + add_assoc_stringl_ex(&_76$$63, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_76$$63, SL("op"), SL("AGAINST")); + zephir_array_update_string(&_76$$63, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_76$$63, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_76$$63); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 333)) { + ZEPHIR_INIT_VAR(&_77$$64); + zephir_create_array(&_77$$64, 3, 0); + add_assoc_stringl_ex(&_77$$64, SL("type"), SL("cast")); + zephir_array_update_string(&_77$$64, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_77$$64, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_77$$64); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 336)) { + ZEPHIR_INIT_VAR(&_78$$65); + zephir_create_array(&_78$$65, 3, 0); + add_assoc_stringl_ex(&_78$$65, SL("type"), SL("convert")); + zephir_array_update_string(&_78$$65, SL("left"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_78$$65, SL("right"), &right, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_78$$65); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 358)) { + ZEPHIR_INIT_VAR(&_79$$66); + zephir_create_array(&_79$$66, 2, 0); + add_assoc_stringl_ex(&_79$$66, SL("type"), SL("literal")); + ZEPHIR_OBS_VAR(&_80$$66); + zephir_array_fetch_string(&_80$$66, &expr, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2096); + zephir_array_update_string(&_79$$66, SL("value"), &_80$$66, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_79$$66); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 350)) { + ZEPHIR_CALL_METHOD(&exprReturn, this_ptr, "getfunctioncall", NULL, 470, &expr); + zephir_check_call_status(); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 409)) { + ZEPHIR_CALL_METHOD(&exprReturn, this_ptr, "getcaseexpression", NULL, 471, &expr); + zephir_check_call_status(); + break; + } + if (ZEPHIR_IS_LONG(&exprType, 309)) { + ZEPHIR_INIT_VAR(&_81$$69); + zephir_create_array(&_81$$69, 2, 0); + add_assoc_stringl_ex(&_81$$69, SL("type"), SL("select")); + ZVAL_BOOL(&_83$$69, 1); + ZEPHIR_CALL_METHOD(&_82$$69, this_ptr, "_prepareselect", NULL, 460, &expr, &_83$$69); + zephir_check_call_status(); + zephir_array_update_string(&_81$$69, SL("value"), &_82$$69, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&exprReturn, &_81$$69); + break; + } + ZEPHIR_INIT_VAR(&_84$$70); + object_init_ex(&_84$$70, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_85$$70); + ZEPHIR_CONCAT_SV(&_85$$70, "Unknown expression type ", &exprType); + ZEPHIR_CALL_METHOD(NULL, &_84$$70, "__construct", NULL, 8, &_85$$70); + zephir_check_call_status(); + zephir_throw_exception_debug(&_84$$70, "phalcon/Mvc/Model/Query.zep", 2119); + ZEPHIR_MM_RESTORE(); + return; + } while(0); + + RETURN_CCTOR(&exprReturn); + } + if (zephir_array_isset_string(&expr, SL("domain"))) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getqualified", NULL, 469, &expr); + zephir_check_call_status(); + RETURN_MM(); + } + if (zephir_array_isset_long(&expr, 0)) { + ZEPHIR_INIT_VAR(&listItems); + array_init(&listItems); + zephir_is_iterable(&expr, 0, "phalcon/Mvc/Model/Query.zep", 2142); + if (Z_TYPE_P(&expr) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&expr), _86$$72) + { + ZEPHIR_INIT_NVAR(&exprListItem); + ZVAL_COPY(&exprListItem, _86$$72); + ZEPHIR_CALL_METHOD(&_88$$73, this_ptr, "getexpression", NULL, 468, &exprListItem); + zephir_check_call_status(); + zephir_array_append(&listItems, &_88$$73, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2139); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &expr, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_87$$72, &expr, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_87$$72)) { + break; + } + ZEPHIR_CALL_METHOD(&exprListItem, &expr, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_89$$74, this_ptr, "getexpression", NULL, 468, &exprListItem); + zephir_check_call_status(); + zephir_array_append(&listItems, &_89$$74, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2139); + ZEPHIR_CALL_METHOD(NULL, &expr, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&exprListItem); + zephir_create_array(return_value, 2, 0); + add_assoc_stringl_ex(return_value, SL("type"), SL("list")); + zephir_array_fast_append(return_value, &listItems); + RETURN_MM(); + } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Unknown expression", "phalcon/Mvc/Model/Query.zep", 2148); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, dropColumn) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getFunctionCall) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *columnName_param = NULL, _0; - zval tableName, schemaName, columnName; + zephir_fcall_cache_entry *_3 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS, distinct = 0; + zval *expr_param = NULL, arguments, argument, _10, *_0$$6, _1$$6, _2$$7, _4$$8, _5$$9, _6$$9, _7$$10, _8$$10, _9$$11; + zval expr, functionArgs; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&columnName); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&functionArgs); + ZVAL_UNDEF(&arguments); + ZVAL_UNDEF(&argument); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_1$$6); + ZVAL_UNDEF(&_2$$7); + ZVAL_UNDEF(&_4$$8); + ZVAL_UNDEF(&_5$$9); + ZVAL_UNDEF(&_6$$9); + ZVAL_UNDEF(&_7$$10); + ZVAL_UNDEF(&_8$$10); + ZVAL_UNDEF(&_9$$11); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_STR(columnName) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(expr) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &columnName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } - if (UNEXPECTED(Z_TYPE_P(columnName_param) != IS_STRING && Z_TYPE_P(columnName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'columnName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(columnName_param) == IS_STRING)) { - zephir_get_strval(&columnName, columnName_param); - } else { - ZEPHIR_INIT_VAR(&columnName); - } + zephir_fetch_params(1, 1, 0, &expr_param); + ZEPHIR_OBS_COPY_OR_DUP(&expr, expr_param); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVS(return_value, "ALTER TABLE ", &_0, " DROP COLUMN `", &columnName, "`"); + ZEPHIR_OBS_VAR(&arguments); + if (zephir_array_isset_string_fetch(&arguments, &expr, SL("arguments"), 0)) { + if (zephir_array_isset_string(&expr, SL("distinct"))) { + distinct = 1; + } else { + distinct = 0; + } + if (zephir_array_isset_long(&arguments, 0)) { + ZEPHIR_INIT_VAR(&functionArgs); + array_init(&functionArgs); + zephir_is_iterable(&arguments, 0, "phalcon/Mvc/Model/Query.zep", 2174); + if (Z_TYPE_P(&arguments) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&arguments), _0$$6) + { + ZEPHIR_INIT_NVAR(&argument); + ZVAL_COPY(&argument, _0$$6); + ZEPHIR_CALL_METHOD(&_2$$7, this_ptr, "getcallargument", &_3, 472, &argument); + zephir_check_call_status(); + zephir_array_append(&functionArgs, &_2$$7, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2172); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &arguments, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1$$6, &arguments, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1$$6)) { + break; + } + ZEPHIR_CALL_METHOD(&argument, &arguments, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_4$$8, this_ptr, "getcallargument", &_3, 472, &argument); + zephir_check_call_status(); + zephir_array_append(&functionArgs, &_4$$8, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2172); + ZEPHIR_CALL_METHOD(NULL, &arguments, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&argument); + } else { + ZEPHIR_INIT_VAR(&_5$$9); + zephir_create_array(&_5$$9, 1, 0); + ZEPHIR_CALL_METHOD(&_6$$9, this_ptr, "getcallargument", &_3, 472, &arguments); + zephir_check_call_status(); + zephir_array_fast_append(&_5$$9, &_6$$9); + ZEPHIR_CPY_WRT(&functionArgs, &_5$$9); + } + if (distinct) { + zephir_create_array(return_value, 4, 0); + add_assoc_stringl_ex(return_value, SL("type"), SL("functionCall")); + ZEPHIR_OBS_VAR(&_7$$10); + zephir_array_fetch_string(&_7$$10, &expr, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2184); + zephir_array_update_string(return_value, SL("name"), &_7$$10, PH_COPY | PH_SEPARATE); + zephir_array_update_string(return_value, SL("arguments"), &functionArgs, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_8$$10); + ZVAL_LONG(&_8$$10, distinct); + zephir_array_update_string(return_value, SL("distinct"), &_8$$10, PH_COPY | PH_SEPARATE); + RETURN_MM(); + } else { + zephir_create_array(return_value, 3, 0); + add_assoc_stringl_ex(return_value, SL("type"), SL("functionCall")); + ZEPHIR_OBS_VAR(&_9$$11); + zephir_array_fetch_string(&_9$$11, &expr, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2191); + zephir_array_update_string(return_value, SL("name"), &_9$$11, PH_COPY | PH_SEPARATE); + zephir_array_update_string(return_value, SL("arguments"), &functionArgs, PH_COPY | PH_SEPARATE); + RETURN_MM(); + } + } + zephir_create_array(return_value, 2, 0); + add_assoc_stringl_ex(return_value, SL("type"), SL("functionCall")); + ZEPHIR_OBS_VAR(&_10); + zephir_array_fetch_string(&_10, &expr, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2200); + zephir_array_update_string(return_value, SL("name"), &_10, PH_COPY | PH_SEPARATE); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, dropForeignKey) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getGroupClause) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_3 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName_param = NULL, _0; - zval tableName, schemaName, referenceName; + zval *group_param = NULL, groupItem, *_0$$3, _1$$3, _2$$4, _4$$5, _5$$6, _6$$6; + zval group, groupParts; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&referenceName); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&group); + ZVAL_UNDEF(&groupParts); + ZVAL_UNDEF(&groupItem); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&_6$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_STR(referenceName) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(group) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } - if (UNEXPECTED(Z_TYPE_P(referenceName_param) != IS_STRING && Z_TYPE_P(referenceName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(referenceName_param) == IS_STRING)) { - zephir_get_strval(&referenceName, referenceName_param); - } else { - ZEPHIR_INIT_VAR(&referenceName); - } + zephir_fetch_params(1, 1, 0, &group_param); + ZEPHIR_OBS_COPY_OR_DUP(&group, group_param); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVS(return_value, "ALTER TABLE ", &_0, " DROP FOREIGN KEY `", &referenceName, "`"); - RETURN_MM(); + if (zephir_array_isset_long(&group, 0)) { + ZEPHIR_INIT_VAR(&groupParts); + array_init(&groupParts); + zephir_is_iterable(&group, 0, "phalcon/Mvc/Model/Query.zep", 2220); + if (Z_TYPE_P(&group) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&group), _0$$3) + { + ZEPHIR_INIT_NVAR(&groupItem); + ZVAL_COPY(&groupItem, _0$$3); + ZEPHIR_CALL_METHOD(&_2$$4, this_ptr, "getexpression", &_3, 468, &groupItem); + zephir_check_call_status(); + zephir_array_append(&groupParts, &_2$$4, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2218); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &group, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1$$3, &group, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&groupItem, &group, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_4$$5, this_ptr, "getexpression", &_3, 468, &groupItem); + zephir_check_call_status(); + zephir_array_append(&groupParts, &_4$$5, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2218); + ZEPHIR_CALL_METHOD(NULL, &group, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&groupItem); + } else { + ZEPHIR_INIT_VAR(&_5$$6); + zephir_create_array(&_5$$6, 1, 0); + ZEPHIR_CALL_METHOD(&_6$$6, this_ptr, "getexpression", &_3, 468, &group); + zephir_check_call_status(); + zephir_array_fast_append(&_5$$6, &_6$$6); + ZEPHIR_CPY_WRT(&groupParts, &_5$$6); + } + RETURN_CTOR(&groupParts); } -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, dropIndex) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getLimitClause) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *indexName_param = NULL, _0; - zval tableName, schemaName, indexName; + zval *limitClause_param = NULL, number, offset, _0$$3, _1$$4; + zval limitClause, limit; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&indexName); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&limitClause); + ZVAL_UNDEF(&limit); + ZVAL_UNDEF(&number); + ZVAL_UNDEF(&offset); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_STR(indexName) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(limitClause) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &indexName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } - if (UNEXPECTED(Z_TYPE_P(indexName_param) != IS_STRING && Z_TYPE_P(indexName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'indexName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(indexName_param) == IS_STRING)) { - zephir_get_strval(&indexName, indexName_param); - } else { - ZEPHIR_INIT_VAR(&indexName); - } + zephir_fetch_params(1, 1, 0, &limitClause_param); + ZEPHIR_OBS_COPY_OR_DUP(&limitClause, limitClause_param); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVS(return_value, "ALTER TABLE ", &_0, " DROP INDEX `", &indexName, "`"); - RETURN_MM(); + ZEPHIR_INIT_VAR(&limit); + array_init(&limit); + ZEPHIR_OBS_VAR(&number); + if (zephir_array_isset_string_fetch(&number, &limitClause, SL("number"), 0)) { + ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "getexpression", NULL, 468, &number); + zephir_check_call_status(); + zephir_array_update_string(&limit, SL("number"), &_0$$3, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_VAR(&offset); + if (zephir_array_isset_string_fetch(&offset, &limitClause, SL("offset"), 0)) { + ZEPHIR_CALL_METHOD(&_1$$4, this_ptr, "getexpression", NULL, 468, &offset); + zephir_check_call_status(); + zephir_array_update_string(&limit, SL("offset"), &_1$$4, PH_COPY | PH_SEPARATE); + } + RETURN_CTOR(&limit); } -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, dropPrimaryKey) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getJoin) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, _0; - zval tableName, schemaName; + zval join; + zval *manager, manager_sub, *join_param = NULL, qualified, modelName, source, model, schema, _0$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&manager_sub); + ZVAL_UNDEF(&qualified); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&source); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&join); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(manager, phalcon_mvc_model_managerinterface_ce) + Z_PARAM_ARRAY(join) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &tableName_param, &schemaName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } + zephir_fetch_params(1, 2, 0, &manager, &join_param); + zephir_get_arrval(&join, join_param); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVS(return_value, "ALTER TABLE ", &_0, " DROP PRIMARY KEY"); - RETURN_MM(); + ZEPHIR_OBS_VAR(&qualified); + if (zephir_array_isset_string_fetch(&qualified, &join, SL("qualified"), 0)) { + zephir_array_fetch_string(&_0$$3, &qualified, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 2256); + if (ZEPHIR_IS_LONG(&_0$$3, 355)) { + ZEPHIR_OBS_VAR(&modelName); + zephir_array_fetch_string(&modelName, &qualified, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2257); + ZEPHIR_CALL_METHOD(&model, manager, "load", NULL, 0, &modelName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&source, &model, "getsource", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&schema, &model, "getschema", NULL, 0); + zephir_check_call_status(); + zephir_create_array(return_value, 4, 0); + zephir_array_update_string(return_value, SL("schema"), &schema, PH_COPY | PH_SEPARATE); + zephir_array_update_string(return_value, SL("source"), &source, PH_COPY | PH_SEPARATE); + zephir_array_update_string(return_value, SL("modelName"), &modelName, PH_COPY | PH_SEPARATE); + zephir_array_update_string(return_value, SL("model"), &model, PH_COPY | PH_SEPARATE); + RETURN_MM(); + } + } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted SELECT AST", "phalcon/Mvc/Model/Query.zep", 2272); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, dropTable) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getJoinType) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool ifExists; - zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, table; - zval tableName, schemaName; + zval *join_param = NULL, type, _0, _1, _2; + zval join; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&table); + ZVAL_UNDEF(&join); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(tableName) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) - Z_PARAM_BOOL(ifExists) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(join) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &tableName_param, &schemaName_param, &ifExists_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - zephir_get_strval(&schemaName, schemaName_param); - } - if (!ifExists_param) { - ifExists = 1; - } else { - if (UNEXPECTED(Z_TYPE_P(ifExists_param) != IS_TRUE && Z_TYPE_P(ifExists_param) != IS_FALSE)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be of the type bool")); - RETURN_MM_NULL(); - } - ifExists = (Z_TYPE_P(ifExists_param) == IS_TRUE); - } - - - ZEPHIR_CALL_METHOD(&table, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - if (ifExists) { - ZEPHIR_CONCAT_SV(return_value, "DROP TABLE IF EXISTS ", &table); - RETURN_MM(); - } - ZEPHIR_CONCAT_SV(return_value, "DROP TABLE ", &table); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, dropView) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool ifExists; - zval *viewName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, view; - zval viewName, schemaName; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&viewName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&view); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(viewName) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) - Z_PARAM_BOOL(ifExists) - ZEND_PARSE_PARAMETERS_END(); -#endif + zephir_fetch_params(1, 1, 0, &join_param); + zephir_get_arrval(&join, join_param); - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &viewName_param, &schemaName_param, &ifExists_param); - if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { - zephir_get_strval(&viewName, viewName_param); - } else { - ZEPHIR_INIT_VAR(&viewName); - } - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - zephir_get_strval(&schemaName, schemaName_param); - } - if (!ifExists_param) { - ifExists = 1; - } else { - if (UNEXPECTED(Z_TYPE_P(ifExists_param) != IS_TRUE && Z_TYPE_P(ifExists_param) != IS_FALSE)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be of the type bool")); - RETURN_MM_NULL(); - } - ifExists = (Z_TYPE_P(ifExists_param) == IS_TRUE); + ZEPHIR_OBS_VAR(&type); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&type, &join, SL("type"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted SELECT AST", "phalcon/Mvc/Model/Query.zep", 2283); + return; } + do { + if (ZEPHIR_IS_LONG(&type, 360)) { + RETURN_MM_STRING("INNER"); + } + if (ZEPHIR_IS_LONG(&type, 361)) { + RETURN_MM_STRING("LEFT"); + } + if (ZEPHIR_IS_LONG(&type, 362)) { + RETURN_MM_STRING("RIGHT"); + } + if (ZEPHIR_IS_LONG(&type, 363)) { + RETURN_MM_STRING("CROSS"); + } + if (ZEPHIR_IS_LONG(&type, 364)) { + RETURN_MM_STRING("FULL OUTER"); + } + } while(0); - - ZEPHIR_CALL_METHOD(&view, this_ptr, "preparetable", NULL, 0, &viewName, &schemaName); + ZEPHIR_INIT_VAR(&_0); + object_init_ex(&_0, phalcon_mvc_model_exception_ce); + zephir_read_property(&_1, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_CONCAT_SVSV(&_2, "Unknown join type ", &type, ", when preparing: ", &_1); + ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 8, &_2); zephir_check_call_status(); - if (ifExists) { - ZEPHIR_CONCAT_SV(return_value, "DROP VIEW IF EXISTS ", &view); - RETURN_MM(); - } - ZEPHIR_CONCAT_SV(return_value, "DROP VIEW ", &view); - RETURN_MM(); + zephir_throw_exception_debug(&_0, "phalcon/Mvc/Model/Query.zep", 2305); + ZEPHIR_MM_RESTORE(); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, getColumnDefinition) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getJoins) { + zend_string *_22, *_45, *_30$$21, *_49$$26, *_79$$55; + zend_ulong _21, _44, _29$$21, _48$$26, _78$$55; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_41 = NULL; + zephir_fcall_cache_entry *_3 = NULL, *_4 = NULL, *_8 = NULL, *_24 = NULL, *_50 = NULL, *_51 = NULL, *_56 = NULL, *_57 = NULL, *_64 = NULL, *_65 = NULL, *_80 = NULL, *_81 = NULL, *_92 = NULL, *_93 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *column, column_sub, columnType, columnSql, typeValues, _0$$3, _1$$3, _2$$3, _3$$5, _4$$11, _5$$15, _6$$17, _7$$18, _8$$18, _9$$18, _10$$20, _11$$20, _12$$20, _13$$22, _14$$24, _15$$24, _16$$24, _17$$26, _18$$26, _19$$26, _20$$36, _21$$36, _22$$36, _23$$40, _24$$40, _25$$40, _26$$44, _27$$46, _28$$47, _29$$49, _30$$52, _31$$52, _32$$52, _33$$56, _34$$59, _35$$59, _36$$59, value$$61, valueSql$$61, *_37$$61, _38$$61, _46$$61, _47$$61, _48$$61, _49$$61, _39$$62, _40$$62, _42$$62, _43$$63, _44$$63, _45$$63, _50$$64, _51$$64, _52$$64; + zval *select_param = NULL, __$true, models, sqlAliases, sqlAliasesModels, sqlModelsAliases, sqlAliasesModelsInstances, modelsInstances, fromModels, manager, selectJoins, joinItem, joins, joinData, schema, source, model, realModelName, completeSource, joinType, aliasExpr, alias, joinAliasName, joinExpr, fromModelName, joinAlias, joinModel, joinSource, preCondition, modelNameAlias, relation, relations, modelAlias, sqlJoin, sqlJoinItem, selectTables, tables, tableItem, _0, *_1, _2, *_19, _20, *_35, _36, _41, *_42, _43, _5$$9, _6$$9, _7$$9, _9$$11, _10$$11, _11$$11, _12$$12, _13$$14, _14$$14, _15$$14, _16$$16, _17$$16, _18$$16, _23$$18, _25$$20, _26$$21, *_27$$21, _28$$21, _37$$24, _38$$24, _39$$25, _40$$25, *_46$$26, _47$$26, _52$$31, _53$$31, _54$$31, _55$$32, *_58$$35, _59$$35, _61$$39, _66$$45, _67$$45, _68$$45, _69$$46, *_70$$49, _71$$49, _73$$53, *_76$$55, _77$$55, _82$$60, _83$$60, _84$$60, _85$$61, *_86$$64, _87$$64, _89$$68, _94$$74, _95$$74, _96$$74, _97$$75, *_98$$78, _99$$78, _101$$82; + zval select, sqlJoins, joinModels, joinSources, joinTypes, joinPreCondition, joinPrepared, _31$$22, _32$$22, _33$$23, _34$$23, _60$$39, _62$$40, _63$$40, _72$$53, _74$$54, _75$$54, _88$$68, _90$$69, _91$$69, _100$$82, _102$$83, _103$$83; zval *this_ptr = getThis(); - ZVAL_UNDEF(&column_sub); - ZVAL_UNDEF(&columnType); - ZVAL_UNDEF(&columnSql); - ZVAL_UNDEF(&typeValues); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_4$$11); - ZVAL_UNDEF(&_5$$15); - ZVAL_UNDEF(&_6$$17); - ZVAL_UNDEF(&_7$$18); - ZVAL_UNDEF(&_8$$18); - ZVAL_UNDEF(&_9$$18); - ZVAL_UNDEF(&_10$$20); - ZVAL_UNDEF(&_11$$20); - ZVAL_UNDEF(&_12$$20); - ZVAL_UNDEF(&_13$$22); - ZVAL_UNDEF(&_14$$24); - ZVAL_UNDEF(&_15$$24); - ZVAL_UNDEF(&_16$$24); - ZVAL_UNDEF(&_17$$26); - ZVAL_UNDEF(&_18$$26); - ZVAL_UNDEF(&_19$$26); - ZVAL_UNDEF(&_20$$36); - ZVAL_UNDEF(&_21$$36); - ZVAL_UNDEF(&_22$$36); - ZVAL_UNDEF(&_23$$40); - ZVAL_UNDEF(&_24$$40); - ZVAL_UNDEF(&_25$$40); - ZVAL_UNDEF(&_26$$44); - ZVAL_UNDEF(&_27$$46); - ZVAL_UNDEF(&_28$$47); - ZVAL_UNDEF(&_29$$49); - ZVAL_UNDEF(&_30$$52); - ZVAL_UNDEF(&_31$$52); - ZVAL_UNDEF(&_32$$52); - ZVAL_UNDEF(&_33$$56); - ZVAL_UNDEF(&_34$$59); - ZVAL_UNDEF(&_35$$59); - ZVAL_UNDEF(&_36$$59); - ZVAL_UNDEF(&value$$61); - ZVAL_UNDEF(&valueSql$$61); - ZVAL_UNDEF(&_38$$61); - ZVAL_UNDEF(&_46$$61); - ZVAL_UNDEF(&_47$$61); - ZVAL_UNDEF(&_48$$61); - ZVAL_UNDEF(&_49$$61); - ZVAL_UNDEF(&_39$$62); - ZVAL_UNDEF(&_40$$62); - ZVAL_UNDEF(&_42$$62); - ZVAL_UNDEF(&_43$$63); - ZVAL_UNDEF(&_44$$63); - ZVAL_UNDEF(&_45$$63); - ZVAL_UNDEF(&_50$$64); - ZVAL_UNDEF(&_51$$64); - ZVAL_UNDEF(&_52$$64); + ZVAL_UNDEF(&select); + ZVAL_UNDEF(&sqlJoins); + ZVAL_UNDEF(&joinModels); + ZVAL_UNDEF(&joinSources); + ZVAL_UNDEF(&joinTypes); + ZVAL_UNDEF(&joinPreCondition); + ZVAL_UNDEF(&joinPrepared); + ZVAL_UNDEF(&_31$$22); + ZVAL_UNDEF(&_32$$22); + ZVAL_UNDEF(&_33$$23); + ZVAL_UNDEF(&_34$$23); + ZVAL_UNDEF(&_60$$39); + ZVAL_UNDEF(&_62$$40); + ZVAL_UNDEF(&_63$$40); + ZVAL_UNDEF(&_72$$53); + ZVAL_UNDEF(&_74$$54); + ZVAL_UNDEF(&_75$$54); + ZVAL_UNDEF(&_88$$68); + ZVAL_UNDEF(&_90$$69); + ZVAL_UNDEF(&_91$$69); + ZVAL_UNDEF(&_100$$82); + ZVAL_UNDEF(&_102$$83); + ZVAL_UNDEF(&_103$$83); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&models); + ZVAL_UNDEF(&sqlAliases); + ZVAL_UNDEF(&sqlAliasesModels); + ZVAL_UNDEF(&sqlModelsAliases); + ZVAL_UNDEF(&sqlAliasesModelsInstances); + ZVAL_UNDEF(&modelsInstances); + ZVAL_UNDEF(&fromModels); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&selectJoins); + ZVAL_UNDEF(&joinItem); + ZVAL_UNDEF(&joins); + ZVAL_UNDEF(&joinData); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&source); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&realModelName); + ZVAL_UNDEF(&completeSource); + ZVAL_UNDEF(&joinType); + ZVAL_UNDEF(&aliasExpr); + ZVAL_UNDEF(&alias); + ZVAL_UNDEF(&joinAliasName); + ZVAL_UNDEF(&joinExpr); + ZVAL_UNDEF(&fromModelName); + ZVAL_UNDEF(&joinAlias); + ZVAL_UNDEF(&joinModel); + ZVAL_UNDEF(&joinSource); + ZVAL_UNDEF(&preCondition); + ZVAL_UNDEF(&modelNameAlias); + ZVAL_UNDEF(&relation); + ZVAL_UNDEF(&relations); + ZVAL_UNDEF(&modelAlias); + ZVAL_UNDEF(&sqlJoin); + ZVAL_UNDEF(&sqlJoinItem); + ZVAL_UNDEF(&selectTables); + ZVAL_UNDEF(&tables); + ZVAL_UNDEF(&tableItem); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_20); + ZVAL_UNDEF(&_36); + ZVAL_UNDEF(&_41); + ZVAL_UNDEF(&_43); + ZVAL_UNDEF(&_5$$9); + ZVAL_UNDEF(&_6$$9); + ZVAL_UNDEF(&_7$$9); + ZVAL_UNDEF(&_9$$11); + ZVAL_UNDEF(&_10$$11); + ZVAL_UNDEF(&_11$$11); + ZVAL_UNDEF(&_12$$12); + ZVAL_UNDEF(&_13$$14); + ZVAL_UNDEF(&_14$$14); + ZVAL_UNDEF(&_15$$14); + ZVAL_UNDEF(&_16$$16); + ZVAL_UNDEF(&_17$$16); + ZVAL_UNDEF(&_18$$16); + ZVAL_UNDEF(&_23$$18); + ZVAL_UNDEF(&_25$$20); + ZVAL_UNDEF(&_26$$21); + ZVAL_UNDEF(&_28$$21); + ZVAL_UNDEF(&_37$$24); + ZVAL_UNDEF(&_38$$24); + ZVAL_UNDEF(&_39$$25); + ZVAL_UNDEF(&_40$$25); + ZVAL_UNDEF(&_47$$26); + ZVAL_UNDEF(&_52$$31); + ZVAL_UNDEF(&_53$$31); + ZVAL_UNDEF(&_54$$31); + ZVAL_UNDEF(&_55$$32); + ZVAL_UNDEF(&_59$$35); + ZVAL_UNDEF(&_61$$39); + ZVAL_UNDEF(&_66$$45); + ZVAL_UNDEF(&_67$$45); + ZVAL_UNDEF(&_68$$45); + ZVAL_UNDEF(&_69$$46); + ZVAL_UNDEF(&_71$$49); + ZVAL_UNDEF(&_73$$53); + ZVAL_UNDEF(&_77$$55); + ZVAL_UNDEF(&_82$$60); + ZVAL_UNDEF(&_83$$60); + ZVAL_UNDEF(&_84$$60); + ZVAL_UNDEF(&_85$$61); + ZVAL_UNDEF(&_87$$64); + ZVAL_UNDEF(&_89$$68); + ZVAL_UNDEF(&_94$$74); + ZVAL_UNDEF(&_95$$74); + ZVAL_UNDEF(&_96$$74); + ZVAL_UNDEF(&_97$$75); + ZVAL_UNDEF(&_99$$78); + ZVAL_UNDEF(&_101$$82); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + Z_PARAM_ARRAY(select) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &column); + zephir_fetch_params(1, 1, 0, &select_param); + zephir_get_arrval(&select, select_param); - ZEPHIR_CALL_METHOD(&columnSql, this_ptr, "checkcolumntypesql", NULL, 0, column); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&columnType, this_ptr, "checkcolumntype", NULL, 0, column); - zephir_check_call_status(); - do { - if (ZEPHIR_IS_LONG(&columnType, 14)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("BIGINT")); - } - ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "getcolumnsize", NULL, 0, column); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1$$3, this_ptr, "checkcolumnunsigned", NULL, 215, column); + zephir_read_property(&_0, this_ptr, ZEND_STRL("models"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&models, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("sqlAliases"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&sqlAliases, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("sqlAliasesModels"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&sqlAliasesModels, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("sqlModelsAliases"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&sqlModelsAliases, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&sqlAliasesModelsInstances, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&modelsInstances, &_0); + ZEPHIR_CPY_WRT(&fromModels, &models); + ZEPHIR_INIT_VAR(&sqlJoins); + array_init(&sqlJoins); + ZEPHIR_INIT_VAR(&joinModels); + array_init(&joinModels); + ZEPHIR_INIT_VAR(&joinSources); + array_init(&joinSources); + ZEPHIR_INIT_VAR(&joinTypes); + array_init(&joinTypes); + ZEPHIR_INIT_VAR(&joinPreCondition); + array_init(&joinPreCondition); + ZEPHIR_INIT_VAR(&joinPrepared); + array_init(&joinPrepared); + zephir_read_property(&_0, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&manager, &_0); + ZEPHIR_OBS_VAR(&tables); + zephir_array_fetch_string(&tables, &select, SL("tables"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2341); + if (!(zephir_array_isset_long(&tables, 0))) { + ZEPHIR_INIT_VAR(&selectTables); + zephir_create_array(&selectTables, 1, 0); + zephir_array_fast_append(&selectTables, &tables); + } else { + ZEPHIR_CPY_WRT(&selectTables, &tables); + } + ZEPHIR_OBS_VAR(&joins); + zephir_array_fetch_string(&joins, &select, SL("joins"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2349); + if (!(zephir_array_isset_long(&joins, 0))) { + ZEPHIR_INIT_VAR(&selectJoins); + zephir_create_array(&selectJoins, 1, 0); + zephir_array_fast_append(&selectJoins, &joins); + } else { + ZEPHIR_CPY_WRT(&selectJoins, &joins); + } + zephir_is_iterable(&selectJoins, 0, "phalcon/Mvc/Model/Query.zep", 2500); + if (Z_TYPE_P(&selectJoins) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&selectJoins), _1) + { + ZEPHIR_INIT_NVAR(&joinItem); + ZVAL_COPY(&joinItem, _1); + ZEPHIR_CALL_METHOD(&joinData, this_ptr, "getjoin", &_3, 473, &manager, &joinItem); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_CONCAT_VV(&_2$$3, &_0$$3, &_1$$3); - zephir_concat_self(&columnSql, &_2$$3); - break; - } - if (ZEPHIR_IS_LONG(&columnType, 19)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("BIT")); - } - ZEPHIR_CALL_METHOD(&_3$$5, this_ptr, "getcolumnsize", NULL, 0, column); + ZEPHIR_OBS_NVAR(&source); + zephir_array_fetch_string(&source, &joinData, SL("source"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2363); + ZEPHIR_OBS_NVAR(&schema); + zephir_array_fetch_string(&schema, &joinData, SL("schema"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2364); + ZEPHIR_OBS_NVAR(&model); + zephir_array_fetch_string(&model, &joinData, SL("model"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2365); + ZEPHIR_OBS_NVAR(&realModelName); + zephir_array_fetch_string(&realModelName, &joinData, SL("modelName"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2366); + ZEPHIR_INIT_NVAR(&completeSource); + zephir_create_array(&completeSource, 2, 0); + zephir_array_fast_append(&completeSource, &source); + zephir_array_fast_append(&completeSource, &schema); + ZEPHIR_CALL_METHOD(&joinType, this_ptr, "getjointype", &_4, 474, &joinItem); zephir_check_call_status(); - zephir_concat_self(&columnSql, &_3$$5); - break; - } - if (ZEPHIR_IS_LONG(&columnType, 11)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("BLOB")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 8)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("TINYINT(1)")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 5)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("CHAR")); + ZEPHIR_OBS_NVAR(&aliasExpr); + if (zephir_array_isset_string_fetch(&aliasExpr, &joinItem, SL("alias"), 0)) { + ZEPHIR_OBS_NVAR(&alias); + zephir_array_fetch_string(&alias, &aliasExpr, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2378); + if (UNEXPECTED(zephir_array_isset(&joinModels, &alias))) { + ZEPHIR_INIT_NVAR(&_5$$9); + object_init_ex(&_5$$9, phalcon_mvc_model_exception_ce); + zephir_read_property(&_6$$9, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_7$$9); + ZEPHIR_CONCAT_SVSV(&_7$$9, "Cannot use '", &alias, "' as join alias because it was already used, when preparing: ", &_6$$9); + ZEPHIR_CALL_METHOD(NULL, &_5$$9, "__construct", &_8, 8, &_7$$9); + zephir_check_call_status(); + zephir_throw_exception_debug(&_5$$9, "phalcon/Mvc/Model/Query.zep", 2386); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_array_append(&completeSource, &alias, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2392); + zephir_array_update_zval(&joinTypes, &alias, &joinType, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliases, &alias, &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&joinModels, &alias, &realModelName, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlModelsAliases, &realModelName, &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliasesModels, &alias, &realModelName, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliasesModelsInstances, &alias, &model, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&models, &realModelName, &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&joinSources, &alias, &completeSource, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&joinPrepared, &alias, &joinItem, PH_COPY | PH_SEPARATE); + } else { + if (UNEXPECTED(zephir_array_isset(&joinModels, &realModelName))) { + ZEPHIR_INIT_NVAR(&_9$$11); + object_init_ex(&_9$$11, phalcon_mvc_model_exception_ce); + zephir_read_property(&_10$$11, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_11$$11); + ZEPHIR_CONCAT_SVSV(&_11$$11, "Cannot use '", &realModelName, "' as join alias because it was already used, when preparing: ", &_10$$11); + ZEPHIR_CALL_METHOD(NULL, &_9$$11, "__construct", &_8, 8, &_11$$11); + zephir_check_call_status(); + zephir_throw_exception_debug(&_9$$11, "phalcon/Mvc/Model/Query.zep", 2445); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_array_update_zval(&joinTypes, &realModelName, &joinType, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliases, &realModelName, &source, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&joinModels, &realModelName, &source, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlModelsAliases, &realModelName, &realModelName, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliasesModels, &realModelName, &realModelName, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliasesModelsInstances, &realModelName, &model, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&models, &realModelName, &source, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&joinSources, &realModelName, &completeSource, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&joinPrepared, &realModelName, &joinItem, PH_COPY | PH_SEPARATE); } - ZEPHIR_CALL_METHOD(&_4$$11, this_ptr, "getcolumnsize", NULL, 0, column); + zephir_array_update_zval(&modelsInstances, &realModelName, &model, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &selectJoins, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &selectJoins, "valid", NULL, 0); zephir_check_call_status(); - zephir_concat_self(&columnSql, &_4$$11); - break; - } - if (ZEPHIR_IS_LONG(&columnType, 1)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("DATE")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 4)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("DATETIME")); + if (!zend_is_true(&_2)) { + break; } - ZEPHIR_CALL_METHOD(&_5$$15, column, "getsize", NULL, 0); + ZEPHIR_CALL_METHOD(&joinItem, &selectJoins, "current", NULL, 0); zephir_check_call_status(); - if (ZEPHIR_GT_LONG(&_5$$15, 0)) { - ZEPHIR_CALL_METHOD(&_6$$17, this_ptr, "getcolumnsize", NULL, 0, column); + ZEPHIR_CALL_METHOD(&joinData, this_ptr, "getjoin", &_3, 473, &manager, &joinItem); zephir_check_call_status(); - zephir_concat_self(&columnSql, &_6$$17); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 3)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("DECIMAL")); - } - ZEPHIR_CALL_METHOD(&_7$$18, this_ptr, "getcolumnsizeandscale", NULL, 0, column); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_8$$18, this_ptr, "checkcolumnunsigned", NULL, 215, column); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_9$$18); - ZEPHIR_CONCAT_VV(&_9$$18, &_7$$18, &_8$$18); - zephir_concat_self(&columnSql, &_9$$18); - break; - } - if (ZEPHIR_IS_LONG(&columnType, 9)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("DOUBLE")); - } - ZEPHIR_CALL_METHOD(&_10$$20, this_ptr, "checkcolumnsizeandscale", NULL, 216, column); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_11$$20, this_ptr, "checkcolumnunsigned", NULL, 215, column); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_12$$20); - ZEPHIR_CONCAT_VV(&_12$$20, &_10$$20, &_11$$20); - zephir_concat_self(&columnSql, &_12$$20); - break; - } - if (ZEPHIR_IS_LONG(&columnType, 18)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("ENUM")); - } - ZEPHIR_CALL_METHOD(&_13$$22, this_ptr, "getcolumnsize", NULL, 0, column); + ZEPHIR_OBS_NVAR(&source); + zephir_array_fetch_string(&source, &joinData, SL("source"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2363); + ZEPHIR_OBS_NVAR(&schema); + zephir_array_fetch_string(&schema, &joinData, SL("schema"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2364); + ZEPHIR_OBS_NVAR(&model); + zephir_array_fetch_string(&model, &joinData, SL("model"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2365); + ZEPHIR_OBS_NVAR(&realModelName); + zephir_array_fetch_string(&realModelName, &joinData, SL("modelName"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2366); + ZEPHIR_INIT_NVAR(&_12$$12); + zephir_create_array(&_12$$12, 2, 0); + zephir_array_fast_append(&_12$$12, &source); + zephir_array_fast_append(&_12$$12, &schema); + ZEPHIR_CPY_WRT(&completeSource, &_12$$12); + ZEPHIR_CALL_METHOD(&joinType, this_ptr, "getjointype", &_4, 474, &joinItem); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&aliasExpr); + if (zephir_array_isset_string_fetch(&aliasExpr, &joinItem, SL("alias"), 0)) { + ZEPHIR_OBS_NVAR(&alias); + zephir_array_fetch_string(&alias, &aliasExpr, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2378); + if (UNEXPECTED(zephir_array_isset(&joinModels, &alias))) { + ZEPHIR_INIT_NVAR(&_13$$14); + object_init_ex(&_13$$14, phalcon_mvc_model_exception_ce); + zephir_read_property(&_14$$14, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_15$$14); + ZEPHIR_CONCAT_SVSV(&_15$$14, "Cannot use '", &alias, "' as join alias because it was already used, when preparing: ", &_14$$14); + ZEPHIR_CALL_METHOD(NULL, &_13$$14, "__construct", &_8, 8, &_15$$14); + zephir_check_call_status(); + zephir_throw_exception_debug(&_13$$14, "phalcon/Mvc/Model/Query.zep", 2386); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_array_append(&completeSource, &alias, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2392); + zephir_array_update_zval(&joinTypes, &alias, &joinType, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliases, &alias, &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&joinModels, &alias, &realModelName, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlModelsAliases, &realModelName, &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliasesModels, &alias, &realModelName, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliasesModelsInstances, &alias, &model, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&models, &realModelName, &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&joinSources, &alias, &completeSource, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&joinPrepared, &alias, &joinItem, PH_COPY | PH_SEPARATE); + } else { + if (UNEXPECTED(zephir_array_isset(&joinModels, &realModelName))) { + ZEPHIR_INIT_NVAR(&_16$$16); + object_init_ex(&_16$$16, phalcon_mvc_model_exception_ce); + zephir_read_property(&_17$$16, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_18$$16); + ZEPHIR_CONCAT_SVSV(&_18$$16, "Cannot use '", &realModelName, "' as join alias because it was already used, when preparing: ", &_17$$16); + ZEPHIR_CALL_METHOD(NULL, &_16$$16, "__construct", &_8, 8, &_18$$16); + zephir_check_call_status(); + zephir_throw_exception_debug(&_16$$16, "phalcon/Mvc/Model/Query.zep", 2445); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_array_update_zval(&joinTypes, &realModelName, &joinType, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliases, &realModelName, &source, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&joinModels, &realModelName, &source, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlModelsAliases, &realModelName, &realModelName, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliasesModels, &realModelName, &realModelName, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliasesModelsInstances, &realModelName, &model, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&models, &realModelName, &source, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&joinSources, &realModelName, &completeSource, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&joinPrepared, &realModelName, &joinItem, PH_COPY | PH_SEPARATE); + } + zephir_array_update_zval(&modelsInstances, &realModelName, &model, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &selectJoins, "next", NULL, 0); zephir_check_call_status(); - zephir_concat_self(&columnSql, &_13$$22); - break; } - if (ZEPHIR_IS_LONG(&columnType, 7)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("FLOAT")); + } + ZEPHIR_INIT_NVAR(&joinItem); + zephir_update_property_zval(this_ptr, ZEND_STRL("models"), &models); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliases"), &sqlAliases); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliasesModels"), &sqlAliasesModels); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlModelsAliases"), &sqlModelsAliases); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), &sqlAliasesModelsInstances); + zephir_update_property_zval(this_ptr, ZEND_STRL("modelsInstances"), &modelsInstances); + zephir_is_iterable(&joinPrepared, 0, "phalcon/Mvc/Model/Query.zep", 2520); + if (Z_TYPE_P(&joinPrepared) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&joinPrepared), _21, _22, _19) + { + ZEPHIR_INIT_NVAR(&joinAliasName); + if (_22 != NULL) { + ZVAL_STR_COPY(&joinAliasName, _22); + } else { + ZVAL_LONG(&joinAliasName, _21); } - ZEPHIR_CALL_METHOD(&_14$$24, this_ptr, "checkcolumnsizeandscale", NULL, 216, column); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_15$$24, this_ptr, "checkcolumnunsigned", NULL, 215, column); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_16$$24); - ZEPHIR_CONCAT_VV(&_16$$24, &_14$$24, &_15$$24); - zephir_concat_self(&columnSql, &_16$$24); - break; - } - if (ZEPHIR_IS_LONG(&columnType, 0)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("INT")); + ZEPHIR_INIT_NVAR(&joinItem); + ZVAL_COPY(&joinItem, _19); + ZEPHIR_OBS_NVAR(&joinExpr); + if (zephir_array_isset_string_fetch(&joinExpr, &joinItem, SL("conditions"), 0)) { + ZEPHIR_CALL_METHOD(&_23$$18, this_ptr, "getexpression", &_24, 468, &joinExpr); + zephir_check_call_status(); + zephir_array_update_zval(&joinPreCondition, &joinAliasName, &_23$$18, PH_COPY | PH_SEPARATE); } - ZEPHIR_CALL_METHOD(&_17$$26, this_ptr, "getcolumnsize", NULL, 0, column); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_18$$26, this_ptr, "checkcolumnunsigned", NULL, 215, column); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &joinPrepared, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_20, &joinPrepared, "valid", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_19$$26); - ZEPHIR_CONCAT_VV(&_19$$26, &_17$$26, &_18$$26); - zephir_concat_self(&columnSql, &_19$$26); - break; - } - if (ZEPHIR_IS_LONG(&columnType, 15)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("JSON")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 13)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("LONGBLOB")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 24)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("LONGTEXT")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 12)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("MEDIUMBLOB")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 21)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("MEDIUMINT")); + if (!zend_is_true(&_20)) { + break; } - ZEPHIR_CALL_METHOD(&_20$$36, this_ptr, "getcolumnsize", NULL, 0, column); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_21$$36, this_ptr, "checkcolumnunsigned", NULL, 215, column); + ZEPHIR_CALL_METHOD(&joinAliasName, &joinPrepared, "key", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_22$$36); - ZEPHIR_CONCAT_VV(&_22$$36, &_20$$36, &_21$$36); - zephir_concat_self(&columnSql, &_22$$36); - break; - } - if (ZEPHIR_IS_LONG(&columnType, 23)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("MEDIUMTEXT")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 22)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("SMALLINT")); - } - ZEPHIR_CALL_METHOD(&_23$$40, this_ptr, "getcolumnsize", NULL, 0, column); + ZEPHIR_CALL_METHOD(&joinItem, &joinPrepared, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_24$$40, this_ptr, "checkcolumnunsigned", NULL, 215, column); + ZEPHIR_OBS_NVAR(&joinExpr); + if (zephir_array_isset_string_fetch(&joinExpr, &joinItem, SL("conditions"), 0)) { + ZEPHIR_CALL_METHOD(&_25$$20, this_ptr, "getexpression", &_24, 468, &joinExpr); + zephir_check_call_status(); + zephir_array_update_zval(&joinPreCondition, &joinAliasName, &_25$$20, PH_COPY | PH_SEPARATE); + } + ZEPHIR_CALL_METHOD(NULL, &joinPrepared, "next", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_25$$40); - ZEPHIR_CONCAT_VV(&_25$$40, &_23$$40, &_24$$40); - zephir_concat_self(&columnSql, &_25$$40); - break; - } - if (ZEPHIR_IS_LONG(&columnType, 6)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("TEXT")); - } - break; } - if (ZEPHIR_IS_LONG(&columnType, 20)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("TIME")); - } - ZEPHIR_CALL_METHOD(&_26$$44, column, "getsize", NULL, 0); + } + ZEPHIR_INIT_NVAR(&joinItem); + ZEPHIR_INIT_NVAR(&joinAliasName); + zephir_read_property(&_0, this_ptr, ZEND_STRL("enableImplicitJoins"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_0))) { + ZEPHIR_INIT_VAR(&_26$$21); + zephir_is_iterable(&joinPrepared, 0, "phalcon/Mvc/Model/Query.zep", 2532); + if (Z_TYPE_P(&joinPrepared) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&joinPrepared), _29$$21, _30$$21, _27$$21) + { + ZEPHIR_INIT_NVAR(&joinAliasName); + if (_30$$21 != NULL) { + ZVAL_STR_COPY(&joinAliasName, _30$$21); + } else { + ZVAL_LONG(&joinAliasName, _29$$21); + } + ZEPHIR_INIT_NVAR(&_26$$21); + ZVAL_COPY(&_26$$21, _27$$21); + ZEPHIR_OBS_NVAR(&joinType); + zephir_array_fetch(&joinType, &joinTypes, &joinAliasName, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2522); + ZEPHIR_OBS_NVAR(&joinSource); + zephir_array_fetch(&joinSource, &joinSources, &joinAliasName, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2523); + ZEPHIR_OBS_NVAR(&preCondition); + zephir_array_fetch(&preCondition, &joinPreCondition, &joinAliasName, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2524); + ZEPHIR_INIT_NVAR(&_31$$22); + zephir_create_array(&_31$$22, 3, 0); + zephir_array_update_string(&_31$$22, SL("type"), &joinType, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_31$$22, SL("source"), &joinSource, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_32$$22); + zephir_create_array(&_32$$22, 1, 0); + zephir_array_fast_append(&_32$$22, &preCondition); + zephir_array_update_string(&_31$$22, SL("conditions"), &_32$$22, PH_COPY | PH_SEPARATE); + zephir_array_append(&sqlJoins, &_31$$22, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2529); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &joinPrepared, "rewind", NULL, 0); zephir_check_call_status(); - if (ZEPHIR_GT_LONG(&_26$$44, 0)) { - ZEPHIR_CALL_METHOD(&_27$$46, this_ptr, "getcolumnsize", NULL, 0, column); + while (1) { + ZEPHIR_CALL_METHOD(&_28$$21, &joinPrepared, "valid", NULL, 0); zephir_check_call_status(); - zephir_concat_self(&columnSql, &_27$$46); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 17)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("TIMESTAMP")); - } - ZEPHIR_CALL_METHOD(&_28$$47, column, "getsize", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_GT_LONG(&_28$$47, 0)) { - ZEPHIR_CALL_METHOD(&_29$$49, this_ptr, "getcolumnsize", NULL, 0, column); + if (!zend_is_true(&_28$$21)) { + break; + } + ZEPHIR_CALL_METHOD(&joinAliasName, &joinPrepared, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_26$$21, &joinPrepared, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&joinType); + zephir_array_fetch(&joinType, &joinTypes, &joinAliasName, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2522); + ZEPHIR_OBS_NVAR(&joinSource); + zephir_array_fetch(&joinSource, &joinSources, &joinAliasName, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2523); + ZEPHIR_OBS_NVAR(&preCondition); + zephir_array_fetch(&preCondition, &joinPreCondition, &joinAliasName, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2524); + ZEPHIR_INIT_NVAR(&_33$$23); + zephir_create_array(&_33$$23, 3, 0); + zephir_array_update_string(&_33$$23, SL("type"), &joinType, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_33$$23, SL("source"), &joinSource, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_34$$23); + zephir_create_array(&_34$$23, 1, 0); + zephir_array_fast_append(&_34$$23, &preCondition); + zephir_array_update_string(&_33$$23, SL("conditions"), &_34$$23, PH_COPY | PH_SEPARATE); + zephir_array_append(&sqlJoins, &_33$$23, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2529); + ZEPHIR_CALL_METHOD(NULL, &joinPrepared, "next", NULL, 0); zephir_check_call_status(); - zephir_concat_self(&columnSql, &_29$$49); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 10)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("TINYBLOB")); } - break; } - if (ZEPHIR_IS_LONG(&columnType, 26)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("TINYINT")); - } - ZEPHIR_CALL_METHOD(&_30$$52, this_ptr, "getcolumnsize", NULL, 0, column); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_31$$52, this_ptr, "checkcolumnunsigned", NULL, 215, column); + ZEPHIR_INIT_NVAR(&_26$$21); + ZEPHIR_INIT_NVAR(&joinAliasName); + RETURN_CTOR(&sqlJoins); + } + ZEPHIR_INIT_NVAR(&fromModels); + array_init(&fromModels); + zephir_is_iterable(&selectTables, 0, "phalcon/Mvc/Model/Query.zep", 2547); + if (Z_TYPE_P(&selectTables) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&selectTables), _35) + { + ZEPHIR_INIT_NVAR(&tableItem); + ZVAL_COPY(&tableItem, _35); + zephir_array_fetch_string(&_37$$24, &tableItem, SL("qualifiedName"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 2541); + ZEPHIR_OBS_NVAR(&_38$$24); + zephir_array_fetch_string(&_38$$24, &_37$$24, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2541); + zephir_array_update_zval(&fromModels, &_38$$24, &__$true, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &selectTables, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_36, &selectTables, "valid", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_32$$52); - ZEPHIR_CONCAT_VV(&_32$$52, &_30$$52, &_31$$52); - zephir_concat_self(&columnSql, &_32$$52); - break; - } - if (ZEPHIR_IS_LONG(&columnType, 25)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("TINYTEXT")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 2)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("VARCHAR")); + if (!zend_is_true(&_36)) { + break; } - ZEPHIR_CALL_METHOD(&_33$$56, this_ptr, "getcolumnsize", NULL, 0, column); - zephir_check_call_status(); - zephir_concat_self(&columnSql, &_33$$56); - break; - } - if (UNEXPECTED(ZEPHIR_IS_EMPTY(&columnSql))) { - ZEPHIR_INIT_VAR(&_34$$59); - object_init_ex(&_34$$59, phalcon_db_exception_ce); - ZEPHIR_CALL_METHOD(&_35$$59, column, "getname", NULL, 0); + ZEPHIR_CALL_METHOD(&tableItem, &selectTables, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_36$$59); - ZEPHIR_CONCAT_SV(&_36$$59, "Unrecognized MySQL data type at column ", &_35$$59); - ZEPHIR_CALL_METHOD(NULL, &_34$$59, "__construct", NULL, 8, &_36$$59); + zephir_array_fetch_string(&_39$$25, &tableItem, SL("qualifiedName"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 2541); + ZEPHIR_OBS_NVAR(&_40$$25); + zephir_array_fetch_string(&_40$$25, &_39$$25, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2541); + zephir_array_update_zval(&fromModels, &_40$$25, &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &selectTables, "next", NULL, 0); zephir_check_call_status(); - zephir_throw_exception_debug(&_34$$59, "phalcon/Db/Dialect/Mysql.zep", 635); - ZEPHIR_MM_RESTORE(); - return; } - ZEPHIR_CALL_METHOD(&typeValues, column, "gettypevalues", NULL, 0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&typeValues))) { - if (Z_TYPE_P(&typeValues) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&valueSql$$61); - ZVAL_STRING(&valueSql$$61, ""); - zephir_is_iterable(&typeValues, 0, "phalcon/Db/Dialect/Mysql.zep", 649); - if (Z_TYPE_P(&typeValues) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&typeValues), _37$$61) - { - ZEPHIR_INIT_NVAR(&value$$61); - ZVAL_COPY(&value$$61, _37$$61); - ZEPHIR_INIT_NVAR(&_39$$62); - ZVAL_STRING(&_39$$62, "\""); - ZEPHIR_CALL_FUNCTION(&_40$$62, "addcslashes", &_41, 214, &value$$61, &_39$$62); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_42$$62); - ZEPHIR_CONCAT_SVS(&_42$$62, "\"", &_40$$62, "\", "); - zephir_concat_self(&valueSql$$61, &_42$$62); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &typeValues, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_38$$61, &typeValues, "valid", NULL, 0); + } + ZEPHIR_INIT_NVAR(&tableItem); + ZEPHIR_INIT_VAR(&_41); + zephir_is_iterable(&fromModels, 0, "phalcon/Mvc/Model/Query.zep", 2667); + if (Z_TYPE_P(&fromModels) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&fromModels), _44, _45, _42) + { + ZEPHIR_INIT_NVAR(&fromModelName); + if (_45 != NULL) { + ZVAL_STR_COPY(&fromModelName, _45); + } else { + ZVAL_LONG(&fromModelName, _44); + } + ZEPHIR_INIT_NVAR(&_41); + ZVAL_COPY(&_41, _42); + zephir_is_iterable(&joinModels, 0, "phalcon/Mvc/Model/Query.zep", 2665); + if (Z_TYPE_P(&joinModels) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&joinModels), _48$$26, _49$$26, _46$$26) + { + ZEPHIR_INIT_NVAR(&joinAlias); + if (_49$$26 != NULL) { + ZVAL_STR_COPY(&joinAlias, _49$$26); + } else { + ZVAL_LONG(&joinAlias, _48$$26); + } + ZEPHIR_INIT_NVAR(&joinModel); + ZVAL_COPY(&joinModel, _46$$26); + ZEPHIR_OBS_NVAR(&joinSource); + zephir_array_fetch(&joinSource, &joinSources, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2552); + ZEPHIR_OBS_NVAR(&joinType); + zephir_array_fetch(&joinType, &joinTypes, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2557); + ZEPHIR_OBS_NVAR(&preCondition); + if (!(zephir_array_isset_fetch(&preCondition, &joinPreCondition, &joinAlias, 0))) { + ZEPHIR_OBS_NVAR(&modelNameAlias); + zephir_array_fetch(&modelNameAlias, &sqlAliasesModels, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2566); + ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationbyalias", &_50, 0, &fromModelName, &modelNameAlias); zephir_check_call_status(); - if (!zend_is_true(&_38$$61)) { - break; + if (ZEPHIR_IS_FALSE_IDENTICAL(&relation)) { + ZEPHIR_CALL_METHOD(&relations, &manager, "getrelationsbetween", &_51, 0, &fromModelName, &modelNameAlias); + zephir_check_call_status(); + if (Z_TYPE_P(&relations) == IS_ARRAY) { + if (UNEXPECTED(zephir_fast_count_int(&relations) != 1)) { + ZEPHIR_INIT_NVAR(&_52$$31); + object_init_ex(&_52$$31, phalcon_mvc_model_exception_ce); + zephir_read_property(&_53$$31, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_54$$31); + ZEPHIR_CONCAT_SVSVSV(&_54$$31, "There is more than one relation between models '", &fromModelName, "' and '", &joinModel, "', the join must be done using an alias, when preparing: ", &_53$$31); + ZEPHIR_CALL_METHOD(NULL, &_52$$31, "__construct", &_8, 8, &_54$$31); + zephir_check_call_status(); + zephir_throw_exception_debug(&_52$$31, "phalcon/Mvc/Model/Query.zep", 2592); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_OBS_NVAR(&relation); + zephir_array_fetch_long(&relation, &relations, 0, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2598); + } } - ZEPHIR_CALL_METHOD(&value$$61, &typeValues, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_43$$63); - ZVAL_STRING(&_43$$63, "\""); - ZEPHIR_CALL_FUNCTION(&_44$$63, "addcslashes", &_41, 214, &value$$61, &_43$$63); + if (Z_TYPE_P(&relation) == IS_OBJECT) { + ZEPHIR_OBS_NVAR(&modelAlias); + zephir_array_fetch(&modelAlias, &sqlModelsAliases, &fromModelName, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2609); + ZEPHIR_CALL_METHOD(&_55$$32, &relation, "isthrough", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_45$$63); - ZEPHIR_CONCAT_SVS(&_45$$63, "\"", &_44$$63, "\", "); - zephir_concat_self(&valueSql$$61, &_45$$63); - ZEPHIR_CALL_METHOD(NULL, &typeValues, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value$$61); - ZVAL_LONG(&_46$$61, 0); - ZVAL_LONG(&_47$$61, -2); - ZEPHIR_INIT_VAR(&_48$$61); - zephir_substr(&_48$$61, &valueSql$$61, 0 , -2 , 0); - ZEPHIR_INIT_VAR(&_49$$61); - ZEPHIR_CONCAT_SVS(&_49$$61, "(", &_48$$61, ")"); - zephir_concat_self(&columnSql, &_49$$61); + if (!(zephir_is_true(&_55$$32))) { + ZEPHIR_CALL_METHOD(&sqlJoin, this_ptr, "getsinglejoin", &_56, 475, &joinType, &joinSource, &modelAlias, &joinAlias, &relation); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(&sqlJoin, this_ptr, "getmultijoin", &_57, 476, &joinType, &joinSource, &modelAlias, &joinAlias, &relation); + zephir_check_call_status(); + } + if (zephir_array_isset_long(&sqlJoin, 0)) { + zephir_is_iterable(&sqlJoin, 0, "phalcon/Mvc/Model/Query.zep", 2639); + if (Z_TYPE_P(&sqlJoin) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&sqlJoin), _58$$35) + { + ZEPHIR_INIT_NVAR(&sqlJoinItem); + ZVAL_COPY(&sqlJoinItem, _58$$35); + zephir_array_append(&sqlJoins, &sqlJoinItem, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2637); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &sqlJoin, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_59$$35, &sqlJoin, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_59$$35)) { + break; + } + ZEPHIR_CALL_METHOD(&sqlJoinItem, &sqlJoin, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_append(&sqlJoins, &sqlJoinItem, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2637); + ZEPHIR_CALL_METHOD(NULL, &sqlJoin, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&sqlJoinItem); + } else { + zephir_array_append(&sqlJoins, &sqlJoin, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2640); + } + } else { + ZEPHIR_INIT_NVAR(&_60$$39); + zephir_create_array(&_60$$39, 3, 0); + zephir_array_update_string(&_60$$39, SL("type"), &joinType, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_60$$39, SL("source"), &joinSource, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_61$$39); + array_init(&_61$$39); + zephir_array_update_string(&_60$$39, SL("conditions"), &_61$$39, PH_COPY | PH_SEPARATE); + zephir_array_append(&sqlJoins, &_60$$39, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2651); + } + } else { + ZEPHIR_INIT_NVAR(&_62$$40); + zephir_create_array(&_62$$40, 3, 0); + zephir_array_update_string(&_62$$40, SL("type"), &joinType, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_62$$40, SL("source"), &joinSource, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_63$$40); + zephir_create_array(&_63$$40, 1, 0); + zephir_array_fast_append(&_63$$40, &preCondition); + zephir_array_update_string(&_62$$40, SL("conditions"), &_63$$40, PH_COPY | PH_SEPARATE); + zephir_array_append(&sqlJoins, &_62$$40, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2662); + } + } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_INIT_VAR(&_50$$64); - ZVAL_STRING(&_50$$64, "\""); - ZEPHIR_CALL_FUNCTION(&_51$$64, "addcslashes", &_41, 214, &typeValues, &_50$$64); + ZEPHIR_CALL_METHOD(NULL, &joinModels, "rewind", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_52$$64); - ZEPHIR_CONCAT_SVS(&_52$$64, "(\"", &_51$$64, "\")"); - zephir_concat_self(&columnSql, &_52$$64); + while (1) { + ZEPHIR_CALL_METHOD(&_47$$26, &joinModels, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_47$$26)) { + break; + } + ZEPHIR_CALL_METHOD(&joinAlias, &joinModels, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&joinModel, &joinModels, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&joinSource); + zephir_array_fetch(&joinSource, &joinSources, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2552); + ZEPHIR_OBS_NVAR(&joinType); + zephir_array_fetch(&joinType, &joinTypes, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2557); + ZEPHIR_OBS_NVAR(&preCondition); + if (!(zephir_array_isset_fetch(&preCondition, &joinPreCondition, &joinAlias, 0))) { + ZEPHIR_OBS_NVAR(&modelNameAlias); + zephir_array_fetch(&modelNameAlias, &sqlAliasesModels, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2566); + ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationbyalias", &_64, 0, &fromModelName, &modelNameAlias); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&relation)) { + ZEPHIR_CALL_METHOD(&relations, &manager, "getrelationsbetween", &_65, 0, &fromModelName, &modelNameAlias); + zephir_check_call_status(); + if (Z_TYPE_P(&relations) == IS_ARRAY) { + if (UNEXPECTED(zephir_fast_count_int(&relations) != 1)) { + ZEPHIR_INIT_NVAR(&_66$$45); + object_init_ex(&_66$$45, phalcon_mvc_model_exception_ce); + zephir_read_property(&_67$$45, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_68$$45); + ZEPHIR_CONCAT_SVSVSV(&_68$$45, "There is more than one relation between models '", &fromModelName, "' and '", &joinModel, "', the join must be done using an alias, when preparing: ", &_67$$45); + ZEPHIR_CALL_METHOD(NULL, &_66$$45, "__construct", &_8, 8, &_68$$45); + zephir_check_call_status(); + zephir_throw_exception_debug(&_66$$45, "phalcon/Mvc/Model/Query.zep", 2592); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_OBS_NVAR(&relation); + zephir_array_fetch_long(&relation, &relations, 0, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2598); + } + } + if (Z_TYPE_P(&relation) == IS_OBJECT) { + ZEPHIR_OBS_NVAR(&modelAlias); + zephir_array_fetch(&modelAlias, &sqlModelsAliases, &fromModelName, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2609); + ZEPHIR_CALL_METHOD(&_69$$46, &relation, "isthrough", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_69$$46))) { + ZEPHIR_CALL_METHOD(&sqlJoin, this_ptr, "getsinglejoin", &_56, 475, &joinType, &joinSource, &modelAlias, &joinAlias, &relation); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(&sqlJoin, this_ptr, "getmultijoin", &_57, 476, &joinType, &joinSource, &modelAlias, &joinAlias, &relation); + zephir_check_call_status(); + } + if (zephir_array_isset_long(&sqlJoin, 0)) { + zephir_is_iterable(&sqlJoin, 0, "phalcon/Mvc/Model/Query.zep", 2639); + if (Z_TYPE_P(&sqlJoin) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&sqlJoin), _70$$49) + { + ZEPHIR_INIT_NVAR(&sqlJoinItem); + ZVAL_COPY(&sqlJoinItem, _70$$49); + zephir_array_append(&sqlJoins, &sqlJoinItem, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2637); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &sqlJoin, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_71$$49, &sqlJoin, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_71$$49)) { + break; + } + ZEPHIR_CALL_METHOD(&sqlJoinItem, &sqlJoin, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_append(&sqlJoins, &sqlJoinItem, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2637); + ZEPHIR_CALL_METHOD(NULL, &sqlJoin, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&sqlJoinItem); + } else { + zephir_array_append(&sqlJoins, &sqlJoin, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2640); + } + } else { + ZEPHIR_INIT_NVAR(&_72$$53); + zephir_create_array(&_72$$53, 3, 0); + zephir_array_update_string(&_72$$53, SL("type"), &joinType, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_72$$53, SL("source"), &joinSource, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_73$$53); + array_init(&_73$$53); + zephir_array_update_string(&_72$$53, SL("conditions"), &_73$$53, PH_COPY | PH_SEPARATE); + zephir_array_append(&sqlJoins, &_72$$53, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2651); + } + } else { + ZEPHIR_INIT_NVAR(&_74$$54); + zephir_create_array(&_74$$54, 3, 0); + zephir_array_update_string(&_74$$54, SL("type"), &joinType, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_74$$54, SL("source"), &joinSource, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_75$$54); + zephir_create_array(&_75$$54, 1, 0); + zephir_array_fast_append(&_75$$54, &preCondition); + zephir_array_update_string(&_74$$54, SL("conditions"), &_75$$54, PH_COPY | PH_SEPARATE); + zephir_array_append(&sqlJoins, &_74$$54, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2662); + } + ZEPHIR_CALL_METHOD(NULL, &joinModels, "next", NULL, 0); + zephir_check_call_status(); + } } - } - } while(0); - - RETURN_CCTOR(&columnSql); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, getForeignKeyChecks) -{ - zval *this_ptr = getThis(); - - - - RETURN_STRING("SELECT @@foreign_key_checks"); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, listTables) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *schemaName_param = NULL; - zval schemaName; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&schemaName); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &schemaName_param); - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - zephir_get_strval(&schemaName, schemaName_param); - } - - - if (!(ZEPHIR_IS_EMPTY(&schemaName))) { - ZEPHIR_CONCAT_SVS(return_value, "SHOW TABLES FROM `", &schemaName, "`"); - RETURN_MM(); - } - RETURN_MM_STRING("SHOW TABLES"); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, listViews) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *schemaName_param = NULL; - zval schemaName; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&schemaName); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &schemaName_param); - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); + ZEPHIR_INIT_NVAR(&joinModel); + ZEPHIR_INIT_NVAR(&joinAlias); + } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_INIT_VAR(&schemaName); - } - } - - - if (!(ZEPHIR_IS_EMPTY(&schemaName))) { - ZEPHIR_CONCAT_SVS(return_value, "SELECT `TABLE_NAME` AS view_name FROM `INFORMATION_SCHEMA`.`VIEWS` WHERE `TABLE_SCHEMA` = '", &schemaName, "' ORDER BY view_name"); - RETURN_MM(); + ZEPHIR_CALL_METHOD(NULL, &fromModels, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_43, &fromModels, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_43)) { + break; + } + ZEPHIR_CALL_METHOD(&fromModelName, &fromModels, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_41, &fromModels, "current", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&joinModels, 0, "phalcon/Mvc/Model/Query.zep", 2665); + if (Z_TYPE_P(&joinModels) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&joinModels), _78$$55, _79$$55, _76$$55) + { + ZEPHIR_INIT_NVAR(&joinAlias); + if (_79$$55 != NULL) { + ZVAL_STR_COPY(&joinAlias, _79$$55); + } else { + ZVAL_LONG(&joinAlias, _78$$55); + } + ZEPHIR_INIT_NVAR(&joinModel); + ZVAL_COPY(&joinModel, _76$$55); + ZEPHIR_OBS_NVAR(&joinSource); + zephir_array_fetch(&joinSource, &joinSources, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2552); + ZEPHIR_OBS_NVAR(&joinType); + zephir_array_fetch(&joinType, &joinTypes, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2557); + ZEPHIR_OBS_NVAR(&preCondition); + if (!(zephir_array_isset_fetch(&preCondition, &joinPreCondition, &joinAlias, 0))) { + ZEPHIR_OBS_NVAR(&modelNameAlias); + zephir_array_fetch(&modelNameAlias, &sqlAliasesModels, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2566); + ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationbyalias", &_80, 0, &fromModelName, &modelNameAlias); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&relation)) { + ZEPHIR_CALL_METHOD(&relations, &manager, "getrelationsbetween", &_81, 0, &fromModelName, &modelNameAlias); + zephir_check_call_status(); + if (Z_TYPE_P(&relations) == IS_ARRAY) { + if (UNEXPECTED(zephir_fast_count_int(&relations) != 1)) { + ZEPHIR_INIT_NVAR(&_82$$60); + object_init_ex(&_82$$60, phalcon_mvc_model_exception_ce); + zephir_read_property(&_83$$60, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_84$$60); + ZEPHIR_CONCAT_SVSVSV(&_84$$60, "There is more than one relation between models '", &fromModelName, "' and '", &joinModel, "', the join must be done using an alias, when preparing: ", &_83$$60); + ZEPHIR_CALL_METHOD(NULL, &_82$$60, "__construct", &_8, 8, &_84$$60); + zephir_check_call_status(); + zephir_throw_exception_debug(&_82$$60, "phalcon/Mvc/Model/Query.zep", 2592); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_OBS_NVAR(&relation); + zephir_array_fetch_long(&relation, &relations, 0, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2598); + } + } + if (Z_TYPE_P(&relation) == IS_OBJECT) { + ZEPHIR_OBS_NVAR(&modelAlias); + zephir_array_fetch(&modelAlias, &sqlModelsAliases, &fromModelName, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2609); + ZEPHIR_CALL_METHOD(&_85$$61, &relation, "isthrough", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_85$$61))) { + ZEPHIR_CALL_METHOD(&sqlJoin, this_ptr, "getsinglejoin", &_56, 475, &joinType, &joinSource, &modelAlias, &joinAlias, &relation); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(&sqlJoin, this_ptr, "getmultijoin", &_57, 476, &joinType, &joinSource, &modelAlias, &joinAlias, &relation); + zephir_check_call_status(); + } + if (zephir_array_isset_long(&sqlJoin, 0)) { + zephir_is_iterable(&sqlJoin, 0, "phalcon/Mvc/Model/Query.zep", 2639); + if (Z_TYPE_P(&sqlJoin) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&sqlJoin), _86$$64) + { + ZEPHIR_INIT_NVAR(&sqlJoinItem); + ZVAL_COPY(&sqlJoinItem, _86$$64); + zephir_array_append(&sqlJoins, &sqlJoinItem, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2637); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &sqlJoin, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_87$$64, &sqlJoin, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_87$$64)) { + break; + } + ZEPHIR_CALL_METHOD(&sqlJoinItem, &sqlJoin, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_append(&sqlJoins, &sqlJoinItem, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2637); + ZEPHIR_CALL_METHOD(NULL, &sqlJoin, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&sqlJoinItem); + } else { + zephir_array_append(&sqlJoins, &sqlJoin, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2640); + } + } else { + ZEPHIR_INIT_NVAR(&_88$$68); + zephir_create_array(&_88$$68, 3, 0); + zephir_array_update_string(&_88$$68, SL("type"), &joinType, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_88$$68, SL("source"), &joinSource, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_89$$68); + array_init(&_89$$68); + zephir_array_update_string(&_88$$68, SL("conditions"), &_89$$68, PH_COPY | PH_SEPARATE); + zephir_array_append(&sqlJoins, &_88$$68, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2651); + } + } else { + ZEPHIR_INIT_NVAR(&_90$$69); + zephir_create_array(&_90$$69, 3, 0); + zephir_array_update_string(&_90$$69, SL("type"), &joinType, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_90$$69, SL("source"), &joinSource, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_91$$69); + zephir_create_array(&_91$$69, 1, 0); + zephir_array_fast_append(&_91$$69, &preCondition); + zephir_array_update_string(&_90$$69, SL("conditions"), &_91$$69, PH_COPY | PH_SEPARATE); + zephir_array_append(&sqlJoins, &_90$$69, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2662); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &joinModels, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_77$$55, &joinModels, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_77$$55)) { + break; + } + ZEPHIR_CALL_METHOD(&joinAlias, &joinModels, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&joinModel, &joinModels, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&joinSource); + zephir_array_fetch(&joinSource, &joinSources, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2552); + ZEPHIR_OBS_NVAR(&joinType); + zephir_array_fetch(&joinType, &joinTypes, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2557); + ZEPHIR_OBS_NVAR(&preCondition); + if (!(zephir_array_isset_fetch(&preCondition, &joinPreCondition, &joinAlias, 0))) { + ZEPHIR_OBS_NVAR(&modelNameAlias); + zephir_array_fetch(&modelNameAlias, &sqlAliasesModels, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2566); + ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationbyalias", &_92, 0, &fromModelName, &modelNameAlias); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&relation)) { + ZEPHIR_CALL_METHOD(&relations, &manager, "getrelationsbetween", &_93, 0, &fromModelName, &modelNameAlias); + zephir_check_call_status(); + if (Z_TYPE_P(&relations) == IS_ARRAY) { + if (UNEXPECTED(zephir_fast_count_int(&relations) != 1)) { + ZEPHIR_INIT_NVAR(&_94$$74); + object_init_ex(&_94$$74, phalcon_mvc_model_exception_ce); + zephir_read_property(&_95$$74, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_96$$74); + ZEPHIR_CONCAT_SVSVSV(&_96$$74, "There is more than one relation between models '", &fromModelName, "' and '", &joinModel, "', the join must be done using an alias, when preparing: ", &_95$$74); + ZEPHIR_CALL_METHOD(NULL, &_94$$74, "__construct", &_8, 8, &_96$$74); + zephir_check_call_status(); + zephir_throw_exception_debug(&_94$$74, "phalcon/Mvc/Model/Query.zep", 2592); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_OBS_NVAR(&relation); + zephir_array_fetch_long(&relation, &relations, 0, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2598); + } + } + if (Z_TYPE_P(&relation) == IS_OBJECT) { + ZEPHIR_OBS_NVAR(&modelAlias); + zephir_array_fetch(&modelAlias, &sqlModelsAliases, &fromModelName, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2609); + ZEPHIR_CALL_METHOD(&_97$$75, &relation, "isthrough", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_97$$75))) { + ZEPHIR_CALL_METHOD(&sqlJoin, this_ptr, "getsinglejoin", &_56, 475, &joinType, &joinSource, &modelAlias, &joinAlias, &relation); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(&sqlJoin, this_ptr, "getmultijoin", &_57, 476, &joinType, &joinSource, &modelAlias, &joinAlias, &relation); + zephir_check_call_status(); + } + if (zephir_array_isset_long(&sqlJoin, 0)) { + zephir_is_iterable(&sqlJoin, 0, "phalcon/Mvc/Model/Query.zep", 2639); + if (Z_TYPE_P(&sqlJoin) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&sqlJoin), _98$$78) + { + ZEPHIR_INIT_NVAR(&sqlJoinItem); + ZVAL_COPY(&sqlJoinItem, _98$$78); + zephir_array_append(&sqlJoins, &sqlJoinItem, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2637); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &sqlJoin, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_99$$78, &sqlJoin, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_99$$78)) { + break; + } + ZEPHIR_CALL_METHOD(&sqlJoinItem, &sqlJoin, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_append(&sqlJoins, &sqlJoinItem, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2637); + ZEPHIR_CALL_METHOD(NULL, &sqlJoin, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&sqlJoinItem); + } else { + zephir_array_append(&sqlJoins, &sqlJoin, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2640); + } + } else { + ZEPHIR_INIT_NVAR(&_100$$82); + zephir_create_array(&_100$$82, 3, 0); + zephir_array_update_string(&_100$$82, SL("type"), &joinType, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_100$$82, SL("source"), &joinSource, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_101$$82); + array_init(&_101$$82); + zephir_array_update_string(&_100$$82, SL("conditions"), &_101$$82, PH_COPY | PH_SEPARATE); + zephir_array_append(&sqlJoins, &_100$$82, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2651); + } + } else { + ZEPHIR_INIT_NVAR(&_102$$83); + zephir_create_array(&_102$$83, 3, 0); + zephir_array_update_string(&_102$$83, SL("type"), &joinType, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_102$$83, SL("source"), &joinSource, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_103$$83); + zephir_create_array(&_103$$83, 1, 0); + zephir_array_fast_append(&_103$$83, &preCondition); + zephir_array_update_string(&_102$$83, SL("conditions"), &_103$$83, PH_COPY | PH_SEPARATE); + zephir_array_append(&sqlJoins, &_102$$83, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2662); + } + ZEPHIR_CALL_METHOD(NULL, &joinModels, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&joinModel); + ZEPHIR_INIT_NVAR(&joinAlias); + ZEPHIR_CALL_METHOD(NULL, &fromModels, "next", NULL, 0); + zephir_check_call_status(); + } } - RETURN_MM_STRING("SELECT `TABLE_NAME` AS view_name FROM `INFORMATION_SCHEMA`.`VIEWS` WHERE `TABLE_SCHEMA` = DATABASE() ORDER BY view_name"); + ZEPHIR_INIT_NVAR(&_41); + ZEPHIR_INIT_NVAR(&fromModelName); + RETURN_CTOR(&sqlJoins); } -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, modifyColumn) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getMultiJoin) { - zend_bool _11$$8, _12$$8, _13$$8; + zend_string *_4$$3; + zend_ulong _3$$3; + zval sqlJoins, _10$$4, _12$$4, _18$$6, _19$$6, _21$$8, _22$$8, _23$$8, _25$$8, _26$$8, _27$$8, _28$$8; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_8 = NULL, *_11 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *column, column_sub, *currentColumn = NULL, currentColumn_sub, __$null, afterPosition, defaultValue, upperDefaultValue, columnDefinition, _0, _1, _2, _3, _9, _10, _19, _20, _23, _4$$4, _5$$4, _6$$4, _7$$5, _8$$5, _14$$8, _15$$9, _16$$10, _17$$10, _18$$10, _21$$12, _22$$12, _24$$15; - zval tableName, schemaName, sql; + zval *joinType_param = NULL, *joinSource, joinSource_sub, *modelAlias_param = NULL, *joinAlias_param = NULL, *relation, relation_sub, fields, referencedFields, intermediateModelName, intermediateModel, intermediateSource, intermediateSchema, intermediateFields, intermediateReferencedFields, referencedModelName, manager, field, position, intermediateField, sqlEqualsJoinCondition, _0, *_1$$3, _2$$3, _5$$5, _6$$5, _7$$5, _9$$4, _13$$7, _14$$7, _15$$7, _16$$6, _17$$6, _20$$8, _24$$8; + zval joinType, modelAlias, joinAlias; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&column_sub); - ZVAL_UNDEF(¤tColumn_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&afterPosition); - ZVAL_UNDEF(&defaultValue); - ZVAL_UNDEF(&upperDefaultValue); - ZVAL_UNDEF(&columnDefinition); + ZVAL_UNDEF(&joinType); + ZVAL_UNDEF(&modelAlias); + ZVAL_UNDEF(&joinAlias); + ZVAL_UNDEF(&joinSource_sub); + ZVAL_UNDEF(&relation_sub); + ZVAL_UNDEF(&fields); + ZVAL_UNDEF(&referencedFields); + ZVAL_UNDEF(&intermediateModelName); + ZVAL_UNDEF(&intermediateModel); + ZVAL_UNDEF(&intermediateSource); + ZVAL_UNDEF(&intermediateSchema); + ZVAL_UNDEF(&intermediateFields); + ZVAL_UNDEF(&intermediateReferencedFields); + ZVAL_UNDEF(&referencedModelName); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&position); + ZVAL_UNDEF(&intermediateField); + ZVAL_UNDEF(&sqlEqualsJoinCondition); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_19); - ZVAL_UNDEF(&_20); - ZVAL_UNDEF(&_23); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_6$$5); ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_14$$8); - ZVAL_UNDEF(&_15$$9); - ZVAL_UNDEF(&_16$$10); - ZVAL_UNDEF(&_17$$10); - ZVAL_UNDEF(&_18$$10); - ZVAL_UNDEF(&_21$$12); - ZVAL_UNDEF(&_22$$12); - ZVAL_UNDEF(&_24$$15); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&_13$$7); + ZVAL_UNDEF(&_14$$7); + ZVAL_UNDEF(&_15$$7); + ZVAL_UNDEF(&_16$$6); + ZVAL_UNDEF(&_17$$6); + ZVAL_UNDEF(&_20$$8); + ZVAL_UNDEF(&_24$$8); + ZVAL_UNDEF(&sqlJoins); + ZVAL_UNDEF(&_10$$4); + ZVAL_UNDEF(&_12$$4); + ZVAL_UNDEF(&_18$$6); + ZVAL_UNDEF(&_19$$6); + ZVAL_UNDEF(&_21$$8); + ZVAL_UNDEF(&_22$$8); + ZVAL_UNDEF(&_23$$8); + ZVAL_UNDEF(&_25$$8); + ZVAL_UNDEF(&_26$$8); + ZVAL_UNDEF(&_27$$8); + ZVAL_UNDEF(&_28$$8); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 4) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) - Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(currentColumn, phalcon_db_columninterface_ce) + ZEND_PARSE_PARAMETERS_START(5, 5) + Z_PARAM_STR(joinType) + Z_PARAM_ZVAL(joinSource) + Z_PARAM_STR(modelAlias) + Z_PARAM_STR(joinAlias) + Z_PARAM_OBJECT_OF_CLASS(relation, phalcon_mvc_model_relationinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 1, &tableName_param, &schemaName_param, &column, ¤tColumn); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + zephir_fetch_params(1, 5, 0, &joinType_param, &joinSource, &modelAlias_param, &joinAlias_param, &relation); + if (UNEXPECTED(Z_TYPE_P(joinType_param) != IS_STRING && Z_TYPE_P(joinType_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'joinType' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } - if (!currentColumn) { - currentColumn = ¤tColumn_sub; - ZEPHIR_CPY_WRT(currentColumn, &__$null); + if (EXPECTED(Z_TYPE_P(joinType_param) == IS_STRING)) { + zephir_get_strval(&joinType, joinType_param); } else { - ZEPHIR_SEPARATE_PARAM(currentColumn); + ZEPHIR_INIT_VAR(&joinType); } + zephir_get_strval(&modelAlias, modelAlias_param); + zephir_get_strval(&joinAlias, joinAlias_param); - ZEPHIR_CALL_METHOD(&columnDefinition, this_ptr, "getcolumndefinition", NULL, 0, column); + ZEPHIR_INIT_VAR(&sqlJoins); + array_init(&sqlJoins); + ZEPHIR_CALL_METHOD(&fields, relation, "getfields", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); + ZEPHIR_CALL_METHOD(&referencedFields, relation, "getreferencedfields", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_CONCAT_SV(&_1, "ALTER TABLE ", &_0); - zephir_get_strval(&sql, &_1); - if (Z_TYPE_P(currentColumn) != IS_OBJECT) { - ZEPHIR_CPY_WRT(currentColumn, column); - } - ZEPHIR_CALL_METHOD(&_2, column, "getname", NULL, 0); + ZEPHIR_CALL_METHOD(&intermediateModelName, relation, "getintermediatemodel", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_3, currentColumn, "getname", NULL, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&manager, &_0); + ZEPHIR_CALL_METHOD(&intermediateModel, &manager, "load", NULL, 0, &intermediateModelName); zephir_check_call_status(); - if (!ZEPHIR_IS_IDENTICAL(&_2, &_3)) { - ZEPHIR_CALL_METHOD(&_4$$4, currentColumn, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_5$$4, column, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_6$$4); - ZEPHIR_CONCAT_SVSVSV(&_6$$4, " CHANGE COLUMN `", &_4$$4, "` `", &_5$$4, "` ", &columnDefinition); - zephir_concat_self(&sql, &_6$$4); - } else { - ZEPHIR_CALL_METHOD(&_7$$5, column, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_8$$5); - ZEPHIR_CONCAT_SVSV(&_8$$5, " MODIFY `", &_7$$5, "` ", &columnDefinition); - zephir_concat_self(&sql, &_8$$5); - } - ZEPHIR_CALL_METHOD(&_9, column, "isnotnull", NULL, 0); + ZEPHIR_CALL_METHOD(&intermediateSource, &intermediateModel, "getsource", NULL, 0); zephir_check_call_status(); - if (zephir_is_true(&_9)) { - zephir_concat_self_str(&sql, " NOT NULL", sizeof(" NOT NULL") - 1); - } else { - zephir_concat_self_str(&sql, " NULL", sizeof(" NULL") - 1); - } - ZEPHIR_CALL_METHOD(&_10, column, "hasdefault", NULL, 0); + ZEPHIR_CALL_METHOD(&intermediateSchema, &intermediateModel, "getschema", NULL, 0); zephir_check_call_status(); - if (zephir_is_true(&_10)) { - ZEPHIR_CALL_METHOD(&defaultValue, column, "getdefault", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&upperDefaultValue); - zephir_fast_strtoupper(&upperDefaultValue, &defaultValue); - _11$$8 = zephir_memnstr_str(&upperDefaultValue, SL("CURRENT_TIMESTAMP"), "phalcon/Db/Dialect/Mysql.zep", 731); - if (!(_11$$8)) { - _11$$8 = zephir_memnstr_str(&upperDefaultValue, SL("NULL"), "phalcon/Db/Dialect/Mysql.zep", 731); - } - _12$$8 = _11$$8; - if (!(_12$$8)) { - _12$$8 = Z_TYPE_P(&defaultValue) == IS_LONG; - } - _13$$8 = _12$$8; - if (!(_13$$8)) { - ZEPHIR_CALL_FUNCTION(&_14$$8, "is_float", NULL, 213, &defaultValue); - zephir_check_call_status(); - _13$$8 = zephir_is_true(&_14$$8); - } - if (_13$$8) { - ZEPHIR_INIT_VAR(&_15$$9); - ZEPHIR_CONCAT_SV(&_15$$9, " DEFAULT ", &defaultValue); - zephir_concat_self(&sql, &_15$$9); - } else { - ZEPHIR_INIT_VAR(&_16$$10); - ZVAL_STRING(&_16$$10, "\""); - ZEPHIR_CALL_FUNCTION(&_17$$10, "addcslashes", NULL, 214, &defaultValue, &_16$$10); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_18$$10); - ZEPHIR_CONCAT_SVS(&_18$$10, " DEFAULT \"", &_17$$10, "\""); - zephir_concat_self(&sql, &_18$$10); - } - } - ZEPHIR_CALL_METHOD(&_19, column, "isautoincrement", NULL, 0); + zephir_update_property_array(this_ptr, SL("sqlAliases"), &intermediateModelName, &intermediateSource); + zephir_update_property_array(this_ptr, SL("sqlAliasesModelsInstances"), &intermediateModelName, &intermediateModel); + ZEPHIR_CALL_METHOD(&intermediateFields, relation, "getintermediatefields", NULL, 0); zephir_check_call_status(); - if (zephir_is_true(&_19)) { - zephir_concat_self_str(&sql, " AUTO_INCREMENT", sizeof(" AUTO_INCREMENT") - 1); - } - ZEPHIR_CALL_METHOD(&_20, column, "getcomment", NULL, 0); + ZEPHIR_CALL_METHOD(&intermediateReferencedFields, relation, "getintermediatereferencedfields", NULL, 0); zephir_check_call_status(); - if (zephir_is_true(&_20)) { - ZEPHIR_CALL_METHOD(&_21$$12, column, "getcomment", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_22$$12); - ZEPHIR_CONCAT_SVS(&_22$$12, " COMMENT '", &_21$$12, "'"); - zephir_concat_self(&sql, &_22$$12); - } - ZEPHIR_CALL_METHOD(&_23, column, "isfirst", NULL, 0); + ZEPHIR_CALL_METHOD(&referencedModelName, relation, "getreferencedmodel", NULL, 0); zephir_check_call_status(); - if (zephir_is_true(&_23)) { - zephir_concat_self_str(&sql, " FIRST", sizeof(" FIRST") - 1); + if (Z_TYPE_P(&fields) == IS_ARRAY) { + zephir_is_iterable(&fields, 0, "phalcon/Mvc/Model/Query.zep", 2784); + if (Z_TYPE_P(&fields) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&fields), _3$$3, _4$$3, _1$$3) + { + ZEPHIR_INIT_NVAR(&field); + if (_4$$3 != NULL) { + ZVAL_STR_COPY(&field, _4$$3); + } else { + ZVAL_LONG(&field, _3$$3); + } + ZEPHIR_INIT_NVAR(&position); + ZVAL_COPY(&position, _1$$3); + if (UNEXPECTED(!(zephir_array_isset(&referencedFields, &position)))) { + ZEPHIR_INIT_NVAR(&_5$$5); + object_init_ex(&_5$$5, phalcon_mvc_model_exception_ce); + zephir_read_property(&_6$$5, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_7$$5); + ZEPHIR_CONCAT_SVSVSV(&_7$$5, "The number of fields must be equal to the number of referenced fields in join ", &modelAlias, "-", &joinAlias, ", when preparing: ", &_6$$5); + ZEPHIR_CALL_METHOD(NULL, &_5$$5, "__construct", &_8, 8, &_7$$5); + zephir_check_call_status(); + zephir_throw_exception_debug(&_5$$5, "phalcon/Mvc/Model/Query.zep", 2751); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_OBS_NVAR(&intermediateField); + zephir_array_fetch(&intermediateField, &intermediateFields, &position, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2757); + ZEPHIR_INIT_NVAR(&sqlEqualsJoinCondition); + zephir_create_array(&sqlEqualsJoinCondition, 4, 0); + add_assoc_stringl_ex(&sqlEqualsJoinCondition, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&sqlEqualsJoinCondition, SL("op"), SL("=")); + ZEPHIR_INIT_NVAR(&_10$$4); + zephir_create_array(&_10$$4, 3, 0); + add_assoc_long_ex(&_10$$4, SL("type"), 355); + zephir_array_update_string(&_10$$4, SL("domain"), &modelAlias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_10$$4, SL("name"), &field, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_9$$4, this_ptr, "getqualified", &_11, 469, &_10$$4); + zephir_check_call_status(); + zephir_array_update_string(&sqlEqualsJoinCondition, SL("left"), &_9$$4, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_12$$4); + zephir_create_array(&_12$$4, 3, 0); + add_assoc_stringl_ex(&_12$$4, SL("type"), SL("qualified")); + zephir_array_update_string(&_12$$4, SL("domain"), &joinAlias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_12$$4, SL("name"), &referencedFields, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_9$$4, this_ptr, "getqualified", &_11, 469, &_12$$4); + zephir_check_call_status(); + zephir_array_update_string(&sqlEqualsJoinCondition, SL("right"), &_9$$4, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &fields, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2$$3, &fields, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&field, &fields, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&position, &fields, "current", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(!(zephir_array_isset(&referencedFields, &position)))) { + ZEPHIR_INIT_NVAR(&_13$$7); + object_init_ex(&_13$$7, phalcon_mvc_model_exception_ce); + zephir_read_property(&_14$$7, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_15$$7); + ZEPHIR_CONCAT_SVSVSV(&_15$$7, "The number of fields must be equal to the number of referenced fields in join ", &modelAlias, "-", &joinAlias, ", when preparing: ", &_14$$7); + ZEPHIR_CALL_METHOD(NULL, &_13$$7, "__construct", &_8, 8, &_15$$7); + zephir_check_call_status(); + zephir_throw_exception_debug(&_13$$7, "phalcon/Mvc/Model/Query.zep", 2751); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_OBS_NVAR(&intermediateField); + zephir_array_fetch(&intermediateField, &intermediateFields, &position, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2757); + ZEPHIR_INIT_NVAR(&_16$$6); + zephir_create_array(&_16$$6, 4, 0); + add_assoc_stringl_ex(&_16$$6, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_16$$6, SL("op"), SL("=")); + ZEPHIR_INIT_NVAR(&_18$$6); + zephir_create_array(&_18$$6, 3, 0); + add_assoc_long_ex(&_18$$6, SL("type"), 355); + zephir_array_update_string(&_18$$6, SL("domain"), &modelAlias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_18$$6, SL("name"), &field, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_17$$6, this_ptr, "getqualified", &_11, 469, &_18$$6); + zephir_check_call_status(); + zephir_array_update_string(&_16$$6, SL("left"), &_17$$6, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_19$$6); + zephir_create_array(&_19$$6, 3, 0); + add_assoc_stringl_ex(&_19$$6, SL("type"), SL("qualified")); + zephir_array_update_string(&_19$$6, SL("domain"), &joinAlias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_19$$6, SL("name"), &referencedFields, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_17$$6, this_ptr, "getqualified", &_11, 469, &_19$$6); + zephir_check_call_status(); + zephir_array_update_string(&_16$$6, SL("right"), &_17$$6, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&sqlEqualsJoinCondition, &_16$$6); + ZEPHIR_CALL_METHOD(NULL, &fields, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&position); + ZEPHIR_INIT_NVAR(&field); } else { - ZEPHIR_CALL_METHOD(&afterPosition, column, "getafterposition", NULL, 0); + ZEPHIR_INIT_VAR(&_20$$8); + zephir_create_array(&_20$$8, 2, 0); + ZEPHIR_INIT_VAR(&_21$$8); + zephir_create_array(&_21$$8, 3, 0); + zephir_array_update_string(&_21$$8, SL("type"), &joinType, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_22$$8); + zephir_create_array(&_22$$8, 2, 0); + zephir_array_fast_append(&_22$$8, &intermediateSource); + zephir_array_fast_append(&_22$$8, &intermediateSchema); + zephir_array_update_string(&_21$$8, SL("source"), &_22$$8, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_22$$8); + zephir_create_array(&_22$$8, 1, 0); + ZEPHIR_INIT_VAR(&_23$$8); + zephir_create_array(&_23$$8, 4, 0); + add_assoc_stringl_ex(&_23$$8, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_23$$8, SL("op"), SL("=")); + ZEPHIR_INIT_VAR(&_25$$8); + zephir_create_array(&_25$$8, 3, 0); + add_assoc_long_ex(&_25$$8, SL("type"), 355); + zephir_array_update_string(&_25$$8, SL("domain"), &modelAlias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_25$$8, SL("name"), &fields, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_24$$8, this_ptr, "getqualified", &_11, 469, &_25$$8); zephir_check_call_status(); - if (zephir_is_true(&afterPosition)) { - ZEPHIR_INIT_VAR(&_24$$15); - ZEPHIR_CONCAT_SVS(&_24$$15, " AFTER `", &afterPosition, "`"); - zephir_concat_self(&sql, &_24$$15); - } + zephir_array_update_string(&_23$$8, SL("left"), &_24$$8, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_26$$8); + zephir_create_array(&_26$$8, 3, 0); + add_assoc_stringl_ex(&_26$$8, SL("type"), SL("qualified")); + zephir_array_update_string(&_26$$8, SL("domain"), &intermediateModelName, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_26$$8, SL("name"), &intermediateFields, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_24$$8, this_ptr, "getqualified", &_11, 469, &_26$$8); + zephir_check_call_status(); + zephir_array_update_string(&_23$$8, SL("right"), &_24$$8, PH_COPY | PH_SEPARATE); + zephir_array_fast_append(&_22$$8, &_23$$8); + zephir_array_update_string(&_21$$8, SL("conditions"), &_22$$8, PH_COPY | PH_SEPARATE); + zephir_array_fast_append(&_20$$8, &_21$$8); + ZEPHIR_INIT_NVAR(&_21$$8); + zephir_create_array(&_21$$8, 3, 0); + zephir_array_update_string(&_21$$8, SL("type"), &joinType, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_21$$8, SL("source"), joinSource, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_22$$8); + zephir_create_array(&_22$$8, 1, 0); + ZEPHIR_INIT_NVAR(&_23$$8); + zephir_create_array(&_23$$8, 4, 0); + add_assoc_stringl_ex(&_23$$8, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_23$$8, SL("op"), SL("=")); + ZEPHIR_INIT_VAR(&_27$$8); + zephir_create_array(&_27$$8, 3, 0); + add_assoc_long_ex(&_27$$8, SL("type"), 355); + zephir_array_update_string(&_27$$8, SL("domain"), &intermediateModelName, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_27$$8, SL("name"), &intermediateReferencedFields, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_24$$8, this_ptr, "getqualified", &_11, 469, &_27$$8); + zephir_check_call_status(); + zephir_array_update_string(&_23$$8, SL("left"), &_24$$8, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_28$$8); + zephir_create_array(&_28$$8, 3, 0); + add_assoc_stringl_ex(&_28$$8, SL("type"), SL("qualified")); + zephir_array_update_string(&_28$$8, SL("domain"), &referencedModelName, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_28$$8, SL("name"), &referencedFields, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_24$$8, this_ptr, "getqualified", &_11, 469, &_28$$8); + zephir_check_call_status(); + zephir_array_update_string(&_23$$8, SL("right"), &_24$$8, PH_COPY | PH_SEPARATE); + zephir_array_fast_append(&_22$$8, &_23$$8); + zephir_array_update_string(&_21$$8, SL("conditions"), &_22$$8, PH_COPY | PH_SEPARATE); + zephir_array_fast_append(&_20$$8, &_21$$8); + ZEPHIR_CPY_WRT(&sqlJoins, &_20$$8); } - RETURN_CTOR(&sql); + RETURN_CTOR(&sqlJoins); } -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, sharedLock) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getOrderClause) { + zval orderParts, orderPartSort; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *sqlQuery_param = NULL; - zval sqlQuery; + zephir_fcall_cache_entry *_3 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *order, order_sub, orderColumns, orderItem, orderPartExpr, orderSort, *_0, _1, _2$$5, _4$$7, _5$$8, _6$$8, _7$$9, _8$$10, _9$$12, _10$$12, _11$$13, _12$$13, _13$$14; zval *this_ptr = getThis(); - ZVAL_UNDEF(&sqlQuery); + ZVAL_UNDEF(&order_sub); + ZVAL_UNDEF(&orderColumns); + ZVAL_UNDEF(&orderItem); + ZVAL_UNDEF(&orderPartExpr); + ZVAL_UNDEF(&orderSort); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&_4$$7); + ZVAL_UNDEF(&_5$$8); + ZVAL_UNDEF(&_6$$8); + ZVAL_UNDEF(&_7$$9); + ZVAL_UNDEF(&_8$$10); + ZVAL_UNDEF(&_9$$12); + ZVAL_UNDEF(&_10$$12); + ZVAL_UNDEF(&_11$$13); + ZVAL_UNDEF(&_12$$13); + ZVAL_UNDEF(&_13$$14); + ZVAL_UNDEF(&orderParts); + ZVAL_UNDEF(&orderPartSort); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(sqlQuery) + Z_PARAM_ZVAL(order) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &sqlQuery_param); - if (UNEXPECTED(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be of the type string")); - RETURN_MM_NULL(); + zephir_fetch_params(1, 1, 0, &order); + + + if (!(zephir_array_isset_long(order, 0))) { + ZEPHIR_INIT_VAR(&orderColumns); + zephir_create_array(&orderColumns, 1, 0); + zephir_array_fast_append(&orderColumns, order); + } else { + ZEPHIR_CPY_WRT(&orderColumns, order); } - if (EXPECTED(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { - zephir_get_strval(&sqlQuery, sqlQuery_param); + ZEPHIR_INIT_VAR(&orderParts); + array_init(&orderParts); + zephir_is_iterable(&orderColumns, 0, "phalcon/Mvc/Model/Query.zep", 2893); + if (Z_TYPE_P(&orderColumns) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&orderColumns), _0) + { + ZEPHIR_INIT_NVAR(&orderItem); + ZVAL_COPY(&orderItem, _0); + zephir_array_fetch_string(&_2$$5, &orderItem, SL("column"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 2875); + ZEPHIR_CALL_METHOD(&orderPartExpr, this_ptr, "getexpression", &_3, 468, &_2$$5); + zephir_check_call_status(); + if (zephir_array_isset_string_fetch(&orderSort, &orderItem, SL("sort"), 1)) { + if (ZEPHIR_IS_LONG(&orderSort, 327)) { + ZEPHIR_INIT_NVAR(&orderPartSort); + zephir_create_array(&orderPartSort, 2, 0); + zephir_array_fast_append(&orderPartSort, &orderPartExpr); + ZEPHIR_INIT_NVAR(&_4$$7); + ZVAL_STRING(&_4$$7, "ASC"); + zephir_array_fast_append(&orderPartSort, &_4$$7); + } else { + ZEPHIR_INIT_NVAR(&_5$$8); + zephir_create_array(&_5$$8, 2, 0); + zephir_array_fast_append(&_5$$8, &orderPartExpr); + ZEPHIR_INIT_NVAR(&_6$$8); + ZVAL_STRING(&_6$$8, "DESC"); + zephir_array_fast_append(&_5$$8, &_6$$8); + ZEPHIR_CPY_WRT(&orderPartSort, &_5$$8); + } + } else { + ZEPHIR_INIT_NVAR(&_7$$9); + zephir_create_array(&_7$$9, 1, 0); + zephir_array_fast_append(&_7$$9, &orderPartExpr); + ZEPHIR_CPY_WRT(&orderPartSort, &_7$$9); + } + zephir_array_append(&orderParts, &orderPartSort, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2890); + } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_INIT_VAR(&sqlQuery); + ZEPHIR_CALL_METHOD(NULL, &orderColumns, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &orderColumns, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&orderItem, &orderColumns, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_fetch_string(&_8$$10, &orderItem, SL("column"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 2875); + ZEPHIR_CALL_METHOD(&orderPartExpr, this_ptr, "getexpression", &_3, 468, &_8$$10); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&orderSort); + if (zephir_array_isset_string_fetch(&orderSort, &orderItem, SL("sort"), 0)) { + if (ZEPHIR_IS_LONG(&orderSort, 327)) { + ZEPHIR_INIT_NVAR(&_9$$12); + zephir_create_array(&_9$$12, 2, 0); + zephir_array_fast_append(&_9$$12, &orderPartExpr); + ZEPHIR_INIT_NVAR(&_10$$12); + ZVAL_STRING(&_10$$12, "ASC"); + zephir_array_fast_append(&_9$$12, &_10$$12); + ZEPHIR_CPY_WRT(&orderPartSort, &_9$$12); + } else { + ZEPHIR_INIT_NVAR(&_11$$13); + zephir_create_array(&_11$$13, 2, 0); + zephir_array_fast_append(&_11$$13, &orderPartExpr); + ZEPHIR_INIT_NVAR(&_12$$13); + ZVAL_STRING(&_12$$13, "DESC"); + zephir_array_fast_append(&_11$$13, &_12$$13); + ZEPHIR_CPY_WRT(&orderPartSort, &_11$$13); + } + } else { + ZEPHIR_INIT_NVAR(&_13$$14); + zephir_create_array(&_13$$14, 1, 0); + zephir_array_fast_append(&_13$$14, &orderPartExpr); + ZEPHIR_CPY_WRT(&orderPartSort, &_13$$14); + } + zephir_array_append(&orderParts, &orderPartSort, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2890); + ZEPHIR_CALL_METHOD(NULL, &orderColumns, "next", NULL, 0); + zephir_check_call_status(); + } } - - - ZEPHIR_CONCAT_VS(return_value, &sqlQuery, " LOCK IN SHARE MODE"); - RETURN_MM(); + ZEPHIR_INIT_NVAR(&orderItem); + RETURN_CTOR(&orderParts); } -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, tableExists) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getQualified) { + zend_bool _3, _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *tableName_param = NULL, *schemaName_param = NULL; - zval tableName, schemaName; - zval *this_ptr = getThis(); + zephir_fcall_cache_entry *_22 = NULL, *_27 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS, number = 0; + zval *expr_param = NULL, columnName, nestingLevel, sqlColumnAliases, metaData, sqlAliases, source, sqlAliasesModelsInstances, realColumnName, columnDomain, model, models, columnMap, hasModel, className, _0, _5, _6, _1$$3, _2$$3, _7$$6, _8$$7, _9$$7, _10$$7, _11$$8, _12$$9, _13$$9, _14$$9, _15$$12, _16$$12, _17$$12, _18$$14, *_19$$14, _20$$14, _34$$14, _21$$15, _23$$17, _24$$17, _25$$17, _26$$18, _28$$20, _29$$20, _30$$20, _31$$21, _32$$21, _33$$21, _35$$23, _36$$23, _37$$23, _38$$27, _39$$27, _40$$27; + zval expr; + zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&columnName); + ZVAL_UNDEF(&nestingLevel); + ZVAL_UNDEF(&sqlColumnAliases); + ZVAL_UNDEF(&metaData); + ZVAL_UNDEF(&sqlAliases); + ZVAL_UNDEF(&source); + ZVAL_UNDEF(&sqlAliasesModelsInstances); + ZVAL_UNDEF(&realColumnName); + ZVAL_UNDEF(&columnDomain); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&models); + ZVAL_UNDEF(&columnMap); + ZVAL_UNDEF(&hasModel); + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_8$$7); + ZVAL_UNDEF(&_9$$7); + ZVAL_UNDEF(&_10$$7); + ZVAL_UNDEF(&_11$$8); + ZVAL_UNDEF(&_12$$9); + ZVAL_UNDEF(&_13$$9); + ZVAL_UNDEF(&_14$$9); + ZVAL_UNDEF(&_15$$12); + ZVAL_UNDEF(&_16$$12); + ZVAL_UNDEF(&_17$$12); + ZVAL_UNDEF(&_18$$14); + ZVAL_UNDEF(&_20$$14); + ZVAL_UNDEF(&_34$$14); + ZVAL_UNDEF(&_21$$15); + ZVAL_UNDEF(&_23$$17); + ZVAL_UNDEF(&_24$$17); + ZVAL_UNDEF(&_25$$17); + ZVAL_UNDEF(&_26$$18); + ZVAL_UNDEF(&_28$$20); + ZVAL_UNDEF(&_29$$20); + ZVAL_UNDEF(&_30$$20); + ZVAL_UNDEF(&_31$$21); + ZVAL_UNDEF(&_32$$21); + ZVAL_UNDEF(&_33$$21); + ZVAL_UNDEF(&_35$$23); + ZVAL_UNDEF(&_36$$23); + ZVAL_UNDEF(&_37$$23); + ZVAL_UNDEF(&_38$$27); + ZVAL_UNDEF(&_39$$27); + ZVAL_UNDEF(&_40$$27); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(tableName) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(expr) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); + zephir_fetch_params(1, 1, 0, &expr_param); + ZEPHIR_OBS_COPY_OR_DUP(&expr, expr_param); + + + ZEPHIR_OBS_VAR(&columnName); + zephir_array_fetch_string(&columnName, &expr, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2907); + zephir_read_property(&_0, this_ptr, ZEND_STRL("nestingLevel"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&nestingLevel, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("sqlColumnAliases"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset(&_0, &nestingLevel)) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("sqlColumnAliases"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_2$$3, &_1$$3, &nestingLevel, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 2915); + ZEPHIR_CPY_WRT(&sqlColumnAliases, &_2$$3); } else { - ZEPHIR_INIT_VAR(&tableName); + ZEPHIR_INIT_NVAR(&sqlColumnAliases); + array_init(&sqlColumnAliases); } - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - zephir_get_strval(&schemaName, schemaName_param); + _3 = zephir_array_isset(&sqlColumnAliases, &columnName); + if (_3) { + _4 = !(zephir_array_isset_string(&expr, SL("domain"))); + if (!(_4)) { + zephir_array_fetch_string(&_5, &expr, SL("domain"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 2920); + _4 = ZEPHIR_IS_EMPTY(&_5); + } + _3 = _4; } - - - if (!(ZEPHIR_IS_EMPTY(&schemaName))) { - ZEPHIR_CONCAT_SVSVS(return_value, "SELECT IF(COUNT(*) > 0, 1, 0) FROM `INFORMATION_SCHEMA`.`TABLES` WHERE `TABLE_NAME`= '", &tableName, "' AND `TABLE_SCHEMA` = '", &schemaName, "'"); + if (_3) { + zephir_create_array(return_value, 2, 0); + add_assoc_stringl_ex(return_value, SL("type"), SL("qualified")); + zephir_array_update_string(return_value, SL("name"), &columnName, PH_COPY | PH_SEPARATE); RETURN_MM(); } - ZEPHIR_CONCAT_SVS(return_value, "SELECT IF(COUNT(*) > 0, 1, 0) FROM `INFORMATION_SCHEMA`.`TABLES` WHERE `TABLE_NAME` = '", &tableName, "' AND `TABLE_SCHEMA` = DATABASE()"); + zephir_read_property(&_6, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&metaData, &_6); + ZEPHIR_OBS_VAR(&columnDomain); + if (zephir_array_isset_string_fetch(&columnDomain, &expr, SL("domain"), 0)) { + zephir_read_property(&_7$$6, this_ptr, ZEND_STRL("sqlAliases"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&sqlAliases, &_7$$6); + ZEPHIR_OBS_VAR(&source); + if (UNEXPECTED(!(zephir_array_isset_fetch(&source, &sqlAliases, &columnDomain, 0)))) { + ZEPHIR_INIT_VAR(&_8$$7); + object_init_ex(&_8$$7, phalcon_mvc_model_exception_ce); + zephir_read_property(&_9$$7, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_10$$7); + ZEPHIR_CONCAT_SVSV(&_10$$7, "Unknown model or alias '", &columnDomain, "' (11), when preparing: ", &_9$$7); + ZEPHIR_CALL_METHOD(NULL, &_8$$7, "__construct", NULL, 8, &_10$$7); + zephir_check_call_status(); + zephir_throw_exception_debug(&_8$$7, "phalcon/Mvc/Model/Query.zep", 2941); + ZEPHIR_MM_RESTORE(); + return; + } + if (ZEPHIR_GLOBAL(orm).column_renaming) { + zephir_read_property(&_11$$8, this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&sqlAliasesModelsInstances, &_11$$8); + ZEPHIR_OBS_VAR(&model); + if (UNEXPECTED(!(zephir_array_isset_fetch(&model, &sqlAliasesModelsInstances, &columnDomain, 0)))) { + ZEPHIR_INIT_VAR(&_12$$9); + object_init_ex(&_12$$9, phalcon_mvc_model_exception_ce); + zephir_read_property(&_13$$9, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_14$$9); + ZEPHIR_CONCAT_SVSV(&_14$$9, "There is no model related to model or alias '", &columnDomain, "', when executing: ", &_13$$9); + ZEPHIR_CALL_METHOD(NULL, &_12$$9, "__construct", NULL, 8, &_14$$9); + zephir_check_call_status(); + zephir_throw_exception_debug(&_12$$9, "phalcon/Mvc/Model/Query.zep", 2960); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getreversecolumnmap", NULL, 0, &model); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&columnMap); + ZVAL_NULL(&columnMap); + } + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + ZEPHIR_OBS_VAR(&realColumnName); + if (UNEXPECTED(!(zephir_array_isset_fetch(&realColumnName, &columnMap, &columnName, 0)))) { + ZEPHIR_INIT_VAR(&_15$$12); + object_init_ex(&_15$$12, phalcon_mvc_model_exception_ce); + zephir_read_property(&_16$$12, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_17$$12); + ZEPHIR_CONCAT_SVSVSV(&_17$$12, "Column '", &columnName, "' doesn't belong to the model or alias '", &columnDomain, "', when executing: ", &_16$$12); + ZEPHIR_CALL_METHOD(NULL, &_15$$12, "__construct", NULL, 8, &_17$$12); + zephir_check_call_status(); + zephir_throw_exception_debug(&_15$$12, "phalcon/Mvc/Model/Query.zep", 2972); + ZEPHIR_MM_RESTORE(); + return; + } + } else { + ZEPHIR_CPY_WRT(&realColumnName, &columnName); + } + } else { + number = 0; + ZEPHIR_INIT_VAR(&hasModel); + ZVAL_BOOL(&hasModel, 0); + zephir_read_property(&_18$$14, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); + zephir_is_iterable(&_18$$14, 0, "phalcon/Mvc/Model/Query.zep", 3006); + if (Z_TYPE_P(&_18$$14) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_18$$14), _19$$14) + { + ZEPHIR_INIT_NVAR(&model); + ZVAL_COPY(&model, _19$$14); + ZEPHIR_CALL_METHOD(&_21$$15, &metaData, "hasattribute", &_22, 0, &model, &columnName); + zephir_check_call_status(); + if (zephir_is_true(&_21$$15)) { + number++; + if (UNEXPECTED(number > 1)) { + ZEPHIR_INIT_NVAR(&_23$$17); + object_init_ex(&_23$$17, phalcon_mvc_model_exception_ce); + zephir_read_property(&_24$$17, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_25$$17); + ZEPHIR_CONCAT_SVSV(&_25$$17, "The column '", &columnName, "' is ambiguous, when preparing: ", &_24$$17); + ZEPHIR_CALL_METHOD(NULL, &_23$$17, "__construct", NULL, 8, &_25$$17); + zephir_check_call_status(); + zephir_throw_exception_debug(&_23$$17, "phalcon/Mvc/Model/Query.zep", 2995); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CPY_WRT(&hasModel, &model); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_18$$14, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_20$$14, &_18$$14, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_20$$14)) { + break; + } + ZEPHIR_CALL_METHOD(&model, &_18$$14, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_26$$18, &metaData, "hasattribute", &_27, 0, &model, &columnName); + zephir_check_call_status(); + if (zephir_is_true(&_26$$18)) { + number++; + if (UNEXPECTED(number > 1)) { + ZEPHIR_INIT_NVAR(&_28$$20); + object_init_ex(&_28$$20, phalcon_mvc_model_exception_ce); + zephir_read_property(&_29$$20, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_30$$20); + ZEPHIR_CONCAT_SVSV(&_30$$20, "The column '", &columnName, "' is ambiguous, when preparing: ", &_29$$20); + ZEPHIR_CALL_METHOD(NULL, &_28$$20, "__construct", NULL, 8, &_30$$20); + zephir_check_call_status(); + zephir_throw_exception_debug(&_28$$20, "phalcon/Mvc/Model/Query.zep", 2995); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CPY_WRT(&hasModel, &model); + } + ZEPHIR_CALL_METHOD(NULL, &_18$$14, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&model); + if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&hasModel))) { + ZEPHIR_INIT_VAR(&_31$$21); + object_init_ex(&_31$$21, phalcon_mvc_model_exception_ce); + zephir_read_property(&_32$$21, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_33$$21); + ZEPHIR_CONCAT_SVSV(&_33$$21, "Column '", &columnName, "' doesn't belong to any of the selected models (1), when preparing: ", &_32$$21); + ZEPHIR_CALL_METHOD(NULL, &_31$$21, "__construct", NULL, 8, &_33$$21); + zephir_check_call_status(); + zephir_throw_exception_debug(&_31$$21, "phalcon/Mvc/Model/Query.zep", 3009); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_read_property(&_34$$14, this_ptr, ZEND_STRL("models"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&models, &_34$$14); + if (UNEXPECTED(Z_TYPE_P(&models) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The models list was not loaded correctly", "phalcon/Mvc/Model/Query.zep", 3020); + return; + } + ZEPHIR_INIT_VAR(&className); + zephir_get_class(&className, &hasModel, 0); + ZEPHIR_OBS_NVAR(&source); + if (UNEXPECTED(!(zephir_array_isset_fetch(&source, &models, &className, 0)))) { + ZEPHIR_INIT_VAR(&_35$$23); + object_init_ex(&_35$$23, phalcon_mvc_model_exception_ce); + zephir_read_property(&_36$$23, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_37$$23); + ZEPHIR_CONCAT_SVSV(&_37$$23, "Can't obtain model's source from models list: '", &className, "', when preparing: ", &_36$$23); + ZEPHIR_CALL_METHOD(NULL, &_35$$23, "__construct", NULL, 8, &_37$$23); + zephir_check_call_status(); + zephir_throw_exception_debug(&_35$$23, "phalcon/Mvc/Model/Query.zep", 3031); + ZEPHIR_MM_RESTORE(); + return; + } + if (ZEPHIR_GLOBAL(orm).column_renaming) { + ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getreversecolumnmap", NULL, 0, &hasModel); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&columnMap); + ZVAL_NULL(&columnMap); + } + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&realColumnName); + if (UNEXPECTED(!(zephir_array_isset_fetch(&realColumnName, &columnMap, &columnName, 0)))) { + ZEPHIR_INIT_VAR(&_38$$27); + object_init_ex(&_38$$27, phalcon_mvc_model_exception_ce); + zephir_read_property(&_39$$27, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_40$$27); + ZEPHIR_CONCAT_SVSV(&_40$$27, "Column '", &columnName, "' doesn't belong to any of the selected models (3), when preparing: ", &_39$$27); + ZEPHIR_CALL_METHOD(NULL, &_38$$27, "__construct", NULL, 8, &_40$$27); + zephir_check_call_status(); + zephir_throw_exception_debug(&_38$$27, "phalcon/Mvc/Model/Query.zep", 3050); + ZEPHIR_MM_RESTORE(); + return; + } + } else { + ZEPHIR_CPY_WRT(&realColumnName, &columnName); + } + } + zephir_create_array(return_value, 4, 0); + add_assoc_stringl_ex(return_value, SL("type"), SL("qualified")); + zephir_array_update_string(return_value, SL("domain"), &source, PH_COPY | PH_SEPARATE); + zephir_array_update_string(return_value, SL("name"), &realColumnName, PH_COPY | PH_SEPARATE); + zephir_array_update_string(return_value, SL("balias"), &columnName, PH_COPY | PH_SEPARATE); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, tableOptions) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getReadConnection) { + zend_bool _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *table_param = NULL, *schema_param = NULL; - zval table, schema, sql; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval intermediate, bindParams, bindTypes; + zval *model, model_sub, *intermediate_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, connection, transaction, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&transaction); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&intermediate); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) + ZEND_PARSE_PARAMETERS_START(1, 4) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) + Z_PARAM_ARRAY_OR_NULL(intermediate) + Z_PARAM_ARRAY(bindParams) + Z_PARAM_ARRAY(bindTypes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); + zephir_fetch_params(1, 1, 3, &model, &intermediate_param, &bindParams_param, &bindTypes_param); + if (!intermediate_param) { + ZEPHIR_INIT_VAR(&intermediate); } else { - ZEPHIR_INIT_VAR(&table); + zephir_get_arrval(&intermediate, intermediate_param); } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); + if (!bindParams_param) { + ZEPHIR_INIT_VAR(&bindParams); + array_init(&bindParams); } else { - zephir_get_strval(&schema, schema_param); + zephir_get_arrval(&bindParams, bindParams_param); } - - - ZEPHIR_INIT_VAR(&sql); - ZVAL_STRING(&sql, "SELECT TABLES.TABLE_TYPE AS table_type,TABLES.AUTO_INCREMENT AS auto_increment,TABLES.ENGINE AS engine,TABLES.TABLE_COLLATION AS table_collation FROM INFORMATION_SCHEMA.TABLES WHERE "); - if (!(ZEPHIR_IS_EMPTY(&schema))) { - ZEPHIR_CONCAT_VSVSVS(return_value, &sql, "TABLES.TABLE_SCHEMA = '", &schema, "' AND TABLES.TABLE_NAME = '", &table, "'"); - RETURN_MM(); + if (!bindTypes_param) { + ZEPHIR_INIT_VAR(&bindTypes); + array_init(&bindTypes); + } else { + zephir_get_arrval(&bindTypes, bindTypes_param); } - ZEPHIR_CONCAT_VSVS(return_value, &sql, "TABLES.TABLE_SCHEMA = DATABASE() AND TABLES.TABLE_NAME = '", &table, "'"); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, truncateTable) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *tableName_param = NULL, *schemaName_param = NULL; - zval tableName, schemaName, table; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&table); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &tableName_param, &schemaName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); + ZEPHIR_INIT_VAR(&connection); + ZVAL_NULL(&connection); + zephir_read_property(&_0, this_ptr, ZEND_STRL("transaction"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&transaction, &_0); + _1 = Z_TYPE_P(&transaction) == IS_OBJECT; + if (_1) { + _1 = zephir_instance_of_ev(&transaction, phalcon_mvc_model_transactioninterface_ce); } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); + if (_1) { + ZEPHIR_RETURN_CALL_METHOD(&transaction, "getconnection", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } - - - if (!(ZEPHIR_IS_EMPTY(&schemaName))) { - ZEPHIR_INIT_VAR(&table); - ZEPHIR_CONCAT_SVSVS(&table, "`", &schemaName, "`.`", &tableName, "`"); - } else { - ZEPHIR_INIT_NVAR(&table); - ZEPHIR_CONCAT_SVS(&table, "`", &tableName, "`"); + if ((zephir_method_exists_ex(model, ZEND_STRL("selectreadconnection")) == SUCCESS)) { + ZEPHIR_CALL_METHOD(&connection, model, "selectreadconnection", NULL, 0, &intermediate, &bindParams, &bindTypes); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&connection) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "selectReadConnection did not return a connection", "phalcon/Mvc/Model/Query.zep", 3094); + return; + } + RETURN_CCTOR(&connection); } - ZEPHIR_CONCAT_SV(return_value, "TRUNCATE TABLE ", &table); + ZEPHIR_RETURN_CALL_METHOD(model, "getreadconnection", NULL, 0); + zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, viewExists) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getRelatedRecords) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *viewName_param = NULL, *schemaName_param = NULL; - zval viewName, schemaName; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval intermediate, bindParams, bindTypes, _0, _1; + zval *model, model_sub, *intermediate_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, selectIr, whereConditions, limitConditions, query, _2, _3, _4, _5, _6; zval *this_ptr = getThis(); - ZVAL_UNDEF(&viewName); - ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&selectIr); + ZVAL_UNDEF(&whereConditions); + ZVAL_UNDEF(&limitConditions); + ZVAL_UNDEF(&query); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&intermediate); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(viewName) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) + ZEND_PARSE_PARAMETERS_START(4, 4) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_ARRAY(intermediate) + Z_PARAM_ARRAY(bindParams) + Z_PARAM_ARRAY(bindTypes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName_param); - if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { - zephir_get_strval(&viewName, viewName_param); - } else { - ZEPHIR_INIT_VAR(&viewName); - } - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - zephir_get_strval(&schemaName, schemaName_param); - } + zephir_fetch_params(1, 4, 0, &model, &intermediate_param, &bindParams_param, &bindTypes_param); + zephir_get_arrval(&intermediate, intermediate_param); + zephir_get_arrval(&bindParams, bindParams_param); + zephir_get_arrval(&bindTypes, bindTypes_param); - if (!(ZEPHIR_IS_EMPTY(&schemaName))) { - ZEPHIR_CONCAT_SVSVS(return_value, "SELECT IF(COUNT(*) > 0, 1, 0) FROM `INFORMATION_SCHEMA`.`VIEWS` WHERE `TABLE_NAME`= '", &viewName, "' AND `TABLE_SCHEMA`='", &schemaName, "'"); - RETURN_MM(); + ZEPHIR_INIT_VAR(&selectIr); + zephir_create_array(&selectIr, 3, 0); + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 1, 0); + ZEPHIR_INIT_VAR(&_1); + zephir_create_array(&_1, 3, 0); + add_assoc_stringl_ex(&_1, SL("type"), SL("object")); + ZEPHIR_INIT_VAR(&_2); + zephir_get_class(&_2, model, 0); + zephir_array_update_string(&_1, SL("model"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_3, model, "getsource", NULL, 0); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("column"), &_3, PH_COPY | PH_SEPARATE); + zephir_array_fast_append(&_0, &_1); + zephir_array_update_string(&selectIr, SL("columns"), &_0, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_VAR(&_4); + zephir_array_fetch_string(&_4, &intermediate, SL("models"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3124); + zephir_array_update_string(&selectIr, SL("models"), &_4, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_4); + zephir_array_fetch_string(&_4, &intermediate, SL("tables"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3126); + zephir_array_update_string(&selectIr, SL("tables"), &_4, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_VAR(&whereConditions); + if (zephir_array_isset_string_fetch(&whereConditions, &intermediate, SL("where"), 0)) { + zephir_array_update_string(&selectIr, SL("where"), &whereConditions, PH_COPY | PH_SEPARATE); } - ZEPHIR_CONCAT_SVS(return_value, "SELECT IF(COUNT(*) > 0, 1, 0) FROM `INFORMATION_SCHEMA`.`VIEWS` WHERE `TABLE_NAME`='", &viewName, "' AND `TABLE_SCHEMA` = DATABASE()"); + ZEPHIR_OBS_VAR(&limitConditions); + if (zephir_array_isset_string_fetch(&limitConditions, &intermediate, SL("limit"), 0)) { + zephir_array_update_string(&selectIr, SL("limit"), &limitConditions, PH_COPY | PH_SEPARATE); + } + ZEPHIR_INIT_VAR(&query); + object_init_ex(&query, phalcon_mvc_model_query_ce); + ZEPHIR_CALL_METHOD(NULL, &query, "__construct", NULL, 477); + zephir_check_call_status(); + zephir_read_property(&_5, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &query, "setdi", NULL, 478, &_5); + zephir_check_call_status(); + ZVAL_LONG(&_6, 309); + ZEPHIR_CALL_METHOD(NULL, &query, "settype", NULL, 479, &_6); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &query, "setintermediate", NULL, 480, &selectIr); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(&query, "execute", NULL, 481, &bindParams, &bindTypes); + zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, getTableOptions) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getSelectColumn) { + zend_string *_4$$4; + zend_ulong _3$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *definition_param = NULL, options, engine, autoIncrement, tableCollation, collationParts, _0$$5, _1$$7, _2$$9, _3$$9, _4$$9; - zval definition, tableOptions; + zephir_fcall_cache_entry *_6 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *column_param = NULL, columnType, sqlAliases, modelName, source, columnDomain, sqlColumnAlias, preparedAlias, sqlExprColumn, sqlAliasesModels, columnData, balias, eager, _19, _20, _0$$4, *_1$$4, _2$$4, _5$$5, _7$$6, _8$$7, _9$$7, _10$$8, _11$$10, _15$$10, _12$$11, _13$$11, _14$$11, _16$$15, _17$$16, _18$$18; + zval column, sqlColumns, sqlColumn; zval *this_ptr = getThis(); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&tableOptions); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&engine); - ZVAL_UNDEF(&autoIncrement); - ZVAL_UNDEF(&tableCollation); - ZVAL_UNDEF(&collationParts); - ZVAL_UNDEF(&_0$$5); - ZVAL_UNDEF(&_1$$7); - ZVAL_UNDEF(&_2$$9); - ZVAL_UNDEF(&_3$$9); - ZVAL_UNDEF(&_4$$9); + ZVAL_UNDEF(&column); + ZVAL_UNDEF(&sqlColumns); + ZVAL_UNDEF(&sqlColumn); + ZVAL_UNDEF(&columnType); + ZVAL_UNDEF(&sqlAliases); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&source); + ZVAL_UNDEF(&columnDomain); + ZVAL_UNDEF(&sqlColumnAlias); + ZVAL_UNDEF(&preparedAlias); + ZVAL_UNDEF(&sqlExprColumn); + ZVAL_UNDEF(&sqlAliasesModels); + ZVAL_UNDEF(&columnData); + ZVAL_UNDEF(&balias); + ZVAL_UNDEF(&eager); + ZVAL_UNDEF(&_19); + ZVAL_UNDEF(&_20); + ZVAL_UNDEF(&_0$$4); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_8$$7); + ZVAL_UNDEF(&_9$$7); + ZVAL_UNDEF(&_10$$8); + ZVAL_UNDEF(&_11$$10); + ZVAL_UNDEF(&_15$$10); + ZVAL_UNDEF(&_12$$11); + ZVAL_UNDEF(&_13$$11); + ZVAL_UNDEF(&_14$$11); + ZVAL_UNDEF(&_16$$15); + ZVAL_UNDEF(&_17$$16); + ZVAL_UNDEF(&_18$$18); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(definition) + Z_PARAM_ARRAY(column) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &definition_param); - ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); + zephir_fetch_params(1, 1, 0, &column_param); + ZEPHIR_OBS_COPY_OR_DUP(&column, column_param); - ZEPHIR_OBS_VAR(&options); - if (!(zephir_array_isset_string_fetch(&options, &definition, SL("options"), 0))) { - RETURN_MM_STRING(""); + ZEPHIR_OBS_VAR(&columnType); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&columnType, &column, SL("type"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted SELECT AST", "phalcon/Mvc/Model/Query.zep", 3166); + return; } - ZEPHIR_INIT_VAR(&tableOptions); - array_init(&tableOptions); - ZEPHIR_OBS_VAR(&engine); - if (zephir_array_isset_string_fetch(&engine, &options, SL("ENGINE"), 0)) { - if (zephir_is_true(&engine)) { - ZEPHIR_INIT_VAR(&_0$$5); - ZEPHIR_CONCAT_SV(&_0$$5, "ENGINE=", &engine); - zephir_array_append(&tableOptions, &_0$$5, PH_SEPARATE, "phalcon/Db/Dialect/Mysql.zep", 857); + ZEPHIR_INIT_VAR(&sqlColumns); + array_init(&sqlColumns); + ZEPHIR_OBS_VAR(&eager); + zephir_array_isset_string_fetch(&eager, &column, SL("eager"), 0); + if (ZEPHIR_IS_LONG(&columnType, 352)) { + zephir_read_property(&_0$$4, this_ptr, ZEND_STRL("models"), PH_NOISY_CC | PH_READONLY); + zephir_is_iterable(&_0$$4, 0, "phalcon/Mvc/Model/Query.zep", 3196); + if (Z_TYPE_P(&_0$$4) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_0$$4), _3$$4, _4$$4, _1$$4) + { + ZEPHIR_INIT_NVAR(&modelName); + if (_4$$4 != NULL) { + ZVAL_STR_COPY(&modelName, _4$$4); + } else { + ZVAL_LONG(&modelName, _3$$4); + } + ZEPHIR_INIT_NVAR(&source); + ZVAL_COPY(&source, _1$$4); + ZEPHIR_INIT_NVAR(&sqlColumn); + zephir_create_array(&sqlColumn, 4, 0); + add_assoc_stringl_ex(&sqlColumn, SL("type"), SL("object")); + zephir_array_update_string(&sqlColumn, SL("model"), &modelName, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&sqlColumn, SL("column"), &source, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_FUNCTION(&_5$$5, "lcfirst", &_6, 96, &modelName); + zephir_check_call_status(); + zephir_array_update_string(&sqlColumn, SL("balias"), &_5$$5, PH_COPY | PH_SEPARATE); + if (Z_TYPE_P(&eager) != IS_NULL) { + zephir_array_update_string(&sqlColumn, SL("eager"), &eager, PH_COPY | PH_SEPARATE); + zephir_array_fetch_string(&_7$$6, &column, SL("eagerType"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 3190); + zephir_array_update_string(&sqlColumn, SL("eagerType"), &_7$$6, PH_COPY | PH_SEPARATE); + } + zephir_array_append(&sqlColumns, &sqlColumn, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3193); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_0$$4, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2$$4, &_0$$4, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2$$4)) { + break; + } + ZEPHIR_CALL_METHOD(&modelName, &_0$$4, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&source, &_0$$4, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_8$$7); + zephir_create_array(&_8$$7, 4, 0); + add_assoc_stringl_ex(&_8$$7, SL("type"), SL("object")); + zephir_array_update_string(&_8$$7, SL("model"), &modelName, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_8$$7, SL("column"), &source, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_FUNCTION(&_9$$7, "lcfirst", &_6, 96, &modelName); + zephir_check_call_status(); + zephir_array_update_string(&_8$$7, SL("balias"), &_9$$7, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&sqlColumn, &_8$$7); + if (Z_TYPE_P(&eager) != IS_NULL) { + zephir_array_update_string(&sqlColumn, SL("eager"), &eager, PH_COPY | PH_SEPARATE); + zephir_array_fetch_string(&_10$$8, &column, SL("eagerType"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 3190); + zephir_array_update_string(&sqlColumn, SL("eagerType"), &_10$$8, PH_COPY | PH_SEPARATE); + } + zephir_array_append(&sqlColumns, &sqlColumn, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3193); + ZEPHIR_CALL_METHOD(NULL, &_0$$4, "next", NULL, 0); + zephir_check_call_status(); + } } + ZEPHIR_INIT_NVAR(&source); + ZEPHIR_INIT_NVAR(&modelName); + RETURN_CTOR(&sqlColumns); } - ZEPHIR_OBS_VAR(&autoIncrement); - if (zephir_array_isset_string_fetch(&autoIncrement, &options, SL("AUTO_INCREMENT"), 0)) { - if (zephir_is_true(&autoIncrement)) { - ZEPHIR_INIT_VAR(&_1$$7); - ZEPHIR_CONCAT_SV(&_1$$7, "AUTO_INCREMENT=", &autoIncrement); - zephir_array_append(&tableOptions, &_1$$7, PH_SEPARATE, "phalcon/Db/Dialect/Mysql.zep", 866); + if (UNEXPECTED(!(zephir_array_isset_string(&column, SL("column"))))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted SELECT AST", "phalcon/Mvc/Model/Query.zep", 3200); + return; + } + if (ZEPHIR_IS_LONG(&columnType, 353)) { + zephir_read_property(&_11$$10, this_ptr, ZEND_STRL("sqlAliases"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&sqlAliases, &_11$$10); + ZEPHIR_OBS_VAR(&columnDomain); + zephir_array_fetch_string(&columnDomain, &column, SL("column"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3212); + ZEPHIR_OBS_NVAR(&source); + if (UNEXPECTED(!(zephir_array_isset_fetch(&source, &sqlAliases, &columnDomain, 0)))) { + ZEPHIR_INIT_VAR(&_12$$11); + object_init_ex(&_12$$11, phalcon_mvc_model_exception_ce); + zephir_read_property(&_13$$11, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_14$$11); + ZEPHIR_CONCAT_SVSV(&_14$$11, "Unknown model or alias '", &columnDomain, "' (2), when preparing: ", &_13$$11); + ZEPHIR_CALL_METHOD(NULL, &_12$$11, "__construct", NULL, 8, &_14$$11); + zephir_check_call_status(); + zephir_throw_exception_debug(&_12$$11, "phalcon/Mvc/Model/Query.zep", 3217); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CPY_WRT(&sqlColumnAlias, &source); + ZEPHIR_OBS_VAR(&preparedAlias); + zephir_array_isset_string_fetch(&preparedAlias, &column, SL("balias"), 0); + zephir_read_property(&_11$$10, this_ptr, ZEND_STRL("sqlAliasesModels"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&sqlAliasesModels, &_11$$10); + ZEPHIR_OBS_NVAR(&modelName); + zephir_array_fetch(&modelName, &sqlAliasesModels, &columnDomain, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3231); + if (Z_TYPE_P(&preparedAlias) != IS_STRING) { + if (ZEPHIR_IS_EQUAL(&columnDomain, &modelName)) { + ZEPHIR_CALL_FUNCTION(&preparedAlias, "lcfirst", &_6, 96, &modelName); + zephir_check_call_status(); + } else { + ZEPHIR_CPY_WRT(&preparedAlias, &columnDomain); + } + } + ZEPHIR_INIT_VAR(&_15$$10); + zephir_create_array(&_15$$10, 4, 0); + add_assoc_stringl_ex(&_15$$10, SL("type"), SL("object")); + zephir_array_update_string(&_15$$10, SL("model"), &modelName, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_15$$10, SL("column"), &sqlColumnAlias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_15$$10, SL("balias"), &preparedAlias, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&sqlColumn, &_15$$10); + if (Z_TYPE_P(&eager) != IS_NULL) { + zephir_array_update_string(&sqlColumn, SL("eager"), &eager, PH_COPY | PH_SEPARATE); + zephir_array_fetch_string(&_16$$15, &column, SL("eagerType"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 3258); + zephir_array_update_string(&sqlColumn, SL("eagerType"), &_16$$15, PH_COPY | PH_SEPARATE); } + zephir_array_append(&sqlColumns, &sqlColumn, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3261); + RETURN_CTOR(&sqlColumns); } - ZEPHIR_OBS_VAR(&tableCollation); - if (zephir_array_isset_string_fetch(&tableCollation, &options, SL("TABLE_COLLATION"), 0)) { - if (zephir_is_true(&tableCollation)) { - ZEPHIR_INIT_VAR(&collationParts); - zephir_fast_explode_str(&collationParts, SL("_"), &tableCollation, LONG_MAX); - zephir_array_fetch_long(&_2$$9, &collationParts, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Dialect/Mysql.zep", 876); - ZEPHIR_INIT_VAR(&_3$$9); - ZEPHIR_CONCAT_SV(&_3$$9, "DEFAULT CHARSET=", &_2$$9); - zephir_array_append(&tableOptions, &_3$$9, PH_SEPARATE, "phalcon/Db/Dialect/Mysql.zep", 876); - ZEPHIR_INIT_VAR(&_4$$9); - ZEPHIR_CONCAT_SV(&_4$$9, "COLLATE=", &tableCollation); - zephir_array_append(&tableOptions, &_4$$9, PH_SEPARATE, "phalcon/Db/Dialect/Mysql.zep", 877); + if (ZEPHIR_IS_LONG(&columnType, 354)) { + ZEPHIR_INIT_VAR(&_17$$16); + zephir_create_array(&_17$$16, 1, 0); + add_assoc_stringl_ex(&_17$$16, SL("type"), SL("scalar")); + ZEPHIR_CPY_WRT(&sqlColumn, &_17$$16); + ZEPHIR_OBS_VAR(&columnData); + zephir_array_fetch_string(&columnData, &column, SL("column"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3275); + ZEPHIR_CALL_METHOD(&sqlExprColumn, this_ptr, "getexpression", NULL, 468, &columnData); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&balias); + if (zephir_array_isset_string_fetch(&balias, &sqlExprColumn, SL("balias"), 0)) { + zephir_array_update_string(&sqlColumn, SL("balias"), &balias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&sqlColumn, SL("sqlAlias"), &balias, PH_COPY | PH_SEPARATE); + } + if (Z_TYPE_P(&eager) != IS_NULL) { + zephir_array_update_string(&sqlColumn, SL("eager"), &eager, PH_COPY | PH_SEPARATE); + zephir_array_fetch_string(&_18$$18, &column, SL("eagerType"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 3288); + zephir_array_update_string(&sqlColumn, SL("eagerType"), &_18$$18, PH_COPY | PH_SEPARATE); } + zephir_array_update_string(&sqlColumn, SL("column"), &sqlExprColumn, PH_COPY | PH_SEPARATE); + zephir_array_append(&sqlColumns, &sqlColumn, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3292); + RETURN_CTOR(&sqlColumns); } - zephir_fast_join_str(return_value, SL(" "), &tableOptions); - RETURN_MM(); + ZEPHIR_INIT_VAR(&_19); + object_init_ex(&_19, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_20); + ZEPHIR_CONCAT_SV(&_20, "Unknown type of column ", &columnType); + ZEPHIR_CALL_METHOD(NULL, &_19, "__construct", NULL, 8, &_20); + zephir_check_call_status(); + zephir_throw_exception_debug(&_19, "phalcon/Mvc/Model/Query.zep", 3297); + ZEPHIR_MM_RESTORE(); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, checkColumnSizeAndScale) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getSingleJoin) { - zval columnSql; + zend_string *_8$$4; + zend_ulong _7$$4; + zval _1$$3, _3$$3, _4$$3, _13$$5, _15$$5, _16$$5, _20$$7, _22$$7, _23$$7; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_12 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *column, column_sub, _0, _1$$3, _2$$3, _3$$3, _4$$4, _5$$4; + zval *joinType_param = NULL, *joinSource, joinSource_sub, *modelAlias_param = NULL, *joinAlias_param = NULL, *relation, relation_sub, fields, referencedFields, sqlJoinConditions, sqlJoinPartialConditions, position, field, referencedField, _0$$3, _2$$3, *_5$$4, _6$$4, _9$$6, _10$$6, _11$$6, _14$$5, _17$$8, _18$$8, _19$$8, _21$$7; + zval joinType, modelAlias, joinAlias; zval *this_ptr = getThis(); - ZVAL_UNDEF(&column_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&joinType); + ZVAL_UNDEF(&modelAlias); + ZVAL_UNDEF(&joinAlias); + ZVAL_UNDEF(&joinSource_sub); + ZVAL_UNDEF(&relation_sub); + ZVAL_UNDEF(&fields); + ZVAL_UNDEF(&referencedFields); + ZVAL_UNDEF(&sqlJoinConditions); + ZVAL_UNDEF(&sqlJoinPartialConditions); + ZVAL_UNDEF(&position); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&referencedField); + ZVAL_UNDEF(&_0$$3); ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_9$$6); + ZVAL_UNDEF(&_10$$6); + ZVAL_UNDEF(&_11$$6); + ZVAL_UNDEF(&_14$$5); + ZVAL_UNDEF(&_17$$8); + ZVAL_UNDEF(&_18$$8); + ZVAL_UNDEF(&_19$$8); + ZVAL_UNDEF(&_21$$7); + ZVAL_UNDEF(&_1$$3); ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&columnSql); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_13$$5); + ZVAL_UNDEF(&_15$$5); + ZVAL_UNDEF(&_16$$5); + ZVAL_UNDEF(&_20$$7); + ZVAL_UNDEF(&_22$$7); + ZVAL_UNDEF(&_23$$7); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + ZEND_PARSE_PARAMETERS_START(5, 5) + Z_PARAM_STR(joinType) + Z_PARAM_ZVAL(joinSource) + Z_PARAM_STR(modelAlias) + Z_PARAM_STR(joinAlias) + Z_PARAM_OBJECT_OF_CLASS(relation, phalcon_mvc_model_relationinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &column); + zephir_fetch_params(1, 5, 0, &joinType_param, &joinSource, &modelAlias_param, &joinAlias_param, &relation); + if (UNEXPECTED(Z_TYPE_P(joinType_param) != IS_STRING && Z_TYPE_P(joinType_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'joinType' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(joinType_param) == IS_STRING)) { + zephir_get_strval(&joinType, joinType_param); + } else { + ZEPHIR_INIT_VAR(&joinType); + } + zephir_get_strval(&modelAlias, modelAlias_param); + zephir_get_strval(&joinAlias, joinAlias_param); - ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL, 0); + ZEPHIR_INIT_VAR(&sqlJoinConditions); + ZVAL_NULL(&sqlJoinConditions); + ZEPHIR_CALL_METHOD(&fields, relation, "getfields", NULL, 0); zephir_check_call_status(); - if (zephir_is_true(&_0)) { - ZEPHIR_CALL_METHOD(&_1$$3, column, "getsize", NULL, 0); + ZEPHIR_CALL_METHOD(&referencedFields, relation, "getreferencedfields", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&fields) != IS_ARRAY) { + ZEPHIR_INIT_VAR(&_0$$3); + zephir_create_array(&_0$$3, 1, 0); + ZEPHIR_INIT_VAR(&_1$$3); + zephir_create_array(&_1$$3, 4, 0); + add_assoc_stringl_ex(&_1$$3, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_1$$3, SL("op"), SL("=")); + ZEPHIR_INIT_VAR(&_3$$3); + zephir_create_array(&_3$$3, 3, 0); + add_assoc_long_ex(&_3$$3, SL("type"), 355); + zephir_array_update_string(&_3$$3, SL("domain"), &modelAlias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_3$$3, SL("name"), &fields, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_2$$3, this_ptr, "getqualified", NULL, 469, &_3$$3); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_CONCAT_SV(&_2$$3, "(", &_1$$3); - zephir_concat_self(&columnSql, &_2$$3); - ZEPHIR_CALL_METHOD(&_3$$3, column, "getscale", NULL, 0); + zephir_array_update_string(&_1$$3, SL("left"), &_2$$3, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_4$$3); + zephir_create_array(&_4$$3, 3, 0); + add_assoc_stringl_ex(&_4$$3, SL("type"), SL("qualified")); + zephir_array_update_string(&_4$$3, SL("domain"), &joinAlias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_4$$3, SL("name"), &referencedFields, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_2$$3, this_ptr, "getqualified", NULL, 469, &_4$$3); zephir_check_call_status(); - if (zephir_is_true(&_3$$3)) { - ZEPHIR_CALL_METHOD(&_4$$4, column, "getscale", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_5$$4); - ZEPHIR_CONCAT_SVS(&_5$$4, ",", &_4$$4, ")"); - zephir_concat_self(&columnSql, &_5$$4); + zephir_array_update_string(&_1$$3, SL("right"), &_2$$3, PH_COPY | PH_SEPARATE); + zephir_array_fast_append(&_0$$3, &_1$$3); + ZEPHIR_CPY_WRT(&sqlJoinConditions, &_0$$3); + } else { + ZEPHIR_INIT_VAR(&sqlJoinPartialConditions); + array_init(&sqlJoinPartialConditions); + zephir_is_iterable(&fields, 0, "phalcon/Mvc/Model/Query.zep", 3387); + if (Z_TYPE_P(&fields) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&fields), _7$$4, _8$$4, _5$$4) + { + ZEPHIR_INIT_NVAR(&position); + if (_8$$4 != NULL) { + ZVAL_STR_COPY(&position, _8$$4); + } else { + ZVAL_LONG(&position, _7$$4); + } + ZEPHIR_INIT_NVAR(&field); + ZVAL_COPY(&field, _5$$4); + ZEPHIR_OBS_NVAR(&referencedField); + if (UNEXPECTED(!(zephir_array_isset_fetch(&referencedField, &referencedFields, &position, 0)))) { + ZEPHIR_INIT_NVAR(&_9$$6); + object_init_ex(&_9$$6, phalcon_mvc_model_exception_ce); + zephir_read_property(&_10$$6, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_11$$6); + ZEPHIR_CONCAT_SVSVSV(&_11$$6, "The number of fields must be equal to the number of referenced fields in join ", &modelAlias, "-", &joinAlias, ", when preparing: ", &_10$$6); + ZEPHIR_CALL_METHOD(NULL, &_9$$6, "__construct", &_12, 8, &_11$$6); + zephir_check_call_status(); + zephir_throw_exception_debug(&_9$$6, "phalcon/Mvc/Model/Query.zep", 3359); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_NVAR(&_13$$5); + zephir_create_array(&_13$$5, 4, 0); + add_assoc_stringl_ex(&_13$$5, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_13$$5, SL("op"), SL("=")); + ZEPHIR_INIT_NVAR(&_15$$5); + zephir_create_array(&_15$$5, 3, 0); + add_assoc_long_ex(&_15$$5, SL("type"), 355); + zephir_array_update_string(&_15$$5, SL("domain"), &modelAlias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_15$$5, SL("name"), &field, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_14$$5, this_ptr, "getqualified", NULL, 469, &_15$$5); + zephir_check_call_status(); + zephir_array_update_string(&_13$$5, SL("left"), &_14$$5, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_16$$5); + zephir_create_array(&_16$$5, 3, 0); + add_assoc_stringl_ex(&_16$$5, SL("type"), SL("qualified")); + zephir_array_update_string(&_16$$5, SL("domain"), &joinAlias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_16$$5, SL("name"), &referencedField, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_14$$5, this_ptr, "getqualified", NULL, 469, &_16$$5); + zephir_check_call_status(); + zephir_array_update_string(&_13$$5, SL("right"), &_14$$5, PH_COPY | PH_SEPARATE); + zephir_array_append(&sqlJoinPartialConditions, &_13$$5, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3384); + } ZEND_HASH_FOREACH_END(); } else { - zephir_concat_self_str(&columnSql, ")", sizeof(")") - 1); + ZEPHIR_CALL_METHOD(NULL, &fields, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_6$$4, &fields, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_6$$4)) { + break; + } + ZEPHIR_CALL_METHOD(&position, &fields, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&field, &fields, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&referencedField); + if (UNEXPECTED(!(zephir_array_isset_fetch(&referencedField, &referencedFields, &position, 0)))) { + ZEPHIR_INIT_NVAR(&_17$$8); + object_init_ex(&_17$$8, phalcon_mvc_model_exception_ce); + zephir_read_property(&_18$$8, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_19$$8); + ZEPHIR_CONCAT_SVSVSV(&_19$$8, "The number of fields must be equal to the number of referenced fields in join ", &modelAlias, "-", &joinAlias, ", when preparing: ", &_18$$8); + ZEPHIR_CALL_METHOD(NULL, &_17$$8, "__construct", &_12, 8, &_19$$8); + zephir_check_call_status(); + zephir_throw_exception_debug(&_17$$8, "phalcon/Mvc/Model/Query.zep", 3359); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_NVAR(&_20$$7); + zephir_create_array(&_20$$7, 4, 0); + add_assoc_stringl_ex(&_20$$7, SL("type"), SL("binary-op")); + add_assoc_stringl_ex(&_20$$7, SL("op"), SL("=")); + ZEPHIR_INIT_NVAR(&_22$$7); + zephir_create_array(&_22$$7, 3, 0); + add_assoc_long_ex(&_22$$7, SL("type"), 355); + zephir_array_update_string(&_22$$7, SL("domain"), &modelAlias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_22$$7, SL("name"), &field, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_21$$7, this_ptr, "getqualified", NULL, 469, &_22$$7); + zephir_check_call_status(); + zephir_array_update_string(&_20$$7, SL("left"), &_21$$7, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_23$$7); + zephir_create_array(&_23$$7, 3, 0); + add_assoc_stringl_ex(&_23$$7, SL("type"), SL("qualified")); + zephir_array_update_string(&_23$$7, SL("domain"), &joinAlias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_23$$7, SL("name"), &referencedField, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_21$$7, this_ptr, "getqualified", NULL, 469, &_23$$7); + zephir_check_call_status(); + zephir_array_update_string(&_20$$7, SL("right"), &_21$$7, PH_COPY | PH_SEPARATE); + zephir_array_append(&sqlJoinPartialConditions, &_20$$7, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3384); + ZEPHIR_CALL_METHOD(NULL, &fields, "next", NULL, 0); + zephir_check_call_status(); + } } + ZEPHIR_INIT_NVAR(&field); + ZEPHIR_INIT_NVAR(&position); } - RETURN_CTOR(&columnSql); + zephir_create_array(return_value, 3, 0); + zephir_array_update_string(return_value, SL("type"), &joinType, PH_COPY | PH_SEPARATE); + zephir_array_update_string(return_value, SL("source"), joinSource, PH_COPY | PH_SEPARATE); + zephir_array_update_string(return_value, SL("conditions"), &sqlJoinConditions, PH_COPY | PH_SEPARATE); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Mysql, checkColumnUnsigned) +static PHP_METHOD(Phalcon_Mvc_Model_Query, getTable) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *column, column_sub, _0; + zval qualifiedName; + zval *manager, manager_sub, *qualifiedName_param = NULL, modelName, model, source, schema; zval *this_ptr = getThis(); - ZVAL_UNDEF(&column_sub); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&manager_sub); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&source); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&qualifiedName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(manager, phalcon_mvc_model_managerinterface_ce) + Z_PARAM_ARRAY(qualifiedName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &column); + zephir_fetch_params(1, 2, 0, &manager, &qualifiedName_param); + zephir_get_arrval(&qualifiedName, qualifiedName_param); - ZEPHIR_CALL_METHOD(&_0, column, "isunsigned", NULL, 0); + ZEPHIR_OBS_VAR(&modelName); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&modelName, &qualifiedName, SL("name"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted SELECT AST", "phalcon/Mvc/Model/Query.zep", 3409); + return; + } + ZEPHIR_CALL_METHOD(&model, manager, "load", NULL, 0, &modelName); zephir_check_call_status(); - if (zephir_is_true(&_0)) { - RETURN_MM_STRING(" UNSIGNED"); + ZEPHIR_CALL_METHOD(&source, &model, "getsource", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&schema, &model, "getschema", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&schema)) { + zephir_create_array(return_value, 2, 0); + zephir_array_fast_append(return_value, &schema); + zephir_array_fast_append(return_value, &source); + RETURN_MM(); } - RETURN_MM_STRING(""); + RETURN_CCTOR(&source); } +static PHP_METHOD(Phalcon_Mvc_Model_Query, getWriteConnection) +{ + zend_bool _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval intermediate, bindParams, bindTypes; + zval *model, model_sub, *intermediate_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, connection, transaction, _0; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Postgresql) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Postgresql, phalcon, db_dialect_postgresql, phalcon_db_dialect_ce, phalcon_db_dialect_postgresql_method_entry, 0); - - zend_declare_property_string(phalcon_db_dialect_postgresql_ce, SL("escapeChar"), "\"", ZEND_ACC_PROTECTED); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addColumn) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *column, column_sub, columnDefinition, _0, _1, _2, _3, _4, _7, _5$$3, _6$$3; - zval tableName, schemaName, sql; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&column_sub); - ZVAL_UNDEF(&columnDefinition); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&transaction); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&intermediate); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 4) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY_OR_NULL(intermediate) + Z_PARAM_ARRAY(bindParams) + Z_PARAM_ARRAY(bindTypes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); + zephir_fetch_params(1, 1, 3, &model, &intermediate_param, &bindParams_param, &bindTypes_param); + if (!intermediate_param) { + ZEPHIR_INIT_VAR(&intermediate); } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); + zephir_get_arrval(&intermediate, intermediate_param); } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); + if (!bindParams_param) { + ZEPHIR_INIT_VAR(&bindParams); + array_init(&bindParams); } else { - ZEPHIR_INIT_VAR(&schemaName); - } - - - ZEPHIR_CALL_METHOD(&columnDefinition, this_ptr, "getcolumndefinition", NULL, 0, column); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_CONCAT_SVS(&_1, "ALTER TABLE ", &_0, " ADD COLUMN "); - zephir_get_strval(&sql, &_1); - ZEPHIR_CALL_METHOD(&_2, column, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_3); - ZEPHIR_CONCAT_SVSV(&_3, "\"", &_2, "\" ", &columnDefinition); - zephir_concat_self(&sql, &_3); - ZEPHIR_CALL_METHOD(&_4, column, "hasdefault", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_4)) { - ZEPHIR_CALL_METHOD(&_5$$3, this_ptr, "castdefault", NULL, 0, column); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_6$$3); - ZEPHIR_CONCAT_SV(&_6$$3, " DEFAULT ", &_5$$3); - zephir_concat_self(&sql, &_6$$3); + zephir_get_arrval(&bindParams, bindParams_param); } - ZEPHIR_CALL_METHOD(&_7, column, "isnotnull", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_7)) { - zephir_concat_self_str(&sql, " NOT NULL", sizeof(" NOT NULL") - 1); + if (!bindTypes_param) { + ZEPHIR_INIT_VAR(&bindTypes); + array_init(&bindTypes); } else { - zephir_concat_self_str(&sql, " NULL", sizeof(" NULL") - 1); + zephir_get_arrval(&bindTypes, bindTypes_param); } - RETURN_CTOR(&sql); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addForeignKey) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *reference, reference_sub, onDelete, onUpdate, _0, _1, _2, _5, _6, _7, _8, _9, _10, _3$$3, _4$$3, _11$$4, _12$$5; - zval tableName, schemaName, sql; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&reference_sub); - ZVAL_UNDEF(&onDelete); - ZVAL_UNDEF(&onUpdate); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_11$$4); - ZVAL_UNDEF(&_12$$5); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(reference, phalcon_db_referenceinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &reference); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); + ZEPHIR_INIT_VAR(&connection); + ZVAL_NULL(&connection); + zephir_read_property(&_0, this_ptr, ZEND_STRL("transaction"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&transaction, &_0); + _1 = Z_TYPE_P(&transaction) == IS_OBJECT; + if (_1) { + _1 = zephir_instance_of_ev(&transaction, phalcon_mvc_model_transactioninterface_ce); } - - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_CONCAT_SVS(&_1, "ALTER TABLE ", &_0, " ADD"); - zephir_get_strval(&sql, &_1); - ZEPHIR_CALL_METHOD(&_2, reference, "getname", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_2)) { - ZEPHIR_CALL_METHOD(&_3$$3, reference, "getname", NULL, 0); + if (_1) { + ZEPHIR_RETURN_CALL_METHOD(&transaction, "getconnection", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_4$$3); - ZEPHIR_CONCAT_SVS(&_4$$3, " CONSTRAINT \"", &_3$$3, "\""); - zephir_concat_self(&sql, &_4$$3); + RETURN_MM(); } - ZEPHIR_CALL_METHOD(&_6, reference, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_5, this_ptr, "getcolumnlist", NULL, 67, &_6); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_7, reference, "getreferencedtable", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_9, reference, "getreferencedcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_8, this_ptr, "getcolumnlist", NULL, 67, &_9); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_10); - ZEPHIR_CONCAT_SVSSVSVS(&_10, " FOREIGN KEY (", &_5, ")", " REFERENCES \"", &_7, "\" (", &_8, ")"); - zephir_concat_self(&sql, &_10); - ZEPHIR_CALL_METHOD(&onDelete, reference, "getondelete", NULL, 0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&onDelete))) { - ZEPHIR_INIT_VAR(&_11$$4); - ZEPHIR_CONCAT_SV(&_11$$4, " ON DELETE ", &onDelete); - zephir_concat_self(&sql, &_11$$4); + if ((zephir_method_exists_ex(model, ZEND_STRL("selectwriteconnection")) == SUCCESS)) { + ZEPHIR_CALL_METHOD(&connection, model, "selectwriteconnection", NULL, 0, &intermediate, &bindParams, &bindTypes); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&connection) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "selectWriteConnection did not return a connection", "phalcon/Mvc/Model/Query.zep", 3447); + return; + } + RETURN_CCTOR(&connection); } - ZEPHIR_CALL_METHOD(&onUpdate, reference, "getonupdate", NULL, 0); + ZEPHIR_RETURN_CALL_METHOD(model, "getwriteconnection", NULL, 0); zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&onUpdate))) { - ZEPHIR_INIT_VAR(&_12$$5); - ZEPHIR_CONCAT_SV(&_12$$5, " ON UPDATE ", &onUpdate); - zephir_concat_self(&sql, &_12$$5); - } - RETURN_CTOR(&sql); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addIndex) +static PHP_METHOD(Phalcon_Mvc_Model_Query, _prepareDelete) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval __$null, ast, delete, tables, models, modelsInstances, sqlTables, sqlModels, sqlAliases, sqlAliasesModelsInstances, deleteTables, manager, table, qualifiedName, modelName, model, source, schema, completeSource, alias, sqlDelete, where, limit, _0, *_1, _2, _4$$8, _5$$9, _7$$13, _8$$14, _9$$17, _10$$17, _11$$18; + zephir_fcall_cache_entry *_3 = NULL, *_6 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *index, index_sub, indexType, _0, _2, _3, _4, _5, _6, _7, _1$$4; - zval tableName, schemaName, sql; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&index_sub); - ZVAL_UNDEF(&indexType); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&ast); + ZVAL_UNDEF(&delete); + ZVAL_UNDEF(&tables); + ZVAL_UNDEF(&models); + ZVAL_UNDEF(&modelsInstances); + ZVAL_UNDEF(&sqlTables); + ZVAL_UNDEF(&sqlModels); + ZVAL_UNDEF(&sqlAliases); + ZVAL_UNDEF(&sqlAliasesModelsInstances); + ZVAL_UNDEF(&deleteTables); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&qualifiedName); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&source); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&completeSource); + ZVAL_UNDEF(&alias); + ZVAL_UNDEF(&sqlDelete); + ZVAL_UNDEF(&where); + ZVAL_UNDEF(&limit); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_1$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(index, phalcon_db_indexinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_4$$8); + ZVAL_UNDEF(&_5$$9); + ZVAL_UNDEF(&_7$$13); + ZVAL_UNDEF(&_8$$14); + ZVAL_UNDEF(&_9$$17); + ZVAL_UNDEF(&_10$$17); + ZVAL_UNDEF(&_11$$18); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("ast"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&ast, &_0); + ZEPHIR_OBS_VAR(&delete); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&delete, &ast, SL("delete"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted DELETE AST", "phalcon/Mvc/Model/Query.zep", 3469); + return; } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); + ZEPHIR_OBS_VAR(&tables); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&tables, &delete, SL("tables"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted DELETE AST", "phalcon/Mvc/Model/Query.zep", 3473); + return; } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); + ZEPHIR_INIT_VAR(&models); + array_init(&models); + ZEPHIR_INIT_VAR(&modelsInstances); + array_init(&modelsInstances); + ZEPHIR_INIT_VAR(&sqlTables); + array_init(&sqlTables); + ZEPHIR_INIT_VAR(&sqlModels); + array_init(&sqlModels); + ZEPHIR_INIT_VAR(&sqlAliases); + array_init(&sqlAliases); + ZEPHIR_INIT_VAR(&sqlAliasesModelsInstances); + array_init(&sqlAliasesModelsInstances); + if (!(zephir_array_isset_long(&tables, 0))) { + ZEPHIR_INIT_VAR(&deleteTables); + zephir_create_array(&deleteTables, 1, 0); + zephir_array_fast_append(&deleteTables, &tables); + } else { + ZEPHIR_CPY_WRT(&deleteTables, &tables); } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); + zephir_read_property(&_0, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&manager, &_0); + zephir_is_iterable(&deleteTables, 0, "phalcon/Mvc/Model/Query.zep", 3533); + if (Z_TYPE_P(&deleteTables) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&deleteTables), _1) + { + ZEPHIR_INIT_NVAR(&table); + ZVAL_COPY(&table, _1); + ZEPHIR_OBS_NVAR(&qualifiedName); + zephir_array_fetch_string(&qualifiedName, &table, SL("qualifiedName"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3497); + ZEPHIR_OBS_NVAR(&modelName); + zephir_array_fetch_string(&modelName, &qualifiedName, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3498); + ZEPHIR_CALL_METHOD(&model, &manager, "load", &_3, 0, &modelName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&source, &model, "getsource", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&schema, &model, "getschema", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&completeSource); + if (zephir_is_true(&schema)) { + ZEPHIR_INIT_NVAR(&_4$$8); + zephir_create_array(&_4$$8, 2, 0); + zephir_array_fast_append(&_4$$8, &source); + zephir_array_fast_append(&_4$$8, &schema); + ZEPHIR_CPY_WRT(&completeSource, &_4$$8); + } else { + ZEPHIR_INIT_NVAR(&_5$$9); + zephir_create_array(&_5$$9, 2, 0); + zephir_array_fast_append(&_5$$9, &source); + zephir_array_fast_append(&_5$$9, &__$null); + ZEPHIR_CPY_WRT(&completeSource, &_5$$9); + } + ZEPHIR_OBS_NVAR(&alias); + if (zephir_array_isset_string_fetch(&alias, &table, SL("alias"), 0)) { + zephir_array_update_zval(&sqlAliases, &alias, &alias, PH_COPY | PH_SEPARATE); + zephir_array_append(&completeSource, &alias, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3515); + zephir_array_append(&sqlTables, &completeSource, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3516); + zephir_array_update_zval(&sqlAliasesModelsInstances, &alias, &model, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&models, &alias, &modelName, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_zval(&sqlAliases, &modelName, &source, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliasesModelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); + zephir_array_append(&sqlTables, &source, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3522); + zephir_array_update_zval(&models, &modelName, &source, PH_COPY | PH_SEPARATE); + } + zephir_array_append(&sqlModels, &modelName, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3526); + zephir_array_update_zval(&modelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_INIT_VAR(&schemaName); + ZEPHIR_CALL_METHOD(NULL, &deleteTables, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &deleteTables, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&table, &deleteTables, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&qualifiedName); + zephir_array_fetch_string(&qualifiedName, &table, SL("qualifiedName"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3497); + ZEPHIR_OBS_NVAR(&modelName); + zephir_array_fetch_string(&modelName, &qualifiedName, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3498); + ZEPHIR_CALL_METHOD(&model, &manager, "load", &_6, 0, &modelName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&source, &model, "getsource", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&schema, &model, "getschema", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&schema)) { + ZEPHIR_INIT_NVAR(&_7$$13); + zephir_create_array(&_7$$13, 2, 0); + zephir_array_fast_append(&_7$$13, &source); + zephir_array_fast_append(&_7$$13, &schema); + ZEPHIR_CPY_WRT(&completeSource, &_7$$13); + } else { + ZEPHIR_INIT_NVAR(&_8$$14); + zephir_create_array(&_8$$14, 2, 0); + zephir_array_fast_append(&_8$$14, &source); + zephir_array_fast_append(&_8$$14, &__$null); + ZEPHIR_CPY_WRT(&completeSource, &_8$$14); + } + ZEPHIR_OBS_NVAR(&alias); + if (zephir_array_isset_string_fetch(&alias, &table, SL("alias"), 0)) { + zephir_array_update_zval(&sqlAliases, &alias, &alias, PH_COPY | PH_SEPARATE); + zephir_array_append(&completeSource, &alias, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3515); + zephir_array_append(&sqlTables, &completeSource, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3516); + zephir_array_update_zval(&sqlAliasesModelsInstances, &alias, &model, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&models, &alias, &modelName, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_zval(&sqlAliases, &modelName, &source, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliasesModelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); + zephir_array_append(&sqlTables, &source, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3522); + zephir_array_update_zval(&models, &modelName, &source, PH_COPY | PH_SEPARATE); + } + zephir_array_append(&sqlModels, &modelName, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3526); + zephir_array_update_zval(&modelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &deleteTables, "next", NULL, 0); + zephir_check_call_status(); + } } - - - ZEPHIR_CALL_METHOD(&_0, index, "getname", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_STRING_IDENTICAL(&_0, "PRIMARY")) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addprimarykey", NULL, 0, &tableName, &schemaName, index); + ZEPHIR_INIT_NVAR(&table); + zephir_update_property_zval(this_ptr, ZEND_STRL("models"), &models); + zephir_update_property_zval(this_ptr, ZEND_STRL("modelsInstances"), &modelsInstances); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliases"), &sqlAliases); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), &sqlAliasesModelsInstances); + ZEPHIR_INIT_VAR(&sqlDelete); + array_init(&sqlDelete); + zephir_array_update_string(&sqlDelete, SL("tables"), &sqlTables, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&sqlDelete, SL("models"), &sqlModels, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_VAR(&where); + if (zephir_array_isset_string_fetch(&where, &ast, SL("where"), 0)) { + ZVAL_BOOL(&_10$$17, 1); + ZEPHIR_CALL_METHOD(&_9$$17, this_ptr, "getexpression", NULL, 468, &where, &_10$$17); zephir_check_call_status(); - RETURN_MM(); + zephir_array_update_string(&sqlDelete, SL("where"), &_9$$17, PH_COPY | PH_SEPARATE); } - ZEPHIR_INIT_VAR(&sql); - ZVAL_STRING(&sql, "CREATE"); - ZEPHIR_CALL_METHOD(&indexType, index, "gettype", NULL, 0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&indexType))) { - ZEPHIR_INIT_VAR(&_1$$4); - ZEPHIR_CONCAT_SV(&_1$$4, " ", &indexType); - zephir_concat_self(&sql, &_1$$4); + ZEPHIR_OBS_VAR(&limit); + if (zephir_array_isset_string_fetch(&limit, &ast, SL("limit"), 0)) { + ZEPHIR_CALL_METHOD(&_11$$18, this_ptr, "getlimitclause", NULL, 482, &limit); + zephir_check_call_status(); + zephir_array_update_string(&sqlDelete, SL("limit"), &_11$$18, PH_COPY | PH_SEPARATE); } - ZEPHIR_CALL_METHOD(&_2, index, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_4); - ZEPHIR_CONCAT_SVSV(&_4, " INDEX \"", &_2, "\" ON ", &_3); - zephir_concat_self(&sql, &_4); - ZEPHIR_CALL_METHOD(&_6, index, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_5, this_ptr, "getcolumnlist", NULL, 67, &_6); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_7); - ZEPHIR_CONCAT_SVS(&_7, " (", &_5, ")"); - zephir_concat_self(&sql, &_7); - RETURN_CTOR(&sql); + RETURN_CCTOR(&sqlDelete); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addPrimaryKey) +static PHP_METHOD(Phalcon_Mvc_Model_Query, _prepareInsert) { + zval _5$$7, _10$$8; + zend_bool notQuoting = 0; + zval ast, qualifiedName, manager, modelName, model, source, schema, exprValues, exprValue, sqlInsert, metaData, fields, sqlFields, field, name, _0, _2, *_3, _4, _1$$6, _6$$7, _7$$7, _8$$7, _11$$8, _12$$8, _13$$8, *_14$$9, _15$$9, _16$$10, _18$$11, _19$$11, _20$$11, _22$$12, _24$$13, _25$$13, _26$$13; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_9 = NULL, *_17 = NULL, *_21 = NULL, *_23 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *index, index_sub, _0, _1, _2; - zval tableName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&index_sub); + ZVAL_UNDEF(&ast); + ZVAL_UNDEF(&qualifiedName); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&source); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&exprValues); + ZVAL_UNDEF(&exprValue); + ZVAL_UNDEF(&sqlInsert); + ZVAL_UNDEF(&metaData); + ZVAL_UNDEF(&fields); + ZVAL_UNDEF(&sqlFields); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&name); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(index, phalcon_db_indexinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } - - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2, index, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getcolumnlist", NULL, 67, &_2); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVSVS(return_value, "ALTER TABLE ", &_0, " ADD CONSTRAINT \"", &tableName, "_PRIMARY\" PRIMARY KEY (", &_1, ")"); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createTable) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL, *_9 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval definition, createLines, primaryColumns; - zval *tableName_param = NULL, *schemaName_param = NULL, *definition_param = NULL, temporary, options, table, columns, column, indexes, index, reference, references, indexName, indexType, onDelete, onUpdate, columnDefinition, *_2, _3, _82, _83, _0$$5, _1$$6, _5$$7, _6$$7, _7$$7, _11$$7, _12$$7, _14$$7, _8$$8, _10$$8, _13$$11, _15$$12, _16$$12, _17$$12, _18$$13, _19$$13, _20$$13, _23$$13, _24$$13, _26$$13, _21$$14, _22$$14, _25$$17, _27$$18, _28$$18, _29$$18, _30$$19, _31$$19, *_32$$20, _33$$20, _34$$22, _35$$22, _36$$22, _37$$24, _38$$24, _39$$24, _40$$25, _41$$25, _42$$25, _43$$25, _44$$25, _45$$25, _46$$28, _47$$28, _48$$28, _49$$30, _50$$30, _51$$30, _52$$31, _53$$31, _54$$31, _55$$31, _56$$31, _57$$31, *_58$$33, _59$$33, _60$$34, _61$$34, _62$$34, _63$$34, _64$$34, _65$$34, _66$$34, _67$$34, _68$$34, _69$$35, _70$$36, _71$$37, _72$$37, _73$$37, _74$$37, _75$$37, _76$$37, _77$$37, _78$$37, _79$$37, _80$$38, _81$$39, _84$$40, _85$$40; - zval tableName, schemaName, indexSql, indexSqlAfterCreate, columnLine, referenceSql, sql, _86; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&indexSql); - ZVAL_UNDEF(&indexSqlAfterCreate); - ZVAL_UNDEF(&columnLine); - ZVAL_UNDEF(&referenceSql); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&_86); - ZVAL_UNDEF(&temporary); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&column); - ZVAL_UNDEF(&indexes); - ZVAL_UNDEF(&index); - ZVAL_UNDEF(&reference); - ZVAL_UNDEF(&references); - ZVAL_UNDEF(&indexName); - ZVAL_UNDEF(&indexType); - ZVAL_UNDEF(&onDelete); - ZVAL_UNDEF(&onUpdate); - ZVAL_UNDEF(&columnDefinition); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_82); - ZVAL_UNDEF(&_83); - ZVAL_UNDEF(&_0$$5); + ZVAL_UNDEF(&_4); ZVAL_UNDEF(&_1$$6); - ZVAL_UNDEF(&_5$$7); ZVAL_UNDEF(&_6$$7); ZVAL_UNDEF(&_7$$7); - ZVAL_UNDEF(&_11$$7); - ZVAL_UNDEF(&_12$$7); - ZVAL_UNDEF(&_14$$7); - ZVAL_UNDEF(&_8$$8); - ZVAL_UNDEF(&_10$$8); - ZVAL_UNDEF(&_13$$11); - ZVAL_UNDEF(&_15$$12); - ZVAL_UNDEF(&_16$$12); - ZVAL_UNDEF(&_17$$12); - ZVAL_UNDEF(&_18$$13); - ZVAL_UNDEF(&_19$$13); - ZVAL_UNDEF(&_20$$13); - ZVAL_UNDEF(&_23$$13); + ZVAL_UNDEF(&_8$$7); + ZVAL_UNDEF(&_11$$8); + ZVAL_UNDEF(&_12$$8); + ZVAL_UNDEF(&_13$$8); + ZVAL_UNDEF(&_15$$9); + ZVAL_UNDEF(&_16$$10); + ZVAL_UNDEF(&_18$$11); + ZVAL_UNDEF(&_19$$11); + ZVAL_UNDEF(&_20$$11); + ZVAL_UNDEF(&_22$$12); ZVAL_UNDEF(&_24$$13); + ZVAL_UNDEF(&_25$$13); ZVAL_UNDEF(&_26$$13); - ZVAL_UNDEF(&_21$$14); - ZVAL_UNDEF(&_22$$14); - ZVAL_UNDEF(&_25$$17); - ZVAL_UNDEF(&_27$$18); - ZVAL_UNDEF(&_28$$18); - ZVAL_UNDEF(&_29$$18); - ZVAL_UNDEF(&_30$$19); - ZVAL_UNDEF(&_31$$19); - ZVAL_UNDEF(&_33$$20); - ZVAL_UNDEF(&_34$$22); - ZVAL_UNDEF(&_35$$22); - ZVAL_UNDEF(&_36$$22); - ZVAL_UNDEF(&_37$$24); - ZVAL_UNDEF(&_38$$24); - ZVAL_UNDEF(&_39$$24); - ZVAL_UNDEF(&_40$$25); - ZVAL_UNDEF(&_41$$25); - ZVAL_UNDEF(&_42$$25); - ZVAL_UNDEF(&_43$$25); - ZVAL_UNDEF(&_44$$25); - ZVAL_UNDEF(&_45$$25); - ZVAL_UNDEF(&_46$$28); - ZVAL_UNDEF(&_47$$28); - ZVAL_UNDEF(&_48$$28); - ZVAL_UNDEF(&_49$$30); - ZVAL_UNDEF(&_50$$30); - ZVAL_UNDEF(&_51$$30); - ZVAL_UNDEF(&_52$$31); - ZVAL_UNDEF(&_53$$31); - ZVAL_UNDEF(&_54$$31); - ZVAL_UNDEF(&_55$$31); - ZVAL_UNDEF(&_56$$31); - ZVAL_UNDEF(&_57$$31); - ZVAL_UNDEF(&_59$$33); - ZVAL_UNDEF(&_60$$34); - ZVAL_UNDEF(&_61$$34); - ZVAL_UNDEF(&_62$$34); - ZVAL_UNDEF(&_63$$34); - ZVAL_UNDEF(&_64$$34); - ZVAL_UNDEF(&_65$$34); - ZVAL_UNDEF(&_66$$34); - ZVAL_UNDEF(&_67$$34); - ZVAL_UNDEF(&_68$$34); - ZVAL_UNDEF(&_69$$35); - ZVAL_UNDEF(&_70$$36); - ZVAL_UNDEF(&_71$$37); - ZVAL_UNDEF(&_72$$37); - ZVAL_UNDEF(&_73$$37); - ZVAL_UNDEF(&_74$$37); - ZVAL_UNDEF(&_75$$37); - ZVAL_UNDEF(&_76$$37); - ZVAL_UNDEF(&_77$$37); - ZVAL_UNDEF(&_78$$37); - ZVAL_UNDEF(&_79$$37); - ZVAL_UNDEF(&_80$$38); - ZVAL_UNDEF(&_81$$39); - ZVAL_UNDEF(&_84$$40); - ZVAL_UNDEF(&_85$$40); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&createLines); - ZVAL_UNDEF(&primaryColumns); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_ARRAY(definition) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_5$$7); + ZVAL_UNDEF(&_10$$8); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &definition_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("ast"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&ast, &_0); + if (UNEXPECTED(!(zephir_array_isset_string(&ast, SL("qualifiedName"))))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted INSERT AST", "phalcon/Mvc/Model/Query.zep", 3567); + return; } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); + if (UNEXPECTED(!(zephir_array_isset_string(&ast, SL("values"))))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted INSERT AST", "phalcon/Mvc/Model/Query.zep", 3571); + return; } - ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); - - - ZEPHIR_OBS_VAR(&columns); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&columns, &definition, SL("columns"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/Db/Dialect/Postgresql.zep", 134); + ZEPHIR_OBS_VAR(&qualifiedName); + zephir_array_fetch_string(&qualifiedName, &ast, SL("qualifiedName"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3574); + if (UNEXPECTED(!(zephir_array_isset_string(&qualifiedName, SL("name"))))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted INSERT AST", "phalcon/Mvc/Model/Query.zep", 3578); return; } - ZEPHIR_CALL_METHOD(&table, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); + zephir_read_property(&_0, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&manager, &_0); + ZEPHIR_OBS_VAR(&modelName); + zephir_array_fetch_string(&modelName, &qualifiedName, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3582); + ZEPHIR_CALL_METHOD(&model, &manager, "load", NULL, 0, &modelName); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&temporary); - ZVAL_BOOL(&temporary, 0); - ZEPHIR_OBS_VAR(&options); - if (zephir_array_isset_string_fetch(&options, &definition, SL("options"), 0)) { - ZEPHIR_OBS_NVAR(&temporary); - zephir_array_isset_string_fetch(&temporary, &options, SL("temporary"), 0); - } - if (zephir_is_true(&temporary)) { - ZEPHIR_INIT_VAR(&_0$$5); - ZEPHIR_CONCAT_SVS(&_0$$5, "CREATE TEMPORARY TABLE ", &table, " (\n\t"); - zephir_get_strval(&sql, &_0$$5); - } else { + ZEPHIR_CALL_METHOD(&source, &model, "getsource", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&schema, &model, "getschema", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&schema)) { ZEPHIR_INIT_VAR(&_1$$6); - ZEPHIR_CONCAT_SVS(&_1$$6, "CREATE TABLE ", &table, " (\n\t"); - zephir_get_strval(&sql, &_1$$6); + zephir_create_array(&_1$$6, 2, 0); + zephir_array_fast_append(&_1$$6, &schema); + zephir_array_fast_append(&_1$$6, &source); + ZEPHIR_CPY_WRT(&source, &_1$$6); } - ZEPHIR_INIT_VAR(&indexSqlAfterCreate); - ZEPHIR_INIT_VAR(&createLines); - array_init(&createLines); - ZEPHIR_INIT_VAR(&primaryColumns); - array_init(&primaryColumns); - zephir_is_iterable(&columns, 0, "phalcon/Db/Dialect/Postgresql.zep", 198); - if (Z_TYPE_P(&columns) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&columns), _2) + notQuoting = 0; + ZEPHIR_INIT_VAR(&exprValues); + array_init(&exprValues); + zephir_array_fetch_string(&_2, &ast, SL("values"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 3595); + zephir_is_iterable(&_2, 0, "phalcon/Mvc/Model/Query.zep", 3603); + if (Z_TYPE_P(&_2) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_2), _3) { - ZEPHIR_INIT_NVAR(&column); - ZVAL_COPY(&column, _2); - ZEPHIR_CALL_METHOD(&columnDefinition, this_ptr, "getcolumndefinition", &_4, 0, &column); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_5$$7, &column, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_6$$7); - ZEPHIR_CONCAT_SVSV(&_6$$7, "\"", &_5$$7, "\" ", &columnDefinition); - zephir_get_strval(&columnLine, &_6$$7); - ZEPHIR_CALL_METHOD(&_7$$7, &column, "hasdefault", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_7$$7)) { - ZEPHIR_CALL_METHOD(&_8$$8, this_ptr, "castdefault", &_9, 0, &column); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_10$$8); - ZEPHIR_CONCAT_SV(&_10$$8, " DEFAULT ", &_8$$8); - zephir_concat_self(&columnLine, &_10$$8); - } - ZEPHIR_CALL_METHOD(&_11$$7, &column, "isnotnull", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_11$$7)) { - zephir_concat_self_str(&columnLine, " NOT NULL", sizeof(" NOT NULL") - 1); + ZEPHIR_INIT_NVAR(&exprValue); + ZVAL_COPY(&exprValue, _3); + ZEPHIR_INIT_NVAR(&_5$$7); + zephir_create_array(&_5$$7, 2, 0); + ZEPHIR_OBS_NVAR(&_6$$7); + zephir_array_fetch_string(&_6$$7, &exprValue, SL("type"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3598); + zephir_array_update_string(&_5$$7, SL("type"), &_6$$7, PH_COPY | PH_SEPARATE); + if (notQuoting) { + ZVAL_BOOL(&_8$$7, 1); } else { - zephir_concat_self_str(&columnLine, " NULL", sizeof(" NULL") - 1); - } - ZEPHIR_CALL_METHOD(&_12$$7, &column, "isprimary", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_12$$7)) { - ZEPHIR_CALL_METHOD(&_13$$11, &column, "getname", NULL, 0); - zephir_check_call_status(); - zephir_array_append(&primaryColumns, &_13$$11, PH_SEPARATE, "phalcon/Db/Dialect/Postgresql.zep", 185); + ZVAL_BOOL(&_8$$7, 0); } - zephir_array_append(&createLines, &columnLine, PH_SEPARATE, "phalcon/Db/Dialect/Postgresql.zep", 188); - ZEPHIR_CALL_METHOD(&_14$$7, &column, "getcomment", NULL, 0); + ZEPHIR_CALL_METHOD(&_7$$7, this_ptr, "getexpression", &_9, 468, &exprValue, &_8$$7); zephir_check_call_status(); - if (zephir_is_true(&_14$$7)) { - ZEPHIR_CALL_METHOD(&_15$$12, &column, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_16$$12, &column, "getcomment", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_17$$12); - ZEPHIR_CONCAT_SVSVSVS(&_17$$12, " COMMENT ON COLUMN ", &table, ".\"", &_15$$12, "\" IS '", &_16$$12, "';"); - zephir_concat_self(&indexSqlAfterCreate, &_17$$12); - } + zephir_array_update_string(&_5$$7, SL("value"), &_7$$7, PH_COPY | PH_SEPARATE); + zephir_array_append(&exprValues, &_5$$7, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3600); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &columns, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &_2, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_3, &columns, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_4, &_2, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_3)) { + if (!zend_is_true(&_4)) { break; } - ZEPHIR_CALL_METHOD(&column, &columns, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&exprValue, &_2, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&columnDefinition, this_ptr, "getcolumndefinition", &_4, 0, &column); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_18$$13, &column, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_19$$13); - ZEPHIR_CONCAT_SVSV(&_19$$13, "\"", &_18$$13, "\" ", &columnDefinition); - zephir_get_strval(&columnLine, &_19$$13); - ZEPHIR_CALL_METHOD(&_20$$13, &column, "hasdefault", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_20$$13)) { - ZEPHIR_CALL_METHOD(&_21$$14, this_ptr, "castdefault", &_9, 0, &column); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_22$$14); - ZEPHIR_CONCAT_SV(&_22$$14, " DEFAULT ", &_21$$14); - zephir_concat_self(&columnLine, &_22$$14); - } - ZEPHIR_CALL_METHOD(&_23$$13, &column, "isnotnull", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_23$$13)) { - zephir_concat_self_str(&columnLine, " NOT NULL", sizeof(" NOT NULL") - 1); + ZEPHIR_INIT_NVAR(&_10$$8); + zephir_create_array(&_10$$8, 2, 0); + ZEPHIR_OBS_NVAR(&_11$$8); + zephir_array_fetch_string(&_11$$8, &exprValue, SL("type"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3598); + zephir_array_update_string(&_10$$8, SL("type"), &_11$$8, PH_COPY | PH_SEPARATE); + if (notQuoting) { + ZVAL_BOOL(&_13$$8, 1); } else { - zephir_concat_self_str(&columnLine, " NULL", sizeof(" NULL") - 1); - } - ZEPHIR_CALL_METHOD(&_24$$13, &column, "isprimary", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_24$$13)) { - ZEPHIR_CALL_METHOD(&_25$$17, &column, "getname", NULL, 0); - zephir_check_call_status(); - zephir_array_append(&primaryColumns, &_25$$17, PH_SEPARATE, "phalcon/Db/Dialect/Postgresql.zep", 185); + ZVAL_BOOL(&_13$$8, 0); } - zephir_array_append(&createLines, &columnLine, PH_SEPARATE, "phalcon/Db/Dialect/Postgresql.zep", 188); - ZEPHIR_CALL_METHOD(&_26$$13, &column, "getcomment", NULL, 0); + ZEPHIR_CALL_METHOD(&_12$$8, this_ptr, "getexpression", &_9, 468, &exprValue, &_13$$8); zephir_check_call_status(); - if (zephir_is_true(&_26$$13)) { - ZEPHIR_CALL_METHOD(&_27$$18, &column, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_28$$18, &column, "getcomment", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_29$$18); - ZEPHIR_CONCAT_SVSVSVS(&_29$$18, " COMMENT ON COLUMN ", &table, ".\"", &_27$$18, "\" IS '", &_28$$18, "';"); - zephir_concat_self(&indexSqlAfterCreate, &_29$$18); - } - ZEPHIR_CALL_METHOD(NULL, &columns, "next", NULL, 0); + zephir_array_update_string(&_10$$8, SL("value"), &_12$$8, PH_COPY | PH_SEPARATE); + zephir_array_append(&exprValues, &_10$$8, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3600); + ZEPHIR_CALL_METHOD(NULL, &_2, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&column); - if (!(ZEPHIR_IS_EMPTY(&primaryColumns))) { - ZEPHIR_CALL_METHOD(&_30$$19, this_ptr, "getcolumnlist", NULL, 67, &primaryColumns); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_31$$19); - ZEPHIR_CONCAT_SVS(&_31$$19, "PRIMARY KEY (", &_30$$19, ")"); - zephir_array_append(&createLines, &_31$$19, PH_SEPARATE, "phalcon/Db/Dialect/Postgresql.zep", 199); - } - ZEPHIR_OBS_VAR(&indexes); - if (zephir_array_isset_string_fetch(&indexes, &definition, SL("indexes"), 0)) { - zephir_is_iterable(&indexes, 0, "phalcon/Db/Dialect/Postgresql.zep", 227); - if (Z_TYPE_P(&indexes) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&indexes), _32$$20) + ZEPHIR_INIT_NVAR(&exprValue); + ZEPHIR_INIT_VAR(&sqlInsert); + zephir_create_array(&sqlInsert, 2, 0); + zephir_array_update_string(&sqlInsert, SL("model"), &modelName, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&sqlInsert, SL("table"), &source, PH_COPY | PH_SEPARATE); + zephir_read_property(&_0, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&metaData, &_0); + ZEPHIR_OBS_VAR(&fields); + if (zephir_array_isset_string_fetch(&fields, &ast, SL("fields"), 0)) { + ZEPHIR_INIT_VAR(&sqlFields); + array_init(&sqlFields); + zephir_is_iterable(&fields, 0, "phalcon/Mvc/Model/Query.zep", 3627); + if (Z_TYPE_P(&fields) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&fields), _14$$9) { - ZEPHIR_INIT_NVAR(&index); - ZVAL_COPY(&index, _32$$20); - ZEPHIR_CALL_METHOD(&indexName, &index, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&indexType, &index, "gettype", NULL, 0); + ZEPHIR_INIT_NVAR(&field); + ZVAL_COPY(&field, _14$$9); + ZEPHIR_OBS_NVAR(&name); + zephir_array_fetch_string(&name, &field, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3614); + ZEPHIR_CALL_METHOD(&_16$$10, &metaData, "hasattribute", &_17, 0, &model, &name); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&indexSql); - if (ZEPHIR_IS_STRING(&indexName, "PRIMARY")) { - ZEPHIR_CALL_METHOD(&_35$$22, &index, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_34$$22, this_ptr, "getcolumnlist", NULL, 67, &_35$$22); + if (UNEXPECTED(!zephir_is_true(&_16$$10))) { + ZEPHIR_INIT_NVAR(&_18$$11); + object_init_ex(&_18$$11, phalcon_mvc_model_exception_ce); + zephir_read_property(&_19$$11, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_20$$11); + ZEPHIR_CONCAT_SVSVSV(&_20$$11, "The model '", &modelName, "' doesn't have the attribute '", &name, "', when preparing: ", &_19$$11); + ZEPHIR_CALL_METHOD(NULL, &_18$$11, "__construct", &_21, 8, &_20$$11); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_36$$22); - ZEPHIR_CONCAT_SVS(&_36$$22, "CONSTRAINT \"PRIMARY\" PRIMARY KEY (", &_34$$22, ")"); - zephir_get_strval(&indexSql, &_36$$22); - } else { - if (!(ZEPHIR_IS_EMPTY(&indexType))) { - ZEPHIR_CALL_METHOD(&_38$$24, &index, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_37$$24, this_ptr, "getcolumnlist", NULL, 67, &_38$$24); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_39$$24); - ZEPHIR_CONCAT_SVSVSVS(&_39$$24, "CONSTRAINT \"", &indexName, "\" ", &indexType, " (", &_37$$24, ")"); - zephir_get_strval(&indexSql, &_39$$24); - } else { - ZEPHIR_CALL_METHOD(&_40$$25, &index, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_41$$25, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_42$$25); - ZEPHIR_CONCAT_SVSV(&_42$$25, "CREATE INDEX \"", &_40$$25, "\" ON ", &_41$$25); - zephir_concat_self(&indexSqlAfterCreate, &_42$$25); - ZEPHIR_CALL_METHOD(&_44$$25, &index, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_43$$25, this_ptr, "getcolumnlist", NULL, 67, &_44$$25); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_45$$25); - ZEPHIR_CONCAT_SVS(&_45$$25, " (", &_43$$25, ");"); - zephir_concat_self(&indexSqlAfterCreate, &_45$$25); - } - } - if (!(ZEPHIR_IS_EMPTY(&indexSql))) { - zephir_array_append(&createLines, &indexSql, PH_SEPARATE, "phalcon/Db/Dialect/Postgresql.zep", 224); + zephir_throw_exception_debug(&_18$$11, "phalcon/Mvc/Model/Query.zep", 3620); + ZEPHIR_MM_RESTORE(); + return; } + zephir_array_append(&sqlFields, &name, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3624); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &indexes, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &fields, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_33$$20, &indexes, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_15$$9, &fields, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_33$$20)) { + if (!zend_is_true(&_15$$9)) { break; } - ZEPHIR_CALL_METHOD(&index, &indexes, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&field, &fields, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&indexName, &index, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&indexType, &index, "gettype", NULL, 0); + ZEPHIR_OBS_NVAR(&name); + zephir_array_fetch_string(&name, &field, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3614); + ZEPHIR_CALL_METHOD(&_22$$12, &metaData, "hasattribute", &_23, 0, &model, &name); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&indexSql); - if (ZEPHIR_IS_STRING(&indexName, "PRIMARY")) { - ZEPHIR_CALL_METHOD(&_47$$28, &index, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_46$$28, this_ptr, "getcolumnlist", NULL, 67, &_47$$28); + if (UNEXPECTED(!zephir_is_true(&_22$$12))) { + ZEPHIR_INIT_NVAR(&_24$$13); + object_init_ex(&_24$$13, phalcon_mvc_model_exception_ce); + zephir_read_property(&_25$$13, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_26$$13); + ZEPHIR_CONCAT_SVSVSV(&_26$$13, "The model '", &modelName, "' doesn't have the attribute '", &name, "', when preparing: ", &_25$$13); + ZEPHIR_CALL_METHOD(NULL, &_24$$13, "__construct", &_21, 8, &_26$$13); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_48$$28); - ZEPHIR_CONCAT_SVS(&_48$$28, "CONSTRAINT \"PRIMARY\" PRIMARY KEY (", &_46$$28, ")"); - zephir_get_strval(&indexSql, &_48$$28); - } else { - if (!(ZEPHIR_IS_EMPTY(&indexType))) { - ZEPHIR_CALL_METHOD(&_50$$30, &index, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_49$$30, this_ptr, "getcolumnlist", NULL, 67, &_50$$30); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_51$$30); - ZEPHIR_CONCAT_SVSVSVS(&_51$$30, "CONSTRAINT \"", &indexName, "\" ", &indexType, " (", &_49$$30, ")"); - zephir_get_strval(&indexSql, &_51$$30); - } else { - ZEPHIR_CALL_METHOD(&_52$$31, &index, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_53$$31, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_54$$31); - ZEPHIR_CONCAT_SVSV(&_54$$31, "CREATE INDEX \"", &_52$$31, "\" ON ", &_53$$31); - zephir_concat_self(&indexSqlAfterCreate, &_54$$31); - ZEPHIR_CALL_METHOD(&_56$$31, &index, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_55$$31, this_ptr, "getcolumnlist", NULL, 67, &_56$$31); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_57$$31); - ZEPHIR_CONCAT_SVS(&_57$$31, " (", &_55$$31, ");"); - zephir_concat_self(&indexSqlAfterCreate, &_57$$31); - } - } - if (!(ZEPHIR_IS_EMPTY(&indexSql))) { - zephir_array_append(&createLines, &indexSql, PH_SEPARATE, "phalcon/Db/Dialect/Postgresql.zep", 224); + zephir_throw_exception_debug(&_24$$13, "phalcon/Mvc/Model/Query.zep", 3620); + ZEPHIR_MM_RESTORE(); + return; } - ZEPHIR_CALL_METHOD(NULL, &indexes, "next", NULL, 0); + zephir_array_append(&sqlFields, &name, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3624); + ZEPHIR_CALL_METHOD(NULL, &fields, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&index); + ZEPHIR_INIT_NVAR(&field); + zephir_array_update_string(&sqlInsert, SL("fields"), &sqlFields, PH_COPY | PH_SEPARATE); } - ZEPHIR_OBS_VAR(&references); - if (zephir_array_isset_string_fetch(&references, &definition, SL("references"), 0)) { - zephir_is_iterable(&references, 0, "phalcon/Db/Dialect/Postgresql.zep", 255); - if (Z_TYPE_P(&references) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&references), _58$$33) - { - ZEPHIR_INIT_NVAR(&reference); - ZVAL_COPY(&reference, _58$$33); - ZEPHIR_CALL_METHOD(&_60$$34, &reference, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_62$$34, &reference, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_61$$34, this_ptr, "getcolumnlist", NULL, 67, &_62$$34); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_63$$34); - ZEPHIR_CONCAT_SVSVS(&_63$$34, "CONSTRAINT \"", &_60$$34, "\" FOREIGN KEY (", &_61$$34, ") REFERENCES "); - zephir_get_strval(&referenceSql, &_63$$34); - ZEPHIR_CALL_METHOD(&_65$$34, &reference, "getreferencedtable", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_64$$34, this_ptr, "preparetable", NULL, 0, &_65$$34, &schemaName); - zephir_check_call_status(); - zephir_concat_self(&referenceSql, &_64$$34); - ZEPHIR_CALL_METHOD(&_67$$34, &reference, "getreferencedcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_66$$34, this_ptr, "getcolumnlist", NULL, 67, &_67$$34); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_68$$34); - ZEPHIR_CONCAT_SVS(&_68$$34, " (", &_66$$34, ")"); - zephir_concat_self(&referenceSql, &_68$$34); - ZEPHIR_CALL_METHOD(&onDelete, &reference, "getondelete", NULL, 0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&onDelete))) { - ZEPHIR_INIT_NVAR(&_69$$35); - ZEPHIR_CONCAT_SV(&_69$$35, " ON DELETE ", &onDelete); - zephir_concat_self(&referenceSql, &_69$$35); - } - ZEPHIR_CALL_METHOD(&onUpdate, &reference, "getonupdate", NULL, 0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&onUpdate))) { - ZEPHIR_INIT_NVAR(&_70$$36); - ZEPHIR_CONCAT_SV(&_70$$36, " ON UPDATE ", &onUpdate); - zephir_concat_self(&referenceSql, &_70$$36); - } - zephir_array_append(&createLines, &referenceSql, PH_SEPARATE, "phalcon/Db/Dialect/Postgresql.zep", 253); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &references, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_59$$33, &references, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_59$$33)) { - break; - } - ZEPHIR_CALL_METHOD(&reference, &references, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_71$$37, &reference, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_73$$37, &reference, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_72$$37, this_ptr, "getcolumnlist", NULL, 67, &_73$$37); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_74$$37); - ZEPHIR_CONCAT_SVSVS(&_74$$37, "CONSTRAINT \"", &_71$$37, "\" FOREIGN KEY (", &_72$$37, ") REFERENCES "); - zephir_get_strval(&referenceSql, &_74$$37); - ZEPHIR_CALL_METHOD(&_76$$37, &reference, "getreferencedtable", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_75$$37, this_ptr, "preparetable", NULL, 0, &_76$$37, &schemaName); - zephir_check_call_status(); - zephir_concat_self(&referenceSql, &_75$$37); - ZEPHIR_CALL_METHOD(&_78$$37, &reference, "getreferencedcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_77$$37, this_ptr, "getcolumnlist", NULL, 67, &_78$$37); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_79$$37); - ZEPHIR_CONCAT_SVS(&_79$$37, " (", &_77$$37, ")"); - zephir_concat_self(&referenceSql, &_79$$37); - ZEPHIR_CALL_METHOD(&onDelete, &reference, "getondelete", NULL, 0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&onDelete))) { - ZEPHIR_INIT_NVAR(&_80$$38); - ZEPHIR_CONCAT_SV(&_80$$38, " ON DELETE ", &onDelete); - zephir_concat_self(&referenceSql, &_80$$38); - } - ZEPHIR_CALL_METHOD(&onUpdate, &reference, "getonupdate", NULL, 0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&onUpdate))) { - ZEPHIR_INIT_NVAR(&_81$$39); - ZEPHIR_CONCAT_SV(&_81$$39, " ON UPDATE ", &onUpdate); - zephir_concat_self(&referenceSql, &_81$$39); - } - zephir_array_append(&createLines, &referenceSql, PH_SEPARATE, "phalcon/Db/Dialect/Postgresql.zep", 253); - ZEPHIR_CALL_METHOD(NULL, &references, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&reference); - } - ZEPHIR_INIT_VAR(&_82); - zephir_fast_join_str(&_82, SL(",\n\t"), &createLines); - ZEPHIR_INIT_VAR(&_83); - ZEPHIR_CONCAT_VS(&_83, &_82, "\n)"); - zephir_concat_self(&sql, &_83); - if (zephir_array_isset_string(&definition, SL("options"))) { - ZEPHIR_CALL_METHOD(&_84$$40, this_ptr, "gettableoptions", NULL, 0, &definition); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_85$$40); - ZEPHIR_CONCAT_SV(&_85$$40, " ", &_84$$40); - zephir_concat_self(&sql, &_85$$40); - } - ZEPHIR_INIT_VAR(&_86); - ZEPHIR_CONCAT_SV(&_86, ";", &indexSqlAfterCreate); - zephir_concat_self(&sql, &_86); - RETURN_CTOR(&sql); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createView) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval definition; - zval *viewName_param = NULL, *definition_param = NULL, *schemaName_param = NULL, viewSql, _0; - zval viewName, schemaName; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&viewName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&viewSql); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&definition); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(viewName) - Z_PARAM_ARRAY(definition) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &viewName_param, &definition_param, &schemaName_param); - if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { - zephir_get_strval(&viewName, viewName_param); - } else { - ZEPHIR_INIT_VAR(&viewName); - } - ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - zephir_get_strval(&schemaName, schemaName_param); - } - - - ZEPHIR_OBS_VAR(&viewSql); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&viewSql, &definition, SL("sql"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/Db/Dialect/Postgresql.zep", 276); - return; - } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &viewName, &schemaName); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSV(return_value, "CREATE VIEW ", &_0, " AS ", &viewSql); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeColumns) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *table_param = NULL, *schema_param = NULL; - zval table, schema; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); - } else { - ZEPHIR_INIT_VAR(&table); - } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); - } else { - zephir_get_strval(&schema, schema_param); - } - - - if (ZEPHIR_IS_NULL(&schema)) { - ZEPHIR_INIT_NVAR(&schema); - ZVAL_STRING(&schema, "public"); - } - ZEPHIR_CONCAT_SVSVS(return_value, "SELECT DISTINCT c.column_name AS Field, c.data_type AS Type, c.character_maximum_length AS Size, c.numeric_precision AS NumericSize, c.numeric_scale AS NumericScale, c.is_nullable AS Null, CASE WHEN pkc.column_name NOTNULL THEN 'PRI' ELSE '' END AS Key, CASE WHEN c.data_type LIKE '%int%' AND c.column_default LIKE '%nextval%' THEN 'auto_increment' ELSE '' END AS Extra, c.ordinal_position AS Position, c.column_default, des.description FROM information_schema.columns c LEFT JOIN ( SELECT kcu.column_name, kcu.table_name, kcu.table_schema FROM information_schema.table_constraints tc INNER JOIN information_schema.key_column_usage kcu on (kcu.constraint_name = tc.constraint_name and kcu.table_name=tc.table_name and kcu.table_schema=tc.table_schema) WHERE tc.constraint_type='PRIMARY KEY') pkc ON (c.column_name=pkc.column_name AND c.table_schema = pkc.table_schema AND c.table_name=pkc.table_name) LEFT JOIN ( SELECT objsubid, description, relname, nspname FROM pg_description JOIN pg_class ON pg_description.objoid = pg_class.oid JOIN pg_namespace ON pg_class.relnamespace = pg_namespace.oid ) des ON ( des.objsubid = C.ordinal_position AND C.table_schema = des.nspname AND C.TABLE_NAME = des.relname ) WHERE c.table_schema='", &schema, "' AND c.table_name='", &table, "' ORDER BY c.ordinal_position"); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeIndexes) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *table_param = NULL, *schema_param = NULL; - zval table, schema; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); - } else { - ZEPHIR_INIT_VAR(&table); - } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); - } else { - zephir_get_strval(&schema, schema_param); - } - - - ZEPHIR_CONCAT_SVS(return_value, "SELECT 0 as c0, t.relname as table_name, i.relname as key_name, 3 as c3, a.attname as column_name FROM pg_class t, pg_class i, pg_index ix, pg_attribute a WHERE t.oid = ix.indrelid AND i.oid = ix.indexrelid AND a.attrelid = t.oid AND a.attnum = ANY(ix.indkey) AND t.relkind = 'r' AND t.relname = '", &table, "' ORDER BY t.relname, i.relname;"); - RETURN_MM(); + zephir_array_update_string(&sqlInsert, SL("values"), &exprValues, PH_COPY | PH_SEPARATE); + RETURN_CCTOR(&sqlInsert); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeReferences) +static PHP_METHOD(Phalcon_Mvc_Model_Query, _prepareSelect) { + zval _13$$24, _25$$28, _46$$43, _58$$47, _90$$66, _93$$73, _99$$81, _102$$88; + zval sqlModels, sqlTables, sqlAliases, sqlColumns, sqlAliasesModels, sqlModelsAliases, sqlAliasesModelsInstances, models, modelsInstances, _21$$24, _22$$24, _23$$24, _33$$28, _34$$28, _35$$28, _54$$43, _55$$43, _56$$43, _66$$47, _67$$47, _68$$47; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *table_param = NULL, *schema_param = NULL; - zval table, schema; + zephir_fcall_cache_entry *_4 = NULL, *_8 = NULL, *_14 = NULL, *_16 = NULL, *_26 = NULL, *_28 = NULL, *_36 = NULL, *_47 = NULL, *_49 = NULL, *_59 = NULL, *_61 = NULL, *_85 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS, position = 0, number = 0; + zend_bool merge; + zval *ast = NULL, ast_sub, *merge_param = NULL, __$null, __$true, select, tables, columns, selectedModels, manager, metaData, selectedModel, qualifiedName, modelName, model, schema, source, completeSource, alias, joins, sqlJoins, selectColumns, sqlColumnAliases, column, sqlColumn, sqlSelect, distinct, having, where, groupBy, order, limit, tempModels, tempModelsInstances, tempSqlAliases, tempSqlModelsAliases, tempSqlAliasesModelsInstances, tempSqlAliasesModels, with, withs, withItem, automaticJoins, relation, joinAlias, relationModel, bestAlias, eagerType, _1, *_2, _3, *_82, _83, _103, _0$$3, _5$$17, _6$$17, _7$$17, _9$$19, *_10$$21, _11$$21, _12$$24, _15$$25, _17$$27, _18$$27, _19$$27, _20$$26, _24$$28, _27$$29, _29$$31, _30$$31, _31$$31, _32$$30, _37$$33, _38$$36, _39$$36, _40$$36, _41$$38, _42$$41, *_43$$40, _44$$40, _45$$43, _48$$44, _50$$46, _51$$46, _52$$46, _53$$45, _57$$47, _60$$48, _62$$50, _63$$50, _64$$50, _65$$49, _69$$52, _70$$52, _71$$52, _72$$52, _73$$52, _74$$52, _75$$52, _76$$52, _77$$52, _78$$52, _79$$52, _80$$52, _81$$55, _84$$60, *_86$$60, _87$$60, _88$$65, _89$$66, _91$$72, _92$$73, _94$$75, *_95$$75, _96$$75, _97$$80, _98$$81, _100$$87, _101$$88, _104$$92, _105$$93, _106$$94, _107$$95, _108$$96; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); + ZVAL_UNDEF(&ast_sub); + ZVAL_NULL(&__$null); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&select); + ZVAL_UNDEF(&tables); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&selectedModels); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&metaData); + ZVAL_UNDEF(&selectedModel); + ZVAL_UNDEF(&qualifiedName); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&model); ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&source); + ZVAL_UNDEF(&completeSource); + ZVAL_UNDEF(&alias); + ZVAL_UNDEF(&joins); + ZVAL_UNDEF(&sqlJoins); + ZVAL_UNDEF(&selectColumns); + ZVAL_UNDEF(&sqlColumnAliases); + ZVAL_UNDEF(&column); + ZVAL_UNDEF(&sqlColumn); + ZVAL_UNDEF(&sqlSelect); + ZVAL_UNDEF(&distinct); + ZVAL_UNDEF(&having); + ZVAL_UNDEF(&where); + ZVAL_UNDEF(&groupBy); + ZVAL_UNDEF(&order); + ZVAL_UNDEF(&limit); + ZVAL_UNDEF(&tempModels); + ZVAL_UNDEF(&tempModelsInstances); + ZVAL_UNDEF(&tempSqlAliases); + ZVAL_UNDEF(&tempSqlModelsAliases); + ZVAL_UNDEF(&tempSqlAliasesModelsInstances); + ZVAL_UNDEF(&tempSqlAliasesModels); + ZVAL_UNDEF(&with); + ZVAL_UNDEF(&withs); + ZVAL_UNDEF(&withItem); + ZVAL_UNDEF(&automaticJoins); + ZVAL_UNDEF(&relation); + ZVAL_UNDEF(&joinAlias); + ZVAL_UNDEF(&relationModel); + ZVAL_UNDEF(&bestAlias); + ZVAL_UNDEF(&eagerType); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_83); + ZVAL_UNDEF(&_103); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_5$$17); + ZVAL_UNDEF(&_6$$17); + ZVAL_UNDEF(&_7$$17); + ZVAL_UNDEF(&_9$$19); + ZVAL_UNDEF(&_11$$21); + ZVAL_UNDEF(&_12$$24); + ZVAL_UNDEF(&_15$$25); + ZVAL_UNDEF(&_17$$27); + ZVAL_UNDEF(&_18$$27); + ZVAL_UNDEF(&_19$$27); + ZVAL_UNDEF(&_20$$26); + ZVAL_UNDEF(&_24$$28); + ZVAL_UNDEF(&_27$$29); + ZVAL_UNDEF(&_29$$31); + ZVAL_UNDEF(&_30$$31); + ZVAL_UNDEF(&_31$$31); + ZVAL_UNDEF(&_32$$30); + ZVAL_UNDEF(&_37$$33); + ZVAL_UNDEF(&_38$$36); + ZVAL_UNDEF(&_39$$36); + ZVAL_UNDEF(&_40$$36); + ZVAL_UNDEF(&_41$$38); + ZVAL_UNDEF(&_42$$41); + ZVAL_UNDEF(&_44$$40); + ZVAL_UNDEF(&_45$$43); + ZVAL_UNDEF(&_48$$44); + ZVAL_UNDEF(&_50$$46); + ZVAL_UNDEF(&_51$$46); + ZVAL_UNDEF(&_52$$46); + ZVAL_UNDEF(&_53$$45); + ZVAL_UNDEF(&_57$$47); + ZVAL_UNDEF(&_60$$48); + ZVAL_UNDEF(&_62$$50); + ZVAL_UNDEF(&_63$$50); + ZVAL_UNDEF(&_64$$50); + ZVAL_UNDEF(&_65$$49); + ZVAL_UNDEF(&_69$$52); + ZVAL_UNDEF(&_70$$52); + ZVAL_UNDEF(&_71$$52); + ZVAL_UNDEF(&_72$$52); + ZVAL_UNDEF(&_73$$52); + ZVAL_UNDEF(&_74$$52); + ZVAL_UNDEF(&_75$$52); + ZVAL_UNDEF(&_76$$52); + ZVAL_UNDEF(&_77$$52); + ZVAL_UNDEF(&_78$$52); + ZVAL_UNDEF(&_79$$52); + ZVAL_UNDEF(&_80$$52); + ZVAL_UNDEF(&_81$$55); + ZVAL_UNDEF(&_84$$60); + ZVAL_UNDEF(&_87$$60); + ZVAL_UNDEF(&_88$$65); + ZVAL_UNDEF(&_89$$66); + ZVAL_UNDEF(&_91$$72); + ZVAL_UNDEF(&_92$$73); + ZVAL_UNDEF(&_94$$75); + ZVAL_UNDEF(&_96$$75); + ZVAL_UNDEF(&_97$$80); + ZVAL_UNDEF(&_98$$81); + ZVAL_UNDEF(&_100$$87); + ZVAL_UNDEF(&_101$$88); + ZVAL_UNDEF(&_104$$92); + ZVAL_UNDEF(&_105$$93); + ZVAL_UNDEF(&_106$$94); + ZVAL_UNDEF(&_107$$95); + ZVAL_UNDEF(&_108$$96); + ZVAL_UNDEF(&sqlModels); + ZVAL_UNDEF(&sqlTables); + ZVAL_UNDEF(&sqlAliases); + ZVAL_UNDEF(&sqlColumns); + ZVAL_UNDEF(&sqlAliasesModels); + ZVAL_UNDEF(&sqlModelsAliases); + ZVAL_UNDEF(&sqlAliasesModelsInstances); + ZVAL_UNDEF(&models); + ZVAL_UNDEF(&modelsInstances); + ZVAL_UNDEF(&_21$$24); + ZVAL_UNDEF(&_22$$24); + ZVAL_UNDEF(&_23$$24); + ZVAL_UNDEF(&_33$$28); + ZVAL_UNDEF(&_34$$28); + ZVAL_UNDEF(&_35$$28); + ZVAL_UNDEF(&_54$$43); + ZVAL_UNDEF(&_55$$43); + ZVAL_UNDEF(&_56$$43); + ZVAL_UNDEF(&_66$$47); + ZVAL_UNDEF(&_67$$47); + ZVAL_UNDEF(&_68$$47); + ZVAL_UNDEF(&_13$$24); + ZVAL_UNDEF(&_25$$28); + ZVAL_UNDEF(&_46$$43); + ZVAL_UNDEF(&_58$$47); + ZVAL_UNDEF(&_90$$66); + ZVAL_UNDEF(&_93$$73); + ZVAL_UNDEF(&_99$$81); + ZVAL_UNDEF(&_102$$88); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) + ZEND_PARSE_PARAMETERS_START(0, 2) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); - } else { - ZEPHIR_INIT_VAR(&table); - } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); - } else { - zephir_get_strval(&schema, schema_param); - } - - - if (ZEPHIR_IS_NULL(&schema)) { - ZEPHIR_INIT_NVAR(&schema); - ZVAL_STRING(&schema, "public"); - } - ZEPHIR_CONCAT_SVSVS(return_value, "SELECT DISTINCT tc.table_name AS TABLE_NAME, kcu.column_name AS COLUMN_NAME, tc.constraint_name AS CONSTRAINT_NAME, tc.table_catalog AS REFERENCED_TABLE_SCHEMA, ccu.table_name AS REFERENCED_TABLE_NAME, ccu.column_name AS REFERENCED_COLUMN_NAME, rc.update_rule AS UPDATE_RULE, rc.delete_rule AS DELETE_RULE FROM information_schema.table_constraints AS tc JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name JOIN information_schema.referential_constraints rc ON tc.constraint_catalog = rc.constraint_catalog AND tc.constraint_schema = rc.constraint_schema AND tc.constraint_name = rc.constraint_name AND tc.constraint_type = 'FOREIGN KEY' WHERE constraint_type = 'FOREIGN KEY' AND tc.table_schema = '", &schema, "' AND tc.table_name='", &table, "'"); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropColumn) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *columnName_param = NULL, _0; - zval tableName, schemaName, columnName; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&columnName); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_STR(columnName) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &columnName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } - if (UNEXPECTED(Z_TYPE_P(columnName_param) != IS_STRING && Z_TYPE_P(columnName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'columnName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(columnName_param) == IS_STRING)) { - zephir_get_strval(&columnName, columnName_param); - } else { - ZEPHIR_INIT_VAR(&columnName); - } - - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVS(return_value, "ALTER TABLE ", &_0, " DROP COLUMN \"", &columnName, "\""); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropForeignKey) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName_param = NULL, _0; - zval tableName, schemaName, referenceName; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&referenceName); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_STR(referenceName) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } - if (UNEXPECTED(Z_TYPE_P(referenceName_param) != IS_STRING && Z_TYPE_P(referenceName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(referenceName_param) == IS_STRING)) { - zephir_get_strval(&referenceName, referenceName_param); - } else { - ZEPHIR_INIT_VAR(&referenceName); - } - - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVS(return_value, "ALTER TABLE ", &_0, " DROP CONSTRAINT \"", &referenceName, "\""); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropIndex) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *tableName_param = NULL, *schemaName_param = NULL, *indexName_param = NULL; - zval tableName, schemaName, indexName; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&indexName); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_STR(indexName) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &indexName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } - if (UNEXPECTED(Z_TYPE_P(indexName_param) != IS_STRING && Z_TYPE_P(indexName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'indexName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(indexName_param) == IS_STRING)) { - zephir_get_strval(&indexName, indexName_param); - } else { - ZEPHIR_INIT_VAR(&indexName); - } - - - ZEPHIR_CONCAT_SVS(return_value, "DROP INDEX \"", &indexName, "\""); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropPrimaryKey) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, _0; - zval tableName, schemaName; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) + Z_PARAM_ZVAL_OR_NULL(ast) + Z_PARAM_BOOL(merge) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &tableName_param, &schemaName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); + zephir_fetch_params(1, 0, 2, &ast, &merge_param); + if (!ast) { + ast = &ast_sub; + ZEPHIR_CPY_WRT(ast, &__$null); } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); + ZEPHIR_SEPARATE_PARAM(ast); } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); + if (!merge_param) { + merge = 0; } else { - ZEPHIR_INIT_VAR(&schemaName); + merge = zephir_get_boolval(merge_param); } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVS(return_value, "ALTER TABLE ", &_0, " DROP CONSTRAINT \"", &tableName, "_PRIMARY\""); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropTable) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool ifExists; - zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, table; - zval tableName, schemaName; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&table); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(tableName) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) - Z_PARAM_BOOL(ifExists) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &tableName_param, &schemaName_param, &ifExists_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - zephir_get_strval(&schemaName, schemaName_param); - } - if (!ifExists_param) { - ifExists = 1; - } else { - if (UNEXPECTED(Z_TYPE_P(ifExists_param) != IS_TRUE && Z_TYPE_P(ifExists_param) != IS_FALSE)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be of the type bool")); - RETURN_MM_NULL(); - } - ifExists = (Z_TYPE_P(ifExists_param) == IS_TRUE); + if (ZEPHIR_IS_EMPTY(ast)) { + zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("ast"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(ast, &_0$$3); } - - - ZEPHIR_CALL_METHOD(&table, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - if (ifExists) { - ZEPHIR_CONCAT_SV(return_value, "DROP TABLE IF EXISTS ", &table); - RETURN_MM(); + ZEPHIR_OBS_VAR(&select); + if (!(zephir_array_isset_string_fetch(&select, ast, SL("select"), 0))) { + ZEPHIR_CPY_WRT(&select, ast); } - ZEPHIR_CONCAT_SV(return_value, "DROP TABLE ", &table); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropView) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool ifExists; - zval *viewName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, view; - zval viewName, schemaName; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&viewName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&view); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(viewName) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) - Z_PARAM_BOOL(ifExists) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &viewName_param, &schemaName_param, &ifExists_param); - if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); - RETURN_MM_NULL(); + ZEPHIR_OBS_VAR(&tables); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&tables, &select, SL("tables"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted SELECT AST", "phalcon/Mvc/Model/Query.zep", 3663); + return; } - if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { - zephir_get_strval(&viewName, viewName_param); - } else { - ZEPHIR_INIT_VAR(&viewName); + ZEPHIR_OBS_VAR(&columns); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&columns, &select, SL("columns"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted SELECT AST", "phalcon/Mvc/Model/Query.zep", 3667); + return; } - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); + RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("nestingLevel"))); + ZEPHIR_INIT_VAR(&sqlModels); + array_init(&sqlModels); + ZEPHIR_INIT_VAR(&sqlTables); + array_init(&sqlTables); + ZEPHIR_INIT_VAR(&sqlColumns); + array_init(&sqlColumns); + ZEPHIR_INIT_VAR(&sqlAliases); + array_init(&sqlAliases); + ZEPHIR_INIT_VAR(&sqlAliasesModels); + array_init(&sqlAliasesModels); + ZEPHIR_INIT_VAR(&sqlModelsAliases); + array_init(&sqlModelsAliases); + ZEPHIR_INIT_VAR(&sqlAliasesModelsInstances); + array_init(&sqlAliasesModelsInstances); + ZEPHIR_INIT_VAR(&models); + array_init(&models); + ZEPHIR_INIT_VAR(&modelsInstances); + array_init(&modelsInstances); + if (!(zephir_array_isset_long(&tables, 0))) { + ZEPHIR_INIT_VAR(&selectedModels); + zephir_create_array(&selectedModels, 1, 0); + zephir_array_fast_append(&selectedModels, &tables); } else { - zephir_get_strval(&schemaName, schemaName_param); + ZEPHIR_CPY_WRT(&selectedModels, &tables); } - if (!ifExists_param) { - ifExists = 1; + if (!(zephir_array_isset_long(&columns, 0))) { + ZEPHIR_INIT_VAR(&selectColumns); + zephir_create_array(&selectColumns, 1, 0); + zephir_array_fast_append(&selectColumns, &columns); } else { - if (UNEXPECTED(Z_TYPE_P(ifExists_param) != IS_TRUE && Z_TYPE_P(ifExists_param) != IS_FALSE)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be of the type bool")); - RETURN_MM_NULL(); + ZEPHIR_CPY_WRT(&selectColumns, &columns); } - ifExists = (Z_TYPE_P(ifExists_param) == IS_TRUE); + zephir_read_property(&_1, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&manager, &_1); + zephir_read_property(&_1, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&metaData, &_1); + if (UNEXPECTED(Z_TYPE_P(&manager) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A models-manager is required to execute the query", "phalcon/Mvc/Model/Query.zep", 3734); + return; } - - - ZEPHIR_CALL_METHOD(&view, this_ptr, "preparetable", NULL, 0, &viewName, &schemaName); - zephir_check_call_status(); - if (ifExists) { - ZEPHIR_CONCAT_SV(return_value, "DROP VIEW IF EXISTS ", &view); - RETURN_MM(); + if (UNEXPECTED(Z_TYPE_P(&metaData) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A meta-data is required to execute the query", "phalcon/Mvc/Model/Query.zep", 3740); + return; } - ZEPHIR_CONCAT_SV(return_value, "DROP VIEW ", &view); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, getColumnDefinition) -{ - zval valueSql$$38; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_12 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *column, column_sub, columnType, columnSql, typeValues, _0$$4, _1$$9, _2$$15, _3$$20, _4$$33, _5$$36, _6$$36, _7$$36, value$$38, *_8$$38, _9$$38, _17$$38, _18$$38, _19$$38, _20$$38, _10$$39, _11$$39, _13$$39, _14$$40, _15$$40, _16$$40, _21$$41, _22$$41, _23$$41; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&column_sub); - ZVAL_UNDEF(&columnType); - ZVAL_UNDEF(&columnSql); - ZVAL_UNDEF(&typeValues); - ZVAL_UNDEF(&_0$$4); - ZVAL_UNDEF(&_1$$9); - ZVAL_UNDEF(&_2$$15); - ZVAL_UNDEF(&_3$$20); - ZVAL_UNDEF(&_4$$33); - ZVAL_UNDEF(&_5$$36); - ZVAL_UNDEF(&_6$$36); - ZVAL_UNDEF(&_7$$36); - ZVAL_UNDEF(&value$$38); - ZVAL_UNDEF(&_9$$38); - ZVAL_UNDEF(&_17$$38); - ZVAL_UNDEF(&_18$$38); - ZVAL_UNDEF(&_19$$38); - ZVAL_UNDEF(&_20$$38); - ZVAL_UNDEF(&_10$$39); - ZVAL_UNDEF(&_11$$39); - ZVAL_UNDEF(&_13$$39); - ZVAL_UNDEF(&_14$$40); - ZVAL_UNDEF(&_15$$40); - ZVAL_UNDEF(&_16$$40); - ZVAL_UNDEF(&_21$$41); - ZVAL_UNDEF(&_22$$41); - ZVAL_UNDEF(&_23$$41); - ZVAL_UNDEF(&valueSql$$38); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &column); - - - ZEPHIR_CALL_METHOD(&columnSql, this_ptr, "checkcolumntypesql", NULL, 0, column); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&columnType, this_ptr, "checkcolumntype", NULL, 0, column); - zephir_check_call_status(); - do { - if (ZEPHIR_IS_LONG(&columnType, 14)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - ZEPHIR_CALL_METHOD(&_0$$4, column, "isautoincrement", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_0$$4)) { - zephir_concat_self_str(&columnSql, SL("BIGSERIAL")); - } else { - zephir_concat_self_str(&columnSql, SL("BIGINT")); - } - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 8)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("BOOLEAN")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 5)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("CHARACTER")); - } - ZEPHIR_CALL_METHOD(&_1$$9, this_ptr, "getcolumnsize", NULL, 0, column); + number = 0; + ZEPHIR_INIT_VAR(&automaticJoins); + array_init(&automaticJoins); + zephir_is_iterable(&selectedModels, 0, "phalcon/Mvc/Model/Query.zep", 3870); + if (Z_TYPE_P(&selectedModels) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&selectedModels), _2) + { + ZEPHIR_INIT_NVAR(&selectedModel); + ZVAL_COPY(&selectedModel, _2); + ZEPHIR_OBS_NVAR(&qualifiedName); + zephir_array_fetch_string(&qualifiedName, &selectedModel, SL("qualifiedName"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3748); + ZEPHIR_OBS_NVAR(&modelName); + zephir_array_fetch_string(&modelName, &qualifiedName, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3749); + ZEPHIR_CALL_METHOD(&model, &manager, "load", &_4, 0, &modelName); zephir_check_call_status(); - zephir_concat_self(&columnSql, &_1$$9); - break; - } - if (ZEPHIR_IS_LONG(&columnType, 1)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("DATE")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 4)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("TIMESTAMP")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 3)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("NUMERIC")); - } - ZEPHIR_CALL_METHOD(&_2$$15, this_ptr, "getcolumnsizeandscale", NULL, 0, column); + ZEPHIR_CALL_METHOD(&schema, &model, "getschema", NULL, 0); zephir_check_call_status(); - zephir_concat_self(&columnSql, &_2$$15); - break; - } - if (ZEPHIR_IS_LONG(&columnType, 7)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("FLOAT")); + ZEPHIR_CALL_METHOD(&source, &model, "getsource", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&schema)) { + ZEPHIR_INIT_NVAR(&completeSource); + zephir_create_array(&completeSource, 2, 0); + zephir_array_fast_append(&completeSource, &source); + zephir_array_fast_append(&completeSource, &schema); + } else { + ZEPHIR_CPY_WRT(&completeSource, &source); } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 0)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - ZEPHIR_CALL_METHOD(&_3$$20, column, "isautoincrement", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_3$$20)) { - zephir_concat_self_str(&columnSql, SL("SERIAL")); + ZEPHIR_OBS_NVAR(&alias); + if (zephir_array_isset_string_fetch(&alias, &selectedModel, SL("alias"), 0)) { + if (UNEXPECTED(zephir_array_isset(&sqlAliases, &alias))) { + ZEPHIR_INIT_NVAR(&_5$$17); + object_init_ex(&_5$$17, phalcon_mvc_model_exception_ce); + zephir_read_property(&_6$$17, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_7$$17); + ZEPHIR_CONCAT_SVSV(&_7$$17, "Alias '", &alias, "' is used more than once, when preparing: ", &_6$$17); + ZEPHIR_CALL_METHOD(NULL, &_5$$17, "__construct", &_8, 8, &_7$$17); + zephir_check_call_status(); + zephir_throw_exception_debug(&_5$$17, "phalcon/Mvc/Model/Query.zep", 3774); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_array_update_zval(&sqlAliases, &alias, &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliasesModels, &alias, &modelName, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlModelsAliases, &modelName, &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliasesModelsInstances, &alias, &model, PH_COPY | PH_SEPARATE); + if (Z_TYPE_P(&completeSource) == IS_ARRAY) { + zephir_array_append(&completeSource, &alias, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3786); } else { - zephir_concat_self_str(&columnSql, SL("INT")); + ZEPHIR_INIT_NVAR(&_9$$19); + zephir_create_array(&_9$$19, 3, 0); + zephir_array_fast_append(&_9$$19, &source); + zephir_array_fast_append(&_9$$19, &__$null); + zephir_array_fast_append(&_9$$19, &alias); + ZEPHIR_CPY_WRT(&completeSource, &_9$$19); } + zephir_array_update_zval(&models, &modelName, &alias, PH_COPY | PH_SEPARATE); + } else { + ZEPHIR_CPY_WRT(&alias, &source); + zephir_array_update_zval(&sqlAliases, &modelName, &source, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliasesModels, &modelName, &modelName, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlModelsAliases, &modelName, &modelName, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliasesModelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&models, &modelName, &source, PH_COPY | PH_SEPARATE); } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 22)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("SMALLINT")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 15)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("JSON")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 16)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("JSONB")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 17)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("TIMESTAMP")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 6)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("TEXT")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 2)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("CHARACTER VARYING")); + ZEPHIR_OBS_NVAR(&with); + if (zephir_array_isset_string_fetch(&with, &selectedModel, SL("with"), 0)) { + if (!(zephir_array_isset_long(&with, 0))) { + ZEPHIR_INIT_NVAR(&withs); + zephir_create_array(&withs, 1, 0); + zephir_array_fast_append(&withs, &with); + } else { + ZEPHIR_CPY_WRT(&withs, &with); + } + zephir_is_iterable(&withs, 0, "phalcon/Mvc/Model/Query.zep", 3862); + if (Z_TYPE_P(&withs) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&withs), _10$$21) + { + ZEPHIR_INIT_NVAR(&withItem); + ZVAL_COPY(&withItem, _10$$21); + ZEPHIR_INIT_NVAR(&_12$$24); + ZVAL_LONG(&_12$$24, number); + ZEPHIR_INIT_NVAR(&_13$$24); + ZEPHIR_CONCAT_SV(&_13$$24, "AA", &_12$$24); + ZEPHIR_CPY_WRT(&joinAlias, &_13$$24); + ZEPHIR_OBS_NVAR(&relationModel); + zephir_array_fetch_string(&relationModel, &withItem, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3812); + ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationbyalias", &_14, 0, &modelName, &relationModel); + zephir_check_call_status(); + if (Z_TYPE_P(&relation) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_15$$25); + ZVAL_STRING(&_15$$25, "alias"); + ZEPHIR_CALL_METHOD(&bestAlias, &relation, "getoption", NULL, 0, &_15$$25); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&relationModel, &relation, "getreferencedmodel", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&eagerType, &relation, "gettype", NULL, 0); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationsbetween", &_16, 0, &modelName, &relationModel); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&relation) != IS_OBJECT)) { + ZEPHIR_INIT_NVAR(&_17$$27); + object_init_ex(&_17$$27, phalcon_mvc_model_exception_ce); + zephir_read_property(&_18$$27, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_19$$27); + ZEPHIR_CONCAT_SVSVSV(&_19$$27, "Can't find a relationship between '", &modelName, "' and '", &relationModel, "' when preparing: ", &_18$$27); + ZEPHIR_CALL_METHOD(NULL, &_17$$27, "__construct", &_8, 8, &_19$$27); + zephir_check_call_status(); + zephir_throw_exception_debug(&_17$$27, "phalcon/Mvc/Model/Query.zep", 3832); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_NVAR(&_20$$26); + ZVAL_STRING(&_20$$26, "alias"); + ZEPHIR_CALL_METHOD(&bestAlias, &relation, "getoption", NULL, 0, &_20$$26); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&relationModel, &relation, "getreferencedmodel", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&eagerType, &relation, "gettype", NULL, 0); + zephir_check_call_status(); + } + ZEPHIR_INIT_NVAR(&_21$$24); + zephir_create_array(&_21$$24, 5, 0); + add_assoc_long_ex(&_21$$24, SL("type"), 353); + zephir_array_update_string(&_21$$24, SL("column"), &joinAlias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_21$$24, SL("eager"), &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_21$$24, SL("eagerType"), &eagerType, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_21$$24, SL("balias"), &bestAlias, PH_COPY | PH_SEPARATE); + zephir_array_append(&selectColumns, &_21$$24, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3846); + ZEPHIR_INIT_NVAR(&_22$$24); + zephir_create_array(&_22$$24, 3, 0); + add_assoc_long_ex(&_22$$24, SL("type"), 360); + ZEPHIR_INIT_NVAR(&_23$$24); + zephir_create_array(&_23$$24, 2, 0); + add_assoc_long_ex(&_23$$24, SL("type"), 355); + zephir_array_update_string(&_23$$24, SL("name"), &relationModel, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_22$$24, SL("qualified"), &_23$$24, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_23$$24); + zephir_create_array(&_23$$24, 2, 0); + add_assoc_long_ex(&_23$$24, SL("type"), 355); + zephir_array_update_string(&_23$$24, SL("name"), &joinAlias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_22$$24, SL("alias"), &_23$$24, PH_COPY | PH_SEPARATE); + zephir_array_append(&automaticJoins, &_22$$24, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3858); + number++; + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &withs, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_11$$21, &withs, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_11$$21)) { + break; + } + ZEPHIR_CALL_METHOD(&withItem, &withs, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_24$$28); + ZVAL_LONG(&_24$$28, number); + ZEPHIR_INIT_NVAR(&_25$$28); + ZEPHIR_CONCAT_SV(&_25$$28, "AA", &_24$$28); + ZEPHIR_CPY_WRT(&joinAlias, &_25$$28); + ZEPHIR_OBS_NVAR(&relationModel); + zephir_array_fetch_string(&relationModel, &withItem, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3812); + ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationbyalias", &_26, 0, &modelName, &relationModel); + zephir_check_call_status(); + if (Z_TYPE_P(&relation) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_27$$29); + ZVAL_STRING(&_27$$29, "alias"); + ZEPHIR_CALL_METHOD(&bestAlias, &relation, "getoption", NULL, 0, &_27$$29); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&relationModel, &relation, "getreferencedmodel", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&eagerType, &relation, "gettype", NULL, 0); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationsbetween", &_28, 0, &modelName, &relationModel); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&relation) != IS_OBJECT)) { + ZEPHIR_INIT_NVAR(&_29$$31); + object_init_ex(&_29$$31, phalcon_mvc_model_exception_ce); + zephir_read_property(&_30$$31, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_31$$31); + ZEPHIR_CONCAT_SVSVSV(&_31$$31, "Can't find a relationship between '", &modelName, "' and '", &relationModel, "' when preparing: ", &_30$$31); + ZEPHIR_CALL_METHOD(NULL, &_29$$31, "__construct", &_8, 8, &_31$$31); + zephir_check_call_status(); + zephir_throw_exception_debug(&_29$$31, "phalcon/Mvc/Model/Query.zep", 3832); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_NVAR(&_32$$30); + ZVAL_STRING(&_32$$30, "alias"); + ZEPHIR_CALL_METHOD(&bestAlias, &relation, "getoption", NULL, 0, &_32$$30); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&relationModel, &relation, "getreferencedmodel", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&eagerType, &relation, "gettype", NULL, 0); + zephir_check_call_status(); + } + ZEPHIR_INIT_NVAR(&_33$$28); + zephir_create_array(&_33$$28, 5, 0); + add_assoc_long_ex(&_33$$28, SL("type"), 353); + zephir_array_update_string(&_33$$28, SL("column"), &joinAlias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_33$$28, SL("eager"), &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_33$$28, SL("eagerType"), &eagerType, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_33$$28, SL("balias"), &bestAlias, PH_COPY | PH_SEPARATE); + zephir_array_append(&selectColumns, &_33$$28, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3846); + ZEPHIR_INIT_NVAR(&_34$$28); + zephir_create_array(&_34$$28, 3, 0); + add_assoc_long_ex(&_34$$28, SL("type"), 360); + ZEPHIR_INIT_NVAR(&_35$$28); + zephir_create_array(&_35$$28, 2, 0); + add_assoc_long_ex(&_35$$28, SL("type"), 355); + zephir_array_update_string(&_35$$28, SL("name"), &relationModel, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_34$$28, SL("qualified"), &_35$$28, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_35$$28); + zephir_create_array(&_35$$28, 2, 0); + add_assoc_long_ex(&_35$$28, SL("type"), 355); + zephir_array_update_string(&_35$$28, SL("name"), &joinAlias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_34$$28, SL("alias"), &_35$$28, PH_COPY | PH_SEPARATE); + zephir_array_append(&automaticJoins, &_34$$28, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3858); + number++; + ZEPHIR_CALL_METHOD(NULL, &withs, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&withItem); } - ZEPHIR_CALL_METHOD(&_4$$33, this_ptr, "getcolumnsize", NULL, 0, column); + zephir_array_append(&sqlModels, &modelName, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3864); + zephir_array_append(&sqlTables, &completeSource, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3865); + zephir_array_update_zval(&modelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &selectedModels, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3, &selectedModels, "valid", NULL, 0); zephir_check_call_status(); - zephir_concat_self(&columnSql, &_4$$33); - break; - } - if (UNEXPECTED(ZEPHIR_IS_EMPTY(&columnSql))) { - ZEPHIR_INIT_VAR(&_5$$36); - object_init_ex(&_5$$36, phalcon_db_exception_ce); - ZEPHIR_CALL_METHOD(&_6$$36, column, "getname", NULL, 0); + if (!zend_is_true(&_3)) { + break; + } + ZEPHIR_CALL_METHOD(&selectedModel, &selectedModels, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_7$$36); - ZEPHIR_CONCAT_SV(&_7$$36, "Unrecognized PostgreSQL data type at column ", &_6$$36); - ZEPHIR_CALL_METHOD(NULL, &_5$$36, "__construct", NULL, 8, &_7$$36); + ZEPHIR_OBS_NVAR(&qualifiedName); + zephir_array_fetch_string(&qualifiedName, &selectedModel, SL("qualifiedName"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3748); + ZEPHIR_OBS_NVAR(&modelName); + zephir_array_fetch_string(&modelName, &qualifiedName, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3749); + ZEPHIR_CALL_METHOD(&model, &manager, "load", &_36, 0, &modelName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&schema, &model, "getschema", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&source, &model, "getsource", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&schema)) { + ZEPHIR_INIT_NVAR(&_37$$33); + zephir_create_array(&_37$$33, 2, 0); + zephir_array_fast_append(&_37$$33, &source); + zephir_array_fast_append(&_37$$33, &schema); + ZEPHIR_CPY_WRT(&completeSource, &_37$$33); + } else { + ZEPHIR_CPY_WRT(&completeSource, &source); + } + ZEPHIR_OBS_NVAR(&alias); + if (zephir_array_isset_string_fetch(&alias, &selectedModel, SL("alias"), 0)) { + if (UNEXPECTED(zephir_array_isset(&sqlAliases, &alias))) { + ZEPHIR_INIT_NVAR(&_38$$36); + object_init_ex(&_38$$36, phalcon_mvc_model_exception_ce); + zephir_read_property(&_39$$36, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_40$$36); + ZEPHIR_CONCAT_SVSV(&_40$$36, "Alias '", &alias, "' is used more than once, when preparing: ", &_39$$36); + ZEPHIR_CALL_METHOD(NULL, &_38$$36, "__construct", &_8, 8, &_40$$36); + zephir_check_call_status(); + zephir_throw_exception_debug(&_38$$36, "phalcon/Mvc/Model/Query.zep", 3774); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_array_update_zval(&sqlAliases, &alias, &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliasesModels, &alias, &modelName, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlModelsAliases, &modelName, &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliasesModelsInstances, &alias, &model, PH_COPY | PH_SEPARATE); + if (Z_TYPE_P(&completeSource) == IS_ARRAY) { + zephir_array_append(&completeSource, &alias, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3786); + } else { + ZEPHIR_INIT_NVAR(&_41$$38); + zephir_create_array(&_41$$38, 3, 0); + zephir_array_fast_append(&_41$$38, &source); + zephir_array_fast_append(&_41$$38, &__$null); + zephir_array_fast_append(&_41$$38, &alias); + ZEPHIR_CPY_WRT(&completeSource, &_41$$38); + } + zephir_array_update_zval(&models, &modelName, &alias, PH_COPY | PH_SEPARATE); + } else { + ZEPHIR_CPY_WRT(&alias, &source); + zephir_array_update_zval(&sqlAliases, &modelName, &source, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliasesModels, &modelName, &modelName, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlModelsAliases, &modelName, &modelName, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliasesModelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&models, &modelName, &source, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_NVAR(&with); + if (zephir_array_isset_string_fetch(&with, &selectedModel, SL("with"), 0)) { + if (!(zephir_array_isset_long(&with, 0))) { + ZEPHIR_INIT_NVAR(&_42$$41); + zephir_create_array(&_42$$41, 1, 0); + zephir_array_fast_append(&_42$$41, &with); + ZEPHIR_CPY_WRT(&withs, &_42$$41); + } else { + ZEPHIR_CPY_WRT(&withs, &with); + } + zephir_is_iterable(&withs, 0, "phalcon/Mvc/Model/Query.zep", 3862); + if (Z_TYPE_P(&withs) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&withs), _43$$40) + { + ZEPHIR_INIT_NVAR(&withItem); + ZVAL_COPY(&withItem, _43$$40); + ZEPHIR_INIT_NVAR(&_45$$43); + ZVAL_LONG(&_45$$43, number); + ZEPHIR_INIT_NVAR(&_46$$43); + ZEPHIR_CONCAT_SV(&_46$$43, "AA", &_45$$43); + ZEPHIR_CPY_WRT(&joinAlias, &_46$$43); + ZEPHIR_OBS_NVAR(&relationModel); + zephir_array_fetch_string(&relationModel, &withItem, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3812); + ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationbyalias", &_47, 0, &modelName, &relationModel); + zephir_check_call_status(); + if (Z_TYPE_P(&relation) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_48$$44); + ZVAL_STRING(&_48$$44, "alias"); + ZEPHIR_CALL_METHOD(&bestAlias, &relation, "getoption", NULL, 0, &_48$$44); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&relationModel, &relation, "getreferencedmodel", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&eagerType, &relation, "gettype", NULL, 0); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationsbetween", &_49, 0, &modelName, &relationModel); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&relation) != IS_OBJECT)) { + ZEPHIR_INIT_NVAR(&_50$$46); + object_init_ex(&_50$$46, phalcon_mvc_model_exception_ce); + zephir_read_property(&_51$$46, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_52$$46); + ZEPHIR_CONCAT_SVSVSV(&_52$$46, "Can't find a relationship between '", &modelName, "' and '", &relationModel, "' when preparing: ", &_51$$46); + ZEPHIR_CALL_METHOD(NULL, &_50$$46, "__construct", &_8, 8, &_52$$46); + zephir_check_call_status(); + zephir_throw_exception_debug(&_50$$46, "phalcon/Mvc/Model/Query.zep", 3832); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_NVAR(&_53$$45); + ZVAL_STRING(&_53$$45, "alias"); + ZEPHIR_CALL_METHOD(&bestAlias, &relation, "getoption", NULL, 0, &_53$$45); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&relationModel, &relation, "getreferencedmodel", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&eagerType, &relation, "gettype", NULL, 0); + zephir_check_call_status(); + } + ZEPHIR_INIT_NVAR(&_54$$43); + zephir_create_array(&_54$$43, 5, 0); + add_assoc_long_ex(&_54$$43, SL("type"), 353); + zephir_array_update_string(&_54$$43, SL("column"), &joinAlias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_54$$43, SL("eager"), &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_54$$43, SL("eagerType"), &eagerType, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_54$$43, SL("balias"), &bestAlias, PH_COPY | PH_SEPARATE); + zephir_array_append(&selectColumns, &_54$$43, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3846); + ZEPHIR_INIT_NVAR(&_55$$43); + zephir_create_array(&_55$$43, 3, 0); + add_assoc_long_ex(&_55$$43, SL("type"), 360); + ZEPHIR_INIT_NVAR(&_56$$43); + zephir_create_array(&_56$$43, 2, 0); + add_assoc_long_ex(&_56$$43, SL("type"), 355); + zephir_array_update_string(&_56$$43, SL("name"), &relationModel, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_55$$43, SL("qualified"), &_56$$43, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_56$$43); + zephir_create_array(&_56$$43, 2, 0); + add_assoc_long_ex(&_56$$43, SL("type"), 355); + zephir_array_update_string(&_56$$43, SL("name"), &joinAlias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_55$$43, SL("alias"), &_56$$43, PH_COPY | PH_SEPARATE); + zephir_array_append(&automaticJoins, &_55$$43, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3858); + number++; + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &withs, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_44$$40, &withs, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_44$$40)) { + break; + } + ZEPHIR_CALL_METHOD(&withItem, &withs, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_57$$47); + ZVAL_LONG(&_57$$47, number); + ZEPHIR_INIT_NVAR(&_58$$47); + ZEPHIR_CONCAT_SV(&_58$$47, "AA", &_57$$47); + ZEPHIR_CPY_WRT(&joinAlias, &_58$$47); + ZEPHIR_OBS_NVAR(&relationModel); + zephir_array_fetch_string(&relationModel, &withItem, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3812); + ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationbyalias", &_59, 0, &modelName, &relationModel); + zephir_check_call_status(); + if (Z_TYPE_P(&relation) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_60$$48); + ZVAL_STRING(&_60$$48, "alias"); + ZEPHIR_CALL_METHOD(&bestAlias, &relation, "getoption", NULL, 0, &_60$$48); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&relationModel, &relation, "getreferencedmodel", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&eagerType, &relation, "gettype", NULL, 0); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationsbetween", &_61, 0, &modelName, &relationModel); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&relation) != IS_OBJECT)) { + ZEPHIR_INIT_NVAR(&_62$$50); + object_init_ex(&_62$$50, phalcon_mvc_model_exception_ce); + zephir_read_property(&_63$$50, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_64$$50); + ZEPHIR_CONCAT_SVSVSV(&_64$$50, "Can't find a relationship between '", &modelName, "' and '", &relationModel, "' when preparing: ", &_63$$50); + ZEPHIR_CALL_METHOD(NULL, &_62$$50, "__construct", &_8, 8, &_64$$50); + zephir_check_call_status(); + zephir_throw_exception_debug(&_62$$50, "phalcon/Mvc/Model/Query.zep", 3832); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_NVAR(&_65$$49); + ZVAL_STRING(&_65$$49, "alias"); + ZEPHIR_CALL_METHOD(&bestAlias, &relation, "getoption", NULL, 0, &_65$$49); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&relationModel, &relation, "getreferencedmodel", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&eagerType, &relation, "gettype", NULL, 0); + zephir_check_call_status(); + } + ZEPHIR_INIT_NVAR(&_66$$47); + zephir_create_array(&_66$$47, 5, 0); + add_assoc_long_ex(&_66$$47, SL("type"), 353); + zephir_array_update_string(&_66$$47, SL("column"), &joinAlias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_66$$47, SL("eager"), &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_66$$47, SL("eagerType"), &eagerType, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_66$$47, SL("balias"), &bestAlias, PH_COPY | PH_SEPARATE); + zephir_array_append(&selectColumns, &_66$$47, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3846); + ZEPHIR_INIT_NVAR(&_67$$47); + zephir_create_array(&_67$$47, 3, 0); + add_assoc_long_ex(&_67$$47, SL("type"), 360); + ZEPHIR_INIT_NVAR(&_68$$47); + zephir_create_array(&_68$$47, 2, 0); + add_assoc_long_ex(&_68$$47, SL("type"), 355); + zephir_array_update_string(&_68$$47, SL("name"), &relationModel, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_67$$47, SL("qualified"), &_68$$47, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_68$$47); + zephir_create_array(&_68$$47, 2, 0); + add_assoc_long_ex(&_68$$47, SL("type"), 355); + zephir_array_update_string(&_68$$47, SL("name"), &joinAlias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_67$$47, SL("alias"), &_68$$47, PH_COPY | PH_SEPARATE); + zephir_array_append(&automaticJoins, &_67$$47, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3858); + number++; + ZEPHIR_CALL_METHOD(NULL, &withs, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&withItem); + } + zephir_array_append(&sqlModels, &modelName, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3864); + zephir_array_append(&sqlTables, &completeSource, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3865); + zephir_array_update_zval(&modelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &selectedModels, "next", NULL, 0); zephir_check_call_status(); - zephir_throw_exception_debug(&_5$$36, "phalcon/Db/Dialect/Postgresql.zep", 511); - ZEPHIR_MM_RESTORE(); - return; } - ZEPHIR_CALL_METHOD(&typeValues, column, "gettypevalues", NULL, 0); + } + ZEPHIR_INIT_NVAR(&selectedModel); + if (!(merge)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("models"), &models); + zephir_update_property_zval(this_ptr, ZEND_STRL("modelsInstances"), &modelsInstances); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliases"), &sqlAliases); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliasesModels"), &sqlAliasesModels); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlModelsAliases"), &sqlModelsAliases); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), &sqlAliasesModelsInstances); + } else { + ZEPHIR_OBS_VAR(&tempModels); + zephir_read_property(&tempModels, this_ptr, ZEND_STRL("models"), PH_NOISY_CC); + ZEPHIR_OBS_VAR(&tempModelsInstances); + zephir_read_property(&tempModelsInstances, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC); + ZEPHIR_OBS_VAR(&tempSqlAliases); + zephir_read_property(&tempSqlAliases, this_ptr, ZEND_STRL("sqlAliases"), PH_NOISY_CC); + ZEPHIR_OBS_VAR(&tempSqlAliasesModels); + zephir_read_property(&tempSqlAliasesModels, this_ptr, ZEND_STRL("sqlAliasesModels"), PH_NOISY_CC); + ZEPHIR_OBS_VAR(&tempSqlModelsAliases); + zephir_read_property(&tempSqlModelsAliases, this_ptr, ZEND_STRL("sqlModelsAliases"), PH_NOISY_CC); + ZEPHIR_OBS_VAR(&tempSqlAliasesModelsInstances); + zephir_read_property(&tempSqlAliasesModelsInstances, this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(&_69$$52); + zephir_read_property(&_70$$52, this_ptr, ZEND_STRL("models"), PH_NOISY_CC | PH_READONLY); + zephir_fast_array_merge(&_69$$52, &_70$$52, &models); + zephir_update_property_zval(this_ptr, ZEND_STRL("models"), &_69$$52); + ZEPHIR_INIT_VAR(&_71$$52); + zephir_read_property(&_72$$52, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); + zephir_fast_array_merge(&_71$$52, &_72$$52, &modelsInstances); + zephir_update_property_zval(this_ptr, ZEND_STRL("modelsInstances"), &_71$$52); + ZEPHIR_INIT_VAR(&_73$$52); + zephir_read_property(&_74$$52, this_ptr, ZEND_STRL("sqlAliases"), PH_NOISY_CC | PH_READONLY); + zephir_fast_array_merge(&_73$$52, &_74$$52, &sqlAliases); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliases"), &_73$$52); + ZEPHIR_INIT_VAR(&_75$$52); + zephir_read_property(&_76$$52, this_ptr, ZEND_STRL("sqlAliasesModels"), PH_NOISY_CC | PH_READONLY); + zephir_fast_array_merge(&_75$$52, &_76$$52, &sqlAliasesModels); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliasesModels"), &_75$$52); + ZEPHIR_INIT_VAR(&_77$$52); + zephir_read_property(&_78$$52, this_ptr, ZEND_STRL("sqlModelsAliases"), PH_NOISY_CC | PH_READONLY); + zephir_fast_array_merge(&_77$$52, &_78$$52, &sqlModelsAliases); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlModelsAliases"), &_77$$52); + ZEPHIR_INIT_VAR(&_79$$52); + zephir_read_property(&_80$$52, this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), PH_NOISY_CC | PH_READONLY); + zephir_fast_array_merge(&_79$$52, &_80$$52, &sqlAliasesModelsInstances); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), &_79$$52); + } + ZEPHIR_OBS_VAR(&joins); + zephir_array_isset_string_fetch(&joins, &select, SL("joins"), 0); + if (zephir_fast_count_int(&joins)) { + if (zephir_fast_count_int(&automaticJoins)) { + if (zephir_array_isset_long(&joins, 0)) { + ZEPHIR_INIT_VAR(&_81$$55); + zephir_fast_array_merge(&_81$$55, &joins, &automaticJoins); + zephir_array_update_string(&select, SL("joins"), &_81$$55, PH_COPY | PH_SEPARATE); + } else { + zephir_array_append(&automaticJoins, &joins, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3901); + zephir_array_update_string(&select, SL("joins"), &automaticJoins, PH_COPY | PH_SEPARATE); + } + } + ZEPHIR_CALL_METHOD(&sqlJoins, this_ptr, "getjoins", NULL, 483, &select); zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&typeValues))) { - if (Z_TYPE_P(&typeValues) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&valueSql$$38); - zephir_is_iterable(&typeValues, 0, "phalcon/Db/Dialect/Postgresql.zep", 526); - if (Z_TYPE_P(&typeValues) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&typeValues), _8$$38) + } else { + if (zephir_fast_count_int(&automaticJoins)) { + zephir_array_update_string(&select, SL("joins"), &automaticJoins, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&sqlJoins, this_ptr, "getjoins", NULL, 483, &select); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&sqlJoins); + array_init(&sqlJoins); + } + } + position = 0; + ZEPHIR_INIT_VAR(&sqlColumnAliases); + array_init(&sqlColumnAliases); + zephir_is_iterable(&selectColumns, 0, "phalcon/Mvc/Model/Query.zep", 3952); + if (Z_TYPE_P(&selectColumns) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&selectColumns), _82) + { + ZEPHIR_INIT_NVAR(&column); + ZVAL_COPY(&column, _82); + ZEPHIR_CALL_METHOD(&_84$$60, this_ptr, "getselectcolumn", &_85, 484, &column); + zephir_check_call_status(); + zephir_is_iterable(&_84$$60, 0, "phalcon/Mvc/Model/Query.zep", 3950); + if (Z_TYPE_P(&_84$$60) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_84$$60), _86$$60) + { + ZEPHIR_INIT_NVAR(&sqlColumn); + ZVAL_COPY(&sqlColumn, _86$$60); + ZEPHIR_OBS_NVAR(&alias); + if (zephir_array_isset_string_fetch(&alias, &column, SL("alias"), 0)) { + zephir_array_update_string(&sqlColumn, SL("balias"), &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&sqlColumn, SL("sqlAlias"), &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlColumns, &alias, &sqlColumn, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlColumnAliases, &alias, &__$true, PH_COPY | PH_SEPARATE); + } else { + ZEPHIR_OBS_NVAR(&alias); + if (zephir_array_isset_string_fetch(&alias, &sqlColumn, SL("balias"), 0)) { + zephir_array_update_zval(&sqlColumns, &alias, &sqlColumn, PH_COPY | PH_SEPARATE); + } else { + zephir_array_fetch_string(&_88$$65, &sqlColumn, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 3940); + if (ZEPHIR_IS_STRING(&_88$$65, "scalar")) { + ZEPHIR_INIT_NVAR(&_89$$66); + ZVAL_LONG(&_89$$66, position); + ZEPHIR_INIT_NVAR(&_90$$66); + ZEPHIR_CONCAT_SV(&_90$$66, "_", &_89$$66); + zephir_array_update_zval(&sqlColumns, &_90$$66, &sqlColumn, PH_COPY | PH_SEPARATE); + } else { + zephir_array_append(&sqlColumns, &sqlColumn, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3943); + } + } + } + position++; + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_84$$60, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_87$$60, &_84$$60, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_87$$60)) { + break; + } + ZEPHIR_CALL_METHOD(&sqlColumn, &_84$$60, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&alias); + if (zephir_array_isset_string_fetch(&alias, &column, SL("alias"), 0)) { + zephir_array_update_string(&sqlColumn, SL("balias"), &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&sqlColumn, SL("sqlAlias"), &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlColumns, &alias, &sqlColumn, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlColumnAliases, &alias, &__$true, PH_COPY | PH_SEPARATE); + } else { + ZEPHIR_OBS_NVAR(&alias); + if (zephir_array_isset_string_fetch(&alias, &sqlColumn, SL("balias"), 0)) { + zephir_array_update_zval(&sqlColumns, &alias, &sqlColumn, PH_COPY | PH_SEPARATE); + } else { + zephir_array_fetch_string(&_91$$72, &sqlColumn, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 3940); + if (ZEPHIR_IS_STRING(&_91$$72, "scalar")) { + ZEPHIR_INIT_NVAR(&_92$$73); + ZVAL_LONG(&_92$$73, position); + ZEPHIR_INIT_NVAR(&_93$$73); + ZEPHIR_CONCAT_SV(&_93$$73, "_", &_92$$73); + zephir_array_update_zval(&sqlColumns, &_93$$73, &sqlColumn, PH_COPY | PH_SEPARATE); + } else { + zephir_array_append(&sqlColumns, &sqlColumn, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3943); + } + } + } + position++; + ZEPHIR_CALL_METHOD(NULL, &_84$$60, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&sqlColumn); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &selectColumns, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_83, &selectColumns, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_83)) { + break; + } + ZEPHIR_CALL_METHOD(&column, &selectColumns, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_94$$75, this_ptr, "getselectcolumn", &_85, 484, &column); + zephir_check_call_status(); + zephir_is_iterable(&_94$$75, 0, "phalcon/Mvc/Model/Query.zep", 3950); + if (Z_TYPE_P(&_94$$75) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_94$$75), _95$$75) { - ZEPHIR_INIT_NVAR(&value$$38); - ZVAL_COPY(&value$$38, _8$$38); - ZEPHIR_INIT_NVAR(&_10$$39); - ZVAL_STRING(&_10$$39, "\'"); - ZEPHIR_CALL_FUNCTION(&_11$$39, "addcslashes", &_12, 214, &value$$38, &_10$$39); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_13$$39); - ZEPHIR_CONCAT_SVS(&_13$$39, "'", &_11$$39, "', "); - zephir_concat_self(&valueSql$$38, &_13$$39); + ZEPHIR_INIT_NVAR(&sqlColumn); + ZVAL_COPY(&sqlColumn, _95$$75); + ZEPHIR_OBS_NVAR(&alias); + if (zephir_array_isset_string_fetch(&alias, &column, SL("alias"), 0)) { + zephir_array_update_string(&sqlColumn, SL("balias"), &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&sqlColumn, SL("sqlAlias"), &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlColumns, &alias, &sqlColumn, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlColumnAliases, &alias, &__$true, PH_COPY | PH_SEPARATE); + } else { + ZEPHIR_OBS_NVAR(&alias); + if (zephir_array_isset_string_fetch(&alias, &sqlColumn, SL("balias"), 0)) { + zephir_array_update_zval(&sqlColumns, &alias, &sqlColumn, PH_COPY | PH_SEPARATE); + } else { + zephir_array_fetch_string(&_97$$80, &sqlColumn, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 3940); + if (ZEPHIR_IS_STRING(&_97$$80, "scalar")) { + ZEPHIR_INIT_NVAR(&_98$$81); + ZVAL_LONG(&_98$$81, position); + ZEPHIR_INIT_NVAR(&_99$$81); + ZEPHIR_CONCAT_SV(&_99$$81, "_", &_98$$81); + zephir_array_update_zval(&sqlColumns, &_99$$81, &sqlColumn, PH_COPY | PH_SEPARATE); + } else { + zephir_array_append(&sqlColumns, &sqlColumn, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3943); + } + } + } + position++; } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &typeValues, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &_94$$75, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_9$$38, &typeValues, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_96$$75, &_94$$75, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_9$$38)) { + if (!zend_is_true(&_96$$75)) { break; } - ZEPHIR_CALL_METHOD(&value$$38, &typeValues, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&sqlColumn, &_94$$75, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_14$$40); - ZVAL_STRING(&_14$$40, "\'"); - ZEPHIR_CALL_FUNCTION(&_15$$40, "addcslashes", &_12, 214, &value$$38, &_14$$40); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_16$$40); - ZEPHIR_CONCAT_SVS(&_16$$40, "'", &_15$$40, "', "); - zephir_concat_self(&valueSql$$38, &_16$$40); - ZEPHIR_CALL_METHOD(NULL, &typeValues, "next", NULL, 0); + ZEPHIR_OBS_NVAR(&alias); + if (zephir_array_isset_string_fetch(&alias, &column, SL("alias"), 0)) { + zephir_array_update_string(&sqlColumn, SL("balias"), &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&sqlColumn, SL("sqlAlias"), &alias, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlColumns, &alias, &sqlColumn, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlColumnAliases, &alias, &__$true, PH_COPY | PH_SEPARATE); + } else { + ZEPHIR_OBS_NVAR(&alias); + if (zephir_array_isset_string_fetch(&alias, &sqlColumn, SL("balias"), 0)) { + zephir_array_update_zval(&sqlColumns, &alias, &sqlColumn, PH_COPY | PH_SEPARATE); + } else { + zephir_array_fetch_string(&_100$$87, &sqlColumn, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 3940); + if (ZEPHIR_IS_STRING(&_100$$87, "scalar")) { + ZEPHIR_INIT_NVAR(&_101$$88); + ZVAL_LONG(&_101$$88, position); + ZEPHIR_INIT_NVAR(&_102$$88); + ZEPHIR_CONCAT_SV(&_102$$88, "_", &_101$$88); + zephir_array_update_zval(&sqlColumns, &_102$$88, &sqlColumn, PH_COPY | PH_SEPARATE); + } else { + zephir_array_append(&sqlColumns, &sqlColumn, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3943); + } + } + } + position++; + ZEPHIR_CALL_METHOD(NULL, &_94$$75, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&value$$38); - ZVAL_LONG(&_17$$38, 0); - ZVAL_LONG(&_18$$38, -2); - ZEPHIR_INIT_VAR(&_19$$38); - zephir_substr(&_19$$38, &valueSql$$38, 0 , -2 , 0); - ZEPHIR_INIT_VAR(&_20$$38); - ZEPHIR_CONCAT_SVS(&_20$$38, "(", &_19$$38, ")"); - zephir_concat_self(&columnSql, &_20$$38); - } else { - ZEPHIR_INIT_VAR(&_21$$41); - ZVAL_STRING(&_21$$41, "\'"); - ZEPHIR_CALL_FUNCTION(&_22$$41, "addcslashes", &_12, 214, &typeValues, &_21$$41); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_23$$41); - ZEPHIR_CONCAT_SVS(&_23$$41, "('", &_22$$41, "')"); - zephir_concat_self(&columnSql, &_23$$41); - } + ZEPHIR_INIT_NVAR(&sqlColumn); + ZEPHIR_CALL_METHOD(NULL, &selectColumns, "next", NULL, 0); + zephir_check_call_status(); } - } while(0); - - RETURN_CCTOR(&columnSql); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, listTables) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *schemaName_param = NULL; - zval schemaName; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&schemaName); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &schemaName_param); - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - zephir_get_strval(&schemaName, schemaName_param); } - - - if (ZEPHIR_IS_NULL(&schemaName)) { - ZEPHIR_INIT_NVAR(&schemaName); - ZVAL_STRING(&schemaName, "public"); + ZEPHIR_INIT_NVAR(&column); + ZEPHIR_OBS_VAR(&_103); + zephir_read_property(&_103, this_ptr, ZEND_STRL("nestingLevel"), PH_NOISY_CC); + zephir_update_property_array(this_ptr, SL("sqlColumnAliases"), &_103, &sqlColumnAliases); + ZEPHIR_INIT_VAR(&sqlSelect); + zephir_create_array(&sqlSelect, 3, 0); + zephir_array_update_string(&sqlSelect, SL("models"), &sqlModels, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&sqlSelect, SL("tables"), &sqlTables, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&sqlSelect, SL("columns"), &sqlColumns, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_VAR(&distinct); + if (zephir_array_isset_string_fetch(&distinct, &select, SL("distinct"), 0)) { + zephir_array_update_string(&sqlSelect, SL("distinct"), &distinct, PH_COPY | PH_SEPARATE); } - ZEPHIR_CONCAT_SVS(return_value, "SELECT table_name FROM information_schema.tables WHERE table_schema = '", &schemaName, "' ORDER BY table_name"); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, listViews) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *schemaName_param = NULL; - zval schemaName; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&schemaName); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &schemaName_param); - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - zephir_get_strval(&schemaName, schemaName_param); + if (zephir_fast_count_int(&sqlJoins)) { + zephir_array_update_string(&sqlSelect, SL("joins"), &sqlJoins, PH_COPY | PH_SEPARATE); } - - - if (ZEPHIR_IS_NULL(&schemaName)) { - ZEPHIR_INIT_NVAR(&schemaName); - ZVAL_STRING(&schemaName, "public"); + ZEPHIR_OBS_VAR(&where); + if (zephir_array_isset_string_fetch(&where, ast, SL("where"), 0)) { + ZEPHIR_CALL_METHOD(&_104$$92, this_ptr, "getexpression", NULL, 468, &where); + zephir_check_call_status(); + zephir_array_update_string(&sqlSelect, SL("where"), &_104$$92, PH_COPY | PH_SEPARATE); } - ZEPHIR_CONCAT_SVS(return_value, "SELECT viewname AS view_name FROM pg_views WHERE schemaname = '", &schemaName, "' ORDER BY view_name"); - RETURN_MM(); + ZEPHIR_OBS_VAR(&groupBy); + if (zephir_array_isset_string_fetch(&groupBy, ast, SL("groupBy"), 0)) { + ZEPHIR_CALL_METHOD(&_105$$93, this_ptr, "getgroupclause", NULL, 485, &groupBy); + zephir_check_call_status(); + zephir_array_update_string(&sqlSelect, SL("group"), &_105$$93, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_VAR(&having); + if (zephir_array_isset_string_fetch(&having, ast, SL("having"), 0)) { + ZEPHIR_CALL_METHOD(&_106$$94, this_ptr, "getexpression", NULL, 468, &having); + zephir_check_call_status(); + zephir_array_update_string(&sqlSelect, SL("having"), &_106$$94, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_VAR(&order); + if (zephir_array_isset_string_fetch(&order, ast, SL("orderBy"), 0)) { + ZEPHIR_CALL_METHOD(&_107$$95, this_ptr, "getorderclause", NULL, 486, &order); + zephir_check_call_status(); + zephir_array_update_string(&sqlSelect, SL("order"), &_107$$95, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_VAR(&limit); + if (zephir_array_isset_string_fetch(&limit, ast, SL("limit"), 0)) { + ZEPHIR_CALL_METHOD(&_108$$96, this_ptr, "getlimitclause", NULL, 482, &limit); + zephir_check_call_status(); + zephir_array_update_string(&sqlSelect, SL("limit"), &_108$$96, PH_COPY | PH_SEPARATE); + } + if (zephir_array_isset_string(ast, SL("forUpdate"))) { + zephir_array_update_string(&sqlSelect, SL("forUpdate"), &__$true, PH_COPY | PH_SEPARATE); + } + if (merge) { + zephir_update_property_zval(this_ptr, ZEND_STRL("models"), &tempModels); + zephir_update_property_zval(this_ptr, ZEND_STRL("modelsInstances"), &tempModelsInstances); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliases"), &tempSqlAliases); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliasesModels"), &tempSqlAliasesModels); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlModelsAliases"), &tempSqlModelsAliases); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), &tempSqlAliasesModelsInstances); + } + RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("nestingLevel"))); + RETURN_CCTOR(&sqlSelect); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, modifyColumn) +static PHP_METHOD(Phalcon_Mvc_Model_Query, _prepareUpdate) { - zend_bool _26$$10; + zval _15$$20, _22$$21; + zend_bool notQuoting = 0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval __$null, ast, update, tables, values, modelsInstances, models, sqlTables, sqlAliases, sqlAliasesModelsInstances, updateTables, completeSource, sqlModels, manager, table, qualifiedName, modelName, model, source, schema, alias, sqlFields, sqlValues, updateValues, updateValue, exprColumn, sqlUpdate, where, limit, _0, *_1, _2, *_9, _10, _4$$9, _5$$10, _7$$14, _8$$15, _11$$20, _12$$20, _13$$20, _16$$20, _17$$20, _18$$20, _19$$21, _20$$21, _21$$21, _23$$21, _24$$21, _25$$21, _26$$22, _27$$22, _28$$23; + zephir_fcall_cache_entry *_3 = NULL, *_6 = NULL, *_14 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *column, column_sub, *currentColumn = NULL, currentColumn_sub, __$null, defaultValue, columnDefinition, _0, _1, _2, _3, _7, _8, _11, _12, _18, _23, _24, _4$$4, _5$$4, _6$$4, _9$$5, _10$$5, _13$$6, _14$$7, _15$$7, _16$$8, _17$$8, _19$$9, _20$$9, _21$$9, _22$$9, _25$$10, _27$$10, _30$$10, _28$$11, _29$$11, _31$$12, _32$$13, _33$$13, _34$$14, _35$$14; - zval tableName, schemaName, sql, sqlAlterTable; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&sqlAlterTable); - ZVAL_UNDEF(&column_sub); - ZVAL_UNDEF(¤tColumn_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&defaultValue); - ZVAL_UNDEF(&columnDefinition); + ZVAL_UNDEF(&ast); + ZVAL_UNDEF(&update); + ZVAL_UNDEF(&tables); + ZVAL_UNDEF(&values); + ZVAL_UNDEF(&modelsInstances); + ZVAL_UNDEF(&models); + ZVAL_UNDEF(&sqlTables); + ZVAL_UNDEF(&sqlAliases); + ZVAL_UNDEF(&sqlAliasesModelsInstances); + ZVAL_UNDEF(&updateTables); + ZVAL_UNDEF(&completeSource); + ZVAL_UNDEF(&sqlModels); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&qualifiedName); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&source); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&alias); + ZVAL_UNDEF(&sqlFields); + ZVAL_UNDEF(&sqlValues); + ZVAL_UNDEF(&updateValues); + ZVAL_UNDEF(&updateValue); + ZVAL_UNDEF(&exprColumn); + ZVAL_UNDEF(&sqlUpdate); + ZVAL_UNDEF(&where); + ZVAL_UNDEF(&limit); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_18); - ZVAL_UNDEF(&_23); - ZVAL_UNDEF(&_24); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_10$$5); - ZVAL_UNDEF(&_13$$6); - ZVAL_UNDEF(&_14$$7); - ZVAL_UNDEF(&_15$$7); - ZVAL_UNDEF(&_16$$8); - ZVAL_UNDEF(&_17$$8); - ZVAL_UNDEF(&_19$$9); - ZVAL_UNDEF(&_20$$9); - ZVAL_UNDEF(&_21$$9); - ZVAL_UNDEF(&_22$$9); - ZVAL_UNDEF(&_25$$10); - ZVAL_UNDEF(&_27$$10); - ZVAL_UNDEF(&_30$$10); - ZVAL_UNDEF(&_28$$11); - ZVAL_UNDEF(&_29$$11); - ZVAL_UNDEF(&_31$$12); - ZVAL_UNDEF(&_32$$13); - ZVAL_UNDEF(&_33$$13); - ZVAL_UNDEF(&_34$$14); - ZVAL_UNDEF(&_35$$14); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 4) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) - Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(currentColumn, phalcon_db_columninterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_4$$9); + ZVAL_UNDEF(&_5$$10); + ZVAL_UNDEF(&_7$$14); + ZVAL_UNDEF(&_8$$15); + ZVAL_UNDEF(&_11$$20); + ZVAL_UNDEF(&_12$$20); + ZVAL_UNDEF(&_13$$20); + ZVAL_UNDEF(&_16$$20); + ZVAL_UNDEF(&_17$$20); + ZVAL_UNDEF(&_18$$20); + ZVAL_UNDEF(&_19$$21); + ZVAL_UNDEF(&_20$$21); + ZVAL_UNDEF(&_21$$21); + ZVAL_UNDEF(&_23$$21); + ZVAL_UNDEF(&_24$$21); + ZVAL_UNDEF(&_25$$21); + ZVAL_UNDEF(&_26$$22); + ZVAL_UNDEF(&_27$$22); + ZVAL_UNDEF(&_28$$23); + ZVAL_UNDEF(&_15$$20); + ZVAL_UNDEF(&_22$$21); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 1, &tableName_param, &schemaName_param, &column, ¤tColumn); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("ast"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&ast, &_0); + ZEPHIR_OBS_VAR(&update); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&update, &ast, SL("update"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted UPDATE AST", "phalcon/Mvc/Model/Query.zep", 4029); + return; } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); + ZEPHIR_OBS_VAR(&tables); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&tables, &update, SL("tables"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted UPDATE AST", "phalcon/Mvc/Model/Query.zep", 4033); + return; } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); + ZEPHIR_OBS_VAR(&values); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&values, &update, SL("values"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted UPDATE AST", "phalcon/Mvc/Model/Query.zep", 4037); + return; } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); + ZEPHIR_INIT_VAR(&models); + array_init(&models); + ZEPHIR_INIT_VAR(&modelsInstances); + array_init(&modelsInstances); + ZEPHIR_INIT_VAR(&sqlTables); + array_init(&sqlTables); + ZEPHIR_INIT_VAR(&sqlModels); + array_init(&sqlModels); + ZEPHIR_INIT_VAR(&sqlAliases); + array_init(&sqlAliases); + ZEPHIR_INIT_VAR(&sqlAliasesModelsInstances); + array_init(&sqlAliasesModelsInstances); + if (!(zephir_array_isset_long(&tables, 0))) { + ZEPHIR_INIT_VAR(&updateTables); + zephir_create_array(&updateTables, 1, 0); + zephir_array_fast_append(&updateTables, &tables); } else { - ZEPHIR_INIT_VAR(&schemaName); + ZEPHIR_CPY_WRT(&updateTables, &tables); } - if (!currentColumn) { - currentColumn = ¤tColumn_sub; - ZEPHIR_CPY_WRT(currentColumn, &__$null); + zephir_read_property(&_0, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&manager, &_0); + zephir_is_iterable(&updateTables, 0, "phalcon/Mvc/Model/Query.zep", 4103); + if (Z_TYPE_P(&updateTables) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&updateTables), _1) + { + ZEPHIR_INIT_NVAR(&table); + ZVAL_COPY(&table, _1); + ZEPHIR_OBS_NVAR(&qualifiedName); + zephir_array_fetch_string(&qualifiedName, &table, SL("qualifiedName"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 4061); + ZEPHIR_OBS_NVAR(&modelName); + zephir_array_fetch_string(&modelName, &qualifiedName, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 4062); + ZEPHIR_CALL_METHOD(&model, &manager, "load", &_3, 0, &modelName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&source, &model, "getsource", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&schema, &model, "getschema", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&completeSource); + if (zephir_is_true(&schema)) { + ZEPHIR_INIT_NVAR(&_4$$9); + zephir_create_array(&_4$$9, 2, 0); + zephir_array_fast_append(&_4$$9, &source); + zephir_array_fast_append(&_4$$9, &schema); + ZEPHIR_CPY_WRT(&completeSource, &_4$$9); + } else { + ZEPHIR_INIT_NVAR(&_5$$10); + zephir_create_array(&_5$$10, 2, 0); + zephir_array_fast_append(&_5$$10, &source); + zephir_array_fast_append(&_5$$10, &__$null); + ZEPHIR_CPY_WRT(&completeSource, &_5$$10); + } + ZEPHIR_OBS_NVAR(&alias); + if (zephir_array_isset_string_fetch(&alias, &table, SL("alias"), 0)) { + zephir_array_update_zval(&sqlAliases, &alias, &alias, PH_COPY | PH_SEPARATE); + zephir_array_append(&completeSource, &alias, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4085); + zephir_array_append(&sqlTables, &completeSource, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4086); + zephir_array_update_zval(&sqlAliasesModelsInstances, &alias, &model, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&models, &alias, &modelName, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_zval(&sqlAliases, &modelName, &source, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliasesModelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); + zephir_array_append(&sqlTables, &source, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4092); + zephir_array_update_zval(&models, &modelName, &source, PH_COPY | PH_SEPARATE); + } + zephir_array_append(&sqlModels, &modelName, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4096); + zephir_array_update_zval(&modelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_SEPARATE_PARAM(currentColumn); - } - - - ZEPHIR_INIT_VAR(&sql); - ZEPHIR_CALL_METHOD(&columnDefinition, this_ptr, "getcolumndefinition", NULL, 0, column); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_CONCAT_SV(&_1, "ALTER TABLE ", &_0); - zephir_get_strval(&sqlAlterTable, &_1); - if (Z_TYPE_P(currentColumn) != IS_OBJECT) { - ZEPHIR_CPY_WRT(currentColumn, column); - } - ZEPHIR_CALL_METHOD(&_2, column, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_3, currentColumn, "getname", NULL, 0); - zephir_check_call_status(); - if (!ZEPHIR_IS_IDENTICAL(&_2, &_3)) { - ZEPHIR_CALL_METHOD(&_4$$4, currentColumn, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_5$$4, column, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_6$$4); - ZEPHIR_CONCAT_VSVSVS(&_6$$4, &sqlAlterTable, " RENAME COLUMN \"", &_4$$4, "\" TO \"", &_5$$4, "\";"); - zephir_concat_self(&sql, &_6$$4); - } - ZEPHIR_CALL_METHOD(&_7, column, "gettype", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_8, currentColumn, "gettype", NULL, 0); - zephir_check_call_status(); - if (!ZEPHIR_IS_IDENTICAL(&_7, &_8)) { - ZEPHIR_CALL_METHOD(&_9$$5, column, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_10$$5); - ZEPHIR_CONCAT_VSVSVS(&_10$$5, &sqlAlterTable, " ALTER COLUMN \"", &_9$$5, "\" TYPE ", &columnDefinition, ";"); - zephir_concat_self(&sql, &_10$$5); - } - ZEPHIR_CALL_METHOD(&_11, column, "isnotnull", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_12, currentColumn, "isnotnull", NULL, 0); - zephir_check_call_status(); - if (!ZEPHIR_IS_IDENTICAL(&_11, &_12)) { - ZEPHIR_CALL_METHOD(&_13$$6, column, "isnotnull", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &updateTables, "rewind", NULL, 0); zephir_check_call_status(); - if (zephir_is_true(&_13$$6)) { - ZEPHIR_CALL_METHOD(&_14$$7, column, "getname", NULL, 0); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &updateTables, "valid", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_15$$7); - ZEPHIR_CONCAT_VSVS(&_15$$7, &sqlAlterTable, " ALTER COLUMN \"", &_14$$7, "\" SET NOT NULL;"); - zephir_concat_self(&sql, &_15$$7); - } else { - ZEPHIR_CALL_METHOD(&_16$$8, column, "getname", NULL, 0); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&table, &updateTables, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&qualifiedName); + zephir_array_fetch_string(&qualifiedName, &table, SL("qualifiedName"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 4061); + ZEPHIR_OBS_NVAR(&modelName); + zephir_array_fetch_string(&modelName, &qualifiedName, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 4062); + ZEPHIR_CALL_METHOD(&model, &manager, "load", &_6, 0, &modelName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&source, &model, "getsource", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&schema, &model, "getschema", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&schema)) { + ZEPHIR_INIT_NVAR(&_7$$14); + zephir_create_array(&_7$$14, 2, 0); + zephir_array_fast_append(&_7$$14, &source); + zephir_array_fast_append(&_7$$14, &schema); + ZEPHIR_CPY_WRT(&completeSource, &_7$$14); + } else { + ZEPHIR_INIT_NVAR(&_8$$15); + zephir_create_array(&_8$$15, 2, 0); + zephir_array_fast_append(&_8$$15, &source); + zephir_array_fast_append(&_8$$15, &__$null); + ZEPHIR_CPY_WRT(&completeSource, &_8$$15); + } + ZEPHIR_OBS_NVAR(&alias); + if (zephir_array_isset_string_fetch(&alias, &table, SL("alias"), 0)) { + zephir_array_update_zval(&sqlAliases, &alias, &alias, PH_COPY | PH_SEPARATE); + zephir_array_append(&completeSource, &alias, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4085); + zephir_array_append(&sqlTables, &completeSource, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4086); + zephir_array_update_zval(&sqlAliasesModelsInstances, &alias, &model, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&models, &alias, &modelName, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_zval(&sqlAliases, &modelName, &source, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&sqlAliasesModelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); + zephir_array_append(&sqlTables, &source, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4092); + zephir_array_update_zval(&models, &modelName, &source, PH_COPY | PH_SEPARATE); + } + zephir_array_append(&sqlModels, &modelName, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4096); + zephir_array_update_zval(&modelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &updateTables, "next", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_17$$8); - ZEPHIR_CONCAT_VSVS(&_17$$8, &sqlAlterTable, " ALTER COLUMN \"", &_16$$8, "\" DROP NOT NULL;"); - zephir_concat_self(&sql, &_17$$8); } } - ZEPHIR_CALL_METHOD(&_18, column, "getcomment", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_18)) { - ZEPHIR_CALL_METHOD(&_19$$9, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_20$$9, column, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_21$$9, column, "getcomment", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_22$$9); - ZEPHIR_CONCAT_SVSVSVS(&_22$$9, "COMMENT ON COLUMN ", &_19$$9, ".\"", &_20$$9, "\" IS '", &_21$$9, "';"); - zephir_concat_self(&sql, &_22$$9); + ZEPHIR_INIT_NVAR(&table); + zephir_update_property_zval(this_ptr, ZEND_STRL("models"), &models); + zephir_update_property_zval(this_ptr, ZEND_STRL("modelsInstances"), &modelsInstances); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliases"), &sqlAliases); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), &sqlAliasesModelsInstances); + ZEPHIR_INIT_VAR(&sqlFields); + array_init(&sqlFields); + ZEPHIR_INIT_VAR(&sqlValues); + array_init(&sqlValues); + if (!(zephir_array_isset_long(&values, 0))) { + ZEPHIR_INIT_VAR(&updateValues); + zephir_create_array(&updateValues, 1, 0); + zephir_array_fast_append(&updateValues, &values); + } else { + ZEPHIR_CPY_WRT(&updateValues, &values); } - ZEPHIR_CALL_METHOD(&_23, column, "getdefault", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_24, currentColumn, "getdefault", NULL, 0); - zephir_check_call_status(); - if (!ZEPHIR_IS_IDENTICAL(&_23, &_24)) { - ZEPHIR_CALL_METHOD(&_25$$10, column, "getdefault", NULL, 0); - zephir_check_call_status(); - _26$$10 = ZEPHIR_IS_EMPTY(&_25$$10); - if (_26$$10) { - ZEPHIR_CALL_METHOD(&_27$$10, currentColumn, "getdefault", NULL, 0); + notQuoting = 0; + zephir_is_iterable(&updateValues, 0, "phalcon/Mvc/Model/Query.zep", 4127); + if (Z_TYPE_P(&updateValues) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&updateValues), _9) + { + ZEPHIR_INIT_NVAR(&updateValue); + ZVAL_COPY(&updateValue, _9); + zephir_array_fetch_string(&_12$$20, &updateValue, SL("column"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 4119); + if (notQuoting) { + ZVAL_BOOL(&_13$$20, 1); + } else { + ZVAL_BOOL(&_13$$20, 0); + } + ZEPHIR_CALL_METHOD(&_11$$20, this_ptr, "getexpression", &_14, 468, &_12$$20, &_13$$20); zephir_check_call_status(); - _26$$10 = !(ZEPHIR_IS_EMPTY(&_27$$10)); - } - if (_26$$10) { - ZEPHIR_CALL_METHOD(&_28$$11, column, "getname", NULL, 0); + zephir_array_append(&sqlFields, &_11$$20, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4119); + ZEPHIR_OBS_NVAR(&exprColumn); + zephir_array_fetch_string(&exprColumn, &updateValue, SL("expr"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 4120); + ZEPHIR_INIT_NVAR(&_15$$20); + zephir_create_array(&_15$$20, 2, 0); + ZEPHIR_OBS_NVAR(&_16$$20); + zephir_array_fetch_string(&_16$$20, &exprColumn, SL("type"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 4122); + zephir_array_update_string(&_15$$20, SL("type"), &_16$$20, PH_COPY | PH_SEPARATE); + if (notQuoting) { + ZVAL_BOOL(&_18$$20, 1); + } else { + ZVAL_BOOL(&_18$$20, 0); + } + ZEPHIR_CALL_METHOD(&_17$$20, this_ptr, "getexpression", &_14, 468, &exprColumn, &_18$$20); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_29$$11); - ZEPHIR_CONCAT_VSVS(&_29$$11, &sqlAlterTable, " ALTER COLUMN \"", &_28$$11, "\" DROP DEFAULT;"); - zephir_concat_self(&sql, &_29$$11); - } - ZEPHIR_CALL_METHOD(&_30$$10, column, "hasdefault", NULL, 0); + zephir_array_update_string(&_15$$20, SL("value"), &_17$$20, PH_COPY | PH_SEPARATE); + zephir_array_append(&sqlValues, &_15$$20, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4124); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &updateValues, "rewind", NULL, 0); zephir_check_call_status(); - if (zephir_is_true(&_30$$10)) { - ZEPHIR_CALL_METHOD(&defaultValue, this_ptr, "castdefault", NULL, 0, column); + while (1) { + ZEPHIR_CALL_METHOD(&_10, &updateValues, "valid", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_31$$12); - zephir_fast_strtoupper(&_31$$12, &columnDefinition); - if (zephir_memnstr_str(&_31$$12, SL("BOOLEAN"), "phalcon/Db/Dialect/Postgresql.zep", 616)) { - ZEPHIR_CALL_METHOD(&_32$$13, column, "getname", NULL, 0); + if (!zend_is_true(&_10)) { + break; + } + ZEPHIR_CALL_METHOD(&updateValue, &updateValues, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_fetch_string(&_20$$21, &updateValue, SL("column"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 4119); + if (notQuoting) { + ZVAL_BOOL(&_21$$21, 1); + } else { + ZVAL_BOOL(&_21$$21, 0); + } + ZEPHIR_CALL_METHOD(&_19$$21, this_ptr, "getexpression", &_14, 468, &_20$$21, &_21$$21); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_33$$13); - ZEPHIR_CONCAT_SVSV(&_33$$13, " ALTER COLUMN \"", &_32$$13, "\" SET DEFAULT ", &defaultValue); - zephir_concat_self(&sql, &_33$$13); - } else { - ZEPHIR_CALL_METHOD(&_34$$14, column, "getname", NULL, 0); + zephir_array_append(&sqlFields, &_19$$21, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4119); + ZEPHIR_OBS_NVAR(&exprColumn); + zephir_array_fetch_string(&exprColumn, &updateValue, SL("expr"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 4120); + ZEPHIR_INIT_NVAR(&_22$$21); + zephir_create_array(&_22$$21, 2, 0); + ZEPHIR_OBS_NVAR(&_23$$21); + zephir_array_fetch_string(&_23$$21, &exprColumn, SL("type"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 4122); + zephir_array_update_string(&_22$$21, SL("type"), &_23$$21, PH_COPY | PH_SEPARATE); + if (notQuoting) { + ZVAL_BOOL(&_25$$21, 1); + } else { + ZVAL_BOOL(&_25$$21, 0); + } + ZEPHIR_CALL_METHOD(&_24$$21, this_ptr, "getexpression", &_14, 468, &exprColumn, &_25$$21); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_35$$14); - ZEPHIR_CONCAT_VSVSV(&_35$$14, &sqlAlterTable, " ALTER COLUMN \"", &_34$$14, "\" SET DEFAULT ", &defaultValue); - zephir_concat_self(&sql, &_35$$14); - } + zephir_array_update_string(&_22$$21, SL("value"), &_24$$21, PH_COPY | PH_SEPARATE); + zephir_array_append(&sqlValues, &_22$$21, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4124); + ZEPHIR_CALL_METHOD(NULL, &updateValues, "next", NULL, 0); + zephir_check_call_status(); } } - RETURN_CTOR(&sql); + ZEPHIR_INIT_NVAR(&updateValue); + ZEPHIR_INIT_VAR(&sqlUpdate); + zephir_create_array(&sqlUpdate, 4, 0); + zephir_array_update_string(&sqlUpdate, SL("tables"), &sqlTables, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&sqlUpdate, SL("models"), &sqlModels, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&sqlUpdate, SL("fields"), &sqlFields, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&sqlUpdate, SL("values"), &sqlValues, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_VAR(&where); + if (zephir_array_isset_string_fetch(&where, &ast, SL("where"), 0)) { + ZVAL_BOOL(&_27$$22, 1); + ZEPHIR_CALL_METHOD(&_26$$22, this_ptr, "getexpression", &_14, 468, &where, &_27$$22); + zephir_check_call_status(); + zephir_array_update_string(&sqlUpdate, SL("where"), &_26$$22, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_VAR(&limit); + if (zephir_array_isset_string_fetch(&limit, &ast, SL("limit"), 0)) { + ZEPHIR_CALL_METHOD(&_28$$23, this_ptr, "getlimitclause", NULL, 482, &limit); + zephir_check_call_status(); + zephir_array_update_string(&sqlUpdate, SL("limit"), &_28$$23, PH_COPY | PH_SEPARATE); + } + RETURN_CCTOR(&sqlUpdate); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, sharedLock) +zend_object *zephir_init_properties_Phalcon_Mvc_Model_Query(zend_class_entry *class_type) { + zval _0, _2, _4, _6, _8, _10, _12, _14, _16, _1$$3, _3$$4, _5$$5, _7$$6, _9$$7, _11$$8, _13$$9, _15$$10, _17$$11; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *sqlQuery_param = NULL; - zval sqlQuery; - zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_16); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_9$$7); + ZVAL_UNDEF(&_11$$8); + ZVAL_UNDEF(&_13$$9); + ZVAL_UNDEF(&_15$$10); + ZVAL_UNDEF(&_17$$11); + - ZVAL_UNDEF(&sqlQuery); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(sqlQuery) - ZEND_PARSE_PARAMETERS_END(); + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("sqlModelsAliases"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("sqlModelsAliases"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("sqlColumnAliases"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("sqlColumnAliases"), &_3$$4); + } + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_4) == IS_NULL) { + ZEPHIR_INIT_VAR(&_5$$5); + array_init(&_5$$5); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), &_5$$5); + } + zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("sqlAliasesModels"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_6) == IS_NULL) { + ZEPHIR_INIT_VAR(&_7$$6); + array_init(&_7$$6); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("sqlAliasesModels"), &_7$$6); + } + zephir_read_property_ex(&_8, this_ptr, ZEND_STRL("sqlAliases"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_8) == IS_NULL) { + ZEPHIR_INIT_VAR(&_9$$7); + array_init(&_9$$7); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("sqlAliases"), &_9$$7); + } + zephir_read_property_ex(&_10, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_10) == IS_NULL) { + ZEPHIR_INIT_VAR(&_11$$8); + array_init(&_11$$8); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("modelsInstances"), &_11$$8); + } + zephir_read_property_ex(&_12, this_ptr, ZEND_STRL("models"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_12) == IS_NULL) { + ZEPHIR_INIT_VAR(&_13$$9); + array_init(&_13$$9); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("models"), &_13$$9); + } + zephir_read_property_ex(&_14, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_14) == IS_NULL) { + ZEPHIR_INIT_VAR(&_15$$10); + array_init(&_15$$10); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("bindTypes"), &_15$$10); + } + zephir_read_property_ex(&_16, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_16) == IS_NULL) { + ZEPHIR_INIT_VAR(&_17$$11); + array_init(&_17$$11); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("bindParams"), &_17$$11); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &sqlQuery_param); - if (UNEXPECTED(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { - zephir_get_strval(&sqlQuery, sqlQuery_param); - } else { - ZEPHIR_INIT_VAR(&sqlQuery); - } - RETURN_CTOR(&sqlQuery); + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_QueryInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model, QueryInterface, phalcon, mvc_model_queryinterface, phalcon_mvc_model_queryinterface_method_entry); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, tableExists) +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, cache); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, execute); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, getBindParams); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, getCacheOptions); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, getBindTypes); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, getSql); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, getSingleResult); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, getUniqueRow); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, parse); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, setBindParams); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, setBindTypes); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, setSharedLock); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, setUniqueRow); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Relation) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model, Relation, phalcon, mvc_model_relation, phalcon_mvc_model_relation_method_entry, 0); + + zend_declare_property_null(phalcon_mvc_model_relation_ce, SL("fields"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_relation_ce, SL("intermediateFields"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_relation_ce, SL("intermediateModel"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_relation_ce, SL("intermediateReferencedFields"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_relation_ce, SL("options"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_relation_ce, SL("referencedFields"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_relation_ce, SL("referencedModel"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_relation_ce, SL("type"), ZEND_ACC_PROTECTED); + phalcon_mvc_model_relation_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_Relation; + zephir_declare_class_constant_long(phalcon_mvc_model_relation_ce, SL("ACTION_CASCADE"), 2); + + zephir_declare_class_constant_long(phalcon_mvc_model_relation_ce, SL("ACTION_RESTRICT"), 1); + + zephir_declare_class_constant_long(phalcon_mvc_model_relation_ce, SL("BELONGS_TO"), 0); + + zephir_declare_class_constant_long(phalcon_mvc_model_relation_ce, SL("HAS_MANY"), 2); + + zephir_declare_class_constant_long(phalcon_mvc_model_relation_ce, SL("HAS_MANY_THROUGH"), 4); + + zephir_declare_class_constant_long(phalcon_mvc_model_relation_ce, SL("HAS_ONE"), 1); + + zephir_declare_class_constant_long(phalcon_mvc_model_relation_ce, SL("HAS_ONE_THROUGH"), 3); + + zephir_declare_class_constant_long(phalcon_mvc_model_relation_ce, SL("NO_ACTION"), 0); + + zend_class_implements(phalcon_mvc_model_relation_ce, 1, phalcon_mvc_model_relationinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Mvc_Model_Relation, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *tableName_param = NULL, *schemaName_param = NULL; - zval tableName, schemaName; + zval options; + zval referencedModel; + zval *type_param = NULL, *referencedModel_param = NULL, *fields, fields_sub, *referencedFields, referencedFields_sub, *options_param = NULL, _0; + zend_long type; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&fields_sub); + ZVAL_UNDEF(&referencedFields_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&referencedModel); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(tableName) + ZEND_PARSE_PARAMETERS_START(4, 5) + Z_PARAM_LONG(type) + Z_PARAM_STR(referencedModel) + Z_PARAM_ZVAL(fields) + Z_PARAM_ZVAL(referencedFields) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + zephir_fetch_params(1, 4, 1, &type_param, &referencedModel_param, &fields, &referencedFields, &options_param); + type = zephir_get_intval(type_param); + if (UNEXPECTED(Z_TYPE_P(referencedModel_param) != IS_STRING && Z_TYPE_P(referencedModel_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referencedModel' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); + if (EXPECTED(Z_TYPE_P(referencedModel_param) == IS_STRING)) { + zephir_get_strval(&referencedModel, referencedModel_param); } else { - ZEPHIR_INIT_VAR(&tableName); + ZEPHIR_INIT_VAR(&referencedModel); } - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); } else { - zephir_get_strval(&schemaName, schemaName_param); + zephir_get_arrval(&options, options_param); } - if (ZEPHIR_IS_NULL(&schemaName)) { - ZEPHIR_INIT_NVAR(&schemaName); - ZVAL_STRING(&schemaName, "public"); - } - ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM information_schema.tables WHERE table_schema = '", &schemaName, "' AND table_name='", &tableName, "'"); - RETURN_MM(); + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, type); + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("referencedModel"), &referencedModel); + zephir_update_property_zval(this_ptr, ZEND_STRL("fields"), fields); + zephir_update_property_zval(this_ptr, ZEND_STRL("referencedFields"), referencedFields); + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, tableOptions) +static PHP_METHOD(Phalcon_Mvc_Model_Relation, getFields) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "fields"); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Relation, getForeignKey) { + zval options, foreignKey, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *table_param = NULL, *schema_param = NULL; - zval table, schema; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&foreignKey); + ZVAL_UNDEF(&_0); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); - } else { - ZEPHIR_INIT_VAR(&table); - } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); - } else { - zephir_get_strval(&schema, schema_param); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&options, &_0); + if (zephir_array_isset_string_fetch(&foreignKey, &options, SL("foreignKey"), 1)) { + if (zephir_is_true(&foreignKey)) { + RETURN_CTOR(&foreignKey); + } } + RETURN_MM_BOOL(0); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Relation, getIntermediateFields) +{ + zval *this_ptr = getThis(); - RETURN_MM_STRING(""); + + RETURN_MEMBER(getThis(), "intermediateFields"); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, truncateTable) +static PHP_METHOD(Phalcon_Mvc_Model_Relation, getIntermediateModel) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, table; - zval tableName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&table); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &tableName_param, &schemaName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } + RETURN_MEMBER(getThis(), "intermediateModel"); +} +static PHP_METHOD(Phalcon_Mvc_Model_Relation, getIntermediateReferencedFields) +{ + zval *this_ptr = getThis(); - if (!(ZEPHIR_IS_EMPTY(&schemaName))) { - ZEPHIR_CALL_METHOD(&table, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(&table, this_ptr, "preparetable", NULL, 0, &tableName); - zephir_check_call_status(); - } - ZEPHIR_CONCAT_SV(return_value, "TRUNCATE TABLE ", &table); - RETURN_MM(); + + + RETURN_MEMBER(getThis(), "intermediateReferencedFields"); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, viewExists) +static PHP_METHOD(Phalcon_Mvc_Model_Relation, getOption) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *viewName_param = NULL, *schemaName_param = NULL; - zval viewName, schemaName; + zval *name_param = NULL, option, _0; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&viewName); - ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&option); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(viewName) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName_param); - if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { - zephir_get_strval(&viewName, viewName_param); - } else { - ZEPHIR_INIT_VAR(&viewName); - } - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); } else { - zephir_get_strval(&schemaName, schemaName_param); + ZEPHIR_INIT_VAR(&name); } - if (ZEPHIR_IS_NULL(&schemaName)) { - ZEPHIR_INIT_NVAR(&schemaName); - ZVAL_STRING(&schemaName, "public"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&option, &_0, &name, 1))) { + RETURN_MM_NULL(); } - ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM pg_views WHERE viewname='", &viewName, "' AND schemaname='", &schemaName, "'"); - RETURN_MM(); + RETURN_CTOR(&option); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, castDefault) +static PHP_METHOD(Phalcon_Mvc_Model_Relation, getOptions) { - zend_bool _2, _3, _4, _5; - zval preparedValue, _6$$5; + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "options"); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Relation, getParams) +{ + zval options, params, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *column, column_sub, defaultValue, columnDefinition, columnType, _0, _1, _7$$6, _8$$6, _9$$6; zval *this_ptr = getThis(); - ZVAL_UNDEF(&column_sub); - ZVAL_UNDEF(&defaultValue); - ZVAL_UNDEF(&columnDefinition); - ZVAL_UNDEF(&columnType); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(¶ms); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_8$$6); - ZVAL_UNDEF(&_9$$6); - ZVAL_UNDEF(&preparedValue); - ZVAL_UNDEF(&_6$$5); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &column); - - ZEPHIR_CALL_METHOD(&defaultValue, column, "getdefault", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&columnDefinition, this_ptr, "getcolumndefinition", NULL, 0, column); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&columnType, column, "gettype", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - zephir_fast_strtoupper(&_0, &columnDefinition); - if (zephir_memnstr_str(&_0, SL("BOOLEAN"), "phalcon/Db/Dialect/Postgresql.zep", 699)) { - RETURN_CCTOR(&defaultValue); - } - ZEPHIR_INIT_VAR(&_1); - zephir_fast_strtoupper(&_1, &defaultValue); - if (zephir_memnstr_str(&_1, SL("CURRENT_TIMESTAMP"), "phalcon/Db/Dialect/Postgresql.zep", 703)) { - RETURN_MM_STRING("CURRENT_TIMESTAMP"); - } - _2 = ZEPHIR_IS_LONG_IDENTICAL(&columnType, 0); - if (!(_2)) { - _2 = ZEPHIR_IS_LONG_IDENTICAL(&columnType, 14); - } - _3 = _2; - if (!(_3)) { - _3 = ZEPHIR_IS_LONG_IDENTICAL(&columnType, 3); - } - _4 = _3; - if (!(_4)) { - _4 = ZEPHIR_IS_LONG_IDENTICAL(&columnType, 7); - } - _5 = _4; - if (!(_5)) { - _5 = ZEPHIR_IS_LONG_IDENTICAL(&columnType, 9); - } - if (_5) { - zephir_cast_to_string(&_6$$5, &defaultValue); - ZEPHIR_CPY_WRT(&preparedValue, &_6$$5); - } else { - ZEPHIR_INIT_VAR(&_7$$6); - ZVAL_STRING(&_7$$6, "\'"); - ZEPHIR_CALL_FUNCTION(&_8$$6, "addcslashes", NULL, 214, &defaultValue, &_7$$6); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_9$$6); - ZEPHIR_CONCAT_SVS(&_9$$6, "'", &_8$$6, "'"); - zephir_get_strval(&preparedValue, &_9$$6); + zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&options, &_0); + ZEPHIR_OBS_VAR(¶ms); + if (zephir_array_isset_string_fetch(¶ms, &options, SL("params"), 0)) { + if (zephir_is_true(¶ms)) { + if (zephir_is_callable(¶ms)) { + ZEPHIR_CALL_USER_FUNC(return_value, ¶ms); + zephir_check_call_status(); + RETURN_MM(); + } + RETURN_CCTOR(¶ms); + } } - RETURN_CTOR(&preparedValue); + RETURN_MM_BOOL(0); } -static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, getTableOptions) +static PHP_METHOD(Phalcon_Mvc_Model_Relation, getType) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *definition_param = NULL; - zval definition; zval *this_ptr = getThis(); - ZVAL_UNDEF(&definition); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(definition) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &definition_param); - ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); - RETURN_MM_STRING(""); + RETURN_MEMBER(getThis(), "type"); } +static PHP_METHOD(Phalcon_Mvc_Model_Relation, getReferencedFields) +{ + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H -#endif + RETURN_MEMBER(getThis(), "referencedFields"); +} +static PHP_METHOD(Phalcon_Mvc_Model_Relation, getReferencedModel) +{ + zval *this_ptr = getThis(); + RETURN_MEMBER(getThis(), "referencedModel"); +} -ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Sqlite) +static PHP_METHOD(Phalcon_Mvc_Model_Relation, isForeignKey) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Sqlite, phalcon, db_dialect_sqlite, phalcon_db_dialect_ce, phalcon_db_dialect_sqlite_method_entry, 0); + zval foreignKey, _0; + zval *this_ptr = getThis(); - zend_declare_property_string(phalcon_db_dialect_sqlite_ce, SL("escapeChar"), "\"", ZEND_ACC_PROTECTED); - return SUCCESS; + ZVAL_UNDEF(&foreignKey); + ZVAL_UNDEF(&_0); + + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_string_fetch(&foreignKey, &_0, SL("foreignKey"), 1))) { + RETURN_BOOL(0); + } + RETURN_BOOL(zephir_get_boolval(&foreignKey)); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addColumn) +static PHP_METHOD(Phalcon_Mvc_Model_Relation, isThrough) { + zend_bool _1; + zval type, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *column, column_sub, defaultValue, _0, _1, _2, _3, _4, _5, _10, _11, _6$$3, _7$$5, _8$$5, _9$$5; - zval tableName, schemaName, sql; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&column_sub); - ZVAL_UNDEF(&defaultValue); + ZVAL_UNDEF(&type); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$5); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_CONCAT_SVS(&_1, "ALTER TABLE ", &_0, " ADD COLUMN "); - zephir_get_strval(&sql, &_1); - ZEPHIR_CALL_METHOD(&_2, column, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "getcolumndefinition", NULL, 0, column); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_4); - ZEPHIR_CONCAT_SVSV(&_4, "\"", &_2, "\" ", &_3); - zephir_concat_self(&sql, &_4); - ZEPHIR_CALL_METHOD(&_5, column, "hasdefault", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_5)) { - ZEPHIR_CALL_METHOD(&defaultValue, column, "getdefault", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_6$$3); - zephir_fast_strtoupper(&_6$$3, &defaultValue); - if (zephir_memnstr_str(&_6$$3, SL("CURRENT_TIMESTAMP"), "phalcon/Db/Dialect/Sqlite.zep", 46)) { - zephir_concat_self_str(&sql, " DEFAULT CURRENT_TIMESTAMP", sizeof(" DEFAULT CURRENT_TIMESTAMP") - 1); - } else { - ZEPHIR_INIT_VAR(&_7$$5); - ZVAL_STRING(&_7$$5, "\""); - ZEPHIR_CALL_FUNCTION(&_8$$5, "addcslashes", NULL, 214, &defaultValue, &_7$$5); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_9$$5); - ZEPHIR_CONCAT_SVS(&_9$$5, " DEFAULT \"", &_8$$5, "\""); - zephir_concat_self(&sql, &_9$$5); - } - } - ZEPHIR_CALL_METHOD(&_10, column, "isnotnull", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_10)) { - zephir_concat_self_str(&sql, " NOT NULL", sizeof(" NOT NULL") - 1); - } else { - zephir_concat_self_str(&sql, " NULL", sizeof(" NULL") - 1); - } - ZEPHIR_CALL_METHOD(&_11, column, "isautoincrement", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_11)) { - zephir_concat_self_str(&sql, " PRIMARY KEY AUTOINCREMENT", sizeof(" PRIMARY KEY AUTOINCREMENT") - 1); + zephir_read_property(&_0, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&type, &_0); + _1 = ZEPHIR_IS_LONG(&type, 3); + if (!(_1)) { + _1 = ZEPHIR_IS_LONG(&type, 4); } - RETURN_CTOR(&sql); + RETURN_MM_BOOL(_1); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addForeignKey) +static PHP_METHOD(Phalcon_Mvc_Model_Relation, isReusable) { + zval options, reusable, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *tableName_param = NULL, *schemaName_param = NULL, *reference, reference_sub; - zval tableName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&reference_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(reference, phalcon_db_referenceinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&reusable); + ZVAL_UNDEF(&_0); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &reference); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } - - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Adding a foreign key constraint to an existing table is not supported by SQLite", "phalcon/Db/Dialect/Sqlite.zep", 73); - return; + zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&options, &_0); + if (!(zephir_array_isset_string_fetch(&reusable, &options, SL("reusable"), 1))) { + RETURN_MM_BOOL(0); + } + RETURN_CTOR(&reusable); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addIndex) +static PHP_METHOD(Phalcon_Mvc_Model_Relation, setIntermediateRelation) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *tableName_param = NULL, *schemaName_param = NULL, *index, index_sub, indexType, _5, _6, _7, _0$$3, _1$$5, _2$$5, _3$$6, _4$$6; - zval tableName, schemaName, sql; + zval intermediateModel; + zval *intermediateFields, intermediateFields_sub, *intermediateModel_param = NULL, *intermediateReferencedFields, intermediateReferencedFields_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&index_sub); - ZVAL_UNDEF(&indexType); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$5); - ZVAL_UNDEF(&_2$$5); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&_4$$6); + ZVAL_UNDEF(&intermediateFields_sub); + ZVAL_UNDEF(&intermediateReferencedFields_sub); + ZVAL_UNDEF(&intermediateModel); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(index, phalcon_db_indexinterface_ce) + Z_PARAM_ZVAL(intermediateFields) + Z_PARAM_STR(intermediateModel) + Z_PARAM_ZVAL(intermediateReferencedFields) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + zephir_fetch_params(1, 3, 0, &intermediateFields, &intermediateModel_param, &intermediateReferencedFields); + if (UNEXPECTED(Z_TYPE_P(intermediateModel_param) != IS_STRING && Z_TYPE_P(intermediateModel_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'intermediateModel' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); + if (EXPECTED(Z_TYPE_P(intermediateModel_param) == IS_STRING)) { + zephir_get_strval(&intermediateModel, intermediateModel_param); } else { - ZEPHIR_INIT_VAR(&schemaName); + ZEPHIR_INIT_VAR(&intermediateModel); } - ZEPHIR_CALL_METHOD(&indexType, index, "gettype", NULL, 0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&indexType))) { - ZEPHIR_INIT_VAR(&_0$$3); - ZEPHIR_CONCAT_SVS(&_0$$3, "CREATE ", &indexType, " INDEX "); - zephir_get_strval(&sql, &_0$$3); - } else { - ZEPHIR_INIT_VAR(&sql); - ZVAL_STRING(&sql, "CREATE INDEX "); - } - if (!(ZEPHIR_IS_EMPTY(&schemaName))) { - ZEPHIR_CALL_METHOD(&_1$$5, index, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2$$5); - ZEPHIR_CONCAT_SVSVS(&_2$$5, "\"", &schemaName, "\".\"", &_1$$5, "\""); - zephir_concat_self(&sql, &_2$$5); - } else { - ZEPHIR_CALL_METHOD(&_3$$6, index, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_4$$6); - ZEPHIR_CONCAT_SVS(&_4$$6, "\"", &_3$$6, "\""); - zephir_concat_self(&sql, &_4$$6); - } - ZEPHIR_CALL_METHOD(&_6, index, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_5, this_ptr, "getcolumnlist", NULL, 67, &_6); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_7); - ZEPHIR_CONCAT_SVSVS(&_7, " ON \"", &tableName, "\" (", &_5, ")"); - zephir_concat_self(&sql, &_7); - RETURN_CTOR(&sql); + zephir_update_property_zval(this_ptr, ZEND_STRL("intermediateFields"), intermediateFields); + zephir_update_property_zval(this_ptr, ZEND_STRL("intermediateModel"), &intermediateModel); + zephir_update_property_zval(this_ptr, ZEND_STRL("intermediateReferencedFields"), intermediateReferencedFields); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addPrimaryKey) +zend_object *zephir_init_properties_Phalcon_Mvc_Model_Relation(zend_class_entry *class_type) { + zval _0, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *tableName_param = NULL, *schemaName_param = NULL, *index, index_sub; - zval tableName, schemaName; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&index_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(index, phalcon_db_indexinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_RelationInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model, RelationInterface, phalcon, mvc_model_relationinterface, phalcon_mvc_model_relationinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getFields); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getForeignKey); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getIntermediateFields); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getIntermediateModel); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getIntermediateReferencedFields); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getOption); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getOptions); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getParams); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getReferencedFields); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getReferencedModel); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getType); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, isForeignKey); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, isReusable); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, isThrough); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, setIntermediateRelation); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_ResultInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model, ResultInterface, phalcon, mvc_model_resultinterface, phalcon_mvc_model_resultinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultInterface, setDirtyState); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model, Resultset, phalcon, mvc_model_resultset, phalcon_mvc_model_resultset_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("activeRow"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("cache"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_mvc_model_resultset_ce, SL("count"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("errorMessages"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_mvc_model_resultset_ce, SL("hydrateMode"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_model_resultset_ce, SL("isFresh"), 1, ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_mvc_model_resultset_ce, SL("pointer"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("row"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("rows"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("result"), ZEND_ACC_PROTECTED); + phalcon_mvc_model_resultset_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_Resultset; + zephir_declare_class_constant_long(phalcon_mvc_model_resultset_ce, SL("HYDRATE_ARRAYS"), 1); + + zephir_declare_class_constant_long(phalcon_mvc_model_resultset_ce, SL("HYDRATE_OBJECTS"), 2); + + zephir_declare_class_constant_long(phalcon_mvc_model_resultset_ce, SL("HYDRATE_RECORDS"), 0); + + zephir_declare_class_constant_long(phalcon_mvc_model_resultset_ce, SL("TYPE_RESULT_FULL"), 0); + + zephir_declare_class_constant_long(phalcon_mvc_model_resultset_ce, SL("TYPE_RESULT_PARTIAL"), 1); + + zend_class_implements(phalcon_mvc_model_resultset_ce, 1, phalcon_mvc_model_resultsetinterface_ce); + zend_class_implements(phalcon_mvc_model_resultset_ce, 1, zend_ce_iterator); + zend_class_implements(phalcon_mvc_model_resultset_ce, 1, spl_ce_SeekableIterator); + zend_class_implements(phalcon_mvc_model_resultset_ce, 1, zend_ce_countable); + zend_class_implements(phalcon_mvc_model_resultset_ce, 1, zend_ce_arrayaccess); + zend_class_implements(phalcon_mvc_model_resultset_ce, 1, zend_ce_serializable); + zend_class_implements(phalcon_mvc_model_resultset_ce, 1, zephir_get_internal_ce(SL("jsonserializable"))); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, __construct) +{ + zend_bool _4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS, prefetchRecords = 0; + zval *result, result_sub, *cache = NULL, cache_sub, __$null, rowCount, rows, _2, _0$$3, _1$$3, _3$$5, _5$$8; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&result_sub); + ZVAL_UNDEF(&cache_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&rowCount); + ZVAL_UNDEF(&rows); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_5$$8); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(result) + Z_PARAM_OPTIONAL + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(cache, zephir_get_internal_ce(SL("psr\\simplecache\\cacheinterface"))) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + zephir_fetch_params(1, 1, 1, &result, &cache); + if (!cache) { + cache = &cache_sub; + cache = &__$null; + } + + + if (Z_TYPE_P(result) != IS_OBJECT) { + ZEPHIR_INIT_ZVAL_NREF(_0$$3); + ZVAL_LONG(&_0$$3, 0); + zephir_update_property_zval(this_ptr, ZEND_STRL("count"), &_0$$3); + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval(this_ptr, ZEND_STRL("rows"), &_1$$3); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); + zephir_update_property_zval(this_ptr, ZEND_STRL("result"), result); + if (Z_TYPE_P(cache) != IS_NULL) { + zephir_update_property_zval(this_ptr, ZEND_STRL("cache"), cache); } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + ZVAL_LONG(&_2, 2); + ZEPHIR_CALL_METHOD(NULL, result, "setfetchmode", NULL, 0, &_2); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&rowCount, result, "numrows", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("count"), &rowCount); + if (ZEPHIR_IS_LONG(&rowCount, 0)) { + ZEPHIR_INIT_VAR(&_3$$5); + array_init(&_3$$5); + zephir_update_property_zval(this_ptr, ZEND_STRL("rows"), &_3$$5); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); + prefetchRecords = ZEPHIR_GLOBAL(orm).resultset_prefetch_records; + _4 = prefetchRecords > 0; + if (_4) { + _4 = ZEPHIR_LE_LONG(&rowCount, prefetchRecords); + } + if (_4) { + ZEPHIR_CALL_METHOD(&rows, result, "fetchall", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&rows) == IS_ARRAY) { + zephir_update_property_zval(this_ptr, ZEND_STRL("rows"), &rows); + } else { + ZEPHIR_INIT_VAR(&_5$$8); + array_init(&_5$$8); + zephir_update_property_zval(this_ptr, ZEND_STRL("rows"), &_5$$8); + } } + ZEPHIR_MM_RESTORE(); +} +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, count) +{ + zval *this_ptr = getThis(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Adding a primary key after table has been created is not supported by SQLite", "phalcon/Db/Dialect/Sqlite.zep", 110); - return; + + + RETURN_MEMBER(getThis(), "count"); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createTable) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, delete) { - zend_bool hasPrimary = 0, _8$$7, _10$$7, _21$$15, _23$$15, _32$$24, _33$$24, _42$$27, _43$$27; + zval _4$$6; + zend_bool result = 0, transaction = 0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_6 = NULL, *_15 = NULL, *_37 = NULL; + zephir_fcall_cache_entry *_1 = NULL, *_2 = NULL, *_5 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval definition; - zval *tableName_param = NULL, *schemaName_param = NULL, *definition_param = NULL, columns, table, temporary, options, createLines, columnLine, column, indexes, index, indexName, indexType, references, reference, defaultValue, referenceSql, onDelete, onUpdate, *_2, _3, _69, _70, _0$$5, _1$$6, _4$$7, _5$$7, _7$$7, _9$$7, _11$$7, _17$$7, _12$$10, _13$$12, _14$$12, _16$$12, _18$$15, _19$$15, _20$$15, _22$$15, _24$$15, _29$$15, _25$$18, _26$$20, _27$$20, _28$$20, *_30$$23, _31$$23, _34$$24, _35$$25, _36$$25, _38$$25, _39$$26, _40$$26, _41$$26, _44$$27, _45$$28, _46$$28, _47$$28, _48$$29, _49$$29, _50$$29, *_51$$30, _52$$30, _53$$31, _54$$31, _55$$31, _56$$31, _57$$31, _58$$31, _59$$32, _60$$33, _61$$34, _62$$34, _63$$34, _64$$34, _65$$34, _66$$34, _67$$35, _68$$36; - zval tableName, schemaName, sql; + zval *conditionCallback = NULL, conditionCallback_sub, __$null, record, connection, _0, _3$$6, _6$$3, _7$$8; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&sql); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&temporary); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&createLines); - ZVAL_UNDEF(&columnLine); - ZVAL_UNDEF(&column); - ZVAL_UNDEF(&indexes); - ZVAL_UNDEF(&index); - ZVAL_UNDEF(&indexName); - ZVAL_UNDEF(&indexType); - ZVAL_UNDEF(&references); - ZVAL_UNDEF(&reference); - ZVAL_UNDEF(&defaultValue); - ZVAL_UNDEF(&referenceSql); - ZVAL_UNDEF(&onDelete); - ZVAL_UNDEF(&onUpdate); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_69); - ZVAL_UNDEF(&_70); - ZVAL_UNDEF(&_0$$5); - ZVAL_UNDEF(&_1$$6); - ZVAL_UNDEF(&_4$$7); - ZVAL_UNDEF(&_5$$7); - ZVAL_UNDEF(&_7$$7); - ZVAL_UNDEF(&_9$$7); - ZVAL_UNDEF(&_11$$7); - ZVAL_UNDEF(&_17$$7); - ZVAL_UNDEF(&_12$$10); - ZVAL_UNDEF(&_13$$12); - ZVAL_UNDEF(&_14$$12); - ZVAL_UNDEF(&_16$$12); - ZVAL_UNDEF(&_18$$15); - ZVAL_UNDEF(&_19$$15); - ZVAL_UNDEF(&_20$$15); - ZVAL_UNDEF(&_22$$15); - ZVAL_UNDEF(&_24$$15); - ZVAL_UNDEF(&_29$$15); - ZVAL_UNDEF(&_25$$18); - ZVAL_UNDEF(&_26$$20); - ZVAL_UNDEF(&_27$$20); - ZVAL_UNDEF(&_28$$20); - ZVAL_UNDEF(&_31$$23); - ZVAL_UNDEF(&_34$$24); - ZVAL_UNDEF(&_35$$25); - ZVAL_UNDEF(&_36$$25); - ZVAL_UNDEF(&_38$$25); - ZVAL_UNDEF(&_39$$26); - ZVAL_UNDEF(&_40$$26); - ZVAL_UNDEF(&_41$$26); - ZVAL_UNDEF(&_44$$27); - ZVAL_UNDEF(&_45$$28); - ZVAL_UNDEF(&_46$$28); - ZVAL_UNDEF(&_47$$28); - ZVAL_UNDEF(&_48$$29); - ZVAL_UNDEF(&_49$$29); - ZVAL_UNDEF(&_50$$29); - ZVAL_UNDEF(&_52$$30); - ZVAL_UNDEF(&_53$$31); - ZVAL_UNDEF(&_54$$31); - ZVAL_UNDEF(&_55$$31); - ZVAL_UNDEF(&_56$$31); - ZVAL_UNDEF(&_57$$31); - ZVAL_UNDEF(&_58$$31); - ZVAL_UNDEF(&_59$$32); - ZVAL_UNDEF(&_60$$33); - ZVAL_UNDEF(&_61$$34); - ZVAL_UNDEF(&_62$$34); - ZVAL_UNDEF(&_63$$34); - ZVAL_UNDEF(&_64$$34); - ZVAL_UNDEF(&_65$$34); - ZVAL_UNDEF(&_66$$34); - ZVAL_UNDEF(&_67$$35); - ZVAL_UNDEF(&_68$$36); - ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&conditionCallback_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&record); + ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_3$$6); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$8); + ZVAL_UNDEF(&_4$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_ARRAY(definition) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(conditionCallback, zend_ce_closure) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &definition_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); + zephir_fetch_params(1, 0, 1, &conditionCallback); + if (!conditionCallback) { + conditionCallback = &conditionCallback_sub; + conditionCallback = &__$null; } - ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); - ZEPHIR_CALL_METHOD(&table, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); + ZEPHIR_INIT_VAR(&connection); + ZVAL_NULL(&connection); + result = 1; + transaction = 0; + ZEPHIR_CALL_METHOD(NULL, this_ptr, "rewind", NULL, 111); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&temporary); - ZVAL_BOOL(&temporary, 0); - ZEPHIR_OBS_VAR(&options); - if (zephir_array_isset_string_fetch(&options, &definition, SL("options"), 0)) { - ZEPHIR_OBS_NVAR(&temporary); - zephir_array_isset_string_fetch(&temporary, &options, SL("temporary"), 0); - } - ZEPHIR_OBS_VAR(&columns); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&columns, &definition, SL("columns"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/Db/Dialect/Sqlite.zep", 134); - return; - } - if (zephir_is_true(&temporary)) { - ZEPHIR_INIT_VAR(&_0$$5); - ZEPHIR_CONCAT_SV(&_0$$5, "CREATE TEMPORARY TABLE ", &table); - zephir_get_strval(&sql, &_0$$5); - } else { - ZEPHIR_INIT_VAR(&_1$$6); - ZEPHIR_CONCAT_SV(&_1$$6, "CREATE TABLE ", &table); - zephir_get_strval(&sql, &_1$$6); - } - zephir_concat_self_str(&sql, " (\n\t", sizeof(" (\n\t") - 1); - hasPrimary = 0; - ZEPHIR_INIT_VAR(&createLines); - array_init(&createLines); - zephir_is_iterable(&columns, 0, "phalcon/Db/Dialect/Sqlite.zep", 197); - if (Z_TYPE_P(&columns) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&columns), _2) - { - ZEPHIR_INIT_NVAR(&column); - ZVAL_COPY(&column, _2); - ZEPHIR_CALL_METHOD(&_4$$7, &column, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_5$$7, this_ptr, "getcolumndefinition", &_6, 0, &column); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&columnLine); - ZEPHIR_CONCAT_SVSV(&columnLine, "`", &_4$$7, "` ", &_5$$7); - ZEPHIR_CALL_METHOD(&_7$$7, &column, "isprimary", NULL, 0); - zephir_check_call_status(); - _8$$7 = zephir_is_true(&_7$$7); - if (_8$$7) { - _8$$7 = !hasPrimary; - } - if (_8$$7) { - zephir_concat_self_str(&columnLine, SL(" PRIMARY KEY")); - hasPrimary = 1; - } - ZEPHIR_CALL_METHOD(&_9$$7, &column, "isautoincrement", NULL, 0); - zephir_check_call_status(); - _10$$7 = zephir_is_true(&_9$$7); - if (_10$$7) { - _10$$7 = hasPrimary; - } - if (_10$$7) { - zephir_concat_self_str(&columnLine, SL(" AUTOINCREMENT")); - } - ZEPHIR_CALL_METHOD(&_11$$7, &column, "hasdefault", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_11$$7)) { - ZEPHIR_CALL_METHOD(&defaultValue, &column, "getdefault", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_12$$10); - zephir_fast_strtoupper(&_12$$10, &defaultValue); - if (zephir_memnstr_str(&_12$$10, SL("CURRENT_TIMESTAMP"), "phalcon/Db/Dialect/Sqlite.zep", 175)) { - zephir_concat_self_str(&columnLine, SL(" DEFAULT CURRENT_TIMESTAMP")); - } else { - ZEPHIR_INIT_NVAR(&_13$$12); - ZVAL_STRING(&_13$$12, "\""); - ZEPHIR_CALL_FUNCTION(&_14$$12, "addcslashes", &_15, 214, &defaultValue, &_13$$12); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_16$$12); - ZEPHIR_CONCAT_SVS(&_16$$12, " DEFAULT \"", &_14$$12, "\""); - zephir_concat_self(&columnLine, &_16$$12); - } - } - ZEPHIR_CALL_METHOD(&_17$$7, &column, "isnotnull", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_17$$7)) { - zephir_concat_self_str(&columnLine, SL(" NOT NULL")); - } else { - zephir_concat_self_str(&columnLine, SL(" NULL")); - } - zephir_array_append(&createLines, &columnLine, PH_SEPARATE, "phalcon/Db/Dialect/Sqlite.zep", 191); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &columns, "rewind", NULL, 0); + while (1) { + ZEPHIR_CALL_METHOD(&_0, this_ptr, "valid", &_1, 0); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3, &columns, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3)) { - break; + if (!(zephir_is_true(&_0))) { + break; + } + ZEPHIR_CALL_METHOD(&record, this_ptr, "current", &_2, 0); + zephir_check_call_status(); + if (transaction == 0) { + if (UNEXPECTED(!((zephir_method_exists_ex(&record, ZEND_STRL("getwriteconnection")) == SUCCESS)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The returned record is not valid", "phalcon/Mvc/Model/Resultset.zep", 228); + return; } - ZEPHIR_CALL_METHOD(&column, &columns, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&connection, &record, "getwriteconnection", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_18$$15, &column, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_19$$15, this_ptr, "getcolumndefinition", &_6, 0, &column); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&columnLine); - ZEPHIR_CONCAT_SVSV(&columnLine, "`", &_18$$15, "` ", &_19$$15); - ZEPHIR_CALL_METHOD(&_20$$15, &column, "isprimary", NULL, 0); - zephir_check_call_status(); - _21$$15 = zephir_is_true(&_20$$15); - if (_21$$15) { - _21$$15 = !hasPrimary; - } - if (_21$$15) { - zephir_concat_self_str(&columnLine, SL(" PRIMARY KEY")); - hasPrimary = 1; - } - ZEPHIR_CALL_METHOD(&_22$$15, &column, "isautoincrement", NULL, 0); - zephir_check_call_status(); - _23$$15 = zephir_is_true(&_22$$15); - if (_23$$15) { - _23$$15 = hasPrimary; - } - if (_23$$15) { - zephir_concat_self_str(&columnLine, SL(" AUTOINCREMENT")); - } - ZEPHIR_CALL_METHOD(&_24$$15, &column, "hasdefault", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_24$$15)) { - ZEPHIR_CALL_METHOD(&defaultValue, &column, "getdefault", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_25$$18); - zephir_fast_strtoupper(&_25$$18, &defaultValue); - if (zephir_memnstr_str(&_25$$18, SL("CURRENT_TIMESTAMP"), "phalcon/Db/Dialect/Sqlite.zep", 175)) { - zephir_concat_self_str(&columnLine, SL(" DEFAULT CURRENT_TIMESTAMP")); - } else { - ZEPHIR_INIT_NVAR(&_26$$20); - ZVAL_STRING(&_26$$20, "\""); - ZEPHIR_CALL_FUNCTION(&_27$$20, "addcslashes", &_15, 214, &defaultValue, &_26$$20); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_28$$20); - ZEPHIR_CONCAT_SVS(&_28$$20, " DEFAULT \"", &_27$$20, "\""); - zephir_concat_self(&columnLine, &_28$$20); - } - } - ZEPHIR_CALL_METHOD(&_29$$15, &column, "isnotnull", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_29$$15)) { - zephir_concat_self_str(&columnLine, SL(" NOT NULL")); - } else { - zephir_concat_self_str(&columnLine, SL(" NULL")); - } - zephir_array_append(&createLines, &columnLine, PH_SEPARATE, "phalcon/Db/Dialect/Sqlite.zep", 191); - ZEPHIR_CALL_METHOD(NULL, &columns, "next", NULL, 0); + transaction = 1; + ZEPHIR_CALL_METHOD(NULL, &connection, "begin", NULL, 0); zephir_check_call_status(); } - } - ZEPHIR_INIT_NVAR(&column); - ZEPHIR_OBS_VAR(&indexes); - if (zephir_array_isset_string_fetch(&indexes, &definition, SL("indexes"), 0)) { - zephir_is_iterable(&indexes, 0, "phalcon/Db/Dialect/Sqlite.zep", 211); - if (Z_TYPE_P(&indexes) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&indexes), _30$$23) - { - ZEPHIR_INIT_NVAR(&index); - ZVAL_COPY(&index, _30$$23); - ZEPHIR_CALL_METHOD(&indexName, &index, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&indexType, &index, "gettype", NULL, 0); - zephir_check_call_status(); - _32$$24 = ZEPHIR_IS_STRING(&indexName, "PRIMARY"); - if (_32$$24) { - _32$$24 = !hasPrimary; - } - _33$$24 = !(ZEPHIR_IS_EMPTY(&indexType)); - if (_33$$24) { - ZEPHIR_INIT_NVAR(&_34$$24); - zephir_fast_strtoupper(&_34$$24, &indexType); - _33$$24 = zephir_memnstr_str(&_34$$24, SL("UNIQUE"), "phalcon/Db/Dialect/Sqlite.zep", 207); - } - if (_32$$24) { - ZEPHIR_CALL_METHOD(&_36$$25, &index, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_35$$25, this_ptr, "getcolumnlist", &_37, 67, &_36$$25); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_38$$25); - ZEPHIR_CONCAT_SVS(&_38$$25, "PRIMARY KEY (", &_35$$25, ")"); - zephir_array_append(&createLines, &_38$$25, PH_SEPARATE, "phalcon/Db/Dialect/Sqlite.zep", 206); - } else if (_33$$24) { - ZEPHIR_CALL_METHOD(&_40$$26, &index, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_39$$26, this_ptr, "getcolumnlist", &_37, 67, &_40$$26); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_41$$26); - ZEPHIR_CONCAT_SVS(&_41$$26, "UNIQUE (", &_39$$26, ")"); - zephir_array_append(&createLines, &_41$$26, PH_SEPARATE, "phalcon/Db/Dialect/Sqlite.zep", 208); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &indexes, "rewind", NULL, 0); + if (Z_TYPE_P(conditionCallback) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_3$$6); + ZEPHIR_INIT_NVAR(&_4$$6); + zephir_create_array(&_4$$6, 1, 0); + zephir_array_fast_append(&_4$$6, &record); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_3$$6, conditionCallback, &_4$$6); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_31$$23, &indexes, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_31$$23)) { - break; - } - ZEPHIR_CALL_METHOD(&index, &indexes, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&indexName, &index, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&indexType, &index, "gettype", NULL, 0); - zephir_check_call_status(); - _42$$27 = ZEPHIR_IS_STRING(&indexName, "PRIMARY"); - if (_42$$27) { - _42$$27 = !hasPrimary; - } - _43$$27 = !(ZEPHIR_IS_EMPTY(&indexType)); - if (_43$$27) { - ZEPHIR_INIT_NVAR(&_44$$27); - zephir_fast_strtoupper(&_44$$27, &indexType); - _43$$27 = zephir_memnstr_str(&_44$$27, SL("UNIQUE"), "phalcon/Db/Dialect/Sqlite.zep", 207); - } - if (_42$$27) { - ZEPHIR_CALL_METHOD(&_46$$28, &index, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_45$$28, this_ptr, "getcolumnlist", &_37, 67, &_46$$28); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_47$$28); - ZEPHIR_CONCAT_SVS(&_47$$28, "PRIMARY KEY (", &_45$$28, ")"); - zephir_array_append(&createLines, &_47$$28, PH_SEPARATE, "phalcon/Db/Dialect/Sqlite.zep", 206); - } else if (_43$$27) { - ZEPHIR_CALL_METHOD(&_49$$29, &index, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_48$$29, this_ptr, "getcolumnlist", &_37, 67, &_49$$29); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_50$$29); - ZEPHIR_CONCAT_SVS(&_50$$29, "UNIQUE (", &_48$$29, ")"); - zephir_array_append(&createLines, &_50$$29, PH_SEPARATE, "phalcon/Db/Dialect/Sqlite.zep", 208); - } - ZEPHIR_CALL_METHOD(NULL, &indexes, "next", NULL, 0); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_3$$6)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "next", &_5, 0); zephir_check_call_status(); + continue; } } - ZEPHIR_INIT_NVAR(&index); - } - ZEPHIR_OBS_VAR(&references); - if (zephir_array_isset_string_fetch(&references, &definition, SL("references"), 0)) { - zephir_is_iterable(&references, 0, "phalcon/Db/Dialect/Sqlite.zep", 233); - if (Z_TYPE_P(&references) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&references), _51$$30) - { - ZEPHIR_INIT_NVAR(&reference); - ZVAL_COPY(&reference, _51$$30); - ZEPHIR_CALL_METHOD(&_53$$31, &reference, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_55$$31, &reference, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_54$$31, this_ptr, "getcolumnlist", &_37, 67, &_55$$31); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_56$$31, &reference, "getreferencedtable", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_58$$31, &reference, "getreferencedcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_57$$31, this_ptr, "getcolumnlist", &_37, 67, &_58$$31); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&referenceSql); - ZEPHIR_CONCAT_SVSVSSVSVS(&referenceSql, "CONSTRAINT `", &_53$$31, "` FOREIGN KEY (", &_54$$31, ")", " REFERENCES `", &_56$$31, "`(", &_57$$31, ")"); - ZEPHIR_CALL_METHOD(&onDelete, &reference, "getondelete", NULL, 0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&onDelete))) { - ZEPHIR_INIT_NVAR(&_59$$32); - ZEPHIR_CONCAT_SV(&_59$$32, " ON DELETE ", &onDelete); - zephir_concat_self(&referenceSql, &_59$$32); - } - ZEPHIR_CALL_METHOD(&onUpdate, &reference, "getonupdate", NULL, 0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&onUpdate))) { - ZEPHIR_INIT_NVAR(&_60$$33); - ZEPHIR_CONCAT_SV(&_60$$33, " ON UPDATE ", &onUpdate); - zephir_concat_self(&referenceSql, &_60$$33); - } - zephir_array_append(&createLines, &referenceSql, PH_SEPARATE, "phalcon/Db/Dialect/Sqlite.zep", 231); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &references, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(&_6$$3, &record, "delete", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_6$$3))) { + ZEPHIR_CALL_METHOD(&_7$$8, &record, "getmessages", NULL, 0); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_52$$30, &references, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_52$$30)) { - break; - } - ZEPHIR_CALL_METHOD(&reference, &references, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_61$$34, &reference, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_63$$34, &reference, "getcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_62$$34, this_ptr, "getcolumnlist", &_37, 67, &_63$$34); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_64$$34, &reference, "getreferencedtable", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_66$$34, &reference, "getreferencedcolumns", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_65$$34, this_ptr, "getcolumnlist", &_37, 67, &_66$$34); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&referenceSql); - ZEPHIR_CONCAT_SVSVSSVSVS(&referenceSql, "CONSTRAINT `", &_61$$34, "` FOREIGN KEY (", &_62$$34, ")", " REFERENCES `", &_64$$34, "`(", &_65$$34, ")"); - ZEPHIR_CALL_METHOD(&onDelete, &reference, "getondelete", NULL, 0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&onDelete))) { - ZEPHIR_INIT_NVAR(&_67$$35); - ZEPHIR_CONCAT_SV(&_67$$35, " ON DELETE ", &onDelete); - zephir_concat_self(&referenceSql, &_67$$35); - } - ZEPHIR_CALL_METHOD(&onUpdate, &reference, "getonupdate", NULL, 0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&onUpdate))) { - ZEPHIR_INIT_NVAR(&_68$$36); - ZEPHIR_CONCAT_SV(&_68$$36, " ON UPDATE ", &onUpdate); - zephir_concat_self(&referenceSql, &_68$$36); - } - zephir_array_append(&createLines, &referenceSql, PH_SEPARATE, "phalcon/Db/Dialect/Sqlite.zep", 231); - ZEPHIR_CALL_METHOD(NULL, &references, "next", NULL, 0); - zephir_check_call_status(); - } + zephir_update_property_zval(this_ptr, ZEND_STRL("errorMessages"), &_7$$8); + ZEPHIR_CALL_METHOD(NULL, &connection, "rollback", NULL, 0); + zephir_check_call_status(); + result = 0; + transaction = 0; + break; } - ZEPHIR_INIT_NVAR(&reference); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "next", &_5, 0); + zephir_check_call_status(); } - ZEPHIR_INIT_VAR(&_69); - zephir_fast_join_str(&_69, SL(",\n\t"), &createLines); - ZEPHIR_INIT_VAR(&_70); - ZEPHIR_CONCAT_VS(&_70, &_69, "\n)"); - zephir_concat_self(&sql, &_70); - RETURN_CTOR(&sql); + if (transaction == 1) { + ZEPHIR_CALL_METHOD(NULL, &connection, "commit", NULL, 0); + zephir_check_call_status(); + } + RETURN_MM_BOOL(result); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createView) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, filter) { + zend_bool _4$$3; + zval records, _3$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_1 = NULL, *_2 = NULL, *_5 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval definition; - zval *viewName_param = NULL, *definition_param = NULL, *schemaName_param = NULL, viewSql, _0; - zval viewName, schemaName; + zval *filter, filter_sub, record, processedRecord, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&viewName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&viewSql); + ZVAL_UNDEF(&filter_sub); + ZVAL_UNDEF(&record); + ZVAL_UNDEF(&processedRecord); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&records); + ZVAL_UNDEF(&_3$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(viewName) - Z_PARAM_ARRAY(definition) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(filter) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &viewName_param, &definition_param, &schemaName_param); - if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { - zephir_get_strval(&viewName, viewName_param); - } else { - ZEPHIR_INIT_VAR(&viewName); - } - ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - zephir_get_strval(&schemaName, schemaName_param); - } + zephir_fetch_params(1, 1, 0, &filter); - ZEPHIR_OBS_VAR(&viewSql); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&viewSql, &definition, SL("sql"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/Db/Dialect/Sqlite.zep", 250); - return; - } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &viewName, &schemaName); + ZEPHIR_INIT_VAR(&records); + array_init(&records); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "rewind", NULL, 111); zephir_check_call_status(); - ZEPHIR_CONCAT_SVSV(return_value, "CREATE VIEW ", &_0, " AS ", &viewSql); - RETURN_MM(); + while (1) { + ZEPHIR_CALL_METHOD(&_0, this_ptr, "valid", &_1, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_0))) { + break; + } + ZEPHIR_CALL_METHOD(&record, this_ptr, "current", &_2, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_3$$3); + zephir_create_array(&_3$$3, 1, 0); + zephir_array_fast_append(&_3$$3, &record); + ZEPHIR_INIT_NVAR(&processedRecord); + ZEPHIR_CALL_USER_FUNC_ARRAY(&processedRecord, filter, &_3$$3); + zephir_check_call_status(); + _4$$3 = Z_TYPE_P(&processedRecord) != IS_OBJECT; + if (_4$$3) { + _4$$3 = Z_TYPE_P(&processedRecord) != IS_ARRAY; + } + if (_4$$3) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "next", &_5, 0); + zephir_check_call_status(); + continue; + } + zephir_array_append(&records, &processedRecord, PH_SEPARATE, "phalcon/Mvc/Model/Resultset.zep", 322); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "next", &_5, 0); + zephir_check_call_status(); + } + RETURN_CTOR(&records); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeColumns) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getCache) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *table_param = NULL, *schema_param = NULL; - zval table, schema; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); - } else { - ZEPHIR_INIT_VAR(&table); - } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); - } else { - zephir_get_strval(&schema, schema_param); - } - ZEPHIR_CONCAT_SVS(return_value, "PRAGMA table_info('", &table, "')"); - RETURN_MM(); + RETURN_MEMBER(getThis(), "cache"); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeIndex) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getFirst) { + zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *index_param = NULL; - zval index; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&index); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(index) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &index_param); - if (UNEXPECTED(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be of the type string")); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("count"), PH_NOISY_CC | PH_READONLY); + if (ZEPHIR_IS_LONG(&_0, 0)) { RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(index_param) == IS_STRING)) { - zephir_get_strval(&index, index_param); - } else { - ZEPHIR_INIT_VAR(&index); - } - - - ZEPHIR_CONCAT_SVS(return_value, "PRAGMA index_info('", &index, "')"); + ZVAL_LONG(&_1, 0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", NULL, 112, &_1); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", NULL, 0); + zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeIndexes) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getHydrateMode) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *table_param = NULL, *schema_param = NULL; - zval table, schema; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); - } else { - ZEPHIR_INIT_VAR(&table); - } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); - } else { - zephir_get_strval(&schema, schema_param); - } - ZEPHIR_CONCAT_SVS(return_value, "PRAGMA index_list('", &table, "')"); - RETURN_MM(); + RETURN_MEMBER(getThis(), "hydrateMode"); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeReferences) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getLast) { + zval count, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *table_param = NULL, *schema_param = NULL; - zval table, schema; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&count); + ZVAL_UNDEF(&_0); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("count"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&count, &_0); + if (ZEPHIR_IS_LONG(&count, 0)) { RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); - } else { - ZEPHIR_INIT_VAR(&table); - } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); - } else { - zephir_get_strval(&schema, schema_param); - } + ZVAL_LONG(&_0, (zephir_get_numberval(&count) - 1)); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", NULL, 112, &_0); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); +} +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getMessages) +{ + zval *this_ptr = getThis(); - ZEPHIR_CONCAT_SVS(return_value, "PRAGMA foreign_key_list('", &table, "')"); - RETURN_MM(); + + + RETURN_MEMBER(getThis(), "errorMessages"); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropColumn) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getType) { + zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *tableName_param = NULL, *schemaName_param = NULL, *columnName_param = NULL; - zval tableName, schemaName, columnName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&columnName); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_STR(columnName) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &columnName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } - if (UNEXPECTED(Z_TYPE_P(columnName_param) != IS_STRING && Z_TYPE_P(columnName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'columnName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(columnName_param) == IS_STRING)) { - zephir_get_strval(&columnName, columnName_param); + + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_OBS_VAR(&_1); + zephir_read_property(&_1, this_ptr, ZEND_STRL("rows"), PH_NOISY_CC); + if (Z_TYPE_P(&_1) == IS_ARRAY) { + ZVAL_LONG(&_0, 0); } else { - ZEPHIR_INIT_VAR(&columnName); + ZVAL_LONG(&_0, 1); } + RETURN_CCTOR(&_0); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, isFresh) +{ + zval *this_ptr = getThis(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Dropping DB column is not supported by SQLite", "phalcon/Db/Dialect/Sqlite.zep", 299); - return; + + RETURN_MEMBER(getThis(), "isFresh"); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropForeignKey) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, jsonSerialize) { + zend_bool _3$$3; + zval records; + zval current, _0, _4$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName_param = NULL; - zval tableName, schemaName, referenceName; + zephir_fcall_cache_entry *_1 = NULL, *_2 = NULL, *_5 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&referenceName); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_STR(referenceName) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(¤t); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&records); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); + + ZEPHIR_INIT_VAR(&records); + array_init(&records); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "rewind", NULL, 111); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_0, this_ptr, "valid", &_1, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_0))) { + break; + } + ZEPHIR_CALL_METHOD(¤t, this_ptr, "current", &_2, 0); + zephir_check_call_status(); + _3$$3 = Z_TYPE_P(¤t) == IS_OBJECT; + if (_3$$3) { + _3$$3 = (zephir_method_exists_ex(¤t, ZEND_STRL("jsonserialize")) == SUCCESS); + } + if (_3$$3) { + ZEPHIR_CALL_METHOD(&_4$$4, ¤t, "jsonserialize", NULL, 0); + zephir_check_call_status(); + zephir_array_append(&records, &_4$$4, PH_SEPARATE, "phalcon/Mvc/Model/Resultset.zep", 447); + } else { + zephir_array_append(&records, ¤t, PH_SEPARATE, "phalcon/Mvc/Model/Resultset.zep", 449); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "next", &_5, 0); + zephir_check_call_status(); } - if (UNEXPECTED(Z_TYPE_P(referenceName_param) != IS_STRING && Z_TYPE_P(referenceName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceName' must be of the type string")); + RETURN_CTOR(&records); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, key) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "valid", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_0))) { RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(referenceName_param) == IS_STRING)) { - zephir_get_strval(&referenceName, referenceName_param); - } else { - ZEPHIR_INIT_VAR(&referenceName); - } + RETURN_MM_MEMBER(getThis(), "pointer"); +} +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, next) +{ + zval _0, _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Dropping a foreign key constraint is not supported by SQLite", "phalcon/Db/Dialect/Sqlite.zep", 309); - return; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("pointer"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_1, (zephir_get_numberval(&_0) + 1)); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", NULL, 112, &_1); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropIndex) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetGet) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *tableName_param = NULL, *schemaName_param = NULL, *indexName_param = NULL; - zval tableName, schemaName, indexName; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *index, index_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&indexName); + ZVAL_UNDEF(&index_sub); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_STR(indexName) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(index) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &indexName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } - if (UNEXPECTED(Z_TYPE_P(indexName_param) != IS_STRING && Z_TYPE_P(indexName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'indexName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(indexName_param) == IS_STRING)) { - zephir_get_strval(&indexName, indexName_param); - } else { - ZEPHIR_INIT_VAR(&indexName); - } + zephir_fetch_params(1, 1, 0, &index); - if (!(ZEPHIR_IS_EMPTY(&schemaName))) { - ZEPHIR_CONCAT_SVSVS(return_value, "DROP INDEX \"", &schemaName, "\".\"", &indexName, "\""); - RETURN_MM(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("count"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(ZEPHIR_GE(index, &_0))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The index does not exist in the cursor", "phalcon/Mvc/Model/Resultset.zep", 487); + return; } - ZEPHIR_CONCAT_SVS(return_value, "DROP INDEX \"", &indexName, "\""); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", NULL, 112, index); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", NULL, 0); + zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropPrimaryKey) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetExists) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *tableName_param = NULL, *schemaName_param = NULL; - zval tableName, schemaName; + zval *index, index_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&index_sub); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(index) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &tableName_param, &schemaName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } + zephir_fetch_params_without_memory_grow(1, 0, &index); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Removing a primary key after table has been created is not supported by SQLite", "phalcon/Db/Dialect/Sqlite.zep", 331); - return; + zephir_read_property(&_0, this_ptr, ZEND_STRL("count"), PH_NOISY_CC | PH_READONLY); + RETURN_BOOL(ZEPHIR_LT(index, &_0)); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropTable) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetSet) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool ifExists; - zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, table; - zval tableName, schemaName; + zval *index, index_sub, *value, value_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&table); + ZVAL_UNDEF(&index_sub); + ZVAL_UNDEF(&value_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(tableName) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) - Z_PARAM_BOOL(ifExists) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(index) + Z_PARAM_ZVAL(value) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &tableName_param, &schemaName_param, &ifExists_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - zephir_get_strval(&schemaName, schemaName_param); - } - if (!ifExists_param) { - ifExists = 1; - } else { - if (UNEXPECTED(Z_TYPE_P(ifExists_param) != IS_TRUE && Z_TYPE_P(ifExists_param) != IS_FALSE)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be of the type bool")); - RETURN_MM_NULL(); - } - ifExists = (Z_TYPE_P(ifExists_param) == IS_TRUE); - } + zephir_fetch_params_without_memory_grow(2, 0, &index, &value); - ZEPHIR_CALL_METHOD(&table, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); - zephir_check_call_status(); - if (ifExists) { - ZEPHIR_CONCAT_SV(return_value, "DROP TABLE IF EXISTS ", &table); - RETURN_MM(); - } - ZEPHIR_CONCAT_SV(return_value, "DROP TABLE ", &table); - RETURN_MM(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Cursor is an immutable ArrayAccess object", "phalcon/Mvc/Model/Resultset.zep", 514); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropView) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetUnset) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool ifExists; - zval *viewName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, view; - zval viewName, schemaName; + zval *offset, offset_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&viewName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&view); + ZVAL_UNDEF(&offset_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(viewName) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) - Z_PARAM_BOOL(ifExists) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(offset) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &viewName_param, &schemaName_param, &ifExists_param); - if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { - zephir_get_strval(&viewName, viewName_param); - } else { - ZEPHIR_INIT_VAR(&viewName); - } - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - zephir_get_strval(&schemaName, schemaName_param); - } - if (!ifExists_param) { - ifExists = 1; - } else { - if (UNEXPECTED(Z_TYPE_P(ifExists_param) != IS_TRUE && Z_TYPE_P(ifExists_param) != IS_FALSE)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be of the type bool")); - RETURN_MM_NULL(); - } - ifExists = (Z_TYPE_P(ifExists_param) == IS_TRUE); - } + zephir_fetch_params_without_memory_grow(1, 0, &offset); - ZEPHIR_CALL_METHOD(&view, this_ptr, "preparetable", NULL, 0, &viewName, &schemaName); - zephir_check_call_status(); - if (ifExists) { - ZEPHIR_CONCAT_SV(return_value, "DROP VIEW IF EXISTS ", &view); - RETURN_MM(); - } - ZEPHIR_CONCAT_SV(return_value, "DROP VIEW ", &view); - RETURN_MM(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Cursor is an immutable ArrayAccess object", "phalcon/Mvc/Model/Resultset.zep", 522); + return; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, forUpdate) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, rewind) { + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *sqlQuery_param = NULL; - zval sqlQuery; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&sqlQuery); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(sqlQuery) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_0); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &sqlQuery_param); - if (UNEXPECTED(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { - zephir_get_strval(&sqlQuery, sqlQuery_param); - } else { - ZEPHIR_INIT_VAR(&sqlQuery); - } - - RETURN_CTOR(&sqlQuery); + ZVAL_LONG(&_0, 0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", NULL, 112, &_0); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, getColumnDefinition) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, seek) { + zend_bool _1, _6$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_12 = NULL; + zephir_fcall_cache_entry *_13 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *column, column_sub, columnType, columnSql, typeValues, _0$$3, _1$$10, _2$$16, _3$$18, _4$$35, _5$$38, _6$$38, _7$$38, value$$40, valueSql$$40, *_8$$40, _9$$40, _17$$40, _18$$40, _19$$40, _20$$40, _10$$41, _11$$41, _13$$41, _14$$42, _15$$42, _16$$42, _21$$43, _22$$43, _23$$43; + zval *position, position_sub, __$null, result, row, _0, _2, _3$$3, _5$$3, _7$$3, _9$$3, _11$$3, _4$$4, _8$$6, _10$$7, _12$$8; zval *this_ptr = getThis(); - ZVAL_UNDEF(&column_sub); - ZVAL_UNDEF(&columnType); - ZVAL_UNDEF(&columnSql); - ZVAL_UNDEF(&typeValues); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$10); - ZVAL_UNDEF(&_2$$16); - ZVAL_UNDEF(&_3$$18); - ZVAL_UNDEF(&_4$$35); - ZVAL_UNDEF(&_5$$38); - ZVAL_UNDEF(&_6$$38); - ZVAL_UNDEF(&_7$$38); - ZVAL_UNDEF(&value$$40); - ZVAL_UNDEF(&valueSql$$40); - ZVAL_UNDEF(&_9$$40); - ZVAL_UNDEF(&_17$$40); - ZVAL_UNDEF(&_18$$40); - ZVAL_UNDEF(&_19$$40); - ZVAL_UNDEF(&_20$$40); - ZVAL_UNDEF(&_10$$41); - ZVAL_UNDEF(&_11$$41); - ZVAL_UNDEF(&_13$$41); - ZVAL_UNDEF(&_14$$42); - ZVAL_UNDEF(&_15$$42); - ZVAL_UNDEF(&_16$$42); - ZVAL_UNDEF(&_21$$43); - ZVAL_UNDEF(&_22$$43); - ZVAL_UNDEF(&_23$$43); + ZVAL_UNDEF(&position_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&row); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_9$$3); + ZVAL_UNDEF(&_11$$3); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_8$$6); + ZVAL_UNDEF(&_10$$7); + ZVAL_UNDEF(&_12$$8); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + Z_PARAM_ZVAL(position) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &column); + zephir_fetch_params(1, 1, 0, &position); - ZEPHIR_CALL_METHOD(&columnSql, this_ptr, "checkcolumntypesql", NULL, 0, column); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&columnType, this_ptr, "checkcolumntype", NULL, 0, column); - zephir_check_call_status(); - do { - if (ZEPHIR_IS_LONG(&columnType, 14)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("BIGINT")); - } - ZEPHIR_CALL_METHOD(&_0$$3, column, "isunsigned", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_0$$3)) { - zephir_concat_self_str(&columnSql, SL(" UNSIGNED")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 11)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("BLOB")); + zephir_read_property(&_0, this_ptr, ZEND_STRL("pointer"), PH_NOISY_CC | PH_READONLY); + _1 = !ZEPHIR_IS_EQUAL(&_0, position); + if (!(_1)) { + zephir_read_property(&_2, this_ptr, ZEND_STRL("row"), PH_NOISY_CC | PH_READONLY); + _1 = Z_TYPE_P(&_2) == IS_NULL; + } + if (_1) { + ZEPHIR_OBS_VAR(&_3$$3); + zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("rows"), PH_NOISY_CC); + if (Z_TYPE_P(&_3$$3) == IS_ARRAY) { + ZEPHIR_OBS_VAR(&row); + zephir_read_property(&_4$$4, this_ptr, ZEND_STRL("rows"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_fetch(&row, &_4$$4, position, 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("row"), &row); } - break; + zephir_update_property_zval(this_ptr, ZEND_STRL("pointer"), position); + zephir_update_property_zval(this_ptr, ZEND_STRL("activeRow"), &__$null); + RETURN_MM_NULL(); } - if (ZEPHIR_IS_LONG(&columnType, 8)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("TINYINT")); - } - break; + zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("result"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&result, &_5$$3); + zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("row"), PH_NOISY_CC | PH_READONLY); + _6$$3 = Z_TYPE_P(&_5$$3) == IS_NULL; + if (_6$$3) { + zephir_read_property(&_7$$3, this_ptr, ZEND_STRL("pointer"), PH_NOISY_CC | PH_READONLY); + _6$$3 = ZEPHIR_IS_LONG_IDENTICAL(&_7$$3, 0); } - if (ZEPHIR_IS_LONG(&columnType, 5)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("CHARACTER")); - } - ZEPHIR_CALL_METHOD(&_1$$10, this_ptr, "getcolumnsize", NULL, 0, column); + if (_6$$3) { + ZEPHIR_CALL_METHOD(&_8$$6, &result, "fetch", NULL, 0); zephir_check_call_status(); - zephir_concat_self(&columnSql, &_1$$10); - break; - } - if (ZEPHIR_IS_LONG(&columnType, 1)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("DATE")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 4)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("DATETIME")); - } - break; + zephir_update_property_zval(this_ptr, ZEND_STRL("row"), &_8$$6); } - if (ZEPHIR_IS_LONG(&columnType, 3)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("NUMERIC")); - } - ZEPHIR_CALL_METHOD(&_2$$16, this_ptr, "getcolumnsizeandscale", NULL, 0, column); + zephir_read_property(&_9$$3, this_ptr, ZEND_STRL("pointer"), PH_NOISY_CC | PH_READONLY); + if (ZEPHIR_GT(&_9$$3, position)) { + ZEPHIR_CALL_METHOD(NULL, &result, "dataseek", NULL, 0, position); zephir_check_call_status(); - zephir_concat_self(&columnSql, &_2$$16); - break; - } - if (ZEPHIR_IS_LONG(&columnType, 9)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("DOUBLE")); - } - ZEPHIR_CALL_METHOD(&_3$$18, column, "isunsigned", NULL, 0); + ZEPHIR_CALL_METHOD(&_10$$7, &result, "fetch", NULL, 0); zephir_check_call_status(); - if (zephir_is_true(&_3$$18)) { - zephir_concat_self_str(&columnSql, SL(" UNSIGNED")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 7)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("FLOAT")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 0)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("INTEGER")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 13)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("LONGBLOB")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 12)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("MEDIUMBLOB")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 6)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("TEXT")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 17)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("TIMESTAMP")); - } - break; - } - if (ZEPHIR_IS_LONG(&columnType, 10)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("TINYBLOB")); - } - break; + zephir_update_property_zval(this_ptr, ZEND_STRL("row"), &_10$$7); + zephir_update_property_zval(this_ptr, ZEND_STRL("pointer"), position); } - if (ZEPHIR_IS_LONG(&columnType, 2)) { - if (ZEPHIR_IS_EMPTY(&columnSql)) { - zephir_concat_self_str(&columnSql, SL("VARCHAR")); + while (1) { + zephir_read_property(&_11$$3, this_ptr, ZEND_STRL("pointer"), PH_NOISY_CC | PH_READONLY); + if (!(ZEPHIR_LT(&_11$$3, position))) { + break; } - ZEPHIR_CALL_METHOD(&_4$$35, this_ptr, "getcolumnsize", NULL, 0, column); - zephir_check_call_status(); - zephir_concat_self(&columnSql, &_4$$35); - break; - } - if (ZEPHIR_IS_EMPTY(&columnSql)) { - ZEPHIR_INIT_VAR(&_5$$38); - object_init_ex(&_5$$38, phalcon_db_exception_ce); - ZEPHIR_CALL_METHOD(&_6$$38, column, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_7$$38); - ZEPHIR_CONCAT_SV(&_7$$38, "Unrecognized SQLite data type at column ", &_6$$38); - ZEPHIR_CALL_METHOD(NULL, &_5$$38, "__construct", NULL, 8, &_7$$38); + ZEPHIR_CALL_METHOD(&_12$$8, &result, "fetch", &_13, 0); zephir_check_call_status(); - zephir_throw_exception_debug(&_5$$38, "phalcon/Db/Dialect/Sqlite.zep", 520); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CALL_METHOD(&typeValues, column, "gettypevalues", NULL, 0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&typeValues))) { - if (Z_TYPE_P(&typeValues) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&valueSql$$40); - ZVAL_STRING(&valueSql$$40, ""); - zephir_is_iterable(&typeValues, 0, "phalcon/Db/Dialect/Sqlite.zep", 534); - if (Z_TYPE_P(&typeValues) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&typeValues), _8$$40) - { - ZEPHIR_INIT_NVAR(&value$$40); - ZVAL_COPY(&value$$40, _8$$40); - ZEPHIR_INIT_NVAR(&_10$$41); - ZVAL_STRING(&_10$$41, "\""); - ZEPHIR_CALL_FUNCTION(&_11$$41, "addcslashes", &_12, 214, &value$$40, &_10$$41); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_13$$41); - ZEPHIR_CONCAT_SVS(&_13$$41, "\"", &_11$$41, "\", "); - zephir_concat_self(&valueSql$$40, &_13$$41); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &typeValues, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_9$$40, &typeValues, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_9$$40)) { - break; - } - ZEPHIR_CALL_METHOD(&value$$40, &typeValues, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_14$$42); - ZVAL_STRING(&_14$$42, "\""); - ZEPHIR_CALL_FUNCTION(&_15$$42, "addcslashes", &_12, 214, &value$$40, &_14$$42); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_16$$42); - ZEPHIR_CONCAT_SVS(&_16$$42, "\"", &_15$$42, "\", "); - zephir_concat_self(&valueSql$$40, &_16$$42); - ZEPHIR_CALL_METHOD(NULL, &typeValues, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value$$40); - ZVAL_LONG(&_17$$40, 0); - ZVAL_LONG(&_18$$40, -2); - ZEPHIR_INIT_VAR(&_19$$40); - zephir_substr(&_19$$40, &valueSql$$40, 0 , -2 , 0); - ZEPHIR_INIT_VAR(&_20$$40); - ZEPHIR_CONCAT_SVS(&_20$$40, "(", &_19$$40, ")"); - zephir_concat_self(&columnSql, &_20$$40); - } else { - ZEPHIR_INIT_VAR(&_21$$43); - ZVAL_STRING(&_21$$43, "\""); - ZEPHIR_CALL_FUNCTION(&_22$$43, "addcslashes", &_12, 214, &typeValues, &_21$$43); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_23$$43); - ZEPHIR_CONCAT_SVS(&_23$$43, "(\"", &_22$$43, "\")"); - zephir_concat_self(&columnSql, &_23$$43); - } + zephir_update_property_zval(this_ptr, ZEND_STRL("row"), &_12$$8); + RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("pointer"))); } - } while(0); - - RETURN_CCTOR(&columnSql); + zephir_update_property_zval(this_ptr, ZEND_STRL("pointer"), position); + zephir_update_property_zval(this_ptr, ZEND_STRL("activeRow"), &__$null); + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, listIndexesSql) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, setHydrateMode) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *table_param = NULL, *schema_param = NULL, *keyName_param = NULL, _0, _1, _2$$3, _3$$3; - zval table, schema, keyName, sql; + zval *hydrateMode_param = NULL, _0; + zend_long hydrateMode; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&keyName); - ZVAL_UNDEF(&sql); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(table) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) - Z_PARAM_STR_OR_NULL(keyName) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(hydrateMode) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &table_param, &schema_param, &keyName_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); - } else { - ZEPHIR_INIT_VAR(&table); - } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); - } else { - zephir_get_strval(&schema, schema_param); - } - if (!keyName_param) { - ZEPHIR_INIT_VAR(&keyName); - } else { - zephir_get_strval(&keyName, keyName_param); - } + zephir_fetch_params_without_memory_grow(1, 0, &hydrateMode_param); + hydrateMode = zephir_get_intval(hydrateMode_param); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "escape", NULL, 66, &table); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_CONCAT_SVS(&_1, "SELECT sql FROM sqlite_master WHERE type = 'index' AND tbl_name = ", &_0, " COLLATE NOCASE"); - zephir_get_strval(&sql, &_1); - if (!(ZEPHIR_IS_EMPTY(&keyName))) { - ZEPHIR_CALL_METHOD(&_2$$3, this_ptr, "escape", NULL, 66, &keyName); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_3$$3); - ZEPHIR_CONCAT_SVS(&_3$$3, " AND name = ", &_2$$3, " COLLATE NOCASE"); - zephir_concat_self(&sql, &_3$$3); - } - RETURN_CTOR(&sql); + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, hydrateMode); + zephir_update_property_zval(this_ptr, ZEND_STRL("hydrateMode"), &_0); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, listTables) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, setIsFresh) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *schemaName_param = NULL; - zval schemaName; + zval *isFresh_param = NULL, __$true, __$false; + zend_bool isFresh; zval *this_ptr = getThis(); - ZVAL_UNDEF(&schemaName); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(isFresh) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &schemaName_param); - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - zephir_get_strval(&schemaName, schemaName_param); - } + zephir_fetch_params_without_memory_grow(1, 0, &isFresh_param); + isFresh = zephir_get_boolval(isFresh_param); - RETURN_MM_STRING("SELECT tbl_name FROM sqlite_master WHERE type = 'table' ORDER BY tbl_name"); + if (isFresh) { + zephir_update_property_zval(this_ptr, ZEND_STRL("isFresh"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("isFresh"), &__$false); + } + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, listViews) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, update) { + zval _4$$6; + zend_bool transaction = 0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *schemaName_param = NULL; - zval schemaName; + zephir_fcall_cache_entry *_1 = NULL, *_2 = NULL, *_5 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *data, data_sub, *conditionCallback = NULL, conditionCallback_sub, __$null, record, connection, _0, _3$$6, _6$$3, _7$$8; zval *this_ptr = getThis(); - ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&conditionCallback_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&record); + ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_3$$6); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$8); + ZVAL_UNDEF(&_4$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(data) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(conditionCallback, zend_ce_closure) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &schemaName_param); - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); + zephir_fetch_params(1, 1, 1, &data, &conditionCallback); + if (!conditionCallback) { + conditionCallback = &conditionCallback_sub; + conditionCallback = &__$null; } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); + + + ZEPHIR_INIT_VAR(&connection); + ZVAL_NULL(&connection); + transaction = 0; + ZEPHIR_CALL_METHOD(NULL, this_ptr, "rewind", NULL, 111); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_0, this_ptr, "valid", &_1, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_0))) { + break; + } + ZEPHIR_CALL_METHOD(&record, this_ptr, "current", &_2, 0); + zephir_check_call_status(); + if (transaction == 0) { + if (UNEXPECTED(!((zephir_method_exists_ex(&record, ZEND_STRL("getwriteconnection")) == SUCCESS)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The returned record is not valid", "phalcon/Mvc/Model/Resultset.zep", 639); + return; + } + ZEPHIR_CALL_METHOD(&connection, &record, "getwriteconnection", NULL, 0); + zephir_check_call_status(); + transaction = 1; + ZEPHIR_CALL_METHOD(NULL, &connection, "begin", NULL, 0); + zephir_check_call_status(); + } + if (Z_TYPE_P(conditionCallback) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_3$$6); + ZEPHIR_INIT_NVAR(&_4$$6); + zephir_create_array(&_4$$6, 1, 0); + zephir_array_fast_append(&_4$$6, &record); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_3$$6, conditionCallback, &_4$$6); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_3$$6)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "next", &_5, 0); + zephir_check_call_status(); + continue; + } + } + ZEPHIR_CALL_METHOD(NULL, &record, "assign", NULL, 0, data); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_6$$3, &record, "save", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_6$$3))) { + ZEPHIR_CALL_METHOD(&_7$$8, &record, "getmessages", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("errorMessages"), &_7$$8); + ZEPHIR_CALL_METHOD(NULL, &connection, "rollback", NULL, 0); + zephir_check_call_status(); + transaction = 0; + break; + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "next", &_5, 0); + zephir_check_call_status(); } + if (transaction == 1) { + ZEPHIR_CALL_METHOD(NULL, &connection, "commit", NULL, 0); + zephir_check_call_status(); } + RETURN_MM_BOOL(transaction); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Resultset, valid) +{ + zval _0, _1; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); - RETURN_MM_STRING("SELECT tbl_name FROM sqlite_master WHERE type = 'view' ORDER BY tbl_name"); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("pointer"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_1, this_ptr, ZEND_STRL("count"), PH_NOISY_CC | PH_READONLY); + RETURN_BOOL(ZEPHIR_LT(&_0, &_1)); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, modifyColumn) +zend_object *zephir_init_properties_Phalcon_Mvc_Model_Resultset(zend_class_entry *class_type) { + zval _0, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *tableName_param = NULL, *schemaName_param = NULL, *column, column_sub, *currentColumn = NULL, currentColumn_sub, __$null; - zval tableName, schemaName; - zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&column_sub); - ZVAL_UNDEF(¤tColumn_sub); - ZVAL_NULL(&__$null); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 4) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) - Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) - Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(currentColumn, phalcon_db_columninterface_ce) - ZEND_PARSE_PARAMETERS_END(); + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("errorMessages"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("errorMessages"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 1, &tableName_param, &schemaName_param, &column, ¤tColumn); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } - if (!currentColumn) { - currentColumn = ¤tColumn_sub; - currentColumn = &__$null; - } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Altering a DB column is not supported by SQLite", "phalcon/Db/Dialect/Sqlite.zep", 593); - return; -} -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, sharedLock) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_ResultsetInterface) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *sqlQuery_param = NULL; - zval sqlQuery; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model, ResultsetInterface, phalcon, mvc_model_resultsetinterface, phalcon_mvc_model_resultsetinterface_method_entry); - ZVAL_UNDEF(&sqlQuery); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(sqlQuery) - ZEND_PARSE_PARAMETERS_END(); + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, delete); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, filter); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, getCache); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, getFirst); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, getHydrateMode); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, getLast); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, getMessages); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, getType); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, isFresh); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, setHydrateMode); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, setIsFresh); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, toArray); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, update); + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &sqlQuery_param); - if (UNEXPECTED(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { - zephir_get_strval(&sqlQuery, sqlQuery_param); - } else { - ZEPHIR_INIT_VAR(&sqlQuery); - } - RETURN_CTOR(&sqlQuery); + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Row) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model, Row, phalcon, mvc_model_row, phalcon_mvc_model_row_method_entry, 0); + + zend_class_implements(phalcon_mvc_model_row_ce, 1, phalcon_mvc_entityinterface_ce); + zend_class_implements(phalcon_mvc_model_row_ce, 1, phalcon_mvc_model_resultinterface_ce); + zend_class_implements(phalcon_mvc_model_row_ce, 1, zend_ce_arrayaccess); + zend_class_implements(phalcon_mvc_model_row_ce, 1, zephir_get_internal_ce(SL("jsonserializable"))); + return SUCCESS; } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableExists) +static PHP_METHOD(Phalcon_Mvc_Model_Row, jsonSerialize) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *tableName_param = NULL, *schemaName_param = NULL; - zval tableName, schemaName; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(tableName) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - zephir_get_strval(&schemaName, schemaName_param); - } - - ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM sqlite_master WHERE type='table' AND tbl_name='", &tableName, "'"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "toarray", NULL, 0); + zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableOptions) +static PHP_METHOD(Phalcon_Mvc_Model_Row, offsetGet) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *table_param = NULL, *schema_param = NULL; - zval table, schema; + zval *index, index_sub, value; zval *this_ptr = getThis(); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&index_sub); + ZVAL_UNDEF(&value); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(table) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schema) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(index) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &table_param, &schema_param); - if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { - zephir_get_strval(&table, table_param); - } else { - ZEPHIR_INIT_VAR(&table); - } - if (!schema_param) { - ZEPHIR_INIT_VAR(&schema); - } else { - zephir_get_strval(&schema, schema_param); - } + zephir_fetch_params(1, 1, 0, &index); - RETURN_MM_STRING(""); + ZEPHIR_OBS_VAR(&value); + if (UNEXPECTED(!(zephir_fetch_property_zval(&value, this_ptr, index, PH_SILENT_CC)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The index does not exist in the row", "phalcon/Mvc/Model/Row.zep", 46); + return; + } + RETURN_CCTOR(&value); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, truncateTable) +static PHP_METHOD(Phalcon_Mvc_Model_Row, offsetExists) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *tableName_param = NULL, *schemaName_param = NULL; - zval tableName, schemaName, table; + zval *index, index_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&tableName); - ZVAL_UNDEF(&schemaName); - ZVAL_UNDEF(&table); + ZVAL_UNDEF(&index_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(tableName) - Z_PARAM_STR(schemaName) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(index) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &tableName_param, &schemaName_param); - if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { - zephir_get_strval(&tableName, tableName_param); - } else { - ZEPHIR_INIT_VAR(&tableName); - } - if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { - zephir_get_strval(&schemaName, schemaName_param); - } else { - ZEPHIR_INIT_VAR(&schemaName); - } + zephir_fetch_params_without_memory_grow(1, 0, &index); - if (!(ZEPHIR_IS_EMPTY(&schemaName))) { - ZEPHIR_INIT_VAR(&table); - ZEPHIR_CONCAT_SVSVS(&table, "\"", &schemaName, "\".\"", &tableName, "\""); - } else { - ZEPHIR_INIT_NVAR(&table); - ZEPHIR_CONCAT_SVS(&table, "\"", &tableName, "\""); - } - ZEPHIR_CONCAT_SV(return_value, "DELETE FROM ", &table); - RETURN_MM(); + RETURN_BOOL(zephir_isset_property_zval(this_ptr, index)); } -static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, viewExists) +static PHP_METHOD(Phalcon_Mvc_Model_Row, offsetSet) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *viewName_param = NULL, *schemaName_param = NULL; - zval viewName, schemaName; + zval *index, index_sub, *value, value_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&viewName); - ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&index_sub); + ZVAL_UNDEF(&value_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(viewName) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(schemaName) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(index) + Z_PARAM_ZVAL(value) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName_param); - if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { - zephir_get_strval(&viewName, viewName_param); - } else { - ZEPHIR_INIT_VAR(&viewName); - } - if (!schemaName_param) { - ZEPHIR_INIT_VAR(&schemaName); - } else { - zephir_get_strval(&schemaName, schemaName_param); - } + zephir_fetch_params_without_memory_grow(2, 0, &index, &value); - ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM sqlite_master WHERE type='view' AND tbl_name='", &viewName, "'"); - RETURN_MM(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Row is an immutable ArrayAccess object", "phalcon/Mvc/Model/Row.zep", 70); + return; } +static PHP_METHOD(Phalcon_Mvc_Model_Row, offsetUnset) +{ + zval *offset, offset_sub; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&offset_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(offset) + ZEND_PARSE_PARAMETERS_END(); #endif + zephir_fetch_params_without_memory_grow(1, 0, &offset); - -ZEPHIR_INIT_CLASS(Phalcon_Db_Profiler_Item) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Db\\Profiler, Item, phalcon, db_profiler_item, phalcon_db_profiler_item_method_entry, 0); - - zend_declare_property_null(phalcon_db_profiler_item_ce, SL("finalTime"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_profiler_item_ce, SL("initialTime"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_profiler_item_ce, SL("sqlBindTypes"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_profiler_item_ce, SL("sqlStatement"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_profiler_item_ce, SL("sqlVariables"), ZEND_ACC_PROTECTED); - return SUCCESS; + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Row is an immutable ArrayAccess object", "phalcon/Mvc/Model/Row.zep", 80); + return; } -static PHP_METHOD(Phalcon_Db_Profiler_Item, setFinalTime) +static PHP_METHOD(Phalcon_Mvc_Model_Row, readAttribute) { - zval *finalTime_param = NULL, _0; - double finalTime; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *attribute_param = NULL, value; + zval attribute; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&attribute); + ZVAL_UNDEF(&value); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(finalTime) + Z_PARAM_STR(attribute) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &finalTime_param); - finalTime = zephir_get_doubleval(finalTime_param); - - - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_DOUBLE(&_0, finalTime); - zephir_update_property_zval(this_ptr, ZEND_STRL("finalTime"), &_0); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Db_Profiler_Item, getFinalTime) -{ - zval *this_ptr = getThis(); - + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &attribute_param); + if (UNEXPECTED(Z_TYPE_P(attribute_param) != IS_STRING && Z_TYPE_P(attribute_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'attribute' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(attribute_param) == IS_STRING)) { + zephir_get_strval(&attribute, attribute_param); + } else { + ZEPHIR_INIT_VAR(&attribute); + } - RETURN_MEMBER(getThis(), "finalTime"); + ZEPHIR_OBS_VAR(&value); + if (!(zephir_fetch_property_zval(&value, this_ptr, &attribute, PH_SILENT_CC))) { + RETURN_MM_NULL(); + } + RETURN_CTOR(&value); } -static PHP_METHOD(Phalcon_Db_Profiler_Item, setInitialTime) +static PHP_METHOD(Phalcon_Mvc_Model_Row, setDirtyState) { - zval *initialTime_param = NULL, _0; - double initialTime; + zval *dirtyState_param = NULL; + zend_long dirtyState; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(initialTime) + Z_PARAM_LONG(dirtyState) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &initialTime_param); - initialTime = zephir_get_doubleval(initialTime_param); + zephir_fetch_params_without_memory_grow(1, 0, &dirtyState_param); + dirtyState = zephir_get_intval(dirtyState_param); - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_DOUBLE(&_0, initialTime); - zephir_update_property_zval(this_ptr, ZEND_STRL("initialTime"), &_0); - RETURN_THISW(); + RETURN_BOOL(0); } -static PHP_METHOD(Phalcon_Db_Profiler_Item, getInitialTime) +static PHP_METHOD(Phalcon_Mvc_Model_Row, toArray) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "initialTime"); + ZEPHIR_MM_GROW(); + + ZEPHIR_RETURN_CALL_FUNCTION("get_object_vars", NULL, 438, this_ptr); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlBindTypes) +static PHP_METHOD(Phalcon_Mvc_Model_Row, writeAttribute) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *sqlBindTypes_param = NULL; - zval sqlBindTypes; + zval *attribute_param = NULL, *value, value_sub; + zval attribute; zval *this_ptr = getThis(); - ZVAL_UNDEF(&sqlBindTypes); + ZVAL_UNDEF(&attribute); + ZVAL_UNDEF(&value_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(sqlBindTypes) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(attribute) + Z_PARAM_ZVAL(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &sqlBindTypes_param); - zephir_get_arrval(&sqlBindTypes, sqlBindTypes_param); + zephir_fetch_params(1, 2, 0, &attribute_param, &value); + if (UNEXPECTED(Z_TYPE_P(attribute_param) != IS_STRING && Z_TYPE_P(attribute_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'attribute' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(attribute_param) == IS_STRING)) { + zephir_get_strval(&attribute, attribute_param); + } else { + ZEPHIR_INIT_VAR(&attribute); + } - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlBindTypes"), &sqlBindTypes); - RETURN_THIS(); + zephir_update_property_zval_zval(this_ptr, &attribute, value); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlBindTypes) -{ - zval *this_ptr = getThis(); - - RETURN_MEMBER(getThis(), "sqlBindTypes"); -} - -static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlStatement) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *sqlStatement_param = NULL; - zval sqlStatement; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&sqlStatement); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(sqlStatement) - ZEND_PARSE_PARAMETERS_END(); +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &sqlStatement_param); - zephir_get_strval(&sqlStatement, sqlStatement_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlStatement"), &sqlStatement); - RETURN_THIS(); -} -static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlStatement) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Transaction) { - zval *this_ptr = getThis(); - + ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model, Transaction, phalcon, mvc_model_transaction, phalcon_mvc_model_transaction_method_entry, 0); + zend_declare_property_bool(phalcon_mvc_model_transaction_ce, SL("activeTransaction"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_transaction_ce, SL("connection"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_model_transaction_ce, SL("isNewTransaction"), 1, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_transaction_ce, SL("manager"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_transaction_ce, SL("messages"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_transaction_ce, SL("rollbackRecord"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_model_transaction_ce, SL("rollbackOnAbort"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_model_transaction_ce, SL("rollbackThrowException"), 0, ZEND_ACC_PROTECTED); + phalcon_mvc_model_transaction_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_Transaction; - RETURN_MEMBER(getThis(), "sqlStatement"); + zend_class_implements(phalcon_mvc_model_transaction_ce, 1, phalcon_mvc_model_transactioninterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlVariables) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *sqlVariables_param = NULL; - zval sqlVariables; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval service; + zend_bool autoBegin; + zval *container, container_sub, *autoBegin_param = NULL, *service_param = NULL, connection, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&sqlVariables); + ZVAL_UNDEF(&container_sub); + ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&service); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(sqlVariables) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(autoBegin) + Z_PARAM_STR(service) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &sqlVariables_param); - zephir_get_arrval(&sqlVariables, sqlVariables_param); + zephir_fetch_params(1, 1, 2, &container, &autoBegin_param, &service_param); + if (!autoBegin_param) { + autoBegin = 0; + } else { + autoBegin = zephir_get_boolval(autoBegin_param); + } + if (!service_param) { + ZEPHIR_INIT_VAR(&service); + ZVAL_STRING(&service, "db"); + } else { + zephir_get_strval(&service, service_param); + } - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlVariables"), &sqlVariables); - RETURN_THIS(); + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("messages"), &_0); + ZEPHIR_CALL_METHOD(&connection, container, "get", NULL, 0, &service); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("connection"), &connection); + if (autoBegin) { + ZEPHIR_CALL_METHOD(NULL, &connection, "begin", NULL, 0); + zephir_check_call_status(); + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlVariables) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction, begin) { + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + + ZEPHIR_MM_GROW(); - RETURN_MEMBER(getThis(), "sqlVariables"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "begin", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Profiler_Item, getTotalElapsedSeconds) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction, commit) { - zval _0, _1; + zval manager, _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&manager); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("finalTime"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_1, this_ptr, ZEND_STRL("initialTime"), PH_NOISY_CC | PH_READONLY); - zephir_sub_function(return_value, &_0, &_1); - return; + zephir_read_property(&_0, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&manager, &_0); + if (Z_TYPE_P(&manager) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(NULL, &manager, "notifycommit", NULL, 0, this_ptr); + zephir_check_call_status(); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "commit", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } +static PHP_METHOD(Phalcon_Mvc_Model_Transaction, getConnection) +{ + zval _0, _1$$3, _2$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); -#ifdef HAVE_CONFIG_H -#endif - - - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Db_Result_Pdo) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Db\\Result, Pdo, phalcon, db_result_pdo, phalcon_db_result_pdo_method_entry, 0); - - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("bindParams"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("bindTypes"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("connection"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_db_result_pdo_ce, SL("fetchMode"), 5, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("pdoStatement"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("result"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_db_result_pdo_ce, SL("rowCount"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_db_result_pdo_ce, SL("sqlStatement"), ZEND_ACC_PROTECTED); - phalcon_db_result_pdo_ce->create_object = zephir_init_properties_Phalcon_Db_Result_Pdo; + ZEPHIR_MM_GROW(); - zend_class_implements(phalcon_db_result_pdo_ce, 1, phalcon_db_resultinterface_ce); - return SUCCESS; + zephir_read_property(&_0, this_ptr, ZEND_STRL("rollbackOnAbort"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_0)) { + ZEPHIR_CALL_FUNCTION(&_1$$3, "connection_aborted", NULL, 490); + zephir_check_call_status(); + if (zephir_is_true(&_1$$3)) { + ZEPHIR_INIT_VAR(&_2$$4); + ZVAL_STRING(&_2$$4, "The request was aborted"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "rollback", NULL, 0, &_2$$4); + zephir_check_call_status(); + } + } + RETURN_MM_MEMBER(getThis(), "connection"); } -static PHP_METHOD(Phalcon_Db_Result_Pdo, __construct) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction, getMessages) { - zval *connection, connection_sub, *result, result_sub, *sqlStatement = NULL, sqlStatement_sub, *bindParams = NULL, bindParams_sub, *bindTypes = NULL, bindTypes_sub, __$null; zval *this_ptr = getThis(); - ZVAL_UNDEF(&connection_sub); - ZVAL_UNDEF(&result_sub); - ZVAL_UNDEF(&sqlStatement_sub); - ZVAL_UNDEF(&bindParams_sub); - ZVAL_UNDEF(&bindTypes_sub); - ZVAL_NULL(&__$null); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 5) - Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_db_adapter_adapterinterface_ce) - Z_PARAM_OBJECT_OF_CLASS(result, zephir_get_internal_ce(SL("pdostatement"))) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(sqlStatement) - Z_PARAM_ZVAL_OR_NULL(bindParams) - Z_PARAM_ZVAL_OR_NULL(bindTypes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(2, 3, &connection, &result, &sqlStatement, &bindParams, &bindTypes); - if (!sqlStatement) { - sqlStatement = &sqlStatement_sub; - sqlStatement = &__$null; - } - if (!bindParams) { - bindParams = &bindParams_sub; - bindParams = &__$null; - } - if (!bindTypes) { - bindTypes = &bindTypes_sub; - bindTypes = &__$null; - } - zephir_update_property_zval(this_ptr, ZEND_STRL("connection"), connection); - zephir_update_property_zval(this_ptr, ZEND_STRL("pdoStatement"), result); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlStatement"), sqlStatement); - zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), bindParams); - zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), bindTypes); + RETURN_MEMBER(getThis(), "messages"); } -static PHP_METHOD(Phalcon_Db_Result_Pdo, dataSeek) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction, isManaged) { - long n = 0; + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; - zval *number_param = NULL, connection, pdo, sqlStatement, bindParams, statement, _0, _1$$4, _2$$4; - zend_long number, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&connection); - ZVAL_UNDEF(&pdo); - ZVAL_UNDEF(&sqlStatement); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&statement); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(number) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &number_param); - number = zephir_get_intval(number_param); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&connection, &_0); - ZEPHIR_CALL_METHOD(&pdo, &connection, "getinternalhandler", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("sqlStatement"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&sqlStatement, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&bindParams, &_0); - if (Z_TYPE_P(&bindParams) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&statement, &pdo, "prepare", NULL, 0, &sqlStatement); - zephir_check_call_status(); - if (Z_TYPE_P(&statement) == IS_OBJECT) { - zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1$$4, &connection, "executeprepared", NULL, 0, &statement, &bindParams, &_2$$4); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&statement, &_1$$4); - } - } else { - ZEPHIR_CALL_METHOD(&statement, &pdo, "query", NULL, 0, &sqlStatement); - zephir_check_call_status(); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("pdoStatement"), &statement); - n = -1; - number--; - while (1) { - if (!(n != number)) { - break; - } - ZEPHIR_CALL_METHOD(NULL, &statement, "fetch", &_3, 0); - zephir_check_call_status(); - n++; - } - ZEPHIR_MM_RESTORE(); + ZEPHIR_OBS_VAR(&_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC); + RETURN_MM_BOOL(Z_TYPE_P(&_0) == IS_OBJECT); } -static PHP_METHOD(Phalcon_Db_Result_Pdo, execute) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction, isValid) { zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; @@ -74876,319 +75228,214 @@ static PHP_METHOD(Phalcon_Db_Result_Pdo, execute) ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdoStatement"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "execute", NULL, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "isundertransaction", NULL, 0); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Result_Pdo, fetch) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction, rollback) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *fetchStyle = NULL, fetchStyle_sub, *cursorOrientation = NULL, cursorOrientation_sub, *cursorOffset = NULL, cursorOffset_sub, __$null, _0; + zval *rollbackMessage_param = NULL, *rollbackRecord = NULL, rollbackRecord_sub, __$null, manager, connection, _0, _1, _2$$4, _3$$7, _4$$7; + zval rollbackMessage; zval *this_ptr = getThis(); - ZVAL_UNDEF(&fetchStyle_sub); - ZVAL_UNDEF(&cursorOrientation_sub); - ZVAL_UNDEF(&cursorOffset_sub); + ZVAL_UNDEF(&rollbackMessage); + ZVAL_UNDEF(&rollbackRecord_sub); ZVAL_NULL(&__$null); + ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&connection); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$7); + ZVAL_UNDEF(&_4$$7); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 3) + ZEND_PARSE_PARAMETERS_START(0, 2) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(fetchStyle) - Z_PARAM_ZVAL_OR_NULL(cursorOrientation) - Z_PARAM_ZVAL_OR_NULL(cursorOffset) + Z_PARAM_STR_OR_NULL(rollbackMessage) + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(rollbackRecord, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 3, &fetchStyle, &cursorOrientation, &cursorOffset); - if (!fetchStyle) { - fetchStyle = &fetchStyle_sub; - fetchStyle = &__$null; - } - if (!cursorOrientation) { - cursorOrientation = &cursorOrientation_sub; - cursorOrientation = &__$null; + zephir_fetch_params(1, 0, 2, &rollbackMessage_param, &rollbackRecord); + if (!rollbackMessage_param) { + ZEPHIR_INIT_VAR(&rollbackMessage); + } else { + zephir_get_strval(&rollbackMessage, rollbackMessage_param); } - if (!cursorOffset) { - cursorOffset = &cursorOffset_sub; - cursorOffset = &__$null; + if (!rollbackRecord) { + rollbackRecord = &rollbackRecord_sub; + rollbackRecord = &__$null; } - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdoStatement"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "fetch", NULL, 0, fetchStyle, cursorOrientation, cursorOffset); + zephir_read_property(&_0, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&manager, &_0); + if (Z_TYPE_P(&manager) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(NULL, &manager, "notifyrollback", NULL, 0, this_ptr); + zephir_check_call_status(); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&connection, &_0); + ZEPHIR_CALL_METHOD(&_1, &connection, "rollback", NULL, 0); zephir_check_call_status(); - RETURN_MM(); + if (UNEXPECTED(zephir_is_true(&_1))) { + if (!(!(ZEPHIR_IS_EMPTY(&rollbackMessage)))) { + ZEPHIR_INIT_NVAR(&rollbackMessage); + ZVAL_STRING(&rollbackMessage, "Transaction aborted"); + } + if (Z_TYPE_P(rollbackRecord) == IS_OBJECT) { + zephir_update_property_zval(this_ptr, ZEND_STRL("rollbackRecord"), rollbackRecord); + } + zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("rollbackThrowException"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_2$$4)) { + ZEPHIR_INIT_VAR(&_3$$7); + object_init_ex(&_3$$7, phalcon_mvc_model_transaction_failed_ce); + zephir_read_property(&_4$$7, this_ptr, ZEND_STRL("rollbackRecord"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_3$$7, "__construct", NULL, 491, &rollbackMessage, &_4$$7); + zephir_check_call_status(); + zephir_throw_exception_debug(&_3$$7, "phalcon/Mvc/Model/Transaction.zep", 215); + ZEPHIR_MM_RESTORE(); + return; + } + } + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Db_Result_Pdo, fetchAll) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction, setIsNewTransaction) { - zend_bool _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *fetchStyle = NULL, fetchStyle_sub, *fetchArgument = NULL, fetchArgument_sub, *ctorArgs = NULL, ctorArgs_sub, __$null, pdoStatement, _0; + zval *isNew_param = NULL, __$true, __$false; + zend_bool isNew; zval *this_ptr = getThis(); - ZVAL_UNDEF(&fetchStyle_sub); - ZVAL_UNDEF(&fetchArgument_sub); - ZVAL_UNDEF(&ctorArgs_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&pdoStatement); - ZVAL_UNDEF(&_0); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 3) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(fetchStyle) - Z_PARAM_ZVAL_OR_NULL(fetchArgument) - Z_PARAM_ZVAL_OR_NULL(ctorArgs) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(isNew) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 3, &fetchStyle, &fetchArgument, &ctorArgs); - if (!fetchStyle) { - fetchStyle = &fetchStyle_sub; - fetchStyle = &__$null; - } - if (!fetchArgument) { - fetchArgument = &fetchArgument_sub; - fetchArgument = &__$null; - } - if (!ctorArgs) { - ctorArgs = &ctorArgs_sub; - ctorArgs = &__$null; - } + zephir_fetch_params_without_memory_grow(1, 0, &isNew_param); + isNew = zephir_get_boolval(isNew_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdoStatement"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&pdoStatement, &_0); - if (Z_TYPE_P(fetchStyle) != IS_LONG) { - ZEPHIR_RETURN_CALL_METHOD(&pdoStatement, "fetchall", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); - } - if (ZEPHIR_IS_LONG(fetchStyle, 8)) { - ZEPHIR_RETURN_CALL_METHOD(&pdoStatement, "fetchall", NULL, 0, fetchStyle, fetchArgument, ctorArgs); - zephir_check_call_status(); - RETURN_MM(); - } - _1 = ZEPHIR_IS_LONG(fetchStyle, 7); - if (!(_1)) { - _1 = ZEPHIR_IS_LONG(fetchStyle, 10); - } - if (_1) { - ZEPHIR_RETURN_CALL_METHOD(&pdoStatement, "fetchall", NULL, 0, fetchStyle, fetchArgument); - zephir_check_call_status(); - RETURN_MM(); + if (isNew) { + zephir_update_property_zval(this_ptr, ZEND_STRL("isNewTransaction"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("isNewTransaction"), &__$false); } - ZEPHIR_RETURN_CALL_METHOD(&pdoStatement, "fetchall", NULL, 0, fetchStyle); - zephir_check_call_status(); - RETURN_MM(); } -static PHP_METHOD(Phalcon_Db_Result_Pdo, fetchArray) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction, setRollbackOnAbort) { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval *rollbackOnAbort_param = NULL, __$true, __$false; + zend_bool rollbackOnAbort; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(rollbackOnAbort) + ZEND_PARSE_PARAMETERS_END(); +#endif - ZEPHIR_MM_GROW(); + zephir_fetch_params_without_memory_grow(1, 0, &rollbackOnAbort_param); + rollbackOnAbort = zephir_get_boolval(rollbackOnAbort_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdoStatement"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "fetch", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); + + if (rollbackOnAbort) { + zephir_update_property_zval(this_ptr, ZEND_STRL("rollbackOnAbort"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("rollbackOnAbort"), &__$false); + } } -static PHP_METHOD(Phalcon_Db_Result_Pdo, getInternalResult) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction, setRollbackedRecord) { + zval *record, record_sub; zval *this_ptr = getThis(); + ZVAL_UNDEF(&record_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(record, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "pdoStatement"); + zephir_fetch_params_without_memory_grow(1, 0, &record); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("rollbackRecord"), record); } -static PHP_METHOD(Phalcon_Db_Result_Pdo, numRows) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction, setTransactionManager) { - zend_bool _2$$3; - zval sqlStatement, rowCount, connection, type, pdoStatement, matches, result, row, _0, _1$$3, _3$$4, _4$$5, _5$$6, _6$$6, _7$$6, _8$$7, _9$$7, _10$$7, _11$$7; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval *manager, manager_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&sqlStatement); - ZVAL_UNDEF(&rowCount); - ZVAL_UNDEF(&connection); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&pdoStatement); - ZVAL_UNDEF(&matches); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&row); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_6$$6); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_8$$7); - ZVAL_UNDEF(&_9$$7); - ZVAL_UNDEF(&_10$$7); - ZVAL_UNDEF(&_11$$7); + ZVAL_UNDEF(&manager_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(manager, phalcon_mvc_model_transaction_managerinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif - ZEPHIR_MM_GROW(); + zephir_fetch_params_without_memory_grow(1, 0, &manager); - zephir_read_property(&_0, this_ptr, ZEND_STRL("rowCount"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&rowCount, &_0); - if (ZEPHIR_IS_FALSE_IDENTICAL(&rowCount)) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&connection, &_1$$3); - ZEPHIR_CALL_METHOD(&type, &connection, "gettype", NULL, 0); - zephir_check_call_status(); - _2$$3 = ZEPHIR_IS_STRING(&type, "mysql"); - if (!(_2$$3)) { - _2$$3 = ZEPHIR_IS_STRING(&type, "pgsql"); - } - if (_2$$3) { - zephir_read_property(&_3$$4, this_ptr, ZEND_STRL("pdoStatement"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&pdoStatement, &_3$$4); - ZEPHIR_CALL_METHOD(&rowCount, &pdoStatement, "rowcount", NULL, 0); - zephir_check_call_status(); - } - if (ZEPHIR_IS_FALSE_IDENTICAL(&rowCount)) { - zephir_read_property(&_4$$5, this_ptr, ZEND_STRL("sqlStatement"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&sqlStatement, &_4$$5); - if (!(zephir_start_with_str(&sqlStatement, SL("SELECT COUNT(*) ")))) { - ZEPHIR_INIT_VAR(&matches); - ZVAL_NULL(&matches); - ZEPHIR_INIT_VAR(&_5$$6); - ZVAL_STRING(&_5$$6, "/^SELECT\\s+(.*)/i"); - ZEPHIR_INIT_VAR(&_6$$6); - ZEPHIR_INIT_VAR(&_7$$6); - ZVAL_STRING(&_7$$6, "/^SELECT\\s+(.*)/i"); - zephir_preg_match(&_6$$6, &_7$$6, &sqlStatement, &matches, 0, 0 , 0 ); - if (zephir_is_true(&_6$$6)) { - zephir_array_fetch_long(&_8$$7, &matches, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Result/Pdo.zep", 309); - ZEPHIR_INIT_VAR(&_9$$7); - ZEPHIR_CONCAT_SVS(&_9$$7, "SELECT COUNT(*) \"numrows\" FROM (SELECT ", &_8$$7, ")"); - zephir_read_property(&_10$$7, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_11$$7, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&result, &connection, "query", NULL, 0, &_9$$7, &_10$$7, &_11$$7); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&row, &result, "fetch", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&rowCount); - zephir_array_fetch_string(&rowCount, &row, SL("numrows"), PH_NOISY, "phalcon/Db/Result/Pdo.zep", 315); - } - } else { - ZEPHIR_INIT_NVAR(&rowCount); - ZVAL_LONG(&rowCount, 1); - } - } - zephir_update_property_zval(this_ptr, ZEND_STRL("rowCount"), &rowCount); - } - RETURN_CCTOR(&rowCount); + + zephir_update_property_zval(this_ptr, ZEND_STRL("manager"), manager); } -static PHP_METHOD(Phalcon_Db_Result_Pdo, setFetchMode) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction, throwRollbackException) { - zend_bool _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *fetchMode_param = NULL, *colNoOrClassNameOrObject = NULL, colNoOrClassNameOrObject_sub, *ctorargs = NULL, ctorargs_sub, __$null, pdoStatement, _0, _2$$3, _3$$3, _4$$5, _5$$5, _6$$7, _7$$7; - zend_long fetchMode, ZEPHIR_LAST_CALL_STATUS; + zval *status_param = NULL, __$true, __$false; + zend_bool status; zval *this_ptr = getThis(); - ZVAL_UNDEF(&colNoOrClassNameOrObject_sub); - ZVAL_UNDEF(&ctorargs_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&pdoStatement); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_6$$7); - ZVAL_UNDEF(&_7$$7); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_LONG(fetchMode) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(colNoOrClassNameOrObject) - Z_PARAM_ZVAL_OR_NULL(ctorargs) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(status) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &fetchMode_param, &colNoOrClassNameOrObject, &ctorargs); - fetchMode = zephir_get_intval(fetchMode_param); - if (!colNoOrClassNameOrObject) { - colNoOrClassNameOrObject = &colNoOrClassNameOrObject_sub; - colNoOrClassNameOrObject = &__$null; - } - if (!ctorargs) { - ctorargs = &ctorargs_sub; - ctorargs = &__$null; - } + zephir_fetch_params_without_memory_grow(1, 0, &status_param); + status = zephir_get_boolval(status_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pdoStatement"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&pdoStatement, &_0); - _1 = fetchMode == 8; - if (!(_1)) { - _1 = fetchMode == 9; - } - if (_1) { - ZVAL_LONG(&_3$$3, fetchMode); - ZEPHIR_CALL_METHOD(&_2$$3, &pdoStatement, "setfetchmode", NULL, 0, &_3$$3, colNoOrClassNameOrObject, ctorargs); - zephir_check_call_status(); - if (!(zephir_is_true(&_2$$3))) { - RETURN_MM_BOOL(0); - } - } else if (fetchMode == 7) { - ZVAL_LONG(&_5$$5, fetchMode); - ZEPHIR_CALL_METHOD(&_4$$5, &pdoStatement, "setfetchmode", NULL, 0, &_5$$5, colNoOrClassNameOrObject); - zephir_check_call_status(); - if (!(zephir_is_true(&_4$$5))) { - RETURN_MM_BOOL(0); - } + if (status) { + zephir_update_property_zval(this_ptr, ZEND_STRL("rollbackThrowException"), &__$true); } else { - ZVAL_LONG(&_7$$7, fetchMode); - ZEPHIR_CALL_METHOD(&_6$$7, &pdoStatement, "setfetchmode", NULL, 0, &_7$$7); - zephir_check_call_status(); - if (!(zephir_is_true(&_6$$7))) { - RETURN_MM_BOOL(0); - } + zephir_update_property_zval(this_ptr, ZEND_STRL("rollbackThrowException"), &__$false); } - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, fetchMode); - zephir_update_property_zval(this_ptr, ZEND_STRL("fetchMode"), &_0); - RETURN_MM_BOOL(1); + RETURN_THISW(); } -zend_object *zephir_init_properties_Phalcon_Db_Result_Pdo(zend_class_entry *class_type) +zend_object *zephir_init_properties_Phalcon_Mvc_Model_Transaction(zend_class_entry *class_type) { - zval _0, _2, _1$$3, _3$$4; + zval _0, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); ZEPHIR_MM_GROW(); @@ -75196,17 +75443,11 @@ zend_object *zephir_init_properties_Phalcon_Db_Result_Pdo(zend_class_entry *clas { zval local_this_ptr, *this_ptr = &local_this_ptr; ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); if (Z_TYPE_P(&_0) == IS_NULL) { ZEPHIR_INIT_VAR(&_1$$3); array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("bindTypes"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("bindParams"), &_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("messages"), &_1$$3); } ZEPHIR_MM_RESTORE(); return Z_OBJ_P(this_ptr); @@ -75223,91 +75464,128 @@ zend_object *zephir_init_properties_Phalcon_Db_Result_Pdo(zend_class_entry *clas -ZEPHIR_INIT_CLASS(Phalcon_Di_AbstractInjectionAware) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_TransactionInterface) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Di, AbstractInjectionAware, phalcon, di_abstractinjectionaware, phalcon_di_abstractinjectionaware_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model, TransactionInterface, phalcon, mvc_model_transactioninterface, phalcon_mvc_model_transactioninterface_method_entry); - zend_declare_property_null(phalcon_di_abstractinjectionaware_ce, SL("container"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_di_abstractinjectionaware_ce, 1, phalcon_di_injectionawareinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Di_AbstractInjectionAware, getDI) -{ - zval *this_ptr = getThis(); - - +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, begin); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, commit); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, getConnection); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, getMessages); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, isManaged); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, isValid); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, rollback); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, setIsNewTransaction); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, setRollbackOnAbort); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, setRollbackedRecord); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, setTransactionManager); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, throwRollbackException); - RETURN_MEMBER(getThis(), "container"); -} -static PHP_METHOD(Phalcon_Di_AbstractInjectionAware, setDI) -{ - zval *container, container_sub; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&container_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) - ZEND_PARSE_PARAMETERS_END(); +#ifdef HAVE_CONFIG_H #endif - zephir_fetch_params_without_memory_grow(1, 0, &container); - - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); -} +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_ValidationFailed) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model, ValidationFailed, phalcon, mvc_model_validationfailed, phalcon_mvc_model_exception_ce, phalcon_mvc_model_validationfailed_method_entry, 0); + zend_declare_property_null(phalcon_mvc_model_validationfailed_ce, SL("messages"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_validationfailed_ce, SL("model"), ZEND_ACC_PROTECTED); + phalcon_mvc_model_validationfailed_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_ValidationFailed; -#ifdef HAVE_CONFIG_H -#endif + return SUCCESS; +} +static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval validationMessages; + zval *model, model_sub, *validationMessages_param = NULL, messageStr, message; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&messageStr); + ZVAL_UNDEF(&message); + ZVAL_UNDEF(&validationMessages); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_ARRAY(validationMessages) + ZEND_PARSE_PARAMETERS_END(); +#endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &model, &validationMessages_param); + ZEPHIR_OBS_COPY_OR_DUP(&validationMessages, validationMessages_param); -ZEPHIR_INIT_CLASS(Phalcon_Di_DiInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Di, DiInterface, phalcon, di_diinterface, phalcon_di_diinterface_method_entry); - zend_class_implements(phalcon_di_diinterface_ce, 1, zend_ce_arrayaccess); - return SUCCESS; + if (zephir_fast_count_int(&validationMessages) > 0) { + ZEPHIR_OBS_VAR(&message); + zephir_array_fetch_long(&message, &validationMessages, 0, PH_NOISY, "phalcon/Mvc/Model/ValidationFailed.zep", 48); + ZEPHIR_CALL_METHOD(&messageStr, &message, "getmessage", NULL, 0); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&messageStr); + ZVAL_STRING(&messageStr, "Validation failed"); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("model"), model); + zephir_update_property_zval(this_ptr, ZEND_STRL("messages"), &validationMessages); + ZEPHIR_CALL_PARENT(NULL, phalcon_mvc_model_validationfailed_ce, getThis(), "__construct", NULL, 0, &messageStr); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, attempt); -ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, get); -ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, getDefault); -ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, getRaw); -ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, getService); -ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, getServices); -ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, getShared); -ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, has); -ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, remove); -ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, reset); -ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, set); -ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, setDefault); -ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, setService); -ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, setShared); +static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, getMessages) +{ + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H -#endif + RETURN_MEMBER(getThis(), "messages"); +} +static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, getModel) +{ + zval *this_ptr = getThis(); + RETURN_MEMBER(getThis(), "model"); +} -ZEPHIR_INIT_CLASS(Phalcon_Di_Exception) +zend_object *zephir_init_properties_Phalcon_Mvc_Model_ValidationFailed(zend_class_entry *class_type) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di, Exception, phalcon, di_exception, phalcon_exception_ce, NULL, 0); + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + - return SUCCESS; + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("messages"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } } @@ -75320,25695 +75598,15133 @@ ZEPHIR_INIT_CLASS(Phalcon_Di_Exception) -ZEPHIR_INIT_CLASS(Phalcon_Di_FactoryDefault) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Query_Builder) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di, FactoryDefault, phalcon, di_factorydefault, phalcon_di_ce, phalcon_di_factorydefault_method_entry, 0); + ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model\\Query, Builder, phalcon, mvc_model_query_builder, phalcon_mvc_model_query_builder_method_entry, 0); + + zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("bindParams"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("bindTypes"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("columns"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("conditions"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("container"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("distinct"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_model_query_builder_ce, SL("forUpdate"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("group"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("having"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_mvc_model_query_builder_ce, SL("hiddenParamNumber"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("joins"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("limit"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("models"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_mvc_model_query_builder_ce, SL("offset"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("order"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_model_query_builder_ce, SL("sharedLock"), 0, ZEND_ACC_PROTECTED); + phalcon_mvc_model_query_builder_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_Query_Builder; + zend_class_implements(phalcon_mvc_model_query_builder_ce, 1, phalcon_mvc_model_query_builderinterface_ce); + zend_class_implements(phalcon_mvc_model_query_builder_ce, 1, phalcon_di_injectionawareinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Di_FactoryDefault, __construct) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, __construct) { - zval _1; - zval filter, _2, _3, _4, _5; + zend_bool _7$$38; + zval mergedConditions, mergedParams, mergedTypes; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; + zval *params = NULL, params_sub, *container = NULL, container_sub, __$null, conditions, columns, groupClause, havingClause, limitClause, forUpdate, sharedLock, orderClause, offsetClause, joinsClause, singleConditionArray, limit, offset, fromClause, singleCondition, singleParams, singleTypes, distinct, bind, bindTypes, *_0$$7, _1$$7, _6$$7, _2$$11, _3$$12, _4$$16, _5$$17; zval *this_ptr = getThis(); - ZVAL_UNDEF(&filter); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_PARENT(NULL, phalcon_di_factorydefault_ce, getThis(), "__construct", &_0, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&filter); - object_init_ex(&filter, phalcon_filter_filterfactory_ce); - if (zephir_has_constructor(&filter)) { - ZEPHIR_CALL_METHOD(NULL, &filter, "__construct", NULL, 0); - zephir_check_call_status(); + ZVAL_UNDEF(¶ms_sub); + ZVAL_UNDEF(&container_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&groupClause); + ZVAL_UNDEF(&havingClause); + ZVAL_UNDEF(&limitClause); + ZVAL_UNDEF(&forUpdate); + ZVAL_UNDEF(&sharedLock); + ZVAL_UNDEF(&orderClause); + ZVAL_UNDEF(&offsetClause); + ZVAL_UNDEF(&joinsClause); + ZVAL_UNDEF(&singleConditionArray); + ZVAL_UNDEF(&limit); + ZVAL_UNDEF(&offset); + ZVAL_UNDEF(&fromClause); + ZVAL_UNDEF(&singleCondition); + ZVAL_UNDEF(&singleParams); + ZVAL_UNDEF(&singleTypes); + ZVAL_UNDEF(&distinct); + ZVAL_UNDEF(&bind); + ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&_1$$7); + ZVAL_UNDEF(&_6$$7); + ZVAL_UNDEF(&_2$$11); + ZVAL_UNDEF(&_3$$12); + ZVAL_UNDEF(&_4$$16); + ZVAL_UNDEF(&_5$$17); + ZVAL_UNDEF(&mergedConditions); + ZVAL_UNDEF(&mergedParams); + ZVAL_UNDEF(&mergedTypes); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 2) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(params) + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(container, phalcon_di_diinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 2, ¶ms, &container); + if (!params) { + params = ¶ms_sub; + params = &__$null; + } + if (!container) { + container = &container_sub; + container = &__$null; } - ZEPHIR_INIT_VAR(&_1); - zephir_create_array(&_1, 19, 0); - ZEPHIR_INIT_VAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Annotations\\Adapter\\Memory"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("annotations"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Assets\\Manager"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("assets"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Crypt"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("crypt"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Http\\Response\\Cookies"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("cookies"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Mvc\\Dispatcher"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("dispatcher"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Escaper"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("escaper"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Events\\Manager"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("eventsManager"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Flash\\Direct"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("flash"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Flash\\Session"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("flashSession"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_CALL_METHOD(&_5, &filter, "newinstance", NULL, 113); - zephir_check_call_status(); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_5, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("filter"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Mvc\\Model\\Manager"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("modelsManager"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Mvc\\Model\\MetaData\\Memory"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("modelsMetadata"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Http\\Request"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("request"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Http\\Response"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("response"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Mvc\\Router"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("router"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Security"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("security"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Tag"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("tag"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Mvc\\Model\\Transaction\\Manager"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("transactionManager"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Url"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("url"), &_2, PH_COPY | PH_SEPARATE); - zephir_update_property_zval(this_ptr, ZEND_STRL("services"), &_1); + + if (Z_TYPE_P(params) == IS_ARRAY) { + ZEPHIR_OBS_VAR(&conditions); + if (zephir_array_isset_long_fetch(&conditions, params, 0, 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("conditions"), &conditions); + } else { + ZEPHIR_OBS_NVAR(&conditions); + if (zephir_array_isset_string_fetch(&conditions, params, SL("conditions"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("conditions"), &conditions); + } + } + if (Z_TYPE_P(&conditions) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&mergedConditions); + array_init(&mergedConditions); + ZEPHIR_INIT_VAR(&mergedParams); + array_init(&mergedParams); + ZEPHIR_INIT_VAR(&mergedTypes); + array_init(&mergedTypes); + zephir_is_iterable(&conditions, 0, "phalcon/Mvc/Model/Query/Builder.zep", 190); + if (Z_TYPE_P(&conditions) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&conditions), _0$$7) + { + ZEPHIR_INIT_NVAR(&singleConditionArray); + ZVAL_COPY(&singleConditionArray, _0$$7); + if (Z_TYPE_P(&singleConditionArray) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&singleCondition); + zephir_array_isset_long_fetch(&singleCondition, &singleConditionArray, 0, 0); + ZEPHIR_OBS_NVAR(&singleParams); + zephir_array_isset_long_fetch(&singleParams, &singleConditionArray, 1, 0); + ZEPHIR_OBS_NVAR(&singleTypes); + zephir_array_isset_long_fetch(&singleTypes, &singleConditionArray, 2, 0); + if (Z_TYPE_P(&singleCondition) == IS_STRING) { + zephir_array_append(&mergedConditions, &singleCondition, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 177); + } + if (Z_TYPE_P(&singleParams) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&_2$$11); + zephir_add_function(&_2$$11, &mergedParams, &singleParams); + ZEPHIR_CPY_WRT(&mergedParams, &_2$$11); + } + if (Z_TYPE_P(&singleTypes) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&_3$$12); + zephir_add_function(&_3$$12, &mergedTypes, &singleTypes); + ZEPHIR_CPY_WRT(&mergedTypes, &_3$$12); + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &conditions, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1$$7, &conditions, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1$$7)) { + break; + } + ZEPHIR_CALL_METHOD(&singleConditionArray, &conditions, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&singleConditionArray) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&singleCondition); + zephir_array_isset_long_fetch(&singleCondition, &singleConditionArray, 0, 0); + ZEPHIR_OBS_NVAR(&singleParams); + zephir_array_isset_long_fetch(&singleParams, &singleConditionArray, 1, 0); + ZEPHIR_OBS_NVAR(&singleTypes); + zephir_array_isset_long_fetch(&singleTypes, &singleConditionArray, 2, 0); + if (Z_TYPE_P(&singleCondition) == IS_STRING) { + zephir_array_append(&mergedConditions, &singleCondition, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 177); + } + if (Z_TYPE_P(&singleParams) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&_4$$16); + zephir_add_function(&_4$$16, &mergedParams, &singleParams); + ZEPHIR_CPY_WRT(&mergedParams, &_4$$16); + } + if (Z_TYPE_P(&singleTypes) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&_5$$17); + zephir_add_function(&_5$$17, &mergedTypes, &singleTypes); + ZEPHIR_CPY_WRT(&mergedTypes, &_5$$17); + } + } + ZEPHIR_CALL_METHOD(NULL, &conditions, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&singleConditionArray); + ZEPHIR_INIT_VAR(&_6$$7); + zephir_fast_join_str(&_6$$7, SL(" AND "), &mergedConditions); + zephir_update_property_zval(this_ptr, ZEND_STRL("conditions"), &_6$$7); + zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &mergedParams); + zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &mergedTypes); + } + ZEPHIR_OBS_VAR(&bind); + if (zephir_array_isset_string_fetch(&bind, params, SL("bind"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &bind); + } + ZEPHIR_OBS_VAR(&bindTypes); + if (zephir_array_isset_string_fetch(&bindTypes, params, SL("bindTypes"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &bindTypes); + } + ZEPHIR_OBS_VAR(&distinct); + if (zephir_array_isset_string_fetch(&distinct, params, SL("distinct"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("distinct"), &distinct); + } + ZEPHIR_OBS_VAR(&fromClause); + if (zephir_array_isset_string_fetch(&fromClause, params, SL("models"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("models"), &fromClause); + } + ZEPHIR_OBS_VAR(&columns); + if (zephir_array_isset_string_fetch(&columns, params, SL("columns"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("columns"), &columns); + } + ZEPHIR_OBS_VAR(&joinsClause); + if (zephir_array_isset_string_fetch(&joinsClause, params, SL("joins"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("joins"), &joinsClause); + } + ZEPHIR_OBS_VAR(&groupClause); + if (zephir_array_isset_string_fetch(&groupClause, params, SL("group"), 0)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "groupby", NULL, 0, &groupClause); + zephir_check_call_status(); + } + ZEPHIR_OBS_VAR(&havingClause); + if (zephir_array_isset_string_fetch(&havingClause, params, SL("having"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("having"), &havingClause); + } + ZEPHIR_OBS_VAR(&orderClause); + if (zephir_array_isset_string_fetch(&orderClause, params, SL("order"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("order"), &orderClause); + } + ZEPHIR_OBS_VAR(&limitClause); + if (zephir_array_isset_string_fetch(&limitClause, params, SL("limit"), 0)) { + if (Z_TYPE_P(&limitClause) == IS_ARRAY) { + ZEPHIR_OBS_VAR(&limit); + if (zephir_array_isset_long_fetch(&limit, &limitClause, 0, 0)) { + if (Z_TYPE_P(&limit) == IS_LONG) { + zephir_update_property_zval(this_ptr, ZEND_STRL("limit"), &limit); + } + ZEPHIR_OBS_VAR(&offset); + if (zephir_array_isset_long_fetch(&offset, &limitClause, 1, 0)) { + if (Z_TYPE_P(&offset) == IS_LONG) { + zephir_update_property_zval(this_ptr, ZEND_STRL("offset"), &offset); + } + } + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("limit"), &limitClause); + } + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("limit"), &limitClause); + } + } + if (zephir_array_isset_string_fetch(&offsetClause, params, SL("offset"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("offset"), &offsetClause); + } + if (zephir_array_isset_string_fetch(&forUpdate, params, SL("for_update"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("forUpdate"), &forUpdate); + } + if (zephir_array_isset_string_fetch(&sharedLock, params, SL("shared_lock"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("sharedLock"), &sharedLock); + } + } else { + _7$$38 = Z_TYPE_P(params) == IS_STRING; + if (_7$$38) { + _7$$38 = !ZEPHIR_IS_STRING_IDENTICAL(params, ""); + } + if (_7$$38) { + zephir_update_property_zval(this_ptr, ZEND_STRL("conditions"), params); + } + } + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); ZEPHIR_MM_RESTORE(); } +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, addFrom) +{ + zend_bool _2; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *model_param = NULL, *alias_param = NULL, models, currentModel, _0, _1$$4; + zval model, alias; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&alias); + ZVAL_UNDEF(&models); + ZVAL_UNDEF(¤tModel); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(model) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(alias) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &model_param, &alias_param); + zephir_get_strval(&model, model_param); + if (!alias_param) { + ZEPHIR_INIT_VAR(&alias); + } else { + zephir_get_strval(&alias, alias_param); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("models"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&models, &_0); + if (Z_TYPE_P(&models) != IS_ARRAY) { + if (Z_TYPE_P(&models) != IS_NULL) { + ZEPHIR_CPY_WRT(¤tModel, &models); + ZEPHIR_INIT_VAR(&_1$$4); + zephir_create_array(&_1$$4, 1, 0); + zephir_array_fast_append(&_1$$4, ¤tModel); + ZEPHIR_CPY_WRT(&models, &_1$$4); + } else { + ZEPHIR_INIT_NVAR(&models); + array_init(&models); + } + } + _2 = 1 == 1; + if (_2) { + _2 = !ZEPHIR_IS_NULL(&alias); + } + if (_2) { + zephir_array_update_zval(&models, &alias, &model, PH_COPY | PH_SEPARATE); + } else { + zephir_array_append(&models, &model, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 345); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("models"), &models); + RETURN_THIS(); +} -ZEPHIR_INIT_CLASS(Phalcon_Di_Injectable) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, andHaving) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Di, Injectable, phalcon, di_injectable, phalcon_di_injectable_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval bindParams, bindTypes; + zval *conditions_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, currentConditions, _0$$3; + zval conditions; + zval *this_ptr = getThis(); - zend_declare_property_null(phalcon_di_injectable_ce, SL("container"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_di_injectable_ce, 1, phalcon_di_injectionawareinterface_ce); - return SUCCESS; + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(¤tConditions); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(conditions) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(bindParams) + Z_PARAM_ARRAY(bindTypes) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &conditions_param, &bindParams_param, &bindTypes_param); + if (UNEXPECTED(Z_TYPE_P(conditions_param) != IS_STRING && Z_TYPE_P(conditions_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'conditions' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(conditions_param) == IS_STRING)) { + zephir_get_strval(&conditions, conditions_param); + } else { + ZEPHIR_INIT_VAR(&conditions); + } + if (!bindParams_param) { + ZEPHIR_INIT_VAR(&bindParams); + array_init(&bindParams); + } else { + zephir_get_arrval(&bindParams, bindParams_param); + } + if (!bindTypes_param) { + ZEPHIR_INIT_VAR(&bindTypes); + array_init(&bindTypes); + } else { + zephir_get_arrval(&bindTypes, bindTypes_param); + } + + + ZEPHIR_OBS_VAR(¤tConditions); + zephir_read_property(¤tConditions, this_ptr, ZEND_STRL("having"), PH_NOISY_CC); + if (zephir_is_true(¤tConditions)) { + ZEPHIR_INIT_VAR(&_0$$3); + ZEPHIR_CONCAT_SVSVS(&_0$$3, "(", ¤tConditions, ") AND (", &conditions, ")"); + zephir_get_strval(&conditions, &_0$$3); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "having", NULL, 0, &conditions, &bindParams, &bindTypes); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Di_Injectable, __get) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, andWhere) { - zval _2$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *propertyName_param = NULL, container, service, _0, _1$$4, _3$$4, _4$$4; - zval propertyName, _5; + zval bindParams, bindTypes; + zval *conditions_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, currentConditions, _0$$3; + zval conditions; zval *this_ptr = getThis(); - ZVAL_UNDEF(&propertyName); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&service); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(¤tConditions); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(propertyName) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(conditions) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(bindParams) + Z_PARAM_ARRAY(bindTypes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &propertyName_param); - if (UNEXPECTED(Z_TYPE_P(propertyName_param) != IS_STRING && Z_TYPE_P(propertyName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'propertyName' must be of the type string")); + zephir_fetch_params(1, 1, 2, &conditions_param, &bindParams_param, &bindTypes_param); + if (UNEXPECTED(Z_TYPE_P(conditions_param) != IS_STRING && Z_TYPE_P(conditions_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'conditions' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(propertyName_param) == IS_STRING)) { - zephir_get_strval(&propertyName, propertyName_param); + if (EXPECTED(Z_TYPE_P(conditions_param) == IS_STRING)) { + zephir_get_strval(&conditions, conditions_param); } else { - ZEPHIR_INIT_VAR(&propertyName); + ZEPHIR_INIT_VAR(&conditions); + } + if (!bindParams_param) { + ZEPHIR_INIT_VAR(&bindParams); + array_init(&bindParams); + } else { + zephir_get_arrval(&bindParams, bindParams_param); + } + if (!bindTypes_param) { + ZEPHIR_INIT_VAR(&bindTypes); + array_init(&bindTypes); + } else { + zephir_get_arrval(&bindTypes, bindTypes_param); } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getdi", NULL, 0); + ZEPHIR_OBS_VAR(¤tConditions); + zephir_read_property(¤tConditions, this_ptr, ZEND_STRL("conditions"), PH_NOISY_CC); + if (zephir_is_true(¤tConditions)) { + ZEPHIR_INIT_VAR(&_0$$3); + ZEPHIR_CONCAT_SVSVS(&_0$$3, "(", ¤tConditions, ") AND (", &conditions, ")"); + zephir_get_strval(&conditions, &_0$$3); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "where", NULL, 0, &conditions, &bindParams, &bindTypes); zephir_check_call_status(); - ZEPHIR_CPY_WRT(&container, &_0); - if (ZEPHIR_IS_STRING(&propertyName, "di")) { - zephir_update_property_zval(this_ptr, ZEND_STRL("di"), &container); - RETURN_CCTOR(&container); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, autoescape) +{ + zend_bool _0, _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *identifier_param = NULL; + zval identifier; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&identifier); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(identifier) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &identifier_param); + zephir_get_strval(&identifier, identifier_param); + + + _0 = zephir_memnstr_str(&identifier, SL("["), "phalcon/Mvc/Model/Query/Builder.zep", 419); + if (!(_0)) { + _0 = zephir_memnstr_str(&identifier, SL("."), "phalcon/Mvc/Model/Query/Builder.zep", 419); } - if (ZEPHIR_IS_STRING(&propertyName, "persistent")) { - ZEPHIR_INIT_VAR(&_2$$4); - zephir_create_array(&_2$$4, 1, 0); - ZEPHIR_INIT_VAR(&_3$$4); - zephir_get_class(&_3$$4, this_ptr, 0); - zephir_array_fast_append(&_2$$4, &_3$$4); - ZEPHIR_INIT_NVAR(&_3$$4); - ZVAL_STRING(&_3$$4, "sessionBag"); - ZEPHIR_CALL_METHOD(&_1$$4, &container, "get", NULL, 0, &_3$$4, &_2$$4); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("persistent"), &_1$$4); - ZEPHIR_OBS_VAR(&_4$$4); - zephir_read_property(&_4$$4, this_ptr, ZEND_STRL("persistent"), PH_NOISY_CC); - RETURN_CCTOR(&_4$$4); + _1 = _0; + if (!(_1)) { + _1 = zephir_is_numeric(&identifier); } - ZEPHIR_CALL_METHOD(&_0, &container, "has", NULL, 0, &propertyName); - zephir_check_call_status(); - if (zephir_is_true(&_0)) { - ZEPHIR_CALL_METHOD(&service, &container, "getshared", NULL, 0, &propertyName); - zephir_check_call_status(); - zephir_update_property_zval_zval(this_ptr, &propertyName, &service); - RETURN_CCTOR(&service); + if (_1) { + RETURN_CTOR(&identifier); } - ZEPHIR_INIT_VAR(&_5); - ZEPHIR_CONCAT_SV(&_5, "Access to undefined property ", &propertyName); - ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_5); - zephir_check_call_status(); - RETURN_MM_NULL(); + ZEPHIR_CONCAT_SVS(return_value, "[", &identifier, "]"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Di_Injectable, __isset) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, betweenHaving) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, _0; - zval name; + zval *expr_param = NULL, *minimum, minimum_sub, *maximum, maximum_sub, *operator_param = NULL, _0; + zval expr, operator; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&operator); + ZVAL_UNDEF(&minimum_sub); + ZVAL_UNDEF(&maximum_sub); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_START(3, 4) + Z_PARAM_STR(expr) + Z_PARAM_ZVAL(minimum) + Z_PARAM_ZVAL(maximum) + Z_PARAM_OPTIONAL + Z_PARAM_STR(operator) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + zephir_fetch_params(1, 3, 1, &expr_param, &minimum, &maximum, &operator_param); + if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); + if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { + zephir_get_strval(&expr, expr_param); } else { - ZEPHIR_INIT_VAR(&name); + ZEPHIR_INIT_VAR(&expr); + } + if (!operator_param) { + ZEPHIR_INIT_VAR(&operator); + ZVAL_STRING(&operator, "and"); + } else { + if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { + zephir_get_strval(&operator, operator_param); + } else { + ZEPHIR_INIT_VAR(&operator); + } } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getdi", NULL, 0); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&_0, "has", NULL, 0, &name); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "Having"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "conditionbetween", NULL, 0, &_0, &operator, &expr, minimum, maximum); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Di_Injectable, getDI) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, betweenWhere) { - zval container, _0, _2$$4, _3$$4, _5$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL, *_4 = NULL; + zval *expr_param = NULL, *minimum, minimum_sub, *maximum, maximum_sub, *operator_param = NULL, _0; + zval expr, operator; zval *this_ptr = getThis(); - ZVAL_UNDEF(&container); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&operator); + ZVAL_UNDEF(&minimum_sub); + ZVAL_UNDEF(&maximum_sub); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 4) + Z_PARAM_STR(expr) + Z_PARAM_ZVAL(minimum) + Z_PARAM_ZVAL(maximum) + Z_PARAM_OPTIONAL + Z_PARAM_STR(operator) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - if (Z_TYPE_P(&container) != IS_OBJECT) { - ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_1, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_2$$4); - object_init_ex(&_2$$4, phalcon_di_exception_ce); - ZEPHIR_INIT_VAR(&_5$$4); - ZVAL_STRING(&_5$$4, "internal services"); - ZEPHIR_CALL_CE_STATIC(&_3$$4, phalcon_di_exception_ce, "containerservicenotfound", &_4, 0, &_5$$4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_2$$4, "__construct", NULL, 8, &_3$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_2$$4, "phalcon/Di/Injectable.zep", 124); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setdi", NULL, 0, &container); - zephir_check_call_status(); + zephir_fetch_params(1, 3, 1, &expr_param, &minimum, &maximum, &operator_param); + if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); + RETURN_MM_NULL(); } - RETURN_CCTOR(&container); + if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { + zephir_get_strval(&expr, expr_param); + } else { + ZEPHIR_INIT_VAR(&expr); + } + if (!operator_param) { + ZEPHIR_INIT_VAR(&operator); + ZVAL_STRING(&operator, "and"); + } else { + if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { + zephir_get_strval(&operator, operator_param); + } else { + ZEPHIR_INIT_VAR(&operator); + } + } + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "Where"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "conditionbetween", NULL, 0, &_0, &operator, &expr, minimum, maximum); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Di_Injectable, setDI) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, columns) { - zval *container, container_sub; + zval *columns, columns_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&container_sub); + ZVAL_UNDEF(&columns_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + Z_PARAM_ZVAL(columns) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &container); + zephir_fetch_params_without_memory_grow(1, 0, &columns); - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); + zephir_update_property_zval(this_ptr, ZEND_STRL("columns"), columns); + RETURN_THISW(); } +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, distinct) +{ + zval *distinct, distinct_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&distinct_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(distinct) + ZEND_PARSE_PARAMETERS_END(); +#endif + + zephir_fetch_params_without_memory_grow(1, 0, &distinct); -#ifdef HAVE_CONFIG_H + zephir_update_property_zval(this_ptr, ZEND_STRL("distinct"), distinct); + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, forUpdate) +{ + zval *forUpdate_param = NULL, __$true, __$false; + zend_bool forUpdate; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(forUpdate) + ZEND_PARSE_PARAMETERS_END(); #endif + zephir_fetch_params_without_memory_grow(1, 0, &forUpdate_param); + forUpdate = zephir_get_boolval(forUpdate_param); + if (forUpdate) { + zephir_update_property_zval(this_ptr, ZEND_STRL("forUpdate"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("forUpdate"), &__$false); + } + RETURN_THISW(); +} -ZEPHIR_INIT_CLASS(Phalcon_Di_InjectionAwareInterface) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, from) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Di, InjectionAwareInterface, phalcon, di_injectionawareinterface, phalcon_di_injectionawareinterface_method_entry); + zval *models, models_sub; + zval *this_ptr = getThis(); - return SUCCESS; + ZVAL_UNDEF(&models_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(models) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &models); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("models"), models); + RETURN_THISW(); } -ZEPHIR_DOC_METHOD(Phalcon_Di_InjectionAwareInterface, setDI); -ZEPHIR_DOC_METHOD(Phalcon_Di_InjectionAwareInterface, getDI); +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getBindParams) +{ + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H -#endif + RETURN_MEMBER(getThis(), "bindParams"); +} +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getBindTypes) +{ + zval *this_ptr = getThis(); + RETURN_MEMBER(getThis(), "bindTypes"); +} -ZEPHIR_INIT_CLASS(Phalcon_Di_Service) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getColumns) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Di, Service, phalcon, di_service, phalcon_di_service_method_entry, 0); + zval *this_ptr = getThis(); - zend_declare_property_null(phalcon_di_service_ce, SL("definition"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_di_service_ce, SL("resolved"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_di_service_ce, SL("shared"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_di_service_ce, SL("sharedInstance"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_di_service_ce, 1, phalcon_di_serviceinterface_ce); - return SUCCESS; + + + RETURN_MEMBER(getThis(), "columns"); } -static PHP_METHOD(Phalcon_Di_Service, __construct) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getDI) { - zend_bool shared; - zval *definition, definition_sub, *shared_param = NULL, __$true, __$false; zval *this_ptr = getThis(); - ZVAL_UNDEF(&definition_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(definition) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(shared) - ZEND_PARSE_PARAMETERS_END(); -#endif - zephir_fetch_params_without_memory_grow(1, 1, &definition, &shared_param); - if (!shared_param) { - shared = 0; - } else { - shared = zephir_get_boolval(shared_param); - } + RETURN_MEMBER(getThis(), "container"); +} +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getDistinct) +{ + zval *this_ptr = getThis(); - zephir_update_property_zval(this_ptr, ZEND_STRL("definition"), definition); - if (shared) { - zephir_update_property_zval(this_ptr, ZEND_STRL("shared"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("shared"), &__$false); - } + + + RETURN_MEMBER(getThis(), "distinct"); } -static PHP_METHOD(Phalcon_Di_Service, getDefinition) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getFrom) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "definition"); + RETURN_MEMBER(getThis(), "models"); } -static PHP_METHOD(Phalcon_Di_Service, getParameter) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getGroupBy) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *position_param = NULL, definition, arguments, parameter, _0; - zend_long position; zval *this_ptr = getThis(); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&arguments); - ZVAL_UNDEF(¶meter); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(position) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &position_param); - position = zephir_get_intval(position_param); + RETURN_MEMBER(getThis(), "group"); +} +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getHaving) +{ + zval *this_ptr = getThis(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("definition"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&definition, &_0); - if (UNEXPECTED(Z_TYPE_P(&definition) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Definition must be an array to obtain its parameters", "phalcon/Di/Service.zep", 82); - return; - } - if (zephir_array_isset_string_fetch(&arguments, &definition, SL("arguments"), 1)) { - if (zephir_array_isset_long_fetch(¶meter, &arguments, position, 1)) { - RETURN_CTOR(¶meter); - } - } - RETURN_MM_NULL(); + + + RETURN_MEMBER(getThis(), "having"); } -static PHP_METHOD(Phalcon_Di_Service, isResolved) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getJoins) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "resolved"); + RETURN_MEMBER(getThis(), "joins"); } -static PHP_METHOD(Phalcon_Di_Service, isShared) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getLimit) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "shared"); + RETURN_MEMBER(getThis(), "limit"); } -static PHP_METHOD(Phalcon_Di_Service, resolve) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getModels) { - zend_class_entry *_4$$14; - zend_bool found = 0, _2$$7; + zend_bool _1; + zval models, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *parameters = NULL, parameters_sub, *container = NULL, container_sub, __$true, __$false, __$null, shared, definition, sharedInstance, instance, builder, _0, _1$$3, _3$$14, _5$$21; + zephir_fcall_cache_entry *_2 = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(¶meters_sub); - ZVAL_UNDEF(&container_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&shared); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&sharedInstance); - ZVAL_UNDEF(&instance); - ZVAL_UNDEF(&builder); + ZVAL_UNDEF(&models); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$14); - ZVAL_UNDEF(&_5$$21); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(parameters) - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(container, phalcon_di_diinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, ¶meters, &container); - if (!parameters) { - parameters = ¶meters_sub; - parameters = &__$null; + + zephir_read_property(&_0, this_ptr, ZEND_STRL("models"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&models, &_0); + _1 = Z_TYPE_P(&models) == IS_ARRAY; + if (_1) { + _1 = zephir_fast_count_int(&models) == 1; } - if (!container) { - container = &container_sub; - container = &__$null; + if (_1) { + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_helper_arr_ce, "first", &_2, 264, &models); + zephir_check_call_status(); + RETURN_MM(); } + RETURN_CCTOR(&models); +} +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getOffset) +{ + zval *this_ptr = getThis(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("shared"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&shared, &_0); - if (zephir_is_true(&shared)) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("sharedInstance"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&sharedInstance, &_1$$3); - if (Z_TYPE_P(&sharedInstance) != IS_NULL) { - RETURN_CCTOR(&sharedInstance); - } - } - found = 1; - ZEPHIR_INIT_VAR(&instance); - ZVAL_NULL(&instance); - zephir_read_property(&_0, this_ptr, ZEND_STRL("definition"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&definition, &_0); - if (Z_TYPE_P(&definition) == IS_STRING) { - if (Z_TYPE_P(container) != IS_NULL) { - ZEPHIR_CALL_METHOD(&instance, container, "get", NULL, 0, &definition, parameters); - zephir_check_call_status(); - } else if (zephir_class_exists(&definition, 1)) { - _2$$7 = Z_TYPE_P(parameters) == IS_ARRAY; - if (_2$$7) { - _2$$7 = ((zephir_fast_count_int(parameters)) ? 1 : 0); - } - if (_2$$7) { - ZEPHIR_INIT_NVAR(&instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(&instance, &definition, parameters); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(&instance, &definition); - zephir_check_call_status(); - } - } else { - found = 0; - } - } else { - if (Z_TYPE_P(&definition) == IS_OBJECT) { - if (zephir_is_instance_of(&definition, SL("Closure"))) { - if (Z_TYPE_P(container) == IS_OBJECT) { - _4$$14 = zephir_fetch_class_str_ex(SL("Closure"), ZEND_FETCH_CLASS_AUTO); - ZEPHIR_CALL_CE_STATIC(&_3$$14, _4$$14, "bind", NULL, 0, &definition, container); + + + RETURN_MEMBER(getThis(), "offset"); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getOrderBy) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "order"); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getPhql) +{ + zend_string *_13$$26, *_22$$35, *_33$$43; + zend_ulong _12$$26, _21$$35, _32$$43; + zval _3$$8; + zend_bool noPrimary = 0, _87$$86; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval __$null, container, models, conditions, model, metaData, modelInstance, primaryKeys, firstPrimaryKey, columnMap, modelAlias, attributeField, phql, column, columns, selectedColumns, selectedColumn, selectedModel, selectedModels, columnAlias, modelColumnAlias, joins, join, joinModel, joinConditions, joinAlias, joinType, group, groupItems, groupItem, having, order, orderItems, orderItem, limit, number, offset, forUpdate, distinct, _0, _2$$8, _4$$17, _5$$17, _6$$19, _7$$13, _8$$13, _9$$13, *_10$$26, _11$$26, _18$$26, _14$$29, _15$$29, _16$$32, _17$$32, *_19$$35, _20$$35, _27$$35, _23$$37, _24$$38, _25$$40, _26$$41, _28$$42, _29$$42, *_30$$43, _31$$43, _38$$43, _39$$43, _34$$45, _35$$45, _36$$48, _37$$48, _40$$50, _41$$50, *_42$$51, _43$$51, _44$$53, _45$$53, _46$$54, _47$$54, _48$$55, _49$$55, _50$$56, _51$$58, _52$$58, _53$$59, _54$$59, _55$$60, _56$$60, _57$$61, _58$$63, *_59$$64, _60$$64, _63$$64, _64$$64, _61$$65, _62$$66, _65$$68, *_66$$70, _67$$70, _78$$70, _79$$70, itemExplode$$73, _68$$73, _69$$73, _70$$73, _71$$73, _72$$71, itemExplode$$76, _73$$76, _74$$76, _75$$76, _76$$76, _77$$74, _80$$77, _81$$83, _82$$86, _83$$86, _84$$86, _85$$86, _86$$86, _88$$87, _89$$87, _90$$87, _91$$87, _92$$87; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_1 = NULL; + zval *this_ptr = getThis(); + + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&models); + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&metaData); + ZVAL_UNDEF(&modelInstance); + ZVAL_UNDEF(&primaryKeys); + ZVAL_UNDEF(&firstPrimaryKey); + ZVAL_UNDEF(&columnMap); + ZVAL_UNDEF(&modelAlias); + ZVAL_UNDEF(&attributeField); + ZVAL_UNDEF(&phql); + ZVAL_UNDEF(&column); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&selectedColumns); + ZVAL_UNDEF(&selectedColumn); + ZVAL_UNDEF(&selectedModel); + ZVAL_UNDEF(&selectedModels); + ZVAL_UNDEF(&columnAlias); + ZVAL_UNDEF(&modelColumnAlias); + ZVAL_UNDEF(&joins); + ZVAL_UNDEF(&join); + ZVAL_UNDEF(&joinModel); + ZVAL_UNDEF(&joinConditions); + ZVAL_UNDEF(&joinAlias); + ZVAL_UNDEF(&joinType); + ZVAL_UNDEF(&group); + ZVAL_UNDEF(&groupItems); + ZVAL_UNDEF(&groupItem); + ZVAL_UNDEF(&having); + ZVAL_UNDEF(&order); + ZVAL_UNDEF(&orderItems); + ZVAL_UNDEF(&orderItem); + ZVAL_UNDEF(&limit); + ZVAL_UNDEF(&number); + ZVAL_UNDEF(&offset); + ZVAL_UNDEF(&forUpdate); + ZVAL_UNDEF(&distinct); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2$$8); + ZVAL_UNDEF(&_4$$17); + ZVAL_UNDEF(&_5$$17); + ZVAL_UNDEF(&_6$$19); + ZVAL_UNDEF(&_7$$13); + ZVAL_UNDEF(&_8$$13); + ZVAL_UNDEF(&_9$$13); + ZVAL_UNDEF(&_11$$26); + ZVAL_UNDEF(&_18$$26); + ZVAL_UNDEF(&_14$$29); + ZVAL_UNDEF(&_15$$29); + ZVAL_UNDEF(&_16$$32); + ZVAL_UNDEF(&_17$$32); + ZVAL_UNDEF(&_20$$35); + ZVAL_UNDEF(&_27$$35); + ZVAL_UNDEF(&_23$$37); + ZVAL_UNDEF(&_24$$38); + ZVAL_UNDEF(&_25$$40); + ZVAL_UNDEF(&_26$$41); + ZVAL_UNDEF(&_28$$42); + ZVAL_UNDEF(&_29$$42); + ZVAL_UNDEF(&_31$$43); + ZVAL_UNDEF(&_38$$43); + ZVAL_UNDEF(&_39$$43); + ZVAL_UNDEF(&_34$$45); + ZVAL_UNDEF(&_35$$45); + ZVAL_UNDEF(&_36$$48); + ZVAL_UNDEF(&_37$$48); + ZVAL_UNDEF(&_40$$50); + ZVAL_UNDEF(&_41$$50); + ZVAL_UNDEF(&_43$$51); + ZVAL_UNDEF(&_44$$53); + ZVAL_UNDEF(&_45$$53); + ZVAL_UNDEF(&_46$$54); + ZVAL_UNDEF(&_47$$54); + ZVAL_UNDEF(&_48$$55); + ZVAL_UNDEF(&_49$$55); + ZVAL_UNDEF(&_50$$56); + ZVAL_UNDEF(&_51$$58); + ZVAL_UNDEF(&_52$$58); + ZVAL_UNDEF(&_53$$59); + ZVAL_UNDEF(&_54$$59); + ZVAL_UNDEF(&_55$$60); + ZVAL_UNDEF(&_56$$60); + ZVAL_UNDEF(&_57$$61); + ZVAL_UNDEF(&_58$$63); + ZVAL_UNDEF(&_60$$64); + ZVAL_UNDEF(&_63$$64); + ZVAL_UNDEF(&_64$$64); + ZVAL_UNDEF(&_61$$65); + ZVAL_UNDEF(&_62$$66); + ZVAL_UNDEF(&_65$$68); + ZVAL_UNDEF(&_67$$70); + ZVAL_UNDEF(&_78$$70); + ZVAL_UNDEF(&_79$$70); + ZVAL_UNDEF(&itemExplode$$73); + ZVAL_UNDEF(&_68$$73); + ZVAL_UNDEF(&_69$$73); + ZVAL_UNDEF(&_70$$73); + ZVAL_UNDEF(&_71$$73); + ZVAL_UNDEF(&_72$$71); + ZVAL_UNDEF(&itemExplode$$76); + ZVAL_UNDEF(&_73$$76); + ZVAL_UNDEF(&_74$$76); + ZVAL_UNDEF(&_75$$76); + ZVAL_UNDEF(&_76$$76); + ZVAL_UNDEF(&_77$$74); + ZVAL_UNDEF(&_80$$77); + ZVAL_UNDEF(&_81$$83); + ZVAL_UNDEF(&_82$$86); + ZVAL_UNDEF(&_83$$86); + ZVAL_UNDEF(&_84$$86); + ZVAL_UNDEF(&_85$$86); + ZVAL_UNDEF(&_86$$86); + ZVAL_UNDEF(&_88$$87); + ZVAL_UNDEF(&_89$$87); + ZVAL_UNDEF(&_90$$87); + ZVAL_UNDEF(&_91$$87); + ZVAL_UNDEF(&_92$$87); + ZVAL_UNDEF(&_3$$8); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + if (Z_TYPE_P(&container) != IS_OBJECT) { + ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_1, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), &container); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("models"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&models, &_0); + if (Z_TYPE_P(&models) == IS_ARRAY) { + if (UNEXPECTED(!(zephir_fast_count_int(&models)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "At least one model is required to build the query", "phalcon/Mvc/Model/Query/Builder.zep", 680); + return; + } + } else { + if (UNEXPECTED(!zephir_is_true(&models))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "At least one model is required to build the query", "phalcon/Mvc/Model/Query/Builder.zep", 686); + return; + } + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("conditions"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&conditions, &_0); + if (zephir_is_numeric(&conditions)) { + if (Z_TYPE_P(&models) == IS_ARRAY) { + if (UNEXPECTED(zephir_fast_count_int(&models) > 1)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Cannot build the query. Invalid condition", "phalcon/Mvc/Model/Query/Builder.zep", 701); + return; + } + ZEPHIR_OBS_VAR(&model); + zephir_array_fetch_long(&model, &models, 0, PH_NOISY, "phalcon/Mvc/Model/Query/Builder.zep", 704); + } else { + ZEPHIR_CPY_WRT(&model, &models); + } + ZEPHIR_INIT_VAR(&_2$$8); + ZVAL_STRING(&_2$$8, "modelsMetadata"); + ZEPHIR_CALL_METHOD(&metaData, &container, "getshared", NULL, 0, &_2$$8); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_3$$8); + zephir_create_array(&_3$$8, 2, 0); + zephir_array_fast_append(&_3$$8, &__$null); + zephir_array_fast_append(&_3$$8, &container); + ZEPHIR_INIT_VAR(&modelInstance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(&modelInstance, &model, &_3$$8); + zephir_check_call_status(); + noPrimary = 1; + ZEPHIR_CALL_METHOD(&primaryKeys, &metaData, "getprimarykeyattributes", NULL, 0, &modelInstance); + zephir_check_call_status(); + if (zephir_fast_count_int(&primaryKeys)) { + ZEPHIR_OBS_VAR(&firstPrimaryKey); + if (zephir_array_isset_long_fetch(&firstPrimaryKey, &primaryKeys, 0, 0)) { + if (ZEPHIR_GLOBAL(orm).column_renaming) { + ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getcolumnmap", NULL, 0, &modelInstance); zephir_check_call_status(); - ZEPHIR_CPY_WRT(&definition, &_3$$14); + } else { + ZEPHIR_INIT_NVAR(&columnMap); + ZVAL_NULL(&columnMap); } - if (Z_TYPE_P(parameters) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&instance); - ZEPHIR_CALL_USER_FUNC_ARRAY(&instance, &definition, parameters); - zephir_check_call_status(); + if (Z_TYPE_P(&columnMap) == IS_ARRAY) { + ZEPHIR_OBS_VAR(&attributeField); + if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &firstPrimaryKey, 0)))) { + ZEPHIR_INIT_VAR(&_4$$17); + object_init_ex(&_4$$17, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_5$$17); + ZEPHIR_CONCAT_SVS(&_5$$17, "Column '", &firstPrimaryKey, "' isn't part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_4$$17, "__construct", NULL, 8, &_5$$17); + zephir_check_call_status(); + zephir_throw_exception_debug(&_4$$17, "phalcon/Mvc/Model/Query/Builder.zep", 740); + ZEPHIR_MM_RESTORE(); + return; + } } else { - ZEPHIR_INIT_NVAR(&instance); - ZEPHIR_CALL_USER_FUNC(&instance, &definition); + ZEPHIR_CPY_WRT(&attributeField, &firstPrimaryKey); + } + if (Z_TYPE_P(&conditions) == IS_STRING) { + ZEPHIR_INIT_VAR(&_6$$19); + ZEPHIR_CONCAT_SVS(&_6$$19, "'", &conditions, "'"); + ZEPHIR_CPY_WRT(&conditions, &_6$$19); + } + ZEPHIR_CALL_METHOD(&_7$$13, this_ptr, "autoescape", NULL, 487, &model); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_8$$13, this_ptr, "autoescape", NULL, 487, &attributeField); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_9$$13); + ZEPHIR_CONCAT_VSVSV(&_9$$13, &_7$$13, ".", &_8$$13, " = ", &conditions); + ZEPHIR_CPY_WRT(&conditions, &_9$$13); + noPrimary = 0; + } + } + if (UNEXPECTED(noPrimary)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Source related to this model does not have a primary key defined", "phalcon/Mvc/Model/Query/Builder.zep", 767); + return; + } + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("distinct"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&distinct, &_0); + if (((Z_TYPE_P(&distinct) == IS_TRUE || Z_TYPE_P(&distinct) == IS_FALSE) == 1)) { + ZEPHIR_INIT_VAR(&phql); + if (zephir_is_true(&distinct)) { + ZVAL_STRING(&phql, "SELECT DISTINCT "); + } else { + ZVAL_STRING(&phql, "SELECT ALL "); + } + } else { + ZEPHIR_INIT_NVAR(&phql); + ZVAL_STRING(&phql, "SELECT "); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("columns"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&columns, &_0); + if (Z_TYPE_P(&columns) != IS_NULL) { + if (Z_TYPE_P(&columns) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&selectedColumns); + array_init(&selectedColumns); + zephir_is_iterable(&columns, 0, "phalcon/Mvc/Model/Query/Builder.zep", 800); + if (Z_TYPE_P(&columns) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&columns), _12$$26, _13$$26, _10$$26) + { + ZEPHIR_INIT_NVAR(&columnAlias); + if (_13$$26 != NULL) { + ZVAL_STR_COPY(&columnAlias, _13$$26); + } else { + ZVAL_LONG(&columnAlias, _12$$26); + } + ZEPHIR_INIT_NVAR(&column); + ZVAL_COPY(&column, _10$$26); + if (Z_TYPE_P(&columnAlias) == IS_LONG) { + zephir_array_append(&selectedColumns, &column, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 794); + } else { + ZEPHIR_CALL_METHOD(&_14$$29, this_ptr, "autoescape", NULL, 487, &columnAlias); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_15$$29); + ZEPHIR_CONCAT_VSV(&_15$$29, &column, " AS ", &_14$$29); + zephir_array_append(&selectedColumns, &_15$$29, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 796); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &columns, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_11$$26, &columns, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_11$$26)) { + break; + } + ZEPHIR_CALL_METHOD(&columnAlias, &columns, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&column, &columns, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&columnAlias) == IS_LONG) { + zephir_array_append(&selectedColumns, &column, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 794); + } else { + ZEPHIR_CALL_METHOD(&_16$$32, this_ptr, "autoescape", NULL, 487, &columnAlias); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_17$$32); + ZEPHIR_CONCAT_VSV(&_17$$32, &column, " AS ", &_16$$32); + zephir_array_append(&selectedColumns, &_17$$32, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 796); + } + ZEPHIR_CALL_METHOD(NULL, &columns, "next", NULL, 0); zephir_check_call_status(); } + } + ZEPHIR_INIT_NVAR(&column); + ZEPHIR_INIT_NVAR(&columnAlias); + ZEPHIR_INIT_VAR(&_18$$26); + zephir_fast_join_str(&_18$$26, SL(", "), &selectedColumns); + zephir_concat_self(&phql, &_18$$26); + } else { + zephir_concat_self(&phql, &columns); + } + } else { + if (Z_TYPE_P(&models) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&selectedColumns); + array_init(&selectedColumns); + zephir_is_iterable(&models, 0, "phalcon/Mvc/Model/Query/Builder.zep", 821); + if (Z_TYPE_P(&models) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&models), _21$$35, _22$$35, _19$$35) + { + ZEPHIR_INIT_NVAR(&modelColumnAlias); + if (_22$$35 != NULL) { + ZVAL_STR_COPY(&modelColumnAlias, _22$$35); + } else { + ZVAL_LONG(&modelColumnAlias, _21$$35); + } + ZEPHIR_INIT_NVAR(&model); + ZVAL_COPY(&model, _19$$35); + ZEPHIR_INIT_NVAR(&selectedColumn); + if (Z_TYPE_P(&modelColumnAlias) == IS_LONG) { + ZEPHIR_CALL_METHOD(&_23$$37, this_ptr, "autoescape", NULL, 487, &model); + zephir_check_call_status(); + ZEPHIR_CONCAT_VS(&selectedColumn, &_23$$37, ".*"); + } else { + ZEPHIR_CALL_METHOD(&_24$$38, this_ptr, "autoescape", NULL, 487, &modelColumnAlias); + zephir_check_call_status(); + ZEPHIR_CONCAT_VS(&selectedColumn, &_24$$38, ".*"); + } + zephir_array_append(&selectedColumns, &selectedColumn, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 818); + } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CPY_WRT(&instance, &definition); + ZEPHIR_CALL_METHOD(NULL, &models, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_20$$35, &models, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_20$$35)) { + break; + } + ZEPHIR_CALL_METHOD(&modelColumnAlias, &models, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&model, &models, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&selectedColumn); + if (Z_TYPE_P(&modelColumnAlias) == IS_LONG) { + ZEPHIR_CALL_METHOD(&_25$$40, this_ptr, "autoescape", NULL, 487, &model); + zephir_check_call_status(); + ZEPHIR_CONCAT_VS(&selectedColumn, &_25$$40, ".*"); + } else { + ZEPHIR_CALL_METHOD(&_26$$41, this_ptr, "autoescape", NULL, 487, &modelColumnAlias); + zephir_check_call_status(); + ZEPHIR_CONCAT_VS(&selectedColumn, &_26$$41, ".*"); + } + zephir_array_append(&selectedColumns, &selectedColumn, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 818); + ZEPHIR_CALL_METHOD(NULL, &models, "next", NULL, 0); + zephir_check_call_status(); + } } + ZEPHIR_INIT_NVAR(&model); + ZEPHIR_INIT_NVAR(&modelColumnAlias); + ZEPHIR_INIT_VAR(&_27$$35); + zephir_fast_join_str(&_27$$35, SL(", "), &selectedColumns); + zephir_concat_self(&phql, &_27$$35); } else { - if (Z_TYPE_P(&definition) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&builder); - object_init_ex(&builder, phalcon_di_service_builder_ce); - if (zephir_has_constructor(&builder)) { - ZEPHIR_CALL_METHOD(NULL, &builder, "__construct", NULL, 0); + ZEPHIR_CALL_METHOD(&_28$$42, this_ptr, "autoescape", NULL, 487, &models); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_29$$42); + ZEPHIR_CONCAT_VS(&_29$$42, &_28$$42, ".*"); + zephir_concat_self(&phql, &_29$$42); + } + } + if (Z_TYPE_P(&models) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&selectedModels); + array_init(&selectedModels); + zephir_is_iterable(&models, 0, "phalcon/Mvc/Model/Query/Builder.zep", 843); + if (Z_TYPE_P(&models) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&models), _32$$43, _33$$43, _30$$43) + { + ZEPHIR_INIT_NVAR(&modelAlias); + if (_33$$43 != NULL) { + ZVAL_STR_COPY(&modelAlias, _33$$43); + } else { + ZVAL_LONG(&modelAlias, _32$$43); + } + ZEPHIR_INIT_NVAR(&model); + ZVAL_COPY(&model, _30$$43); + if (Z_TYPE_P(&modelAlias) == IS_STRING) { + ZEPHIR_CALL_METHOD(&_34$$45, this_ptr, "autoescape", NULL, 487, &model); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_35$$45, this_ptr, "autoescape", NULL, 487, &modelAlias); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&selectedModel); + ZEPHIR_CONCAT_VSV(&selectedModel, &_34$$45, " AS ", &_35$$45); + } else { + ZEPHIR_CALL_METHOD(&selectedModel, this_ptr, "autoescape", NULL, 487, &model); zephir_check_call_status(); } - - ZEPHIR_CALL_METHOD(&instance, &builder, "build", NULL, 221, container, &definition, parameters); + zephir_array_append(&selectedModels, &selectedModel, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 840); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &models, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_31$$43, &models, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_31$$43)) { + break; + } + ZEPHIR_CALL_METHOD(&modelAlias, &models, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&model, &models, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&modelAlias) == IS_STRING) { + ZEPHIR_CALL_METHOD(&_36$$48, this_ptr, "autoescape", NULL, 487, &model); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_37$$48, this_ptr, "autoescape", NULL, 487, &modelAlias); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&selectedModel); + ZEPHIR_CONCAT_VSV(&selectedModel, &_36$$48, " AS ", &_37$$48); + } else { + ZEPHIR_CALL_METHOD(&selectedModel, this_ptr, "autoescape", NULL, 487, &model); + zephir_check_call_status(); + } + zephir_array_append(&selectedModels, &selectedModel, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 840); + ZEPHIR_CALL_METHOD(NULL, &models, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&model); + ZEPHIR_INIT_NVAR(&modelAlias); + ZEPHIR_INIT_VAR(&_38$$43); + zephir_fast_join_str(&_38$$43, SL(", "), &selectedModels); + ZEPHIR_INIT_VAR(&_39$$43); + ZEPHIR_CONCAT_SV(&_39$$43, " FROM ", &_38$$43); + zephir_concat_self(&phql, &_39$$43); + } else { + ZEPHIR_CALL_METHOD(&_40$$50, this_ptr, "autoescape", NULL, 487, &models); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_41$$50); + ZEPHIR_CONCAT_SV(&_41$$50, " FROM ", &_40$$50); + zephir_concat_self(&phql, &_41$$50); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("joins"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&joins, &_0); + if (Z_TYPE_P(&joins) == IS_ARRAY) { + zephir_is_iterable(&joins, 0, "phalcon/Mvc/Model/Query/Builder.zep", 898); + if (Z_TYPE_P(&joins) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&joins), _42$$51) + { + ZEPHIR_INIT_NVAR(&join); + ZVAL_COPY(&join, _42$$51); + ZEPHIR_OBS_NVAR(&joinModel); + zephir_array_fetch_long(&joinModel, &join, 0, PH_NOISY, "phalcon/Mvc/Model/Query/Builder.zep", 858); + ZEPHIR_OBS_NVAR(&joinConditions); + zephir_array_fetch_long(&joinConditions, &join, 1, PH_NOISY, "phalcon/Mvc/Model/Query/Builder.zep", 863); + ZEPHIR_OBS_NVAR(&joinAlias); + zephir_array_fetch_long(&joinAlias, &join, 2, PH_NOISY, "phalcon/Mvc/Model/Query/Builder.zep", 868); + ZEPHIR_OBS_NVAR(&joinType); + zephir_array_fetch_long(&joinType, &join, 3, PH_NOISY, "phalcon/Mvc/Model/Query/Builder.zep", 873); + if (zephir_is_true(&joinType)) { + ZEPHIR_CALL_METHOD(&_44$$53, this_ptr, "autoescape", NULL, 487, &joinModel); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_45$$53); + ZEPHIR_CONCAT_SVSV(&_45$$53, " ", &joinType, " JOIN ", &_44$$53); + zephir_concat_self(&phql, &_45$$53); + } else { + ZEPHIR_CALL_METHOD(&_46$$54, this_ptr, "autoescape", NULL, 487, &joinModel); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_47$$54); + ZEPHIR_CONCAT_SV(&_47$$54, " JOIN ", &_46$$54); + zephir_concat_self(&phql, &_47$$54); + } + if (zephir_is_true(&joinAlias)) { + ZEPHIR_CALL_METHOD(&_48$$55, this_ptr, "autoescape", NULL, 487, &joinAlias); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_49$$55); + ZEPHIR_CONCAT_SV(&_49$$55, " AS ", &_48$$55); + zephir_concat_self(&phql, &_49$$55); + } + if (zephir_is_true(&joinConditions)) { + ZEPHIR_INIT_NVAR(&_50$$56); + ZEPHIR_CONCAT_SV(&_50$$56, " ON ", &joinConditions); + zephir_concat_self(&phql, &_50$$56); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &joins, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_43$$51, &joins, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_43$$51)) { + break; + } + ZEPHIR_CALL_METHOD(&join, &joins, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&joinModel); + zephir_array_fetch_long(&joinModel, &join, 0, PH_NOISY, "phalcon/Mvc/Model/Query/Builder.zep", 858); + ZEPHIR_OBS_NVAR(&joinConditions); + zephir_array_fetch_long(&joinConditions, &join, 1, PH_NOISY, "phalcon/Mvc/Model/Query/Builder.zep", 863); + ZEPHIR_OBS_NVAR(&joinAlias); + zephir_array_fetch_long(&joinAlias, &join, 2, PH_NOISY, "phalcon/Mvc/Model/Query/Builder.zep", 868); + ZEPHIR_OBS_NVAR(&joinType); + zephir_array_fetch_long(&joinType, &join, 3, PH_NOISY, "phalcon/Mvc/Model/Query/Builder.zep", 873); + if (zephir_is_true(&joinType)) { + ZEPHIR_CALL_METHOD(&_51$$58, this_ptr, "autoescape", NULL, 487, &joinModel); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_52$$58); + ZEPHIR_CONCAT_SVSV(&_52$$58, " ", &joinType, " JOIN ", &_51$$58); + zephir_concat_self(&phql, &_52$$58); + } else { + ZEPHIR_CALL_METHOD(&_53$$59, this_ptr, "autoescape", NULL, 487, &joinModel); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_54$$59); + ZEPHIR_CONCAT_SV(&_54$$59, " JOIN ", &_53$$59); + zephir_concat_self(&phql, &_54$$59); + } + if (zephir_is_true(&joinAlias)) { + ZEPHIR_CALL_METHOD(&_55$$60, this_ptr, "autoescape", NULL, 487, &joinAlias); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_56$$60); + ZEPHIR_CONCAT_SV(&_56$$60, " AS ", &_55$$60); + zephir_concat_self(&phql, &_56$$60); + } + if (zephir_is_true(&joinConditions)) { + ZEPHIR_INIT_NVAR(&_57$$61); + ZEPHIR_CONCAT_SV(&_57$$61, " ON ", &joinConditions); + zephir_concat_self(&phql, &_57$$61); + } + ZEPHIR_CALL_METHOD(NULL, &joins, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&join); + } + if (Z_TYPE_P(&conditions) == IS_STRING) { + if (!(ZEPHIR_IS_EMPTY(&conditions))) { + ZEPHIR_INIT_VAR(&_58$$63); + ZEPHIR_CONCAT_SV(&_58$$63, " WHERE ", &conditions); + zephir_concat_self(&phql, &_58$$63); + } + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("group"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&group, &_0); + if (!(ZEPHIR_IS_EMPTY(&group))) { + ZEPHIR_INIT_VAR(&groupItems); + array_init(&groupItems); + zephir_is_iterable(&group, 0, "phalcon/Mvc/Model/Query/Builder.zep", 918); + if (Z_TYPE_P(&group) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&group), _59$$64) + { + ZEPHIR_INIT_NVAR(&groupItem); + ZVAL_COPY(&groupItem, _59$$64); + ZEPHIR_CALL_METHOD(&_61$$65, this_ptr, "autoescape", NULL, 487, &groupItem); + zephir_check_call_status(); + zephir_array_append(&groupItems, &_61$$65, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 915); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &group, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_60$$64, &group, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_60$$64)) { + break; + } + ZEPHIR_CALL_METHOD(&groupItem, &group, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_62$$66, this_ptr, "autoescape", NULL, 487, &groupItem); + zephir_check_call_status(); + zephir_array_append(&groupItems, &_62$$66, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 915); + ZEPHIR_CALL_METHOD(NULL, &group, "next", NULL, 0); zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&groupItem); + ZEPHIR_INIT_VAR(&_63$$64); + zephir_fast_join_str(&_63$$64, SL(", "), &groupItems); + ZEPHIR_INIT_VAR(&_64$$64); + ZEPHIR_CONCAT_SV(&_64$$64, " GROUP BY ", &_63$$64); + zephir_concat_self(&phql, &_64$$64); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("having"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&having, &_0); + if (Z_TYPE_P(&having) != IS_NULL) { + if (!(ZEPHIR_IS_EMPTY(&having))) { + ZEPHIR_INIT_VAR(&_65$$68); + ZEPHIR_CONCAT_SV(&_65$$68, " HAVING ", &having); + zephir_concat_self(&phql, &_65$$68); + } + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("order"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&order, &_0); + if (Z_TYPE_P(&order) != IS_NULL) { + if (Z_TYPE_P(&order) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&orderItems); + array_init(&orderItems); + zephir_is_iterable(&order, 0, "phalcon/Mvc/Model/Query/Builder.zep", 962); + if (Z_TYPE_P(&order) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&order), _66$$70) + { + ZEPHIR_INIT_NVAR(&orderItem); + ZVAL_COPY(&orderItem, _66$$70); + if (Z_TYPE_P(&orderItem) == IS_LONG) { + zephir_array_append(&orderItems, &orderItem, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 945); + continue; + } + if (zephir_memnstr_str(&orderItem, SL(" "), "phalcon/Mvc/Model/Query/Builder.zep", 950) != 0) { + ZEPHIR_INIT_NVAR(&itemExplode$$73); + zephir_fast_explode_str(&itemExplode$$73, SL(" "), &orderItem, LONG_MAX); + zephir_array_fetch_long(&_69$$73, &itemExplode$$73, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query/Builder.zep", 954); + ZEPHIR_CALL_METHOD(&_68$$73, this_ptr, "autoescape", NULL, 487, &_69$$73); + zephir_check_call_status(); + zephir_array_fetch_long(&_70$$73, &itemExplode$$73, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query/Builder.zep", 954); + ZEPHIR_INIT_NVAR(&_71$$73); + ZEPHIR_CONCAT_VSV(&_71$$73, &_68$$73, " ", &_70$$73); + zephir_array_append(&orderItems, &_71$$73, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 954); + continue; + } + ZEPHIR_CALL_METHOD(&_72$$71, this_ptr, "autoescape", NULL, 487, &orderItem); + zephir_check_call_status(); + zephir_array_append(&orderItems, &_72$$71, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 959); + } ZEND_HASH_FOREACH_END(); } else { - found = 0; + ZEPHIR_CALL_METHOD(NULL, &order, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_67$$70, &order, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_67$$70)) { + break; + } + ZEPHIR_CALL_METHOD(&orderItem, &order, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&orderItem) == IS_LONG) { + zephir_array_append(&orderItems, &orderItem, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 945); + continue; + } + if (zephir_memnstr_str(&orderItem, SL(" "), "phalcon/Mvc/Model/Query/Builder.zep", 950) != 0) { + ZEPHIR_INIT_NVAR(&itemExplode$$76); + zephir_fast_explode_str(&itemExplode$$76, SL(" "), &orderItem, LONG_MAX); + zephir_array_fetch_long(&_74$$76, &itemExplode$$76, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query/Builder.zep", 954); + ZEPHIR_CALL_METHOD(&_73$$76, this_ptr, "autoescape", NULL, 487, &_74$$76); + zephir_check_call_status(); + zephir_array_fetch_long(&_75$$76, &itemExplode$$76, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query/Builder.zep", 954); + ZEPHIR_INIT_NVAR(&_76$$76); + ZEPHIR_CONCAT_VSV(&_76$$76, &_73$$76, " ", &_75$$76); + zephir_array_append(&orderItems, &_76$$76, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 954); + continue; + } + ZEPHIR_CALL_METHOD(&_77$$74, this_ptr, "autoescape", NULL, 487, &orderItem); + zephir_check_call_status(); + zephir_array_append(&orderItems, &_77$$74, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 959); + ZEPHIR_CALL_METHOD(NULL, &order, "next", NULL, 0); + zephir_check_call_status(); + } } + ZEPHIR_INIT_NVAR(&orderItem); + ZEPHIR_INIT_VAR(&_78$$70); + zephir_fast_join_str(&_78$$70, SL(", "), &orderItems); + ZEPHIR_INIT_VAR(&_79$$70); + ZEPHIR_CONCAT_SV(&_79$$70, " ORDER BY ", &_78$$70); + zephir_concat_self(&phql, &_79$$70); + } else { + ZEPHIR_INIT_VAR(&_80$$77); + ZEPHIR_CONCAT_SV(&_80$$77, " ORDER BY ", &order); + zephir_concat_self(&phql, &_80$$77); } } - if (UNEXPECTED(found == 0)) { - ZEPHIR_INIT_VAR(&_5$$21); - object_init_ex(&_5$$21, phalcon_di_exception_serviceresolutionexception_ce); - ZEPHIR_CALL_METHOD(NULL, &_5$$21, "__construct", NULL, 8); + zephir_read_property(&_0, this_ptr, ZEND_STRL("limit"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&limit, &_0); + if (Z_TYPE_P(&limit) != IS_NULL) { + ZEPHIR_INIT_VAR(&number); + ZVAL_NULL(&number); + if (Z_TYPE_P(&limit) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&number); + zephir_array_fetch_string(&number, &limit, SL("number"), PH_NOISY, "phalcon/Mvc/Model/Query/Builder.zep", 976); + ZEPHIR_OBS_VAR(&offset); + if (zephir_array_isset_string_fetch(&offset, &limit, SL("offset"), 0)) { + if (!(zephir_is_numeric(&offset))) { + ZEPHIR_INIT_NVAR(&offset); + ZVAL_LONG(&offset, 0); + } + } + } else { + if (zephir_is_numeric(&limit)) { + ZEPHIR_CPY_WRT(&number, &limit); + zephir_read_property(&_81$$83, this_ptr, ZEND_STRL("offset"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&offset, &_81$$83); + if (Z_TYPE_P(&offset) != IS_NULL) { + if (!(zephir_is_numeric(&offset))) { + ZEPHIR_INIT_NVAR(&offset); + ZVAL_LONG(&offset, 0); + } + } + } + } + if (zephir_is_numeric(&number)) { + zephir_concat_self_str(&phql, SL(" LIMIT :APL0:")); + ZVAL_LONG(&_82$$86, 10); + ZEPHIR_CALL_FUNCTION(&_83$$86, "intval", NULL, 51, &number, &_82$$86); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_84$$86); + ZVAL_STRING(&_84$$86, "APL0"); + zephir_update_property_array(this_ptr, SL("bindParams"), &_84$$86, &_83$$86); + ZEPHIR_INIT_VAR(&_85$$86); + ZVAL_STRING(&_85$$86, "APL0"); + ZEPHIR_INIT_VAR(&_86$$86); + ZVAL_LONG(&_86$$86, 1); + zephir_update_property_array(this_ptr, SL("bindTypes"), &_85$$86, &_86$$86); + _87$$86 = zephir_is_numeric(&offset); + if (_87$$86) { + _87$$86 = !ZEPHIR_IS_LONG_IDENTICAL(&offset, 0); + } + if (_87$$86) { + zephir_concat_self_str(&phql, SL(" OFFSET :APL1:")); + ZVAL_LONG(&_88$$87, 10); + ZEPHIR_CALL_FUNCTION(&_89$$87, "intval", NULL, 51, &offset, &_88$$87); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_90$$87); + ZVAL_STRING(&_90$$87, "APL1"); + zephir_update_property_array(this_ptr, SL("bindParams"), &_90$$87, &_89$$87); + ZEPHIR_INIT_VAR(&_91$$87); + ZVAL_STRING(&_91$$87, "APL1"); + ZEPHIR_INIT_VAR(&_92$$87); + ZVAL_LONG(&_92$$87, 1); + zephir_update_property_array(this_ptr, SL("bindTypes"), &_91$$87, &_92$$87); + } + } + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("forUpdate"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&forUpdate, &_0); + if (((Z_TYPE_P(&forUpdate) == IS_TRUE || Z_TYPE_P(&forUpdate) == IS_FALSE) == 1)) { + if (zephir_is_true(&forUpdate)) { + zephir_concat_self_str(&phql, SL(" FOR UPDATE")); + } + } + RETURN_CCTOR(&phql); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getQuery) +{ + zval _6; + zval query, bindParams, bindTypes, phql, container, _0, _5, _7, _8, _1$$3, _2$$3, _4$$3, _9$$6; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_3 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&query); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&phql); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_9$$6); + ZVAL_UNDEF(&_6); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&phql, this_ptr, "getphql", NULL, 488); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "the services related to the ORM"); + ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_mvc_model_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); zephir_check_call_status(); - zephir_throw_exception_debug(&_5$$21, "phalcon/Di/Service.zep", 205); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model/Query/Builder.zep", 1035); ZEPHIR_MM_RESTORE(); return; } - if (zephir_is_true(&shared)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("sharedInstance"), &instance); + ZEPHIR_INIT_VAR(&_6); + zephir_create_array(&_6, 2, 0); + zephir_array_fast_append(&_6, &phql); + zephir_array_fast_append(&_6, &container); + ZEPHIR_INIT_VAR(&_7); + ZVAL_STRING(&_7, "Phalcon\\Mvc\\Model\\Query"); + ZEPHIR_CALL_METHOD(&_5, &container, "get", NULL, 0, &_7, &_6); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&query, &_5); + zephir_read_property(&_0, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&bindParams, &_0); + if (Z_TYPE_P(&bindParams) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(NULL, &query, "setbindparams", NULL, 0, &bindParams); + zephir_check_call_status(); } - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("resolved"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("resolved"), &__$false); + zephir_read_property(&_0, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&bindTypes, &_0); + if (Z_TYPE_P(&bindTypes) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(NULL, &query, "setbindtypes", NULL, 0, &bindTypes); + zephir_check_call_status(); } - RETURN_CCTOR(&instance); + ZEPHIR_OBS_VAR(&_8); + zephir_read_property(&_8, this_ptr, ZEND_STRL("sharedLock"), PH_NOISY_CC); + if (((Z_TYPE_P(&_8) == IS_TRUE || Z_TYPE_P(&_8) == IS_FALSE) == 1)) { + zephir_read_property(&_9$$6, this_ptr, ZEND_STRL("sharedLock"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &query, "setsharedlock", NULL, 0, &_9$$6); + zephir_check_call_status(); + } + RETURN_CCTOR(&query); } -static PHP_METHOD(Phalcon_Di_Service, setDefinition) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getWhere) { - zval *definition, definition_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&definition_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(definition) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &definition); - zephir_update_property_zval(this_ptr, ZEND_STRL("definition"), definition); + RETURN_MEMBER(getThis(), "conditions"); } -static PHP_METHOD(Phalcon_Di_Service, setParameter) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, groupBy) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval parameter; - zval *position_param = NULL, *parameter_param = NULL, definition, arguments, _0, _1$$5; - zend_long position; + zval *group = NULL, group_sub, _0$$4, _1$$4, _2$$4, _3$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&arguments); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$5); - ZVAL_UNDEF(¶meter); + ZVAL_UNDEF(&group_sub); + ZVAL_UNDEF(&_0$$4); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_LONG(position) - Z_PARAM_ARRAY(parameter) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(group) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &position_param, ¶meter_param); - position = zephir_get_intval(position_param); - ZEPHIR_OBS_COPY_OR_DUP(¶meter, parameter_param); + zephir_fetch_params(1, 1, 0, &group); + ZEPHIR_SEPARATE_PARAM(group); - zephir_read_property(&_0, this_ptr, ZEND_STRL("definition"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&definition, &_0); - if (UNEXPECTED(Z_TYPE_P(&definition) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Definition must be an array to update its parameters", "phalcon/Di/Service.zep", 240); - return; - } - ZEPHIR_OBS_VAR(&arguments); - if (zephir_array_isset_string_fetch(&arguments, &definition, SL("arguments"), 0)) { - zephir_array_update_long(&arguments, position, ¶meter, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - } else { - ZEPHIR_INIT_VAR(&_1$$5); - zephir_create_array(&_1$$5, 1, 0); - zephir_array_update_long(&_1$$5, position, ¶meter, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - ZEPHIR_CPY_WRT(&arguments, &_1$$5); + if (Z_TYPE_P(group) == IS_STRING) { + if (zephir_memnstr_str(group, SL(","), "phalcon/Mvc/Model/Query/Builder.zep", 1091)) { + ZEPHIR_INIT_VAR(&_0$$4); + ZEPHIR_INIT_VAR(&_1$$4); + ZVAL_STRING(&_1$$4, " "); + ZEPHIR_INIT_VAR(&_2$$4); + ZVAL_STRING(&_2$$4, ""); + zephir_fast_str_replace(&_0$$4, &_1$$4, &_2$$4, group); + ZEPHIR_CPY_WRT(group, &_0$$4); + } + ZEPHIR_INIT_VAR(&_3$$3); + zephir_fast_explode_str(&_3$$3, SL(","), group, LONG_MAX); + ZEPHIR_CPY_WRT(group, &_3$$3); } - zephir_array_update_string(&definition, SL("arguments"), &arguments, PH_COPY | PH_SEPARATE); - zephir_update_property_zval(this_ptr, ZEND_STRL("definition"), &definition); + zephir_update_property_zval(this_ptr, ZEND_STRL("group"), group); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Di_Service, setShared) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, having) { - zval *shared_param = NULL, __$true, __$false; - zend_bool shared; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval bindParams, bindTypes; + zval *conditions_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, currentBindParams, currentBindTypes, _0$$3, _1$$5; + zval conditions; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(¤tBindParams); + ZVAL_UNDEF(¤tBindTypes); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$5); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(shared) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(conditions) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(bindParams) + Z_PARAM_ARRAY(bindTypes) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &shared_param); - shared = zephir_get_boolval(shared_param); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &conditions_param, &bindParams_param, &bindTypes_param); + zephir_get_strval(&conditions, conditions_param); + if (!bindParams_param) { + ZEPHIR_INIT_VAR(&bindParams); + array_init(&bindParams); + } else { + zephir_get_arrval(&bindParams, bindParams_param); + } + if (!bindTypes_param) { + ZEPHIR_INIT_VAR(&bindTypes); + array_init(&bindTypes); + } else { + zephir_get_arrval(&bindTypes, bindTypes_param); + } - if (shared) { - zephir_update_property_zval(this_ptr, ZEND_STRL("shared"), &__$true); + zephir_update_property_zval(this_ptr, ZEND_STRL("having"), &conditions); + zephir_read_property(¤tBindParams, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(¤tBindParams) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&_0$$3); + zephir_add_function(&_0$$3, ¤tBindParams, &bindParams); + zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &_0$$3); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("shared"), &__$false); + zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &bindParams); } + zephir_read_property(¤tBindTypes, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(¤tBindTypes) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&_1$$5); + zephir_add_function(&_1$$5, ¤tBindTypes, &bindTypes); + zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &_1$$5); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &bindTypes); + } + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Di_Service, setSharedInstance) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, inHaving) { - zval *sharedInstance, sharedInstance_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval values; + zval *expr_param = NULL, *values_param = NULL, *operator_param = NULL, _0; + zval expr, operator; zval *this_ptr = getThis(); - ZVAL_UNDEF(&sharedInstance_sub); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&operator); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&values); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(sharedInstance) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(expr) + Z_PARAM_ARRAY(values) + Z_PARAM_OPTIONAL + Z_PARAM_STR(operator) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &sharedInstance); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &expr_param, &values_param, &operator_param); + if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { + zephir_get_strval(&expr, expr_param); + } else { + ZEPHIR_INIT_VAR(&expr); + } + ZEPHIR_OBS_COPY_OR_DUP(&values, values_param); + if (!operator_param) { + ZEPHIR_INIT_VAR(&operator); + ZVAL_STRING(&operator, "and"); + } else { + if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { + zephir_get_strval(&operator, operator_param); + } else { + ZEPHIR_INIT_VAR(&operator); + } + } - zephir_update_property_zval(this_ptr, ZEND_STRL("sharedInstance"), sharedInstance); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "Having"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "conditionin", NULL, 0, &_0, &operator, &expr, &values); + zephir_check_call_status(); + RETURN_MM(); } +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, innerJoin) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *model_param = NULL, *conditions_param = NULL, *alias_param = NULL, _1; + zval model, conditions, alias; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(&alias); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(model) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(conditions) + Z_PARAM_STR_OR_NULL(alias) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &model_param, &conditions_param, &alias_param); + if (UNEXPECTED(Z_TYPE_P(model_param) != IS_STRING && Z_TYPE_P(model_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'model' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(model_param) == IS_STRING)) { + zephir_get_strval(&model, model_param); + } else { + ZEPHIR_INIT_VAR(&model); + } + if (!conditions_param) { + ZEPHIR_INIT_VAR(&conditions); + } else { + zephir_get_strval(&conditions, conditions_param); + } + if (!alias_param) { + ZEPHIR_INIT_VAR(&alias); + } else { + zephir_get_strval(&alias, alias_param); + } + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 4, 0); + zephir_array_fast_append(&_0, &model); + zephir_array_fast_append(&_0, &conditions); + zephir_array_fast_append(&_0, &alias); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "INNER"); + zephir_array_fast_append(&_0, &_1); + zephir_update_property_array_append(this_ptr, SL("joins"), &_0); + RETURN_THIS(); +} -ZEPHIR_INIT_CLASS(Phalcon_Di_ServiceInterface) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, inWhere) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Di, ServiceInterface, phalcon, di_serviceinterface, phalcon_di_serviceinterface_method_entry); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval values; + zval *expr_param = NULL, *values_param = NULL, *operator_param = NULL, _0; + zval expr, operator; + zval *this_ptr = getThis(); - return SUCCESS; -} + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&operator); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&values); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(expr) + Z_PARAM_ARRAY(values) + Z_PARAM_OPTIONAL + Z_PARAM_STR(operator) + ZEND_PARSE_PARAMETERS_END(); +#endif -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, getDefinition); -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, getParameter); -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, isResolved); -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, isShared); -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, resolve); -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, setDefinition); -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, setParameter); -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, setShared); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &expr_param, &values_param, &operator_param); + if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { + zephir_get_strval(&expr, expr_param); + } else { + ZEPHIR_INIT_VAR(&expr); + } + ZEPHIR_OBS_COPY_OR_DUP(&values, values_param); + if (!operator_param) { + ZEPHIR_INIT_VAR(&operator); + ZVAL_STRING(&operator, "and"); + } else { + if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { + zephir_get_strval(&operator, operator_param); + } else { + ZEPHIR_INIT_VAR(&operator); + } + } -#ifdef HAVE_CONFIG_H -#endif + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "Where"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "conditionin", NULL, 0, &_0, &operator, &expr, &values); + zephir_check_call_status(); + RETURN_MM(); +} +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, join) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *model_param = NULL, *conditions_param = NULL, *alias_param = NULL, *type_param = NULL; + zval model, conditions, alias, type; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(&alias); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 4) + Z_PARAM_STR(model) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(conditions) + Z_PARAM_STR_OR_NULL(alias) + Z_PARAM_STR_OR_NULL(type) + ZEND_PARSE_PARAMETERS_END(); +#endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 3, &model_param, &conditions_param, &alias_param, &type_param); + if (UNEXPECTED(Z_TYPE_P(model_param) != IS_STRING && Z_TYPE_P(model_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'model' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(model_param) == IS_STRING)) { + zephir_get_strval(&model, model_param); + } else { + ZEPHIR_INIT_VAR(&model); + } + if (!conditions_param) { + ZEPHIR_INIT_VAR(&conditions); + } else { + zephir_get_strval(&conditions, conditions_param); + } + if (!alias_param) { + ZEPHIR_INIT_VAR(&alias); + } else { + zephir_get_strval(&alias, alias_param); + } + if (!type_param) { + ZEPHIR_INIT_VAR(&type); + } else { + zephir_get_strval(&type, type_param); + } -ZEPHIR_INIT_CLASS(Phalcon_Di_ServiceProviderInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Di, ServiceProviderInterface, phalcon, di_serviceproviderinterface, phalcon_di_serviceproviderinterface_method_entry); - return SUCCESS; + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 4, 0); + zephir_array_fast_append(&_0, &model); + zephir_array_fast_append(&_0, &conditions); + zephir_array_fast_append(&_0, &alias); + zephir_array_fast_append(&_0, &type); + zephir_update_property_array_append(this_ptr, SL("joins"), &_0); + RETURN_THIS(); } -ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceProviderInterface, register); - - +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, leftJoin) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *model_param = NULL, *conditions_param = NULL, *alias_param = NULL, _1; + zval model, conditions, alias; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(&alias); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(model) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(conditions) + Z_PARAM_STR_OR_NULL(alias) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &model_param, &conditions_param, &alias_param); + if (UNEXPECTED(Z_TYPE_P(model_param) != IS_STRING && Z_TYPE_P(model_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'model' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(model_param) == IS_STRING)) { + zephir_get_strval(&model, model_param); + } else { + ZEPHIR_INIT_VAR(&model); + } + if (!conditions_param) { + ZEPHIR_INIT_VAR(&conditions); + } else { + zephir_get_strval(&conditions, conditions_param); + } + if (!alias_param) { + ZEPHIR_INIT_VAR(&alias); + } else { + zephir_get_strval(&alias, alias_param); + } + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 4, 0); + zephir_array_fast_append(&_0, &model); + zephir_array_fast_append(&_0, &conditions); + zephir_array_fast_append(&_0, &alias); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "LEFT"); + zephir_array_fast_append(&_0, &_1); + zephir_update_property_array_append(this_ptr, SL("joins"), &_0); + RETURN_THIS(); +} -ZEPHIR_INIT_CLASS(Phalcon_Di_Exception_ServiceResolutionException) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, limit) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di\\Exception, ServiceResolutionException, phalcon, di_exception_serviceresolutionexception, phalcon_di_exception_ce, NULL, 0); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *limit_param = NULL, *offset = NULL, offset_sub, __$null, _0, _1, _2$$4, _3$$4; + zend_long limit, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); - return SUCCESS; -} + ZVAL_UNDEF(&offset_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_LONG(limit) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(offset) + ZEND_PARSE_PARAMETERS_END(); +#endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &limit_param, &offset); + limit = zephir_get_intval(limit_param); + if (!offset) { + offset = &offset_sub; + offset = &__$null; + } -#ifdef HAVE_CONFIG_H -#endif + ZVAL_LONG(&_0, limit); + ZEPHIR_CALL_FUNCTION(&_1, "abs", NULL, 238, &_0); + zephir_check_call_status(); + limit = zephir_get_numberval(&_1); + if (UNEXPECTED(limit == 0)) { + RETURN_THIS(); + } + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, limit); + zephir_update_property_zval(this_ptr, ZEND_STRL("limit"), &_0); + if (zephir_is_numeric(offset)) { + ZVAL_LONG(&_2$$4, zephir_get_intval(offset)); + ZEPHIR_CALL_FUNCTION(&_3$$4, "abs", NULL, 238, &_2$$4); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("offset"), &_3$$4); + } + RETURN_THIS(); +} +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, notBetweenHaving) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *expr_param = NULL, *minimum, minimum_sub, *maximum, maximum_sub, *operator_param = NULL, _0; + zval expr, operator; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&operator); + ZVAL_UNDEF(&minimum_sub); + ZVAL_UNDEF(&maximum_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 4) + Z_PARAM_STR(expr) + Z_PARAM_ZVAL(minimum) + Z_PARAM_ZVAL(maximum) + Z_PARAM_OPTIONAL + Z_PARAM_STR(operator) + ZEND_PARSE_PARAMETERS_END(); +#endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 1, &expr_param, &minimum, &maximum, &operator_param); + if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { + zephir_get_strval(&expr, expr_param); + } else { + ZEPHIR_INIT_VAR(&expr); + } + if (!operator_param) { + ZEPHIR_INIT_VAR(&operator); + ZVAL_STRING(&operator, "and"); + } else { + if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { + zephir_get_strval(&operator, operator_param); + } else { + ZEPHIR_INIT_VAR(&operator); + } + } -ZEPHIR_INIT_CLASS(Phalcon_Di_FactoryDefault_Cli) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di\\FactoryDefault, Cli, phalcon, di_factorydefault_cli, phalcon_di_factorydefault_ce, phalcon_di_factorydefault_cli_method_entry, 0); - return SUCCESS; + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "Having"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "conditionnotbetween", NULL, 0, &_0, &operator, &expr, minimum, maximum); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, notBetweenWhere) { - zval _1; - zval filter, _2, _3, _4, _5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; + zval *expr_param = NULL, *minimum, minimum_sub, *maximum, maximum_sub, *operator_param = NULL, _0; + zval expr, operator; zval *this_ptr = getThis(); - ZVAL_UNDEF(&filter); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&operator); + ZVAL_UNDEF(&minimum_sub); + ZVAL_UNDEF(&maximum_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 4) + Z_PARAM_STR(expr) + Z_PARAM_ZVAL(minimum) + Z_PARAM_ZVAL(maximum) + Z_PARAM_OPTIONAL + Z_PARAM_STR(operator) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_PARENT(NULL, phalcon_di_factorydefault_cli_ce, getThis(), "__construct", &_0, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&filter); - object_init_ex(&filter, phalcon_filter_filterfactory_ce); - if (zephir_has_constructor(&filter)) { - ZEPHIR_CALL_METHOD(NULL, &filter, "__construct", NULL, 0); - zephir_check_call_status(); + zephir_fetch_params(1, 3, 1, &expr_param, &minimum, &maximum, &operator_param); + if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { + zephir_get_strval(&expr, expr_param); + } else { + ZEPHIR_INIT_VAR(&expr); + } + if (!operator_param) { + ZEPHIR_INIT_VAR(&operator); + ZVAL_STRING(&operator, "and"); + } else { + if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { + zephir_get_strval(&operator, operator_param); + } else { + ZEPHIR_INIT_VAR(&operator); + } } - ZEPHIR_INIT_VAR(&_1); - zephir_create_array(&_1, 10, 0); - ZEPHIR_INIT_VAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Annotations\\Adapter\\Memory"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("annotations"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Cli\\Dispatcher"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("dispatcher"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Escaper"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("escaper"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Events\\Manager"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("eventsManager"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_CALL_METHOD(&_5, &filter, "newinstance", NULL, 113); - zephir_check_call_status(); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_5, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("filter"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Mvc\\Model\\Manager"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("modelsManager"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Mvc\\Model\\MetaData\\Memory"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("modelsMetadata"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Cli\\Router"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("router"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Security"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("security"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_di_service_ce); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "Phalcon\\Mvc\\Model\\Transaction\\Manager"); - ZVAL_BOOL(&_4, 1); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "Where"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "conditionnotbetween", NULL, 0, &_0, &operator, &expr, minimum, maximum); zephir_check_call_status(); - zephir_array_update_string(&_1, SL("transactionManager"), &_2, PH_COPY | PH_SEPARATE); - zephir_update_property_zval(this_ptr, ZEND_STRL("services"), &_1); - ZEPHIR_MM_RESTORE(); + RETURN_MM(); } +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, notInHaving) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval values; + zval *expr_param = NULL, *values_param = NULL, *operator_param = NULL, _0; + zval expr, operator; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&operator); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&values); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(expr) + Z_PARAM_ARRAY(values) + Z_PARAM_OPTIONAL + Z_PARAM_STR(operator) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &expr_param, &values_param, &operator_param); + if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { + zephir_get_strval(&expr, expr_param); + } else { + ZEPHIR_INIT_VAR(&expr); + } + ZEPHIR_OBS_COPY_OR_DUP(&values, values_param); + if (!operator_param) { + ZEPHIR_INIT_VAR(&operator); + ZVAL_STRING(&operator, "and"); + } else { + if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { + zephir_get_strval(&operator, operator_param); + } else { + ZEPHIR_INIT_VAR(&operator); + } + } - -ZEPHIR_INIT_CLASS(Phalcon_Di_Service_Builder) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Di\\Service, Builder, phalcon, di_service_builder, phalcon_di_service_builder_method_entry, 0); - - return SUCCESS; + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "Having"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "conditionnotin", NULL, 0, &_0, &operator, &expr, &values); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Di_Service_Builder, build) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, notInWhere) { - zend_string *_4$$10, *_28$$25; - zend_ulong _3$$10, _27$$25; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_7 = NULL, *_36 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval definition; - zval *container, container_sub, *definition_param = NULL, *parameters = NULL, parameters_sub, __$null, className, arguments, paramCalls, methodPosition, method, methodName, methodCall, instance, propertyPosition, property, propertyName, propertyValue, _0$$8, *_1$$10, _2$$10, _5$$14, _6$$14, _8$$15, _9$$15, _10$$17, _11$$17, _12$$18, _13$$18, _14$$13, _15$$20, _16$$20, _17$$21, _18$$21, _19$$19, _24$$19, _20$$23, _21$$23, _22$$24, _23$$24, *_25$$25, _26$$25, _29$$29, _30$$29, _31$$30, _32$$30, _33$$31, _34$$31, _35$$28, _37$$33, _38$$33, _39$$34, _40$$34, _41$$35, _42$$35, _43$$32; + zval values; + zval *expr_param = NULL, *values_param = NULL, *operator_param = NULL, _0; + zval expr, operator; zval *this_ptr = getThis(); - ZVAL_UNDEF(&container_sub); - ZVAL_UNDEF(¶meters_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&arguments); - ZVAL_UNDEF(¶mCalls); - ZVAL_UNDEF(&methodPosition); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&methodName); - ZVAL_UNDEF(&methodCall); - ZVAL_UNDEF(&instance); - ZVAL_UNDEF(&propertyPosition); - ZVAL_UNDEF(&property); - ZVAL_UNDEF(&propertyName); - ZVAL_UNDEF(&propertyValue); - ZVAL_UNDEF(&_0$$8); - ZVAL_UNDEF(&_2$$10); - ZVAL_UNDEF(&_5$$14); - ZVAL_UNDEF(&_6$$14); - ZVAL_UNDEF(&_8$$15); - ZVAL_UNDEF(&_9$$15); - ZVAL_UNDEF(&_10$$17); - ZVAL_UNDEF(&_11$$17); - ZVAL_UNDEF(&_12$$18); - ZVAL_UNDEF(&_13$$18); - ZVAL_UNDEF(&_14$$13); - ZVAL_UNDEF(&_15$$20); - ZVAL_UNDEF(&_16$$20); - ZVAL_UNDEF(&_17$$21); - ZVAL_UNDEF(&_18$$21); - ZVAL_UNDEF(&_19$$19); - ZVAL_UNDEF(&_24$$19); - ZVAL_UNDEF(&_20$$23); - ZVAL_UNDEF(&_21$$23); - ZVAL_UNDEF(&_22$$24); - ZVAL_UNDEF(&_23$$24); - ZVAL_UNDEF(&_26$$25); - ZVAL_UNDEF(&_29$$29); - ZVAL_UNDEF(&_30$$29); - ZVAL_UNDEF(&_31$$30); - ZVAL_UNDEF(&_32$$30); - ZVAL_UNDEF(&_33$$31); - ZVAL_UNDEF(&_34$$31); - ZVAL_UNDEF(&_35$$28); - ZVAL_UNDEF(&_37$$33); - ZVAL_UNDEF(&_38$$33); - ZVAL_UNDEF(&_39$$34); - ZVAL_UNDEF(&_40$$34); - ZVAL_UNDEF(&_41$$35); - ZVAL_UNDEF(&_42$$35); - ZVAL_UNDEF(&_43$$32); - ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&operator); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&values); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) - Z_PARAM_ARRAY(definition) + Z_PARAM_STR(expr) + Z_PARAM_ARRAY(values) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(parameters) + Z_PARAM_STR(operator) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &container, &definition_param, ¶meters); - ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); - if (!parameters) { - parameters = ¶meters_sub; - parameters = &__$null; + zephir_fetch_params(1, 2, 1, &expr_param, &values_param, &operator_param); + if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); + RETURN_MM_NULL(); } - - - ZEPHIR_OBS_VAR(&className); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&className, &definition, SL("className"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Invalid service definition. Missing 'className' parameter", "phalcon/Di/Service/Builder.zep", 41); - return; + if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { + zephir_get_strval(&expr, expr_param); + } else { + ZEPHIR_INIT_VAR(&expr); } - if (Z_TYPE_P(parameters) == IS_ARRAY) { - if (zephir_fast_count_int(parameters)) { - ZEPHIR_INIT_VAR(&instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(&instance, &className, parameters); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(&instance, &className); - zephir_check_call_status(); - } + ZEPHIR_OBS_COPY_OR_DUP(&values, values_param); + if (!operator_param) { + ZEPHIR_INIT_VAR(&operator); + ZVAL_STRING(&operator, "and"); } else { - ZEPHIR_OBS_VAR(&arguments); - if (zephir_array_isset_string_fetch(&arguments, &definition, SL("arguments"), 0)) { - ZEPHIR_CALL_METHOD(&_0$$8, this_ptr, "buildparameters", NULL, 222, container, &arguments); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(&instance, &className, &_0$$8); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&instance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(&instance, &className); - zephir_check_call_status(); - } + if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); + RETURN_MM_NULL(); } - ZEPHIR_OBS_VAR(¶mCalls); - if (zephir_array_isset_string_fetch(¶mCalls, &definition, SL("calls"), 0)) { - if (UNEXPECTED(Z_TYPE_P(&instance) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The definition has setter injection parameters but the constructor didn't return an instance", "phalcon/Di/Service/Builder.zep", 83); - return; - } - if (UNEXPECTED(Z_TYPE_P(¶mCalls) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Setter injection parameters must be an array", "phalcon/Di/Service/Builder.zep", 89); - return; - } - zephir_is_iterable(¶mCalls, 0, "phalcon/Di/Service/Builder.zep", 148); - if (Z_TYPE_P(¶mCalls) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(¶mCalls), _3$$10, _4$$10, _1$$10) - { - ZEPHIR_INIT_NVAR(&methodPosition); - if (_4$$10 != NULL) { - ZVAL_STR_COPY(&methodPosition, _4$$10); - } else { - ZVAL_LONG(&methodPosition, _3$$10); - } - ZEPHIR_INIT_NVAR(&method); - ZVAL_COPY(&method, _1$$10); - if (UNEXPECTED(Z_TYPE_P(&method) != IS_ARRAY)) { - ZEPHIR_INIT_NVAR(&_5$$14); - object_init_ex(&_5$$14, phalcon_di_exception_ce); - ZEPHIR_INIT_NVAR(&_6$$14); - ZEPHIR_CONCAT_SV(&_6$$14, "Method call must be an array on position ", &methodPosition); - ZEPHIR_CALL_METHOD(NULL, &_5$$14, "__construct", &_7, 8, &_6$$14); - zephir_check_call_status(); - zephir_throw_exception_debug(&_5$$14, "phalcon/Di/Service/Builder.zep", 103); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(&methodName); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&methodName, &method, SL("method"), 0)))) { - ZEPHIR_INIT_NVAR(&_8$$15); - object_init_ex(&_8$$15, phalcon_di_exception_ce); - ZEPHIR_INIT_NVAR(&_9$$15); - ZEPHIR_CONCAT_SV(&_9$$15, "The method name is required on position ", &methodPosition); - ZEPHIR_CALL_METHOD(NULL, &_8$$15, "__construct", &_7, 8, &_9$$15); - zephir_check_call_status(); - zephir_throw_exception_debug(&_8$$15, "phalcon/Di/Service/Builder.zep", 112); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_NVAR(&methodCall); - zephir_create_array(&methodCall, 2, 0); - zephir_array_fast_append(&methodCall, &instance); - zephir_array_fast_append(&methodCall, &methodName); - ZEPHIR_OBS_NVAR(&arguments); - if (zephir_array_isset_string_fetch(&arguments, &method, SL("arguments"), 0)) { - if (UNEXPECTED(Z_TYPE_P(&arguments) != IS_ARRAY)) { - ZEPHIR_INIT_NVAR(&_10$$17); - object_init_ex(&_10$$17, phalcon_di_exception_ce); - ZEPHIR_INIT_NVAR(&_11$$17); - ZEPHIR_CONCAT_SV(&_11$$17, "Call arguments must be an array ", &methodPosition); - ZEPHIR_CALL_METHOD(NULL, &_10$$17, "__construct", &_7, 8, &_11$$17); - zephir_check_call_status(); - zephir_throw_exception_debug(&_10$$17, "phalcon/Di/Service/Builder.zep", 124); - ZEPHIR_MM_RESTORE(); - return; - } - if (zephir_fast_count_int(&arguments)) { - ZEPHIR_INIT_NVAR(&_12$$18); - ZEPHIR_CALL_METHOD(&_13$$18, this_ptr, "buildparameters", NULL, 222, container, &arguments); - zephir_check_call_status(); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_12$$18, &methodCall, &_13$$18); - zephir_check_call_status(); - continue; - } - } - ZEPHIR_INIT_NVAR(&_14$$13); - ZEPHIR_CALL_USER_FUNC(&_14$$13, &methodCall); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, ¶mCalls, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2$$10, ¶mCalls, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2$$10)) { - break; - } - ZEPHIR_CALL_METHOD(&methodPosition, ¶mCalls, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&method, ¶mCalls, "current", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&method) != IS_ARRAY)) { - ZEPHIR_INIT_NVAR(&_15$$20); - object_init_ex(&_15$$20, phalcon_di_exception_ce); - ZEPHIR_INIT_NVAR(&_16$$20); - ZEPHIR_CONCAT_SV(&_16$$20, "Method call must be an array on position ", &methodPosition); - ZEPHIR_CALL_METHOD(NULL, &_15$$20, "__construct", &_7, 8, &_16$$20); - zephir_check_call_status(); - zephir_throw_exception_debug(&_15$$20, "phalcon/Di/Service/Builder.zep", 103); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(&methodName); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&methodName, &method, SL("method"), 0)))) { - ZEPHIR_INIT_NVAR(&_17$$21); - object_init_ex(&_17$$21, phalcon_di_exception_ce); - ZEPHIR_INIT_NVAR(&_18$$21); - ZEPHIR_CONCAT_SV(&_18$$21, "The method name is required on position ", &methodPosition); - ZEPHIR_CALL_METHOD(NULL, &_17$$21, "__construct", &_7, 8, &_18$$21); - zephir_check_call_status(); - zephir_throw_exception_debug(&_17$$21, "phalcon/Di/Service/Builder.zep", 112); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_NVAR(&_19$$19); - zephir_create_array(&_19$$19, 2, 0); - zephir_array_fast_append(&_19$$19, &instance); - zephir_array_fast_append(&_19$$19, &methodName); - ZEPHIR_CPY_WRT(&methodCall, &_19$$19); - ZEPHIR_OBS_NVAR(&arguments); - if (zephir_array_isset_string_fetch(&arguments, &method, SL("arguments"), 0)) { - if (UNEXPECTED(Z_TYPE_P(&arguments) != IS_ARRAY)) { - ZEPHIR_INIT_NVAR(&_20$$23); - object_init_ex(&_20$$23, phalcon_di_exception_ce); - ZEPHIR_INIT_NVAR(&_21$$23); - ZEPHIR_CONCAT_SV(&_21$$23, "Call arguments must be an array ", &methodPosition); - ZEPHIR_CALL_METHOD(NULL, &_20$$23, "__construct", &_7, 8, &_21$$23); - zephir_check_call_status(); - zephir_throw_exception_debug(&_20$$23, "phalcon/Di/Service/Builder.zep", 124); - ZEPHIR_MM_RESTORE(); - return; - } - if (zephir_fast_count_int(&arguments)) { - ZEPHIR_INIT_NVAR(&_22$$24); - ZEPHIR_CALL_METHOD(&_23$$24, this_ptr, "buildparameters", NULL, 222, container, &arguments); - zephir_check_call_status(); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_22$$24, &methodCall, &_23$$24); - zephir_check_call_status(); - continue; - } - } - ZEPHIR_INIT_NVAR(&_24$$19); - ZEPHIR_CALL_USER_FUNC(&_24$$19, &methodCall); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, ¶mCalls, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&method); - ZEPHIR_INIT_NVAR(&methodPosition); + if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { + zephir_get_strval(&operator, operator_param); + } else { + ZEPHIR_INIT_VAR(&operator); } - ZEPHIR_OBS_NVAR(¶mCalls); - if (zephir_array_isset_string_fetch(¶mCalls, &definition, SL("properties"), 0)) { - if (UNEXPECTED(Z_TYPE_P(&instance) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The definition has properties injection parameters but the constructor didn't return an instance", "phalcon/Di/Service/Builder.zep", 158); - return; - } - if (UNEXPECTED(Z_TYPE_P(¶mCalls) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Setter injection parameters must be an array", "phalcon/Di/Service/Builder.zep", 164); - return; - } - zephir_is_iterable(¶mCalls, 0, "phalcon/Di/Service/Builder.zep", 208); - if (Z_TYPE_P(¶mCalls) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(¶mCalls), _27$$25, _28$$25, _25$$25) - { - ZEPHIR_INIT_NVAR(&propertyPosition); - if (_28$$25 != NULL) { - ZVAL_STR_COPY(&propertyPosition, _28$$25); - } else { - ZVAL_LONG(&propertyPosition, _27$$25); - } - ZEPHIR_INIT_NVAR(&property); - ZVAL_COPY(&property, _25$$25); - if (UNEXPECTED(Z_TYPE_P(&property) != IS_ARRAY)) { - ZEPHIR_INIT_NVAR(&_29$$29); - object_init_ex(&_29$$29, phalcon_di_exception_ce); - ZEPHIR_INIT_NVAR(&_30$$29); - ZEPHIR_CONCAT_SV(&_30$$29, "Property must be an array on position ", &propertyPosition); - ZEPHIR_CALL_METHOD(NULL, &_29$$29, "__construct", &_7, 8, &_30$$29); - zephir_check_call_status(); - zephir_throw_exception_debug(&_29$$29, "phalcon/Di/Service/Builder.zep", 178); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(&propertyName); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&propertyName, &property, SL("name"), 0)))) { - ZEPHIR_INIT_NVAR(&_31$$30); - object_init_ex(&_31$$30, phalcon_di_exception_ce); - ZEPHIR_INIT_NVAR(&_32$$30); - ZEPHIR_CONCAT_SV(&_32$$30, "The property name is required on position ", &propertyPosition); - ZEPHIR_CALL_METHOD(NULL, &_31$$30, "__construct", &_7, 8, &_32$$30); - zephir_check_call_status(); - zephir_throw_exception_debug(&_31$$30, "phalcon/Di/Service/Builder.zep", 187); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(&propertyValue); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&propertyValue, &property, SL("value"), 0)))) { - ZEPHIR_INIT_NVAR(&_33$$31); - object_init_ex(&_33$$31, phalcon_di_exception_ce); - ZEPHIR_INIT_NVAR(&_34$$31); - ZEPHIR_CONCAT_SV(&_34$$31, "The property value is required on position ", &propertyPosition); - ZEPHIR_CALL_METHOD(NULL, &_33$$31, "__construct", &_7, 8, &_34$$31); - zephir_check_call_status(); - zephir_throw_exception_debug(&_33$$31, "phalcon/Di/Service/Builder.zep", 196); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CALL_METHOD(&_35$$28, this_ptr, "buildparameter", &_36, 223, container, &propertyPosition, &propertyValue); - zephir_check_call_status(); - zephir_update_property_zval_zval(&instance, &propertyName, &_35$$28); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, ¶mCalls, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_26$$25, ¶mCalls, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_26$$25)) { - break; - } - ZEPHIR_CALL_METHOD(&propertyPosition, ¶mCalls, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&property, ¶mCalls, "current", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&property) != IS_ARRAY)) { - ZEPHIR_INIT_NVAR(&_37$$33); - object_init_ex(&_37$$33, phalcon_di_exception_ce); - ZEPHIR_INIT_NVAR(&_38$$33); - ZEPHIR_CONCAT_SV(&_38$$33, "Property must be an array on position ", &propertyPosition); - ZEPHIR_CALL_METHOD(NULL, &_37$$33, "__construct", &_7, 8, &_38$$33); - zephir_check_call_status(); - zephir_throw_exception_debug(&_37$$33, "phalcon/Di/Service/Builder.zep", 178); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(&propertyName); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&propertyName, &property, SL("name"), 0)))) { - ZEPHIR_INIT_NVAR(&_39$$34); - object_init_ex(&_39$$34, phalcon_di_exception_ce); - ZEPHIR_INIT_NVAR(&_40$$34); - ZEPHIR_CONCAT_SV(&_40$$34, "The property name is required on position ", &propertyPosition); - ZEPHIR_CALL_METHOD(NULL, &_39$$34, "__construct", &_7, 8, &_40$$34); - zephir_check_call_status(); - zephir_throw_exception_debug(&_39$$34, "phalcon/Di/Service/Builder.zep", 187); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(&propertyValue); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&propertyValue, &property, SL("value"), 0)))) { - ZEPHIR_INIT_NVAR(&_41$$35); - object_init_ex(&_41$$35, phalcon_di_exception_ce); - ZEPHIR_INIT_NVAR(&_42$$35); - ZEPHIR_CONCAT_SV(&_42$$35, "The property value is required on position ", &propertyPosition); - ZEPHIR_CALL_METHOD(NULL, &_41$$35, "__construct", &_7, 8, &_42$$35); - zephir_check_call_status(); - zephir_throw_exception_debug(&_41$$35, "phalcon/Di/Service/Builder.zep", 196); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CALL_METHOD(&_43$$32, this_ptr, "buildparameter", &_36, 223, container, &propertyPosition, &propertyValue); - zephir_check_call_status(); - zephir_update_property_zval_zval(&instance, &propertyName, &_43$$32); - ZEPHIR_CALL_METHOD(NULL, ¶mCalls, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&property); - ZEPHIR_INIT_NVAR(&propertyPosition); } - RETURN_CCTOR(&instance); + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "Where"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "conditionnotin", NULL, 0, &_0, &operator, &expr, &values); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Di_Service_Builder, buildParameter) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, offset) { - zval _2$$3, _5$$5, _8$$8, _11$$10, _14$$13; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval argument; - zend_long position, ZEPHIR_LAST_CALL_STATUS; - zval *container, container_sub, *position_param = NULL, *argument_param = NULL, type, name, value, instanceArguments, _0$$3, _1$$3, _3$$5, _4$$5, _6$$8, _7$$8, _9$$10, _10$$10, _12$$13, _13$$13; + zval *offset_param = NULL, _0; + zend_long offset; zval *this_ptr = getThis(); - ZVAL_UNDEF(&container_sub); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&instanceArguments); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_6$$8); - ZVAL_UNDEF(&_7$$8); - ZVAL_UNDEF(&_9$$10); - ZVAL_UNDEF(&_10$$10); - ZVAL_UNDEF(&_12$$13); - ZVAL_UNDEF(&_13$$13); - ZVAL_UNDEF(&argument); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_8$$8); - ZVAL_UNDEF(&_11$$10); - ZVAL_UNDEF(&_14$$13); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) - Z_PARAM_LONG(position) - Z_PARAM_ARRAY(argument) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(offset) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &container, &position_param, &argument_param); - position = zephir_get_intval(position_param); - ZEPHIR_OBS_COPY_OR_DUP(&argument, argument_param); + zephir_fetch_params_without_memory_grow(1, 0, &offset_param); + offset = zephir_get_intval(offset_param); - ZEPHIR_OBS_VAR(&type); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&type, &argument, SL("type"), 0)))) { - ZEPHIR_INIT_VAR(&_0$$3); - object_init_ex(&_0$$3, phalcon_di_exception_ce); - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_LONG(&_1$$3, position); - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_CONCAT_SVS(&_2$$3, "Argument at position ", &_1$$3, " must have a type"); - ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 8, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_0$$3, "phalcon/Di/Service/Builder.zep", 228); - ZEPHIR_MM_RESTORE(); - return; - } - do { - if (ZEPHIR_IS_STRING(&type, "service")) { - ZEPHIR_OBS_VAR(&name); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&name, &argument, SL("name"), 0)))) { - ZEPHIR_INIT_VAR(&_3$$5); - object_init_ex(&_3$$5, phalcon_di_exception_ce); - ZEPHIR_INIT_VAR(&_4$$5); - ZVAL_LONG(&_4$$5, position); - ZEPHIR_INIT_VAR(&_5$$5); - ZEPHIR_CONCAT_SV(&_5$$5, "Service 'name' is required in parameter on position ", &_4$$5); - ZEPHIR_CALL_METHOD(NULL, &_3$$5, "__construct", NULL, 8, &_5$$5); - zephir_check_call_status(); - zephir_throw_exception_debug(&_3$$5, "phalcon/Di/Service/Builder.zep", 241); - ZEPHIR_MM_RESTORE(); - return; - } - if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The dependency injector container is not valid", "phalcon/Di/Service/Builder.zep", 247); - return; - } - ZEPHIR_RETURN_CALL_METHOD(container, "get", NULL, 0, &name); - zephir_check_call_status(); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&type, "parameter")) { - ZEPHIR_OBS_VAR(&value); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&value, &argument, SL("value"), 0)))) { - ZEPHIR_INIT_VAR(&_6$$8); - object_init_ex(&_6$$8, phalcon_di_exception_ce); - ZEPHIR_INIT_VAR(&_7$$8); - ZVAL_LONG(&_7$$8, position); - ZEPHIR_INIT_VAR(&_8$$8); - ZEPHIR_CONCAT_SV(&_8$$8, "Service 'value' is required in parameter on position ", &_7$$8); - ZEPHIR_CALL_METHOD(NULL, &_6$$8, "__construct", NULL, 8, &_8$$8); - zephir_check_call_status(); - zephir_throw_exception_debug(&_6$$8, "phalcon/Di/Service/Builder.zep", 259); - ZEPHIR_MM_RESTORE(); - return; - } - RETURN_CCTOR(&value); - } - if (ZEPHIR_IS_STRING(&type, "instance")) { - ZEPHIR_OBS_NVAR(&name); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&name, &argument, SL("className"), 0)))) { - ZEPHIR_INIT_VAR(&_9$$10); - object_init_ex(&_9$$10, phalcon_di_exception_ce); - ZEPHIR_INIT_VAR(&_10$$10); - ZVAL_LONG(&_10$$10, position); - ZEPHIR_INIT_VAR(&_11$$10); - ZEPHIR_CONCAT_SV(&_11$$10, "Service 'className' is required in parameter on position ", &_10$$10); - ZEPHIR_CALL_METHOD(NULL, &_9$$10, "__construct", NULL, 8, &_11$$10); - zephir_check_call_status(); - zephir_throw_exception_debug(&_9$$10, "phalcon/Di/Service/Builder.zep", 272); - ZEPHIR_MM_RESTORE(); - return; - } - if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The dependency injector container is not valid", "phalcon/Di/Service/Builder.zep", 278); - return; - } - ZEPHIR_OBS_VAR(&instanceArguments); - if (zephir_array_isset_string_fetch(&instanceArguments, &argument, SL("arguments"), 0)) { - ZEPHIR_RETURN_CALL_METHOD(container, "get", NULL, 0, &name, &instanceArguments); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_RETURN_CALL_METHOD(container, "get", NULL, 0, &name); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_INIT_VAR(&_12$$13); - object_init_ex(&_12$$13, phalcon_di_exception_ce); - ZEPHIR_INIT_VAR(&_13$$13); - ZVAL_LONG(&_13$$13, position); - ZEPHIR_INIT_VAR(&_14$$13); - ZEPHIR_CONCAT_SV(&_14$$13, "Unknown service type in parameter on position ", &_13$$13); - ZEPHIR_CALL_METHOD(NULL, &_12$$13, "__construct", NULL, 8, &_14$$13); - zephir_check_call_status(); - zephir_throw_exception_debug(&_12$$13, "phalcon/Di/Service/Builder.zep", 300); - ZEPHIR_MM_RESTORE(); - return; - } while(0); - - ZEPHIR_MM_RESTORE(); + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, offset); + zephir_update_property_zval(this_ptr, ZEND_STRL("offset"), &_0); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Di_Service_Builder, buildParameters) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, orderBy) { - zend_string *_3; - zend_ulong _2; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval arguments, buildArguments; - zval *container, container_sub, *arguments_param = NULL, position, argument, *_0, _1, _4$$3, _6$$4; + zval *orderBy, orderBy_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&container_sub); - ZVAL_UNDEF(&position); - ZVAL_UNDEF(&argument); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&arguments); - ZVAL_UNDEF(&buildArguments); + ZVAL_UNDEF(&orderBy_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) - Z_PARAM_ARRAY(arguments) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(orderBy) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &container, &arguments_param); - ZEPHIR_OBS_COPY_OR_DUP(&arguments, arguments_param); + zephir_fetch_params_without_memory_grow(1, 0, &orderBy); - ZEPHIR_INIT_VAR(&buildArguments); - array_init(&buildArguments); - zephir_is_iterable(&arguments, 0, "phalcon/Di/Service/Builder.zep", 322); - if (Z_TYPE_P(&arguments) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&arguments), _2, _3, _0) - { - ZEPHIR_INIT_NVAR(&position); - if (_3 != NULL) { - ZVAL_STR_COPY(&position, _3); - } else { - ZVAL_LONG(&position, _2); - } - ZEPHIR_INIT_NVAR(&argument); - ZVAL_COPY(&argument, _0); - ZEPHIR_CALL_METHOD(&_4$$3, this_ptr, "buildparameter", &_5, 223, container, &position, &argument); - zephir_check_call_status(); - zephir_array_append(&buildArguments, &_4$$3, PH_SEPARATE, "phalcon/Di/Service/Builder.zep", 319); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &arguments, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &arguments, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&position, &arguments, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&argument, &arguments, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_6$$4, this_ptr, "buildparameter", &_5, 223, container, &position, &argument); - zephir_check_call_status(); - zephir_array_append(&buildArguments, &_6$$4, PH_SEPARATE, "phalcon/Di/Service/Builder.zep", 319); - ZEPHIR_CALL_METHOD(NULL, &arguments, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&argument); - ZEPHIR_INIT_NVAR(&position); - RETURN_CTOR(&buildArguments); + zephir_update_property_zval(this_ptr, ZEND_STRL("order"), orderBy); + RETURN_THISW(); } +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, orHaving) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval bindParams, bindTypes; + zval *conditions_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, currentConditions, _0$$3; + zval conditions; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(¤tConditions); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(conditions) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(bindParams) + Z_PARAM_ARRAY(bindTypes) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &conditions_param, &bindParams_param, &bindTypes_param); + if (UNEXPECTED(Z_TYPE_P(conditions_param) != IS_STRING && Z_TYPE_P(conditions_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'conditions' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(conditions_param) == IS_STRING)) { + zephir_get_strval(&conditions, conditions_param); + } else { + ZEPHIR_INIT_VAR(&conditions); + } + if (!bindParams_param) { + ZEPHIR_INIT_VAR(&bindParams); + array_init(&bindParams); + } else { + zephir_get_arrval(&bindParams, bindParams_param); + } + if (!bindTypes_param) { + ZEPHIR_INIT_VAR(&bindTypes); + array_init(&bindTypes); + } else { + zephir_get_arrval(&bindTypes, bindTypes_param); + } - -ZEPHIR_INIT_CLASS(Phalcon_Dispatcher_AbstractDispatcher) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Dispatcher, AbstractDispatcher, phalcon, dispatcher_abstractdispatcher, phalcon_di_abstractinjectionaware_ce, phalcon_dispatcher_abstractdispatcher_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("activeHandler"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("activeMethodMap"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("actionName"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_dispatcher_abstractdispatcher_ce, SL("actionSuffix"), "Action", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("camelCaseMap"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_dispatcher_abstractdispatcher_ce, SL("defaultAction"), "", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("defaultNamespace"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("defaultHandler"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("handlerHashes"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("handlerName"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_dispatcher_abstractdispatcher_ce, SL("handlerSuffix"), "", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_dispatcher_abstractdispatcher_ce, SL("finished"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_dispatcher_abstractdispatcher_ce, SL("forwarded"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_dispatcher_abstractdispatcher_ce, SL("isControllerInitialize"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("lastHandler"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("modelBinder"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_dispatcher_abstractdispatcher_ce, SL("modelBinding"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("moduleName"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("namespaceName"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("params"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("previousActionName"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("previousHandlerName"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("previousNamespaceName"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("returnedValue"), ZEND_ACC_PROTECTED); - phalcon_dispatcher_abstractdispatcher_ce->create_object = zephir_init_properties_Phalcon_Dispatcher_AbstractDispatcher; - - zend_class_implements(phalcon_dispatcher_abstractdispatcher_ce, 1, phalcon_dispatcher_dispatcherinterface_ce); - zend_class_implements(phalcon_dispatcher_abstractdispatcher_ce, 1, phalcon_events_eventsawareinterface_ce); - return SUCCESS; + ZEPHIR_OBS_VAR(¤tConditions); + zephir_read_property(¤tConditions, this_ptr, ZEND_STRL("having"), PH_NOISY_CC); + if (zephir_is_true(¤tConditions)) { + ZEPHIR_INIT_VAR(&_0$$3); + ZEPHIR_CONCAT_SVSVS(&_0$$3, "(", ¤tConditions, ") OR (", &conditions, ")"); + zephir_get_strval(&conditions, &_0$$3); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "having", NULL, 0, &conditions, &bindParams, &bindTypes); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, callActionMethod) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, orWhere) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval params, _0; - zval actionMethod; - zval *handler, handler_sub, *actionMethod_param = NULL, *params_param = NULL; + zval bindParams, bindTypes; + zval *conditions_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, currentConditions, _0$$3; + zval conditions; zval *this_ptr = getThis(); - ZVAL_UNDEF(&handler_sub); - ZVAL_UNDEF(&actionMethod); - ZVAL_UNDEF(¶ms); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(¤tConditions); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_ZVAL(handler) - Z_PARAM_STR(actionMethod) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(conditions) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(params) + Z_PARAM_ARRAY(bindParams) + Z_PARAM_ARRAY(bindTypes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &handler, &actionMethod_param, ¶ms_param); - zephir_get_strval(&actionMethod, actionMethod_param); - if (!params_param) { - ZEPHIR_INIT_VAR(¶ms); - array_init(¶ms); + zephir_fetch_params(1, 1, 2, &conditions_param, &bindParams_param, &bindTypes_param); + if (UNEXPECTED(Z_TYPE_P(conditions_param) != IS_STRING && Z_TYPE_P(conditions_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'conditions' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(conditions_param) == IS_STRING)) { + zephir_get_strval(&conditions, conditions_param); } else { - ZEPHIR_OBS_COPY_OR_DUP(¶ms, params_param); + ZEPHIR_INIT_VAR(&conditions); + } + if (!bindParams_param) { + ZEPHIR_INIT_VAR(&bindParams); + array_init(&bindParams); + } else { + zephir_get_arrval(&bindParams, bindParams_param); + } + if (!bindTypes_param) { + ZEPHIR_INIT_VAR(&bindTypes); + array_init(&bindTypes); + } else { + zephir_get_arrval(&bindTypes, bindTypes_param); } - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 2, 0); - zephir_array_fast_append(&_0, handler); - zephir_array_fast_append(&_0, &actionMethod); - ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, &_0, ¶ms); + ZEPHIR_OBS_VAR(¤tConditions); + zephir_read_property(¤tConditions, this_ptr, ZEND_STRL("conditions"), PH_NOISY_CC); + if (zephir_is_true(¤tConditions)) { + ZEPHIR_INIT_VAR(&_0$$3); + ZEPHIR_CONCAT_SVSVS(&_0$$3, "(", ¤tConditions, ") OR (", &conditions, ")"); + zephir_get_strval(&conditions, &_0$$3); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "where", NULL, 0, &conditions, &bindParams, &bindTypes); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, dispatch) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, rightJoin) { - zval _45$$10; - zend_bool hasService = 0, hasEventsManager = 0, isNewHandler = 0, _7$$5, _18$$13, _23$$15, _31$$18, _36$$20, _43$$23, _53$$25, _57$$31, _63$$33, _67$$36, _73$$38, _79$$43, _84$$46, _89$$48, _105$$59, _110$$62, _115$$64, _118$$67, _123$$69, _130$$73; + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval __$true, __$false, value, handler, container, namespaceName, handlerName, actionName, params, eventsManager, handlerClass, status, actionMethod, modelBinder, bindCacheKey, handlerHash, e, _0, _1$$3, _3$$3, _4$$3, _5$$5, _6$$5, _8$$5, _9$$4, _10$$7, _11$$11, _12$$11, _15$$13, _16$$13, _19$$13, _20$$12, _21$$15, _24$$15, _26$$10, _38$$10, _39$$10, _102$$10, _28$$18, _29$$18, _33$$20, _34$$20, _40$$23, _41$$23, _46$$26, _47$$26, _49$$26, _50$$25, _51$$25, _54$$31, _55$$31, _58$$31, _60$$30, _61$$33, _64$$33, _66$$36, _68$$36, _70$$35, _71$$38, _74$$38, _76$$41, _77$$43, _80$$43, _81$$46, _82$$46, _85$$46, _86$$45, _87$$48, _90$$48, _91$$50, _92$$50, _93$$51, _94$$51, _96$$51, _97$$54, _98$$54, _99$$57, _101$$57, _103$$59, _106$$59, _107$$62, _108$$62, _111$$62, _112$$61, _113$$64, _116$$64, _117$$67, _119$$67, _120$$66, _121$$69, _124$$69, _125$$72, _127$$71, _128$$73, _131$$73, _132$$76, _133$$75, _134$$77; - zend_long ZEPHIR_LAST_CALL_STATUS, numberDispatches = 0; - zephir_fcall_cache_entry *_2 = NULL, *_13 = NULL, *_14 = NULL, *_17 = NULL, *_22 = NULL, *_25 = NULL, *_27 = NULL, *_30 = NULL, *_32 = NULL, *_35 = NULL, *_37 = NULL, *_42 = NULL, *_44 = NULL, *_48 = NULL, *_52 = NULL, *_56 = NULL, *_59 = NULL, *_62 = NULL, *_65 = NULL, *_69 = NULL, *_72 = NULL, *_75 = NULL, *_78 = NULL, *_83 = NULL, *_88 = NULL, *_95 = NULL, *_100 = NULL, *_104 = NULL, *_109 = NULL, *_114 = NULL, *_122 = NULL, *_126 = NULL, *_129 = NULL; + zval *model_param = NULL, *conditions_param = NULL, *alias_param = NULL, _1; + zval model, conditions, alias; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&handler); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&namespaceName); - ZVAL_UNDEF(&handlerName); - ZVAL_UNDEF(&actionName); - ZVAL_UNDEF(¶ms); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&handlerClass); - ZVAL_UNDEF(&status); - ZVAL_UNDEF(&actionMethod); - ZVAL_UNDEF(&modelBinder); - ZVAL_UNDEF(&bindCacheKey); - ZVAL_UNDEF(&handlerHash); - ZVAL_UNDEF(&e); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(&alias); + ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_10$$7); - ZVAL_UNDEF(&_11$$11); - ZVAL_UNDEF(&_12$$11); - ZVAL_UNDEF(&_15$$13); - ZVAL_UNDEF(&_16$$13); - ZVAL_UNDEF(&_19$$13); - ZVAL_UNDEF(&_20$$12); - ZVAL_UNDEF(&_21$$15); - ZVAL_UNDEF(&_24$$15); - ZVAL_UNDEF(&_26$$10); - ZVAL_UNDEF(&_38$$10); - ZVAL_UNDEF(&_39$$10); - ZVAL_UNDEF(&_102$$10); - ZVAL_UNDEF(&_28$$18); - ZVAL_UNDEF(&_29$$18); - ZVAL_UNDEF(&_33$$20); - ZVAL_UNDEF(&_34$$20); - ZVAL_UNDEF(&_40$$23); - ZVAL_UNDEF(&_41$$23); - ZVAL_UNDEF(&_46$$26); - ZVAL_UNDEF(&_47$$26); - ZVAL_UNDEF(&_49$$26); - ZVAL_UNDEF(&_50$$25); - ZVAL_UNDEF(&_51$$25); - ZVAL_UNDEF(&_54$$31); - ZVAL_UNDEF(&_55$$31); - ZVAL_UNDEF(&_58$$31); - ZVAL_UNDEF(&_60$$30); - ZVAL_UNDEF(&_61$$33); - ZVAL_UNDEF(&_64$$33); - ZVAL_UNDEF(&_66$$36); - ZVAL_UNDEF(&_68$$36); - ZVAL_UNDEF(&_70$$35); - ZVAL_UNDEF(&_71$$38); - ZVAL_UNDEF(&_74$$38); - ZVAL_UNDEF(&_76$$41); - ZVAL_UNDEF(&_77$$43); - ZVAL_UNDEF(&_80$$43); - ZVAL_UNDEF(&_81$$46); - ZVAL_UNDEF(&_82$$46); - ZVAL_UNDEF(&_85$$46); - ZVAL_UNDEF(&_86$$45); - ZVAL_UNDEF(&_87$$48); - ZVAL_UNDEF(&_90$$48); - ZVAL_UNDEF(&_91$$50); - ZVAL_UNDEF(&_92$$50); - ZVAL_UNDEF(&_93$$51); - ZVAL_UNDEF(&_94$$51); - ZVAL_UNDEF(&_96$$51); - ZVAL_UNDEF(&_97$$54); - ZVAL_UNDEF(&_98$$54); - ZVAL_UNDEF(&_99$$57); - ZVAL_UNDEF(&_101$$57); - ZVAL_UNDEF(&_103$$59); - ZVAL_UNDEF(&_106$$59); - ZVAL_UNDEF(&_107$$62); - ZVAL_UNDEF(&_108$$62); - ZVAL_UNDEF(&_111$$62); - ZVAL_UNDEF(&_112$$61); - ZVAL_UNDEF(&_113$$64); - ZVAL_UNDEF(&_116$$64); - ZVAL_UNDEF(&_117$$67); - ZVAL_UNDEF(&_119$$67); - ZVAL_UNDEF(&_120$$66); - ZVAL_UNDEF(&_121$$69); - ZVAL_UNDEF(&_124$$69); - ZVAL_UNDEF(&_125$$72); - ZVAL_UNDEF(&_127$$71); - ZVAL_UNDEF(&_128$$73); - ZVAL_UNDEF(&_131$$73); - ZVAL_UNDEF(&_132$$76); - ZVAL_UNDEF(&_133$$75); - ZVAL_UNDEF(&_134$$77); - ZVAL_UNDEF(&_45$$10); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(model) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(conditions) + Z_PARAM_STR_OR_NULL(alias) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - if (Z_TYPE_P(&container) != IS_OBJECT) { - ZEPHIR_INIT_VAR(&_3$$3); - ZVAL_STRING(&_3$$3, "related dispatching services"); - ZEPHIR_CALL_CE_STATIC(&_1$$3, phalcon_dispatcher_exception_ce, "containerservicenotfound", &_2, 0, &_3$$3); - zephir_check_call_status(); - ZVAL_LONG(&_4$$3, 0); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "throwdispatchexception", NULL, 0, &_1$$3, &_4$$3); - zephir_check_call_status(); - RETURN_MM_BOOL(0); + zephir_fetch_params(1, 1, 2, &model_param, &conditions_param, &alias_param); + if (UNEXPECTED(Z_TYPE_P(model_param) != IS_STRING && Z_TYPE_P(model_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'model' must be of the type string")); + RETURN_MM_NULL(); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_0); - hasEventsManager = Z_TYPE_P(&eventsManager) == IS_OBJECT; - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("finished"), &__$true); + if (EXPECTED(Z_TYPE_P(model_param) == IS_STRING)) { + zephir_get_strval(&model, model_param); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("finished"), &__$false); + ZEPHIR_INIT_VAR(&model); + } + if (!conditions_param) { + ZEPHIR_INIT_VAR(&conditions); + } else { + zephir_get_strval(&conditions, conditions_param); + } + if (!alias_param) { + ZEPHIR_INIT_VAR(&alias); + } else { + zephir_get_strval(&alias, alias_param); } - if (hasEventsManager) { - /* try_start_1: */ - ZEPHIR_INIT_VAR(&_6$$5); - ZVAL_STRING(&_6$$5, "dispatch:beforeDispatchLoop"); - ZEPHIR_CALL_METHOD(&_5$$5, &eventsManager, "fire", NULL, 0, &_6$$5, this_ptr); - zephir_check_call_status_or_jump(try_end_1); - _7$$5 = ZEPHIR_IS_FALSE_IDENTICAL(&_5$$5); - if (_7$$5) { - zephir_read_property(&_8$$5, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - _7$$5 = !ZEPHIR_IS_FALSE_IDENTICAL(&_8$$5); - } - if (_7$$5) { - RETURN_MM_BOOL(0); - } + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 4, 0); + zephir_array_fast_append(&_0, &model); + zephir_array_fast_append(&_0, &conditions); + zephir_array_fast_append(&_0, &alias); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "RIGHT"); + zephir_array_fast_append(&_0, &_1); + zephir_update_property_array_append(this_ptr, SL("joins"), &_0); + RETURN_THIS(); +} - try_end_1: +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, setBindParams) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_bool merge; + zval *bindParams_param = NULL, *merge_param = NULL, currentBindParams, _0$$4; + zval bindParams; + zval *this_ptr = getThis(); - if (EG(exception)) { - ZEPHIR_INIT_VAR(&_9$$4); - ZVAL_OBJ(&_9$$4, EG(exception)); - Z_ADDREF_P(&_9$$4); - if (zephir_is_instance_of(&_9$$4, SL("Exception"))) { - zend_clear_exception(); - ZEPHIR_CPY_WRT(&e, &_9$$4); - ZEPHIR_CALL_METHOD(&status, this_ptr, "handleexception", NULL, 0, &e); - zephir_check_call_status(); - zephir_read_property(&_10$$7, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - if (!ZEPHIR_IS_FALSE_IDENTICAL(&_10$$7)) { - if (ZEPHIR_IS_FALSE_IDENTICAL(&status)) { - RETURN_MM_BOOL(0); - } - zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 231); - ZEPHIR_MM_RESTORE(); - return; - } - } - } - } - ZEPHIR_INIT_VAR(&value); - ZVAL_NULL(&value); - ZEPHIR_INIT_VAR(&handler); - ZVAL_NULL(&handler); - numberDispatches = 0; - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("finished"), &__$true); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(¤tBindParams); + ZVAL_UNDEF(&_0$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(bindParams) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(merge) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &bindParams_param, &merge_param); + ZEPHIR_OBS_COPY_OR_DUP(&bindParams, bindParams_param); + if (!merge_param) { + merge = 0; } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("finished"), &__$false); + merge = zephir_get_boolval(merge_param); } - while (1) { - zephir_read_property(&_0, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - if (!(!(zephir_is_true(&_0)))) { - break; - } - numberDispatches++; - if (UNEXPECTED(numberDispatches == 256)) { - ZEPHIR_INIT_NVAR(&_11$$11); - ZVAL_STRING(&_11$$11, "Dispatcher has detected a cyclic routing causing stability problems"); - ZVAL_LONG(&_12$$11, 1); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "throwdispatchexception", &_13, 0, &_11$$11, &_12$$11); - zephir_check_call_status(); - break; - } - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("finished"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("finished"), &__$false); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "resolveemptyproperties", &_14, 0); - zephir_check_call_status(); - if (hasEventsManager) { - /* try_start_2: */ - ZEPHIR_INIT_NVAR(&_16$$13); - ZVAL_STRING(&_16$$13, "dispatch:beforeDispatch"); - ZEPHIR_CALL_METHOD(&_15$$13, &eventsManager, "fire", &_17, 0, &_16$$13, this_ptr); - zephir_check_call_status_or_jump(try_end_2); - _18$$13 = ZEPHIR_IS_FALSE_IDENTICAL(&_15$$13); - if (!(_18$$13)) { - zephir_read_property(&_19$$13, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - _18$$13 = ZEPHIR_IS_FALSE_IDENTICAL(&_19$$13); - } - if (_18$$13) { - continue; - } + if (merge) { + zephir_read_property(¤tBindParams, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(¤tBindParams) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&_0$$4); + zephir_add_function(&_0$$4, ¤tBindParams, &bindParams); + zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &_0$$4); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &bindParams); + } + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &bindParams); + } + RETURN_THIS(); +} - try_end_2: +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, setBindTypes) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_bool merge; + zval *bindTypes_param = NULL, *merge_param = NULL, currentBindTypes, _0$$4; + zval bindTypes; + zval *this_ptr = getThis(); - if (EG(exception)) { - ZEPHIR_INIT_NVAR(&_20$$12); - ZVAL_OBJ(&_20$$12, EG(exception)); - Z_ADDREF_P(&_20$$12); - if (zephir_is_instance_of(&_20$$12, SL("Exception"))) { - zend_clear_exception(); - ZEPHIR_CPY_WRT(&e, &_20$$12); - ZEPHIR_CALL_METHOD(&_21$$15, this_ptr, "handleexception", &_22, 0, &e); - zephir_check_call_status(); - _23$$15 = ZEPHIR_IS_FALSE_IDENTICAL(&_21$$15); - if (!(_23$$15)) { - zephir_read_property(&_24$$15, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - _23$$15 = ZEPHIR_IS_FALSE_IDENTICAL(&_24$$15); - } - if (_23$$15) { - continue; - } - zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 271); - ZEPHIR_MM_RESTORE(); - return; - } - } - } - ZEPHIR_CALL_METHOD(&handlerClass, this_ptr, "gethandlerclass", &_25, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_26$$10, &container, "has", &_27, 0, &handlerClass); - zephir_check_call_status(); - hasService = zephir_get_boolval(&_26$$10); - if (!(hasService)) { - hasService = zephir_class_exists(&handlerClass, 1); - } - if (!(hasService)) { - ZEPHIR_INIT_NVAR(&_28$$18); - ZEPHIR_CONCAT_VS(&_28$$18, &handlerClass, " handler class cannot be loaded"); - ZVAL_LONG(&_29$$18, 2); - ZEPHIR_CALL_METHOD(&status, this_ptr, "throwdispatchexception", &_30, 0, &_28$$18, &_29$$18); - zephir_check_call_status(); - _31$$18 = ZEPHIR_IS_FALSE_IDENTICAL(&status); - if (_31$$18) { - zephir_read_property(&_29$$18, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - _31$$18 = ZEPHIR_IS_FALSE_IDENTICAL(&_29$$18); - } - if (_31$$18) { - continue; - } - break; - } - ZEPHIR_CALL_METHOD(&handler, &container, "getshared", &_32, 0, &handlerClass); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&handler) != IS_OBJECT)) { - ZEPHIR_INIT_NVAR(&_33$$20); - ZVAL_STRING(&_33$$20, "Invalid handler returned from the services container"); - ZVAL_LONG(&_34$$20, 3); - ZEPHIR_CALL_METHOD(&status, this_ptr, "throwdispatchexception", &_35, 0, &_33$$20, &_34$$20); - zephir_check_call_status(); - _36$$20 = ZEPHIR_IS_FALSE_IDENTICAL(&status); - if (_36$$20) { - zephir_read_property(&_34$$20, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - _36$$20 = ZEPHIR_IS_FALSE_IDENTICAL(&_34$$20); - } - if (_36$$20) { - continue; - } - break; - } - ZEPHIR_CALL_FUNCTION(&handlerHash, "spl_object_hash", &_37, 100, &handler); - zephir_check_call_status(); - zephir_read_property(&_38$$10, this_ptr, ZEND_STRL("handlerHashes"), PH_NOISY_CC | PH_READONLY); - isNewHandler = !((zephir_array_isset(&_38$$10, &handlerHash))); - if (isNewHandler) { - zephir_update_property_array(this_ptr, SL("handlerHashes"), &handlerHash, &__$true); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("activeHandler"), &handler); - zephir_read_property(&_39$$10, this_ptr, ZEND_STRL("namespaceName"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&namespaceName, &_39$$10); - zephir_read_property(&_39$$10, this_ptr, ZEND_STRL("handlerName"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&handlerName, &_39$$10); - zephir_read_property(&_39$$10, this_ptr, ZEND_STRL("actionName"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&actionName, &_39$$10); - zephir_read_property(&_39$$10, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(¶ms, &_39$$10); - if (UNEXPECTED(Z_TYPE_P(¶ms) != IS_ARRAY)) { - ZEPHIR_INIT_NVAR(&_40$$23); - ZVAL_STRING(&_40$$23, "Action parameters must be an Array"); - ZVAL_LONG(&_41$$23, 4); - ZEPHIR_CALL_METHOD(&status, this_ptr, "throwdispatchexception", &_42, 0, &_40$$23, &_41$$23); - zephir_check_call_status(); - _43$$23 = ZEPHIR_IS_FALSE_IDENTICAL(&status); - if (_43$$23) { - zephir_read_property(&_41$$23, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - _43$$23 = ZEPHIR_IS_FALSE_IDENTICAL(&_41$$23); - } - if (_43$$23) { - continue; - } - break; - } - ZEPHIR_CALL_METHOD(&actionMethod, this_ptr, "getactivemethod", &_44, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_45$$10); - zephir_create_array(&_45$$10, 2, 0); - zephir_array_fast_append(&_45$$10, &handler); - zephir_array_fast_append(&_45$$10, &actionMethod); - if (UNEXPECTED(!(zephir_is_callable(&_45$$10)))) { - if (hasEventsManager) { - ZEPHIR_INIT_NVAR(&_47$$26); - ZVAL_STRING(&_47$$26, "dispatch:beforeNotFoundAction"); - ZEPHIR_CALL_METHOD(&_46$$26, &eventsManager, "fire", &_48, 0, &_47$$26, this_ptr); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_46$$26)) { - continue; - } - zephir_read_property(&_49$$26, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_49$$26)) { - continue; - } - } - ZEPHIR_INIT_NVAR(&_50$$25); - ZEPHIR_CONCAT_SVSVS(&_50$$25, "Action '", &actionName, "' was not found on handler '", &handlerName, "'"); - ZVAL_LONG(&_51$$25, 5); - ZEPHIR_CALL_METHOD(&status, this_ptr, "throwdispatchexception", &_52, 0, &_50$$25, &_51$$25); - zephir_check_call_status(); - _53$$25 = ZEPHIR_IS_FALSE_IDENTICAL(&status); - if (_53$$25) { - zephir_read_property(&_51$$25, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - _53$$25 = ZEPHIR_IS_FALSE_IDENTICAL(&_51$$25); - } - if (_53$$25) { - continue; - } - break; - } - if (hasEventsManager) { + ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(¤tBindTypes); + ZVAL_UNDEF(&_0$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(bindTypes) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(merge) + ZEND_PARSE_PARAMETERS_END(); +#endif - /* try_start_3: */ - ZEPHIR_INIT_NVAR(&_55$$31); - ZVAL_STRING(&_55$$31, "dispatch:beforeExecuteRoute"); - ZEPHIR_CALL_METHOD(&_54$$31, &eventsManager, "fire", &_56, 0, &_55$$31, this_ptr); - zephir_check_call_status_or_jump(try_end_3); - _57$$31 = ZEPHIR_IS_FALSE_IDENTICAL(&_54$$31); - if (!(_57$$31)) { - zephir_read_property(&_58$$31, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - _57$$31 = ZEPHIR_IS_FALSE_IDENTICAL(&_58$$31); - } - if (_57$$31) { - ZEPHIR_CALL_METHOD(NULL, &container, "remove", &_59, 0, &handlerClass); - zephir_check_call_status_or_jump(try_end_3); - continue; - } + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &bindTypes_param, &merge_param); + ZEPHIR_OBS_COPY_OR_DUP(&bindTypes, bindTypes_param); + if (!merge_param) { + merge = 0; + } else { + merge = zephir_get_boolval(merge_param); + } - try_end_3: - if (EG(exception)) { - ZEPHIR_INIT_NVAR(&_60$$30); - ZVAL_OBJ(&_60$$30, EG(exception)); - Z_ADDREF_P(&_60$$30); - if (zephir_is_instance_of(&_60$$30, SL("Exception"))) { - zend_clear_exception(); - ZEPHIR_CPY_WRT(&e, &_60$$30); - ZEPHIR_CALL_METHOD(&_61$$33, this_ptr, "handleexception", &_62, 0, &e); - zephir_check_call_status(); - _63$$33 = ZEPHIR_IS_FALSE_IDENTICAL(&_61$$33); - if (!(_63$$33)) { - zephir_read_property(&_64$$33, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - _63$$33 = ZEPHIR_IS_FALSE_IDENTICAL(&_64$$33); - } - if (_63$$33) { - ZEPHIR_CALL_METHOD(NULL, &container, "remove", &_65, 0, &handlerClass); - zephir_check_call_status(); - continue; - } - zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 412); - ZEPHIR_MM_RESTORE(); - return; - } - } + if (UNEXPECTED(merge)) { + zephir_read_property(¤tBindTypes, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(¤tBindTypes) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&_0$$4); + zephir_add_function(&_0$$4, ¤tBindTypes, &bindTypes); + zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &_0$$4); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &bindTypes); } - if ((zephir_method_exists_ex(&handler, ZEND_STRL("beforeexecuteroute")) == SUCCESS)) { + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &bindTypes); + } + RETURN_THIS(); +} - /* try_start_4: */ +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, setDI) +{ + zval *container, container_sub; + zval *this_ptr = getThis(); - ZEPHIR_CALL_METHOD(&_66$$36, &handler, "beforeexecuteroute", NULL, 0, this_ptr); - zephir_check_call_status_or_jump(try_end_4); - _67$$36 = ZEPHIR_IS_FALSE_IDENTICAL(&_66$$36); - if (!(_67$$36)) { - zephir_read_property(&_68$$36, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - _67$$36 = ZEPHIR_IS_FALSE_IDENTICAL(&_68$$36); - } - if (_67$$36) { - ZEPHIR_CALL_METHOD(NULL, &container, "remove", &_69, 0, &handlerClass); - zephir_check_call_status_or_jump(try_end_4); - continue; - } + ZVAL_UNDEF(&container_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif - try_end_4: - if (EG(exception)) { - ZEPHIR_INIT_NVAR(&_70$$35); - ZVAL_OBJ(&_70$$35, EG(exception)); - Z_ADDREF_P(&_70$$35); - if (zephir_is_instance_of(&_70$$35, SL("Exception"))) { - zend_clear_exception(); - ZEPHIR_CPY_WRT(&e, &_70$$35); - ZEPHIR_CALL_METHOD(&_71$$38, this_ptr, "handleexception", &_72, 0, &e); - zephir_check_call_status(); - _73$$38 = ZEPHIR_IS_FALSE_IDENTICAL(&_71$$38); - if (!(_73$$38)) { - zephir_read_property(&_74$$38, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - _73$$38 = ZEPHIR_IS_FALSE_IDENTICAL(&_74$$38); - } - if (_73$$38) { - ZEPHIR_CALL_METHOD(NULL, &container, "remove", &_75, 0, &handlerClass); - zephir_check_call_status(); - continue; - } - zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 431); - ZEPHIR_MM_RESTORE(); - return; - } - } - } - if (isNewHandler) { - if ((zephir_method_exists_ex(&handler, ZEND_STRL("initialize")) == SUCCESS)) { + zephir_fetch_params_without_memory_grow(1, 0, &container); - /* try_start_5: */ - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("isControllerInitialize"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("isControllerInitialize"), &__$false); - } - ZEPHIR_CALL_METHOD(NULL, &handler, "initialize", NULL, 0); - zephir_check_call_status_or_jump(try_end_5); + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); +} - try_end_5: +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, where) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval bindParams, bindTypes; + zval *conditions_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, currentBindParams, currentBindTypes, _0$$4, _1$$7; + zval conditions; + zval *this_ptr = getThis(); - if (EG(exception)) { - ZEPHIR_INIT_NVAR(&_76$$41); - ZVAL_OBJ(&_76$$41, EG(exception)); - Z_ADDREF_P(&_76$$41); - if (zephir_is_instance_of(&_76$$41, SL("Exception"))) { - zend_clear_exception(); - ZEPHIR_CPY_WRT(&e, &_76$$41); - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("isControllerInitialize"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("isControllerInitialize"), &__$false); - } - ZEPHIR_CALL_METHOD(&_77$$43, this_ptr, "handleexception", &_78, 0, &e); - zephir_check_call_status(); - _79$$43 = ZEPHIR_IS_FALSE_IDENTICAL(&_77$$43); - if (!(_79$$43)) { - zephir_read_property(&_80$$43, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - _79$$43 = ZEPHIR_IS_FALSE_IDENTICAL(&_80$$43); - } - if (_79$$43) { - continue; - } - zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 473); - ZEPHIR_MM_RESTORE(); - return; - } - } - } - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("isControllerInitialize"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("isControllerInitialize"), &__$false); - } - if (zephir_is_true(&eventsManager)) { + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(¤tBindParams); + ZVAL_UNDEF(¤tBindTypes); + ZVAL_UNDEF(&_0$$4); + ZVAL_UNDEF(&_1$$7); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(conditions) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(bindParams) + Z_PARAM_ARRAY(bindTypes) + ZEND_PARSE_PARAMETERS_END(); +#endif - /* try_start_6: */ - ZEPHIR_INIT_NVAR(&_82$$46); - ZVAL_STRING(&_82$$46, "dispatch:afterInitialize"); - ZEPHIR_CALL_METHOD(&_81$$46, &eventsManager, "fire", &_83, 0, &_82$$46, this_ptr); - zephir_check_call_status_or_jump(try_end_6); - _84$$46 = ZEPHIR_IS_FALSE_IDENTICAL(&_81$$46); - if (!(_84$$46)) { - zephir_read_property(&_85$$46, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - _84$$46 = ZEPHIR_IS_FALSE_IDENTICAL(&_85$$46); - } - if (_84$$46) { - continue; - } + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &conditions_param, &bindParams_param, &bindTypes_param); + zephir_get_strval(&conditions, conditions_param); + if (!bindParams_param) { + ZEPHIR_INIT_VAR(&bindParams); + array_init(&bindParams); + } else { + zephir_get_arrval(&bindParams, bindParams_param); + } + if (!bindTypes_param) { + ZEPHIR_INIT_VAR(&bindTypes); + array_init(&bindTypes); + } else { + zephir_get_arrval(&bindTypes, bindTypes_param); + } - try_end_6: - if (EG(exception)) { - ZEPHIR_INIT_NVAR(&_86$$45); - ZVAL_OBJ(&_86$$45, EG(exception)); - Z_ADDREF_P(&_86$$45); - if (zephir_is_instance_of(&_86$$45, SL("Exception"))) { - zend_clear_exception(); - ZEPHIR_CPY_WRT(&e, &_86$$45); - ZEPHIR_CALL_METHOD(&_87$$48, this_ptr, "handleexception", &_88, 0, &e); - zephir_check_call_status(); - _89$$48 = ZEPHIR_IS_FALSE_IDENTICAL(&_87$$48); - if (!(_89$$48)) { - zephir_read_property(&_90$$48, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - _89$$48 = ZEPHIR_IS_FALSE_IDENTICAL(&_90$$48); - } - if (_89$$48) { - continue; - } - zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 492); - ZEPHIR_MM_RESTORE(); - return; - } - } - } - } - zephir_read_property(&_39$$10, this_ptr, ZEND_STRL("modelBinding"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_39$$10)) { - zephir_read_property(&_91$$50, this_ptr, ZEND_STRL("modelBinder"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&modelBinder, &_91$$50); - ZEPHIR_INIT_NVAR(&bindCacheKey); - ZEPHIR_CONCAT_SVSV(&bindCacheKey, "_PHMB_", &handlerClass, "_", &actionMethod); - ZEPHIR_CALL_METHOD(&_92$$50, &modelBinder, "bindtohandler", NULL, 0, &handler, ¶ms, &bindCacheKey, &actionMethod); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(¶ms, &_92$$50); - } - if (hasEventsManager) { - ZEPHIR_INIT_NVAR(&_94$$51); - ZVAL_STRING(&_94$$51, "dispatch:afterBinding"); - ZEPHIR_CALL_METHOD(&_93$$51, &eventsManager, "fire", &_95, 0, &_94$$51, this_ptr); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_93$$51)) { - continue; - } - zephir_read_property(&_96$$51, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_96$$51)) { - continue; - } + zephir_update_property_zval(this_ptr, ZEND_STRL("conditions"), &conditions); + if (zephir_fast_count_int(&bindParams) > 0) { + ZEPHIR_OBS_VAR(¤tBindParams); + zephir_read_property(¤tBindParams, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC); + if (Z_TYPE_P(¤tBindParams) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&_0$$4); + zephir_add_function(&_0$$4, ¤tBindParams, &bindParams); + zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &_0$$4); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &bindParams); } - if ((zephir_method_exists_ex(&handler, ZEND_STRL("afterbinding")) == SUCCESS)) { - ZEPHIR_CALL_METHOD(&_97$$54, &handler, "afterbinding", NULL, 0, this_ptr); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_97$$54)) { - continue; - } - zephir_read_property(&_98$$54, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_98$$54)) { - continue; - } + } + if (zephir_fast_count_int(&bindTypes) > 0) { + zephir_read_property(¤tBindTypes, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(¤tBindTypes) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&_1$$7); + zephir_add_function(&_1$$7, ¤tBindTypes, &bindTypes); + zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &_1$$7); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &bindTypes); } - zephir_update_property_zval(this_ptr, ZEND_STRL("lastHandler"), &handler); - - /* try_start_7: */ + } + RETURN_THIS(); +} - ZEPHIR_CALL_METHOD(&_99$$57, this_ptr, "callactionmethod", &_100, 0, &handler, &actionMethod, ¶ms); - zephir_check_call_status_or_jump(try_end_7); - zephir_update_property_zval(this_ptr, ZEND_STRL("returnedValue"), &_99$$57); - zephir_read_property(&_101$$57, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_101$$57)) { - continue; - } - - try_end_7: - - if (EG(exception)) { - ZEPHIR_INIT_NVAR(&_102$$10); - ZVAL_OBJ(&_102$$10, EG(exception)); - Z_ADDREF_P(&_102$$10); - if (zephir_is_instance_of(&_102$$10, SL("Exception"))) { - zend_clear_exception(); - ZEPHIR_CPY_WRT(&e, &_102$$10); - ZEPHIR_CALL_METHOD(&_103$$59, this_ptr, "handleexception", &_104, 0, &e); - zephir_check_call_status(); - _105$$59 = ZEPHIR_IS_FALSE_IDENTICAL(&_103$$59); - if (!(_105$$59)) { - zephir_read_property(&_106$$59, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - _105$$59 = ZEPHIR_IS_FALSE_IDENTICAL(&_106$$59); - } - if (_105$$59) { - continue; - } - zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 564); - ZEPHIR_MM_RESTORE(); - return; - } - } - if (hasEventsManager) { - - /* try_start_8: */ - - ZEPHIR_INIT_NVAR(&_108$$62); - ZVAL_STRING(&_108$$62, "dispatch:afterExecuteRoute"); - ZEPHIR_CALL_METHOD(&_107$$62, &eventsManager, "fire", &_109, 0, &_108$$62, this_ptr, &value); - zephir_check_call_status_or_jump(try_end_8); - _110$$62 = ZEPHIR_IS_FALSE_IDENTICAL(&_107$$62); - if (!(_110$$62)) { - zephir_read_property(&_111$$62, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - _110$$62 = ZEPHIR_IS_FALSE_IDENTICAL(&_111$$62); - } - if (_110$$62) { - continue; - } - - try_end_8: - - if (EG(exception)) { - ZEPHIR_INIT_NVAR(&_112$$61); - ZVAL_OBJ(&_112$$61, EG(exception)); - Z_ADDREF_P(&_112$$61); - if (zephir_is_instance_of(&_112$$61, SL("Exception"))) { - zend_clear_exception(); - ZEPHIR_CPY_WRT(&e, &_112$$61); - ZEPHIR_CALL_METHOD(&_113$$64, this_ptr, "handleexception", &_114, 0, &e); - zephir_check_call_status(); - _115$$64 = ZEPHIR_IS_FALSE_IDENTICAL(&_113$$64); - if (!(_115$$64)) { - zephir_read_property(&_116$$64, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - _115$$64 = ZEPHIR_IS_FALSE_IDENTICAL(&_116$$64); - } - if (_115$$64) { - continue; - } - zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 580); - ZEPHIR_MM_RESTORE(); - return; - } - } - } - if ((zephir_method_exists_ex(&handler, ZEND_STRL("afterexecuteroute")) == SUCCESS)) { - - /* try_start_9: */ - - ZEPHIR_CALL_METHOD(&_117$$67, &handler, "afterexecuteroute", NULL, 0, this_ptr, &value); - zephir_check_call_status_or_jump(try_end_9); - _118$$67 = ZEPHIR_IS_FALSE_IDENTICAL(&_117$$67); - if (!(_118$$67)) { - zephir_read_property(&_119$$67, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - _118$$67 = ZEPHIR_IS_FALSE_IDENTICAL(&_119$$67); - } - if (_118$$67) { - continue; - } - - try_end_9: - - if (EG(exception)) { - ZEPHIR_INIT_NVAR(&_120$$66); - ZVAL_OBJ(&_120$$66, EG(exception)); - Z_ADDREF_P(&_120$$66); - if (zephir_is_instance_of(&_120$$66, SL("Exception"))) { - zend_clear_exception(); - ZEPHIR_CPY_WRT(&e, &_120$$66); - ZEPHIR_CALL_METHOD(&_121$$69, this_ptr, "handleexception", &_122, 0, &e); - zephir_check_call_status(); - _123$$69 = ZEPHIR_IS_FALSE_IDENTICAL(&_121$$69); - if (!(_123$$69)) { - zephir_read_property(&_124$$69, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - _123$$69 = ZEPHIR_IS_FALSE_IDENTICAL(&_124$$69); - } - if (_123$$69) { - continue; - } - zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 597); - ZEPHIR_MM_RESTORE(); - return; - } - } - } - if (hasEventsManager) { - - /* try_start_10: */ - - ZEPHIR_INIT_NVAR(&_125$$72); - ZVAL_STRING(&_125$$72, "dispatch:afterDispatch"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_126, 0, &_125$$72, this_ptr, &value); - zephir_check_call_status_or_jump(try_end_10); - - try_end_10: - - if (EG(exception)) { - ZEPHIR_INIT_NVAR(&_127$$71); - ZVAL_OBJ(&_127$$71, EG(exception)); - Z_ADDREF_P(&_127$$71); - if (zephir_is_instance_of(&_127$$71, SL("Exception"))) { - zend_clear_exception(); - ZEPHIR_CPY_WRT(&e, &_127$$71); - ZEPHIR_CALL_METHOD(&_128$$73, this_ptr, "handleexception", &_129, 0, &e); - zephir_check_call_status(); - _130$$73 = ZEPHIR_IS_FALSE_IDENTICAL(&_128$$73); - if (!(_130$$73)) { - zephir_read_property(&_131$$73, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); - _130$$73 = ZEPHIR_IS_FALSE_IDENTICAL(&_131$$73); - } - if (_130$$73) { - continue; - } - zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 614); - ZEPHIR_MM_RESTORE(); - return; - } - } - } - } - if (hasEventsManager) { - - /* try_start_11: */ - - ZEPHIR_INIT_VAR(&_132$$76); - ZVAL_STRING(&_132$$76, "dispatch:afterDispatchLoop"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_132$$76, this_ptr); - zephir_check_call_status_or_jump(try_end_11); - - try_end_11: - - if (EG(exception)) { - ZEPHIR_INIT_VAR(&_133$$75); - ZVAL_OBJ(&_133$$75, EG(exception)); - Z_ADDREF_P(&_133$$75); - if (zephir_is_instance_of(&_133$$75, SL("Exception"))) { - zend_clear_exception(); - ZEPHIR_CPY_WRT(&e, &_133$$75); - ZEPHIR_CALL_METHOD(&_134$$77, this_ptr, "handleexception", NULL, 0, &e); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_134$$77)) { - RETURN_MM_BOOL(0); - } - zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 631); - ZEPHIR_MM_RESTORE(); - return; - } - } - } - RETURN_CCTOR(&handler); -} - -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, forward) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, conditionBetween) { + zval _6; + zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *forward_param = NULL, __$true, __$false, namespaceName, controllerName, params, actionName, taskName, _0, _1, _2, _3; - zval forward; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *clause_param = NULL, *operator_param = NULL, *expr_param = NULL, *minimum, minimum_sub, *maximum, maximum_sub, hiddenParam, nextHiddenParam, minimumKey, maximumKey, operatorMethod, _5, _1$$3, _2$$3, _3$$3; + zval clause, operator, expr, _4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&forward); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&namespaceName); - ZVAL_UNDEF(&controllerName); - ZVAL_UNDEF(¶ms); - ZVAL_UNDEF(&actionName); - ZVAL_UNDEF(&taskName); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&clause); + ZVAL_UNDEF(&operator); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&minimum_sub); + ZVAL_UNDEF(&maximum_sub); + ZVAL_UNDEF(&hiddenParam); + ZVAL_UNDEF(&nextHiddenParam); + ZVAL_UNDEF(&minimumKey); + ZVAL_UNDEF(&maximumKey); + ZVAL_UNDEF(&operatorMethod); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(forward) + ZEND_PARSE_PARAMETERS_START(5, 5) + Z_PARAM_STR(clause) + Z_PARAM_STR(operator) + Z_PARAM_STR(expr) + Z_PARAM_ZVAL(minimum) + Z_PARAM_ZVAL(maximum) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &forward_param); - zephir_get_arrval(&forward, forward_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("isControllerInitialize"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(ZEPHIR_IS_TRUE_IDENTICAL(&_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_dispatcher_exception_ce, "Forwarding inside a controller's initialize() method is forbidden", "phalcon/Dispatcher/AbstractDispatcher.zep", 665); - return; - } - zephir_read_property(&_1, this_ptr, ZEND_STRL("namespaceName"), PH_NOISY_CC | PH_READONLY); - zephir_update_property_zval(this_ptr, ZEND_STRL("previousNamespaceName"), &_1); - zephir_read_property(&_2, this_ptr, ZEND_STRL("handlerName"), PH_NOISY_CC | PH_READONLY); - zephir_update_property_zval(this_ptr, ZEND_STRL("previousHandlerName"), &_2); - zephir_read_property(&_3, this_ptr, ZEND_STRL("actionName"), PH_NOISY_CC | PH_READONLY); - zephir_update_property_zval(this_ptr, ZEND_STRL("previousActionName"), &_3); - if (zephir_array_isset_string_fetch(&namespaceName, &forward, SL("namespace"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("namespaceName"), &namespaceName); - } - ZEPHIR_OBS_VAR(&taskName); - if (zephir_array_isset_string_fetch(&controllerName, &forward, SL("controller"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("handlerName"), &controllerName); - } else if (zephir_array_isset_string_fetch(&taskName, &forward, SL("task"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("handlerName"), &taskName); + zephir_fetch_params(1, 5, 0, &clause_param, &operator_param, &expr_param, &minimum, &maximum); + if (UNEXPECTED(Z_TYPE_P(clause_param) != IS_STRING && Z_TYPE_P(clause_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'clause' must be of the type string")); + RETURN_MM_NULL(); } - if (zephir_array_isset_string_fetch(&actionName, &forward, SL("action"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("actionName"), &actionName); + if (EXPECTED(Z_TYPE_P(clause_param) == IS_STRING)) { + zephir_get_strval(&clause, clause_param); + } else { + ZEPHIR_INIT_VAR(&clause); } - if (zephir_array_isset_string_fetch(¶ms, &forward, SL("params"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("params"), ¶ms); + if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); + RETURN_MM_NULL(); } - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("finished"), &__$true); + if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { + zephir_get_strval(&operator, operator_param); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("finished"), &__$false); + ZEPHIR_INIT_VAR(&operator); } - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("forwarded"), &__$true); + if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { + zephir_get_strval(&expr, expr_param); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("forwarded"), &__$false); + ZEPHIR_INIT_VAR(&expr); } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getActionName) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "actionName"); -} - -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getActionSuffix) -{ - zval *this_ptr = getThis(); - - RETURN_MEMBER(getThis(), "actionSuffix"); + _0 = !ZEPHIR_IS_STRING_IDENTICAL(&operator, "and"); + if (_0) { + _0 = !ZEPHIR_IS_STRING_IDENTICAL(&operator, "or"); + } + if (UNEXPECTED(_0)) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "Operator % is not available."); + ZEPHIR_CALL_FUNCTION(&_3$$3, "sprintf", NULL, 194, &_2$$3, &operator); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_3$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model/Query/Builder.zep", 1574); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_VAR(&_4); + ZEPHIR_CONCAT_VV(&_4, &operator, &clause); + ZEPHIR_CPY_WRT(&operatorMethod, &_4); + ZEPHIR_OBS_VAR(&hiddenParam); + zephir_read_property(&hiddenParam, this_ptr, ZEND_STRL("hiddenParamNumber"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(&nextHiddenParam); + ZVAL_LONG(&nextHiddenParam, (zephir_get_numberval(&hiddenParam) + 1)); + ZEPHIR_INIT_VAR(&minimumKey); + ZEPHIR_CONCAT_SV(&minimumKey, "AP", &hiddenParam); + ZEPHIR_INIT_VAR(&maximumKey); + ZEPHIR_CONCAT_SV(&maximumKey, "AP", &nextHiddenParam); + ZEPHIR_INIT_VAR(&_5); + ZEPHIR_CONCAT_VSVSVS(&_5, &expr, " BETWEEN :", &minimumKey, ": AND :", &maximumKey, ":"); + ZEPHIR_INIT_VAR(&_6); + zephir_create_array(&_6, 2, 0); + zephir_array_update_zval(&_6, &minimumKey, minimum, PH_COPY); + zephir_array_update_zval(&_6, &maximumKey, maximum, PH_COPY); + ZEPHIR_CALL_METHOD_ZVAL(NULL, this_ptr, &operatorMethod, NULL, 0, &_5, &_6); + zephir_check_call_status(); + ZEPHIR_SEPARATE(&nextHiddenParam); + zephir_increment(&nextHiddenParam); + zephir_update_property_zval(this_ptr, ZEND_STRL("hiddenParamNumber"), &nextHiddenParam); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getActiveMethod) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, conditionIn) { - zval activeMethodName, _0, _1, _5, _2$$3, _3$$3, _4$$3; + zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zend_long ZEPHIR_LAST_CALL_STATUS, hiddenParam = 0; + zval values; + zval *clause_param = NULL, *operator_param = NULL, *expr_param = NULL, *values_param = NULL, key, queryKey, value, bindKeys, bindParams, operatorMethod, _6, *_7, _8, _13, _14, _15, _1$$3, _2$$3, _3$$3, _9$$5, _11$$6; + zval clause, operator, expr, _4, _5$$4, _10$$5, _12$$6; zval *this_ptr = getThis(); - ZVAL_UNDEF(&activeMethodName); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&clause); + ZVAL_UNDEF(&operator); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&_12$$6); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&queryKey); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&bindKeys); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&operatorMethod); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_13); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_15); + ZVAL_UNDEF(&_1$$3); ZVAL_UNDEF(&_2$$3); ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_11$$6); + ZVAL_UNDEF(&values); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(4, 4) + Z_PARAM_STR(clause) + Z_PARAM_STR(operator) + Z_PARAM_STR(expr) + Z_PARAM_ARRAY(values) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 4, 0, &clause_param, &operator_param, &expr_param, &values_param); + if (UNEXPECTED(Z_TYPE_P(clause_param) != IS_STRING && Z_TYPE_P(clause_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'clause' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(clause_param) == IS_STRING)) { + zephir_get_strval(&clause, clause_param); + } else { + ZEPHIR_INIT_VAR(&clause); + } + if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { + zephir_get_strval(&operator, operator_param); + } else { + ZEPHIR_INIT_VAR(&operator); + } + if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { + zephir_get_strval(&expr, expr_param); + } else { + ZEPHIR_INIT_VAR(&expr); + } + ZEPHIR_OBS_COPY_OR_DUP(&values, values_param); - ZEPHIR_OBS_VAR(&activeMethodName); - zephir_read_property(&_0, this_ptr, ZEND_STRL("activeMethodMap"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_1, this_ptr, ZEND_STRL("actionName"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&activeMethodName, &_0, &_1, 0))) { - zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("actionName"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_2$$3, this_ptr, "tocamelcase", NULL, 0, &_3$$3); + + _0 = !ZEPHIR_IS_STRING_IDENTICAL(&operator, "and"); + if (_0) { + _0 = !ZEPHIR_IS_STRING_IDENTICAL(&operator, "or"); + } + if (UNEXPECTED(_0)) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "Operator % is not available."); + ZEPHIR_CALL_FUNCTION(&_3$$3, "sprintf", NULL, 194, &_2$$3, &operator); zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&activeMethodName, "lcfirst", NULL, 96, &_2$$3); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_3$$3); zephir_check_call_status(); - ZEPHIR_OBS_VAR(&_4$$3); - zephir_read_property(&_4$$3, this_ptr, ZEND_STRL("actionName"), PH_NOISY_CC); - zephir_update_property_array(this_ptr, SL("activeMethodMap"), &_4$$3, &activeMethodName); + zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model/Query/Builder.zep", 1622); + ZEPHIR_MM_RESTORE(); + return; } - zephir_read_property(&_5, this_ptr, ZEND_STRL("actionSuffix"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CONCAT_VV(return_value, &activeMethodName, &_5); - RETURN_MM(); + ZEPHIR_INIT_VAR(&_4); + ZEPHIR_CONCAT_VV(&_4, &operator, &clause); + ZEPHIR_CPY_WRT(&operatorMethod, &_4); + if (!(zephir_fast_count_int(&values))) { + ZEPHIR_INIT_VAR(&_5$$4); + ZEPHIR_CONCAT_VSV(&_5$$4, &expr, " != ", &expr); + ZEPHIR_CALL_METHOD_ZVAL(NULL, this_ptr, &operatorMethod, NULL, 0, &_5$$4); + zephir_check_call_status(); + RETURN_THIS(); + } + ZEPHIR_OBS_VAR(&_6); + zephir_read_property(&_6, this_ptr, ZEND_STRL("hiddenParamNumber"), PH_NOISY_CC); + hiddenParam = zephir_get_intval(&_6); + ZEPHIR_INIT_VAR(&bindParams); + array_init(&bindParams); + ZEPHIR_INIT_VAR(&bindKeys); + array_init(&bindKeys); + zephir_is_iterable(&values, 0, "phalcon/Mvc/Model/Query/Builder.zep", 1653); + if (Z_TYPE_P(&values) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&values), _7) + { + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _7); + ZEPHIR_INIT_NVAR(&_9$$5); + ZVAL_LONG(&_9$$5, hiddenParam); + ZEPHIR_INIT_NVAR(&_10$$5); + ZEPHIR_CONCAT_SV(&_10$$5, "AP", &_9$$5); + ZEPHIR_CPY_WRT(&key, &_10$$5); + ZEPHIR_INIT_NVAR(&queryKey); + ZEPHIR_CONCAT_SVS(&queryKey, ":", &key, ":"); + zephir_array_append(&bindKeys, &queryKey, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 1644); + zephir_array_update_zval(&bindParams, &key, &value, PH_COPY | PH_SEPARATE); + hiddenParam++; + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &values, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_8, &values, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_8)) { + break; + } + ZEPHIR_CALL_METHOD(&value, &values, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_11$$6); + ZVAL_LONG(&_11$$6, hiddenParam); + ZEPHIR_INIT_NVAR(&_12$$6); + ZEPHIR_CONCAT_SV(&_12$$6, "AP", &_11$$6); + ZEPHIR_CPY_WRT(&key, &_12$$6); + ZEPHIR_INIT_NVAR(&queryKey); + ZEPHIR_CONCAT_SVS(&queryKey, ":", &key, ":"); + zephir_array_append(&bindKeys, &queryKey, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 1644); + zephir_array_update_zval(&bindParams, &key, &value, PH_COPY | PH_SEPARATE); + hiddenParam++; + ZEPHIR_CALL_METHOD(NULL, &values, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_VAR(&_13); + zephir_fast_join_str(&_13, SL(", "), &bindKeys); + ZEPHIR_INIT_VAR(&_14); + ZEPHIR_CONCAT_VSVS(&_14, &expr, " IN (", &_13, ")"); + ZEPHIR_CALL_METHOD_ZVAL(NULL, this_ptr, &operatorMethod, NULL, 0, &_14, &bindParams); + zephir_check_call_status(); + ZEPHIR_INIT_ZVAL_NREF(_15); + ZVAL_LONG(&_15, hiddenParam); + zephir_update_property_zval(this_ptr, ZEND_STRL("hiddenParamNumber"), &_15); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getBoundModels) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, conditionNotBetween) { - zval modelBinder, _0; + zval _6; + zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *clause_param = NULL, *operator_param = NULL, *expr_param = NULL, *minimum, minimum_sub, *maximum, maximum_sub, hiddenParam, nextHiddenParam, minimumKey, maximumKey, operatorMethod, _5, _1$$3, _2$$3, _3$$3; + zval clause, operator, expr, _4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&modelBinder); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&clause); + ZVAL_UNDEF(&operator); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&minimum_sub); + ZVAL_UNDEF(&maximum_sub); + ZVAL_UNDEF(&hiddenParam); + ZVAL_UNDEF(&nextHiddenParam); + ZVAL_UNDEF(&minimumKey); + ZVAL_UNDEF(&maximumKey); + ZVAL_UNDEF(&operatorMethod); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_6); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(5, 5) + Z_PARAM_STR(clause) + Z_PARAM_STR(operator) + Z_PARAM_STR(expr) + Z_PARAM_ZVAL(minimum) + Z_PARAM_ZVAL(maximum) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelBinder"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&modelBinder, &_0); - if (Z_TYPE_P(&modelBinder) == IS_NULL) { - array_init(return_value); - RETURN_MM(); + zephir_fetch_params(1, 5, 0, &clause_param, &operator_param, &expr_param, &minimum, &maximum); + if (UNEXPECTED(Z_TYPE_P(clause_param) != IS_STRING && Z_TYPE_P(clause_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'clause' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(clause_param) == IS_STRING)) { + zephir_get_strval(&clause, clause_param); + } else { + ZEPHIR_INIT_VAR(&clause); + } + if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { + zephir_get_strval(&operator, operator_param); + } else { + ZEPHIR_INIT_VAR(&operator); + } + if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { + zephir_get_strval(&expr, expr_param); + } else { + ZEPHIR_INIT_VAR(&expr); } - ZEPHIR_RETURN_CALL_METHOD(&modelBinder, "getboundmodels", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getDefaultNamespace) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "defaultNamespace"); -} - -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getEventsManager) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "eventsManager"); -} - -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getHandlerSuffix) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "handlerSuffix"); -} - -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getModelBinder) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "modelBinder"); -} - -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getModuleName) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "moduleName"); -} - -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getNamespaceName) -{ - zval *this_ptr = getThis(); - - RETURN_MEMBER(getThis(), "namespaceName"); + _0 = !ZEPHIR_IS_STRING_IDENTICAL(&operator, "and"); + if (_0) { + _0 = !ZEPHIR_IS_STRING_IDENTICAL(&operator, "or"); + } + if (UNEXPECTED(_0)) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "Operator % is not available."); + ZEPHIR_CALL_FUNCTION(&_3$$3, "sprintf", NULL, 194, &_2$$3, &operator); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_3$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model/Query/Builder.zep", 1676); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_VAR(&_4); + ZEPHIR_CONCAT_VV(&_4, &operator, &clause); + ZEPHIR_CPY_WRT(&operatorMethod, &_4); + ZEPHIR_OBS_VAR(&hiddenParam); + zephir_read_property(&hiddenParam, this_ptr, ZEND_STRL("hiddenParamNumber"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(&nextHiddenParam); + ZVAL_LONG(&nextHiddenParam, (zephir_get_numberval(&hiddenParam) + 1)); + ZEPHIR_INIT_VAR(&minimumKey); + ZEPHIR_CONCAT_SV(&minimumKey, "AP", &hiddenParam); + ZEPHIR_INIT_VAR(&maximumKey); + ZEPHIR_CONCAT_SV(&maximumKey, "AP", &nextHiddenParam); + ZEPHIR_INIT_VAR(&_5); + ZEPHIR_CONCAT_VSVSVS(&_5, &expr, " NOT BETWEEN :", &minimumKey, ": AND :", &maximumKey, ":"); + ZEPHIR_INIT_VAR(&_6); + zephir_create_array(&_6, 2, 0); + zephir_array_update_zval(&_6, &minimumKey, minimum, PH_COPY); + zephir_array_update_zval(&_6, &maximumKey, maximum, PH_COPY); + ZEPHIR_CALL_METHOD_ZVAL(NULL, this_ptr, &operatorMethod, NULL, 0, &_5, &_6); + zephir_check_call_status(); + ZEPHIR_SEPARATE(&nextHiddenParam); + zephir_increment(&nextHiddenParam); + zephir_update_property_zval(this_ptr, ZEND_STRL("hiddenParamNumber"), &nextHiddenParam); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getParam) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, conditionNotIn) { + zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_2 = NULL; - zval *param, param_sub, *filters = NULL, filters_sub, *defaultValue = NULL, defaultValue_sub, __$null, params, filter, paramValue, container, _0, _5, _6, _1$$5, _3$$5, _4$$5; + zend_long ZEPHIR_LAST_CALL_STATUS, hiddenParam = 0; + zval values; + zval *clause_param = NULL, *operator_param = NULL, *expr_param = NULL, *values_param = NULL, key, queryKey, value, bindKeys, bindParams, operatorMethod, _6, *_7, _8, _13, _14, _15, _1$$3, _2$$3, _3$$3, _9$$5, _11$$6; + zval clause, operator, expr, _4, _5$$4, _10$$5, _12$$6; zval *this_ptr = getThis(); - ZVAL_UNDEF(¶m_sub); - ZVAL_UNDEF(&filters_sub); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(¶ms); - ZVAL_UNDEF(&filter); - ZVAL_UNDEF(¶mValue); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&clause); + ZVAL_UNDEF(&operator); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&_12$$6); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&queryKey); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&bindKeys); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&operatorMethod); ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_1$$5); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_13); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_15); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_11$$6); + ZVAL_UNDEF(&values); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ZVAL(param) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(filters) - Z_PARAM_ZVAL_OR_NULL(defaultValue) + ZEND_PARSE_PARAMETERS_START(4, 4) + Z_PARAM_STR(clause) + Z_PARAM_STR(operator) + Z_PARAM_STR(expr) + Z_PARAM_ARRAY(values) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, ¶m, &filters, &defaultValue); - if (!filters) { - filters = &filters_sub; - filters = &__$null; + zephir_fetch_params(1, 4, 0, &clause_param, &operator_param, &expr_param, &values_param); + if (UNEXPECTED(Z_TYPE_P(clause_param) != IS_STRING && Z_TYPE_P(clause_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'clause' must be of the type string")); + RETURN_MM_NULL(); } - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; + if (EXPECTED(Z_TYPE_P(clause_param) == IS_STRING)) { + zephir_get_strval(&clause, clause_param); + } else { + ZEPHIR_INIT_VAR(&clause); + } + if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { + zephir_get_strval(&operator, operator_param); + } else { + ZEPHIR_INIT_VAR(&operator); } + if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { + zephir_get_strval(&expr, expr_param); + } else { + ZEPHIR_INIT_VAR(&expr); + } + ZEPHIR_OBS_COPY_OR_DUP(&values, values_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(¶ms, &_0); - ZEPHIR_OBS_VAR(¶mValue); - if (!(zephir_array_isset_fetch(¶mValue, ¶ms, param, 0))) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); + _0 = !ZEPHIR_IS_STRING_IDENTICAL(&operator, "and"); + if (_0) { + _0 = !ZEPHIR_IS_STRING_IDENTICAL(&operator, "or"); } - if (Z_TYPE_P(filters) == IS_NULL) { - RETURN_CCTOR(¶mValue); + if (UNEXPECTED(_0)) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "Operator % is not available."); + ZEPHIR_CALL_FUNCTION(&_3$$3, "sprintf", NULL, 194, &_2$$3, &operator); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_3$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model/Query/Builder.zep", 1723); + ZEPHIR_MM_RESTORE(); + return; } - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - if (Z_TYPE_P(&container) != IS_OBJECT) { - ZEPHIR_INIT_VAR(&_3$$5); - ZVAL_STRING(&_3$$5, "the 'filter' service"); - ZEPHIR_CALL_CE_STATIC(&_1$$5, phalcon_dispatcher_exception_ce, "containerservicenotfound", &_2, 0, &_3$$5); + ZEPHIR_INIT_VAR(&_4); + ZEPHIR_CONCAT_VV(&_4, &operator, &clause); + ZEPHIR_CPY_WRT(&operatorMethod, &_4); + if (!(zephir_fast_count_int(&values))) { + ZEPHIR_INIT_VAR(&_5$$4); + ZEPHIR_CONCAT_VSV(&_5$$4, &expr, " != ", &expr); + ZEPHIR_CALL_METHOD_ZVAL(NULL, this_ptr, &operatorMethod, NULL, 0, &_5$$4); zephir_check_call_status(); - ZVAL_LONG(&_4$$5, 0); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "throwdispatchexception", NULL, 0, &_1$$5, &_4$$5); + RETURN_THIS(); + } + ZEPHIR_OBS_VAR(&_6); + zephir_read_property(&_6, this_ptr, ZEND_STRL("hiddenParamNumber"), PH_NOISY_CC); + hiddenParam = zephir_get_intval(&_6); + ZEPHIR_INIT_VAR(&bindParams); + array_init(&bindParams); + ZEPHIR_INIT_VAR(&bindKeys); + array_init(&bindKeys); + zephir_is_iterable(&values, 0, "phalcon/Mvc/Model/Query/Builder.zep", 1754); + if (Z_TYPE_P(&values) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&values), _7) + { + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _7); + ZEPHIR_INIT_NVAR(&_9$$5); + ZVAL_LONG(&_9$$5, hiddenParam); + ZEPHIR_INIT_NVAR(&_10$$5); + ZEPHIR_CONCAT_SV(&_10$$5, "AP", &_9$$5); + ZEPHIR_CPY_WRT(&key, &_10$$5); + ZEPHIR_INIT_NVAR(&queryKey); + ZEPHIR_CONCAT_SVS(&queryKey, ":", &key, ":"); + zephir_array_append(&bindKeys, &queryKey, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 1745); + zephir_array_update_zval(&bindParams, &key, &value, PH_COPY | PH_SEPARATE); + hiddenParam++; + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &values, "rewind", NULL, 0); zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_8, &values, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_8)) { + break; + } + ZEPHIR_CALL_METHOD(&value, &values, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_11$$6); + ZVAL_LONG(&_11$$6, hiddenParam); + ZEPHIR_INIT_NVAR(&_12$$6); + ZEPHIR_CONCAT_SV(&_12$$6, "AP", &_11$$6); + ZEPHIR_CPY_WRT(&key, &_12$$6); + ZEPHIR_INIT_NVAR(&queryKey); + ZEPHIR_CONCAT_SVS(&queryKey, ":", &key, ":"); + zephir_array_append(&bindKeys, &queryKey, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 1745); + zephir_array_update_zval(&bindParams, &key, &value, PH_COPY | PH_SEPARATE); + hiddenParam++; + ZEPHIR_CALL_METHOD(NULL, &values, "next", NULL, 0); + zephir_check_call_status(); + } } - ZEPHIR_INIT_VAR(&_6); - ZVAL_STRING(&_6, "filter"); - ZEPHIR_CALL_METHOD(&_5, &container, "getshared", NULL, 0, &_6); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&filter, &_5); - ZEPHIR_RETURN_CALL_METHOD(&filter, "sanitize", NULL, 0, ¶mValue, filters); + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_VAR(&_13); + zephir_fast_join_str(&_13, SL(", "), &bindKeys); + ZEPHIR_INIT_VAR(&_14); + ZEPHIR_CONCAT_VSVS(&_14, &expr, " NOT IN (", &_13, ")"); + ZEPHIR_CALL_METHOD_ZVAL(NULL, this_ptr, &operatorMethod, NULL, 0, &_14, &bindParams); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_ZVAL_NREF(_15); + ZVAL_LONG(&_15, hiddenParam); + zephir_update_property_zval(this_ptr, ZEND_STRL("hiddenParamNumber"), &_15); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getParams) +zend_object *zephir_init_properties_Phalcon_Mvc_Model_Query_Builder(zend_class_entry *class_type) { - zval *this_ptr = getThis(); + zval _0, _2, _4, _6, _1$$3, _3$$4, _5$$5, _7$$6; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_7$$6); + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("joins"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("joins"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("group"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("group"), &_3$$4); + } + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_4) == IS_NULL) { + ZEPHIR_INIT_VAR(&_5$$5); + array_init(&_5$$5); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("bindTypes"), &_5$$5); + } + zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_6) == IS_NULL) { + ZEPHIR_INIT_VAR(&_7$$6); + array_init(&_7$$6); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("bindParams"), &_7$$6); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} - RETURN_MEMBER(getThis(), "params"); -} -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, hasParam) -{ - zval *param, param_sub, _0; - zval *this_ptr = getThis(); - ZVAL_UNDEF(¶m_sub); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(param) - ZEND_PARSE_PARAMETERS_END(); +#ifdef HAVE_CONFIG_H #endif - zephir_fetch_params_without_memory_grow(1, 0, ¶m); - zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - RETURN_BOOL(zephir_array_isset(&_0, param)); -} -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, isFinished) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Query_BuilderInterface) { - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model\\Query, BuilderInterface, phalcon, mvc_model_query_builderinterface, phalcon_mvc_model_query_builderinterface_method_entry); + zephir_declare_class_constant_string(phalcon_mvc_model_query_builderinterface_ce, SL("OPERATOR_AND"), "and"); + zephir_declare_class_constant_string(phalcon_mvc_model_query_builderinterface_ce, SL("OPERATOR_OR"), "or"); - RETURN_MEMBER(getThis(), "finished"); + return SUCCESS; } -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setActionName) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *actionName_param = NULL; - zval actionName; - zval *this_ptr = getThis(); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, addFrom); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, andWhere); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, betweenWhere); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, columns); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, distinct); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, forUpdate); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, from); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getBindParams); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getBindTypes); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getColumns); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getDistinct); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getFrom); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getGroupBy); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getHaving); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getJoins); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getLimit); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getOffset); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getOrderBy); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getPhql); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getQuery); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getWhere); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, groupBy); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, having); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, innerJoin); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, inWhere); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, join); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, leftJoin); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, limit); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getModels); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, notBetweenWhere); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, notInWhere); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, offset); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, orderBy); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, orWhere); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, rightJoin); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, setBindParams); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, setBindTypes); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, where); - ZVAL_UNDEF(&actionName); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(actionName) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &actionName_param); - zephir_get_strval(&actionName, actionName_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("actionName"), &actionName); - ZEPHIR_MM_RESTORE(); + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Query_Lang) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model\\Query, Lang, phalcon, mvc_model_query_lang, phalcon_mvc_model_query_lang_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setDefaultAction) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Lang, parsePHQL) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *actionName_param = NULL; - zval actionName; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *phql_param = NULL; + zval phql; zval *this_ptr = getThis(); - ZVAL_UNDEF(&actionName); + ZVAL_UNDEF(&phql); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(actionName) + Z_PARAM_STR(phql) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &actionName_param); - zephir_get_strval(&actionName, actionName_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultAction"), &actionName); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setDefaultNamespace) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *defaultNamespace_param = NULL; - zval defaultNamespace; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&defaultNamespace); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(defaultNamespace) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &defaultNamespace_param); - zephir_get_strval(&defaultNamespace, defaultNamespace_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultNamespace"), &defaultNamespace); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getHandlerClass) -{ - zval handlerSuffix, handlerName, namespaceName, camelizedClass, handlerClass, _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&handlerSuffix); - ZVAL_UNDEF(&handlerName); - ZVAL_UNDEF(&namespaceName); - ZVAL_UNDEF(&camelizedClass); - ZVAL_UNDEF(&handlerClass); - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "resolveemptyproperties", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("handlerSuffix"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&handlerSuffix, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("handlerName"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&handlerName, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("namespaceName"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&namespaceName, &_0); - if (!(zephir_memnstr_str(&handlerName, SL("\\"), "phalcon/Dispatcher/AbstractDispatcher.zep", 916))) { - ZEPHIR_CALL_METHOD(&camelizedClass, this_ptr, "tocamelcase", NULL, 0, &handlerName); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(&camelizedClass, &handlerName); + zephir_fetch_params(1, 1, 0, &phql_param); + if (UNEXPECTED(Z_TYPE_P(phql_param) != IS_STRING && Z_TYPE_P(phql_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'phql' must be of the type string")); + RETURN_MM_NULL(); } - ZEPHIR_INIT_VAR(&handlerClass); - if (zephir_is_true(&namespaceName)) { - if (!(zephir_end_with_str(&namespaceName, SL("\\")))) { - zephir_concat_self_str(&namespaceName, SL("\\")); - } - ZEPHIR_CONCAT_VVV(&handlerClass, &namespaceName, &camelizedClass, &handlerSuffix); + if (EXPECTED(Z_TYPE_P(phql_param) == IS_STRING)) { + zephir_get_strval(&phql, phql_param); } else { - ZEPHIR_CONCAT_VV(&handlerClass, &camelizedClass, &handlerSuffix); + ZEPHIR_INIT_VAR(&phql); } - RETURN_CCTOR(&handlerClass); -} - -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setParam) -{ - zval *param, param_sub, *value, value_sub; - zval *this_ptr = getThis(); - ZVAL_UNDEF(¶m_sub); - ZVAL_UNDEF(&value_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(param) - Z_PARAM_ZVAL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZEPHIR_LAST_CALL_STATUS = phql_parse_phql(return_value, &phql); + zephir_check_call_status(); + RETURN_MM(); +} - zephir_fetch_params_without_memory_grow(2, 0, ¶m, &value); - zephir_update_property_array(this_ptr, SL("params"), param, value); -} +/* Driver template for the LEMON parser generator. +** The author disclaims copyright to this source code. +*/ +/* First off, code is include which follows the "include" declaration +** in the input file. */ +// 30 "parser.php.lemon" -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setParams) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *params_param = NULL; - zval params; - zval *this_ptr = getThis(); - ZVAL_UNDEF(¶ms); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(params) - ZEND_PARSE_PARAMETERS_END(); +// 12 "parser.php.c" +/* Next is all token values, in a form suitable for use by makeheaders. +** This section will be null unless lemon is run with the -m switch. +*/ +/* Make sure the INTERFACE macro is defined. +*/ +#ifndef INTERFACE +# define INTERFACE 1 #endif +/* The next thing included is series of defines which control +** various aspects of the generated parser. +** PPCODETYPE is the data type used for storing terminal +** and nonterminal numbers. "unsigned char" is +** used if there are fewer than 250 terminals +** and nonterminals. "int" is used otherwise. +** PPNOCODE is a number of type PPCODETYPE which corresponds +** to no legal terminal or nonterminal number. This +** number is used to fill in empty slots of the hash +** table. +** PPFALLBACK If defined, this indicates that one or more tokens +** have fall-back values which should be used if the +** original value of the token will not parse. +** PPACTIONTYPE is the data type used for storing terminal +** and nonterminal numbers. "unsigned char" is +** used if there are fewer than 250 rules and +** states combined. "int" is used otherwise. +** phql_TOKENTYPE is the data type used for minor tokens given +** directly to the parser from the tokenizer. +** PPMINORTYPE is the data type used for all minor tokens. +** This is typically a union of many types, one of +** which is phql_TOKENTYPE. The entry in the union +** for base tokens is called "pp0". +** PPSTACKDEPTH is the maximum depth of the parser's stack. +** phql_ARG_SDECL A static variable declaration for the %extra_argument +** phql_ARG_PDECL A parameter declaration for the %extra_argument +** phql_ARG_STORE Code to store %extra_argument into pppParser +** phql_ARG_FETCH Code to extract %extra_argument from pppParser +** PPNSTATE the combined number of states. +** PPNRULE the number of rules in the grammar +** PPERRORSYMBOL is the code number of the error symbol. If not +** defined, then do no error processing. +*/ +#define PPCODETYPE unsigned char +#define PPNOCODE 135 +#define PPACTIONTYPE unsigned short int +#define phql_TOKENTYPE phql_parser_token* +typedef union { + phql_TOKENTYPE pp0; + zval pp202; + int pp269; +} PPMINORTYPE; +#define PPSTACKDEPTH 100 +#define phql_ARG_SDECL phql_parser_status *status; +#define phql_ARG_PDECL ,phql_parser_status *status +#define phql_ARG_FETCH phql_parser_status *status = pppParser->status +#define phql_ARG_STORE pppParser->status = status +#define PPNSTATE 295 +#define PPNRULE 162 +#define PPERRORSYMBOL 80 +#define PPERRSYMDT pp269 +#define PP_NO_ACTION (PPNSTATE+PPNRULE+2) +#define PP_ACCEPT_ACTION (PPNSTATE+PPNRULE+1) +#define PP_ERROR_ACTION (PPNSTATE+PPNRULE) +/* Next are that tables used to determine what action to take based on the +** current state and lookahead token. These tables are used to implement +** functions that take a state number and lookahead value and return an +** action integer. +** +** Suppose the action integer is N. Then the action is determined as +** follows +** +** 0 <= N < PPNSTATE Shift N. That is, push the lookahead +** token onto the stack and goto state N. +** +** PPNSTATE <= N < PPNSTATE+PPNRULE Reduce by rule N-PPNSTATE. +** +** N == PPNSTATE+PPNRULE A syntax error has occurred. +** +** N == PPNSTATE+PPNRULE+1 The parser accepts its input. +** +** N == PPNSTATE+PPNRULE+2 No such action. Denotes unused +** slots in the pp_action[] table. +** +** The action table is constructed as a single large table named pp_action[]. +** Given state S and lookahead X, the action is computed as +** +** pp_action[ pp_shift_ofst[S] + X ] +** +** If the index value pp_shift_ofst[S]+X is out of range or if the value +** pp_lookahead[pp_shift_ofst[S]+X] is not equal to X or if pp_shift_ofst[S] +** is equal to PP_SHIFT_USE_DFLT, it means that the action is not in the table +** and that pp_default[S] should be used instead. +** +** The formula above is for computing the action when the lookahead is +** a terminal symbol. If the lookahead is a non-terminal (as occurs after +** a reduce action) then the pp_reduce_ofst[] array is used in place of +** the pp_shift_ofst[] array and PP_REDUCE_USE_DFLT is used in place of +** PP_SHIFT_USE_DFLT. +** +** The following are the tables generated in this section: +** +** pp_action[] A single table containing all actions. +** pp_lookahead[] A table containing the lookahead for each entry in +** pp_action. Used to detect hash collisions. +** pp_shift_ofst[] For each state, the offset into pp_action for +** shifting terminals. +** pp_reduce_ofst[] For each state, the offset into pp_action for +** shifting non-terminals after a reduce. +** pp_default[] Default action for each state. +*/ +static PPACTIONTYPE pp_action[] = { + /* 0 */ 120, 126, 128, 55, 57, 59, 61, 63, 65, 45, + /* 10 */ 47, 67, 72, 49, 51, 53, 41, 39, 43, 37, + /* 20 */ 34, 122, 74, 69, 120, 126, 128, 55, 57, 59, + /* 30 */ 61, 63, 65, 45, 47, 67, 72, 49, 51, 53, + /* 40 */ 41, 39, 43, 37, 34, 122, 74, 69, 19, 20, + /* 50 */ 21, 22, 23, 32, 33, 120, 126, 128, 55, 57, + /* 60 */ 59, 61, 63, 65, 45, 47, 67, 72, 49, 51, + /* 70 */ 53, 41, 39, 43, 37, 34, 122, 74, 69, 37, + /* 80 */ 34, 122, 74, 69, 94, 222, 81, 220, 95, 90, + /* 90 */ 111, 211, 113, 114, 213, 156, 79, 188, 89, 120, + /* 100 */ 126, 128, 55, 57, 59, 61, 63, 65, 45, 47, + /* 110 */ 67, 72, 49, 51, 53, 41, 39, 43, 37, 34, + /* 120 */ 122, 74, 69, 55, 57, 59, 61, 63, 65, 45, + /* 130 */ 47, 67, 72, 49, 51, 53, 41, 39, 43, 37, + /* 140 */ 34, 122, 74, 69, 132, 249, 120, 126, 128, 55, + /* 150 */ 57, 59, 61, 63, 65, 45, 47, 67, 72, 49, + /* 160 */ 51, 53, 41, 39, 43, 37, 34, 122, 74, 69, + /* 170 */ 41, 39, 43, 37, 34, 122, 74, 69, 142, 7, + /* 180 */ 120, 126, 128, 55, 57, 59, 61, 63, 65, 45, + /* 190 */ 47, 67, 72, 49, 51, 53, 41, 39, 43, 37, + /* 200 */ 34, 122, 74, 69, 120, 126, 128, 55, 57, 59, + /* 210 */ 61, 63, 65, 45, 47, 67, 72, 49, 51, 53, + /* 220 */ 41, 39, 43, 37, 34, 122, 74, 69, 45, 47, + /* 230 */ 67, 72, 49, 51, 53, 41, 39, 43, 37, 34, + /* 240 */ 122, 74, 69, 122, 74, 69, 154, 156, 148, 188, + /* 250 */ 120, 126, 128, 55, 57, 59, 61, 63, 65, 45, + /* 260 */ 47, 67, 72, 49, 51, 53, 41, 39, 43, 37, + /* 270 */ 34, 122, 74, 69, 170, 242, 158, 35, 95, 99, + /* 280 */ 171, 173, 8, 76, 112, 113, 114, 161, 49, 51, + /* 290 */ 53, 41, 39, 43, 37, 34, 122, 74, 69, 83, + /* 300 */ 170, 130, 295, 35, 84, 92, 171, 173, 296, 194, + /* 310 */ 210, 196, 198, 161, 202, 206, 107, 176, 177, 183, + /* 320 */ 184, 185, 135, 139, 145, 100, 151, 130, 432, 124, + /* 330 */ 17, 180, 178, 179, 181, 182, 297, 228, 236, 224, + /* 340 */ 225, 6, 6, 176, 177, 183, 184, 185, 135, 139, + /* 350 */ 145, 115, 151, 164, 164, 298, 94, 180, 178, 179, + /* 360 */ 181, 182, 215, 107, 24, 35, 70, 230, 171, 173, + /* 370 */ 98, 175, 175, 95, 104, 216, 92, 232, 76, 299, + /* 380 */ 123, 226, 234, 92, 160, 160, 119, 186, 186, 130, + /* 390 */ 193, 35, 191, 251, 171, 173, 91, 76, 278, 94, + /* 400 */ 292, 161, 240, 105, 175, 176, 177, 183, 184, 185, + /* 410 */ 135, 139, 145, 103, 151, 130, 82, 160, 9, 180, + /* 420 */ 178, 179, 181, 182, 194, 210, 196, 198, 26, 202, + /* 430 */ 206, 176, 177, 183, 184, 185, 135, 139, 145, 10, + /* 440 */ 151, 164, 31, 153, 190, 180, 178, 179, 181, 182, + /* 450 */ 170, 218, 96, 35, 85, 109, 171, 173, 137, 175, + /* 460 */ 175, 168, 6, 161, 110, 28, 239, 15, 162, 167, + /* 470 */ 168, 102, 160, 160, 165, 186, 11, 130, 217, 35, + /* 480 */ 13, 431, 171, 173, 12, 201, 121, 247, 199, 161, + /* 490 */ 227, 162, 14, 176, 177, 183, 184, 185, 135, 139, + /* 500 */ 145, 27, 151, 130, 175, 175, 16, 180, 178, 179, + /* 510 */ 181, 182, 244, 248, 281, 288, 284, 160, 160, 176, + /* 520 */ 177, 183, 184, 185, 135, 139, 145, 18, 151, 205, + /* 530 */ 254, 262, 203, 180, 178, 179, 181, 182, 67, 72, + /* 540 */ 49, 51, 53, 41, 39, 43, 37, 34, 122, 74, + /* 550 */ 69, 209, 78, 25, 207, 223, 219, 253, 258, 458, + /* 560 */ 1, 2, 3, 4, 5, 6, 133, 29, 168, 107, + /* 570 */ 6, 77, 260, 263, 175, 31, 272, 69, 257, 283, + /* 580 */ 284, 256, 131, 260, 261, 75, 127, 160, 235, 108, + /* 590 */ 175, 273, 267, 175, 86, 261, 109, 289, 94, 30, + /* 600 */ 175, 175, 164, 160, 175, 279, 160, 80, 214, 219, + /* 610 */ 84, 212, 247, 160, 160, 87, 84, 160, 88, 260, + /* 620 */ 175, 238, 107, 287, 93, 97, 36, 175, 107, 101, + /* 630 */ 175, 259, 106, 160, 110, 38, 169, 175, 246, 175, + /* 640 */ 160, 175, 286, 160, 175, 40, 42, 44, 269, 46, + /* 650 */ 160, 386, 160, 175, 160, 48, 50, 160, 116, 125, + /* 660 */ 118, 52, 117, 175, 175, 175, 160, 175, 264, 258, + /* 670 */ 54, 134, 56, 175, 175, 58, 160, 160, 160, 175, + /* 680 */ 160, 60, 62, 136, 64, 76, 160, 160, 175, 268, + /* 690 */ 175, 66, 160, 175, 138, 140, 143, 149, 144, 175, + /* 700 */ 175, 160, 175, 160, 146, 187, 160, 68, 71, 175, + /* 710 */ 276, 73, 160, 160, 129, 160, 141, 147, 150, 152, + /* 720 */ 155, 163, 160, 157, 166, 175, 175, 192, 159, 175, + /* 730 */ 195, 172, 175, 174, 175, 175, 323, 175, 160, 160, + /* 740 */ 189, 175, 160, 231, 197, 160, 175, 160, 160, 175, + /* 750 */ 160, 175, 241, 324, 160, 250, 200, 325, 175, 160, + /* 760 */ 326, 175, 160, 204, 160, 327, 328, 294, 208, 329, + /* 770 */ 175, 160, 84, 175, 160, 330, 331, 221, 229, 245, + /* 780 */ 243, 233, 255, 160, 107, 237, 160, 334, 271, 335, + /* 790 */ 252, 270, 265, 342, 266, 274, 275, 277, 385, 280, + /* 800 */ 282, 285, 290, 291, 348, 293, +}; +static PPCODETYPE pp_lookahead[] = { + /* 0 */ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + /* 10 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + /* 20 */ 21, 22, 23, 24, 1, 2, 3, 4, 5, 6, + /* 30 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + /* 40 */ 17, 18, 19, 20, 21, 22, 23, 24, 61, 62, + /* 50 */ 63, 64, 65, 54, 55, 1, 2, 3, 4, 5, + /* 60 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + /* 70 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 20, + /* 80 */ 21, 22, 23, 24, 31, 31, 97, 33, 120, 121, + /* 90 */ 101, 102, 103, 104, 26, 72, 28, 74, 45, 1, + /* 100 */ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + /* 110 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + /* 120 */ 22, 23, 24, 4, 5, 6, 7, 8, 9, 10, + /* 130 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + /* 140 */ 21, 22, 23, 24, 46, 51, 1, 2, 3, 4, + /* 150 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + /* 160 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + /* 170 */ 17, 18, 19, 20, 21, 22, 23, 24, 33, 88, + /* 180 */ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + /* 190 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + /* 200 */ 21, 22, 23, 24, 1, 2, 3, 4, 5, 6, + /* 210 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + /* 220 */ 17, 18, 19, 20, 21, 22, 23, 24, 10, 11, + /* 230 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + /* 240 */ 22, 23, 24, 22, 23, 24, 71, 72, 69, 74, + /* 250 */ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + /* 260 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + /* 270 */ 21, 22, 23, 24, 18, 56, 73, 21, 120, 121, + /* 280 */ 24, 25, 89, 27, 102, 103, 104, 31, 14, 15, + /* 290 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 100, + /* 300 */ 18, 45, 0, 21, 105, 26, 24, 25, 0, 34, + /* 310 */ 35, 36, 37, 31, 39, 40, 117, 61, 62, 63, + /* 320 */ 64, 65, 66, 67, 68, 46, 70, 45, 46, 24, + /* 330 */ 26, 75, 76, 77, 78, 79, 0, 83, 83, 29, + /* 340 */ 30, 87, 87, 61, 62, 63, 64, 65, 66, 67, + /* 350 */ 68, 105, 70, 99, 99, 0, 31, 75, 76, 77, + /* 360 */ 78, 79, 18, 117, 60, 21, 12, 13, 24, 25, + /* 370 */ 45, 117, 117, 120, 121, 31, 26, 23, 27, 0, + /* 380 */ 75, 127, 127, 26, 130, 130, 99, 133, 133, 45, + /* 390 */ 31, 21, 33, 42, 24, 25, 46, 27, 47, 31, + /* 400 */ 49, 31, 57, 46, 117, 61, 62, 63, 64, 65, + /* 410 */ 66, 67, 68, 45, 70, 45, 26, 130, 90, 75, + /* 420 */ 76, 77, 78, 79, 34, 35, 36, 37, 52, 39, + /* 430 */ 40, 61, 62, 63, 64, 65, 66, 67, 68, 91, + /* 440 */ 70, 99, 99, 128, 129, 75, 76, 77, 78, 79, + /* 450 */ 18, 18, 31, 21, 33, 32, 24, 25, 83, 117, + /* 460 */ 117, 26, 87, 31, 31, 122, 123, 59, 45, 127, + /* 470 */ 26, 50, 130, 130, 132, 133, 92, 45, 32, 21, + /* 480 */ 58, 46, 24, 25, 93, 35, 99, 99, 38, 31, + /* 490 */ 46, 45, 47, 61, 62, 63, 64, 65, 66, 67, + /* 500 */ 68, 53, 70, 45, 117, 117, 126, 75, 76, 77, + /* 510 */ 78, 79, 124, 125, 115, 116, 117, 130, 130, 61, + /* 520 */ 62, 63, 64, 65, 66, 67, 68, 126, 70, 35, + /* 530 */ 44, 45, 38, 75, 76, 77, 78, 79, 12, 13, + /* 540 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + /* 550 */ 24, 35, 95, 126, 38, 98, 99, 105, 26, 81, + /* 560 */ 82, 83, 84, 85, 86, 87, 83, 26, 26, 117, + /* 570 */ 87, 94, 99, 109, 117, 99, 112, 24, 46, 116, + /* 580 */ 117, 108, 99, 99, 111, 45, 99, 130, 46, 31, + /* 590 */ 117, 113, 108, 117, 31, 111, 32, 119, 31, 123, + /* 600 */ 117, 117, 99, 130, 117, 100, 130, 96, 98, 99, + /* 610 */ 105, 100, 99, 130, 130, 50, 105, 130, 120, 99, + /* 620 */ 117, 99, 117, 99, 120, 50, 99, 117, 117, 120, + /* 630 */ 117, 111, 120, 130, 31, 99, 133, 117, 125, 117, + /* 640 */ 130, 117, 118, 130, 117, 99, 99, 99, 26, 99, + /* 650 */ 130, 0, 130, 117, 130, 99, 99, 130, 106, 75, + /* 660 */ 41, 99, 107, 117, 117, 117, 130, 117, 46, 26, + /* 670 */ 99, 46, 99, 117, 117, 99, 130, 130, 130, 117, + /* 680 */ 130, 99, 99, 45, 99, 27, 130, 130, 117, 46, + /* 690 */ 117, 99, 130, 117, 46, 45, 31, 31, 46, 117, + /* 700 */ 117, 130, 117, 130, 45, 29, 130, 99, 99, 117, + /* 710 */ 59, 99, 130, 130, 99, 130, 99, 99, 46, 99, + /* 720 */ 129, 131, 130, 99, 46, 117, 117, 31, 99, 117, + /* 730 */ 35, 99, 117, 99, 117, 117, 31, 117, 130, 130, + /* 740 */ 99, 117, 130, 99, 35, 130, 117, 130, 130, 117, + /* 750 */ 130, 117, 99, 31, 130, 99, 35, 31, 117, 130, + /* 760 */ 31, 117, 130, 35, 130, 31, 31, 100, 35, 31, + /* 770 */ 117, 130, 105, 117, 130, 31, 31, 31, 46, 26, + /* 780 */ 53, 45, 45, 130, 117, 46, 130, 0, 31, 0, + /* 790 */ 43, 112, 44, 0, 45, 88, 114, 126, 0, 48, + /* 800 */ 26, 4, 88, 114, 0, 28, +}; +#define PP_SHIFT_USE_DFLT (-14) +static short pp_shift_ofst[] = { + /* 0 */ 351, 302, 308, 336, 355, 379, 94, 219, 345, 376, + /* 10 */ 408, 422, -14, 445, -14, -13, 304, -13, -14, -14, + /* 20 */ -14, -14, -14, -14, -13, -14, 448, 458, 541, 458, + /* 30 */ -14, -1, -14, -14, 458, 458, 221, 458, 221, 458, + /* 40 */ 59, 458, 59, 458, 59, 458, 526, 458, 526, 458, + /* 50 */ 153, 458, 153, 458, 153, 458, 218, 458, 218, 458, + /* 60 */ 218, 458, 218, 458, 218, 458, 218, 458, 274, 354, + /* 70 */ 458, 553, 458, 274, 540, 256, 310, 344, 68, 558, + /* 80 */ 390, -14, 558, -14, 421, 563, 565, 53, -14, 567, + /* 90 */ 350, -14, 567, -14, -14, -14, 575, 325, 567, 279, + /* 100 */ -14, -14, 368, 567, 357, -14, -14, -14, 564, 603, + /* 110 */ -14, 275, -14, -14, 558, 359, 619, -14, 458, 249, + /* 120 */ 458, 249, 305, -14, 584, -14, 458, 119, 458, 119, + /* 130 */ 370, 98, -14, 625, -14, 638, 658, 648, -14, 650, + /* 140 */ 458, 145, 665, 652, -14, 659, 458, 179, 666, 672, + /* 150 */ -14, 458, 23, 175, -14, -14, 458, 203, 458, 249, + /* 160 */ -14, 423, 676, 282, 249, 678, -14, 435, 432, -14, + /* 170 */ -14, 458, 553, 458, 553, -14, -14, -14, -14, -14, + /* 180 */ -14, -14, -14, -14, -14, -14, -14, -14, 458, 249, + /* 190 */ -14, 696, -14, -14, 695, 705, 709, 722, 450, 721, + /* 200 */ 726, 729, 494, 728, 734, 735, 516, 733, 738, 744, + /* 210 */ 745, -14, -14, 344, -14, -14, 446, 433, -14, 54, + /* 220 */ 746, -14, -14, -14, -14, -14, 444, -14, 732, -14, + /* 230 */ 458, 553, 736, 256, 542, -14, 739, -14, 221, -14, + /* 240 */ 458, 249, 727, 458, 753, 458, -14, 249, -14, 458, + /* 250 */ 249, 747, 558, 486, 737, 458, 532, 787, 458, -14, + /* 260 */ 249, -14, 757, 622, 748, 749, 458, 643, 789, 757, + /* 270 */ -14, -14, -14, 94, 651, 793, -13, 798, 558, 751, + /* 280 */ 558, 774, 558, -14, 797, 458, -14, 249, -14, 94, + /* 290 */ 651, 804, 777, 558, -14, +}; +#define PP_REDUCE_USE_DFLT (-33) +static short pp_reduce_ofst[] = { + /* 0 */ 478, -33, -33, -33, -33, -33, 91, 193, 328, 348, + /* 10 */ 384, 391, -33, -33, -33, 380, -33, 401, -33, -33, + /* 20 */ -33, -33, -33, -33, 427, -33, -33, 343, -33, 476, + /* 30 */ -33, -33, -33, -33, 522, 527, -33, 536, -33, 546, + /* 40 */ -33, 547, -33, 548, -33, 550, -33, 556, -33, 557, + /* 50 */ -33, 562, -33, 571, -33, 573, -33, 576, -33, 582, + /* 60 */ -33, 583, -33, 585, -33, 592, -33, 608, -33, -33, + /* 70 */ 609, -33, 612, -33, -33, 254, 477, 457, -33, 511, + /* 80 */ -11, -33, 199, -33, -33, -33, -33, 498, -33, -32, + /* 90 */ -33, -33, 504, -33, -33, -33, -33, 509, 158, -33, + /* 100 */ -33, -33, 512, 253, -33, -33, -33, -33, -33, -33, + /* 110 */ -33, 182, -33, -33, 246, 552, 555, -33, 287, -33, + /* 120 */ 387, -33, -33, -33, -33, -33, 487, -33, 615, -33, + /* 130 */ 483, -33, -33, -33, -33, -33, 375, -33, -33, -33, + /* 140 */ 617, -33, -33, -33, -33, -33, 618, -33, -33, -33, + /* 150 */ -33, 620, 315, 591, -33, -33, 624, -33, 629, -33, + /* 160 */ -33, -33, 590, 342, -33, -33, -33, -33, 503, -33, + /* 170 */ -33, 632, -33, 634, -33, -33, -33, -33, -33, -33, + /* 180 */ -33, -33, -33, -33, -33, -33, -33, -33, 641, -33, + /* 190 */ -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + /* 200 */ -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + /* 210 */ -33, -33, -33, 510, -33, -33, -33, -33, -33, -33, + /* 220 */ -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, + /* 230 */ 644, -33, -33, 255, -33, -33, -33, -33, -33, -33, + /* 240 */ 653, -33, -33, 388, -33, 513, -33, -33, -33, 656, + /* 250 */ -33, -33, 452, -33, -33, 473, -33, -33, 520, -33, + /* 260 */ -33, -33, 464, -33, -33, -33, 484, -33, -33, 679, + /* 270 */ -33, -33, -33, 707, 682, -33, 671, -33, 505, -33, + /* 280 */ 399, -33, 463, -33, -33, 524, -33, -33, -33, 714, + /* 290 */ 689, -33, -33, 667, -33, +}; +static PPACTIONTYPE pp_default[] = { + /* 0 */ 457, 457, 457, 457, 457, 457, 364, 373, 378, 366, + /* 10 */ 384, 380, 300, 457, 379, 457, 381, 457, 382, 387, + /* 20 */ 388, 389, 390, 391, 457, 383, 457, 457, 365, 457, + /* 30 */ 367, 369, 370, 371, 457, 457, 392, 457, 394, 457, + /* 40 */ 395, 457, 396, 457, 397, 457, 398, 457, 399, 457, + /* 50 */ 400, 457, 401, 457, 402, 457, 403, 457, 404, 457, + /* 60 */ 405, 457, 406, 457, 407, 457, 408, 457, 409, 457, + /* 70 */ 457, 410, 457, 411, 457, 457, 304, 457, 457, 457, + /* 80 */ 315, 301, 457, 312, 352, 457, 350, 457, 353, 457, + /* 90 */ 457, 354, 457, 359, 361, 360, 351, 457, 457, 457, + /* 100 */ 355, 356, 457, 457, 457, 357, 358, 362, 456, 457, + /* 110 */ 455, 314, 316, 318, 457, 322, 333, 319, 457, 332, + /* 120 */ 457, 419, 457, 437, 457, 438, 457, 439, 457, 440, + /* 130 */ 457, 457, 443, 457, 415, 457, 457, 457, 418, 457, + /* 140 */ 457, 457, 457, 457, 420, 457, 457, 457, 457, 457, + /* 150 */ 421, 457, 457, 457, 422, 423, 457, 457, 457, 425, + /* 160 */ 427, 456, 430, 457, 436, 457, 428, 457, 457, 433, + /* 170 */ 435, 457, 441, 457, 442, 444, 445, 446, 447, 448, + /* 180 */ 449, 450, 451, 452, 453, 454, 434, 429, 457, 426, + /* 190 */ 424, 457, 320, 321, 457, 457, 457, 457, 457, 457, + /* 200 */ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, + /* 210 */ 457, 317, 313, 457, 305, 307, 456, 457, 308, 311, + /* 220 */ 457, 309, 310, 306, 302, 303, 457, 413, 457, 416, + /* 230 */ 457, 412, 457, 457, 457, 414, 457, 417, 393, 368, + /* 240 */ 457, 377, 457, 457, 372, 457, 374, 376, 375, 457, + /* 250 */ 363, 457, 457, 457, 457, 457, 457, 457, 457, 336, + /* 260 */ 338, 337, 457, 457, 457, 457, 457, 457, 457, 457, + /* 270 */ 339, 341, 340, 364, 457, 457, 457, 457, 457, 457, + /* 280 */ 457, 343, 457, 344, 457, 457, 346, 347, 345, 364, + /* 290 */ 457, 457, 457, 457, 349, +}; +#define PP_SZ_ACTTAB (sizeof(pp_action)/sizeof(pp_action[0])) - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, ¶ms_param); - zephir_get_arrval(¶ms, params_param); +/* The next table maps tokens into fallback tokens. If a construct +** like the following: +** +** %fallback ID X Y Z. +** +** appears in the grammer, then ID becomes a fallback token for X, Y, +** and Z. Whenever one of the tokens X, Y, or Z is input to the parser +** but it does not parse, the type of the token is changed to ID and +** the parse is retried before an error is thrown. +*/ +#ifdef PPFALLBACK +static const PPCODETYPE ppFallback[] = { +}; +#endif /* PPFALLBACK */ +/* The following structure represents a single element of the +** parser's stack. Information stored includes: +** +** + The state number for the parser at this level of the stack. +** +** + The value of the token stored at this level of the stack. +** (In other words, the "major" token.) +** +** + The semantic value stored at this level of the stack. This is +** the information used by the action routines in the grammar. +** It is sometimes called the "minor" token. +*/ +struct ppStackEntry { + int stateno; /* The state-number */ + int major; /* The major token value. This is the code + ** number for the token at this stack level */ + PPMINORTYPE minor; /* The user-supplied minor token value. This + ** is the value of the token */ +}; +typedef struct ppStackEntry ppStackEntry; - zephir_update_property_zval(this_ptr, ZEND_STRL("params"), ¶ms); - ZEPHIR_MM_RESTORE(); -} +/* The state of the parser is completely contained in an instance of +** the following structure */ +struct ppParser { + int ppidx; /* Index of top element in stack */ + int pperrcnt; /* Shifts left before out of the error */ + phql_ARG_SDECL /* A place to hold %extra_argument */ + ppStackEntry ppstack[PPSTACKDEPTH]; /* The parser's stack */ +}; +typedef struct ppParser ppParser; -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setReturnedValue) -{ - zval *value, value_sub; - zval *this_ptr = getThis(); +#ifndef NDEBUG +static FILE *ppTraceFILE = 0; +static char *ppTracePrompt = 0; +#endif /* NDEBUG */ - ZVAL_UNDEF(&value_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif +#ifndef NDEBUG +static void phql_Trace(FILE *TraceFILE, char *zTracePrompt){ + ppTraceFILE = TraceFILE; + ppTracePrompt = zTracePrompt; + if( ppTraceFILE==0 ) ppTracePrompt = 0; + else if( ppTracePrompt==0 ) ppTraceFILE = 0; +} +#endif /* NDEBUG */ +#ifndef NDEBUG +/* For tracing shifts, the names of all terminals and nonterminals +** are required. The following table supplies these names */ +static const char *ppTokenName[] = { + "$", "AGAINST", "BETWEEN", "BETWEEN_NOT", + "EQUALS", "NOTEQUALS", "LESS", "GREATER", + "GREATEREQUAL", "LESSEQUAL", "AND", "OR", + "LIKE", "ILIKE", "BITWISE_AND", "BITWISE_OR", + "BITWISE_XOR", "DIVIDE", "TIMES", "MOD", + "PLUS", "MINUS", "IS", "IN", + "NOT", "BITWISE_NOT", "COMMA", "SELECT", + "FROM", "DISTINCT", "ALL", "IDENTIFIER", + "DOT", "AS", "INNER", "JOIN", + "CROSS", "LEFT", "OUTER", "RIGHT", + "FULL", "ON", "INSERT", "INTO", + "VALUES", "PARENTHESES_OPEN", "PARENTHESES_CLOSE", "UPDATE", + "SET", "DELETE", "WITH", "WHERE", + "ORDER", "BY", "ASC", "DESC", + "GROUP", "HAVING", "FOR", "LIMIT", + "OFFSET", "INTEGER", "HINTEGER", "NPLACEHOLDER", + "SPLACEHOLDER", "BPLACEHOLDER", "EXISTS", "CAST", + "CONVERT", "USING", "CASE", "END", + "WHEN", "THEN", "ELSE", "NULL", + "STRING", "DOUBLE", "TRUE", "FALSE", + "error", "program", "query_language", "select_statement", + "insert_statement", "update_statement", "delete_statement", "select_clause", + "where_clause", "group_clause", "having_clause", "order_clause", + "select_limit_clause", "for_update_clause", "distinct_all", "column_list", + "associated_name_list", "join_list_or_null", "column_item", "expr", + "associated_name", "join_list", "join_item", "join_clause", + "join_type", "aliased_or_qualified_name", "join_associated_name", "join_conditions", + "values_list", "field_list", "value_list", "value_item", + "field_item", "update_clause", "limit_clause", "update_item_list", + "update_item", "qualified_name", "new_value", "delete_clause", + "with_item", "with_list", "order_list", "order_item", + "group_list", "group_item", "integer_or_placeholder", "argument_list", + "when_clauses", "when_clause", "function_call", "distinct_or_null", + "argument_list_or_null", "argument_item", +}; +#endif /* NDEBUG */ - zephir_fetch_params_without_memory_grow(1, 0, &value); +#ifndef NDEBUG +/* For tracing reduce actions, the names of all rules are required. +*/ +static const char *ppRuleName[] = { + /* 0 */ "program ::= query_language", + /* 1 */ "query_language ::= select_statement", + /* 2 */ "query_language ::= insert_statement", + /* 3 */ "query_language ::= update_statement", + /* 4 */ "query_language ::= delete_statement", + /* 5 */ "select_statement ::= select_clause where_clause group_clause having_clause order_clause select_limit_clause for_update_clause", + /* 6 */ "select_clause ::= SELECT distinct_all column_list FROM associated_name_list join_list_or_null", + /* 7 */ "distinct_all ::= DISTINCT", + /* 8 */ "distinct_all ::= ALL", + /* 9 */ "distinct_all ::=", + /* 10 */ "column_list ::= column_list COMMA column_item", + /* 11 */ "column_list ::= column_item", + /* 12 */ "column_item ::= TIMES", + /* 13 */ "column_item ::= IDENTIFIER DOT TIMES", + /* 14 */ "column_item ::= expr AS IDENTIFIER", + /* 15 */ "column_item ::= expr IDENTIFIER", + /* 16 */ "column_item ::= expr", + /* 17 */ "associated_name_list ::= associated_name_list COMMA associated_name", + /* 18 */ "associated_name_list ::= associated_name", + /* 19 */ "join_list_or_null ::= join_list", + /* 20 */ "join_list_or_null ::=", + /* 21 */ "join_list ::= join_list join_item", + /* 22 */ "join_list ::= join_item", + /* 23 */ "join_item ::= join_clause", + /* 24 */ "join_clause ::= join_type aliased_or_qualified_name join_associated_name join_conditions", + /* 25 */ "join_associated_name ::= AS IDENTIFIER", + /* 26 */ "join_associated_name ::= IDENTIFIER", + /* 27 */ "join_associated_name ::=", + /* 28 */ "join_type ::= INNER JOIN", + /* 29 */ "join_type ::= CROSS JOIN", + /* 30 */ "join_type ::= LEFT OUTER JOIN", + /* 31 */ "join_type ::= LEFT JOIN", + /* 32 */ "join_type ::= RIGHT OUTER JOIN", + /* 33 */ "join_type ::= RIGHT JOIN", + /* 34 */ "join_type ::= FULL OUTER JOIN", + /* 35 */ "join_type ::= FULL JOIN", + /* 36 */ "join_type ::= JOIN", + /* 37 */ "join_conditions ::= ON expr", + /* 38 */ "join_conditions ::=", + /* 39 */ "insert_statement ::= INSERT INTO aliased_or_qualified_name VALUES PARENTHESES_OPEN values_list PARENTHESES_CLOSE", + /* 40 */ "insert_statement ::= INSERT INTO aliased_or_qualified_name PARENTHESES_OPEN field_list PARENTHESES_CLOSE VALUES PARENTHESES_OPEN values_list PARENTHESES_CLOSE", + /* 41 */ "values_list ::= values_list COMMA value_item", + /* 42 */ "values_list ::= value_item", + /* 43 */ "value_item ::= expr", + /* 44 */ "field_list ::= field_list COMMA field_item", + /* 45 */ "field_list ::= field_item", + /* 46 */ "field_item ::= IDENTIFIER", + /* 47 */ "update_statement ::= update_clause where_clause limit_clause", + /* 48 */ "update_clause ::= UPDATE associated_name SET update_item_list", + /* 49 */ "update_item_list ::= update_item_list COMMA update_item", + /* 50 */ "update_item_list ::= update_item", + /* 51 */ "update_item ::= qualified_name EQUALS new_value", + /* 52 */ "new_value ::= expr", + /* 53 */ "delete_statement ::= delete_clause where_clause limit_clause", + /* 54 */ "delete_clause ::= DELETE FROM associated_name", + /* 55 */ "associated_name ::= aliased_or_qualified_name AS IDENTIFIER", + /* 56 */ "associated_name ::= aliased_or_qualified_name IDENTIFIER", + /* 57 */ "associated_name ::= aliased_or_qualified_name", + /* 58 */ "associated_name ::= aliased_or_qualified_name AS IDENTIFIER WITH with_item", + /* 59 */ "associated_name ::= aliased_or_qualified_name AS IDENTIFIER WITH PARENTHESES_OPEN with_list PARENTHESES_CLOSE", + /* 60 */ "associated_name ::= aliased_or_qualified_name IDENTIFIER WITH PARENTHESES_OPEN with_list PARENTHESES_CLOSE", + /* 61 */ "associated_name ::= aliased_or_qualified_name IDENTIFIER WITH with_item", + /* 62 */ "associated_name ::= aliased_or_qualified_name WITH PARENTHESES_OPEN with_list PARENTHESES_CLOSE", + /* 63 */ "associated_name ::= aliased_or_qualified_name WITH with_item", + /* 64 */ "with_list ::= with_list COMMA with_item", + /* 65 */ "with_list ::= with_item", + /* 66 */ "with_item ::= IDENTIFIER", + /* 67 */ "aliased_or_qualified_name ::= qualified_name", + /* 68 */ "where_clause ::= WHERE expr", + /* 69 */ "where_clause ::=", + /* 70 */ "order_clause ::= ORDER BY order_list", + /* 71 */ "order_clause ::=", + /* 72 */ "order_list ::= order_list COMMA order_item", + /* 73 */ "order_list ::= order_item", + /* 74 */ "order_item ::= expr", + /* 75 */ "order_item ::= expr ASC", + /* 76 */ "order_item ::= expr DESC", + /* 77 */ "group_clause ::= GROUP BY group_list", + /* 78 */ "group_clause ::=", + /* 79 */ "group_list ::= group_list COMMA group_item", + /* 80 */ "group_list ::= group_item", + /* 81 */ "group_item ::= expr", + /* 82 */ "having_clause ::= HAVING expr", + /* 83 */ "having_clause ::=", + /* 84 */ "for_update_clause ::= FOR UPDATE", + /* 85 */ "for_update_clause ::=", + /* 86 */ "select_limit_clause ::= LIMIT integer_or_placeholder", + /* 87 */ "select_limit_clause ::= LIMIT integer_or_placeholder COMMA integer_or_placeholder", + /* 88 */ "select_limit_clause ::= LIMIT integer_or_placeholder OFFSET integer_or_placeholder", + /* 89 */ "select_limit_clause ::=", + /* 90 */ "limit_clause ::= LIMIT integer_or_placeholder", + /* 91 */ "limit_clause ::=", + /* 92 */ "integer_or_placeholder ::= INTEGER", + /* 93 */ "integer_or_placeholder ::= HINTEGER", + /* 94 */ "integer_or_placeholder ::= NPLACEHOLDER", + /* 95 */ "integer_or_placeholder ::= SPLACEHOLDER", + /* 96 */ "integer_or_placeholder ::= BPLACEHOLDER", + /* 97 */ "expr ::= MINUS expr", + /* 98 */ "expr ::= expr MINUS expr", + /* 99 */ "expr ::= expr PLUS expr", + /* 100 */ "expr ::= expr TIMES expr", + /* 101 */ "expr ::= expr DIVIDE expr", + /* 102 */ "expr ::= expr MOD expr", + /* 103 */ "expr ::= expr AND expr", + /* 104 */ "expr ::= expr OR expr", + /* 105 */ "expr ::= expr BITWISE_AND expr", + /* 106 */ "expr ::= expr BITWISE_OR expr", + /* 107 */ "expr ::= expr BITWISE_XOR expr", + /* 108 */ "expr ::= expr EQUALS expr", + /* 109 */ "expr ::= expr NOTEQUALS expr", + /* 110 */ "expr ::= expr LESS expr", + /* 111 */ "expr ::= expr GREATER expr", + /* 112 */ "expr ::= expr GREATEREQUAL expr", + /* 113 */ "expr ::= expr LESSEQUAL expr", + /* 114 */ "expr ::= expr LIKE expr", + /* 115 */ "expr ::= expr NOT LIKE expr", + /* 116 */ "expr ::= expr ILIKE expr", + /* 117 */ "expr ::= expr NOT ILIKE expr", + /* 118 */ "expr ::= expr IN PARENTHESES_OPEN argument_list PARENTHESES_CLOSE", + /* 119 */ "expr ::= expr NOT IN PARENTHESES_OPEN argument_list PARENTHESES_CLOSE", + /* 120 */ "expr ::= PARENTHESES_OPEN select_statement PARENTHESES_CLOSE", + /* 121 */ "expr ::= expr IN PARENTHESES_OPEN select_statement PARENTHESES_CLOSE", + /* 122 */ "expr ::= expr NOT IN PARENTHESES_OPEN select_statement PARENTHESES_CLOSE", + /* 123 */ "expr ::= EXISTS PARENTHESES_OPEN select_statement PARENTHESES_CLOSE", + /* 124 */ "expr ::= expr AGAINST expr", + /* 125 */ "expr ::= CAST PARENTHESES_OPEN expr AS IDENTIFIER PARENTHESES_CLOSE", + /* 126 */ "expr ::= CONVERT PARENTHESES_OPEN expr USING IDENTIFIER PARENTHESES_CLOSE", + /* 127 */ "expr ::= CASE expr when_clauses END", + /* 128 */ "when_clauses ::= when_clauses when_clause", + /* 129 */ "when_clauses ::= when_clause", + /* 130 */ "when_clause ::= WHEN expr THEN expr", + /* 131 */ "when_clause ::= ELSE expr", + /* 132 */ "expr ::= function_call", + /* 133 */ "function_call ::= IDENTIFIER PARENTHESES_OPEN distinct_or_null argument_list_or_null PARENTHESES_CLOSE", + /* 134 */ "distinct_or_null ::= DISTINCT", + /* 135 */ "distinct_or_null ::=", + /* 136 */ "argument_list_or_null ::= argument_list", + /* 137 */ "argument_list_or_null ::=", + /* 138 */ "argument_list ::= argument_list COMMA argument_item", + /* 139 */ "argument_list ::= argument_item", + /* 140 */ "argument_item ::= TIMES", + /* 141 */ "argument_item ::= expr", + /* 142 */ "expr ::= expr IS NULL", + /* 143 */ "expr ::= expr IS NOT NULL", + /* 144 */ "expr ::= expr BETWEEN expr", + /* 145 */ "expr ::= expr BETWEEN_NOT expr", + /* 146 */ "expr ::= NOT expr", + /* 147 */ "expr ::= BITWISE_NOT expr", + /* 148 */ "expr ::= PARENTHESES_OPEN expr PARENTHESES_CLOSE", + /* 149 */ "expr ::= qualified_name", + /* 150 */ "expr ::= INTEGER", + /* 151 */ "expr ::= HINTEGER", + /* 152 */ "expr ::= STRING", + /* 153 */ "expr ::= DOUBLE", + /* 154 */ "expr ::= NULL", + /* 155 */ "expr ::= TRUE", + /* 156 */ "expr ::= FALSE", + /* 157 */ "expr ::= NPLACEHOLDER", + /* 158 */ "expr ::= SPLACEHOLDER", + /* 159 */ "expr ::= BPLACEHOLDER", + /* 160 */ "qualified_name ::= IDENTIFIER DOT IDENTIFIER", + /* 161 */ "qualified_name ::= IDENTIFIER", +}; +#endif /* NDEBUG */ +const char *phql_TokenName(int tokenType){ +#ifndef NDEBUG + if( tokenType>0 && tokenType<(sizeof(ppTokenName)/sizeof(ppTokenName[0])) ){ + return ppTokenName[tokenType]; + }else{ + return "Unknown"; + } +#else + return ""; +#endif +} - zephir_update_property_zval(this_ptr, ZEND_STRL("returnedValue"), value); +void *phql_Alloc(void *(*mallocProc)(size_t)){ + ppParser *pParser; + pParser = (ppParser*)(*mallocProc)( (size_t)sizeof(ppParser) ); + if( pParser ){ + pParser->ppidx = -1; + } + return pParser; } -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setActionSuffix) +/* The following function deletes the value associated with a +** symbol. The symbol can be either a terminal or nonterminal. +** "ppmajor" is the symbol code, and "pppminor" is a pointer to +** the value. +*/ +static void pp_destructor(PPCODETYPE ppmajor, PPMINORTYPE *pppminor){ + switch( ppmajor ){ + /* Here is inserted the actions which take place when a + ** terminal or non-terminal is destroyed. This can happen + ** when the symbol is popped from the stack during a + ** reduce or during error processing or when a parser is + ** being destroyed before it is finished parsing. + ** + ** Note: during a reduce, the only symbols destroyed are those + ** which appear on the RHS of the rule, but which are not used + ** inside the C code. + */ + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: +// 101 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *actionSuffix_param = NULL; - zval actionSuffix; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&actionSuffix); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(actionSuffix) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &actionSuffix_param); - zephir_get_strval(&actionSuffix, actionSuffix_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("actionSuffix"), &actionSuffix); - ZEPHIR_MM_RESTORE(); + if ((pppminor->pp0)) { + if ((pppminor->pp0)->free_flag) { + efree((pppminor->pp0)->token); + } + efree((pppminor->pp0)); + } } - -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setEventsManager) +// 826 "parser.php.c" + break; + case 82: + case 83: + case 84: + case 85: + case 86: + case 87: + case 89: + case 95: + case 96: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 104: + case 105: + case 109: + case 110: + case 112: + case 113: + case 115: + case 116: + case 117: + case 119: + case 120: + case 121: + case 122: + case 123: + case 124: + case 125: + case 127: + case 130: + case 133: +// 114 "parser.php.lemon" { - zval *eventsManager, eventsManager_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&eventsManager_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); + zval_ptr_dtor(&(pppminor->pp202)); } - -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setHandlerSuffix) +// 866 "parser.php.c" + break; + case 88: + case 90: + case 91: + case 92: + case 93: + case 94: + case 106: + case 107: + case 114: + case 131: + case 132: +// 496 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *handlerSuffix_param = NULL; - zval handlerSuffix; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&handlerSuffix); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(handlerSuffix) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &handlerSuffix_param); - zephir_get_strval(&handlerSuffix, handlerSuffix_param); + zephir_safe_zval_ptr_dtor((pppminor->pp202)); +} +// 883 "parser.php.c" + break; + default: break; /* If no destructor action specified: do nothing */ + } +} +static int pp_pop_parser_stack(ppParser *pParser){ + PPCODETYPE ppmajor; + ppStackEntry *pptos = &pParser->ppstack[pParser->ppidx]; - zephir_update_property_zval(this_ptr, ZEND_STRL("handlerSuffix"), &handlerSuffix); - ZEPHIR_MM_RESTORE(); + if( pParser->ppidx<0 ) return 0; +#ifndef NDEBUG + if( ppTraceFILE && pParser->ppidx>=0 ){ + fprintf(ppTraceFILE,"%sPopping %s\n", + ppTracePrompt, + ppTokenName[pptos->major]); + } +#endif + ppmajor = pptos->major; + pp_destructor( ppmajor, &pptos->minor); + pParser->ppidx--; + return ppmajor; } -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setModelBinder) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *modelBinder, modelBinder_sub, *cache = NULL, cache_sub, __$true, __$false, __$null, container, _0$$3, _1$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&modelBinder_sub); - ZVAL_UNDEF(&cache_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_OBJECT_OF_CLASS(modelBinder, phalcon_mvc_model_binderinterface_ce) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(cache) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &modelBinder, &cache); - if (!cache) { - cache = &cache_sub; - ZEPHIR_CPY_WRT(cache, &__$null); - } else { - ZEPHIR_SEPARATE_PARAM(cache); - } - - - if (Z_TYPE_P(cache) == IS_STRING) { - zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0$$3); - ZEPHIR_CALL_METHOD(&_1$$3, &container, "get", NULL, 0, cache); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(cache, &_1$$3); - } - if (Z_TYPE_P(cache) != IS_NULL) { - ZEPHIR_CALL_METHOD(NULL, modelBinder, "setcache", NULL, 0, cache); - zephir_check_call_status(); - } - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("modelBinding"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("modelBinding"), &__$false); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("modelBinder"), modelBinder); - RETURN_THIS(); +static void phql_Free( + void *p, /* The parser to be deleted */ + void (*freeProc)(void*) /* Function used to reclaim memory */ +){ + ppParser *pParser = (ppParser*)p; + if( pParser==0 ) return; + while( pParser->ppidx>=0 ) pp_pop_parser_stack(pParser); + (*freeProc)((void*)pParser); } -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setModuleName) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *moduleName_param = NULL; - zval moduleName; - zval *this_ptr = getThis(); +static int pp_find_shift_action( + ppParser *pParser, /* The parser */ + int iLookAhead /* The look-ahead token */ +){ + int i; + int stateno = pParser->ppstack[pParser->ppidx].stateno; - ZVAL_UNDEF(&moduleName); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(moduleName) - ZEND_PARSE_PARAMETERS_END(); + /* if( pParser->ppidx<0 ) return PP_NO_ACTION; */ + i = pp_shift_ofst[stateno]; + if( i==PP_SHIFT_USE_DFLT ){ + return pp_default[stateno]; + } + if( iLookAhead==PPNOCODE ){ + return PP_NO_ACTION; + } + i += iLookAhead; + if( i<0 || i>=PP_SZ_ACTTAB || pp_lookahead[i]!=iLookAhead ){ +#ifdef PPFALLBACK + int iFallback; /* Fallback token */ + if( iLookAhead %s\n", + ppTracePrompt, ppTokenName[iLookAhead], ppTokenName[iFallback]); + } #endif + return pp_find_shift_action(pParser, iFallback); + } +#endif + return pp_default[stateno]; + }else{ + return pp_action[i]; + } +} +static int pp_find_reduce_action( + ppParser *pParser, /* The parser */ + int iLookAhead /* The look-ahead token */ +){ + int i; + int stateno = pParser->ppstack[pParser->ppidx].stateno; - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &moduleName_param); - zephir_get_strval(&moduleName, moduleName_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("moduleName"), &moduleName); - ZEPHIR_MM_RESTORE(); + i = pp_reduce_ofst[stateno]; + if( i==PP_REDUCE_USE_DFLT ){ + return pp_default[stateno]; + } + if( iLookAhead==PPNOCODE ){ + return PP_NO_ACTION; + } + i += iLookAhead; + if( i<0 || i>=PP_SZ_ACTTAB || pp_lookahead[i]!=iLookAhead ){ + return pp_default[stateno]; + }else{ + return pp_action[i]; + } } -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setNamespaceName) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *namespaceName_param = NULL; - zval namespaceName; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&namespaceName); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(namespaceName) - ZEND_PARSE_PARAMETERS_END(); +static void pp_shift( + ppParser *pppParser, /* The parser to be shifted */ + int ppNewState, /* The new state to shift in */ + int ppMajor, /* The major token to shift in */ + PPMINORTYPE *pppMinor /* Pointer ot the minor token to shift in */ +){ + ppStackEntry *pptos; + pppParser->ppidx++; + if( pppParser->ppidx>=PPSTACKDEPTH ){ + phql_ARG_FETCH; + pppParser->ppidx--; +#ifndef NDEBUG + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sStack Overflow!\n",ppTracePrompt); + } +#endif + while( pppParser->ppidx>=0 ) pp_pop_parser_stack(pppParser); + /* Here code is inserted which will execute if the parser + ** stack every overflows */ + phql_ARG_STORE; /* Suppress warning about unused %extra_argument var */ + return; + } + pptos = &pppParser->ppstack[pppParser->ppidx]; + pptos->stateno = ppNewState; + pptos->major = ppMajor; + pptos->minor = *pppMinor; +#ifndef NDEBUG + if( ppTraceFILE && pppParser->ppidx>0 ){ + int i; + fprintf(ppTraceFILE,"%sShift %d\n",ppTracePrompt,ppNewState); + fprintf(ppTraceFILE,"%sStack:",ppTracePrompt); + for(i=1; i<=pppParser->ppidx; i++) + fprintf(ppTraceFILE," %s",ppTokenName[pppParser->ppstack[i].major]); + fprintf(ppTraceFILE,"\n"); + } #endif +} +/* The following table contains information about every rule that +** is used during the reduce. +*/ +static struct { + PPCODETYPE lhs; /* Symbol on the left-hand side of the rule */ + unsigned char nrhs; /* Number of right-hand side symbols in the rule */ +} ppRuleInfo[] = { + { 81, 1 }, + { 82, 1 }, + { 82, 1 }, + { 82, 1 }, + { 82, 1 }, + { 83, 7 }, + { 87, 6 }, + { 94, 1 }, + { 94, 1 }, + { 94, 0 }, + { 95, 3 }, + { 95, 1 }, + { 98, 1 }, + { 98, 3 }, + { 98, 3 }, + { 98, 2 }, + { 98, 1 }, + { 96, 3 }, + { 96, 1 }, + { 97, 1 }, + { 97, 0 }, + { 101, 2 }, + { 101, 1 }, + { 102, 1 }, + { 103, 4 }, + { 106, 2 }, + { 106, 1 }, + { 106, 0 }, + { 104, 2 }, + { 104, 2 }, + { 104, 3 }, + { 104, 2 }, + { 104, 3 }, + { 104, 2 }, + { 104, 3 }, + { 104, 2 }, + { 104, 1 }, + { 107, 2 }, + { 107, 0 }, + { 84, 7 }, + { 84, 10 }, + { 108, 3 }, + { 108, 1 }, + { 111, 1 }, + { 109, 3 }, + { 109, 1 }, + { 112, 1 }, + { 85, 3 }, + { 113, 4 }, + { 115, 3 }, + { 115, 1 }, + { 116, 3 }, + { 118, 1 }, + { 86, 3 }, + { 119, 3 }, + { 100, 3 }, + { 100, 2 }, + { 100, 1 }, + { 100, 5 }, + { 100, 7 }, + { 100, 6 }, + { 100, 4 }, + { 100, 5 }, + { 100, 3 }, + { 121, 3 }, + { 121, 1 }, + { 120, 1 }, + { 105, 1 }, + { 88, 2 }, + { 88, 0 }, + { 91, 3 }, + { 91, 0 }, + { 122, 3 }, + { 122, 1 }, + { 123, 1 }, + { 123, 2 }, + { 123, 2 }, + { 89, 3 }, + { 89, 0 }, + { 124, 3 }, + { 124, 1 }, + { 125, 1 }, + { 90, 2 }, + { 90, 0 }, + { 93, 2 }, + { 93, 0 }, + { 92, 2 }, + { 92, 4 }, + { 92, 4 }, + { 92, 0 }, + { 114, 2 }, + { 114, 0 }, + { 126, 1 }, + { 126, 1 }, + { 126, 1 }, + { 126, 1 }, + { 126, 1 }, + { 99, 2 }, + { 99, 3 }, + { 99, 3 }, + { 99, 3 }, + { 99, 3 }, + { 99, 3 }, + { 99, 3 }, + { 99, 3 }, + { 99, 3 }, + { 99, 3 }, + { 99, 3 }, + { 99, 3 }, + { 99, 3 }, + { 99, 3 }, + { 99, 3 }, + { 99, 3 }, + { 99, 3 }, + { 99, 3 }, + { 99, 4 }, + { 99, 3 }, + { 99, 4 }, + { 99, 5 }, + { 99, 6 }, + { 99, 3 }, + { 99, 5 }, + { 99, 6 }, + { 99, 4 }, + { 99, 3 }, + { 99, 6 }, + { 99, 6 }, + { 99, 4 }, + { 128, 2 }, + { 128, 1 }, + { 129, 4 }, + { 129, 2 }, + { 99, 1 }, + { 130, 5 }, + { 131, 1 }, + { 131, 0 }, + { 132, 1 }, + { 132, 0 }, + { 127, 3 }, + { 127, 1 }, + { 133, 1 }, + { 133, 1 }, + { 99, 3 }, + { 99, 4 }, + { 99, 3 }, + { 99, 3 }, + { 99, 2 }, + { 99, 2 }, + { 99, 3 }, + { 99, 1 }, + { 99, 1 }, + { 99, 1 }, + { 99, 1 }, + { 99, 1 }, + { 99, 1 }, + { 99, 1 }, + { 99, 1 }, + { 99, 1 }, + { 99, 1 }, + { 99, 1 }, + { 117, 3 }, + { 117, 1 }, +}; - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &namespaceName_param); - zephir_get_strval(&namespaceName, namespaceName_param); +static void pp_accept(ppParser*); /* Forward Declaration */ +static void pp_reduce( + ppParser *pppParser, /* The parser */ + int ppruleno /* Number of the rule by which to reduce */ +){ + int ppgoto; /* The next state */ + int ppact; /* The next action */ + PPMINORTYPE ppgotominor; /* The LHS of the rule reduced */ + ppStackEntry *ppmsp; /* The top of the parser's stack */ + int ppsize; /* Amount to pop the stack */ + phql_ARG_FETCH; + ppmsp = &pppParser->ppstack[pppParser->ppidx]; +#ifndef NDEBUG + if( ppTraceFILE && ppruleno>=0 + && ppruleno + ** { ... } // User supplied code + ** // + ** break; + */ + case 0: +// 110 "parser.php.lemon" +{ + ZVAL_ZVAL(&status->ret, &ppmsp[0].minor.pp202, 1, 1); } - -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getReturnedValue) +// 1262 "parser.php.c" + break; + case 1: + case 2: + case 3: + case 4: + case 18: + case 19: + case 22: + case 23: + case 43: + case 50: + case 52: + case 65: + case 67: + case 73: + case 80: + case 81: + case 132: + case 136: + case 141: + case 149: +// 118 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "returnedValue"); + ppgotominor.pp202 = ppmsp[0].minor.pp202; } - -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, wasForwarded) +// 1288 "parser.php.c" + break; + case 5: +// 138 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "forwarded"); + phql_ret_select_statement(&ppgotominor.pp202, &ppmsp[-6].minor.pp202, &ppmsp[-5].minor.pp202, &ppmsp[-2].minor.pp202, &ppmsp[-4].minor.pp202, &ppmsp[-3].minor.pp202, &ppmsp[-1].minor.pp202, &ppmsp[0].minor.pp202); } - -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, resolveEmptyProperties) +// 1295 "parser.php.c" + break; + case 6: +// 146 "parser.php.lemon" { - zval _0, _2, _4, _1$$3, _3$$4, _5$$5; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("namespaceName"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("defaultNamespace"), PH_NOISY_CC | PH_READONLY); - zephir_update_property_zval(this_ptr, ZEND_STRL("namespaceName"), &_1$$3); - } - zephir_read_property(&_2, this_ptr, ZEND_STRL("handlerName"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_2))) { - zephir_read_property(&_3$$4, this_ptr, ZEND_STRL("defaultHandler"), PH_NOISY_CC | PH_READONLY); - zephir_update_property_zval(this_ptr, ZEND_STRL("handlerName"), &_3$$4); - } - zephir_read_property(&_4, this_ptr, ZEND_STRL("actionName"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_4))) { - zephir_read_property(&_5$$5, this_ptr, ZEND_STRL("defaultAction"), PH_NOISY_CC | PH_READONLY); - zephir_update_property_zval(this_ptr, ZEND_STRL("actionName"), &_5$$5); - } + phql_ret_select_clause(&ppgotominor.pp202, &ppmsp[-4].minor.pp202, &ppmsp[-3].minor.pp202, &ppmsp[-1].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(27,&ppmsp[-5].minor); + pp_destructor(28,&ppmsp[-2].minor); } - -static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, toCamelCase) +// 1304 "parser.php.c" + break; + case 7: +// 154 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *input_param = NULL, camelCaseInput, _0, _1$$3, _2$$3, _3$$3; - zval input; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&input); - ZVAL_UNDEF(&camelCaseInput); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(input) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &input_param); - zephir_get_strval(&input, input_param); - - - ZEPHIR_OBS_VAR(&camelCaseInput); - zephir_read_property(&_0, this_ptr, ZEND_STRL("camelCaseMap"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&camelCaseInput, &_0, &input, 0))) { - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "/[_-]+/"); - ZEPHIR_CALL_FUNCTION(&_2$$3, "preg_split", NULL, 101, &_1$$3, &input); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_1$$3); - ZVAL_STRING(&_1$$3, "ucfirst"); - ZEPHIR_CALL_FUNCTION(&_3$$3, "array_map", NULL, 102, &_1$$3, &_2$$3); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&camelCaseInput); - zephir_fast_join_str(&camelCaseInput, SL(""), &_3$$3); - zephir_update_property_array(this_ptr, SL("camelCaseMap"), &input, &camelCaseInput); - } - RETURN_CCTOR(&camelCaseInput); + phql_ret_distinct_all(&ppgotominor.pp202, 1); + pp_destructor(29,&ppmsp[0].minor); } - -zend_object *zephir_init_properties_Phalcon_Dispatcher_AbstractDispatcher(zend_class_entry *class_type) +// 1312 "parser.php.c" + break; + case 8: +// 158 "parser.php.lemon" { - zval _0, _2, _4, _6, _1$$3, _3$$4, _5$$5, _7$$6; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_7$$6); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("params"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("handlerHashes"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("handlerHashes"), &_3$$4); - } - zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("camelCaseMap"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_4) == IS_NULL) { - ZEPHIR_INIT_VAR(&_5$$5); - array_init(&_5$$5); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("camelCaseMap"), &_5$$5); - } - zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("activeMethodMap"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_6) == IS_NULL) { - ZEPHIR_INIT_VAR(&_7$$6); - array_init(&_7$$6); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("activeMethodMap"), &_7$$6); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } + phql_ret_distinct_all(&ppgotominor.pp202, 0); + pp_destructor(30,&ppmsp[0].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Dispatcher_DispatcherInterface) +// 1320 "parser.php.c" + break; + case 9: + case 20: + case 27: + case 38: + case 69: + case 71: + case 78: + case 83: + case 85: + case 89: + case 91: + case 135: + case 137: +// 162 "parser.php.lemon" { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Dispatcher, DispatcherInterface, phalcon, dispatcher_dispatcherinterface, phalcon_dispatcher_dispatcherinterface_method_entry); - - return SUCCESS; + ZVAL_UNDEF(&ppgotominor.pp202); } - -ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, dispatch); -ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, forward); -ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, getActionName); -ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, getActionSuffix); -ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, getHandlerSuffix); -ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, getParam); -ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, getParams); -ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, getReturnedValue); -ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, hasParam); -ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, isFinished); -ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, setActionName); -ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, setActionSuffix); -ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, setDefaultAction); -ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, setDefaultNamespace); -ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, setHandlerSuffix); -ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, setModuleName); -ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, setNamespaceName); -ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, setParam); -ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, setParams); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Dispatcher_Exception) +// 1339 "parser.php.c" + break; + case 10: + case 17: + case 41: + case 44: + case 49: + case 64: + case 72: + case 79: + case 138: +// 170 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Dispatcher, Exception, phalcon, dispatcher_exception, phalcon_exception_ce, NULL, 0); - - zephir_declare_class_constant_long(phalcon_dispatcher_exception_ce, SL("EXCEPTION_ACTION_NOT_FOUND"), 5); - - zephir_declare_class_constant_long(phalcon_dispatcher_exception_ce, SL("EXCEPTION_CYCLIC_ROUTING"), 1); - - zephir_declare_class_constant_long(phalcon_dispatcher_exception_ce, SL("EXCEPTION_HANDLER_NOT_FOUND"), 2); - - zephir_declare_class_constant_long(phalcon_dispatcher_exception_ce, SL("EXCEPTION_INVALID_HANDLER"), 3); - - zephir_declare_class_constant_long(phalcon_dispatcher_exception_ce, SL("EXCEPTION_INVALID_PARAMS"), 4); - - zephir_declare_class_constant_long(phalcon_dispatcher_exception_ce, SL("EXCEPTION_NO_DI"), 0); - - return SUCCESS; + phql_ret_zval_list(&ppgotominor.pp202, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(26,&ppmsp[-1].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Domain_Payload_Payload) +// 1355 "parser.php.c" + break; + case 11: + case 42: + case 45: + case 129: + case 139: +// 174 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Domain\\Payload, Payload, phalcon, domain_payload_payload, phalcon_domain_payload_payload_method_entry, 0); - - zend_declare_property_null(phalcon_domain_payload_payload_ce, SL("exception"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_domain_payload_payload_ce, SL("extras"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_domain_payload_payload_ce, SL("input"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_domain_payload_payload_ce, SL("messages"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_domain_payload_payload_ce, SL("status"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_domain_payload_payload_ce, SL("output"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_domain_payload_payload_ce, 1, phalcon_domain_payload_payloadinterface_ce); - return SUCCESS; + phql_ret_zval_list(&ppgotominor.pp202, &ppmsp[0].minor.pp202, NULL); } - -static PHP_METHOD(Phalcon_Domain_Payload_Payload, getExtras) +// 1366 "parser.php.c" + break; + case 12: + case 140: +// 182 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "extras"); + phql_ret_column_item(&ppgotominor.pp202, PHQL_T_STARALL, NULL, NULL, NULL); + pp_destructor(18,&ppmsp[0].minor); } - -static PHP_METHOD(Phalcon_Domain_Payload_Payload, getInput) +// 1375 "parser.php.c" + break; + case 13: +// 186 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "input"); + phql_ret_column_item(&ppgotominor.pp202, PHQL_T_DOMAINALL, NULL, ppmsp[-2].minor.pp0, NULL); + pp_destructor(32,&ppmsp[-1].minor); + pp_destructor(18,&ppmsp[0].minor); } - -static PHP_METHOD(Phalcon_Domain_Payload_Payload, getMessages) +// 1384 "parser.php.c" + break; + case 14: +// 190 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "messages"); + phql_ret_column_item(&ppgotominor.pp202, PHQL_T_EXPR, &ppmsp[-2].minor.pp202, NULL, ppmsp[0].minor.pp0); + pp_destructor(33,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Domain_Payload_Payload, getStatus) +// 1392 "parser.php.c" + break; + case 15: +// 194 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "status"); + phql_ret_column_item(&ppgotominor.pp202, PHQL_T_EXPR, &ppmsp[-1].minor.pp202, NULL, ppmsp[0].minor.pp0); } - -static PHP_METHOD(Phalcon_Domain_Payload_Payload, getOutput) +// 1399 "parser.php.c" + break; + case 16: +// 198 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "output"); + phql_ret_column_item(&ppgotominor.pp202, PHQL_T_EXPR, &ppmsp[0].minor.pp202, NULL, NULL); } - -static PHP_METHOD(Phalcon_Domain_Payload_Payload, getException) +// 1406 "parser.php.c" + break; + case 21: + case 128: +// 226 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "exception"); + phql_ret_zval_list(&ppgotominor.pp202, &ppmsp[-1].minor.pp202, &ppmsp[0].minor.pp202); } - -static PHP_METHOD(Phalcon_Domain_Payload_Payload, setException) +// 1414 "parser.php.c" + break; + case 24: +// 247 "parser.php.lemon" { - zval *exception, exception_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&exception_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(exception, zend_ce_throwable) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &exception); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("exception"), exception); - RETURN_THISW(); + phql_ret_join_item(&ppgotominor.pp202, &ppmsp[-3].minor.pp202, &ppmsp[-2].minor.pp202, &ppmsp[-1].minor.pp202, &ppmsp[0].minor.pp202); } - -static PHP_METHOD(Phalcon_Domain_Payload_Payload, setExtras) +// 1421 "parser.php.c" + break; + case 25: +// 255 "parser.php.lemon" { - zval *extras, extras_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&extras_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(extras) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &extras); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("extras"), extras); - RETURN_THISW(); + phql_ret_qualified_name(&ppgotominor.pp202, NULL, NULL, ppmsp[0].minor.pp0); + pp_destructor(33,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Domain_Payload_Payload, setInput) +// 1429 "parser.php.c" + break; + case 26: + case 46: + case 66: + case 161: +// 259 "parser.php.lemon" { - zval *input, input_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&input_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(input) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &input); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("input"), input); - RETURN_THISW(); + phql_ret_qualified_name(&ppgotominor.pp202, NULL, NULL, ppmsp[0].minor.pp0); } - -static PHP_METHOD(Phalcon_Domain_Payload_Payload, setMessages) +// 1439 "parser.php.c" + break; + case 28: +// 271 "parser.php.lemon" { - zval *messages, messages_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&messages_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(messages) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &messages); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("messages"), messages); - RETURN_THISW(); + phql_ret_join_type(&ppgotominor.pp202, PHQL_T_INNERJOIN); + pp_destructor(34,&ppmsp[-1].minor); + pp_destructor(35,&ppmsp[0].minor); } - -static PHP_METHOD(Phalcon_Domain_Payload_Payload, setOutput) +// 1448 "parser.php.c" + break; + case 29: +// 275 "parser.php.lemon" { - zval *output, output_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&output_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(output) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &output); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("output"), output); - RETURN_THISW(); + phql_ret_join_type(&ppgotominor.pp202, PHQL_T_CROSSJOIN); + pp_destructor(36,&ppmsp[-1].minor); + pp_destructor(35,&ppmsp[0].minor); } - -static PHP_METHOD(Phalcon_Domain_Payload_Payload, setStatus) +// 1457 "parser.php.c" + break; + case 30: +// 279 "parser.php.lemon" { - zval *status, status_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&status_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(status) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &status); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("status"), status); - RETURN_THISW(); + phql_ret_join_type(&ppgotominor.pp202, PHQL_T_LEFTJOIN); + pp_destructor(37,&ppmsp[-2].minor); + pp_destructor(38,&ppmsp[-1].minor); + pp_destructor(35,&ppmsp[0].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Domain_Payload_PayloadFactory) +// 1467 "parser.php.c" + break; + case 31: +// 283 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Domain\\Payload, PayloadFactory, phalcon, domain_payload_payloadfactory, phalcon_domain_payload_payloadfactory_method_entry, 0); - - return SUCCESS; + phql_ret_join_type(&ppgotominor.pp202, PHQL_T_LEFTJOIN); + pp_destructor(37,&ppmsp[-1].minor); + pp_destructor(35,&ppmsp[0].minor); } - -static PHP_METHOD(Phalcon_Domain_Payload_PayloadFactory, newInstance) +// 1476 "parser.php.c" + break; + case 32: +// 287 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - - - ZEPHIR_MM_GROW(); - - object_init_ex(return_value, phalcon_domain_payload_payload_ce); - if (zephir_has_constructor(return_value)) { - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 0); - zephir_check_call_status(); - } - - RETURN_MM(); + phql_ret_join_type(&ppgotominor.pp202, PHQL_T_RIGHTJOIN); + pp_destructor(39,&ppmsp[-2].minor); + pp_destructor(38,&ppmsp[-1].minor); + pp_destructor(35,&ppmsp[0].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Domain_Payload_PayloadInterface) +// 1486 "parser.php.c" + break; + case 33: +// 291 "parser.php.lemon" { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Domain\\Payload, PayloadInterface, phalcon, domain_payload_payloadinterface, NULL); - - zend_class_implements(phalcon_domain_payload_payloadinterface_ce, 1, phalcon_domain_payload_readableinterface_ce); - zend_class_implements(phalcon_domain_payload_payloadinterface_ce, 1, phalcon_domain_payload_writeableinterface_ce); - return SUCCESS; + phql_ret_join_type(&ppgotominor.pp202, PHQL_T_RIGHTJOIN); + pp_destructor(39,&ppmsp[-1].minor); + pp_destructor(35,&ppmsp[0].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Domain_Payload_ReadableInterface) +// 1495 "parser.php.c" + break; + case 34: +// 295 "parser.php.lemon" { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Domain\\Payload, ReadableInterface, phalcon, domain_payload_readableinterface, phalcon_domain_payload_readableinterface_method_entry); - - return SUCCESS; + phql_ret_join_type(&ppgotominor.pp202, PHQL_T_FULLJOIN); + pp_destructor(40,&ppmsp[-2].minor); + pp_destructor(38,&ppmsp[-1].minor); + pp_destructor(35,&ppmsp[0].minor); } - -ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_ReadableInterface, getException); -ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_ReadableInterface, getExtras); -ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_ReadableInterface, getInput); -ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_ReadableInterface, getMessages); -ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_ReadableInterface, getOutput); -ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_ReadableInterface, getStatus); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Domain_Payload_Status) +// 1505 "parser.php.c" + break; + case 35: +// 299 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Domain\\Payload, Status, phalcon, domain_payload_status, phalcon_domain_payload_status_method_entry, 0); - - zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("ACCEPTED"), "ACCEPTED"); - - zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("AUTHENTICATED"), "AUTHENTICATED"); - - zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("AUTHORIZED"), "AUTHORIZED"); - - zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("CREATED"), "CREATED"); - - zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("DELETED"), "DELETED"); - - zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("ERROR"), "ERROR"); - - zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("FAILURE"), "FAILURE"); - - zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("FOUND"), "FOUND"); - - zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("NOT_ACCEPTED"), "NOT_ACCEPTED"); - - zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("NOT_AUTHENTICATED"), "NOT_AUTHENTICATED"); - - zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("NOT_AUTHORIZED"), "NOT_AUTHORIZED"); - - zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("NOT_CREATED"), "NOT_CREATED"); - - zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("NOT_DELETED"), "NOT_DELETED"); - - zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("NOT_FOUND"), "NOT_FOUND"); - - zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("NOT_UPDATED"), "NOT_UPDATED"); - - zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("NOT_VALID"), "NOT_VALID"); - - zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("PROCESSING"), "PROCESSING"); - - zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("SUCCESS"), "SUCCESS"); - - zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("UPDATED"), "UPDATED"); - - zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("VALID"), "VALID"); - - return SUCCESS; + phql_ret_join_type(&ppgotominor.pp202, PHQL_T_FULLJOIN); + pp_destructor(40,&ppmsp[-1].minor); + pp_destructor(35,&ppmsp[0].minor); } - -static PHP_METHOD(Phalcon_Domain_Payload_Status, __construct) +// 1514 "parser.php.c" + break; + case 36: +// 303 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - + phql_ret_join_type(&ppgotominor.pp202, PHQL_T_INNERJOIN); + pp_destructor(35,&ppmsp[0].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Domain_Payload_WriteableInterface) +// 1522 "parser.php.c" + break; + case 37: +// 311 "parser.php.lemon" { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Domain\\Payload, WriteableInterface, phalcon, domain_payload_writeableinterface, phalcon_domain_payload_writeableinterface_method_entry); - - return SUCCESS; + ppgotominor.pp202 = ppmsp[0].minor.pp202; + pp_destructor(41,&ppmsp[-1].minor); } - -ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_WriteableInterface, setException); -ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_WriteableInterface, setExtras); -ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_WriteableInterface, setInput); -ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_WriteableInterface, setMessages); -ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_WriteableInterface, setOutput); -ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_WriteableInterface, setStatus); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Escaper_EscaperInterface) +// 1530 "parser.php.c" + break; + case 39: +// 324 "parser.php.lemon" { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Escaper, EscaperInterface, phalcon, escaper_escaperinterface, phalcon_escaper_escaperinterface_method_entry); - - return SUCCESS; + phql_ret_insert_statement(&ppgotominor.pp202, &ppmsp[-4].minor.pp202, NULL, &ppmsp[-1].minor.pp202); + pp_destructor(42,&ppmsp[-6].minor); + pp_destructor(43,&ppmsp[-5].minor); + pp_destructor(44,&ppmsp[-3].minor); + pp_destructor(45,&ppmsp[-2].minor); + pp_destructor(46,&ppmsp[0].minor); } - -ZEPHIR_DOC_METHOD(Phalcon_Escaper_EscaperInterface, escapeCss); -ZEPHIR_DOC_METHOD(Phalcon_Escaper_EscaperInterface, escapeHtml); -ZEPHIR_DOC_METHOD(Phalcon_Escaper_EscaperInterface, escapeHtmlAttr); -ZEPHIR_DOC_METHOD(Phalcon_Escaper_EscaperInterface, escapeJs); -ZEPHIR_DOC_METHOD(Phalcon_Escaper_EscaperInterface, escapeUrl); -ZEPHIR_DOC_METHOD(Phalcon_Escaper_EscaperInterface, getEncoding); -ZEPHIR_DOC_METHOD(Phalcon_Escaper_EscaperInterface, setEncoding); -ZEPHIR_DOC_METHOD(Phalcon_Escaper_EscaperInterface, setHtmlQuoteType); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Escaper_Exception) +// 1542 "parser.php.c" + break; + case 40: +// 328 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Escaper, Exception, phalcon, escaper_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; + phql_ret_insert_statement(&ppgotominor.pp202, &ppmsp[-7].minor.pp202, &ppmsp[-5].minor.pp202, &ppmsp[-1].minor.pp202); + pp_destructor(42,&ppmsp[-9].minor); + pp_destructor(43,&ppmsp[-8].minor); + pp_destructor(45,&ppmsp[-6].minor); + pp_destructor(46,&ppmsp[-4].minor); + pp_destructor(44,&ppmsp[-3].minor); + pp_destructor(45,&ppmsp[-2].minor); + pp_destructor(46,&ppmsp[0].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Events_Event) +// 1556 "parser.php.c" + break; + case 47: +// 374 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Events, Event, phalcon, events_event, phalcon_events_event_method_entry, 0); - - zend_declare_property_null(phalcon_events_event_ce, SL("cancelable"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_events_event_ce, SL("data"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_events_event_ce, SL("source"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_events_event_ce, SL("stopped"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_events_event_ce, SL("type"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_events_event_ce, 1, phalcon_events_eventinterface_ce); - return SUCCESS; + phql_ret_update_statement(&ppgotominor.pp202, &ppmsp[-2].minor.pp202, &ppmsp[-1].minor.pp202, &ppmsp[0].minor.pp202); } - -static PHP_METHOD(Phalcon_Events_Event, getData) +// 1563 "parser.php.c" + break; + case 48: +// 382 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "data"); + phql_ret_update_clause(&ppgotominor.pp202, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(47,&ppmsp[-3].minor); + pp_destructor(48,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Events_Event, getSource) +// 1572 "parser.php.c" + break; + case 51: +// 402 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "source"); + phql_ret_update_item(&ppgotominor.pp202, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(4,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Events_Event, getType) +// 1580 "parser.php.c" + break; + case 53: +// 416 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "type"); + phql_ret_delete_statement(&ppgotominor.pp202, &ppmsp[-2].minor.pp202, &ppmsp[-1].minor.pp202, &ppmsp[0].minor.pp202); } - -static PHP_METHOD(Phalcon_Events_Event, __construct) +// 1587 "parser.php.c" + break; + case 54: +// 424 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool cancelable; - zval *type_param = NULL, *source, source_sub, *data = NULL, data_sub, *cancelable_param = NULL, __$true, __$false, __$null, _0$$3, _1$$3, _2$$3; - zval type; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&source_sub); - ZVAL_UNDEF(&data_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 4) - Z_PARAM_STR(type) - Z_PARAM_OBJECT(source) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(data) - Z_PARAM_BOOL(cancelable) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 2, &type_param, &source, &data, &cancelable_param); - if (UNEXPECTED(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(type_param) == IS_STRING)) { - zephir_get_strval(&type, type_param); - } else { - ZEPHIR_INIT_VAR(&type); - } - if (!data) { - data = &data_sub; - data = &__$null; - } - if (!cancelable_param) { - cancelable = 1; - } else { - cancelable = zephir_get_boolval(cancelable_param); - } - - - if (UNEXPECTED(Z_TYPE_P(source) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_0$$3); - object_init_ex(&_0$$3, phalcon_events_exception_ce); - ZEPHIR_INIT_VAR(&_1$$3); - zephir_gettype(&_1$$3, source); - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_CONCAT_SVSV(&_2$$3, "The source of ", &type, " event must be an object, got ", &_1$$3); - ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 8, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_0$$3, "phalcon/Events/Event.zep", 75); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &type); - zephir_update_property_zval(this_ptr, ZEND_STRL("source"), source); - zephir_update_property_zval(this_ptr, ZEND_STRL("data"), data); - if (cancelable) { - zephir_update_property_zval(this_ptr, ZEND_STRL("cancelable"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("cancelable"), &__$false); - } - ZEPHIR_MM_RESTORE(); + phql_ret_delete_clause(&ppgotominor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(49,&ppmsp[-2].minor); + pp_destructor(28,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Events_Event, isCancelable) +// 1596 "parser.php.c" + break; + case 55: +// 432 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "cancelable"); + phql_ret_assoc_name(&ppgotominor.pp202, &ppmsp[-2].minor.pp202, ppmsp[0].minor.pp0, NULL); + pp_destructor(33,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Events_Event, isStopped) +// 1604 "parser.php.c" + break; + case 56: +// 436 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "stopped"); + phql_ret_assoc_name(&ppgotominor.pp202, &ppmsp[-1].minor.pp202, ppmsp[0].minor.pp0, NULL); } - -static PHP_METHOD(Phalcon_Events_Event, setData) +// 1611 "parser.php.c" + break; + case 57: +// 440 "parser.php.lemon" { - zval *data = NULL, data_sub, __$null; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&data_sub); - ZVAL_NULL(&__$null); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(data) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(0, 1, &data); - if (!data) { - data = &data_sub; - data = &__$null; - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("data"), data); - RETURN_THISW(); + phql_ret_assoc_name(&ppgotominor.pp202, &ppmsp[0].minor.pp202, NULL, NULL); } - -static PHP_METHOD(Phalcon_Events_Event, setType) +// 1618 "parser.php.c" + break; + case 58: +// 444 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *type_param = NULL; - zval type; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&type); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(type) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &type_param); - if (UNEXPECTED(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(type_param) == IS_STRING)) { - zephir_get_strval(&type, type_param); - } else { - ZEPHIR_INIT_VAR(&type); - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &type); - RETURN_THIS(); + phql_ret_assoc_name(&ppgotominor.pp202, &ppmsp[-4].minor.pp202, ppmsp[-2].minor.pp0, &ppmsp[0].minor.pp202); + pp_destructor(33,&ppmsp[-3].minor); + pp_destructor(50,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Events_Event, stop) +// 1627 "parser.php.c" + break; + case 59: +// 448 "parser.php.lemon" { - zval __$true, __$false, _0; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&_0); - - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("cancelable"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(!zephir_is_true(&_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_events_exception_ce, "Trying to cancel a non-cancelable event", "phalcon/Events/Event.zep", 137); - return; - } - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$false); - } - RETURN_THISW(); + phql_ret_assoc_name(&ppgotominor.pp202, &ppmsp[-6].minor.pp202, ppmsp[-4].minor.pp0, &ppmsp[-1].minor.pp202); + pp_destructor(33,&ppmsp[-5].minor); + pp_destructor(50,&ppmsp[-3].minor); + pp_destructor(45,&ppmsp[-2].minor); + pp_destructor(46,&ppmsp[0].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Events_EventInterface) +// 1638 "parser.php.c" + break; + case 60: +// 452 "parser.php.lemon" { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Events, EventInterface, phalcon, events_eventinterface, phalcon_events_eventinterface_method_entry); - - return SUCCESS; + phql_ret_assoc_name(&ppgotominor.pp202, &ppmsp[-5].minor.pp202, ppmsp[-4].minor.pp0, &ppmsp[-1].minor.pp202); + pp_destructor(50,&ppmsp[-3].minor); + pp_destructor(45,&ppmsp[-2].minor); + pp_destructor(46,&ppmsp[0].minor); } - -ZEPHIR_DOC_METHOD(Phalcon_Events_EventInterface, getData); -ZEPHIR_DOC_METHOD(Phalcon_Events_EventInterface, getType); -ZEPHIR_DOC_METHOD(Phalcon_Events_EventInterface, isCancelable); -ZEPHIR_DOC_METHOD(Phalcon_Events_EventInterface, isStopped); -ZEPHIR_DOC_METHOD(Phalcon_Events_EventInterface, setData); -ZEPHIR_DOC_METHOD(Phalcon_Events_EventInterface, setType); -ZEPHIR_DOC_METHOD(Phalcon_Events_EventInterface, stop); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Events_EventsAwareInterface) +// 1648 "parser.php.c" + break; + case 61: +// 456 "parser.php.lemon" { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Events, EventsAwareInterface, phalcon, events_eventsawareinterface, phalcon_events_eventsawareinterface_method_entry); - - return SUCCESS; + phql_ret_assoc_name(&ppgotominor.pp202, &ppmsp[-3].minor.pp202, ppmsp[-2].minor.pp0, &ppmsp[0].minor.pp202); + pp_destructor(50,&ppmsp[-1].minor); } - -ZEPHIR_DOC_METHOD(Phalcon_Events_EventsAwareInterface, getEventsManager); -ZEPHIR_DOC_METHOD(Phalcon_Events_EventsAwareInterface, setEventsManager); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Events_Exception) +// 1656 "parser.php.c" + break; + case 62: +// 460 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Events, Exception, phalcon, events_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; + phql_ret_assoc_name(&ppgotominor.pp202, &ppmsp[-4].minor.pp202, NULL, &ppmsp[-1].minor.pp202); + pp_destructor(50,&ppmsp[-3].minor); + pp_destructor(45,&ppmsp[-2].minor); + pp_destructor(46,&ppmsp[0].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Events_Manager) +// 1666 "parser.php.c" + break; + case 63: +// 464 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Events, Manager, phalcon, events_manager, phalcon_events_manager_method_entry, 0); - - zend_declare_property_bool(phalcon_events_manager_ce, SL("collect"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_events_manager_ce, SL("enablePriorities"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_events_manager_ce, SL("events"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_events_manager_ce, SL("responses"), ZEND_ACC_PROTECTED); - phalcon_events_manager_ce->create_object = zephir_init_properties_Phalcon_Events_Manager; - zephir_declare_class_constant_long(phalcon_events_manager_ce, SL("DEFAULT_PRIORITY"), 100); - - zend_class_implements(phalcon_events_manager_ce, 1, phalcon_events_managerinterface_ce); - return SUCCESS; + phql_ret_assoc_name(&ppgotominor.pp202, &ppmsp[-2].minor.pp202, NULL, &ppmsp[0].minor.pp202); + pp_destructor(50,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Events_Manager, attach) +// 1674 "parser.php.c" + break; + case 68: +// 500 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long priority, ZEPHIR_LAST_CALL_STATUS; - zval *eventType_param = NULL, *handler, handler_sub, *priority_param = NULL, priorityQueue, _0, _1, _3, _4, _2$$4; - zval eventType; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&eventType); - ZVAL_UNDEF(&handler_sub); - ZVAL_UNDEF(&priorityQueue); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_2$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(eventType) - Z_PARAM_ZVAL(handler) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(priority) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &eventType_param, &handler, &priority_param); - if (UNEXPECTED(Z_TYPE_P(eventType_param) != IS_STRING && Z_TYPE_P(eventType_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventType' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(eventType_param) == IS_STRING)) { - zephir_get_strval(&eventType, eventType_param); - } else { - ZEPHIR_INIT_VAR(&eventType); - } - if (!priority_param) { - priority = 100; - } else { - if (UNEXPECTED(Z_TYPE_P(priority_param) != IS_LONG)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'priority' must be of the type int")); - RETURN_MM_NULL(); - } - priority = Z_LVAL_P(priority_param); - } - - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "isvalidhandler", NULL, 0, handler); - zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_events_exception_ce, "Event handler must be an Object or Callable", "phalcon/Events/Manager.zep", 58); - return; - } - ZEPHIR_OBS_VAR(&priorityQueue); - zephir_read_property(&_1, this_ptr, ZEND_STRL("events"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&priorityQueue, &_1, &eventType, 0))) { - ZEPHIR_INIT_NVAR(&priorityQueue); - object_init_ex(&priorityQueue, spl_ce_SplPriorityQueue); - if (zephir_has_constructor(&priorityQueue)) { - ZEPHIR_CALL_METHOD(NULL, &priorityQueue, "__construct", NULL, 0); - zephir_check_call_status(); - } - - ZVAL_LONG(&_2$$4, 1); - ZEPHIR_CALL_METHOD(NULL, &priorityQueue, "setextractflags", NULL, 230, &_2$$4); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("events"), &eventType, &priorityQueue); - } - zephir_read_property(&_3, this_ptr, ZEND_STRL("enablePriorities"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_3))) { - priority = 100; - } - ZVAL_LONG(&_4, priority); - ZEPHIR_CALL_METHOD(NULL, &priorityQueue, "insert", NULL, 231, handler, &_4); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + ppgotominor.pp202 = ppmsp[0].minor.pp202; + pp_destructor(51,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Events_Manager, arePrioritiesEnabled) +// 1682 "parser.php.c" + break; + case 70: +// 512 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "enablePriorities"); + ppgotominor.pp202 = ppmsp[0].minor.pp202; + pp_destructor(52,&ppmsp[-2].minor); + pp_destructor(53,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Events_Manager, collectResponses) +// 1691 "parser.php.c" + break; + case 74: +// 536 "parser.php.lemon" { - zval *collect_param = NULL, __$true, __$false; - zend_bool collect; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(collect) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &collect_param); - collect = zephir_get_boolval(collect_param); - - - if (collect) { - zephir_update_property_zval(this_ptr, ZEND_STRL("collect"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("collect"), &__$false); - } + phql_ret_order_item(&ppgotominor.pp202, &ppmsp[0].minor.pp202, 0); } - -static PHP_METHOD(Phalcon_Events_Manager, detach) +// 1698 "parser.php.c" + break; + case 75: +// 540 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL, *_5 = NULL, *_9 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *eventType_param = NULL, *handler, handler_sub, priorityQueue, newPriorityQueue, data, _0, _1, _2$$4, _3$$4, _6$$5, _7$$6, _8$$6; - zval eventType; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&eventType); - ZVAL_UNDEF(&handler_sub); - ZVAL_UNDEF(&priorityQueue); - ZVAL_UNDEF(&newPriorityQueue); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_8$$6); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(eventType) - Z_PARAM_ZVAL(handler) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &eventType_param, &handler); - if (UNEXPECTED(Z_TYPE_P(eventType_param) != IS_STRING && Z_TYPE_P(eventType_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventType' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(eventType_param) == IS_STRING)) { - zephir_get_strval(&eventType, eventType_param); - } else { - ZEPHIR_INIT_VAR(&eventType); - } - - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "isvalidhandler", NULL, 0, handler); - zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_events_exception_ce, "Event handler must be an Object or Callable", "phalcon/Events/Manager.zep", 109); - return; - } - ZEPHIR_OBS_VAR(&priorityQueue); - zephir_read_property(&_1, this_ptr, ZEND_STRL("events"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&priorityQueue, &_1, &eventType, 0)) { - ZEPHIR_INIT_VAR(&newPriorityQueue); - object_init_ex(&newPriorityQueue, spl_ce_SplPriorityQueue); - if (zephir_has_constructor(&newPriorityQueue)) { - ZEPHIR_CALL_METHOD(NULL, &newPriorityQueue, "__construct", NULL, 0); - zephir_check_call_status(); - } - - ZVAL_LONG(&_2$$4, 1); - ZEPHIR_CALL_METHOD(NULL, &newPriorityQueue, "setextractflags", NULL, 230, &_2$$4); - zephir_check_call_status(); - ZVAL_LONG(&_2$$4, 3); - ZEPHIR_CALL_METHOD(NULL, &priorityQueue, "setextractflags", NULL, 0, &_2$$4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &priorityQueue, "top", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3$$4, &priorityQueue, "valid", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_3$$4))) { - break; - } - ZEPHIR_CALL_METHOD(&data, &priorityQueue, "current", &_4, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &priorityQueue, "next", &_5, 0); - zephir_check_call_status(); - zephir_array_fetch_string(&_6$$5, &data, SL("data"), PH_NOISY | PH_READONLY, "phalcon/Events/Manager.zep", 134); - if (!ZEPHIR_IS_IDENTICAL(&_6$$5, handler)) { - zephir_array_fetch_string(&_7$$6, &data, SL("data"), PH_NOISY | PH_READONLY, "phalcon/Events/Manager.zep", 136); - zephir_array_fetch_string(&_8$$6, &data, SL("priority"), PH_NOISY | PH_READONLY, "phalcon/Events/Manager.zep", 138); - ZEPHIR_CALL_METHOD(NULL, &newPriorityQueue, "insert", &_9, 231, &_7$$6, &_8$$6); - zephir_check_call_status(); - } - } - zephir_update_property_array(this_ptr, SL("events"), &eventType, &newPriorityQueue); - } - ZEPHIR_MM_RESTORE(); + phql_ret_order_item(&ppgotominor.pp202, &ppmsp[-1].minor.pp202, PHQL_T_ASC); + pp_destructor(54,&ppmsp[0].minor); } - -static PHP_METHOD(Phalcon_Events_Manager, detachAll) +// 1706 "parser.php.c" + break; + case 76: +// 544 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *type_param = NULL, __$null, _0$$4, _1$$5; - zval type; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&type); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0$$4); - ZVAL_UNDEF(&_1$$5); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(type) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &type_param); - if (!type_param) { - ZEPHIR_INIT_VAR(&type); - } else { - if (UNEXPECTED(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(type_param) == IS_STRING)) { - zephir_get_strval(&type, type_param); - } else { - ZEPHIR_INIT_VAR(&type); - } - } - - - if (ZEPHIR_IS_NULL(&type)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("events"), &__$null); - } else { - zephir_read_property(&_0$$4, this_ptr, ZEND_STRL("events"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset(&_0$$4, &type)) { - zephir_unset_property_array(this_ptr, ZEND_STRL("events"), &type); - zephir_read_property(&_1$$5, this_ptr, ZEND_STRL("events"), PH_NOISY_CC | PH_READONLY); - zephir_array_unset(&_1$$5, &type, PH_SEPARATE); - } - } - ZEPHIR_MM_RESTORE(); + phql_ret_order_item(&ppgotominor.pp202, &ppmsp[-1].minor.pp202, PHQL_T_DESC); + pp_destructor(55,&ppmsp[0].minor); } - -static PHP_METHOD(Phalcon_Events_Manager, enablePriorities) +// 1714 "parser.php.c" + break; + case 77: +// 552 "parser.php.lemon" { - zval *enablePriorities_param = NULL, __$true, __$false; - zend_bool enablePriorities; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(enablePriorities) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &enablePriorities_param); - enablePriorities = zephir_get_boolval(enablePriorities_param); - - - if (enablePriorities) { - zephir_update_property_zval(this_ptr, ZEND_STRL("enablePriorities"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("enablePriorities"), &__$false); - } + ppgotominor.pp202 = ppmsp[0].minor.pp202; + pp_destructor(56,&ppmsp[-2].minor); + pp_destructor(53,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Events_Manager, fire) +// 1723 "parser.php.c" + break; + case 82: +// 584 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool cancelable; - zval *eventType_param = NULL, *source, source_sub, *data = NULL, data_sub, *cancelable_param = NULL, __$null, events, eventParts, type, eventName, event, status, fireEvents, _0, _4, _1$$4, _3$$5; - zval eventType, _2$$4; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&eventType); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&source_sub); - ZVAL_UNDEF(&data_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&events); - ZVAL_UNDEF(&eventParts); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&eventName); - ZVAL_UNDEF(&event); - ZVAL_UNDEF(&status); - ZVAL_UNDEF(&fireEvents); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_3$$5); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 4) - Z_PARAM_STR(eventType) - Z_PARAM_OBJECT(source) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(data) - Z_PARAM_BOOL(cancelable) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 2, &eventType_param, &source, &data, &cancelable_param); - if (UNEXPECTED(Z_TYPE_P(eventType_param) != IS_STRING && Z_TYPE_P(eventType_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventType' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(eventType_param) == IS_STRING)) { - zephir_get_strval(&eventType, eventType_param); - } else { - ZEPHIR_INIT_VAR(&eventType); - } - if (!data) { - data = &data_sub; - data = &__$null; - } - if (!cancelable_param) { - cancelable = 1; - } else { - cancelable = zephir_get_boolval(cancelable_param); - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("events"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&events, &_0); - if (ZEPHIR_IS_EMPTY(&events)) { - RETURN_MM_NULL(); - } - if (UNEXPECTED(!(zephir_memnstr_str(&eventType, SL(":"), "phalcon/Events/Manager.zep", 199)))) { - ZEPHIR_INIT_VAR(&_1$$4); - object_init_ex(&_1$$4, phalcon_events_exception_ce); - ZEPHIR_INIT_VAR(&_2$$4); - ZEPHIR_CONCAT_SV(&_2$$4, "Invalid event type ", &eventType); - ZEPHIR_CALL_METHOD(NULL, &_1$$4, "__construct", NULL, 8, &_2$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$4, "phalcon/Events/Manager.zep", 200); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_VAR(&eventParts); - zephir_fast_explode_str(&eventParts, SL(":"), &eventType, LONG_MAX); - ZEPHIR_OBS_VAR(&type); - zephir_array_fetch_long(&type, &eventParts, 0, PH_NOISY, "phalcon/Events/Manager.zep", 204); - ZEPHIR_OBS_VAR(&eventName); - zephir_array_fetch_long(&eventName, &eventParts, 1, PH_NOISY, "phalcon/Events/Manager.zep", 205); - ZEPHIR_INIT_VAR(&status); - ZVAL_NULL(&status); - zephir_read_property(&_0, this_ptr, ZEND_STRL("collect"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_0)) { - ZEPHIR_INIT_VAR(&_3$$5); - array_init(&_3$$5); - zephir_update_property_zval(this_ptr, ZEND_STRL("responses"), &_3$$5); - } - ZEPHIR_INIT_VAR(&event); - object_init_ex(&event, phalcon_events_event_ce); - if (cancelable) { - ZVAL_BOOL(&_4, 1); - } else { - ZVAL_BOOL(&_4, 0); - } - ZEPHIR_CALL_METHOD(NULL, &event, "__construct", NULL, 232, &eventName, source, data, &_4); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&fireEvents); - if (zephir_array_isset_fetch(&fireEvents, &events, &type, 0)) { - if (Z_TYPE_P(&fireEvents) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&status, this_ptr, "firequeue", NULL, 233, &fireEvents, &event); - zephir_check_call_status(); - } - } - ZEPHIR_OBS_NVAR(&fireEvents); - if (zephir_array_isset_fetch(&fireEvents, &events, &eventType, 0)) { - if (Z_TYPE_P(&fireEvents) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&status, this_ptr, "firequeue", NULL, 233, &fireEvents, &event); - zephir_check_call_status(); - } - } - RETURN_CCTOR(&status); + ppgotominor.pp202 = ppmsp[0].minor.pp202; + pp_destructor(57,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Events_Manager, fireQueue) +// 1731 "parser.php.c" + break; + case 84: +// 596 "parser.php.lemon" { - zval _8$$6; - zend_bool collect = 0, cancelable = 0, _7$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_2 = NULL, *_3 = NULL, *_4 = NULL, *_6 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *queue, queue_sub, *event, event_sub, status, eventName, data, iterator, source, handler, _0, _1, _5$$4, _9$$10; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&queue_sub); - ZVAL_UNDEF(&event_sub); - ZVAL_UNDEF(&status); - ZVAL_UNDEF(&eventName); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&iterator); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&handler); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_9$$10); - ZVAL_UNDEF(&_8$$6); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(queue, spl_ce_SplPriorityQueue) - Z_PARAM_OBJECT_OF_CLASS(event, phalcon_events_eventinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &queue, &event); - - - ZEPHIR_INIT_VAR(&status); - ZVAL_NULL(&status); - ZEPHIR_CALL_METHOD(&eventName, event, "gettype", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&eventName) != IS_STRING)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_events_exception_ce, "The event type not valid", "phalcon/Events/Manager.zep", 252); - return; - } - ZEPHIR_CALL_METHOD(&source, event, "getsource", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&data, event, "getdata", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, event, "iscancelable", NULL, 0); - zephir_check_call_status(); - cancelable = zephir_get_boolval(&_0); - ZEPHIR_OBS_VAR(&_1); - zephir_read_property(&_1, this_ptr, ZEND_STRL("collect"), PH_NOISY_CC); - collect = zephir_get_boolval(&_1); - ZEPHIR_INIT_VAR(&iterator); - if (zephir_clone(&iterator, queue) == FAILURE) { - RETURN_MM(); - } - ZEPHIR_CALL_METHOD(NULL, &iterator, "top", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_0, &iterator, "valid", &_2, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_0))) { - break; - } - ZEPHIR_CALL_METHOD(&handler, &iterator, "current", &_3, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &iterator, "next", &_4, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_5$$4, this_ptr, "isvalidhandler", &_6, 0, &handler); - zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&_5$$4))) { - continue; - } - _7$$4 = zephir_is_instance_of(&handler, SL("Closure")); - if (!(_7$$4)) { - _7$$4 = zephir_is_callable(&handler); - } - if (_7$$4) { - ZEPHIR_INIT_NVAR(&_8$$6); - zephir_create_array(&_8$$6, 3, 0); - zephir_array_fast_append(&_8$$6, event); - zephir_array_fast_append(&_8$$6, &source); - zephir_array_fast_append(&_8$$6, &data); - ZEPHIR_INIT_NVAR(&status); - ZEPHIR_CALL_USER_FUNC_ARRAY(&status, &handler, &_8$$6); - zephir_check_call_status(); - } else { - if (!((zephir_method_exists(&handler, &eventName) == SUCCESS))) { - continue; - } - ZEPHIR_CALL_METHOD_ZVAL(&status, &handler, &eventName, NULL, 0, event, &source, &data); - zephir_check_call_status(); - } - if (collect) { - zephir_update_property_array_append(this_ptr, SL("responses"), &status); - } - if (cancelable) { - ZEPHIR_CALL_METHOD(&_9$$10, event, "isstopped", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_9$$10)) { - break; - } - } - } - RETURN_CCTOR(&status); + phql_ret_for_update_clause(&ppgotominor.pp202); + pp_destructor(58,&ppmsp[-1].minor); + pp_destructor(47,&ppmsp[0].minor); } - -static PHP_METHOD(Phalcon_Events_Manager, getListeners) +// 1740 "parser.php.c" + break; + case 86: + case 90: +// 608 "parser.php.lemon" { - zval listeners; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL, *_4 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *type_param = NULL, fireEvents, priorityQueue, _0, _1, _2$$4; - zval type; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&fireEvents); - ZVAL_UNDEF(&priorityQueue); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&listeners); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(type) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &type_param); - if (UNEXPECTED(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(type_param) == IS_STRING)) { - zephir_get_strval(&type, type_param); - } else { - ZEPHIR_INIT_VAR(&type); - } - - - ZEPHIR_OBS_VAR(&fireEvents); - zephir_read_property(&_0, this_ptr, ZEND_STRL("events"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&fireEvents, &_0, &type, 0))) { - array_init(return_value); - RETURN_MM(); - } - ZEPHIR_INIT_VAR(&listeners); - array_init(&listeners); - ZEPHIR_INIT_VAR(&priorityQueue); - if (zephir_clone(&priorityQueue, &fireEvents) == FAILURE) { - RETURN_MM(); - } - ZEPHIR_CALL_METHOD(NULL, &priorityQueue, "top", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &priorityQueue, "valid", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_1))) { - break; - } - ZEPHIR_CALL_METHOD(&_2$$4, &priorityQueue, "current", &_3, 0); - zephir_check_call_status(); - zephir_array_append(&listeners, &_2$$4, PH_SEPARATE, "phalcon/Events/Manager.zep", 335); - ZEPHIR_CALL_METHOD(NULL, &priorityQueue, "next", &_4, 0); - zephir_check_call_status(); - } - RETURN_CTOR(&listeners); + phql_ret_limit_clause(&ppgotominor.pp202, &ppmsp[0].minor.pp202, NULL); + pp_destructor(59,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Events_Manager, getResponses) +// 1749 "parser.php.c" + break; + case 87: +// 612 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "responses"); + phql_ret_limit_clause(&ppgotominor.pp202, &ppmsp[0].minor.pp202, &ppmsp[-2].minor.pp202); + pp_destructor(59,&ppmsp[-3].minor); + pp_destructor(26,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Events_Manager, hasListeners) +// 1758 "parser.php.c" + break; + case 88: +// 616 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *type_param = NULL, _0; - zval type; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(type) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &type_param); - if (UNEXPECTED(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(type_param) == IS_STRING)) { - zephir_get_strval(&type, type_param); - } else { - ZEPHIR_INIT_VAR(&type); - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("events"), PH_NOISY_CC | PH_READONLY); - RETURN_MM_BOOL(zephir_array_isset(&_0, &type)); + phql_ret_limit_clause(&ppgotominor.pp202, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(59,&ppmsp[-3].minor); + pp_destructor(60,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Events_Manager, isCollecting) +// 1767 "parser.php.c" + break; + case 92: + case 150: +// 636 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "collect"); + phql_ret_literal_zval(&ppgotominor.pp202, PHQL_T_INTEGER, ppmsp[0].minor.pp0); } - -static PHP_METHOD(Phalcon_Events_Manager, isValidHandler) +// 1775 "parser.php.c" + break; + case 93: + case 151: +// 640 "parser.php.lemon" { - zend_bool _0; - zval *handler, handler_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&handler_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(handler) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &handler); - - - _0 = Z_TYPE_P(handler) != IS_OBJECT; - if (_0) { - _0 = !(zephir_is_callable(handler)); - } - if (UNEXPECTED(_0)) { - RETURN_BOOL(0); - } - RETURN_BOOL(1); + phql_ret_literal_zval(&ppgotominor.pp202, PHQL_T_HINTEGER, ppmsp[0].minor.pp0); } - -zend_object *zephir_init_properties_Phalcon_Events_Manager(zend_class_entry *class_type) +// 1783 "parser.php.c" + break; + case 94: + case 157: +// 644 "parser.php.lemon" { - zval _0, _2, _1$$3, _3$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("responses"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("responses"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("events"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("events"), &_3$$4); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } + phql_ret_placeholder_zval(&ppgotominor.pp202, PHQL_T_NPLACEHOLDER, ppmsp[0].minor.pp0); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Events_ManagerInterface) +// 1791 "parser.php.c" + break; + case 95: + case 158: +// 648 "parser.php.lemon" { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Events, ManagerInterface, phalcon, events_managerinterface, phalcon_events_managerinterface_method_entry); - - return SUCCESS; + phql_ret_placeholder_zval(&ppgotominor.pp202, PHQL_T_SPLACEHOLDER, ppmsp[0].minor.pp0); } - -ZEPHIR_DOC_METHOD(Phalcon_Events_ManagerInterface, attach); -ZEPHIR_DOC_METHOD(Phalcon_Events_ManagerInterface, detach); -ZEPHIR_DOC_METHOD(Phalcon_Events_ManagerInterface, detachAll); -ZEPHIR_DOC_METHOD(Phalcon_Events_ManagerInterface, fire); -ZEPHIR_DOC_METHOD(Phalcon_Events_ManagerInterface, getListeners); -ZEPHIR_DOC_METHOD(Phalcon_Events_ManagerInterface, hasListeners); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Factory_AbstractFactory) +// 1799 "parser.php.c" + break; + case 96: + case 159: +// 652 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Factory, AbstractFactory, phalcon, factory_abstractfactory, phalcon_factory_abstractfactory_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_string(phalcon_factory_abstractfactory_ce, SL("exception"), "Phalcon\\Exception", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_factory_abstractfactory_ce, SL("mapper"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_factory_abstractfactory_ce, SL("services"), ZEND_ACC_PROTECTED); - phalcon_factory_abstractfactory_ce->create_object = zephir_init_properties_Phalcon_Factory_AbstractFactory; - - return SUCCESS; + phql_ret_placeholder_zval(&ppgotominor.pp202, PHQL_T_BPLACEHOLDER, ppmsp[0].minor.pp0); } - -static PHP_METHOD(Phalcon_Factory_AbstractFactory, checkConfig) +// 1807 "parser.php.c" + break; + case 97: +// 660 "parser.php.lemon" { - zend_bool _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *config = NULL, config_sub, _1$$3, _2$$4, _3$$4, _4$$5, _5$$5; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&config_sub); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_5$$5); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(config) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &config); - ZEPHIR_SEPARATE_PARAM(config); - - - _0 = Z_TYPE_P(config) == IS_OBJECT; - if (_0) { - _0 = zephir_instance_of_ev(config, phalcon_config_configinterface_ce); - } - if (_0) { - ZEPHIR_CALL_METHOD(&_1$$3, config, "toarray", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(config, &_1$$3); - } - if (UNEXPECTED(Z_TYPE_P(config) != IS_ARRAY)) { - ZEPHIR_INIT_VAR(&_3$$4); - ZVAL_STRING(&_3$$4, "Config must be array or Phalcon\\Config object"); - ZEPHIR_CALL_METHOD(&_2$$4, this_ptr, "getexception", NULL, 0, &_3$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_2$$4, "phalcon/Factory/AbstractFactory.zep", 44); - ZEPHIR_MM_RESTORE(); - return; - } - if (UNEXPECTED(!(zephir_array_isset_string(config, SL("adapter"))))) { - ZEPHIR_INIT_VAR(&_5$$5); - ZVAL_STRING(&_5$$5, "You must provide 'adapter' option in factory config parameter."); - ZEPHIR_CALL_METHOD(&_4$$5, this_ptr, "getexception", NULL, 0, &_5$$5); - zephir_check_call_status(); - zephir_throw_exception_debug(&_4$$5, "phalcon/Factory/AbstractFactory.zep", 50); - ZEPHIR_MM_RESTORE(); - return; - } - RETVAL_ZVAL(config, 1, 0); - RETURN_MM(); + phql_ret_expr(&ppgotominor.pp202, PHQL_T_MINUS, NULL, &ppmsp[0].minor.pp202); + pp_destructor(21,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Factory_AbstractFactory, getAdapters) +// 1815 "parser.php.c" + break; + case 98: +// 664 "parser.php.lemon" { + phql_ret_expr(&ppgotominor.pp202, PHQL_T_SUB, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(21,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Factory_AbstractFactory, getService) +// 1823 "parser.php.c" + break; + case 99: +// 668 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, _0, _3, _4, _1$$3; - zval name, _2$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_1$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("mapper"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(!(zephir_array_isset(&_0, &name)))) { - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_CONCAT_SVS(&_2$$3, "Service ", &name, " is not registered"); - ZEPHIR_CALL_METHOD(&_1$$3, this_ptr, "getexception", NULL, 0, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Factory/AbstractFactory.zep", 67); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_read_property(&_3, this_ptr, ZEND_STRL("mapper"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_4, &_3, &name, PH_NOISY | PH_READONLY, "phalcon/Factory/AbstractFactory.zep", 70); - RETURN_CTOR(&_4); + phql_ret_expr(&ppgotominor.pp202, PHQL_T_ADD, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(20,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Factory_AbstractFactory, init) +// 1831 "parser.php.c" + break; + case 100: +// 672 "parser.php.lemon" { - zend_string *_4; - zend_ulong _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *services_param = NULL, adapters, name, service, _0, *_1, _2, _5$$3, _6$$4; - zval services; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&services); - ZVAL_UNDEF(&adapters); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&service); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(services) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &services_param); - if (!services_param) { - ZEPHIR_INIT_VAR(&services); - array_init(&services); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&services, services_param); - } - - - ZEPHIR_CALL_METHOD(&adapters, this_ptr, "getadapters", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - zephir_fast_array_merge(&_0, &adapters, &services); - ZEPHIR_CPY_WRT(&adapters, &_0); - zephir_is_iterable(&adapters, 0, "phalcon/Factory/AbstractFactory.zep", 87); - if (Z_TYPE_P(&adapters) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&adapters), _3, _4, _1) - { - ZEPHIR_INIT_NVAR(&name); - if (_4 != NULL) { - ZVAL_STR_COPY(&name, _4); - } else { - ZVAL_LONG(&name, _3); - } - ZEPHIR_INIT_NVAR(&service); - ZVAL_COPY(&service, _1); - zephir_update_property_array(this_ptr, SL("mapper"), &name, &service); - zephir_unset_property_array(this_ptr, ZEND_STRL("services"), &name); - zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("services"), PH_NOISY_CC | PH_READONLY); - zephir_array_unset(&_5$$3, &name, PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &adapters, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &adapters, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&name, &adapters, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&service, &adapters, "current", NULL, 0); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("mapper"), &name, &service); - zephir_unset_property_array(this_ptr, ZEND_STRL("services"), &name); - zephir_read_property(&_6$$4, this_ptr, ZEND_STRL("services"), PH_NOISY_CC | PH_READONLY); - zephir_array_unset(&_6$$4, &name, PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &adapters, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&service); - ZEPHIR_INIT_NVAR(&name); - ZEPHIR_MM_RESTORE(); + phql_ret_expr(&ppgotominor.pp202, PHQL_T_MUL, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(18,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Factory_AbstractFactory, getException) +// 1839 "parser.php.c" + break; + case 101: +// 676 "parser.php.lemon" { - zend_class_entry *_2; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *message_param = NULL, exception, _0, _1; - zval message; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&exception); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(message) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &message_param); - zephir_get_strval(&message, message_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("exception"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&exception, &_0); - zephir_fetch_safe_class(&_1, &exception); - _2 = zephir_fetch_class_str_ex(Z_STRVAL_P(&_1), Z_STRLEN_P(&_1), ZEND_FETCH_CLASS_AUTO); - if(!_2) { - RETURN_MM_NULL(); - } - object_init_ex(return_value, _2); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 0, &message); - zephir_check_call_status(); - RETURN_MM(); + phql_ret_expr(&ppgotominor.pp202, PHQL_T_DIV, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(17,&ppmsp[-1].minor); } - -zend_object *zephir_init_properties_Phalcon_Factory_AbstractFactory(zend_class_entry *class_type) +// 1847 "parser.php.c" + break; + case 102: +// 680 "parser.php.lemon" { - zval _0, _2, _1$$3, _3$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("services"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("services"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("mapper"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("mapper"), &_3$$4); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } + phql_ret_expr(&ppgotominor.pp202, PHQL_T_MOD, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(19,&ppmsp[-1].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Factory_Exception) +// 1855 "parser.php.c" + break; + case 103: +// 684 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Factory, Exception, phalcon, factory_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; + phql_ret_expr(&ppgotominor.pp202, PHQL_T_AND, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(10,&ppmsp[-1].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Filter_Exception) +// 1863 "parser.php.c" + break; + case 104: +// 688 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Filter, Exception, phalcon, filter_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; + phql_ret_expr(&ppgotominor.pp202, PHQL_T_OR, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(11,&ppmsp[-1].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Filter_FilterFactory) +// 1871 "parser.php.c" + break; + case 105: +// 692 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter, FilterFactory, phalcon, filter_filterfactory, phalcon_filter_filterfactory_method_entry, 0); - - return SUCCESS; + phql_ret_expr(&ppgotominor.pp202, PHQL_T_BITWISE_AND, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(14,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Filter_FilterFactory, newInstance) +// 1879 "parser.php.c" + break; + case 106: +// 696 "parser.php.lemon" { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - object_init_ex(return_value, phalcon_filter_ce); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapters", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 236, &_0); - zephir_check_call_status(); - RETURN_MM(); + phql_ret_expr(&ppgotominor.pp202, PHQL_T_BITWISE_OR, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(15,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Filter_FilterFactory, getAdapters) +// 1887 "parser.php.c" + break; + case 107: +// 700 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - zephir_create_array(return_value, 21, 0); - add_assoc_stringl_ex(return_value, SL("absint"), SL("Phalcon\\Filter\\Sanitize\\AbsInt")); - add_assoc_stringl_ex(return_value, SL("alnum"), SL("Phalcon\\Filter\\Sanitize\\Alnum")); - add_assoc_stringl_ex(return_value, SL("alpha"), SL("Phalcon\\Filter\\Sanitize\\Alpha")); - add_assoc_stringl_ex(return_value, SL("bool"), SL("Phalcon\\Filter\\Sanitize\\BoolVal")); - add_assoc_stringl_ex(return_value, SL("email"), SL("Phalcon\\Filter\\Sanitize\\Email")); - add_assoc_stringl_ex(return_value, SL("float"), SL("Phalcon\\Filter\\Sanitize\\FloatVal")); - add_assoc_stringl_ex(return_value, SL("int"), SL("Phalcon\\Filter\\Sanitize\\IntVal")); - add_assoc_stringl_ex(return_value, SL("lower"), SL("Phalcon\\Filter\\Sanitize\\Lower")); - add_assoc_stringl_ex(return_value, SL("lowerFirst"), SL("Phalcon\\Filter\\Sanitize\\LowerFirst")); - add_assoc_stringl_ex(return_value, SL("regex"), SL("Phalcon\\Filter\\Sanitize\\Regex")); - add_assoc_stringl_ex(return_value, SL("remove"), SL("Phalcon\\Filter\\Sanitize\\Remove")); - add_assoc_stringl_ex(return_value, SL("replace"), SL("Phalcon\\Filter\\Sanitize\\Replace")); - add_assoc_stringl_ex(return_value, SL("special"), SL("Phalcon\\Filter\\Sanitize\\Special")); - add_assoc_stringl_ex(return_value, SL("specialFull"), SL("Phalcon\\Filter\\Sanitize\\SpecialFull")); - add_assoc_stringl_ex(return_value, SL("string"), SL("Phalcon\\Filter\\Sanitize\\StringVal")); - add_assoc_stringl_ex(return_value, SL("striptags"), SL("Phalcon\\Filter\\Sanitize\\Striptags")); - add_assoc_stringl_ex(return_value, SL("trim"), SL("Phalcon\\Filter\\Sanitize\\Trim")); - add_assoc_stringl_ex(return_value, SL("upper"), SL("Phalcon\\Filter\\Sanitize\\Upper")); - add_assoc_stringl_ex(return_value, SL("upperFirst"), SL("Phalcon\\Filter\\Sanitize\\UpperFirst")); - add_assoc_stringl_ex(return_value, SL("upperWords"), SL("Phalcon\\Filter\\Sanitize\\UpperWords")); - add_assoc_stringl_ex(return_value, SL("url"), SL("Phalcon\\Filter\\Sanitize\\Url")); - return; + phql_ret_expr(&ppgotominor.pp202, PHQL_T_BITWISE_XOR, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(16,&ppmsp[-1].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Filter_FilterInterface) +// 1895 "parser.php.c" + break; + case 108: +// 704 "parser.php.lemon" { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Filter, FilterInterface, phalcon, filter_filterinterface, phalcon_filter_filterinterface_method_entry); - - return SUCCESS; + phql_ret_expr(&ppgotominor.pp202, PHQL_T_EQUALS, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(4,&ppmsp[-1].minor); } - -ZEPHIR_DOC_METHOD(Phalcon_Filter_FilterInterface, sanitize); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_AbsInt) +// 1903 "parser.php.c" + break; + case 109: +// 708 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, AbsInt, phalcon, filter_sanitize_absint, phalcon_filter_sanitize_absint_method_entry, 0); - - return SUCCESS; + phql_ret_expr(&ppgotominor.pp202, PHQL_T_NOTEQUALS, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(5,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Filter_Sanitize_AbsInt, __invoke) +// 1911 "parser.php.c" + break; + case 110: +// 712 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *input, input_sub, _0, _1; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&input_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(input) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &input); - - - ZVAL_LONG(&_0, 519); - ZEPHIR_CALL_FUNCTION(&_1, "filter_var", NULL, 237, input, &_0); - zephir_check_call_status(); - ZVAL_LONG(&_0, zephir_get_intval(&_1)); - ZEPHIR_RETURN_CALL_FUNCTION("abs", NULL, 238, &_0); - zephir_check_call_status(); - RETURN_MM(); + phql_ret_expr(&ppgotominor.pp202, PHQL_T_LESS, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(6,&ppmsp[-1].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Alnum) +// 1919 "parser.php.c" + break; + case 111: +// 716 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Alnum, phalcon, filter_sanitize_alnum, phalcon_filter_sanitize_alnum_method_entry, 0); - - return SUCCESS; + phql_ret_expr(&ppgotominor.pp202, PHQL_T_GREATER, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(7,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Filter_Sanitize_Alnum, __invoke) +// 1927 "parser.php.c" + break; + case 112: +// 720 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *input, input_sub, _0, _1; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&input_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(input) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &input); - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "/[^A-Za-z0-9]/"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, ""); - ZEPHIR_RETURN_CALL_FUNCTION("preg_replace", NULL, 50, &_0, &_1, input); - zephir_check_call_status(); - RETURN_MM(); + phql_ret_expr(&ppgotominor.pp202, PHQL_T_GREATEREQUAL, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(8,&ppmsp[-1].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Alpha) +// 1935 "parser.php.c" + break; + case 113: +// 724 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Alpha, phalcon, filter_sanitize_alpha, phalcon_filter_sanitize_alpha_method_entry, 0); - - return SUCCESS; + phql_ret_expr(&ppgotominor.pp202, PHQL_T_LESSEQUAL, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(9,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Filter_Sanitize_Alpha, __invoke) +// 1943 "parser.php.c" + break; + case 114: +// 728 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *input, input_sub, _0, _1; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&input_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(input) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &input); - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "/[^A-Za-z]/"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, ""); - ZEPHIR_RETURN_CALL_FUNCTION("preg_replace", NULL, 50, &_0, &_1, input); - zephir_check_call_status(); - RETURN_MM(); + phql_ret_expr(&ppgotominor.pp202, PHQL_T_LIKE, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(12,&ppmsp[-1].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_BoolVal) +// 1951 "parser.php.c" + break; + case 115: +// 732 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, BoolVal, phalcon, filter_sanitize_boolval, phalcon_filter_sanitize_boolval_method_entry, 0); - - return SUCCESS; + phql_ret_expr(&ppgotominor.pp202, PHQL_T_NLIKE, &ppmsp[-3].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(24,&ppmsp[-2].minor); + pp_destructor(12,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Filter_Sanitize_BoolVal, __invoke) +// 1960 "parser.php.c" + break; + case 116: +// 736 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *input, input_sub, falseArray, trueArray, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&input_sub); - ZVAL_UNDEF(&falseArray); - ZVAL_UNDEF(&trueArray); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(input) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &input); - - - ZEPHIR_INIT_VAR(&trueArray); - zephir_create_array(&trueArray, 5, 0); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "true"); - zephir_array_fast_append(&trueArray, &_0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "on"); - zephir_array_fast_append(&trueArray, &_0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "yes"); - zephir_array_fast_append(&trueArray, &_0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "y"); - zephir_array_fast_append(&trueArray, &_0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "1"); - zephir_array_fast_append(&trueArray, &_0); - ZEPHIR_INIT_VAR(&falseArray); - zephir_create_array(&falseArray, 5, 0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "false"); - zephir_array_fast_append(&falseArray, &_0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "off"); - zephir_array_fast_append(&falseArray, &_0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "no"); - zephir_array_fast_append(&falseArray, &_0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "n"); - zephir_array_fast_append(&falseArray, &_0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "0"); - zephir_array_fast_append(&falseArray, &_0); - if (1 == zephir_fast_in_array(input, &trueArray)) { - RETURN_MM_BOOL(1); - } - if (1 == zephir_fast_in_array(input, &falseArray)) { - RETURN_MM_BOOL(0); - } - RETURN_MM_BOOL(zephir_get_boolval(input)); + phql_ret_expr(&ppgotominor.pp202, PHQL_T_ILIKE, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(13,&ppmsp[-1].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Email) +// 1968 "parser.php.c" + break; + case 117: +// 740 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Email, phalcon, filter_sanitize_email, phalcon_filter_sanitize_email_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Filter_Sanitize_Email, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *input, input_sub, _0, _1; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&input_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(input) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &input); - - - ZVAL_LONG(&_0, 517); - ZVAL_LONG(&_1, 1048576); - ZEPHIR_RETURN_CALL_FUNCTION("filter_var", NULL, 237, input, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); + phql_ret_expr(&ppgotominor.pp202, PHQL_T_NILIKE, &ppmsp[-3].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(24,&ppmsp[-2].minor); + pp_destructor(13,&ppmsp[-1].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_FloatVal) +// 1977 "parser.php.c" + break; + case 118: + case 121: +// 744 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, FloatVal, phalcon, filter_sanitize_floatval, phalcon_filter_sanitize_floatval_method_entry, 0); - - return SUCCESS; + phql_ret_expr(&ppgotominor.pp202, PHQL_T_IN, &ppmsp[-4].minor.pp202, &ppmsp[-1].minor.pp202); + pp_destructor(23,&ppmsp[-3].minor); + pp_destructor(45,&ppmsp[-2].minor); + pp_destructor(46,&ppmsp[0].minor); } - -static PHP_METHOD(Phalcon_Filter_Sanitize_FloatVal, __invoke) +// 1988 "parser.php.c" + break; + case 119: + case 122: +// 748 "parser.php.lemon" { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *input, input_sub, _1, _2; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&input_sub); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(input) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &input); - - - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 1, 0); - add_assoc_long_ex(&_0, SL("flags"), 4096); - ZVAL_LONG(&_1, 520); - ZEPHIR_CALL_FUNCTION(&_2, "filter_var", NULL, 237, input, &_1, &_0); - zephir_check_call_status(); - RETURN_MM_DOUBLE(zephir_get_doubleval(&_2)); + phql_ret_expr(&ppgotominor.pp202, PHQL_T_NOTIN, &ppmsp[-5].minor.pp202, &ppmsp[-1].minor.pp202); + pp_destructor(24,&ppmsp[-4].minor); + pp_destructor(23,&ppmsp[-3].minor); + pp_destructor(45,&ppmsp[-2].minor); + pp_destructor(46,&ppmsp[0].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_IntVal) +// 2000 "parser.php.c" + break; + case 120: +// 752 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, IntVal, phalcon, filter_sanitize_intval, phalcon_filter_sanitize_intval_method_entry, 0); - - return SUCCESS; + phql_ret_expr(&ppgotominor.pp202, PHQL_T_SUBQUERY, &ppmsp[-1].minor.pp202, NULL); + pp_destructor(45,&ppmsp[-2].minor); + pp_destructor(46,&ppmsp[0].minor); } - -static PHP_METHOD(Phalcon_Filter_Sanitize_IntVal, __invoke) +// 2009 "parser.php.c" + break; + case 123: +// 764 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *input, input_sub, _0, _1; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&input_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(input) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &input); - - - ZVAL_LONG(&_0, 519); - ZEPHIR_CALL_FUNCTION(&_1, "filter_var", NULL, 237, input, &_0); - zephir_check_call_status(); - RETURN_MM_LONG(zephir_get_intval(&_1)); + phql_ret_expr(&ppgotominor.pp202, PHQL_T_EXISTS, NULL, &ppmsp[-1].minor.pp202); + pp_destructor(66,&ppmsp[-3].minor); + pp_destructor(45,&ppmsp[-2].minor); + pp_destructor(46,&ppmsp[0].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Lower) +// 2019 "parser.php.c" + break; + case 124: +// 768 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Lower, phalcon, filter_sanitize_lower, phalcon_filter_sanitize_lower_method_entry, 0); - - return SUCCESS; + phql_ret_expr(&ppgotominor.pp202, PHQL_T_AGAINST, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(1,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Filter_Sanitize_Lower, __invoke) +// 2027 "parser.php.c" + break; + case 125: +// 772 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *input_param = NULL, _0$$3, _1$$3, _2; - zval input; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&input); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(input) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &input_param); - if (UNEXPECTED(Z_TYPE_P(input_param) != IS_STRING && Z_TYPE_P(input_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'input' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(input_param) == IS_STRING)) { - zephir_get_strval(&input, input_param); - } else { - ZEPHIR_INIT_VAR(&input); + { + zval qualified; + phql_ret_raw_qualified_name(&qualified, ppmsp[-1].minor.pp0, NULL); + phql_ret_expr(&ppgotominor.pp202, PHQL_T_CAST, &ppmsp[-3].minor.pp202, &qualified); } - - - if (1 == (zephir_function_exists_ex(ZEND_STRL("mb_convert_case")) == SUCCESS)) { - ZVAL_LONG(&_0$$3, 1); - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "UTF-8"); - ZEPHIR_RETURN_CALL_FUNCTION("mb_convert_case", NULL, 239, &input, &_0$$3, &_1$$3); - zephir_check_call_status(); - RETURN_MM(); + pp_destructor(67,&ppmsp[-5].minor); + pp_destructor(45,&ppmsp[-4].minor); + pp_destructor(33,&ppmsp[-2].minor); + pp_destructor(46,&ppmsp[0].minor); +} +// 2042 "parser.php.c" + break; + case 126: +// 780 "parser.php.lemon" +{ + { + zval qualified; + phql_ret_raw_qualified_name(&qualified, ppmsp[-1].minor.pp0, NULL); + phql_ret_expr(&ppgotominor.pp202, PHQL_T_CONVERT, &ppmsp[-3].minor.pp202, &qualified); } - ZEPHIR_CALL_FUNCTION(&_2, "utf8_decode", NULL, 240, &input); - zephir_check_call_status(); - zephir_fast_strtolower(return_value, &_2); - RETURN_MM(); + pp_destructor(68,&ppmsp[-5].minor); + pp_destructor(45,&ppmsp[-4].minor); + pp_destructor(69,&ppmsp[-2].minor); + pp_destructor(46,&ppmsp[0].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_LowerFirst) +// 2057 "parser.php.c" + break; + case 127: +// 788 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, LowerFirst, phalcon, filter_sanitize_lowerfirst, phalcon_filter_sanitize_lowerfirst_method_entry, 0); - - return SUCCESS; + phql_ret_expr(&ppgotominor.pp202, PHQL_T_CASE, &ppmsp[-2].minor.pp202, &ppmsp[-1].minor.pp202); + pp_destructor(70,&ppmsp[-3].minor); + pp_destructor(71,&ppmsp[0].minor); } - -static PHP_METHOD(Phalcon_Filter_Sanitize_LowerFirst, __invoke) +// 2066 "parser.php.c" + break; + case 130: +// 800 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *input_param = NULL; - zval input; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&input); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(input) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &input_param); - if (UNEXPECTED(Z_TYPE_P(input_param) != IS_STRING && Z_TYPE_P(input_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'input' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(input_param) == IS_STRING)) { - zephir_get_strval(&input, input_param); - } else { - ZEPHIR_INIT_VAR(&input); - } - - - ZEPHIR_RETURN_CALL_FUNCTION("lcfirst", NULL, 96, &input); - zephir_check_call_status(); - RETURN_MM(); + phql_ret_expr(&ppgotominor.pp202, PHQL_T_WHEN, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(72,&ppmsp[-3].minor); + pp_destructor(73,&ppmsp[-1].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Regex) +// 2075 "parser.php.c" + break; + case 131: +// 804 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Regex, phalcon, filter_sanitize_regex, phalcon_filter_sanitize_regex_method_entry, 0); - - return SUCCESS; + phql_ret_expr(&ppgotominor.pp202, PHQL_T_ELSE, &ppmsp[0].minor.pp202, NULL); + pp_destructor(74,&ppmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Filter_Sanitize_Regex, __invoke) +// 2083 "parser.php.c" + break; + case 133: +// 816 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *input, input_sub, *pattern, pattern_sub, *replace, replace_sub; - zval *this_ptr = getThis(); + phql_ret_func_call(&ppgotominor.pp202, ppmsp[-4].minor.pp0, &ppmsp[-1].minor.pp202, &ppmsp[-2].minor.pp202); + pp_destructor(45,&ppmsp[-3].minor); + pp_destructor(46,&ppmsp[0].minor); +} +// 2092 "parser.php.c" + break; + case 134: +// 824 "parser.php.lemon" +{ + phql_ret_distinct(&ppgotominor.pp202); + pp_destructor(29,&ppmsp[0].minor); +} +// 2100 "parser.php.c" + break; + case 142: +// 868 "parser.php.lemon" +{ + phql_ret_expr(&ppgotominor.pp202, PHQL_T_ISNULL, &ppmsp[-2].minor.pp202, NULL); + pp_destructor(22,&ppmsp[-1].minor); + pp_destructor(75,&ppmsp[0].minor); +} +// 2109 "parser.php.c" + break; + case 143: +// 872 "parser.php.lemon" +{ + phql_ret_expr(&ppgotominor.pp202, PHQL_T_ISNOTNULL, &ppmsp[-3].minor.pp202, NULL); + pp_destructor(22,&ppmsp[-2].minor); + pp_destructor(24,&ppmsp[-1].minor); + pp_destructor(75,&ppmsp[0].minor); +} +// 2119 "parser.php.c" + break; + case 144: +// 876 "parser.php.lemon" +{ + phql_ret_expr(&ppgotominor.pp202, PHQL_T_BETWEEN, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(2,&ppmsp[-1].minor); +} +// 2127 "parser.php.c" + break; + case 145: +// 880 "parser.php.lemon" +{ + phql_ret_expr(&ppgotominor.pp202, PHQL_T_BETWEEN_NOT, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); + pp_destructor(3,&ppmsp[-1].minor); +} +// 2135 "parser.php.c" + break; + case 146: +// 884 "parser.php.lemon" +{ + phql_ret_expr(&ppgotominor.pp202, PHQL_T_NOT, NULL, &ppmsp[0].minor.pp202); + pp_destructor(24,&ppmsp[-1].minor); +} +// 2143 "parser.php.c" + break; + case 147: +// 888 "parser.php.lemon" +{ + phql_ret_expr(&ppgotominor.pp202, PHQL_T_BITWISE_NOT, NULL, &ppmsp[0].minor.pp202); + pp_destructor(25,&ppmsp[-1].minor); +} +// 2151 "parser.php.c" + break; + case 148: +// 892 "parser.php.lemon" +{ + phql_ret_expr(&ppgotominor.pp202, PHQL_T_ENCLOSED, &ppmsp[-1].minor.pp202, NULL); + pp_destructor(45,&ppmsp[-2].minor); + pp_destructor(46,&ppmsp[0].minor); +} +// 2160 "parser.php.c" + break; + case 152: +// 908 "parser.php.lemon" +{ + phql_ret_literal_zval(&ppgotominor.pp202, PHQL_T_STRING, ppmsp[0].minor.pp0); +} +// 2167 "parser.php.c" + break; + case 153: +// 912 "parser.php.lemon" +{ + phql_ret_literal_zval(&ppgotominor.pp202, PHQL_T_DOUBLE, ppmsp[0].minor.pp0); +} +// 2174 "parser.php.c" + break; + case 154: +// 916 "parser.php.lemon" +{ + phql_ret_literal_zval(&ppgotominor.pp202, PHQL_T_NULL, NULL); + pp_destructor(75,&ppmsp[0].minor); +} +// 2182 "parser.php.c" + break; + case 155: +// 920 "parser.php.lemon" +{ + phql_ret_literal_zval(&ppgotominor.pp202, PHQL_T_TRUE, NULL); + pp_destructor(78,&ppmsp[0].minor); +} +// 2190 "parser.php.c" + break; + case 156: +// 924 "parser.php.lemon" +{ + phql_ret_literal_zval(&ppgotominor.pp202, PHQL_T_FALSE, NULL); + pp_destructor(79,&ppmsp[0].minor); +} +// 2198 "parser.php.c" + break; + case 160: +// 947 "parser.php.lemon" +{ + phql_ret_qualified_name(&ppgotominor.pp202, NULL, ppmsp[-2].minor.pp0, ppmsp[0].minor.pp0); + pp_destructor(32,&ppmsp[-1].minor); +} +// 2206 "parser.php.c" + break; + }; + ppgoto = ppRuleInfo[ppruleno].lhs; + ppsize = ppRuleInfo[ppruleno].nrhs; + pppParser->ppidx -= ppsize; + ppact = pp_find_reduce_action(pppParser,ppgoto); + if( ppact < PPNSTATE ){ + pp_shift(pppParser,ppact,ppgoto,&ppgotominor); + }else if( ppact == PPNSTATE + PPNRULE + 1 ){ + pp_accept(pppParser); + } +} - ZVAL_UNDEF(&input_sub); - ZVAL_UNDEF(&pattern_sub); - ZVAL_UNDEF(&replace_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_ZVAL(input) - Z_PARAM_ZVAL(pattern) - Z_PARAM_ZVAL(replace) - ZEND_PARSE_PARAMETERS_END(); +static void pp_parse_failed( + ppParser *pppParser /* The parser */ +){ + phql_ARG_FETCH; +#ifndef NDEBUG + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sFail!\n",ppTracePrompt); + } #endif + while( pppParser->ppidx>=0 ) pp_pop_parser_stack(pppParser); + /* Here code is inserted which will be executed whenever the + ** parser fails */ + phql_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ +} +static void pp_syntax_error( + ppParser *pppParser, /* The parser */ + int ppmajor, /* The major type of the error token */ + PPMINORTYPE ppminor /* The minor type of the error token */ +){ + phql_ARG_FETCH; +#define PPTOKEN (ppminor.pp0) +// 34 "parser.php.lemon" - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &input, &pattern, &replace); - - - ZEPHIR_RETURN_CALL_FUNCTION("preg_replace", NULL, 50, pattern, replace, input); - zephir_check_call_status(); - RETURN_MM(); -} + if (status->scanner_state->start_length) { + { + char *token_name = NULL; + int token_found = 0; + unsigned int token_length; + const phql_token_names *tokens = phql_tokens; + int active_token = status->scanner_state->active_token; + int near_length = status->scanner_state->start_length; + if (active_token) { + do { + if (tokens->code == active_token) { + token_name = tokens->name; + token_length = tokens->length; + token_found = 1; + break; + } + ++tokens; + } while (tokens[0].code != 0); -#ifdef HAVE_CONFIG_H -#endif + } + if (!token_name) { + token_length = strlen("UNKNOWN"); + token_name = estrndup("UNKNOWN", token_length); + token_found = 0; + } + status->syntax_error_len = 96 + status->token->len + token_length + near_length + status->phql_length;; + status->syntax_error = emalloc(sizeof(char) * status->syntax_error_len); + if (near_length > 0) { + if (status->token->value) { + snprintf(status->syntax_error, status->syntax_error_len, "Syntax error, unexpected token %s(%s), near to '%s', when parsing: %s (%d)", token_name, status->token->value, status->scanner_state->start, status->phql, status->phql_length); + } else { + snprintf(status->syntax_error, status->syntax_error_len, "Syntax error, unexpected token %s, near to '%s', when parsing: %s (%d)", token_name, status->scanner_state->start, status->phql, status->phql_length); + } + } else { + if (active_token != PHQL_T_IGNORE) { + if (status->token->value) { + snprintf(status->syntax_error, status->syntax_error_len, "Syntax error, unexpected token %s(%s), at the end of query, when parsing: %s (%d)", token_name, status->token->value, status->phql, status->phql_length); + } else { + snprintf(status->syntax_error, status->syntax_error_len, "Syntax error, unexpected token %s, at the end of query, when parsing: %s (%d)", token_name, status->phql, status->phql_length); + } + } else { + snprintf(status->syntax_error, status->syntax_error_len, "Syntax error, unexpected EOF, at the end of query"); + } + status->syntax_error[status->syntax_error_len - 1] = '\0'; + } + if (!token_found) { + if (token_name) { + efree(token_name); + } + } + } + } else { + status->syntax_error_len = strlen("Syntax error, unexpected EOF"); + status->syntax_error = estrndup("Syntax error, unexpected EOF", status->syntax_error_len); + } -ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Remove) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Remove, phalcon, filter_sanitize_remove, phalcon_filter_sanitize_remove_method_entry, 0); + status->status = PHQL_PARSING_FAILED; - return SUCCESS; +// 2315 "parser.php.c" + phql_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static PHP_METHOD(Phalcon_Filter_Sanitize_Remove, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *input, input_sub, *replace, replace_sub, _0, _1; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&input_sub); - ZVAL_UNDEF(&replace_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(input) - Z_PARAM_ZVAL(replace) - ZEND_PARSE_PARAMETERS_END(); +static void pp_accept( + ppParser *pppParser /* The parser */ +){ + phql_ARG_FETCH; +#ifndef NDEBUG + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sAccept!\n",ppTracePrompt); + } #endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &input, &replace); - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, ""); - ZEPHIR_INIT_VAR(&_1); - zephir_fast_str_replace(&_1, replace, &_0, input); - RETURN_CCTOR(&_1); + while( pppParser->ppidx>=0 ) pp_pop_parser_stack(pppParser); + /* Here code is inserted which will be executed whenever the + ** parser accepts */ + phql_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } +/* The main parser program. +** The first argument is a pointer to a structure obtained from +** "phql_Alloc" which describes the current state of the parser. +** The second argument is the major token number. The third is +** the minor token. The fourth optional argument is whatever the +** user wants (and specified in the grammar) and is available for +** use by the action routines. +** +** Inputs: +**
    +**
  • A pointer to the parser (an opaque structure.) +**
  • The major token number. +**
  • The minor token number. +**
  • An option argument of a grammar-specified type. +**
+** +** Outputs: +** None. +*/ +static void phql_( + void *ppp, /* The parser */ + int ppmajor, /* The major token code number */ + phql_TOKENTYPE ppminor /* The value for the token */ + phql_ARG_PDECL /* Optional %extra_argument parameter */ +){ + PPMINORTYPE ppminorunion; + int ppact; /* The parser action. */ + int ppendofinput; /* True if we are at the end of input */ + int pperrorhit = 0; /* True if ppmajor has invoked an error */ + ppParser *pppParser; /* The parser */ + /* (re)initialize the parser, if necessary */ + pppParser = (ppParser*)ppp; + if( pppParser->ppidx<0 ){ + if( ppmajor==0 ) return; + pppParser->ppidx = 0; + pppParser->pperrcnt = -1; + pppParser->ppstack[0].stateno = 0; + pppParser->ppstack[0].major = 0; + } + ppminorunion.pp0 = ppminor; + ppendofinput = (ppmajor==0); + phql_ARG_STORE; - -#ifdef HAVE_CONFIG_H +#ifndef NDEBUG + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sInput %s\n",ppTracePrompt,ppTokenName[ppmajor]); + } #endif + do{ + ppact = pp_find_shift_action(pppParser,ppmajor); + if( ppactpperrcnt--; + if( ppendofinput && pppParser->ppidx>=0 ){ + ppmajor = 0; + }else{ + ppmajor = PPNOCODE; + } + }else if( ppact < PPNSTATE + PPNRULE ){ + pp_reduce(pppParser,ppact-PPNSTATE); + }else if( ppact == PP_ERROR_ACTION ){ + int ppmx; +#ifndef NDEBUG + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sSyntax Error!\n",ppTracePrompt); + } +#endif +#ifdef PPERRORSYMBOL + /* A syntax error has occurred. + ** The response to an error depends upon whether or not the + ** grammar defines an error token "ERROR". + ** + ** This is what we do if the grammar does define ERROR: + ** + ** * Call the %syntax_error function. + ** + ** * Begin popping the stack until we enter a state where + ** it is legal to shift the error symbol, then shift + ** the error symbol. + ** + ** * Set the error count to three. + ** + ** * Begin accepting and shifting new tokens. No new error + ** processing will occur until three tokens have been + ** shifted successfully. + ** + */ + if( pppParser->pperrcnt<0 ){ + pp_syntax_error(pppParser,ppmajor,ppminorunion); + } + ppmx = pppParser->ppstack[pppParser->ppidx].major; + if( ppmx==PPERRORSYMBOL || pperrorhit ){ +#ifndef NDEBUG + if( ppTraceFILE ){ + fprintf(ppTraceFILE,"%sDiscard input token %s\n", + ppTracePrompt,ppTokenName[ppmajor]); + } +#endif + pp_destructor(ppmajor,&ppminorunion); + ppmajor = PPNOCODE; + }else{ + while( + pppParser->ppidx >= 0 && + ppmx != PPERRORSYMBOL && + (ppact = pp_find_shift_action(pppParser,PPERRORSYMBOL)) >= PPNSTATE + ){ + pp_pop_parser_stack(pppParser); + } + if( pppParser->ppidx < 0 || ppmajor==0 ){ + pp_destructor(ppmajor,&ppminorunion); + pp_parse_failed(pppParser); + ppmajor = PPNOCODE; + }else if( ppmx!=PPERRORSYMBOL ){ + PPMINORTYPE u2; + u2.PPERRSYMDT = 0; + pp_shift(pppParser,ppact,PPERRORSYMBOL,&u2); + } + } + pppParser->pperrcnt = 3; + pperrorhit = 1; +#else /* PPERRORSYMBOL is not defined */ + /* This is what we do if the grammar does not define ERROR: + ** + ** * Report an error message, and throw away the input token. + ** + ** * If the input token is $, then fail the parse. + ** + ** As before, subsequent error messages are suppressed until + ** three input tokens have been successfully shifted. + */ + if( pppParser->pperrcnt<=0 ){ + pp_syntax_error(pppParser,ppmajor,ppminorunion); + } + pppParser->pperrcnt = 3; + pp_destructor(ppmajor,&ppminorunion); + if( ppendofinput ){ + pp_parse_failed(pppParser); + } + ppmajor = PPNOCODE; +#endif + }else{ + pp_accept(pppParser); + ppmajor = PPNOCODE; + } + }while( ppmajor!=PPNOCODE && pppParser->ppidx>=0 ); + return; +} +/* base.c + * This file is part of the Phalcon Framework. + * + * (c) Phalcon Team + * + * For the full copyright and license information, please view the + * LICENSE.txt file that was distributed with this source code. + */ - - - -ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Replace) +const phql_token_names phql_tokens[] = { - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Replace, phalcon, filter_sanitize_replace, phalcon_filter_sanitize_replace_method_entry, 0); + { SL("INTEGER"), PHQL_T_INTEGER }, + { SL("DOUBLE"), PHQL_T_DOUBLE }, + { SL("STRING"), PHQL_T_STRING }, + { SL("IDENTIFIER"), PHQL_T_IDENTIFIER }, + { SL("HEXAINTEGER"), PHQL_T_HINTEGER }, + { SL("MINUS"), PHQL_T_MINUS }, + { SL("+"), PHQL_T_ADD }, + { SL("-"), PHQL_T_SUB }, + { SL("*"), PHQL_T_MUL }, + { SL("/"), PHQL_T_DIV }, + { SL("&"), PHQL_T_BITWISE_AND }, + { SL("|"), PHQL_T_BITWISE_OR }, + { SL("%%"), PHQL_T_MOD }, + { SL("AND"), PHQL_T_AND }, + { SL("OR"), PHQL_T_OR }, + { SL("LIKE"), PHQL_T_LIKE }, + { SL("ILIKE"), PHQL_T_ILIKE }, + { SL("DOT"), PHQL_T_DOT }, + { SL("COLON"), PHQL_T_COLON }, + { SL("COMMA"), PHQL_T_COMMA }, + { SL("EQUALS"), PHQL_T_EQUALS }, + { SL("NOT EQUALS"), PHQL_T_NOTEQUALS }, + { SL("NOT"), PHQL_T_NOT }, + { SL("<"), PHQL_T_LESS }, + { SL("<="), PHQL_T_LESSEQUAL }, + { SL(">"), PHQL_T_GREATER }, + { SL(">="), PHQL_T_GREATEREQUAL }, + { SL("("), PHQL_T_PARENTHESES_OPEN }, + { SL(")"), PHQL_T_PARENTHESES_CLOSE }, + { SL("NUMERIC PLACEHOLDER"), PHQL_T_NPLACEHOLDER }, + { SL("STRING PLACEHOLDER"), PHQL_T_SPLACEHOLDER }, + { SL("UPDATE"), PHQL_T_UPDATE }, + { SL("SET"), PHQL_T_SET }, + { SL("WHERE"), PHQL_T_WHERE }, + { SL("DELETE"), PHQL_T_DELETE }, + { SL("FROM"), PHQL_T_FROM }, + { SL("AS"), PHQL_T_AS }, + { SL("INSERT"), PHQL_T_INSERT }, + { SL("INTO"), PHQL_T_INTO }, + { SL("VALUES"), PHQL_T_VALUES }, + { SL("SELECT"), PHQL_T_SELECT }, + { SL("ORDER"), PHQL_T_ORDER }, + { SL("BY"), PHQL_T_BY }, + { SL("LIMIT"), PHQL_T_LIMIT }, + { SL("OFFSET"), PHQL_T_OFFSET }, + { SL("GROUP"), PHQL_T_GROUP }, + { SL("HAVING"), PHQL_T_HAVING }, + { SL("IN"), PHQL_T_IN }, + { SL("ON"), PHQL_T_ON }, + { SL("INNER"), PHQL_T_INNER }, + { SL("JOIN"), PHQL_T_JOIN }, + { SL("LEFT"), PHQL_T_LEFT }, + { SL("RIGHT"), PHQL_T_RIGHT }, + { SL("IS"), PHQL_T_IS }, + { SL("NULL"), PHQL_T_NULL }, + { SL("NOT IN"), PHQL_T_NOTIN }, + { SL("CROSS"), PHQL_T_CROSS }, + { SL("OUTER"), PHQL_T_OUTER }, + { SL("FULL"), PHQL_T_FULL }, + { SL("ASC"), PHQL_T_ASC }, + { SL("DESC"), PHQL_T_DESC }, + { SL("BETWEEN"), PHQL_T_BETWEEN }, + { SL("DISTINCT"), PHQL_T_DISTINCT }, + { SL("AGAINST"), PHQL_T_AGAINST }, + { SL("CAST"), PHQL_T_CAST }, + { SL("CONVERT"), PHQL_T_CONVERT }, + { SL("USING"), PHQL_T_USING }, + { SL("ALL"), PHQL_T_ALL }, + { SL("EXISTS"), PHQL_T_EXISTS }, + { SL("CASE"), PHQL_T_CASE }, + { SL("WHEN"), PHQL_T_WHEN }, + { SL("THEN"), PHQL_T_THEN }, + { SL("ELSE"), PHQL_T_ELSE }, + { SL("END"), PHQL_T_END }, + { SL("FOR"), PHQL_T_FOR }, + { SL("WITH"), PHQL_T_WITH }, + { NULL, 0, 0 } +}; - return SUCCESS; +static void *phql_wrapper_alloc(size_t bytes) +{ + return emalloc(bytes); } -static PHP_METHOD(Phalcon_Filter_Sanitize_Replace, __invoke) +static void phql_wrapper_free(void *pointer) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *input, input_sub, *from, from_sub, *to, to_sub, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&input_sub); - ZVAL_UNDEF(&from_sub); - ZVAL_UNDEF(&to_sub); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_ZVAL(input) - Z_PARAM_ZVAL(from) - Z_PARAM_ZVAL(to) - ZEND_PARSE_PARAMETERS_END(); -#endif + efree(pointer); +} +static void phql_parse_with_token(void* phql_parser, int opcode, int parsercode, phql_scanner_token *token, phql_parser_status *parser_status) +{ - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &input, &from, &to); + phql_parser_token *pToken; + pToken = emalloc(sizeof(phql_parser_token)); + pToken->opcode = opcode; + pToken->token = token->value; + pToken->token_len = token->len; + pToken->free_flag = 1; + phql_(phql_parser, parsercode, pToken, parser_status); - ZEPHIR_INIT_VAR(&_0); - zephir_fast_str_replace(&_0, from, to, input); - RETURN_CCTOR(&_0); + token->value = NULL; + token->len = 0; } +static void phql_scanner_error_msg(phql_parser_status *parser_status, zval **error_msg) +{ + char *error = NULL, *error_part; + unsigned int length; + phql_scanner_state *state = parser_status->scanner_state; + ZVAL_UNDEF(*error_msg); -#ifdef HAVE_CONFIG_H -#endif - - - + if (state->start) { + length = 64 + state->start_length + parser_status->phql_length; + error = emalloc(sizeof(char) * length); + if (state->start_length > 16) { + error_part = estrndup(state->start, 16); + snprintf(error, length, "Scanning error before '%s...' when parsing: %s (%d)", error_part, parser_status->phql, parser_status->phql_length); + efree(error_part); + } else { + snprintf(error, length, "Scanning error before '%s' when parsing: %s (%d)", state->start, parser_status->phql, parser_status->phql_length); + } + error[length - 1] = '\0'; + ZVAL_STRING(*error_msg, error); + } else { + ZVAL_STRING(*error_msg, "Scanning error near to EOF"); + } + if (error) { + efree(error); + } +} -ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Special) +static int phql_parse_phql(zval *result, zval *phql) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Special, phalcon, filter_sanitize_special, phalcon_filter_sanitize_special_method_entry, 0); + zval err_msg, *error_msg = &err_msg; + ZVAL_UNDEF(error_msg); + ZVAL_NULL(result); + + if (phql_internal_parse_phql(&result, Z_STRVAL_P(phql), Z_STRLEN_P(phql), &error_msg) == FAILURE) { + ZEPHIR_THROW_EXCEPTION_STRW(phalcon_mvc_model_exception_ce, Z_STRVAL_P(error_msg)); + return FAILURE; + } return SUCCESS; } -static PHP_METHOD(Phalcon_Filter_Sanitize_Special, __invoke) +static int phql_internal_parse_phql(zval **result, char *phql, unsigned int phql_length, zval **error_msg) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *input, input_sub, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&input_sub); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(input) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &input); - - - ZVAL_LONG(&_0, 515); - ZEPHIR_RETURN_CALL_FUNCTION("filter_var", NULL, 237, input, &_0); - zephir_check_call_status(); - RETURN_MM(); -} + zend_phalcon_globals *phalcon_globals_ptr = ZEPHIR_VGLOBAL; + phql_parser_status *parser_status = NULL; + int scanner_status, status = SUCCESS, error_length, cache_level; + phql_scanner_state *state; + phql_scanner_token token; + void* phql_parser; + char *error; + unsigned long phql_key = 0; + zval *temp_ast; + if (!phql) { + ZVAL_STRING(*error_msg, "PHQL statement cannot be NULL"); + return FAILURE; + } + cache_level = phalcon_globals_ptr->orm.cache_level; + if (cache_level >= 0) { + phql_key = zend_inline_hash_func(phql, phql_length + 1); + if (phalcon_globals_ptr->orm.parser_cache != NULL) { + if ((temp_ast = zend_hash_index_find(phalcon_globals_ptr->orm.parser_cache, phql_key)) != NULL) { + ZVAL_ZVAL(*result, temp_ast, 1, 0); + Z_TRY_ADDREF_P(*result); + return SUCCESS; + } + } + } + phql_parser = phql_Alloc(phql_wrapper_alloc); -#ifdef HAVE_CONFIG_H -#endif + parser_status = emalloc(sizeof(phql_parser_status)); + state = emalloc(sizeof(phql_scanner_state)); + parser_status->status = PHQL_PARSING_OK; + parser_status->scanner_state = state; + ZVAL_UNDEF(&parser_status->ret); + parser_status->syntax_error = NULL; + parser_status->token = &token; + parser_status->enable_literals = phalcon_globals_ptr->orm.enable_literals; + parser_status->phql = phql; + parser_status->phql_length = phql_length; + state->active_token = 0; + state->start = phql; + state->start_length = 0; + state->end = state->start; + token.value = NULL; + token.len = 0; -ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_SpecialFull) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, SpecialFull, phalcon, filter_sanitize_specialfull, phalcon_filter_sanitize_specialfull_method_entry, 0); + while (0 <= (scanner_status = phql_get_token(state, &token))) { - return SUCCESS; -} + /* Calculate the 'start' length */ + state->start_length = (phql + phql_length - state->start); -static PHP_METHOD(Phalcon_Filter_Sanitize_SpecialFull, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *input, input_sub, _0; - zval *this_ptr = getThis(); + state->active_token = token.opcode; - ZVAL_UNDEF(&input_sub); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(input) - ZEND_PARSE_PARAMETERS_END(); -#endif + /* Parse the token found */ + switch (token.opcode) { + case PHQL_T_IGNORE: + break; - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &input); - - - ZVAL_LONG(&_0, 522); - ZEPHIR_RETURN_CALL_FUNCTION("filter_var", NULL, 237, input, &_0); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_StringVal) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, StringVal, phalcon, filter_sanitize_stringval, phalcon_filter_sanitize_stringval_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Filter_Sanitize_StringVal, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *input, input_sub, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&input_sub); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(input) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &input); - - - ZVAL_LONG(&_0, 513); - ZEPHIR_RETURN_CALL_FUNCTION("filter_var", NULL, 237, input, &_0); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Striptags) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Striptags, phalcon, filter_sanitize_striptags, phalcon_filter_sanitize_striptags_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Filter_Sanitize_Striptags, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *input_param = NULL; - zval input; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&input); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(input) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &input_param); - if (UNEXPECTED(Z_TYPE_P(input_param) != IS_STRING && Z_TYPE_P(input_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'input' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(input_param) == IS_STRING)) { - zephir_get_strval(&input, input_param); - } else { - ZEPHIR_INIT_VAR(&input); - } - - - ZEPHIR_RETURN_CALL_FUNCTION("strip_tags", NULL, 241, &input); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif + case PHQL_T_ADD: + phql_(phql_parser, PHQL_PLUS, NULL, parser_status); + break; + case PHQL_T_SUB: + phql_(phql_parser, PHQL_MINUS, NULL, parser_status); + break; + case PHQL_T_MUL: + phql_(phql_parser, PHQL_TIMES, NULL, parser_status); + break; + case PHQL_T_DIV: + phql_(phql_parser, PHQL_DIVIDE, NULL, parser_status); + break; + case PHQL_T_MOD: + phql_(phql_parser, PHQL_MOD, NULL, parser_status); + break; + case PHQL_T_AND: + phql_(phql_parser, PHQL_AND, NULL, parser_status); + break; + case PHQL_T_OR: + phql_(phql_parser, PHQL_OR, NULL, parser_status); + break; + case PHQL_T_EQUALS: + phql_(phql_parser, PHQL_EQUALS, NULL, parser_status); + break; + case PHQL_T_NOTEQUALS: + phql_(phql_parser, PHQL_NOTEQUALS, NULL, parser_status); + break; + case PHQL_T_LESS: + phql_(phql_parser, PHQL_LESS, NULL, parser_status); + break; + case PHQL_T_GREATER: + phql_(phql_parser, PHQL_GREATER, NULL, parser_status); + break; + case PHQL_T_GREATEREQUAL: + phql_(phql_parser, PHQL_GREATEREQUAL, NULL, parser_status); + break; + case PHQL_T_LESSEQUAL: + phql_(phql_parser, PHQL_LESSEQUAL, NULL, parser_status); + break; + case PHQL_T_IDENTIFIER: + phql_parse_with_token(phql_parser, PHQL_T_IDENTIFIER, PHQL_IDENTIFIER, &token, parser_status); + break; + case PHQL_T_DOT: + phql_(phql_parser, PHQL_DOT, NULL, parser_status); + break; + case PHQL_T_COMMA: + phql_(phql_parser, PHQL_COMMA, NULL, parser_status); + break; + case PHQL_T_PARENTHESES_OPEN: + phql_(phql_parser, PHQL_PARENTHESES_OPEN, NULL, parser_status); + break; + case PHQL_T_PARENTHESES_CLOSE: + phql_(phql_parser, PHQL_PARENTHESES_CLOSE, NULL, parser_status); + break; + case PHQL_T_LIKE: + phql_(phql_parser, PHQL_LIKE, NULL, parser_status); + break; + case PHQL_T_ILIKE: + phql_(phql_parser, PHQL_ILIKE, NULL, parser_status); + break; + case PHQL_T_NOT: + phql_(phql_parser, PHQL_NOT, NULL, parser_status); + break; + case PHQL_T_BITWISE_AND: + phql_(phql_parser, PHQL_BITWISE_AND, NULL, parser_status); + break; + case PHQL_T_BITWISE_OR: + phql_(phql_parser, PHQL_BITWISE_OR, NULL, parser_status); + break; + case PHQL_T_BITWISE_NOT: + phql_(phql_parser, PHQL_BITWISE_NOT, NULL, parser_status); + break; + case PHQL_T_BITWISE_XOR: + phql_(phql_parser, PHQL_BITWISE_XOR, NULL, parser_status); + break; + case PHQL_T_AGAINST: + phql_(phql_parser, PHQL_AGAINST, NULL, parser_status); + break; + case PHQL_T_CASE: + phql_(phql_parser, PHQL_CASE, NULL, parser_status); + break; + case PHQL_T_WHEN: + phql_(phql_parser, PHQL_WHEN, NULL, parser_status); + break; + case PHQL_T_THEN: + phql_(phql_parser, PHQL_THEN, NULL, parser_status); + break; + case PHQL_T_END: + phql_(phql_parser, PHQL_END, NULL, parser_status); + break; + case PHQL_T_ELSE: + phql_(phql_parser, PHQL_ELSE, NULL, parser_status); + break; + case PHQL_T_FOR: + phql_(phql_parser, PHQL_FOR, NULL, parser_status); + break; + case PHQL_T_WITH: + phql_(phql_parser, PHQL_WITH, NULL, parser_status); + break; -ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Trim) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Trim, phalcon, filter_sanitize_trim, phalcon_filter_sanitize_trim_method_entry, 0); + case PHQL_T_INTEGER: + if (parser_status->enable_literals) { + phql_parse_with_token(phql_parser, PHQL_T_INTEGER, PHQL_INTEGER, &token, parser_status); + } else { + ZVAL_STRING(*error_msg, "Literals are disabled in PHQL statements"); + parser_status->status = PHQL_PARSING_FAILED; + } + break; + case PHQL_T_DOUBLE: + if (parser_status->enable_literals) { + phql_parse_with_token(phql_parser, PHQL_T_DOUBLE, PHQL_DOUBLE, &token, parser_status); + } else { + ZVAL_STRING(*error_msg, "Literals are disabled in PHQL statements"); + parser_status->status = PHQL_PARSING_FAILED; + } + break; + case PHQL_T_STRING: + if (parser_status->enable_literals) { + phql_parse_with_token(phql_parser, PHQL_T_STRING, PHQL_STRING, &token, parser_status); + } else { + ZVAL_STRING(*error_msg, "Literals are disabled in PHQL statements"); + parser_status->status = PHQL_PARSING_FAILED; + } + break; + case PHQL_T_TRUE: + if (parser_status->enable_literals) { + phql_(phql_parser, PHQL_TRUE, NULL, parser_status); + } else { + ZVAL_STRING(*error_msg, "Literals are disabled in PHQL statements"); + parser_status->status = PHQL_PARSING_FAILED; + } + break; + case PHQL_T_FALSE: + if (parser_status->enable_literals) { + phql_(phql_parser, PHQL_FALSE, NULL, parser_status); + } else { + ZVAL_STRING(*error_msg, "Literals are disabled in PHQL statements"); + parser_status->status = PHQL_PARSING_FAILED; + } + break; + case PHQL_T_HINTEGER: + if (parser_status->enable_literals) { + phql_parse_with_token(phql_parser, PHQL_T_HINTEGER, PHQL_HINTEGER, &token, parser_status); + } else { + ZVAL_STRING(*error_msg, "Literals are disabled in PHQL statements"); + parser_status->status = PHQL_PARSING_FAILED; + } + break; - return SUCCESS; -} + case PHQL_T_NPLACEHOLDER: + phql_parse_with_token(phql_parser, PHQL_T_NPLACEHOLDER, PHQL_NPLACEHOLDER, &token, parser_status); + break; + case PHQL_T_SPLACEHOLDER: + phql_parse_with_token(phql_parser, PHQL_T_SPLACEHOLDER, PHQL_SPLACEHOLDER, &token, parser_status); + break; + case PHQL_T_BPLACEHOLDER: + phql_parse_with_token(phql_parser, PHQL_T_BPLACEHOLDER, PHQL_BPLACEHOLDER, &token, parser_status); + break; -static PHP_METHOD(Phalcon_Filter_Sanitize_Trim, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *input_param = NULL; - zval input; - zval *this_ptr = getThis(); + case PHQL_T_FROM: + phql_(phql_parser, PHQL_FROM, NULL, parser_status); + break; + case PHQL_T_UPDATE: + phql_(phql_parser, PHQL_UPDATE, NULL, parser_status); + break; + case PHQL_T_SET: + phql_(phql_parser, PHQL_SET, NULL, parser_status); + break; + case PHQL_T_WHERE: + phql_(phql_parser, PHQL_WHERE, NULL, parser_status); + break; + case PHQL_T_DELETE: + phql_(phql_parser, PHQL_DELETE, NULL, parser_status); + break; + case PHQL_T_INSERT: + phql_(phql_parser, PHQL_INSERT, NULL, parser_status); + break; + case PHQL_T_INTO: + phql_(phql_parser, PHQL_INTO, NULL, parser_status); + break; + case PHQL_T_VALUES: + phql_(phql_parser, PHQL_VALUES, NULL, parser_status); + break; + case PHQL_T_SELECT: + phql_(phql_parser, PHQL_SELECT, NULL, parser_status); + break; + case PHQL_T_AS: + phql_(phql_parser, PHQL_AS, NULL, parser_status); + break; + case PHQL_T_ORDER: + phql_(phql_parser, PHQL_ORDER, NULL, parser_status); + break; + case PHQL_T_BY: + phql_(phql_parser, PHQL_BY, NULL, parser_status); + break; + case PHQL_T_LIMIT: + phql_(phql_parser, PHQL_LIMIT, NULL, parser_status); + break; + case PHQL_T_OFFSET: + phql_(phql_parser, PHQL_OFFSET, NULL, parser_status); + break; + case PHQL_T_GROUP: + phql_(phql_parser, PHQL_GROUP, NULL, parser_status); + break; + case PHQL_T_HAVING: + phql_(phql_parser, PHQL_HAVING, NULL, parser_status); + break; + case PHQL_T_ASC: + phql_(phql_parser, PHQL_ASC, NULL, parser_status); + break; + case PHQL_T_DESC: + phql_(phql_parser, PHQL_DESC, NULL, parser_status); + break; + case PHQL_T_IN: + phql_(phql_parser, PHQL_IN, NULL, parser_status); + break; + case PHQL_T_ON: + phql_(phql_parser, PHQL_ON, NULL, parser_status); + break; + case PHQL_T_INNER: + phql_(phql_parser, PHQL_INNER, NULL, parser_status); + break; + case PHQL_T_JOIN: + phql_(phql_parser, PHQL_JOIN, NULL, parser_status); + break; + case PHQL_T_LEFT: + phql_(phql_parser, PHQL_LEFT, NULL, parser_status); + break; + case PHQL_T_RIGHT: + phql_(phql_parser, PHQL_RIGHT, NULL, parser_status); + break; + case PHQL_T_CROSS: + phql_(phql_parser, PHQL_CROSS, NULL, parser_status); + break; + case PHQL_T_FULL: + phql_(phql_parser, PHQL_FULL, NULL, parser_status); + break; + case PHQL_T_OUTER: + phql_(phql_parser, PHQL_OUTER, NULL, parser_status); + break; + case PHQL_T_IS: + phql_(phql_parser, PHQL_IS, NULL, parser_status); + break; + case PHQL_T_NULL: + phql_(phql_parser, PHQL_NULL, NULL, parser_status); + break; + case PHQL_T_BETWEEN: + phql_(phql_parser, PHQL_BETWEEN, NULL, parser_status); + break; + case PHQL_T_BETWEEN_NOT: + phql_(phql_parser, PHQL_BETWEEN_NOT, NULL, parser_status); + break; + case PHQL_T_DISTINCT: + phql_(phql_parser, PHQL_DISTINCT, NULL, parser_status); + break; + case PHQL_T_ALL: + phql_(phql_parser, PHQL_ALL, NULL, parser_status); + break; + case PHQL_T_CAST: + phql_(phql_parser, PHQL_CAST, NULL, parser_status); + break; + case PHQL_T_CONVERT: + phql_(phql_parser, PHQL_CONVERT, NULL, parser_status); + break; + case PHQL_T_USING: + phql_(phql_parser, PHQL_USING, NULL, parser_status); + break; + case PHQL_T_EXISTS: + phql_(phql_parser, PHQL_EXISTS, NULL, parser_status); + break; - ZVAL_UNDEF(&input); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(input) - ZEND_PARSE_PARAMETERS_END(); -#endif + default: + parser_status->status = PHQL_PARSING_FAILED; + error_length = sizeof(char) * 32; + error = emalloc(error_length); + snprintf(error, error_length, "Scanner: Unknown opcode %d", token.opcode); + error[error_length - 1] = '\0'; + ZVAL_STRING(*error_msg, error); + efree(error); + break; + } + if (parser_status->status != PHQL_PARSING_OK) { + status = FAILURE; + break; + } - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &input_param); - if (UNEXPECTED(Z_TYPE_P(input_param) != IS_STRING && Z_TYPE_P(input_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'input' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(input_param) == IS_STRING)) { - zephir_get_strval(&input, input_param); - } else { - ZEPHIR_INIT_VAR(&input); + state->end = state->start; } + if (status != FAILURE) { + switch (scanner_status) { - zephir_fast_trim(return_value, &input, NULL , ZEPHIR_TRIM_BOTH); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Upper) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Upper, phalcon, filter_sanitize_upper, phalcon_filter_sanitize_upper_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Filter_Sanitize_Upper, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *input_param = NULL, _0$$3, _1$$3, _2; - zval input; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&input); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(input) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &input_param); - if (UNEXPECTED(Z_TYPE_P(input_param) != IS_STRING && Z_TYPE_P(input_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'input' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(input_param) == IS_STRING)) { - zephir_get_strval(&input, input_param); - } else { - ZEPHIR_INIT_VAR(&input); - } + case PHQL_SCANNER_RETCODE_ERR: + case PHQL_SCANNER_RETCODE_IMPOSSIBLE: + if (Z_TYPE_P(*error_msg) == IS_UNDEF) { + phql_scanner_error_msg(parser_status, error_msg); + } + status = FAILURE; + break; - if (1 == (zephir_function_exists_ex(ZEND_STRL("mb_convert_case")) == SUCCESS)) { - ZVAL_LONG(&_0$$3, 0); - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "UTF-8"); - ZEPHIR_RETURN_CALL_FUNCTION("mb_convert_case", NULL, 239, &input, &_0$$3, &_1$$3); - zephir_check_call_status(); - RETURN_MM(); + default: + phql_(phql_parser, 0, NULL, parser_status); + } } - ZEPHIR_CALL_FUNCTION(&_2, "utf8_decode", NULL, 240, &input); - zephir_check_call_status(); - zephir_fast_strtoupper(return_value, &_2); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_UpperFirst) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, UpperFirst, phalcon, filter_sanitize_upperfirst, phalcon_filter_sanitize_upperfirst_method_entry, 0); - - return SUCCESS; -} -static PHP_METHOD(Phalcon_Filter_Sanitize_UpperFirst, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *input_param = NULL; - zval input; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&input); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(input) - ZEND_PARSE_PARAMETERS_END(); -#endif + state->active_token = 0; + state->start = NULL; + if (parser_status->status != PHQL_PARSING_OK) { + status = FAILURE; + if (parser_status->syntax_error) { + if (Z_TYPE_P(*error_msg) == IS_UNDEF) { + ZVAL_STRING(*error_msg, parser_status->syntax_error); + } - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &input_param); - if (UNEXPECTED(Z_TYPE_P(input_param) != IS_STRING && Z_TYPE_P(input_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'input' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(input_param) == IS_STRING)) { - zephir_get_strval(&input, input_param); - } else { - ZEPHIR_INIT_VAR(&input); + efree(parser_status->syntax_error); + } } + phql_Free(phql_parser, phql_wrapper_free); - zephir_ucfirst(return_value, &input); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_UpperWords) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, UpperWords, phalcon, filter_sanitize_upperwords, phalcon_filter_sanitize_upperwords_method_entry, 0); + if (status != FAILURE) { + if (parser_status->status == PHQL_PARSING_OK) { + if (Z_TYPE_P(&parser_status->ret) == IS_ARRAY) { - return SUCCESS; -} + if (phalcon_globals_ptr->orm.cache_level >= 1) { + if (Z_TYPE_P(&parser_status->ret) == IS_ARRAY) { + add_assoc_long(&parser_status->ret, "id", phalcon_globals_ptr->orm.unique_cache_id++); + } + } -static PHP_METHOD(Phalcon_Filter_Sanitize_UpperWords, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *input_param = NULL, _0$$3, _1$$3, _2; - zval input; - zval *this_ptr = getThis(); + ZVAL_ZVAL(*result, &parser_status->ret, 1, 1); - ZVAL_UNDEF(&input); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(input) - ZEND_PARSE_PARAMETERS_END(); -#endif + if (cache_level >= 0) { + if (!phalcon_globals_ptr->orm.parser_cache) { + ALLOC_HASHTABLE(phalcon_globals_ptr->orm.parser_cache); + zend_hash_init(phalcon_globals_ptr->orm.parser_cache, 0, NULL, ZVAL_PTR_DTOR, 0); + } - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &input_param); - if (UNEXPECTED(Z_TYPE_P(input_param) != IS_STRING && Z_TYPE_P(input_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'input' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(input_param) == IS_STRING)) { - zephir_get_strval(&input, input_param); - } else { - ZEPHIR_INIT_VAR(&input); - } + Z_TRY_ADDREF_P(*result); + zend_hash_index_update( + phalcon_globals_ptr->orm.parser_cache, + phql_key, + *result + ); + } - if (1 == (zephir_function_exists_ex(ZEND_STRL("mb_convert_case")) == SUCCESS)) { - ZVAL_LONG(&_0$$3, 2); - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "UTF-8"); - ZEPHIR_RETURN_CALL_FUNCTION("mb_convert_case", NULL, 239, &input, &_0$$3, &_1$$3); - zephir_check_call_status(); - RETURN_MM(); + } + } } - ZEPHIR_CALL_FUNCTION(&_2, "utf8_decode", NULL, 240, &input); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_FUNCTION("ucwords", NULL, 242, &_2); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Url) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Url, phalcon, filter_sanitize_url, phalcon_filter_sanitize_url_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Filter_Sanitize_Url, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *input, input_sub, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&input_sub); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(input) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &input); + efree(parser_status); + efree(state); - ZVAL_LONG(&_0, 518); - ZEPHIR_RETURN_CALL_FUNCTION("filter_var", NULL, 237, input, &_0); - zephir_check_call_status(); - RETURN_MM(); + return status; } - +/* Generated by re2c 1.1.1 */ +/* scanner.re + * This file is part of the Phalcon Framework. + * + * (c) Phalcon Team + * + * For the full copyright and license information, please view the + * LICENSE.txt file that was distributed with this source code. + */ #ifdef HAVE_CONFIG_H #endif +#define PPCTYPE unsigned char +#define PPCURSOR (s->start) +#define PPLIMIT (s->end) +#define PPMARKER q +static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { -ZEPHIR_INIT_CLASS(Phalcon_Flash_AbstractFlash) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Flash, AbstractFlash, phalcon, flash_abstractflash, phalcon_di_abstractinjectionaware_ce, phalcon_flash_abstractflash_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_bool(phalcon_flash_abstractflash_ce, SL("autoescape"), 1, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_flash_abstractflash_ce, SL("automaticHtml"), 1, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_flash_abstractflash_ce, SL("cssClasses"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_flash_abstractflash_ce, SL("cssIconClasses"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_flash_abstractflash_ce, SL("customTemplate"), "", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_flash_abstractflash_ce, SL("escaperService"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_flash_abstractflash_ce, SL("implicitFlush"), 1, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_flash_abstractflash_ce, SL("interpolator"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_flash_abstractflash_ce, SL("messages"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_flash_abstractflash_ce, SL("sessionService"), ZEND_ACC_PROTECTED); - phalcon_flash_abstractflash_ce->create_object = zephir_init_properties_Phalcon_Flash_AbstractFlash; - - zend_class_implements(phalcon_flash_abstractflash_ce, 1, phalcon_flash_flashinterface_ce); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, getAutoescape) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "autoescape"); -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, getCssClasses) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "cssClasses"); -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, getCssIconClasses) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "cssIconClasses"); -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, getCustomTemplate) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "customTemplate"); -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, __construct) -{ - zval _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *escaper = NULL, escaper_sub, *session = NULL, session_sub, __$null, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&escaper_sub); - ZVAL_UNDEF(&session_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(escaper, phalcon_escaper_escaperinterface_ce) - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(session, phalcon_session_managerinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &escaper, &session); - if (!escaper) { - escaper = &escaper_sub; - escaper = &__$null; - } - if (!session) { - session = &session_sub; - session = &__$null; - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("escaperService"), escaper); - zephir_update_property_zval(this_ptr, ZEND_STRL("sessionService"), session); - ZEPHIR_INIT_VAR(&_0); - object_init_ex(&_0, phalcon_support_helper_str_interpolate_ce); - if (zephir_has_constructor(&_0)) { - ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 0); - zephir_check_call_status(); - } - - zephir_update_property_zval(this_ptr, ZEND_STRL("interpolator"), &_0); - ZEPHIR_INIT_VAR(&_1); - zephir_create_array(&_1, 4, 0); - add_assoc_stringl_ex(&_1, SL("error"), SL("errorMessage")); - add_assoc_stringl_ex(&_1, SL("notice"), SL("noticeMessage")); - add_assoc_stringl_ex(&_1, SL("success"), SL("successMessage")); - add_assoc_stringl_ex(&_1, SL("warning"), SL("warningMessage")); - zephir_update_property_zval(this_ptr, ZEND_STRL("cssClasses"), &_1); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, clear) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&_0); - array_init(&_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("messages"), &_0); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, error) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *message_param = NULL, _0; - zval message; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(message) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &message_param); - zephir_get_strval(&message, message_param); - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "error"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "message", NULL, 0, &_0, &message); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, getEscaperService) -{ - zval container, _0, _1, _6, _7, _2$$4, _3$$4, _5$$4, _8$$5, _9$$5, _10$$6, _11$$6, _12$$6; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_4 = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_10$$6); - ZVAL_UNDEF(&_11$$6); - ZVAL_UNDEF(&_12$$6); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("escaperService"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_0)) { - RETURN_MM_MEMBER(getThis(), "escaperService"); - } - zephir_read_property(&_1, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_1); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_2$$4); - object_init_ex(&_2$$4, phalcon_flash_exception_ce); - ZEPHIR_INIT_VAR(&_5$$4); - ZVAL_STRING(&_5$$4, "the 'escaper' service"); - ZEPHIR_CALL_CE_STATIC(&_3$$4, phalcon_flash_exception_ce, "containerservicenotfound", &_4, 0, &_5$$4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_2$$4, "__construct", NULL, 8, &_3$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_2$$4, "phalcon/Flash/AbstractFlash.zep", 135); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_VAR(&_7); - ZVAL_STRING(&_7, "escaper"); - ZEPHIR_CALL_METHOD(&_6, &container, "has", NULL, 0, &_7); - zephir_check_call_status(); - if (UNEXPECTED(zephir_is_true(&_6))) { - ZEPHIR_INIT_VAR(&_9$$5); - ZVAL_STRING(&_9$$5, "escaper"); - ZEPHIR_CALL_METHOD(&_8$$5, &container, "getshared", NULL, 0, &_9$$5); - zephir_check_call_status(); - RETURN_CCTOR(&_8$$5); - } else { - ZEPHIR_INIT_VAR(&_10$$6); - object_init_ex(&_10$$6, phalcon_flash_exception_ce); - ZEPHIR_INIT_VAR(&_12$$6); - ZVAL_STRING(&_12$$6, "the 'escaper' service"); - ZEPHIR_CALL_CE_STATIC(&_11$$6, phalcon_flash_exception_ce, "containerservicenotfound", &_4, 0, &_12$$6); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_10$$6, "__construct", NULL, 8, &_11$$6); - zephir_check_call_status(); - zephir_throw_exception_debug(&_10$$6, "phalcon/Flash/AbstractFlash.zep", 143); - ZEPHIR_MM_RESTORE(); - return; - } -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, notice) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *message_param = NULL, _0; - zval message; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(message) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &message_param); - zephir_get_strval(&message, message_param); - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "notice"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "message", NULL, 0, &_0, &message); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, setAutoescape) -{ - zval *autoescape_param = NULL, __$true, __$false; - zend_bool autoescape; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(autoescape) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &autoescape_param); - autoescape = zephir_get_boolval(autoescape_param); - - - if (autoescape) { - zephir_update_property_zval(this_ptr, ZEND_STRL("autoescape"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("autoescape"), &__$false); - } - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, setAutomaticHtml) -{ - zval *automaticHtml_param = NULL, __$true, __$false; - zend_bool automaticHtml; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(automaticHtml) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &automaticHtml_param); - automaticHtml = zephir_get_boolval(automaticHtml_param); - - - if (automaticHtml) { - zephir_update_property_zval(this_ptr, ZEND_STRL("automaticHtml"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("automaticHtml"), &__$false); - } - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, setCssClasses) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *cssClasses_param = NULL; - zval cssClasses; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&cssClasses); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(cssClasses) - ZEND_PARSE_PARAMETERS_END(); -#endif - + char *q = PPCURSOR; + int status = PHQL_SCANNER_RETCODE_IMPOSSIBLE; - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &cssClasses_param); - ZEPHIR_OBS_COPY_OR_DUP(&cssClasses, cssClasses_param); + + while (PHQL_SCANNER_RETCODE_IMPOSSIBLE == status) { - - zephir_update_property_zval(this_ptr, ZEND_STRL("cssClasses"), &cssClasses); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, setCssIconClasses) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *cssIconClasses_param = NULL; - zval cssIconClasses; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&cssIconClasses); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(cssIconClasses) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &cssIconClasses_param); - ZEPHIR_OBS_COPY_OR_DUP(&cssIconClasses, cssIconClasses_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("cssIconClasses"), &cssIconClasses); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, setCustomTemplate) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *customTemplate_param = NULL; - zval customTemplate; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&customTemplate); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(customTemplate) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &customTemplate_param); - if (UNEXPECTED(Z_TYPE_P(customTemplate_param) != IS_STRING && Z_TYPE_P(customTemplate_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'customTemplate' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(customTemplate_param) == IS_STRING)) { - zephir_get_strval(&customTemplate, customTemplate_param); - } else { - ZEPHIR_INIT_VAR(&customTemplate); - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("customTemplate"), &customTemplate); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, setEscaperService) -{ - zval *escaperService, escaperService_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&escaperService_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(escaperService, phalcon_escaper_escaperinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &escaperService); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("escaperService"), escaperService); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, setImplicitFlush) -{ - zval *implicitFlush_param = NULL, __$true, __$false; - zend_bool implicitFlush; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(implicitFlush) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &implicitFlush_param); - implicitFlush = zephir_get_boolval(implicitFlush_param); - - - if (implicitFlush) { - zephir_update_property_zval(this_ptr, ZEND_STRL("implicitFlush"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("implicitFlush"), &__$false); - } - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, success) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *message_param = NULL, _0; - zval message; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(message) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &message_param); - zephir_get_strval(&message, message_param); - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "success"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "message", NULL, 0, &_0, &message); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, outputMessage) -{ - zend_bool implicitFlush = 0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL, *_4 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *type_param = NULL, *message, message_sub, content, msg, htmlMessage, preparedMsg, _0, *_1$$3, _2$$3; - zval type; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&message_sub); - ZVAL_UNDEF(&content); - ZVAL_UNDEF(&msg); - ZVAL_UNDEF(&htmlMessage); - ZVAL_UNDEF(&preparedMsg); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(type) - Z_PARAM_ZVAL(message) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &type_param, &message); - zephir_get_strval(&type, type_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("implicitFlush"), PH_NOISY_CC | PH_READONLY); - implicitFlush = zephir_is_true(&_0); - if (Z_TYPE_P(message) == IS_ARRAY) { - if (!(implicitFlush)) { - ZEPHIR_INIT_VAR(&content); - ZVAL_STRING(&content, ""); + + { + PPCTYPE ppch; + unsigned int ppaccept = 0; + ppch = *PPCURSOR; + switch (ppch) { + case 0x00: goto pp2; + case '\t': + case '\n': + case '\r': + case ' ': goto pp6; + case '!': goto pp9; + case '"': goto pp11; + case '%': goto pp12; + case '&': goto pp14; + case '\'': goto pp16; + case '(': goto pp17; + case ')': goto pp19; + case '*': goto pp21; + case '+': goto pp23; + case ',': goto pp25; + case '-': goto pp27; + case '.': goto pp29; + case '/': goto pp31; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto pp33; + case ':': goto pp36; + case '<': goto pp38; + case '=': goto pp40; + case '>': goto pp42; + case '?': goto pp44; + case '@': goto pp45; + case 'A': + case 'a': goto pp46; + case 'B': + case 'b': goto pp48; + case 'C': + case 'c': goto pp49; + case 'D': + case 'd': goto pp50; + case 'E': + case 'e': goto pp51; + case 'F': + case 'f': goto pp52; + case 'G': + case 'g': goto pp53; + case 'H': + case 'h': goto pp55; + case 'I': + case 'i': goto pp56; + case 'J': + case 'j': goto pp57; + case 'K': + case 'M': + case 'P': + case 'Q': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'k': + case 'm': + case 'p': + case 'q': + case 'y': + case 'z': goto pp58; + case 'L': + case 'l': goto pp60; + case 'N': + case 'n': goto pp61; + case 'O': + case 'o': goto pp62; + case 'R': + case 'r': goto pp63; + case 'S': + case 's': goto pp64; + case 'T': + case 't': goto pp65; + case 'U': + case 'u': goto pp66; + case 'V': + case 'v': goto pp67; + case 'W': + case 'w': goto pp68; + case '[': goto pp69; + case '\\': goto pp70; + case '^': goto pp71; + case 'x': goto pp73; + case '{': goto pp75; + case '|': goto pp76; + case '~': goto pp78; + default: goto pp4; + } +pp2: + ++PPCURSOR; + { + status = PHQL_SCANNER_RETCODE_EOF; + break; } - zephir_is_iterable(message, 0, "phalcon/Flash/AbstractFlash.zep", 297); - if (Z_TYPE_P(message) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(message), _1$$3) +pp4: + ++PPCURSOR; +pp5: { - ZEPHIR_INIT_NVAR(&msg); - ZVAL_COPY(&msg, _1$$3); - ZEPHIR_CALL_METHOD(&preparedMsg, this_ptr, "prepareescapedmessage", &_3, 103, &msg); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&htmlMessage, this_ptr, "preparehtmlmessage", &_4, 104, &type, &preparedMsg); - zephir_check_call_status(); - if (implicitFlush) { - zend_print_zval(&htmlMessage, 0); - } else { - zephir_concat_self(&content, &htmlMessage); - zephir_update_property_array_append(this_ptr, SL("messages"), &htmlMessage); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, message, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2$$3, message, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&msg, message, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&preparedMsg, this_ptr, "prepareescapedmessage", &_3, 103, &msg); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&htmlMessage, this_ptr, "preparehtmlmessage", &_4, 104, &type, &preparedMsg); - zephir_check_call_status(); - if (implicitFlush) { - zend_print_zval(&htmlMessage, 0); - } else { - zephir_concat_self(&content, &htmlMessage); - zephir_update_property_array_append(this_ptr, SL("messages"), &htmlMessage); - } - ZEPHIR_CALL_METHOD(NULL, message, "next", NULL, 0); - zephir_check_call_status(); + status = PHQL_SCANNER_RETCODE_ERR; + break; + } +pp6: + ppch = *++PPCURSOR; + switch (ppch) { + case '\t': + case '\n': + case '\r': + case ' ': goto pp6; + default: goto pp8; } +pp8: + { + token->opcode = PHQL_T_IGNORE; + return 0; } - ZEPHIR_INIT_NVAR(&msg); - if (!(implicitFlush)) { - RETURN_CCTOR(&content); +pp9: + ppch = *++PPCURSOR; + switch (ppch) { + case '!': goto pp80; + case '=': goto pp82; + default: goto pp10; + } +pp10: + { + token->opcode = PHQL_T_NOT; + return 0; } - } else { - ZEPHIR_CALL_METHOD(&preparedMsg, this_ptr, "prepareescapedmessage", &_3, 103, message); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&htmlMessage, this_ptr, "preparehtmlmessage", &_4, 104, &type, &preparedMsg); - zephir_check_call_status(); - if (implicitFlush) { - zend_print_zval(&htmlMessage, 0); - } else { - zephir_update_property_array_append(this_ptr, SL("messages"), &htmlMessage); - RETURN_CCTOR(&htmlMessage); +pp11: + ppaccept = 0; + ppch = *(PPMARKER = ++PPCURSOR); + if (ppch <= 0x00) goto pp5; + goto pp85; +pp12: + ++PPCURSOR; + { + token->opcode = PHQL_T_MOD; + return 0; } - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, warning) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *message_param = NULL, _0; - zval message; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(message) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &message_param); - zephir_get_strval(&message, message_param); - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "warning"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "message", NULL, 0, &_0, &message); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, getTemplate) -{ - zval _5; - zend_bool _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *cssClassses_param = NULL, *cssIconClasses_param = NULL, _0, _1, _2, _4; - zval cssClassses, cssIconClasses, divString, iconString, template; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&cssClassses); - ZVAL_UNDEF(&cssIconClasses); - ZVAL_UNDEF(&divString); - ZVAL_UNDEF(&iconString); - ZVAL_UNDEF(&template); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(cssClassses) - Z_PARAM_STR(cssIconClasses) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &cssClassses_param, &cssIconClasses_param); - zephir_get_strval(&cssClassses, cssClassses_param); - zephir_get_strval(&cssIconClasses, cssIconClasses_param); - - - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_GET_CONSTANT(&_0, "PHP_EOL"); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_CONCAT_SV(&_1, "%iconString%%message%", &_0); - zephir_get_strval(&template, &_1); - ZEPHIR_INIT_VAR(&divString); - ZEPHIR_INIT_VAR(&iconString); - zephir_read_property(&_2, this_ptr, ZEND_STRL("customTemplate"), PH_NOISY_CC | PH_READONLY); - if (!(ZEPHIR_IS_EMPTY(&_2))) { - RETURN_MM_MEMBER(getThis(), "customTemplate"); - } - _3 = !(ZEPHIR_IS_EMPTY(&cssClassses)); - if (!(_3)) { - _3 = !(ZEPHIR_IS_EMPTY(&cssIconClasses)); - } - if (_3) { - ZEPHIR_INIT_NVAR(&divString); - ZVAL_STRING(&divString, " class=\"%cssClass%\""); - if (!(ZEPHIR_IS_EMPTY(&cssIconClasses))) { - ZEPHIR_INIT_NVAR(&iconString); - ZVAL_STRING(&iconString, " "); +pp14: + ppch = *++PPCURSOR; + switch (ppch) { + case '&': goto pp90; + default: goto pp15; + } +pp15: + { + token->opcode = PHQL_T_BITWISE_AND; + return 0; } - } - zephir_read_property(&_4, this_ptr, ZEND_STRL("interpolator"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_5); - zephir_create_array(&_5, 2, 0); - zephir_array_update_string(&_5, SL("divString"), &divString, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_5, SL("iconString"), &iconString, PH_COPY | PH_SEPARATE); - ZEPHIR_RETURN_CALL_METHOD(&_4, "__invoke", NULL, 0, &template, &_5); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, prepareEscapedMessage) -{ - zend_bool autoEscape = 0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *message_param = NULL, escaper, _0; - zval message; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&escaper); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(message) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &message_param); - zephir_get_strval(&message, message_param); - - - ZEPHIR_OBS_VAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("autoescape"), PH_NOISY_CC); - autoEscape = zephir_get_boolval(&_0); - if (!(autoEscape)) { - RETURN_CTOR(&message); - } - ZEPHIR_CALL_METHOD(&escaper, this_ptr, "getescaperservice", NULL, 0); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&escaper, "escapehtml", NULL, 0, &message); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Flash_AbstractFlash, prepareHtmlMessage) -{ - zval _2; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *type_param = NULL, *message_param = NULL, classes, cssClasses, cssIconClasses, typeClasses, typeIconClasses, automaticHtml, _0, _1; - zval type, message; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&classes); - ZVAL_UNDEF(&cssClasses); - ZVAL_UNDEF(&cssIconClasses); - ZVAL_UNDEF(&typeClasses); - ZVAL_UNDEF(&typeIconClasses); - ZVAL_UNDEF(&automaticHtml); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(type) - Z_PARAM_STR(message) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &type_param, &message_param); - zephir_get_strval(&type, type_param); - zephir_get_strval(&message, message_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("automaticHtml"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&automaticHtml, &_0); - if (!ZEPHIR_IS_TRUE_IDENTICAL(&automaticHtml)) { - RETURN_CTOR(&message); - } - ZEPHIR_OBS_VAR(&classes); - zephir_read_property(&classes, this_ptr, ZEND_STRL("cssClasses"), PH_NOISY_CC); - zephir_read_property(&_0, this_ptr, ZEND_STRL("cssIconClasses"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&cssIconClasses, &_0); - ZEPHIR_OBS_VAR(&typeClasses); - if (zephir_array_isset_fetch(&typeClasses, &classes, &type, 0)) { - if (Z_TYPE_P(&typeClasses) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&cssClasses); - zephir_fast_join_str(&cssClasses, SL(" "), &typeClasses); - } else { - ZEPHIR_CPY_WRT(&cssClasses, &typeClasses); +pp16: + ppaccept = 0; + ppch = *(PPMARKER = ++PPCURSOR); + if (ppch <= 0x00) goto pp5; + goto pp93; +pp17: + ++PPCURSOR; + { + token->opcode = PHQL_T_PARENTHESES_OPEN; + return 0; } - } else { - ZEPHIR_INIT_NVAR(&cssClasses); - ZVAL_STRING(&cssClasses, ""); - } - ZEPHIR_OBS_VAR(&typeIconClasses); - if (zephir_array_isset_fetch(&typeIconClasses, &cssIconClasses, &type, 0)) { - if (Z_TYPE_P(&typeIconClasses) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&cssIconClasses); - zephir_fast_join_str(&cssIconClasses, SL(" "), &typeIconClasses); - } else { - ZEPHIR_CPY_WRT(&cssIconClasses, &typeIconClasses); +pp19: + ++PPCURSOR; + { + token->opcode = PHQL_T_PARENTHESES_CLOSE; + return 0; } - } else { - ZEPHIR_INIT_NVAR(&cssIconClasses); - ZVAL_STRING(&cssIconClasses, ""); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("interpolator"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "gettemplate", NULL, 105, &cssClasses, &cssIconClasses); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - zephir_create_array(&_2, 3, 0); - zephir_array_update_string(&_2, SL("cssClass"), &cssClasses, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_2, SL("iconCssClass"), &cssIconClasses, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_2, SL("message"), &message, PH_COPY | PH_SEPARATE); - ZEPHIR_RETURN_CALL_METHOD(&_0, "__invoke", NULL, 0, &_1, &_2); - zephir_check_call_status(); - RETURN_MM(); -} - -zend_object *zephir_init_properties_Phalcon_Flash_AbstractFlash(zend_class_entry *class_type) -{ - zval _0, _2, _4, _1$$3, _3$$4, _5$$5; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("messages"), &_1$$3); +pp21: + ++PPCURSOR; + { + token->opcode = PHQL_T_MUL; + return 0; } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("cssIconClasses"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("cssIconClasses"), &_3$$4); +pp23: + ++PPCURSOR; + { + token->opcode = PHQL_T_ADD; + return 0; } - zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("cssClasses"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_4) == IS_NULL) { - ZEPHIR_INIT_VAR(&_5$$5); - array_init(&_5$$5); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("cssClasses"), &_5$$5); +pp25: + ++PPCURSOR; + { + token->opcode = PHQL_T_COMMA; + return 0; } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Flash_Direct) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Flash, Direct, phalcon, flash_direct, phalcon_flash_abstractflash_ce, phalcon_flash_direct_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Flash_Direct, message) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *type_param = NULL, *message, message_sub; - zval type; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&message_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(type) - Z_PARAM_ZVAL(message) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &type_param, &message); - zephir_get_strval(&type, type_param); - - - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "outputmessage", NULL, 0, &type, message); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Flash_Direct, output) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *remove_param = NULL, message, _0, *_1, _2; - zend_bool remove; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(remove) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &remove_param); - if (!remove_param) { - remove = 1; - } else { - remove = zephir_get_boolval(remove_param); - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); - zephir_is_iterable(&_0, 0, "phalcon/Flash/Direct.zep", 40); - if (Z_TYPE_P(&_0) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _1) - { - ZEPHIR_INIT_NVAR(&message); - ZVAL_COPY(&message, _1); - zend_print_zval(&message, 0); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &_0, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; +pp27: + ++PPCURSOR; + { + token->opcode = PHQL_T_SUB; + return 0; + } +pp29: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto pp95; + default: goto pp30; } - ZEPHIR_CALL_METHOD(&message, &_0, "current", NULL, 0); - zephir_check_call_status(); - zend_print_zval(&message, 0); - ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); - zephir_check_call_status(); +pp30: + { + token->opcode = PHQL_T_DOT; + return 0; } - } - ZEPHIR_INIT_NVAR(&message); - if (remove) { - ZEPHIR_CALL_PARENT(NULL, phalcon_flash_direct_ce, getThis(), "clear", &_3, 0); - zephir_check_call_status(); - } - ZEPHIR_MM_RESTORE(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Flash_Exception) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Flash, Exception, phalcon, flash_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Flash_FlashInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Flash, FlashInterface, phalcon, flash_flashinterface, phalcon_flash_flashinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Flash_FlashInterface, error); -ZEPHIR_DOC_METHOD(Phalcon_Flash_FlashInterface, message); -ZEPHIR_DOC_METHOD(Phalcon_Flash_FlashInterface, notice); -ZEPHIR_DOC_METHOD(Phalcon_Flash_FlashInterface, success); -ZEPHIR_DOC_METHOD(Phalcon_Flash_FlashInterface, warning); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Flash_Session) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Flash, Session, phalcon, flash_session, phalcon_flash_abstractflash_ce, phalcon_flash_session_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Flash_Session, clear) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_1 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - ZVAL_BOOL(&_0, 1); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "getsessionmessages", NULL, 0, &_0); - zephir_check_call_status(); - ZEPHIR_CALL_PARENT(NULL, phalcon_flash_session_ce, getThis(), "clear", &_1, 0); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Flash_Session, getMessages) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool remove; - zval *type = NULL, type_sub, *remove_param = NULL, __$null, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&type_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(type) - Z_PARAM_BOOL(remove) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &type, &remove_param); - if (!type) { - type = &type_sub; - type = &__$null; - } - if (!remove_param) { - remove = 1; - } else { - remove = zephir_get_boolval(remove_param); - } - - - if (remove) { - ZVAL_BOOL(&_0, 1); - } else { - ZVAL_BOOL(&_0, 0); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsessionmessages", NULL, 0, &_0, type); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Flash_Session, has) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *type = NULL, type_sub, __$null, messages, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&type_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&messages); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(type) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &type); - if (!type) { - type = &type_sub; - type = &__$null; - } - - - ZVAL_BOOL(&_0, 0); - ZEPHIR_CALL_METHOD(&messages, this_ptr, "getsessionmessages", NULL, 0, &_0); - zephir_check_call_status(); - if (Z_TYPE_P(type) == IS_STRING) { - RETURN_MM_BOOL(zephir_array_isset(&messages, type)); - } - RETURN_MM_BOOL(zephir_fast_count_int(&messages) > 0); -} - -static PHP_METHOD(Phalcon_Flash_Session, message) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval message; - zval *type, type_sub, *message_param = NULL, messages, _0, _1$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&type_sub); - ZVAL_UNDEF(&messages); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&message); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(type) - Z_PARAM_STR(message) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &type, &message_param); - zephir_get_strval(&message, message_param); - - - ZVAL_BOOL(&_0, 0); - ZEPHIR_CALL_METHOD(&messages, this_ptr, "getsessionmessages", NULL, 0, &_0); - zephir_check_call_status(); - if (!(zephir_array_isset(&messages, type))) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_array_update_zval(&messages, type, &_1$$3, PH_COPY | PH_SEPARATE); - } - zephir_array_update_multi(&messages, &message, SL("za"), 2, type); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setsessionmessages", NULL, 0, &messages); - zephir_check_call_status(); - RETURN_MM_NULL(); -} - -static PHP_METHOD(Phalcon_Flash_Session, output) -{ - zend_string *_4; - zend_ulong _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL, *_6 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *remove_param = NULL, type, message, messages, _0, *_1, _2; - zend_bool remove; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&messages); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(remove) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &remove_param); - if (!remove_param) { - remove = 1; - } else { - remove = zephir_get_boolval(remove_param); - } - - - if (remove) { - ZVAL_BOOL(&_0, 1); - } else { - ZVAL_BOOL(&_0, 0); - } - ZEPHIR_CALL_METHOD(&messages, this_ptr, "getsessionmessages", NULL, 0, &_0); - zephir_check_call_status(); - zephir_is_iterable(&messages, 0, "phalcon/Flash/Session.zep", 100); - if (Z_TYPE_P(&messages) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&messages), _3, _4, _1) - { - ZEPHIR_INIT_NVAR(&type); - if (_4 != NULL) { - ZVAL_STR_COPY(&type, _4); - } else { - ZVAL_LONG(&type, _3); +pp31: + ++PPCURSOR; + { + token->opcode = PHQL_T_DIV; + return 0; + } +pp33: + ppch = *++PPCURSOR; + switch (ppch) { + case '.': goto pp95; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto pp33; + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'x': goto pp98; + default: goto pp35; } - ZEPHIR_INIT_NVAR(&message); - ZVAL_COPY(&message, _1); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "outputmessage", &_5, 0, &type, &message); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &messages, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &messages, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; +pp35: + { + token->opcode = PHQL_T_INTEGER; + token->value = estrndup(q, PPCURSOR - q); + token->len = PPCURSOR - q; + q = PPCURSOR; + return 0; + } +pp36: + ppaccept = 1; + ppch = *(PPMARKER = ++PPCURSOR); + switch (ppch) { + case '-': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp100; + default: goto pp37; } - ZEPHIR_CALL_METHOD(&type, &messages, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&message, &messages, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "outputmessage", &_5, 0, &type, &message); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &messages, "next", NULL, 0); - zephir_check_call_status(); +pp37: + { + token->opcode = PHQL_T_COLON; + return 0; } - } - ZEPHIR_INIT_NVAR(&message); - ZEPHIR_INIT_NVAR(&type); - ZEPHIR_CALL_PARENT(NULL, phalcon_flash_session_ce, getThis(), "clear", &_6, 0); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Flash_Session, getSessionMessages) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *remove_param = NULL, *type = NULL, type_sub, __$null, session, messages, returnMessages, _0, _1$$6, _2$$7; - zend_bool remove; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&type_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&session); - ZVAL_UNDEF(&messages); - ZVAL_UNDEF(&returnMessages); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$6); - ZVAL_UNDEF(&_2$$7); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_BOOL(remove) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(type) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &remove_param, &type); - remove = zephir_get_boolval(remove_param); - if (!type) { - type = &type_sub; - type = &__$null; - } - - - ZEPHIR_CALL_METHOD(&session, this_ptr, "getsessionservice", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "_flashMessages"); - ZEPHIR_CALL_METHOD(&messages, &session, "get", NULL, 0, &_0); - zephir_check_call_status(); - if (Z_TYPE_P(&messages) != IS_ARRAY) { - ZEPHIR_INIT_NVAR(&messages); - array_init(&messages); - } - if (Z_TYPE_P(type) == IS_STRING) { - ZEPHIR_OBS_VAR(&returnMessages); - if (zephir_array_isset_fetch(&returnMessages, &messages, type, 0)) { - if (remove) { - zephir_array_unset(&messages, type, PH_SEPARATE); - ZEPHIR_INIT_VAR(&_1$$6); - ZVAL_STRING(&_1$$6, "_flashMessages"); - ZEPHIR_CALL_METHOD(NULL, &session, "set", NULL, 0, &_1$$6, &messages); - zephir_check_call_status(); +pp38: + ppch = *++PPCURSOR; + switch (ppch) { + case '=': goto pp102; + case '>': goto pp104; + default: goto pp39; } - RETURN_CCTOR(&returnMessages); +pp39: + { + token->opcode = PHQL_T_LESS; + return 0; } - array_init(return_value); - RETURN_MM(); - } - if (remove) { - ZEPHIR_INIT_VAR(&_2$$7); - ZVAL_STRING(&_2$$7, "_flashMessages"); - ZEPHIR_CALL_METHOD(NULL, &session, "remove", NULL, 0, &_2$$7); - zephir_check_call_status(); - } - RETURN_CCTOR(&messages); -} - -static PHP_METHOD(Phalcon_Flash_Session, setSessionMessages) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *messages_param = NULL, session, _0; - zval messages; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&messages); - ZVAL_UNDEF(&session); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(messages) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &messages_param); - ZEPHIR_OBS_COPY_OR_DUP(&messages, messages_param); - - - ZEPHIR_CALL_METHOD(&session, this_ptr, "getsessionservice", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "_flashMessages"); - ZEPHIR_CALL_METHOD(NULL, &session, "set", NULL, 0, &_0, &messages); - zephir_check_call_status(); - RETURN_CTOR(&messages); -} - -static PHP_METHOD(Phalcon_Flash_Session, getSessionService) -{ - zval container, _0, _1, _6, _7, _2$$4, _3$$4, _5$$4, _8$$5, _9$$5, _10$$6, _11$$6, _12$$6; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_4 = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_10$$6); - ZVAL_UNDEF(&_11$$6); - ZVAL_UNDEF(&_12$$6); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("sessionService"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_0)) { - RETURN_MM_MEMBER(getThis(), "sessionService"); - } - zephir_read_property(&_1, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_1); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_2$$4); - object_init_ex(&_2$$4, phalcon_flash_exception_ce); - ZEPHIR_INIT_VAR(&_5$$4); - ZVAL_STRING(&_5$$4, "the 'session' service"); - ZEPHIR_CALL_CE_STATIC(&_3$$4, phalcon_flash_exception_ce, "containerservicenotfound", &_4, 0, &_5$$4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_2$$4, "__construct", NULL, 8, &_3$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_2$$4, "phalcon/Flash/Session.zep", 174); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_VAR(&_7); - ZVAL_STRING(&_7, "session"); - ZEPHIR_CALL_METHOD(&_6, &container, "has", NULL, 0, &_7); - zephir_check_call_status(); - if (UNEXPECTED(zephir_is_true(&_6))) { - ZEPHIR_INIT_VAR(&_9$$5); - ZVAL_STRING(&_9$$5, "session"); - ZEPHIR_CALL_METHOD(&_8$$5, &container, "getshared", NULL, 0, &_9$$5); - zephir_check_call_status(); - RETURN_CCTOR(&_8$$5); - } else { - ZEPHIR_INIT_VAR(&_10$$6); - object_init_ex(&_10$$6, phalcon_flash_exception_ce); - ZEPHIR_INIT_VAR(&_12$$6); - ZVAL_STRING(&_12$$6, "the 'session' service"); - ZEPHIR_CALL_CE_STATIC(&_11$$6, phalcon_flash_exception_ce, "containerservicenotfound", &_4, 0, &_12$$6); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_10$$6, "__construct", NULL, 8, &_11$$6); - zephir_check_call_status(); - zephir_throw_exception_debug(&_10$$6, "phalcon/Flash/Session.zep", 182); - ZEPHIR_MM_RESTORE(); - return; - } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Forms_Exception) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms, Exception, phalcon, forms_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Forms_Form) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms, Form, phalcon, forms_form, phalcon_di_injectable_ce, phalcon_forms_form_method_entry, 0); - - zend_declare_property_null(phalcon_forms_form_ce, SL("attributes"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_forms_form_ce, SL("data"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_forms_form_ce, SL("elements"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_forms_form_ce, SL("elementsIndexed"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_forms_form_ce, SL("entity"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_forms_form_ce, SL("messages"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_forms_form_ce, SL("position"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_forms_form_ce, SL("options"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_forms_form_ce, SL("validation"), ZEND_ACC_PROTECTED); - phalcon_forms_form_ce->create_object = zephir_init_properties_Phalcon_Forms_Form; - - zend_class_implements(phalcon_forms_form_ce, 1, zend_ce_countable); - zend_class_implements(phalcon_forms_form_ce, 1, zend_ce_iterator); - zend_class_implements(phalcon_forms_form_ce, 1, phalcon_html_attributes_attributesinterface_ce); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Forms_Form, setValidation) -{ - zval *validation, validation_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&validation_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(validation) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &validation); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("validation"), validation); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Forms_Form, getValidation) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "validation"); -} - -static PHP_METHOD(Phalcon_Forms_Form, __construct) -{ - zend_bool _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval userOptions; - zval *entity = NULL, entity_sub, *userOptions_param = NULL, __$null, _1; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&entity_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&userOptions); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(entity) - Z_PARAM_ARRAY(userOptions) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &entity, &userOptions_param); - if (!entity) { - entity = &entity_sub; - entity = &__$null; - } - if (!userOptions_param) { - ZEPHIR_INIT_VAR(&userOptions); - array_init(&userOptions); - } else { - zephir_get_arrval(&userOptions, userOptions_param); - } - - - _0 = Z_TYPE_P(entity) != IS_NULL; - if (_0) { - _0 = Z_TYPE_P(entity) != IS_OBJECT; - } - if (UNEXPECTED(_0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_forms_exception_ce, "The base entity is not valid", "phalcon/Forms/Form.zep", 82); - return; - } - zephir_update_property_zval(this_ptr, ZEND_STRL("entity"), entity); - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &userOptions); - ZEPHIR_INIT_VAR(&_1); - object_init_ex(&_1, phalcon_html_attributes_ce); - ZEPHIR_CALL_METHOD(NULL, &_1, "__construct", NULL, 22); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &_1); - if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("initialize")) == SUCCESS)) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "initialize", NULL, 0, entity, &userOptions); - zephir_check_call_status(); - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Forms_Form, add) -{ - zend_string *_6$$4; - zend_ulong _5$$4; - zval elements; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool type, _0; - zval position; - zval *element, element_sub, *position_param = NULL, *type_param = NULL, name, key, value, _1, _2$$4, *_3$$4, _4$$4; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&element_sub); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&position); - ZVAL_UNDEF(&elements); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_OBJECT_OF_CLASS(element, phalcon_forms_element_elementinterface_ce) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(position) - Z_PARAM_BOOL_OR_NULL(type, is_null_true) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &element, &position_param, &type_param); - if (!position_param) { - ZEPHIR_INIT_VAR(&position); - } else { - zephir_get_strval(&position, position_param); - } - if (!type_param) { - type = 0; - } else { - type = zephir_get_boolval(type_param); - } - - - ZEPHIR_CALL_METHOD(&name, element, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, element, "setform", NULL, 0, this_ptr); - zephir_check_call_status(); - _0 = ZEPHIR_IS_NULL(&position); - if (!(_0)) { - zephir_read_property(&_1, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - _0 = ZEPHIR_IS_EMPTY(&_1); - } - if (_0) { - zephir_update_property_array(this_ptr, SL("elements"), &name, element); - } else { - ZEPHIR_INIT_VAR(&elements); - array_init(&elements); - zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - zephir_is_iterable(&_2$$4, 0, "phalcon/Forms/Form.zep", 157); - if (Z_TYPE_P(&_2$$4) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_2$$4), _5$$4, _6$$4, _3$$4) +pp40: + ++PPCURSOR; { - ZEPHIR_INIT_NVAR(&key); - if (_6$$4 != NULL) { - ZVAL_STR_COPY(&key, _6$$4); - } else { - ZVAL_LONG(&key, _5$$4); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _3$$4); - if (ZEPHIR_IS_EQUAL(&key, &position)) { - if (type) { - zephir_array_update_zval(&elements, &name, element, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&elements, &key, &value, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&elements, &key, &value, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&elements, &name, element, PH_COPY | PH_SEPARATE); + token->opcode = PHQL_T_EQUALS; + return 0; + } +pp42: + ppch = *++PPCURSOR; + switch (ppch) { + case '=': goto pp106; + default: goto pp43; + } +pp43: + { + token->opcode = PHQL_T_GREATER; + return 0; + } +pp44: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto pp108; + default: goto pp5; + } +pp45: + ppch = *++PPCURSOR; + switch (ppch) { + case '>': goto pp111; + case '@': goto pp113; + default: goto pp5; + } +pp46: + ppch = *++PPCURSOR; + switch (ppch) { + case 'G': + case 'g': goto pp115; + case 'L': + case 'l': goto pp116; + case 'N': + case 'n': goto pp117; + case 'S': + case 's': goto pp118; + default: goto pp74; + } +pp47: + { + token->value = estrndup(q, PPCURSOR - q); + token->len = PPCURSOR - q; + if (token->len > 2 && !memcmp(token->value, "0x", 2)) { + token->opcode = PHQL_T_HINTEGER; + } else { + int i, alpha = 0; + for (i = 0; i < token->len; i++) { + unsigned char ch = token->value[i]; + if (!((ch >= '0') && (ch <= '9'))) { + alpha = 1; + break; } - } else { - zephir_array_update_zval(&elements, &key, &value, PH_COPY | PH_SEPARATE); } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_2$$4, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_4$$4, &_2$$4, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_4$$4)) { - break; + if (alpha) { + token->opcode = PHQL_T_IDENTIFIER; + } else { + token->opcode = PHQL_T_INTEGER; } - ZEPHIR_CALL_METHOD(&key, &_2$$4, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &_2$$4, "current", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_EQUAL(&key, &position)) { - if (type) { - zephir_array_update_zval(&elements, &name, element, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&elements, &key, &value, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&elements, &key, &value, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&elements, &name, element, PH_COPY | PH_SEPARATE); - } - } else { - zephir_array_update_zval(&elements, &key, &value, PH_COPY | PH_SEPARATE); - } - ZEPHIR_CALL_METHOD(NULL, &_2$$4, "next", NULL, 0); - zephir_check_call_status(); } + q = PPCURSOR; + return 0; } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - zephir_update_property_zval(this_ptr, ZEND_STRL("elements"), &elements); - } - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Forms_Form, bind) -{ - zend_bool _6$$4, _13$$11; - zend_string *_4; - zend_ulong _3; - zval method; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_7 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *data_param = NULL, *entity, entity_sub, *whitelist = NULL, whitelist_sub, __$null, filter, key, value, element, filters, container, filteredValue, assignData, _0, *_1, _2, _5$$4, _10$$4, _11$$4, _8$$8, _9$$8, _12$$11, _16$$11, _17$$11, _14$$15, _15$$15; - zval data; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&entity_sub); - ZVAL_UNDEF(&whitelist_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&filter); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&element); - ZVAL_UNDEF(&filters); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&filteredValue); - ZVAL_UNDEF(&assignData); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_10$$4); - ZVAL_UNDEF(&_11$$4); - ZVAL_UNDEF(&_8$$8); - ZVAL_UNDEF(&_9$$8); - ZVAL_UNDEF(&_12$$11); - ZVAL_UNDEF(&_16$$11); - ZVAL_UNDEF(&_17$$11); - ZVAL_UNDEF(&_14$$15); - ZVAL_UNDEF(&_15$$15); - ZVAL_UNDEF(&method); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_ARRAY(data) - Z_PARAM_ZVAL(entity) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(whitelist) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &data_param, &entity, &whitelist); - ZEPHIR_OBS_COPY_OR_DUP(&data, data_param); - ZEPHIR_SEPARATE_PARAM(entity); - if (!whitelist) { - whitelist = &whitelist_sub; - whitelist = &__$null; - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(ZEPHIR_IS_EMPTY(&_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_forms_exception_ce, "There are no elements in the form", "phalcon/Forms/Form.zep", 175); - return; - } - ZEPHIR_INIT_VAR(&filter); - ZVAL_NULL(&filter); - ZEPHIR_INIT_VAR(&assignData); - array_init(&assignData); - zephir_is_iterable(&data, 0, "phalcon/Forms/Form.zep", 234); - if (Z_TYPE_P(&data) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _3, _4, _1) - { - ZEPHIR_INIT_NVAR(&key); - if (_4 != NULL) { - ZVAL_STR_COPY(&key, _4); - } else { - ZVAL_LONG(&key, _3); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _1); - ZEPHIR_OBS_NVAR(&element); - zephir_read_property(&_5$$4, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&element, &_5$$4, &key, 0))) { - continue; +pp48: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp120; + case 'Y': + case 'y': goto pp121; + default: goto pp74; } - _6$$4 = Z_TYPE_P(whitelist) == IS_ARRAY; - if (_6$$4) { - _6$$4 = !(zephir_fast_in_array(&key, whitelist)); +pp49: + ppch = *++PPCURSOR; + switch (ppch) { + case 'A': + case 'a': goto pp123; + case 'O': + case 'o': goto pp124; + case 'R': + case 'r': goto pp125; + default: goto pp74; } - if (_6$$4) { - continue; +pp50: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp126; + case 'I': + case 'i': goto pp127; + default: goto pp74; } - ZEPHIR_CALL_METHOD(&filters, &element, "getfilters", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&filters)) { - if (Z_TYPE_P(&filter) != IS_OBJECT) { - ZEPHIR_CALL_METHOD(&container, this_ptr, "getdi", &_7, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_9$$8); - ZVAL_STRING(&_9$$8, "filter"); - ZEPHIR_CALL_METHOD(&_8$$8, &container, "getshared", NULL, 0, &_9$$8); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&filter, &_8$$8); - } - ZEPHIR_CALL_METHOD(&filteredValue, &filter, "sanitize", NULL, 0, &value, &filters); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(&filteredValue, &value); +pp51: + ppch = *++PPCURSOR; + switch (ppch) { + case 'L': + case 'l': goto pp128; + case 'N': + case 'n': goto pp129; + case 'X': goto pp130; + case 'x': goto pp131; + default: goto pp74; } - zephir_array_update_zval(&assignData, &key, &value, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_10$$4); - zephir_camelize(&_10$$4, &key, NULL ); - ZEPHIR_INIT_NVAR(&_11$$4); - ZEPHIR_CONCAT_SV(&_11$$4, "set", &_10$$4); - zephir_get_strval(&method, &_11$$4); - if ((zephir_method_exists(entity, &method) == SUCCESS)) { - ZEPHIR_CALL_METHOD_ZVAL(NULL, entity, &method, NULL, 0, &filteredValue); - zephir_check_call_status(); - continue; +pp52: + ppch = *++PPCURSOR; + switch (ppch) { + case 'A': + case 'a': goto pp132; + case 'O': + case 'o': goto pp133; + case 'R': + case 'r': goto pp134; + case 'U': + case 'u': goto pp135; + default: goto pp74; } - zephir_update_property_zval_zval(entity, &key, &filteredValue); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &data, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &data, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; +pp53: + ppch = *++PPCURSOR; + switch (ppch) { + case 'R': + case 'r': goto pp136; + default: goto pp59; } - ZEPHIR_CALL_METHOD(&key, &data, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &data, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&element); - zephir_read_property(&_12$$11, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&element, &_12$$11, &key, 0))) { - continue; - } - _13$$11 = Z_TYPE_P(whitelist) == IS_ARRAY; - if (_13$$11) { - _13$$11 = !(zephir_fast_in_array(&key, whitelist)); - } - if (_13$$11) { - continue; - } - ZEPHIR_CALL_METHOD(&filters, &element, "getfilters", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&filters)) { - if (Z_TYPE_P(&filter) != IS_OBJECT) { - ZEPHIR_CALL_METHOD(&container, this_ptr, "getdi", &_7, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_15$$15); - ZVAL_STRING(&_15$$15, "filter"); - ZEPHIR_CALL_METHOD(&_14$$15, &container, "getshared", NULL, 0, &_15$$15); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&filter, &_14$$15); - } - ZEPHIR_CALL_METHOD(&filteredValue, &filter, "sanitize", NULL, 0, &value, &filters); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(&filteredValue, &value); - } - zephir_array_update_zval(&assignData, &key, &value, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_16$$11); - zephir_camelize(&_16$$11, &key, NULL ); - ZEPHIR_INIT_NVAR(&_17$$11); - ZEPHIR_CONCAT_SV(&_17$$11, "set", &_16$$11); - zephir_get_strval(&method, &_17$$11); - if ((zephir_method_exists(entity, &method) == SUCCESS)) { - ZEPHIR_CALL_METHOD_ZVAL(NULL, entity, &method, NULL, 0, &filteredValue); - zephir_check_call_status(); - continue; - } - zephir_update_property_zval_zval(entity, &key, &filteredValue); - ZEPHIR_CALL_METHOD(NULL, &data, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &assignData); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Forms_Form, clear) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *fields = NULL, fields_sub, __$null, elements, element, data, field, _0, *_1$$3, _2$$3, _4$$4, _5$$4, _6$$5, _7$$5, _8$$7, *_9$$6, _10$$6, _11$$10, _12$$10, _13$$13, _14$$13; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&fields_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&elements); - ZVAL_UNDEF(&element); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&field); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_8$$7); - ZVAL_UNDEF(&_10$$6); - ZVAL_UNDEF(&_11$$10); - ZVAL_UNDEF(&_12$$10); - ZVAL_UNDEF(&_13$$13); - ZVAL_UNDEF(&_14$$13); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(fields) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &fields); - if (!fields) { - fields = &fields_sub; - ZEPHIR_CPY_WRT(fields, &__$null); - } else { - ZEPHIR_SEPARATE_PARAM(fields); - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&data, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&elements, &_0); - if (Z_TYPE_P(fields) == IS_NULL) { - ZEPHIR_INIT_NVAR(&data); - array_init(&data); - zephir_is_iterable(&elements, 0, "phalcon/Forms/Form.zep", 265); - if (Z_TYPE_P(&elements) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&elements), _1$$3) +pp54: { - ZEPHIR_INIT_NVAR(&element); - ZVAL_COPY(&element, _1$$3); - ZEPHIR_CALL_METHOD(&_4$$4, &element, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_5$$4, &element, "getdefault", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_CE_STATIC(NULL, phalcon_tag_ce, "setdefault", &_3, 0, &_4$$4, &_5$$4); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &elements, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2$$3, &elements, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2$$3)) { - break; + token->opcode = PHQL_T_IDENTIFIER; + if ((PPCURSOR - q) > 1) { + if (q[0] == '\\') { + token->value = estrndup(q + 1, PPCURSOR - q - 1); + token->len = PPCURSOR - q - 1; + } else { + token->value = estrndup(q, PPCURSOR - q); + token->len = PPCURSOR - q; } - ZEPHIR_CALL_METHOD(&element, &elements, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_6$$5, &element, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_7$$5, &element, "getdefault", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_CE_STATIC(NULL, phalcon_tag_ce, "setdefault", &_3, 0, &_6$$5, &_7$$5); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &elements, "next", NULL, 0); - zephir_check_call_status(); + } else { + token->value = estrndup(q, PPCURSOR - q); + token->len = PPCURSOR - q; } + q = PPCURSOR; + return 0; } - ZEPHIR_INIT_NVAR(&element); - } else { - if (Z_TYPE_P(fields) != IS_ARRAY) { - ZEPHIR_INIT_VAR(&_8$$7); - zephir_create_array(&_8$$7, 1, 0); - zephir_array_fast_append(&_8$$7, fields); - ZEPHIR_CPY_WRT(fields, &_8$$7); - } - zephir_is_iterable(fields, 0, "phalcon/Forms/Form.zep", 282); - if (Z_TYPE_P(fields) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(fields), _9$$6) - { - ZEPHIR_INIT_NVAR(&field); - ZVAL_COPY(&field, _9$$6); - if (zephir_array_isset(&data, &field)) { - zephir_array_unset(&data, &field, PH_SEPARATE); - } - ZEPHIR_OBS_NVAR(&element); - if (zephir_array_isset_fetch(&element, &elements, &field, 0)) { - ZEPHIR_CALL_METHOD(&_11$$10, &element, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_12$$10, &element, "getdefault", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_CE_STATIC(NULL, phalcon_tag_ce, "setdefault", &_3, 0, &_11$$10, &_12$$10); - zephir_check_call_status(); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, fields, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_10$$6, fields, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_10$$6)) { - break; - } - ZEPHIR_CALL_METHOD(&field, fields, "current", NULL, 0); - zephir_check_call_status(); - if (zephir_array_isset(&data, &field)) { - zephir_array_unset(&data, &field, PH_SEPARATE); - } - ZEPHIR_OBS_NVAR(&element); - if (zephir_array_isset_fetch(&element, &elements, &field, 0)) { - ZEPHIR_CALL_METHOD(&_13$$13, &element, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_14$$13, &element, "getdefault", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_CE_STATIC(NULL, phalcon_tag_ce, "setdefault", &_3, 0, &_13$$13, &_14$$13); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, fields, "next", NULL, 0); - zephir_check_call_status(); +pp55: + ppch = *++PPCURSOR; + switch (ppch) { + case 'A': + case 'a': goto pp137; + default: goto pp59; } - } - ZEPHIR_INIT_NVAR(&field); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &data); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Forms_Form, count) -{ - zval _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - RETURN_LONG(zephir_fast_count_int(&_0)); -} - -static PHP_METHOD(Phalcon_Forms_Form, current) -{ - zval element, _0, _1; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&element); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("elementsIndexed"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_1, this_ptr, ZEND_STRL("position"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&element, &_0, &_1, 1))) { - RETURN_BOOL(0); - } - RETURN_CTORW(&element); -} - -static PHP_METHOD(Phalcon_Forms_Form, get) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, element, _0, _1$$3; - zval name, _2$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&element); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - - - ZEPHIR_OBS_VAR(&element); - zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(!(zephir_array_isset_fetch(&element, &_0, &name, 0)))) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_forms_exception_ce); - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_CONCAT_SVS(&_2$$3, "Element with ID=", &name, " is not part of the form"); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Forms/Form.zep", 321); - ZEPHIR_MM_RESTORE(); - return; - } - RETURN_CCTOR(&element); -} - -static PHP_METHOD(Phalcon_Forms_Form, getAction) -{ - zval _3; - zval _0, _1, _2; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getattributes", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "action"); - ZEPHIR_CALL_METHOD(&_1, &_0, "get", NULL, 0, &_2); - zephir_check_call_status(); - zephir_cast_to_string(&_3, &_1); - RETURN_CTOR(&_3); -} - -static PHP_METHOD(Phalcon_Forms_Form, getAttributes) -{ - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(Z_TYPE_P(&_0) == IS_NULL)) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_html_attributes_ce); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 22); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &_1$$3); - } - RETURN_MM_MEMBER(getThis(), "attributes"); -} - -static PHP_METHOD(Phalcon_Forms_Form, getElements) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "elements"); -} - -static PHP_METHOD(Phalcon_Forms_Form, getEntity) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "entity"); -} - -static PHP_METHOD(Phalcon_Forms_Form, getLabel) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, element, label, _0, _1$$3; - zval name, _2$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&element); - ZVAL_UNDEF(&label); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - - - ZEPHIR_OBS_VAR(&element); - zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(!(zephir_array_isset_fetch(&element, &_0, &name, 0)))) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_forms_exception_ce); - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_CONCAT_SVS(&_2$$3, "Element with ID=", &name, " is not part of the form"); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Forms/Form.zep", 375); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CALL_METHOD(&label, &element, "getlabel", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&label))) { - RETURN_CTOR(&name); - } - RETURN_CCTOR(&label); -} - -static PHP_METHOD(Phalcon_Forms_Form, getMessages) -{ - zend_bool _1; - zval messages, _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&messages); - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&messages, &_0); - _1 = Z_TYPE_P(&messages) == IS_OBJECT; - if (_1) { - _1 = zephir_instance_of_ev(&messages, phalcon_messages_messages_ce); - } - if (!(_1)) { - object_init_ex(return_value, phalcon_messages_messages_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 9); - zephir_check_call_status(); - RETURN_MM(); - } - RETURN_CCTOR(&messages); -} - -static PHP_METHOD(Phalcon_Forms_Form, getMessagesFor) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, _0, _1; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, &name); - zephir_check_call_status(); - if (!(zephir_is_true(&_0))) { - object_init_ex(return_value, phalcon_messages_messages_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 9); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_CALL_METHOD(&_1, this_ptr, "get", NULL, 0, &name); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&_1, "getmessages", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Forms_Form, getUserOption) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *option_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, value, _0; - zval option; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&option); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(option) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(defaultValue) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &option_param, &defaultValue); - zephir_get_strval(&option, option_param); - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&value, &_0, &option, 1))) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CTOR(&value); -} - -static PHP_METHOD(Phalcon_Forms_Form, getUserOptions) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "options"); -} - -static PHP_METHOD(Phalcon_Forms_Form, getValue) -{ - zval forbidden; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_6 = NULL, *_7 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, __$true, entity, value, data, internalEntity, element, _0, _3, _4, _5, _1$$4, _2$$4; - zval name, method; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&method); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&entity); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&internalEntity); - ZVAL_UNDEF(&element); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&forbidden); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("entity"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&entity, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&data, &_0); - if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("getcustomvalue")) == SUCCESS)) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getcustomvalue", NULL, 0, &name, &entity, &data); - zephir_check_call_status(); - RETURN_MM(); - } - if (Z_TYPE_P(&entity) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_1$$4); - zephir_camelize(&_1$$4, &name, NULL ); - ZEPHIR_INIT_VAR(&_2$$4); - ZEPHIR_CONCAT_SV(&_2$$4, "get", &_1$$4); - zephir_get_strval(&method, &_2$$4); - if ((zephir_method_exists(&entity, &method) == SUCCESS)) { - ZEPHIR_RETURN_CALL_METHOD_ZVAL(&entity, &method, NULL, 0); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_OBS_VAR(&value); - if (zephir_fetch_property_zval(&value, &entity, &name, PH_SILENT_CC)) { - RETURN_CCTOR(&value); - } - } - if (Z_TYPE_P(&data) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&value); - if (zephir_array_isset_fetch(&value, &data, &name, 0)) { - RETURN_CCTOR(&value); - } - } - ZEPHIR_INIT_VAR(&forbidden); - zephir_create_array(&forbidden, 13, 0); - zephir_array_update_string(&forbidden, SL("attributes"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&forbidden, SL("validation"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&forbidden, SL("action"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&forbidden, SL("useroption"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&forbidden, SL("useroptions"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&forbidden, SL("entity"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&forbidden, SL("elements"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&forbidden, SL("messages"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&forbidden, SL("messagesfor"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&forbidden, SL("label"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&forbidden, SL("value"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&forbidden, SL("di"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&forbidden, SL("eventsmanager"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_VAR(&internalEntity); - zephir_fast_strtolower(&internalEntity, &name); - if (zephir_array_isset(&forbidden, &internalEntity)) { - RETURN_MM_NULL(); - } - ZEPHIR_INIT_VAR(&_3); - zephir_camelize(&_3, &name, NULL ); - ZEPHIR_INIT_VAR(&_4); - ZEPHIR_CONCAT_SV(&_4, "get", &_3); - zephir_get_strval(&method, &_4); - if ((zephir_method_exists(this_ptr, &method) == SUCCESS)) { - ZEPHIR_RETURN_CALL_METHOD_ZVAL(this_ptr, &method, NULL, 0); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_CALL_CE_STATIC(&_5, phalcon_tag_ce, "hasvalue", &_6, 0, &name); - zephir_check_call_status(); - if (zephir_is_true(&_5)) { - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "getvalue", &_7, 0, &name); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_OBS_VAR(&element); - zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&element, &_0, &name, 0)) { - ZEPHIR_RETURN_CALL_METHOD(&element, "getdefault", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); - } - RETURN_MM_NULL(); -} - -static PHP_METHOD(Phalcon_Forms_Form, has) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, _0; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - RETURN_MM_BOOL(zephir_array_isset(&_0, &name)); -} - -static PHP_METHOD(Phalcon_Forms_Form, hasMessagesFor) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, _0, _1; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmessagesfor", NULL, 0, &name); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, &_0, "count", NULL, 0); - zephir_check_call_status(); - RETURN_MM_BOOL(ZEPHIR_GT_LONG(&_1, 0)); -} - -static PHP_METHOD(Phalcon_Forms_Form, isValid) -{ - zend_object_iterator *_17$$21; - zend_bool validationStatus = 0, _6; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_12 = NULL, *_13 = NULL, *_20 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *data = NULL, data_sub, *entity = NULL, entity_sub, __$null, messages, element, validators, name, filters, validator, validation, elementMessage, _0, _7, *_8, _9, _16, _1$$4, _2$$6, _3$$7, _4$$7, _5$$8, *_10$$11, _11$$11, *_14$$16, _15$$16, _18$$22, _19$$22; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&data_sub); - ZVAL_UNDEF(&entity_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&messages); - ZVAL_UNDEF(&element); - ZVAL_UNDEF(&validators); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&filters); - ZVAL_UNDEF(&validator); - ZVAL_UNDEF(&validation); - ZVAL_UNDEF(&elementMessage); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_16); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$6); - ZVAL_UNDEF(&_3$$7); - ZVAL_UNDEF(&_4$$7); - ZVAL_UNDEF(&_5$$8); - ZVAL_UNDEF(&_11$$11); - ZVAL_UNDEF(&_15$$16); - ZVAL_UNDEF(&_18$$22); - ZVAL_UNDEF(&_19$$22); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(data) - Z_PARAM_ZVAL_OR_NULL(entity) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &data, &entity); - if (!data) { - data = &data_sub; - ZEPHIR_CPY_WRT(data, &__$null); - } else { - ZEPHIR_SEPARATE_PARAM(data); - } - if (!entity) { - entity = &entity_sub; - ZEPHIR_CPY_WRT(entity, &__$null); - } else { - ZEPHIR_SEPARATE_PARAM(entity); - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - if (ZEPHIR_IS_EMPTY(&_0)) { - RETURN_MM_BOOL(1); - } - if (Z_TYPE_P(data) != IS_ARRAY) { - zephir_read_property(&_1$$4, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(data, &_1$$4); - } - if (Z_TYPE_P(entity) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "bind", NULL, 0, data, entity); - zephir_check_call_status(); - } else { - ZEPHIR_OBS_VAR(&_2$$6); - zephir_read_property(&_2$$6, this_ptr, ZEND_STRL("entity"), PH_NOISY_CC); - if (Z_TYPE_P(&_2$$6) == IS_OBJECT) { - zephir_read_property(&_3$$7, this_ptr, ZEND_STRL("entity"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "bind", NULL, 0, data, &_3$$7); - zephir_check_call_status(); - zephir_read_property(&_4$$7, this_ptr, ZEND_STRL("entity"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(entity, &_4$$7); - } - } - if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("beforevalidation")) == SUCCESS)) { - ZEPHIR_CALL_METHOD(&_5$$8, this_ptr, "beforevalidation", NULL, 0, data, entity); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_5$$8)) { - RETURN_MM_BOOL(0); - } - } - validationStatus = 1; - ZEPHIR_CALL_METHOD(&validation, this_ptr, "getvalidation", NULL, 0); - zephir_check_call_status(); - _6 = Z_TYPE_P(&validation) != IS_OBJECT; - if (!(_6)) { - _6 = !((zephir_instance_of_ev(&validation, phalcon_validation_validationinterface_ce))); - } - if (_6) { - ZEPHIR_INIT_NVAR(&validation); - object_init_ex(&validation, phalcon_validation_ce); - ZEPHIR_CALL_METHOD(NULL, &validation, "__construct", NULL, 243); - zephir_check_call_status(); - } - zephir_read_property(&_7, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - zephir_is_iterable(&_7, 0, "phalcon/Forms/Form.zep", 651); - if (Z_TYPE_P(&_7) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_7), _8) - { - ZEPHIR_INIT_NVAR(&element); - ZVAL_COPY(&element, _8); - ZEPHIR_CALL_METHOD(&validators, &element, "getvalidators", NULL, 0); - zephir_check_call_status(); - if (zephir_fast_count_int(&validators) == 0) { - continue; +pp56: + ppch = *++PPCURSOR; + switch (ppch) { + case 'L': + case 'l': goto pp138; + case 'N': + case 'n': goto pp139; + case 'S': + case 's': goto pp141; + default: goto pp59; } - ZEPHIR_CALL_METHOD(&name, &element, "getname", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&validators, 0, "phalcon/Forms/Form.zep", 638); - if (Z_TYPE_P(&validators) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&validators), _10$$11) - { - ZEPHIR_INIT_NVAR(&validator); - ZVAL_COPY(&validator, _10$$11); - ZEPHIR_CALL_METHOD(NULL, &validation, "add", &_12, 244, &name, &validator); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &validators, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_11$$11, &validators, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_11$$11)) { - break; - } - ZEPHIR_CALL_METHOD(&validator, &validators, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &validation, "add", &_12, 244, &name, &validator); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &validators, "next", NULL, 0); - zephir_check_call_status(); - } +pp57: + ppch = *++PPCURSOR; + switch (ppch) { + case 'O': + case 'o': goto pp143; + default: goto pp59; } - ZEPHIR_INIT_NVAR(&validator); - ZEPHIR_CALL_METHOD(&filters, &element, "getfilters", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&filters) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(NULL, &validation, "setfilters", &_13, 245, &name, &filters); - zephir_check_call_status(); +pp58: + ppch = *++PPCURSOR; +pp59: + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp54; } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_7, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_9, &_7, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_9)) { - break; +pp60: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp144; + case 'I': + case 'i': goto pp145; + default: goto pp59; } - ZEPHIR_CALL_METHOD(&element, &_7, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&validators, &element, "getvalidators", NULL, 0); - zephir_check_call_status(); - if (zephir_fast_count_int(&validators) == 0) { - continue; - } - ZEPHIR_CALL_METHOD(&name, &element, "getname", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&validators, 0, "phalcon/Forms/Form.zep", 638); - if (Z_TYPE_P(&validators) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&validators), _14$$16) - { - ZEPHIR_INIT_NVAR(&validator); - ZVAL_COPY(&validator, _14$$16); - ZEPHIR_CALL_METHOD(NULL, &validation, "add", &_12, 244, &name, &validator); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &validators, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_15$$16, &validators, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_15$$16)) { - break; - } - ZEPHIR_CALL_METHOD(&validator, &validators, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &validation, "add", &_12, 244, &name, &validator); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &validators, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&validator); - ZEPHIR_CALL_METHOD(&filters, &element, "getfilters", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&filters) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(NULL, &validation, "setfilters", &_13, 245, &name, &filters); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, &_7, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&element); - ZEPHIR_CALL_METHOD(&messages, &validation, "validate", NULL, 246, data, entity); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_16, &messages, "count", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_16)) { - _17$$21 = zephir_get_iterator(&messages); - _17$$21->funcs->rewind(_17$$21); - for (;_17$$21->funcs->valid(_17$$21) == SUCCESS && !EG(exception); _17$$21->funcs->move_forward(_17$$21)) { - { - ZEPHIR_ITERATOR_COPY(&elementMessage, _17$$21); +pp61: + ppch = *++PPCURSOR; + switch (ppch) { + case 'O': + case 'o': goto pp146; + case 'U': + case 'u': goto pp147; + default: goto pp59; } - ZEPHIR_CALL_METHOD(&_19$$22, &elementMessage, "getfield", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_18$$22, this_ptr, "get", &_20, 0, &_19$$22); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_18$$22, "appendmessage", NULL, 0, &elementMessage); - zephir_check_call_status(); - } - zend_iterator_dtor(_17$$21); - ZEPHIR_CALL_METHOD(NULL, &messages, "rewind", NULL, 0); - zephir_check_call_status(); - validationStatus = 0; - } - if (!(validationStatus)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("messages"), &messages); - } - if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("aftervalidation")) == SUCCESS)) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "aftervalidation", NULL, 0, &messages); - zephir_check_call_status(); - } - RETURN_MM_BOOL(validationStatus); -} - -static PHP_METHOD(Phalcon_Forms_Form, key) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "position"); -} - -static PHP_METHOD(Phalcon_Forms_Form, label) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval attributes; - zval *name_param = NULL, *attributes_param = NULL, element, _0, _1$$3; - zval name, _2$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&element); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY_OR_NULL(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &name_param, &attributes_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_OBS_VAR(&element); - zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(!(zephir_array_isset_fetch(&element, &_0, &name, 0)))) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_forms_exception_ce); - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_CONCAT_SVS(&_2$$3, "Element with ID=", &name, " is not part of the form"); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Forms/Form.zep", 701); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_RETURN_CALL_METHOD(&element, "label", NULL, 0, &attributes); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Forms_Form, next) -{ - zval *this_ptr = getThis(); - - - - RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("position"))); -} - -static PHP_METHOD(Phalcon_Forms_Form, render) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval attributes; - zval *name_param = NULL, *attributes_param = NULL, element, _0, _1$$3; - zval name, _2$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&element); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &name_param, &attributes_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_OBS_VAR(&element); - zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(!(zephir_array_isset_fetch(&element, &_0, &name, 0)))) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_forms_exception_ce); - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_CONCAT_SVS(&_2$$3, "Element with ID=", &name, " is not part of the form"); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Forms/Form.zep", 725); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_RETURN_CALL_METHOD(&element, "render", NULL, 0, &attributes); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Forms_Form, remove) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, __$null, _0, _1$$3; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset(&_0, &name)) { - zephir_unset_property_array(this_ptr, ZEND_STRL("elements"), &name); - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - zephir_array_unset(&_1$$3, &name, PH_SEPARATE); - RETURN_MM_BOOL(1); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("elementsIndexed"), &__$null); - RETURN_MM_BOOL(0); -} - -static PHP_METHOD(Phalcon_Forms_Form, rewind) -{ - zval _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, 0); - zephir_update_property_zval(this_ptr, ZEND_STRL("position"), &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&_1, "array_values", NULL, 12, &_0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("elementsIndexed"), &_1); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Forms_Form, setAction) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *action_param = NULL, _0, _1; - zval action; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&action); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(action) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &action_param); - if (UNEXPECTED(Z_TYPE_P(action_param) != IS_STRING && Z_TYPE_P(action_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'action' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(action_param) == IS_STRING)) { - zephir_get_strval(&action, action_param); - } else { - ZEPHIR_INIT_VAR(&action); - } - - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getattributes", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "action"); - ZEPHIR_CALL_METHOD(NULL, &_0, "set", NULL, 0, &_1, &action); - zephir_check_call_status(); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Forms_Form, setEntity) -{ - zval *entity, entity_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&entity_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(entity) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &entity); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("entity"), entity); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Forms_Form, setAttributes) -{ - zval *attributes, attributes_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(attributes, phalcon_html_attributes_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &attributes); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), attributes); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Forms_Form, setUserOption) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *option_param = NULL, *value, value_sub; - zval option; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&option); - ZVAL_UNDEF(&value_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(option) - Z_PARAM_ZVAL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &option_param, &value); - zephir_get_strval(&option, option_param); - - - zephir_update_property_array(this_ptr, SL("options"), &option, value); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Forms_Form, setUserOptions) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *options_param = NULL; - zval options; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&options); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(options) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &options_param); - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Forms_Form, valid) -{ - zval _0, _1; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("elementsIndexed"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_1, this_ptr, ZEND_STRL("position"), PH_NOISY_CC | PH_READONLY); - RETURN_BOOL(zephir_array_isset(&_0, &_1)); -} - -zend_object *zephir_init_properties_Phalcon_Forms_Form(zend_class_entry *class_type) -{ - zval _0, _2, _4, _6, _1$$3, _3$$4, _5$$5, _7$$6; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_7$$6); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); +pp62: + ppch = *++PPCURSOR; + switch (ppch) { + case 'F': + case 'f': goto pp148; + case 'N': + case 'n': goto pp149; + case 'R': + case 'r': goto pp151; + case 'U': + case 'u': goto pp153; + default: goto pp59; + } +pp63: + ppch = *++PPCURSOR; + switch (ppch) { + case 'I': + case 'i': goto pp154; + default: goto pp59; + } +pp64: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp155; + default: goto pp59; + } +pp65: + ppch = *++PPCURSOR; + switch (ppch) { + case 'H': + case 'h': goto pp156; + case 'R': + case 'r': goto pp157; + default: goto pp59; + } +pp66: + ppch = *++PPCURSOR; + switch (ppch) { + case 'P': + case 'p': goto pp158; + case 'S': + case 's': goto pp159; + default: goto pp59; + } +pp67: + ppch = *++PPCURSOR; + switch (ppch) { + case 'A': + case 'a': goto pp160; + default: goto pp59; + } +pp68: + ppch = *++PPCURSOR; + switch (ppch) { + case 'H': + case 'h': goto pp161; + case 'I': + case 'i': goto pp162; + default: goto pp59; + } +pp69: + ppaccept = 0; + ppch = *(PPMARKER = ++PPCURSOR); + switch (ppch) { + case 0x00: + case 0x01: + case 0x02: + case 0x03: + case 0x04: + case 0x05: + case 0x06: + case 0x07: + case 0x08: + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case 0x0E: + case 0x0F: + case 0x10: + case 0x11: + case 0x12: + case 0x13: + case 0x14: + case 0x15: + case 0x16: + case 0x17: + case 0x18: + case 0x19: + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: + case 0x1F: + case '[': + case 0x7F: goto pp5; + default: goto pp164; + } +pp70: + ppch = *++PPCURSOR; + switch (ppch) { + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp5; + } +pp71: + ++PPCURSOR; + { + token->opcode = PHQL_T_BITWISE_XOR; + return 0; } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("elementsIndexed"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("elementsIndexed"), &_3$$4); +pp73: + ppch = *++PPCURSOR; +pp74: + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'x': goto pp73; + case ':': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'y': + case 'z': goto pp58; + default: goto pp47; + } +pp75: + ppaccept = 0; + ppch = *(PPMARKER = ++PPCURSOR); + switch (ppch) { + case '-': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp169; + default: goto pp5; + } +pp76: + ppch = *++PPCURSOR; + switch (ppch) { + case '|': goto pp171; + default: goto pp77; + } +pp77: + { + token->opcode = PHQL_T_BITWISE_OR; + return 0; } - zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_4) == IS_NULL) { - ZEPHIR_INIT_VAR(&_5$$5); - array_init(&_5$$5); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("elements"), &_5$$5); +pp78: + ++PPCURSOR; + { + token->opcode = PHQL_T_BITWISE_NOT; + return 0; } - zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_6) == IS_NULL) { - ZEPHIR_INIT_VAR(&_7$$6); - array_init(&_7$$6); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("data"), &_7$$6); +pp80: + ++PPCURSOR; + { + token->opcode = PHQL_T_TS_NEGATE; + return 0; } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Forms_Manager) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Forms, Manager, phalcon, forms_manager, phalcon_forms_manager_method_entry, 0); - - zend_declare_property_null(phalcon_forms_manager_ce, SL("forms"), ZEND_ACC_PROTECTED); - phalcon_forms_manager_ce->create_object = zephir_init_properties_Phalcon_Forms_Manager; - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Forms_Manager, create) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, *entity = NULL, entity_sub, __$null, form; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&entity_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&form); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(entity) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &name_param, &entity); - zephir_get_strval(&name, name_param); - if (!entity) { - entity = &entity_sub; - entity = &__$null; - } - - - ZEPHIR_INIT_VAR(&form); - object_init_ex(&form, phalcon_forms_form_ce); - ZEPHIR_CALL_METHOD(NULL, &form, "__construct", NULL, 247, entity); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("forms"), &name, &form); - RETURN_CCTOR(&form); -} - -static PHP_METHOD(Phalcon_Forms_Manager, get) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, form, _0, _1$$3; - zval name, _2$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&form); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - zephir_get_strval(&name, name_param); - - - ZEPHIR_OBS_VAR(&form); - zephir_read_property(&_0, this_ptr, ZEND_STRL("forms"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(!(zephir_array_isset_fetch(&form, &_0, &name, 0)))) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_forms_exception_ce); - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_CONCAT_SVS(&_2$$3, "There is no form with name='", &name, "'"); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Forms/Manager.zep", 46); - ZEPHIR_MM_RESTORE(); - return; - } - RETURN_CCTOR(&form); -} - -static PHP_METHOD(Phalcon_Forms_Manager, has) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, _0; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - zephir_get_strval(&name, name_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("forms"), PH_NOISY_CC | PH_READONLY); - RETURN_MM_BOOL(zephir_array_isset(&_0, &name)); -} - -static PHP_METHOD(Phalcon_Forms_Manager, set) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, *form, form_sub; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&form_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(name) - Z_PARAM_OBJECT_OF_CLASS(form, phalcon_forms_form_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &name_param, &form); - zephir_get_strval(&name, name_param); - - - zephir_update_property_array(this_ptr, SL("forms"), &name, form); - RETURN_THIS(); -} - -zend_object *zephir_init_properties_Phalcon_Forms_Manager(zend_class_entry *class_type) -{ - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("forms"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("forms"), &_1$$3); +pp82: + ++PPCURSOR; + { + token->opcode = PHQL_T_NOTEQUALS; + return 0; } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_AbstractElement) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Forms\\Element, AbstractElement, phalcon, forms_element_abstractelement, phalcon_forms_element_abstractelement_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_null(phalcon_forms_element_abstractelement_ce, SL("attributes"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_forms_element_abstractelement_ce, SL("filters"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_forms_element_abstractelement_ce, SL("form"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_forms_element_abstractelement_ce, SL("label"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_forms_element_abstractelement_ce, SL("messages"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_forms_element_abstractelement_ce, SL("name"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_forms_element_abstractelement_ce, SL("options"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_forms_element_abstractelement_ce, SL("validators"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_forms_element_abstractelement_ce, SL("value"), ZEND_ACC_PROTECTED); - phalcon_forms_element_abstractelement_ce->create_object = zephir_init_properties_Phalcon_Forms_Element_AbstractElement; - - zend_class_implements(phalcon_forms_element_abstractelement_ce, 1, phalcon_forms_element_elementinterface_ce); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval attributes; - zval *name_param = NULL, *attributes_param = NULL, _0, _1; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &name_param, &attributes_param); - zephir_get_strval(&name, name_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_INIT_VAR(&_0); - zephir_fast_trim(&_0, &name, NULL , ZEPHIR_TRIM_BOTH); - zephir_get_strval(&name, &_0); - if (UNEXPECTED(ZEPHIR_IS_EMPTY(&name))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_InvalidArgumentException, "Form element name is required", "phalcon/Forms/Element/AbstractElement.zep", 84); - return; - } - zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); - zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &attributes); - ZEPHIR_INIT_VAR(&_1); - object_init_ex(&_1, phalcon_messages_messages_ce); - ZEPHIR_CALL_METHOD(NULL, &_1, "__construct", NULL, 9); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("messages"), &_1); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, __toString) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - - - ZEPHIR_MM_GROW(); - - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "render", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, addFilter) -{ - zval _1$$5, _2$$6; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *filter_param = NULL, filters, _0; - zval filter; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&filter); - ZVAL_UNDEF(&filters); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$5); - ZVAL_UNDEF(&_2$$6); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(filter) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &filter_param); - zephir_get_strval(&filter, filter_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("filters"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&filters, &_0); - if (Z_TYPE_P(&filters) == IS_ARRAY) { - zephir_update_property_array_append(this_ptr, SL("filters"), &filter); - } else { - if (Z_TYPE_P(&filters) == IS_STRING) { - ZEPHIR_INIT_VAR(&_1$$5); - zephir_create_array(&_1$$5, 2, 0); - zephir_array_fast_append(&_1$$5, &filters); - zephir_array_fast_append(&_1$$5, &filter); - zephir_update_property_zval(this_ptr, ZEND_STRL("filters"), &_1$$5); - } else { - ZEPHIR_INIT_VAR(&_2$$6); - zephir_create_array(&_2$$6, 1, 0); - zephir_array_fast_append(&_2$$6, &filter); - zephir_update_property_zval(this_ptr, ZEND_STRL("filters"), &_2$$6); +pp84: + ppch = *++PPCURSOR; +pp85: + switch (ppch) { + case 0x00: goto pp86; + case '"': goto pp87; + case '\\': goto pp89; + default: goto pp84; + } +pp86: + PPCURSOR = PPMARKER; + switch (ppaccept) { + case 0: goto pp5; + case 1: goto pp37; + case 2: goto pp209; + default: goto pp168; + } +pp87: + ++PPCURSOR; + { + token->opcode = PHQL_T_STRING; + token->value = estrndup(q, PPCURSOR - q - 1); + token->len = PPCURSOR - q - 1; + q = PPCURSOR; + return 0; } - } - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, addValidator) -{ - zval *validator, validator_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&validator_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(validator, phalcon_validation_validatorinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &validator); - - - zephir_update_property_array_append(this_ptr, SL("validators"), validator); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, addValidators) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_bool merge; - zval *validators_param = NULL, *merge_param = NULL, _0$$3, _1$$3; - zval validators; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&validators); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(validators) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(merge) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &validators_param, &merge_param); - ZEPHIR_OBS_COPY_OR_DUP(&validators, validators_param); - if (!merge_param) { - merge = 1; - } else { - merge = zephir_get_boolval(merge_param); - } - - - if (merge) { - ZEPHIR_INIT_VAR(&_0$$3); - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("validators"), PH_NOISY_CC | PH_READONLY); - zephir_fast_array_merge(&_0$$3, &_1$$3, &validators); - ZEPHIR_CPY_WRT(&validators, &_0$$3); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("validators"), &validators); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, appendMessage) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *message, message_sub, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&message_sub); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(message, phalcon_messages_messageinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &message); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_0, "appendmessage", NULL, 0, message); - zephir_check_call_status(); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, clear) -{ - zval form, _0, name, value; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_1 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&form); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&value); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("form"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&form, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&name, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("value"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&value, &_0); - if (Z_TYPE_P(&form) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(NULL, &form, "clear", NULL, 0, &name); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_CE_STATIC(NULL, phalcon_tag_ce, "setdefault", &_1, 0, &name, &value); - zephir_check_call_status(); - } - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getAttribute) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *attribute_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, attributes, value, _0; - zval attribute; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attribute); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(attribute) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(defaultValue) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &attribute_param, &defaultValue); - zephir_get_strval(&attribute, attribute_param); - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&attributes, &_0); - if (!(zephir_array_isset_fetch(&value, &attributes, &attribute, 1))) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CTOR(&value); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getAttributes) -{ - zval attributes, _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&attributes, &_0); - RETURN_CCTOR(&attributes); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getDefault) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "value"); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getFilters) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "filters"); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getForm) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "form"); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getLabel) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "label"); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getMessages) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "messages"); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getName) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "name"); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getUserOption) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *option_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, value, _0; - zval option; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&option); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(option) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(defaultValue) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &option_param, &defaultValue); - zephir_get_strval(&option, option_param); - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&value, &_0, &option, 1))) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - RETURN_CTOR(&value); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getUserOptions) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "options"); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getValidators) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "validators"); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, getValue) -{ - zval name, _0, form, value, _1, _4$$5; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_2 = NULL, *_3 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&form); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_4$$5); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&name, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("form"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&form, &_0); - ZEPHIR_INIT_VAR(&value); - ZVAL_NULL(&value); - if (Z_TYPE_P(&form) == IS_OBJECT) { - ZEPHIR_RETURN_CALL_METHOD(&form, "getvalue", NULL, 0, &name); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_CALL_CE_STATIC(&_1, phalcon_tag_ce, "hasvalue", &_2, 0, &name); - zephir_check_call_status(); - if (zephir_is_true(&_1)) { - ZEPHIR_CALL_CE_STATIC(&value, phalcon_tag_ce, "getvalue", &_3, 0, &name); - zephir_check_call_status(); - } - if (Z_TYPE_P(&value) == IS_NULL) { - zephir_read_property(&_4$$5, this_ptr, ZEND_STRL("value"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&value, &_4$$5); - } - RETURN_CCTOR(&value); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, hasMessages) -{ - zval _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); - RETURN_BOOL(zephir_fast_count_int(&_0) > 0); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, label) -{ - zend_bool _4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_1 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *attributes_param = NULL, internalAttributes, label, name, code, _2, _3, _0$$3, _5$$5, _6$$6; - zval attributes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&internalAttributes); - ZVAL_UNDEF(&label); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&code); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_6$$6); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &attributes_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_CALL_METHOD(&internalAttributes, this_ptr, "getattributes", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&name); - if (!(zephir_array_isset_string_fetch(&name, &internalAttributes, SL("id"), 0))) { - zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&name, &_0$$3); - } - if (!(zephir_array_isset_string(&attributes, SL("for")))) { - zephir_array_update_string(&attributes, SL("for"), &name, PH_COPY | PH_SEPARATE); - } - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "", &label, ""); - zephir_concat_self(&code, &_5$$5); - } else { - ZEPHIR_INIT_VAR(&_6$$6); - ZEPHIR_CONCAT_SVS(&_6$$6, ">", &name, ""); - zephir_concat_self(&code, &_6$$6); - } - RETURN_CCTOR(&code); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, prepareAttributes) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool useChecked; - zval *attributes_param = NULL, *useChecked_param = NULL, value, name, mergedAttributes, defaultAttributes, currentValue, _0, _1$$6, _2$$8; - zval attributes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&mergedAttributes); - ZVAL_UNDEF(&defaultAttributes); - ZVAL_UNDEF(¤tValue); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$6); - ZVAL_UNDEF(&_2$$8); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - Z_PARAM_BOOL(useChecked) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &attributes_param, &useChecked_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - if (!useChecked_param) { - useChecked = 0; - } else { - useChecked = zephir_get_boolval(useChecked_param); - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&name, &_0); - zephir_array_update_long(&attributes, 0, &name, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - ZEPHIR_OBS_VAR(&defaultAttributes); - zephir_read_property(&defaultAttributes, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(&mergedAttributes); - zephir_fast_array_merge(&mergedAttributes, &defaultAttributes, &attributes); - ZEPHIR_CALL_METHOD(&value, this_ptr, "getvalue", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&value) != IS_NULL) { - if (useChecked) { - if (zephir_array_isset_string_fetch(¤tValue, &mergedAttributes, SL("value"), 1)) { - if (ZEPHIR_IS_EQUAL(¤tValue, &value)) { - ZEPHIR_INIT_VAR(&_1$$6); - ZVAL_STRING(&_1$$6, "checked"); - zephir_array_update_string(&mergedAttributes, SL("checked"), &_1$$6, PH_COPY | PH_SEPARATE); - } - } else { - if (zephir_is_true(&value)) { - ZEPHIR_INIT_VAR(&_2$$8); - ZVAL_STRING(&_2$$8, "checked"); - zephir_array_update_string(&mergedAttributes, SL("checked"), &_2$$8, PH_COPY | PH_SEPARATE); - } - zephir_array_update_string(&mergedAttributes, SL("value"), &value, PH_COPY | PH_SEPARATE); +pp89: + ppch = *++PPCURSOR; + switch (ppch) { + case '\n': goto pp86; + default: goto pp84; } - } else { - zephir_array_update_string(&mergedAttributes, SL("value"), &value, PH_COPY | PH_SEPARATE); +pp90: + ++PPCURSOR; + { + token->opcode = PHQL_T_TS_AND; + return 0; } - } - RETURN_CCTOR(&mergedAttributes); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, setAttribute) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *attribute_param = NULL, *value, value_sub; - zval attribute; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attribute); - ZVAL_UNDEF(&value_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(attribute) - Z_PARAM_ZVAL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &attribute_param, &value); - zephir_get_strval(&attribute, attribute_param); - - - zephir_update_property_array(this_ptr, SL("attributes"), &attribute, value); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, setAttributes) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *attributes_param = NULL; - zval attributes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &attributes_param); - ZEPHIR_OBS_COPY_OR_DUP(&attributes, attributes_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &attributes); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, setDefault) -{ - zval *value, value_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&value_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &value); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("value"), value); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, setFilters) -{ - zend_bool _0; - zval *filters, filters_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&filters_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(filters) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &filters); - - - _0 = Z_TYPE_P(filters) != IS_STRING; - if (_0) { - _0 = Z_TYPE_P(filters) != IS_ARRAY; - } - if (UNEXPECTED(_0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_forms_exception_ce, "Wrong filter type added", "phalcon/Forms/Element/AbstractElement.zep", 465); - return; - } - zephir_update_property_zval(this_ptr, ZEND_STRL("filters"), filters); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, setForm) -{ - zval *form, form_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&form_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(form, phalcon_forms_form_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &form); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("form"), form); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, setLabel) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *label_param = NULL; - zval label; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&label); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(label) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &label_param); - zephir_get_strval(&label, label_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("label"), &label); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, setMessages) -{ - zval *messages, messages_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&messages_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(messages, phalcon_messages_messages_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &messages); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("messages"), messages); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, setName) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, setUserOption) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *option_param = NULL, *value, value_sub; - zval option; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&option); - ZVAL_UNDEF(&value_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(option) - Z_PARAM_ZVAL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &option_param, &value); - zephir_get_strval(&option, option_param); - - - zephir_update_property_array(this_ptr, SL("options"), &option, value); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Forms_Element_AbstractElement, setUserOptions) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *options_param = NULL; - zval options; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&options); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(options) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &options_param); - zephir_get_arrval(&options, options_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); - RETURN_THIS(); -} - -zend_object *zephir_init_properties_Phalcon_Forms_Element_AbstractElement(zend_class_entry *class_type) -{ - zval _0, _2, _4, _6, _1$$3, _3$$4, _5$$5, _7$$6; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_7$$6); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("validators"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("validators"), &_1$$3); +pp92: + ppch = *++PPCURSOR; +pp93: + switch (ppch) { + case 0x00: goto pp86; + case '\'': goto pp87; + case '\\': goto pp94; + default: goto pp92; + } +pp94: + ppch = *++PPCURSOR; + switch (ppch) { + case '\n': goto pp86; + default: goto pp92; + } +pp95: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto pp95; + default: goto pp97; + } +pp97: + { + token->opcode = PHQL_T_DOUBLE; + token->value = estrndup(q, PPCURSOR - q); + token->len = PPCURSOR - q; + q = PPCURSOR; + return 0; } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_3$$4); +pp98: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'x': goto pp98; + default: goto pp47; + } +pp100: + ppch = *++PPCURSOR; + switch (ppch) { + case '-': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp100; + case ':': goto pp173; + default: goto pp86; + } +pp102: + ++PPCURSOR; + { + token->opcode = PHQL_T_LESSEQUAL; + return 0; } - zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("filters"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_4) == IS_NULL) { - ZEPHIR_INIT_VAR(&_5$$5); - array_init(&_5$$5); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("filters"), &_5$$5); +pp104: + ++PPCURSOR; + { + token->opcode = PHQL_T_NOTEQUALS; + return 0; } - zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_6) == IS_NULL) { - ZEPHIR_INIT_VAR(&_7$$6); - array_init(&_7$$6); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("attributes"), &_7$$6); +pp106: + ++PPCURSOR; + { + token->opcode = PHQL_T_GREATEREQUAL; + return 0; } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_Check) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, Check, phalcon, forms_element_check, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_check_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Forms_Element_Check, render) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *attributes_param = NULL, _1, _2; - zval attributes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &attributes_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZVAL_BOOL(&_2, 1); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes, &_2); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "checkfield", &_0, 0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_Date) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, Date, phalcon, forms_element_date, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_date_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Forms_Element_Date, render) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *attributes_param = NULL, _1; - zval attributes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &attributes_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "datefield", &_0, 0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_ElementInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Forms\\Element, ElementInterface, phalcon, forms_element_elementinterface, phalcon_forms_element_elementinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, addFilter); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, addValidator); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, addValidators); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, appendMessage); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, clear); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getAttribute); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getAttributes); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getDefault); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getFilters); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getForm); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getLabel); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getMessages); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getName); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getUserOption); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getUserOptions); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getValidators); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, getValue); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, hasMessages); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, label); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, prepareAttributes); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, render); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, setAttribute); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, setAttributes); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, setDefault); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, setFilters); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, setForm); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, setLabel); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, setMessages); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, setName); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, setUserOption); -ZEPHIR_DOC_METHOD(Phalcon_Forms_Element_ElementInterface, setUserOptions); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_Email) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, Email, phalcon, forms_element_email, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_email_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Forms_Element_Email, render) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *attributes_param = NULL, _1; - zval attributes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &attributes_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "emailfield", &_0, 0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_File) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, File, phalcon, forms_element_file, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_file_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Forms_Element_File, render) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *attributes_param = NULL, _1; - zval attributes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &attributes_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "filefield", &_0, 0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_Hidden) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, Hidden, phalcon, forms_element_hidden, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_hidden_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Forms_Element_Hidden, render) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *attributes_param = NULL, _1; - zval attributes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &attributes_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "hiddenfield", &_0, 0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_Numeric) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, Numeric, phalcon, forms_element_numeric, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_numeric_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Forms_Element_Numeric, render) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *attributes_param = NULL, _1; - zval attributes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &attributes_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "numericfield", &_0, 0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_Password) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, Password, phalcon, forms_element_password, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_password_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Forms_Element_Password, render) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *attributes_param = NULL, _1; - zval attributes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &attributes_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "passwordfield", &_0, 0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_Radio) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, Radio, phalcon, forms_element_radio, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_radio_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Forms_Element_Radio, render) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *attributes_param = NULL, _1, _2; - zval attributes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &attributes_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZVAL_BOOL(&_2, 1); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes, &_2); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "radiofield", &_0, 0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_Select) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, Select, phalcon, forms_element_select, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_select_method_entry, 0); - - zend_declare_property_null(phalcon_forms_element_select_ce, SL("optionsValues"), ZEND_ACC_PROTECTED); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Forms_Element_Select, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval attributes; - zval *name_param = NULL, *options = NULL, options_sub, *attributes_param = NULL, __$null; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&options_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(options) - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &name_param, &options, &attributes_param); - zephir_get_strval(&name, name_param); - if (!options) { - options = &options_sub; - options = &__$null; - } - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("optionsValues"), options); - ZEPHIR_CALL_PARENT(NULL, phalcon_forms_element_select_ce, getThis(), "__construct", &_0, 0, &name, &attributes); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Forms_Element_Select, addOption) -{ - zend_string *_3$$3; - zend_ulong _2$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *option, option_sub, key, value, *_0$$3, _1$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&option_sub); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_1$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(option) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &option); - - - if (Z_TYPE_P(option) == IS_ARRAY) { - zephir_is_iterable(option, 0, "phalcon/Forms/Element/Select.zep", 53); - if (Z_TYPE_P(option) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(option), _2$$3, _3$$3, _0$$3) +pp108: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto pp108; + default: goto pp110; + } +pp110: { - ZEPHIR_INIT_NVAR(&key); - if (_3$$3 != NULL) { - ZVAL_STR_COPY(&key, _3$$3); - } else { - ZVAL_LONG(&key, _2$$3); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0$$3); - zephir_update_property_array(this_ptr, SL("optionsValues"), &key, &value); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, option, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1$$3, option, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&key, option, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, option, "current", NULL, 0); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("optionsValues"), &key, &value); - ZEPHIR_CALL_METHOD(NULL, option, "next", NULL, 0); - zephir_check_call_status(); + token->opcode = PHQL_T_NPLACEHOLDER; + token->value = estrndup(q, PPCURSOR - q); + token->len = PPCURSOR - q; + q = PPCURSOR; + return 0; + } +pp111: + ++PPCURSOR; + { + token->opcode = PHQL_T_TS_CONTAINS_ANOTHER; + return 0; + } +pp113: + ++PPCURSOR; + { + token->opcode = PHQL_T_TS_MATCHES; + return 0; + } +pp115: + ppch = *++PPCURSOR; + switch (ppch) { + case 'A': + case 'a': goto pp175; + default: goto pp59; + } +pp116: + ppch = *++PPCURSOR; + switch (ppch) { + case 'L': + case 'l': goto pp176; + default: goto pp59; + } +pp117: + ppch = *++PPCURSOR; + switch (ppch) { + case 'D': + case 'd': goto pp178; + default: goto pp59; + } +pp118: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + case 'C': + case 'c': goto pp180; + default: goto pp119; } +pp119: + { + token->opcode = PHQL_T_AS; + return 0; } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - } else { - zephir_update_property_array_append(this_ptr, SL("optionsValues"), option); - } - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Forms_Element_Select, getOptions) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "optionsValues"); -} - -static PHP_METHOD(Phalcon_Forms_Element_Select, render) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *attributes_param = NULL, _1, _2; - zval attributes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &attributes_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes); - zephir_check_call_status(); - zephir_read_property(&_2, this_ptr, ZEND_STRL("optionsValues"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_select_ce, "selectfield", &_0, 0, &_1, &_2); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Forms_Element_Select, setOptions) -{ - zval *options, options_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&options_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(options) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &options); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("optionsValues"), options); - RETURN_THISW(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_Submit) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, Submit, phalcon, forms_element_submit, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_submit_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Forms_Element_Submit, render) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *attributes_param = NULL, _1; - zval attributes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &attributes_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "submitbutton", &_0, 0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_Text) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, Text, phalcon, forms_element_text, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_text_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Forms_Element_Text, render) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *attributes_param = NULL, _1; - zval attributes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &attributes_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "textfield", &_0, 0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Forms_Element_TextArea) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Forms\\Element, TextArea, phalcon, forms_element_textarea, phalcon_forms_element_abstractelement_ce, phalcon_forms_element_textarea_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Forms_Element_TextArea, render) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *attributes_param = NULL, _1; - zval attributes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &attributes_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_CALL_METHOD(&_1, this_ptr, "prepareattributes", NULL, 0, &attributes); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "textarea", &_0, 0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Helper_Arr) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Helper, Arr, phalcon, helper_arr, phalcon_helper_arr_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Helper_Arr, blackList) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *collection_param = NULL, *blackList_param = NULL, _0, _1, _2; - zval collection, blackList; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&blackList); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ARRAY(collection) - Z_PARAM_ARRAY(blackList) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &collection_param, &blackList_param); - ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); - ZEPHIR_OBS_COPY_OR_DUP(&blackList, blackList_param); - - - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_INIT_NVAR(&_0); - zephir_create_closure_ex(&_0, NULL, phalcon_6__closure_ce, SL("__invoke")); - ZEPHIR_CALL_FUNCTION(&_1, "array_filter", NULL, 248, &blackList, &_0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&blackList, &_1); - ZEPHIR_CALL_FUNCTION(&_2, "array_flip", NULL, 174, &blackList); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_FUNCTION("array_diff_key", NULL, 249, &collection, &_2); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Helper_Arr, chunk) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_bool preserveKeys; - zend_long size, ZEPHIR_LAST_CALL_STATUS; - zval *collection_param = NULL, *size_param = NULL, *preserveKeys_param = NULL, _0, _1; - zval collection; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_ARRAY(collection) - Z_PARAM_LONG(size) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(preserveKeys) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &collection_param, &size_param, &preserveKeys_param); - ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); - size = zephir_get_intval(size_param); - if (!preserveKeys_param) { - preserveKeys = 0; - } else { - preserveKeys = zephir_get_boolval(preserveKeys_param); - } - - - ZVAL_LONG(&_0, size); - ZVAL_BOOL(&_1, (preserveKeys ? 1 : 0)); - ZEPHIR_RETURN_CALL_FUNCTION("array_chunk", NULL, 250, &collection, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Helper_Arr, filter) -{ - zend_bool _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *collection_param = NULL, *method = NULL, method_sub, __$null; - zval collection; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&method_sub); - ZVAL_NULL(&__$null); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(collection) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(method) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &collection_param, &method); - zephir_get_arrval(&collection, collection_param); - if (!method) { - method = &method_sub; - method = &__$null; - } - - - _0 = Z_TYPE_P(method) == IS_NULL; - if (!(_0)) { - _0 = !(zephir_is_callable(method)); - } - if (_0) { - RETURN_CTOR(&collection); - } - ZEPHIR_RETURN_CALL_FUNCTION("array_filter", NULL, 248, &collection, method); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Helper_Arr, first) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *collection_param = NULL, *method = NULL, method_sub, __$null, filtered; - zval collection; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&method_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&filtered); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(collection) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(method) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &collection_param, &method); - ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); - if (!method) { - method = &method_sub; - method = &__$null; - } - - - ZEPHIR_CALL_SELF(&filtered, "filter", &_0, 251, &collection, method); - zephir_check_call_status(); - ZEPHIR_MAKE_REF(&filtered); - ZEPHIR_RETURN_CALL_FUNCTION("reset", NULL, 252, &filtered); - ZEPHIR_UNREF(&filtered); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Helper_Arr, firstKey) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *collection_param = NULL, *method = NULL, method_sub, __$null, filtered; - zval collection; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&method_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&filtered); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(collection) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(method) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &collection_param, &method); - ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); - if (!method) { - method = &method_sub; - method = &__$null; - } - - - ZEPHIR_CALL_SELF(&filtered, "filter", &_0, 251, &collection, method); - zephir_check_call_status(); - ZEPHIR_MAKE_REF(&filtered); - ZEPHIR_CALL_FUNCTION(NULL, "reset", NULL, 252, &filtered); - ZEPHIR_UNREF(&filtered); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_FUNCTION("key", NULL, 253, &filtered); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Helper_Arr, flatten) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL, *_8 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool deep; - zval *collection_param = NULL, *deep_param = NULL, data, item, *_0, _1, _2$$6, _3$$6, _5$$6, _6$$7, _7$$7, _9$$11, _10$$11, _11$$11, _12$$12, _13$$12; - zval collection; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&item); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$6); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_6$$7); - ZVAL_UNDEF(&_7$$7); - ZVAL_UNDEF(&_9$$11); - ZVAL_UNDEF(&_10$$11); - ZVAL_UNDEF(&_11$$11); - ZVAL_UNDEF(&_12$$12); - ZVAL_UNDEF(&_13$$12); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(collection) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(deep) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &collection_param, &deep_param); - ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); - if (!deep_param) { - deep = 0; - } else { - deep = zephir_get_boolval(deep_param); - } - - - ZEPHIR_INIT_VAR(&data); - array_init(&data); - zephir_is_iterable(&collection, 0, "phalcon/Helper/Arr.zep", 148); - if (Z_TYPE_P(&collection) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&collection), _0) - { - ZEPHIR_INIT_NVAR(&item); - ZVAL_COPY(&item, _0); - if (Z_TYPE_P(&item) != IS_ARRAY) { - zephir_array_append(&data, &item, PH_SEPARATE, "phalcon/Helper/Arr.zep", 132); - } else { - if (deep) { - ZEPHIR_INIT_NVAR(&_2$$6); - ZVAL_BOOL(&_5$$6, 1); - ZEPHIR_CALL_SELF(&_3$$6, "flatten", &_4, 254, &item, &_5$$6); - zephir_check_call_status(); - zephir_fast_array_merge(&_2$$6, &data, &_3$$6); - ZEPHIR_CPY_WRT(&data, &_2$$6); - } else { - ZEPHIR_INIT_NVAR(&_6$$7); - ZEPHIR_CALL_FUNCTION(&_7$$7, "array_values", &_8, 12, &item); - zephir_check_call_status(); - zephir_fast_array_merge(&_6$$7, &data, &_7$$7); - ZEPHIR_CPY_WRT(&data, &_6$$7); - } +pp120: + ppch = *++PPCURSOR; + switch (ppch) { + case 'T': + case 't': goto pp182; + default: goto pp74; } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &collection, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &collection, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; +pp121: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp122; } - ZEPHIR_CALL_METHOD(&item, &collection, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&item) != IS_ARRAY) { - zephir_array_append(&data, &item, PH_SEPARATE, "phalcon/Helper/Arr.zep", 132); - } else { - if (deep) { - ZEPHIR_INIT_NVAR(&_9$$11); - ZVAL_BOOL(&_11$$11, 1); - ZEPHIR_CALL_SELF(&_10$$11, "flatten", &_4, 254, &item, &_11$$11); - zephir_check_call_status(); - zephir_fast_array_merge(&_9$$11, &data, &_10$$11); - ZEPHIR_CPY_WRT(&data, &_9$$11); - } else { - ZEPHIR_INIT_NVAR(&_12$$12); - ZEPHIR_CALL_FUNCTION(&_13$$12, "array_values", &_8, 12, &item); - zephir_check_call_status(); - zephir_fast_array_merge(&_12$$12, &data, &_13$$12); - ZEPHIR_CPY_WRT(&data, &_12$$12); - } - } - ZEPHIR_CALL_METHOD(NULL, &collection, "next", NULL, 0); - zephir_check_call_status(); +pp122: + { + token->opcode = PHQL_T_BY; + return 0; } - } - ZEPHIR_INIT_NVAR(&item); - RETURN_CCTOR(&data); -} - -static PHP_METHOD(Phalcon_Helper_Arr, get) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval cast; - zval *collection_param = NULL, *index, index_sub, *defaultValue = NULL, defaultValue_sub, *cast_param = NULL, __$null, value; - zval collection; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&index_sub); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&cast); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 4) - Z_PARAM_ARRAY(collection) - Z_PARAM_ZVAL(index) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(defaultValue) - Z_PARAM_STR_OR_NULL(cast) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 2, &collection_param, &index, &defaultValue, &cast_param); - ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; - } - if (!cast_param) { - ZEPHIR_INIT_VAR(&cast); - } else { - if (UNEXPECTED(Z_TYPE_P(cast_param) != IS_STRING && Z_TYPE_P(cast_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'cast' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(cast_param) == IS_STRING)) { - zephir_get_strval(&cast, cast_param); - } else { - ZEPHIR_INIT_VAR(&cast); - } - } - - - ZEPHIR_OBS_VAR(&value); - if (UNEXPECTED(!(zephir_array_isset_fetch(&value, &collection, index, 0)))) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - if (UNEXPECTED(zephir_is_true(&cast))) { - ZEPHIR_MAKE_REF(&value); - ZEPHIR_CALL_FUNCTION(NULL, "settype", NULL, 10, &value, &cast); - ZEPHIR_UNREF(&value); - zephir_check_call_status(); - } - RETURN_CCTOR(&value); -} - -static PHP_METHOD(Phalcon_Helper_Arr, group) -{ - zend_bool _2$$3, _3$$3, _5$$7, _6$$7; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *collection_param = NULL, *method, method_sub, element, key, *_0, _1; - zval collection, filtered; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&filtered); - ZVAL_UNDEF(&method_sub); - ZVAL_UNDEF(&element); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ARRAY(collection) - Z_PARAM_ZVAL(method) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &collection_param, &method); - ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); - - - ZEPHIR_INIT_VAR(&filtered); - array_init(&filtered); - zephir_is_iterable(&collection, 0, "phalcon/Helper/Arr.zep", 201); - if (Z_TYPE_P(&collection) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&collection), _0) - { - ZEPHIR_INIT_NVAR(&element); - ZVAL_COPY(&element, _0); - _2$$3 = Z_TYPE_P(method) != IS_STRING; - if (_2$$3) { - _2$$3 = zephir_is_callable(method); +pp123: + ppch = *++PPCURSOR; + switch (ppch) { + case 'S': + case 's': goto pp183; + default: goto pp74; } - _3$$3 = _2$$3; - if (!(_3$$3)) { - _3$$3 = (zephir_function_exists(method) == SUCCESS); +pp124: + ppch = *++PPCURSOR; + switch (ppch) { + case 'N': + case 'n': goto pp184; + default: goto pp59; } - if (_3$$3) { - ZEPHIR_CALL_FUNCTION(&key, "call_user_func", &_4, 255, method, &element); - zephir_check_call_status(); - zephir_array_update_multi(&filtered, &element, SL("za"), 2, &key); - } else if (Z_TYPE_P(&element) == IS_OBJECT) { - ZEPHIR_OBS_NVAR(&key); - zephir_read_property_zval(&key, &element, method, PH_NOISY_CC); - zephir_array_update_multi(&filtered, &element, SL("za"), 2, &key); - } else if (zephir_array_isset(&element, method)) { - ZEPHIR_OBS_NVAR(&key); - zephir_array_fetch(&key, &element, method, PH_NOISY, "phalcon/Helper/Arr.zep", 196); - zephir_array_update_multi(&filtered, &element, SL("za"), 2, &key); +pp125: + ppch = *++PPCURSOR; + switch (ppch) { + case 'O': + case 'o': goto pp185; + default: goto pp59; } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &collection, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &collection, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; +pp126: + ppch = *++PPCURSOR; + switch (ppch) { + case 'L': + case 'l': goto pp186; + case 'S': + case 's': goto pp187; + default: goto pp74; } - ZEPHIR_CALL_METHOD(&element, &collection, "current", NULL, 0); - zephir_check_call_status(); - _5$$7 = Z_TYPE_P(method) != IS_STRING; - if (_5$$7) { - _5$$7 = zephir_is_callable(method); - } - _6$$7 = _5$$7; - if (!(_6$$7)) { - _6$$7 = (zephir_function_exists(method) == SUCCESS); - } - if (_6$$7) { - ZEPHIR_CALL_FUNCTION(&key, "call_user_func", &_4, 255, method, &element); - zephir_check_call_status(); - zephir_array_update_multi(&filtered, &element, SL("za"), 2, &key); - } else if (Z_TYPE_P(&element) == IS_OBJECT) { - ZEPHIR_OBS_NVAR(&key); - zephir_read_property_zval(&key, &element, method, PH_NOISY_CC); - zephir_array_update_multi(&filtered, &element, SL("za"), 2, &key); - } else if (zephir_array_isset(&element, method)) { - ZEPHIR_OBS_NVAR(&key); - zephir_array_fetch(&key, &element, method, PH_NOISY, "phalcon/Helper/Arr.zep", 196); - zephir_array_update_multi(&filtered, &element, SL("za"), 2, &key); - } - ZEPHIR_CALL_METHOD(NULL, &collection, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&element); - RETURN_CTOR(&filtered); -} - -static PHP_METHOD(Phalcon_Helper_Arr, has) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *collection_param = NULL, *index, index_sub; - zval collection; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&index_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ARRAY(collection) - Z_PARAM_ZVAL(index) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &collection_param, &index); - ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); - - - RETURN_MM_BOOL(zephir_array_isset(&collection, index)); -} - -static PHP_METHOD(Phalcon_Helper_Arr, isUnique) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *collection_param = NULL, _0; - zval collection; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(collection) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &collection_param); - ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); - - - ZEPHIR_CALL_FUNCTION(&_0, "array_unique", NULL, 256, &collection); - zephir_check_call_status(); - RETURN_MM_BOOL(zephir_fast_count_int(&collection) == zephir_fast_count_int(&_0)); -} - -static PHP_METHOD(Phalcon_Helper_Arr, last) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *collection_param = NULL, *method = NULL, method_sub, __$null, filtered; - zval collection; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&method_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&filtered); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(collection) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(method) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &collection_param, &method); - ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); - if (!method) { - method = &method_sub; - method = &__$null; - } - - - ZEPHIR_CALL_SELF(&filtered, "filter", &_0, 251, &collection, method); - zephir_check_call_status(); - ZEPHIR_MAKE_REF(&filtered); - ZEPHIR_RETURN_CALL_FUNCTION("end", NULL, 257, &filtered); - ZEPHIR_UNREF(&filtered); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Helper_Arr, lastKey) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *collection_param = NULL, *method = NULL, method_sub, __$null, filtered; - zval collection; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&method_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&filtered); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(collection) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(method) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &collection_param, &method); - ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); - if (!method) { - method = &method_sub; - method = &__$null; - } - - - ZEPHIR_CALL_SELF(&filtered, "filter", &_0, 251, &collection, method); - zephir_check_call_status(); - ZEPHIR_MAKE_REF(&filtered); - ZEPHIR_CALL_FUNCTION(NULL, "end", NULL, 257, &filtered); - ZEPHIR_UNREF(&filtered); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_FUNCTION("key", NULL, 253, &filtered); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Helper_Arr, order) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval order; - zval *collection_param = NULL, *attribute, attribute_sub, *order_param = NULL, item, key, *_0, _1; - zval collection, sorted; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&sorted); - ZVAL_UNDEF(&attribute_sub); - ZVAL_UNDEF(&item); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&order); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_ARRAY(collection) - Z_PARAM_ZVAL(attribute) - Z_PARAM_OPTIONAL - Z_PARAM_STR(order) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &collection_param, &attribute, &order_param); - ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); - if (!order_param) { - ZEPHIR_INIT_VAR(&order); - ZVAL_STRING(&order, "asc"); - } else { - zephir_get_strval(&order, order_param); - } - - - ZEPHIR_INIT_VAR(&sorted); - array_init(&sorted); - zephir_is_iterable(&collection, 0, "phalcon/Helper/Arr.zep", 297); - if (Z_TYPE_P(&collection) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&collection), _0) - { - ZEPHIR_INIT_NVAR(&item); - ZVAL_COPY(&item, _0); - if (Z_TYPE_P(&item) == IS_OBJECT) { - ZEPHIR_OBS_NVAR(&key); - zephir_read_property_zval(&key, &item, attribute, PH_NOISY_CC); - } else { - ZEPHIR_OBS_NVAR(&key); - zephir_array_fetch(&key, &item, attribute, PH_NOISY, "phalcon/Helper/Arr.zep", 291); +pp127: + ppch = *++PPCURSOR; + switch (ppch) { + case 'S': + case 's': goto pp188; + default: goto pp59; } - zephir_array_update_zval(&sorted, &key, &item, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &collection, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &collection, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; +pp128: + ppch = *++PPCURSOR; + switch (ppch) { + case 'S': + case 's': goto pp189; + default: goto pp59; } - ZEPHIR_CALL_METHOD(&item, &collection, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&item) == IS_OBJECT) { - ZEPHIR_OBS_NVAR(&key); - zephir_read_property_zval(&key, &item, attribute, PH_NOISY_CC); - } else { - ZEPHIR_OBS_NVAR(&key); - zephir_array_fetch(&key, &item, attribute, PH_NOISY, "phalcon/Helper/Arr.zep", 291); - } - zephir_array_update_zval(&sorted, &key, &item, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &collection, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&item); - if (ZEPHIR_IS_STRING_IDENTICAL(&order, "asc")) { - ZEPHIR_MAKE_REF(&sorted); - ZEPHIR_CALL_FUNCTION(NULL, "ksort", NULL, 258, &sorted); - ZEPHIR_UNREF(&sorted); - zephir_check_call_status(); - } else { - ZEPHIR_MAKE_REF(&sorted); - ZEPHIR_CALL_FUNCTION(NULL, "krsort", NULL, 259, &sorted); - ZEPHIR_UNREF(&sorted); - zephir_check_call_status(); - } - ZEPHIR_RETURN_CALL_FUNCTION("array_values", NULL, 12, &sorted); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Helper_Arr, pluck) -{ - zend_bool _2$$3, _3$$3, _6$$6, _7$$6; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval element; - zval *collection_param = NULL, *element_param = NULL, item, *_0, _1, _4$$4, _5$$5, _8$$7, _9$$8; - zval collection, filtered; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&filtered); - ZVAL_UNDEF(&item); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_8$$7); - ZVAL_UNDEF(&_9$$8); - ZVAL_UNDEF(&element); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ARRAY(collection) - Z_PARAM_STR(element) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &collection_param, &element_param); - ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); - zephir_get_strval(&element, element_param); - - - ZEPHIR_INIT_VAR(&filtered); - array_init(&filtered); - zephir_is_iterable(&collection, 0, "phalcon/Helper/Arr.zep", 329); - if (Z_TYPE_P(&collection) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&collection), _0) - { - ZEPHIR_INIT_NVAR(&item); - ZVAL_COPY(&item, _0); - _2$$3 = Z_TYPE_P(&item) == IS_OBJECT; - if (_2$$3) { - _2$$3 = zephir_isset_property_zval(&item, &element); +pp129: + ppch = *++PPCURSOR; + switch (ppch) { + case 'D': + case 'd': goto pp190; + default: goto pp59; } - _3$$3 = Z_TYPE_P(&item) == IS_ARRAY; - if (_3$$3) { - _3$$3 = zephir_array_isset(&item, &element); +pp130: + ppch = *++PPCURSOR; + switch (ppch) { + case 'I': + case 'i': goto pp192; + default: goto pp59; } - if (_2$$3) { - ZEPHIR_OBS_NVAR(&_4$$4); - zephir_read_property_zval(&_4$$4, &item, &element, PH_NOISY_CC); - zephir_array_append(&filtered, &_4$$4, PH_SEPARATE, "phalcon/Helper/Arr.zep", 323); - } else if (_3$$3) { - zephir_array_fetch(&_5$$5, &item, &element, PH_NOISY | PH_READONLY, "phalcon/Helper/Arr.zep", 325); - zephir_array_append(&filtered, &_5$$5, PH_SEPARATE, "phalcon/Helper/Arr.zep", 325); +pp131: + ppch = *++PPCURSOR; + switch (ppch) { + case 'I': + case 'i': goto pp192; + default: goto pp74; } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &collection, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &collection, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; +pp132: + ppch = *++PPCURSOR; + switch (ppch) { + case 'L': + case 'l': goto pp193; + default: goto pp74; } - ZEPHIR_CALL_METHOD(&item, &collection, "current", NULL, 0); - zephir_check_call_status(); - _6$$6 = Z_TYPE_P(&item) == IS_OBJECT; - if (_6$$6) { - _6$$6 = zephir_isset_property_zval(&item, &element); - } - _7$$6 = Z_TYPE_P(&item) == IS_ARRAY; - if (_7$$6) { - _7$$6 = zephir_array_isset(&item, &element); - } - if (_6$$6) { - ZEPHIR_OBS_NVAR(&_8$$7); - zephir_read_property_zval(&_8$$7, &item, &element, PH_NOISY_CC); - zephir_array_append(&filtered, &_8$$7, PH_SEPARATE, "phalcon/Helper/Arr.zep", 323); - } else if (_7$$6) { - zephir_array_fetch(&_9$$8, &item, &element, PH_NOISY | PH_READONLY, "phalcon/Helper/Arr.zep", 325); - zephir_array_append(&filtered, &_9$$8, PH_SEPARATE, "phalcon/Helper/Arr.zep", 325); - } - ZEPHIR_CALL_METHOD(NULL, &collection, "next", NULL, 0); - zephir_check_call_status(); +pp133: + ppch = *++PPCURSOR; + switch (ppch) { + case 'R': + case 'r': goto pp194; + default: goto pp59; + } +pp134: + ppch = *++PPCURSOR; + switch (ppch) { + case 'O': + case 'o': goto pp196; + default: goto pp59; + } +pp135: + ppch = *++PPCURSOR; + switch (ppch) { + case 'L': + case 'l': goto pp197; + default: goto pp59; + } +pp136: + ppch = *++PPCURSOR; + switch (ppch) { + case 'O': + case 'o': goto pp198; + default: goto pp59; + } +pp137: + ppch = *++PPCURSOR; + switch (ppch) { + case 'V': + case 'v': goto pp199; + default: goto pp59; + } +pp138: + ppch = *++PPCURSOR; + switch (ppch) { + case 'I': + case 'i': goto pp200; + default: goto pp59; + } +pp139: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'o': + case 'p': + case 'q': + case 'r': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + case 'N': + case 'n': goto pp201; + case 'S': + case 's': goto pp202; + case 'T': + case 't': goto pp203; + default: goto pp140; + } +pp140: + { + token->opcode = PHQL_T_IN; + return 0; } - } - ZEPHIR_INIT_NVAR(&item); - RETURN_CTOR(&filtered); -} - -static PHP_METHOD(Phalcon_Helper_Arr, set) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *collection_param = NULL, *value, value_sub, *index = NULL, index_sub, __$null; - zval collection; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&index_sub); - ZVAL_NULL(&__$null); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_ARRAY(collection) - Z_PARAM_ZVAL(value) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(index) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &collection_param, &value, &index); - ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); - if (!index) { - index = &index_sub; - index = &__$null; - } - - - if (Z_TYPE_P(index) == IS_NULL) { - zephir_array_append(&collection, value, PH_SEPARATE, "phalcon/Helper/Arr.zep", 347); - } else { - zephir_array_update_zval(&collection, index, value, PH_COPY | PH_SEPARATE); - } - RETURN_CTOR(&collection); -} - -static PHP_METHOD(Phalcon_Helper_Arr, sliceLeft) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long elements, ZEPHIR_LAST_CALL_STATUS; - zval *collection_param = NULL, *elements_param = NULL, _0, _1; - zval collection; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(collection) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(elements) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &collection_param, &elements_param); - ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); - if (!elements_param) { - elements = 1; - } else { - elements = zephir_get_intval(elements_param); - } - - - ZVAL_LONG(&_0, 0); - ZVAL_LONG(&_1, elements); - ZEPHIR_RETURN_CALL_FUNCTION("array_slice", NULL, 260, &collection, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Helper_Arr, sliceRight) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long elements, ZEPHIR_LAST_CALL_STATUS; - zval *collection_param = NULL, *elements_param = NULL, _0; - zval collection; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(collection) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(elements) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &collection_param, &elements_param); - ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); - if (!elements_param) { - elements = 1; - } else { - elements = zephir_get_intval(elements_param); - } - - - ZVAL_LONG(&_0, elements); - ZEPHIR_RETURN_CALL_FUNCTION("array_slice", NULL, 260, &collection, &_0); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Helper_Arr, split) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *collection_param = NULL, _0, _1; - zval collection; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(collection) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &collection_param); - ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); - - - zephir_create_array(return_value, 2, 0); - ZEPHIR_INIT_VAR(&_0); - zephir_array_keys(&_0, &collection); - zephir_array_fast_append(return_value, &_0); - ZEPHIR_CALL_FUNCTION(&_1, "array_values", NULL, 12, &collection); - zephir_check_call_status(); - zephir_array_fast_append(return_value, &_1); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Helper_Arr, toObject) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *collection_param = NULL; - zval collection; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(collection) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &collection_param); - ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); - - - zephir_convert_to_object(&collection); - RETURN_CTOR(&collection); -} - -static PHP_METHOD(Phalcon_Helper_Arr, validateAll) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL; - zval *collection_param = NULL, *method = NULL, method_sub, __$null, _0; - zval collection; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&method_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(collection) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(method) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &collection_param, &method); - ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); - if (!method) { - method = &method_sub; - method = &__$null; - } - - - ZEPHIR_CALL_SELF(&_0, "filter", &_1, 251, &collection, method); - zephir_check_call_status(); - RETURN_MM_BOOL(zephir_fast_count_int(&_0) == zephir_fast_count_int(&collection)); -} - -static PHP_METHOD(Phalcon_Helper_Arr, validateAny) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL; - zval *collection_param = NULL, *method = NULL, method_sub, __$null, _0; - zval collection; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&method_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(collection) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(method) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &collection_param, &method); - ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); - if (!method) { - method = &method_sub; - method = &__$null; - } - - - ZEPHIR_CALL_SELF(&_0, "filter", &_1, 251, &collection, method); - zephir_check_call_status(); - RETURN_MM_BOOL(zephir_fast_count_int(&_0) > 0); -} - -static PHP_METHOD(Phalcon_Helper_Arr, whiteList) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *collection_param = NULL, *whiteList_param = NULL, _0, _1, _2; - zval collection, whiteList; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&whiteList); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ARRAY(collection) - Z_PARAM_ARRAY(whiteList) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &collection_param, &whiteList_param); - ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); - ZEPHIR_OBS_COPY_OR_DUP(&whiteList, whiteList_param); - - - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_INIT_NVAR(&_0); - zephir_create_closure_ex(&_0, NULL, phalcon_7__closure_ce, SL("__invoke")); - ZEPHIR_CALL_FUNCTION(&_1, "array_filter", NULL, 248, &whiteList, &_0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&whiteList, &_1); - ZEPHIR_CALL_FUNCTION(&_2, "array_flip", NULL, 174, &whiteList); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_FUNCTION("array_intersect_key", NULL, 2, &collection, &_2); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Helper_Base64) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Helper, Base64, phalcon, helper_base64, phalcon_helper_base64_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Helper_Base64, encodeUrl) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *input_param = NULL, _0, _1, _2, _3, _4; - zval input; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&input); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(input) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &input_param); - if (UNEXPECTED(Z_TYPE_P(input_param) != IS_STRING && Z_TYPE_P(input_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'input' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(input_param) == IS_STRING)) { - zephir_get_strval(&input, input_param); - } else { - ZEPHIR_INIT_VAR(&input); - } - - - ZEPHIR_CALL_FUNCTION(&_0, "base64_encode", NULL, 191, &input); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "+/"); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "-_"); - ZEPHIR_CALL_FUNCTION(&_3, "strtr", NULL, 5, &_0, &_1, &_2); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "="); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, ""); - ZEPHIR_INIT_VAR(&_4); - zephir_fast_str_replace(&_4, &_1, &_2, &_3); - RETURN_CCTOR(&_4); -} - -static PHP_METHOD(Phalcon_Helper_Base64, decodeUrl) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, remainder = 0; - zval *input_param = NULL, data, _3, _4, _5, _0$$3, _1$$3, _2$$3; - zval input; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&input); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(input) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &input_param); - if (UNEXPECTED(Z_TYPE_P(input_param) != IS_STRING && Z_TYPE_P(input_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'input' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(input_param) == IS_STRING)) { - zephir_get_strval(&input, input_param); - } else { - ZEPHIR_INIT_VAR(&input); - } - - - remainder = (long) (zephir_safe_mod_long_long(zephir_fast_strlen_ev(&input), 4)); - if (remainder) { - ZEPHIR_INIT_VAR(&_0$$3); - ZVAL_STRING(&_0$$3, "="); - ZVAL_LONG(&_1$$3, (4 - remainder)); - ZEPHIR_CALL_FUNCTION(&_2$$3, "str_repeat", NULL, 1, &_0$$3, &_1$$3); - zephir_check_call_status(); - zephir_concat_self(&input, &_2$$3); - } - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "-_"); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "+/"); - ZEPHIR_CALL_FUNCTION(&_5, "strtr", NULL, 5, &input, &_3, &_4); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&data, "base64_decode", NULL, 188, &_5); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&data)) { - ZEPHIR_INIT_NVAR(&data); - ZVAL_STRING(&data, ""); - } - RETURN_CCTOR(&data); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Helper_Exception) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Helper, Exception, phalcon, helper_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Helper_Fs) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Helper, Fs, phalcon, helper_fs, phalcon_helper_fs_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Helper_Fs, basename) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *uri_param = NULL, *suffix = NULL, suffix_sub, __$null, filename, matches, _0, _1, _2, _3, _4, _5, _6$$3, _7$$3, _8$$3, _9$$3; - zval uri; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&uri); - ZVAL_UNDEF(&suffix_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&filename); - ZVAL_UNDEF(&matches); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_8$$3); - ZVAL_UNDEF(&_9$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(uri) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(suffix) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &uri_param, &suffix); - if (UNEXPECTED(Z_TYPE_P(uri_param) != IS_STRING && Z_TYPE_P(uri_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'uri' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(uri_param) == IS_STRING)) { - zephir_get_strval(&uri, uri_param); - } else { - ZEPHIR_INIT_VAR(&uri); - } - if (!suffix) { - suffix = &suffix_sub; - suffix = &__$null; - } - - - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "/"); - zephir_fast_trim(&_0, &uri, &_1, ZEPHIR_TRIM_RIGHT); - zephir_get_strval(&uri, &_0); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "/"); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "@"); - ZEPHIR_CALL_FUNCTION(&_4, "preg_quote", NULL, 261, &_2, &_3); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_5); - ZEPHIR_CONCAT_SVS(&_5, "@[^", &_4, "]+$@"); - ZEPHIR_INIT_NVAR(&_2); - zephir_preg_match(&_2, &_5, &uri, &matches, 0, 0 , 0 ); - if (zephir_is_true(&_2)) { - ZEPHIR_OBS_VAR(&filename); - zephir_array_fetch_long(&filename, &matches, 0, PH_NOISY, "phalcon/Helper/Fs.zep", 37); - } else { - ZEPHIR_INIT_NVAR(&filename); - ZVAL_STRING(&filename, ""); - } - if (zephir_is_true(suffix)) { - ZEPHIR_INIT_VAR(&_6$$3); - ZVAL_STRING(&_6$$3, "@"); - ZEPHIR_CALL_FUNCTION(&_7$$3, "preg_quote", NULL, 261, suffix, &_6$$3); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_8$$3); - ZEPHIR_CONCAT_SVS(&_8$$3, "@", &_7$$3, "$@"); - ZEPHIR_INIT_NVAR(&_6$$3); - ZVAL_STRING(&_6$$3, ""); - ZEPHIR_CALL_FUNCTION(&_9$$3, "preg_replace", NULL, 50, &_8$$3, &_6$$3, &filename); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&filename, &_9$$3); - } - RETURN_CCTOR(&filename); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Helper_Json) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Helper, Json, phalcon, helper_json, phalcon_helper_json_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Helper_Json, decode) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long depth, options, ZEPHIR_LAST_CALL_STATUS; - zend_bool associative; - zval *data_param = NULL, *associative_param = NULL, *depth_param = NULL, *options_param = NULL, decoded, _0, _1, _2, _3, _4$$3, _5$$3, _6$$3; - zval data; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&decoded); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 4) - Z_PARAM_STR(data) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(associative) - Z_PARAM_LONG(depth) - Z_PARAM_LONG(options) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 3, &data_param, &associative_param, &depth_param, &options_param); - if (UNEXPECTED(Z_TYPE_P(data_param) != IS_STRING && Z_TYPE_P(data_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'data' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(data_param) == IS_STRING)) { - zephir_get_strval(&data, data_param); - } else { - ZEPHIR_INIT_VAR(&data); - } - if (!associative_param) { - associative = 0; - } else { - associative = zephir_get_boolval(associative_param); - } - if (!depth_param) { - depth = 512; - } else { - depth = zephir_get_intval(depth_param); - } - if (!options_param) { - options = 0; - } else { - options = zephir_get_intval(options_param); - } - - - ZVAL_BOOL(&_0, (associative ? 1 : 0)); - ZVAL_LONG(&_1, depth); - ZVAL_LONG(&_2, options); - ZEPHIR_INIT_VAR(&decoded); - zephir_json_decode(&decoded, &data, zephir_get_intval(&_0) ); - ZEPHIR_CALL_FUNCTION(&_3, "json_last_error", NULL, 262); - zephir_check_call_status(); - if (UNEXPECTED(!ZEPHIR_IS_LONG_IDENTICAL(&_3, 0))) { - ZEPHIR_INIT_VAR(&_4$$3); - object_init_ex(&_4$$3, spl_ce_InvalidArgumentException); - ZEPHIR_CALL_FUNCTION(&_5$$3, "json_last_error_msg", NULL, 263); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_6$$3); - ZEPHIR_CONCAT_SV(&_6$$3, "json_decode error: ", &_5$$3); - ZEPHIR_CALL_METHOD(NULL, &_4$$3, "__construct", NULL, 40, &_6$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_4$$3, "phalcon/Helper/Json.zep", 60); - ZEPHIR_MM_RESTORE(); - return; - } - RETURN_CCTOR(&decoded); -} - -static PHP_METHOD(Phalcon_Helper_Json, encode) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long options, depth, ZEPHIR_LAST_CALL_STATUS; - zval *data, data_sub, *options_param = NULL, *depth_param = NULL, encoded, _0, _1, _2, _3$$3, _4$$3, _5$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&data_sub); - ZVAL_UNDEF(&encoded); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ZVAL(data) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(options) - Z_PARAM_LONG(depth) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &data, &options_param, &depth_param); - if (!options_param) { - options = 0; - } else { - options = zephir_get_intval(options_param); - } - if (!depth_param) { - depth = 512; - } else { - depth = zephir_get_intval(depth_param); - } - - - ZVAL_LONG(&_0, options); - ZVAL_LONG(&_1, depth); - ZEPHIR_INIT_VAR(&encoded); - zephir_json_encode(&encoded, data, zephir_get_intval(&_0) ); - ZEPHIR_CALL_FUNCTION(&_2, "json_last_error", NULL, 262); - zephir_check_call_status(); - if (UNEXPECTED(!ZEPHIR_IS_LONG_IDENTICAL(&_2, 0))) { - ZEPHIR_INIT_VAR(&_3$$3); - object_init_ex(&_3$$3, spl_ce_InvalidArgumentException); - ZEPHIR_CALL_FUNCTION(&_4$$3, "json_last_error_msg", NULL, 263); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_5$$3); - ZEPHIR_CONCAT_SV(&_5$$3, "json_encode error: ", &_4$$3); - ZEPHIR_CALL_METHOD(NULL, &_3$$3, "__construct", NULL, 40, &_5$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_3$$3, "phalcon/Helper/Json.zep", 104); - ZEPHIR_MM_RESTORE(); - return; - } - RETURN_CCTOR(&encoded); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Helper_Number) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Helper, Number, phalcon, helper_number, phalcon_helper_number_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Helper_Number, between) -{ - zend_bool _0; - zval *value_param = NULL, *from_param = NULL, *to_param = NULL; - zend_long value, from, to; - zval *this_ptr = getThis(); - -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_LONG(value) - Z_PARAM_LONG(from) - Z_PARAM_LONG(to) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(3, 0, &value_param, &from_param, &to_param); - value = zephir_get_intval(value_param); - from = zephir_get_intval(from_param); - to = zephir_get_intval(to_param); - - - _0 = value >= from; - if (_0) { - _0 = value <= to; - } - RETURN_BOOL(_0); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Helper_Str) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Helper, Str, phalcon, helper_str, phalcon_helper_str_method_entry, 0); - - zephir_declare_class_constant_long(phalcon_helper_str_ce, SL("RANDOM_ALNUM"), 0); - - zephir_declare_class_constant_long(phalcon_helper_str_ce, SL("RANDOM_ALPHA"), 1); - - zephir_declare_class_constant_long(phalcon_helper_str_ce, SL("RANDOM_DISTINCT"), 5); - - zephir_declare_class_constant_long(phalcon_helper_str_ce, SL("RANDOM_HEXDEC"), 2); - - zephir_declare_class_constant_long(phalcon_helper_str_ce, SL("RANDOM_NOZERO"), 4); - - zephir_declare_class_constant_long(phalcon_helper_str_ce, SL("RANDOM_NUMERIC"), 3); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Helper_Str, camelize) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *text_param = NULL, *delimiter = NULL, delimiter_sub, __$null, _0; - zval text; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&delimiter_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(delimiter) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &text_param, &delimiter); - if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { - zephir_get_strval(&text, text_param); - } else { - ZEPHIR_INIT_VAR(&text); - } - if (!delimiter) { - delimiter = &delimiter_sub; - delimiter = &__$null; - } - - - ZEPHIR_INIT_VAR(&_0); - zephir_camelize(&_0, &text, delimiter ); - RETURN_CCTOR(&_0); -} - -static PHP_METHOD(Phalcon_Helper_Str, concat) -{ - zval argument, arguments, data, first, last, prefix, delimiter, suffix, _1, _5, *_7, _8, _11, _9$$6, _10$$7; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL, *_2 = NULL, *_3 = NULL, *_4 = NULL, *_6 = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&argument); - ZVAL_UNDEF(&arguments); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&first); - ZVAL_UNDEF(&last); - ZVAL_UNDEF(&prefix); - ZVAL_UNDEF(&delimiter); - ZVAL_UNDEF(&suffix); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_9$$6); - ZVAL_UNDEF(&_10$$7); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&arguments); - zephir_get_args(&arguments); - if (UNEXPECTED(zephir_fast_count_int(&arguments) < 3)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_helper_exception_ce, "concat needs at least three parameters", "phalcon/Helper/Str.zep", 78); - return; - } - ZEPHIR_CALL_CE_STATIC(&delimiter, phalcon_helper_arr_ce, "first", &_0, 264, &arguments); - zephir_check_call_status(); - ZEPHIR_CALL_CE_STATIC(&_1, phalcon_helper_arr_ce, "sliceright", &_2, 265, &arguments); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&arguments, &_1); - ZEPHIR_CALL_CE_STATIC(&first, phalcon_helper_arr_ce, "first", &_0, 264, &arguments); - zephir_check_call_status(); - ZEPHIR_CALL_CE_STATIC(&last, phalcon_helper_arr_ce, "last", &_3, 266, &arguments); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&prefix); - ZVAL_STRING(&prefix, ""); - ZEPHIR_INIT_VAR(&suffix); - ZVAL_STRING(&suffix, ""); - ZEPHIR_INIT_VAR(&data); - array_init(&data); - ZEPHIR_CALL_SELF(&_1, "startswith", &_4, 17, &first, &delimiter); - zephir_check_call_status(); - if (zephir_is_true(&_1)) { - ZEPHIR_CPY_WRT(&prefix, &delimiter); - } - ZEPHIR_CALL_SELF(&_5, "endswith", &_6, 267, &last, &delimiter); - zephir_check_call_status(); - if (zephir_is_true(&_5)) { - ZEPHIR_CPY_WRT(&suffix, &delimiter); - } - zephir_is_iterable(&arguments, 0, "phalcon/Helper/Str.zep", 102); - if (Z_TYPE_P(&arguments) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&arguments), _7) - { - ZEPHIR_INIT_NVAR(&argument); - ZVAL_COPY(&argument, _7); - ZEPHIR_INIT_NVAR(&_9$$6); - zephir_fast_trim(&_9$$6, &argument, &delimiter, ZEPHIR_TRIM_BOTH); - zephir_array_append(&data, &_9$$6, PH_SEPARATE, "phalcon/Helper/Str.zep", 99); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &arguments, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_8, &arguments, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_8)) { - break; +pp141: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp142; } - ZEPHIR_CALL_METHOD(&argument, &arguments, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_10$$7); - zephir_fast_trim(&_10$$7, &argument, &delimiter, ZEPHIR_TRIM_BOTH); - zephir_array_append(&data, &_10$$7, PH_SEPARATE, "phalcon/Helper/Str.zep", 99); - ZEPHIR_CALL_METHOD(NULL, &arguments, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&argument); - ZEPHIR_INIT_VAR(&_11); - zephir_fast_join(&_11, &delimiter, &data); - ZEPHIR_CONCAT_VVV(return_value, &prefix, &_11, &suffix); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Helper_Str, countVowels) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *text_param = NULL, matches, _0, _1, _2, _3; - zval text; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&matches); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(text) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &text_param); - if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { - zephir_get_strval(&text, text_param); - } else { - ZEPHIR_INIT_VAR(&text); - } - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "/[aeiou]/i"); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "/[aeiou]/i"); - zephir_preg_match(&_1, &_2, &text, &matches, 1, 0 , 0 ); - zephir_array_fetch_long(&_3, &matches, 0, PH_NOISY | PH_READONLY, "phalcon/Helper/Str.zep", 119); - RETURN_MM_LONG(zephir_fast_count_int(&_3)); -} - -static PHP_METHOD(Phalcon_Helper_Str, decapitalize) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool upperRest; - zval *text_param = NULL, *upperRest_param = NULL, *encoding_param = NULL, substr, suffix, _0$$3, _1$$4, _2$$9, _3$$9, _4$$9, _5$$9, _6$$10, _7$$10, _8$$10, _9$$10; - zval text, encoding; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&encoding); - ZVAL_UNDEF(&substr); - ZVAL_UNDEF(&suffix); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$9); - ZVAL_UNDEF(&_3$$9); - ZVAL_UNDEF(&_4$$9); - ZVAL_UNDEF(&_5$$9); - ZVAL_UNDEF(&_6$$10); - ZVAL_UNDEF(&_7$$10); - ZVAL_UNDEF(&_8$$10); - ZVAL_UNDEF(&_9$$10); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(upperRest) - Z_PARAM_STR(encoding) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &text_param, &upperRest_param, &encoding_param); - if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { - zephir_get_strval(&text, text_param); - } else { - ZEPHIR_INIT_VAR(&text); - } - if (!upperRest_param) { - upperRest = 0; - } else { - upperRest = zephir_get_boolval(upperRest_param); - } - if (!encoding_param) { - ZEPHIR_INIT_VAR(&encoding); - ZVAL_STRING(&encoding, "UTF-8"); - } else { - if (UNEXPECTED(Z_TYPE_P(encoding_param) != IS_STRING && Z_TYPE_P(encoding_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'encoding' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(encoding_param) == IS_STRING)) { - zephir_get_strval(&encoding, encoding_param); - } else { - ZEPHIR_INIT_VAR(&encoding); - } - } - - - if ((zephir_function_exists_ex(ZEND_STRL("mb_substr")) == SUCCESS)) { - ZVAL_LONG(&_0$$3, 1); - ZEPHIR_CALL_FUNCTION(&substr, "mb_substr", NULL, 184, &text, &_0$$3); - zephir_check_call_status(); - } else { - ZVAL_LONG(&_1$$4, 1); - ZEPHIR_INIT_NVAR(&substr); - zephir_substr(&substr, &text, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - } - if (upperRest) { - if ((zephir_function_exists_ex(ZEND_STRL("mb_strtoupper")) == SUCCESS)) { - ZEPHIR_CALL_FUNCTION(&suffix, "mb_strtoupper", NULL, 268, &substr, &encoding); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(&suffix, &substr, "upper", NULL, 0); - zephir_check_call_status(); - } - } else { - ZEPHIR_CPY_WRT(&suffix, &substr); - } - if ((zephir_function_exists_ex(ZEND_STRL("mb_strtolower")) == SUCCESS)) { - ZVAL_LONG(&_2$$9, 0); - ZVAL_LONG(&_3$$9, 1); - ZEPHIR_CALL_FUNCTION(&_4$$9, "mb_substr", NULL, 184, &text, &_2$$9, &_3$$9); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_5$$9, "mb_strtolower", NULL, 25, &_4$$9, &encoding); - zephir_check_call_status(); - ZEPHIR_CONCAT_VV(return_value, &_5$$9, &suffix); - RETURN_MM(); - } else { - ZEPHIR_INIT_VAR(&_6$$10); - ZVAL_LONG(&_7$$10, 0); - ZVAL_LONG(&_8$$10, 1); - ZEPHIR_INIT_VAR(&_9$$10); - zephir_substr(&_9$$10, &text, 0 , 1 , 0); - zephir_fast_strtolower(&_6$$10, &_9$$10); - ZEPHIR_CONCAT_VV(return_value, &_6$$10, &suffix); - RETURN_MM(); - } -} - -static PHP_METHOD(Phalcon_Helper_Str, decrement) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *text_param = NULL, *separator_param = NULL, parts, number, _1, _0$$4; - zval text, separator; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&separator); - ZVAL_UNDEF(&parts); - ZVAL_UNDEF(&number); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_0$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_STR(separator) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &text_param, &separator_param); - zephir_get_strval(&text, text_param); - if (!separator_param) { - ZEPHIR_INIT_VAR(&separator); - ZVAL_STRING(&separator, "_"); - } else { - zephir_get_strval(&separator, separator_param); - } - - - ZEPHIR_INIT_VAR(&parts); - zephir_fast_explode(&parts, &separator, &text, LONG_MAX); - ZEPHIR_OBS_VAR(&number); - if (zephir_array_isset_long_fetch(&number, &parts, 1, 0)) { - ZEPHIR_SEPARATE(&number); - zephir_decrement(&number); - if (ZEPHIR_LE_LONG(&number, 0)) { - zephir_array_fetch_long(&_0$$4, &parts, 0, PH_NOISY | PH_READONLY, "phalcon/Helper/Str.zep", 189); - RETURN_CTOR(&_0$$4); +pp142: + { + token->opcode = PHQL_T_IS; + return 0; } - } - zephir_array_fetch_long(&_1, &parts, 0, PH_NOISY | PH_READONLY, "phalcon/Helper/Str.zep", 193); - ZEPHIR_CONCAT_VVV(return_value, &_1, &separator, &number); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Helper_Str, dirFromFile) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *file_param = NULL, name, start, _0, _1, _7, _8, _9, _2$$3, _3$$3, _4$$3, _5$$4, _6$$4; - zval file; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&file); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&start); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(file) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &file_param); - if (UNEXPECTED(Z_TYPE_P(file_param) != IS_STRING && Z_TYPE_P(file_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'file' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(file_param) == IS_STRING)) { - zephir_get_strval(&file, file_param); - } else { - ZEPHIR_INIT_VAR(&file); - } - - - ZVAL_LONG(&_0, 8); - ZEPHIR_CALL_FUNCTION(&name, "pathinfo", NULL, 109, &file, &_0); - zephir_check_call_status(); - ZVAL_LONG(&_0, 0); - ZVAL_LONG(&_1, -2); - ZEPHIR_INIT_VAR(&start); - zephir_substr(&start, &name, 0 , -2 , 0); - if (!(ZEPHIR_IS_EMPTY(&start))) { - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_INIT_VAR(&_3$$3); - ZVAL_STRING(&_3$$3, "."); - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "-"); - zephir_fast_str_replace(&_2$$3, &_3$$3, &_4$$3, &start); - ZEPHIR_CPY_WRT(&start, &_2$$3); - } - if (!(zephir_is_true(&start))) { - ZVAL_LONG(&_5$$4, 0); - ZVAL_LONG(&_6$$4, 1); - ZEPHIR_INIT_NVAR(&start); - zephir_substr(&start, &name, 0 , 1 , 0); - } - ZEPHIR_INIT_VAR(&_7); - ZVAL_LONG(&_8, 2); - ZEPHIR_CALL_FUNCTION(&_9, "str_split", NULL, 108, &start, &_8); - zephir_check_call_status(); - zephir_fast_join_str(&_7, SL("/"), &_9); - ZEPHIR_CONCAT_VS(return_value, &_7, "/"); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Helper_Str, dirSeparator) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *directory_param = NULL, _0, _1; - zval directory; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&directory); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(directory) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &directory_param); - if (UNEXPECTED(Z_TYPE_P(directory_param) != IS_STRING && Z_TYPE_P(directory_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'directory' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(directory_param) == IS_STRING)) { - zephir_get_strval(&directory, directory_param); - } else { - ZEPHIR_INIT_VAR(&directory); - } - - - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "/"); - zephir_fast_trim(&_0, &directory, &_1, ZEPHIR_TRIM_RIGHT); - ZEPHIR_CONCAT_VS(return_value, &_0, "/"); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Helper_Str, dynamic) -{ - zend_bool _8$$6, _17$$8; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_11 = NULL, *_16 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *text_param = NULL, *leftDelimiter_param = NULL, *rightDelimiter_param = NULL, *separator_param = NULL, ldS, rdS, matches, match, words, word, sub, _0, _1, _4, _5, _2$$3, *_6$$5, _7$$5, _9$$6, _10$$6, _12$$6, _13$$6, _14$$6, _15$$6, _18$$8, _19$$8, _20$$8, _21$$8, _22$$8, _23$$8; - zval text, leftDelimiter, rightDelimiter, separator, pattern, _3$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&leftDelimiter); - ZVAL_UNDEF(&rightDelimiter); - ZVAL_UNDEF(&separator); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&ldS); - ZVAL_UNDEF(&rdS); - ZVAL_UNDEF(&matches); - ZVAL_UNDEF(&match); - ZVAL_UNDEF(&words); - ZVAL_UNDEF(&word); - ZVAL_UNDEF(&sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_9$$6); - ZVAL_UNDEF(&_10$$6); - ZVAL_UNDEF(&_12$$6); - ZVAL_UNDEF(&_13$$6); - ZVAL_UNDEF(&_14$$6); - ZVAL_UNDEF(&_15$$6); - ZVAL_UNDEF(&_18$$8); - ZVAL_UNDEF(&_19$$8); - ZVAL_UNDEF(&_20$$8); - ZVAL_UNDEF(&_21$$8); - ZVAL_UNDEF(&_22$$8); - ZVAL_UNDEF(&_23$$8); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 4) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_STR(leftDelimiter) - Z_PARAM_STR(rightDelimiter) - Z_PARAM_STR(separator) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 3, &text_param, &leftDelimiter_param, &rightDelimiter_param, &separator_param); - if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { - zephir_get_strval(&text, text_param); - } else { - ZEPHIR_INIT_VAR(&text); - } - if (!leftDelimiter_param) { - ZEPHIR_INIT_VAR(&leftDelimiter); - ZVAL_STRING(&leftDelimiter, "{"); - } else { - if (UNEXPECTED(Z_TYPE_P(leftDelimiter_param) != IS_STRING && Z_TYPE_P(leftDelimiter_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'leftDelimiter' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(leftDelimiter_param) == IS_STRING)) { - zephir_get_strval(&leftDelimiter, leftDelimiter_param); - } else { - ZEPHIR_INIT_VAR(&leftDelimiter); - } - } - if (!rightDelimiter_param) { - ZEPHIR_INIT_VAR(&rightDelimiter); - ZVAL_STRING(&rightDelimiter, "}"); - } else { - if (UNEXPECTED(Z_TYPE_P(rightDelimiter_param) != IS_STRING && Z_TYPE_P(rightDelimiter_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'rightDelimiter' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(rightDelimiter_param) == IS_STRING)) { - zephir_get_strval(&rightDelimiter, rightDelimiter_param); - } else { - ZEPHIR_INIT_VAR(&rightDelimiter); - } - } - if (!separator_param) { - ZEPHIR_INIT_VAR(&separator); - ZVAL_STRING(&separator, "|"); - } else { - if (UNEXPECTED(Z_TYPE_P(separator_param) != IS_STRING && Z_TYPE_P(separator_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'separator' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(separator_param) == IS_STRING)) { - zephir_get_strval(&separator, separator_param); - } else { - ZEPHIR_INIT_VAR(&separator); - } - } - - - ZEPHIR_CALL_FUNCTION(&_0, "substr_count", NULL, 269, &text, &leftDelimiter); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_1, "substr_count", NULL, 269, &text, &rightDelimiter); - zephir_check_call_status(); - if (UNEXPECTED(!ZEPHIR_IS_IDENTICAL(&_0, &_1))) { - ZEPHIR_INIT_VAR(&_2$$3); - object_init_ex(&_2$$3, spl_ce_RuntimeException); - ZEPHIR_INIT_VAR(&_3$$3); - ZEPHIR_CONCAT_SVS(&_3$$3, "Syntax error in string \"", &text, "\""); - ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", NULL, 270, &_3$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_2$$3, "phalcon/Helper/Str.zep", 290); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CALL_FUNCTION(&ldS, "preg_quote", NULL, 261, &leftDelimiter); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&rdS, "preg_quote", NULL, 261, &rightDelimiter); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_4); - ZEPHIR_CONCAT_SVSVVSVS(&_4, "/", &ldS, "([^", &ldS, &rdS, "]+)", &rdS, "/"); - zephir_get_strval(&pattern, &_4); - ZEPHIR_INIT_VAR(&matches); - array_init(&matches); - ZEPHIR_INIT_VAR(&_5); - zephir_preg_match(&_5, &pattern, &text, &matches, 1, 2 , 0 ); - if (!(zephir_is_true(&_5))) { - RETURN_CTOR(&text); - } - if (Z_TYPE_P(&matches) == IS_ARRAY) { - zephir_is_iterable(&matches, 0, "phalcon/Helper/Str.zep", 313); - if (Z_TYPE_P(&matches) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&matches), _6$$5) - { - ZEPHIR_INIT_NVAR(&match); - ZVAL_COPY(&match, _6$$5); - _8$$6 = !(zephir_array_isset_long(&match, 0)); - if (!(_8$$6)) { - _8$$6 = !(zephir_array_isset_long(&match, 1)); - } - if (_8$$6) { - continue; - } - zephir_array_fetch_long(&_9$$6, &match, 1, PH_NOISY | PH_READONLY, "phalcon/Helper/Str.zep", 308); - ZEPHIR_INIT_NVAR(&words); - zephir_fast_explode(&words, &separator, &_9$$6, LONG_MAX); - ZEPHIR_OBS_NVAR(&word); - ZEPHIR_CALL_FUNCTION(&_10$$6, "array_rand", &_11, 201, &words); - zephir_check_call_status(); - zephir_array_fetch(&word, &words, &_10$$6, PH_NOISY, "phalcon/Helper/Str.zep", 309); - zephir_array_fetch_long(&_12$$6, &match, 0, PH_NOISY | PH_READONLY, "phalcon/Helper/Str.zep", 310); - ZEPHIR_CALL_FUNCTION(&sub, "preg_quote", NULL, 261, &_12$$6, &separator); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_13$$6); - ZEPHIR_CONCAT_SVS(&_13$$6, "/", &sub, "/"); - ZVAL_LONG(&_14$$6, 1); - ZEPHIR_CALL_FUNCTION(&_15$$6, "preg_replace", &_16, 50, &_13$$6, &word, &text, &_14$$6); - zephir_check_call_status(); - zephir_get_strval(&text, &_15$$6); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &matches, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_7$$5, &matches, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_7$$5)) { - break; - } - ZEPHIR_CALL_METHOD(&match, &matches, "current", NULL, 0); - zephir_check_call_status(); - _17$$8 = !(zephir_array_isset_long(&match, 0)); - if (!(_17$$8)) { - _17$$8 = !(zephir_array_isset_long(&match, 1)); - } - if (_17$$8) { - continue; - } - zephir_array_fetch_long(&_18$$8, &match, 1, PH_NOISY | PH_READONLY, "phalcon/Helper/Str.zep", 308); - ZEPHIR_INIT_NVAR(&words); - zephir_fast_explode(&words, &separator, &_18$$8, LONG_MAX); - ZEPHIR_OBS_NVAR(&word); - ZEPHIR_CALL_FUNCTION(&_19$$8, "array_rand", &_11, 201, &words); - zephir_check_call_status(); - zephir_array_fetch(&word, &words, &_19$$8, PH_NOISY, "phalcon/Helper/Str.zep", 309); - zephir_array_fetch_long(&_20$$8, &match, 0, PH_NOISY | PH_READONLY, "phalcon/Helper/Str.zep", 310); - ZEPHIR_CALL_FUNCTION(&sub, "preg_quote", NULL, 261, &_20$$8, &separator); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_21$$8); - ZEPHIR_CONCAT_SVS(&_21$$8, "/", &sub, "/"); - ZVAL_LONG(&_22$$8, 1); - ZEPHIR_CALL_FUNCTION(&_23$$8, "preg_replace", &_16, 50, &_21$$8, &word, &text, &_22$$8); - zephir_check_call_status(); - zephir_get_strval(&text, &_23$$8); - ZEPHIR_CALL_METHOD(NULL, &matches, "next", NULL, 0); - zephir_check_call_status(); +pp143: + ppch = *++PPCURSOR; + switch (ppch) { + case 'I': + case 'i': goto pp204; + default: goto pp59; } +pp144: + ppch = *++PPCURSOR; + switch (ppch) { + case 'F': + case 'f': goto pp205; + default: goto pp59; + } +pp145: + ppch = *++PPCURSOR; + switch (ppch) { + case 'K': + case 'k': goto pp206; + case 'M': + case 'm': goto pp207; + default: goto pp59; + } +pp146: + ppch = *++PPCURSOR; + switch (ppch) { + case 'T': + case 't': goto pp208; + default: goto pp59; + } +pp147: + ppch = *++PPCURSOR; + switch (ppch) { + case 'L': + case 'l': goto pp210; + default: goto pp59; + } +pp148: + ppch = *++PPCURSOR; + switch (ppch) { + case 'F': + case 'f': goto pp211; + default: goto pp59; + } +pp149: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp150; + } +pp150: + { + token->opcode = PHQL_T_ON; + return 0; } - ZEPHIR_INIT_NVAR(&match); - } - RETURN_CTOR(&text); -} - -static PHP_METHOD(Phalcon_Helper_Str, endsWith) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_bool ignoreCase; - zval *text_param = NULL, *end_param = NULL, *ignoreCase_param = NULL, _0; - zval text, end; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&end); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(text) - Z_PARAM_STR(end) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(ignoreCase) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &text_param, &end_param, &ignoreCase_param); - zephir_get_strval(&text, text_param); - zephir_get_strval(&end, end_param); - if (!ignoreCase_param) { - ignoreCase = 1; - } else { - ignoreCase = zephir_get_boolval(ignoreCase_param); - } - - - ZVAL_BOOL(&_0, (ignoreCase ? 1 : 0)); - RETURN_MM_BOOL(zephir_end_with(&text, &end, &_0)); -} - -static PHP_METHOD(Phalcon_Helper_Str, firstBetween) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *text_param = NULL, *start_param = NULL, *end_param = NULL, __$true, _0$$3, _1$$3, _3$$4, _4$$4; - zval text, start, end, _2$$3, _5$$4, _6; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&start); - ZVAL_UNDEF(&end); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(text) - Z_PARAM_STR(start) - Z_PARAM_STR(end) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &text_param, &start_param, &end_param); - if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { - zephir_get_strval(&text, text_param); - } else { - ZEPHIR_INIT_VAR(&text); - } - if (UNEXPECTED(Z_TYPE_P(start_param) != IS_STRING && Z_TYPE_P(start_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'start' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(start_param) == IS_STRING)) { - zephir_get_strval(&start, start_param); - } else { - ZEPHIR_INIT_VAR(&start); - } - if (UNEXPECTED(Z_TYPE_P(end_param) != IS_STRING && Z_TYPE_P(end_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'end' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(end_param) == IS_STRING)) { - zephir_get_strval(&end, end_param); - } else { - ZEPHIR_INIT_VAR(&end); - } - - - if ((zephir_function_exists_ex(ZEND_STRL("mb_strstr")) == SUCCESS)) { - ZEPHIR_CALL_FUNCTION(&_0$$3, "mb_strstr", NULL, 271, &text, &start); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_1$$3, "mb_strstr", NULL, 271, &_0$$3, &end, &__$true); - zephir_check_call_status(); - zephir_cast_to_string(&_2$$3, &_1$$3); - ZEPHIR_CPY_WRT(&text, &_2$$3); - } else { - ZEPHIR_CALL_FUNCTION(&_3$$4, "strstr", NULL, 272, &text, &start); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_4$$4, "strstr", NULL, 272, &_3$$4, &end, &__$true); - zephir_check_call_status(); - zephir_cast_to_string(&_5$$4, &_4$$4); - ZEPHIR_CPY_WRT(&text, &_5$$4); - } - ZEPHIR_INIT_VAR(&_6); - ZEPHIR_CONCAT_VV(&_6, &start, &end); - zephir_fast_trim(return_value, &text, &_6, ZEPHIR_TRIM_BOTH); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Helper_Str, friendly) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool lowercase, _0$$3; - zval *text_param = NULL, *separator_param = NULL, *lowercase_param = NULL, *replace = NULL, replace_sub, __$null, friendly, matrix, search, _6, _7, _8, _9, _10, _12, *_2$$3, _3$$3, _1$$5, _4$$6, _5$$7, _11$$8; - zval text, separator; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&separator); - ZVAL_UNDEF(&replace_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&friendly); - ZVAL_UNDEF(&matrix); - ZVAL_UNDEF(&search); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_1$$5); - ZVAL_UNDEF(&_4$$6); - ZVAL_UNDEF(&_5$$7); - ZVAL_UNDEF(&_11$$8); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 4) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_STR(separator) - Z_PARAM_BOOL(lowercase) - Z_PARAM_ZVAL_OR_NULL(replace) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 3, &text_param, &separator_param, &lowercase_param, &replace); - if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { - zephir_get_strval(&text, text_param); - } else { - ZEPHIR_INIT_VAR(&text); - } - if (!separator_param) { - ZEPHIR_INIT_VAR(&separator); - ZVAL_STRING(&separator, "-"); - } else { - if (UNEXPECTED(Z_TYPE_P(separator_param) != IS_STRING && Z_TYPE_P(separator_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'separator' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(separator_param) == IS_STRING)) { - zephir_get_strval(&separator, separator_param); - } else { - ZEPHIR_INIT_VAR(&separator); - } - } - if (!lowercase_param) { - lowercase = 1; - } else { - lowercase = zephir_get_boolval(lowercase_param); - } - if (!replace) { - replace = &replace_sub; - ZEPHIR_CPY_WRT(replace, &__$null); - } else { - ZEPHIR_SEPARATE_PARAM(replace); - } - - - ZEPHIR_INIT_VAR(&matrix); - zephir_create_array(&matrix, 79, 0); - add_assoc_stringl_ex(&matrix, SL("Š"), SL("S")); - add_assoc_stringl_ex(&matrix, SL("š"), SL("s")); - add_assoc_stringl_ex(&matrix, SL("Đ"), SL("Dj")); - add_assoc_stringl_ex(&matrix, SL("Ð"), SL("Dj")); - add_assoc_stringl_ex(&matrix, SL("đ"), SL("dj")); - add_assoc_stringl_ex(&matrix, SL("Ž"), SL("Z")); - add_assoc_stringl_ex(&matrix, SL("ž"), SL("z")); - add_assoc_stringl_ex(&matrix, SL("Č"), SL("C")); - add_assoc_stringl_ex(&matrix, SL("č"), SL("c")); - add_assoc_stringl_ex(&matrix, SL("Ć"), SL("C")); - add_assoc_stringl_ex(&matrix, SL("ć"), SL("c")); - add_assoc_stringl_ex(&matrix, SL("À"), SL("A")); - add_assoc_stringl_ex(&matrix, SL("Á"), SL("A")); - add_assoc_stringl_ex(&matrix, SL("Â"), SL("A")); - add_assoc_stringl_ex(&matrix, SL("Ã"), SL("A")); - add_assoc_stringl_ex(&matrix, SL("Ä"), SL("A")); - add_assoc_stringl_ex(&matrix, SL("Å"), SL("A")); - add_assoc_stringl_ex(&matrix, SL("Æ"), SL("A")); - add_assoc_stringl_ex(&matrix, SL("Ç"), SL("C")); - add_assoc_stringl_ex(&matrix, SL("È"), SL("E")); - add_assoc_stringl_ex(&matrix, SL("É"), SL("E")); - add_assoc_stringl_ex(&matrix, SL("Ê"), SL("E")); - add_assoc_stringl_ex(&matrix, SL("Ë"), SL("E")); - add_assoc_stringl_ex(&matrix, SL("Ì"), SL("I")); - add_assoc_stringl_ex(&matrix, SL("Í"), SL("I")); - add_assoc_stringl_ex(&matrix, SL("Î"), SL("I")); - add_assoc_stringl_ex(&matrix, SL("Ï"), SL("I")); - add_assoc_stringl_ex(&matrix, SL("Ñ"), SL("N")); - add_assoc_stringl_ex(&matrix, SL("Ò"), SL("O")); - add_assoc_stringl_ex(&matrix, SL("Ó"), SL("O")); - add_assoc_stringl_ex(&matrix, SL("Ô"), SL("O")); - add_assoc_stringl_ex(&matrix, SL("Õ"), SL("O")); - add_assoc_stringl_ex(&matrix, SL("Ö"), SL("O")); - add_assoc_stringl_ex(&matrix, SL("Ø"), SL("O")); - add_assoc_stringl_ex(&matrix, SL("Ù"), SL("U")); - add_assoc_stringl_ex(&matrix, SL("Ú"), SL("U")); - add_assoc_stringl_ex(&matrix, SL("Û"), SL("U")); - add_assoc_stringl_ex(&matrix, SL("Ü"), SL("U")); - add_assoc_stringl_ex(&matrix, SL("Ý"), SL("Y")); - add_assoc_stringl_ex(&matrix, SL("Þ"), SL("B")); - add_assoc_stringl_ex(&matrix, SL("ß"), SL("Ss")); - add_assoc_stringl_ex(&matrix, SL("à"), SL("a")); - add_assoc_stringl_ex(&matrix, SL("á"), SL("a")); - add_assoc_stringl_ex(&matrix, SL("â"), SL("a")); - add_assoc_stringl_ex(&matrix, SL("ã"), SL("a")); - add_assoc_stringl_ex(&matrix, SL("ä"), SL("a")); - add_assoc_stringl_ex(&matrix, SL("å"), SL("a")); - add_assoc_stringl_ex(&matrix, SL("æ"), SL("a")); - add_assoc_stringl_ex(&matrix, SL("ç"), SL("c")); - add_assoc_stringl_ex(&matrix, SL("è"), SL("e")); - add_assoc_stringl_ex(&matrix, SL("é"), SL("e")); - add_assoc_stringl_ex(&matrix, SL("ê"), SL("e")); - add_assoc_stringl_ex(&matrix, SL("ë"), SL("e")); - add_assoc_stringl_ex(&matrix, SL("ì"), SL("i")); - add_assoc_stringl_ex(&matrix, SL("í"), SL("i")); - add_assoc_stringl_ex(&matrix, SL("î"), SL("i")); - add_assoc_stringl_ex(&matrix, SL("ï"), SL("i")); - add_assoc_stringl_ex(&matrix, SL("ð"), SL("o")); - add_assoc_stringl_ex(&matrix, SL("ñ"), SL("n")); - add_assoc_stringl_ex(&matrix, SL("ò"), SL("o")); - add_assoc_stringl_ex(&matrix, SL("ó"), SL("o")); - add_assoc_stringl_ex(&matrix, SL("ô"), SL("o")); - add_assoc_stringl_ex(&matrix, SL("õ"), SL("o")); - add_assoc_stringl_ex(&matrix, SL("ö"), SL("o")); - add_assoc_stringl_ex(&matrix, SL("ø"), SL("o")); - add_assoc_stringl_ex(&matrix, SL("ù"), SL("u")); - add_assoc_stringl_ex(&matrix, SL("ú"), SL("u")); - add_assoc_stringl_ex(&matrix, SL("û"), SL("u")); - add_assoc_stringl_ex(&matrix, SL("ý"), SL("y")); - add_assoc_stringl_ex(&matrix, SL("ý"), SL("y")); - add_assoc_stringl_ex(&matrix, SL("þ"), SL("b")); - add_assoc_stringl_ex(&matrix, SL("ÿ"), SL("y")); - add_assoc_stringl_ex(&matrix, SL("Ŕ"), SL("R")); - add_assoc_stringl_ex(&matrix, SL("ŕ"), SL("r")); - add_assoc_stringl_ex(&matrix, SL("ē"), SL("e")); - add_assoc_stringl_ex(&matrix, SL("'"), SL("")); - add_assoc_stringl_ex(&matrix, SL("&"), SL(" and ")); - add_assoc_stringl_ex(&matrix, SL("\r\n"), SL(" ")); - add_assoc_stringl_ex(&matrix, SL("\n"), SL(" ")); - if (zephir_is_true(replace)) { - _0$$3 = Z_TYPE_P(replace) != IS_ARRAY; - if (_0$$3) { - _0$$3 = Z_TYPE_P(replace) != IS_STRING; - } - if (UNEXPECTED(_0$$3)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_helper_exception_ce, "Parameter replace must be an array or a string", "phalcon/Helper/Str.zep", 414); - return; - } - if (Z_TYPE_P(replace) != IS_ARRAY) { - ZEPHIR_INIT_VAR(&_1$$5); - zephir_create_array(&_1$$5, 1, 0); - zephir_array_fast_append(&_1$$5, replace); - ZEPHIR_CPY_WRT(replace, &_1$$5); - } - zephir_is_iterable(replace, 0, "phalcon/Helper/Str.zep", 424); - if (Z_TYPE_P(replace) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(replace), _2$$3) +pp151: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + case 'D': + case 'd': goto pp212; + default: goto pp152; + } +pp152: { - ZEPHIR_INIT_NVAR(&search); - ZVAL_COPY(&search, _2$$3); - ZEPHIR_INIT_NVAR(&_4$$6); - ZVAL_STRING(&_4$$6, " "); - zephir_array_update_zval(&matrix, &search, &_4$$6, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, replace, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3$$3, replace, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&search, replace, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_5$$7); - ZVAL_STRING(&_5$$7, " "); - zephir_array_update_zval(&matrix, &search, &_5$$7, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, replace, "next", NULL, 0); - zephir_check_call_status(); + token->opcode = PHQL_T_OR; + return 0; + } +pp153: + ppch = *++PPCURSOR; + switch (ppch) { + case 'T': + case 't': goto pp213; + default: goto pp59; + } +pp154: + ppch = *++PPCURSOR; + switch (ppch) { + case 'G': + case 'g': goto pp214; + default: goto pp59; + } +pp155: + ppch = *++PPCURSOR; + switch (ppch) { + case 'L': + case 'l': goto pp215; + case 'T': + case 't': goto pp216; + default: goto pp59; + } +pp156: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp218; + default: goto pp59; + } +pp157: + ppch = *++PPCURSOR; + switch (ppch) { + case 'U': + case 'u': goto pp219; + default: goto pp59; + } +pp158: + ppch = *++PPCURSOR; + switch (ppch) { + case 'D': + case 'd': goto pp220; + default: goto pp59; + } +pp159: + ppch = *++PPCURSOR; + switch (ppch) { + case 'I': + case 'i': goto pp221; + default: goto pp59; + } +pp160: + ppch = *++PPCURSOR; + switch (ppch) { + case 'L': + case 'l': goto pp222; + default: goto pp59; + } +pp161: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp223; + default: goto pp59; } +pp162: + ppch = *++PPCURSOR; + switch (ppch) { + case 'T': + case 't': goto pp224; + default: goto pp59; + } +pp163: + ppch = *++PPCURSOR; +pp164: + switch (ppch) { + case 0x00: + case 0x01: + case 0x02: + case 0x03: + case 0x04: + case 0x05: + case 0x06: + case 0x07: + case 0x08: + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case 0x0E: + case 0x0F: + case 0x10: + case 0x11: + case 0x12: + case 0x13: + case 0x14: + case 0x15: + case 0x16: + case 0x17: + case 0x18: + case 0x19: + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: + case 0x1F: + case '[': + case 0x7F: goto pp86; + case '\\': goto pp165; + case ']': goto pp167; + default: goto pp163; + } +pp165: + ppch = *++PPCURSOR; + switch (ppch) { + case 0x00: + case 0x01: + case 0x02: + case 0x03: + case 0x04: + case 0x05: + case 0x06: + case 0x07: + case 0x08: + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case 0x0E: + case 0x0F: + case 0x10: + case 0x11: + case 0x12: + case 0x13: + case 0x14: + case 0x15: + case 0x16: + case 0x17: + case 0x18: + case 0x19: + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: + case 0x1F: + case 0x7F: goto pp86; + case '\\': goto pp165; + case ']': goto pp225; + default: goto pp163; + } +pp167: + ++PPCURSOR; +pp168: + { + token->opcode = PHQL_T_IDENTIFIER; + token->value = estrndup(q, PPCURSOR - q - 1); + token->len = PPCURSOR - q - 1; + q = PPCURSOR; + return 0; } - ZEPHIR_INIT_NVAR(&search); - } - ZEPHIR_INIT_VAR(&_6); - ZEPHIR_INIT_VAR(&_7); - zephir_array_keys(&_7, &matrix); - ZEPHIR_CALL_FUNCTION(&_8, "array_values", NULL, 12, &matrix); - zephir_check_call_status(); - zephir_fast_str_replace(&_6, &_7, &_8, &text); - zephir_get_strval(&text, &_6); - ZEPHIR_INIT_VAR(&_9); - ZVAL_STRING(&_9, "/[^a-zA-Z0-9\\/_|+ -]/"); - ZEPHIR_INIT_VAR(&_10); - ZVAL_STRING(&_10, ""); - ZEPHIR_CALL_FUNCTION(&friendly, "preg_replace", NULL, 50, &_9, &_10, &text); - zephir_check_call_status(); - if (lowercase) { - ZEPHIR_INIT_VAR(&_11$$8); - zephir_fast_strtolower(&_11$$8, &friendly); - ZEPHIR_CPY_WRT(&friendly, &_11$$8); - } - ZEPHIR_INIT_NVAR(&_9); - ZVAL_STRING(&_9, "/[\\/_|+ -]+/"); - ZEPHIR_CALL_FUNCTION(&_12, "preg_replace", NULL, 50, &_9, &separator, &friendly); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&friendly, &_12); - ZEPHIR_INIT_NVAR(&_9); - zephir_fast_trim(&_9, &friendly, &separator, ZEPHIR_TRIM_BOTH); - ZEPHIR_CPY_WRT(&friendly, &_9); - RETURN_CCTOR(&friendly); -} - -static PHP_METHOD(Phalcon_Helper_Str, humanize) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *text_param = NULL, _0, _1, _2; - zval text; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(text) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &text_param); - if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { - zephir_get_strval(&text, text_param); - } else { - ZEPHIR_INIT_VAR(&text); - } - - - ZEPHIR_INIT_VAR(&_0); - zephir_fast_trim(&_0, &text, NULL , ZEPHIR_TRIM_BOTH); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "#[_-]+#"); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, " "); - ZEPHIR_RETURN_CALL_FUNCTION("preg_replace", NULL, 50, &_1, &_2, &_0); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Helper_Str, includes) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *needle_param = NULL, *haystack_param = NULL, _0$$3, _1$$4; - zval needle, haystack; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&needle); - ZVAL_UNDEF(&haystack); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(needle) - Z_PARAM_STR(haystack) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &needle_param, &haystack_param); - if (UNEXPECTED(Z_TYPE_P(needle_param) != IS_STRING && Z_TYPE_P(needle_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'needle' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(needle_param) == IS_STRING)) { - zephir_get_strval(&needle, needle_param); - } else { - ZEPHIR_INIT_VAR(&needle); - } - if (UNEXPECTED(Z_TYPE_P(haystack_param) != IS_STRING && Z_TYPE_P(haystack_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'haystack' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(haystack_param) == IS_STRING)) { - zephir_get_strval(&haystack, haystack_param); - } else { - ZEPHIR_INIT_VAR(&haystack); - } - - - if ((zephir_function_exists_ex(ZEND_STRL("mb_strpos")) == SUCCESS)) { - ZEPHIR_CALL_FUNCTION(&_0$$3, "mb_strpos", NULL, 273, &haystack, &needle); - zephir_check_call_status(); - RETURN_MM_BOOL(!ZEPHIR_IS_FALSE_IDENTICAL(&_0$$3)); - } else { - ZEPHIR_INIT_VAR(&_1$$4); - zephir_fast_strpos(&_1$$4, &haystack, &needle, 0 ); - RETURN_MM_BOOL(!ZEPHIR_IS_FALSE_IDENTICAL(&_1$$4)); - } -} - -static PHP_METHOD(Phalcon_Helper_Str, increment) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *text_param = NULL, *separator_param = NULL, parts, number, _0; - zval text, separator; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&separator); - ZVAL_UNDEF(&parts); - ZVAL_UNDEF(&number); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_STR(separator) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &text_param, &separator_param); - zephir_get_strval(&text, text_param); - if (!separator_param) { - ZEPHIR_INIT_VAR(&separator); - ZVAL_STRING(&separator, "_"); - } else { - zephir_get_strval(&separator, separator_param); - } - - - ZEPHIR_INIT_VAR(&parts); - zephir_fast_explode(&parts, &separator, &text, LONG_MAX); - ZEPHIR_OBS_VAR(&number); - if (zephir_array_isset_long_fetch(&number, &parts, 1, 0)) { - ZEPHIR_SEPARATE(&number); - zephir_increment(&number); - } else { - ZEPHIR_INIT_NVAR(&number); - ZVAL_LONG(&number, 1); - } - zephir_array_fetch_long(&_0, &parts, 0, PH_NOISY | PH_READONLY, "phalcon/Helper/Str.zep", 507); - ZEPHIR_CONCAT_VVV(return_value, &_0, &separator, &number); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Helper_Str, isAnagram) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *first_param = NULL, *second_param = NULL, _0, _1, _2; - zval first, second; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&first); - ZVAL_UNDEF(&second); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(first) - Z_PARAM_STR(second) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &first_param, &second_param); - if (UNEXPECTED(Z_TYPE_P(first_param) != IS_STRING && Z_TYPE_P(first_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'first' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(first_param) == IS_STRING)) { - zephir_get_strval(&first, first_param); - } else { - ZEPHIR_INIT_VAR(&first); - } - if (UNEXPECTED(Z_TYPE_P(second_param) != IS_STRING && Z_TYPE_P(second_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'second' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(second_param) == IS_STRING)) { - zephir_get_strval(&second, second_param); - } else { - ZEPHIR_INIT_VAR(&second); - } - - - ZVAL_LONG(&_0, 1); - ZEPHIR_CALL_FUNCTION(&_1, "count_chars", NULL, 274, &first, &_0); - zephir_check_call_status(); - ZVAL_LONG(&_0, 1); - ZEPHIR_CALL_FUNCTION(&_2, "count_chars", NULL, 274, &second, &_0); - zephir_check_call_status(); - RETURN_MM_BOOL(ZEPHIR_IS_IDENTICAL(&_1, &_2)); -} - -static PHP_METHOD(Phalcon_Helper_Str, isLower) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *text_param = NULL, *encoding_param = NULL, _0$$3, _1$$4, _2$$4; - zval text, encoding; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&encoding); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_STR(encoding) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &text_param, &encoding_param); - if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { - zephir_get_strval(&text, text_param); - } else { - ZEPHIR_INIT_VAR(&text); - } - if (!encoding_param) { - ZEPHIR_INIT_VAR(&encoding); - ZVAL_STRING(&encoding, "UTF-8"); - } else { - if (UNEXPECTED(Z_TYPE_P(encoding_param) != IS_STRING && Z_TYPE_P(encoding_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'encoding' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(encoding_param) == IS_STRING)) { - zephir_get_strval(&encoding, encoding_param); - } else { - ZEPHIR_INIT_VAR(&encoding); - } - } - - - if ((zephir_function_exists_ex(ZEND_STRL("mb_strtolower")) == SUCCESS)) { - ZEPHIR_CALL_FUNCTION(&_0$$3, "mb_strtolower", NULL, 25, &text, &encoding); - zephir_check_call_status(); - RETURN_MM_BOOL(ZEPHIR_IS_IDENTICAL(&text, &_0$$3)); - } else { - ZEPHIR_INIT_VAR(&_2$$4); - zephir_fast_strtolower(&_2$$4, &text); - RETURN_MM_BOOL(ZEPHIR_IS_IDENTICAL(&text, &_2$$4)); - } -} - -static PHP_METHOD(Phalcon_Helper_Str, isPalindrome) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *text_param = NULL, _0; - zval text; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(text) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &text_param); - if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { - zephir_get_strval(&text, text_param); - } else { - ZEPHIR_INIT_VAR(&text); - } - - - ZEPHIR_CALL_FUNCTION(&_0, "strrev", NULL, 275, &text); - zephir_check_call_status(); - RETURN_MM_BOOL(ZEPHIR_IS_IDENTICAL(&_0, &text)); -} - -static PHP_METHOD(Phalcon_Helper_Str, isUpper) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *text_param = NULL, *encoding_param = NULL, _0$$3, _1$$4, _2$$4; - zval text, encoding; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&encoding); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_STR(encoding) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &text_param, &encoding_param); - if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { - zephir_get_strval(&text, text_param); - } else { - ZEPHIR_INIT_VAR(&text); - } - if (!encoding_param) { - ZEPHIR_INIT_VAR(&encoding); - ZVAL_STRING(&encoding, "UTF-8"); - } else { - if (UNEXPECTED(Z_TYPE_P(encoding_param) != IS_STRING && Z_TYPE_P(encoding_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'encoding' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(encoding_param) == IS_STRING)) { - zephir_get_strval(&encoding, encoding_param); - } else { - ZEPHIR_INIT_VAR(&encoding); - } - } - - - if ((zephir_function_exists_ex(ZEND_STRL("mb_strtoupper")) == SUCCESS)) { - ZEPHIR_CALL_FUNCTION(&_0$$3, "mb_strtoupper", NULL, 268, &text, &encoding); - zephir_check_call_status(); - RETURN_MM_BOOL(ZEPHIR_IS_IDENTICAL(&text, &_0$$3)); - } else { - ZEPHIR_INIT_VAR(&_2$$4); - zephir_fast_strtoupper(&_2$$4, &text); - RETURN_MM_BOOL(ZEPHIR_IS_IDENTICAL(&text, &_2$$4)); - } -} - -static PHP_METHOD(Phalcon_Helper_Str, lower) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *text_param = NULL, *encoding_param = NULL, _0; - zval text, encoding; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&encoding); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_STR(encoding) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &text_param, &encoding_param); - if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { - zephir_get_strval(&text, text_param); - } else { - ZEPHIR_INIT_VAR(&text); - } - if (!encoding_param) { - ZEPHIR_INIT_VAR(&encoding); - ZVAL_STRING(&encoding, "UTF-8"); - } else { - if (UNEXPECTED(Z_TYPE_P(encoding_param) != IS_STRING && Z_TYPE_P(encoding_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'encoding' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(encoding_param) == IS_STRING)) { - zephir_get_strval(&encoding, encoding_param); - } else { - ZEPHIR_INIT_VAR(&encoding); - } - } - - - if ((zephir_function_exists_ex(ZEND_STRL("mb_strtolower")) == SUCCESS)) { - ZEPHIR_RETURN_CALL_FUNCTION("mb_strtolower", NULL, 25, &text, &encoding); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_INIT_VAR(&_0); - zephir_fast_strtolower(&_0, &text); - RETURN_CCTOR(&_0); -} - -static PHP_METHOD(Phalcon_Helper_Str, random) -{ - zval text; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - long length; - zval *type_param = NULL, *length_param = NULL, pool, _0$$3, _1$$3, _2$$3, _3$$3, _4$$4, _5$$4, _6$$4, _7$$4, _8$$4, _9$$4, _10$$5, _11$$5, _12$$6, _13$$6, _14$$7, _15$$8, _16$$8, _17$$8, _18$$8, _19$$8, _20$$8, _21$$8, _22$$9, _23$$9, _24$$9; - zend_long type, ZEPHIR_LAST_CALL_STATUS, end = 0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&pool); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_8$$4); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_10$$5); - ZVAL_UNDEF(&_11$$5); - ZVAL_UNDEF(&_12$$6); - ZVAL_UNDEF(&_13$$6); - ZVAL_UNDEF(&_14$$7); - ZVAL_UNDEF(&_15$$8); - ZVAL_UNDEF(&_16$$8); - ZVAL_UNDEF(&_17$$8); - ZVAL_UNDEF(&_18$$8); - ZVAL_UNDEF(&_19$$8); - ZVAL_UNDEF(&_20$$8); - ZVAL_UNDEF(&_21$$8); - ZVAL_UNDEF(&_22$$9); - ZVAL_UNDEF(&_23$$9); - ZVAL_UNDEF(&_24$$9); - ZVAL_UNDEF(&text); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(type) - Z_PARAM_LONG(length) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &type_param, &length_param); - if (!type_param) { - type = 0; - } else { - type = zephir_get_intval(type_param); - } - if (!length_param) { - length = 8; - } else { - length = zephir_get_intval(length_param); - } - - - ZEPHIR_INIT_VAR(&text); - do { - if (type == 1) { - ZEPHIR_INIT_VAR(&_0$$3); - ZVAL_STRING(&_0$$3, "a"); - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "z"); - ZEPHIR_CALL_FUNCTION(&_2$$3, "range", NULL, 276, &_0$$3, &_1$$3); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_0$$3); - ZVAL_STRING(&_0$$3, "A"); - ZEPHIR_INIT_NVAR(&_1$$3); - ZVAL_STRING(&_1$$3, "Z"); - ZEPHIR_CALL_FUNCTION(&_3$$3, "range", NULL, 276, &_0$$3, &_1$$3); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&pool); - zephir_fast_array_merge(&pool, &_2$$3, &_3$$3); - break; +pp169: + ppch = *++PPCURSOR; + switch (ppch) { + case '-': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp169; + case '}': goto pp226; + default: goto pp86; + } +pp171: + ++PPCURSOR; + { + token->opcode = PHQL_T_TS_OR; + return 0; } - if (type == 2) { - ZVAL_LONG(&_4$$4, 0); - ZVAL_LONG(&_5$$4, 9); - ZEPHIR_CALL_FUNCTION(&_6$$4, "range", NULL, 276, &_4$$4, &_5$$4); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_7$$4); - ZVAL_STRING(&_7$$4, "a"); - ZEPHIR_INIT_VAR(&_8$$4); - ZVAL_STRING(&_8$$4, "f"); - ZEPHIR_CALL_FUNCTION(&_9$$4, "range", NULL, 276, &_7$$4, &_8$$4); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&pool); - zephir_fast_array_merge(&pool, &_6$$4, &_9$$4); - break; +pp173: + ++PPCURSOR; + { + token->opcode = PHQL_T_SPLACEHOLDER; + token->value = estrndup(q, PPCURSOR - q - 1); + token->len = PPCURSOR - q - 1; + q = PPCURSOR; + return 0; } - if (type == 3) { - ZVAL_LONG(&_10$$5, 0); - ZVAL_LONG(&_11$$5, 9); - ZEPHIR_CALL_FUNCTION(&pool, "range", NULL, 276, &_10$$5, &_11$$5); - zephir_check_call_status(); - break; +pp175: + ppch = *++PPCURSOR; + switch (ppch) { + case 'I': + case 'i': goto pp228; + default: goto pp59; + } +pp176: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp177; + } +pp177: + { + token->opcode = PHQL_T_ALL; + return 0; } - if (type == 4) { - ZVAL_LONG(&_12$$6, 1); - ZVAL_LONG(&_13$$6, 9); - ZEPHIR_CALL_FUNCTION(&pool, "range", NULL, 276, &_12$$6, &_13$$6); - zephir_check_call_status(); - break; +pp178: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp179; + } +pp179: + { + token->opcode = PHQL_T_AND; + return 0; } - if (type == 5) { - ZEPHIR_INIT_VAR(&_14$$7); - ZVAL_STRING(&_14$$7, "2345679ACDEFHJKLMNPRSTUVWXYZ"); - ZEPHIR_CALL_FUNCTION(&pool, "str_split", NULL, 108, &_14$$7); - zephir_check_call_status(); - break; +pp180: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp181; + } +pp181: + { + token->opcode = PHQL_T_ASC; + return 0; } - ZVAL_LONG(&_15$$8, 0); - ZVAL_LONG(&_16$$8, 9); - ZEPHIR_CALL_FUNCTION(&_17$$8, "range", NULL, 276, &_15$$8, &_16$$8); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_18$$8); - ZVAL_STRING(&_18$$8, "a"); - ZEPHIR_INIT_VAR(&_19$$8); - ZVAL_STRING(&_19$$8, "z"); - ZEPHIR_CALL_FUNCTION(&_20$$8, "range", NULL, 276, &_18$$8, &_19$$8); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_18$$8); - ZVAL_STRING(&_18$$8, "A"); - ZEPHIR_INIT_NVAR(&_19$$8); - ZVAL_STRING(&_19$$8, "Z"); - ZEPHIR_CALL_FUNCTION(&_21$$8, "range", NULL, 276, &_18$$8, &_19$$8); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&pool, "array_merge", NULL, 277, &_17$$8, &_20$$8, &_21$$8); - zephir_check_call_status(); - break; - } while(0); - - end = (zephir_fast_count_int(&pool) - 1); - while (1) { - if (!(zephir_fast_strlen_ev(&text) < length)) { - break; +pp182: + ppch = *++PPCURSOR; + switch (ppch) { + case 'W': + case 'w': goto pp229; + default: goto pp59; + } +pp183: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp230; + case 'T': + case 't': goto pp232; + default: goto pp59; + } +pp184: + ppch = *++PPCURSOR; + switch (ppch) { + case 'V': + case 'v': goto pp234; + default: goto pp59; + } +pp185: + ppch = *++PPCURSOR; + switch (ppch) { + case 'S': + case 's': goto pp235; + default: goto pp59; + } +pp186: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp236; + default: goto pp59; + } +pp187: + ppch = *++PPCURSOR; + switch (ppch) { + case 'C': + case 'c': goto pp237; + default: goto pp59; + } +pp188: + ppch = *++PPCURSOR; + switch (ppch) { + case 'T': + case 't': goto pp239; + default: goto pp59; + } +pp189: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp240; + default: goto pp59; + } +pp190: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp191; + } +pp191: + { + token->opcode = PHQL_T_END; + return 0; } - ZVAL_LONG(&_23$$9, 0); - ZVAL_LONG(&_24$$9, end); - zephir_array_fetch_long(&_22$$9, &pool, zephir_mt_rand(zephir_get_intval(&_23$$9), zephir_get_intval(&_24$$9)), PH_NOISY | PH_READONLY, "phalcon/Helper/Str.zep", 653); - zephir_concat_self(&text, &_22$$9); - } - RETURN_CTOR(&text); -} - -static PHP_METHOD(Phalcon_Helper_Str, reduceSlashes) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *text_param = NULL, _0, _1; - zval text; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(text) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &text_param); - if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { - zephir_get_strval(&text, text_param); - } else { - ZEPHIR_INIT_VAR(&text); - } - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "#(?= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(text) - Z_PARAM_STR(start) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(ignoreCase) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &text_param, &start_param, &ignoreCase_param); - if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { - zephir_get_strval(&text, text_param); - } else { - ZEPHIR_INIT_VAR(&text); - } - if (UNEXPECTED(Z_TYPE_P(start_param) != IS_STRING && Z_TYPE_P(start_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'start' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(start_param) == IS_STRING)) { - zephir_get_strval(&start, start_param); - } else { - ZEPHIR_INIT_VAR(&start); - } - if (!ignoreCase_param) { - ignoreCase = 1; - } else { - ignoreCase = zephir_get_boolval(ignoreCase_param); - } - - - ZVAL_BOOL(&_0, (ignoreCase ? 1 : 0)); - RETURN_MM_BOOL(zephir_start_with(&text, &start, &_0)); -} - -static PHP_METHOD(Phalcon_Helper_Str, uncamelize) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *text_param = NULL, *delimiter = NULL, delimiter_sub, __$null, _0; - zval text; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&delimiter_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(delimiter) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &text_param, &delimiter); - if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { - zephir_get_strval(&text, text_param); - } else { - ZEPHIR_INIT_VAR(&text); - } - if (!delimiter) { - delimiter = &delimiter_sub; - delimiter = &__$null; - } - - - ZEPHIR_INIT_VAR(&_0); - zephir_uncamelize(&_0, &text, delimiter ); - RETURN_CCTOR(&_0); -} - -static PHP_METHOD(Phalcon_Helper_Str, underscore) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *text_param = NULL, _0, _1, _2; - zval text; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(text) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &text_param); - if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { - zephir_get_strval(&text, text_param); - } else { - ZEPHIR_INIT_VAR(&text); - } - - - ZEPHIR_INIT_VAR(&_0); - zephir_fast_trim(&_0, &text, NULL , ZEPHIR_TRIM_BOTH); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "#\\s+#"); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "_"); - ZEPHIR_RETURN_CALL_FUNCTION("preg_replace", NULL, 50, &_1, &_2, &_0); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Helper_Str, upper) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *text_param = NULL, *encoding_param = NULL, _0; - zval text, encoding; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&encoding); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_STR(encoding) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &text_param, &encoding_param); - if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { - zephir_get_strval(&text, text_param); - } else { - ZEPHIR_INIT_VAR(&text); - } - if (!encoding_param) { - ZEPHIR_INIT_VAR(&encoding); - ZVAL_STRING(&encoding, "UTF-8"); - } else { - if (UNEXPECTED(Z_TYPE_P(encoding_param) != IS_STRING && Z_TYPE_P(encoding_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'encoding' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(encoding_param) == IS_STRING)) { - zephir_get_strval(&encoding, encoding_param); - } else { - ZEPHIR_INIT_VAR(&encoding); - } - } - - - if ((zephir_function_exists_ex(ZEND_STRL("mb_strtoupper")) == SUCCESS)) { - ZEPHIR_RETURN_CALL_FUNCTION("mb_strtoupper", NULL, 268, &text, &encoding); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_INIT_VAR(&_0); - zephir_fast_strtoupper(&_0, &text); - RETURN_CCTOR(&_0); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Attributes) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html, Attributes, phalcon, html_attributes, phalcon_collection_ce, phalcon_html_attributes_method_entry, 0); - - zend_class_implements(phalcon_html_attributes_ce, 1, phalcon_html_attributes_renderinterface_ce); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Attributes, render) -{ - zval _1, _2; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(&_1, this_ptr, "toarray", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, ""); - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_ce, "renderattributes", &_0, 0, &_2, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Html_Attributes, __toString) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - - - ZEPHIR_MM_GROW(); - - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "render", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Breadcrumbs) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Html, Breadcrumbs, phalcon, html_breadcrumbs, phalcon_html_breadcrumbs_method_entry, 0); - - zend_declare_property_null(phalcon_html_breadcrumbs_ce, SL("elements"), ZEND_ACC_PRIVATE); - zend_declare_property_string(phalcon_html_breadcrumbs_ce, SL("separator"), " / ", ZEND_ACC_PRIVATE); - zend_declare_property_string(phalcon_html_breadcrumbs_ce, SL("template"), "
%label%
", ZEND_ACC_PRIVATE); - phalcon_html_breadcrumbs_ce->create_object = zephir_init_properties_Phalcon_Html_Breadcrumbs; - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Breadcrumbs, getSeparator) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "separator"); -} - -static PHP_METHOD(Phalcon_Html_Breadcrumbs, setSeparator) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *separator_param = NULL; - zval separator; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&separator); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(separator) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &separator_param); - zephir_get_strval(&separator, separator_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("separator"), &separator); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Html_Breadcrumbs, add) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *label_param = NULL, *link_param = NULL; - zval label, link; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&label); - ZVAL_UNDEF(&link); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(label) - Z_PARAM_OPTIONAL - Z_PARAM_STR(link) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &label_param, &link_param); - zephir_get_strval(&label, label_param); - if (!link_param) { - ZEPHIR_INIT_VAR(&link); - ZVAL_STRING(&link, ""); - } else { - zephir_get_strval(&link, link_param); - } - - - zephir_update_property_array(this_ptr, SL("elements"), &link, &label); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Html_Breadcrumbs, clear) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&_0); - array_init(&_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("elements"), &_0); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Html_Breadcrumbs, remove) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *link_param = NULL, elements, _0; - zval link; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&link); - ZVAL_UNDEF(&elements); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(link) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &link_param); - zephir_get_strval(&link, link_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&elements, &_0); - zephir_array_unset(&elements, &link, PH_SEPARATE); - zephir_update_property_zval(this_ptr, ZEND_STRL("elements"), &elements); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Html_Breadcrumbs, render) -{ - zval _6$$3, _8$$3, _10$$4, _12$$4, _15$$6, _17$$6; - zend_string *_4; - zend_ulong _3; - zval element, elements, lastLabel, lastUrl, output, template, url, urls, _0, *_1, _2, _18, _19, _5$$3, _7$$3, _9$$4, _11$$4, _13$$5, _14$$6, _16$$6; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&element); - ZVAL_UNDEF(&elements); - ZVAL_UNDEF(&lastLabel); - ZVAL_UNDEF(&lastUrl); - ZVAL_UNDEF(&output); - ZVAL_UNDEF(&template); - ZVAL_UNDEF(&url); - ZVAL_UNDEF(&urls); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_18); - ZVAL_UNDEF(&_19); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_11$$4); - ZVAL_UNDEF(&_13$$5); - ZVAL_UNDEF(&_14$$6); - ZVAL_UNDEF(&_16$$6); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_8$$3); - ZVAL_UNDEF(&_10$$4); - ZVAL_UNDEF(&_12$$4); - ZVAL_UNDEF(&_15$$6); - ZVAL_UNDEF(&_17$$6); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&output); - array_init(&output); - zephir_read_property(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&elements, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("template"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&template, &_0); - ZEPHIR_INIT_VAR(&urls); - zephir_array_keys(&urls, &elements); - ZEPHIR_MAKE_REF(&urls); - ZEPHIR_CALL_FUNCTION(&lastUrl, "end", NULL, 257, &urls); - ZEPHIR_UNREF(&urls); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&lastLabel); - zephir_array_fetch(&lastLabel, &elements, &lastUrl, PH_NOISY, "phalcon/Html/Breadcrumbs.zep", 112); - zephir_array_unset(&elements, &lastUrl, PH_SEPARATE); - zephir_is_iterable(&elements, 0, "phalcon/Html/Breadcrumbs.zep", 133); - if (Z_TYPE_P(&elements) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&elements), _3, _4, _1) - { - ZEPHIR_INIT_NVAR(&url); - if (_4 != NULL) { - ZVAL_STR_COPY(&url, _4); - } else { - ZVAL_LONG(&url, _3); +pp192: + ppch = *++PPCURSOR; + switch (ppch) { + case 'S': + case 's': goto pp242; + default: goto pp59; } - ZEPHIR_INIT_NVAR(&element); - ZVAL_COPY(&element, _1); - ZEPHIR_INIT_NVAR(&_5$$3); - ZEPHIR_INIT_NVAR(&_6$$3); - zephir_create_array(&_6$$3, 2, 0); - ZEPHIR_INIT_NVAR(&_7$$3); - ZVAL_STRING(&_7$$3, "%label%"); - zephir_array_fast_append(&_6$$3, &_7$$3); - ZEPHIR_INIT_NVAR(&_7$$3); - ZVAL_STRING(&_7$$3, "%link%"); - zephir_array_fast_append(&_6$$3, &_7$$3); - ZEPHIR_INIT_NVAR(&_8$$3); - zephir_create_array(&_8$$3, 2, 0); - zephir_array_fast_append(&_8$$3, &element); - zephir_array_fast_append(&_8$$3, &url); - zephir_fast_str_replace(&_5$$3, &_6$$3, &_8$$3, &template); - zephir_array_append(&output, &_5$$3, PH_SEPARATE, "phalcon/Html/Breadcrumbs.zep", 127); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &elements, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &elements, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; +pp193: + ppch = *++PPCURSOR; + switch (ppch) { + case 'S': + case 's': goto pp243; + default: goto pp59; } - ZEPHIR_CALL_METHOD(&url, &elements, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&element, &elements, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_9$$4); - ZEPHIR_INIT_NVAR(&_10$$4); - zephir_create_array(&_10$$4, 2, 0); - ZEPHIR_INIT_NVAR(&_11$$4); - ZVAL_STRING(&_11$$4, "%label%"); - zephir_array_fast_append(&_10$$4, &_11$$4); - ZEPHIR_INIT_NVAR(&_11$$4); - ZVAL_STRING(&_11$$4, "%link%"); - zephir_array_fast_append(&_10$$4, &_11$$4); - ZEPHIR_INIT_NVAR(&_12$$4); - zephir_create_array(&_12$$4, 2, 0); - zephir_array_fast_append(&_12$$4, &element); - zephir_array_fast_append(&_12$$4, &url); - zephir_fast_str_replace(&_9$$4, &_10$$4, &_12$$4, &template); - zephir_array_append(&output, &_9$$4, PH_SEPARATE, "phalcon/Html/Breadcrumbs.zep", 127); - ZEPHIR_CALL_METHOD(NULL, &elements, "next", NULL, 0); - zephir_check_call_status(); +pp194: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp195; + } +pp195: + { + token->opcode = PHQL_T_FOR; + return 0; } - } - ZEPHIR_INIT_NVAR(&element); - ZEPHIR_INIT_NVAR(&url); - if (0 != zephir_fast_count_int(&elements)) { - ZEPHIR_INIT_VAR(&_13$$5); - ZEPHIR_CONCAT_SVS(&_13$$5, "
", &lastLabel, "
"); - zephir_array_append(&output, &_13$$5, PH_SEPARATE, "phalcon/Html/Breadcrumbs.zep", 134); - } else { - ZEPHIR_INIT_VAR(&_14$$6); - ZEPHIR_INIT_VAR(&_15$$6); - zephir_create_array(&_15$$6, 2, 0); - ZEPHIR_INIT_VAR(&_16$$6); - ZVAL_STRING(&_16$$6, "%label%"); - zephir_array_fast_append(&_15$$6, &_16$$6); - ZEPHIR_INIT_NVAR(&_16$$6); - ZVAL_STRING(&_16$$6, "%link%"); - zephir_array_fast_append(&_15$$6, &_16$$6); - ZEPHIR_INIT_VAR(&_17$$6); - zephir_create_array(&_17$$6, 2, 0); - zephir_array_fast_append(&_17$$6, &lastLabel); - zephir_array_fast_append(&_17$$6, &lastUrl); - zephir_fast_str_replace(&_14$$6, &_15$$6, &_17$$6, &template); - zephir_array_append(&output, &_14$$6, PH_SEPARATE, "phalcon/Html/Breadcrumbs.zep", 146); - } - ZEPHIR_INIT_VAR(&_18); - zephir_read_property(&_0, this_ptr, ZEND_STRL("separator"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_19); - ZEPHIR_CONCAT_SVS(&_19, "
", &_0, "
"); - zephir_fast_join(&_18, &_19, &output); - ZEPHIR_CONCAT_SVS(return_value, "
", &_18, "
"); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Html_Breadcrumbs, toArray) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "elements"); -} - -zend_object *zephir_init_properties_Phalcon_Html_Breadcrumbs(zend_class_entry *class_type) -{ - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("elements"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("elements"), &_1$$3); +pp196: + ppch = *++PPCURSOR; + switch (ppch) { + case 'M': + case 'm': goto pp244; + default: goto pp59; + } +pp197: + ppch = *++PPCURSOR; + switch (ppch) { + case 'L': + case 'l': goto pp246; + default: goto pp59; + } +pp198: + ppch = *++PPCURSOR; + switch (ppch) { + case 'U': + case 'u': goto pp248; + default: goto pp59; + } +pp199: + ppch = *++PPCURSOR; + switch (ppch) { + case 'I': + case 'i': goto pp249; + default: goto pp59; + } +pp200: + ppch = *++PPCURSOR; + switch (ppch) { + case 'K': + case 'k': goto pp250; + default: goto pp59; + } +pp201: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp251; + default: goto pp59; + } +pp202: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp252; + default: goto pp59; + } +pp203: + ppch = *++PPCURSOR; + switch (ppch) { + case 'O': + case 'o': goto pp253; + default: goto pp59; + } +pp204: + ppch = *++PPCURSOR; + switch (ppch) { + case 'N': + case 'n': goto pp255; + default: goto pp59; + } +pp205: + ppch = *++PPCURSOR; + switch (ppch) { + case 'T': + case 't': goto pp257; + default: goto pp59; + } +pp206: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp259; + default: goto pp59; + } +pp207: + ppch = *++PPCURSOR; + switch (ppch) { + case 'I': + case 'i': goto pp261; + default: goto pp59; + } +pp208: + ppaccept = 2; + ppch = *(PPMARKER = ++PPCURSOR); + switch (ppch) { + case ' ': goto pp262; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp209; + } +pp209: + { + token->opcode = PHQL_T_NOT; + return 0; } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Exception) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html, Exception, phalcon, html_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_TagFactory) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html, TagFactory, phalcon, html_tagfactory, phalcon_factory_abstractfactory_ce, phalcon_html_tagfactory_method_entry, 0); - - zend_declare_property_string(phalcon_html_tagfactory_ce, SL("exception"), "Phalcon\\Html\\Exception", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_html_tagfactory_ce, SL("escaper"), ZEND_ACC_PRIVATE); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_TagFactory, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval services; - zval *escaper, escaper_sub, *services_param = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&escaper_sub); - ZVAL_UNDEF(&services); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_OBJECT_OF_CLASS(escaper, phalcon_escaper_escaperinterface_ce) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(services) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &escaper, &services_param); - if (!services_param) { - ZEPHIR_INIT_VAR(&services); - array_init(&services); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&services, services_param); - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("escaper"), escaper); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "init", NULL, 0, &services); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Html_TagFactory, newInstance) -{ - zval _2$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, definition, _0, _4, _5, _1$$3, _3$$3; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_2$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - zephir_get_strval(&name, name_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("services"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset(&_0, &name))) { - ZEPHIR_CALL_METHOD(&definition, this_ptr, "getservice", NULL, 0, &name); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1$$3); - ZEPHIR_INIT_VAR(&_2$$3); - zephir_create_array(&_2$$3, 1, 0); - ZEPHIR_OBS_VAR(&_3$$3); - zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("escaper"), PH_NOISY_CC); - zephir_array_fast_append(&_2$$3, &_3$$3); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(&_1$$3, &definition, &_2$$3); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("services"), &name, &_1$$3); - } - zephir_read_property(&_4, this_ptr, ZEND_STRL("services"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_5, &_4, &name, PH_NOISY | PH_READONLY, "phalcon/Html/TagFactory.zep", 59); - RETURN_CTOR(&_5); -} - -static PHP_METHOD(Phalcon_Html_TagFactory, getAdapters) -{ - zval *this_ptr = getThis(); - - - - zephir_create_array(return_value, 41, 0); - add_assoc_stringl_ex(return_value, SL("a"), SL("Phalcon\\Html\\Helper\\Anchor")); - add_assoc_stringl_ex(return_value, SL("base"), SL("Phalcon\\Html\\Helper\\Base")); - add_assoc_stringl_ex(return_value, SL("body"), SL("Phalcon\\Html\\Helper\\Body")); - add_assoc_stringl_ex(return_value, SL("button"), SL("Phalcon\\Html\\Helper\\Button")); - add_assoc_stringl_ex(return_value, SL("close"), SL("Phalcon\\Html\\Helper\\Close")); - add_assoc_stringl_ex(return_value, SL("element"), SL("Phalcon\\Html\\Helper\\Element")); - add_assoc_stringl_ex(return_value, SL("form"), SL("Phalcon\\Html\\Helper\\Form")); - add_assoc_stringl_ex(return_value, SL("img"), SL("Phalcon\\Html\\Helper\\Img")); - add_assoc_stringl_ex(return_value, SL("inputColor"), SL("Phalcon\\Html\\Helper\\Input\\Color")); - add_assoc_stringl_ex(return_value, SL("inputDate"), SL("Phalcon\\Html\\Helper\\Input\\Date")); - add_assoc_stringl_ex(return_value, SL("inputDateTime"), SL("Phalcon\\Html\\Helper\\Input\\DateTime")); - add_assoc_stringl_ex(return_value, SL("inputDateTimeLocal"), SL("Phalcon\\Html\\Helper\\Input\\DateTimeLocal")); - add_assoc_stringl_ex(return_value, SL("inputEmail"), SL("Phalcon\\Html\\Helper\\Input\\Email")); - add_assoc_stringl_ex(return_value, SL("inputFile"), SL("Phalcon\\Html\\Helper\\Input\\File")); - add_assoc_stringl_ex(return_value, SL("inputHidden"), SL("Phalcon\\Html\\Helper\\Input\\Hidden")); - add_assoc_stringl_ex(return_value, SL("inputImage"), SL("Phalcon\\Html\\Helper\\Input\\Image")); - add_assoc_stringl_ex(return_value, SL("inputInput"), SL("Phalcon\\Html\\Helper\\Input\\Input")); - add_assoc_stringl_ex(return_value, SL("inputMonth"), SL("Phalcon\\Html\\Helper\\Input\\Month")); - add_assoc_stringl_ex(return_value, SL("inputNumeric"), SL("Phalcon\\Html\\Helper\\Input\\Numeric")); - add_assoc_stringl_ex(return_value, SL("inputPassword"), SL("Phalcon\\Html\\Helper\\Input\\Password")); - add_assoc_stringl_ex(return_value, SL("inputRange"), SL("Phalcon\\Html\\Helper\\Input\\Range")); - add_assoc_stringl_ex(return_value, SL("inputSelect"), SL("Phalcon\\Html\\Helper\\Input\\Select")); - add_assoc_stringl_ex(return_value, SL("inputSearch"), SL("Phalcon\\Html\\Helper\\Input\\Search")); - add_assoc_stringl_ex(return_value, SL("inputSubmit"), SL("Phalcon\\Html\\Helper\\Input\\Submit")); - add_assoc_stringl_ex(return_value, SL("inputTel"), SL("Phalcon\\Html\\Helper\\Input\\Tel")); - add_assoc_stringl_ex(return_value, SL("inputText"), SL("Phalcon\\Html\\Helper\\Input\\Text")); - add_assoc_stringl_ex(return_value, SL("inputTextarea"), SL("Phalcon\\Html\\Helper\\Input\\Textarea")); - add_assoc_stringl_ex(return_value, SL("inputTime"), SL("Phalcon\\Html\\Helper\\Input\\Time")); - add_assoc_stringl_ex(return_value, SL("inputUrl"), SL("Phalcon\\Html\\Helper\\Input\\Url")); - add_assoc_stringl_ex(return_value, SL("inputWeek"), SL("Phalcon\\Html\\Helper\\Input\\Week")); - add_assoc_stringl_ex(return_value, SL("label"), SL("Phalcon\\Html\\Helper\\Label")); - add_assoc_stringl_ex(return_value, SL("link"), SL("Phalcon\\Html\\Helper\\Link")); - add_assoc_stringl_ex(return_value, SL("meta"), SL("Phalcon\\Html\\Helper\\Meta")); - add_assoc_stringl_ex(return_value, SL("ol"), SL("Phalcon\\Html\\Helper\\Ol")); - add_assoc_stringl_ex(return_value, SL("script"), SL("Phalcon\\Html\\Helper\\Script")); - add_assoc_stringl_ex(return_value, SL("style"), SL("Phalcon\\Html\\Helper\\Style")); - add_assoc_stringl_ex(return_value, SL("title"), SL("Phalcon\\Html\\Helper\\Title")); - add_assoc_stringl_ex(return_value, SL("ul"), SL("Phalcon\\Html\\Helper\\Ul")); - return; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Attributes_AttributesInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Html\\Attributes, AttributesInterface, phalcon, html_attributes_attributesinterface, phalcon_html_attributes_attributesinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Html_Attributes_AttributesInterface, getAttributes); -ZEPHIR_DOC_METHOD(Phalcon_Html_Attributes_AttributesInterface, setAttributes); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Attributes_RenderInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Html\\Attributes, RenderInterface, phalcon, html_attributes_renderinterface, phalcon_html_attributes_renderinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Html_Attributes_RenderInterface, render); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_AbstractHelper) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Html\\Helper, AbstractHelper, phalcon, html_helper_abstracthelper, phalcon_html_helper_abstracthelper_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_string(phalcon_html_helper_abstracthelper_ce, SL("delimiter"), "", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_html_helper_abstracthelper_ce, SL("escaper"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_html_helper_abstracthelper_ce, SL("indent"), " ", ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_html_helper_abstracthelper_ce, SL("indentLevel"), 1, ZEND_ACC_PROTECTED); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_AbstractHelper, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *escaper, escaper_sub, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&escaper_sub); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(escaper, phalcon_escaper_escaperinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &escaper); - - - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_GET_CONSTANT(&_0, "PHP_EOL"); - zephir_update_property_zval(this_ptr, ZEND_STRL("delimiter"), &_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("escaper"), escaper); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Html_Helper_AbstractHelper, close) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool raw; - zval *tag_param = NULL, *raw_param = NULL, _0, _1; - zval tag; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tag); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(tag) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(raw) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &tag_param, &raw_param); - zephir_get_strval(&tag, tag_param); - if (!raw_param) { - raw = 0; - } else { - raw = zephir_get_boolval(raw_param); - } - - - ZEPHIR_INIT_VAR(&_0); - if (raw) { - ZEPHIR_CPY_WRT(&_0, &tag); - } else { - zephir_read_property(&_1, this_ptr, ZEND_STRL("escaper"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_0, &_1, "html", NULL, 0, &tag); - zephir_check_call_status(); - } - zephir_get_strval(&tag, &_0); - ZEPHIR_CONCAT_SVS(return_value, ""); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Html_Helper_AbstractHelper, indent) -{ - zval _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("indent"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_1, this_ptr, ZEND_STRL("indentLevel"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_FUNCTION("str_repeat", NULL, 1, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Html_Helper_AbstractHelper, orderAttributes) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *overrides_param = NULL, *attributes_param = NULL, __$null, intersect, results, _0; - zval overrides, attributes, order; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&overrides); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&order); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&intersect); - ZVAL_UNDEF(&results); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ARRAY(overrides) - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &overrides_param, &attributes_param); - zephir_get_arrval(&overrides, overrides_param); - zephir_get_arrval(&attributes, attributes_param); - - - ZEPHIR_INIT_VAR(&order); - zephir_create_array(&order, 10, 0); - zephir_array_update_string(&order, SL("rel"), &__$null, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&order, SL("type"), &__$null, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&order, SL("for"), &__$null, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&order, SL("src"), &__$null, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&order, SL("href"), &__$null, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&order, SL("action"), &__$null, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&order, SL("id"), &__$null, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&order, SL("name"), &__$null, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&order, SL("value"), &__$null, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&order, SL("class"), &__$null, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_FUNCTION(&intersect, "array_intersect_key", NULL, 2, &order, &attributes); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&results); - zephir_fast_array_merge(&results, &intersect, &attributes); - ZEPHIR_INIT_VAR(&_0); - zephir_fast_array_merge(&_0, &overrides, &results); - ZEPHIR_CPY_WRT(&results, &_0); - zephir_array_unset_string(&results, SL("escape"), PH_SEPARATE); - RETURN_CCTOR(&results); -} - -static PHP_METHOD(Phalcon_Html_Helper_AbstractHelper, renderArrayElements) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval delimiter; - zval *elements_param = NULL, *delimiter_param = NULL, item, result, *_0, _1, _2$$3, _3$$3, _5$$3, _6$$3, _7$$3, _8$$4, _9$$4, _11$$4, _12$$4, _13$$4; - zval elements, _4$$3, _10$$4; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&elements); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_10$$4); - ZVAL_UNDEF(&item); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_8$$4); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_11$$4); - ZVAL_UNDEF(&_12$$4); - ZVAL_UNDEF(&_13$$4); - ZVAL_UNDEF(&delimiter); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ARRAY(elements) - Z_PARAM_STR(delimiter) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &elements_param, &delimiter_param); - zephir_get_arrval(&elements, elements_param); - zephir_get_strval(&delimiter, delimiter_param); - - - ZEPHIR_INIT_VAR(&result); - ZVAL_STRING(&result, ""); - zephir_is_iterable(&elements, 0, "phalcon/Html/Helper/AbstractHelper.zep", 142); - if (Z_TYPE_P(&elements) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&elements), _0) - { - ZEPHIR_INIT_NVAR(&item); - ZVAL_COPY(&item, _0); - zephir_array_fetch_long(&_2$$3, &item, 2, PH_NOISY | PH_READONLY, "phalcon/Html/Helper/AbstractHelper.zep", 138); - ZEPHIR_INIT_NVAR(&_3$$3); - ZEPHIR_INIT_NVAR(&_4$$3); - zephir_create_array(&_4$$3, 2, 0); - zephir_array_fast_append(&_4$$3, this_ptr); - ZEPHIR_OBS_NVAR(&_5$$3); - zephir_array_fetch_long(&_5$$3, &item, 0, PH_NOISY, "phalcon/Html/Helper/AbstractHelper.zep", 138); - zephir_array_fast_append(&_4$$3, &_5$$3); - zephir_array_fetch_long(&_6$$3, &item, 1, PH_NOISY | PH_READONLY, "phalcon/Html/Helper/AbstractHelper.zep", 138); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_3$$3, &_4$$3, &_6$$3); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_7$$3); - ZEPHIR_CONCAT_VVV(&_7$$3, &_2$$3, &_3$$3, &delimiter); - zephir_concat_self(&result, &_7$$3); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &elements, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &elements, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; +pp210: + ppch = *++PPCURSOR; + switch (ppch) { + case 'L': + case 'l': goto pp263; + default: goto pp59; } - ZEPHIR_CALL_METHOD(&item, &elements, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_fetch_long(&_8$$4, &item, 2, PH_NOISY | PH_READONLY, "phalcon/Html/Helper/AbstractHelper.zep", 138); - ZEPHIR_INIT_NVAR(&_9$$4); - ZEPHIR_INIT_NVAR(&_10$$4); - zephir_create_array(&_10$$4, 2, 0); - zephir_array_fast_append(&_10$$4, this_ptr); - ZEPHIR_OBS_NVAR(&_11$$4); - zephir_array_fetch_long(&_11$$4, &item, 0, PH_NOISY, "phalcon/Html/Helper/AbstractHelper.zep", 138); - zephir_array_fast_append(&_10$$4, &_11$$4); - zephir_array_fetch_long(&_12$$4, &item, 1, PH_NOISY | PH_READONLY, "phalcon/Html/Helper/AbstractHelper.zep", 138); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_9$$4, &_10$$4, &_12$$4); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_13$$4); - ZEPHIR_CONCAT_VVV(&_13$$4, &_8$$4, &_9$$4, &delimiter); - zephir_concat_self(&result, &_13$$4); - ZEPHIR_CALL_METHOD(NULL, &elements, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&item); - RETURN_CCTOR(&result); -} - -static PHP_METHOD(Phalcon_Html_Helper_AbstractHelper, renderAttributes) -{ - zend_bool _4$$3, _8$$5; - zend_string *_3; - zend_ulong _2; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *attributes_param = NULL, key, result, value, *_0, _1, _5$$4, _6$$4, _7$$4, _9$$6, _10$$6, _11$$6; - zval attributes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_9$$6); - ZVAL_UNDEF(&_10$$6); - ZVAL_UNDEF(&_11$$6); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &attributes_param); - zephir_get_arrval(&attributes, attributes_param); - - - ZEPHIR_INIT_VAR(&result); - ZVAL_STRING(&result, ""); - zephir_is_iterable(&attributes, 0, "phalcon/Html/Helper/AbstractHelper.zep", 163); - if (Z_TYPE_P(&attributes) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&attributes), _2, _3, _0) - { - ZEPHIR_INIT_NVAR(&key); - if (_3 != NULL) { - ZVAL_STR_COPY(&key, _3); - } else { - ZVAL_LONG(&key, _2); +pp211: + ppch = *++PPCURSOR; + switch (ppch) { + case 'S': + case 's': goto pp265; + default: goto pp59; } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0); - _4$$3 = Z_TYPE_P(&key) == IS_STRING; - if (_4$$3) { - _4$$3 = Z_TYPE_P(&value) != IS_NULL; +pp212: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp266; + default: goto pp59; } - if (_4$$3) { - zephir_read_property(&_5$$4, this_ptr, ZEND_STRL("escaper"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_6$$4, &_5$$4, "attributes", NULL, 0, &value); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_7$$4); - ZEPHIR_CONCAT_VSVS(&_7$$4, &key, "=\"", &_6$$4, "\" "); - zephir_concat_self(&result, &_7$$4); +pp213: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp267; + default: goto pp59; } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &attributes, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; +pp214: + ppch = *++PPCURSOR; + switch (ppch) { + case 'H': + case 'h': goto pp268; + default: goto pp59; } - ZEPHIR_CALL_METHOD(&key, &attributes, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &attributes, "current", NULL, 0); - zephir_check_call_status(); - _8$$5 = Z_TYPE_P(&key) == IS_STRING; - if (_8$$5) { - _8$$5 = Z_TYPE_P(&value) != IS_NULL; - } - if (_8$$5) { - zephir_read_property(&_9$$6, this_ptr, ZEND_STRL("escaper"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_10$$6, &_9$$6, "attributes", NULL, 0, &value); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_11$$6); - ZEPHIR_CONCAT_VSVS(&_11$$6, &key, "=\"", &_10$$6, "\" "); - zephir_concat_self(&result, &_11$$6); - } - ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - RETURN_CCTOR(&result); -} - -static PHP_METHOD(Phalcon_Html_Helper_AbstractHelper, renderElement) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval attributes; - zval *tag_param = NULL, *attributes_param = NULL; - zval tag; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tag); - ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(tag) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &tag_param, &attributes_param); - zephir_get_strval(&tag, tag_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "rendertag", NULL, 0, &tag, &attributes); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Html_Helper_AbstractHelper, renderFullElement) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool raw; - zval attributes; - zval *tag_param = NULL, *text_param = NULL, *attributes_param = NULL, *raw_param = NULL, content, _0, _1, _2, _3; - zval tag, text; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tag); - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&content); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 4) - Z_PARAM_STR(tag) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - Z_PARAM_BOOL(raw) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 2, &tag_param, &text_param, &attributes_param, &raw_param); - zephir_get_strval(&tag, tag_param); - zephir_get_strval(&text, text_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - if (!raw_param) { - raw = 0; - } else { - raw = zephir_get_boolval(raw_param); - } - - - if (raw) { - ZEPHIR_CPY_WRT(&content, &text); - } else { - zephir_read_property(&_0, this_ptr, ZEND_STRL("escaper"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&content, &_0, "html", NULL, 0, &text); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(&_1, this_ptr, "renderelement", NULL, 0, &tag, &attributes); - zephir_check_call_status(); - if (raw) { - ZVAL_BOOL(&_3, 1); - } else { - ZVAL_BOOL(&_3, 0); - } - ZEPHIR_CALL_METHOD(&_2, this_ptr, "close", NULL, 0, &tag, &_3); - zephir_check_call_status(); - ZEPHIR_CONCAT_VVV(return_value, &_1, &content, &_2); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Html_Helper_AbstractHelper, renderTag) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval attributes; - zval *tag_param = NULL, *attributes_param = NULL, close, *close_param = NULL, attrs, escapedAttrs, _3, _4, _5, _0$$3, _1$$3, _2$$3; - zval tag; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tag); - ZVAL_UNDEF(&close); - ZVAL_UNDEF(&attrs); - ZVAL_UNDEF(&escapedAttrs); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(tag) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - Z_PARAM_STR(close) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &tag_param, &attributes_param, &close_param); - zephir_get_strval(&tag, tag_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - if (!close_param) { - ZEPHIR_INIT_VAR(&close); - ZVAL_STRING(&close, ""); - } else { - zephir_get_strval(&close, close_param); - } - - - ZEPHIR_INIT_VAR(&escapedAttrs); - ZVAL_STRING(&escapedAttrs, ""); - if (zephir_fast_count_int(&attributes) > 0) { - ZEPHIR_INIT_VAR(&_0$$3); - array_init(&_0$$3); - ZEPHIR_CALL_METHOD(&attrs, this_ptr, "orderattributes", NULL, 0, &_0$$3, &attributes); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1$$3); - ZEPHIR_CALL_METHOD(&_2$$3, this_ptr, "renderattributes", NULL, 0, &attrs); - zephir_check_call_status(); - zephir_fast_trim(&_1$$3, &_2$$3, NULL , ZEPHIR_TRIM_RIGHT); - ZEPHIR_INIT_NVAR(&escapedAttrs); - ZEPHIR_CONCAT_SV(&escapedAttrs, " ", &_1$$3); - } - ZEPHIR_INIT_VAR(&_3); - ZEPHIR_INIT_VAR(&_4); - zephir_fast_trim(&_4, &close, NULL , ZEPHIR_TRIM_BOTH); - if (ZEPHIR_IS_EMPTY(&_4)) { - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, ""); - } else { - ZEPHIR_INIT_VAR(&_5); - zephir_fast_trim(&_5, &close, NULL , ZEPHIR_TRIM_BOTH); - ZEPHIR_INIT_NVAR(&_3); - ZEPHIR_CONCAT_SV(&_3, " ", &_5); - } - ZEPHIR_CPY_WRT(&close, &_3); - ZEPHIR_CONCAT_SVVVS(return_value, "<", &tag, &escapedAttrs, &close, ">"); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Html_Helper_AbstractHelper, selfClose) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval attributes; - zval *tag_param = NULL, *attributes_param = NULL, _0; - zval tag; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tag); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(tag) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &tag_param, &attributes_param); - zephir_get_strval(&tag, tag_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "/"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "rendertag", NULL, 0, &tag, &attributes, &_0); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_AbstractList) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, AbstractList, phalcon, html_helper_abstractlist, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_abstractlist_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_null(phalcon_html_helper_abstractlist_ce, SL("attributes"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_html_helper_abstractlist_ce, SL("elementTag"), "li", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_html_helper_abstractlist_ce, SL("store"), ZEND_ACC_PROTECTED); - phalcon_html_helper_abstractlist_ce->create_object = zephir_init_properties_Phalcon_Html_Helper_AbstractList; - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_AbstractList, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval attributes; - zval *indent_param = NULL, *delimiter_param = NULL, *attributes_param = NULL, _0; - zval indent, delimiter; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&indent); - ZVAL_UNDEF(&delimiter); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 3) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(indent) - Z_PARAM_STR_OR_NULL(delimiter) - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 3, &indent_param, &delimiter_param, &attributes_param); - if (!indent_param) { - ZEPHIR_INIT_VAR(&indent); - } else { - zephir_get_strval(&indent, indent_param); - } - if (!delimiter_param) { - ZEPHIR_INIT_VAR(&delimiter); - } else { - zephir_get_strval(&delimiter, delimiter_param); - } - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &attributes); - if (UNEXPECTED(!(ZEPHIR_IS_EMPTY(&delimiter)))) { - zephir_update_property_zval(this_ptr, ZEND_STRL("delimiter"), &delimiter); - } - if (UNEXPECTED(!(ZEPHIR_IS_EMPTY(&indent)))) { - zephir_update_property_zval(this_ptr, ZEND_STRL("indent"), &indent); - } - ZEPHIR_INIT_VAR(&_0); - array_init(&_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("store"), &_0); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Html_Helper_AbstractList, __toString) -{ - zval contents, _0, _1, _2, _3, _4, _5, _6, _7; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&contents); - 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, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - if (ZEPHIR_IS_EMPTY(&_0)) { - RETURN_MM_STRING(""); - } - zephir_read_property(&_1, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_3, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_4, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "renderarrayelements", NULL, 0, &_3, &_4); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&contents); - ZEPHIR_CONCAT_VV(&contents, &_1, &_2); - ZEPHIR_CALL_METHOD(&_5, this_ptr, "gettag", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_6, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - ZVAL_BOOL(&_7, 1); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "renderfullelement", NULL, 0, &_5, &contents, &_6, &_7); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Html_Helper_AbstractList, getTag) -{ -} - -zend_object *zephir_init_properties_Phalcon_Html_Helper_AbstractList(zend_class_entry *class_type) -{ - zval _0, _2, _1$$3, _3$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("store"), &_1$$3); +pp215: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp269; + default: goto pp59; + } +pp216: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp217; + } +pp217: + { + token->opcode = PHQL_T_SET; + return 0; } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("attributes"), &_3$$4); +pp218: + ppch = *++PPCURSOR; + switch (ppch) { + case 'N': + case 'n': goto pp270; + default: goto pp59; + } +pp219: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp272; + default: goto pp59; + } +pp220: + ppch = *++PPCURSOR; + switch (ppch) { + case 'A': + case 'a': goto pp274; + default: goto pp59; + } +pp221: + ppch = *++PPCURSOR; + switch (ppch) { + case 'N': + case 'n': goto pp275; + default: goto pp59; + } +pp222: + ppch = *++PPCURSOR; + switch (ppch) { + case 'U': + case 'u': goto pp276; + default: goto pp59; + } +pp223: + ppch = *++PPCURSOR; + switch (ppch) { + case 'N': + case 'n': goto pp277; + case 'R': + case 'r': goto pp279; + default: goto pp59; + } +pp224: + ppch = *++PPCURSOR; + switch (ppch) { + case 'H': + case 'h': goto pp280; + default: goto pp59; + } +pp225: + ppaccept = 3; + ppch = *(PPMARKER = ++PPCURSOR); + switch (ppch) { + case 0x00: + case 0x01: + case 0x02: + case 0x03: + case 0x04: + case 0x05: + case 0x06: + case 0x07: + case 0x08: + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case 0x0E: + case 0x0F: + case 0x10: + case 0x11: + case 0x12: + case 0x13: + case 0x14: + case 0x15: + case 0x16: + case 0x17: + case 0x18: + case 0x19: + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: + case 0x1F: + case '[': + case 0x7F: goto pp168; + case '\\': goto pp165; + case ']': goto pp167; + default: goto pp163; + } +pp226: + ++PPCURSOR; + { + token->opcode = PHQL_T_BPLACEHOLDER; + token->value = estrndup(q, PPCURSOR - q - 1); + token->len = PPCURSOR - q - 1; + q = PPCURSOR; + return 0; } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_AbstractSeries) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, AbstractSeries, phalcon, html_helper_abstractseries, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_abstractseries_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_null(phalcon_html_helper_abstractseries_ce, SL("attributes"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_html_helper_abstractseries_ce, SL("store"), ZEND_ACC_PROTECTED); - phalcon_html_helper_abstractseries_ce->create_object = zephir_init_properties_Phalcon_Html_Helper_AbstractSeries; - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_AbstractSeries, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *indent_param = NULL, *delimiter_param = NULL, _0; - zval indent, delimiter; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&indent); - ZVAL_UNDEF(&delimiter); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(indent) - Z_PARAM_STR_OR_NULL(delimiter) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &indent_param, &delimiter_param); - if (!indent_param) { - ZEPHIR_INIT_VAR(&indent); - } else { - zephir_get_strval(&indent, indent_param); - } - if (!delimiter_param) { - ZEPHIR_INIT_VAR(&delimiter); - } else { - zephir_get_strval(&delimiter, delimiter_param); - } - - - if (UNEXPECTED(!(ZEPHIR_IS_EMPTY(&delimiter)))) { - zephir_update_property_zval(this_ptr, ZEND_STRL("delimiter"), &delimiter); - } - if (UNEXPECTED(!(ZEPHIR_IS_EMPTY(&indent)))) { - zephir_update_property_zval(this_ptr, ZEND_STRL("indent"), &indent); - } - ZEPHIR_INIT_VAR(&_0); - array_init(&_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("store"), &_0); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Html_Helper_AbstractSeries, __toString) -{ - zval _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_1, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "renderarrayelements", NULL, 0, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Html_Helper_AbstractSeries, getTag) -{ -} - -zend_object *zephir_init_properties_Phalcon_Html_Helper_AbstractSeries(zend_class_entry *class_type) -{ - zval _0, _2, _1$$3, _3$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("store"), &_1$$3); +pp228: + ppch = *++PPCURSOR; + switch (ppch) { + case 'N': + case 'n': goto pp282; + default: goto pp59; + } +pp229: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp283; + default: goto pp59; + } +pp230: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp231; + } +pp231: + { + token->opcode = PHQL_T_CASE; + return 0; } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("attributes"), &_3$$4); +pp232: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp233; + } +pp233: + { + token->opcode = PHQL_T_CAST; + return 0; } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Anchor) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Anchor, phalcon, html_helper_anchor, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_anchor_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_Anchor, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool raw; - zval attributes; - zval *href_param = NULL, *text_param = NULL, *attributes_param = NULL, *raw_param = NULL, overrides, _0, _1; - zval href, text; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&href); - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&overrides); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 4) - Z_PARAM_STR(href) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - Z_PARAM_BOOL(raw) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 2, &href_param, &text_param, &attributes_param, &raw_param); - zephir_get_strval(&href, href_param); - zephir_get_strval(&text, text_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - if (!raw_param) { - raw = 0; - } else { - raw = zephir_get_boolval(raw_param); - } - - - ZEPHIR_CALL_METHOD(&overrides, this_ptr, "processattributes", NULL, 0, &href, &attributes); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "a"); - if (raw) { - ZVAL_BOOL(&_1, 1); - } else { - ZVAL_BOOL(&_1, 0); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "renderfullelement", NULL, 0, &_0, &text, &overrides, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Anchor, processAttributes) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval attributes; - zval *href_param = NULL, *attributes_param = NULL, overrides; - zval href; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&href); - ZVAL_UNDEF(&overrides); - ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(href) - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &href_param, &attributes_param); - zephir_get_strval(&href, href_param); - zephir_get_arrval(&attributes, attributes_param); - - - ZEPHIR_INIT_VAR(&overrides); - zephir_create_array(&overrides, 1, 0); - zephir_array_update_string(&overrides, SL("href"), &href, PH_COPY | PH_SEPARATE); - zephir_array_unset_string(&attributes, SL("href"), PH_SEPARATE); - zephir_fast_array_merge(return_value, &overrides, &attributes); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Base) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Base, phalcon, html_helper_base, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_base_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_Base, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval attributes; - zval *href_param = NULL, *attributes_param = NULL, overrides, _1, _0$$3; - zval href; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&href); - ZVAL_UNDEF(&overrides); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(href) - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &href_param, &attributes_param); - if (!href_param) { - ZEPHIR_INIT_VAR(&href); - } else { - zephir_get_strval(&href, href_param); - } - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_INIT_VAR(&overrides); - array_init(&overrides); - if (!(ZEPHIR_IS_EMPTY(&href))) { - ZEPHIR_INIT_VAR(&_0$$3); - zephir_create_array(&_0$$3, 1, 0); - zephir_array_update_string(&_0$$3, SL("href"), &href, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&overrides, &_0$$3); - } - zephir_array_unset_string(&attributes, SL("href"), PH_SEPARATE); - ZEPHIR_INIT_VAR(&_1); - zephir_fast_array_merge(&_1, &overrides, &attributes); - ZEPHIR_CPY_WRT(&overrides, &_1); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "base"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "renderelement", NULL, 0, &_1, &overrides); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Body) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Body, phalcon, html_helper_body, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_body_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_Body, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *attributes_param = NULL, _0; - zval attributes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &attributes_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "body"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "renderelement", NULL, 0, &_0, &attributes); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Button) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Button, phalcon, html_helper_button, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_button_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_Button, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool raw; - zval attributes; - zval *text_param = NULL, *attributes_param = NULL, *raw_param = NULL, _0, _1; - zval text; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - Z_PARAM_BOOL(raw) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &text_param, &attributes_param, &raw_param); - zephir_get_strval(&text, text_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - if (!raw_param) { - raw = 0; - } else { - raw = zephir_get_boolval(raw_param); - } - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "button"); - if (raw) { - ZVAL_BOOL(&_1, 1); - } else { - ZVAL_BOOL(&_1, 0); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "renderfullelement", NULL, 0, &_0, &text, &attributes, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Close) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Close, phalcon, html_helper_close, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_close_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_Close, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool raw; - zval *tag_param = NULL, *raw_param = NULL, _0; - zval tag; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tag); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(tag) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(raw) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &tag_param, &raw_param); - zephir_get_strval(&tag, tag_param); - if (!raw_param) { - raw = 0; - } else { - raw = zephir_get_boolval(raw_param); - } - - - if (raw) { - ZVAL_BOOL(&_0, 1); - } else { - ZVAL_BOOL(&_0, 0); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "close", NULL, 0, &tag, &_0); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Element) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Element, phalcon, html_helper_element, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_element_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_Element, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool raw; - zval attributes; - zval *tag_param = NULL, *text_param = NULL, *attributes_param = NULL, *raw_param = NULL, _0; - zval tag, text; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tag); - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 4) - Z_PARAM_STR(tag) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - Z_PARAM_BOOL(raw) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 2, &tag_param, &text_param, &attributes_param, &raw_param); - zephir_get_strval(&tag, tag_param); - zephir_get_strval(&text, text_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - if (!raw_param) { - raw = 0; - } else { - raw = zephir_get_boolval(raw_param); - } - - - if (raw) { - ZVAL_BOOL(&_0, 1); - } else { - ZVAL_BOOL(&_0, 0); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "renderfullelement", NULL, 0, &tag, &text, &attributes, &_0); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Form) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Form, phalcon, html_helper_form, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_form_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_Form, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *attributes_param = NULL, overrides, _0, _1; - zval attributes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&overrides); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &attributes_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_INIT_VAR(&overrides); - zephir_create_array(&overrides, 2, 0); - add_assoc_stringl_ex(&overrides, SL("method"), SL("post")); - add_assoc_stringl_ex(&overrides, SL("enctype"), SL("multipart/form-data")); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "orderattributes", NULL, 0, &overrides, &attributes); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&overrides, &_0); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "form"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "renderelement", NULL, 0, &_1, &overrides); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Img) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Img, phalcon, html_helper_img, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_img_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_Img, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval attributes; - zval *src_param = NULL, *attributes_param = NULL, overrides, _0; - zval src; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&src); - ZVAL_UNDEF(&overrides); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(src) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &src_param, &attributes_param); - zephir_get_strval(&src, src_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_INIT_VAR(&overrides); - zephir_create_array(&overrides, 1, 0); - zephir_array_update_string(&overrides, SL("src"), &src, PH_COPY | PH_SEPARATE); - zephir_array_unset_string(&attributes, SL("src"), PH_SEPARATE); - ZEPHIR_INIT_VAR(&_0); - zephir_fast_array_merge(&_0, &overrides, &attributes); - ZEPHIR_CPY_WRT(&overrides, &_0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "img"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "selfclose", NULL, 0, &_0, &overrides); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Label) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Label, phalcon, html_helper_label, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_label_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_Label, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *attributes_param = NULL, _0; - zval attributes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &attributes_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "label"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "renderelement", NULL, 0, &_0, &attributes); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Link) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Link, phalcon, html_helper_link, phalcon_html_helper_abstractseries_ce, phalcon_html_helper_link_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_Link, add) -{ - zval _0, _2; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *rel_param = NULL, *href_param = NULL, attributes, _1, _3; - zval rel, href; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&rel); - ZVAL_UNDEF(&href); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(rel) - Z_PARAM_STR(href) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &rel_param, &href_param); - zephir_get_strval(&rel, rel_param); - zephir_get_strval(&href, href_param); - - - ZEPHIR_INIT_VAR(&attributes); - zephir_create_array(&attributes, 2, 0); - zephir_array_update_string(&attributes, SL("rel"), &rel, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&attributes, SL("href"), &href, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 3, 0); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "renderTag"); - zephir_array_fast_append(&_0, &_1); - ZEPHIR_INIT_VAR(&_2); - zephir_create_array(&_2, 3, 0); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "gettag", NULL, 0); - zephir_check_call_status(); - zephir_array_fast_append(&_2, &_3); - zephir_array_fast_append(&_2, &attributes); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "/"); - zephir_array_fast_append(&_2, &_1); - zephir_array_fast_append(&_0, &_2); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "indent", NULL, 0); - zephir_check_call_status(); - zephir_array_fast_append(&_0, &_3); - zephir_update_property_array_append(this_ptr, SL("store"), &_0); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Link, getTag) -{ - zval *this_ptr = getThis(); - - - - RETURN_STRING("link"); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Meta) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Meta, phalcon, html_helper_meta, phalcon_html_helper_abstractseries_ce, phalcon_html_helper_meta_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_Meta, add) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *attributes_param = NULL, _1, _3; - zval attributes, _0, _2; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &attributes_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 3, 0); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "renderTag"); - zephir_array_fast_append(&_0, &_1); - ZEPHIR_INIT_VAR(&_2); - zephir_create_array(&_2, 2, 0); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "gettag", NULL, 0); - zephir_check_call_status(); - zephir_array_fast_append(&_2, &_3); - zephir_array_fast_append(&_2, &attributes); - zephir_array_fast_append(&_0, &_2); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "indent", NULL, 0); - zephir_check_call_status(); - zephir_array_fast_append(&_0, &_3); - zephir_update_property_array_append(this_ptr, SL("store"), &_0); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Meta, addHttp) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *httpEquiv_param = NULL, *content_param = NULL, _0; - zval httpEquiv, content; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&httpEquiv); - ZVAL_UNDEF(&content); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(httpEquiv) - Z_PARAM_STR(content) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &httpEquiv_param, &content_param); - zephir_get_strval(&httpEquiv, httpEquiv_param); - zephir_get_strval(&content, content_param); - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "http-equiv"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addelement", NULL, 279, &_0, &httpEquiv, &content); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Meta, addName) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, *content_param = NULL, _0; - zval name, content; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&content); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(name) - Z_PARAM_STR(content) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &name_param, &content_param); - zephir_get_strval(&name, name_param); - zephir_get_strval(&content, content_param); - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "name"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addelement", NULL, 279, &_0, &name, &content); - zephir_check_call_status(); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Meta, addProperty) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, *content_param = NULL, _0; - zval name, content; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&content); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(name) - Z_PARAM_STR(content) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &name_param, &content_param); - zephir_get_strval(&name, name_param); - zephir_get_strval(&content, content_param); - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "property"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addelement", NULL, 279, &_0, &name, &content); - zephir_check_call_status(); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Meta, getTag) -{ - zval *this_ptr = getThis(); - - - - RETURN_STRING("meta"); -} - -static PHP_METHOD(Phalcon_Html_Helper_Meta, addElement) -{ - zval attributes; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *element_param = NULL, *value_param = NULL, *content_param = NULL; - zval element, value, content; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&element); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&content); - ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(element) - Z_PARAM_STR(value) - Z_PARAM_STR(content) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &element_param, &value_param, &content_param); - zephir_get_strval(&element, element_param); - zephir_get_strval(&value, value_param); - zephir_get_strval(&content, content_param); - - - ZEPHIR_INIT_VAR(&attributes); - zephir_create_array(&attributes, 2, 0); - zephir_array_update_zval(&attributes, &element, &value, PH_COPY); - zephir_array_update_string(&attributes, SL("content"), &content, PH_COPY | PH_SEPARATE); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &attributes); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Ol) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Ol, phalcon, html_helper_ol, phalcon_html_helper_abstractlist_ce, phalcon_html_helper_ol_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_Ol, add) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool raw; - zval attributes, _0, _2; - zval *text_param = NULL, *attributes_param = NULL, *raw_param = NULL, _1, _3, _4; - zval text; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - Z_PARAM_BOOL(raw) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &text_param, &attributes_param, &raw_param); - zephir_get_strval(&text, text_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - if (!raw_param) { - raw = 0; - } else { - raw = zephir_get_boolval(raw_param); - } - - - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 3, 0); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "renderFullElement"); - zephir_array_fast_append(&_0, &_1); - ZEPHIR_INIT_VAR(&_2); - zephir_create_array(&_2, 4, 0); - ZEPHIR_OBS_VAR(&_3); - zephir_read_property(&_3, this_ptr, ZEND_STRL("elementTag"), PH_NOISY_CC); - zephir_array_fast_append(&_2, &_3); - zephir_array_fast_append(&_2, &text); - zephir_array_fast_append(&_2, &attributes); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_BOOL(&_1, raw); - zephir_array_fast_append(&_2, &_1); - zephir_array_fast_append(&_0, &_2); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "indent", NULL, 0); - zephir_check_call_status(); - zephir_array_fast_append(&_0, &_4); - zephir_update_property_array_append(this_ptr, SL("store"), &_0); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Ol, getTag) -{ - zval *this_ptr = getThis(); - - - - RETURN_STRING("ol"); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Script) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Script, phalcon, html_helper_script, phalcon_html_helper_style_ce, phalcon_html_helper_script_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_Script, getAttributes) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval attributes, required; - zval *href_param = NULL, *attributes_param = NULL; - zval href; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&href); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&required); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(href) - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &href_param, &attributes_param); - zephir_get_strval(&href, href_param); - zephir_get_arrval(&attributes, attributes_param); - - - ZEPHIR_INIT_VAR(&required); - zephir_create_array(&required, 2, 0); - zephir_array_update_string(&required, SL("src"), &href, PH_COPY | PH_SEPARATE); - add_assoc_stringl_ex(&required, SL("type"), SL("text/javascript")); - zephir_array_unset_string(&attributes, SL("src"), PH_SEPARATE); - zephir_fast_array_merge(return_value, &required, &attributes); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Script, getTag) -{ - zval *this_ptr = getThis(); - - - - RETURN_STRING("script"); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Style) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Style, phalcon, html_helper_style, phalcon_html_helper_abstractseries_ce, phalcon_html_helper_style_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_Style, add) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval attributes, _0, _2; - zval *href_param = NULL, *attributes_param = NULL, _1, _3; - zval href; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&href); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(href) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &href_param, &attributes_param); - zephir_get_strval(&href, href_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 3, 0); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "renderFullElement"); - zephir_array_fast_append(&_0, &_1); - ZEPHIR_INIT_VAR(&_2); - zephir_create_array(&_2, 3, 0); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "gettag", NULL, 0); - zephir_check_call_status(); - zephir_array_fast_append(&_2, &_3); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, ""); - zephir_array_fast_append(&_2, &_1); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "getattributes", NULL, 0, &href, &attributes); - zephir_check_call_status(); - zephir_array_fast_append(&_2, &_3); - zephir_array_fast_append(&_0, &_2); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "indent", NULL, 0); - zephir_check_call_status(); - zephir_array_fast_append(&_0, &_3); - zephir_update_property_array_append(this_ptr, SL("store"), &_0); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Style, getTag) -{ - zval *this_ptr = getThis(); - - - - RETURN_STRING("style"); -} - -static PHP_METHOD(Phalcon_Html_Helper_Style, getAttributes) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval attributes, required; - zval *href_param = NULL, *attributes_param = NULL; - zval href; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&href); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&required); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(href) - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &href_param, &attributes_param); - zephir_get_strval(&href, href_param); - zephir_get_arrval(&attributes, attributes_param); - - - ZEPHIR_INIT_VAR(&required); - zephir_create_array(&required, 4, 0); - add_assoc_stringl_ex(&required, SL("rel"), SL("stylesheet")); - zephir_array_update_string(&required, SL("href"), &href, PH_COPY | PH_SEPARATE); - add_assoc_stringl_ex(&required, SL("type"), SL("text/css")); - add_assoc_stringl_ex(&required, SL("media"), SL("screen")); - zephir_array_unset_string(&attributes, SL("href"), PH_SEPARATE); - zephir_fast_array_merge(return_value, &required, &attributes); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Title) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Title, phalcon, html_helper_title, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_title_method_entry, 0); - - zend_declare_property_null(phalcon_html_helper_title_ce, SL("append"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_html_helper_title_ce, SL("prepend"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_html_helper_title_ce, SL("title"), "", ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_html_helper_title_ce, SL("separator"), "", ZEND_ACC_PROTECTED); - phalcon_html_helper_title_ce->create_object = zephir_init_properties_Phalcon_Html_Helper_Title; - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_Title, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *separator_param = NULL, *indent_param = NULL, *delimiter_param = NULL; - zval separator, indent, delimiter; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&separator); - ZVAL_UNDEF(&indent); - ZVAL_UNDEF(&delimiter); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 3) - Z_PARAM_OPTIONAL - Z_PARAM_STR(separator) - Z_PARAM_STR_OR_NULL(indent) - Z_PARAM_STR_OR_NULL(delimiter) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 3, &separator_param, &indent_param, &delimiter_param); - if (!separator_param) { - ZEPHIR_INIT_VAR(&separator); - ZVAL_STRING(&separator, ""); - } else { - zephir_get_strval(&separator, separator_param); - } - if (!indent_param) { - ZEPHIR_INIT_VAR(&indent); - } else { - zephir_get_strval(&indent, indent_param); - } - if (!delimiter_param) { - ZEPHIR_INIT_VAR(&delimiter); - } else { - zephir_get_strval(&delimiter, delimiter_param); - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("delimiter"), &delimiter); - zephir_update_property_zval(this_ptr, ZEND_STRL("indent"), &indent); - zephir_update_property_zval(this_ptr, ZEND_STRL("separator"), &separator); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Title, __toString) -{ - zval _1; - zval delimiter, indent, items, _0, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&delimiter); - ZVAL_UNDEF(&indent); - ZVAL_UNDEF(&items); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_13); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("prepend"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - zephir_create_array(&_1, 1, 0); - ZEPHIR_OBS_VAR(&_2); - zephir_read_property(&_2, this_ptr, ZEND_STRL("title"), PH_NOISY_CC); - zephir_array_fast_append(&_1, &_2); - zephir_read_property(&_3, this_ptr, ZEND_STRL("append"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&items, "array_merge", NULL, 277, &_0, &_1, &_3); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_4); - zephir_read_property(&_5, this_ptr, ZEND_STRL("indent"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_5)) { - ZEPHIR_OBS_NVAR(&_4); - zephir_read_property(&_4, this_ptr, ZEND_STRL("indent"), PH_NOISY_CC); - } else { - ZEPHIR_INIT_NVAR(&_4); - ZVAL_STRING(&_4, ""); - } - ZEPHIR_CPY_WRT(&indent, &_4); - ZEPHIR_INIT_NVAR(&_4); - zephir_read_property(&_6, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_6)) { - ZEPHIR_OBS_NVAR(&_4); - zephir_read_property(&_4, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC); - } else { - ZEPHIR_INIT_NVAR(&_4); - ZVAL_STRING(&_4, ""); - } - ZEPHIR_CPY_WRT(&delimiter, &_4); - ZEPHIR_INIT_VAR(&_7); - array_init(&_7); - zephir_update_property_zval(this_ptr, ZEND_STRL("append"), &_7); - ZEPHIR_INIT_VAR(&_8); - array_init(&_8); - zephir_update_property_zval(this_ptr, ZEND_STRL("prepend"), &_8); - ZEPHIR_INIT_VAR(&_9); - ZEPHIR_INIT_NVAR(&_9); - ZVAL_STRING(&_9, ""); - zephir_update_property_zval(this_ptr, ZEND_STRL("title"), &_9); - ZEPHIR_INIT_NVAR(&_9); - zephir_read_property(&_11, this_ptr, ZEND_STRL("separator"), PH_NOISY_CC | PH_READONLY); - zephir_fast_join(&_9, &_11, &items); - ZEPHIR_INIT_VAR(&_12); - array_init(&_12); - ZEPHIR_INIT_VAR(&_13); - ZVAL_STRING(&_13, "title"); - ZVAL_BOOL(&_14, 1); - ZEPHIR_CALL_METHOD(&_10, this_ptr, "renderfullelement", NULL, 0, &_13, &_9, &_12, &_14); - zephir_check_call_status(); - ZEPHIR_CONCAT_VVV(return_value, &indent, &_10, &delimiter); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Title, append) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool raw; - zval *text_param = NULL, *raw_param = NULL, _0, _1; - zval text; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(raw) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &text_param, &raw_param); - zephir_get_strval(&text, text_param); - if (!raw_param) { - raw = 0; - } else { - raw = zephir_get_boolval(raw_param); - } - - - ZEPHIR_INIT_VAR(&_0); - if (raw) { - ZEPHIR_CPY_WRT(&_0, &text); - } else { - zephir_read_property(&_1, this_ptr, ZEND_STRL("escaper"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_0, &_1, "html", NULL, 0, &text); - zephir_check_call_status(); - } - zephir_get_strval(&text, &_0); - zephir_update_property_array_append(this_ptr, SL("append"), &text); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Title, get) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "title"); -} - -static PHP_METHOD(Phalcon_Html_Helper_Title, set) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool raw; - zval *text_param = NULL, *raw_param = NULL, _0, _1; - zval text; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(raw) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &text_param, &raw_param); - zephir_get_strval(&text, text_param); - if (!raw_param) { - raw = 0; - } else { - raw = zephir_get_boolval(raw_param); - } - - - ZEPHIR_INIT_VAR(&_0); - if (raw) { - ZEPHIR_CPY_WRT(&_0, &text); - } else { - zephir_read_property(&_1, this_ptr, ZEND_STRL("escaper"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_0, &_1, "html", NULL, 0, &text); - zephir_check_call_status(); - } - zephir_get_strval(&text, &_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("title"), &text); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Title, prepend) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool raw; - zval *text_param = NULL, *raw_param = NULL, _0, _1; - zval text; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(raw) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &text_param, &raw_param); - zephir_get_strval(&text, text_param); - if (!raw_param) { - raw = 0; - } else { - raw = zephir_get_boolval(raw_param); - } - - - ZEPHIR_INIT_VAR(&_0); - if (raw) { - ZEPHIR_CPY_WRT(&_0, &text); - } else { - zephir_read_property(&_1, this_ptr, ZEND_STRL("escaper"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_0, &_1, "html", NULL, 0, &text); - zephir_check_call_status(); - } - zephir_get_strval(&text, &_0); - zephir_update_property_array_append(this_ptr, SL("prepend"), &text); - RETURN_THIS(); -} - -zend_object *zephir_init_properties_Phalcon_Html_Helper_Title(zend_class_entry *class_type) -{ - zval _0, _2, _1$$3, _3$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("prepend"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("prepend"), &_1$$3); +pp234: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp284; + default: goto pp59; + } +pp235: + ppch = *++PPCURSOR; + switch (ppch) { + case 'S': + case 's': goto pp285; + default: goto pp59; + } +pp236: + ppch = *++PPCURSOR; + switch (ppch) { + case 'T': + case 't': goto pp287; + default: goto pp59; + } +pp237: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp238; + } +pp238: + { + token->opcode = PHQL_T_DESC; + return 0; } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("append"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("append"), &_3$$4); +pp239: + ppch = *++PPCURSOR; + switch (ppch) { + case 'I': + case 'i': goto pp288; + default: goto pp59; + } +pp240: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp241; + } +pp241: + { + token->opcode = PHQL_T_ELSE; + return 0; } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Ul) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper, Ul, phalcon, html_helper_ul, phalcon_html_helper_ol_ce, phalcon_html_helper_ul_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_Ul, getTag) -{ - zval *this_ptr = getThis(); - - - - RETURN_STRING("ul"); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_AbstractInput) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, AbstractInput, phalcon, html_helper_input_abstractinput, phalcon_html_helper_abstracthelper_ce, phalcon_html_helper_input_abstractinput_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_string(phalcon_html_helper_input_abstractinput_ce, SL("type"), "text", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_html_helper_input_abstractinput_ce, SL("attributes"), ZEND_ACC_PROTECTED); - phalcon_html_helper_input_abstractinput_ce->create_object = zephir_init_properties_Phalcon_Html_Helper_Input_AbstractInput; - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_Input_AbstractInput, __invoke) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval attributes, _0; - zval *name_param = NULL, *value_param = NULL, *attributes_param = NULL, _1, _3, _4, _2$$3; - zval name, value; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(value) - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &name_param, &value_param, &attributes_param); - zephir_get_strval(&name, name_param); - if (!value_param) { - ZEPHIR_INIT_VAR(&value); - } else { - zephir_get_strval(&value, value_param); - } - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 2, 0); - ZEPHIR_OBS_VAR(&_1); - zephir_read_property(&_1, this_ptr, ZEND_STRL("type"), PH_NOISY_CC); - zephir_array_update_string(&_0, SL("type"), &_1, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_0, SL("name"), &name, PH_COPY | PH_SEPARATE); - zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &_0); - if (!(zephir_array_isset_string(&attributes, SL("id")))) { - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "id"); - zephir_update_property_array(this_ptr, SL("attributes"), &_2$$3, &name); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setvalue", NULL, 0, &value); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_3); - zephir_read_property(&_4, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - zephir_fast_array_merge(&_3, &_4, &attributes); - zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &_3); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Input_AbstractInput, __toString) -{ - zval _0, _1, _2, _3; - zval attributes; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&attributes, &_0); - ZEPHIR_INIT_VAR(&_1); - array_init(&_1); - zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &_1); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "input"); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "/"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "rendertag", NULL, 0, &_2, &attributes, &_3); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Input_AbstractInput, setValue) -{ - zend_bool _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *value_param = NULL, _1$$3; - zval value; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_1$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &value_param); - if (!value_param) { - ZEPHIR_INIT_VAR(&value); - } else { - zephir_get_strval(&value, value_param); - } - - - _0 = zephir_is_numeric(&value); - if (!(_0)) { - _0 = !(ZEPHIR_IS_EMPTY(&value)); - } - if (_0) { - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "value"); - zephir_update_property_array(this_ptr, SL("attributes"), &_1$$3, &value); - } - RETURN_THIS(); -} - -zend_object *zephir_init_properties_Phalcon_Html_Helper_Input_AbstractInput(zend_class_entry *class_type) -{ - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("attributes"), &_1$$3); +pp242: + ppch = *++PPCURSOR; + switch (ppch) { + case 'T': + case 't': goto pp289; + default: goto pp59; + } +pp243: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp290; + default: goto pp59; + } +pp244: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp245; + } +pp245: + { + token->opcode = PHQL_T_FROM; + return 0; } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Checkbox) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Checkbox, phalcon, html_helper_input_checkbox, phalcon_html_helper_input_abstractinput_ce, phalcon_html_helper_input_checkbox_method_entry, 0); - - zend_declare_property_null(phalcon_html_helper_input_checkbox_ce, SL("label"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_html_helper_input_checkbox_ce, SL("type"), "checkbox", ZEND_ACC_PROTECTED); - phalcon_html_helper_input_checkbox_ce->create_object = zephir_init_properties_Phalcon_Html_Helper_Input_Checkbox; - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_Input_Checkbox, __construct) -{ - zval _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *escaper, escaper_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&escaper_sub); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(escaper, phalcon_escaper_escaperinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &escaper); - - - ZEPHIR_CALL_PARENT(NULL, phalcon_html_helper_input_checkbox_ce, getThis(), "__construct", &_0, 0, escaper); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - zephir_create_array(&_1, 3, 0); - add_assoc_stringl_ex(&_1, SL("start"), SL("")); - add_assoc_stringl_ex(&_1, SL("text"), SL("")); - add_assoc_stringl_ex(&_1, SL("end"), SL("")); - zephir_update_property_zval(this_ptr, ZEND_STRL("label"), &_1); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Input_Checkbox, __toString) -{ - zval _2; - zval element, label, unchecked, _1, _3, _4, _5; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_0 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&element); - ZVAL_UNDEF(&label); - ZVAL_UNDEF(&unchecked); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_2); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processchecked", NULL, 114); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&unchecked, this_ptr, "processunchecked", NULL, 115); - zephir_check_call_status(); - ZEPHIR_CALL_PARENT(&element, phalcon_html_helper_input_checkbox_ce, getThis(), "__tostring", &_0, 0); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("label"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&label, &_1); - ZEPHIR_INIT_VAR(&_2); - zephir_create_array(&_2, 3, 0); - add_assoc_stringl_ex(&_2, SL("start"), SL("")); - add_assoc_stringl_ex(&_2, SL("text"), SL("")); - add_assoc_stringl_ex(&_2, SL("end"), SL("")); - zephir_update_property_zval(this_ptr, ZEND_STRL("label"), &_2); - zephir_array_fetch_string(&_3, &label, SL("start"), PH_NOISY | PH_READONLY, "phalcon/Html/Helper/Input/Checkbox.zep", 71); - zephir_array_fetch_string(&_4, &label, SL("text"), PH_NOISY | PH_READONLY, "phalcon/Html/Helper/Input/Checkbox.zep", 73); - zephir_array_fetch_string(&_5, &label, SL("end"), PH_NOISY | PH_READONLY, "phalcon/Html/Helper/Input/Checkbox.zep", 73); - ZEPHIR_CONCAT_VVVVV(return_value, &unchecked, &_3, &element, &_4, &_5); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Input_Checkbox, label) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *attributes_param = NULL, text, _1, _2, _4, _5, _7; - zval attributes, _3, _6; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_7); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &attributes_param); - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_INIT_VAR(&text); - ZVAL_STRING(&text, ""); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "text"); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, ""); - ZEPHIR_CALL_CE_STATIC(&text, phalcon_helper_arr_ce, "get", &_0, 16, &attributes, &_1, &_2); - zephir_check_call_status(); - zephir_array_unset_string(&attributes, SL("text"), PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_1); - ZEPHIR_INIT_VAR(&_3); - zephir_create_array(&_3, 1, 0); - zephir_read_property(&_4, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_OBS_VAR(&_5); - zephir_array_fetch_string(&_5, &_4, SL("id"), PH_NOISY, "phalcon/Html/Helper/Input/Checkbox.zep", 94); - zephir_array_update_string(&_3, SL("for"), &_5, PH_COPY | PH_SEPARATE); - zephir_fast_array_merge(&_1, &_3, &attributes); - ZEPHIR_CPY_WRT(&attributes, &_1); - ZEPHIR_INIT_VAR(&_6); - zephir_create_array(&_6, 3, 0); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "label"); - ZEPHIR_CALL_METHOD(&_7, this_ptr, "rendertag", NULL, 0, &_2, &attributes); - zephir_check_call_status(); - zephir_array_update_string(&_6, SL("start"), &_7, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_6, SL("text"), &text, PH_COPY | PH_SEPARATE); - add_assoc_stringl_ex(&_6, SL("end"), SL("")); - zephir_update_property_zval(this_ptr, ZEND_STRL("label"), &_6); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Input_Checkbox, processChecked) -{ - zval attributes; - zval checked, value, _0, _2, _3, _4$$3, _5$$3, _6$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&checked); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&attributes); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&attributes, &_0); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "checked"); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, ""); - ZEPHIR_CALL_CE_STATIC(&checked, phalcon_helper_arr_ce, "get", &_1, 16, &attributes, &_2, &_3); - zephir_check_call_status(); - zephir_array_unset_string(&attributes, SL("checked"), PH_SEPARATE); - if (!(ZEPHIR_IS_EMPTY(&checked))) { - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "value"); - ZEPHIR_INIT_VAR(&_5$$3); - ZVAL_STRING(&_5$$3, ""); - ZEPHIR_CALL_CE_STATIC(&value, phalcon_helper_arr_ce, "get", &_1, 16, &attributes, &_4$$3, &_5$$3); - zephir_check_call_status(); - if (ZEPHIR_IS_IDENTICAL(&checked, &value)) { - ZEPHIR_INIT_VAR(&_6$$4); - ZVAL_STRING(&_6$$4, "checked"); - zephir_array_update_string(&attributes, SL("checked"), &_6$$4, PH_COPY | PH_SEPARATE); +pp246: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp247; + } +pp247: + { + token->opcode = PHQL_T_FULL; + return 0; } - } - zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &attributes); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Input_Checkbox, processUnchecked) -{ - zval attributes, _4$$3; - zval unchecked, _0, _2, _3, _5$$3, _6$$3, _7$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&unchecked); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_4$$3); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&attributes, &_0); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "unchecked"); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, ""); - ZEPHIR_CALL_CE_STATIC(&unchecked, phalcon_helper_arr_ce, "get", &_1, 16, &attributes, &_2, &_3); - zephir_check_call_status(); - zephir_array_unset_string(&attributes, SL("unchecked"), PH_SEPARATE); - if (!(ZEPHIR_IS_EMPTY(&unchecked))) { - ZEPHIR_INIT_VAR(&_4$$3); - zephir_create_array(&_4$$3, 2, 0); - zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_OBS_VAR(&_6$$3); - zephir_array_fetch_string(&_6$$3, &_5$$3, SL("name"), PH_NOISY, "phalcon/Html/Helper/Input/Checkbox.zep", 149); - zephir_array_update_string(&_4$$3, SL("name"), &_6$$3, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_4$$3, SL("value"), &unchecked, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_VAR(&_7$$3); - ZVAL_STRING(&_7$$3, "hidden"); - ZEPHIR_CALL_METHOD(&unchecked, this_ptr, "rendertag", NULL, 0, &_7$$3, &_4$$3); - zephir_check_call_status(); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &attributes); - RETURN_CCTOR(&unchecked); -} - -zend_object *zephir_init_properties_Phalcon_Html_Helper_Input_Checkbox(zend_class_entry *class_type) -{ - zval _0, _2, _1$$3, _3$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("attributes"), &_1$$3); +pp248: + ppch = *++PPCURSOR; + switch (ppch) { + case 'P': + case 'p': goto pp292; + default: goto pp59; + } +pp249: + ppch = *++PPCURSOR; + switch (ppch) { + case 'N': + case 'n': goto pp294; + default: goto pp59; + } +pp250: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp295; + default: goto pp59; + } +pp251: + ppch = *++PPCURSOR; + switch (ppch) { + case 'R': + case 'r': goto pp297; + default: goto pp59; + } +pp252: + ppch = *++PPCURSOR; + switch (ppch) { + case 'R': + case 'r': goto pp299; + default: goto pp59; + } +pp253: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp254; + } +pp254: + { + token->opcode = PHQL_T_INTO; + return 0; } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("label"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("label"), &_3$$4); +pp255: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp256; + } +pp256: + { + token->opcode = PHQL_T_JOIN; + return 0; } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Color) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Color, phalcon, html_helper_input_color, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - - zend_declare_property_string(phalcon_html_helper_input_color_ce, SL("type"), "color", ZEND_ACC_PROTECTED); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Date) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Date, phalcon, html_helper_input_date, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - - zend_declare_property_string(phalcon_html_helper_input_date_ce, SL("type"), "date", ZEND_ACC_PROTECTED); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_DateTime) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, DateTime, phalcon, html_helper_input_datetime, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - - zend_declare_property_string(phalcon_html_helper_input_datetime_ce, SL("type"), "datetime", ZEND_ACC_PROTECTED); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_DateTimeLocal) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, DateTimeLocal, phalcon, html_helper_input_datetimelocal, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - - zend_declare_property_string(phalcon_html_helper_input_datetimelocal_ce, SL("type"), "datetime-local", ZEND_ACC_PROTECTED); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Email) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Email, phalcon, html_helper_input_email, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - - zend_declare_property_string(phalcon_html_helper_input_email_ce, SL("type"), "email", ZEND_ACC_PROTECTED); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_File) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, File, phalcon, html_helper_input_file, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - - zend_declare_property_string(phalcon_html_helper_input_file_ce, SL("type"), "file", ZEND_ACC_PROTECTED); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Hidden) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Hidden, phalcon, html_helper_input_hidden, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - - zend_declare_property_string(phalcon_html_helper_input_hidden_ce, SL("type"), "hidden", ZEND_ACC_PROTECTED); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Image) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Image, phalcon, html_helper_input_image, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - - zend_declare_property_string(phalcon_html_helper_input_image_ce, SL("type"), "image", ZEND_ACC_PROTECTED); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Input) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Input, phalcon, html_helper_input_input, phalcon_html_helper_input_abstractinput_ce, phalcon_html_helper_input_input_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_Input_Input, setType) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *type_param = NULL; - zval type; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&type); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(type) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &type_param); - zephir_get_strval(&type, type_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &type); - RETURN_THIS(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Month) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Month, phalcon, html_helper_input_month, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - - zend_declare_property_string(phalcon_html_helper_input_month_ce, SL("type"), "month", ZEND_ACC_PROTECTED); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Numeric) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Numeric, phalcon, html_helper_input_numeric, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - - zend_declare_property_string(phalcon_html_helper_input_numeric_ce, SL("type"), "numeric", ZEND_ACC_PROTECTED); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Password) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Password, phalcon, html_helper_input_password, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - - zend_declare_property_string(phalcon_html_helper_input_password_ce, SL("type"), "password", ZEND_ACC_PROTECTED); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Radio) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Radio, phalcon, html_helper_input_radio, phalcon_html_helper_input_checkbox_ce, NULL, 0); - - zend_declare_property_string(phalcon_html_helper_input_radio_ce, SL("type"), "radio", ZEND_ACC_PROTECTED); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Range) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Range, phalcon, html_helper_input_range, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - - zend_declare_property_string(phalcon_html_helper_input_range_ce, SL("type"), "range", ZEND_ACC_PROTECTED); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Search) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Search, phalcon, html_helper_input_search, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - - zend_declare_property_string(phalcon_html_helper_input_search_ce, SL("type"), "search", ZEND_ACC_PROTECTED); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Select) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Select, phalcon, html_helper_input_select, phalcon_html_helper_abstractlist_ce, phalcon_html_helper_input_select_method_entry, 0); - - zend_declare_property_string(phalcon_html_helper_input_select_ce, SL("elementTag"), "option", ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_html_helper_input_select_ce, SL("inOptGroup"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_html_helper_input_select_ce, SL("selected"), "", ZEND_ACC_PROTECTED); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_Input_Select, add) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool raw; - zval attributes, _1, _3; - zval *text_param = NULL, *value_param = NULL, *attributes_param = NULL, *raw_param = NULL, _0, _2, _4, _5; - zval text, value; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 4) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(value) - Z_PARAM_ARRAY(attributes) - Z_PARAM_BOOL(raw) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 3, &text_param, &value_param, &attributes_param, &raw_param); - zephir_get_strval(&text, text_param); - if (!value_param) { - ZEPHIR_INIT_VAR(&value); - } else { - zephir_get_strval(&value, value_param); - } - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - if (!raw_param) { - raw = 0; - } else { - raw = zephir_get_boolval(raw_param); - } - - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "processvalue", NULL, 278, &attributes, &value); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&attributes, &_0); - ZEPHIR_INIT_VAR(&_1); - zephir_create_array(&_1, 3, 0); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "renderFullElement"); - zephir_array_fast_append(&_1, &_2); - ZEPHIR_INIT_VAR(&_3); - zephir_create_array(&_3, 4, 0); - ZEPHIR_OBS_VAR(&_4); - zephir_read_property(&_4, this_ptr, ZEND_STRL("elementTag"), PH_NOISY_CC); - zephir_array_fast_append(&_3, &_4); - zephir_array_fast_append(&_3, &text); - zephir_array_fast_append(&_3, &attributes); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_BOOL(&_2, raw); - zephir_array_fast_append(&_3, &_2); - zephir_array_fast_append(&_1, &_3); - ZEPHIR_CALL_METHOD(&_5, this_ptr, "indent", NULL, 0); - zephir_check_call_status(); - zephir_array_fast_append(&_1, &_5); - zephir_update_property_array_append(this_ptr, SL("store"), &_1); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Input_Select, addPlaceholder) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool raw; - zval attributes, _1, _3; - zval *text_param = NULL, *value = NULL, value_sub, *attributes_param = NULL, *raw_param = NULL, __$null, _2, _4, _5; - zval text, _0$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&value_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 4) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(value) - Z_PARAM_ARRAY(attributes) - Z_PARAM_BOOL(raw) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 3, &text_param, &value, &attributes_param, &raw_param); - zephir_get_strval(&text, text_param); - if (!value) { - value = &value_sub; - value = &__$null; - } - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - if (!raw_param) { - raw = 0; - } else { - raw = zephir_get_boolval(raw_param); - } - - - if (Z_TYPE_P(value) != IS_NULL) { - zephir_cast_to_string(&_0$$3, value); - zephir_array_update_string(&attributes, SL("value"), &_0$$3, PH_COPY | PH_SEPARATE); - } - ZEPHIR_INIT_VAR(&_1); - zephir_create_array(&_1, 3, 0); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "renderFullElement"); - zephir_array_fast_append(&_1, &_2); - ZEPHIR_INIT_VAR(&_3); - zephir_create_array(&_3, 4, 0); - ZEPHIR_OBS_VAR(&_4); - zephir_read_property(&_4, this_ptr, ZEND_STRL("elementTag"), PH_NOISY_CC); - zephir_array_fast_append(&_3, &_4); - zephir_array_fast_append(&_3, &text); - zephir_array_fast_append(&_3, &attributes); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_BOOL(&_2, raw); - zephir_array_fast_append(&_3, &_2); - zephir_array_fast_append(&_1, &_3); - ZEPHIR_CALL_METHOD(&_5, this_ptr, "indent", NULL, 0); - zephir_check_call_status(); - zephir_array_fast_append(&_1, &_5); - zephir_update_property_array_append(this_ptr, SL("store"), &_1); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Input_Select, optGroup) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval attributes, _1$$3, _3$$3, _8$$4; - zval *label_param = NULL, *attributes_param = NULL, __$true, __$false, _0, _11, _2$$3, _4$$3, _5$$3, _6$$4, _7$$4, _9$$4, _10$$4; - zval label; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&label); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_10$$4); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_8$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(label) - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &label_param, &attributes_param); - if (!label_param) { - ZEPHIR_INIT_VAR(&label); - } else { - zephir_get_strval(&label, label_param); - } - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("inOptGroup"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - ZEPHIR_INIT_VAR(&_1$$3); - zephir_create_array(&_1$$3, 3, 0); - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "optGroupStart"); - zephir_array_fast_append(&_1$$3, &_2$$3); - ZEPHIR_INIT_VAR(&_3$$3); - zephir_create_array(&_3$$3, 2, 0); - zephir_array_fast_append(&_3$$3, &label); - zephir_array_fast_append(&_3$$3, &attributes); - zephir_array_fast_append(&_1$$3, &_3$$3); - ZEPHIR_CALL_METHOD(&_4$$3, this_ptr, "indent", NULL, 0); - zephir_check_call_status(); - zephir_array_fast_append(&_1$$3, &_4$$3); - zephir_update_property_array_append(this_ptr, SL("store"), &_1$$3); - ZEPHIR_INIT_NVAR(&_2$$3); - ZVAL_LONG(&_2$$3, 1); - zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("indentLevel"), PH_NOISY_CC); - ZEPHIR_ADD_ASSIGN(&_5$$3, &_2$$3) - zephir_update_property_zval(this_ptr, ZEND_STRL("indentLevel"), &_5$$3); - } else { - ZEPHIR_INIT_VAR(&_7$$4); - ZVAL_LONG(&_7$$4, 1); - zephir_read_property(&_6$$4, this_ptr, ZEND_STRL("indentLevel"), PH_NOISY_CC); - ZEPHIR_SUB_ASSIGN(&_6$$4, &_7$$4) - zephir_update_property_zval(this_ptr, ZEND_STRL("indentLevel"), &_6$$4); - ZEPHIR_INIT_VAR(&_8$$4); - zephir_create_array(&_8$$4, 3, 0); - ZEPHIR_INIT_VAR(&_9$$4); - ZVAL_STRING(&_9$$4, "optGroupEnd"); - zephir_array_fast_append(&_8$$4, &_9$$4); - ZEPHIR_INIT_NVAR(&_9$$4); - array_init(&_9$$4); - zephir_array_fast_append(&_8$$4, &_9$$4); - ZEPHIR_CALL_METHOD(&_10$$4, this_ptr, "indent", NULL, 0); - zephir_check_call_status(); - zephir_array_fast_append(&_8$$4, &_10$$4); - zephir_update_property_array_append(this_ptr, SL("store"), &_8$$4); - } - ZEPHIR_OBS_VAR(&_11); - zephir_read_property(&_11, this_ptr, ZEND_STRL("inOptGroup"), PH_NOISY_CC); - if (!zephir_is_true(&_11)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("inOptGroup"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("inOptGroup"), &__$false); - } - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Input_Select, selected) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *selected_param = NULL; - zval selected; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&selected); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(selected) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &selected_param); - zephir_get_strval(&selected, selected_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("selected"), &selected); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Input_Select, getTag) -{ - zval *this_ptr = getThis(); - - - - RETURN_STRING("select"); -} - -static PHP_METHOD(Phalcon_Html_Helper_Input_Select, optGroupEnd) -{ - zval *this_ptr = getThis(); - - - - RETURN_STRING(""); -} - -static PHP_METHOD(Phalcon_Html_Helper_Input_Select, optGroupStart) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval attributes; - zval *label_param = NULL, *attributes_param = NULL, _0; - zval label; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&label); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(label) - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &label_param, &attributes_param); - zephir_get_strval(&label, label_param); - zephir_get_arrval(&attributes, attributes_param); - - - zephir_array_update_string(&attributes, SL("label"), &label, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "optgroup"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "rendertag", NULL, 0, &_0, &attributes); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Html_Helper_Input_Select, processValue) -{ - zend_bool _0, _2$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *attributes_param = NULL, *value = NULL, value_sub, __$null, _1$$3, _3$$3, _4$$4; - zval attributes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&value_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(attributes) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &attributes_param, &value); - zephir_get_arrval(&attributes, attributes_param); - if (!value) { - value = &value_sub; - value = &__$null; - } - - - _0 = zephir_is_numeric(value); - if (!(_0)) { - _0 = !(ZEPHIR_IS_EMPTY(value)); - } - if (_0) { - zephir_array_update_string(&attributes, SL("value"), value, PH_COPY | PH_SEPARATE); - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("selected"), PH_NOISY_CC | PH_READONLY); - _2$$3 = !(ZEPHIR_IS_EMPTY(&_1$$3)); - if (_2$$3) { - zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("selected"), PH_NOISY_CC | PH_READONLY); - _2$$3 = ZEPHIR_IS_IDENTICAL(value, &_3$$3); +pp257: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp258; + } +pp258: + { + token->opcode = PHQL_T_LEFT; + return 0; } - if (_2$$3) { - ZEPHIR_INIT_VAR(&_4$$4); - ZVAL_STRING(&_4$$4, "selected"); - zephir_array_update_string(&attributes, SL("selected"), &_4$$4, PH_COPY | PH_SEPARATE); +pp259: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp260; + } +pp260: + { + token->opcode = PHQL_T_LIKE; + return 0; } - } - RETURN_CTOR(&attributes); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Submit) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Submit, phalcon, html_helper_input_submit, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - - zend_declare_property_string(phalcon_html_helper_input_submit_ce, SL("type"), "submit", ZEND_ACC_PROTECTED); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Tel) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Tel, phalcon, html_helper_input_tel, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - - zend_declare_property_string(phalcon_html_helper_input_tel_ce, SL("type"), "tel", ZEND_ACC_PROTECTED); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Text) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Text, phalcon, html_helper_input_text, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Textarea) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Textarea, phalcon, html_helper_input_textarea, phalcon_html_helper_input_abstractinput_ce, phalcon_html_helper_input_textarea_method_entry, 0); - - zend_declare_property_string(phalcon_html_helper_input_textarea_ce, SL("type"), "textarea", ZEND_ACC_PROTECTED); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Helper_Input_Textarea, __toString) -{ - zval attributes; - zval value, _0, _2, _3, _4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&attributes); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&attributes, &_0); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "value"); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, ""); - ZEPHIR_CALL_CE_STATIC(&value, phalcon_helper_arr_ce, "get", &_1, 16, &attributes, &_2, &_3); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_2); - array_init(&_2); - zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &_2); - zephir_array_unset_string(&attributes, SL("type"), PH_SEPARATE); - zephir_array_unset_string(&attributes, SL("value"), PH_SEPARATE); - zephir_read_property(&_4, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "renderfullelement", NULL, 0, &_4, &value, &attributes); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Time) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Time, phalcon, html_helper_input_time, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - - zend_declare_property_string(phalcon_html_helper_input_time_ce, SL("type"), "time", ZEND_ACC_PROTECTED); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Url) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Url, phalcon, html_helper_input_url, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - - zend_declare_property_string(phalcon_html_helper_input_url_ce, SL("type"), "url", ZEND_ACC_PROTECTED); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Helper_Input_Week) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Helper\\Input, Week, phalcon, html_helper_input_week, phalcon_html_helper_input_abstractinput_ce, NULL, 0); - - zend_declare_property_string(phalcon_html_helper_input_week_ce, SL("type"), "week", ZEND_ACC_PROTECTED); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Link_EvolvableLink) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Link, EvolvableLink, phalcon, html_link_evolvablelink, phalcon_html_link_link_ce, phalcon_html_link_evolvablelink_method_entry, 0); - - zend_class_implements(phalcon_html_link_evolvablelink_ce, 1, zephir_get_internal_ce(SL("psr\\link\\evolvablelinkinterface"))); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Link_EvolvableLink, withAttribute) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *attribute, attribute_sub, *value, value_sub, newInstance, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attribute_sub); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&newInstance); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(attribute) - Z_PARAM_ZVAL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &attribute, &value); - - - ZEPHIR_INIT_VAR(&newInstance); - if (zephir_clone(&newInstance, this_ptr) == FAILURE) { - RETURN_MM(); - } - zephir_read_property(&_0, &newInstance, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_0, "set", NULL, 0, attribute, value); - zephir_check_call_status(); - RETURN_CCTOR(&newInstance); -} - -static PHP_METHOD(Phalcon_Html_Link_EvolvableLink, withHref) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *href, href_sub, newInstance, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&href_sub); - ZVAL_UNDEF(&newInstance); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(href) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &href); - - - ZEPHIR_INIT_VAR(&newInstance); - if (zephir_clone(&newInstance, this_ptr) == FAILURE) { - RETURN_MM(); - } - zephir_update_property_zval(&newInstance, ZEND_STRL("href"), href); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "hrefistemplated", NULL, 0, href); - zephir_check_call_status(); - zephir_update_property_zval(&newInstance, ZEND_STRL("templated"), &_0); - RETURN_CCTOR(&newInstance); -} - -static PHP_METHOD(Phalcon_Html_Link_EvolvableLink, withRel) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *rel, rel_sub, newInstance, _0, _1; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&rel_sub); - ZVAL_UNDEF(&newInstance); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(rel) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &rel); - - - ZEPHIR_INIT_VAR(&newInstance); - if (zephir_clone(&newInstance, this_ptr) == FAILURE) { - RETURN_MM(); - } - zephir_read_property(&_0, &newInstance, ZEND_STRL("rels"), PH_NOISY_CC | PH_READONLY); - ZVAL_BOOL(&_1, 1); - ZEPHIR_CALL_METHOD(NULL, &_0, "set", NULL, 0, rel, &_1); - zephir_check_call_status(); - RETURN_CCTOR(&newInstance); -} - -static PHP_METHOD(Phalcon_Html_Link_EvolvableLink, withoutAttribute) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *attribute, attribute_sub, newInstance, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attribute_sub); - ZVAL_UNDEF(&newInstance); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(attribute) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &attribute); - - - ZEPHIR_INIT_VAR(&newInstance); - if (zephir_clone(&newInstance, this_ptr) == FAILURE) { - RETURN_MM(); - } - zephir_read_property(&_0, &newInstance, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_0, "remove", NULL, 0, attribute); - zephir_check_call_status(); - RETURN_CCTOR(&newInstance); -} - -static PHP_METHOD(Phalcon_Html_Link_EvolvableLink, withoutRel) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *rel, rel_sub, newInstance, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&rel_sub); - ZVAL_UNDEF(&newInstance); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(rel) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &rel); - - - ZEPHIR_INIT_VAR(&newInstance); - if (zephir_clone(&newInstance, this_ptr) == FAILURE) { - RETURN_MM(); - } - zephir_read_property(&_0, &newInstance, ZEND_STRL("rels"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_0, "remove", NULL, 0, rel); - zephir_check_call_status(); - RETURN_CCTOR(&newInstance); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Link_EvolvableLinkProvider) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html\\Link, EvolvableLinkProvider, phalcon, html_link_evolvablelinkprovider, phalcon_html_link_linkprovider_ce, phalcon_html_link_evolvablelinkprovider_method_entry, 0); - - zend_class_implements(phalcon_html_link_evolvablelinkprovider_ce, 1, zephir_get_internal_ce(SL("psr\\link\\evolvablelinkproviderinterface"))); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Link_EvolvableLinkProvider, withLink) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *link, link_sub, key, newInstance; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&link_sub); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&newInstance); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(link, zephir_get_internal_ce(SL("psr\\link\\linkinterface"))) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &link); - - - ZEPHIR_CALL_METHOD(&key, this_ptr, "getkey", NULL, 0, link); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&newInstance); - if (zephir_clone(&newInstance, this_ptr) == FAILURE) { - RETURN_MM(); - } - zephir_update_property_array(&newInstance, SL("links"), &key, link); - RETURN_CCTOR(&newInstance); -} - -static PHP_METHOD(Phalcon_Html_Link_EvolvableLinkProvider, withoutLink) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *link, link_sub, key, links, newInstance, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&link_sub); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&links); - ZVAL_UNDEF(&newInstance); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(link, zephir_get_internal_ce(SL("psr\\link\\linkinterface"))) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &link); - - - ZEPHIR_CALL_METHOD(&key, this_ptr, "getkey", NULL, 0, link); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&newInstance); - if (zephir_clone(&newInstance, this_ptr) == FAILURE) { - RETURN_MM(); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("links"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&links, &_0); - zephir_array_unset(&links, &key, PH_SEPARATE); - zephir_update_property_zval(&newInstance, ZEND_STRL("links"), &links); - RETURN_CCTOR(&newInstance); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Link_Link) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Html\\Link, Link, phalcon, html_link_link, phalcon_html_link_link_method_entry, 0); - - zend_declare_property_null(phalcon_html_link_link_ce, SL("attributes"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_html_link_link_ce, SL("href"), "", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_html_link_link_ce, SL("rels"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_html_link_link_ce, SL("templated"), 0, ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_html_link_link_ce, 1, zephir_get_internal_ce(SL("psr\\link\\linkinterface"))); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Link_Link, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval attributes; - zval *rel_param = NULL, *href_param = NULL, *attributes_param = NULL, _0, _1, _2, _3$$3, _4$$3; - zval rel, href; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&rel); - ZVAL_UNDEF(&href); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 3) - Z_PARAM_OPTIONAL - Z_PARAM_STR(rel) - Z_PARAM_STR(href) - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 3, &rel_param, &href_param, &attributes_param); - if (!rel_param) { - ZEPHIR_INIT_VAR(&rel); - ZVAL_STRING(&rel, ""); - } else { - zephir_get_strval(&rel, rel_param); - } - if (!href_param) { - ZEPHIR_INIT_VAR(&href); - ZVAL_STRING(&href, ""); - } else { - zephir_get_strval(&href, href_param); - } - if (!attributes_param) { - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - } else { - zephir_get_arrval(&attributes, attributes_param); - } - - - ZEPHIR_INIT_VAR(&_0); - object_init_ex(&_0, phalcon_collection_ce); - ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 22); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("rels"), &_0); - ZEPHIR_INIT_VAR(&_1); - object_init_ex(&_1, phalcon_collection_ce); - ZEPHIR_CALL_METHOD(NULL, &_1, "__construct", NULL, 22, &attributes); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &_1); - zephir_update_property_zval(this_ptr, ZEND_STRL("href"), &href); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "hrefistemplated", NULL, 0, &href); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("templated"), &_2); - if (!(ZEPHIR_IS_EMPTY(&rel))) { - zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("rels"), PH_NOISY_CC | PH_READONLY); - ZVAL_BOOL(&_4$$3, 1); - ZEPHIR_CALL_METHOD(NULL, &_3$$3, "set", NULL, 0, &rel, &_4$$3); - zephir_check_call_status(); - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Html_Link_Link, getAttributes) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "toarray", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Html_Link_Link, getHref) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "href"); -} - -static PHP_METHOD(Phalcon_Html_Link_Link, getRels) -{ - zval _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("rels"), PH_NOISY_CC | PH_READONLY); - ZVAL_BOOL(&_1, 0); - ZEPHIR_RETURN_CALL_METHOD(&_0, "getkeys", NULL, 0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Html_Link_Link, isTemplated) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "templated"); -} - -static PHP_METHOD(Phalcon_Html_Link_Link, hrefIsTemplated) -{ - zend_bool _2; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *href_param = NULL, _0, _1, _3, _4; - zval href; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&href); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(href) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &href_param); - zephir_get_strval(&href, href_param); - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "{"); - ZEPHIR_INIT_VAR(&_1); - zephir_fast_strpos(&_1, &href, &_0, 0 ); - _2 = !ZEPHIR_IS_FALSE_IDENTICAL(&_1); - if (_2) { - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "}"); - ZEPHIR_CALL_FUNCTION(&_4, "strrpos", NULL, 116, &href, &_3); - zephir_check_call_status(); - _2 = !ZEPHIR_IS_FALSE_IDENTICAL(&_4); - } - RETURN_MM_BOOL(_2); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Link_LinkProvider) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Html\\Link, LinkProvider, phalcon, html_link_linkprovider, phalcon_html_link_linkprovider_method_entry, 0); - - zend_declare_property_null(phalcon_html_link_linkprovider_ce, SL("links"), ZEND_ACC_PROTECTED); - phalcon_html_link_linkprovider_ce->create_object = zephir_init_properties_Phalcon_Html_Link_LinkProvider; - - zend_class_implements(phalcon_html_link_linkprovider_ce, 1, zephir_get_internal_ce(SL("psr\\link\\linkproviderinterface"))); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Link_LinkProvider, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *links_param = NULL, link, *_0, _1, _2$$4, _4$$6; - zval links; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&links); - ZVAL_UNDEF(&link); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_4$$6); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(links) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &links_param); - if (!links_param) { - ZEPHIR_INIT_VAR(&links); - array_init(&links); - } else { - zephir_get_arrval(&links, links_param); - } - - - zephir_is_iterable(&links, 0, "phalcon/Html/Link/LinkProvider.zep", 40); - if (Z_TYPE_P(&links) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&links), _0) - { - ZEPHIR_INIT_NVAR(&link); - ZVAL_COPY(&link, _0); - if (zephir_is_instance_of(&link, SL("Psr\\Link\\LinkInterface"))) { - ZEPHIR_CALL_METHOD(&_2$$4, this_ptr, "getkey", &_3, 0, &link); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("links"), &_2$$4, &link); +pp261: + ppch = *++PPCURSOR; + switch (ppch) { + case 'T': + case 't': goto pp300; + default: goto pp59; } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &links, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &links, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; +pp262: + ppch = *++PPCURSOR; + switch (ppch) { + case 'B': + case 'b': goto pp302; + default: goto pp86; } - ZEPHIR_CALL_METHOD(&link, &links, "current", NULL, 0); - zephir_check_call_status(); - if (zephir_is_instance_of(&link, SL("Psr\\Link\\LinkInterface"))) { - ZEPHIR_CALL_METHOD(&_4$$6, this_ptr, "getkey", &_3, 0, &link); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("links"), &_4$$6, &link); - } - ZEPHIR_CALL_METHOD(NULL, &links, "next", NULL, 0); - zephir_check_call_status(); +pp263: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp264; + } +pp264: + { + token->opcode = PHQL_T_NULL; + return 0; } - } - ZEPHIR_INIT_NVAR(&link); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Html_Link_LinkProvider, getLinks) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "links"); -} - -static PHP_METHOD(Phalcon_Html_Link_LinkProvider, getLinksByRel) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *rel, rel_sub, link, links, rels, _0, *_1, _2; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&rel_sub); - ZVAL_UNDEF(&link); - ZVAL_UNDEF(&links); - ZVAL_UNDEF(&rels); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(rel) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &rel); - - - ZEPHIR_INIT_VAR(&links); - array_init(&links); - zephir_read_property(&_0, this_ptr, ZEND_STRL("links"), PH_NOISY_CC | PH_READONLY); - zephir_is_iterable(&_0, 0, "phalcon/Html/Link/LinkProvider.zep", 77); - if (Z_TYPE_P(&_0) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _1) - { - ZEPHIR_INIT_NVAR(&link); - ZVAL_COPY(&link, _1); - ZEPHIR_CALL_METHOD(&rels, &link, "getrels", NULL, 0); - zephir_check_call_status(); - if (1 == zephir_fast_in_array(rel, &rels)) { - zephir_array_append(&links, &link, PH_SEPARATE, "phalcon/Html/Link/LinkProvider.zep", 73); +pp265: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp303; + default: goto pp59; } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &_0, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; +pp266: + ppch = *++PPCURSOR; + switch (ppch) { + case 'R': + case 'r': goto pp304; + default: goto pp59; } - ZEPHIR_CALL_METHOD(&link, &_0, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&rels, &link, "getrels", NULL, 0); - zephir_check_call_status(); - if (1 == zephir_fast_in_array(rel, &rels)) { - zephir_array_append(&links, &link, PH_SEPARATE, "phalcon/Html/Link/LinkProvider.zep", 73); - } - ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); - zephir_check_call_status(); +pp267: + ppch = *++PPCURSOR; + switch (ppch) { + case 'R': + case 'r': goto pp306; + default: goto pp59; + } +pp268: + ppch = *++PPCURSOR; + switch (ppch) { + case 'T': + case 't': goto pp308; + default: goto pp59; + } +pp269: + ppch = *++PPCURSOR; + switch (ppch) { + case 'C': + case 'c': goto pp310; + default: goto pp59; + } +pp270: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp271; + } +pp271: + { + token->opcode = PHQL_T_THEN; + return 0; } - } - ZEPHIR_INIT_NVAR(&link); - RETURN_CCTOR(&links); -} - -static PHP_METHOD(Phalcon_Html_Link_LinkProvider, getKey) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *link, link_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&link_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(link, zephir_get_internal_ce(SL("psr\\link\\linkinterface"))) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &link); - - - ZEPHIR_RETURN_CALL_FUNCTION("spl_object_hash", NULL, 100, link); - zephir_check_call_status(); - RETURN_MM(); -} - -zend_object *zephir_init_properties_Phalcon_Html_Link_LinkProvider(zend_class_entry *class_type) -{ - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("links"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("links"), &_1$$3); +pp272: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp273; + } +pp273: + { + token->opcode = PHQL_T_TRUE; + return 0; } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Link_Serializer_Header) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Html\\Link\\Serializer, Header, phalcon, html_link_serializer_header, phalcon_html_link_serializer_header_method_entry, 0); - - zend_class_implements(phalcon_html_link_serializer_header_ce, 1, phalcon_html_link_serializer_serializerinterface_ce); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Html_Link_Serializer_Header, serialize) -{ - zend_string *_8$$3, *_28$$17; - zend_ulong _7$$3, _27$$17; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *links_param = NULL, attributes, key, link, rels, result, subValue, value, *_0, _1, _2$$3, _3$$3, _4$$3, *_5$$3, _6$$3, _19$$3, _20$$3, *_9$$6, _10$$6, _11$$7, _12$$8, _13$$9, *_14$$12, _15$$12, _16$$13, _17$$14, _18$$15, _21$$17, _22$$17, _23$$17, _24$$17, *_25$$17, _26$$17, _39$$17, _40$$17, *_29$$20, _30$$20, _31$$21, _32$$22, _33$$23, *_34$$26, _35$$26, _36$$27, _37$$28, _38$$29; - zval links, elements, parts; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&links); - ZVAL_UNDEF(&elements); - ZVAL_UNDEF(&parts); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&link); - ZVAL_UNDEF(&rels); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&subValue); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_19$$3); - ZVAL_UNDEF(&_20$$3); - ZVAL_UNDEF(&_10$$6); - ZVAL_UNDEF(&_11$$7); - ZVAL_UNDEF(&_12$$8); - ZVAL_UNDEF(&_13$$9); - ZVAL_UNDEF(&_15$$12); - ZVAL_UNDEF(&_16$$13); - ZVAL_UNDEF(&_17$$14); - ZVAL_UNDEF(&_18$$15); - ZVAL_UNDEF(&_21$$17); - ZVAL_UNDEF(&_22$$17); - ZVAL_UNDEF(&_23$$17); - ZVAL_UNDEF(&_24$$17); - ZVAL_UNDEF(&_26$$17); - ZVAL_UNDEF(&_39$$17); - ZVAL_UNDEF(&_40$$17); - ZVAL_UNDEF(&_30$$20); - ZVAL_UNDEF(&_31$$21); - ZVAL_UNDEF(&_32$$22); - ZVAL_UNDEF(&_33$$23); - ZVAL_UNDEF(&_35$$26); - ZVAL_UNDEF(&_36$$27); - ZVAL_UNDEF(&_37$$28); - ZVAL_UNDEF(&_38$$29); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(links) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &links_param); - zephir_get_arrval(&links, links_param); - - - ZEPHIR_INIT_VAR(&result); - ZVAL_NULL(&result); - ZEPHIR_INIT_VAR(&elements); - array_init(&elements); - zephir_is_iterable(&links, 0, "phalcon/Html/Link/Serializer/Header.zep", 72); - if (Z_TYPE_P(&links) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&links), _0) - { - ZEPHIR_INIT_NVAR(&link); - ZVAL_COPY(&link, _0); - ZEPHIR_CALL_METHOD(&_2$$3, &link, "istemplated", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_TRUE_IDENTICAL(&_2$$3)) { - continue; +pp274: + ppch = *++PPCURSOR; + switch (ppch) { + case 'T': + case 't': goto pp311; + default: goto pp59; } - ZEPHIR_CALL_METHOD(&attributes, &link, "getattributes", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&rels, &link, "getrels", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&parts); - zephir_create_array(&parts, 2, 0); - ZEPHIR_INIT_NVAR(&_3$$3); - ZVAL_STRING(&_3$$3, ""); - zephir_array_fast_append(&parts, &_3$$3); - ZEPHIR_INIT_NVAR(&_3$$3); - zephir_fast_join_str(&_3$$3, SL(" "), &rels); - ZEPHIR_INIT_NVAR(&_4$$3); - ZEPHIR_CONCAT_SVS(&_4$$3, "rel=\"", &_3$$3, "\""); - zephir_array_fast_append(&parts, &_4$$3); - zephir_is_iterable(&attributes, 0, "phalcon/Html/Link/Serializer/Header.zep", 66); - if (Z_TYPE_P(&attributes) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&attributes), _7$$3, _8$$3, _5$$3) - { - ZEPHIR_INIT_NVAR(&key); - if (_8$$3 != NULL) { - ZVAL_STR_COPY(&key, _8$$3); - } else { - ZVAL_LONG(&key, _7$$3); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _5$$3); - if (Z_TYPE_P(&value) == IS_ARRAY) { - zephir_is_iterable(&value, 0, "phalcon/Html/Link/Serializer/Header.zep", 52); - if (Z_TYPE_P(&value) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&value), _9$$6) - { - ZEPHIR_INIT_NVAR(&subValue); - ZVAL_COPY(&subValue, _9$$6); - ZEPHIR_INIT_NVAR(&_11$$7); - ZEPHIR_CONCAT_VSVS(&_11$$7, &key, "=\"", &subValue, "\""); - zephir_array_append(&parts, &_11$$7, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 50); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &value, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_10$$6, &value, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_10$$6)) { - break; - } - ZEPHIR_CALL_METHOD(&subValue, &value, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_12$$8); - ZEPHIR_CONCAT_VSVS(&_12$$8, &key, "=\"", &subValue, "\""); - zephir_array_append(&parts, &_12$$8, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 50); - ZEPHIR_CALL_METHOD(NULL, &value, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&subValue); - continue; - } - if (((Z_TYPE_P(&value) == IS_TRUE || Z_TYPE_P(&value) == IS_FALSE) != 1)) { - ZEPHIR_INIT_NVAR(&_13$$9); - ZEPHIR_CONCAT_VSVS(&_13$$9, &key, "=\"", &value, "\""); - zephir_array_append(&parts, &_13$$9, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 56); - continue; - } - if (ZEPHIR_IS_TRUE_IDENTICAL(&value)) { - zephir_array_append(&parts, &key, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 61); - continue; - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_6$$3, &attributes, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_6$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&key, &attributes, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &attributes, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&value) == IS_ARRAY) { - zephir_is_iterable(&value, 0, "phalcon/Html/Link/Serializer/Header.zep", 52); - if (Z_TYPE_P(&value) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&value), _14$$12) - { - ZEPHIR_INIT_NVAR(&subValue); - ZVAL_COPY(&subValue, _14$$12); - ZEPHIR_INIT_NVAR(&_16$$13); - ZEPHIR_CONCAT_VSVS(&_16$$13, &key, "=\"", &subValue, "\""); - zephir_array_append(&parts, &_16$$13, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 50); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &value, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_15$$12, &value, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_15$$12)) { - break; - } - ZEPHIR_CALL_METHOD(&subValue, &value, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_17$$14); - ZEPHIR_CONCAT_VSVS(&_17$$14, &key, "=\"", &subValue, "\""); - zephir_array_append(&parts, &_17$$14, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 50); - ZEPHIR_CALL_METHOD(NULL, &value, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&subValue); - continue; - } - if (((Z_TYPE_P(&value) == IS_TRUE || Z_TYPE_P(&value) == IS_FALSE) != 1)) { - ZEPHIR_INIT_NVAR(&_18$$15); - ZEPHIR_CONCAT_VSVS(&_18$$15, &key, "=\"", &value, "\""); - zephir_array_append(&parts, &_18$$15, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 56); - continue; - } - if (ZEPHIR_IS_TRUE_IDENTICAL(&value)) { - zephir_array_append(&parts, &key, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 61); - continue; - } - ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); - zephir_check_call_status(); - } +pp275: + ppch = *++PPCURSOR; + switch (ppch) { + case 'G': + case 'g': goto pp312; + default: goto pp59; } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - ZEPHIR_CALL_METHOD(&_19$$3, &link, "gethref", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_20$$3); - zephir_fast_join_str(&_20$$3, SL("; "), &parts); - ZEPHIR_INIT_NVAR(&_4$$3); - ZEPHIR_CONCAT_SVSV(&_4$$3, "<", &_19$$3, ">", &_20$$3); - zephir_array_append(&elements, &_4$$3, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 69); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &links, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &links, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; +pp276: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp314; + default: goto pp59; } - ZEPHIR_CALL_METHOD(&link, &links, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_21$$17, &link, "istemplated", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_TRUE_IDENTICAL(&_21$$17)) { - continue; - } - ZEPHIR_CALL_METHOD(&attributes, &link, "getattributes", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&rels, &link, "getrels", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_22$$17); - zephir_create_array(&_22$$17, 2, 0); - ZEPHIR_INIT_NVAR(&_23$$17); - ZVAL_STRING(&_23$$17, ""); - zephir_array_fast_append(&_22$$17, &_23$$17); - ZEPHIR_INIT_NVAR(&_23$$17); - zephir_fast_join_str(&_23$$17, SL(" "), &rels); - ZEPHIR_INIT_NVAR(&_24$$17); - ZEPHIR_CONCAT_SVS(&_24$$17, "rel=\"", &_23$$17, "\""); - zephir_array_fast_append(&_22$$17, &_24$$17); - ZEPHIR_CPY_WRT(&parts, &_22$$17); - zephir_is_iterable(&attributes, 0, "phalcon/Html/Link/Serializer/Header.zep", 66); - if (Z_TYPE_P(&attributes) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&attributes), _27$$17, _28$$17, _25$$17) - { - ZEPHIR_INIT_NVAR(&key); - if (_28$$17 != NULL) { - ZVAL_STR_COPY(&key, _28$$17); - } else { - ZVAL_LONG(&key, _27$$17); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _25$$17); - if (Z_TYPE_P(&value) == IS_ARRAY) { - zephir_is_iterable(&value, 0, "phalcon/Html/Link/Serializer/Header.zep", 52); - if (Z_TYPE_P(&value) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&value), _29$$20) - { - ZEPHIR_INIT_NVAR(&subValue); - ZVAL_COPY(&subValue, _29$$20); - ZEPHIR_INIT_NVAR(&_31$$21); - ZEPHIR_CONCAT_VSVS(&_31$$21, &key, "=\"", &subValue, "\""); - zephir_array_append(&parts, &_31$$21, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 50); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &value, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_30$$20, &value, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_30$$20)) { - break; - } - ZEPHIR_CALL_METHOD(&subValue, &value, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_32$$22); - ZEPHIR_CONCAT_VSVS(&_32$$22, &key, "=\"", &subValue, "\""); - zephir_array_append(&parts, &_32$$22, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 50); - ZEPHIR_CALL_METHOD(NULL, &value, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&subValue); - continue; - } - if (((Z_TYPE_P(&value) == IS_TRUE || Z_TYPE_P(&value) == IS_FALSE) != 1)) { - ZEPHIR_INIT_NVAR(&_33$$23); - ZEPHIR_CONCAT_VSVS(&_33$$23, &key, "=\"", &value, "\""); - zephir_array_append(&parts, &_33$$23, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 56); - continue; - } - if (ZEPHIR_IS_TRUE_IDENTICAL(&value)) { - zephir_array_append(&parts, &key, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 61); - continue; - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_26$$17, &attributes, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_26$$17)) { - break; - } - ZEPHIR_CALL_METHOD(&key, &attributes, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &attributes, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&value) == IS_ARRAY) { - zephir_is_iterable(&value, 0, "phalcon/Html/Link/Serializer/Header.zep", 52); - if (Z_TYPE_P(&value) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&value), _34$$26) - { - ZEPHIR_INIT_NVAR(&subValue); - ZVAL_COPY(&subValue, _34$$26); - ZEPHIR_INIT_NVAR(&_36$$27); - ZEPHIR_CONCAT_VSVS(&_36$$27, &key, "=\"", &subValue, "\""); - zephir_array_append(&parts, &_36$$27, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 50); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &value, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_35$$26, &value, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_35$$26)) { - break; - } - ZEPHIR_CALL_METHOD(&subValue, &value, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_37$$28); - ZEPHIR_CONCAT_VSVS(&_37$$28, &key, "=\"", &subValue, "\""); - zephir_array_append(&parts, &_37$$28, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 50); - ZEPHIR_CALL_METHOD(NULL, &value, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&subValue); - continue; - } - if (((Z_TYPE_P(&value) == IS_TRUE || Z_TYPE_P(&value) == IS_FALSE) != 1)) { - ZEPHIR_INIT_NVAR(&_38$$29); - ZEPHIR_CONCAT_VSVS(&_38$$29, &key, "=\"", &value, "\""); - zephir_array_append(&parts, &_38$$29, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 56); - continue; - } - if (ZEPHIR_IS_TRUE_IDENTICAL(&value)) { - zephir_array_append(&parts, &key, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 61); - continue; - } - ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - ZEPHIR_CALL_METHOD(&_39$$17, &link, "gethref", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_40$$17); - zephir_fast_join_str(&_40$$17, SL("; "), &parts); - ZEPHIR_INIT_NVAR(&_24$$17); - ZEPHIR_CONCAT_SVSV(&_24$$17, "<", &_39$$17, ">", &_40$$17); - zephir_array_append(&elements, &_24$$17, PH_SEPARATE, "phalcon/Html/Link/Serializer/Header.zep", 69); - ZEPHIR_CALL_METHOD(NULL, &links, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&link); - if (zephir_fast_count_int(&elements) > 0) { - ZEPHIR_INIT_NVAR(&result); - zephir_fast_join_str(&result, SL(","), &elements); - } - RETURN_CCTOR(&result); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Html_Link_Serializer_SerializerInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Html\\Link\\Serializer, SerializerInterface, phalcon, html_link_serializer_serializerinterface, phalcon_html_link_serializer_serializerinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Html_Link_Serializer_SerializerInterface, serialize); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Cookie) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http, Cookie, phalcon, http_cookie, phalcon_di_abstractinjectionaware_ce, phalcon_http_cookie_method_entry, 0); - - zend_declare_property_null(phalcon_http_cookie_ce, SL("domain"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_cookie_ce, SL("expire"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_cookie_ce, SL("filter"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_cookie_ce, SL("httpOnly"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_cookie_ce, SL("name"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_cookie_ce, SL("options"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_cookie_ce, SL("path"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_http_cookie_ce, SL("read"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_http_cookie_ce, SL("restored"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_http_cookie_ce, SL("secure"), 1, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_cookie_ce, SL("signKey"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_http_cookie_ce, SL("useEncryption"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_cookie_ce, SL("value"), ZEND_ACC_PROTECTED); - phalcon_http_cookie_ce->create_object = zephir_init_properties_Phalcon_Http_Cookie; - - zend_class_implements(phalcon_http_cookie_ce, 1, phalcon_http_cookie_cookieinterface_ce); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Http_Cookie, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval options; - zend_bool secure, httpOnly; - zend_long expire, ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, *value = NULL, value_sub, *expire_param = NULL, *path_param = NULL, *secure_param = NULL, *domain_param = NULL, *httpOnly_param = NULL, *options_param = NULL, __$true, __$false, __$null, _0; - zval name, path, domain; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&domain); - ZVAL_UNDEF(&value_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&options); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 8) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(value) - Z_PARAM_LONG(expire) - Z_PARAM_STR(path) - Z_PARAM_BOOL_OR_NULL(secure, is_null_true) - Z_PARAM_STR_OR_NULL(domain) - Z_PARAM_BOOL_OR_NULL(httpOnly, is_null_true) - Z_PARAM_ARRAY(options) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 7, &name_param, &value, &expire_param, &path_param, &secure_param, &domain_param, &httpOnly_param, &options_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - if (!value) { - value = &value_sub; - value = &__$null; - } - if (!expire_param) { - expire = 0; - } else { - expire = zephir_get_intval(expire_param); - } - if (!path_param) { - ZEPHIR_INIT_VAR(&path); - ZVAL_STRING(&path, "/"); - } else { - zephir_get_strval(&path, path_param); - } - if (!secure_param) { - secure = 0; - } else { - secure = zephir_get_boolval(secure_param); - } - if (!domain_param) { - ZEPHIR_INIT_VAR(&domain); - } else { - zephir_get_strval(&domain, domain_param); - } - if (!httpOnly_param) { - httpOnly = 0; - } else { - httpOnly = zephir_get_boolval(httpOnly_param); - } - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); - } else { - zephir_get_arrval(&options, options_param); - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, expire); - zephir_update_property_zval(this_ptr, ZEND_STRL("expire"), &_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("path"), &path); - if (secure) { - zephir_update_property_zval(this_ptr, ZEND_STRL("secure"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("secure"), &__$false); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("domain"), &domain); - if (httpOnly) { - zephir_update_property_zval(this_ptr, ZEND_STRL("httpOnly"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("httpOnly"), &__$false); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); - if (Z_TYPE_P(value) != IS_NULL) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setvalue", NULL, 0, value); - zephir_check_call_status(); - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Http_Cookie, __toString) -{ - zval _1; - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getvalue", NULL, 0); - zephir_check_call_status(); - zephir_cast_to_string(&_1, &_0); - RETURN_CTOR(&_1); -} - -static PHP_METHOD(Phalcon_Http_Cookie, delete) -{ - zend_bool _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_8 = NULL; - zval __$null, container, domain, httpOnly, name, options, path, secure, session, _0, _2, _3, _7, _9, _10, _11, _12, _13, _4$$3, _5$$3, _6$$4; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&domain); - ZVAL_UNDEF(&httpOnly); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&secure); - ZVAL_UNDEF(&session); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_13); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$4); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&name, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("domain"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&domain, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("path"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&path, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("secure"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&secure, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("httpOnly"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&httpOnly, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - _1 = Z_TYPE_P(&container) == IS_OBJECT; - if (_1) { - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "session"); - ZEPHIR_CALL_METHOD(&_2, &container, "has", NULL, 0, &_3); - zephir_check_call_status(); - _1 = zephir_is_true(&_2); - } - if (_1) { - ZEPHIR_INIT_VAR(&_5$$3); - ZVAL_STRING(&_5$$3, "session"); - ZEPHIR_CALL_METHOD(&_4$$3, &container, "getshared", NULL, 0, &_5$$3); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&session, &_4$$3); - ZEPHIR_CALL_METHOD(&_4$$3, &session, "exists", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_4$$3)) { - ZEPHIR_INIT_VAR(&_6$$4); - ZEPHIR_CONCAT_SV(&_6$$4, "_PHCOOKIE_", &name); - ZEPHIR_CALL_METHOD(NULL, &session, "remove", NULL, 0, &_6$$4); - zephir_check_call_status(); +pp277: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp278; + } +pp278: + { + token->opcode = PHQL_T_WHEN; + return 0; } - } - zephir_update_property_zval(this_ptr, ZEND_STRL("value"), &__$null); - zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&options, &_0); - ZEPHIR_INIT_NVAR(&_3); - zephir_time(&_3); - ZEPHIR_INIT_VAR(&_9); - ZVAL_STRING(&_9, "expires"); - ZVAL_LONG(&_0, (zephir_get_numberval(&_3) - 691200)); - ZEPHIR_CALL_CE_STATIC(&_7, phalcon_helper_arr_ce, "get", &_8, 16, &options, &_9, &_0); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("expires"), &_7, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_9); - ZVAL_STRING(&_9, "domain"); - ZEPHIR_CALL_CE_STATIC(&_10, phalcon_helper_arr_ce, "get", &_8, 16, &options, &_9, &domain); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("domain"), &_10, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_9); - ZVAL_STRING(&_9, "path"); - ZEPHIR_CALL_CE_STATIC(&_11, phalcon_helper_arr_ce, "get", &_8, 16, &options, &_9, &path); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("path"), &_11, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_9); - ZVAL_STRING(&_9, "secure"); - ZEPHIR_CALL_CE_STATIC(&_12, phalcon_helper_arr_ce, "get", &_8, 16, &options, &_9, &secure); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("secure"), &_12, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_9); - ZVAL_STRING(&_9, "httponly"); - ZEPHIR_CALL_CE_STATIC(&_13, phalcon_helper_arr_ce, "get", &_8, 16, &options, &_9, &httpOnly); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("httponly"), &_13, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_FUNCTION(NULL, "setcookie", NULL, 280, &name, &__$null, &options); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Http_Cookie, getDomain) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); - zephir_check_call_status(); - } - RETURN_MM_MEMBER(getThis(), "domain"); -} - -static PHP_METHOD(Phalcon_Http_Cookie, getExpiration) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); - zephir_check_call_status(); - } - RETURN_MM_MEMBER(getThis(), "expire"); -} - -static PHP_METHOD(Phalcon_Http_Cookie, getHttpOnly) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); - zephir_check_call_status(); - } - RETURN_MM_MEMBER(getThis(), "httpOnly"); -} - -static PHP_METHOD(Phalcon_Http_Cookie, getName) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "name"); -} - -static PHP_METHOD(Phalcon_Http_Cookie, getOptions) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "options"); -} - -static PHP_METHOD(Phalcon_Http_Cookie, getPath) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); - zephir_check_call_status(); - } - RETURN_MM_MEMBER(getThis(), "path"); -} - -static PHP_METHOD(Phalcon_Http_Cookie, getSecure) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); - zephir_check_call_status(); - } - RETURN_MM_MEMBER(getThis(), "secure"); -} - -static PHP_METHOD(Phalcon_Http_Cookie, getValue) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_6 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *filters = NULL, filters_sub, *defaultValue = NULL, defaultValue_sub, _COOKIE, __$null, container, value, crypt, decryptedValue, filter, signKey, name, _0, _1, _2$$4, _3$$6, _8$$6, _9$$6, _4$$7, _5$$7, _7$$7, _10$$12, _11$$14, _12$$15, _13$$15, _14$$15, _15$$13, _16$$13; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&filters_sub); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_UNDEF(&_COOKIE); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&crypt); - ZVAL_UNDEF(&decryptedValue); - ZVAL_UNDEF(&filter); - ZVAL_UNDEF(&signKey); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&_8$$6); - ZVAL_UNDEF(&_9$$6); - ZVAL_UNDEF(&_4$$7); - ZVAL_UNDEF(&_5$$7); - ZVAL_UNDEF(&_7$$7); - ZVAL_UNDEF(&_10$$12); - ZVAL_UNDEF(&_11$$14); - ZVAL_UNDEF(&_12$$15); - ZVAL_UNDEF(&_13$$15); - ZVAL_UNDEF(&_14$$15); - ZVAL_UNDEF(&_15$$13); - ZVAL_UNDEF(&_16$$13); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(filters) - Z_PARAM_ZVAL_OR_NULL(defaultValue) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_get_global(&_COOKIE, SL("_COOKIE")); - zephir_fetch_params(1, 0, 2, &filters, &defaultValue); - if (!filters) { - filters = &filters_sub; - filters = &__$null; - } - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); - zephir_check_call_status(); - } - ZEPHIR_INIT_VAR(&container); - ZVAL_NULL(&container); - zephir_read_property(&_1, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&name, &_1); - zephir_read_property(&_1, this_ptr, ZEND_STRL("read"), PH_NOISY_CC | PH_READONLY); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_1)) { - ZEPHIR_OBS_VAR(&value); - if (!(zephir_array_isset_fetch(&value, &_COOKIE, &name, 0))) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); +pp279: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp315; + default: goto pp59; + } +pp280: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp281; + } +pp281: + { + token->opcode = PHQL_T_WITH; + return 0; } - zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("useEncryption"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_2$$4)) { - zephir_read_property(&_3$$6, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_3$$6); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_4$$7); - object_init_ex(&_4$$7, phalcon_http_response_exception_ce); - ZEPHIR_INIT_VAR(&_7$$7); - ZVAL_STRING(&_7$$7, "the 'filter' and 'crypt' services"); - ZEPHIR_CALL_CE_STATIC(&_5$$7, phalcon_http_response_exception_ce, "containerservicenotfound", &_6, 0, &_7$$7); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_4$$7, "__construct", NULL, 8, &_5$$7); - zephir_check_call_status(); - zephir_throw_exception_debug(&_4$$7, "phalcon/Http/Cookie.zep", 268); - ZEPHIR_MM_RESTORE(); - return; +pp282: + ppch = *++PPCURSOR; + switch (ppch) { + case 'S': + case 's': goto pp317; + default: goto pp59; } - ZEPHIR_INIT_VAR(&_9$$6); - ZVAL_STRING(&_9$$6, "crypt"); - ZEPHIR_CALL_METHOD(&_8$$6, &container, "getshared", NULL, 0, &_9$$6); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&crypt, &_8$$6); - if (UNEXPECTED(Z_TYPE_P(&crypt) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_response_exception_ce, "A dependency which implements CryptInterface is required to use encryption", "phalcon/Http/Cookie.zep", 276); - return; +pp283: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp318; + default: goto pp59; } - zephir_read_property(&_3$$6, this_ptr, ZEND_STRL("signKey"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&signKey, &_3$$6); - if (Z_TYPE_P(&signKey) == IS_STRING) { - ZEPHIR_CALL_METHOD(&decryptedValue, &crypt, "decryptbase64", NULL, 0, &value, &signKey); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(&decryptedValue, &crypt, "decryptbase64", NULL, 0, &value); - zephir_check_call_status(); +pp284: + ppch = *++PPCURSOR; + switch (ppch) { + case 'R': + case 'r': goto pp319; + default: goto pp59; } - } else { - ZEPHIR_CPY_WRT(&decryptedValue, &value); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("value"), &decryptedValue); - if (Z_TYPE_P(filters) != IS_NULL) { - zephir_read_property(&_10$$12, this_ptr, ZEND_STRL("filter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&filter, &_10$$12); - if (Z_TYPE_P(&filter) != IS_OBJECT) { - if (Z_TYPE_P(&container) == IS_NULL) { - zephir_read_property(&_11$$14, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_11$$14); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_12$$15); - object_init_ex(&_12$$15, phalcon_http_response_exception_ce); - ZEPHIR_INIT_VAR(&_14$$15); - ZVAL_STRING(&_14$$15, "the 'filter' service"); - ZEPHIR_CALL_CE_STATIC(&_13$$15, phalcon_http_response_exception_ce, "containerservicenotfound", &_6, 0, &_14$$15); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_12$$15, "__construct", NULL, 8, &_13$$15); - zephir_check_call_status(); - zephir_throw_exception_debug(&_12$$15, "phalcon/Http/Cookie.zep", 319); - ZEPHIR_MM_RESTORE(); - return; - } - } - ZEPHIR_INIT_VAR(&_16$$13); - ZVAL_STRING(&_16$$13, "filter"); - ZEPHIR_CALL_METHOD(&_15$$13, &container, "getshared", NULL, 0, &_16$$13); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&filter, &_15$$13); - zephir_update_property_zval(this_ptr, ZEND_STRL("filter"), &filter); +pp285: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp286; } - ZEPHIR_RETURN_CALL_METHOD(&filter, "sanitize", NULL, 0, &decryptedValue, filters); - zephir_check_call_status(); - RETURN_MM(); - } - RETURN_CCTOR(&decryptedValue); - } - RETURN_MM_MEMBER(getThis(), "value"); -} - -static PHP_METHOD(Phalcon_Http_Cookie, isUsingEncryption) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "useEncryption"); -} - -static PHP_METHOD(Phalcon_Http_Cookie, restore) -{ - zend_bool _2$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval __$true, __$false, container, definition, domain, expire, httpOnly, options, path, secure, session, _0, _1$$3, _3$$3, _4$$3, _5$$4, _6$$4, _7$$5, _8$$5; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&domain); - ZVAL_UNDEF(&expire); - ZVAL_UNDEF(&httpOnly); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&secure); - ZVAL_UNDEF(&session); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_8$$5); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_1$$3); - _2$$3 = Z_TYPE_P(&container) == IS_OBJECT; - if (_2$$3) { - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "session"); - ZEPHIR_CALL_METHOD(&_3$$3, &container, "has", NULL, 0, &_4$$3); - zephir_check_call_status(); - _2$$3 = zephir_is_true(&_3$$3); +pp286: + { + token->opcode = PHQL_T_CROSS; + return 0; } - if (_2$$3) { - ZEPHIR_INIT_VAR(&_5$$4); - ZVAL_STRING(&_5$$4, "session"); - ZEPHIR_CALL_METHOD(&session, &container, "getshared", NULL, 0, &_5$$4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_6$$4, &session, "exists", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_6$$4)) { - zephir_read_property(&_7$$5, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_8$$5); - ZEPHIR_CONCAT_SV(&_8$$5, "_PHCOOKIE_", &_7$$5); - ZEPHIR_CALL_METHOD(&definition, &session, "get", NULL, 0, &_8$$5); - zephir_check_call_status(); - if (zephir_array_isset_string_fetch(&expire, &definition, SL("expire"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("expire"), &expire); - } - if (zephir_array_isset_string_fetch(&domain, &definition, SL("domain"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("domain"), &domain); - } - if (zephir_array_isset_string_fetch(&path, &definition, SL("path"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("path"), &path); - } - if (zephir_array_isset_string_fetch(&secure, &definition, SL("secure"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("secure"), &secure); - } - if (zephir_array_isset_string_fetch(&httpOnly, &definition, SL("httpOnly"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("httpOnly"), &httpOnly); - } - if (zephir_array_isset_string_fetch(&options, &definition, SL("options"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); - } +pp287: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp320; + default: goto pp59; } +pp288: + ppch = *++PPCURSOR; + switch (ppch) { + case 'N': + case 'n': goto pp322; + default: goto pp59; + } +pp289: + ppch = *++PPCURSOR; + switch (ppch) { + case 'S': + case 's': goto pp323; + default: goto pp59; + } +pp290: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp291; + } +pp291: + { + token->opcode = PHQL_T_FALSE; + return 0; } - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("restored"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("restored"), &__$false); - } - } - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Http_Cookie, send) -{ - zval _15$$14, _16$$15; - zend_bool _1, _7; - zval container, crypt, definition, encryptValue, expire, domain, httpOnly, name, options, path, secure, session, signKey, value, _0, _2, _3, _17, _19, _20, _21, _22, _4$$9, _5$$9, _6$$10, _8$$12, _9$$12, _11$$12, _12$$11, _13$$11, _14$$11; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_10 = NULL, *_18 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&crypt); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&encryptValue); - ZVAL_UNDEF(&expire); - ZVAL_UNDEF(&domain); - ZVAL_UNDEF(&httpOnly); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&secure); - ZVAL_UNDEF(&session); - ZVAL_UNDEF(&signKey); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_17); - ZVAL_UNDEF(&_19); - ZVAL_UNDEF(&_20); - ZVAL_UNDEF(&_21); - ZVAL_UNDEF(&_22); - ZVAL_UNDEF(&_4$$9); - ZVAL_UNDEF(&_5$$9); - ZVAL_UNDEF(&_6$$10); - ZVAL_UNDEF(&_8$$12); - ZVAL_UNDEF(&_9$$12); - ZVAL_UNDEF(&_11$$12); - ZVAL_UNDEF(&_12$$11); - ZVAL_UNDEF(&_13$$11); - ZVAL_UNDEF(&_14$$11); - ZVAL_UNDEF(&_15$$14); - ZVAL_UNDEF(&_16$$15); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&name, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("value"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&value, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("expire"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&expire, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("domain"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&domain, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("path"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&path, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("secure"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&secure, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("httpOnly"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&httpOnly, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&options, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - ZEPHIR_INIT_VAR(&definition); - array_init(&definition); - if (!ZEPHIR_IS_LONG(&expire, 0)) { - zephir_array_update_string(&definition, SL("expire"), &expire, PH_COPY | PH_SEPARATE); - } - if (!(ZEPHIR_IS_EMPTY(&path))) { - zephir_array_update_string(&definition, SL("path"), &path, PH_COPY | PH_SEPARATE); - } - if (!(ZEPHIR_IS_EMPTY(&domain))) { - zephir_array_update_string(&definition, SL("domain"), &domain, PH_COPY | PH_SEPARATE); - } - if (!(ZEPHIR_IS_EMPTY(&secure))) { - zephir_array_update_string(&definition, SL("secure"), &secure, PH_COPY | PH_SEPARATE); - } - if (!(ZEPHIR_IS_EMPTY(&httpOnly))) { - zephir_array_update_string(&definition, SL("httpOnly"), &httpOnly, PH_COPY | PH_SEPARATE); - } - if (!(ZEPHIR_IS_EMPTY(&options))) { - zephir_array_update_string(&definition, SL("options"), &options, PH_COPY | PH_SEPARATE); - } - _1 = ((zephir_fast_count_int(&definition)) ? 1 : 0); - if (_1) { - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "session"); - ZEPHIR_CALL_METHOD(&_2, &container, "has", NULL, 0, &_3); - zephir_check_call_status(); - _1 = zephir_is_true(&_2); - } - if (_1) { - ZEPHIR_INIT_VAR(&_5$$9); - ZVAL_STRING(&_5$$9, "session"); - ZEPHIR_CALL_METHOD(&_4$$9, &container, "getshared", NULL, 0, &_5$$9); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&session, &_4$$9); - ZEPHIR_CALL_METHOD(&_4$$9, &session, "exists", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_4$$9)) { - ZEPHIR_INIT_VAR(&_6$$10); - ZEPHIR_CONCAT_SV(&_6$$10, "_PHCOOKIE_", &name); - ZEPHIR_CALL_METHOD(NULL, &session, "set", NULL, 0, &_6$$10, &definition); - zephir_check_call_status(); +pp292: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp293; + } +pp293: + { + token->opcode = PHQL_T_GROUP; + return 0; } - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("useEncryption"), PH_NOISY_CC | PH_READONLY); - _7 = zephir_is_true(&_0); - if (_7) { - _7 = !(ZEPHIR_IS_EMPTY(&value)); - } - if (_7) { - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_8$$12); - object_init_ex(&_8$$12, phalcon_http_response_exception_ce); - ZEPHIR_INIT_VAR(&_11$$12); - ZVAL_STRING(&_11$$12, "the 'filter' service"); - ZEPHIR_CALL_CE_STATIC(&_9$$12, phalcon_http_response_exception_ce, "containerservicenotfound", &_10, 0, &_11$$12); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_8$$12, "__construct", NULL, 8, &_9$$12); - zephir_check_call_status(); - zephir_throw_exception_debug(&_8$$12, "phalcon/Http/Cookie.zep", 469); - ZEPHIR_MM_RESTORE(); - return; +pp294: + ppch = *++PPCURSOR; + switch (ppch) { + case 'G': + case 'g': goto pp325; + default: goto pp59; + } +pp295: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp296; + } +pp296: + { + token->opcode = PHQL_T_ILIKE; + return 0; } - ZEPHIR_INIT_VAR(&_13$$11); - ZVAL_STRING(&_13$$11, "crypt"); - ZEPHIR_CALL_METHOD(&_12$$11, &container, "getshared", NULL, 0, &_13$$11); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&crypt, &_12$$11); - if (UNEXPECTED(Z_TYPE_P(&crypt) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_response_exception_ce, "A dependency which implements CryptInterface is required to use encryption", "phalcon/Http/Cookie.zep", 477); - return; +pp297: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp298; + } +pp298: + { + token->opcode = PHQL_T_INNER; + return 0; } - zephir_read_property(&_14$$11, this_ptr, ZEND_STRL("signKey"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&signKey, &_14$$11); - if (Z_TYPE_P(&signKey) == IS_STRING) { - zephir_cast_to_string(&_15$$14, &value); - ZEPHIR_CALL_METHOD(&encryptValue, &crypt, "encryptbase64", NULL, 0, &_15$$14, &signKey); - zephir_check_call_status(); - } else { - zephir_cast_to_string(&_16$$15, &value); - ZEPHIR_CALL_METHOD(&encryptValue, &crypt, "encryptbase64", NULL, 0, &_16$$15); - zephir_check_call_status(); +pp299: + ppch = *++PPCURSOR; + switch (ppch) { + case 'T': + case 't': goto pp327; + default: goto pp59; + } +pp300: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp301; + } +pp301: + { + token->opcode = PHQL_T_LIMIT; + return 0; } - } else { - ZEPHIR_CPY_WRT(&encryptValue, &value); - } - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "expires"); - ZEPHIR_CALL_CE_STATIC(&_17, phalcon_helper_arr_ce, "get", &_18, 16, &options, &_3, &expire); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("expires"), &_17, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "domain"); - ZEPHIR_CALL_CE_STATIC(&_19, phalcon_helper_arr_ce, "get", &_18, 16, &options, &_3, &domain); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("domain"), &_19, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "path"); - ZEPHIR_CALL_CE_STATIC(&_20, phalcon_helper_arr_ce, "get", &_18, 16, &options, &_3, &path); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("path"), &_20, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "secure"); - ZEPHIR_CALL_CE_STATIC(&_21, phalcon_helper_arr_ce, "get", &_18, 16, &options, &_3, &secure); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("secure"), &_21, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "httponly"); - ZEPHIR_CALL_CE_STATIC(&_22, phalcon_helper_arr_ce, "get", &_18, 16, &options, &_3, &httpOnly); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("httponly"), &_22, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_FUNCTION(NULL, "setcookie", NULL, 280, &name, &encryptValue, &options); - zephir_check_call_status(); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Http_Cookie, setDomain) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *domain_param = NULL, _0; - zval domain; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&domain); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(domain) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &domain_param); - if (UNEXPECTED(Z_TYPE_P(domain_param) != IS_STRING && Z_TYPE_P(domain_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'domain' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(domain_param) == IS_STRING)) { - zephir_get_strval(&domain, domain_param); - } else { - ZEPHIR_INIT_VAR(&domain); - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); - zephir_check_call_status(); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("domain"), &domain); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Http_Cookie, setExpiration) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *expire_param = NULL, _0, _1; - zend_long expire, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(expire) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &expire_param); - expire = zephir_get_intval(expire_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); - zephir_check_call_status(); - } - ZEPHIR_INIT_ZVAL_NREF(_1); - ZVAL_LONG(&_1, expire); - zephir_update_property_zval(this_ptr, ZEND_STRL("expire"), &_1); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Http_Cookie, setHttpOnly) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *httpOnly_param = NULL, __$true, __$false, _0; - zend_bool httpOnly; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(httpOnly) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &httpOnly_param); - httpOnly = zephir_get_boolval(httpOnly_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); - zephir_check_call_status(); - } - if (httpOnly) { - zephir_update_property_zval(this_ptr, ZEND_STRL("httpOnly"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("httpOnly"), &__$false); - } - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Http_Cookie, setOptions) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *options_param = NULL; - zval options; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&options); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(options) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &options_param); - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Http_Cookie, setPath) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *path_param = NULL, _0; - zval path; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(path) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &path_param); - if (UNEXPECTED(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 of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { - zephir_get_strval(&path, path_param); - } else { - ZEPHIR_INIT_VAR(&path); - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); - zephir_check_call_status(); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("path"), &path); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Http_Cookie, setSecure) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *secure_param = NULL, __$true, __$false, _0; - zend_bool secure; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(secure) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &secure_param); - secure = zephir_get_boolval(secure_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); - zephir_check_call_status(); - } - if (secure) { - zephir_update_property_zval(this_ptr, ZEND_STRL("secure"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("secure"), &__$false); - } - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Http_Cookie, setSignKey) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *signKey_param = NULL; - zval signKey; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&signKey); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(signKey) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &signKey_param); - if (!signKey_param) { - ZEPHIR_INIT_VAR(&signKey); - } else { - zephir_get_strval(&signKey, signKey_param); - } - - - if (!ZEPHIR_IS_NULL(&signKey)) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "assertsignkeyislongenough", NULL, 0, &signKey); - zephir_check_call_status(); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("signKey"), &signKey); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Http_Cookie, setValue) -{ - zval *value, value_sub, __$true, __$false; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&value_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &value); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("value"), value); - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("read"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("read"), &__$false); - } - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Http_Cookie, useEncryption) -{ - zval *useEncryption_param = NULL, __$true, __$false; - zend_bool useEncryption; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(useEncryption) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &useEncryption_param); - useEncryption = zephir_get_boolval(useEncryption_param); - - - if (useEncryption) { - zephir_update_property_zval(this_ptr, ZEND_STRL("useEncryption"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("useEncryption"), &__$false); - } - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Http_Cookie, assertSignKeyIsLongEnough) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *signKey_param = NULL, length, _0$$3, _1$$3, _2$$3; - zval signKey; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&signKey); - ZVAL_UNDEF(&length); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(signKey) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &signKey_param); - if (UNEXPECTED(Z_TYPE_P(signKey_param) != IS_STRING && Z_TYPE_P(signKey_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'signKey' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(signKey_param) == IS_STRING)) { - zephir_get_strval(&signKey, signKey_param); - } else { - ZEPHIR_INIT_VAR(&signKey); - } - - - ZEPHIR_CALL_FUNCTION(&length, "mb_strlen", NULL, 281, &signKey); - zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_LT_LONG(&length, 32))) { - ZEPHIR_INIT_VAR(&_0$$3); - object_init_ex(&_0$$3, phalcon_http_cookie_exception_ce); - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "The cookie's key should be at least 32 characters long. Current length is %d."); - ZEPHIR_CALL_FUNCTION(&_2$$3, "sprintf", NULL, 194, &_1$$3, &length); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 8, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_0$$3, "phalcon/Http/Cookie.zep", 656); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_MM_RESTORE(); -} - -zend_object *zephir_init_properties_Phalcon_Http_Cookie(zend_class_entry *class_type) -{ - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); +pp302: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp329; + default: goto pp86; + } +pp303: + ppch = *++PPCURSOR; + switch (ppch) { + case 'T': + case 't': goto pp330; + default: goto pp59; + } +pp304: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp305; + } +pp305: + { + token->opcode = PHQL_T_ORDER; + return 0; } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Request) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http, Request, phalcon, http_request, phalcon_di_abstractinjectionaware_ce, phalcon_http_request_method_entry, 0); - - zend_declare_property_null(phalcon_http_request_ce, SL("filterService"), ZEND_ACC_PRIVATE); - zend_declare_property_bool(phalcon_http_request_ce, SL("httpMethodParameterOverride"), 0, ZEND_ACC_PRIVATE); - zend_declare_property_null(phalcon_http_request_ce, SL("queryFilters"), ZEND_ACC_PRIVATE); - zend_declare_property_null(phalcon_http_request_ce, SL("putCache"), ZEND_ACC_PRIVATE); - zend_declare_property_string(phalcon_http_request_ce, SL("rawBody"), "", ZEND_ACC_PRIVATE); - zend_declare_property_bool(phalcon_http_request_ce, SL("strictHostCheck"), 0, ZEND_ACC_PRIVATE); - phalcon_http_request_ce->create_object = zephir_init_properties_Phalcon_Http_Request; - - zend_class_implements(phalcon_http_request_ce, 1, phalcon_http_requestinterface_ce); - zend_class_implements(phalcon_http_request_ce, 1, phalcon_http_message_requestmethodinterface_ce); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Http_Request, getHttpMethodParameterOverride) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "httpMethodParameterOverride"); -} - -static PHP_METHOD(Phalcon_Http_Request, setHttpMethodParameterOverride) -{ - zval *httpMethodParameterOverride_param = NULL, __$true, __$false; - zend_bool httpMethodParameterOverride; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(httpMethodParameterOverride) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &httpMethodParameterOverride_param); - httpMethodParameterOverride = zephir_get_boolval(httpMethodParameterOverride_param); - - - if (httpMethodParameterOverride) { - zephir_update_property_zval(this_ptr, ZEND_STRL("httpMethodParameterOverride"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("httpMethodParameterOverride"), &__$false); - } - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Http_Request, get) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool notAllowEmpty, noRecursive; - zval *name_param = NULL, *filters = NULL, filters_sub, *defaultValue = NULL, defaultValue_sub, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, _REQUEST, __$null, _0, _1; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&filters_sub); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_UNDEF(&_REQUEST); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 5) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) - Z_PARAM_ZVAL_OR_NULL(filters) - Z_PARAM_ZVAL_OR_NULL(defaultValue) - Z_PARAM_BOOL(notAllowEmpty) - Z_PARAM_BOOL(noRecursive) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_get_global(&_REQUEST, SL("_REQUEST")); - zephir_fetch_params(1, 0, 5, &name_param, &filters, &defaultValue, ¬AllowEmpty_param, &noRecursive_param); - if (!name_param) { - ZEPHIR_INIT_VAR(&name); - } else { - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - } - if (!filters) { - filters = &filters_sub; - filters = &__$null; - } - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; - } - if (!notAllowEmpty_param) { - notAllowEmpty = 0; - } else { - notAllowEmpty = zephir_get_boolval(notAllowEmpty_param); - } - if (!noRecursive_param) { - noRecursive = 0; - } else { - noRecursive = zephir_get_boolval(noRecursive_param); - } - - - if (notAllowEmpty) { - ZVAL_BOOL(&_0, 1); - } else { - ZVAL_BOOL(&_0, 0); - } - if (noRecursive) { - ZVAL_BOOL(&_1, 1); - } else { - ZVAL_BOOL(&_1, 0); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethelper", NULL, 340, &_REQUEST, &name, filters, defaultValue, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Http_Request, getAcceptableContent) -{ - zval _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "HTTP_ACCEPT"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "accept"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getqualityheader", NULL, 341, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Http_Request, getBasicAuth) -{ - zend_bool _2; - zval _0, _1, _3, _4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "PHP_AUTH_USER"); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "hasserver", NULL, 342, &_1); - zephir_check_call_status(); - _2 = !zephir_is_true(&_0); - if (!(_2)) { - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "PHP_AUTH_PW"); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "hasserver", NULL, 342, &_1); - zephir_check_call_status(); - _2 = !zephir_is_true(&_3); - } - if (_2) { - RETURN_MM_NULL(); - } - zephir_create_array(return_value, 2, 0); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "PHP_AUTH_USER"); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "getserver", NULL, 0, &_1); - zephir_check_call_status(); - zephir_array_update_string(return_value, SL("username"), &_4, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "PHP_AUTH_PW"); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "getserver", NULL, 0, &_1); - zephir_check_call_status(); - zephir_array_update_string(return_value, SL("password"), &_4, PH_COPY | PH_SEPARATE); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Http_Request, getBestAccept) -{ - zval _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getacceptablecontent", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "accept"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getbestquality", NULL, 343, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Http_Request, getBestCharset) -{ - zval _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getclientcharsets", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "charset"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getbestquality", NULL, 343, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Http_Request, getBestLanguage) -{ - zval _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getlanguages", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "language"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getbestquality", NULL, 343, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Http_Request, getPreferredIsoLocaleVariant) -{ - zval language, _0, _1, _2, _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&language); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(&language, this_ptr, "getbestlanguage", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - zephir_fast_explode_str(&_0, SL("-"), &language, LONG_MAX); - ZEPHIR_CPY_WRT(&language, &_0); - zephir_array_fetch_long(&_1, &language, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 181); - ZEPHIR_CPY_WRT(&language, &_1); - ZEPHIR_INIT_VAR(&_2); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "*"); - if (ZEPHIR_IS_IDENTICAL(&_3, &language)) { - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, ""); - } else { - ZEPHIR_CPY_WRT(&_2, &language); - } - ZEPHIR_CPY_WRT(&language, &_2); - RETURN_CCTOR(&language); -} - -static PHP_METHOD(Phalcon_Http_Request, getClientAddress) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *trustForwardedHeader_param = NULL, address, server, _0$$7, _1$$7; - zend_bool trustForwardedHeader; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&address); - ZVAL_UNDEF(&server); - ZVAL_UNDEF(&_0$$7); - ZVAL_UNDEF(&_1$$7); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(trustForwardedHeader) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &trustForwardedHeader_param); - if (!trustForwardedHeader_param) { - trustForwardedHeader = 0; - } else { - trustForwardedHeader = zephir_get_boolval(trustForwardedHeader_param); - } - - - ZEPHIR_INIT_VAR(&address); - ZVAL_NULL(&address); - ZEPHIR_CALL_METHOD(&server, this_ptr, "getserverarray", NULL, 344); - zephir_check_call_status(); - if (trustForwardedHeader) { - ZEPHIR_OBS_NVAR(&address); - zephir_array_isset_string_fetch(&address, &server, SL("HTTP_X_FORWARDED_FOR"), 0); - if (Z_TYPE_P(&address) == IS_NULL) { - ZEPHIR_OBS_NVAR(&address); - zephir_array_isset_string_fetch(&address, &server, SL("HTTP_CLIENT_IP"), 0); - } - } - if (Z_TYPE_P(&address) == IS_NULL) { - ZEPHIR_OBS_NVAR(&address); - zephir_array_isset_string_fetch(&address, &server, SL("REMOTE_ADDR"), 0); - } - if (Z_TYPE_P(&address) != IS_STRING) { - RETURN_MM_BOOL(0); - } - if (zephir_memnstr_str(&address, SL(","), "phalcon/Http/Request.zep", 217)) { - ZEPHIR_INIT_VAR(&_0$$7); - zephir_fast_explode_str(&_0$$7, SL(","), &address, LONG_MAX); - zephir_array_fetch_long(&_1$$7, &_0$$7, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 222); - RETURN_CTOR(&_1$$7); - } - RETURN_CCTOR(&address); -} - -static PHP_METHOD(Phalcon_Http_Request, getClientCharsets) -{ - zval _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "HTTP_ACCEPT_CHARSET"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "charset"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getqualityheader", NULL, 341, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Http_Request, getContentType) -{ - zval contentType, server; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&contentType); - ZVAL_UNDEF(&server); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(&server, this_ptr, "getserverarray", NULL, 344); - zephir_check_call_status(); - if (!(zephir_array_isset_string_fetch(&contentType, &server, SL("CONTENT_TYPE"), 1))) { - RETURN_MM_NULL(); - } - RETURN_CTOR(&contentType); -} - -static PHP_METHOD(Phalcon_Http_Request, getDigestAuth) -{ - zval auth; - zval digest, matches, match, server, _0$$3, _1$$3, _2$$3, *_3$$5, _4$$5, _5$$6, _6$$6, _7$$7, _8$$7; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&digest); - ZVAL_UNDEF(&matches); - ZVAL_UNDEF(&match); - ZVAL_UNDEF(&server); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_6$$6); - ZVAL_UNDEF(&_7$$7); - ZVAL_UNDEF(&_8$$7); - ZVAL_UNDEF(&auth); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&auth); - array_init(&auth); - ZEPHIR_CALL_METHOD(&server, this_ptr, "getserverarray", NULL, 344); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&digest); - if (zephir_array_isset_string_fetch(&digest, &server, SL("PHP_AUTH_DIGEST"), 0)) { - ZEPHIR_INIT_VAR(&matches); - array_init(&matches); - ZEPHIR_INIT_VAR(&_0$$3); - ZVAL_STRING(&_0$$3, "#(\\w+)=(['\"]?)([^'\" ,]+)\\2#"); - ZEPHIR_INIT_VAR(&_1$$3); - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "#(\\w+)=(['\"]?)([^'\" ,]+)\\2#"); - zephir_preg_match(&_1$$3, &_2$$3, &digest, &matches, 1, 2 , 0 ); - if (!(zephir_is_true(&_1$$3))) { - RETURN_CTOR(&auth); +pp306: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp307; + } +pp307: + { + token->opcode = PHQL_T_OUTER; + return 0; } - if (Z_TYPE_P(&matches) == IS_ARRAY) { - zephir_is_iterable(&matches, 0, "phalcon/Http/Request.zep", 276); - if (Z_TYPE_P(&matches) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&matches), _3$$5) - { - ZEPHIR_INIT_NVAR(&match); - ZVAL_COPY(&match, _3$$5); - zephir_array_fetch_long(&_5$$6, &match, 3, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 274); - ZEPHIR_OBS_NVAR(&_6$$6); - zephir_array_fetch_long(&_6$$6, &match, 1, PH_NOISY, "phalcon/Http/Request.zep", 274); - zephir_array_update_zval(&auth, &_6$$6, &_5$$6, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &matches, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_4$$5, &matches, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_4$$5)) { - break; - } - ZEPHIR_CALL_METHOD(&match, &matches, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_fetch_long(&_7$$7, &match, 3, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 274); - ZEPHIR_OBS_NVAR(&_8$$7); - zephir_array_fetch_long(&_8$$7, &match, 1, PH_NOISY, "phalcon/Http/Request.zep", 274); - zephir_array_update_zval(&auth, &_8$$7, &_7$$7, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &matches, "next", NULL, 0); - zephir_check_call_status(); - } +pp308: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp309; } - ZEPHIR_INIT_NVAR(&match); +pp309: + { + token->opcode = PHQL_T_RIGHT; + return 0; } - } - RETURN_CTOR(&auth); -} - -static PHP_METHOD(Phalcon_Http_Request, getFilteredQuery) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool notAllowEmpty, noRecursive; - zval *name_param = NULL, *defaultValue = NULL, defaultValue_sub, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, __$null, filters, _0, _1, _2, _3; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&filters); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 4) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) - Z_PARAM_ZVAL_OR_NULL(defaultValue) - Z_PARAM_BOOL(notAllowEmpty) - Z_PARAM_BOOL(noRecursive) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 4, &name_param, &defaultValue, ¬AllowEmpty_param, &noRecursive_param); - if (!name_param) { - ZEPHIR_INIT_VAR(&name); - } else { - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - } - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; - } - if (!notAllowEmpty_param) { - notAllowEmpty = 0; - } else { - notAllowEmpty = zephir_get_boolval(notAllowEmpty_param); - } - if (!noRecursive_param) { - noRecursive = 0; - } else { - noRecursive = zephir_get_boolval(noRecursive_param); - } - - - ZEPHIR_OBS_VAR(&filters); - zephir_read_property(&_0, this_ptr, ZEND_STRL("queryFilters"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_1, &_0, SL("GET"), PH_READONLY, "phalcon/Http/Request.zep", 293); - if (!(zephir_array_isset_fetch(&filters, &_1, &name, 0))) { - ZEPHIR_INIT_NVAR(&filters); - array_init(&filters); - } - if (notAllowEmpty) { - ZVAL_BOOL(&_2, 1); - } else { - ZVAL_BOOL(&_2, 0); - } - if (noRecursive) { - ZVAL_BOOL(&_3, 1); - } else { - ZVAL_BOOL(&_3, 0); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getquery", NULL, 0, &name, &filters, defaultValue, &_2, &_3); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Http_Request, getFilteredPost) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool notAllowEmpty, noRecursive; - zval *name_param = NULL, *defaultValue = NULL, defaultValue_sub, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, __$null, filters, _0, _1, _2, _3; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&filters); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 4) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) - Z_PARAM_ZVAL_OR_NULL(defaultValue) - Z_PARAM_BOOL(notAllowEmpty) - Z_PARAM_BOOL(noRecursive) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 4, &name_param, &defaultValue, ¬AllowEmpty_param, &noRecursive_param); - if (!name_param) { - ZEPHIR_INIT_VAR(&name); - } else { - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - } - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; - } - if (!notAllowEmpty_param) { - notAllowEmpty = 0; - } else { - notAllowEmpty = zephir_get_boolval(notAllowEmpty_param); - } - if (!noRecursive_param) { - noRecursive = 0; - } else { - noRecursive = zephir_get_boolval(noRecursive_param); - } - - - ZEPHIR_OBS_VAR(&filters); - zephir_read_property(&_0, this_ptr, ZEND_STRL("queryFilters"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_1, &_0, SL("POST"), PH_READONLY, "phalcon/Http/Request.zep", 317); - if (!(zephir_array_isset_fetch(&filters, &_1, &name, 0))) { - ZEPHIR_INIT_NVAR(&filters); - array_init(&filters); - } - if (notAllowEmpty) { - ZVAL_BOOL(&_2, 1); - } else { - ZVAL_BOOL(&_2, 0); - } - if (noRecursive) { - ZVAL_BOOL(&_3, 1); - } else { - ZVAL_BOOL(&_3, 0); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getpost", NULL, 0, &name, &filters, defaultValue, &_2, &_3); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Http_Request, getFilteredPut) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool notAllowEmpty, noRecursive; - zval *name_param = NULL, *defaultValue = NULL, defaultValue_sub, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, __$null, filters, _0, _1, _2, _3; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&filters); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 4) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) - Z_PARAM_ZVAL_OR_NULL(defaultValue) - Z_PARAM_BOOL(notAllowEmpty) - Z_PARAM_BOOL(noRecursive) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 4, &name_param, &defaultValue, ¬AllowEmpty_param, &noRecursive_param); - if (!name_param) { - ZEPHIR_INIT_VAR(&name); - } else { - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - } - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; - } - if (!notAllowEmpty_param) { - notAllowEmpty = 0; - } else { - notAllowEmpty = zephir_get_boolval(notAllowEmpty_param); - } - if (!noRecursive_param) { - noRecursive = 0; - } else { - noRecursive = zephir_get_boolval(noRecursive_param); - } - - - ZEPHIR_OBS_VAR(&filters); - zephir_read_property(&_0, this_ptr, ZEND_STRL("queryFilters"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_1, &_0, SL("PUT"), PH_READONLY, "phalcon/Http/Request.zep", 341); - if (!(zephir_array_isset_fetch(&filters, &_1, &name, 0))) { - ZEPHIR_INIT_NVAR(&filters); - array_init(&filters); - } - if (notAllowEmpty) { - ZVAL_BOOL(&_2, 1); - } else { - ZVAL_BOOL(&_2, 0); - } - if (noRecursive) { - ZVAL_BOOL(&_3, 1); - } else { - ZVAL_BOOL(&_3, 0); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getput", NULL, 0, &name, &filters, defaultValue, &_2, &_3); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Http_Request, getHeader) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *header_param = NULL, value, name, server, _0, _1, _2, _3; - zval header; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&header); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&server); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(header) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &header_param); - if (UNEXPECTED(Z_TYPE_P(header_param) != IS_STRING && Z_TYPE_P(header_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'header' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(header_param) == IS_STRING)) { - zephir_get_strval(&header, header_param); - } else { - ZEPHIR_INIT_VAR(&header); - } - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "-"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "_"); - ZEPHIR_CALL_FUNCTION(&_2, "strtr", NULL, 5, &header, &_0, &_1); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&name); - zephir_fast_strtoupper(&name, &_2); - ZEPHIR_CALL_METHOD(&server, this_ptr, "getserverarray", NULL, 344); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&value); - if (zephir_array_isset_fetch(&value, &server, &name, 0)) { - RETURN_CCTOR(&value); - } - ZEPHIR_OBS_NVAR(&value); - ZEPHIR_INIT_VAR(&_3); - ZEPHIR_CONCAT_SV(&_3, "HTTP_", &name); - if (zephir_array_isset_fetch(&value, &server, &_3, 0)) { - RETURN_CCTOR(&value); - } - RETURN_MM_STRING(""); -} - -static PHP_METHOD(Phalcon_Http_Request, getHeaders) -{ - zend_string *_3; - zend_ulong _2; - zval headers, contentHeaders; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_10 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval __$true, name, value, authHeaders, server, *_0, _1, _39, _4$$4, _5$$4, _6$$4, _7$$4, _8$$4, _9$$4, _11$$4, _12$$4, _13$$4, _14$$3, _15$$5, _16$$5, _17$$5, _18$$5, _19$$5, _20$$5, _21$$5, _22$$7, _23$$7, _24$$7, _25$$7, _26$$7, _27$$7, _28$$7, _29$$7, _30$$7, _31$$6, _32$$8, _33$$8, _34$$8, _35$$8, _36$$8, _37$$8, _38$$8; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&authHeaders); - ZVAL_UNDEF(&server); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_39); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_8$$4); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_11$$4); - ZVAL_UNDEF(&_12$$4); - ZVAL_UNDEF(&_13$$4); - ZVAL_UNDEF(&_14$$3); - ZVAL_UNDEF(&_15$$5); - ZVAL_UNDEF(&_16$$5); - ZVAL_UNDEF(&_17$$5); - ZVAL_UNDEF(&_18$$5); - ZVAL_UNDEF(&_19$$5); - ZVAL_UNDEF(&_20$$5); - ZVAL_UNDEF(&_21$$5); - ZVAL_UNDEF(&_22$$7); - ZVAL_UNDEF(&_23$$7); - ZVAL_UNDEF(&_24$$7); - ZVAL_UNDEF(&_25$$7); - ZVAL_UNDEF(&_26$$7); - ZVAL_UNDEF(&_27$$7); - ZVAL_UNDEF(&_28$$7); - ZVAL_UNDEF(&_29$$7); - ZVAL_UNDEF(&_30$$7); - ZVAL_UNDEF(&_31$$6); - ZVAL_UNDEF(&_32$$8); - ZVAL_UNDEF(&_33$$8); - ZVAL_UNDEF(&_34$$8); - ZVAL_UNDEF(&_35$$8); - ZVAL_UNDEF(&_36$$8); - ZVAL_UNDEF(&_37$$8); - ZVAL_UNDEF(&_38$$8); - ZVAL_UNDEF(&headers); - ZVAL_UNDEF(&contentHeaders); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&headers); - array_init(&headers); - ZEPHIR_INIT_VAR(&contentHeaders); - zephir_create_array(&contentHeaders, 3, 0); - zephir_array_update_string(&contentHeaders, SL("CONTENT_TYPE"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&contentHeaders, SL("CONTENT_LENGTH"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&contentHeaders, SL("CONTENT_MD5"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&server, this_ptr, "getserverarray", NULL, 344); - zephir_check_call_status(); - zephir_is_iterable(&server, 0, "phalcon/Http/Request.zep", 442); - if (Z_TYPE_P(&server) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&server), _2, _3, _0) - { - ZEPHIR_INIT_NVAR(&name); - if (_3 != NULL) { - ZVAL_STR_COPY(&name, _3); - } else { - ZVAL_LONG(&name, _2); +pp310: + ppch = *++PPCURSOR; + switch (ppch) { + case 'T': + case 't': goto pp332; + default: goto pp59; } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0); - if (zephir_start_with_str(&name, SL("HTTP_"))) { - ZEPHIR_INIT_NVAR(&_4$$4); - ZEPHIR_INIT_NVAR(&_5$$4); - ZVAL_LONG(&_6$$4, 5); - ZEPHIR_INIT_NVAR(&_7$$4); - zephir_substr(&_7$$4, &name, 5 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - ZEPHIR_INIT_NVAR(&_8$$4); - ZVAL_STRING(&_8$$4, "_"); - ZEPHIR_INIT_NVAR(&_9$$4); - ZVAL_STRING(&_9$$4, " "); - zephir_fast_str_replace(&_5$$4, &_8$$4, &_9$$4, &_7$$4); - zephir_fast_strtolower(&_4$$4, &_5$$4); - ZEPHIR_CALL_FUNCTION(&name, "ucwords", &_10, 242, &_4$$4); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_11$$4); - ZEPHIR_INIT_NVAR(&_12$$4); - ZVAL_STRING(&_12$$4, " "); - ZEPHIR_INIT_NVAR(&_13$$4); - ZVAL_STRING(&_13$$4, "-"); - zephir_fast_str_replace(&_11$$4, &_12$$4, &_13$$4, &name); - ZEPHIR_CPY_WRT(&name, &_11$$4); - zephir_array_update_zval(&headers, &name, &value, PH_COPY | PH_SEPARATE); - continue; +pp311: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp334; + default: goto pp59; } - ZEPHIR_INIT_NVAR(&_14$$3); - zephir_fast_strtoupper(&_14$$3, &name); - ZEPHIR_CPY_WRT(&name, &_14$$3); - if (zephir_array_isset(&contentHeaders, &name)) { - ZEPHIR_INIT_NVAR(&_15$$5); - ZEPHIR_INIT_NVAR(&_16$$5); - ZEPHIR_INIT_NVAR(&_17$$5); - ZVAL_STRING(&_17$$5, "_"); - ZEPHIR_INIT_NVAR(&_18$$5); - ZVAL_STRING(&_18$$5, " "); - zephir_fast_str_replace(&_16$$5, &_17$$5, &_18$$5, &name); - zephir_fast_strtolower(&_15$$5, &_16$$5); - ZEPHIR_CALL_FUNCTION(&name, "ucwords", &_10, 242, &_15$$5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_19$$5); - ZEPHIR_INIT_NVAR(&_20$$5); - ZVAL_STRING(&_20$$5, " "); - ZEPHIR_INIT_NVAR(&_21$$5); - ZVAL_STRING(&_21$$5, "-"); - zephir_fast_str_replace(&_19$$5, &_20$$5, &_21$$5, &name); - ZEPHIR_CPY_WRT(&name, &_19$$5); - zephir_array_update_zval(&headers, &name, &value, PH_COPY | PH_SEPARATE); +pp312: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp313; } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &server, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &server, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&name, &server, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &server, "current", NULL, 0); - zephir_check_call_status(); - if (zephir_start_with_str(&name, SL("HTTP_"))) { - ZEPHIR_INIT_NVAR(&_22$$7); - ZEPHIR_INIT_NVAR(&_23$$7); - ZVAL_LONG(&_24$$7, 5); - ZEPHIR_INIT_NVAR(&_25$$7); - zephir_substr(&_25$$7, &name, 5 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - ZEPHIR_INIT_NVAR(&_26$$7); - ZVAL_STRING(&_26$$7, "_"); - ZEPHIR_INIT_NVAR(&_27$$7); - ZVAL_STRING(&_27$$7, " "); - zephir_fast_str_replace(&_23$$7, &_26$$7, &_27$$7, &_25$$7); - zephir_fast_strtolower(&_22$$7, &_23$$7); - ZEPHIR_CALL_FUNCTION(&name, "ucwords", &_10, 242, &_22$$7); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_28$$7); - ZEPHIR_INIT_NVAR(&_29$$7); - ZVAL_STRING(&_29$$7, " "); - ZEPHIR_INIT_NVAR(&_30$$7); - ZVAL_STRING(&_30$$7, "-"); - zephir_fast_str_replace(&_28$$7, &_29$$7, &_30$$7, &name); - ZEPHIR_CPY_WRT(&name, &_28$$7); - zephir_array_update_zval(&headers, &name, &value, PH_COPY | PH_SEPARATE); - continue; - } - ZEPHIR_INIT_NVAR(&_31$$6); - zephir_fast_strtoupper(&_31$$6, &name); - ZEPHIR_CPY_WRT(&name, &_31$$6); - if (zephir_array_isset(&contentHeaders, &name)) { - ZEPHIR_INIT_NVAR(&_32$$8); - ZEPHIR_INIT_NVAR(&_33$$8); - ZEPHIR_INIT_NVAR(&_34$$8); - ZVAL_STRING(&_34$$8, "_"); - ZEPHIR_INIT_NVAR(&_35$$8); - ZVAL_STRING(&_35$$8, " "); - zephir_fast_str_replace(&_33$$8, &_34$$8, &_35$$8, &name); - zephir_fast_strtolower(&_32$$8, &_33$$8); - ZEPHIR_CALL_FUNCTION(&name, "ucwords", &_10, 242, &_32$$8); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_36$$8); - ZEPHIR_INIT_NVAR(&_37$$8); - ZVAL_STRING(&_37$$8, " "); - ZEPHIR_INIT_NVAR(&_38$$8); - ZVAL_STRING(&_38$$8, "-"); - zephir_fast_str_replace(&_36$$8, &_37$$8, &_38$$8, &name); - ZEPHIR_CPY_WRT(&name, &_36$$8); - zephir_array_update_zval(&headers, &name, &value, PH_COPY | PH_SEPARATE); - } - ZEPHIR_CALL_METHOD(NULL, &server, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&name); - ZEPHIR_CALL_METHOD(&authHeaders, this_ptr, "resolveauthorizationheaders", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_39); - zephir_fast_array_merge(&_39, &headers, &authHeaders); - ZEPHIR_CPY_WRT(&headers, &_39); - RETURN_CTOR(&headers); -} - -static PHP_METHOD(Phalcon_Http_Request, getHttpHost) -{ - zval _14; - zend_bool _3; - zval host, strict, cleanHost, _0, _1$$3, _2$$4, _4$$5, _8$$5, _9$$5, _10$$5, _11$$5, _5$$6, _6$$6, _7$$6, _12$$7, _13$$7; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&host); - ZVAL_UNDEF(&strict); - ZVAL_UNDEF(&cleanHost); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_10$$5); - ZVAL_UNDEF(&_11$$5); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_6$$6); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_12$$7); - ZVAL_UNDEF(&_13$$7); - ZVAL_UNDEF(&_14); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_OBS_VAR(&strict); - zephir_read_property(&strict, this_ptr, ZEND_STRL("strictHostCheck"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "HTTP_HOST"); - ZEPHIR_CALL_METHOD(&host, this_ptr, "getserver", NULL, 0, &_0); - zephir_check_call_status(); - if (!(zephir_is_true(&host))) { - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "SERVER_NAME"); - ZEPHIR_CALL_METHOD(&host, this_ptr, "getserver", NULL, 0, &_1$$3); - zephir_check_call_status(); - if (!(zephir_is_true(&host))) { - ZEPHIR_INIT_VAR(&_2$$4); - ZVAL_STRING(&_2$$4, "SERVER_ADDR"); - ZEPHIR_CALL_METHOD(&host, this_ptr, "getserver", NULL, 0, &_2$$4); - zephir_check_call_status(); +pp313: + { + token->opcode = PHQL_T_USING; + return 0; } - } - _3 = zephir_is_true(&host); - if (_3) { - _3 = zephir_is_true(&strict); - } - if (_3) { - ZEPHIR_INIT_VAR(&_4$$5); - zephir_fast_trim(&_4$$5, &host, NULL , ZEPHIR_TRIM_BOTH); - ZEPHIR_INIT_VAR(&cleanHost); - zephir_fast_strtolower(&cleanHost, &_4$$5); - if (zephir_memnstr_str(&cleanHost, SL(":"), "phalcon/Http/Request.zep", 516)) { - ZEPHIR_INIT_VAR(&_5$$6); - ZVAL_STRING(&_5$$6, "/:[[:digit:]]+$/"); - ZEPHIR_INIT_VAR(&_6$$6); - ZVAL_STRING(&_6$$6, ""); - ZEPHIR_CALL_FUNCTION(&_7$$6, "preg_replace", NULL, 50, &_5$$6, &_6$$6, &cleanHost); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&cleanHost, &_7$$6); +pp314: + ppch = *++PPCURSOR; + switch (ppch) { + case 'S': + case 's': goto pp336; + default: goto pp59; + } +pp315: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp316; + } +pp316: + { + token->opcode = PHQL_T_WHERE; + return 0; } - ZEPHIR_INIT_VAR(&_8$$5); - ZVAL_STRING(&_8$$5, "/[a-z0-9-]+\\.?/"); - ZEPHIR_INIT_VAR(&_9$$5); - ZVAL_STRING(&_9$$5, ""); - ZEPHIR_CALL_FUNCTION(&_10$$5, "preg_replace", NULL, 50, &_8$$5, &_9$$5, &cleanHost); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_11$$5); - ZVAL_STRING(&_11$$5, ""); - if (UNEXPECTED(!ZEPHIR_IS_IDENTICAL(&_11$$5, &_10$$5))) { - ZEPHIR_INIT_VAR(&_12$$7); - object_init_ex(&_12$$7, spl_ce_UnexpectedValueException); - ZEPHIR_INIT_VAR(&_13$$7); - ZEPHIR_CONCAT_SV(&_13$$7, "Invalid host ", &host); - ZEPHIR_CALL_METHOD(NULL, &_12$$7, "__construct", NULL, 345, &_13$$7); - zephir_check_call_status(); - zephir_throw_exception_debug(&_12$$7, "phalcon/Http/Request.zep", 526); - ZEPHIR_MM_RESTORE(); - return; +pp317: + ppch = *++PPCURSOR; + switch (ppch) { + case 'T': + case 't': goto pp338; + default: goto pp59; + } +pp318: + ppch = *++PPCURSOR; + switch (ppch) { + case 'N': + case 'n': goto pp340; + default: goto pp59; + } +pp319: + ppch = *++PPCURSOR; + switch (ppch) { + case 'T': + case 't': goto pp342; + default: goto pp59; + } +pp320: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp321; + } +pp321: + { + token->opcode = PHQL_T_DELETE; + return 0; } - } else { - ZEPHIR_CPY_WRT(&cleanHost, &host); - } - zephir_cast_to_string(&_14, &cleanHost); - RETURN_CTOR(&_14); -} - -static PHP_METHOD(Phalcon_Http_Request, getHTTPReferer) -{ - zval httpReferer, server; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&httpReferer); - ZVAL_UNDEF(&server); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(&server, this_ptr, "getserverarray", NULL, 344); - zephir_check_call_status(); - if (!(zephir_array_isset_string_fetch(&httpReferer, &server, SL("HTTP_REFERER"), 1))) { - RETURN_MM_STRING(""); - } - RETURN_CTOR(&httpReferer); -} - -static PHP_METHOD(Phalcon_Http_Request, getJsonRawBody) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *associative_param = NULL, rawBody, _0; - zend_bool associative; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&rawBody); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(associative) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &associative_param); - if (!associative_param) { - associative = 0; - } else { - associative = zephir_get_boolval(associative_param); - } - - - ZEPHIR_CALL_METHOD(&rawBody, this_ptr, "getrawbody", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&rawBody) != IS_STRING) { - RETURN_MM_BOOL(0); - } - ZVAL_BOOL(&_0, (associative ? 1 : 0)); - zephir_json_decode(return_value, &rawBody, zephir_get_intval(&_0) ); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Http_Request, getLanguages) -{ - zval _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "HTTP_ACCEPT_LANGUAGE"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "language"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getqualityheader", NULL, 341, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Http_Request, getMethod) -{ - zval returnMethod; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval _REQUEST, overridedMethod, spoofedMethod, requestMethod, server, _0, _3, _1$$5, _2$$5; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_REQUEST); - ZVAL_UNDEF(&overridedMethod); - ZVAL_UNDEF(&spoofedMethod); - ZVAL_UNDEF(&requestMethod); - ZVAL_UNDEF(&server); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_1$$5); - ZVAL_UNDEF(&_2$$5); - ZVAL_UNDEF(&returnMethod); - - - ZEPHIR_MM_GROW(); - zephir_get_global(&_REQUEST, SL("_REQUEST")); - - ZEPHIR_INIT_VAR(&returnMethod); - ZEPHIR_CALL_METHOD(&server, this_ptr, "getserverarray", NULL, 344); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&requestMethod); - if (EXPECTED(zephir_array_isset_string_fetch(&requestMethod, &server, SL("REQUEST_METHOD"), 0))) { - ZEPHIR_INIT_NVAR(&returnMethod); - zephir_fast_strtoupper(&returnMethod, &requestMethod); - } else { - RETURN_MM_STRING("GET"); - } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "POST"); - if (ZEPHIR_IS_IDENTICAL(&_0, &returnMethod)) { - ZEPHIR_INIT_VAR(&_1$$5); - ZVAL_STRING(&_1$$5, "X-HTTP-METHOD-OVERRIDE"); - ZEPHIR_CALL_METHOD(&overridedMethod, this_ptr, "getheader", NULL, 346, &_1$$5); - zephir_check_call_status(); - zephir_read_property(&_2$$5, this_ptr, ZEND_STRL("httpMethodParameterOverride"), PH_NOISY_CC | PH_READONLY); - if (!(ZEPHIR_IS_EMPTY(&overridedMethod))) { - ZEPHIR_INIT_NVAR(&returnMethod); - zephir_fast_strtoupper(&returnMethod, &overridedMethod); - } else if (zephir_is_true(&_2$$5)) { - ZEPHIR_OBS_VAR(&spoofedMethod); - if (zephir_array_isset_string_fetch(&spoofedMethod, &_REQUEST, SL("_method"), 0)) { - ZEPHIR_INIT_NVAR(&returnMethod); - zephir_fast_strtoupper(&returnMethod, &spoofedMethod); +pp322: + ppch = *++PPCURSOR; + switch (ppch) { + case 'C': + case 'c': goto pp344; + default: goto pp59; + } +pp323: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp324; } +pp324: + { + token->opcode = PHQL_T_EXISTS; + return 0; } - } - ZEPHIR_CALL_METHOD(&_3, this_ptr, "isvalidhttpmethod", NULL, 0, &returnMethod); - zephir_check_call_status(); - if (!(zephir_is_true(&_3))) { - RETURN_MM_STRING("GET"); - } - RETURN_CTOR(&returnMethod); -} - -static PHP_METHOD(Phalcon_Http_Request, getPort) -{ - zval host, pos, _0, _6, _7, _1$$3, _2$$3, _3$$4, _4$$5, _5$$5; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&host); - ZVAL_UNDEF(&pos); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_5$$5); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "HTTP_HOST"); - ZEPHIR_CALL_METHOD(&host, this_ptr, "getserver", NULL, 0, &_0); - zephir_check_call_status(); - if (!(zephir_is_true(&host))) { - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "SERVER_PORT"); - ZEPHIR_CALL_METHOD(&_1$$3, this_ptr, "getserver", NULL, 0, &_2$$3); - zephir_check_call_status(); - RETURN_MM_LONG(zephir_get_intval(&_1$$3)); - } - if (zephir_memnstr_str(&host, SL(":"), "phalcon/Http/Request.zep", 635)) { - ZEPHIR_INIT_VAR(&_3$$4); - ZVAL_STRING(&_3$$4, ":"); - ZEPHIR_CALL_FUNCTION(&pos, "strrpos", NULL, 116, &host, &_3$$4); - zephir_check_call_status(); - if (!ZEPHIR_IS_FALSE_IDENTICAL(&pos)) { - ZVAL_LONG(&_4$$5, (zephir_get_numberval(&pos) + 1)); - ZEPHIR_INIT_VAR(&_5$$5); - zephir_substr(&_5$$5, &host, zephir_get_intval(&_4$$5), 0, ZEPHIR_SUBSTR_NO_LENGTH); - RETURN_MM_LONG(zephir_get_intval(&_5$$5)); +pp325: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp326; + } +pp326: + { + token->opcode = PHQL_T_HAVING; + return 0; } - } - ZEPHIR_INIT_NVAR(&_0); - ZEPHIR_CALL_METHOD(&_6, this_ptr, "getscheme", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_7); - ZVAL_STRING(&_7, "https"); - if (ZEPHIR_IS_IDENTICAL(&_7, &_6)) { - ZVAL_LONG(&_0, 443); - } else { - ZVAL_LONG(&_0, 80); - } - RETURN_CCTOR(&_0); -} - -static PHP_METHOD(Phalcon_Http_Request, getPost) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool notAllowEmpty, noRecursive; - zval *name_param = NULL, *filters = NULL, filters_sub, *defaultValue = NULL, defaultValue_sub, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, _POST, __$null, _0, _1; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&filters_sub); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_UNDEF(&_POST); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 5) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) - Z_PARAM_ZVAL_OR_NULL(filters) - Z_PARAM_ZVAL_OR_NULL(defaultValue) - Z_PARAM_BOOL(notAllowEmpty) - Z_PARAM_BOOL(noRecursive) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_get_global(&_POST, SL("_POST")); - zephir_fetch_params(1, 0, 5, &name_param, &filters, &defaultValue, ¬AllowEmpty_param, &noRecursive_param); - if (!name_param) { - ZEPHIR_INIT_VAR(&name); - } else { - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - } - if (!filters) { - filters = &filters_sub; - filters = &__$null; - } - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; - } - if (!notAllowEmpty_param) { - notAllowEmpty = 0; - } else { - notAllowEmpty = zephir_get_boolval(notAllowEmpty_param); - } - if (!noRecursive_param) { - noRecursive = 0; - } else { - noRecursive = zephir_get_boolval(noRecursive_param); - } - - - if (notAllowEmpty) { - ZVAL_BOOL(&_0, 1); - } else { - ZVAL_BOOL(&_0, 0); - } - if (noRecursive) { - ZVAL_BOOL(&_1, 1); - } else { - ZVAL_BOOL(&_1, 0); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethelper", NULL, 340, &_POST, &name, filters, defaultValue, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Http_Request, getPut) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool notAllowEmpty, noRecursive, _0$$3; - zval *name_param = NULL, *filters = NULL, filters_sub, *defaultValue = NULL, defaultValue_sub, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, __$null, put, contentType, _5, _6, _1$$3, _2$$3, _3$$4, _4$$6; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&filters_sub); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&put); - ZVAL_UNDEF(&contentType); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$6); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 5) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) - Z_PARAM_ZVAL_OR_NULL(filters) - Z_PARAM_ZVAL_OR_NULL(defaultValue) - Z_PARAM_BOOL(notAllowEmpty) - Z_PARAM_BOOL(noRecursive) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 5, &name_param, &filters, &defaultValue, ¬AllowEmpty_param, &noRecursive_param); - if (!name_param) { - ZEPHIR_INIT_VAR(&name); - } else { - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - } - if (!filters) { - filters = &filters_sub; - filters = &__$null; - } - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; - } - if (!notAllowEmpty_param) { - notAllowEmpty = 0; - } else { - notAllowEmpty = zephir_get_boolval(notAllowEmpty_param); - } - if (!noRecursive_param) { - noRecursive = 0; - } else { - noRecursive = zephir_get_boolval(noRecursive_param); - } - - - ZEPHIR_OBS_VAR(&put); - zephir_read_property(&put, this_ptr, ZEND_STRL("putCache"), PH_NOISY_CC); - if (Z_TYPE_P(&put) == IS_NULL) { - ZEPHIR_CALL_METHOD(&contentType, this_ptr, "getcontenttype", NULL, 0); - zephir_check_call_status(); - _0$$3 = Z_TYPE_P(&contentType) == IS_STRING; - if (_0$$3) { - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "json"); - ZEPHIR_CALL_FUNCTION(&_2$$3, "stripos", NULL, 347, &contentType, &_1$$3); - zephir_check_call_status(); - _0$$3 = !ZEPHIR_IS_FALSE(&_2$$3); +pp327: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp328; + } +pp328: + { + token->opcode = PHQL_T_INSERT; + return 0; } - if (_0$$3) { - ZVAL_BOOL(&_3$$4, 1); - ZEPHIR_CALL_METHOD(&put, this_ptr, "getjsonrawbody", NULL, 0, &_3$$4); - zephir_check_call_status(); - if (Z_TYPE_P(&put) != IS_ARRAY) { - ZEPHIR_INIT_NVAR(&put); - array_init(&put); +pp329: + ppch = *++PPCURSOR; + switch (ppch) { + case 'T': + case 't': goto pp345; + default: goto pp86; } - } else { - ZEPHIR_INIT_NVAR(&put); - array_init(&put); - ZEPHIR_CALL_METHOD(&_4$$6, this_ptr, "getrawbody", NULL, 0); - zephir_check_call_status(); - ZEPHIR_MAKE_REF(&put); - ZEPHIR_CALL_FUNCTION(NULL, "parse_str", NULL, 306, &_4$$6, &put); - ZEPHIR_UNREF(&put); - zephir_check_call_status(); +pp330: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp331; + } +pp331: + { + token->opcode = PHQL_T_OFFSET; + return 0; } - zephir_update_property_zval(this_ptr, ZEND_STRL("putCache"), &put); - } - if (notAllowEmpty) { - ZVAL_BOOL(&_5, 1); - } else { - ZVAL_BOOL(&_5, 0); - } - if (noRecursive) { - ZVAL_BOOL(&_6, 1); - } else { - ZVAL_BOOL(&_6, 0); +pp332: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp333; + } +pp333: + { + token->opcode = PHQL_T_SELECT; + return 0; + } +pp334: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp335; + } +pp335: + { + token->opcode = PHQL_T_UPDATE; + return 0; + } +pp336: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp337; + } +pp337: + { + token->opcode = PHQL_T_VALUES; + return 0; + } +pp338: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp339; + } +pp339: + { + token->opcode = PHQL_T_AGAINST; + return 0; + } +pp340: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp341; + } +pp341: + { + token->opcode = PHQL_T_BETWEEN; + return 0; + } +pp342: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp343; + } +pp343: + { + token->opcode = PHQL_T_CONVERT; + return 0; + } +pp344: + ppch = *++PPCURSOR; + switch (ppch) { + case 'T': + case 't': goto pp346; + default: goto pp59; + } +pp345: + ppch = *++PPCURSOR; + switch (ppch) { + case 'W': + case 'w': goto pp348; + default: goto pp86; + } +pp346: + ppch = *++PPCURSOR; + switch (ppch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto pp58; + default: goto pp347; + } +pp347: + { + token->opcode = PHQL_T_DISTINCT; + return 0; + } +pp348: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp349; + default: goto pp86; + } +pp349: + ppch = *++PPCURSOR; + switch (ppch) { + case 'E': + case 'e': goto pp350; + default: goto pp86; + } +pp350: + ppch = *++PPCURSOR; + switch (ppch) { + case 'N': + case 'n': goto pp351; + default: goto pp86; + } +pp351: + ++PPCURSOR; + { + token->opcode = PHQL_T_BETWEEN_NOT; + return 0; + } + } + } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethelper", NULL, 340, &put, &name, filters, defaultValue, &_5, &_6); - zephir_check_call_status(); - RETURN_MM(); + + return status; } -static PHP_METHOD(Phalcon_Http_Request, getQuery) + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Query_Status) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool notAllowEmpty, noRecursive; - zval *name_param = NULL, *filters = NULL, filters_sub, *defaultValue = NULL, defaultValue_sub, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, _GET, __$null, _0, _1; - zval name; + ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model\\Query, Status, phalcon, mvc_model_query_status, phalcon_mvc_model_query_status_method_entry, 0); + + zend_declare_property_null(phalcon_mvc_model_query_status_ce, SL("model"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_query_status_ce, SL("success"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_mvc_model_query_status_ce, 1, phalcon_mvc_model_query_statusinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Mvc_Model_Query_Status, __construct) +{ + zval *success_param = NULL, *model = NULL, model_sub, __$true, __$false, __$null; + zend_bool success; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&filters_sub); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_UNDEF(&_GET); + ZVAL_UNDEF(&model_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 5) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_BOOL(success) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) - Z_PARAM_ZVAL_OR_NULL(filters) - Z_PARAM_ZVAL_OR_NULL(defaultValue) - Z_PARAM_BOOL(notAllowEmpty) - Z_PARAM_BOOL(noRecursive) + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(model, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_get_global(&_GET, SL("_GET")); - zephir_fetch_params(1, 0, 5, &name_param, &filters, &defaultValue, ¬AllowEmpty_param, &noRecursive_param); - if (!name_param) { - ZEPHIR_INIT_VAR(&name); - } else { - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - } - if (!filters) { - filters = &filters_sub; - filters = &__$null; - } - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; - } - if (!notAllowEmpty_param) { - notAllowEmpty = 0; - } else { - notAllowEmpty = zephir_get_boolval(notAllowEmpty_param); - } - if (!noRecursive_param) { - noRecursive = 0; - } else { - noRecursive = zephir_get_boolval(noRecursive_param); + zephir_fetch_params_without_memory_grow(1, 1, &success_param, &model); + success = zephir_get_boolval(success_param); + if (!model) { + model = &model_sub; + model = &__$null; } - if (notAllowEmpty) { - ZVAL_BOOL(&_0, 1); - } else { - ZVAL_BOOL(&_0, 0); - } - if (noRecursive) { - ZVAL_BOOL(&_1, 1); + if (success) { + zephir_update_property_zval(this_ptr, ZEND_STRL("success"), &__$true); } else { - ZVAL_BOOL(&_1, 0); + zephir_update_property_zval(this_ptr, ZEND_STRL("success"), &__$false); } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethelper", NULL, 340, &_GET, &name, filters, defaultValue, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("model"), model); } -static PHP_METHOD(Phalcon_Http_Request, getRawBody) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Status, getMessages) { - zval rawBody, contents, _0, _1$$3; + zval model, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&rawBody); - ZVAL_UNDEF(&contents); + ZVAL_UNDEF(&model); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("rawBody"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&rawBody, &_0); - if (ZEPHIR_IS_EMPTY(&rawBody)) { - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "php://input"); - ZEPHIR_INIT_VAR(&contents); - zephir_file_get_contents(&contents, &_1$$3); - zephir_update_property_zval(this_ptr, ZEND_STRL("rawBody"), &contents); - RETURN_CCTOR(&contents); + zephir_read_property(&_0, this_ptr, ZEND_STRL("model"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&model, &_0); + if (Z_TYPE_P(&model) != IS_OBJECT) { + array_init(return_value); + RETURN_MM(); } - RETURN_CCTOR(&rawBody); + ZEPHIR_RETURN_CALL_METHOD(&model, "getmessages", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Http_Request, getScheme) +static PHP_METHOD(Phalcon_Mvc_Model_Query_Status, getModel) { - zend_bool _1; - zval https, _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&https); - ZVAL_UNDEF(&_0); - ZEPHIR_MM_GROW(); + RETURN_MEMBER(getThis(), "model"); +} - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "HTTPS"); - ZEPHIR_CALL_METHOD(&https, this_ptr, "getserver", NULL, 0, &_0); - zephir_check_call_status(); - _1 = zephir_is_true(&https); - if (_1) { - _1 = !ZEPHIR_IS_STRING(&https, "off"); - } - if (_1) { - RETURN_MM_STRING("https"); - } - RETURN_MM_STRING("http"); +static PHP_METHOD(Phalcon_Mvc_Model_Query_Status, success) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "success"); } -static PHP_METHOD(Phalcon_Http_Request, getServer) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Query_StatusInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model\\Query, StatusInterface, phalcon, mvc_model_query_statusinterface, phalcon_mvc_model_query_statusinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_StatusInterface, getMessages); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_StatusInterface, getModel); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_StatusInterface, success); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Binder_BindableInterface) { + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model\\Binder, BindableInterface, phalcon, mvc_model_binder_bindableinterface, phalcon_mvc_model_binder_bindableinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Binder_BindableInterface, getModelName); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Behavior_SoftDelete) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\Behavior, SoftDelete, phalcon, mvc_model_behavior_softdelete, phalcon_mvc_model_behavior_ce, phalcon_mvc_model_behavior_softdelete_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Mvc_Model_Behavior_SoftDelete, notify) +{ + zend_bool _9; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_6 = NULL, *_7 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, serverValue, server; - zval name; + zval *type_param = NULL, *model, model_sub, options, value, field, updateModel, message, modelsManager, metaData, _0, _1, _2, _8, _3$$7, *_4$$7, _5$$7, _10$$10, _11$$10; + zval type; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&serverValue); - ZVAL_UNDEF(&server); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&updateModel); + ZVAL_UNDEF(&message); + ZVAL_UNDEF(&modelsManager); + ZVAL_UNDEF(&metaData); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_3$$7); + ZVAL_UNDEF(&_5$$7); + ZVAL_UNDEF(&_10$$10); + ZVAL_UNDEF(&_11$$10); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(type) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + zephir_fetch_params(1, 2, 0, &type_param, &model); + if (UNEXPECTED(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); + if (EXPECTED(Z_TYPE_P(type_param) == IS_STRING)) { + zephir_get_strval(&type, type_param); } else { - ZEPHIR_INIT_VAR(&name); + ZEPHIR_INIT_VAR(&type); } - ZEPHIR_CALL_METHOD(&server, this_ptr, "getserverarray", NULL, 344); + if (!ZEPHIR_IS_STRING_IDENTICAL(&type, "beforeDelete")) { + RETURN_MM_NULL(); + } + ZEPHIR_CALL_METHOD(&options, this_ptr, "getoptions", NULL, 0); zephir_check_call_status(); - if (!(zephir_array_isset_fetch(&serverValue, &server, &name, 1))) { + ZEPHIR_OBS_VAR(&value); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&value, &options, SL("value"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The option 'value' is required", "phalcon/Mvc/Model/Behavior/SoftDelete.zep", 42); + return; + } + ZEPHIR_OBS_VAR(&field); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&field, &options, SL("field"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The option 'field' is required", "phalcon/Mvc/Model/Behavior/SoftDelete.zep", 49); + return; + } + ZVAL_BOOL(&_0, 1); + ZEPHIR_CALL_METHOD(NULL, model, "skipoperation", NULL, 0, &_0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1, model, "readattribute", NULL, 0, &field); + zephir_check_call_status(); + if (ZEPHIR_IS_IDENTICAL(&_1, &value)) { RETURN_MM_NULL(); } - RETURN_CTOR(&serverValue); + ZEPHIR_CALL_METHOD(&modelsManager, model, "getmodelsmanager", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&updateModel); + if (zephir_clone(&updateModel, model) == FAILURE) { + RETURN_MM(); + } + ZEPHIR_CALL_METHOD(NULL, &updateModel, "writeattribute", NULL, 0, &field, &value); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_2, &updateModel, "save", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_2))) { + ZEPHIR_CALL_METHOD(&_3$$7, &updateModel, "getmessages", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&_3$$7, 0, "phalcon/Mvc/Model/Behavior/SoftDelete.zep", 84); + if (Z_TYPE_P(&_3$$7) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_3$$7), _4$$7) + { + ZEPHIR_INIT_NVAR(&message); + ZVAL_COPY(&message, _4$$7); + ZEPHIR_CALL_METHOD(NULL, model, "appendmessage", &_6, 0, &message); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_3$$7, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_5$$7, &_3$$7, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_5$$7)) { + break; + } + ZEPHIR_CALL_METHOD(&message, &_3$$7, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, model, "appendmessage", &_7, 0, &message); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_3$$7, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&message); + RETURN_MM_BOOL(0); + } + ZEPHIR_CALL_METHOD(NULL, model, "writeattribute", NULL, 0, &field, &value); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_8, &modelsManager, "iskeepingsnapshots", NULL, 0, model); + zephir_check_call_status(); + _9 = zephir_is_true(&_8); + if (_9) { + _9 = ZEPHIR_GLOBAL(orm).update_snapshot_on_save; + } + if (_9) { + ZEPHIR_CALL_METHOD(&metaData, model, "getmodelsmetadata", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_10$$10, &updateModel, "getsnapshotdata", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, model, "setsnapshotdata", NULL, 0, &_10$$10); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_11$$10, &updateModel, "getoldsnapshotdata", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, model, "setoldsnapshotdata", NULL, 0, &_11$$10); + zephir_check_call_status(); + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Request, getServerAddress) -{ - zval serverAddr, _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&serverAddr); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZEPHIR_MM_GROW(); +#ifdef HAVE_CONFIG_H +#endif - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "SERVER_ADDR"); - ZEPHIR_CALL_METHOD(&serverAddr, this_ptr, "getserver", NULL, 0, &_0); - zephir_check_call_status(); - if (Z_TYPE_P(&serverAddr) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "localhost"); - ZEPHIR_RETURN_CALL_FUNCTION("gethostbyname", NULL, 348, &_1$$3); - zephir_check_call_status(); - RETURN_MM(); - } - RETURN_CCTOR(&serverAddr); + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Behavior_Timestampable) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\Behavior, Timestampable, phalcon, mvc_model_behavior_timestampable, phalcon_mvc_model_behavior_ce, phalcon_mvc_model_behavior_timestampable_method_entry, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Http_Request, getServerName) +static PHP_METHOD(Phalcon_Mvc_Model_Behavior_Timestampable, notify) { - zval serverName, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_3 = NULL, *_4 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *type_param = NULL, *model, model_sub, options, timestamp, singleField, field, _0, *_1$$6, _2$$6; + zval type; zval *this_ptr = getThis(); - ZVAL_UNDEF(&serverName); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(×tamp); + ZVAL_UNDEF(&singleField); + ZVAL_UNDEF(&field); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2$$6); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(type) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "SERVER_NAME"); - ZEPHIR_CALL_METHOD(&serverName, this_ptr, "getserver", NULL, 0, &_0); - zephir_check_call_status(); - if (Z_TYPE_P(&serverName) == IS_NULL) { - RETURN_MM_STRING("localhost"); + zephir_fetch_params(1, 2, 0, &type_param, &model); + if (UNEXPECTED(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(type_param) == IS_STRING)) { + zephir_get_strval(&type, type_param); + } else { + ZEPHIR_INIT_VAR(&type); } - RETURN_CCTOR(&serverName); -} -static PHP_METHOD(Phalcon_Http_Request, getUploadedFiles) -{ - zend_string *_3$$3; - zend_ulong _2$$3; - zval files; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_10 = NULL, *_18 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *onlySuccessful_param = NULL, *namedKeys_param = NULL, _FILES, superFiles, prefix, input, smoothInput, file, dataFile, *_0$$3, _1$$3, _4$$4, _5$$5, _6$$5, _7$$5, _8$$5, _9$$5, *_11$$5, _12$$5, _14$$6, _15$$7, _16$$8, _17$$8, _19$$8, _20$$9, _21$$9, _23$$10, _24$$11, _25$$11, _26$$12, _27$$12, _28$$12, _29$$13, _30$$13, _32$$14, _33$$16, _34$$17, _35$$18, _36$$19, _37$$19, _38$$19, _39$$19, _40$$19, *_41$$19, _42$$19, _44$$20, _45$$21, _46$$21, _47$$22, _48$$22, _49$$22, _50$$23, _51$$23, _53$$24, _54$$25, _55$$25, _56$$26, _57$$26, _58$$26, _59$$27, _60$$27, _62$$28, _63$$30, _64$$31; - zend_bool onlySuccessful, namedKeys, _13$$6, _22$$10, _31$$14, _43$$20, _52$$24, _61$$28; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&_FILES); - ZVAL_UNDEF(&superFiles); - ZVAL_UNDEF(&prefix); - ZVAL_UNDEF(&input); - ZVAL_UNDEF(&smoothInput); - ZVAL_UNDEF(&file); - ZVAL_UNDEF(&dataFile); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_12$$5); - ZVAL_UNDEF(&_14$$6); - ZVAL_UNDEF(&_15$$7); - ZVAL_UNDEF(&_16$$8); - ZVAL_UNDEF(&_17$$8); - ZVAL_UNDEF(&_19$$8); - ZVAL_UNDEF(&_20$$9); - ZVAL_UNDEF(&_21$$9); - ZVAL_UNDEF(&_23$$10); - ZVAL_UNDEF(&_24$$11); - ZVAL_UNDEF(&_25$$11); - ZVAL_UNDEF(&_26$$12); - ZVAL_UNDEF(&_27$$12); - ZVAL_UNDEF(&_28$$12); - ZVAL_UNDEF(&_29$$13); - ZVAL_UNDEF(&_30$$13); - ZVAL_UNDEF(&_32$$14); - ZVAL_UNDEF(&_33$$16); - ZVAL_UNDEF(&_34$$17); - ZVAL_UNDEF(&_35$$18); - ZVAL_UNDEF(&_36$$19); - ZVAL_UNDEF(&_37$$19); - ZVAL_UNDEF(&_38$$19); - ZVAL_UNDEF(&_39$$19); - ZVAL_UNDEF(&_40$$19); - ZVAL_UNDEF(&_42$$19); - ZVAL_UNDEF(&_44$$20); - ZVAL_UNDEF(&_45$$21); - ZVAL_UNDEF(&_46$$21); - ZVAL_UNDEF(&_47$$22); - ZVAL_UNDEF(&_48$$22); - ZVAL_UNDEF(&_49$$22); - ZVAL_UNDEF(&_50$$23); - ZVAL_UNDEF(&_51$$23); - ZVAL_UNDEF(&_53$$24); - ZVAL_UNDEF(&_54$$25); - ZVAL_UNDEF(&_55$$25); - ZVAL_UNDEF(&_56$$26); - ZVAL_UNDEF(&_57$$26); - ZVAL_UNDEF(&_58$$26); - ZVAL_UNDEF(&_59$$27); - ZVAL_UNDEF(&_60$$27); - ZVAL_UNDEF(&_62$$28); - ZVAL_UNDEF(&_63$$30); - ZVAL_UNDEF(&_64$$31); - ZVAL_UNDEF(&files); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(onlySuccessful) - Z_PARAM_BOOL(namedKeys) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_get_global(&_FILES, SL("_FILES")); - zephir_fetch_params(1, 0, 2, &onlySuccessful_param, &namedKeys_param); - if (!onlySuccessful_param) { - onlySuccessful = 0; - } else { - onlySuccessful = zephir_get_boolval(onlySuccessful_param); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "musttakeaction", NULL, 0, &type); + zephir_check_call_status(); + if (!ZEPHIR_IS_TRUE_IDENTICAL(&_0)) { + RETURN_MM_NULL(); } - if (!namedKeys_param) { - namedKeys = 0; - } else { - namedKeys = zephir_get_boolval(namedKeys_param); + ZEPHIR_CALL_METHOD(&options, this_ptr, "getoptions", NULL, 0, &type); + zephir_check_call_status(); + if (Z_TYPE_P(&options) != IS_ARRAY) { + RETURN_MM_NULL(); } - - - ZEPHIR_INIT_VAR(&files); - array_init(&files); - ZEPHIR_CPY_WRT(&superFiles, &_FILES); - if (zephir_fast_count_int(&superFiles) > 0) { - zephir_is_iterable(&superFiles, 0, "phalcon/Http/Request.zep", 901); - if (Z_TYPE_P(&superFiles) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&superFiles), _2$$3, _3$$3, _0$$3) + ZEPHIR_OBS_VAR(&field); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&field, &options, SL("field"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The option 'field' is required", "phalcon/Mvc/Model/Behavior/Timestampable.zep", 50); + return; + } + ZEPHIR_CALL_METHOD(×tamp, this_ptr, "gettimestamp", NULL, 446, &options); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&field) == IS_ARRAY)) { + zephir_is_iterable(&field, 0, "phalcon/Mvc/Model/Behavior/Timestampable.zep", 63); + if (Z_TYPE_P(&field) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&field), _1$$6) { - ZEPHIR_INIT_NVAR(&prefix); - if (_3$$3 != NULL) { - ZVAL_STR_COPY(&prefix, _3$$3); - } else { - ZVAL_LONG(&prefix, _2$$3); - } - ZEPHIR_INIT_NVAR(&input); - ZVAL_COPY(&input, _0$$3); - ZEPHIR_OBS_NVAR(&_4$$4); - zephir_array_fetch_string(&_4$$4, &input, SL("name"), PH_NOISY, "phalcon/Http/Request.zep", 858); - if (Z_TYPE_P(&_4$$4) == IS_ARRAY) { - zephir_array_fetch_string(&_5$$5, &input, SL("name"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 860); - zephir_array_fetch_string(&_6$$5, &input, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 861); - zephir_array_fetch_string(&_7$$5, &input, SL("tmp_name"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 862); - zephir_array_fetch_string(&_8$$5, &input, SL("size"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 863); - zephir_array_fetch_string(&_9$$5, &input, SL("error"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 864); - ZEPHIR_CALL_METHOD(&smoothInput, this_ptr, "smoothfiles", &_10, 349, &_5$$5, &_6$$5, &_7$$5, &_8$$5, &_9$$5, &prefix); - zephir_check_call_status(); - zephir_is_iterable(&smoothInput, 0, "phalcon/Http/Request.zep", 891); - if (Z_TYPE_P(&smoothInput) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&smoothInput), _11$$5) - { - ZEPHIR_INIT_NVAR(&file); - ZVAL_COPY(&file, _11$$5); - _13$$6 = onlySuccessful == 0; - if (!(_13$$6)) { - zephir_array_fetch_string(&_14$$6, &file, SL("error"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 869); - _13$$6 = ZEPHIR_IS_LONG(&_14$$6, 0); - } - if (_13$$6) { - ZEPHIR_INIT_NVAR(&dataFile); - zephir_create_array(&dataFile, 5, 0); - ZEPHIR_OBS_NVAR(&_15$$7); - zephir_array_fetch_string(&_15$$7, &file, SL("name"), PH_NOISY, "phalcon/Http/Request.zep", 871); - zephir_array_update_string(&dataFile, SL("name"), &_15$$7, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_15$$7); - zephir_array_fetch_string(&_15$$7, &file, SL("type"), PH_NOISY, "phalcon/Http/Request.zep", 872); - zephir_array_update_string(&dataFile, SL("type"), &_15$$7, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_15$$7); - zephir_array_fetch_string(&_15$$7, &file, SL("tmp_name"), PH_NOISY, "phalcon/Http/Request.zep", 873); - zephir_array_update_string(&dataFile, SL("tmp_name"), &_15$$7, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_15$$7); - zephir_array_fetch_string(&_15$$7, &file, SL("size"), PH_NOISY, "phalcon/Http/Request.zep", 874); - zephir_array_update_string(&dataFile, SL("size"), &_15$$7, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_15$$7); - zephir_array_fetch_string(&_15$$7, &file, SL("error"), PH_NOISY, "phalcon/Http/Request.zep", 876); - zephir_array_update_string(&dataFile, SL("error"), &_15$$7, PH_COPY | PH_SEPARATE); - if (namedKeys == 1) { - ZEPHIR_INIT_NVAR(&_16$$8); - object_init_ex(&_16$$8, phalcon_http_request_file_ce); - zephir_array_fetch_string(&_17$$8, &file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 882); - ZEPHIR_CALL_METHOD(NULL, &_16$$8, "__construct", &_18, 350, &dataFile, &_17$$8); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&_19$$8); - zephir_array_fetch_string(&_19$$8, &file, SL("key"), PH_NOISY, "phalcon/Http/Request.zep", 879); - zephir_array_update_zval(&files, &_19$$8, &_16$$8, PH_COPY | PH_SEPARATE); - } else { - ZEPHIR_INIT_NVAR(&_20$$9); - object_init_ex(&_20$$9, phalcon_http_request_file_ce); - zephir_array_fetch_string(&_21$$9, &file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 887); - ZEPHIR_CALL_METHOD(NULL, &_20$$9, "__construct", &_18, 350, &dataFile, &_21$$9); - zephir_check_call_status(); - zephir_array_append(&files, &_20$$9, PH_SEPARATE, "phalcon/Http/Request.zep", 887); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &smoothInput, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_12$$5, &smoothInput, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_12$$5)) { - break; - } - ZEPHIR_CALL_METHOD(&file, &smoothInput, "current", NULL, 0); - zephir_check_call_status(); - _22$$10 = onlySuccessful == 0; - if (!(_22$$10)) { - zephir_array_fetch_string(&_23$$10, &file, SL("error"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 869); - _22$$10 = ZEPHIR_IS_LONG(&_23$$10, 0); - } - if (_22$$10) { - ZEPHIR_INIT_NVAR(&_24$$11); - zephir_create_array(&_24$$11, 5, 0); - ZEPHIR_OBS_NVAR(&_25$$11); - zephir_array_fetch_string(&_25$$11, &file, SL("name"), PH_NOISY, "phalcon/Http/Request.zep", 871); - zephir_array_update_string(&_24$$11, SL("name"), &_25$$11, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_25$$11); - zephir_array_fetch_string(&_25$$11, &file, SL("type"), PH_NOISY, "phalcon/Http/Request.zep", 872); - zephir_array_update_string(&_24$$11, SL("type"), &_25$$11, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_25$$11); - zephir_array_fetch_string(&_25$$11, &file, SL("tmp_name"), PH_NOISY, "phalcon/Http/Request.zep", 873); - zephir_array_update_string(&_24$$11, SL("tmp_name"), &_25$$11, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_25$$11); - zephir_array_fetch_string(&_25$$11, &file, SL("size"), PH_NOISY, "phalcon/Http/Request.zep", 874); - zephir_array_update_string(&_24$$11, SL("size"), &_25$$11, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_25$$11); - zephir_array_fetch_string(&_25$$11, &file, SL("error"), PH_NOISY, "phalcon/Http/Request.zep", 876); - zephir_array_update_string(&_24$$11, SL("error"), &_25$$11, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&dataFile, &_24$$11); - if (namedKeys == 1) { - ZEPHIR_INIT_NVAR(&_26$$12); - object_init_ex(&_26$$12, phalcon_http_request_file_ce); - zephir_array_fetch_string(&_27$$12, &file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 882); - ZEPHIR_CALL_METHOD(NULL, &_26$$12, "__construct", &_18, 350, &dataFile, &_27$$12); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&_28$$12); - zephir_array_fetch_string(&_28$$12, &file, SL("key"), PH_NOISY, "phalcon/Http/Request.zep", 879); - zephir_array_update_zval(&files, &_28$$12, &_26$$12, PH_COPY | PH_SEPARATE); - } else { - ZEPHIR_INIT_NVAR(&_29$$13); - object_init_ex(&_29$$13, phalcon_http_request_file_ce); - zephir_array_fetch_string(&_30$$13, &file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 887); - ZEPHIR_CALL_METHOD(NULL, &_29$$13, "__construct", &_18, 350, &dataFile, &_30$$13); - zephir_check_call_status(); - zephir_array_append(&files, &_29$$13, PH_SEPARATE, "phalcon/Http/Request.zep", 887); - } - } - ZEPHIR_CALL_METHOD(NULL, &smoothInput, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&file); - } else { - _31$$14 = onlySuccessful == 0; - if (!(_31$$14)) { - zephir_array_fetch_string(&_32$$14, &input, SL("error"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 892); - _31$$14 = ZEPHIR_IS_LONG(&_32$$14, 0); - } - if (_31$$14) { - if (namedKeys == 1) { - ZEPHIR_INIT_NVAR(&_33$$16); - object_init_ex(&_33$$16, phalcon_http_request_file_ce); - ZEPHIR_CALL_METHOD(NULL, &_33$$16, "__construct", &_18, 350, &input, &prefix); - zephir_check_call_status(); - zephir_array_update_zval(&files, &prefix, &_33$$16, PH_COPY | PH_SEPARATE); - } else { - ZEPHIR_INIT_NVAR(&_34$$17); - object_init_ex(&_34$$17, phalcon_http_request_file_ce); - ZEPHIR_CALL_METHOD(NULL, &_34$$17, "__construct", &_18, 350, &input, &prefix); - zephir_check_call_status(); - zephir_array_append(&files, &_34$$17, PH_SEPARATE, "phalcon/Http/Request.zep", 896); - } - } - } + ZEPHIR_INIT_NVAR(&singleField); + ZVAL_COPY(&singleField, _1$$6); + ZEPHIR_CALL_METHOD(NULL, model, "writeattribute", &_3, 0, &singleField, ×tamp); + zephir_check_call_status(); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &superFiles, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &field, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_1$$3, &superFiles, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_2$$6, &field, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_1$$3)) { + if (!zend_is_true(&_2$$6)) { break; } - ZEPHIR_CALL_METHOD(&prefix, &superFiles, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&input, &superFiles, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&singleField, &field, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&_35$$18); - zephir_array_fetch_string(&_35$$18, &input, SL("name"), PH_NOISY, "phalcon/Http/Request.zep", 858); - if (Z_TYPE_P(&_35$$18) == IS_ARRAY) { - zephir_array_fetch_string(&_36$$19, &input, SL("name"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 860); - zephir_array_fetch_string(&_37$$19, &input, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 861); - zephir_array_fetch_string(&_38$$19, &input, SL("tmp_name"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 862); - zephir_array_fetch_string(&_39$$19, &input, SL("size"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 863); - zephir_array_fetch_string(&_40$$19, &input, SL("error"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 864); - ZEPHIR_CALL_METHOD(&smoothInput, this_ptr, "smoothfiles", &_10, 349, &_36$$19, &_37$$19, &_38$$19, &_39$$19, &_40$$19, &prefix); - zephir_check_call_status(); - zephir_is_iterable(&smoothInput, 0, "phalcon/Http/Request.zep", 891); - if (Z_TYPE_P(&smoothInput) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&smoothInput), _41$$19) - { - ZEPHIR_INIT_NVAR(&file); - ZVAL_COPY(&file, _41$$19); - _43$$20 = onlySuccessful == 0; - if (!(_43$$20)) { - zephir_array_fetch_string(&_44$$20, &file, SL("error"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 869); - _43$$20 = ZEPHIR_IS_LONG(&_44$$20, 0); - } - if (_43$$20) { - ZEPHIR_INIT_NVAR(&_45$$21); - zephir_create_array(&_45$$21, 5, 0); - ZEPHIR_OBS_NVAR(&_46$$21); - zephir_array_fetch_string(&_46$$21, &file, SL("name"), PH_NOISY, "phalcon/Http/Request.zep", 871); - zephir_array_update_string(&_45$$21, SL("name"), &_46$$21, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_46$$21); - zephir_array_fetch_string(&_46$$21, &file, SL("type"), PH_NOISY, "phalcon/Http/Request.zep", 872); - zephir_array_update_string(&_45$$21, SL("type"), &_46$$21, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_46$$21); - zephir_array_fetch_string(&_46$$21, &file, SL("tmp_name"), PH_NOISY, "phalcon/Http/Request.zep", 873); - zephir_array_update_string(&_45$$21, SL("tmp_name"), &_46$$21, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_46$$21); - zephir_array_fetch_string(&_46$$21, &file, SL("size"), PH_NOISY, "phalcon/Http/Request.zep", 874); - zephir_array_update_string(&_45$$21, SL("size"), &_46$$21, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_46$$21); - zephir_array_fetch_string(&_46$$21, &file, SL("error"), PH_NOISY, "phalcon/Http/Request.zep", 876); - zephir_array_update_string(&_45$$21, SL("error"), &_46$$21, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&dataFile, &_45$$21); - if (namedKeys == 1) { - ZEPHIR_INIT_NVAR(&_47$$22); - object_init_ex(&_47$$22, phalcon_http_request_file_ce); - zephir_array_fetch_string(&_48$$22, &file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 882); - ZEPHIR_CALL_METHOD(NULL, &_47$$22, "__construct", &_18, 350, &dataFile, &_48$$22); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&_49$$22); - zephir_array_fetch_string(&_49$$22, &file, SL("key"), PH_NOISY, "phalcon/Http/Request.zep", 879); - zephir_array_update_zval(&files, &_49$$22, &_47$$22, PH_COPY | PH_SEPARATE); - } else { - ZEPHIR_INIT_NVAR(&_50$$23); - object_init_ex(&_50$$23, phalcon_http_request_file_ce); - zephir_array_fetch_string(&_51$$23, &file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 887); - ZEPHIR_CALL_METHOD(NULL, &_50$$23, "__construct", &_18, 350, &dataFile, &_51$$23); - zephir_check_call_status(); - zephir_array_append(&files, &_50$$23, PH_SEPARATE, "phalcon/Http/Request.zep", 887); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &smoothInput, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_42$$19, &smoothInput, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_42$$19)) { - break; - } - ZEPHIR_CALL_METHOD(&file, &smoothInput, "current", NULL, 0); - zephir_check_call_status(); - _52$$24 = onlySuccessful == 0; - if (!(_52$$24)) { - zephir_array_fetch_string(&_53$$24, &file, SL("error"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 869); - _52$$24 = ZEPHIR_IS_LONG(&_53$$24, 0); - } - if (_52$$24) { - ZEPHIR_INIT_NVAR(&_54$$25); - zephir_create_array(&_54$$25, 5, 0); - ZEPHIR_OBS_NVAR(&_55$$25); - zephir_array_fetch_string(&_55$$25, &file, SL("name"), PH_NOISY, "phalcon/Http/Request.zep", 871); - zephir_array_update_string(&_54$$25, SL("name"), &_55$$25, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_55$$25); - zephir_array_fetch_string(&_55$$25, &file, SL("type"), PH_NOISY, "phalcon/Http/Request.zep", 872); - zephir_array_update_string(&_54$$25, SL("type"), &_55$$25, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_55$$25); - zephir_array_fetch_string(&_55$$25, &file, SL("tmp_name"), PH_NOISY, "phalcon/Http/Request.zep", 873); - zephir_array_update_string(&_54$$25, SL("tmp_name"), &_55$$25, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_55$$25); - zephir_array_fetch_string(&_55$$25, &file, SL("size"), PH_NOISY, "phalcon/Http/Request.zep", 874); - zephir_array_update_string(&_54$$25, SL("size"), &_55$$25, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_55$$25); - zephir_array_fetch_string(&_55$$25, &file, SL("error"), PH_NOISY, "phalcon/Http/Request.zep", 876); - zephir_array_update_string(&_54$$25, SL("error"), &_55$$25, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&dataFile, &_54$$25); - if (namedKeys == 1) { - ZEPHIR_INIT_NVAR(&_56$$26); - object_init_ex(&_56$$26, phalcon_http_request_file_ce); - zephir_array_fetch_string(&_57$$26, &file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 882); - ZEPHIR_CALL_METHOD(NULL, &_56$$26, "__construct", &_18, 350, &dataFile, &_57$$26); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&_58$$26); - zephir_array_fetch_string(&_58$$26, &file, SL("key"), PH_NOISY, "phalcon/Http/Request.zep", 879); - zephir_array_update_zval(&files, &_58$$26, &_56$$26, PH_COPY | PH_SEPARATE); - } else { - ZEPHIR_INIT_NVAR(&_59$$27); - object_init_ex(&_59$$27, phalcon_http_request_file_ce); - zephir_array_fetch_string(&_60$$27, &file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 887); - ZEPHIR_CALL_METHOD(NULL, &_59$$27, "__construct", &_18, 350, &dataFile, &_60$$27); - zephir_check_call_status(); - zephir_array_append(&files, &_59$$27, PH_SEPARATE, "phalcon/Http/Request.zep", 887); - } - } - ZEPHIR_CALL_METHOD(NULL, &smoothInput, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&file); - } else { - _61$$28 = onlySuccessful == 0; - if (!(_61$$28)) { - zephir_array_fetch_string(&_62$$28, &input, SL("error"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 892); - _61$$28 = ZEPHIR_IS_LONG(&_62$$28, 0); - } - if (_61$$28) { - if (namedKeys == 1) { - ZEPHIR_INIT_NVAR(&_63$$30); - object_init_ex(&_63$$30, phalcon_http_request_file_ce); - ZEPHIR_CALL_METHOD(NULL, &_63$$30, "__construct", &_18, 350, &input, &prefix); - zephir_check_call_status(); - zephir_array_update_zval(&files, &prefix, &_63$$30, PH_COPY | PH_SEPARATE); - } else { - ZEPHIR_INIT_NVAR(&_64$$31); - object_init_ex(&_64$$31, phalcon_http_request_file_ce); - ZEPHIR_CALL_METHOD(NULL, &_64$$31, "__construct", &_18, 350, &input, &prefix); - zephir_check_call_status(); - zephir_array_append(&files, &_64$$31, PH_SEPARATE, "phalcon/Http/Request.zep", 896); - } - } - } - ZEPHIR_CALL_METHOD(NULL, &superFiles, "next", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, model, "writeattribute", &_4, 0, &singleField, ×tamp); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &field, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&input); - ZEPHIR_INIT_NVAR(&prefix); + ZEPHIR_INIT_NVAR(&singleField); + } else { + ZEPHIR_CALL_METHOD(NULL, model, "writeattribute", NULL, 0, &field, ×tamp); + zephir_check_call_status(); } - RETURN_CTOR(&files); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Request, getURI) +static PHP_METHOD(Phalcon_Mvc_Model_Behavior_Timestampable, getTimestamp) { + zend_bool _0$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *onlyPath_param = NULL, requestURI, _0, _1$$4, _2$$4, _3$$4; - zend_bool onlyPath; + zval *options_param = NULL, format, generator; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&requestURI); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&format); + ZVAL_UNDEF(&generator); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(onlyPath) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &onlyPath_param); - if (!onlyPath_param) { - onlyPath = 0; - } else { - onlyPath = zephir_get_boolval(onlyPath_param); - } + zephir_fetch_params(1, 1, 0, &options_param); + zephir_get_arrval(&options, options_param); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "REQUEST_URI"); - ZEPHIR_CALL_METHOD(&requestURI, this_ptr, "getserver", NULL, 0, &_0); - zephir_check_call_status(); - if (Z_TYPE_P(&requestURI) == IS_NULL) { - RETURN_MM_STRING(""); + ZEPHIR_OBS_VAR(&format); + if (zephir_array_isset_string_fetch(&format, &options, SL("format"), 0)) { + ZEPHIR_RETURN_CALL_FUNCTION("date", NULL, 447, &format); + zephir_check_call_status(); + RETURN_MM(); } - if (onlyPath) { - ZEPHIR_INIT_VAR(&_1$$4); - ZEPHIR_INIT_VAR(&_2$$4); - ZVAL_STRING(&_2$$4, "?"); - zephir_fast_explode(&_1$$4, &_2$$4, &requestURI, LONG_MAX); - zephir_array_fetch_long(&_3$$4, &_1$$4, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 930); - ZEPHIR_CPY_WRT(&requestURI, &_3$$4); + ZEPHIR_OBS_VAR(&generator); + if (zephir_array_isset_string_fetch(&generator, &options, SL("generator"), 0)) { + _0$$4 = Z_TYPE_P(&generator) == IS_OBJECT; + if (_0$$4) { + _0$$4 = zephir_is_instance_of(&generator, SL("Closure")); + } + if (_0$$4) { + ZEPHIR_CALL_USER_FUNC(return_value, &generator); + zephir_check_call_status(); + RETURN_MM(); + } } - RETURN_CCTOR(&requestURI); + zephir_time(return_value); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Http_Request, getUserAgent) -{ - zval userAgent, _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&userAgent); - ZVAL_UNDEF(&_0); - ZEPHIR_MM_GROW(); +#ifdef HAVE_CONFIG_H +#endif - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "HTTP_USER_AGENT"); - ZEPHIR_CALL_METHOD(&userAgent, this_ptr, "getserver", NULL, 0, &_0); - zephir_check_call_status(); - if (Z_TYPE_P(&userAgent) == IS_NULL) { - RETURN_MM_STRING(""); - } - RETURN_CCTOR(&userAgent); -} -static PHP_METHOD(Phalcon_Http_Request, has) + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Transaction_Exception) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, _REQUEST; - zval name; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\Transaction, Exception, phalcon, mvc_model_transaction_exception, phalcon_mvc_model_exception_ce, NULL, 0); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_REQUEST); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif + return SUCCESS; +} - ZEPHIR_MM_GROW(); - zephir_get_global(&_REQUEST, SL("_REQUEST")); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - RETURN_MM_BOOL(zephir_array_isset(&_REQUEST, &name)); -} +#ifdef HAVE_CONFIG_H +#endif -static PHP_METHOD(Phalcon_Http_Request, hasFiles) -{ - zval _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZEPHIR_MM_GROW(); - ZVAL_BOOL(&_1, 1); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "numfiles", NULL, 0, &_1); - zephir_check_call_status(); - RETURN_MM_BOOL(ZEPHIR_GT_LONG(&_0, 0)); +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Transaction_Failed) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\Transaction, Failed, phalcon, mvc_model_transaction_failed, phalcon_mvc_model_transaction_exception_ce, phalcon_mvc_model_transaction_failed_method_entry, 0); + + zend_declare_property_null(phalcon_mvc_model_transaction_failed_ce, SL("record"), ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Http_Request, hasHeader) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Failed, __construct) { - zend_bool _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *header_param = NULL, name, _0, _1, _2, _3, _5, _6; - zval header; + zval *message_param = NULL, *record = NULL, record_sub, __$null; + zval message; zval *this_ptr = getThis(); - ZVAL_UNDEF(&header); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&message); + ZVAL_UNDEF(&record_sub); + ZVAL_NULL(&__$null); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(header) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(message) + Z_PARAM_OPTIONAL + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(record, phalcon_mvc_modelinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &header_param); - if (UNEXPECTED(Z_TYPE_P(header_param) != IS_STRING && Z_TYPE_P(header_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'header' must be of the type string")); + zephir_fetch_params(1, 1, 1, &message_param, &record); + if (UNEXPECTED(Z_TYPE_P(message_param) != IS_STRING && Z_TYPE_P(message_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'message' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(header_param) == IS_STRING)) { - zephir_get_strval(&header, header_param); + if (EXPECTED(Z_TYPE_P(message_param) == IS_STRING)) { + zephir_get_strval(&message, message_param); } else { - ZEPHIR_INIT_VAR(&header); + ZEPHIR_INIT_VAR(&message); + } + if (!record) { + record = &record_sub; + record = &__$null; } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "-"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "_"); - ZEPHIR_CALL_FUNCTION(&_2, "strtr", NULL, 5, &header, &_0, &_1); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&name); - zephir_fast_strtoupper(&name, &_2); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "hasserver", NULL, 342, &name); + zephir_update_property_zval(this_ptr, ZEND_STRL("record"), record); + ZEPHIR_CALL_PARENT(NULL, phalcon_mvc_model_transaction_failed_ce, getThis(), "__construct", NULL, 0, &message); zephir_check_call_status(); - _4 = zephir_is_true(&_3); - if (!(_4)) { - ZEPHIR_INIT_VAR(&_6); - ZEPHIR_CONCAT_SV(&_6, "HTTP_", &name); - ZEPHIR_CALL_METHOD(&_5, this_ptr, "hasserver", NULL, 342, &_6); - zephir_check_call_status(); - _4 = zephir_is_true(&_5); - } - RETURN_MM_BOOL(_4); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Request, hasPost) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Failed, getRecord) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, _POST; - zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_POST); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_get_global(&_POST, SL("_POST")); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - RETURN_MM_BOOL(zephir_array_isset(&_POST, &name)); + RETURN_MEMBER(getThis(), "record"); } -static PHP_METHOD(Phalcon_Http_Request, hasPut) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Failed, getRecordMessages) { + zval record, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, put; - zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&put); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&record); + ZVAL_UNDEF(&_0); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - - ZEPHIR_CALL_METHOD(&put, this_ptr, "getput", NULL, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("record"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&record, &_0); + if (Z_TYPE_P(&record) != IS_NULL) { + ZEPHIR_RETURN_CALL_METHOD(&record, "getmessages", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getmessage", NULL, 0); zephir_check_call_status(); - RETURN_MM_BOOL(zephir_array_isset(&put, &name)); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Http_Request, hasQuery) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, _GET; - zval name; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_GET); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_get_global(&_GET, SL("_GET")); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - RETURN_MM_BOOL(zephir_array_isset(&_GET, &name)); + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Transaction_Manager) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model\\Transaction, Manager, phalcon, mvc_model_transaction_manager, phalcon_mvc_model_transaction_manager_method_entry, 0); + + zend_declare_property_null(phalcon_mvc_model_transaction_manager_ce, SL("container"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_model_transaction_manager_ce, SL("initialized"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_mvc_model_transaction_manager_ce, SL("number"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_model_transaction_manager_ce, SL("rollbackPendent"), 1, ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_mvc_model_transaction_manager_ce, SL("service"), "db", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_transaction_manager_ce, SL("transactions"), ZEND_ACC_PROTECTED); + phalcon_mvc_model_transaction_manager_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_Transaction_Manager; + + zend_class_implements(phalcon_mvc_model_transaction_manager_ce, 1, phalcon_mvc_model_transaction_managerinterface_ce); + zend_class_implements(phalcon_mvc_model_transaction_manager_ce, 1, phalcon_di_injectionawareinterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Http_Request, hasServer) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, server; - zval name; + zephir_fcall_cache_entry *_0 = NULL, *_3 = NULL; + zval *container = NULL, container_sub, __$null, _1$$4, _2$$4, _4$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&server); + ZVAL_UNDEF(&container_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_4$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(container, phalcon_di_diinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); + zephir_fetch_params(1, 0, 1, &container); + if (!container) { + container = &container_sub; + ZEPHIR_CPY_WRT(container, &__$null); } else { - ZEPHIR_INIT_VAR(&name); + ZEPHIR_SEPARATE_PARAM(container); } - ZEPHIR_CALL_METHOD(&server, this_ptr, "getserverarray", NULL, 344); - zephir_check_call_status(); - RETURN_MM_BOOL(zephir_array_isset(&server, &name)); + if (!(zephir_is_true(container))) { + ZEPHIR_CALL_CE_STATIC(container, phalcon_di_ce, "getdefault", &_0, 0); + zephir_check_call_status(); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); + if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_1$$4); + object_init_ex(&_1$$4, phalcon_mvc_model_transaction_exception_ce); + ZEPHIR_INIT_VAR(&_4$$4); + ZVAL_STRING(&_4$$4, "the services related to the ORM"); + ZEPHIR_CALL_CE_STATIC(&_2$$4, phalcon_mvc_model_transaction_exception_ce, "containerservicenotfound", &_3, 0, &_4$$4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_1$$4, "__construct", NULL, 8, &_2$$4); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$4, "phalcon/Mvc/Model/Transaction/Manager.zep", 116); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Request, isAjax) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, collectTransactions) { - zend_bool _2; - zval _0, _1, _3; + zval transactions, _0, _1, *_2, _3, _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&transactions); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); ZEPHIR_MM_GROW(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("transactions"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&transactions, &_0); ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "HTTP_X_REQUESTED_WITH"); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "hasserver", NULL, 342, &_1); - zephir_check_call_status(); - _2 = zephir_is_true(&_0); - if (_2) { - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "HTTP_X_REQUESTED_WITH"); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "getserver", NULL, 0, &_1); + zephir_is_iterable(&transactions, 0, "phalcon/Mvc/Model/Transaction/Manager.zep", 133); + if (Z_TYPE_P(&transactions) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&transactions), _2) + { + ZEPHIR_INIT_NVAR(&_1); + ZVAL_COPY(&_1, _2); + RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("number"))); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &transactions, "rewind", NULL, 0); zephir_check_call_status(); - _2 = ZEPHIR_IS_STRING_IDENTICAL(&_3, "XMLHttpRequest"); + while (1) { + ZEPHIR_CALL_METHOD(&_3, &transactions, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3)) { + break; + } + ZEPHIR_CALL_METHOD(&_1, &transactions, "current", NULL, 0); + zephir_check_call_status(); + RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("number"))); + ZEPHIR_CALL_METHOD(NULL, &transactions, "next", NULL, 0); + zephir_check_call_status(); + } } - RETURN_MM_BOOL(_2); + ZEPHIR_INIT_NVAR(&_1); + ZEPHIR_INIT_VAR(&_4); + array_init(&_4); + zephir_update_property_zval(this_ptr, ZEND_STRL("transactions"), &_4); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Request, isConnect) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, commit) { - zval _0; + zval transactions, transaction, connection, _0, *_1, _2, _3$$3, _4$$5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&transactions); + ZVAL_UNDEF(&transaction); + ZVAL_UNDEF(&connection); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$5); ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmethod", NULL, 351); - zephir_check_call_status(); - RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "CONNECT")); + zephir_read_property(&_0, this_ptr, ZEND_STRL("transactions"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&transactions, &_0); + zephir_is_iterable(&transactions, 0, "phalcon/Mvc/Model/Transaction/Manager.zep", 152); + if (Z_TYPE_P(&transactions) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&transactions), _1) + { + ZEPHIR_INIT_NVAR(&transaction); + ZVAL_COPY(&transaction, _1); + ZEPHIR_CALL_METHOD(&connection, &transaction, "getconnection", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_3$$3, &connection, "isundertransaction", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_3$$3)) { + ZEPHIR_CALL_METHOD(NULL, &connection, "commit", NULL, 0); + zephir_check_call_status(); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &transactions, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &transactions, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&transaction, &transactions, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&connection, &transaction, "getconnection", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_4$$5, &connection, "isundertransaction", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_4$$5)) { + ZEPHIR_CALL_METHOD(NULL, &connection, "commit", NULL, 0); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, &transactions, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&transaction); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Request, isDelete) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, get) { - zval _0; + zval _2$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *autoBegin_param = NULL, __$true, __$false, _0, _4, _1$$3, _3$$4; + zend_bool autoBegin; zval *this_ptr = getThis(); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_2$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(autoBegin) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &autoBegin_param); + if (!autoBegin_param) { + autoBegin = 1; + } else { + autoBegin = zephir_get_boolval(autoBegin_param); + } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmethod", NULL, 351); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("initialized"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_0))) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("rollbackPendent"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_1$$3)) { + ZEPHIR_INIT_VAR(&_2$$4); + zephir_create_array(&_2$$4, 2, 0); + zephir_array_fast_append(&_2$$4, this_ptr); + ZEPHIR_INIT_VAR(&_3$$4); + ZVAL_STRING(&_3$$4, "rollbackPendent"); + zephir_array_fast_append(&_2$$4, &_3$$4); + ZEPHIR_CALL_FUNCTION(NULL, "register_shutdown_function", NULL, 492, &_2$$4); + zephir_check_call_status(); + } + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("initialized"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("initialized"), &__$false); + } + } + if (autoBegin) { + ZVAL_BOOL(&_4, 1); + } else { + ZVAL_BOOL(&_4, 0); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getorcreatetransaction", NULL, 0, &_4); zephir_check_call_status(); - RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "DELETE")); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Http_Request, isGet) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, getDbService) { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - - ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmethod", NULL, 351); - zephir_check_call_status(); - RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "GET")); + RETURN_MEMBER(getThis(), "service"); } -static PHP_METHOD(Phalcon_Http_Request, isHead) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, getDI) { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - - ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmethod", NULL, 351); - zephir_check_call_status(); - RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "HEAD")); + RETURN_MEMBER(getThis(), "container"); } -static PHP_METHOD(Phalcon_Http_Request, isMethod) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, getOrCreateTransaction) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_8 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool strict, _0$$3; - zval *methods, methods_sub, *strict_param = NULL, httpMethod, method, _1$$3, _2$$4, _3$$4, *_4$$5, _5$$5, _6$$6, _7$$6, _9$$8, _10$$8; + zephir_fcall_cache_entry *_3 = NULL; + zval *autoBegin_param = NULL, container, transaction, transactions, _0, _10, _11, _1$$3, _2$$3, _4$$3, _5$$4, *_6$$4, _7$$4, _8$$6, _9$$8; + zend_bool autoBegin; zval *this_ptr = getThis(); - ZVAL_UNDEF(&methods_sub); - ZVAL_UNDEF(&httpMethod); - ZVAL_UNDEF(&method); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&transaction); + ZVAL_UNDEF(&transactions); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_6$$6); - ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_8$$6); ZVAL_UNDEF(&_9$$8); - ZVAL_UNDEF(&_10$$8); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(methods) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_BOOL(strict) + Z_PARAM_BOOL(autoBegin) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &methods, &strict_param); - if (!strict_param) { - strict = 0; + zephir_fetch_params(1, 0, 1, &autoBegin_param); + if (!autoBegin_param) { + autoBegin = 1; } else { - strict = zephir_get_boolval(strict_param); + autoBegin = zephir_get_boolval(autoBegin_param); } - ZEPHIR_CALL_METHOD(&httpMethod, this_ptr, "getmethod", NULL, 351); - zephir_check_call_status(); - if (Z_TYPE_P(methods) == IS_STRING) { - _0$$3 = strict; - if (_0$$3) { - ZEPHIR_CALL_METHOD(&_1$$3, this_ptr, "isvalidhttpmethod", NULL, 0, methods); - zephir_check_call_status(); - _0$$3 = !zephir_is_true(&_1$$3); - } - if (UNEXPECTED(_0$$3)) { - ZEPHIR_INIT_VAR(&_2$$4); - object_init_ex(&_2$$4, phalcon_http_request_exception_ce); - ZEPHIR_INIT_VAR(&_3$$4); - ZEPHIR_CONCAT_SV(&_3$$4, "Invalid HTTP method: ", methods); - ZEPHIR_CALL_METHOD(NULL, &_2$$4, "__construct", NULL, 8, &_3$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_2$$4, "phalcon/Http/Request.zep", 1076); - ZEPHIR_MM_RESTORE(); - return; - } - RETURN_MM_BOOL(ZEPHIR_IS_EQUAL(methods, &httpMethod)); + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_mvc_model_transaction_exception_ce); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "the services related to the ORM"); + ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_mvc_model_transaction_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model/Transaction/Manager.zep", 214); + ZEPHIR_MM_RESTORE(); + return; } - if (Z_TYPE_P(methods) == IS_ARRAY) { - zephir_is_iterable(methods, 0, "phalcon/Http/Request.zep", 1089); - if (Z_TYPE_P(methods) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(methods), _4$$5) - { - ZEPHIR_INIT_NVAR(&method); - ZVAL_COPY(&method, _4$$5); - if (strict) { - ZVAL_BOOL(&_7$$6, 1); - } else { - ZVAL_BOOL(&_7$$6, 0); - } - ZEPHIR_CALL_METHOD(&_6$$6, this_ptr, "ismethod", &_8, 352, &method, &_7$$6); - zephir_check_call_status(); - if (zephir_is_true(&_6$$6)) { - RETURN_MM_BOOL(1); + zephir_read_property(&_0, this_ptr, ZEND_STRL("number"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_0)) { + zephir_read_property(&_5$$4, this_ptr, ZEND_STRL("transactions"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&transactions, &_5$$4); + zephir_is_iterable(&transactions, 0, "phalcon/Mvc/Model/Transaction/Manager.zep", 227); + if (Z_TYPE_P(&transactions) == IS_ARRAY) { + ZEND_HASH_REVERSE_FOREACH_VAL(Z_ARRVAL_P(&transactions), _6$$4) + { + ZEPHIR_INIT_NVAR(&transaction); + ZVAL_COPY(&transaction, _6$$4); + if (Z_TYPE_P(&transaction) == IS_OBJECT) { + ZVAL_BOOL(&_8$$6, 0); + ZEPHIR_CALL_METHOD(NULL, &transaction, "setisnewtransaction", NULL, 0, &_8$$6); + zephir_check_call_status(); + RETURN_CCTOR(&transaction); } } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, methods, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &transactions, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_5$$5, methods, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_7$$4, &transactions, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_5$$5)) { + if (!zend_is_true(&_7$$4)) { break; } - ZEPHIR_CALL_METHOD(&method, methods, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&transaction, &transactions, "current", NULL, 0); zephir_check_call_status(); - if (strict) { - ZVAL_BOOL(&_10$$8, 1); - } else { - ZVAL_BOOL(&_10$$8, 0); - } - ZEPHIR_CALL_METHOD(&_9$$8, this_ptr, "ismethod", &_8, 352, &method, &_10$$8); - zephir_check_call_status(); - if (zephir_is_true(&_9$$8)) { - RETURN_MM_BOOL(1); + if (Z_TYPE_P(&transaction) == IS_OBJECT) { + ZVAL_BOOL(&_9$$8, 0); + ZEPHIR_CALL_METHOD(NULL, &transaction, "setisnewtransaction", NULL, 0, &_9$$8); + zephir_check_call_status(); + RETURN_CCTOR(&transaction); } - ZEPHIR_CALL_METHOD(NULL, methods, "next", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &transactions, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&method); - RETURN_MM_BOOL(0); + ZEPHIR_INIT_NVAR(&transaction); } - if (UNEXPECTED(strict)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_request_exception_ce, "Invalid HTTP method: non-string", "phalcon/Http/Request.zep", 1093); - return; + ZEPHIR_INIT_NVAR(&transaction); + object_init_ex(&transaction, phalcon_mvc_model_transaction_ce); + zephir_read_property(&_10, this_ptr, ZEND_STRL("service"), PH_NOISY_CC | PH_READONLY); + if (autoBegin) { + ZVAL_BOOL(&_11, 1); + } else { + ZVAL_BOOL(&_11, 0); } - RETURN_MM_BOOL(0); + ZEPHIR_CALL_METHOD(NULL, &transaction, "__construct", NULL, 493, &container, &_11, &_10); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &transaction, "settransactionmanager", NULL, 494, this_ptr); + zephir_check_call_status(); + zephir_update_property_array_append(this_ptr, SL("transactions"), &transaction); + RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("number"))); + RETURN_CCTOR(&transaction); } -static PHP_METHOD(Phalcon_Http_Request, isOptions) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, getRollbackPendent) { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - - ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmethod", NULL, 351); - zephir_check_call_status(); - RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "OPTIONS")); + RETURN_MEMBER(getThis(), "rollbackPendent"); } -static PHP_METHOD(Phalcon_Http_Request, isPatch) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, has) { zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); - ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmethod", NULL, 351); - zephir_check_call_status(); - RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "PATCH")); + zephir_read_property(&_0, this_ptr, ZEND_STRL("number"), PH_NOISY_CC | PH_READONLY); + RETURN_BOOL(ZEPHIR_GT_LONG(&_0, 0)); } -static PHP_METHOD(Phalcon_Http_Request, isPost) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, notifyCommit) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *transaction, transaction_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&transaction_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(transaction, phalcon_mvc_model_transactioninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &transaction); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmethod", NULL, 351); + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "collecttransaction", NULL, 0, transaction); zephir_check_call_status(); - RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "POST")); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Request, isPut) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, notifyRollback) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *transaction, transaction_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&transaction_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(transaction, phalcon_mvc_model_transactioninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &transaction); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmethod", NULL, 351); + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "collecttransaction", NULL, 0, transaction); zephir_check_call_status(); - RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "PUT")); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Request, isPurge) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, rollback) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_4 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *collect_param = NULL, transactions, transaction, connection, _0, *_1, _2, _3$$3, _5$$6; + zend_bool collect; zval *this_ptr = getThis(); + ZVAL_UNDEF(&transactions); + ZVAL_UNDEF(&transaction); + ZVAL_UNDEF(&connection); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_5$$6); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(collect) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &collect_param); + if (!collect_param) { + collect = 1; + } else { + collect = zephir_get_boolval(collect_param); + } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmethod", NULL, 351); - zephir_check_call_status(); - RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "PURGE")); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("transactions"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&transactions, &_0); + zephir_is_iterable(&transactions, 0, "phalcon/Mvc/Model/Transaction/Manager.zep", 298); + if (Z_TYPE_P(&transactions) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&transactions), _1) + { + ZEPHIR_INIT_NVAR(&transaction); + ZVAL_COPY(&transaction, _1); + ZEPHIR_CALL_METHOD(&connection, &transaction, "getconnection", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_3$$3, &connection, "isundertransaction", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_3$$3)) { + ZEPHIR_CALL_METHOD(NULL, &connection, "rollback", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &connection, "close", NULL, 0); + zephir_check_call_status(); + } + if (collect) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "collecttransaction", &_4, 0, &transaction); + zephir_check_call_status(); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &transactions, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &transactions, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&transaction, &transactions, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&connection, &transaction, "getconnection", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_5$$6, &connection, "isundertransaction", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_5$$6)) { + ZEPHIR_CALL_METHOD(NULL, &connection, "rollback", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &connection, "close", NULL, 0); + zephir_check_call_status(); + } + if (collect) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "collecttransaction", &_4, 0, &transaction); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, &transactions, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&transaction); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Request, isSecure) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, rollbackPendent) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getscheme", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "rollback", NULL, 0); zephir_check_call_status(); - RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "https")); -} - -static PHP_METHOD(Phalcon_Http_Request, isStrictHostCheck) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "strictHostCheck"); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Request, isSoap) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, setDbService) { - zval contentType, _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval *service_param = NULL; + zval service; zval *this_ptr = getThis(); - ZVAL_UNDEF(&contentType); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&service); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(service) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "HTTP_SOAPACTION"); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "hasserver", NULL, 342, &_1); - zephir_check_call_status(); - if (zephir_is_true(&_0)) { - RETURN_MM_BOOL(1); + zephir_fetch_params(1, 1, 0, &service_param); + if (UNEXPECTED(Z_TYPE_P(service_param) != IS_STRING && Z_TYPE_P(service_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'service' must be of the type string")); + RETURN_MM_NULL(); } - ZEPHIR_CALL_METHOD(&contentType, this_ptr, "getcontenttype", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_EMPTY(&contentType)) { - RETURN_MM_BOOL(0); + if (EXPECTED(Z_TYPE_P(service_param) == IS_STRING)) { + zephir_get_strval(&service, service_param); + } else { + ZEPHIR_INIT_VAR(&service); } - RETURN_MM_BOOL(zephir_memnstr_str(&contentType, SL("application/soap+xml"), "phalcon/Http/Request.zep", 1178)); -} - -static PHP_METHOD(Phalcon_Http_Request, isTrace) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmethod", NULL, 351); - zephir_check_call_status(); - RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "TRACE")); + zephir_update_property_zval(this_ptr, ZEND_STRL("service"), &service); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Http_Request, isValidHttpMethod) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, setDI) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *method_param = NULL, _0; - zval method; + zval *container, container_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&container_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(method) + Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &method_param); - zephir_get_strval(&method, method_param); - + zephir_fetch_params_without_memory_grow(1, 0, &container); - ZEPHIR_INIT_VAR(&_0); - zephir_fast_strtoupper(&_0, &method); - do { - if (ZEPHIR_IS_STRING(&_0, "CONNECT") || ZEPHIR_IS_STRING(&_0, "DELETE") || ZEPHIR_IS_STRING(&_0, "GET") || ZEPHIR_IS_STRING(&_0, "HEAD") || ZEPHIR_IS_STRING(&_0, "OPTIONS") || ZEPHIR_IS_STRING(&_0, "PATCH") || ZEPHIR_IS_STRING(&_0, "POST") || ZEPHIR_IS_STRING(&_0, "PURGE") || ZEPHIR_IS_STRING(&_0, "PUT") || ZEPHIR_IS_STRING(&_0, "TRACE")) { - RETURN_MM_BOOL(1); - } - } while(0); - RETURN_MM_BOOL(0); + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); } -static PHP_METHOD(Phalcon_Http_Request, numFiles) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, setRollbackPendent) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, numberFiles; - zval *onlySuccessful_param = NULL, _FILES, files, file, error, *_0, _1, _3$$8, _4$$8, _7$$13, _8$$13; - zend_bool onlySuccessful, _2$$6, _6$$11; + zval *rollbackPendent_param = NULL, __$true, __$false; + zend_bool rollbackPendent; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_FILES); - ZVAL_UNDEF(&files); - ZVAL_UNDEF(&file); - ZVAL_UNDEF(&error); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3$$8); - ZVAL_UNDEF(&_4$$8); - ZVAL_UNDEF(&_7$$13); - ZVAL_UNDEF(&_8$$13); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(onlySuccessful) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(rollbackPendent) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_get_global(&_FILES, SL("_FILES")); - zephir_fetch_params(1, 0, 1, &onlySuccessful_param); - if (!onlySuccessful_param) { - onlySuccessful = 0; - } else { - onlySuccessful = zephir_get_boolval(onlySuccessful_param); - } + zephir_fetch_params_without_memory_grow(1, 0, &rollbackPendent_param); + rollbackPendent = zephir_get_boolval(rollbackPendent_param); - numberFiles = 0; - ZEPHIR_CPY_WRT(&files, &_FILES); - if (Z_TYPE_P(&files) != IS_ARRAY) { - RETURN_MM_LONG(0); - } - zephir_is_iterable(&files, 0, "phalcon/Http/Request.zep", 1243); - if (Z_TYPE_P(&files) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&files), _0) - { - ZEPHIR_INIT_NVAR(&file); - ZVAL_COPY(&file, _0); - ZEPHIR_OBS_NVAR(&error); - if (zephir_array_isset_string_fetch(&error, &file, SL("error"), 0)) { - if (Z_TYPE_P(&error) != IS_ARRAY) { - _2$$6 = !zephir_is_true(&error); - if (!(_2$$6)) { - _2$$6 = !onlySuccessful; - } - if (_2$$6) { - numberFiles++; - } - } - if (Z_TYPE_P(&error) == IS_ARRAY) { - if (onlySuccessful) { - ZVAL_BOOL(&_4$$8, 1); - } else { - ZVAL_BOOL(&_4$$8, 0); - } - ZEPHIR_CALL_METHOD(&_3$$8, this_ptr, "hasfilehelper", &_5, 353, &error, &_4$$8); - zephir_check_call_status(); - numberFiles += zephir_get_numberval(&_3$$8); - } - } - } ZEND_HASH_FOREACH_END(); + if (rollbackPendent) { + zephir_update_property_zval(this_ptr, ZEND_STRL("rollbackPendent"), &__$true); } else { - ZEPHIR_CALL_METHOD(NULL, &files, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &files, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&file, &files, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&error); - if (zephir_array_isset_string_fetch(&error, &file, SL("error"), 0)) { - if (Z_TYPE_P(&error) != IS_ARRAY) { - _6$$11 = !zephir_is_true(&error); - if (!(_6$$11)) { - _6$$11 = !onlySuccessful; - } - if (_6$$11) { - numberFiles++; - } - } - if (Z_TYPE_P(&error) == IS_ARRAY) { - if (onlySuccessful) { - ZVAL_BOOL(&_8$$13, 1); - } else { - ZVAL_BOOL(&_8$$13, 0); - } - ZEPHIR_CALL_METHOD(&_7$$13, this_ptr, "hasfilehelper", &_5, 353, &error, &_8$$13); - zephir_check_call_status(); - numberFiles += zephir_get_numberval(&_7$$13); - } - } - ZEPHIR_CALL_METHOD(NULL, &files, "next", NULL, 0); - zephir_check_call_status(); - } + zephir_update_property_zval(this_ptr, ZEND_STRL("rollbackPendent"), &__$false); } - ZEPHIR_INIT_NVAR(&file); - RETURN_MM_LONG(numberFiles); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Http_Request, setParameterFilters) +static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, collectTransaction) { + zval newTransactions; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL, *_9 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval filters, scope; - zval *name_param = NULL, *filters_param = NULL, *scope_param = NULL, filterService, sanitizer, localScope, scopeMethod, *_2, _3, *_13, _14, _0$$3, _4$$4, _6$$5, _7$$5, _8$$6, _10$$7, _11$$7, _12$$8, _15$$10, _16$$11; - zval name, _1$$3; + zval *transaction, transaction_sub, managedTransaction, _0, *_1, _2; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&filterService); - ZVAL_UNDEF(&sanitizer); - ZVAL_UNDEF(&localScope); - ZVAL_UNDEF(&scopeMethod); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_8$$6); - ZVAL_UNDEF(&_10$$7); - ZVAL_UNDEF(&_11$$7); - ZVAL_UNDEF(&_12$$8); - ZVAL_UNDEF(&_15$$10); - ZVAL_UNDEF(&_16$$11); - ZVAL_UNDEF(&filters); - ZVAL_UNDEF(&scope); + ZVAL_UNDEF(&transaction_sub); + ZVAL_UNDEF(&managedTransaction); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&newTransactions); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(filters) - Z_PARAM_ARRAY(scope) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(transaction, phalcon_mvc_model_transactioninterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &name_param, &filters_param, &scope_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - if (!filters_param) { - ZEPHIR_INIT_VAR(&filters); - array_init(&filters); - } else { - zephir_get_arrval(&filters, filters_param); - } - if (!scope_param) { - ZEPHIR_INIT_VAR(&scope); - array_init(&scope); - } else { - zephir_get_arrval(&scope, scope_param); - } + zephir_fetch_params(1, 1, 0, &transaction); - if (UNEXPECTED(zephir_fast_count_int(&filters) < 1)) { - ZEPHIR_INIT_VAR(&_0$$3); - object_init_ex(&_0$$3, phalcon_http_request_exception_ce); - ZEPHIR_INIT_VAR(&_1$$3); - ZEPHIR_CONCAT_SVS(&_1$$3, "Filters have not been defined for '", &name, "'"); - ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 8, &_1$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_0$$3, "phalcon/Http/Request.zep", 1260); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CALL_METHOD(&filterService, this_ptr, "getfilterservice", NULL, 354); - zephir_check_call_status(); - zephir_is_iterable(&filters, 0, "phalcon/Http/Request.zep", 1273); - if (Z_TYPE_P(&filters) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&filters), _2) + ZEPHIR_INIT_VAR(&newTransactions); + array_init(&newTransactions); + zephir_read_property(&_0, this_ptr, ZEND_STRL("transactions"), PH_NOISY_CC | PH_READONLY); + zephir_is_iterable(&_0, 0, "phalcon/Mvc/Model/Transaction/Manager.zep", 363); + if (Z_TYPE_P(&_0) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _1) { - ZEPHIR_INIT_NVAR(&sanitizer); - ZVAL_COPY(&sanitizer, _2); - ZEPHIR_CALL_METHOD(&_4$$4, &filterService, "has", &_5, 0, &sanitizer); - zephir_check_call_status(); - if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&_4$$4))) { - ZEPHIR_INIT_NVAR(&_6$$5); - object_init_ex(&_6$$5, phalcon_http_request_exception_ce); - ZEPHIR_INIT_NVAR(&_7$$5); - ZEPHIR_CONCAT_SVS(&_7$$5, "Sanitizer '", &sanitizer, "' does not exist in the filter locator"); - ZEPHIR_CALL_METHOD(NULL, &_6$$5, "__construct", NULL, 8, &_7$$5); - zephir_check_call_status(); - zephir_throw_exception_debug(&_6$$5, "phalcon/Http/Request.zep", 1269); - ZEPHIR_MM_RESTORE(); - return; + ZEPHIR_INIT_NVAR(&managedTransaction); + ZVAL_COPY(&managedTransaction, _1); + if (!ZEPHIR_IS_EQUAL(&managedTransaction, transaction)) { + zephir_array_append(&newTransactions, transaction, PH_SEPARATE, "phalcon/Mvc/Model/Transaction/Manager.zep", 357); + } else { + RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("number"))); } } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &filters, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_3, &filters, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_2, &_0, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_3)) { + if (!zend_is_true(&_2)) { break; } - ZEPHIR_CALL_METHOD(&sanitizer, &filters, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&managedTransaction, &_0, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_8$$6, &filterService, "has", &_9, 0, &sanitizer); - zephir_check_call_status(); - if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&_8$$6))) { - ZEPHIR_INIT_NVAR(&_10$$7); - object_init_ex(&_10$$7, phalcon_http_request_exception_ce); - ZEPHIR_INIT_NVAR(&_11$$7); - ZEPHIR_CONCAT_SVS(&_11$$7, "Sanitizer '", &sanitizer, "' does not exist in the filter locator"); - ZEPHIR_CALL_METHOD(NULL, &_10$$7, "__construct", NULL, 8, &_11$$7); - zephir_check_call_status(); - zephir_throw_exception_debug(&_10$$7, "phalcon/Http/Request.zep", 1269); - ZEPHIR_MM_RESTORE(); - return; + if (!ZEPHIR_IS_EQUAL(&managedTransaction, transaction)) { + zephir_array_append(&newTransactions, transaction, PH_SEPARATE, "phalcon/Mvc/Model/Transaction/Manager.zep", 357); + } else { + RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("number"))); } - ZEPHIR_CALL_METHOD(NULL, &filters, "next", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&sanitizer); - if (zephir_fast_count_int(&scope) < 1) { - ZEPHIR_INIT_VAR(&localScope); - zephir_create_array(&localScope, 3, 0); - ZEPHIR_INIT_VAR(&_12$$8); - ZVAL_STRING(&_12$$8, "GET"); - zephir_array_fast_append(&localScope, &_12$$8); - ZEPHIR_INIT_NVAR(&_12$$8); - ZVAL_STRING(&_12$$8, "POST"); - zephir_array_fast_append(&localScope, &_12$$8); - ZEPHIR_INIT_NVAR(&_12$$8); - ZVAL_STRING(&_12$$8, "PUT"); - zephir_array_fast_append(&localScope, &_12$$8); - } else { - ZEPHIR_CPY_WRT(&localScope, &scope); - } - zephir_is_iterable(&localScope, 0, "phalcon/Http/Request.zep", 1287); - if (Z_TYPE_P(&localScope) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&localScope), _13) - { - ZEPHIR_INIT_NVAR(&scopeMethod); - ZVAL_COPY(&scopeMethod, _13); - ZEPHIR_INIT_NVAR(&_15$$10); - zephir_fast_strtoupper(&_15$$10, &scopeMethod); - zephir_update_property_array_multi(this_ptr, SL("queryFilters"), &filters, SL("zz"), 2, &_15$$10, &name); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &localScope, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_14, &localScope, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_14)) { - break; - } - ZEPHIR_CALL_METHOD(&scopeMethod, &localScope, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_16$$11); - zephir_fast_strtoupper(&_16$$11, &scopeMethod); - zephir_update_property_array_multi(this_ptr, SL("queryFilters"), &filters, SL("zz"), 2, &_16$$11, &name); - ZEPHIR_CALL_METHOD(NULL, &localScope, "next", NULL, 0); - zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&managedTransaction); + zephir_update_property_zval(this_ptr, ZEND_STRL("transactions"), &newTransactions); + ZEPHIR_MM_RESTORE(); +} + +zend_object *zephir_init_properties_Phalcon_Mvc_Model_Transaction_Manager(zend_class_entry *class_type) +{ + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("transactions"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("transactions"), &_1$$3); } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); } - ZEPHIR_INIT_NVAR(&scopeMethod); - RETURN_THIS(); } -static PHP_METHOD(Phalcon_Http_Request, setStrictHostCheck) -{ - zval *flag_param = NULL, __$true, __$false; - zend_bool flag; - zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(flag) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - zephir_fetch_params_without_memory_grow(0, 1, &flag_param); - if (!flag_param) { - flag = 1; - } else { - flag = zephir_get_boolval(flag_param); - } - if (flag) { - zephir_update_property_zval(this_ptr, ZEND_STRL("strictHostCheck"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("strictHostCheck"), &__$false); - } - RETURN_THISW(); -} -static PHP_METHOD(Phalcon_Http_Request, getBestQuality) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Transaction_ManagerInterface) { - double quality = 0, acceptQuality = 0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, i = 0; - zval name; - zval *qualityParts_param = NULL, *name_param = NULL, selectedName, accept, *_0, _1, _2$$4, _3$$5, _4$$8, _5$$9; - zval qualityParts; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model\\Transaction, ManagerInterface, phalcon, mvc_model_transaction_managerinterface, phalcon_mvc_model_transaction_managerinterface_method_entry); - ZVAL_UNDEF(&qualityParts); - ZVAL_UNDEF(&selectedName); - ZVAL_UNDEF(&accept); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_4$$8); - ZVAL_UNDEF(&_5$$9); - ZVAL_UNDEF(&name); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ARRAY(qualityParts) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, collectTransactions); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, commit); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, get); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, getDbService); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, getRollbackPendent); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, has); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, notifyCommit); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, notifyRollback); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, rollback); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, rollbackPendent); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, setDbService); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, setRollbackPendent); + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &qualityParts_param, &name_param); - zephir_get_arrval(&qualityParts, qualityParts_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - i = 0; - quality = 0.0; - ZEPHIR_INIT_VAR(&selectedName); - ZVAL_STRING(&selectedName, ""); - zephir_is_iterable(&qualityParts, 0, "phalcon/Http/Request.zep", 1330); - if (Z_TYPE_P(&qualityParts) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&qualityParts), _0) - { - ZEPHIR_INIT_NVAR(&accept); - ZVAL_COPY(&accept, _0); - if (i == 0) { - ZEPHIR_OBS_NVAR(&_2$$4); - zephir_array_fetch_string(&_2$$4, &accept, SL("quality"), PH_NOISY, "phalcon/Http/Request.zep", 1316); - quality = zephir_get_doubleval(&_2$$4); - ZEPHIR_OBS_NVAR(&selectedName); - zephir_array_fetch(&selectedName, &accept, &name, PH_NOISY, "phalcon/Http/Request.zep", 1317); - } else { - ZEPHIR_OBS_NVAR(&_3$$5); - zephir_array_fetch_string(&_3$$5, &accept, SL("quality"), PH_NOISY, "phalcon/Http/Request.zep", 1319); - acceptQuality = zephir_get_doubleval(&_3$$5); - if (acceptQuality > quality) { - quality = acceptQuality; - ZEPHIR_OBS_NVAR(&selectedName); - zephir_array_fetch(&selectedName, &accept, &name, PH_NOISY, "phalcon/Http/Request.zep", 1323); - } - } - i++; - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &qualityParts, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &qualityParts, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&accept, &qualityParts, "current", NULL, 0); - zephir_check_call_status(); - if (i == 0) { - ZEPHIR_OBS_NVAR(&_4$$8); - zephir_array_fetch_string(&_4$$8, &accept, SL("quality"), PH_NOISY, "phalcon/Http/Request.zep", 1316); - quality = zephir_get_doubleval(&_4$$8); - ZEPHIR_OBS_NVAR(&selectedName); - zephir_array_fetch(&selectedName, &accept, &name, PH_NOISY, "phalcon/Http/Request.zep", 1317); - } else { - ZEPHIR_OBS_NVAR(&_5$$9); - zephir_array_fetch_string(&_5$$9, &accept, SL("quality"), PH_NOISY, "phalcon/Http/Request.zep", 1319); - acceptQuality = zephir_get_doubleval(&_5$$9); - if (acceptQuality > quality) { - quality = acceptQuality; - ZEPHIR_OBS_NVAR(&selectedName); - zephir_array_fetch(&selectedName, &accept, &name, PH_NOISY, "phalcon/Http/Request.zep", 1323); - } - } - i++; - ZEPHIR_CALL_METHOD(NULL, &qualityParts, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&accept); - RETURN_CCTOR(&selectedName); + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset_Complex) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\Resultset, Complex, phalcon, mvc_model_resultset_complex, phalcon_mvc_model_resultset_ce, phalcon_mvc_model_resultset_complex_method_entry, 0); + + zend_declare_property_null(phalcon_mvc_model_resultset_complex_ce, SL("columnTypes"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_model_resultset_complex_ce, SL("disableHydration"), 0, ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_mvc_model_resultset_complex_ce, 1, phalcon_mvc_model_resultsetinterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Http_Request, getHelper) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool notAllowEmpty, noRecursive, _0, _1; - zval name; - zval *source_param = NULL, *name_param = NULL, *filters = NULL, filters_sub, *defaultValue = NULL, defaultValue_sub, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, __$null, value, filterService, _2$$6, _3$$6; - zval source; + zephir_fcall_cache_entry *_0 = NULL; + zval *columnTypes, columnTypes_sub, *result = NULL, result_sub, *cache = NULL, cache_sub, __$null; zval *this_ptr = getThis(); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&filters_sub); - ZVAL_UNDEF(&defaultValue_sub); + ZVAL_UNDEF(&columnTypes_sub); + ZVAL_UNDEF(&result_sub); + ZVAL_UNDEF(&cache_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&filterService); - ZVAL_UNDEF(&_2$$6); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&name); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 6) - Z_PARAM_ARRAY(source) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ZVAL(columnTypes) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) - Z_PARAM_ZVAL_OR_NULL(filters) - Z_PARAM_ZVAL_OR_NULL(defaultValue) - Z_PARAM_BOOL(notAllowEmpty) - Z_PARAM_BOOL(noRecursive) + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(result, phalcon_db_resultinterface_ce) + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(cache, zephir_get_internal_ce(SL("psr\\simplecache\\cacheinterface"))) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 5, &source_param, &name_param, &filters, &defaultValue, ¬AllowEmpty_param, &noRecursive_param); - zephir_get_arrval(&source, source_param); - if (!name_param) { - ZEPHIR_INIT_VAR(&name); - } else { - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - } - if (!filters) { - filters = &filters_sub; - filters = &__$null; - } - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; - } - if (!notAllowEmpty_param) { - notAllowEmpty = 0; - } else { - notAllowEmpty = zephir_get_boolval(notAllowEmpty_param); + zephir_fetch_params(1, 1, 2, &columnTypes, &result, &cache); + if (!result) { + result = &result_sub; + result = &__$null; } - if (!noRecursive_param) { - noRecursive = 0; - } else { - noRecursive = zephir_get_boolval(noRecursive_param); + if (!cache) { + cache = &cache_sub; + cache = &__$null; } - if (ZEPHIR_IS_NULL(&name)) { - RETURN_CTOR(&source); - } - ZEPHIR_OBS_VAR(&value); - if (!(zephir_array_isset_fetch(&value, &source, &name, 0))) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - _0 = !(zephir_is_numeric(&value)); - if (_0) { - _0 = ZEPHIR_IS_EMPTY(&value); - } - _1 = _0; - if (_1) { - _1 = notAllowEmpty; - } - if (_1) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - if (Z_TYPE_P(filters) != IS_NULL) { - ZEPHIR_CALL_METHOD(&filterService, this_ptr, "getfilterservice", NULL, 354); - zephir_check_call_status(); - if (noRecursive) { - ZVAL_BOOL(&_3$$6, 1); - } else { - ZVAL_BOOL(&_3$$6, 0); - } - ZEPHIR_CALL_METHOD(&_2$$6, &filterService, "sanitize", NULL, 0, &value, filters, &_3$$6); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&value, &_2$$6); - } - RETURN_CCTOR(&value); + zephir_update_property_zval(this_ptr, ZEND_STRL("columnTypes"), columnTypes); + ZEPHIR_CALL_PARENT(NULL, phalcon_mvc_model_resultset_complex_ce, getThis(), "__construct", &_0, 0, result, cache); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Request, hasFileHelper) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, current) { + zend_class_entry *_14$$16, *_29$$36; + zend_string *_5; + zend_ulong _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, numberFiles; - zend_bool onlySuccessful, _2$$5, _6$$9; - zval *data, data_sub, *onlySuccessful_param = NULL, value, *_0, _1, _3$$7, _4$$7, _7$$11, _8$$11; + zephir_fcall_cache_entry *_15 = NULL, *_18 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS, dirtyState = 0; + zval __$true, __$false, row, hydrateMode, eager, alias, activeRow, type, column, columnValue, value, attribute, source, attributes, columnMap, rowModel, keepSnapshots, sqlAlias, modelName, _0, _1, *_2, _3, *_6$$11, _7$$11, _8$$12, _9$$13, _10$$16, _12$$16, _13$$16, _11$$17, _16$$19, _17$$19, _19$$25, _20$$25, *_21$$31, _22$$31, _23$$32, _24$$33, _25$$36, _27$$36, _28$$36, _26$$37, _30$$39, _31$$39, _32$$45, _33$$45; zval *this_ptr = getThis(); - ZVAL_UNDEF(&data_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&row); + ZVAL_UNDEF(&hydrateMode); + ZVAL_UNDEF(&eager); + ZVAL_UNDEF(&alias); + ZVAL_UNDEF(&activeRow); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&column); + ZVAL_UNDEF(&columnValue); ZVAL_UNDEF(&value); + ZVAL_UNDEF(&attribute); + ZVAL_UNDEF(&source); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&columnMap); + ZVAL_UNDEF(&rowModel); + ZVAL_UNDEF(&keepSnapshots); + ZVAL_UNDEF(&sqlAlias); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3$$7); - ZVAL_UNDEF(&_4$$7); + ZVAL_UNDEF(&_3); ZVAL_UNDEF(&_7$$11); - ZVAL_UNDEF(&_8$$11); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(data) - Z_PARAM_BOOL(onlySuccessful) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_8$$12); + ZVAL_UNDEF(&_9$$13); + ZVAL_UNDEF(&_10$$16); + ZVAL_UNDEF(&_12$$16); + ZVAL_UNDEF(&_13$$16); + ZVAL_UNDEF(&_11$$17); + ZVAL_UNDEF(&_16$$19); + ZVAL_UNDEF(&_17$$19); + ZVAL_UNDEF(&_19$$25); + ZVAL_UNDEF(&_20$$25); + ZVAL_UNDEF(&_22$$31); + ZVAL_UNDEF(&_23$$32); + ZVAL_UNDEF(&_24$$33); + ZVAL_UNDEF(&_25$$36); + ZVAL_UNDEF(&_27$$36); + ZVAL_UNDEF(&_28$$36); + ZVAL_UNDEF(&_26$$37); + ZVAL_UNDEF(&_30$$39); + ZVAL_UNDEF(&_31$$39); + ZVAL_UNDEF(&_32$$45); + ZVAL_UNDEF(&_33$$45); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &data, &onlySuccessful_param); - onlySuccessful = zephir_get_boolval(onlySuccessful_param); - - numberFiles = 0; - if (Z_TYPE_P(data) != IS_ARRAY) { - RETURN_MM_LONG(1); + zephir_read_property(&_0, this_ptr, ZEND_STRL("activeRow"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&activeRow, &_0); + if (Z_TYPE_P(&activeRow) != IS_NULL) { + RETURN_CCTOR(&activeRow); } - zephir_is_iterable(data, 0, "phalcon/Http/Request.zep", 1391); - if (Z_TYPE_P(data) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(data), _0) + zephir_read_property(&_0, this_ptr, ZEND_STRL("row"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&row, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("disableHydration"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("activeRow"), &row); + RETURN_CCTOR(&row); + } + if (Z_TYPE_P(&row) != IS_ARRAY) { + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("activeRow"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("activeRow"), &__$false); + } + RETURN_MM_BOOL(0); + } + zephir_read_property(&_1, this_ptr, ZEND_STRL("hydrateMode"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&hydrateMode, &_1); + do { + if (ZEPHIR_IS_LONG(&hydrateMode, 0)) { + ZEPHIR_INIT_NVAR(&activeRow); + object_init_ex(&activeRow, phalcon_mvc_model_row_ce); + if (zephir_has_constructor(&activeRow)) { + ZEPHIR_CALL_METHOD(NULL, &activeRow, "__construct", NULL, 0); + zephir_check_call_status(); + } + + break; + } + if (ZEPHIR_IS_LONG(&hydrateMode, 1)) { + ZEPHIR_INIT_NVAR(&activeRow); + array_init(&activeRow); + break; + } + ZEPHIR_INIT_NVAR(&activeRow); + object_init(&activeRow); + break; + } while(0); + + dirtyState = 0; + zephir_read_property(&_1, this_ptr, ZEND_STRL("columnTypes"), PH_NOISY_CC | PH_READONLY); + zephir_is_iterable(&_1, 0, "phalcon/Mvc/Model/Resultset/Complex.zep", 267); + if (Z_TYPE_P(&_1) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_1), _4, _5, _2) { - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0); - if (Z_TYPE_P(&value) != IS_ARRAY) { - _2$$5 = !zephir_is_true(&value); - if (!(_2$$5)) { - _2$$5 = !onlySuccessful; - } - if (_2$$5) { - numberFiles++; - } + ZEPHIR_INIT_NVAR(&alias); + if (_5 != NULL) { + ZVAL_STR_COPY(&alias, _5); + } else { + ZVAL_LONG(&alias, _4); } - if (Z_TYPE_P(&value) == IS_ARRAY) { - if (onlySuccessful) { - ZVAL_BOOL(&_4$$7, 1); - } else { - ZVAL_BOOL(&_4$$7, 0); - } - ZEPHIR_CALL_METHOD(&_3$$7, this_ptr, "hasfilehelper", &_5, 353, &value, &_4$$7); - zephir_check_call_status(); - numberFiles += zephir_get_numberval(&_3$$7); + ZEPHIR_INIT_NVAR(&column); + ZVAL_COPY(&column, _2); + if (UNEXPECTED(Z_TYPE_P(&column) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Column type is corrupt", "phalcon/Mvc/Model/Resultset/Complex.zep", 139); + return; + } + ZEPHIR_OBS_NVAR(&type); + zephir_array_fetch_string(&type, &column, SL("type"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 142); + if (ZEPHIR_IS_STRING(&type, "object")) { + ZEPHIR_OBS_NVAR(&source); + zephir_array_fetch_string(&source, &column, SL("column"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 148); + ZEPHIR_OBS_NVAR(&attributes); + zephir_array_fetch_string(&attributes, &column, SL("attributes"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 149); + ZEPHIR_OBS_NVAR(&columnMap); + zephir_array_fetch_string(&columnMap, &column, SL("columnMap"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 150); + ZEPHIR_INIT_NVAR(&rowModel); + array_init(&rowModel); + zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model/Resultset/Complex.zep", 168); + if (Z_TYPE_P(&attributes) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _6$$11) + { + ZEPHIR_INIT_NVAR(&attribute); + ZVAL_COPY(&attribute, _6$$11); + ZEPHIR_OBS_NVAR(&columnValue); + ZEPHIR_INIT_NVAR(&_8$$12); + ZEPHIR_CONCAT_SVSV(&_8$$12, "_", &source, "_", &attribute); + zephir_array_fetch(&columnValue, &row, &_8$$12, PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 161); + zephir_array_update_zval(&rowModel, &attribute, &columnValue, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_7$$11, &attributes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_7$$11)) { + break; + } + ZEPHIR_CALL_METHOD(&attribute, &attributes, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&columnValue); + ZEPHIR_INIT_NVAR(&_9$$13); + ZEPHIR_CONCAT_SVSV(&_9$$13, "_", &source, "_", &attribute); + zephir_array_fetch(&columnValue, &row, &_9$$13, PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 161); + zephir_array_update_zval(&rowModel, &attribute, &columnValue, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&attribute); + do { + if (ZEPHIR_IS_LONG(&hydrateMode, 0)) { + ZEPHIR_OBS_NVAR(&keepSnapshots); + if (!(zephir_array_isset_string_fetch(&keepSnapshots, &column, SL("keepSnapshots"), 0))) { + ZEPHIR_INIT_NVAR(&keepSnapshots); + ZVAL_BOOL(&keepSnapshots, 0); + } + if (ZEPHIR_GLOBAL(orm).late_state_binding) { + ZEPHIR_OBS_NVAR(&_10$$16); + zephir_array_fetch_string(&_10$$16, &column, SL("instance"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 178); + if (zephir_instance_of_ev(&_10$$16, phalcon_mvc_model_ce)) { + zephir_array_fetch_string(&_11$$17, &column, SL("instance"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 179); + ZEPHIR_INIT_NVAR(&modelName); + zephir_get_class(&modelName, &_11$$17, 0); + } else { + ZEPHIR_INIT_NVAR(&modelName); + ZVAL_STRING(&modelName, "Phalcon\\Mvc\\Model"); + } + zephir_array_fetch_string(&_12$$16, &column, SL("instance"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 185); + ZVAL_LONG(&_13$$16, dirtyState); + _14$$16 = zephir_fetch_class(&modelName); + ZEPHIR_CALL_CE_STATIC(&value, _14$$16, "cloneresultmap", NULL, 0, &_12$$16, &rowModel, &columnMap, &_13$$16, &keepSnapshots); + zephir_check_call_status(); + } else { + zephir_array_fetch_string(&_16$$19, &column, SL("instance"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 199); + ZVAL_LONG(&_17$$19, dirtyState); + ZEPHIR_CALL_CE_STATIC(&value, phalcon_mvc_model_ce, "cloneresultmap", &_15, 0, &_16$$19, &rowModel, &columnMap, &_17$$19, &keepSnapshots); + zephir_check_call_status(); + } + break; + } + ZEPHIR_CALL_CE_STATIC(&value, phalcon_mvc_model_ce, "cloneresultmaphydrate", &_18, 0, &rowModel, &columnMap, &hydrateMode); + zephir_check_call_status(); + break; + } while(0); + + ZEPHIR_OBS_NVAR(&attribute); + zephir_array_fetch_string(&attribute, &column, SL("balias"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 223); + } else { + ZEPHIR_OBS_NVAR(&sqlAlias); + if (zephir_array_isset_string_fetch(&sqlAlias, &column, SL("sqlAlias"), 0)) { + ZEPHIR_OBS_NVAR(&value); + zephir_array_fetch(&value, &row, &sqlAlias, PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 231); + } else { + ZEPHIR_OBS_NVAR(&value); + zephir_array_isset_fetch(&value, &row, &alias, 0); + } + if (zephir_array_isset_string(&column, SL("balias"))) { + ZEPHIR_CPY_WRT(&attribute, &alias); + } else { + ZEPHIR_INIT_NVAR(&_19$$25); + ZVAL_STRING(&_19$$25, "_"); + ZEPHIR_INIT_NVAR(&_20$$25); + ZVAL_STRING(&_20$$25, ""); + ZEPHIR_INIT_NVAR(&attribute); + zephir_fast_str_replace(&attribute, &_19$$25, &_20$$25, &alias); + } + } + if (!(zephir_array_isset_string_fetch(&eager, &column, SL("eager"), 1))) { + do { + if (ZEPHIR_IS_LONG(&hydrateMode, 1)) { + zephir_array_update_zval(&activeRow, &attribute, &value, PH_COPY | PH_SEPARATE); + break; + } + zephir_update_property_zval_zval(&activeRow, &attribute, &value); + break; + } while(0); + } } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, data, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &_1, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_1, data, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_3, &_1, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_1)) { + if (!zend_is_true(&_3)) { break; } - ZEPHIR_CALL_METHOD(&value, data, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&alias, &_1, "key", NULL, 0); zephir_check_call_status(); - if (Z_TYPE_P(&value) != IS_ARRAY) { - _6$$9 = !zephir_is_true(&value); - if (!(_6$$9)) { - _6$$9 = !onlySuccessful; + ZEPHIR_CALL_METHOD(&column, &_1, "current", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&column) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Column type is corrupt", "phalcon/Mvc/Model/Resultset/Complex.zep", 139); + return; + } + ZEPHIR_OBS_NVAR(&type); + zephir_array_fetch_string(&type, &column, SL("type"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 142); + if (ZEPHIR_IS_STRING(&type, "object")) { + ZEPHIR_OBS_NVAR(&source); + zephir_array_fetch_string(&source, &column, SL("column"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 148); + ZEPHIR_OBS_NVAR(&attributes); + zephir_array_fetch_string(&attributes, &column, SL("attributes"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 149); + ZEPHIR_OBS_NVAR(&columnMap); + zephir_array_fetch_string(&columnMap, &column, SL("columnMap"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 150); + ZEPHIR_INIT_NVAR(&rowModel); + array_init(&rowModel); + zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model/Resultset/Complex.zep", 168); + if (Z_TYPE_P(&attributes) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _21$$31) + { + ZEPHIR_INIT_NVAR(&attribute); + ZVAL_COPY(&attribute, _21$$31); + ZEPHIR_OBS_NVAR(&columnValue); + ZEPHIR_INIT_NVAR(&_23$$32); + ZEPHIR_CONCAT_SVSV(&_23$$32, "_", &source, "_", &attribute); + zephir_array_fetch(&columnValue, &row, &_23$$32, PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 161); + zephir_array_update_zval(&rowModel, &attribute, &columnValue, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_22$$31, &attributes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_22$$31)) { + break; + } + ZEPHIR_CALL_METHOD(&attribute, &attributes, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&columnValue); + ZEPHIR_INIT_NVAR(&_24$$33); + ZEPHIR_CONCAT_SVSV(&_24$$33, "_", &source, "_", &attribute); + zephir_array_fetch(&columnValue, &row, &_24$$33, PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 161); + zephir_array_update_zval(&rowModel, &attribute, &columnValue, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); + zephir_check_call_status(); + } } - if (_6$$9) { - numberFiles++; + ZEPHIR_INIT_NVAR(&attribute); + do { + if (ZEPHIR_IS_LONG(&hydrateMode, 0)) { + ZEPHIR_OBS_NVAR(&keepSnapshots); + if (!(zephir_array_isset_string_fetch(&keepSnapshots, &column, SL("keepSnapshots"), 0))) { + ZEPHIR_INIT_NVAR(&keepSnapshots); + ZVAL_BOOL(&keepSnapshots, 0); + } + if (ZEPHIR_GLOBAL(orm).late_state_binding) { + ZEPHIR_OBS_NVAR(&_25$$36); + zephir_array_fetch_string(&_25$$36, &column, SL("instance"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 178); + if (zephir_instance_of_ev(&_25$$36, phalcon_mvc_model_ce)) { + zephir_array_fetch_string(&_26$$37, &column, SL("instance"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 179); + ZEPHIR_INIT_NVAR(&modelName); + zephir_get_class(&modelName, &_26$$37, 0); + } else { + ZEPHIR_INIT_NVAR(&modelName); + ZVAL_STRING(&modelName, "Phalcon\\Mvc\\Model"); + } + zephir_array_fetch_string(&_27$$36, &column, SL("instance"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 185); + ZVAL_LONG(&_28$$36, dirtyState); + _29$$36 = zephir_fetch_class(&modelName); + ZEPHIR_CALL_CE_STATIC(&value, _29$$36, "cloneresultmap", NULL, 0, &_27$$36, &rowModel, &columnMap, &_28$$36, &keepSnapshots); + zephir_check_call_status(); + } else { + zephir_array_fetch_string(&_30$$39, &column, SL("instance"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 199); + ZVAL_LONG(&_31$$39, dirtyState); + ZEPHIR_CALL_CE_STATIC(&value, phalcon_mvc_model_ce, "cloneresultmap", &_15, 0, &_30$$39, &rowModel, &columnMap, &_31$$39, &keepSnapshots); + zephir_check_call_status(); + } + break; + } + ZEPHIR_CALL_CE_STATIC(&value, phalcon_mvc_model_ce, "cloneresultmaphydrate", &_18, 0, &rowModel, &columnMap, &hydrateMode); + zephir_check_call_status(); + break; + } while(0); + + ZEPHIR_OBS_NVAR(&attribute); + zephir_array_fetch_string(&attribute, &column, SL("balias"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 223); + } else { + ZEPHIR_OBS_NVAR(&sqlAlias); + if (zephir_array_isset_string_fetch(&sqlAlias, &column, SL("sqlAlias"), 0)) { + ZEPHIR_OBS_NVAR(&value); + zephir_array_fetch(&value, &row, &sqlAlias, PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 231); + } else { + ZEPHIR_OBS_NVAR(&value); + zephir_array_isset_fetch(&value, &row, &alias, 0); } - } - if (Z_TYPE_P(&value) == IS_ARRAY) { - if (onlySuccessful) { - ZVAL_BOOL(&_8$$11, 1); + if (zephir_array_isset_string(&column, SL("balias"))) { + ZEPHIR_CPY_WRT(&attribute, &alias); } else { - ZVAL_BOOL(&_8$$11, 0); + ZEPHIR_INIT_NVAR(&_32$$45); + ZVAL_STRING(&_32$$45, "_"); + ZEPHIR_INIT_NVAR(&_33$$45); + ZVAL_STRING(&_33$$45, ""); + ZEPHIR_INIT_NVAR(&attribute); + zephir_fast_str_replace(&attribute, &_32$$45, &_33$$45, &alias); } - ZEPHIR_CALL_METHOD(&_7$$11, this_ptr, "hasfilehelper", &_5, 353, &value, &_8$$11); - zephir_check_call_status(); - numberFiles += zephir_get_numberval(&_7$$11); } - ZEPHIR_CALL_METHOD(NULL, data, "next", NULL, 0); + ZEPHIR_OBS_NVAR(&eager); + if (!(zephir_array_isset_string_fetch(&eager, &column, SL("eager"), 0))) { + do { + if (ZEPHIR_IS_LONG(&hydrateMode, 1)) { + zephir_array_update_zval(&activeRow, &attribute, &value, PH_COPY | PH_SEPARATE); + break; + } + zephir_update_property_zval_zval(&activeRow, &attribute, &value); + break; + } while(0); + + } + ZEPHIR_CALL_METHOD(NULL, &_1, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&value); - RETURN_MM_LONG(numberFiles); + ZEPHIR_INIT_NVAR(&column); + ZEPHIR_INIT_NVAR(&alias); + zephir_update_property_zval(this_ptr, ZEND_STRL("activeRow"), &activeRow); + RETURN_CCTOR(&activeRow); } -static PHP_METHOD(Phalcon_Http_Request, getQualityHeader) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, toArray) { + zval records; + zval current, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_1 = NULL, *_2 = NULL, *_3 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *serverIndex_param = NULL, *name_param = NULL, returnedParts, parts, part, headerParts, headerPart, split, _0, _1, _2, _3, *_4, _5, _6$$3, _7$$3, _8$$3, _9$$3, _10$$3, *_11$$3, _12$$3, _13$$4, _14$$4, _15$$5, _16$$6, _17$$6, _18$$7, _19$$7, _20$$8, _21$$9, _22$$9, _23$$10, _24$$11, _25$$11, _26$$12, _27$$12, _28$$13, _29$$14, _30$$14, _31$$14, _32$$14, _33$$14, *_34$$14, _35$$14, _36$$15, _37$$15, _38$$16, _39$$17, _40$$17, _41$$18, _42$$18, _43$$19, _44$$20, _45$$20, _46$$21, _47$$22, _48$$22, _49$$23, _50$$23, _51$$24; - zval serverIndex, name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&serverIndex); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&returnedParts); - ZVAL_UNDEF(&parts); - ZVAL_UNDEF(&part); - ZVAL_UNDEF(&headerParts); - ZVAL_UNDEF(&headerPart); - ZVAL_UNDEF(&split); + ZVAL_UNDEF(¤t); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_8$$3); - ZVAL_UNDEF(&_9$$3); - ZVAL_UNDEF(&_10$$3); - ZVAL_UNDEF(&_12$$3); - ZVAL_UNDEF(&_13$$4); - ZVAL_UNDEF(&_14$$4); - ZVAL_UNDEF(&_15$$5); - ZVAL_UNDEF(&_16$$6); - ZVAL_UNDEF(&_17$$6); - ZVAL_UNDEF(&_18$$7); - ZVAL_UNDEF(&_19$$7); - ZVAL_UNDEF(&_20$$8); - ZVAL_UNDEF(&_21$$9); - ZVAL_UNDEF(&_22$$9); - ZVAL_UNDEF(&_23$$10); - ZVAL_UNDEF(&_24$$11); - ZVAL_UNDEF(&_25$$11); - ZVAL_UNDEF(&_26$$12); - ZVAL_UNDEF(&_27$$12); - ZVAL_UNDEF(&_28$$13); - ZVAL_UNDEF(&_29$$14); - ZVAL_UNDEF(&_30$$14); - ZVAL_UNDEF(&_31$$14); - ZVAL_UNDEF(&_32$$14); - ZVAL_UNDEF(&_33$$14); - ZVAL_UNDEF(&_35$$14); - ZVAL_UNDEF(&_36$$15); - ZVAL_UNDEF(&_37$$15); - ZVAL_UNDEF(&_38$$16); - ZVAL_UNDEF(&_39$$17); - ZVAL_UNDEF(&_40$$17); - ZVAL_UNDEF(&_41$$18); - ZVAL_UNDEF(&_42$$18); - ZVAL_UNDEF(&_43$$19); - ZVAL_UNDEF(&_44$$20); - ZVAL_UNDEF(&_45$$20); - ZVAL_UNDEF(&_46$$21); - ZVAL_UNDEF(&_47$$22); - ZVAL_UNDEF(&_48$$22); - ZVAL_UNDEF(&_49$$23); - ZVAL_UNDEF(&_50$$23); - ZVAL_UNDEF(&_51$$24); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(serverIndex) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&records); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &serverIndex_param, &name_param); - if (UNEXPECTED(Z_TYPE_P(serverIndex_param) != IS_STRING && Z_TYPE_P(serverIndex_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'serverIndex' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(serverIndex_param) == IS_STRING)) { - zephir_get_strval(&serverIndex, serverIndex_param); - } else { - ZEPHIR_INIT_VAR(&serverIndex); - } - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - - ZEPHIR_INIT_VAR(&returnedParts); - array_init(&returnedParts); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getserver", NULL, 0, &serverIndex); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "/,\\s*/"); - ZVAL_LONG(&_2, -1); - ZVAL_LONG(&_3, 1); - ZEPHIR_CALL_FUNCTION(&parts, "preg_split", NULL, 101, &_1, &_0, &_2, &_3); + ZEPHIR_INIT_VAR(&records); + array_init(&records); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "rewind", NULL, 111); zephir_check_call_status(); - zephir_is_iterable(&parts, 0, "phalcon/Http/Request.zep", 1431); - if (Z_TYPE_P(&parts) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&parts), _4) - { - ZEPHIR_INIT_NVAR(&part); - ZVAL_COPY(&part, _4); - ZEPHIR_INIT_NVAR(&headerParts); - array_init(&headerParts); - ZEPHIR_INIT_NVAR(&_6$$3); - zephir_fast_trim(&_6$$3, &part, NULL , ZEPHIR_TRIM_BOTH); - ZEPHIR_INIT_NVAR(&_7$$3); - ZVAL_STRING(&_7$$3, "/\\s*;\\s*/"); - ZVAL_LONG(&_8$$3, -1); - ZVAL_LONG(&_9$$3, 1); - ZEPHIR_CALL_FUNCTION(&_10$$3, "preg_split", NULL, 101, &_7$$3, &_6$$3, &_8$$3, &_9$$3); - zephir_check_call_status(); - zephir_is_iterable(&_10$$3, 0, "phalcon/Http/Request.zep", 1428); - if (Z_TYPE_P(&_10$$3) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_10$$3), _11$$3) - { - ZEPHIR_INIT_NVAR(&headerPart); - ZVAL_COPY(&headerPart, _11$$3); - ZEPHIR_INIT_NVAR(&_13$$4); - ZVAL_STRING(&_13$$4, "="); - ZEPHIR_INIT_NVAR(&_14$$4); - zephir_fast_strpos(&_14$$4, &headerPart, &_13$$4, 0 ); - if (!ZEPHIR_IS_FALSE_IDENTICAL(&_14$$4)) { - ZEPHIR_INIT_NVAR(&split); - zephir_fast_explode_str(&split, SL("="), &headerPart, 2 ); - zephir_array_fetch_long(&_15$$5, &split, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1417); - if (ZEPHIR_IS_STRING_IDENTICAL(&_15$$5, "q")) { - ZEPHIR_OBS_NVAR(&_16$$6); - zephir_array_fetch_long(&_16$$6, &split, 1, PH_NOISY, "phalcon/Http/Request.zep", 1418); - ZEPHIR_INIT_NVAR(&_17$$6); - ZVAL_DOUBLE(&_17$$6, zephir_get_doubleval(&_16$$6)); - zephir_array_update_string(&headerParts, SL("quality"), &_17$$6, PH_COPY | PH_SEPARATE); - } else { - zephir_array_fetch_long(&_18$$7, &split, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1420); - ZEPHIR_OBS_NVAR(&_19$$7); - zephir_array_fetch_long(&_19$$7, &split, 0, PH_NOISY, "phalcon/Http/Request.zep", 1420); - zephir_array_update_zval(&headerParts, &_19$$7, &_18$$7, PH_COPY | PH_SEPARATE); - } - } else { - zephir_array_update_zval(&headerParts, &name, &headerPart, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_20$$8); - ZVAL_DOUBLE(&_20$$8, 1.0); - zephir_array_update_string(&headerParts, SL("quality"), &_20$$8, PH_COPY | PH_SEPARATE); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_10$$3, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_12$$3, &_10$$3, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_12$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&headerPart, &_10$$3, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_21$$9); - ZVAL_STRING(&_21$$9, "="); - ZEPHIR_INIT_NVAR(&_22$$9); - zephir_fast_strpos(&_22$$9, &headerPart, &_21$$9, 0 ); - if (!ZEPHIR_IS_FALSE_IDENTICAL(&_22$$9)) { - ZEPHIR_INIT_NVAR(&split); - zephir_fast_explode_str(&split, SL("="), &headerPart, 2 ); - zephir_array_fetch_long(&_23$$10, &split, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1417); - if (ZEPHIR_IS_STRING_IDENTICAL(&_23$$10, "q")) { - ZEPHIR_OBS_NVAR(&_24$$11); - zephir_array_fetch_long(&_24$$11, &split, 1, PH_NOISY, "phalcon/Http/Request.zep", 1418); - ZEPHIR_INIT_NVAR(&_25$$11); - ZVAL_DOUBLE(&_25$$11, zephir_get_doubleval(&_24$$11)); - zephir_array_update_string(&headerParts, SL("quality"), &_25$$11, PH_COPY | PH_SEPARATE); - } else { - zephir_array_fetch_long(&_26$$12, &split, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1420); - ZEPHIR_OBS_NVAR(&_27$$12); - zephir_array_fetch_long(&_27$$12, &split, 0, PH_NOISY, "phalcon/Http/Request.zep", 1420); - zephir_array_update_zval(&headerParts, &_27$$12, &_26$$12, PH_COPY | PH_SEPARATE); - } - } else { - zephir_array_update_zval(&headerParts, &name, &headerPart, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_28$$13); - ZVAL_DOUBLE(&_28$$13, 1.0); - zephir_array_update_string(&headerParts, SL("quality"), &_28$$13, PH_COPY | PH_SEPARATE); - } - ZEPHIR_CALL_METHOD(NULL, &_10$$3, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&headerPart); - zephir_array_append(&returnedParts, &headerParts, PH_SEPARATE, "phalcon/Http/Request.zep", 1428); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &parts, "rewind", NULL, 0); + while (1) { + ZEPHIR_CALL_METHOD(&_0, this_ptr, "valid", &_1, 0); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5, &parts, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5)) { - break; - } - ZEPHIR_CALL_METHOD(&part, &parts, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&headerParts); - array_init(&headerParts); - ZEPHIR_INIT_NVAR(&_29$$14); - zephir_fast_trim(&_29$$14, &part, NULL , ZEPHIR_TRIM_BOTH); - ZEPHIR_INIT_NVAR(&_30$$14); - ZVAL_STRING(&_30$$14, "/\\s*;\\s*/"); - ZVAL_LONG(&_31$$14, -1); - ZVAL_LONG(&_32$$14, 1); - ZEPHIR_CALL_FUNCTION(&_33$$14, "preg_split", NULL, 101, &_30$$14, &_29$$14, &_31$$14, &_32$$14); - zephir_check_call_status(); - zephir_is_iterable(&_33$$14, 0, "phalcon/Http/Request.zep", 1428); - if (Z_TYPE_P(&_33$$14) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_33$$14), _34$$14) - { - ZEPHIR_INIT_NVAR(&headerPart); - ZVAL_COPY(&headerPart, _34$$14); - ZEPHIR_INIT_NVAR(&_36$$15); - ZVAL_STRING(&_36$$15, "="); - ZEPHIR_INIT_NVAR(&_37$$15); - zephir_fast_strpos(&_37$$15, &headerPart, &_36$$15, 0 ); - if (!ZEPHIR_IS_FALSE_IDENTICAL(&_37$$15)) { - ZEPHIR_INIT_NVAR(&split); - zephir_fast_explode_str(&split, SL("="), &headerPart, 2 ); - zephir_array_fetch_long(&_38$$16, &split, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1417); - if (ZEPHIR_IS_STRING_IDENTICAL(&_38$$16, "q")) { - ZEPHIR_OBS_NVAR(&_39$$17); - zephir_array_fetch_long(&_39$$17, &split, 1, PH_NOISY, "phalcon/Http/Request.zep", 1418); - ZEPHIR_INIT_NVAR(&_40$$17); - ZVAL_DOUBLE(&_40$$17, zephir_get_doubleval(&_39$$17)); - zephir_array_update_string(&headerParts, SL("quality"), &_40$$17, PH_COPY | PH_SEPARATE); - } else { - zephir_array_fetch_long(&_41$$18, &split, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1420); - ZEPHIR_OBS_NVAR(&_42$$18); - zephir_array_fetch_long(&_42$$18, &split, 0, PH_NOISY, "phalcon/Http/Request.zep", 1420); - zephir_array_update_zval(&headerParts, &_42$$18, &_41$$18, PH_COPY | PH_SEPARATE); - } - } else { - zephir_array_update_zval(&headerParts, &name, &headerPart, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_43$$19); - ZVAL_DOUBLE(&_43$$19, 1.0); - zephir_array_update_string(&headerParts, SL("quality"), &_43$$19, PH_COPY | PH_SEPARATE); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_33$$14, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_35$$14, &_33$$14, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_35$$14)) { - break; - } - ZEPHIR_CALL_METHOD(&headerPart, &_33$$14, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_44$$20); - ZVAL_STRING(&_44$$20, "="); - ZEPHIR_INIT_NVAR(&_45$$20); - zephir_fast_strpos(&_45$$20, &headerPart, &_44$$20, 0 ); - if (!ZEPHIR_IS_FALSE_IDENTICAL(&_45$$20)) { - ZEPHIR_INIT_NVAR(&split); - zephir_fast_explode_str(&split, SL("="), &headerPart, 2 ); - zephir_array_fetch_long(&_46$$21, &split, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1417); - if (ZEPHIR_IS_STRING_IDENTICAL(&_46$$21, "q")) { - ZEPHIR_OBS_NVAR(&_47$$22); - zephir_array_fetch_long(&_47$$22, &split, 1, PH_NOISY, "phalcon/Http/Request.zep", 1418); - ZEPHIR_INIT_NVAR(&_48$$22); - ZVAL_DOUBLE(&_48$$22, zephir_get_doubleval(&_47$$22)); - zephir_array_update_string(&headerParts, SL("quality"), &_48$$22, PH_COPY | PH_SEPARATE); - } else { - zephir_array_fetch_long(&_49$$23, &split, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1420); - ZEPHIR_OBS_NVAR(&_50$$23); - zephir_array_fetch_long(&_50$$23, &split, 0, PH_NOISY, "phalcon/Http/Request.zep", 1420); - zephir_array_update_zval(&headerParts, &_50$$23, &_49$$23, PH_COPY | PH_SEPARATE); - } - } else { - zephir_array_update_zval(&headerParts, &name, &headerPart, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_51$$24); - ZVAL_DOUBLE(&_51$$24, 1.0); - zephir_array_update_string(&headerParts, SL("quality"), &_51$$24, PH_COPY | PH_SEPARATE); - } - ZEPHIR_CALL_METHOD(NULL, &_33$$14, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&headerPart); - zephir_array_append(&returnedParts, &headerParts, PH_SEPARATE, "phalcon/Http/Request.zep", 1428); - ZEPHIR_CALL_METHOD(NULL, &parts, "next", NULL, 0); - zephir_check_call_status(); + if (!(zephir_is_true(&_0))) { + break; } + ZEPHIR_CALL_METHOD(¤t, this_ptr, "current", &_2, 489); + zephir_check_call_status(); + zephir_array_append(&records, ¤t, PH_SEPARATE, "phalcon/Mvc/Model/Resultset/Complex.zep", 287); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "next", &_3, 0); + zephir_check_call_status(); } - ZEPHIR_INIT_NVAR(&part); - RETURN_CCTOR(&returnedParts); + RETURN_CTOR(&records); } -static PHP_METHOD(Phalcon_Http_Request, resolveAuthorizationHeaders) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, serialize) { - zval headers, _6$$5, _37$$19; - zend_bool hasEventsManager = 0, _5, _10, _36, _23$$11; - zval resolved, eventsManager, container, exploded, digest, authHeader, server, _0, _9, _11, _1$$3, _2$$3, _3$$4, _4$$4, _7$$5, _8$$6, _12$$7, _13$$7, _14$$7, _15$$8, _16$$8, _17$$8, _18$$9, _19$$10, _20$$11, _21$$11, _22$$11, _24$$11, _25$$11, _26$$12, _27$$12, _28$$12, _29$$13, _30$$13, _31$$17, _32$$17, _33$$17, _34$$17, _35$$17, _38$$19, _39$$20; + zval _7, _6$$4; + zval records, cache, columnTypes, hydrateMode, container, serializer, _0, _2, _3, _4$$4, _5$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_1 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&resolved); - ZVAL_UNDEF(&eventsManager); + ZVAL_UNDEF(&records); + ZVAL_UNDEF(&cache); + ZVAL_UNDEF(&columnTypes); + ZVAL_UNDEF(&hydrateMode); ZVAL_UNDEF(&container); - ZVAL_UNDEF(&exploded); - ZVAL_UNDEF(&digest); - ZVAL_UNDEF(&authHeader); - ZVAL_UNDEF(&server); + ZVAL_UNDEF(&serializer); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_8$$6); - ZVAL_UNDEF(&_12$$7); - ZVAL_UNDEF(&_13$$7); - ZVAL_UNDEF(&_14$$7); - ZVAL_UNDEF(&_15$$8); - ZVAL_UNDEF(&_16$$8); - ZVAL_UNDEF(&_17$$8); - ZVAL_UNDEF(&_18$$9); - ZVAL_UNDEF(&_19$$10); - ZVAL_UNDEF(&_20$$11); - ZVAL_UNDEF(&_21$$11); - ZVAL_UNDEF(&_22$$11); - ZVAL_UNDEF(&_24$$11); - ZVAL_UNDEF(&_25$$11); - ZVAL_UNDEF(&_26$$12); - ZVAL_UNDEF(&_27$$12); - ZVAL_UNDEF(&_28$$12); - ZVAL_UNDEF(&_29$$13); - ZVAL_UNDEF(&_30$$13); - ZVAL_UNDEF(&_31$$17); - ZVAL_UNDEF(&_32$$17); - ZVAL_UNDEF(&_33$$17); - ZVAL_UNDEF(&_34$$17); - ZVAL_UNDEF(&_35$$17); - ZVAL_UNDEF(&_38$$19); - ZVAL_UNDEF(&_39$$20); - ZVAL_UNDEF(&headers); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_37$$19); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_6$$4); ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(&authHeader); - ZVAL_NULL(&authHeader); - ZEPHIR_INIT_VAR(&headers); - array_init(&headers); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getdi", NULL, 0); + ZEPHIR_CALL_METHOD(&records, this_ptr, "toarray", NULL, 0); zephir_check_call_status(); - ZEPHIR_CPY_WRT(&container, &_0); - ZEPHIR_CALL_METHOD(&server, this_ptr, "getserverarray", NULL, 344); + zephir_read_property(&_0, this_ptr, ZEND_STRL("cache"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&cache, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("columnTypes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&columnTypes, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("hydrateMode"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&hydrateMode, &_0); + ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_1, 0); zephir_check_call_status(); - if (Z_TYPE_P(&container) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "eventsManager"); - ZEPHIR_CALL_METHOD(&_1$$3, &container, "has", NULL, 0, &_2$$3); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The dependency injector container is not valid", "phalcon/Mvc/Model/Resultset/Complex.zep", 316); + return; + } + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "serializer"); + ZEPHIR_CALL_METHOD(&_2, &container, "has", NULL, 0, &_3); + zephir_check_call_status(); + if (zephir_is_true(&_2)) { + ZEPHIR_INIT_VAR(&_5$$4); + ZVAL_STRING(&_5$$4, "serializer"); + ZEPHIR_CALL_METHOD(&_4$$4, &container, "getshared", NULL, 0, &_5$$4); zephir_check_call_status(); - hasEventsManager = zephir_get_boolval(&_1$$3); - if (hasEventsManager) { - ZEPHIR_INIT_VAR(&_4$$4); - ZVAL_STRING(&_4$$4, "eventsManager"); - ZEPHIR_CALL_METHOD(&_3$$4, &container, "getshared", NULL, 0, &_4$$4); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&eventsManager, &_3$$4); - } + ZEPHIR_CPY_WRT(&serializer, &_4$$4); + ZEPHIR_INIT_VAR(&_6$$4); + zephir_create_array(&_6$$4, 4, 0); + zephir_array_update_string(&_6$$4, SL("cache"), &cache, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_6$$4, SL("rows"), &records, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_6$$4, SL("columnTypes"), &columnTypes, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_6$$4, SL("hydrateMode"), &hydrateMode, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &serializer, "setdata", NULL, 0, &_6$$4); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(&serializer, "serialize", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } - _5 = hasEventsManager; - if (_5) { - _5 = Z_TYPE_P(&eventsManager) == IS_OBJECT; + ZEPHIR_INIT_VAR(&_7); + zephir_create_array(&_7, 4, 0); + zephir_array_update_string(&_7, SL("cache"), &cache, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_7, SL("rows"), &records, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_7, SL("columnTypes"), &columnTypes, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_7, SL("hydrateMode"), &hydrateMode, PH_COPY | PH_SEPARATE); + ZEPHIR_RETURN_CALL_FUNCTION("serialize", NULL, 13, &_7); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, unserialize) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *data, data_sub, __$true, __$false, resultset, container, serializer, _1, _2, _5, _6, _7, _8, _9, _10, _3$$4, _4$$4; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&data_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&resultset); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&serializer); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &data); + + + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("disableHydration"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("disableHydration"), &__$false); } - if (_5) { - ZEPHIR_INIT_VAR(&_6$$5); - zephir_create_array(&_6$$5, 1, 0); - zephir_array_update_string(&_6$$5, SL("server"), &server, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_VAR(&_7$$5); - ZVAL_STRING(&_7$$5, "request:beforeAuthorizationResolve"); - ZEPHIR_CALL_METHOD(&resolved, &eventsManager, "fire", NULL, 0, &_7$$5, this_ptr, &_6$$5); - zephir_check_call_status(); - if (Z_TYPE_P(&resolved) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&_8$$6); - zephir_fast_array_merge(&_8$$6, &headers, &resolved); - ZEPHIR_CPY_WRT(&headers, &_8$$6); - } + ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_0, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The dependency injector container is not valid", "phalcon/Mvc/Model/Resultset/Complex.zep", 361); + return; } - ZEPHIR_INIT_VAR(&_9); - ZVAL_STRING(&_9, "PHP_AUTH_USER"); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "hasserver", NULL, 342, &_9); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "serializer"); + ZEPHIR_CALL_METHOD(&_1, &container, "has", NULL, 0, &_2); zephir_check_call_status(); - _10 = zephir_is_true(&_0); - if (_10) { - ZEPHIR_INIT_NVAR(&_9); - ZVAL_STRING(&_9, "PHP_AUTH_PW"); - ZEPHIR_CALL_METHOD(&_11, this_ptr, "hasserver", NULL, 342, &_9); + if (zephir_is_true(&_1)) { + ZEPHIR_INIT_VAR(&_4$$4); + ZVAL_STRING(&_4$$4, "serializer"); + ZEPHIR_CALL_METHOD(&_3$$4, &container, "getshared", NULL, 0, &_4$$4); zephir_check_call_status(); - _10 = zephir_is_true(&_11); - } - if (_10) { - ZEPHIR_INIT_VAR(&_13$$7); - ZVAL_STRING(&_13$$7, "PHP_AUTH_USER"); - ZEPHIR_CALL_METHOD(&_12$$7, this_ptr, "getserver", NULL, 0, &_13$$7); + ZEPHIR_CPY_WRT(&serializer, &_3$$4); + ZEPHIR_CALL_METHOD(NULL, &serializer, "unserialize", NULL, 0, data); zephir_check_call_status(); - zephir_array_update_string(&headers, SL("Php-Auth-User"), &_12$$7, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_13$$7); - ZVAL_STRING(&_13$$7, "PHP_AUTH_PW"); - ZEPHIR_CALL_METHOD(&_14$$7, this_ptr, "getserver", NULL, 0, &_13$$7); + ZEPHIR_CALL_METHOD(&resultset, &serializer, "getdata", NULL, 0); zephir_check_call_status(); - zephir_array_update_string(&headers, SL("Php-Auth-Pw"), &_14$$7, PH_COPY | PH_SEPARATE); } else { - ZEPHIR_INIT_VAR(&_16$$8); - ZVAL_STRING(&_16$$8, "HTTP_AUTHORIZATION"); - ZEPHIR_CALL_METHOD(&_15$$8, this_ptr, "hasserver", NULL, 342, &_16$$8); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_16$$8); - ZVAL_STRING(&_16$$8, "REDIRECT_HTTP_AUTHORIZATION"); - ZEPHIR_CALL_METHOD(&_17$$8, this_ptr, "hasserver", NULL, 342, &_16$$8); + ZEPHIR_CALL_FUNCTION(&resultset, "unserialize", NULL, 15, data); zephir_check_call_status(); - if (zephir_is_true(&_15$$8)) { - ZEPHIR_INIT_VAR(&_18$$9); - ZVAL_STRING(&_18$$9, "HTTP_AUTHORIZATION"); - ZEPHIR_CALL_METHOD(&authHeader, this_ptr, "getserver", NULL, 0, &_18$$9); - zephir_check_call_status(); - } else if (zephir_is_true(&_17$$8)) { - ZEPHIR_INIT_VAR(&_19$$10); - ZVAL_STRING(&_19$$10, "REDIRECT_HTTP_AUTHORIZATION"); - ZEPHIR_CALL_METHOD(&authHeader, this_ptr, "getserver", NULL, 0, &_19$$10); - zephir_check_call_status(); - } - if (zephir_is_true(&authHeader)) { - ZEPHIR_INIT_VAR(&_20$$11); - ZVAL_STRING(&_20$$11, "basic "); - ZEPHIR_CALL_FUNCTION(&_21$$11, "stripos", NULL, 347, &authHeader, &_20$$11); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_20$$11); - ZVAL_STRING(&_20$$11, "digest "); - ZEPHIR_CALL_FUNCTION(&_22$$11, "stripos", NULL, 347, &authHeader, &_20$$11); - zephir_check_call_status(); - _23$$11 = ZEPHIR_IS_LONG_IDENTICAL(&_22$$11, 0); - if (_23$$11) { - ZEPHIR_INIT_NVAR(&_20$$11); - ZVAL_STRING(&_20$$11, "PHP_AUTH_DIGEST"); - ZEPHIR_CALL_METHOD(&_24$$11, this_ptr, "hasserver", NULL, 342, &_20$$11); - zephir_check_call_status(); - _23$$11 = !zephir_is_true(&_24$$11); - } - ZEPHIR_INIT_NVAR(&_20$$11); - ZVAL_STRING(&_20$$11, "bearer "); - ZEPHIR_CALL_FUNCTION(&_25$$11, "stripos", NULL, 347, &authHeader, &_20$$11); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG_IDENTICAL(&_21$$11, 0)) { - ZVAL_LONG(&_26$$12, 6); - ZEPHIR_INIT_VAR(&_27$$12); - zephir_substr(&_27$$12, &authHeader, 6 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - ZEPHIR_CALL_FUNCTION(&_28$$12, "base64_decode", NULL, 188, &_27$$12); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&exploded); - zephir_fast_explode_str(&exploded, SL(":"), &_28$$12, 2 ); - if (zephir_fast_count_int(&exploded) == 2) { - zephir_array_fetch_long(&_29$$13, &exploded, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1490); - zephir_array_update_string(&headers, SL("Php-Auth-User"), &_29$$13, PH_COPY | PH_SEPARATE); - zephir_array_fetch_long(&_30$$13, &exploded, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1491); - zephir_array_update_string(&headers, SL("Php-Auth-Pw"), &_30$$13, PH_COPY | PH_SEPARATE); - } - } else if (_23$$11) { - zephir_array_update_string(&headers, SL("Php-Auth-Digest"), &authHeader, PH_COPY | PH_SEPARATE); - } else if (ZEPHIR_IS_LONG_IDENTICAL(&_25$$11, 0)) { - zephir_array_update_string(&headers, SL("Authorization"), &authHeader, PH_COPY | PH_SEPARATE); - } - } - } - if (!(zephir_array_isset_string(&headers, SL("Authorization")))) { - ZEPHIR_OBS_VAR(&digest); - if (zephir_array_isset_string(&headers, SL("Php-Auth-User"))) { - zephir_array_fetch_string(&_31$$17, &headers, SL("Php-Auth-User"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1503); - zephir_array_fetch_string(&_32$$17, &headers, SL("Php-Auth-Pw"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1503); - ZEPHIR_INIT_VAR(&_33$$17); - ZEPHIR_CONCAT_VSV(&_33$$17, &_31$$17, ":", &_32$$17); - ZEPHIR_CALL_FUNCTION(&_34$$17, "base64_encode", NULL, 191, &_33$$17); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_35$$17); - ZEPHIR_CONCAT_SV(&_35$$17, "Basic ", &_34$$17); - zephir_array_update_string(&headers, SL("Authorization"), &_35$$17, PH_COPY | PH_SEPARATE); - } else if (zephir_array_isset_string_fetch(&digest, &headers, SL("Php-Auth-Digest"), 0)) { - zephir_array_update_string(&headers, SL("Authorization"), &digest, PH_COPY | PH_SEPARATE); - } - } - _36 = hasEventsManager; - if (_36) { - _36 = Z_TYPE_P(&eventsManager) == IS_OBJECT; } - if (_36) { - ZEPHIR_INIT_VAR(&_37$$19); - zephir_create_array(&_37$$19, 2, 0); - zephir_array_update_string(&_37$$19, SL("headers"), &headers, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_37$$19, SL("server"), &server, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_VAR(&_38$$19); - ZVAL_STRING(&_38$$19, "request:afterAuthorizationResolve"); - ZEPHIR_CALL_METHOD(&resolved, &eventsManager, "fire", NULL, 0, &_38$$19, this_ptr, &_37$$19); - zephir_check_call_status(); - if (Z_TYPE_P(&resolved) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&_39$$20); - zephir_fast_array_merge(&_39$$20, &headers, &resolved); - ZEPHIR_CPY_WRT(&headers, &_39$$20); - } + if (UNEXPECTED(Z_TYPE_P(&resultset) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid serialization data", "phalcon/Mvc/Model/Resultset/Complex.zep", 374); + return; } - RETURN_CTOR(&headers); + zephir_array_fetch_string(&_5, &resultset, SL("rows"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 377); + zephir_update_property_zval(this_ptr, ZEND_STRL("rows"), &_5); + zephir_array_fetch_string(&_6, &resultset, SL("rows"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 378); + ZEPHIR_INIT_ZVAL_NREF(_7); + ZVAL_LONG(&_7, zephir_fast_count_int(&_6)); + zephir_update_property_zval(this_ptr, ZEND_STRL("count"), &_7); + zephir_array_fetch_string(&_8, &resultset, SL("cache"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 379); + zephir_update_property_zval(this_ptr, ZEND_STRL("cache"), &_8); + zephir_array_fetch_string(&_9, &resultset, SL("columnTypes"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 380); + zephir_update_property_zval(this_ptr, ZEND_STRL("columnTypes"), &_9); + zephir_array_fetch_string(&_10, &resultset, SL("hydrateMode"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 381); + zephir_update_property_zval(this_ptr, ZEND_STRL("hydrateMode"), &_10); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Request, smoothFiles) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset_Simple) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\Resultset, Simple, phalcon, mvc_model_resultset_simple, phalcon_mvc_model_resultset_ce, phalcon_mvc_model_resultset_simple_method_entry, 0); + + zend_declare_property_null(phalcon_mvc_model_resultset_simple_ce, SL("columnMap"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_model_resultset_simple_ce, SL("model"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_model_resultset_simple_ce, SL("keepSnapshots"), 0, ZEND_ACC_PROTECTED); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, __construct) { - zend_string *_3; - zend_ulong _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_11 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval prefix; - zval *names_param = NULL, *types_param = NULL, *tmp_names_param = NULL, *sizes_param = NULL, *errors_param = NULL, *prefix_param = NULL, idx, name, file, files, parentFiles, p, *_0, _1, _5$$4, _6$$5, _7$$5, _8$$5, _9$$5, _10$$5, *_12$$5, _13$$5, _15$$9, _16$$10, _17$$10, _18$$10, _19$$10, _20$$10, *_21$$10, _22$$10; - zval names, types, tmp_names, sizes, errors, _4$$4, _14$$9; + zephir_fcall_cache_entry *_0 = NULL; + zend_bool keepSnapshots; + zval *columnMap, columnMap_sub, *model, model_sub, *result, result_sub, *cache = NULL, cache_sub, *keepSnapshots_param = NULL, __$true, __$false, __$null; zval *this_ptr = getThis(); - ZVAL_UNDEF(&names); - ZVAL_UNDEF(&types); - ZVAL_UNDEF(&tmp_names); - ZVAL_UNDEF(&sizes); - ZVAL_UNDEF(&errors); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_14$$9); - ZVAL_UNDEF(&idx); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&file); - ZVAL_UNDEF(&files); - ZVAL_UNDEF(&parentFiles); - ZVAL_UNDEF(&p); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_10$$5); - ZVAL_UNDEF(&_13$$5); - ZVAL_UNDEF(&_15$$9); - ZVAL_UNDEF(&_16$$10); - ZVAL_UNDEF(&_17$$10); - ZVAL_UNDEF(&_18$$10); - ZVAL_UNDEF(&_19$$10); - ZVAL_UNDEF(&_20$$10); - ZVAL_UNDEF(&_22$$10); - ZVAL_UNDEF(&prefix); + ZVAL_UNDEF(&columnMap_sub); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&result_sub); + ZVAL_UNDEF(&cache_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_NULL(&__$null); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(6, 6) - Z_PARAM_ARRAY(names) - Z_PARAM_ARRAY(types) - Z_PARAM_ARRAY(tmp_names) - Z_PARAM_ARRAY(sizes) - Z_PARAM_ARRAY(errors) - Z_PARAM_STR(prefix) + ZEND_PARSE_PARAMETERS_START(3, 5) + Z_PARAM_ZVAL(columnMap) + Z_PARAM_ZVAL(model) + Z_PARAM_ZVAL(result) + Z_PARAM_OPTIONAL + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(cache, zephir_get_internal_ce(SL("psr\\simplecache\\cacheinterface"))) + Z_PARAM_BOOL(keepSnapshots) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 6, 0, &names_param, &types_param, &tmp_names_param, &sizes_param, &errors_param, &prefix_param); - ZEPHIR_OBS_COPY_OR_DUP(&names, names_param); - ZEPHIR_OBS_COPY_OR_DUP(&types, types_param); - ZEPHIR_OBS_COPY_OR_DUP(&tmp_names, tmp_names_param); - ZEPHIR_OBS_COPY_OR_DUP(&sizes, sizes_param); - ZEPHIR_OBS_COPY_OR_DUP(&errors, errors_param); - zephir_get_strval(&prefix, prefix_param); + zephir_fetch_params(1, 3, 2, &columnMap, &model, &result, &cache, &keepSnapshots_param); + if (!cache) { + cache = &cache_sub; + cache = &__$null; + } + if (!keepSnapshots_param) { + keepSnapshots = 0; + } else { + keepSnapshots = zephir_get_boolval(keepSnapshots_param); + } - ZEPHIR_INIT_VAR(&files); - array_init(&files); - zephir_is_iterable(&names, 0, "phalcon/Http/Request.zep", 1567); - if (Z_TYPE_P(&names) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&names), _2, _3, _0) - { - ZEPHIR_INIT_NVAR(&idx); - if (_3 != NULL) { - ZVAL_STR_COPY(&idx, _3); - } else { - ZVAL_LONG(&idx, _2); - } - ZEPHIR_INIT_NVAR(&name); - ZVAL_COPY(&name, _0); - ZEPHIR_INIT_NVAR(&p); - ZEPHIR_CONCAT_VSV(&p, &prefix, ".", &idx); - if (Z_TYPE_P(&name) == IS_STRING) { - ZEPHIR_INIT_NVAR(&_4$$4); - zephir_create_array(&_4$$4, 6, 0); - zephir_array_update_string(&_4$$4, SL("name"), &name, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_5$$4); - zephir_array_fetch(&_5$$4, &types, &idx, PH_NOISY, "phalcon/Http/Request.zep", 1543); - zephir_array_update_string(&_4$$4, SL("type"), &_5$$4, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_5$$4); - zephir_array_fetch(&_5$$4, &tmp_names, &idx, PH_NOISY, "phalcon/Http/Request.zep", 1544); - zephir_array_update_string(&_4$$4, SL("tmp_name"), &_5$$4, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_5$$4); - zephir_array_fetch(&_5$$4, &sizes, &idx, PH_NOISY, "phalcon/Http/Request.zep", 1545); - zephir_array_update_string(&_4$$4, SL("size"), &_5$$4, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_5$$4); - zephir_array_fetch(&_5$$4, &errors, &idx, PH_NOISY, "phalcon/Http/Request.zep", 1546); - zephir_array_update_string(&_4$$4, SL("error"), &_5$$4, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_4$$4, SL("key"), &p, PH_COPY | PH_SEPARATE); - zephir_array_append(&files, &_4$$4, PH_SEPARATE, "phalcon/Http/Request.zep", 1548); - } - if (Z_TYPE_P(&name) == IS_ARRAY) { - zephir_array_fetch(&_6$$5, &names, &idx, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1553); - zephir_array_fetch(&_7$$5, &types, &idx, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1554); - zephir_array_fetch(&_8$$5, &tmp_names, &idx, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1555); - zephir_array_fetch(&_9$$5, &sizes, &idx, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1556); - zephir_array_fetch(&_10$$5, &errors, &idx, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1557); - ZEPHIR_CALL_METHOD(&parentFiles, this_ptr, "smoothfiles", &_11, 349, &_6$$5, &_7$$5, &_8$$5, &_9$$5, &_10$$5, &p); - zephir_check_call_status(); - zephir_is_iterable(&parentFiles, 0, "phalcon/Http/Request.zep", 1564); - if (Z_TYPE_P(&parentFiles) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&parentFiles), _12$$5) - { - ZEPHIR_INIT_NVAR(&file); - ZVAL_COPY(&file, _12$$5); - zephir_array_append(&files, &file, PH_SEPARATE, "phalcon/Http/Request.zep", 1562); - } ZEND_HASH_FOREACH_END(); + zephir_update_property_zval(this_ptr, ZEND_STRL("model"), model); + zephir_update_property_zval(this_ptr, ZEND_STRL("columnMap"), columnMap); + if (keepSnapshots) { + zephir_update_property_zval(this_ptr, ZEND_STRL("keepSnapshots"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("keepSnapshots"), &__$false); + } + ZEPHIR_CALL_PARENT(NULL, phalcon_mvc_model_resultset_simple_ce, getThis(), "__construct", &_0, 0, result, cache); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, current) +{ + zend_class_entry *_6$$6; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_7 = NULL, *_11 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval __$true, __$false, row, hydrateMode, columnMap, activeRow, modelName, _0, _1$$6, _3$$6, _4$$6, _5$$6, _2$$7, _8$$9, _9$$9, _10$$9; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&row); + ZVAL_UNDEF(&hydrateMode); + ZVAL_UNDEF(&columnMap); + ZVAL_UNDEF(&activeRow); + ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$6); + ZVAL_UNDEF(&_3$$6); + ZVAL_UNDEF(&_4$$6); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&_2$$7); + ZVAL_UNDEF(&_8$$9); + ZVAL_UNDEF(&_9$$9); + ZVAL_UNDEF(&_10$$9); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("activeRow"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&activeRow, &_0); + if (Z_TYPE_P(&activeRow) != IS_NULL) { + RETURN_CCTOR(&activeRow); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("row"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&row, &_0); + if (Z_TYPE_P(&row) != IS_ARRAY) { + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("activeRow"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("activeRow"), &__$false); + } + RETURN_MM_NULL(); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("hydrateMode"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&hydrateMode, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&columnMap, &_0); + do { + if (ZEPHIR_IS_LONG(&hydrateMode, 0)) { + if (ZEPHIR_GLOBAL(orm).late_state_binding) { + ZEPHIR_OBS_VAR(&_1$$6); + zephir_read_property(&_1$$6, this_ptr, ZEND_STRL("model"), PH_NOISY_CC); + if (zephir_instance_of_ev(&_1$$6, phalcon_mvc_model_ce)) { + zephir_read_property(&_2$$7, this_ptr, ZEND_STRL("model"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&modelName); + zephir_get_class(&modelName, &_2$$7, 0); } else { - ZEPHIR_CALL_METHOD(NULL, &parentFiles, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_13$$5, &parentFiles, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_13$$5)) { - break; - } - ZEPHIR_CALL_METHOD(&file, &parentFiles, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_append(&files, &file, PH_SEPARATE, "phalcon/Http/Request.zep", 1562); - ZEPHIR_CALL_METHOD(NULL, &parentFiles, "next", NULL, 0); - zephir_check_call_status(); - } + ZEPHIR_INIT_NVAR(&modelName); + ZVAL_STRING(&modelName, "Phalcon\\Mvc\\Model"); } - ZEPHIR_INIT_NVAR(&file); + zephir_read_property(&_3$$6, this_ptr, ZEND_STRL("model"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_4$$6, this_ptr, ZEND_STRL("keepSnapshots"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_5$$6, 0); + _6$$6 = zephir_fetch_class(&modelName); + ZEPHIR_CALL_CE_STATIC(&activeRow, _6$$6, "cloneresultmap", NULL, 0, &_3$$6, &row, &columnMap, &_5$$6, &_4$$6); + zephir_check_call_status(); + } else { + zephir_read_property(&_8$$9, this_ptr, ZEND_STRL("model"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_9$$9, this_ptr, ZEND_STRL("keepSnapshots"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_10$$9, 0); + ZEPHIR_CALL_CE_STATIC(&activeRow, phalcon_mvc_model_ce, "cloneresultmap", &_7, 0, &_8$$9, &row, &columnMap, &_10$$9, &_9$$9); + zephir_check_call_status(); } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &names, "rewind", NULL, 0); + break; + } + ZEPHIR_CALL_CE_STATIC(&activeRow, phalcon_mvc_model_ce, "cloneresultmaphydrate", &_11, 0, &row, &columnMap, &hydrateMode); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &names, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&idx, &names, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&name, &names, "current", NULL, 0); + break; + } while(0); + + zephir_update_property_zval(this_ptr, ZEND_STRL("activeRow"), &activeRow); + RETURN_CCTOR(&activeRow); +} + +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray) +{ + zend_string *_9$$8, *_22$$17; + zend_ulong _8$$8, _21$$17; + zval renamedRecords, renamed; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_12 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *renameColumns_param = NULL, __$null, result, records, record, renamedKey, key, value, columnMap, _2, _0$$3, _3$$5, *_4$$7, _5$$7, *_6$$8, _7$$8, _10$$10, _11$$10, _13$$12, _14$$12, _15$$14, _16$$14, _17$$16, _18$$16, *_19$$17, _20$$17, _23$$19, _24$$19, _25$$21, _26$$21, _27$$23, _28$$23, _29$$25, _30$$25; + zend_bool renameColumns, _1; + zval *this_ptr = getThis(); + + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&records); + ZVAL_UNDEF(&record); + ZVAL_UNDEF(&renamedKey); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&columnMap); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_5$$7); + ZVAL_UNDEF(&_7$$8); + ZVAL_UNDEF(&_10$$10); + ZVAL_UNDEF(&_11$$10); + ZVAL_UNDEF(&_13$$12); + ZVAL_UNDEF(&_14$$12); + ZVAL_UNDEF(&_15$$14); + ZVAL_UNDEF(&_16$$14); + ZVAL_UNDEF(&_17$$16); + ZVAL_UNDEF(&_18$$16); + ZVAL_UNDEF(&_20$$17); + ZVAL_UNDEF(&_23$$19); + ZVAL_UNDEF(&_24$$19); + ZVAL_UNDEF(&_25$$21); + ZVAL_UNDEF(&_26$$21); + ZVAL_UNDEF(&_27$$23); + ZVAL_UNDEF(&_28$$23); + ZVAL_UNDEF(&_29$$25); + ZVAL_UNDEF(&_30$$25); + ZVAL_UNDEF(&renamedRecords); + ZVAL_UNDEF(&renamed); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(renameColumns) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &renameColumns_param); + if (!renameColumns_param) { + renameColumns = 1; + } else { + renameColumns = zephir_get_boolval(renameColumns_param); + } + + + ZEPHIR_OBS_VAR(&records); + zephir_read_property(&records, this_ptr, ZEND_STRL("rows"), PH_NOISY_CC); + if (Z_TYPE_P(&records) != IS_ARRAY) { + zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("result"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&result, &_0$$3); + zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("row"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0$$3) != IS_NULL) { + ZEPHIR_CALL_METHOD(NULL, &result, "execute", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&p); - ZEPHIR_CONCAT_VSV(&p, &prefix, ".", &idx); - if (Z_TYPE_P(&name) == IS_STRING) { - ZEPHIR_INIT_NVAR(&_14$$9); - zephir_create_array(&_14$$9, 6, 0); - zephir_array_update_string(&_14$$9, SL("name"), &name, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_15$$9); - zephir_array_fetch(&_15$$9, &types, &idx, PH_NOISY, "phalcon/Http/Request.zep", 1543); - zephir_array_update_string(&_14$$9, SL("type"), &_15$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_15$$9); - zephir_array_fetch(&_15$$9, &tmp_names, &idx, PH_NOISY, "phalcon/Http/Request.zep", 1544); - zephir_array_update_string(&_14$$9, SL("tmp_name"), &_15$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_15$$9); - zephir_array_fetch(&_15$$9, &sizes, &idx, PH_NOISY, "phalcon/Http/Request.zep", 1545); - zephir_array_update_string(&_14$$9, SL("size"), &_15$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_15$$9); - zephir_array_fetch(&_15$$9, &errors, &idx, PH_NOISY, "phalcon/Http/Request.zep", 1546); - zephir_array_update_string(&_14$$9, SL("error"), &_15$$9, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_14$$9, SL("key"), &p, PH_COPY | PH_SEPARATE); - zephir_array_append(&files, &_14$$9, PH_SEPARATE, "phalcon/Http/Request.zep", 1548); - } - if (Z_TYPE_P(&name) == IS_ARRAY) { - zephir_array_fetch(&_16$$10, &names, &idx, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1553); - zephir_array_fetch(&_17$$10, &types, &idx, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1554); - zephir_array_fetch(&_18$$10, &tmp_names, &idx, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1555); - zephir_array_fetch(&_19$$10, &sizes, &idx, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1556); - zephir_array_fetch(&_20$$10, &errors, &idx, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1557); - ZEPHIR_CALL_METHOD(&parentFiles, this_ptr, "smoothfiles", &_11, 349, &_16$$10, &_17$$10, &_18$$10, &_19$$10, &_20$$10, &p); - zephir_check_call_status(); - zephir_is_iterable(&parentFiles, 0, "phalcon/Http/Request.zep", 1564); - if (Z_TYPE_P(&parentFiles) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&parentFiles), _21$$10) + } + ZEPHIR_CALL_METHOD(&records, &result, "fetchall", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("row"), &__$null); + zephir_update_property_zval(this_ptr, ZEND_STRL("rows"), &records); + } + _1 = renameColumns; + if (_1) { + ZEPHIR_OBS_VAR(&_2); + zephir_read_property(&_2, this_ptr, ZEND_STRL("model"), PH_NOISY_CC); + _1 = !(zephir_instance_of_ev(&_2, phalcon_mvc_model_row_ce)); + } + if (_1) { + zephir_read_property(&_3$$5, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&columnMap, &_3$$5); + if (Z_TYPE_P(&columnMap) != IS_ARRAY) { + RETURN_CCTOR(&records); + } + ZEPHIR_INIT_VAR(&renamedRecords); + array_init(&renamedRecords); + if (Z_TYPE_P(&records) == IS_ARRAY) { + zephir_is_iterable(&records, 0, "phalcon/Mvc/Model/Resultset/Simple.zep", 241); + if (Z_TYPE_P(&records) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&records), _4$$7) + { + ZEPHIR_INIT_NVAR(&record); + ZVAL_COPY(&record, _4$$7); + ZEPHIR_INIT_NVAR(&renamed); + array_init(&renamed); + zephir_is_iterable(&record, 0, "phalcon/Mvc/Model/Resultset/Simple.zep", 239); + if (Z_TYPE_P(&record) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&record), _8$$8, _9$$8, _6$$8) { - ZEPHIR_INIT_NVAR(&file); - ZVAL_COPY(&file, _21$$10); - zephir_array_append(&files, &file, PH_SEPARATE, "phalcon/Http/Request.zep", 1562); + ZEPHIR_INIT_NVAR(&key); + if (_9$$8 != NULL) { + ZVAL_STR_COPY(&key, _9$$8); + } else { + ZVAL_LONG(&key, _8$$8); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _6$$8); + ZEPHIR_OBS_NVAR(&renamedKey); + if (UNEXPECTED(!(zephir_array_isset_fetch(&renamedKey, &columnMap, &key, 0)))) { + ZEPHIR_INIT_NVAR(&_10$$10); + object_init_ex(&_10$$10, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_11$$10); + ZEPHIR_CONCAT_SVS(&_11$$10, "Column '", &key, "' is not part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_10$$10, "__construct", &_12, 8, &_11$$10); + zephir_check_call_status(); + zephir_throw_exception_debug(&_10$$10, "phalcon/Mvc/Model/Resultset/Simple.zep", 222); + ZEPHIR_MM_RESTORE(); + return; + } + if (Z_TYPE_P(&renamedKey) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&renamedKey); + if (UNEXPECTED(!(zephir_array_isset_long_fetch(&renamedKey, &renamedKey, 0, 0)))) { + ZEPHIR_INIT_NVAR(&_13$$12); + object_init_ex(&_13$$12, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_14$$12); + ZEPHIR_CONCAT_SVS(&_14$$12, "Column '", &key, "' is not part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_13$$12, "__construct", &_12, 8, &_14$$12); + zephir_check_call_status(); + zephir_throw_exception_debug(&_13$$12, "phalcon/Mvc/Model/Resultset/Simple.zep", 229); + ZEPHIR_MM_RESTORE(); + return; + } + } + zephir_array_update_zval(&renamed, &renamedKey, &value, PH_COPY | PH_SEPARATE); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &parentFiles, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &record, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_22$$10, &parentFiles, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_7$$8, &record, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_22$$10)) { + if (!zend_is_true(&_7$$8)) { break; } - ZEPHIR_CALL_METHOD(&file, &parentFiles, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&key, &record, "key", NULL, 0); zephir_check_call_status(); - zephir_array_append(&files, &file, PH_SEPARATE, "phalcon/Http/Request.zep", 1562); - ZEPHIR_CALL_METHOD(NULL, &parentFiles, "next", NULL, 0); + ZEPHIR_CALL_METHOD(&value, &record, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&renamedKey); + if (UNEXPECTED(!(zephir_array_isset_fetch(&renamedKey, &columnMap, &key, 0)))) { + ZEPHIR_INIT_NVAR(&_15$$14); + object_init_ex(&_15$$14, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_16$$14); + ZEPHIR_CONCAT_SVS(&_16$$14, "Column '", &key, "' is not part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_15$$14, "__construct", &_12, 8, &_16$$14); + zephir_check_call_status(); + zephir_throw_exception_debug(&_15$$14, "phalcon/Mvc/Model/Resultset/Simple.zep", 222); + ZEPHIR_MM_RESTORE(); + return; + } + if (Z_TYPE_P(&renamedKey) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&renamedKey); + if (UNEXPECTED(!(zephir_array_isset_long_fetch(&renamedKey, &renamedKey, 0, 0)))) { + ZEPHIR_INIT_NVAR(&_17$$16); + object_init_ex(&_17$$16, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_18$$16); + ZEPHIR_CONCAT_SVS(&_18$$16, "Column '", &key, "' is not part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_17$$16, "__construct", &_12, 8, &_18$$16); + zephir_check_call_status(); + zephir_throw_exception_debug(&_17$$16, "phalcon/Mvc/Model/Resultset/Simple.zep", 229); + ZEPHIR_MM_RESTORE(); + return; + } + } + zephir_array_update_zval(&renamed, &renamedKey, &value, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &record, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&file); + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + zephir_array_append(&renamedRecords, &renamed, PH_SEPARATE, "phalcon/Mvc/Model/Resultset/Simple.zep", 239); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &records, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_5$$7, &records, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_5$$7)) { + break; + } + ZEPHIR_CALL_METHOD(&record, &records, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&renamed); + array_init(&renamed); + zephir_is_iterable(&record, 0, "phalcon/Mvc/Model/Resultset/Simple.zep", 239); + if (Z_TYPE_P(&record) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&record), _21$$17, _22$$17, _19$$17) + { + ZEPHIR_INIT_NVAR(&key); + if (_22$$17 != NULL) { + ZVAL_STR_COPY(&key, _22$$17); + } else { + ZVAL_LONG(&key, _21$$17); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _19$$17); + ZEPHIR_OBS_NVAR(&renamedKey); + if (UNEXPECTED(!(zephir_array_isset_fetch(&renamedKey, &columnMap, &key, 0)))) { + ZEPHIR_INIT_NVAR(&_23$$19); + object_init_ex(&_23$$19, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_24$$19); + ZEPHIR_CONCAT_SVS(&_24$$19, "Column '", &key, "' is not part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_23$$19, "__construct", &_12, 8, &_24$$19); + zephir_check_call_status(); + zephir_throw_exception_debug(&_23$$19, "phalcon/Mvc/Model/Resultset/Simple.zep", 222); + ZEPHIR_MM_RESTORE(); + return; + } + if (Z_TYPE_P(&renamedKey) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&renamedKey); + if (UNEXPECTED(!(zephir_array_isset_long_fetch(&renamedKey, &renamedKey, 0, 0)))) { + ZEPHIR_INIT_NVAR(&_25$$21); + object_init_ex(&_25$$21, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_26$$21); + ZEPHIR_CONCAT_SVS(&_26$$21, "Column '", &key, "' is not part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_25$$21, "__construct", &_12, 8, &_26$$21); + zephir_check_call_status(); + zephir_throw_exception_debug(&_25$$21, "phalcon/Mvc/Model/Resultset/Simple.zep", 229); + ZEPHIR_MM_RESTORE(); + return; + } + } + zephir_array_update_zval(&renamed, &renamedKey, &value, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &record, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_20$$17, &record, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_20$$17)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &record, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &record, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&renamedKey); + if (UNEXPECTED(!(zephir_array_isset_fetch(&renamedKey, &columnMap, &key, 0)))) { + ZEPHIR_INIT_NVAR(&_27$$23); + object_init_ex(&_27$$23, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_28$$23); + ZEPHIR_CONCAT_SVS(&_28$$23, "Column '", &key, "' is not part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_27$$23, "__construct", &_12, 8, &_28$$23); + zephir_check_call_status(); + zephir_throw_exception_debug(&_27$$23, "phalcon/Mvc/Model/Resultset/Simple.zep", 222); + ZEPHIR_MM_RESTORE(); + return; + } + if (Z_TYPE_P(&renamedKey) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&renamedKey); + if (UNEXPECTED(!(zephir_array_isset_long_fetch(&renamedKey, &renamedKey, 0, 0)))) { + ZEPHIR_INIT_NVAR(&_29$$25); + object_init_ex(&_29$$25, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_NVAR(&_30$$25); + ZEPHIR_CONCAT_SVS(&_30$$25, "Column '", &key, "' is not part of the column map"); + ZEPHIR_CALL_METHOD(NULL, &_29$$25, "__construct", &_12, 8, &_30$$25); + zephir_check_call_status(); + zephir_throw_exception_debug(&_29$$25, "phalcon/Mvc/Model/Resultset/Simple.zep", 229); + ZEPHIR_MM_RESTORE(); + return; + } + } + zephir_array_update_zval(&renamed, &renamedKey, &value, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &record, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + zephir_array_append(&renamedRecords, &renamed, PH_SEPARATE, "phalcon/Mvc/Model/Resultset/Simple.zep", 239); + ZEPHIR_CALL_METHOD(NULL, &records, "next", NULL, 0); + zephir_check_call_status(); } - ZEPHIR_CALL_METHOD(NULL, &names, "next", NULL, 0); - zephir_check_call_status(); + } + ZEPHIR_INIT_NVAR(&record); } + RETURN_CTOR(&renamedRecords); } - ZEPHIR_INIT_NVAR(&name); - ZEPHIR_INIT_NVAR(&idx); - RETURN_CCTOR(&files); + RETURN_CCTOR(&records); } -static PHP_METHOD(Phalcon_Http_Request, getFilterService) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, serialize) { - zval container, filterService, _0, _1$$3, _6$$3, _7$$3, _2$$4, _3$$4, _5$$4; + zval data; + zval container, serializer, _1, _2, _3, _4, _5$$4, _6$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_4 = NULL; + zephir_fcall_cache_entry *_0 = NULL; zval *this_ptr = getThis(); ZVAL_UNDEF(&container); - ZVAL_UNDEF(&filterService); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&serializer); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&data); ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("filterService"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&filterService, &_0); - if (Z_TYPE_P(&filterService) != IS_OBJECT) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_1$$3); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_2$$4); - object_init_ex(&_2$$4, phalcon_http_request_exception_ce); - ZEPHIR_INIT_VAR(&_5$$4); - ZVAL_STRING(&_5$$4, "the 'filter' service"); - ZEPHIR_CALL_CE_STATIC(&_3$$4, phalcon_http_request_exception_ce, "containerservicenotfound", &_4, 0, &_5$$4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_2$$4, "__construct", NULL, 8, &_3$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_2$$4, "phalcon/Http/Request.zep", 1585); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_VAR(&_7$$3); - ZVAL_STRING(&_7$$3, "filter"); - ZEPHIR_CALL_METHOD(&_6$$3, &container, "getshared", NULL, 0, &_7$$3); + ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_0, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The dependency injector container is not valid", "phalcon/Mvc/Model/Resultset/Simple.zep", 262); + return; + } + ZEPHIR_INIT_VAR(&data); + zephir_create_array(&data, 6, 0); + ZEPHIR_OBS_VAR(&_1); + zephir_read_property(&_1, this_ptr, ZEND_STRL("model"), PH_NOISY_CC); + zephir_array_update_string(&data, SL("model"), &_1, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_1); + zephir_read_property(&_1, this_ptr, ZEND_STRL("cache"), PH_NOISY_CC); + zephir_array_update_string(&data, SL("cache"), &_1, PH_COPY | PH_SEPARATE); + ZVAL_BOOL(&_3, 0); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "toarray", NULL, 0, &_3); + zephir_check_call_status(); + zephir_array_update_string(&data, SL("rows"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_1); + zephir_read_property(&_1, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC); + zephir_array_update_string(&data, SL("columnMap"), &_1, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_1); + zephir_read_property(&_1, this_ptr, ZEND_STRL("hydrateMode"), PH_NOISY_CC); + zephir_array_update_string(&data, SL("hydrateMode"), &_1, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_1); + zephir_read_property(&_1, this_ptr, ZEND_STRL("keepSnapshots"), PH_NOISY_CC); + zephir_array_update_string(&data, SL("keepSnapshots"), &_1, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "serializer"); + ZEPHIR_CALL_METHOD(&_2, &container, "has", NULL, 0, &_4); + zephir_check_call_status(); + if (zephir_is_true(&_2)) { + ZEPHIR_INIT_VAR(&_6$$4); + ZVAL_STRING(&_6$$4, "serializer"); + ZEPHIR_CALL_METHOD(&_5$$4, &container, "getshared", NULL, 0, &_6$$4); zephir_check_call_status(); - ZEPHIR_CPY_WRT(&filterService, &_6$$3); - zephir_update_property_zval(this_ptr, ZEND_STRL("filterService"), &filterService); + ZEPHIR_CPY_WRT(&serializer, &_5$$4); + ZEPHIR_CALL_METHOD(NULL, &serializer, "setdata", NULL, 0, &data); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(&serializer, "serialize", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } - RETURN_MM_MEMBER(getThis(), "filterService"); + ZEPHIR_RETURN_CALL_FUNCTION("serialize", NULL, 13, &data); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Http_Request, getServerArray) +static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, unserialize) { - zval _SERVER; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *data, data_sub, resultset, keepSnapshots, container, serializer, _1, _2, _5, _6, _7, _8, _9, _10, _11, _3$$4, _4$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_SERVER); + ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&resultset); + ZVAL_UNDEF(&keepSnapshots); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&serializer); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_END(); +#endif - zephir_get_global(&_SERVER, SL("_SERVER")); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &data); - if (zephir_is_true(&_SERVER)) { - RETVAL_ZVAL(&_SERVER, 1, 0); + + ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_0, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The dependency injector container is not valid", "phalcon/Mvc/Model/Resultset/Simple.zep", 300); return; + } + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "serializer"); + ZEPHIR_CALL_METHOD(&_1, &container, "has", NULL, 0, &_2); + zephir_check_call_status(); + if (zephir_is_true(&_1)) { + ZEPHIR_INIT_VAR(&_4$$4); + ZVAL_STRING(&_4$$4, "serializer"); + ZEPHIR_CALL_METHOD(&_3$$4, &container, "getshared", NULL, 0, &_4$$4); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&serializer, &_3$$4); + ZEPHIR_CALL_METHOD(NULL, &serializer, "unserialize", NULL, 0, data); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&resultset, &serializer, "getdata", NULL, 0); + zephir_check_call_status(); } else { - array_init(return_value); + ZEPHIR_CALL_FUNCTION(&resultset, "unserialize", NULL, 15, data); + zephir_check_call_status(); + } + if (UNEXPECTED(Z_TYPE_P(&resultset) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid serialization data", "phalcon/Mvc/Model/Resultset/Simple.zep", 313); return; } -} - -zend_object *zephir_init_properties_Phalcon_Http_Request(zend_class_entry *class_type) -{ - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("queryFilters"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("queryFilters"), &_1$$3); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); + zephir_array_fetch_string(&_5, &resultset, SL("model"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Simple.zep", 316); + zephir_update_property_zval(this_ptr, ZEND_STRL("model"), &_5); + zephir_array_fetch_string(&_6, &resultset, SL("rows"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Simple.zep", 317); + zephir_update_property_zval(this_ptr, ZEND_STRL("rows"), &_6); + zephir_array_fetch_string(&_7, &resultset, SL("rows"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Simple.zep", 318); + ZEPHIR_INIT_ZVAL_NREF(_8); + ZVAL_LONG(&_8, zephir_fast_count_int(&_7)); + zephir_update_property_zval(this_ptr, ZEND_STRL("count"), &_8); + zephir_array_fetch_string(&_9, &resultset, SL("cache"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Simple.zep", 319); + zephir_update_property_zval(this_ptr, ZEND_STRL("cache"), &_9); + zephir_array_fetch_string(&_10, &resultset, SL("columnMap"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Simple.zep", 320); + zephir_update_property_zval(this_ptr, ZEND_STRL("columnMap"), &_10); + zephir_array_fetch_string(&_11, &resultset, SL("hydrateMode"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Simple.zep", 321); + zephir_update_property_zval(this_ptr, ZEND_STRL("hydrateMode"), &_11); + if (zephir_array_isset_string_fetch(&keepSnapshots, &resultset, SL("keepSnapshots"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("keepSnapshots"), &keepSnapshots); } + ZEPHIR_MM_RESTORE(); } @@ -101021,63 +90737,70 @@ zend_object *zephir_init_properties_Phalcon_Http_Request(zend_class_entry *class -ZEPHIR_INIT_CLASS(Phalcon_Http_RequestInterface) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_MetaData_Apcu) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Http, RequestInterface, phalcon, http_requestinterface, phalcon_http_requestinterface_method_entry); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\MetaData, Apcu, phalcon, mvc_model_metadata_apcu, phalcon_mvc_model_metadata_ce, phalcon_mvc_model_metadata_apcu_method_entry, 0); return SUCCESS; } -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, get); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getAcceptableContent); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getBasicAuth); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getBestAccept); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getBestCharset); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getBestLanguage); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getClientAddress); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getClientCharsets); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getContentType); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getDigestAuth); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getHeader); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getHeaders); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getHttpHost); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getHTTPReferer); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getJsonRawBody); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getLanguages); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getMethod); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getPort); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getURI); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getPost); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getPut); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getQuery); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getRawBody); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getScheme); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getServer); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getServerAddress); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getServerName); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getUploadedFiles); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getUserAgent); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, has); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, hasFiles); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, hasHeader); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, hasQuery); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, hasPost); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, hasPut); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, hasServer); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isAjax); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isConnect); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isDelete); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isGet); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isHead); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isMethod); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isOptions); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isPost); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isPurge); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isPut); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isSecure); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isSoap); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isTrace); -ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, numFiles); +static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Apcu, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_1 = NULL; + zval options; + zval *factory, factory_sub, *options_param = NULL, _0, _2, _3, _4, _5, _6; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&factory_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&options); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_cache_adapterfactory_ce) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY_OR_NULL(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &factory, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } + + + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "prefix"); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "ph-mm-apcu-"); + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("prefix"), &_0, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "lifetime"); + ZVAL_LONG(&_5, 172800); + ZEPHIR_CALL_CE_STATIC(&_4, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_5); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("lifetime"), &_4, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "apcu"); + ZEPHIR_CALL_METHOD(&_6, factory, "newinstance", NULL, 0, &_2, &options); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("adapter"), &_6); + ZEPHIR_MM_RESTORE(); +} + @@ -101088,1525 +90811,2084 @@ ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, numFiles); -ZEPHIR_INIT_CLASS(Phalcon_Http_Response) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_MetaData_Libmemcached) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Http, Response, phalcon, http_response, phalcon_http_response_method_entry, 0); - - zend_declare_property_null(phalcon_http_response_ce, SL("container"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_response_ce, SL("content"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_response_ce, SL("cookies"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_response_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_response_ce, SL("file"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_response_ce, SL("headers"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_http_response_ce, SL("sent"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_response_ce, SL("statusCodes"), ZEND_ACC_PROTECTED); - phalcon_http_response_ce->create_object = zephir_init_properties_Phalcon_Http_Response; + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\MetaData, Libmemcached, phalcon, mvc_model_metadata_libmemcached, phalcon_mvc_model_metadata_ce, phalcon_mvc_model_metadata_libmemcached_method_entry, 0); - zend_class_implements(phalcon_http_response_ce, 1, phalcon_http_responseinterface_ce); - zend_class_implements(phalcon_http_response_ce, 1, phalcon_di_injectionawareinterface_ce); - zend_class_implements(phalcon_http_response_ce, 1, phalcon_events_eventsawareinterface_ce); - zend_class_implements(phalcon_http_response_ce, 1, phalcon_http_message_responsestatuscodeinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Http_Response, __construct) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Libmemcached, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *content_param = NULL, *code = NULL, code_sub, *status = NULL, status_sub, __$null, _0; - zval content; + zephir_fcall_cache_entry *_1 = NULL; + zval options; + zval *factory, factory_sub, *options_param = NULL, _0, _2, _3, _4, _5, _6, _7; zval *this_ptr = getThis(); - ZVAL_UNDEF(&content); - ZVAL_UNDEF(&code_sub); - ZVAL_UNDEF(&status_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&factory_sub); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 3) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_cache_adapterfactory_ce) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(content) - Z_PARAM_ZVAL_OR_NULL(code) - Z_PARAM_ZVAL_OR_NULL(status) + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 3, &content_param, &code, &status); - if (!content_param) { - ZEPHIR_INIT_VAR(&content); - } else { - if (UNEXPECTED(Z_TYPE_P(content_param) != IS_STRING && Z_TYPE_P(content_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'content' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(content_param) == IS_STRING)) { - zephir_get_strval(&content, content_param); + zephir_fetch_params(1, 1, 1, &factory, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); } else { - ZEPHIR_INIT_VAR(&content); - } - } - if (!code) { - code = &code_sub; - code = &__$null; - } - if (!status) { - status = &status_sub; - status = &__$null; + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); } - ZEPHIR_INIT_VAR(&_0); - object_init_ex(&_0, phalcon_http_response_headers_ce); - if (zephir_has_constructor(&_0)) { - ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 0); - zephir_check_call_status(); - } - - zephir_update_property_zval(this_ptr, ZEND_STRL("headers"), &_0); - if (!ZEPHIR_IS_NULL(&content)) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setcontent", NULL, 0, &content); - zephir_check_call_status(); - } - if (Z_TYPE_P(code) != IS_NULL) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setstatuscode", NULL, 0, code, status); - zephir_check_call_status(); - } + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "persistentId"); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "ph-mm-mcid-"); + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("persistentId"), &_0, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "prefix"); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "ph-mm-memc-"); + ZEPHIR_CALL_CE_STATIC(&_4, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("prefix"), &_4, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "lifetime"); + ZVAL_LONG(&_6, 172800); + ZEPHIR_CALL_CE_STATIC(&_5, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_6); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("lifetime"), &_5, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "libmemcached"); + ZEPHIR_CALL_METHOD(&_7, factory, "newinstance", NULL, 0, &_2, &options); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("adapter"), &_7); ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Response, appendContent) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Libmemcached, reset) { + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_1 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *content, content_sub, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&content_sub); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(content) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &content); - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getcontent", NULL, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "clear", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_CONCAT_VV(&_1, &_0, content); - zephir_update_property_zval(this_ptr, ZEND_STRL("content"), &_1); - RETURN_THIS(); + ZEPHIR_CALL_PARENT(NULL, phalcon_mvc_model_metadata_libmemcached_ce, getThis(), "reset", &_1, 0); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Response, getContent) -{ - zval _1; - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZEPHIR_MM_GROW(); +#ifdef HAVE_CONFIG_H +#endif - ZEPHIR_OBS_VAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("content"), PH_NOISY_CC); - zephir_cast_to_string(&_1, &_0); - RETURN_CTOR(&_1); -} -static PHP_METHOD(Phalcon_Http_Response, getCookies) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "cookies"); +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_MetaData_Memory) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\MetaData, Memory, phalcon, mvc_model_metadata_memory, phalcon_mvc_model_metadata_ce, phalcon_mvc_model_metadata_memory_method_entry, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Http_Response, getDI) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Memory, __construct) { - zval container, _0, _2$$4, _3$$4, _5$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL, *_4 = NULL; + zval *options = NULL, options_sub, __$null; zval *this_ptr = getThis(); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$4); - + ZVAL_UNDEF(&options_sub); + ZVAL_NULL(&__$null); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(options) + ZEND_PARSE_PARAMETERS_END(); +#endif - ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - if (Z_TYPE_P(&container) != IS_OBJECT) { - ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_1, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_2$$4); - object_init_ex(&_2$$4, phalcon_http_response_exception_ce); - ZEPHIR_INIT_VAR(&_5$$4); - ZVAL_STRING(&_5$$4, "the 'url' service"); - ZEPHIR_CALL_CE_STATIC(&_3$$4, phalcon_http_response_exception_ce, "containerservicenotfound", &_4, 0, &_5$$4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_2$$4, "__construct", NULL, 8, &_3$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_2$$4, "phalcon/Http/Response.zep", 148); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), &container); + zephir_fetch_params_without_memory_grow(0, 1, &options); + if (!options) { + options = &options_sub; + options = &__$null; } - RETURN_CCTOR(&container); -} - -static PHP_METHOD(Phalcon_Http_Response, getEventsManager) -{ - zval *this_ptr = getThis(); - - RETURN_MEMBER(getThis(), "eventsManager"); } -static PHP_METHOD(Phalcon_Http_Response, getHeaders) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Memory, read) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *key_param = NULL; + zval key; zval *this_ptr = getThis(); + ZVAL_UNDEF(&key); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "headers"); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &key_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } + + + RETURN_MM_NULL(); } -static PHP_METHOD(Phalcon_Http_Response, getReasonPhrase) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Memory, write) { - zval statusReasonPhrase, _0, _1, _2, _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval data; + zval *key_param = NULL, *data_param = NULL; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statusReasonPhrase); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&data); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(key) + Z_PARAM_ARRAY(data) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getheaders", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "Status"); - ZEPHIR_CALL_METHOD(&_1, &_0, "get", NULL, 0, &_2); - zephir_check_call_status(); - ZVAL_LONG(&_3, 4); - ZEPHIR_INIT_VAR(&statusReasonPhrase); - zephir_substr(&statusReasonPhrase, &_1, 4 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - ZEPHIR_INIT_NVAR(&_2); - if (zephir_is_true(&statusReasonPhrase)) { - ZEPHIR_CPY_WRT(&_2, &statusReasonPhrase); + zephir_fetch_params(1, 2, 0, &key_param, &data_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZVAL_NULL(&_2); + ZEPHIR_INIT_VAR(&key); } - RETURN_CCTOR(&_2); -} - -static PHP_METHOD(Phalcon_Http_Response, getStatusCode) -{ - zval statusCode, _0, _1, _2, _3, _4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); + zephir_get_arrval(&data, data_param); - ZVAL_UNDEF(&statusCode); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); + RETURN_MM_NULL(); +} - ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getheaders", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "Status"); - ZEPHIR_CALL_METHOD(&_1, &_0, "get", NULL, 0, &_2); - zephir_check_call_status(); - ZVAL_LONG(&_3, 0); - ZVAL_LONG(&_4, 3); - ZEPHIR_INIT_VAR(&statusCode); - zephir_substr(&statusCode, &_1, 0 , 3 , 0); - ZEPHIR_INIT_NVAR(&_2); - if (zephir_is_true(&statusCode)) { - ZVAL_LONG(&_2, zephir_get_intval(&statusCode)); - } else { - ZVAL_NULL(&_2); - } - RETURN_CCTOR(&_2); -} -static PHP_METHOD(Phalcon_Http_Response, hasHeader) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, headers; - zval name; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&headers); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - zephir_get_strval(&name, name_param); - ZEPHIR_CALL_METHOD(&headers, this_ptr, "getheaders", NULL, 0); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&headers, "has", NULL, 0, &name); - zephir_check_call_status(); - RETURN_MM(); -} -static PHP_METHOD(Phalcon_Http_Response, isSent) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_MetaData_Redis) { - zval *this_ptr = getThis(); - - + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\MetaData, Redis, phalcon, mvc_model_metadata_redis, phalcon_mvc_model_metadata_ce, phalcon_mvc_model_metadata_redis_method_entry, 0); - RETURN_MEMBER(getThis(), "sent"); + return SUCCESS; } -static PHP_METHOD(Phalcon_Http_Response, redirect) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Redis, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long statusCode, ZEPHIR_LAST_CALL_STATUS; - zend_bool externalRedirect, _11, _0$$5; - zval *location = NULL, location_sub, *externalRedirect_param = NULL, *statusCode_param = NULL, __$null, header, url, container, matched, view, _8, _9, _12, _1$$5, _2$$5, _3$$6, _4$$6, _5$$6, _6$$10, _7$$10, _10$$11; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_1 = NULL; + zval options; + zval *factory, factory_sub, *options_param = NULL, _0, _2, _3, _4, _5, _6; zval *this_ptr = getThis(); - ZVAL_UNDEF(&location_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&header); - ZVAL_UNDEF(&url); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&matched); - ZVAL_UNDEF(&view); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_1$$5); - ZVAL_UNDEF(&_2$$5); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&_4$$6); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_6$$10); - ZVAL_UNDEF(&_7$$10); - ZVAL_UNDEF(&_10$$11); + ZVAL_UNDEF(&factory_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 3) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_cache_adapterfactory_ce) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(location) - Z_PARAM_BOOL(externalRedirect) - Z_PARAM_LONG(statusCode) + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 3, &location, &externalRedirect_param, &statusCode_param); - if (!location) { - location = &location_sub; - ZEPHIR_CPY_WRT(location, &__$null); - } else { - ZEPHIR_SEPARATE_PARAM(location); - } - if (!externalRedirect_param) { - externalRedirect = 0; - } else { - externalRedirect = zephir_get_boolval(externalRedirect_param); - } - if (!statusCode_param) { - statusCode = 302; + zephir_fetch_params(1, 1, 1, &factory, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); } else { - statusCode = zephir_get_intval(statusCode_param); + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); } - if (!(zephir_is_true(location))) { - ZEPHIR_INIT_NVAR(location); - ZVAL_STRING(location, ""); - } - if (externalRedirect) { - ZEPHIR_CPY_WRT(&header, location); - } else { - _0$$5 = Z_TYPE_P(location) == IS_STRING; - if (_0$$5) { - ZEPHIR_INIT_VAR(&_1$$5); - ZVAL_STRING(&_1$$5, "://"); - ZEPHIR_CALL_FUNCTION(&_2$$5, "strstr", NULL, 272, location, &_1$$5); - zephir_check_call_status(); - _0$$5 = zephir_is_true(&_2$$5); - } - if (_0$$5) { - ZEPHIR_INIT_VAR(&_3$$6); - ZEPHIR_INIT_VAR(&_4$$6); - ZVAL_STRING(&_4$$6, "/^[^:\\/?#]++:/"); - ZEPHIR_INIT_VAR(&_5$$6); - ZVAL_STRING(&_5$$6, "/^[^:\\/?#]++:/"); - ZEPHIR_INIT_VAR(&matched); - zephir_preg_match(&matched, &_5$$6, location, &_3$$6, 0, 0 , 0 ); - if (zephir_is_true(&matched)) { - ZEPHIR_CPY_WRT(&header, location); - } else { - ZEPHIR_INIT_NVAR(&header); - ZVAL_NULL(&header); - } - } else { - ZEPHIR_INIT_NVAR(&header); - ZVAL_NULL(&header); - } - } - ZEPHIR_CALL_METHOD(&container, this_ptr, "getdi", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&header))) { - ZEPHIR_INIT_VAR(&_7$$10); - ZVAL_STRING(&_7$$10, "url"); - ZEPHIR_CALL_METHOD(&_6$$10, &container, "getshared", NULL, 0, &_7$$10); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&url, &_6$$10); - ZEPHIR_CALL_METHOD(&header, &url, "get", NULL, 0, location); - zephir_check_call_status(); - } - ZEPHIR_INIT_VAR(&_9); - ZVAL_STRING(&_9, "view"); - ZEPHIR_CALL_METHOD(&_8, &container, "has", NULL, 0, &_9); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "prefix"); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "ph-mm-reds-"); + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3); zephir_check_call_status(); - if (zephir_is_true(&_8)) { - ZEPHIR_INIT_VAR(&_10$$11); - ZVAL_STRING(&_10$$11, "view"); - ZEPHIR_CALL_METHOD(&view, &container, "getshared", NULL, 0, &_10$$11); - zephir_check_call_status(); - if (zephir_instance_of_ev(&view, phalcon_mvc_viewinterface_ce)) { - ZEPHIR_CALL_METHOD(NULL, &view, "disable", NULL, 0); - zephir_check_call_status(); - } - } - _11 = statusCode < 300; - if (!(_11)) { - _11 = statusCode > 308; - } - if (_11) { - statusCode = 302; - } - ZVAL_LONG(&_12, statusCode); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setstatuscode", NULL, 0, &_12); + zephir_array_update_string(&options, SL("prefix"), &_0, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "lifetime"); + ZVAL_LONG(&_5, 172800); + ZEPHIR_CALL_CE_STATIC(&_4, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_5); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_9); - ZVAL_STRING(&_9, "Location"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setheader", NULL, 0, &_9, &header); + zephir_array_update_string(&options, SL("lifetime"), &_4, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "redis"); + ZEPHIR_CALL_METHOD(&_6, factory, "newinstance", NULL, 0, &_2, &options); zephir_check_call_status(); - RETURN_THIS(); + zephir_update_property_zval(this_ptr, ZEND_STRL("adapter"), &_6); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Response, removeHeader) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Redis, reset) { + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_1 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, headers; - zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&headers); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_0); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - zephir_get_strval(&name, name_param); - - ZEPHIR_CALL_METHOD(&headers, this_ptr, "getheaders", NULL, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "clear", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &headers, "remove", NULL, 0, &name); + ZEPHIR_CALL_PARENT(NULL, phalcon_mvc_model_metadata_redis_ce, getThis(), "reset", &_1, 0); zephir_check_call_status(); - RETURN_THIS(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Response, resetHeaders) -{ - zval headers; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&headers); - ZEPHIR_MM_GROW(); +#ifdef HAVE_CONFIG_H +#endif - ZEPHIR_CALL_METHOD(&headers, this_ptr, "getheaders", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &headers, "reset", NULL, 0); - zephir_check_call_status(); - RETURN_THIS(); -} -static PHP_METHOD(Phalcon_Http_Response, send) -{ - zend_bool _3$$5; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval __$true, __$false, content, file, _0, _1, _2$$5; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&content); - ZVAL_UNDEF(&file); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$5); - ZEPHIR_MM_GROW(); +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_MetaData_Stream) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\MetaData, Stream, phalcon, mvc_model_metadata_stream, phalcon_mvc_model_metadata_ce, phalcon_mvc_model_metadata_stream_method_entry, 0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("sent"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(zephir_is_true(&_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_response_exception_ce, "Response was already sent", "phalcon/Http/Response.zep", 353); - return; - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "sendheaders", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "sendcookies", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("content"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&content, &_1); - if (Z_TYPE_P(&content) != IS_NULL) { - zend_print_zval(&content, 0); - } else { - zephir_read_property(&_2$$5, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&file, &_2$$5); - _3$$5 = Z_TYPE_P(&file) == IS_STRING; - if (_3$$5) { - _3$$5 = ((zephir_fast_strlen_ev(&file)) ? 1 : 0); - } - if (_3$$5) { - ZEPHIR_CALL_FUNCTION(NULL, "readfile", NULL, 358, &file); - zephir_check_call_status(); - } - } - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("sent"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("sent"), &__$false); - } - RETURN_THIS(); + zend_declare_property_string(phalcon_mvc_model_metadata_stream_ce, SL("metaDataDir"), "./", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Http_Response, sendCookies) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Stream, __construct) { - zval cookies, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval *options_param = NULL, metaDataDir; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&cookies); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&metaDataDir); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("cookies"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&cookies, &_0); - if (Z_TYPE_P(&cookies) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(NULL, &cookies, "send", NULL, 0); - zephir_check_call_status(); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + zephir_get_arrval(&options, options_param); } - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Http_Response, sendHeaders) -{ - zend_bool _3; - zval headers, eventsManager, _0, _1$$3, _2$$3, _4$$5; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&headers); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$5); - - ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getheaders", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&headers, &_0); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "geteventsmanager", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&eventsManager, &_0); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "response:beforeSendHeaders"); - ZEPHIR_CALL_METHOD(&_1$$3, &eventsManager, "fire", NULL, 0, &_2$$3, this_ptr); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_1$$3)) { - RETURN_MM_BOOL(0); - } - } - ZEPHIR_CALL_METHOD(&_0, &headers, "send", NULL, 0); - zephir_check_call_status(); - _3 = zephir_is_true(&_0); - if (_3) { - _3 = Z_TYPE_P(&eventsManager) == IS_OBJECT; - } - if (_3) { - ZEPHIR_INIT_VAR(&_4$$5); - ZVAL_STRING(&_4$$5, "response:afterSendHeaders"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_4$$5, this_ptr); - zephir_check_call_status(); + if (zephir_array_isset_string_fetch(&metaDataDir, &options, SL("metaDataDir"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("metaDataDir"), &metaDataDir); } - RETURN_THIS(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Response, setCache) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Stream, read) { - zval _1, _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *minutes_param = NULL, date, _0, _2, _4; - zend_long minutes, ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, path, _0, _1, _2, _3; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&date); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&path); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(minutes) + Z_PARAM_STR(key) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &minutes_param); - if (UNEXPECTED(Z_TYPE_P(minutes_param) != IS_LONG)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'minutes' must be of the type int")); + zephir_fetch_params(1, 1, 0, &key_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); } - minutes = Z_LVAL_P(minutes_param); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } - ZEPHIR_INIT_VAR(&date); - object_init_ex(&date, php_date_get_date_ce()); - ZEPHIR_CALL_METHOD(NULL, &date, "__construct", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - ZVAL_LONG(&_0, minutes); + zephir_read_property(&_0, this_ptr, ZEND_STRL("metaDataDir"), PH_NOISY_CC | PH_READONLY); ZEPHIR_INIT_VAR(&_1); - ZEPHIR_CONCAT_SVS(&_1, "+", &_0, " minutes"); - ZEPHIR_CALL_METHOD(NULL, &date, "modify", NULL, 0, &_1); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setexpires", NULL, 0, &date); - zephir_check_call_status(); ZEPHIR_INIT_VAR(&_2); - ZVAL_LONG(&_2, ((minutes * 60))); - ZEPHIR_INIT_VAR(&_3); - ZEPHIR_CONCAT_SV(&_3, "max-age=", &_2); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "Cache-Control"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setheader", NULL, 0, &_4, &_3); - zephir_check_call_status(); - RETURN_THIS(); + ZVAL_STRING(&_2, "_"); + zephir_prepare_virtual_path(&_1, &key, &_2); + ZEPHIR_INIT_VAR(&path); + ZEPHIR_CONCAT_VVS(&path, &_0, &_1, ".php"); + if (!((zephir_file_exists(&path) == SUCCESS))) { + RETURN_MM_NULL(); + } + ZEPHIR_OBSERVE_OR_NULLIFY_PPZV(&_3); + if (zephir_require_zval_ret(&_3, &path) == FAILURE) { + RETURN_MM_NULL(); + } + RETURN_CCTOR(&_3); } -static PHP_METHOD(Phalcon_Http_Response, setContent) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Stream, write) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *content_param = NULL; - zval content; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval data; + zval *key_param = NULL, *data_param = NULL, option, path, _6, _7, _0$$3, _1$$3, _2$$3, _3$$3, _4$$3, _5$$3; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&content); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&option); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&data); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(content) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(key) + Z_PARAM_ARRAY(data) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &content_param); - zephir_get_strval(&content, content_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("content"), &content); - RETURN_THIS(); -} + zephir_fetch_params(1, 2, 0, &key_param, &data_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } + zephir_get_arrval(&data, data_param); -static PHP_METHOD(Phalcon_Http_Response, setContentLength) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *contentLength_param = NULL, _0, _1; - zend_long contentLength, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(contentLength) - ZEND_PARSE_PARAMETERS_END(); -#endif + /* try_start_1: */ - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &contentLength_param); - contentLength = zephir_get_intval(contentLength_param); + zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("metaDataDir"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1$$3); + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "_"); + zephir_prepare_virtual_path(&_1$$3, &key, &_2$$3); + ZEPHIR_INIT_VAR(&path); + ZEPHIR_CONCAT_VVS(&path, &_0$$3, &_1$$3, ".php"); + ZEPHIR_INIT_VAR(&option); + ZVAL_BOOL(&option, ZEPHIR_GLOBAL(orm).exception_on_failed_metadata_save); + ZEPHIR_INIT_VAR(&_3$$3); + ZEPHIR_INIT_VAR(&_4$$3); + ZEPHIR_INIT_NVAR(&_4$$3); + zephir_var_export_ex(&_4$$3, &data); + ZEPHIR_INIT_VAR(&_5$$3); + ZEPHIR_CONCAT_SVS(&_5$$3, "= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(contentType) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(charset) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(option) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &contentType_param, &charset); - zephir_get_strval(&contentType, contentType_param); - if (!charset) { - charset = &charset_sub; - charset = &__$null; - } + zephir_fetch_params(1, 1, 0, &option); - if (Z_TYPE_P(charset) != IS_NULL) { - ZEPHIR_INIT_VAR(&_0$$3); - ZEPHIR_CONCAT_SV(&_0$$3, "; charset=", charset); - zephir_concat_self(&contentType, &_0$$3); + if (zephir_is_true(option)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Meta-Data directory cannot be written", "phalcon/Mvc/Model/MetaData/Stream.zep", 93); + return; + } else { + ZEPHIR_INIT_VAR(&_0$$4); + ZVAL_STRING(&_0$$4, "Meta-Data directory cannot be written"); + ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_0$$4); + zephir_check_call_status(); } - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "Content-Type"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setheader", NULL, 0, &_1, &contentType); - zephir_check_call_status(); - RETURN_THIS(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Response, setCookies) -{ - zval *cookies, cookies_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&cookies_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(cookies, phalcon_http_response_cookiesinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &cookies); - - zephir_update_property_zval(this_ptr, ZEND_STRL("cookies"), cookies); - RETURN_THISW(); -} -static PHP_METHOD(Phalcon_Http_Response, setDI) -{ - zval *container, container_sub; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&container_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) - ZEND_PARSE_PARAMETERS_END(); +#ifdef HAVE_CONFIG_H #endif - zephir_fetch_params_without_memory_grow(1, 0, &container); - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); -} -static PHP_METHOD(Phalcon_Http_Response, setEtag) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_MetaData_Strategy_Annotations) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *etag_param = NULL, _0; - zval etag; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&etag); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(etag) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &etag_param); - zephir_get_strval(&etag, etag_param); - + ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model\\MetaData\\Strategy, Annotations, phalcon, mvc_model_metadata_strategy_annotations, phalcon_mvc_model_metadata_strategy_annotations_method_entry, 0); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "Etag"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setheader", NULL, 0, &_0, &etag); - zephir_check_call_status(); - RETURN_THIS(); + zend_class_implements(phalcon_mvc_model_metadata_strategy_annotations_ce, 1, phalcon_mvc_model_metadata_strategy_strategyinterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Http_Response, setExpires) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Strategy_Annotations, getColumnMaps) { + zend_string *_8; + zend_ulong _7; + zend_bool hasReversedColumn = 0, _11$$6, _14$$10; + zval orderedColumnMap, reversedColumnMap; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *datetime, datetime_sub, date, _0, _1, _2, _3; + zval *model, model_sub, *container, container_sub, __$null, annotations, className, reflection, propertiesAnnotations, property, propAnnotations, columnAnnotation, columnName, _0, *_5, _6, _1$$4, _2$$4, _3$$5, _4$$5, _9$$6, _10$$6, _12$$10, _13$$10; zval *this_ptr = getThis(); - ZVAL_UNDEF(&datetime_sub); - ZVAL_UNDEF(&date); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&container_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&annotations); + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&reflection); + ZVAL_UNDEF(&propertiesAnnotations); + ZVAL_UNDEF(&property); + ZVAL_UNDEF(&propAnnotations); + ZVAL_UNDEF(&columnAnnotation); + ZVAL_UNDEF(&columnName); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_9$$6); + ZVAL_UNDEF(&_10$$6); + ZVAL_UNDEF(&_12$$10); + ZVAL_UNDEF(&_13$$10); + ZVAL_UNDEF(&orderedColumnMap); + ZVAL_UNDEF(&reversedColumnMap); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(datetime, php_date_get_date_ce()) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &datetime); + zephir_fetch_params(1, 2, 0, &model, &container); - ZEPHIR_INIT_VAR(&date); - if (zephir_clone(&date, datetime) == FAILURE) { - RETURN_MM(); + if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The dependency injector is invalid", "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 32); + return; } ZEPHIR_INIT_VAR(&_0); - object_init_ex(&_0, php_date_get_timezone_ce()); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "UTC"); - ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 0, &_1); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &date, "settimezone", NULL, 0, &_0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "D, d M Y H:i:s"); - ZEPHIR_CALL_METHOD(&_2, &date, "format", NULL, 0, &_1); + ZVAL_STRING(&_0, "annotations"); + ZEPHIR_CALL_METHOD(&annotations, container, "get", NULL, 0, &_0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_3); - ZEPHIR_CONCAT_VS(&_3, &_2, " GMT"); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "Expires"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setheader", NULL, 0, &_1, &_3); + ZEPHIR_INIT_VAR(&className); + zephir_get_class(&className, model, 0); + ZEPHIR_CALL_METHOD(&reflection, &annotations, "get", NULL, 0, &className); zephir_check_call_status(); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Http_Response, setEventsManager) -{ - zval *eventsManager, eventsManager_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&eventsManager_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); -} - -static PHP_METHOD(Phalcon_Http_Response, setFileToSend) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *filePath_param = NULL, *attachmentName = NULL, attachmentName_sub, *attachment = NULL, attachment_sub, __$true, __$null, basePath, basePathEncoding, _1$$6, _2$$5, _3$$7, _4$$7, _5$$7, _6$$8, _7$$8, _8$$8; - zval filePath; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&filePath); - ZVAL_UNDEF(&attachmentName_sub); - ZVAL_UNDEF(&attachment_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&basePath); - ZVAL_UNDEF(&basePathEncoding); - ZVAL_UNDEF(&_1$$6); - ZVAL_UNDEF(&_2$$5); - ZVAL_UNDEF(&_3$$7); - ZVAL_UNDEF(&_4$$7); - ZVAL_UNDEF(&_5$$7); - ZVAL_UNDEF(&_6$$8); - ZVAL_UNDEF(&_7$$8); - ZVAL_UNDEF(&_8$$8); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(filePath) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(attachmentName) - Z_PARAM_ZVAL(attachment) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &filePath_param, &attachmentName, &attachment); - zephir_get_strval(&filePath, filePath_param); - if (!attachmentName) { - attachmentName = &attachmentName_sub; - attachmentName = &__$null; - } - if (!attachment) { - attachment = &attachment_sub; - attachment = &__$true; + if (UNEXPECTED(Z_TYPE_P(&reflection) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_1$$4); + object_init_ex(&_1$$4, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_2$$4); + ZEPHIR_CONCAT_SV(&_2$$4, "No annotations were found in class ", &className); + ZEPHIR_CALL_METHOD(NULL, &_1$$4, "__construct", NULL, 8, &_2$$4); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$4, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 43); + ZEPHIR_MM_RESTORE(); + return; } - - - ZEPHIR_INIT_VAR(&basePathEncoding); - ZVAL_STRING(&basePathEncoding, "ASCII"); - if (Z_TYPE_P(attachmentName) != IS_STRING) { - ZEPHIR_CALL_CE_STATIC(&basePath, phalcon_helper_fs_ce, "basename", &_0, 359, &filePath); + ZEPHIR_CALL_METHOD(&propertiesAnnotations, &reflection, "getpropertiesannotations", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(!(zephir_fast_count_int(&propertiesAnnotations)))) { + ZEPHIR_INIT_VAR(&_3$$5); + object_init_ex(&_3$$5, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_4$$5); + ZEPHIR_CONCAT_SV(&_4$$5, "No properties with annotations were found in class ", &className); + ZEPHIR_CALL_METHOD(NULL, &_3$$5, "__construct", NULL, 8, &_4$$5); zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(&basePath, attachmentName); + zephir_throw_exception_debug(&_3$$5, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 54); + ZEPHIR_MM_RESTORE(); + return; } - if (zephir_is_true(attachment)) { - if ((zephir_function_exists_ex(ZEND_STRL("mb_detect_encoding")) == SUCCESS)) { - ZEPHIR_CALL_FUNCTION(&_1$$6, "mb_detect_order", NULL, 360); + ZEPHIR_INIT_VAR(&orderedColumnMap); + array_init(&orderedColumnMap); + ZEPHIR_INIT_VAR(&reversedColumnMap); + array_init(&reversedColumnMap); + hasReversedColumn = 0; + zephir_is_iterable(&propertiesAnnotations, 0, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 91); + if (Z_TYPE_P(&propertiesAnnotations) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&propertiesAnnotations), _7, _8, _5) + { + ZEPHIR_INIT_NVAR(&property); + if (_8 != NULL) { + ZVAL_STR_COPY(&property, _8); + } else { + ZVAL_LONG(&property, _7); + } + ZEPHIR_INIT_NVAR(&propAnnotations); + ZVAL_COPY(&propAnnotations, _5); + ZEPHIR_INIT_NVAR(&_10$$6); + ZVAL_STRING(&_10$$6, "Column"); + ZEPHIR_CALL_METHOD(&_9$$6, &propAnnotations, "has", NULL, 0, &_10$$6); zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&basePathEncoding, "mb_detect_encoding", NULL, 226, &basePath, &_1$$6, &__$true); + if (!(zephir_is_true(&_9$$6))) { + continue; + } + ZEPHIR_INIT_NVAR(&_10$$6); + ZVAL_STRING(&_10$$6, "Column"); + ZEPHIR_CALL_METHOD(&columnAnnotation, &propAnnotations, "get", NULL, 0, &_10$$6); zephir_check_call_status(); - } - ZEPHIR_INIT_VAR(&_2$$5); - ZVAL_STRING(&_2$$5, "Content-Description: File Transfer"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setrawheader", NULL, 0, &_2$$5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_2$$5); - ZVAL_STRING(&_2$$5, "Content-Type: application/octet-stream"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setrawheader", NULL, 0, &_2$$5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_2$$5); - ZVAL_STRING(&_2$$5, "Content-Transfer-Encoding: binary"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setrawheader", NULL, 0, &_2$$5); + ZEPHIR_INIT_NVAR(&_10$$6); + ZVAL_STRING(&_10$$6, "column"); + ZEPHIR_CALL_METHOD(&columnName, &columnAnnotation, "getnamedparameter", NULL, 0, &_10$$6); + zephir_check_call_status(); + if (ZEPHIR_IS_EMPTY(&columnName)) { + ZEPHIR_CPY_WRT(&columnName, &property); + } + zephir_array_update_zval(&orderedColumnMap, &columnName, &property, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&reversedColumnMap, &property, &columnName, PH_COPY | PH_SEPARATE); + _11$$6 = !hasReversedColumn; + if (_11$$6) { + _11$$6 = !ZEPHIR_IS_EQUAL(&columnName, &property); + } + if (_11$$6) { + hasReversedColumn = 1; + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &propertiesAnnotations, "rewind", NULL, 0); zephir_check_call_status(); - if (!ZEPHIR_IS_STRING(&basePathEncoding, "ASCII")) { - ZEPHIR_CALL_FUNCTION(&_3$$7, "rawurlencode", NULL, 229, &basePath); + while (1) { + ZEPHIR_CALL_METHOD(&_6, &propertiesAnnotations, "valid", NULL, 0); zephir_check_call_status(); - ZEPHIR_CPY_WRT(&basePath, &_3$$7); - ZEPHIR_INIT_VAR(&_4$$7); - zephir_fast_strtolower(&_4$$7, &basePathEncoding); - ZEPHIR_INIT_VAR(&_5$$7); - ZEPHIR_CONCAT_SVSVSV(&_5$$7, "Content-Disposition: attachment; filename=", &basePath, "; filename*=", &_4$$7, "''", &basePath); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setrawheader", NULL, 0, &_5$$7); + if (!zend_is_true(&_6)) { + break; + } + ZEPHIR_CALL_METHOD(&property, &propertiesAnnotations, "key", NULL, 0); zephir_check_call_status(); - } else { - ZEPHIR_INIT_VAR(&_6$$8); - ZVAL_STRING(&_6$$8, "\15\17\\\""); - ZEPHIR_CALL_FUNCTION(&_7$$8, "addcslashes", NULL, 214, &basePath, &_6$$8); + ZEPHIR_CALL_METHOD(&propAnnotations, &propertiesAnnotations, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_CPY_WRT(&basePath, &_7$$8); - ZEPHIR_INIT_VAR(&_8$$8); - ZEPHIR_CONCAT_SVS(&_8$$8, "Content-Disposition: attachment; filename=\"", &basePath, "\""); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setrawheader", NULL, 0, &_8$$8); + ZEPHIR_INIT_NVAR(&_13$$10); + ZVAL_STRING(&_13$$10, "Column"); + ZEPHIR_CALL_METHOD(&_12$$10, &propAnnotations, "has", NULL, 0, &_13$$10); + zephir_check_call_status(); + if (!(zephir_is_true(&_12$$10))) { + continue; + } + ZEPHIR_INIT_NVAR(&_13$$10); + ZVAL_STRING(&_13$$10, "Column"); + ZEPHIR_CALL_METHOD(&columnAnnotation, &propAnnotations, "get", NULL, 0, &_13$$10); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_13$$10); + ZVAL_STRING(&_13$$10, "column"); + ZEPHIR_CALL_METHOD(&columnName, &columnAnnotation, "getnamedparameter", NULL, 0, &_13$$10); + zephir_check_call_status(); + if (ZEPHIR_IS_EMPTY(&columnName)) { + ZEPHIR_CPY_WRT(&columnName, &property); + } + zephir_array_update_zval(&orderedColumnMap, &columnName, &property, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&reversedColumnMap, &property, &columnName, PH_COPY | PH_SEPARATE); + _14$$10 = !hasReversedColumn; + if (_14$$10) { + _14$$10 = !ZEPHIR_IS_EQUAL(&columnName, &property); + } + if (_14$$10) { + hasReversedColumn = 1; + } + ZEPHIR_CALL_METHOD(NULL, &propertiesAnnotations, "next", NULL, 0); zephir_check_call_status(); } } - zephir_update_property_zval(this_ptr, ZEND_STRL("file"), &filePath); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Http_Response, setHeader) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, *value, value_sub, headers; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&headers); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(name) - Z_PARAM_ZVAL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &name_param, &value); - zephir_get_strval(&name, name_param); - - - ZEPHIR_CALL_METHOD(&headers, this_ptr, "getheaders", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &headers, "set", NULL, 0, &name, value); - zephir_check_call_status(); - RETURN_THIS(); + ZEPHIR_INIT_NVAR(&propAnnotations); + ZEPHIR_INIT_NVAR(&property); + if (!(hasReversedColumn)) { + zephir_create_array(return_value, 2, 0); + zephir_array_fast_append(return_value, &__$null); + zephir_array_fast_append(return_value, &__$null); + RETURN_MM(); + } + zephir_create_array(return_value, 2, 0); + zephir_array_fast_append(return_value, &orderedColumnMap); + zephir_array_fast_append(return_value, &reversedColumnMap); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Http_Response, setHeaders) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Strategy_Annotations, getMetaData) { - zend_string *_3; - zend_ulong _2; + zend_bool _71$$6, _135$$44; + zend_string *_8; + zend_ulong _7; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL, *_5 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *headers, headers_sub, data, existing, name, value, *_0, _1; + zval *model, model_sub, *container, container_sub, __$true, annotations, className, reflection, propertiesAnnotations, property, propAnnotations, columnAnnotation, columnName, feature, fieldTypes, fieldBindTypes, numericTyped, primaryKeys, nonPrimaryKeys, identityField, notNull, attributes, defaultValues, defaultValue, emptyStringValues, skipOnInsert, skipOnUpdate, _0, *_5, _6, _1$$4, _2$$4, _3$$5, _4$$5, _9$$6, _10$$6, _65$$6, _66$$6, _67$$6, _68$$6, _69$$6, _70$$6, _72$$6, _11$$9, _12$$9, _13$$10, _14$$10, _15$$11, _16$$11, _17$$12, _18$$12, _19$$13, _20$$13, _21$$14, _22$$14, _23$$15, _24$$15, _25$$16, _26$$16, _27$$17, _28$$17, _29$$18, _30$$18, _31$$19, _32$$19, _33$$20, _34$$20, _35$$21, _36$$21, _37$$22, _38$$22, _39$$23, _40$$23, _41$$24, _42$$24, _43$$25, _44$$25, _45$$26, _46$$26, _47$$27, _48$$27, _49$$28, _50$$28, _51$$29, _52$$29, _53$$30, _54$$30, _55$$31, _56$$31, _57$$32, _58$$32, _59$$33, _60$$33, _61$$34, _62$$34, _63$$35, _64$$35, _73$$44, _74$$44, _129$$44, _130$$44, _131$$44, _132$$44, _133$$44, _134$$44, _136$$44, _75$$47, _76$$47, _77$$48, _78$$48, _79$$49, _80$$49, _81$$50, _82$$50, _83$$51, _84$$51, _85$$52, _86$$52, _87$$53, _88$$53, _89$$54, _90$$54, _91$$55, _92$$55, _93$$56, _94$$56, _95$$57, _96$$57, _97$$58, _98$$58, _99$$59, _100$$59, _101$$60, _102$$60, _103$$61, _104$$61, _105$$62, _106$$62, _107$$63, _108$$63, _109$$64, _110$$64, _111$$65, _112$$65, _113$$66, _114$$66, _115$$67, _116$$67, _117$$68, _118$$68, _119$$69, _120$$69, _121$$70, _122$$70, _123$$71, _124$$71, _125$$72, _126$$72, _127$$73, _128$$73; zval *this_ptr = getThis(); - ZVAL_UNDEF(&headers_sub); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&existing); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(headers, phalcon_http_response_headersinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &headers); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&container_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&annotations); + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&reflection); + ZVAL_UNDEF(&propertiesAnnotations); + ZVAL_UNDEF(&property); + ZVAL_UNDEF(&propAnnotations); + ZVAL_UNDEF(&columnAnnotation); + ZVAL_UNDEF(&columnName); + ZVAL_UNDEF(&feature); + ZVAL_UNDEF(&fieldTypes); + ZVAL_UNDEF(&fieldBindTypes); + ZVAL_UNDEF(&numericTyped); + ZVAL_UNDEF(&primaryKeys); + ZVAL_UNDEF(&nonPrimaryKeys); + ZVAL_UNDEF(&identityField); + ZVAL_UNDEF(¬Null); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&defaultValues); + ZVAL_UNDEF(&defaultValue); + ZVAL_UNDEF(&emptyStringValues); + ZVAL_UNDEF(&skipOnInsert); + ZVAL_UNDEF(&skipOnUpdate); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_9$$6); + ZVAL_UNDEF(&_10$$6); + ZVAL_UNDEF(&_65$$6); + ZVAL_UNDEF(&_66$$6); + ZVAL_UNDEF(&_67$$6); + ZVAL_UNDEF(&_68$$6); + ZVAL_UNDEF(&_69$$6); + ZVAL_UNDEF(&_70$$6); + ZVAL_UNDEF(&_72$$6); + ZVAL_UNDEF(&_11$$9); + ZVAL_UNDEF(&_12$$9); + ZVAL_UNDEF(&_13$$10); + ZVAL_UNDEF(&_14$$10); + ZVAL_UNDEF(&_15$$11); + ZVAL_UNDEF(&_16$$11); + ZVAL_UNDEF(&_17$$12); + ZVAL_UNDEF(&_18$$12); + ZVAL_UNDEF(&_19$$13); + ZVAL_UNDEF(&_20$$13); + ZVAL_UNDEF(&_21$$14); + ZVAL_UNDEF(&_22$$14); + ZVAL_UNDEF(&_23$$15); + ZVAL_UNDEF(&_24$$15); + ZVAL_UNDEF(&_25$$16); + ZVAL_UNDEF(&_26$$16); + ZVAL_UNDEF(&_27$$17); + ZVAL_UNDEF(&_28$$17); + ZVAL_UNDEF(&_29$$18); + ZVAL_UNDEF(&_30$$18); + ZVAL_UNDEF(&_31$$19); + ZVAL_UNDEF(&_32$$19); + ZVAL_UNDEF(&_33$$20); + ZVAL_UNDEF(&_34$$20); + ZVAL_UNDEF(&_35$$21); + ZVAL_UNDEF(&_36$$21); + ZVAL_UNDEF(&_37$$22); + ZVAL_UNDEF(&_38$$22); + ZVAL_UNDEF(&_39$$23); + ZVAL_UNDEF(&_40$$23); + ZVAL_UNDEF(&_41$$24); + ZVAL_UNDEF(&_42$$24); + ZVAL_UNDEF(&_43$$25); + ZVAL_UNDEF(&_44$$25); + ZVAL_UNDEF(&_45$$26); + ZVAL_UNDEF(&_46$$26); + ZVAL_UNDEF(&_47$$27); + ZVAL_UNDEF(&_48$$27); + ZVAL_UNDEF(&_49$$28); + ZVAL_UNDEF(&_50$$28); + ZVAL_UNDEF(&_51$$29); + ZVAL_UNDEF(&_52$$29); + ZVAL_UNDEF(&_53$$30); + ZVAL_UNDEF(&_54$$30); + ZVAL_UNDEF(&_55$$31); + ZVAL_UNDEF(&_56$$31); + ZVAL_UNDEF(&_57$$32); + ZVAL_UNDEF(&_58$$32); + ZVAL_UNDEF(&_59$$33); + ZVAL_UNDEF(&_60$$33); + ZVAL_UNDEF(&_61$$34); + ZVAL_UNDEF(&_62$$34); + ZVAL_UNDEF(&_63$$35); + ZVAL_UNDEF(&_64$$35); + ZVAL_UNDEF(&_73$$44); + ZVAL_UNDEF(&_74$$44); + ZVAL_UNDEF(&_129$$44); + ZVAL_UNDEF(&_130$$44); + ZVAL_UNDEF(&_131$$44); + ZVAL_UNDEF(&_132$$44); + ZVAL_UNDEF(&_133$$44); + ZVAL_UNDEF(&_134$$44); + ZVAL_UNDEF(&_136$$44); + ZVAL_UNDEF(&_75$$47); + ZVAL_UNDEF(&_76$$47); + ZVAL_UNDEF(&_77$$48); + ZVAL_UNDEF(&_78$$48); + ZVAL_UNDEF(&_79$$49); + ZVAL_UNDEF(&_80$$49); + ZVAL_UNDEF(&_81$$50); + ZVAL_UNDEF(&_82$$50); + ZVAL_UNDEF(&_83$$51); + ZVAL_UNDEF(&_84$$51); + ZVAL_UNDEF(&_85$$52); + ZVAL_UNDEF(&_86$$52); + ZVAL_UNDEF(&_87$$53); + ZVAL_UNDEF(&_88$$53); + ZVAL_UNDEF(&_89$$54); + ZVAL_UNDEF(&_90$$54); + ZVAL_UNDEF(&_91$$55); + ZVAL_UNDEF(&_92$$55); + ZVAL_UNDEF(&_93$$56); + ZVAL_UNDEF(&_94$$56); + ZVAL_UNDEF(&_95$$57); + ZVAL_UNDEF(&_96$$57); + ZVAL_UNDEF(&_97$$58); + ZVAL_UNDEF(&_98$$58); + ZVAL_UNDEF(&_99$$59); + ZVAL_UNDEF(&_100$$59); + ZVAL_UNDEF(&_101$$60); + ZVAL_UNDEF(&_102$$60); + ZVAL_UNDEF(&_103$$61); + ZVAL_UNDEF(&_104$$61); + ZVAL_UNDEF(&_105$$62); + ZVAL_UNDEF(&_106$$62); + ZVAL_UNDEF(&_107$$63); + ZVAL_UNDEF(&_108$$63); + ZVAL_UNDEF(&_109$$64); + ZVAL_UNDEF(&_110$$64); + ZVAL_UNDEF(&_111$$65); + ZVAL_UNDEF(&_112$$65); + ZVAL_UNDEF(&_113$$66); + ZVAL_UNDEF(&_114$$66); + ZVAL_UNDEF(&_115$$67); + ZVAL_UNDEF(&_116$$67); + ZVAL_UNDEF(&_117$$68); + ZVAL_UNDEF(&_118$$68); + ZVAL_UNDEF(&_119$$69); + ZVAL_UNDEF(&_120$$69); + ZVAL_UNDEF(&_121$$70); + ZVAL_UNDEF(&_122$$70); + ZVAL_UNDEF(&_123$$71); + ZVAL_UNDEF(&_124$$71); + ZVAL_UNDEF(&_125$$72); + ZVAL_UNDEF(&_126$$72); + ZVAL_UNDEF(&_127$$73); + ZVAL_UNDEF(&_128$$73); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif - ZEPHIR_CALL_METHOD(&data, headers, "toarray", NULL, 0); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &model, &container); + + + if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The dependency injector is invalid", "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 113); + return; + } + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "annotations"); + ZEPHIR_CALL_METHOD(&annotations, container, "get", NULL, 0, &_0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&existing, this_ptr, "getheaders", NULL, 0); + ZEPHIR_INIT_VAR(&className); + zephir_get_class(&className, model, 0); + ZEPHIR_CALL_METHOD(&reflection, &annotations, "get", NULL, 0, &className); zephir_check_call_status(); - zephir_is_iterable(&data, 0, "phalcon/Http/Response.zep", 649); - if (Z_TYPE_P(&data) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _2, _3, _0) + if (UNEXPECTED(Z_TYPE_P(&reflection) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_1$$4); + object_init_ex(&_1$$4, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_2$$4); + ZEPHIR_CONCAT_SV(&_2$$4, "No annotations were found in class ", &className); + ZEPHIR_CALL_METHOD(NULL, &_1$$4, "__construct", NULL, 8, &_2$$4); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$4, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 124); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_METHOD(&propertiesAnnotations, &reflection, "getpropertiesannotations", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(!(zephir_fast_count_int(&propertiesAnnotations)))) { + ZEPHIR_INIT_VAR(&_3$$5); + object_init_ex(&_3$$5, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_4$$5); + ZEPHIR_CONCAT_SV(&_4$$5, "No properties with annotations were found in class ", &className); + ZEPHIR_CALL_METHOD(NULL, &_3$$5, "__construct", NULL, 8, &_4$$5); + zephir_check_call_status(); + zephir_throw_exception_debug(&_3$$5, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 135); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + ZEPHIR_INIT_VAR(&primaryKeys); + array_init(&primaryKeys); + ZEPHIR_INIT_VAR(&nonPrimaryKeys); + array_init(&nonPrimaryKeys); + ZEPHIR_INIT_VAR(&numericTyped); + array_init(&numericTyped); + ZEPHIR_INIT_VAR(¬Null); + array_init(¬Null); + ZEPHIR_INIT_VAR(&fieldTypes); + array_init(&fieldTypes); + ZEPHIR_INIT_VAR(&fieldBindTypes); + array_init(&fieldBindTypes); + ZEPHIR_INIT_VAR(&identityField); + ZVAL_BOOL(&identityField, 0); + ZEPHIR_INIT_VAR(&skipOnInsert); + array_init(&skipOnInsert); + ZEPHIR_INIT_VAR(&skipOnUpdate); + array_init(&skipOnUpdate); + ZEPHIR_INIT_VAR(&defaultValues); + array_init(&defaultValues); + ZEPHIR_INIT_VAR(&emptyStringValues); + array_init(&emptyStringValues); + zephir_is_iterable(&propertiesAnnotations, 0, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 392); + if (Z_TYPE_P(&propertiesAnnotations) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&propertiesAnnotations), _7, _8, _5) { - ZEPHIR_INIT_NVAR(&name); - if (_3 != NULL) { - ZVAL_STR_COPY(&name, _3); + ZEPHIR_INIT_NVAR(&property); + if (_8 != NULL) { + ZVAL_STR_COPY(&property, _8); } else { - ZVAL_LONG(&name, _2); + ZVAL_LONG(&property, _7); } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0); - ZEPHIR_CALL_METHOD(NULL, &existing, "set", &_4, 0, &name, &value); + ZEPHIR_INIT_NVAR(&propAnnotations); + ZVAL_COPY(&propAnnotations, _5); + ZEPHIR_INIT_NVAR(&_10$$6); + ZVAL_STRING(&_10$$6, "Column"); + ZEPHIR_CALL_METHOD(&_9$$6, &propAnnotations, "has", NULL, 0, &_10$$6); + zephir_check_call_status(); + if (!(zephir_is_true(&_9$$6))) { + continue; + } + ZEPHIR_INIT_NVAR(&_10$$6); + ZVAL_STRING(&_10$$6, "Column"); + ZEPHIR_CALL_METHOD(&columnAnnotation, &propAnnotations, "get", NULL, 0, &_10$$6); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_10$$6); + ZVAL_STRING(&_10$$6, "column"); + ZEPHIR_CALL_METHOD(&columnName, &columnAnnotation, "getnamedparameter", NULL, 0, &_10$$6); + zephir_check_call_status(); + if (ZEPHIR_IS_EMPTY(&columnName)) { + ZEPHIR_CPY_WRT(&columnName, &property); + } + ZEPHIR_INIT_NVAR(&_10$$6); + ZVAL_STRING(&_10$$6, "type"); + ZEPHIR_CALL_METHOD(&feature, &columnAnnotation, "getnamedparameter", NULL, 0, &_10$$6); + zephir_check_call_status(); + do { + if (ZEPHIR_IS_STRING(&feature, "biginteger")) { + ZEPHIR_INIT_NVAR(&_11$$9); + ZVAL_LONG(&_11$$9, 14); + zephir_array_update_zval(&fieldTypes, &columnName, &_11$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_12$$9); + ZVAL_LONG(&_12$$9, 1); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_12$$9, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "bit")) { + ZEPHIR_INIT_NVAR(&_13$$10); + ZVAL_LONG(&_13$$10, 19); + zephir_array_update_zval(&fieldTypes, &columnName, &_13$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_14$$10); + ZVAL_LONG(&_14$$10, 1); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_14$$10, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "blob")) { + ZEPHIR_INIT_NVAR(&_15$$11); + ZVAL_LONG(&_15$$11, 11); + zephir_array_update_zval(&fieldTypes, &columnName, &_15$$11, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_16$$11); + ZVAL_LONG(&_16$$11, 3); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_16$$11, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "boolean")) { + ZEPHIR_INIT_NVAR(&_17$$12); + ZVAL_LONG(&_17$$12, 8); + zephir_array_update_zval(&fieldTypes, &columnName, &_17$$12, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_18$$12); + ZVAL_LONG(&_18$$12, 5); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_18$$12, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "char")) { + ZEPHIR_INIT_NVAR(&_19$$13); + ZVAL_LONG(&_19$$13, 5); + zephir_array_update_zval(&fieldTypes, &columnName, &_19$$13, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_20$$13); + ZVAL_LONG(&_20$$13, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_20$$13, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "date")) { + ZEPHIR_INIT_NVAR(&_21$$14); + ZVAL_LONG(&_21$$14, 1); + zephir_array_update_zval(&fieldTypes, &columnName, &_21$$14, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_22$$14); + ZVAL_LONG(&_22$$14, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_22$$14, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "datetime")) { + ZEPHIR_INIT_NVAR(&_23$$15); + ZVAL_LONG(&_23$$15, 4); + zephir_array_update_zval(&fieldTypes, &columnName, &_23$$15, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_24$$15); + ZVAL_LONG(&_24$$15, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_24$$15, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "decimal")) { + ZEPHIR_INIT_NVAR(&_25$$16); + ZVAL_LONG(&_25$$16, 3); + zephir_array_update_zval(&fieldTypes, &columnName, &_25$$16, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_26$$16); + ZVAL_LONG(&_26$$16, 32); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_26$$16, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "double")) { + ZEPHIR_INIT_NVAR(&_27$$17); + ZVAL_LONG(&_27$$17, 9); + zephir_array_update_zval(&fieldTypes, &columnName, &_27$$17, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_28$$17); + ZVAL_LONG(&_28$$17, 32); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_28$$17, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "enum")) { + ZEPHIR_INIT_NVAR(&_29$$18); + ZVAL_LONG(&_29$$18, 18); + zephir_array_update_zval(&fieldTypes, &columnName, &_29$$18, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_30$$18); + ZVAL_LONG(&_30$$18, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_30$$18, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "float")) { + ZEPHIR_INIT_NVAR(&_31$$19); + ZVAL_LONG(&_31$$19, 7); + zephir_array_update_zval(&fieldTypes, &columnName, &_31$$19, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_32$$19); + ZVAL_LONG(&_32$$19, 32); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_32$$19, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "integer")) { + ZEPHIR_INIT_NVAR(&_33$$20); + ZVAL_LONG(&_33$$20, 0); + zephir_array_update_zval(&fieldTypes, &columnName, &_33$$20, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_34$$20); + ZVAL_LONG(&_34$$20, 1); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_34$$20, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "json")) { + ZEPHIR_INIT_NVAR(&_35$$21); + ZVAL_LONG(&_35$$21, 15); + zephir_array_update_zval(&fieldTypes, &columnName, &_35$$21, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_36$$21); + ZVAL_LONG(&_36$$21, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_36$$21, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "jsonb")) { + ZEPHIR_INIT_NVAR(&_37$$22); + ZVAL_LONG(&_37$$22, 16); + zephir_array_update_zval(&fieldTypes, &columnName, &_37$$22, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_38$$22); + ZVAL_LONG(&_38$$22, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_38$$22, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "longblob")) { + ZEPHIR_INIT_NVAR(&_39$$23); + ZVAL_LONG(&_39$$23, 13); + zephir_array_update_zval(&fieldTypes, &columnName, &_39$$23, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_40$$23); + ZVAL_LONG(&_40$$23, 3); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_40$$23, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "longtext")) { + ZEPHIR_INIT_NVAR(&_41$$24); + ZVAL_LONG(&_41$$24, 24); + zephir_array_update_zval(&fieldTypes, &columnName, &_41$$24, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_42$$24); + ZVAL_LONG(&_42$$24, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_42$$24, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "mediumblob")) { + ZEPHIR_INIT_NVAR(&_43$$25); + ZVAL_LONG(&_43$$25, 12); + zephir_array_update_zval(&fieldTypes, &columnName, &_43$$25, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_44$$25); + ZVAL_LONG(&_44$$25, 3); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_44$$25, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "mediumint")) { + ZEPHIR_INIT_NVAR(&_45$$26); + ZVAL_LONG(&_45$$26, 21); + zephir_array_update_zval(&fieldTypes, &columnName, &_45$$26, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_46$$26); + ZVAL_LONG(&_46$$26, 1); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_46$$26, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "mediumtext")) { + ZEPHIR_INIT_NVAR(&_47$$27); + ZVAL_LONG(&_47$$27, 23); + zephir_array_update_zval(&fieldTypes, &columnName, &_47$$27, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_48$$27); + ZVAL_LONG(&_48$$27, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_48$$27, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "smallint")) { + ZEPHIR_INIT_NVAR(&_49$$28); + ZVAL_LONG(&_49$$28, 22); + zephir_array_update_zval(&fieldTypes, &columnName, &_49$$28, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_50$$28); + ZVAL_LONG(&_50$$28, 1); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_50$$28, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "text")) { + ZEPHIR_INIT_NVAR(&_51$$29); + ZVAL_LONG(&_51$$29, 6); + zephir_array_update_zval(&fieldTypes, &columnName, &_51$$29, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_52$$29); + ZVAL_LONG(&_52$$29, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_52$$29, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "time")) { + ZEPHIR_INIT_NVAR(&_53$$30); + ZVAL_LONG(&_53$$30, 20); + zephir_array_update_zval(&fieldTypes, &columnName, &_53$$30, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_54$$30); + ZVAL_LONG(&_54$$30, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_54$$30, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "timestamp")) { + ZEPHIR_INIT_NVAR(&_55$$31); + ZVAL_LONG(&_55$$31, 17); + zephir_array_update_zval(&fieldTypes, &columnName, &_55$$31, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_56$$31); + ZVAL_LONG(&_56$$31, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_56$$31, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "tinyblob")) { + ZEPHIR_INIT_NVAR(&_57$$32); + ZVAL_LONG(&_57$$32, 10); + zephir_array_update_zval(&fieldTypes, &columnName, &_57$$32, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_58$$32); + ZVAL_LONG(&_58$$32, 3); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_58$$32, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "tinyint")) { + ZEPHIR_INIT_NVAR(&_59$$33); + ZVAL_LONG(&_59$$33, 26); + zephir_array_update_zval(&fieldTypes, &columnName, &_59$$33, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_60$$33); + ZVAL_LONG(&_60$$33, 1); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_60$$33, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "tinytext")) { + ZEPHIR_INIT_NVAR(&_61$$34); + ZVAL_LONG(&_61$$34, 25); + zephir_array_update_zval(&fieldTypes, &columnName, &_61$$34, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_62$$34); + ZVAL_LONG(&_62$$34, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_62$$34, PH_COPY | PH_SEPARATE); + break; + } + ZEPHIR_INIT_NVAR(&_63$$35); + ZVAL_LONG(&_63$$35, 2); + zephir_array_update_zval(&fieldTypes, &columnName, &_63$$35, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_64$$35); + ZVAL_LONG(&_64$$35, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_64$$35, PH_COPY | PH_SEPARATE); + } while(0); + + ZEPHIR_INIT_NVAR(&_10$$6); + ZVAL_STRING(&_10$$6, "Primary"); + ZEPHIR_CALL_METHOD(&_65$$6, &propAnnotations, "has", NULL, 0, &_10$$6); + zephir_check_call_status(); + if (zephir_is_true(&_65$$6)) { + zephir_array_append(&primaryKeys, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 336); + } else { + zephir_array_append(&nonPrimaryKeys, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 338); + } + ZEPHIR_INIT_NVAR(&_10$$6); + ZVAL_STRING(&_10$$6, "Identity"); + ZEPHIR_CALL_METHOD(&_66$$6, &propAnnotations, "has", NULL, 0, &_10$$6); + zephir_check_call_status(); + if (zephir_is_true(&_66$$6)) { + ZEPHIR_CPY_WRT(&identityField, &columnName); + } + ZEPHIR_INIT_NVAR(&_10$$6); + ZVAL_STRING(&_10$$6, "skip_on_insert"); + ZEPHIR_CALL_METHOD(&_67$$6, &columnAnnotation, "getnamedparameter", NULL, 0, &_10$$6); + zephir_check_call_status(); + if (zephir_is_true(&_67$$6)) { + zephir_array_append(&skipOnInsert, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 353); + } + ZEPHIR_INIT_NVAR(&_10$$6); + ZVAL_STRING(&_10$$6, "skip_on_update"); + ZEPHIR_CALL_METHOD(&_68$$6, &columnAnnotation, "getnamedparameter", NULL, 0, &_10$$6); + zephir_check_call_status(); + if (zephir_is_true(&_68$$6)) { + zephir_array_append(&skipOnUpdate, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 360); + } + ZEPHIR_INIT_NVAR(&_10$$6); + ZVAL_STRING(&_10$$6, "allow_empty_string"); + ZEPHIR_CALL_METHOD(&_69$$6, &columnAnnotation, "getnamedparameter", NULL, 0, &_10$$6); + zephir_check_call_status(); + if (zephir_is_true(&_69$$6)) { + zephir_array_append(&emptyStringValues, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 367); + } + ZEPHIR_INIT_NVAR(&_10$$6); + ZVAL_STRING(&_10$$6, "nullable"); + ZEPHIR_CALL_METHOD(&_70$$6, &columnAnnotation, "getnamedparameter", NULL, 0, &_10$$6); + zephir_check_call_status(); + if (!(zephir_is_true(&_70$$6))) { + zephir_array_append(¬Null, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 374); + } + ZEPHIR_INIT_NVAR(&_10$$6); + ZVAL_STRING(&_10$$6, "default"); + ZEPHIR_CALL_METHOD(&defaultValue, &columnAnnotation, "getnamedparameter", NULL, 0, &_10$$6); zephir_check_call_status(); + _71$$6 = Z_TYPE_P(&defaultValue) != IS_NULL; + if (!(_71$$6)) { + ZEPHIR_INIT_NVAR(&_10$$6); + ZVAL_STRING(&_10$$6, "nullable"); + ZEPHIR_CALL_METHOD(&_72$$6, &columnAnnotation, "getnamedparameter", NULL, 0, &_10$$6); + zephir_check_call_status(); + _71$$6 = zephir_is_true(&_72$$6); + } + if (_71$$6) { + zephir_array_update_zval(&defaultValues, &columnName, &defaultValue, PH_COPY | PH_SEPARATE); + } + zephir_array_append(&attributes, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 386); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &data, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &propertiesAnnotations, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_1, &data, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_6, &propertiesAnnotations, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_1)) { + if (!zend_is_true(&_6)) { break; } - ZEPHIR_CALL_METHOD(&name, &data, "key", NULL, 0); + ZEPHIR_CALL_METHOD(&property, &propertiesAnnotations, "key", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &data, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&propAnnotations, &propertiesAnnotations, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &existing, "set", &_5, 0, &name, &value); + ZEPHIR_INIT_NVAR(&_74$$44); + ZVAL_STRING(&_74$$44, "Column"); + ZEPHIR_CALL_METHOD(&_73$$44, &propAnnotations, "has", NULL, 0, &_74$$44); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &data, "next", NULL, 0); + if (!(zephir_is_true(&_73$$44))) { + continue; + } + ZEPHIR_INIT_NVAR(&_74$$44); + ZVAL_STRING(&_74$$44, "Column"); + ZEPHIR_CALL_METHOD(&columnAnnotation, &propAnnotations, "get", NULL, 0, &_74$$44); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_74$$44); + ZVAL_STRING(&_74$$44, "column"); + ZEPHIR_CALL_METHOD(&columnName, &columnAnnotation, "getnamedparameter", NULL, 0, &_74$$44); + zephir_check_call_status(); + if (ZEPHIR_IS_EMPTY(&columnName)) { + ZEPHIR_CPY_WRT(&columnName, &property); + } + ZEPHIR_INIT_NVAR(&_74$$44); + ZVAL_STRING(&_74$$44, "type"); + ZEPHIR_CALL_METHOD(&feature, &columnAnnotation, "getnamedparameter", NULL, 0, &_74$$44); + zephir_check_call_status(); + do { + if (ZEPHIR_IS_STRING(&feature, "biginteger")) { + ZEPHIR_INIT_NVAR(&_75$$47); + ZVAL_LONG(&_75$$47, 14); + zephir_array_update_zval(&fieldTypes, &columnName, &_75$$47, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_76$$47); + ZVAL_LONG(&_76$$47, 1); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_76$$47, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "bit")) { + ZEPHIR_INIT_NVAR(&_77$$48); + ZVAL_LONG(&_77$$48, 19); + zephir_array_update_zval(&fieldTypes, &columnName, &_77$$48, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_78$$48); + ZVAL_LONG(&_78$$48, 1); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_78$$48, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "blob")) { + ZEPHIR_INIT_NVAR(&_79$$49); + ZVAL_LONG(&_79$$49, 11); + zephir_array_update_zval(&fieldTypes, &columnName, &_79$$49, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_80$$49); + ZVAL_LONG(&_80$$49, 3); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_80$$49, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "boolean")) { + ZEPHIR_INIT_NVAR(&_81$$50); + ZVAL_LONG(&_81$$50, 8); + zephir_array_update_zval(&fieldTypes, &columnName, &_81$$50, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_82$$50); + ZVAL_LONG(&_82$$50, 5); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_82$$50, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "char")) { + ZEPHIR_INIT_NVAR(&_83$$51); + ZVAL_LONG(&_83$$51, 5); + zephir_array_update_zval(&fieldTypes, &columnName, &_83$$51, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_84$$51); + ZVAL_LONG(&_84$$51, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_84$$51, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "date")) { + ZEPHIR_INIT_NVAR(&_85$$52); + ZVAL_LONG(&_85$$52, 1); + zephir_array_update_zval(&fieldTypes, &columnName, &_85$$52, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_86$$52); + ZVAL_LONG(&_86$$52, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_86$$52, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "datetime")) { + ZEPHIR_INIT_NVAR(&_87$$53); + ZVAL_LONG(&_87$$53, 4); + zephir_array_update_zval(&fieldTypes, &columnName, &_87$$53, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_88$$53); + ZVAL_LONG(&_88$$53, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_88$$53, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "decimal")) { + ZEPHIR_INIT_NVAR(&_89$$54); + ZVAL_LONG(&_89$$54, 3); + zephir_array_update_zval(&fieldTypes, &columnName, &_89$$54, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_90$$54); + ZVAL_LONG(&_90$$54, 32); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_90$$54, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "double")) { + ZEPHIR_INIT_NVAR(&_91$$55); + ZVAL_LONG(&_91$$55, 9); + zephir_array_update_zval(&fieldTypes, &columnName, &_91$$55, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_92$$55); + ZVAL_LONG(&_92$$55, 32); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_92$$55, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "enum")) { + ZEPHIR_INIT_NVAR(&_93$$56); + ZVAL_LONG(&_93$$56, 18); + zephir_array_update_zval(&fieldTypes, &columnName, &_93$$56, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_94$$56); + ZVAL_LONG(&_94$$56, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_94$$56, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "float")) { + ZEPHIR_INIT_NVAR(&_95$$57); + ZVAL_LONG(&_95$$57, 7); + zephir_array_update_zval(&fieldTypes, &columnName, &_95$$57, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_96$$57); + ZVAL_LONG(&_96$$57, 32); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_96$$57, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "integer")) { + ZEPHIR_INIT_NVAR(&_97$$58); + ZVAL_LONG(&_97$$58, 0); + zephir_array_update_zval(&fieldTypes, &columnName, &_97$$58, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_98$$58); + ZVAL_LONG(&_98$$58, 1); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_98$$58, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "json")) { + ZEPHIR_INIT_NVAR(&_99$$59); + ZVAL_LONG(&_99$$59, 15); + zephir_array_update_zval(&fieldTypes, &columnName, &_99$$59, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_100$$59); + ZVAL_LONG(&_100$$59, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_100$$59, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "jsonb")) { + ZEPHIR_INIT_NVAR(&_101$$60); + ZVAL_LONG(&_101$$60, 16); + zephir_array_update_zval(&fieldTypes, &columnName, &_101$$60, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_102$$60); + ZVAL_LONG(&_102$$60, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_102$$60, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "longblob")) { + ZEPHIR_INIT_NVAR(&_103$$61); + ZVAL_LONG(&_103$$61, 13); + zephir_array_update_zval(&fieldTypes, &columnName, &_103$$61, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_104$$61); + ZVAL_LONG(&_104$$61, 3); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_104$$61, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "longtext")) { + ZEPHIR_INIT_NVAR(&_105$$62); + ZVAL_LONG(&_105$$62, 24); + zephir_array_update_zval(&fieldTypes, &columnName, &_105$$62, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_106$$62); + ZVAL_LONG(&_106$$62, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_106$$62, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "mediumblob")) { + ZEPHIR_INIT_NVAR(&_107$$63); + ZVAL_LONG(&_107$$63, 12); + zephir_array_update_zval(&fieldTypes, &columnName, &_107$$63, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_108$$63); + ZVAL_LONG(&_108$$63, 3); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_108$$63, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "mediumint")) { + ZEPHIR_INIT_NVAR(&_109$$64); + ZVAL_LONG(&_109$$64, 21); + zephir_array_update_zval(&fieldTypes, &columnName, &_109$$64, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_110$$64); + ZVAL_LONG(&_110$$64, 1); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_110$$64, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "mediumtext")) { + ZEPHIR_INIT_NVAR(&_111$$65); + ZVAL_LONG(&_111$$65, 23); + zephir_array_update_zval(&fieldTypes, &columnName, &_111$$65, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_112$$65); + ZVAL_LONG(&_112$$65, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_112$$65, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "smallint")) { + ZEPHIR_INIT_NVAR(&_113$$66); + ZVAL_LONG(&_113$$66, 22); + zephir_array_update_zval(&fieldTypes, &columnName, &_113$$66, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_114$$66); + ZVAL_LONG(&_114$$66, 1); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_114$$66, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "text")) { + ZEPHIR_INIT_NVAR(&_115$$67); + ZVAL_LONG(&_115$$67, 6); + zephir_array_update_zval(&fieldTypes, &columnName, &_115$$67, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_116$$67); + ZVAL_LONG(&_116$$67, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_116$$67, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "time")) { + ZEPHIR_INIT_NVAR(&_117$$68); + ZVAL_LONG(&_117$$68, 20); + zephir_array_update_zval(&fieldTypes, &columnName, &_117$$68, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_118$$68); + ZVAL_LONG(&_118$$68, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_118$$68, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "timestamp")) { + ZEPHIR_INIT_NVAR(&_119$$69); + ZVAL_LONG(&_119$$69, 17); + zephir_array_update_zval(&fieldTypes, &columnName, &_119$$69, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_120$$69); + ZVAL_LONG(&_120$$69, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_120$$69, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "tinyblob")) { + ZEPHIR_INIT_NVAR(&_121$$70); + ZVAL_LONG(&_121$$70, 10); + zephir_array_update_zval(&fieldTypes, &columnName, &_121$$70, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_122$$70); + ZVAL_LONG(&_122$$70, 3); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_122$$70, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "tinyint")) { + ZEPHIR_INIT_NVAR(&_123$$71); + ZVAL_LONG(&_123$$71, 26); + zephir_array_update_zval(&fieldTypes, &columnName, &_123$$71, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_124$$71); + ZVAL_LONG(&_124$$71, 1); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_124$$71, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (ZEPHIR_IS_STRING(&feature, "tinytext")) { + ZEPHIR_INIT_NVAR(&_125$$72); + ZVAL_LONG(&_125$$72, 25); + zephir_array_update_zval(&fieldTypes, &columnName, &_125$$72, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_126$$72); + ZVAL_LONG(&_126$$72, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_126$$72, PH_COPY | PH_SEPARATE); + break; + } + ZEPHIR_INIT_NVAR(&_127$$73); + ZVAL_LONG(&_127$$73, 2); + zephir_array_update_zval(&fieldTypes, &columnName, &_127$$73, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_128$$73); + ZVAL_LONG(&_128$$73, 2); + zephir_array_update_zval(&fieldBindTypes, &columnName, &_128$$73, PH_COPY | PH_SEPARATE); + } while(0); + + ZEPHIR_INIT_NVAR(&_74$$44); + ZVAL_STRING(&_74$$44, "Primary"); + ZEPHIR_CALL_METHOD(&_129$$44, &propAnnotations, "has", NULL, 0, &_74$$44); + zephir_check_call_status(); + if (zephir_is_true(&_129$$44)) { + zephir_array_append(&primaryKeys, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 336); + } else { + zephir_array_append(&nonPrimaryKeys, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 338); + } + ZEPHIR_INIT_NVAR(&_74$$44); + ZVAL_STRING(&_74$$44, "Identity"); + ZEPHIR_CALL_METHOD(&_130$$44, &propAnnotations, "has", NULL, 0, &_74$$44); + zephir_check_call_status(); + if (zephir_is_true(&_130$$44)) { + ZEPHIR_CPY_WRT(&identityField, &columnName); + } + ZEPHIR_INIT_NVAR(&_74$$44); + ZVAL_STRING(&_74$$44, "skip_on_insert"); + ZEPHIR_CALL_METHOD(&_131$$44, &columnAnnotation, "getnamedparameter", NULL, 0, &_74$$44); + zephir_check_call_status(); + if (zephir_is_true(&_131$$44)) { + zephir_array_append(&skipOnInsert, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 353); + } + ZEPHIR_INIT_NVAR(&_74$$44); + ZVAL_STRING(&_74$$44, "skip_on_update"); + ZEPHIR_CALL_METHOD(&_132$$44, &columnAnnotation, "getnamedparameter", NULL, 0, &_74$$44); + zephir_check_call_status(); + if (zephir_is_true(&_132$$44)) { + zephir_array_append(&skipOnUpdate, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 360); + } + ZEPHIR_INIT_NVAR(&_74$$44); + ZVAL_STRING(&_74$$44, "allow_empty_string"); + ZEPHIR_CALL_METHOD(&_133$$44, &columnAnnotation, "getnamedparameter", NULL, 0, &_74$$44); + zephir_check_call_status(); + if (zephir_is_true(&_133$$44)) { + zephir_array_append(&emptyStringValues, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 367); + } + ZEPHIR_INIT_NVAR(&_74$$44); + ZVAL_STRING(&_74$$44, "nullable"); + ZEPHIR_CALL_METHOD(&_134$$44, &columnAnnotation, "getnamedparameter", NULL, 0, &_74$$44); + zephir_check_call_status(); + if (!(zephir_is_true(&_134$$44))) { + zephir_array_append(¬Null, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 374); + } + ZEPHIR_INIT_NVAR(&_74$$44); + ZVAL_STRING(&_74$$44, "default"); + ZEPHIR_CALL_METHOD(&defaultValue, &columnAnnotation, "getnamedparameter", NULL, 0, &_74$$44); + zephir_check_call_status(); + _135$$44 = Z_TYPE_P(&defaultValue) != IS_NULL; + if (!(_135$$44)) { + ZEPHIR_INIT_NVAR(&_74$$44); + ZVAL_STRING(&_74$$44, "nullable"); + ZEPHIR_CALL_METHOD(&_136$$44, &columnAnnotation, "getnamedparameter", NULL, 0, &_74$$44); + zephir_check_call_status(); + _135$$44 = zephir_is_true(&_136$$44); + } + if (_135$$44) { + zephir_array_update_zval(&defaultValues, &columnName, &defaultValue, PH_COPY | PH_SEPARATE); + } + zephir_array_append(&attributes, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 386); + ZEPHIR_CALL_METHOD(NULL, &propertiesAnnotations, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&name); - zephir_update_property_zval(this_ptr, ZEND_STRL("headers"), &existing); - RETURN_THIS(); + ZEPHIR_INIT_NVAR(&propAnnotations); + ZEPHIR_INIT_NVAR(&property); + zephir_create_array(return_value, 12, 0); + zephir_array_update_long(return_value, 0, &attributes, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 1, &primaryKeys, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 2, &nonPrimaryKeys, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 3, ¬Null, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 4, &fieldTypes, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 5, &numericTyped, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 8, &identityField, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 9, &fieldBindTypes, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 10, &skipOnInsert, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 11, &skipOnUpdate, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 12, &defaultValues, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 13, &emptyStringValues, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Http_Response, setJsonContent) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_2 = NULL; - zend_long jsonOptions, depth, ZEPHIR_LAST_CALL_STATUS; - zval *content, content_sub, *jsonOptions_param = NULL, *depth_param = NULL, _0, _1, _3, _4; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&content_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ZVAL(content) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(jsonOptions) - Z_PARAM_LONG(depth) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &content, &jsonOptions_param, &depth_param); - if (!jsonOptions_param) { - jsonOptions = 0; - } else { - jsonOptions = zephir_get_intval(jsonOptions_param); - } - if (!depth_param) { - depth = 512; - } else { - depth = zephir_get_intval(depth_param); - } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "application/json"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setcontenttype", NULL, 0, &_0); - zephir_check_call_status(); - ZVAL_LONG(&_3, jsonOptions); - ZVAL_LONG(&_4, depth); - ZEPHIR_CALL_CE_STATIC(&_1, phalcon_helper_json_ce, "encode", &_2, 14, content, &_3, &_4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setcontent", NULL, 0, &_1); - zephir_check_call_status(); - RETURN_THIS(); + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_MetaData_Strategy_Introspection) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model\\MetaData\\Strategy, Introspection, phalcon, mvc_model_metadata_strategy_introspection, phalcon_mvc_model_metadata_strategy_introspection_method_entry, 0); + + zend_class_implements(phalcon_mvc_model_metadata_strategy_introspection_ce, 1, phalcon_mvc_model_metadata_strategy_strategyinterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Http_Response, setLastModified) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Strategy_Introspection, getColumnMaps) { + zend_string *_3$$3; + zend_ulong _2$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *datetime, datetime_sub, date, _0, _1, _2, _3; + zval *model, model_sub, *container, container_sub, orderedColumnMap, userColumnMap, reversedColumnMap, name, userName, *_0$$3, _1$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&datetime_sub); - ZVAL_UNDEF(&date); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&container_sub); + ZVAL_UNDEF(&orderedColumnMap); + ZVAL_UNDEF(&userColumnMap); + ZVAL_UNDEF(&reversedColumnMap); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&userName); + ZVAL_UNDEF(&_1$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(datetime, php_date_get_date_ce()) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &datetime); + zephir_fetch_params(1, 2, 0, &model, &container); - ZEPHIR_INIT_VAR(&date); - if (zephir_clone(&date, datetime) == FAILURE) { - RETURN_MM(); + ZEPHIR_INIT_VAR(&orderedColumnMap); + ZVAL_NULL(&orderedColumnMap); + ZEPHIR_INIT_VAR(&reversedColumnMap); + ZVAL_NULL(&reversedColumnMap); + if ((zephir_method_exists_ex(model, ZEND_STRL("columnmap")) == SUCCESS)) { + ZEPHIR_CALL_METHOD(&userColumnMap, model, "columnmap", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&userColumnMap) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "columnMap() not returned an array", "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 44); + return; + } + ZEPHIR_INIT_NVAR(&reversedColumnMap); + array_init(&reversedColumnMap); + ZEPHIR_CPY_WRT(&orderedColumnMap, &userColumnMap); + zephir_is_iterable(&userColumnMap, 0, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 53); + if (Z_TYPE_P(&userColumnMap) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&userColumnMap), _2$$3, _3$$3, _0$$3) + { + ZEPHIR_INIT_NVAR(&name); + if (_3$$3 != NULL) { + ZVAL_STR_COPY(&name, _3$$3); + } else { + ZVAL_LONG(&name, _2$$3); + } + ZEPHIR_INIT_NVAR(&userName); + ZVAL_COPY(&userName, _0$$3); + zephir_array_update_zval(&reversedColumnMap, &userName, &name, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &userColumnMap, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1$$3, &userColumnMap, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&name, &userColumnMap, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&userName, &userColumnMap, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_update_zval(&reversedColumnMap, &userName, &name, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &userColumnMap, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&userName); + ZEPHIR_INIT_NVAR(&name); } - ZEPHIR_INIT_VAR(&_0); - object_init_ex(&_0, php_date_get_timezone_ce()); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "UTC"); - ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 0, &_1); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &date, "settimezone", NULL, 0, &_0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "D, d M Y H:i:s"); - ZEPHIR_CALL_METHOD(&_2, &date, "format", NULL, 0, &_1); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_3); - ZEPHIR_CONCAT_VS(&_3, &_2, " GMT"); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "Last-Modified"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setheader", NULL, 0, &_1, &_3); - zephir_check_call_status(); - RETURN_THIS(); + zephir_create_array(return_value, 2, 0); + zephir_array_fast_append(return_value, &orderedColumnMap); + zephir_array_fast_append(return_value, &reversedColumnMap); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Http_Response, setNotModified) +static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Strategy_Introspection, getMetaData) { - zval _0, _1; + zend_bool _17$$9, _26$$17; + zval completeTable; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *model, model_sub, *container, container_sub, __$true, schema, table, readConnection, columns, attributes, primaryKeys, nonPrimaryKeys, numericTyped, notNull, fieldTypes, automaticDefault, identityField, fieldBindTypes, defaultValues, column, fieldName, defaultValue, emptyStringValues, _0, *_9, _10, _1$$4, _2$$3, _3$$3, _4$$3, _5$$7, _6$$6, _7$$6, _8$$6, _11$$9, _12$$9, _13$$9, _14$$9, _15$$9, _16$$9, _18$$9, _19$$15, _20$$17, _21$$17, _22$$17, _23$$17, _24$$17, _25$$17, _27$$17, _28$$23; zval *this_ptr = getThis(); + ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&container_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&readConnection); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&primaryKeys); + ZVAL_UNDEF(&nonPrimaryKeys); + ZVAL_UNDEF(&numericTyped); + ZVAL_UNDEF(¬Null); + ZVAL_UNDEF(&fieldTypes); + ZVAL_UNDEF(&automaticDefault); + ZVAL_UNDEF(&identityField); + ZVAL_UNDEF(&fieldBindTypes); + ZVAL_UNDEF(&defaultValues); + ZVAL_UNDEF(&column); + ZVAL_UNDEF(&fieldName); + ZVAL_UNDEF(&defaultValue); + ZVAL_UNDEF(&emptyStringValues); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - ZVAL_LONG(&_0, 304); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "Not modified"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setstatuscode", NULL, 0, &_0, &_1); - zephir_check_call_status(); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Http_Response, setStatusCode) -{ - zend_bool _5$$3, _10$$5; - zend_string *_4; - zend_ulong _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_8 = NULL, *_9 = NULL, *_13 = NULL; - zval message, _15, _17; - zval *code_param = NULL, *message_param = NULL, headers, currentHeadersRaw, key, statusCodes, defaultMessage, _0, *_1, _2, _14, _16, _18, _6$$3, _7$$3, _11$$5, _12$$5; - zend_long code, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&headers); - ZVAL_UNDEF(¤tHeadersRaw); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&statusCodes); - ZVAL_UNDEF(&defaultMessage); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_16); - ZVAL_UNDEF(&_18); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_11$$5); - ZVAL_UNDEF(&_12$$5); - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&_15); - ZVAL_UNDEF(&_17); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$7); + ZVAL_UNDEF(&_6$$6); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_8$$6); + ZVAL_UNDEF(&_11$$9); + ZVAL_UNDEF(&_12$$9); + ZVAL_UNDEF(&_13$$9); + ZVAL_UNDEF(&_14$$9); + ZVAL_UNDEF(&_15$$9); + ZVAL_UNDEF(&_16$$9); + ZVAL_UNDEF(&_18$$9); + ZVAL_UNDEF(&_19$$15); + ZVAL_UNDEF(&_20$$17); + ZVAL_UNDEF(&_21$$17); + ZVAL_UNDEF(&_22$$17); + ZVAL_UNDEF(&_23$$17); + ZVAL_UNDEF(&_24$$17); + ZVAL_UNDEF(&_25$$17); + ZVAL_UNDEF(&_27$$17); + ZVAL_UNDEF(&_28$$23); + ZVAL_UNDEF(&completeTable); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_LONG(code) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(message) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &code_param, &message_param); - code = zephir_get_intval(code_param); - if (!message_param) { - ZEPHIR_INIT_VAR(&message); - } else { - zephir_get_strval(&message, message_param); - } + zephir_fetch_params(1, 2, 0, &model, &container); - ZEPHIR_CALL_METHOD(&headers, this_ptr, "getheaders", NULL, 0); + ZEPHIR_CALL_METHOD(&schema, model, "getschema", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(¤tHeadersRaw, &headers, "toarray", NULL, 0); + ZEPHIR_CALL_METHOD(&table, model, "getsource", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - zephir_is_iterable(¤tHeadersRaw, 0, "phalcon/Http/Response.zep", 748); - if (Z_TYPE_P(¤tHeadersRaw) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(¤tHeadersRaw), _3, _4, _1) + ZEPHIR_CALL_METHOD(&readConnection, model, "getreadconnection", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, &readConnection, "tableexists", NULL, 0, &table, &schema); + zephir_check_call_status(); + if (UNEXPECTED(!zephir_is_true(&_0))) { + if (zephir_is_true(&schema)) { + ZEPHIR_INIT_VAR(&_1$$4); + ZEPHIR_CONCAT_VSV(&_1$$4, &schema, "'.'", &table); + zephir_get_strval(&completeTable, &_1$$4); + } else { + zephir_get_strval(&completeTable, &table); + } + ZEPHIR_INIT_VAR(&_2$$3); + object_init_ex(&_2$$3, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_3$$3); + zephir_get_class(&_3$$3, model, 0); + ZEPHIR_INIT_VAR(&_4$$3); + ZEPHIR_CONCAT_SVSV(&_4$$3, "Table '", &completeTable, "' doesn't exist in database when dumping meta-data for ", &_3$$3); + ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", NULL, 8, &_4$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_2$$3, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 92); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_METHOD(&columns, &readConnection, "describecolumns", NULL, 0, &table, &schema); + zephir_check_call_status(); + if (UNEXPECTED(!(zephir_fast_count_int(&columns)))) { + if (zephir_is_true(&schema)) { + ZEPHIR_INIT_VAR(&_5$$7); + ZEPHIR_CONCAT_VSV(&_5$$7, &schema, "'.'", &table); + zephir_get_strval(&completeTable, &_5$$7); + } else { + zephir_get_strval(&completeTable, &table); + } + ZEPHIR_INIT_VAR(&_6$$6); + object_init_ex(&_6$$6, phalcon_mvc_model_exception_ce); + ZEPHIR_INIT_VAR(&_7$$6); + zephir_get_class(&_7$$6, model, 0); + ZEPHIR_INIT_VAR(&_8$$6); + ZEPHIR_CONCAT_SVSV(&_8$$6, "Cannot obtain table columns for the mapped source '", &completeTable, "' used in model ", &_7$$6); + ZEPHIR_CALL_METHOD(NULL, &_6$$6, "__construct", NULL, 8, &_8$$6); + zephir_check_call_status(); + zephir_throw_exception_debug(&_6$$6, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 112); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + ZEPHIR_INIT_VAR(&primaryKeys); + array_init(&primaryKeys); + ZEPHIR_INIT_VAR(&nonPrimaryKeys); + array_init(&nonPrimaryKeys); + ZEPHIR_INIT_VAR(&numericTyped); + array_init(&numericTyped); + ZEPHIR_INIT_VAR(¬Null); + array_init(¬Null); + ZEPHIR_INIT_VAR(&fieldTypes); + array_init(&fieldTypes); + ZEPHIR_INIT_VAR(&fieldBindTypes); + array_init(&fieldBindTypes); + ZEPHIR_INIT_VAR(&automaticDefault); + array_init(&automaticDefault); + ZEPHIR_INIT_VAR(&identityField); + ZVAL_BOOL(&identityField, 0); + ZEPHIR_INIT_VAR(&defaultValues); + array_init(&defaultValues); + ZEPHIR_INIT_VAR(&emptyStringValues); + array_init(&emptyStringValues); + zephir_is_iterable(&columns, 0, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 189); + if (Z_TYPE_P(&columns) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&columns), _9) { - ZEPHIR_INIT_NVAR(&key); - if (_4 != NULL) { - ZVAL_STR_COPY(&key, _4); + ZEPHIR_INIT_NVAR(&column); + ZVAL_COPY(&column, _9); + ZEPHIR_CALL_METHOD(&fieldName, &column, "getname", NULL, 0); + zephir_check_call_status(); + zephir_array_append(&attributes, &fieldName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 132); + ZEPHIR_CALL_METHOD(&_11$$9, &column, "isprimary", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_11$$9)) { + zephir_array_append(&primaryKeys, &fieldName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 138); } else { - ZVAL_LONG(&key, _3); + zephir_array_append(&nonPrimaryKeys, &fieldName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 140); } - ZEPHIR_INIT_NVAR(&_0); - ZVAL_COPY(&_0, _1); - _5$$3 = Z_TYPE_P(&key) == IS_STRING; - if (_5$$3) { - ZEPHIR_INIT_NVAR(&_6$$3); - ZVAL_STRING(&_6$$3, "HTTP/"); - ZEPHIR_CALL_FUNCTION(&_7$$3, "strstr", &_8, 272, &key, &_6$$3); + ZEPHIR_CALL_METHOD(&_12$$9, &column, "isnumeric", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_12$$9)) { + zephir_array_update_zval(&numericTyped, &fieldName, &__$true, PH_COPY | PH_SEPARATE); + } + ZEPHIR_CALL_METHOD(&_13$$9, &column, "isnotnull", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_13$$9)) { + zephir_array_append(¬Null, &fieldName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 154); + } + ZEPHIR_CALL_METHOD(&_14$$9, &column, "isautoincrement", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_14$$9)) { + ZEPHIR_CPY_WRT(&identityField, &fieldName); + } + ZEPHIR_CALL_METHOD(&_15$$9, &column, "gettype", NULL, 0); + zephir_check_call_status(); + zephir_array_update_zval(&fieldTypes, &fieldName, &_15$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_16$$9, &column, "getbindtype", NULL, 0); + zephir_check_call_status(); + zephir_array_update_zval(&fieldBindTypes, &fieldName, &_16$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&defaultValue, &column, "getdefault", NULL, 0); + zephir_check_call_status(); + _17$$9 = Z_TYPE_P(&defaultValue) != IS_NULL; + if (!(_17$$9)) { + ZEPHIR_CALL_METHOD(&_18$$9, &column, "isnotnull", NULL, 0); zephir_check_call_status(); - _5$$3 = zephir_is_true(&_7$$3); + _17$$9 = !zephir_is_true(&_18$$9); } - if (_5$$3) { - ZEPHIR_CALL_METHOD(NULL, &headers, "remove", &_9, 0, &key); + if (_17$$9) { + ZEPHIR_CALL_METHOD(&_19$$15, &column, "isautoincrement", NULL, 0); zephir_check_call_status(); + if (!(zephir_is_true(&_19$$15))) { + zephir_array_update_zval(&defaultValues, &fieldName, &defaultValue, PH_COPY | PH_SEPARATE); + } } } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, ¤tHeadersRaw, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &columns, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_2, ¤tHeadersRaw, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_10, &columns, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_2)) { + if (!zend_is_true(&_10)) { break; } - ZEPHIR_CALL_METHOD(&key, ¤tHeadersRaw, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, ¤tHeadersRaw, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&column, &columns, "current", NULL, 0); zephir_check_call_status(); - _10$$5 = Z_TYPE_P(&key) == IS_STRING; - if (_10$$5) { - ZEPHIR_INIT_NVAR(&_11$$5); - ZVAL_STRING(&_11$$5, "HTTP/"); - ZEPHIR_CALL_FUNCTION(&_12$$5, "strstr", &_8, 272, &key, &_11$$5); + ZEPHIR_CALL_METHOD(&fieldName, &column, "getname", NULL, 0); + zephir_check_call_status(); + zephir_array_append(&attributes, &fieldName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 132); + ZEPHIR_CALL_METHOD(&_20$$17, &column, "isprimary", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_20$$17)) { + zephir_array_append(&primaryKeys, &fieldName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 138); + } else { + zephir_array_append(&nonPrimaryKeys, &fieldName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 140); + } + ZEPHIR_CALL_METHOD(&_21$$17, &column, "isnumeric", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_21$$17)) { + zephir_array_update_zval(&numericTyped, &fieldName, &__$true, PH_COPY | PH_SEPARATE); + } + ZEPHIR_CALL_METHOD(&_22$$17, &column, "isnotnull", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_22$$17)) { + zephir_array_append(¬Null, &fieldName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 154); + } + ZEPHIR_CALL_METHOD(&_23$$17, &column, "isautoincrement", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_23$$17)) { + ZEPHIR_CPY_WRT(&identityField, &fieldName); + } + ZEPHIR_CALL_METHOD(&_24$$17, &column, "gettype", NULL, 0); + zephir_check_call_status(); + zephir_array_update_zval(&fieldTypes, &fieldName, &_24$$17, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_25$$17, &column, "getbindtype", NULL, 0); + zephir_check_call_status(); + zephir_array_update_zval(&fieldBindTypes, &fieldName, &_25$$17, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&defaultValue, &column, "getdefault", NULL, 0); + zephir_check_call_status(); + _26$$17 = Z_TYPE_P(&defaultValue) != IS_NULL; + if (!(_26$$17)) { + ZEPHIR_CALL_METHOD(&_27$$17, &column, "isnotnull", NULL, 0); zephir_check_call_status(); - _10$$5 = zephir_is_true(&_12$$5); + _26$$17 = !zephir_is_true(&_27$$17); } - if (_10$$5) { - ZEPHIR_CALL_METHOD(NULL, &headers, "remove", &_13, 0, &key); + if (_26$$17) { + ZEPHIR_CALL_METHOD(&_28$$23, &column, "isautoincrement", NULL, 0); zephir_check_call_status(); + if (!(zephir_is_true(&_28$$23))) { + zephir_array_update_zval(&defaultValues, &fieldName, &defaultValue, PH_COPY | PH_SEPARATE); + } } - ZEPHIR_CALL_METHOD(NULL, ¤tHeadersRaw, "next", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &columns, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&_0); - ZEPHIR_INIT_NVAR(&key); - if (ZEPHIR_IS_NULL(&message)) { - ZEPHIR_INIT_VAR(&statusCodes); - zephir_create_array(&statusCodes, 89, 0); - add_index_stringl(&statusCodes, 100, SL("Continue")); - add_index_stringl(&statusCodes, 101, SL("Switching Protocols")); - add_index_stringl(&statusCodes, 102, SL("Processing")); - add_index_stringl(&statusCodes, 103, SL("Early Hints")); - add_index_stringl(&statusCodes, 200, SL("OK")); - add_index_stringl(&statusCodes, 201, SL("Created")); - add_index_stringl(&statusCodes, 202, SL("Accepted")); - add_index_stringl(&statusCodes, 203, SL("Non-Authoritative Information")); - add_index_stringl(&statusCodes, 204, SL("No Content")); - add_index_stringl(&statusCodes, 205, SL("Reset Content")); - add_index_stringl(&statusCodes, 206, SL("Partial Content")); - add_index_stringl(&statusCodes, 207, SL("Multi-status")); - add_index_stringl(&statusCodes, 208, SL("Already Reported")); - add_index_stringl(&statusCodes, 226, SL("IM Used")); - add_index_stringl(&statusCodes, 300, SL("Multiple Choices")); - add_index_stringl(&statusCodes, 301, SL("Moved Permanently")); - add_index_stringl(&statusCodes, 302, SL("Found")); - add_index_stringl(&statusCodes, 303, SL("See Other")); - add_index_stringl(&statusCodes, 304, SL("Not Modified")); - add_index_stringl(&statusCodes, 305, SL("Use Proxy")); - add_index_stringl(&statusCodes, 306, SL("Switch Proxy")); - add_index_stringl(&statusCodes, 307, SL("Temporary Redirect")); - add_index_stringl(&statusCodes, 308, SL("Permanent Redirect")); - add_index_stringl(&statusCodes, 400, SL("Bad Request")); - add_index_stringl(&statusCodes, 401, SL("Unauthorized")); - add_index_stringl(&statusCodes, 402, SL("Payment Required")); - add_index_stringl(&statusCodes, 403, SL("Forbidden")); - add_index_stringl(&statusCodes, 404, SL("Not Found")); - add_index_stringl(&statusCodes, 405, SL("Method Not Allowed")); - add_index_stringl(&statusCodes, 406, SL("Not Acceptable")); - add_index_stringl(&statusCodes, 407, SL("Proxy Authentication Required")); - add_index_stringl(&statusCodes, 408, SL("Request Time-out")); - add_index_stringl(&statusCodes, 409, SL("Conflict")); - add_index_stringl(&statusCodes, 410, SL("Gone")); - add_index_stringl(&statusCodes, 411, SL("Length Required")); - add_index_stringl(&statusCodes, 412, SL("Precondition Failed")); - add_index_stringl(&statusCodes, 413, SL("Request Entity Too Large")); - add_index_stringl(&statusCodes, 414, SL("Request-URI Too Large")); - add_index_stringl(&statusCodes, 415, SL("Unsupported Media Type")); - add_index_stringl(&statusCodes, 416, SL("Requested range not satisfiable")); - add_index_stringl(&statusCodes, 417, SL("Expectation Failed")); - add_index_stringl(&statusCodes, 418, SL("I'm a teapot")); - add_index_stringl(&statusCodes, 421, SL("Misdirected Request")); - add_index_stringl(&statusCodes, 422, SL("Unprocessable Entity")); - add_index_stringl(&statusCodes, 423, SL("Locked")); - add_index_stringl(&statusCodes, 424, SL("Failed Dependency")); - add_index_stringl(&statusCodes, 425, SL("Unordered Collection")); - add_index_stringl(&statusCodes, 426, SL("Upgrade Required")); - add_index_stringl(&statusCodes, 428, SL("Precondition Required")); - add_index_stringl(&statusCodes, 429, SL("Too Many Requests")); - add_index_stringl(&statusCodes, 431, SL("Request Header Fields Too Large")); - add_index_stringl(&statusCodes, 451, SL("Unavailable For Legal Reasons")); - add_index_stringl(&statusCodes, 500, SL("Internal Server Error")); - add_index_stringl(&statusCodes, 501, SL("Not Implemented")); - add_index_stringl(&statusCodes, 502, SL("Bad Gateway")); - add_index_stringl(&statusCodes, 503, SL("Service Unavailable")); - add_index_stringl(&statusCodes, 504, SL("Gateway Time-out")); - add_index_stringl(&statusCodes, 505, SL("HTTP Version not supported")); - add_index_stringl(&statusCodes, 506, SL("Variant Also Negotiates")); - add_index_stringl(&statusCodes, 507, SL("Insufficient Storage")); - add_index_stringl(&statusCodes, 508, SL("Loop Detected")); - add_index_stringl(&statusCodes, 510, SL("Not Extended")); - add_index_stringl(&statusCodes, 511, SL("Network Authentication Required")); - add_index_stringl(&statusCodes, 218, SL("This is fine")); - add_index_stringl(&statusCodes, 419, SL("Page Expired")); - add_index_stringl(&statusCodes, 420, SL("Method Failure")); - add_index_stringl(&statusCodes, 440, SL("Login Time-out")); - add_index_stringl(&statusCodes, 444, SL("No Response")); - add_index_stringl(&statusCodes, 449, SL("Retry With")); - add_index_stringl(&statusCodes, 450, SL("Blocked by Windows Parental Controls (Microsoft)")); - add_index_stringl(&statusCodes, 494, SL("Request header too large")); - add_index_stringl(&statusCodes, 495, SL("SSL Certificate Error")); - add_index_stringl(&statusCodes, 496, SL("SSL Certificate Required")); - add_index_stringl(&statusCodes, 497, SL("HTTP Request Sent to HTTPS Port")); - add_index_stringl(&statusCodes, 498, SL("Invalid Token (Esri)")); - add_index_stringl(&statusCodes, 499, SL("Client Closed Request")); - add_index_stringl(&statusCodes, 509, SL("Bandwidth Limit Exceeded")); - add_index_stringl(&statusCodes, 520, SL("Unknown Error")); - add_index_stringl(&statusCodes, 521, SL("Web Server Is Down")); - add_index_stringl(&statusCodes, 522, SL("Connection Timed Out")); - add_index_stringl(&statusCodes, 523, SL("Origin Is Unreachable")); - add_index_stringl(&statusCodes, 524, SL("A Timeout Occurred")); - add_index_stringl(&statusCodes, 525, SL("SSL Handshake Failed")); - add_index_stringl(&statusCodes, 526, SL("Invalid SSL Certificate")); - add_index_stringl(&statusCodes, 527, SL("Railgun Error")); - add_index_stringl(&statusCodes, 530, SL("Origin DNS Error")); - add_index_stringl(&statusCodes, 598, SL("Network read timeout error")); - add_index_stringl(&statusCodes, 599, SL("Network Connect Timeout Error")); - if (UNEXPECTED(!(zephir_array_isset_long(&statusCodes, code)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_response_exception_ce, "Non-standard statuscode given without a message", "phalcon/Http/Response.zep", 855); - return; - } - ZEPHIR_OBS_VAR(&defaultMessage); - zephir_array_fetch_long(&defaultMessage, &statusCodes, code, PH_NOISY, "phalcon/Http/Response.zep", 858); - zephir_get_strval(&message, &defaultMessage); - } - ZEPHIR_INIT_VAR(&_14); - ZVAL_LONG(&_14, code); - ZEPHIR_INIT_VAR(&_15); - ZEPHIR_CONCAT_SVSV(&_15, "HTTP/1.1 ", &_14, " ", &message); - ZEPHIR_CALL_METHOD(NULL, &headers, "setraw", NULL, 0, &_15); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_16); - ZVAL_LONG(&_16, code); - ZEPHIR_INIT_VAR(&_17); - ZEPHIR_CONCAT_VSV(&_17, &_16, " ", &message); - ZEPHIR_INIT_VAR(&_18); - ZVAL_STRING(&_18, "Status"); - ZEPHIR_CALL_METHOD(NULL, &headers, "set", NULL, 0, &_18, &_17); - zephir_check_call_status(); - RETURN_THIS(); + ZEPHIR_INIT_NVAR(&column); + zephir_create_array(return_value, 12, 0); + zephir_array_update_long(return_value, 0, &attributes, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 1, &primaryKeys, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 2, &nonPrimaryKeys, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 3, ¬Null, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 4, &fieldTypes, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 5, &numericTyped, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 8, &identityField, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 9, &fieldBindTypes, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 10, &automaticDefault, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 11, &automaticDefault, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 12, &defaultValues, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_long(return_value, 13, &emptyStringValues, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Http_Response, setRawHeader) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *header_param = NULL, headers; - zval header; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&header); - ZVAL_UNDEF(&headers); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(header) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &header_param); - zephir_get_strval(&header, header_param); - ZEPHIR_CALL_METHOD(&headers, this_ptr, "getheaders", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &headers, "setraw", NULL, 0, &header); - zephir_check_call_status(); - RETURN_THIS(); -} -zend_object *zephir_init_properties_Phalcon_Http_Response(zend_class_entry *class_type) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_MetaData_Strategy_StrategyInterface) { - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model\\MetaData\\Strategy, StrategyInterface, phalcon, mvc_model_metadata_strategy_strategyinterface, phalcon_mvc_model_metadata_strategy_strategyinterface_method_entry); - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("statusCodes"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("statusCodes"), &_1$$3); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } + return SUCCESS; } +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaData_Strategy_StrategyInterface, getColumnMaps); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaData_Strategy_StrategyInterface, getMetaData); @@ -102617,34 +92899,13 @@ zend_object *zephir_init_properties_Phalcon_Http_Response(zend_class_entry *clas -ZEPHIR_INIT_CLASS(Phalcon_Http_ResponseInterface) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Dispatcher_Exception) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Http, ResponseInterface, phalcon, http_responseinterface, phalcon_http_responseinterface_method_entry); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Dispatcher, Exception, phalcon, mvc_dispatcher_exception, phalcon_dispatcher_exception_ce, NULL, 0); return SUCCESS; } -ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, appendContent); -ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, getContent); -ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, getStatusCode); -ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, getHeaders); -ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, hasHeader); -ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, isSent); -ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, redirect); -ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, resetHeaders); -ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setContent); -ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setContentLength); -ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setContentType); -ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setExpires); -ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setFileToSend); -ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setHeader); -ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setJsonContent); -ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setNotModified); -ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setRawHeader); -ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setStatusCode); -ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, send); -ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, sendCookies); -ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, sendHeaders); @@ -102655,32 +92916,13 @@ ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, sendHeaders); -ZEPHIR_INIT_CLASS(Phalcon_Http_Cookie_CookieInterface) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_View_Exception) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Http\\Cookie, CookieInterface, phalcon, http_cookie_cookieinterface, phalcon_http_cookie_cookieinterface_method_entry); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\View, Exception, phalcon, mvc_view_exception, phalcon_exception_ce, NULL, 0); return SUCCESS; } -ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, delete); -ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, getDomain); -ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, getExpiration); -ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, getHttpOnly); -ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, getName); -ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, getOptions); -ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, getPath); -ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, getSecure); -ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, getValue); -ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, isUsingEncryption); -ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, send); -ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, setDomain); -ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, setExpiration); -ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, setHttpOnly); -ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, setOptions); -ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, setPath); -ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, setSecure); -ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, setValue); -ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, useEncryption); @@ -102691,1068 +92933,1118 @@ ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, useEncryption); -ZEPHIR_INIT_CLASS(Phalcon_Http_Cookie_Exception) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_View_Simple) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Cookie, Exception, phalcon, http_cookie_exception, phalcon_exception_ce, NULL, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\View, Simple, phalcon, mvc_view_simple, phalcon_di_injectable_ce, phalcon_mvc_view_simple_method_entry, 0); + + zend_declare_property_null(phalcon_mvc_view_simple_ce, SL("activeRenderPath"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_simple_ce, SL("content"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_view_simple_ce, SL("engines"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_simple_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_simple_ce, SL("options"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_simple_ce, SL("registeredEngines"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_simple_ce, SL("viewsDir"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_simple_ce, SL("viewParams"), ZEND_ACC_PROTECTED); + phalcon_mvc_view_simple_ce->create_object = zephir_init_properties_Phalcon_Mvc_View_Simple; + zend_class_implements(phalcon_mvc_view_simple_ce, 1, phalcon_mvc_viewbaseinterface_ce); + zend_class_implements(phalcon_mvc_view_simple_ce, 1, phalcon_events_eventsawareinterface_ce); return SUCCESS; } +static PHP_METHOD(Phalcon_Mvc_View_Simple, getRegisteredEngines) +{ + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Message_AbstractCommon) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Message, AbstractCommon, phalcon, http_message_abstractcommon, phalcon_http_message_abstractcommon_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - return SUCCESS; + RETURN_MEMBER(getThis(), "registeredEngines"); } -static PHP_METHOD(Phalcon_Http_Message_AbstractCommon, cloneInstance) +static PHP_METHOD(Phalcon_Mvc_View_Simple, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval property; - zval *element, element_sub, *property_param = NULL, newInstance; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&element_sub); - ZVAL_UNDEF(&newInstance); - ZVAL_UNDEF(&property); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(element) - Z_PARAM_STR(property) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &element, &property_param); - zephir_get_strval(&property, property_param); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + zephir_get_arrval(&options, options_param); + } - ZEPHIR_INIT_VAR(&newInstance); - if (zephir_clone(&newInstance, this_ptr) == FAILURE) { - RETURN_MM(); - } - zephir_update_property_zval_zval(&newInstance, &property, element); - RETURN_CCTOR(&newInstance); + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Message_AbstractCommon, checkStringParameter) +static PHP_METHOD(Phalcon_Mvc_View_Simple, __get) { - zval *element, element_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *key_param = NULL, value, _0; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&element_sub); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(element) + Z_PARAM_STR(key) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &element); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &key_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } - if (Z_TYPE_P(element) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_http_message_exception_invalidargumentexception_ce, "Method requires a string argument", "phalcon/Http/Message/AbstractCommon.zep", 52); - return; + zephir_read_property(&_0, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&value, &_0, &key, 1))) { + RETURN_MM_NULL(); } + RETURN_CTOR(&value); } -static PHP_METHOD(Phalcon_Http_Message_AbstractCommon, processWith) +static PHP_METHOD(Phalcon_Mvc_View_Simple, __set) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval property; - zval *element, element_sub, *property_param = NULL; + zval *key_param = NULL, *value, value_sub; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&element_sub); - ZVAL_UNDEF(&property); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(element) - Z_PARAM_STR(property) + Z_PARAM_STR(key) + Z_PARAM_ZVAL(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &element, &property_param); - zephir_get_strval(&property, property_param); + zephir_fetch_params(1, 2, 0, &key_param, &value); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkstringparameter", NULL, 20, element); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, element, &property); - zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_array(this_ptr, SL("viewParams"), &key, value); + ZEPHIR_MM_RESTORE(); } +static PHP_METHOD(Phalcon_Mvc_View_Simple, getActiveRenderPath) +{ + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Message_AbstractMessage) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Message, AbstractMessage, phalcon, http_message_abstractmessage, phalcon_http_message_abstractcommon_ce, phalcon_http_message_abstractmessage_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_null(phalcon_http_message_abstractmessage_ce, SL("body"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_message_abstractmessage_ce, SL("headers"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_http_message_abstractmessage_ce, SL("protocolVersion"), "1.1", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_message_abstractmessage_ce, SL("uri"), ZEND_ACC_PROTECTED); - return SUCCESS; + RETURN_MEMBER(getThis(), "activeRenderPath"); } -static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, getBody) +static PHP_METHOD(Phalcon_Mvc_View_Simple, getContent) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "body"); + RETURN_MEMBER(getThis(), "content"); } -static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, getProtocolVersion) +static PHP_METHOD(Phalcon_Mvc_View_Simple, getEventsManager) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "protocolVersion"); + RETURN_MEMBER(getThis(), "eventsManager"); } -static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, getUri) +static PHP_METHOD(Phalcon_Mvc_View_Simple, getParamsToView) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "uri"); + RETURN_MEMBER(getThis(), "viewParams"); } -static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, getHeader) +static PHP_METHOD(Phalcon_Mvc_View_Simple, getVar) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name = NULL, name_sub, _1, _2; + zval *key_param = NULL, value, _0; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name_sub); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(name) + Z_PARAM_STR(key) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name); - ZEPHIR_SEPARATE_PARAM(name); + zephir_fetch_params(1, 1, 0, &key_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } - zephir_cast_to_string(&_0, name); - ZEPHIR_CPY_WRT(name, &_0); - zephir_read_property(&_1, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_2); - array_init(&_2); - ZEPHIR_RETURN_CALL_METHOD(&_1, "get", NULL, 0, name, &_2); - zephir_check_call_status(); - RETURN_MM(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&value, &_0, &key, 1))) { + RETURN_MM_NULL(); + } + RETURN_CTOR(&value); } -static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, getHeaderLine) +static PHP_METHOD(Phalcon_Mvc_View_Simple, getViewsDir) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name, name_sub, header, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name_sub); - ZVAL_UNDEF(&header); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(name) - ZEND_PARSE_PARAMETERS_END(); -#endif - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name); - - ZEPHIR_CALL_METHOD(&header, this_ptr, "getheader", NULL, 0, name); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, ","); - zephir_fast_join(return_value, &_0, &header); - RETURN_MM(); + RETURN_MEMBER(getThis(), "viewsDir"); } -static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, getHeaders) +static PHP_METHOD(Phalcon_Mvc_View_Simple, partial) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *partialPath_param = NULL, *params = NULL, params_sub, __$null, viewParams, mergedParams, _2, _0$$3, _1$$3; + zval partialPath; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&partialPath); + ZVAL_UNDEF(¶ms_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&viewParams); + ZVAL_UNDEF(&mergedParams); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(partialPath) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(params) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &partialPath_param, ¶ms); + if (UNEXPECTED(Z_TYPE_P(partialPath_param) != IS_STRING && Z_TYPE_P(partialPath_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'partialPath' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(partialPath_param) == IS_STRING)) { + zephir_get_strval(&partialPath, partialPath_param); + } else { + ZEPHIR_INIT_VAR(&partialPath); + } + if (!params) { + params = ¶ms_sub; + params = &__$null; + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "toarray", NULL, 0); + + ZEPHIR_CALL_FUNCTION(NULL, "ob_start", NULL, 388); zephir_check_call_status(); - RETURN_MM(); + if (Z_TYPE_P(params) == IS_ARRAY) { + zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&viewParams, &_0$$3); + ZEPHIR_INIT_VAR(&mergedParams); + zephir_fast_array_merge(&mergedParams, &viewParams, params); + ZEPHIR_INIT_VAR(&_1$$3); + ZEPHIR_CREATE_SYMBOL_TABLE(); + + } else { + ZEPHIR_CPY_WRT(&mergedParams, params); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "internalrender", NULL, 0, &partialPath, &mergedParams); + zephir_check_call_status(); + if (Z_TYPE_P(params) == IS_ARRAY) { + zephir_update_property_zval(this_ptr, ZEND_STRL("viewParams"), &viewParams); + } + ZEPHIR_CALL_FUNCTION(NULL, "ob_end_clean", NULL, 497); + zephir_check_call_status(); + zephir_read_property(&_2, this_ptr, ZEND_STRL("content"), PH_NOISY_CC | PH_READONLY); + zend_print_zval(&_2, 0); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, hasHeader) +static PHP_METHOD(Phalcon_Mvc_View_Simple, registerEngines) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name, name_sub, _0; + zval *engines_param = NULL; + zval engines; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name_sub); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&engines); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(name) + Z_PARAM_ARRAY(engines) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name); + zephir_fetch_params(1, 1, 0, &engines_param); + ZEPHIR_OBS_COPY_OR_DUP(&engines, engines_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "has", NULL, 0, name); - zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("registeredEngines"), &engines); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, withAddedHeader) +static PHP_METHOD(Phalcon_Mvc_View_Simple, render) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name, name_sub, *value = NULL, value_sub, existing, headers, _0, _1, _2, _3, _4; + zval params; + zval *path_param = NULL, *params_param = NULL, mergedParams, viewParams, _0, _1; + zval path; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name_sub); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&existing); - ZVAL_UNDEF(&headers); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&mergedParams); + ZVAL_UNDEF(&viewParams); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); + ZVAL_UNDEF(¶ms); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(name) - Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(path) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(params) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &name, &value); - ZEPHIR_SEPARATE_PARAM(value); + zephir_fetch_params(1, 1, 1, &path_param, ¶ms_param); + if (UNEXPECTED(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 of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { + zephir_get_strval(&path, path_param); + } else { + ZEPHIR_INIT_VAR(&path); + } + if (!params_param) { + ZEPHIR_INIT_VAR(¶ms); + array_init(¶ms); + } else { + zephir_get_arrval(¶ms, params_param); + } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkheadername", NULL, 35, name); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - if (zephir_clone(&_1, &_0) == FAILURE) { - RETURN_MM(); - } - ZEPHIR_CPY_WRT(&headers, &_1); - ZEPHIR_INIT_VAR(&_2); - array_init(&_2); - ZEPHIR_CALL_METHOD(&existing, &headers, "get", NULL, 0, name, &_2); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "getheadervalue", NULL, 36, value); + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_CREATE_SYMBOL_TABLE(); + + ZEPHIR_CALL_FUNCTION(NULL, "ob_start", NULL, 388); zephir_check_call_status(); - ZEPHIR_CPY_WRT(value, &_3); - ZEPHIR_INIT_VAR(&_4); - zephir_fast_array_merge(&_4, &existing, value); - ZEPHIR_CPY_WRT(value, &_4); - ZEPHIR_CALL_METHOD(NULL, &headers, "set", NULL, 0, name, value); + zephir_read_property(&_1, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&viewParams, &_1); + ZEPHIR_INIT_VAR(&mergedParams); + zephir_fast_array_merge(&mergedParams, &viewParams, ¶ms); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "internalrender", NULL, 0, &path, &mergedParams); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_4); - ZVAL_STRING(&_4, "headers"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, &headers, &_4); + ZEPHIR_CALL_FUNCTION(NULL, "ob_end_clean", NULL, 497); zephir_check_call_status(); - RETURN_MM(); + RETURN_MM_MEMBER(getThis(), "content"); } -static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, withBody) +static PHP_METHOD(Phalcon_Mvc_View_Simple, setContent) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *body, body_sub, newBody, _0; + zval *content_param = NULL; + zval content; zval *this_ptr = getThis(); - ZVAL_UNDEF(&body_sub); - ZVAL_UNDEF(&newBody); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&content); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(body, zephir_get_internal_ce(SL("psr\\http\\message\\streaminterface"))) + Z_PARAM_STR(content) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &body); + zephir_fetch_params(1, 1, 0, &content_param); + if (UNEXPECTED(Z_TYPE_P(content_param) != IS_STRING && Z_TYPE_P(content_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'content' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(content_param) == IS_STRING)) { + zephir_get_strval(&content, content_param); + } else { + ZEPHIR_INIT_VAR(&content); + } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "w+b"); - ZEPHIR_CALL_METHOD(&newBody, this_ptr, "processbody", NULL, 37, body, &_0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "body"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, &newBody, &_0); - zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("content"), &content); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, withHeader) +static PHP_METHOD(Phalcon_Mvc_View_Simple, setEventsManager) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name, name_sub, *value = NULL, value_sub, headers, _0, _1, _2, _3; + zval *eventsManager, eventsManager_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name_sub); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&headers); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&eventsManager_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(name) - Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &name, &value); - ZEPHIR_SEPARATE_PARAM(value); + zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkheadername", NULL, 35, name); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - if (zephir_clone(&_1, &_0) == FAILURE) { - RETURN_MM(); - } - ZEPHIR_CPY_WRT(&headers, &_1); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getheadervalue", NULL, 36, value); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(value, &_2); - ZEPHIR_CALL_METHOD(NULL, &headers, "set", NULL, 0, name, value); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "headers"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, &headers, &_3); - zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); } -static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, withProtocolVersion) +static PHP_METHOD(Phalcon_Mvc_View_Simple, setParamToView) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *version, version_sub, _0; + zval *key_param = NULL, *value, value_sub; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&version_sub); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(version) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(key) + Z_PARAM_ZVAL(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &version); + zephir_fetch_params(1, 2, 0, &key_param, &value); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processprotocol", NULL, 38, version); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "protocolVersion"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, version, &_0); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "setvar", NULL, 0, &key, value); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, withoutHeader) +static PHP_METHOD(Phalcon_Mvc_View_Simple, setVar) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name, name_sub, headers, _0, _1, _2; + zval *key_param = NULL, *value, value_sub; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name_sub); - ZVAL_UNDEF(&headers); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(name) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(key) + Z_PARAM_ZVAL(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name); + zephir_fetch_params(1, 2, 0, &key_param, &value); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - if (zephir_clone(&_1, &_0) == FAILURE) { - RETURN_MM(); - } - ZEPHIR_CPY_WRT(&headers, &_1); - ZEPHIR_CALL_METHOD(NULL, &headers, "remove", NULL, 0, name); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "headers"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, &headers, &_2); - zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_array(this_ptr, SL("viewParams"), &key, value); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, checkHeaderHost) +static PHP_METHOD(Phalcon_Mvc_View_Simple, setVars) { - zend_bool _2, _4; - zval header, _11$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *collection, collection_sub, data, host, hostArray, _0, _1, _3, _5, _6, _7, _8$$3, _10$$3, _12$$3, _9$$4; + zend_bool merge; + zval *params_param = NULL, *merge_param = NULL, _0$$3, _1$$3; + zval params; zval *this_ptr = getThis(); - ZVAL_UNDEF(&collection_sub); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&host); - ZVAL_UNDEF(&hostArray); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8$$3); - ZVAL_UNDEF(&_10$$3); - ZVAL_UNDEF(&_12$$3); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&header); - ZVAL_UNDEF(&_11$$3); + ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(collection, phalcon_collection_collectioninterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(params) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(merge) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &collection); + zephir_fetch_params(1, 1, 1, ¶ms_param, &merge_param); + ZEPHIR_OBS_COPY_OR_DUP(¶ms, params_param); + if (!merge_param) { + merge = 1; + } else { + merge = zephir_get_boolval(merge_param); + } - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "host"); - ZEPHIR_CALL_METHOD(&_0, collection, "has", NULL, 0, &_1); - zephir_check_call_status(); - _2 = zephir_is_true(&_0); - if (_2) { - ZEPHIR_OBS_VAR(&_3); - zephir_read_property(&_3, this_ptr, ZEND_STRL("uri"), PH_NOISY_CC); - _2 = !(ZEPHIR_IS_EMPTY(&_3)); - } - _4 = _2; - if (_4) { - zephir_read_property(&_5, this_ptr, ZEND_STRL("uri"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_6, &_5, "gethost", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_7); - ZVAL_STRING(&_7, ""); - _4 = !ZEPHIR_IS_IDENTICAL(&_7, &_6); - } - if (UNEXPECTED(_4)) { - zephir_read_property(&_8$$3, this_ptr, ZEND_STRL("uri"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&host, this_ptr, "geturihost", NULL, 39, &_8$$3); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&hostArray, &host); - if (UNEXPECTED(Z_TYPE_P(&host) != IS_ARRAY)) { - ZEPHIR_INIT_VAR(&_9$$4); - zephir_create_array(&_9$$4, 1, 0); - zephir_array_fast_append(&_9$$4, &host); - ZEPHIR_CPY_WRT(&hostArray, &_9$$4); - } - ZEPHIR_INIT_VAR(&_10$$3); - ZVAL_STRING(&_10$$3, "host"); - ZEPHIR_CALL_METHOD(NULL, collection, "remove", NULL, 0, &_10$$3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&data, collection, "toarray", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&header); - array_init(&header); - zephir_array_update_string(&header, SL("Host"), &hostArray, PH_COPY | PH_SEPARATE); - zephir_get_arrval(&_11$$3, &data); - ZEPHIR_INIT_VAR(&_12$$3); - zephir_add_function(&_12$$3, &header, &_11$$3); - ZEPHIR_CPY_WRT(&header, &_12$$3); - ZEPHIR_CALL_METHOD(NULL, collection, "clear", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, collection, "init", NULL, 0, &header); - zephir_check_call_status(); + if (merge) { + ZEPHIR_INIT_VAR(&_0$$3); + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); + zephir_fast_array_merge(&_0$$3, &_1$$3, ¶ms); + ZEPHIR_CPY_WRT(¶ms, &_0$$3); } - RETVAL_ZVAL(collection, 1, 0); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("viewParams"), ¶ms); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, checkHeaderName) +static PHP_METHOD(Phalcon_Mvc_View_Simple, setViewsDir) { - zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name, name_sub, _1, _2, _3, _4, _5$$3, _6$$3; + zephir_fcall_cache_entry *_1 = NULL; + zval *viewsDir_param = NULL, _0; + zval viewsDir; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name_sub); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&viewsDir); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(name) + Z_PARAM_STR(viewsDir) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name); - - - _0 = Z_TYPE_P(name) != IS_STRING; - if (!(_0)) { - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "/^[a-zA-Z0-9'`#$%&*+.^_|~!-]+$/"); - ZEPHIR_INIT_VAR(&_3); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "/^[a-zA-Z0-9'`#$%&*+.^_|~!-]+$/"); - zephir_preg_match(&_3, &_4, name, &_1, 0, 0 , 0 ); - _0 = !zephir_is_true(&_3); + zephir_fetch_params(1, 1, 0, &viewsDir_param); + if (UNEXPECTED(Z_TYPE_P(viewsDir_param) != IS_STRING && Z_TYPE_P(viewsDir_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewsDir' must be of the type string")); + RETURN_MM_NULL(); } - if (UNEXPECTED(_0)) { - ZEPHIR_INIT_VAR(&_5$$3); - object_init_ex(&_5$$3, phalcon_http_message_exception_invalidargumentexception_ce); - ZEPHIR_INIT_VAR(&_6$$3); - ZEPHIR_CONCAT_SV(&_6$$3, "Invalid header name ", name); - ZEPHIR_CALL_METHOD(NULL, &_5$$3, "__construct", NULL, 40, &_6$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_5$$3, "phalcon/Http/Message/AbstractMessage.zep", 333); - ZEPHIR_MM_RESTORE(); - return; + if (EXPECTED(Z_TYPE_P(viewsDir_param) == IS_STRING)) { + zephir_get_strval(&viewsDir, viewsDir_param); + } else { + ZEPHIR_INIT_VAR(&viewsDir); } + + + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_str_ce, "dirseparator", &_1, 129, &viewsDir); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("viewsDir"), &_0); ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, checkHeaderValue) +static PHP_METHOD(Phalcon_Mvc_View_Simple, loadTemplateEngines) { - zval _1; - zend_bool _0, _6; + zval _15$$11, _20$$17; + zend_class_entry *_12$$9, *_19$$15; + zend_string *_10$$5; + zend_ulong _9$$5; + zval engines, di, registeredEngines, extension, engineService, engineObject, _0, _1$$3, _2$$4, _3$$6, _4$$6, _6$$6, *_7$$5, _8$$5, _11$$9, _16$$12, _17$$12, _18$$15, _21$$18, _22$$18, _23$$19; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *value = NULL, value_sub, _2, _3, _4, _5, _7, _8, _9, _10; + zephir_fcall_cache_entry *_5 = NULL, *_13 = NULL, *_14 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&engines); + ZVAL_UNDEF(&di); + ZVAL_UNDEF(®isteredEngines); + ZVAL_UNDEF(&extension); + ZVAL_UNDEF(&engineService); + ZVAL_UNDEF(&engineObject); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$6); + ZVAL_UNDEF(&_4$$6); + ZVAL_UNDEF(&_6$$6); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_11$$9); + ZVAL_UNDEF(&_16$$12); + ZVAL_UNDEF(&_17$$12); + ZVAL_UNDEF(&_18$$15); + ZVAL_UNDEF(&_21$$18); + ZVAL_UNDEF(&_22$$18); + ZVAL_UNDEF(&_23$$19); + ZVAL_UNDEF(&_15$$11); + ZVAL_UNDEF(&_20$$17); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &value); - ZEPHIR_SEPARATE_PARAM(value); - - _0 = Z_TYPE_P(value) != IS_STRING; - if (_0) { - _0 = 1 != zephir_is_numeric(value); - } - if (UNEXPECTED(_0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid header value", "phalcon/Http/Message/AbstractMessage.zep", 385); - return; - } - zephir_cast_to_string(&_1, value); - ZEPHIR_CPY_WRT(value, &_1); - ZEPHIR_INIT_VAR(&_2); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "#(?:(?:(?= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(values) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(path) + Z_PARAM_ZVAL(params) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &values); + zephir_fetch_params(1, 2, 0, &path_param, ¶ms); + if (UNEXPECTED(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 of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { + zephir_get_strval(&path, path_param); + } else { + ZEPHIR_INIT_VAR(&path); + } - ZEPHIR_CPY_WRT(&valueArray, values); - if (UNEXPECTED(Z_TYPE_P(values) != IS_ARRAY)) { - ZEPHIR_INIT_VAR(&_0$$3); - zephir_create_array(&_0$$3, 1, 0); - zephir_array_fast_append(&_0$$3, values); - ZEPHIR_CPY_WRT(&valueArray, &_0$$3); + zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_0); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + zephir_update_property_zval(this_ptr, ZEND_STRL("activeRenderPath"), &path); } - if (UNEXPECTED(ZEPHIR_IS_EMPTY(&valueArray))) { - ZEPHIR_INIT_VAR(&_1$$4); - object_init_ex(&_1$$4, phalcon_http_message_exception_invalidargumentexception_ce); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { ZEPHIR_INIT_VAR(&_2$$4); - ZEPHIR_CONCAT_SS(&_2$$4, "Invalid header value: must be a string or ", "array of strings; cannot be an empty array"); - ZEPHIR_CALL_METHOD(NULL, &_1$$4, "__construct", NULL, 40, &_2$$4); + ZVAL_STRING(&_2$$4, "view:beforeRender"); + ZEPHIR_CALL_METHOD(&_1$$4, &eventsManager, "fire", NULL, 0, &_2$$4, this_ptr); zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$4, "phalcon/Http/Message/AbstractMessage.zep", 412); - ZEPHIR_MM_RESTORE(); - return; + if (ZEPHIR_IS_FALSE_IDENTICAL(&_1$$4)) { + RETURN_MM_NULL(); + } } - ZEPHIR_INIT_VAR(&valueData); - array_init(&valueData); - zephir_is_iterable(&valueArray, 0, "phalcon/Http/Message/AbstractMessage.zep", 422); - if (Z_TYPE_P(&valueArray) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&valueArray), _3) + notExists = 1; + mustClean = 1; + zephir_read_property(&_0, this_ptr, ZEND_STRL("viewsDir"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_3); + ZEPHIR_CONCAT_VV(&_3, &_0, &path); + zephir_get_strval(&viewsDirPath, &_3); + ZEPHIR_CALL_METHOD(&engines, this_ptr, "loadtemplateengines", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&engines, 0, "phalcon/Mvc/View/Simple.zep", 577); + if (Z_TYPE_P(&engines) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&engines), _6, _7, _4) { - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _3); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkheadervalue", &_5, 41, &value); + ZEPHIR_INIT_NVAR(&extension); + if (_7 != NULL) { + ZVAL_STR_COPY(&extension, _7); + } else { + ZVAL_LONG(&extension, _6); + } + ZEPHIR_INIT_NVAR(&engine); + ZVAL_COPY(&engine, _4); + ZEPHIR_INIT_NVAR(&_8$$6); + ZEPHIR_CONCAT_VV(&_8$$6, &viewsDirPath, &extension); + ZVAL_LONG(&_9$$6, -zephir_fast_strlen_ev(&extension)); + ZEPHIR_INIT_NVAR(&_10$$6); + zephir_substr(&_10$$6, &viewsDirPath, zephir_get_intval(&_9$$6), 0, ZEPHIR_SUBSTR_NO_LENGTH); + _11$$6 = ZEPHIR_IS_EQUAL(&_10$$6, &extension); + if (_11$$6) { + _11$$6 = (zephir_file_exists(&viewsDirPath) == SUCCESS); + } + if ((zephir_file_exists(&_8$$6) == SUCCESS)) { + ZEPHIR_INIT_NVAR(&_12$$7); + ZEPHIR_CONCAT_VV(&_12$$7, &viewsDirPath, &extension); + zephir_get_strval(&viewEnginePath, &_12$$7); + } else if (_11$$6) { + ZEPHIR_CPY_WRT(&viewEnginePath, &viewsDirPath); + } else { + continue; + } + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_14$$10); + ZVAL_STRING(&_14$$10, "view:beforeRenderView"); + ZEPHIR_CALL_METHOD(&_13$$10, &eventsManager, "fire", &_15, 0, &_14$$10, this_ptr, &viewEnginePath); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_13$$10)) { + continue; + } + } + if (mustClean) { + ZVAL_BOOL(&_16$$6, 1); + } else { + ZVAL_BOOL(&_16$$6, 0); + } + ZEPHIR_CALL_METHOD(NULL, &engine, "render", NULL, 0, &viewEnginePath, params, &_16$$6); zephir_check_call_status(); - zephir_cast_to_string(&_6$$5, &value); - zephir_array_append(&valueData, &_6$$5, PH_SEPARATE, "phalcon/Http/Message/AbstractMessage.zep", 419); + notExists = 0; + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_17$$12); + ZVAL_STRING(&_17$$12, "view:afterRenderView"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_18, 0, &_17$$12, this_ptr); + zephir_check_call_status(); + } + break; } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &valueArray, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &engines, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_4, &valueArray, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_5, &engines, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_4)) { + if (!zend_is_true(&_5)) { break; } - ZEPHIR_CALL_METHOD(&value, &valueArray, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&extension, &engines, "key", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkheadervalue", &_5, 41, &value); + ZEPHIR_CALL_METHOD(&engine, &engines, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_19$$13); + ZEPHIR_CONCAT_VV(&_19$$13, &viewsDirPath, &extension); + ZVAL_LONG(&_20$$13, -zephir_fast_strlen_ev(&extension)); + ZEPHIR_INIT_NVAR(&_21$$13); + zephir_substr(&_21$$13, &viewsDirPath, zephir_get_intval(&_20$$13), 0, ZEPHIR_SUBSTR_NO_LENGTH); + _22$$13 = ZEPHIR_IS_EQUAL(&_21$$13, &extension); + if (_22$$13) { + _22$$13 = (zephir_file_exists(&viewsDirPath) == SUCCESS); + } + if ((zephir_file_exists(&_19$$13) == SUCCESS)) { + ZEPHIR_INIT_NVAR(&_23$$14); + ZEPHIR_CONCAT_VV(&_23$$14, &viewsDirPath, &extension); + zephir_get_strval(&viewEnginePath, &_23$$14); + } else if (_22$$13) { + ZEPHIR_CPY_WRT(&viewEnginePath, &viewsDirPath); + } else { + continue; + } + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_25$$17); + ZVAL_STRING(&_25$$17, "view:beforeRenderView"); + ZEPHIR_CALL_METHOD(&_24$$17, &eventsManager, "fire", &_26, 0, &_25$$17, this_ptr, &viewEnginePath); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_24$$17)) { + continue; + } + } + if (mustClean) { + ZVAL_BOOL(&_27$$13, 1); + } else { + ZVAL_BOOL(&_27$$13, 0); + } + ZEPHIR_CALL_METHOD(NULL, &engine, "render", NULL, 0, &viewEnginePath, params, &_27$$13); zephir_check_call_status(); - zephir_cast_to_string(&_7$$6, &value); - zephir_array_append(&valueData, &_7$$6, PH_SEPARATE, "phalcon/Http/Message/AbstractMessage.zep", 419); - ZEPHIR_CALL_METHOD(NULL, &valueArray, "next", NULL, 0); + notExists = 0; + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_28$$19); + ZVAL_STRING(&_28$$19, "view:afterRenderView"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_29, 0, &_28$$19, this_ptr); + zephir_check_call_status(); + } + break; + ZEPHIR_CALL_METHOD(NULL, &engines, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&value); - RETURN_CCTOR(&valueData); + ZEPHIR_INIT_NVAR(&engine); + ZEPHIR_INIT_NVAR(&extension); + if (notExists) { + ZEPHIR_INIT_VAR(&_30$$20); + object_init_ex(&_30$$20, phalcon_mvc_view_exception_ce); + ZEPHIR_INIT_VAR(&_31$$20); + ZEPHIR_CONCAT_SVS(&_31$$20, "View '", &viewsDirPath, "' was not found in the views directory"); + ZEPHIR_CALL_METHOD(NULL, &_30$$20, "__construct", NULL, 8, &_31$$20); + zephir_check_call_status(); + zephir_throw_exception_debug(&_30$$20, "phalcon/Mvc/View/Simple.zep", 580); + ZEPHIR_MM_RESTORE(); + return; + } + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_32$$21); + ZVAL_STRING(&_32$$21, "view:afterRender"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_32$$21, this_ptr); + zephir_check_call_status(); + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, getUriHost) +zend_object *zephir_init_properties_Phalcon_Mvc_View_Simple(zend_class_entry *class_type) { + zval _0, _2, _1$$3, _3$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *uri, uri_sub, host, _0, _1$$3, _2$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&uri_sub); - ZVAL_UNDEF(&host); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(uri, zephir_get_internal_ce(SL("psr\\http\\message\\uriinterface"))) - ZEND_PARSE_PARAMETERS_END(); + ZVAL_UNDEF(&_3$$4); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("viewParams"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_3$$4); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &uri); - ZEPHIR_CALL_METHOD(&host, uri, "gethost", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, uri, "getport", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&_0) != IS_NULL)) { - ZEPHIR_CALL_METHOD(&_1$$3, uri, "getport", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_CONCAT_SV(&_2$$3, ":", &_1$$3); - zephir_concat_self(&host, &_2$$3); - } - RETURN_CCTOR(&host); + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_View_Engine_AbstractEngine) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\View\\Engine, AbstractEngine, phalcon, mvc_view_engine_abstractengine, phalcon_di_injectable_ce, phalcon_mvc_view_engine_abstractengine_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_mvc_view_engine_abstractengine_ce, SL("view"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_mvc_view_engine_abstractengine_ce, 1, phalcon_mvc_view_engine_engineinterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, populateHeaderCollection) +static PHP_METHOD(Phalcon_Mvc_View_Engine_AbstractEngine, __construct) { - zval _5$$3, _9$$4; - zend_string *_3; - zend_ulong _2; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL, *_7 = NULL, *_8 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *headers_param = NULL, collection, name, value, *_0, _1, _6$$3, _10$$4; - zval headers; + zval *view, view_sub, *container = NULL, container_sub, __$null; zval *this_ptr = getThis(); - ZVAL_UNDEF(&headers); - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_10$$4); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&view_sub); + ZVAL_UNDEF(&container_sub); + ZVAL_NULL(&__$null); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(headers) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_OBJECT_OF_CLASS(view, phalcon_mvc_viewbaseinterface_ce) + Z_PARAM_OPTIONAL + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(container, phalcon_di_diinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &headers_param); - zephir_get_arrval(&headers, headers_param); + zephir_fetch_params_without_memory_grow(1, 1, &view, &container); + if (!container) { + container = &container_sub; + container = &__$null; + } - ZEPHIR_INIT_VAR(&collection); - object_init_ex(&collection, phalcon_collection_ce); - ZEPHIR_CALL_METHOD(NULL, &collection, "__construct", NULL, 22); - zephir_check_call_status(); - zephir_is_iterable(&headers, 0, "phalcon/Http/Message/AbstractMessage.zep", 466); - if (Z_TYPE_P(&headers) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&headers), _2, _3, _0) - { - ZEPHIR_INIT_NVAR(&name); - if (_3 != NULL) { - ZVAL_STR_COPY(&name, _3); - } else { - ZVAL_LONG(&name, _2); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkheadername", &_4, 35, &name); - zephir_check_call_status(); - zephir_cast_to_string(&_5$$3, &name); - ZEPHIR_CPY_WRT(&name, &_5$$3); - ZEPHIR_CALL_METHOD(&_6$$3, this_ptr, "getheadervalue", &_7, 36, &value); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&value, &_6$$3); - ZEPHIR_CALL_METHOD(NULL, &collection, "set", &_8, 42, &name, &value); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &headers, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &headers, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&name, &headers, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &headers, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkheadername", &_4, 35, &name); - zephir_check_call_status(); - zephir_cast_to_string(&_9$$4, &name); - ZEPHIR_CPY_WRT(&name, &_9$$4); - ZEPHIR_CALL_METHOD(&_10$$4, this_ptr, "getheadervalue", &_7, 36, &value); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&value, &_10$$4); - ZEPHIR_CALL_METHOD(NULL, &collection, "set", &_8, 42, &name, &value); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &headers, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&name); - RETURN_CCTOR(&collection); + zephir_update_property_zval(this_ptr, ZEND_STRL("view"), view); + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); } -static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, processBody) +static PHP_METHOD(Phalcon_Mvc_View_Engine_AbstractEngine, getContent) { - zend_bool _0, _1; + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval mode; - zval *body = NULL, body_sub, *mode_param = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&body_sub); - ZVAL_UNDEF(&mode); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL(body) - Z_PARAM_STR(mode) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_0); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &body, &mode_param); - if (!body) { - body = &body_sub; - ZEPHIR_INIT_VAR(body); - ZVAL_STRING(body, "php://memory"); - } - if (!mode_param) { - ZEPHIR_INIT_VAR(&mode); - ZVAL_STRING(&mode, "r+b"); - } else { - if (UNEXPECTED(Z_TYPE_P(mode_param) != IS_STRING && Z_TYPE_P(mode_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'mode' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(mode_param) == IS_STRING)) { - zephir_get_strval(&mode, mode_param); - } else { - ZEPHIR_INIT_VAR(&mode); - } - } - - _0 = Z_TYPE_P(body) == IS_OBJECT; - if (_0) { - _0 = zephir_is_instance_of(body, SL("Psr\\Http\\Message\\StreamInterface")); - } - if (UNEXPECTED(_0)) { - RETVAL_ZVAL(body, 1, 0); - RETURN_MM(); - } - _1 = Z_TYPE_P(body) != IS_STRING; - if (_1) { - _1 = Z_TYPE_P(body) != IS_RESOURCE; - } - if (UNEXPECTED(_1)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid stream passed as a parameter", "phalcon/Http/Message/AbstractMessage.zep", 486); - return; - } - object_init_ex(return_value, phalcon_http_message_stream_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 43, body, &mode); + zephir_read_property(&_0, this_ptr, ZEND_STRL("view"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "getcontent", NULL, 0); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, processHeaders) +static PHP_METHOD(Phalcon_Mvc_View_Engine_AbstractEngine, getView) { - zend_bool _1$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *headers, headers_sub, collection, _0$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&headers_sub); - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&_0$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(headers) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &headers); - if (EXPECTED(Z_TYPE_P(headers) == IS_ARRAY)) { - ZEPHIR_CALL_METHOD(&collection, this_ptr, "populateheadercollection", NULL, 44, headers); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "checkheaderhost", NULL, 45, &collection); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&collection, &_0$$3); - } else { - _1$$4 = Z_TYPE_P(headers) == IS_OBJECT; - if (_1$$4) { - _1$$4 = zephir_instance_of_ev(headers, phalcon_collection_collectioninterface_ce); - } - if (UNEXPECTED(!(_1$$4))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Headers needs to be either an array or instance of Phalcon\\Collection", "phalcon/Http/Message/AbstractMessage.zep", 506); - return; - } - ZEPHIR_CPY_WRT(&collection, headers); - } - RETURN_CCTOR(&collection); + RETURN_MEMBER(getThis(), "view"); } -static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, processProtocol) +static PHP_METHOD(Phalcon_Mvc_View_Engine_AbstractEngine, partial) { - zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *protocol = NULL, protocol_sub, protocols, _1$$4, _2$$4; + zval *partialPath_param = NULL, *params = NULL, params_sub, __$null, _0; + zval partialPath; zval *this_ptr = getThis(); - ZVAL_UNDEF(&protocol_sub); - ZVAL_UNDEF(&protocols); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&partialPath); + ZVAL_UNDEF(¶ms_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(partialPath) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL(protocol) + Z_PARAM_ZVAL_OR_NULL(params) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &protocol); - if (!protocol) { - protocol = &protocol_sub; - ZEPHIR_INIT_VAR(protocol); - ZVAL_STRING(protocol, ""); + zephir_fetch_params(1, 1, 1, &partialPath_param, ¶ms); + if (UNEXPECTED(Z_TYPE_P(partialPath_param) != IS_STRING && Z_TYPE_P(partialPath_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'partialPath' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(partialPath_param) == IS_STRING)) { + zephir_get_strval(&partialPath, partialPath_param); + } else { + ZEPHIR_INIT_VAR(&partialPath); + } + if (!params) { + params = ¶ms_sub; + params = &__$null; } - ZEPHIR_INIT_VAR(&protocols); - zephir_create_array(&protocols, 4, 0); - add_assoc_long_ex(&protocols, SL("1.0"), 1); - add_assoc_long_ex(&protocols, SL("1.1"), 1); - add_assoc_long_ex(&protocols, SL("2.0"), 1); - add_assoc_long_ex(&protocols, SL("3.0"), 1); - _0 = ZEPHIR_IS_EMPTY(protocol); - if (!(_0)) { - _0 = Z_TYPE_P(protocol) != IS_STRING; - } - if (UNEXPECTED(_0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid protocol value", "phalcon/Http/Message/AbstractMessage.zep", 534); - return; - } - if (UNEXPECTED(!(zephir_array_isset(&protocols, protocol)))) { - ZEPHIR_INIT_VAR(&_1$$4); - object_init_ex(&_1$$4, phalcon_http_message_exception_invalidargumentexception_ce); - ZEPHIR_INIT_VAR(&_2$$4); - ZEPHIR_CONCAT_SV(&_2$$4, "Unsupported protocol ", protocol); - ZEPHIR_CALL_METHOD(NULL, &_1$$4, "__construct", NULL, 40, &_2$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$4, "phalcon/Http/Message/AbstractMessage.zep", 540); - ZEPHIR_MM_RESTORE(); - return; - } - RETVAL_ZVAL(protocol, 1, 0); - RETURN_MM(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("view"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "partial", NULL, 0, &partialPath, params); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } @@ -103765,512 +94057,795 @@ static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, processProtocol) -ZEPHIR_INIT_CLASS(Phalcon_Http_Message_AbstractRequest) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_View_Engine_EngineInterface) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Message, AbstractRequest, phalcon, http_message_abstractrequest, phalcon_http_message_abstractmessage_ce, phalcon_http_message_abstractrequest_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\View\\Engine, EngineInterface, phalcon, mvc_view_engine_engineinterface, phalcon_mvc_view_engine_engineinterface_method_entry); - zend_declare_property_string(phalcon_http_message_abstractrequest_ce, SL("method"), "GET", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_message_abstractrequest_ce, SL("requestTarget"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_message_abstractrequest_ce, SL("uri"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_http_message_abstractrequest_ce, 1, phalcon_http_message_requestmethodinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Http_Message_AbstractRequest, getMethod) -{ - zval *this_ptr = getThis(); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_View_Engine_EngineInterface, getContent); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_View_Engine_EngineInterface, partial); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_View_Engine_EngineInterface, render); - RETURN_MEMBER(getThis(), "method"); -} +#ifdef HAVE_CONFIG_H +#endif -static PHP_METHOD(Phalcon_Http_Message_AbstractRequest, getUri) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "uri"); + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_View_Engine_Php) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\View\\Engine, Php, phalcon, mvc_view_engine_php, phalcon_mvc_view_engine_abstractengine_ce, phalcon_mvc_view_engine_php_method_entry, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Http_Message_AbstractRequest, getRequestTarget) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Php, render) { - zval requestTarget, _0, _1$$3, _2$$3, _3$$3, _4$$4, _5$$4, _6$$4; + zend_string *_3$$4; + zend_ulong _2$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool mustClean; + zval *path_param = NULL, *params, params_sub, *mustClean_param = NULL, key, value, *_0$$4, _1$$4, _4$$5, _5$$6, _6$$7, _7$$7; + zval path; zval *this_ptr = getThis(); - ZVAL_UNDEF(&requestTarget); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(¶ms_sub); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&_6$$7); + ZVAL_UNDEF(&_7$$7); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(path) + Z_PARAM_ZVAL(params) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(mustClean) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &path_param, ¶ms, &mustClean_param); + if (UNEXPECTED(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 of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { + zephir_get_strval(&path, path_param); + } else { + ZEPHIR_INIT_VAR(&path); + } + if (!mustClean_param) { + mustClean = 0; + } else { + mustClean = zephir_get_boolval(mustClean_param); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("requestTarget"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&requestTarget, &_0); - if (UNEXPECTED(Z_TYPE_P(&requestTarget) == IS_NULL)) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("uri"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&requestTarget, &_1$$3, "getpath", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("uri"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_3$$3, &_2$$3, "getquery", NULL, 0); + + if (mustClean) { + ZEPHIR_CALL_FUNCTION(NULL, "ob_clean", NULL, 501); zephir_check_call_status(); - if (UNEXPECTED(!(ZEPHIR_IS_EMPTY(&_3$$3)))) { - zephir_read_property(&_4$$4, this_ptr, ZEND_STRL("uri"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_5$$4, &_4$$4, "getquery", NULL, 0); + } + if (Z_TYPE_P(params) == IS_ARRAY) { + zephir_is_iterable(params, 0, "phalcon/Mvc/View/Engine/Php.zep", 36); + if (Z_TYPE_P(params) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(params), _2$$4, _3$$4, _0$$4) + { + ZEPHIR_INIT_NVAR(&key); + if (_3$$4 != NULL) { + ZVAL_STR_COPY(&key, _3$$4); + } else { + ZVAL_LONG(&key, _2$$4); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0$$4); + ZEPHIR_CPY_WRT(&_4$$5, &value); + if (zephir_set_symbol(&key, &_4$$5) == FAILURE) { + return; + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, params, "rewind", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_6$$4); - ZEPHIR_CONCAT_SV(&_6$$4, "?", &_5$$4); - zephir_concat_self(&requestTarget, &_6$$4); - } - if (UNEXPECTED(ZEPHIR_IS_EMPTY(&requestTarget))) { - ZEPHIR_INIT_NVAR(&requestTarget); - ZVAL_STRING(&requestTarget, "/"); + while (1) { + ZEPHIR_CALL_METHOD(&_1$$4, params, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1$$4)) { + break; + } + ZEPHIR_CALL_METHOD(&key, params, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, params, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&_5$$6, &value); + if (zephir_set_symbol(&key, &_5$$6) == FAILURE) { + return; + } + ZEPHIR_CALL_METHOD(NULL, params, "next", NULL, 0); + zephir_check_call_status(); + } } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); } - RETURN_CCTOR(&requestTarget); + if (zephir_require_zval(&path) == FAILURE) { + RETURN_MM_NULL(); + } + if (mustClean) { + zephir_read_property(&_6$$7, this_ptr, ZEND_STRL("view"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&_7$$7, "ob_get_contents", NULL, 500); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_6$$7, "setcontent", NULL, 0, &_7$$7); + zephir_check_call_status(); + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Message_AbstractRequest, withMethod) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *method, method_sub, _0; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&method_sub); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(method) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &method); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processmethod", NULL, 106, method); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "method"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, method, &_0); - zephir_check_call_status(); - RETURN_MM(); + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_View_Engine_Volt) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\View\\Engine, Volt, phalcon, mvc_view_engine_volt, phalcon_mvc_view_engine_abstractengine_ce, phalcon_mvc_view_engine_volt_method_entry, 0); + + zend_declare_property_null(phalcon_mvc_view_engine_volt_ce, SL("compiler"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_engine_volt_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_engine_volt_ce, SL("macros"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_engine_volt_ce, SL("options"), ZEND_ACC_PROTECTED); + phalcon_mvc_view_engine_volt_ce->create_object = zephir_init_properties_Phalcon_Mvc_View_Engine_Volt; + + zend_class_implements(phalcon_mvc_view_engine_volt_ce, 1, phalcon_events_eventsawareinterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Http_Message_AbstractRequest, withRequestTarget) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, callMacro) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *requestTarget, requestTarget_sub, _0, _1, _2, _3, _4; + zval arguments; + zval *name_param = NULL, *arguments_param = NULL, macro, _0, _1$$3; + zval name, _2$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&requestTarget_sub); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(¯o); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&arguments); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(requestTarget) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(name) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(arguments) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &requestTarget); + zephir_fetch_params(1, 1, 1, &name_param, &arguments_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + if (!arguments_param) { + ZEPHIR_INIT_VAR(&arguments); + array_init(&arguments); + } else { + zephir_get_arrval(&arguments, arguments_param); + } - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "/\\s/"); - ZEPHIR_INIT_VAR(&_2); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "/\\s/"); - zephir_preg_match(&_2, &_3, requestTarget, &_0, 0, 0 , 0 ); - if (UNEXPECTED(zephir_is_true(&_2))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid request target: cannot contain whitespace", "phalcon/Http/Message/AbstractRequest.zep", 131); + ZEPHIR_OBS_VAR(¯o); + zephir_read_property(&_0, this_ptr, ZEND_STRL("macros"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(!(zephir_array_isset_fetch(¯o, &_0, &name, 0)))) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_mvc_view_exception_ce); + ZEPHIR_INIT_VAR(&_2$$3); + ZEPHIR_CONCAT_SVS(&_2$$3, "Macro '", &name, "' does not exist"); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/View/Engine/Volt.zep", 57); + ZEPHIR_MM_RESTORE(); return; } - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "requestTarget"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, requestTarget, &_4); + ZEPHIR_RETURN_CALL_FUNCTION("call_user_func", NULL, 255, ¯o, &arguments); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Http_Message_AbstractRequest, withUri) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, convertEncoding) { - double _0; + zend_bool _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *uri, uri_sub, *preserveHost = NULL, preserveHost_sub, __$false, headers, newInstance, _1, _2, _3, _4$$3; + zval *text_param = NULL, *from_param = NULL, *to_param = NULL; + zval text, from, to; zval *this_ptr = getThis(); - ZVAL_UNDEF(&uri_sub); - ZVAL_UNDEF(&preserveHost_sub); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&headers); - ZVAL_UNDEF(&newInstance); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&from); + ZVAL_UNDEF(&to); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_OBJECT_OF_CLASS(uri, zephir_get_internal_ce(SL("psr\\http\\message\\uriinterface"))) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL(preserveHost) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(text) + Z_PARAM_STR(from) + Z_PARAM_STR(to) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &uri, &preserveHost); - if (!preserveHost) { - preserveHost = &preserveHost_sub; - ZEPHIR_CPY_WRT(preserveHost, &__$false); + zephir_fetch_params(1, 3, 0, &text_param, &from_param, &to_param); + zephir_get_strval(&text, text_param); + if (UNEXPECTED(Z_TYPE_P(from_param) != IS_STRING && Z_TYPE_P(from_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'from' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(from_param) == IS_STRING)) { + zephir_get_strval(&from, from_param); } else { - ZEPHIR_SEPARATE_PARAM(preserveHost); + ZEPHIR_INIT_VAR(&from); + } + if (UNEXPECTED(Z_TYPE_P(to_param) != IS_STRING && Z_TYPE_P(to_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'to' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(to_param) == IS_STRING)) { + zephir_get_strval(&to, to_param); + } else { + ZEPHIR_INIT_VAR(&to); } - _0 = zephir_get_boolval(preserveHost); - ZEPHIR_INIT_NVAR(preserveHost); - ZVAL_BOOL(preserveHost, _0); - zephir_read_property(&_1, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_2); - if (zephir_clone(&_2, &_1) == FAILURE) { + _0 = ZEPHIR_IS_STRING_IDENTICAL(&from, "latin1"); + if (!(_0)) { + _0 = ZEPHIR_IS_STRING_IDENTICAL(&to, "utf8"); + } + if (_0) { + ZEPHIR_RETURN_CALL_FUNCTION("utf8_encode", NULL, 502, &text); + zephir_check_call_status(); RETURN_MM(); } - ZEPHIR_CPY_WRT(&headers, &_2); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "uri"); - ZEPHIR_CALL_METHOD(&newInstance, this_ptr, "cloneinstance", NULL, 21, uri, &_3); - zephir_check_call_status(); - if (UNEXPECTED(!zephir_is_true(preserveHost))) { - ZEPHIR_CALL_METHOD(&_4$$3, this_ptr, "checkheaderhost", NULL, 45, &headers); + _1 = ZEPHIR_IS_STRING_IDENTICAL(&to, "latin1"); + if (!(_1)) { + _1 = ZEPHIR_IS_STRING_IDENTICAL(&from, "utf8"); + } + if (_1) { + ZEPHIR_RETURN_CALL_FUNCTION("utf8_decode", NULL, 240, &text); zephir_check_call_status(); - ZEPHIR_CPY_WRT(&headers, &_4$$3); - zephir_update_property_zval(&newInstance, ZEND_STRL("headers"), &headers); + RETURN_MM(); } - RETURN_CCTOR(&newInstance); + if ((zephir_function_exists_ex(ZEND_STRL("mb_convert_encoding")) == SUCCESS)) { + ZEPHIR_RETURN_CALL_FUNCTION("mb_convert_encoding", NULL, 228, &text, &from, &to); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "'mbstring' is required to perform the charset conversion", "phalcon/Mvc/View/Engine/Volt.zep", 96); + return; } -static PHP_METHOD(Phalcon_Http_Message_AbstractRequest, processMethod) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, getCompiler) { - zend_bool _0, _1; + zval compiler, container, options, _0, _1$$3, _2$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *method = NULL, method_sub, methods, _2$$3, _3$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&method_sub); - ZVAL_UNDEF(&methods); + ZVAL_UNDEF(&compiler); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("compiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&compiler, &_0); + if (Z_TYPE_P(&compiler) != IS_OBJECT) { + ZEPHIR_INIT_NVAR(&compiler); + object_init_ex(&compiler, phalcon_mvc_view_engine_volt_compiler_ce); + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("view"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &compiler, "__construct", NULL, 503, &_1$$3); + zephir_check_call_status(); + zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_2$$3); + if (Z_TYPE_P(&container) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(NULL, &compiler, "setdi", NULL, 504, &container); + zephir_check_call_status(); + } + zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&options, &_2$$3); + if (Z_TYPE_P(&options) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(NULL, &compiler, "setoptions", NULL, 505, &options); + zephir_check_call_status(); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("compiler"), &compiler); + } + RETURN_CCTOR(&compiler); +} + +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, getEventsManager) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "eventsManager"); +} + +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, getOptions) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "options"); +} + +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, isIncluded) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *needle, needle_sub, *haystack, haystack_sub, _0$$5, _1$$4; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&needle_sub); + ZVAL_UNDEF(&haystack_sub); + ZVAL_UNDEF(&_0$$5); + ZVAL_UNDEF(&_1$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL(method) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(needle) + Z_PARAM_ZVAL(haystack) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &method); - if (!method) { - method = &method_sub; - ZEPHIR_INIT_VAR(method); - ZVAL_STRING(method, ""); - } + zephir_fetch_params(1, 2, 0, &needle, &haystack); - ZEPHIR_INIT_VAR(&methods); - zephir_create_array(&methods, 10, 0); - add_assoc_long_ex(&methods, SL("CONNECT"), 1); - add_assoc_long_ex(&methods, SL("DELETE"), 1); - add_assoc_long_ex(&methods, SL("GET"), 1); - add_assoc_long_ex(&methods, SL("HEAD"), 1); - add_assoc_long_ex(&methods, SL("OPTIONS"), 1); - add_assoc_long_ex(&methods, SL("PATCH"), 1); - add_assoc_long_ex(&methods, SL("POST"), 1); - add_assoc_long_ex(&methods, SL("PURGE"), 1); - add_assoc_long_ex(&methods, SL("PUT"), 1); - add_assoc_long_ex(&methods, SL("TRACE"), 1); - _0 = !(ZEPHIR_IS_EMPTY(method)); - if (_0) { - _0 = Z_TYPE_P(method) == IS_STRING; - } - _1 = _0; - if (_1) { - _1 = zephir_array_isset(&methods, method); + if (Z_TYPE_P(haystack) == IS_ARRAY) { + RETURN_MM_BOOL(zephir_fast_in_array(needle, haystack)); } - if (UNEXPECTED(!(_1))) { - ZEPHIR_INIT_VAR(&_2$$3); - object_init_ex(&_2$$3, phalcon_http_message_exception_invalidargumentexception_ce); - ZEPHIR_INIT_VAR(&_3$$3); - ZEPHIR_CONCAT_SV(&_3$$3, "Invalid or unsupported method ", method); - ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", NULL, 40, &_3$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_2$$3, "phalcon/Http/Message/AbstractRequest.zep", 216); - ZEPHIR_MM_RESTORE(); - return; + if (Z_TYPE_P(haystack) == IS_STRING) { + if ((zephir_function_exists_ex(ZEND_STRL("mb_strpos")) == SUCCESS)) { + ZEPHIR_CALL_FUNCTION(&_0$$5, "mb_strpos", NULL, 273, haystack, needle); + zephir_check_call_status(); + RETURN_MM_BOOL(!ZEPHIR_IS_FALSE_IDENTICAL(&_0$$5)); + } + ZEPHIR_INIT_VAR(&_1$$4); + zephir_fast_strpos(&_1$$4, haystack, needle, 0 ); + RETURN_MM_BOOL(!ZEPHIR_IS_FALSE_IDENTICAL(&_1$$4)); } - RETVAL_ZVAL(method, 1, 0); - RETURN_MM(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Invalid haystack", "phalcon/Mvc/View/Engine/Volt.zep", 179); + return; } -static PHP_METHOD(Phalcon_Http_Message_AbstractRequest, processUri) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, length) { zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *uri, uri_sub; + zval *item, item_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&uri_sub); + ZVAL_UNDEF(&item_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(uri) + Z_PARAM_ZVAL(item) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &uri); + zephir_fetch_params(1, 1, 0, &item); - _0 = Z_TYPE_P(uri) == IS_OBJECT; - if (_0) { - _0 = zephir_is_instance_of(uri, SL("Psr\\Http\\Message\\UriInterface")); - } - if (UNEXPECTED(_0)) { - RETVAL_ZVAL(uri, 1, 0); - RETURN_MM(); + _0 = Z_TYPE_P(item) == IS_OBJECT; + if (!(_0)) { + _0 = Z_TYPE_P(item) == IS_ARRAY; } - if (EXPECTED(Z_TYPE_P(uri) == IS_STRING)) { - object_init_ex(return_value, phalcon_http_message_uri_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 107, uri); - zephir_check_call_status(); - RETURN_MM(); + if (_0) { + RETURN_MM_LONG(zephir_fast_count_int(item)); } - if (Z_TYPE_P(uri) == IS_NULL) { - object_init_ex(return_value, phalcon_http_message_uri_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 107); + if ((zephir_function_exists_ex(ZEND_STRL("mb_strlen")) == SUCCESS)) { + ZEPHIR_RETURN_CALL_FUNCTION("mb_strlen", NULL, 281, item); zephir_check_call_status(); RETURN_MM(); } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid uri passed as a parameter", "phalcon/Http/Message/AbstractRequest.zep", 245); - return; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Message_Request) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Message, Request, phalcon, http_message_request, phalcon_http_message_abstractrequest_ce, phalcon_http_message_request_method_entry, ZEND_ACC_FINAL_CLASS); - - zend_class_implements(phalcon_http_message_request_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\requestinterface"))); - return SUCCESS; + RETURN_MM_LONG(zephir_fast_strlen_ev(item)); } -static PHP_METHOD(Phalcon_Http_Message_Request, __construct) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, render) { + zend_string *_8$$8; + zend_ulong _7$$8; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *method_param = NULL, *uri = NULL, uri_sub, *body = NULL, body_sub, *headers = NULL, headers_sub, __$null, _0, _1, _2, _3, _4, _5; - zval method; + zend_bool mustClean; + zval *path_param = NULL, *params, params_sub, *mustClean_param = NULL, compiler, compiledTemplatePath, eventsManager, key, value, _0, _1$$4, _2$$4, _3$$6, _4$$6, *_5$$8, _6$$8, _9$$9, _10$$10, _11$$11, _12$$11; + zval path; zval *this_ptr = getThis(); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&uri_sub); - ZVAL_UNDEF(&body_sub); - ZVAL_UNDEF(&headers_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(¶ms_sub); + ZVAL_UNDEF(&compiler); + ZVAL_UNDEF(&compiledTemplatePath); + ZVAL_UNDEF(&eventsManager); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$6); + ZVAL_UNDEF(&_4$$6); + ZVAL_UNDEF(&_6$$8); + ZVAL_UNDEF(&_9$$9); + ZVAL_UNDEF(&_10$$10); + ZVAL_UNDEF(&_11$$11); + ZVAL_UNDEF(&_12$$11); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 4) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(path) + Z_PARAM_ZVAL(params) Z_PARAM_OPTIONAL - Z_PARAM_STR(method) - Z_PARAM_ZVAL_OR_NULL(uri) - Z_PARAM_ZVAL(body) - Z_PARAM_ZVAL(headers) + Z_PARAM_BOOL(mustClean) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 4, &method_param, &uri, &body, &headers); - if (!method_param) { - ZEPHIR_INIT_VAR(&method); - ZVAL_STRING(&method, "GET"); - } else { - zephir_get_strval(&method, method_param); - } - if (!uri) { - uri = &uri_sub; - uri = &__$null; + zephir_fetch_params(1, 2, 1, &path_param, ¶ms, &mustClean_param); + if (UNEXPECTED(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 of the type string")); + RETURN_MM_NULL(); } - if (!body) { - body = &body_sub; - ZEPHIR_INIT_VAR(body); - ZVAL_STRING(body, "php://memory"); + if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { + zephir_get_strval(&path, path_param); } else { - ZEPHIR_SEPARATE_PARAM(body); + ZEPHIR_INIT_VAR(&path); } - if (!headers) { - headers = &headers_sub; - ZEPHIR_INIT_VAR(headers); - array_init(headers); + if (!mustClean_param) { + mustClean = 0; + } else { + mustClean = zephir_get_boolval(mustClean_param); } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "php://input"); - if (UNEXPECTED(ZEPHIR_IS_IDENTICAL(&_0, body))) { - ZEPHIR_INIT_NVAR(body); - object_init_ex(body, phalcon_http_message_stream_input_ce); - ZEPHIR_CALL_METHOD(NULL, body, "__construct", NULL, 282); + if (mustClean) { + ZEPHIR_CALL_FUNCTION(NULL, "ob_clean", NULL, 501); zephir_check_call_status(); } - ZEPHIR_CALL_METHOD(&_1, this_ptr, "processuri", NULL, 283, uri); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("uri"), &_1); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "processheaders", NULL, 284, headers); + ZEPHIR_CALL_METHOD(&compiler, this_ptr, "getcompiler", NULL, 0); zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("headers"), &_2); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "processmethod", NULL, 106, &method); + zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_0); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_2$$4); + ZVAL_STRING(&_2$$4, "view:beforeCompile"); + ZEPHIR_CALL_METHOD(&_1$$4, &eventsManager, "fire", NULL, 0, &_2$$4, this_ptr); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_1$$4)) { + RETURN_MM_NULL(); + } + } + ZEPHIR_CALL_METHOD(NULL, &compiler, "compile", NULL, 0, &path); zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("method"), &_3); - ZEPHIR_INIT_VAR(&_5); - ZVAL_STRING(&_5, "w+b"); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "processbody", NULL, 37, body, &_5); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_4$$6); + ZVAL_STRING(&_4$$6, "view:afterCompile"); + ZEPHIR_CALL_METHOD(&_3$$6, &eventsManager, "fire", NULL, 0, &_4$$6, this_ptr); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_3$$6)) { + RETURN_MM_NULL(); + } + } + ZEPHIR_CALL_METHOD(&compiledTemplatePath, &compiler, "getcompiledtemplatepath", NULL, 0); zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("body"), &_4); + if (Z_TYPE_P(params) == IS_ARRAY) { + zephir_is_iterable(params, 0, "phalcon/Mvc/View/Engine/Volt.zep", 248); + if (Z_TYPE_P(params) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(params), _7$$8, _8$$8, _5$$8) + { + ZEPHIR_INIT_NVAR(&key); + if (_8$$8 != NULL) { + ZVAL_STR_COPY(&key, _8$$8); + } else { + ZVAL_LONG(&key, _7$$8); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _5$$8); + ZEPHIR_CPY_WRT(&_9$$9, &value); + if (zephir_set_symbol(&key, &_9$$9) == FAILURE) { + return; + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, params, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_6$$8, params, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_6$$8)) { + break; + } + ZEPHIR_CALL_METHOD(&key, params, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, params, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&_10$$10, &value); + if (zephir_set_symbol(&key, &_10$$10) == FAILURE) { + return; + } + ZEPHIR_CALL_METHOD(NULL, params, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + } + if (zephir_require_zval(&compiledTemplatePath) == FAILURE) { + RETURN_MM_NULL(); + } + if (mustClean) { + zephir_read_property(&_11$$11, this_ptr, ZEND_STRL("view"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&_12$$11, "ob_get_contents", NULL, 500); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_11$$11, "setcontent", NULL, 0, &_12$$11); + zephir_check_call_status(); + } ZEPHIR_MM_RESTORE(); } +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, setEventsManager) +{ + zval *eventsManager, eventsManager_sub; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&eventsManager_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) + ZEND_PARSE_PARAMETERS_END(); #endif + zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); + zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); +} -ZEPHIR_INIT_CLASS(Phalcon_Http_Message_RequestFactory) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, setOptions) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Message, RequestFactory, phalcon, http_message_requestfactory, phalcon_http_message_requestfactory_method_entry, ZEND_ACC_FINAL_CLASS); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *options_param = NULL; + zval options; + zval *this_ptr = getThis(); - zend_class_implements(phalcon_http_message_requestfactory_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\requestfactoryinterface"))); - return SUCCESS; + ZVAL_UNDEF(&options); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &options_param); + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Message_RequestFactory, createRequest) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, slice) { + zend_bool _1$$5; + zval slice; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *method_param = NULL, *uri, uri_sub; - zval method; + zephir_fcall_cache_entry *_3 = NULL, *_4 = NULL; + zend_long start, ZEPHIR_LAST_CALL_STATUS, position = 0; + zval *value, value_sub, *start_param = NULL, *end = NULL, end_sub, __$null, length, _9, _0$$3, _2$$6, _5$$9, _6$$11, _7$$10, _8$$12; zval *this_ptr = getThis(); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&uri_sub); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&end_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&length); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_2$$6); + ZVAL_UNDEF(&_5$$9); + ZVAL_UNDEF(&_6$$11); + ZVAL_UNDEF(&_7$$10); + ZVAL_UNDEF(&_8$$12); + ZVAL_UNDEF(&slice); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(method) - Z_PARAM_ZVAL(uri) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ZVAL(value) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(start) + Z_PARAM_ZVAL_OR_NULL(end) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &method_param, &uri); - if (UNEXPECTED(Z_TYPE_P(method_param) != IS_STRING && Z_TYPE_P(method_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'method' must be of the type string")); - RETURN_MM_NULL(); + zephir_fetch_params(1, 1, 2, &value, &start_param, &end); + if (!start_param) { + start = 0; + } else { + start = zephir_get_intval(start_param); } - if (EXPECTED(Z_TYPE_P(method_param) == IS_STRING)) { - zephir_get_strval(&method, method_param); + if (!end) { + end = &end_sub; + ZEPHIR_CPY_WRT(end, &__$null); } else { - ZEPHIR_INIT_VAR(&method); + ZEPHIR_SEPARATE_PARAM(end); } - object_init_ex(return_value, phalcon_http_message_request_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 285, &method, uri); - zephir_check_call_status(); + if (Z_TYPE_P(value) == IS_OBJECT) { + if (Z_TYPE_P(end) == IS_NULL) { + ZEPHIR_INIT_NVAR(end); + ZVAL_LONG(end, (zephir_fast_count_int(value) - 1)); + } + position = 0; + ZEPHIR_INIT_VAR(&slice); + array_init(&slice); + ZEPHIR_CALL_METHOD(NULL, value, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_0$$3, value, "valid", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_0$$3))) { + break; + } + _1$$5 = position >= start; + if (_1$$5) { + _1$$5 = ZEPHIR_GE_LONG(end, position); + } + if (_1$$5) { + ZEPHIR_CALL_METHOD(&_2$$6, value, "current", &_3, 0); + zephir_check_call_status(); + zephir_array_append(&slice, &_2$$6, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt.zep", 305); + } + ZEPHIR_CALL_METHOD(NULL, value, "next", &_4, 0); + zephir_check_call_status(); + position++; + } + RETURN_CTOR(&slice); + } + ZEPHIR_INIT_VAR(&length); + if (Z_TYPE_P(end) != IS_NULL) { + ZVAL_LONG(&length, (((zephir_get_numberval(end) - start)) + 1)); + } else { + ZVAL_NULL(&length); + } + if (Z_TYPE_P(value) == IS_ARRAY) { + ZVAL_LONG(&_5$$9, start); + ZEPHIR_RETURN_CALL_FUNCTION("array_slice", NULL, 260, value, &_5$$9, &length); + zephir_check_call_status(); + RETURN_MM(); + } + if ((zephir_function_exists_ex(ZEND_STRL("mb_substr")) == SUCCESS)) { + if (Z_TYPE_P(&length) != IS_NULL) { + ZVAL_LONG(&_6$$11, start); + ZEPHIR_RETURN_CALL_FUNCTION("mb_substr", NULL, 184, value, &_6$$11, &length); + zephir_check_call_status(); + RETURN_MM(); + } + ZVAL_LONG(&_7$$10, start); + ZEPHIR_RETURN_CALL_FUNCTION("mb_substr", NULL, 184, value, &_7$$10); + zephir_check_call_status(); + RETURN_MM(); + } + if (Z_TYPE_P(&length) != IS_NULL) { + ZVAL_LONG(&_8$$12, start); + zephir_substr(return_value, value, zephir_get_intval(&_8$$12), zephir_get_intval(&length), 0); + RETURN_MM(); + } + ZVAL_LONG(&_9, start); + zephir_substr(return_value, value, zephir_get_intval(&_9), 0, ZEPHIR_SUBSTR_NO_LENGTH); RETURN_MM(); } +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, sort) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *value_param = NULL; + zval value; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&value); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(value) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &value_param); + zephir_get_arrval(&value, value_param); + ZEPHIR_MAKE_REF(&value); + ZEPHIR_CALL_FUNCTION(NULL, "asort", NULL, 506, &value); + ZEPHIR_UNREF(&value); + zephir_check_call_status(); + RETURN_CTOR(&value); +} -ZEPHIR_INIT_CLASS(Phalcon_Http_Message_RequestMethodInterface) +zend_object *zephir_init_properties_Phalcon_Mvc_View_Engine_Volt(zend_class_entry *class_type) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Http\\Message, RequestMethodInterface, phalcon, http_message_requestmethodinterface, NULL); - - zephir_declare_class_constant_string(phalcon_http_message_requestmethodinterface_ce, SL("METHOD_CONNECT"), "CONNECT"); - - zephir_declare_class_constant_string(phalcon_http_message_requestmethodinterface_ce, SL("METHOD_DELETE"), "DELETE"); - - zephir_declare_class_constant_string(phalcon_http_message_requestmethodinterface_ce, SL("METHOD_GET"), "GET"); - - zephir_declare_class_constant_string(phalcon_http_message_requestmethodinterface_ce, SL("METHOD_HEAD"), "HEAD"); - - zephir_declare_class_constant_string(phalcon_http_message_requestmethodinterface_ce, SL("METHOD_OPTIONS"), "OPTIONS"); - - zephir_declare_class_constant_string(phalcon_http_message_requestmethodinterface_ce, SL("METHOD_PATCH"), "PATCH"); - - zephir_declare_class_constant_string(phalcon_http_message_requestmethodinterface_ce, SL("METHOD_POST"), "POST"); - - zephir_declare_class_constant_string(phalcon_http_message_requestmethodinterface_ce, SL("METHOD_PURGE"), "PURGE"); - - zephir_declare_class_constant_string(phalcon_http_message_requestmethodinterface_ce, SL("METHOD_PUT"), "PUT"); - - zephir_declare_class_constant_string(phalcon_http_message_requestmethodinterface_ce, SL("METHOD_TRACE"), "TRACE"); + zval _0, _2, _1$$3, _3$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + - return SUCCESS; + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("macros"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("macros"), &_3$$4); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } } @@ -104283,2597 +94858,4529 @@ ZEPHIR_INIT_CLASS(Phalcon_Http_Message_RequestMethodInterface) -ZEPHIR_INIT_CLASS(Phalcon_Http_Message_Response) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_View_Engine_Volt_Compiler) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Message, Response, phalcon, http_message_response, phalcon_http_message_abstractmessage_ce, phalcon_http_message_response_method_entry, ZEND_ACC_FINAL_CLASS); + ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\View\\Engine\\Volt, Compiler, phalcon, mvc_view_engine_volt_compiler, phalcon_mvc_view_engine_volt_compiler_method_entry, 0); - zend_declare_property_string(phalcon_http_message_response_ce, SL("reasonPhrase"), "", ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_http_message_response_ce, SL("statusCode"), 200, ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_http_message_response_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\responseinterface"))); - zend_class_implements(phalcon_http_message_response_ce, 1, phalcon_http_message_responsestatuscodeinterface_ce); + zend_declare_property_bool(phalcon_mvc_view_engine_volt_compiler_ce, SL("autoescape"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_mvc_view_engine_volt_compiler_ce, SL("blockLevel"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("blocks"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("container"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("compiledTemplatePath"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("currentBlock"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("currentPath"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_mvc_view_engine_volt_compiler_ce, SL("exprLevel"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_view_engine_volt_compiler_ce, SL("extended"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("extensions"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("extendedBlocks"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("filters"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_mvc_view_engine_volt_compiler_ce, SL("foreachLevel"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("forElsePointers"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("functions"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_mvc_view_engine_volt_compiler_ce, SL("level"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("loopPointers"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("macros"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("options"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_mvc_view_engine_volt_compiler_ce, SL("prefix"), "", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("view"), ZEND_ACC_PROTECTED); + phalcon_mvc_view_engine_volt_compiler_ce->create_object = zephir_init_properties_Phalcon_Mvc_View_Engine_Volt_Compiler; + + zend_class_implements(phalcon_mvc_view_engine_volt_compiler_ce, 1, phalcon_di_injectionawareinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Http_Message_Response, getReasonPhrase) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, __construct) { + zval *view = NULL, view_sub, __$null; zval *this_ptr = getThis(); + ZVAL_UNDEF(&view_sub); + ZVAL_NULL(&__$null); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(view, phalcon_mvc_viewbaseinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "reasonPhrase"); -} - -static PHP_METHOD(Phalcon_Http_Message_Response, getStatusCode) -{ - zval *this_ptr = getThis(); - + zephir_fetch_params_without_memory_grow(0, 1, &view); + if (!view) { + view = &view_sub; + view = &__$null; + } - RETURN_MEMBER(getThis(), "statusCode"); + zephir_update_property_zval(this_ptr, ZEND_STRL("view"), view); } -static PHP_METHOD(Phalcon_Http_Message_Response, __construct) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, addExtension) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval headers; - zend_long code, ZEPHIR_LAST_CALL_STATUS; - zval *body = NULL, body_sub, *code_param = NULL, *headers_param = NULL, _0, _1, _2, _3; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *extension, extension_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&body_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&headers); + ZVAL_UNDEF(&extension_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 3) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL(body) - Z_PARAM_LONG(code) - Z_PARAM_ARRAY(headers) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(extension) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 3, &body, &code_param, &headers_param); - if (!body) { - body = &body_sub; - ZEPHIR_INIT_VAR(body); - ZVAL_STRING(body, "php://memory"); - } - if (!code_param) { - code = 200; - } else { - code = zephir_get_intval(code_param); - } - if (!headers_param) { - ZEPHIR_INIT_VAR(&headers); - array_init(&headers); - } else { - zephir_get_arrval(&headers, headers_param); - } + zephir_fetch_params(1, 1, 0, &extension); - ZVAL_LONG(&_0, code); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processcode", NULL, 286, &_0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "processheaders", NULL, 284, &headers); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("headers"), &_1); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "w+b"); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "processbody", NULL, 37, body, &_3); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("body"), &_2); - ZEPHIR_MM_RESTORE(); + if (UNEXPECTED(Z_TYPE_P(extension) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "The extension is not valid", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 160); + return; + } + if ((zephir_method_exists_ex(extension, ZEND_STRL("initialize")) == SUCCESS)) { + ZEPHIR_CALL_METHOD(NULL, extension, "initialize", NULL, 0, this_ptr); + zephir_check_call_status(); + } + zephir_update_property_array_append(this_ptr, SL("extensions"), extension); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Http_Message_Response, withStatus) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, addFilter) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *code, code_sub, *reasonPhrase = NULL, reasonPhrase_sub, newInstance; + zval *name_param = NULL, *definition, definition_sub; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&code_sub); - ZVAL_UNDEF(&reasonPhrase_sub); - ZVAL_UNDEF(&newInstance); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&definition_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(code) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL(reasonPhrase) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(name) + Z_PARAM_ZVAL(definition) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &code, &reasonPhrase); - if (!reasonPhrase) { - reasonPhrase = &reasonPhrase_sub; - ZEPHIR_INIT_VAR(reasonPhrase); - ZVAL_STRING(reasonPhrase, ""); + zephir_fetch_params(1, 2, 0, &name_param, &definition); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); } - ZEPHIR_INIT_VAR(&newInstance); - if (zephir_clone(&newInstance, this_ptr) == FAILURE) { - RETURN_MM(); - } - ZEPHIR_CALL_METHOD(NULL, &newInstance, "processcode", NULL, 0, code, reasonPhrase); - zephir_check_call_status(); - RETURN_CCTOR(&newInstance); + zephir_update_property_array(this_ptr, SL("filters"), &name, definition); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Http_Message_Response, getPhrases) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, addFunction) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *name_param = NULL, *definition, definition_sub; + zval name; zval *this_ptr = getThis(); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&definition_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(name) + Z_PARAM_ZVAL(definition) + ZEND_PARSE_PARAMETERS_END(); +#endif - zephir_create_array(return_value, 89, 0); - add_index_stringl(return_value, 100, SL("Continue")); - add_index_stringl(return_value, 101, SL("Switching Protocols")); - add_index_stringl(return_value, 102, SL("Processing")); - add_index_stringl(return_value, 103, SL("Early Hints")); - add_index_stringl(return_value, 200, SL("OK")); - add_index_stringl(return_value, 201, SL("Created")); - add_index_stringl(return_value, 202, SL("Accepted")); - add_index_stringl(return_value, 203, SL("Non-Authoritative Information")); - add_index_stringl(return_value, 204, SL("No Content")); - add_index_stringl(return_value, 205, SL("Reset Content")); - add_index_stringl(return_value, 206, SL("Partial Content")); - add_index_stringl(return_value, 207, SL("Multi-status")); - add_index_stringl(return_value, 208, SL("Already Reported")); - add_index_stringl(return_value, 226, SL("IM Used")); - add_index_stringl(return_value, 300, SL("Multiple Choices")); - add_index_stringl(return_value, 301, SL("Moved Permanently")); - add_index_stringl(return_value, 302, SL("Found")); - add_index_stringl(return_value, 303, SL("See Other")); - add_index_stringl(return_value, 304, SL("Not Modified")); - add_index_stringl(return_value, 305, SL("Use Proxy")); - add_index_stringl(return_value, 306, SL("Switch Proxy")); - add_index_stringl(return_value, 307, SL("Temporary Redirect")); - add_index_stringl(return_value, 308, SL("Permanent Redirect")); - add_index_stringl(return_value, 400, SL("Bad Request")); - add_index_stringl(return_value, 401, SL("Unauthorized")); - add_index_stringl(return_value, 402, SL("Payment Required")); - add_index_stringl(return_value, 403, SL("Forbidden")); - add_index_stringl(return_value, 404, SL("Not Found")); - add_index_stringl(return_value, 405, SL("Method Not Allowed")); - add_index_stringl(return_value, 406, SL("Not Acceptable")); - add_index_stringl(return_value, 407, SL("Proxy Authentication Required")); - add_index_stringl(return_value, 408, SL("Request Time-out")); - add_index_stringl(return_value, 409, SL("Conflict")); - add_index_stringl(return_value, 410, SL("Gone")); - add_index_stringl(return_value, 411, SL("Length Required")); - add_index_stringl(return_value, 412, SL("Precondition Failed")); - add_index_stringl(return_value, 413, SL("Request Entity Too Large")); - add_index_stringl(return_value, 414, SL("Request-URI Too Large")); - add_index_stringl(return_value, 415, SL("Unsupported Media Type")); - add_index_stringl(return_value, 416, SL("Requested range not satisfiable")); - add_index_stringl(return_value, 417, SL("Expectation Failed")); - add_index_stringl(return_value, 418, SL("I'm a teapot")); - add_index_stringl(return_value, 421, SL("Misdirected Request")); - add_index_stringl(return_value, 422, SL("Unprocessable Entity")); - add_index_stringl(return_value, 423, SL("Locked")); - add_index_stringl(return_value, 424, SL("Failed Dependency")); - add_index_stringl(return_value, 425, SL("Unordered Collection")); - add_index_stringl(return_value, 426, SL("Upgrade Required")); - add_index_stringl(return_value, 428, SL("Precondition Required")); - add_index_stringl(return_value, 429, SL("Too Many Requests")); - add_index_stringl(return_value, 431, SL("Request Header Fields Too Large")); - add_index_stringl(return_value, 451, SL("Unavailable For Legal Reasons")); - add_index_stringl(return_value, 500, SL("Internal Server Error")); - add_index_stringl(return_value, 501, SL("Not Implemented")); - add_index_stringl(return_value, 502, SL("Bad Gateway")); - add_index_stringl(return_value, 503, SL("Service Unavailable")); - add_index_stringl(return_value, 504, SL("Gateway Time-out")); - add_index_stringl(return_value, 505, SL("HTTP Version not supported")); - add_index_stringl(return_value, 506, SL("Variant Also Negotiates")); - add_index_stringl(return_value, 507, SL("Insufficient Storage")); - add_index_stringl(return_value, 508, SL("Loop Detected")); - add_index_stringl(return_value, 510, SL("Not Extended")); - add_index_stringl(return_value, 511, SL("Network Authentication Required")); - add_index_stringl(return_value, 218, SL("This is fine")); - add_index_stringl(return_value, 419, SL("Page Expired")); - add_index_stringl(return_value, 420, SL("Method Failure")); - add_index_stringl(return_value, 440, SL("Login Time-out")); - add_index_stringl(return_value, 444, SL("No Response")); - add_index_stringl(return_value, 449, SL("Retry With")); - add_index_stringl(return_value, 450, SL("Blocked by Windows Parental Controls (Microsoft)")); - add_index_stringl(return_value, 494, SL("Request header too large")); - add_index_stringl(return_value, 495, SL("SSL Certificate Error")); - add_index_stringl(return_value, 496, SL("SSL Certificate Required")); - add_index_stringl(return_value, 497, SL("HTTP Request Sent to HTTPS Port")); - add_index_stringl(return_value, 498, SL("Invalid Token (Esri)")); - add_index_stringl(return_value, 499, SL("Client Closed Request")); - add_index_stringl(return_value, 509, SL("Bandwidth Limit Exceeded")); - add_index_stringl(return_value, 520, SL("Unknown Error")); - add_index_stringl(return_value, 521, SL("Web Server Is Down")); - add_index_stringl(return_value, 522, SL("Connection Timed Out")); - add_index_stringl(return_value, 523, SL("Origin Is Unreachable")); - add_index_stringl(return_value, 524, SL("A Timeout Occurred")); - add_index_stringl(return_value, 525, SL("SSL Handshake Failed")); - add_index_stringl(return_value, 526, SL("Invalid SSL Certificate")); - add_index_stringl(return_value, 527, SL("Railgun Error")); - add_index_stringl(return_value, 530, SL("Origin DNS Error")); - add_index_stringl(return_value, 598, SL("Network read timeout error")); - add_index_stringl(return_value, 599, SL("Network Connect Timeout Error")); - return; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &name_param, &definition); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + + + zephir_update_property_array(this_ptr, SL("functions"), &name, definition); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Http_Message_Response, processCode) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, attributeReader) { - zend_bool _2; + zend_bool _4$$5, _9$$8; + zval exprCode; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, _0; - zval *code = NULL, code_sub, *phrase = NULL, phrase_sub, phrases, _1; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *expr_param = NULL, left, leftType, variable, level, leftCode, right, _0, _10, _1$$4, _2$$4, _3$$5, _5$$5, _6$$5, _7$$6, _8$$7, _11$$11, _12$$12; + zval expr; zval *this_ptr = getThis(); - ZVAL_UNDEF(&code_sub); - ZVAL_UNDEF(&phrase_sub); - ZVAL_UNDEF(&phrases); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&left); + ZVAL_UNDEF(&leftType); + ZVAL_UNDEF(&variable); + ZVAL_UNDEF(&level); + ZVAL_UNDEF(&leftCode); + ZVAL_UNDEF(&right); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_8$$7); + ZVAL_UNDEF(&_11$$11); + ZVAL_UNDEF(&_12$$12); + ZVAL_UNDEF(&exprCode); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(code) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL(phrase) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(expr) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &code, &phrase); - ZEPHIR_SEPARATE_PARAM(code); - if (!phrase) { - phrase = &phrase_sub; - ZEPHIR_INIT_VAR(phrase); - ZVAL_STRING(phrase, ""); - } else { - ZEPHIR_SEPARATE_PARAM(phrase); - } + zephir_fetch_params(1, 1, 0, &expr_param); + ZEPHIR_OBS_COPY_OR_DUP(&expr, expr_param); - ZEPHIR_CALL_METHOD(&phrases, this_ptr, "getphrases", NULL, 287); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkcodetype", NULL, 288, code); - zephir_check_call_status(); - _0 = zephir_get_intval(code); - ZEPHIR_INIT_NVAR(code); - ZVAL_LONG(code, _0); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkcodevalue", NULL, 289, code); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(phrase) != IS_STRING)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid response reason", "phalcon/Http/Message/Response.zep", 226); - return; - } - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, ""); - _2 = ZEPHIR_IS_IDENTICAL(&_1, phrase); - if (_2) { - _2 = zephir_array_isset(&phrases, code); + ZEPHIR_INIT_VAR(&exprCode); + ZEPHIR_OBS_VAR(&left); + zephir_array_fetch_string(&left, &expr, SL("left"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 219); + zephir_array_fetch_string(&_0, &left, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 221); + if (ZEPHIR_IS_LONG(&_0, 265)) { + ZEPHIR_OBS_VAR(&variable); + zephir_array_fetch_string(&variable, &left, SL("value"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 222); + if (ZEPHIR_IS_STRING(&variable, "loop")) { + ZEPHIR_OBS_VAR(&level); + zephir_read_property(&level, this_ptr, ZEND_STRL("foreachLevel"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&_1$$4, this_ptr, "getuniqueprefix", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2$$4); + ZEPHIR_CONCAT_SVVS(&_2$$4, "$", &_1$$4, &level, "loop"); + zephir_concat_self(&exprCode, &_2$$4); + zephir_update_property_array(this_ptr, SL("loopPointers"), &level, &level); + } else { + ZEPHIR_OBS_VAR(&_3$$5); + zephir_read_property(&_3$$5, this_ptr, ZEND_STRL("container"), PH_NOISY_CC); + _4$$5 = Z_TYPE_P(&_3$$5) == IS_OBJECT; + if (_4$$5) { + zephir_read_property(&_5$$5, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_6$$5, &_5$$5, "has", NULL, 0, &variable); + zephir_check_call_status(); + _4$$5 = zephir_is_true(&_6$$5); + } + if (_4$$5) { + ZEPHIR_INIT_VAR(&_7$$6); + ZEPHIR_CONCAT_SV(&_7$$6, "$this->", &variable); + zephir_concat_self(&exprCode, &_7$$6); + } else { + ZEPHIR_INIT_VAR(&_8$$7); + ZEPHIR_CONCAT_SV(&_8$$7, "$", &variable); + zephir_concat_self(&exprCode, &_8$$7); + } + } + } else { + ZEPHIR_CALL_METHOD(&leftCode, this_ptr, "expression", NULL, 507, &left); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&leftType); + zephir_array_fetch_string(&leftType, &left, SL("type"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 243); + _9$$8 = !ZEPHIR_IS_LONG(&leftType, '.'); + if (_9$$8) { + _9$$8 = !ZEPHIR_IS_LONG(&leftType, 350); + } + if (_9$$8) { + zephir_concat_self(&exprCode, &leftCode); + } else { + zephir_concat_self(&exprCode, &leftCode); + } } - if (EXPECTED(_2)) { - ZEPHIR_OBS_NVAR(phrase); - zephir_array_fetch(phrase, &phrases, code, PH_NOISY, "phalcon/Http/Message/Response.zep", 230); + zephir_concat_self_str(&exprCode, "->", sizeof("->") - 1); + ZEPHIR_OBS_VAR(&right); + zephir_array_fetch_string(&right, &expr, SL("right"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 254); + zephir_array_fetch_string(&_10, &right, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 256); + if (ZEPHIR_IS_LONG(&_10, 265)) { + zephir_array_fetch_string(&_11$$11, &right, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 257); + zephir_concat_self(&exprCode, &_11$$11); + } else { + ZEPHIR_CALL_METHOD(&_12$$12, this_ptr, "expression", NULL, 507, &right); + zephir_check_call_status(); + zephir_concat_self(&exprCode, &_12$$12); } - zephir_update_property_zval(this_ptr, ZEND_STRL("statusCode"), code); - zephir_update_property_zval(this_ptr, ZEND_STRL("reasonPhrase"), phrase); - ZEPHIR_MM_RESTORE(); + RETURN_CTOR(&exprCode); } -static PHP_METHOD(Phalcon_Http_Message_Response, checkCodeType) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compile) { - zend_bool _0; - zval *code, code_sub; + zval _11$$26; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool extendsMode, _9, _13; + zval *templatePath_param = NULL, *extendsMode_param = NULL, __$true, __$false, __$null, blocksCode, compilation, compileAlways, compiledExtension, compiledPath, compiledSeparator, compiledTemplatePath, options, prefix, stat, templateSepPath, _0, _1$$4, _2$$4, _3$$10, _4$$10, _5$$13, _6$$13, _7$$17, _8$$17, _10$$22, _12$$26, _14$$29, _15$$31, _16$$32, _17$$35, _18$$35; + zval templatePath; zval *this_ptr = getThis(); - ZVAL_UNDEF(&code_sub); + ZVAL_UNDEF(&templatePath); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&blocksCode); + ZVAL_UNDEF(&compilation); + ZVAL_UNDEF(&compileAlways); + ZVAL_UNDEF(&compiledExtension); + ZVAL_UNDEF(&compiledPath); + ZVAL_UNDEF(&compiledSeparator); + ZVAL_UNDEF(&compiledTemplatePath); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&prefix); + ZVAL_UNDEF(&stat); + ZVAL_UNDEF(&templateSepPath); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$10); + ZVAL_UNDEF(&_4$$10); + ZVAL_UNDEF(&_5$$13); + ZVAL_UNDEF(&_6$$13); + ZVAL_UNDEF(&_7$$17); + ZVAL_UNDEF(&_8$$17); + ZVAL_UNDEF(&_10$$22); + ZVAL_UNDEF(&_12$$26); + ZVAL_UNDEF(&_14$$29); + ZVAL_UNDEF(&_15$$31); + ZVAL_UNDEF(&_16$$32); + ZVAL_UNDEF(&_17$$35); + ZVAL_UNDEF(&_18$$35); + ZVAL_UNDEF(&_11$$26); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(code) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(templatePath) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(extendsMode) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &code); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &templatePath_param, &extendsMode_param); + if (UNEXPECTED(Z_TYPE_P(templatePath_param) != IS_STRING && Z_TYPE_P(templatePath_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'templatePath' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(templatePath_param) == IS_STRING)) { + zephir_get_strval(&templatePath, templatePath_param); + } else { + ZEPHIR_INIT_VAR(&templatePath); + } + if (!extendsMode_param) { + extendsMode = 0; + } else { + extendsMode = zephir_get_boolval(extendsMode_param); + } - _0 = Z_TYPE_P(code) != IS_LONG; - if (_0) { - _0 = Z_TYPE_P(code) != IS_STRING; + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("extended"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("extended"), &__$false); } - if (UNEXPECTED(_0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid status code; it must be an integer or string", "phalcon/Http/Message/Response.zep", 247); + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("extendedBlocks"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("extendedBlocks"), &__$false); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("blocks"), &__$null); + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, 0); + zephir_update_property_zval(this_ptr, ZEND_STRL("level"), &_0); + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, 0); + zephir_update_property_zval(this_ptr, ZEND_STRL("foreachLevel"), &_0); + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, 0); + zephir_update_property_zval(this_ptr, ZEND_STRL("blockLevel"), &_0); + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, 0); + zephir_update_property_zval(this_ptr, ZEND_STRL("exprLevel"), &_0); + ZEPHIR_INIT_VAR(&compilation); + ZVAL_NULL(&compilation); + zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&options, &_0); + ZEPHIR_OBS_VAR(&compileAlways); + if (!(zephir_array_isset_string_fetch(&compileAlways, &options, SL("always"), 0))) { + ZEPHIR_OBS_NVAR(&compileAlways); + if (zephir_array_isset_string_fetch(&compileAlways, &options, SL("compileAlways"), 0)) { + ZEPHIR_INIT_VAR(&_1$$4); + ZVAL_STRING(&_1$$4, "The 'compileAlways' option is deprecated. Use 'always' instead."); + ZVAL_LONG(&_2$$4, 16384); + ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_1$$4, &_2$$4); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&compileAlways); + ZVAL_BOOL(&compileAlways, 0); + } + } + if (UNEXPECTED(((Z_TYPE_P(&compileAlways) == IS_TRUE || Z_TYPE_P(&compileAlways) == IS_FALSE) != 1))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "'always' must be a bool value", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 318); + return; + } + ZEPHIR_OBS_VAR(&prefix); + if (!(zephir_array_isset_string_fetch(&prefix, &options, SL("prefix"), 0))) { + ZEPHIR_INIT_NVAR(&prefix); + ZVAL_STRING(&prefix, ""); + } + if (UNEXPECTED(Z_TYPE_P(&prefix) != IS_STRING)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "'prefix' must be a string", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 329); + return; + } + ZEPHIR_OBS_VAR(&compiledPath); + if (!(zephir_array_isset_string_fetch(&compiledPath, &options, SL("path"), 0))) { + ZEPHIR_OBS_NVAR(&compiledPath); + if (zephir_array_isset_string_fetch(&compiledPath, &options, SL("compiledPath"), 0)) { + ZEPHIR_INIT_VAR(&_3$$10); + ZVAL_STRING(&_3$$10, "The 'compiledPath' option is deprecated. Use 'path' instead."); + ZVAL_LONG(&_4$$10, 16384); + ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_3$$10, &_4$$10); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&compiledPath); + ZVAL_STRING(&compiledPath, ""); + } + } + ZEPHIR_OBS_VAR(&compiledSeparator); + if (!(zephir_array_isset_string_fetch(&compiledSeparator, &options, SL("separator"), 0))) { + ZEPHIR_OBS_NVAR(&compiledSeparator); + if (zephir_array_isset_string_fetch(&compiledSeparator, &options, SL("compiledSeparator"), 0)) { + ZEPHIR_INIT_VAR(&_5$$13); + ZVAL_STRING(&_5$$13, "The 'compiledSeparator' option is deprecated. Use 'separator' instead."); + ZVAL_LONG(&_6$$13, 16384); + ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_5$$13, &_6$$13); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&compiledSeparator); + ZVAL_STRING(&compiledSeparator, "%%"); + } + } + if (UNEXPECTED(Z_TYPE_P(&compiledSeparator) != IS_STRING)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "'separator' must be a string", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 362); + return; + } + ZEPHIR_OBS_VAR(&compiledExtension); + if (!(zephir_array_isset_string_fetch(&compiledExtension, &options, SL("extension"), 0))) { + ZEPHIR_OBS_NVAR(&compiledExtension); + if (zephir_array_isset_string_fetch(&compiledExtension, &options, SL("compiledExtension"), 0)) { + ZEPHIR_INIT_VAR(&_7$$17); + ZVAL_STRING(&_7$$17, "The 'compiledExtension' option is deprecated. Use 'extension' instead."); + ZVAL_LONG(&_8$$17, 16384); + ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_7$$17, &_8$$17); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&compiledExtension); + ZVAL_STRING(&compiledExtension, ".php"); + } + } + if (UNEXPECTED(Z_TYPE_P(&compiledExtension) != IS_STRING)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "'extension' must be a string", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 380); + return; + } + ZEPHIR_OBS_VAR(&stat); + if (!(zephir_array_isset_string_fetch(&stat, &options, SL("stat"), 0))) { + ZEPHIR_INIT_NVAR(&stat); + ZVAL_BOOL(&stat, 1); + } + _9 = Z_TYPE_P(&compiledPath) == IS_OBJECT; + if (_9) { + _9 = zephir_is_instance_of(&compiledPath, SL("Closure")); + } + if (Z_TYPE_P(&compiledPath) == IS_STRING) { + if (!(ZEPHIR_IS_EMPTY(&compiledPath))) { + ZEPHIR_CALL_FUNCTION(&_10$$22, "realpath", NULL, 94, &templatePath); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&templateSepPath); + zephir_prepare_virtual_path(&templateSepPath, &_10$$22, &compiledSeparator); + } else { + ZEPHIR_CPY_WRT(&templateSepPath, &templatePath); + } + ZEPHIR_INIT_VAR(&compiledTemplatePath); + if (extendsMode) { + ZEPHIR_CONCAT_VVVVSVV(&compiledTemplatePath, &compiledPath, &prefix, &templateSepPath, &compiledSeparator, "e", &compiledSeparator, &compiledExtension); + } else { + ZEPHIR_CONCAT_VVVV(&compiledTemplatePath, &compiledPath, &prefix, &templateSepPath, &compiledExtension); + } + } else if (_9) { + ZEPHIR_INIT_VAR(&_11$$26); + zephir_create_array(&_11$$26, 3, 0); + zephir_array_fast_append(&_11$$26, &templatePath); + zephir_array_fast_append(&_11$$26, &options); + ZEPHIR_INIT_VAR(&_12$$26); + ZVAL_BOOL(&_12$$26, extendsMode); + zephir_array_fast_append(&_11$$26, &_12$$26); + ZEPHIR_INIT_NVAR(&compiledTemplatePath); + ZEPHIR_CALL_USER_FUNC_ARRAY(&compiledTemplatePath, &compiledPath, &_11$$26); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&compiledTemplatePath) != IS_STRING)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "'path' closure didn't return a valid string", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 433); + return; + } + } else { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "'path' must be a string or a closure", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 438); return; } + _13 = !((zephir_file_exists(&compiledTemplatePath) == SUCCESS)); + if (!(_13)) { + _13 = zephir_is_true(&compileAlways); + } + if (_13) { + if (extendsMode) { + ZVAL_BOOL(&_14$$29, 1); + } else { + ZVAL_BOOL(&_14$$29, 0); + } + ZEPHIR_CALL_METHOD(&compilation, this_ptr, "compilefile", NULL, 0, &templatePath, &compiledTemplatePath, &_14$$29); + zephir_check_call_status(); + } else { + if (ZEPHIR_IS_TRUE_IDENTICAL(&stat)) { + ZEPHIR_INIT_VAR(&_15$$31); + if (zephir_compare_mtime(&templatePath, &compiledTemplatePath)) { + if (extendsMode) { + ZVAL_BOOL(&_16$$32, 1); + } else { + ZVAL_BOOL(&_16$$32, 0); + } + ZEPHIR_CALL_METHOD(&compilation, this_ptr, "compilefile", NULL, 0, &templatePath, &compiledTemplatePath, &_16$$32); + zephir_check_call_status(); + } else { + if (extendsMode) { + ZEPHIR_INIT_VAR(&blocksCode); + zephir_file_get_contents(&blocksCode, &compiledTemplatePath); + if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&blocksCode))) { + ZEPHIR_INIT_VAR(&_17$$35); + object_init_ex(&_17$$35, phalcon_mvc_view_engine_volt_exception_ce); + ZEPHIR_INIT_VAR(&_18$$35); + ZEPHIR_CONCAT_SVS(&_18$$35, "Extends compilation file ", &compiledTemplatePath, " could not be opened"); + ZEPHIR_CALL_METHOD(NULL, &_17$$35, "__construct", NULL, 508, &_18$$35); + zephir_check_call_status(); + zephir_throw_exception_debug(&_17$$35, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 477); + ZEPHIR_MM_RESTORE(); + return; + } + if (zephir_is_true(&blocksCode)) { + ZEPHIR_CALL_FUNCTION(&compilation, "unserialize", NULL, 15, &blocksCode); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&compilation); + array_init(&compilation); + } + } + } + } + } + zephir_update_property_zval(this_ptr, ZEND_STRL("compiledTemplatePath"), &compiledTemplatePath); + RETURN_CCTOR(&compilation); } -static PHP_METHOD(Phalcon_Http_Message_Response, checkCodeValue) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileAutoEscape) { - zval _7$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_1 = NULL; - zval *code_param = NULL, _0, _2, _3, _4, _5$$3, _6$$3; - zend_long code, ZEPHIR_LAST_CALL_STATUS; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool extendsMode; + zval *statement_param = NULL, *extendsMode_param = NULL, autoescape, oldAutoescape, compilation, _0, _1; + zval statement; zval *this_ptr = getThis(); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&autoescape); + ZVAL_UNDEF(&oldAutoescape); + ZVAL_UNDEF(&compilation); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(code) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ARRAY(statement) + Z_PARAM_BOOL(extendsMode) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &code_param); - code = zephir_get_intval(code_param); + zephir_fetch_params(1, 2, 0, &statement_param, &extendsMode_param); + ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); + extendsMode = zephir_get_boolval(extendsMode_param); - ZVAL_LONG(&_2, code); - ZVAL_LONG(&_3, 100); - ZVAL_LONG(&_4, 599); - ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_number_ce, "between", &_1, 290, &_2, &_3, &_4); - zephir_check_call_status(); - if (!ZEPHIR_IS_TRUE_IDENTICAL(&_0)) { - ZEPHIR_INIT_VAR(&_5$$3); - object_init_ex(&_5$$3, phalcon_http_message_exception_invalidargumentexception_ce); - ZEPHIR_INIT_VAR(&_6$$3); - ZVAL_LONG(&_6$$3, code); - ZEPHIR_INIT_VAR(&_7$$3); - ZEPHIR_CONCAT_SVS(&_7$$3, "Invalid status code '", &_6$$3, "', (allowed values 100-599)"); - ZEPHIR_CALL_METHOD(NULL, &_5$$3, "__construct", NULL, 40, &_7$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_5$$3, "phalcon/Http/Message/Response.zep", 261); - ZEPHIR_MM_RESTORE(); + ZEPHIR_OBS_VAR(&autoescape); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&autoescape, &statement, SL("enable"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 514); return; } - ZEPHIR_MM_RESTORE(); + ZEPHIR_OBS_VAR(&oldAutoescape); + zephir_read_property(&oldAutoescape, this_ptr, ZEND_STRL("autoescape"), PH_NOISY_CC); + zephir_update_property_zval(this_ptr, ZEND_STRL("autoescape"), &autoescape); + zephir_array_fetch_string(&_0, &statement, SL("block_statements"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 524); + if (extendsMode) { + ZVAL_BOOL(&_1, 1); + } else { + ZVAL_BOOL(&_1, 0); + } + ZEPHIR_CALL_METHOD(&compilation, this_ptr, "statementlist", NULL, 509, &_0, &_1); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("autoescape"), &oldAutoescape); + RETURN_CCTOR(&compilation); } +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileCall) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_bool extendsMode; + zval *statement_param = NULL, *extendsMode_param = NULL; + zval statement; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&statement); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ARRAY(statement) + Z_PARAM_BOOL(extendsMode) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &statement_param, &extendsMode_param); + ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); + extendsMode = zephir_get_boolval(extendsMode_param); - -ZEPHIR_INIT_CLASS(Phalcon_Http_Message_ResponseFactory) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Message, ResponseFactory, phalcon, http_message_responsefactory, phalcon_http_message_responsefactory_method_entry, ZEND_ACC_FINAL_CLASS); - - zend_class_implements(phalcon_http_message_responsefactory_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\responsefactoryinterface"))); - return SUCCESS; } -static PHP_METHOD(Phalcon_Http_Message_ResponseFactory, createResponse) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileCase) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval reasonPhrase; - zval *code_param = NULL, *reasonPhrase_param = NULL, _0, _1; - zend_long code, ZEPHIR_LAST_CALL_STATUS; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool caseClause; + zval *statement_param = NULL, *caseClause_param = NULL, expr, _2, _0$$4, _1$$4; + zval statement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&reasonPhrase); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_0$$4); + ZVAL_UNDEF(&_1$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(statement) Z_PARAM_OPTIONAL - Z_PARAM_LONG(code) - Z_PARAM_STR(reasonPhrase) + Z_PARAM_BOOL(caseClause) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &code_param, &reasonPhrase_param); - if (!code_param) { - code = 200; - } else { - code = zephir_get_intval(code_param); - } - if (!reasonPhrase_param) { - ZEPHIR_INIT_VAR(&reasonPhrase); - ZVAL_STRING(&reasonPhrase, ""); + zephir_fetch_params(1, 1, 1, &statement_param, &caseClause_param); + ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); + if (!caseClause_param) { + caseClause = 1; } else { - zephir_get_strval(&reasonPhrase, reasonPhrase_param); + caseClause = zephir_get_boolval(caseClause_param); } - ZEPHIR_INIT_VAR(&_0); - object_init_ex(&_0, phalcon_http_message_response_ce); - ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 291); - zephir_check_call_status(); - ZVAL_LONG(&_1, code); - ZEPHIR_RETURN_CALL_METHOD(&_0, "withstatus", NULL, 292, &_1, &reasonPhrase); + if (UNEXPECTED(caseClause == 0)) { + RETURN_MM_STRING(""); + } + ZEPHIR_OBS_VAR(&expr); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&expr, &statement, SL("expr"), 0)))) { + ZEPHIR_INIT_VAR(&_0$$4); + object_init_ex(&_0$$4, phalcon_mvc_view_engine_volt_exception_ce); + ZEPHIR_INIT_VAR(&_1$$4); + ZVAL_STRING(&_1$$4, "Corrupt statement"); + ZEPHIR_CALL_METHOD(NULL, &_0$$4, "__construct", NULL, 508, &_1$$4, &statement); + zephir_check_call_status(); + zephir_throw_exception_debug(&_0$$4, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 567); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_METHOD(&_2, this_ptr, "expression", NULL, 507, &expr); zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, ""); RETURN_MM(); } +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileDo) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *statement_param = NULL, expr, _0; + zval statement; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(statement) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &statement_param); + ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); + ZEPHIR_OBS_VAR(&expr); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&expr, &statement, SL("expr"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 591); + return; + } + ZEPHIR_CALL_METHOD(&_0, this_ptr, "expression", NULL, 507, &expr); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, ""); + RETURN_MM(); +} -ZEPHIR_INIT_CLASS(Phalcon_Http_Message_ResponseStatusCodeInterface) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileEcho) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Http\\Message, ResponseStatusCodeInterface, phalcon, http_message_responsestatuscodeinterface, NULL); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_CONTINUE"), 100); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_SWITCHING_PROTOCOLS"), 101); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_PROCESSING"), 102); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_EARLY_HINTS"), 103); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_OK"), 200); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *statement_param = NULL, expr, exprCode, name, _2, _5, _0$$3, _1$$3, _3$$4, _4$$5; + zval statement; + zval *this_ptr = getThis(); - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_CREATED"), 201); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&exprCode); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(statement) + ZEND_PARSE_PARAMETERS_END(); +#endif - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_ACCEPTED"), 202); - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NON_AUTHORITATIVE_INFORMATION"), 203); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &statement_param); + ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NO_CONTENT"), 204); - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_RESET_CONTENT"), 205); + ZEPHIR_OBS_VAR(&expr); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&expr, &statement, SL("expr"), 0)))) { + ZEPHIR_INIT_VAR(&_0$$3); + object_init_ex(&_0$$3, phalcon_mvc_view_engine_volt_exception_ce); + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, "Corrupt statement"); + ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 508, &_1$$3, &statement); + zephir_check_call_status(); + zephir_throw_exception_debug(&_0$$3, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 615); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "expression", NULL, 507, &expr); + zephir_check_call_status(); + zephir_array_fetch_string(&_2, &expr, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 623); + if (ZEPHIR_IS_LONG(&_2, 350)) { + zephir_array_fetch_string(&name, &expr, SL("name"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 624); + zephir_array_fetch_string(&_3$$4, &name, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 626); + if (ZEPHIR_IS_LONG(&_3$$4, 265)) { + zephir_array_fetch_string(&_4$$5, &name, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 631); + if (ZEPHIR_IS_STRING(&_4$$5, "super")) { + RETURN_CCTOR(&exprCode); + } + } + } + zephir_read_property(&_5, this_ptr, ZEND_STRL("autoescape"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_5)) { + ZEPHIR_CONCAT_SVS(return_value, "escaper->escapeHtml(", &exprCode, ") ?>"); + RETURN_MM(); + } + ZEPHIR_CONCAT_SVS(return_value, ""); + RETURN_MM(); +} - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_PARTIAL_CONTENT"), 206); +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileElseIf) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *statement_param = NULL, expr, _2, _0$$3, _1$$3; + zval statement; + zval *this_ptr = getThis(); - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_MULTI_STATUS"), 207); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(statement) + ZEND_PARSE_PARAMETERS_END(); +#endif - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_ALREADY_REPORTED"), 208); - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_IM_USED"), 226); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &statement_param); + ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_MULTIPLE_CHOICES"), 300); - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_MOVED_PERMANENTLY"), 301); + ZEPHIR_OBS_VAR(&expr); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&expr, &statement, SL("expr"), 0)))) { + ZEPHIR_INIT_VAR(&_0$$3); + object_init_ex(&_0$$3, phalcon_mvc_view_engine_volt_exception_ce); + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, "Corrupt statement"); + ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 508, &_1$$3, &statement); + zephir_check_call_status(); + zephir_throw_exception_debug(&_0$$3, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 662); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_METHOD(&_2, this_ptr, "expression", NULL, 507, &expr); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, ""); + RETURN_MM(); +} - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_FOUND"), 302); +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileFile) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool extendsMode; + zval *path_param = NULL, *compiledPath_param = NULL, *extendsMode_param = NULL, viewCode, compilation, finalCompilation, _4, _5, _0$$4, _2$$5; + zval path, compiledPath, _1$$4, _3$$5; + zval *this_ptr = getThis(); - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_SEE_OTHER"), 303); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&compiledPath); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&viewCode); + ZVAL_UNDEF(&compilation); + ZVAL_UNDEF(&finalCompilation); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_0$$4); + ZVAL_UNDEF(&_2$$5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(path) + Z_PARAM_STR(compiledPath) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(extendsMode) + ZEND_PARSE_PARAMETERS_END(); +#endif - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NOT_MODIFIED"), 304); - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_USE_PROXY"), 305); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &path_param, &compiledPath_param, &extendsMode_param); + if (UNEXPECTED(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 of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { + zephir_get_strval(&path, path_param); + } else { + ZEPHIR_INIT_VAR(&path); + } + if (UNEXPECTED(Z_TYPE_P(compiledPath_param) != IS_STRING && Z_TYPE_P(compiledPath_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'compiledPath' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(compiledPath_param) == IS_STRING)) { + zephir_get_strval(&compiledPath, compiledPath_param); + } else { + ZEPHIR_INIT_VAR(&compiledPath); + } + if (!extendsMode_param) { + extendsMode = 0; + } else { + extendsMode = zephir_get_boolval(extendsMode_param); + } - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_RESERVED"), 306); - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_TEMPORARY_REDIRECT"), 307); + if (UNEXPECTED(ZEPHIR_IS_EQUAL(&path, &compiledPath))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Template path and compilation template path cannot be the same", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 695); + return; + } + if (UNEXPECTED(!((zephir_file_exists(&path) == SUCCESS)))) { + ZEPHIR_INIT_VAR(&_0$$4); + object_init_ex(&_0$$4, phalcon_mvc_view_engine_volt_exception_ce); + ZEPHIR_INIT_VAR(&_1$$4); + ZEPHIR_CONCAT_SVS(&_1$$4, "Template file ", &path, " does not exist"); + ZEPHIR_CALL_METHOD(NULL, &_0$$4, "__construct", NULL, 508, &_1$$4); + zephir_check_call_status(); + zephir_throw_exception_debug(&_0$$4, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 702); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_VAR(&viewCode); + zephir_file_get_contents(&viewCode, &path); + if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&viewCode))) { + ZEPHIR_INIT_VAR(&_2$$5); + object_init_ex(&_2$$5, phalcon_mvc_view_engine_volt_exception_ce); + ZEPHIR_INIT_VAR(&_3$$5); + ZEPHIR_CONCAT_SVS(&_3$$5, "Template file ", &path, " could not be opened"); + ZEPHIR_CALL_METHOD(NULL, &_2$$5, "__construct", NULL, 508, &_3$$5); + zephir_check_call_status(); + zephir_throw_exception_debug(&_2$$5, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 714); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_update_property_zval(this_ptr, ZEND_STRL("currentPath"), &path); + if (extendsMode) { + ZVAL_BOOL(&_4, 1); + } else { + ZVAL_BOOL(&_4, 0); + } + ZEPHIR_CALL_METHOD(&compilation, this_ptr, "compilesource", NULL, 0, &viewCode, &_4); + zephir_check_call_status(); + if (Z_TYPE_P(&compilation) == IS_ARRAY) { + ZEPHIR_CALL_FUNCTION(&finalCompilation, "serialize", NULL, 13, &compilation); + zephir_check_call_status(); + } else { + ZEPHIR_CPY_WRT(&finalCompilation, &compilation); + } + ZEPHIR_INIT_VAR(&_5); + zephir_file_put_contents(&_5, &compiledPath, &finalCompilation); + if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&_5))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Volt directory can't be written", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 735); + return; + } + RETURN_CCTOR(&compilation); +} - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_PERMANENT_REDIRECT"), 308); +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileForeach) +{ + zval compilation; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool extendsMode; + zval *statement_param = NULL, *extendsMode_param = NULL, prefix, level, prefixLevel, expr, exprCode, bstatement, type, blockStatements, forElse, code, loopContext, iterator, key, ifExpr, variable, _4, *_0$$4, _1$$4, _2$$7, _3$$10, _5$$11, _6$$11, _7$$11, _8$$11, _9$$11, _10$$11, _11$$11, _12$$11, _13$$11, _14$$13, _15$$14, _16$$15, _17$$15, _18$$17, _19$$17, _20$$17, _21$$17, _22$$17, _23$$17, _24$$18, _25$$22; + zval statement; + zval *this_ptr = getThis(); - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_BAD_REQUEST"), 400); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_UNAUTHORIZED"), 401); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_PAYMENT_REQUIRED"), 402); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_FORBIDDEN"), 403); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NOT_FOUND"), 404); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_METHOD_NOT_ALLOWED"), 405); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NOT_ACCEPTABLE"), 406); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_PROXY_AUTHENTICATION_REQUIRED"), 407); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_REQUEST_TIMEOUT"), 408); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_CONFLICT"), 409); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_GONE"), 410); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_LENGTH_REQUIRED"), 411); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_PRECONDITION_FAILED"), 412); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_PAYLOAD_TOO_LARGE"), 413); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_URI_TOO_LONG"), 414); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_UNSUPPORTED_MEDIA_TYPE"), 415); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_RANGE_NOT_SATISFIABLE"), 416); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_EXPECTATION_FAILED"), 417); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_IM_A_TEAPOT"), 418); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_MISDIRECTED_REQUEST"), 421); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_UNPROCESSABLE_ENTITY"), 422); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_LOCKED"), 423); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_FAILED_DEPENDENCY"), 424); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_TOO_EARLY"), 425); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_UPGRADE_REQUIRED"), 426); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_PRECONDITION_REQUIRED"), 428); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_TOO_MANY_REQUESTS"), 429); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE"), 431); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_UNAVAILABLE_FOR_LEGAL_REASONS"), 451); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_INTERNAL_SERVER_ERROR"), 500); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NOT_IMPLEMENTED"), 501); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_BAD_GATEWAY"), 502); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_SERVICE_UNAVAILABLE"), 503); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_GATEWAY_TIMEOUT"), 504); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_VERSION_NOT_SUPPORTED"), 505); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_VARIANT_ALSO_NEGOTIATES"), 506); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_INSUFFICIENT_STORAGE"), 507); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_LOOP_DETECTED"), 508); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NOT_EXTENDED"), 510); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NETWORK_AUTHENTICATION_REQUIRED"), 511); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_THIS_IS_FINE"), 218); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_PAGE_EXPIRED"), 419); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_METHOD_FAILURE"), 420); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_LOGIN_TIMEOUT"), 440); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NO_RESPONSE"), 444); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_RETRY_WITH"), 449); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_BLOCKED_BY_WINDOWS_PARENTAL_CONTROLS"), 450); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_REQUEST_HEADER_TOO_LARGE"), 494); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_SSL_CERTIFICATE_ERROR"), 495); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_SSL_CERTIFICATE_REQUIRED"), 496); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_HTTP_REQUEST_SENT_TO_HTTPS_PORT"), 497); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_INVALID_TOKEN_ESRI"), 498); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_CLIENT_CLOSED_REQUEST"), 499); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_BANDWIDTH_LIMIT_EXCEEDED"), 509); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_UNKNOWN_ERROR"), 520); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_WEB_SERVER_IS_DOWN"), 521); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_CONNECTION_TIMEOUT"), 522); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_ORIGIN_IS_UNREACHABLE"), 523); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_TIMEOUT_OCCURRED"), 524); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_SSL_HANDSHAKE_FAILED"), 525); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_INVALID_SSL_CERTIFICATE"), 526); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_RAILGUN_ERROR"), 527); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_ORIGIN_DNS_ERROR"), 530); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NETWORK_READ_TIMEOUT_ERROR"), 598); - - zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NETWORK_CONNECT_TIMEOUT_ERROR"), 599); - - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Message_ServerRequest) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Message, ServerRequest, phalcon, http_message_serverrequest, phalcon_http_message_abstractrequest_ce, phalcon_http_message_serverrequest_method_entry, ZEND_ACC_FINAL_CLASS); - - zend_declare_property_null(phalcon_http_message_serverrequest_ce, SL("attributes"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_message_serverrequest_ce, SL("cookieParams"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_message_serverrequest_ce, SL("parsedBody"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_message_serverrequest_ce, SL("queryParams"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_message_serverrequest_ce, SL("serverParams"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_message_serverrequest_ce, SL("uploadedFiles"), ZEND_ACC_PROTECTED); - phalcon_http_message_serverrequest_ce->create_object = zephir_init_properties_Phalcon_Http_Message_ServerRequest; - - zend_class_implements(phalcon_http_message_serverrequest_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\serverrequestinterface"))); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Http_Message_ServerRequest, getCookieParams) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "cookieParams"); -} - -static PHP_METHOD(Phalcon_Http_Message_ServerRequest, getParsedBody) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "parsedBody"); -} - -static PHP_METHOD(Phalcon_Http_Message_ServerRequest, getQueryParams) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "queryParams"); -} - -static PHP_METHOD(Phalcon_Http_Message_ServerRequest, getServerParams) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "serverParams"); -} - -static PHP_METHOD(Phalcon_Http_Message_ServerRequest, getUploadedFiles) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "uploadedFiles"); -} - -static PHP_METHOD(Phalcon_Http_Message_ServerRequest, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval serverParams, cookies, queryParams, uploadFiles; - zval *method_param = NULL, *uri = NULL, uri_sub, *serverParams_param = NULL, *body = NULL, body_sub, *headers = NULL, headers_sub, *cookies_param = NULL, *queryParams_param = NULL, *uploadFiles_param = NULL, *parsedBody = NULL, parsedBody_sub, *protocol_param = NULL, __$null, _0, _1, _2, _3, _4, _5, _6; - zval method, protocol; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&protocol); - ZVAL_UNDEF(&uri_sub); - ZVAL_UNDEF(&body_sub); - ZVAL_UNDEF(&headers_sub); - ZVAL_UNDEF(&parsedBody_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&prefix); + ZVAL_UNDEF(&level); + ZVAL_UNDEF(&prefixLevel); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&exprCode); + ZVAL_UNDEF(&bstatement); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&blockStatements); + ZVAL_UNDEF(&forElse); + ZVAL_UNDEF(&code); + ZVAL_UNDEF(&loopContext); + ZVAL_UNDEF(&iterator); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&ifExpr); + ZVAL_UNDEF(&variable); ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&serverParams); - ZVAL_UNDEF(&cookies); - ZVAL_UNDEF(&queryParams); - ZVAL_UNDEF(&uploadFiles); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$7); + ZVAL_UNDEF(&_3$$10); + ZVAL_UNDEF(&_5$$11); + ZVAL_UNDEF(&_6$$11); + ZVAL_UNDEF(&_7$$11); + ZVAL_UNDEF(&_8$$11); + ZVAL_UNDEF(&_9$$11); + ZVAL_UNDEF(&_10$$11); + ZVAL_UNDEF(&_11$$11); + ZVAL_UNDEF(&_12$$11); + ZVAL_UNDEF(&_13$$11); + ZVAL_UNDEF(&_14$$13); + ZVAL_UNDEF(&_15$$14); + ZVAL_UNDEF(&_16$$15); + ZVAL_UNDEF(&_17$$15); + ZVAL_UNDEF(&_18$$17); + ZVAL_UNDEF(&_19$$17); + ZVAL_UNDEF(&_20$$17); + ZVAL_UNDEF(&_21$$17); + ZVAL_UNDEF(&_22$$17); + ZVAL_UNDEF(&_23$$17); + ZVAL_UNDEF(&_24$$18); + ZVAL_UNDEF(&_25$$22); + ZVAL_UNDEF(&compilation); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 10) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(statement) Z_PARAM_OPTIONAL - Z_PARAM_STR(method) - Z_PARAM_ZVAL_OR_NULL(uri) - Z_PARAM_ARRAY(serverParams) - Z_PARAM_ZVAL(body) - Z_PARAM_ZVAL(headers) - Z_PARAM_ARRAY(cookies) - Z_PARAM_ARRAY(queryParams) - Z_PARAM_ARRAY(uploadFiles) - Z_PARAM_ZVAL_OR_NULL(parsedBody) - Z_PARAM_STR(protocol) + Z_PARAM_BOOL(extendsMode) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 10, &method_param, &uri, &serverParams_param, &body, &headers, &cookies_param, &queryParams_param, &uploadFiles_param, &parsedBody, &protocol_param); - if (!method_param) { - ZEPHIR_INIT_VAR(&method); - ZVAL_STRING(&method, "GET"); + zephir_fetch_params(1, 1, 1, &statement_param, &extendsMode_param); + ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); + if (!extendsMode_param) { + extendsMode = 0; } else { - zephir_get_strval(&method, method_param); + extendsMode = zephir_get_boolval(extendsMode_param); } - if (!uri) { - uri = &uri_sub; - uri = &__$null; + + + if (UNEXPECTED(!(zephir_array_isset_string(&statement, SL("expr"))))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 760); + return; } - if (!serverParams_param) { - ZEPHIR_INIT_VAR(&serverParams); - array_init(&serverParams); - } else { - zephir_get_arrval(&serverParams, serverParams_param); + ZEPHIR_INIT_VAR(&compilation); + ZEPHIR_INIT_VAR(&forElse); + ZVAL_NULL(&forElse); + RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("foreachLevel"))); + ZEPHIR_CALL_METHOD(&prefix, this_ptr, "getuniqueprefix", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&level); + zephir_read_property(&level, this_ptr, ZEND_STRL("foreachLevel"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(&prefixLevel); + ZEPHIR_CONCAT_VV(&prefixLevel, &prefix, &level); + ZEPHIR_OBS_VAR(&expr); + zephir_array_fetch_string(&expr, &statement, SL("expr"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 780); + ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "expression", NULL, 507, &expr); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&blockStatements); + zephir_array_fetch_string(&blockStatements, &statement, SL("block_statements"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 787); + ZEPHIR_INIT_NVAR(&forElse); + ZVAL_BOOL(&forElse, 0); + if (Z_TYPE_P(&blockStatements) == IS_ARRAY) { + zephir_is_iterable(&blockStatements, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 808); + if (Z_TYPE_P(&blockStatements) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&blockStatements), _0$$4) + { + ZEPHIR_INIT_NVAR(&bstatement); + ZVAL_COPY(&bstatement, _0$$4); + ZEPHIR_OBS_NVAR(&type); + if (!(zephir_array_isset_string_fetch(&type, &bstatement, SL("type"), 0))) { + break; + } + if (ZEPHIR_IS_LONG(&type, 321)) { + ZEPHIR_INIT_NVAR(&_2$$7); + ZEPHIR_CONCAT_SVS(&_2$$7, ""); + zephir_concat_self(&compilation, &_2$$7); + ZEPHIR_CPY_WRT(&forElse, &prefixLevel); + zephir_update_property_array(this_ptr, SL("forElsePointers"), &level, &forElse); + break; + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &blockStatements, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1$$4, &blockStatements, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1$$4)) { + break; + } + ZEPHIR_CALL_METHOD(&bstatement, &blockStatements, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&type); + if (!(zephir_array_isset_string_fetch(&type, &bstatement, SL("type"), 0))) { + break; + } + if (ZEPHIR_IS_LONG(&type, 321)) { + ZEPHIR_INIT_NVAR(&_3$$10); + ZEPHIR_CONCAT_SVS(&_3$$10, ""); + zephir_concat_self(&compilation, &_3$$10); + ZEPHIR_CPY_WRT(&forElse, &prefixLevel); + zephir_update_property_array(this_ptr, SL("forElsePointers"), &level, &forElse); + break; + } + ZEPHIR_CALL_METHOD(NULL, &blockStatements, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&bstatement); } - if (!body) { - body = &body_sub; - ZEPHIR_INIT_VAR(body); - ZVAL_STRING(body, "php://input"); + if (extendsMode) { + ZVAL_BOOL(&_4, 1); } else { - ZEPHIR_SEPARATE_PARAM(body); - } - if (!headers) { - headers = &headers_sub; - ZEPHIR_INIT_VAR(headers); - array_init(headers); + ZVAL_BOOL(&_4, 0); } - if (!cookies_param) { - ZEPHIR_INIT_VAR(&cookies); - array_init(&cookies); + ZEPHIR_CALL_METHOD(&code, this_ptr, "statementlist", NULL, 509, &blockStatements, &_4); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&loopContext); + zephir_read_property(&loopContext, this_ptr, ZEND_STRL("loopPointers"), PH_NOISY_CC); + if (zephir_array_isset(&loopContext, &level)) { + ZEPHIR_INIT_VAR(&_5$$11); + ZEPHIR_CONCAT_SVSVS(&_5$$11, "self = &$", &prefixLevel, "loop; "); + zephir_concat_self(&compilation, &_8$$11); + ZEPHIR_INIT_VAR(&_9$$11); + ZEPHIR_CONCAT_SVSVS(&_9$$11, "$", &prefixLevel, "loop->length = count($", &prefixLevel, "iterator); "); + zephir_concat_self(&compilation, &_9$$11); + ZEPHIR_INIT_VAR(&_10$$11); + ZEPHIR_CONCAT_SVS(&_10$$11, "$", &prefixLevel, "loop->index = 1; "); + zephir_concat_self(&compilation, &_10$$11); + ZEPHIR_INIT_VAR(&_11$$11); + ZEPHIR_CONCAT_SVS(&_11$$11, "$", &prefixLevel, "loop->index0 = 1; "); + zephir_concat_self(&compilation, &_11$$11); + ZEPHIR_INIT_VAR(&_12$$11); + ZEPHIR_CONCAT_SVSVS(&_12$$11, "$", &prefixLevel, "loop->revindex = $", &prefixLevel, "loop->length; "); + zephir_concat_self(&compilation, &_12$$11); + ZEPHIR_INIT_VAR(&_13$$11); + ZEPHIR_CONCAT_SVSVS(&_13$$11, "$", &prefixLevel, "loop->revindex0 = $", &prefixLevel, "loop->length - 1; ?>"); + zephir_concat_self(&compilation, &_13$$11); + ZEPHIR_INIT_VAR(&iterator); + ZEPHIR_CONCAT_SVS(&iterator, "$", &prefixLevel, "iterator"); } else { - zephir_get_arrval(&cookies, cookies_param); + ZEPHIR_CPY_WRT(&iterator, &exprCode); } - if (!queryParams_param) { - ZEPHIR_INIT_VAR(&queryParams); - array_init(&queryParams); + ZEPHIR_OBS_VAR(&variable); + zephir_array_fetch_string(&variable, &statement, SL("variable"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 839); + ZEPHIR_OBS_VAR(&key); + if (zephir_array_isset_string_fetch(&key, &statement, SL("key"), 0)) { + ZEPHIR_INIT_VAR(&_14$$13); + ZEPHIR_CONCAT_SVSVSVS(&_14$$13, " $", &variable, ") { "); + zephir_concat_self(&compilation, &_14$$13); } else { - zephir_get_arrval(&queryParams, queryParams_param); + ZEPHIR_INIT_VAR(&_15$$14); + ZEPHIR_CONCAT_SVSVS(&_15$$14, ""); + zephir_concat_self(&compilation, &_17$$15); } else { - zephir_get_arrval(&uploadFiles, uploadFiles_param); + zephir_concat_self_str(&compilation, "?>", sizeof("?>") - 1); } - if (!parsedBody) { - parsedBody = &parsedBody_sub; - parsedBody = &__$null; + if (zephir_array_isset(&loopContext, &level)) { + ZEPHIR_INIT_VAR(&_18$$17); + ZEPHIR_CONCAT_SVSVS(&_18$$17, "first = ($", &prefixLevel, "incr == 0); "); + zephir_concat_self(&compilation, &_18$$17); + ZEPHIR_INIT_VAR(&_19$$17); + ZEPHIR_CONCAT_SVSVS(&_19$$17, "$", &prefixLevel, "loop->index = $", &prefixLevel, "incr + 1; "); + zephir_concat_self(&compilation, &_19$$17); + ZEPHIR_INIT_VAR(&_20$$17); + ZEPHIR_CONCAT_SVSVS(&_20$$17, "$", &prefixLevel, "loop->index0 = $", &prefixLevel, "incr; "); + zephir_concat_self(&compilation, &_20$$17); + ZEPHIR_INIT_VAR(&_21$$17); + ZEPHIR_CONCAT_SVSVSVS(&_21$$17, "$", &prefixLevel, "loop->revindex = $", &prefixLevel, "loop->length - $", &prefixLevel, "incr; "); + zephir_concat_self(&compilation, &_21$$17); + ZEPHIR_INIT_VAR(&_22$$17); + ZEPHIR_CONCAT_SVSVSVS(&_22$$17, "$", &prefixLevel, "loop->revindex0 = $", &prefixLevel, "loop->length - ($", &prefixLevel, "incr + 1); "); + zephir_concat_self(&compilation, &_22$$17); + ZEPHIR_INIT_VAR(&_23$$17); + ZEPHIR_CONCAT_SVSVSVS(&_23$$17, "$", &prefixLevel, "loop->last = ($", &prefixLevel, "incr == ($", &prefixLevel, "loop->length - 1)); ?>"); + zephir_concat_self(&compilation, &_23$$17); } - if (!protocol_param) { - ZEPHIR_INIT_VAR(&protocol); - ZVAL_STRING(&protocol, "1.1"); - } else { - zephir_get_strval(&protocol, protocol_param); + if (Z_TYPE_P(&forElse) == IS_STRING) { + ZEPHIR_INIT_VAR(&_24$$18); + ZEPHIR_CONCAT_SVS(&_24$$18, ""); + zephir_concat_self(&compilation, &_24$$18); } - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "php://input"); - if (UNEXPECTED(ZEPHIR_IS_IDENTICAL(&_0, body))) { - ZEPHIR_INIT_NVAR(body); - object_init_ex(body, phalcon_http_message_stream_input_ce); - ZEPHIR_CALL_METHOD(NULL, body, "__construct", NULL, 282); - zephir_check_call_status(); + zephir_concat_self(&compilation, &code); + if (zephir_array_isset_string(&statement, SL("if_expr"))) { + zephir_concat_self_str(&compilation, "", sizeof("") - 1); } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkuploadedfiles", NULL, 293, &uploadFiles); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "processprotocol", NULL, 38, &protocol); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("protocolVersion"), &_1); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "processmethod", NULL, 106, &method); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("method"), &_2); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "processheaders", NULL, 284, headers); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("headers"), &_3); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "processuri", NULL, 283, uri); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("uri"), &_4); - ZEPHIR_INIT_VAR(&_6); - ZVAL_STRING(&_6, "w+b"); - ZEPHIR_CALL_METHOD(&_5, this_ptr, "processbody", NULL, 37, body, &_6); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("body"), &_5); - zephir_update_property_zval(this_ptr, ZEND_STRL("uploadedFiles"), &uploadFiles); - zephir_update_property_zval(this_ptr, ZEND_STRL("parsedBody"), parsedBody); - zephir_update_property_zval(this_ptr, ZEND_STRL("serverParams"), &serverParams); - zephir_update_property_zval(this_ptr, ZEND_STRL("cookieParams"), &cookies); - zephir_update_property_zval(this_ptr, ZEND_STRL("queryParams"), &queryParams); - ZEPHIR_INIT_NVAR(&_6); - object_init_ex(&_6, phalcon_collection_ce); - ZEPHIR_CALL_METHOD(NULL, &_6, "__construct", NULL, 22); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &_6); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Http_Message_ServerRequest, getAttribute) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name, name_sub, *defaultValue = NULL, defaultValue_sub, __$null, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name_sub); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(name) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(defaultValue) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &name, &defaultValue); - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; + if (Z_TYPE_P(&forElse) == IS_STRING) { + zephir_concat_self_str(&compilation, "", sizeof("") - 1); + } else { + if (zephir_array_isset(&loopContext, &level)) { + ZEPHIR_INIT_VAR(&_25$$22); + ZEPHIR_CONCAT_SVS(&_25$$22, ""); + zephir_concat_self(&compilation, &_25$$22); + } else { + zephir_concat_self_str(&compilation, "", sizeof("") - 1); + } } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "get", NULL, 0, name, defaultValue); - zephir_check_call_status(); - RETURN_MM(); + RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("foreachLevel"))); + RETURN_CTOR(&compilation); } -static PHP_METHOD(Phalcon_Http_Message_ServerRequest, getAttributes) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileForElse) { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval level, prefix, _0, _1; zval *this_ptr = getThis(); + ZVAL_UNDEF(&level); + ZVAL_UNDEF(&prefix); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); - ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "toarray", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); + zephir_read_property(&level, this_ptr, ZEND_STRL("foreachLevel"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_0, this_ptr, ZEND_STRL("forElsePointers"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&prefix, &_0, &level, 1))) { + RETURN_STRING(""); + } + zephir_read_property(&_1, this_ptr, ZEND_STRL("loopPointers"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset(&_1, &level)) { + ZEPHIR_CONCAT_SVSVS(return_value, ""); + return; + } + ZEPHIR_CONCAT_SVS(return_value, ""); + return; } -static PHP_METHOD(Phalcon_Http_Message_ServerRequest, withAttribute) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileIf) { + zval compilation; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name, name_sub, *value, value_sub, attributes, _0, _1, _2; + zend_bool extendsMode; + zval *statement_param = NULL, *extendsMode_param = NULL, blockStatements, expr, _2, _3, _4, _5, _6, _0$$3, _1$$3, _7$$4, _8$$4, _9$$4; + zval statement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name_sub); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&blockStatements); + ZVAL_UNDEF(&expr); ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_8$$4); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&compilation); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(name) - Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(statement) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(extendsMode) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &name, &value); + zephir_fetch_params(1, 1, 1, &statement_param, &extendsMode_param); + ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); + if (!extendsMode_param) { + extendsMode = 0; + } else { + extendsMode = zephir_get_boolval(extendsMode_param); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - if (zephir_clone(&_1, &_0) == FAILURE) { - RETURN_MM(); + ZEPHIR_OBS_VAR(&expr); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&expr, &statement, SL("expr"), 0)))) { + ZEPHIR_INIT_VAR(&_0$$3); + object_init_ex(&_0$$3, phalcon_mvc_view_engine_volt_exception_ce); + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, "Corrupt statement"); + ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 508, &_1$$3, &statement); + zephir_check_call_status(); + zephir_throw_exception_debug(&_0$$3, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 942); + ZEPHIR_MM_RESTORE(); + return; } - ZEPHIR_CPY_WRT(&attributes, &_1); - ZEPHIR_CALL_METHOD(NULL, &attributes, "set", NULL, 0, name, value); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "expression", NULL, 507, &expr); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "attributes"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, &attributes, &_2); + zephir_array_fetch_string(&_4, &statement, SL("true_statements"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 948); + if (extendsMode) { + ZVAL_BOOL(&_5, 1); + } else { + ZVAL_BOOL(&_5, 0); + } + ZEPHIR_CALL_METHOD(&_3, this_ptr, "statementlist", NULL, 509, &_4, &_5); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_VAR(&_6); + ZEPHIR_CONCAT_SVSV(&_6, "", &_3); + zephir_get_strval(&compilation, &_6); + ZEPHIR_OBS_VAR(&blockStatements); + if (zephir_array_isset_string_fetch(&blockStatements, &statement, SL("false_statements"), 0)) { + if (extendsMode) { + ZVAL_BOOL(&_8$$4, 1); + } else { + ZVAL_BOOL(&_8$$4, 0); + } + ZEPHIR_CALL_METHOD(&_7$$4, this_ptr, "statementlist", NULL, 509, &blockStatements, &_8$$4); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_9$$4); + ZEPHIR_CONCAT_SV(&_9$$4, "", &_7$$4); + zephir_concat_self(&compilation, &_9$$4); + } + zephir_concat_self_str(&compilation, "", sizeof("") - 1); + RETURN_CTOR(&compilation); } -static PHP_METHOD(Phalcon_Http_Message_ServerRequest, withCookieParams) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileInclude) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *cookies_param = NULL, _0; - zval cookies; + zval *statement_param = NULL, pathExpr, path, subCompiler, finalPath, compilation, params, _0, _3, _1$$5, _2$$6; + zval statement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&cookies); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&pathExpr); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&subCompiler); + ZVAL_UNDEF(&finalPath); + ZVAL_UNDEF(&compilation); + ZVAL_UNDEF(¶ms); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_1$$5); + ZVAL_UNDEF(&_2$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(cookies) + Z_PARAM_ARRAY(statement) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &cookies_param); - zephir_get_arrval(&cookies, cookies_param); + zephir_fetch_params(1, 1, 0, &statement_param); + ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "cookieParams"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, &cookies, &_0); + ZEPHIR_OBS_VAR(&pathExpr); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&pathExpr, &statement, SL("path"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 982); + return; + } + zephir_array_fetch_string(&_0, &pathExpr, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 989); + if (ZEPHIR_IS_LONG(&_0, 260)) { + if (!(zephir_array_isset_string(&statement, SL("params")))) { + ZEPHIR_OBS_VAR(&path); + zephir_array_fetch_string(&path, &pathExpr, SL("value"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 998); + ZEPHIR_CALL_METHOD(&finalPath, this_ptr, "getfinalpath", NULL, 0, &path); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&subCompiler); + if (zephir_clone(&subCompiler, this_ptr) == FAILURE) { + RETURN_MM(); + } + ZVAL_BOOL(&_1$$5, 0); + ZEPHIR_CALL_METHOD(&compilation, &subCompiler, "compile", NULL, 0, &finalPath, &_1$$5); + zephir_check_call_status(); + if (Z_TYPE_P(&compilation) == IS_NULL) { + ZEPHIR_CALL_METHOD(&_2$$6, &subCompiler, "getcompiledtemplatepath", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&compilation); + zephir_file_get_contents(&compilation, &_2$$6); + } + RETURN_CCTOR(&compilation); + } + } + ZEPHIR_CALL_METHOD(&path, this_ptr, "expression", NULL, 507, &pathExpr); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(¶ms); + if (!(zephir_array_isset_string_fetch(¶ms, &statement, SL("params"), 0))) { + ZEPHIR_CONCAT_SVS(return_value, "partial(", &path, "); ?>"); + RETURN_MM(); + } + ZEPHIR_CALL_METHOD(&_3, this_ptr, "expression", NULL, 507, ¶ms); zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "partial(", &path, ", ", &_3, "); ?>"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Http_Message_ServerRequest, withParsedBody) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileMacro) { + zend_string *_9$$6; + zend_ulong _8$$6; + zval code, macroName, _28, _4$$5, _5$$6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_15 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *data, data_sub, _0; + zend_bool extendsMode; + zval *statement_param = NULL, *extendsMode_param = NULL, name, defaultValue, parameters, position, parameter, variableName, blockStatements, _0, _3, _1$$4, _2$$4, *_6$$6, _7$$6, _10$$7, _11$$7, _12$$7, _13$$7, _14$$8, _16$$8, _17$$9, _18$$10, _19$$10, _20$$10, _21$$10, _22$$11, _23$$11, _24$$12, _25$$13, _26$$13, _27$$13; + zval statement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&defaultValue); + ZVAL_UNDEF(¶meters); + ZVAL_UNDEF(&position); + ZVAL_UNDEF(¶meter); + ZVAL_UNDEF(&variableName); + ZVAL_UNDEF(&blockStatements); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_10$$7); + ZVAL_UNDEF(&_11$$7); + ZVAL_UNDEF(&_12$$7); + ZVAL_UNDEF(&_13$$7); + ZVAL_UNDEF(&_14$$8); + ZVAL_UNDEF(&_16$$8); + ZVAL_UNDEF(&_17$$9); + ZVAL_UNDEF(&_18$$10); + ZVAL_UNDEF(&_19$$10); + ZVAL_UNDEF(&_20$$10); + ZVAL_UNDEF(&_21$$10); + ZVAL_UNDEF(&_22$$11); + ZVAL_UNDEF(&_23$$11); + ZVAL_UNDEF(&_24$$12); + ZVAL_UNDEF(&_25$$13); + ZVAL_UNDEF(&_26$$13); + ZVAL_UNDEF(&_27$$13); + ZVAL_UNDEF(&code); + ZVAL_UNDEF(¯oName); + ZVAL_UNDEF(&_28); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_5$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ARRAY(statement) + Z_PARAM_BOOL(extendsMode) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &data); + zephir_fetch_params(1, 2, 0, &statement_param, &extendsMode_param); + ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); + extendsMode = zephir_get_boolval(extendsMode_param); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "parsedBody"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, data, &_0); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_OBS_VAR(&name); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&name, &statement, SL("name"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1057); + return; + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("macros"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(zephir_array_isset(&_0, &name))) { + ZEPHIR_INIT_VAR(&_1$$4); + object_init_ex(&_1$$4, phalcon_mvc_view_engine_volt_exception_ce); + ZEPHIR_INIT_VAR(&_2$$4); + ZEPHIR_CONCAT_SVS(&_2$$4, "Macro '", &name, "' is already defined"); + ZEPHIR_CALL_METHOD(NULL, &_1$$4, "__construct", NULL, 508, &_2$$4); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$4, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1064); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_update_property_array(this_ptr, SL("macros"), &name, &name); + ZEPHIR_INIT_VAR(&_3); + ZEPHIR_CONCAT_SVS(&_3, "$this->macros['", &name, "']"); + zephir_get_strval(¯oName, &_3); + ZEPHIR_INIT_VAR(&code); + ZVAL_STRING(&code, ""); + zephir_concat_self(&code, &_4$$5); + } else { + ZEPHIR_INIT_VAR(&_5$$6); + ZEPHIR_CONCAT_VS(&_5$$6, ¯oName, " = function($__p = null) { "); + zephir_concat_self(&code, &_5$$6); + zephir_is_iterable(¶meters, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1103); + if (Z_TYPE_P(¶meters) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(¶meters), _8$$6, _9$$6, _6$$6) + { + ZEPHIR_INIT_NVAR(&position); + if (_9$$6 != NULL) { + ZVAL_STR_COPY(&position, _9$$6); + } else { + ZVAL_LONG(&position, _8$$6); + } + ZEPHIR_INIT_NVAR(¶meter); + ZVAL_COPY(¶meter, _6$$6); + ZEPHIR_OBS_NVAR(&variableName); + zephir_array_fetch_string(&variableName, ¶meter, SL("variable"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1085); + ZEPHIR_INIT_NVAR(&_10$$7); + ZEPHIR_CONCAT_SVS(&_10$$7, "if (isset($__p[", &position, "])) { "); + zephir_concat_self(&code, &_10$$7); + ZEPHIR_INIT_NVAR(&_11$$7); + ZEPHIR_CONCAT_SVSVS(&_11$$7, "$", &variableName, " = $__p[", &position, "];"); + zephir_concat_self(&code, &_11$$7); + zephir_concat_self_str(&code, " } else { ", sizeof(" } else { ") - 1); + ZEPHIR_INIT_NVAR(&_12$$7); + ZEPHIR_CONCAT_SVS(&_12$$7, "if (array_key_exists(\"", &variableName, "\", $__p)) { "); + zephir_concat_self(&code, &_12$$7); + ZEPHIR_INIT_NVAR(&_13$$7); + ZEPHIR_CONCAT_SVSVS(&_13$$7, "$", &variableName, " = $__p[\"", &variableName, "\"];"); + zephir_concat_self(&code, &_13$$7); + zephir_concat_self_str(&code, " } else { ", sizeof(" } else { ") - 1); + ZEPHIR_OBS_NVAR(&defaultValue); + if (EXPECTED(zephir_array_isset_string_fetch(&defaultValue, ¶meter, SL("default"), 0))) { + ZEPHIR_CALL_METHOD(&_14$$8, this_ptr, "expression", &_15, 507, &defaultValue); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_16$$8); + ZEPHIR_CONCAT_SVSVS(&_16$$8, "$", &variableName, " = ", &_14$$8, ";"); + zephir_concat_self(&code, &_16$$8); + } else { + ZEPHIR_INIT_NVAR(&_17$$9); + ZEPHIR_CONCAT_SVSVS(&_17$$9, " throw new \\Phalcon\\Mvc\\View\\Exception(\"Macro '", &name, "' was called without parameter: ", &variableName, "\"); "); + zephir_concat_self(&code, &_17$$9); + } + zephir_concat_self_str(&code, " } } ", sizeof(" } } ") - 1); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, ¶meters, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_7$$6, ¶meters, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_7$$6)) { + break; + } + ZEPHIR_CALL_METHOD(&position, ¶meters, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(¶meter, ¶meters, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&variableName); + zephir_array_fetch_string(&variableName, ¶meter, SL("variable"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1085); + ZEPHIR_INIT_NVAR(&_18$$10); + ZEPHIR_CONCAT_SVS(&_18$$10, "if (isset($__p[", &position, "])) { "); + zephir_concat_self(&code, &_18$$10); + ZEPHIR_INIT_NVAR(&_19$$10); + ZEPHIR_CONCAT_SVSVS(&_19$$10, "$", &variableName, " = $__p[", &position, "];"); + zephir_concat_self(&code, &_19$$10); + zephir_concat_self_str(&code, " } else { ", sizeof(" } else { ") - 1); + ZEPHIR_INIT_NVAR(&_20$$10); + ZEPHIR_CONCAT_SVS(&_20$$10, "if (array_key_exists(\"", &variableName, "\", $__p)) { "); + zephir_concat_self(&code, &_20$$10); + ZEPHIR_INIT_NVAR(&_21$$10); + ZEPHIR_CONCAT_SVSVS(&_21$$10, "$", &variableName, " = $__p[\"", &variableName, "\"];"); + zephir_concat_self(&code, &_21$$10); + zephir_concat_self_str(&code, " } else { ", sizeof(" } else { ") - 1); + ZEPHIR_OBS_NVAR(&defaultValue); + if (EXPECTED(zephir_array_isset_string_fetch(&defaultValue, ¶meter, SL("default"), 0))) { + ZEPHIR_CALL_METHOD(&_22$$11, this_ptr, "expression", &_15, 507, &defaultValue); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_23$$11); + ZEPHIR_CONCAT_SVSVS(&_23$$11, "$", &variableName, " = ", &_22$$11, ";"); + zephir_concat_self(&code, &_23$$11); + } else { + ZEPHIR_INIT_NVAR(&_24$$12); + ZEPHIR_CONCAT_SVSVS(&_24$$12, " throw new \\Phalcon\\Mvc\\View\\Exception(\"Macro '", &name, "' was called without parameter: ", &variableName, "\"); "); + zephir_concat_self(&code, &_24$$12); + } + zephir_concat_self_str(&code, " } } ", sizeof(" } } ") - 1); + ZEPHIR_CALL_METHOD(NULL, ¶meters, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(¶meter); + ZEPHIR_INIT_NVAR(&position); + zephir_concat_self_str(&code, " ?>", sizeof(" ?>") - 1); + } + ZEPHIR_OBS_VAR(&blockStatements); + if (zephir_array_isset_string_fetch(&blockStatements, &statement, SL("block_statements"), 0)) { + if (extendsMode) { + ZVAL_BOOL(&_26$$13, 1); + } else { + ZVAL_BOOL(&_26$$13, 0); + } + ZEPHIR_CALL_METHOD(&_25$$13, this_ptr, "statementlist", NULL, 509, &blockStatements, &_26$$13); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_27$$13); + ZEPHIR_CONCAT_VS(&_27$$13, &_25$$13, ""); + zephir_concat_self(&code, &_28); + RETURN_CTOR(&code); } -static PHP_METHOD(Phalcon_Http_Message_ServerRequest, withQueryParams) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileReturn) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *query_param = NULL, _0; - zval query; + zval *statement_param = NULL, expr, _0; + zval statement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&query); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&expr); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(query) + Z_PARAM_ARRAY(statement) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &query_param); - zephir_get_arrval(&query, query_param); + zephir_fetch_params(1, 1, 0, &statement_param); + ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "queryParams"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, &query, &_0); + ZEPHIR_OBS_VAR(&expr); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&expr, &statement, SL("expr"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1140); + return; + } + ZEPHIR_CALL_METHOD(&_0, this_ptr, "expression", NULL, 507, &expr); zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, ""); RETURN_MM(); } -static PHP_METHOD(Phalcon_Http_Message_ServerRequest, withUploadedFiles) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileSet) { + zval compilation; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_3 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *uploadedFiles_param = NULL, _0; - zval uploadedFiles; + zval *statement_param = NULL, assignments, assignment, exprCode, target, *_0, _1, _2$$4, _4$$4, _5$$4, _6$$5, _7$$6, _8$$7, _9$$8, _10$$9, _11$$10, _12$$10, _13$$10, _14$$11, _15$$12, _16$$13, _17$$14, _18$$15; + zval statement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&uploadedFiles); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&assignments); + ZVAL_UNDEF(&assignment); + ZVAL_UNDEF(&exprCode); + ZVAL_UNDEF(&target); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_8$$7); + ZVAL_UNDEF(&_9$$8); + ZVAL_UNDEF(&_10$$9); + ZVAL_UNDEF(&_11$$10); + ZVAL_UNDEF(&_12$$10); + ZVAL_UNDEF(&_13$$10); + ZVAL_UNDEF(&_14$$11); + ZVAL_UNDEF(&_15$$12); + ZVAL_UNDEF(&_16$$13); + ZVAL_UNDEF(&_17$$14); + ZVAL_UNDEF(&_18$$15); + ZVAL_UNDEF(&compilation); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(uploadedFiles) + Z_PARAM_ARRAY(statement) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &uploadedFiles_param); - zephir_get_arrval(&uploadedFiles, uploadedFiles_param); - + zephir_fetch_params(1, 1, 0, &statement_param); + ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkuploadedfiles", NULL, 293, &uploadedFiles); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "uploadedFiles"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, &uploadedFiles, &_0); - zephir_check_call_status(); - RETURN_MM(); -} -static PHP_METHOD(Phalcon_Http_Message_ServerRequest, withoutAttribute) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name, name_sub, attributes, _0, _1, _2; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name_sub); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(name) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - if (zephir_clone(&_1, &_0) == FAILURE) { - RETURN_MM(); + ZEPHIR_OBS_VAR(&assignments); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&assignments, &statement, SL("assignments"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1166); + return; } - ZEPHIR_CPY_WRT(&attributes, &_1); - ZEPHIR_CALL_METHOD(NULL, &attributes, "remove", NULL, 0, name); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "attributes"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, &attributes, &_2); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Http_Message_ServerRequest, checkUploadedFiles) -{ - zend_bool _3$$5, _4$$9; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_2 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *files_param = NULL, file, *_0, _1; - zval files; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&files); - ZVAL_UNDEF(&file); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(files) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &files_param); - zephir_get_arrval(&files, files_param); - - - zephir_is_iterable(&files, 0, "phalcon/Http/Message/ServerRequest.zep", 354); - if (Z_TYPE_P(&files) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&files), _0) + ZEPHIR_INIT_VAR(&compilation); + ZVAL_STRING(&compilation, "", sizeof(" ?>") - 1); + RETURN_CTOR(&compilation); } - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Message_ServerRequestFactory) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Message, ServerRequestFactory, phalcon, http_message_serverrequestfactory, phalcon_http_message_serverrequestfactory_method_entry, 0); - - zend_class_implements(phalcon_http_message_serverrequestfactory_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\serverrequestfactoryinterface"))); - zend_class_implements(phalcon_http_message_serverrequestfactory_ce, 1, phalcon_http_message_requestmethodinterface_ce); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, createServerRequest) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileString) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval serverParams; - zval *method_param = NULL, *uri, uri_sub, *serverParams_param = NULL; - zval method; + zend_bool extendsMode; + zval *viewCode_param = NULL, *extendsMode_param = NULL, _0, _1; + zval viewCode; zval *this_ptr = getThis(); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&uri_sub); - ZVAL_UNDEF(&serverParams); + ZVAL_UNDEF(&viewCode); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(method) - Z_PARAM_ZVAL(uri) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(viewCode) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(serverParams) + Z_PARAM_BOOL(extendsMode) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &method_param, &uri, &serverParams_param); - zephir_get_strval(&method, method_param); - if (!serverParams_param) { - ZEPHIR_INIT_VAR(&serverParams); - array_init(&serverParams); + zephir_fetch_params(1, 1, 1, &viewCode_param, &extendsMode_param); + if (UNEXPECTED(Z_TYPE_P(viewCode_param) != IS_STRING && Z_TYPE_P(viewCode_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewCode' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(viewCode_param) == IS_STRING)) { + zephir_get_strval(&viewCode, viewCode_param); } else { - zephir_get_arrval(&serverParams, serverParams_param); + ZEPHIR_INIT_VAR(&viewCode); + } + if (!extendsMode_param) { + extendsMode = 0; + } else { + extendsMode = zephir_get_boolval(extendsMode_param); } - object_init_ex(return_value, phalcon_http_message_serverrequest_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 294, &method, uri, &serverParams); + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "eval code"); + zephir_update_property_zval(this_ptr, ZEND_STRL("currentPath"), &_0); + if (extendsMode) { + ZVAL_BOOL(&_1, 1); + } else { + ZVAL_BOOL(&_1, 0); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "compilesource", NULL, 0, &viewCode, &_1); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, load) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileSwitch) { - zend_bool _7; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *server_param = NULL, *get_param = NULL, *post_param = NULL, *cookies_param = NULL, *files_param = NULL, _COOKIE, _FILES, _GET, _POST, _SERVER, cookiesCollection, filesCollection, headers, method, protocol, serverCollection, _0, _1, _2, _3, _4, _5, _6, _8, _11, _12, _13, _14, _9$$8, _10$$8; - zval server, get, post, cookies, files, globalCookies, globalFiles, globalGet, globalPost, globalServer; + zend_bool extendsMode; + zval *statement_param = NULL, *extendsMode_param = NULL, compilation, caseClauses, expr, lines, _2, _0$$3, _1$$3, _3$$4, _4$$5, _5$$5, _6$$5; + zval statement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&server); - ZVAL_UNDEF(&get); - ZVAL_UNDEF(&post); - ZVAL_UNDEF(&cookies); - ZVAL_UNDEF(&files); - ZVAL_UNDEF(&globalCookies); - ZVAL_UNDEF(&globalFiles); - ZVAL_UNDEF(&globalGet); - ZVAL_UNDEF(&globalPost); - ZVAL_UNDEF(&globalServer); - ZVAL_UNDEF(&_COOKIE); - ZVAL_UNDEF(&_FILES); - ZVAL_UNDEF(&_GET); - ZVAL_UNDEF(&_POST); - ZVAL_UNDEF(&_SERVER); - ZVAL_UNDEF(&cookiesCollection); - ZVAL_UNDEF(&filesCollection); - ZVAL_UNDEF(&headers); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&protocol); - ZVAL_UNDEF(&serverCollection); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&compilation); + ZVAL_UNDEF(&caseClauses); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&lines); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_13); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_9$$8); - ZVAL_UNDEF(&_10$$8); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_6$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 5) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(statement) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY_OR_NULL(server) - Z_PARAM_ARRAY_OR_NULL(get) - Z_PARAM_ARRAY_OR_NULL(post) - Z_PARAM_ARRAY_OR_NULL(cookies) - Z_PARAM_ARRAY_OR_NULL(files) + Z_PARAM_BOOL(extendsMode) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_get_global(&_SERVER, SL("_SERVER")); - zephir_get_global(&_POST, SL("_POST")); - zephir_get_global(&_GET, SL("_GET")); - zephir_get_global(&_FILES, SL("_FILES")); - zephir_get_global(&_COOKIE, SL("_COOKIE")); - zephir_fetch_params(1, 0, 5, &server_param, &get_param, &post_param, &cookies_param, &files_param); - if (!server_param) { - ZEPHIR_INIT_VAR(&server); - } else { - zephir_get_arrval(&server, server_param); - } - if (!get_param) { - ZEPHIR_INIT_VAR(&get); - } else { - zephir_get_arrval(&get, get_param); - } - if (!post_param) { - ZEPHIR_INIT_VAR(&post); - } else { - zephir_get_arrval(&post, post_param); - } - if (!cookies_param) { - ZEPHIR_INIT_VAR(&cookies); - } else { - zephir_get_arrval(&cookies, cookies_param); - } - if (!files_param) { - ZEPHIR_INIT_VAR(&files); + zephir_fetch_params(1, 1, 1, &statement_param, &extendsMode_param); + ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); + if (!extendsMode_param) { + extendsMode = 0; } else { - zephir_get_arrval(&files, files_param); + extendsMode = zephir_get_boolval(extendsMode_param); } - ZEPHIR_INIT_VAR(&globalCookies); - array_init(&globalCookies); - ZEPHIR_INIT_VAR(&globalFiles); - array_init(&globalFiles); - ZEPHIR_INIT_VAR(&globalGet); - array_init(&globalGet); - ZEPHIR_INIT_VAR(&globalPost); - array_init(&globalPost); - ZEPHIR_INIT_VAR(&globalServer); - array_init(&globalServer); - if (!(ZEPHIR_IS_EMPTY(&_COOKIE))) { - ZEPHIR_CPY_WRT(&globalCookies, &_COOKIE); - } - if (!(ZEPHIR_IS_EMPTY(&_FILES))) { - ZEPHIR_CPY_WRT(&globalFiles, &_FILES); - } - if (!(ZEPHIR_IS_EMPTY(&_GET))) { - ZEPHIR_CPY_WRT(&globalGet, &_GET); - } - if (!(ZEPHIR_IS_EMPTY(&_POST))) { - ZEPHIR_CPY_WRT(&globalPost, &_POST); - } - if (!(ZEPHIR_IS_EMPTY(&_SERVER))) { - ZEPHIR_CPY_WRT(&globalServer, &_SERVER); - } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "checknullarray", NULL, 295, &server, &globalServer); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&server, &_0); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "checknullarray", NULL, 295, &files, &globalFiles); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&files, &_1); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "checknullarray", NULL, 295, &cookies, &globalCookies); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&cookies, &_2); - ZEPHIR_CALL_METHOD(&_3, this_ptr, "checknullarray", NULL, 295, &get, &globalGet); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&get, &_3); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "checknullarray", NULL, 295, &post, &globalPost); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&post, &_4); - ZEPHIR_CALL_METHOD(&serverCollection, this_ptr, "parseserver", NULL, 296, &server); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_5); - ZVAL_STRING(&_5, "REQUEST_METHOD"); - ZEPHIR_INIT_VAR(&_6); - ZVAL_STRING(&_6, "GET"); - ZEPHIR_CALL_METHOD(&method, &serverCollection, "get", NULL, 0, &_5, &_6); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&protocol, this_ptr, "parseprotocol", NULL, 297, &serverCollection); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&headers, this_ptr, "parseheaders", NULL, 298, &serverCollection); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&filesCollection, this_ptr, "parseuploadedfiles", NULL, 299, &files); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&cookiesCollection, &cookies); - _7 = ZEPHIR_IS_EMPTY(&cookies); - if (_7) { - ZEPHIR_INIT_NVAR(&_5); - ZVAL_STRING(&_5, "cookie"); - ZEPHIR_CALL_METHOD(&_8, &headers, "has", NULL, 0, &_5); + ZEPHIR_OBS_VAR(&expr); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&expr, &statement, SL("expr"), 0)))) { + ZEPHIR_INIT_VAR(&_0$$3); + object_init_ex(&_0$$3, phalcon_mvc_view_engine_volt_exception_ce); + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, "Corrupt statement"); + ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 508, &_1$$3, &statement); zephir_check_call_status(); - _7 = zephir_is_true(&_8); + zephir_throw_exception_debug(&_0$$3, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1256); + ZEPHIR_MM_RESTORE(); + return; } - if (UNEXPECTED(_7)) { - ZEPHIR_INIT_VAR(&_10$$8); - ZVAL_STRING(&_10$$8, "cookie"); - ZEPHIR_CALL_METHOD(&_9$$8, &headers, "get", NULL, 0, &_10$$8); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&cookiesCollection, this_ptr, "parsecookieheader", NULL, 300, &_9$$8); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "expression", NULL, 507, &expr); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&compilation); + ZEPHIR_CONCAT_SVS(&compilation, ""); + ZEPHIR_OBS_VAR(&caseClauses); + if (zephir_array_isset_string_fetch(&caseClauses, &statement, SL("case_clauses"), 0)) { + if (extendsMode) { + ZVAL_BOOL(&_3$$4, 1); + } else { + ZVAL_BOOL(&_3$$4, 0); + } + ZEPHIR_CALL_METHOD(&lines, this_ptr, "statementlist", NULL, 509, &caseClauses, &_3$$4); zephir_check_call_status(); + if (zephir_fast_strlen_ev(&lines) != 0) { + ZEPHIR_INIT_VAR(&_4$$5); + ZVAL_STRING(&_4$$5, "/(*ANYCRLF)^\\h+|\\h+$|(\\h){2,}/mu"); + ZEPHIR_INIT_VAR(&_5$$5); + ZVAL_STRING(&_5$$5, ""); + ZEPHIR_CALL_FUNCTION(&_6$$5, "preg_replace", NULL, 50, &_4$$5, &_5$$5, &lines); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&lines, &_6$$5); + } + zephir_concat_self(&compilation, &lines); } - object_init_ex(return_value, phalcon_http_message_serverrequest_ce); - ZEPHIR_CALL_METHOD(&_11, this_ptr, "parseuri", NULL, 301, &serverCollection, &headers); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_12, &serverCollection, "toarray", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_13, &headers, "toarray", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_14, &filesCollection, "toarray", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_5); - ZVAL_STRING(&_5, "php://input"); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 294, &method, &_11, &_12, &_5, &_13, &cookiesCollection, &get, &_14, &post, &protocol); - zephir_check_call_status(); - RETURN_MM(); + zephir_concat_self_str(&compilation, SL("")); + RETURN_CCTOR(&compilation); } -static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, getHeaders) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, expression) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_3 = NULL, *_7 = NULL, *_11 = NULL, *_13 = NULL, *_15 = NULL, *_21 = NULL, *_28 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *expr_param = NULL, exprCode, extensions, items, singleExpr, singleExprCode, name, left, leftCode, right, rightCode, type, startCode, endCode, start, end, _0, _2$$4, *_4$$6, _5$$6, _6$$7, _8$$8, _9$$10, _10$$11, _12$$15, _14$$16, _16$$34, _17$$34, _18$$34, _19$$34, _20$$38, _22$$72, _23$$72, _24$$76, _25$$76, _26$$76, _27$$76; + zval expr, _1$$4; zval *this_ptr = getThis(); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&exprCode); + ZVAL_UNDEF(&extensions); + ZVAL_UNDEF(&items); + ZVAL_UNDEF(&singleExpr); + ZVAL_UNDEF(&singleExprCode); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&left); + ZVAL_UNDEF(&leftCode); + ZVAL_UNDEF(&right); + ZVAL_UNDEF(&rightCode); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&startCode); + ZVAL_UNDEF(&endCode); + ZVAL_UNDEF(&start); + ZVAL_UNDEF(&end); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&_6$$7); + ZVAL_UNDEF(&_8$$8); + ZVAL_UNDEF(&_9$$10); + ZVAL_UNDEF(&_10$$11); + ZVAL_UNDEF(&_12$$15); + ZVAL_UNDEF(&_14$$16); + ZVAL_UNDEF(&_16$$34); + ZVAL_UNDEF(&_17$$34); + ZVAL_UNDEF(&_18$$34); + ZVAL_UNDEF(&_19$$34); + ZVAL_UNDEF(&_20$$38); + ZVAL_UNDEF(&_22$$72); + ZVAL_UNDEF(&_23$$72); + ZVAL_UNDEF(&_24$$76); + ZVAL_UNDEF(&_25$$76); + ZVAL_UNDEF(&_26$$76); + ZVAL_UNDEF(&_27$$76); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(expr) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &expr_param); + ZEPHIR_OBS_COPY_OR_DUP(&expr, expr_param); - if (EXPECTED((zephir_function_exists_ex(ZEND_STRL("apache_request_headers")) == SUCCESS))) { - ZEPHIR_RETURN_CALL_FUNCTION("apache_request_headers", NULL, 302); - zephir_check_call_status(); - RETURN_MM(); + + ZEPHIR_INIT_VAR(&exprCode); + ZVAL_NULL(&exprCode); + RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("exprLevel"))); + zephir_read_property(&_0, this_ptr, ZEND_STRL("extensions"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&extensions, &_0); + while (1) { + if (Z_TYPE_P(&extensions) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&_1$$4); + zephir_create_array(&_1$$4, 1, 0); + zephir_array_fast_append(&_1$$4, &expr); + ZEPHIR_INIT_NVAR(&_2$$4); + ZVAL_STRING(&_2$$4, "resolveExpression"); + ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "fireextensionevent", &_3, 510, &_2$$4, &_1$$4); + zephir_check_call_status(); + if (Z_TYPE_P(&exprCode) == IS_STRING) { + break; + } + } + ZEPHIR_OBS_NVAR(&type); + if (!(zephir_array_isset_string_fetch(&type, &expr, SL("type"), 0))) { + ZEPHIR_INIT_NVAR(&items); + array_init(&items); + zephir_is_iterable(&expr, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1353); + if (Z_TYPE_P(&expr) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&expr), _4$$6) + { + ZEPHIR_INIT_NVAR(&singleExpr); + ZVAL_COPY(&singleExpr, _4$$6); + zephir_array_fetch_string(&_6$$7, &singleExpr, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1344); + ZEPHIR_CALL_METHOD(&singleExprCode, this_ptr, "expression", &_7, 507, &_6$$7); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&name); + if (zephir_array_isset_string_fetch(&name, &singleExpr, SL("name"), 0)) { + ZEPHIR_INIT_NVAR(&_8$$8); + ZEPHIR_CONCAT_SVSV(&_8$$8, "'", &name, "' => ", &singleExprCode); + zephir_array_append(&items, &_8$$8, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1347); + } else { + zephir_array_append(&items, &singleExprCode, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1349); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &expr, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_5$$6, &expr, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_5$$6)) { + break; + } + ZEPHIR_CALL_METHOD(&singleExpr, &expr, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_fetch_string(&_9$$10, &singleExpr, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1344); + ZEPHIR_CALL_METHOD(&singleExprCode, this_ptr, "expression", &_7, 507, &_9$$10); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&name); + if (zephir_array_isset_string_fetch(&name, &singleExpr, SL("name"), 0)) { + ZEPHIR_INIT_NVAR(&_10$$11); + ZEPHIR_CONCAT_SVSV(&_10$$11, "'", &name, "' => ", &singleExprCode); + zephir_array_append(&items, &_10$$11, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1347); + } else { + zephir_array_append(&items, &singleExprCode, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1349); + } + ZEPHIR_CALL_METHOD(NULL, &expr, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&singleExpr); + ZEPHIR_INIT_NVAR(&exprCode); + zephir_fast_join_str(&exprCode, SL(", "), &items); + break; + } + if (ZEPHIR_IS_LONG(&type, '.')) { + ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "attributereader", &_11, 0, &expr); + zephir_check_call_status(); + break; + } + ZEPHIR_OBS_NVAR(&left); + if (zephir_array_isset_string_fetch(&left, &expr, SL("left"), 0)) { + ZEPHIR_CALL_METHOD(&leftCode, this_ptr, "expression", &_7, 507, &left); + zephir_check_call_status(); + } + if (ZEPHIR_IS_LONG(&type, 311)) { + zephir_array_fetch_string(&_12$$15, &expr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1379); + ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "resolvetest", &_13, 0, &_12$$15, &leftCode); + zephir_check_call_status(); + break; + } + if (ZEPHIR_IS_LONG(&type, 124)) { + zephir_array_fetch_string(&_14$$16, &expr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1391); + ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "resolvefilter", &_15, 511, &_14$$16, &leftCode); + zephir_check_call_status(); + break; + } + ZEPHIR_OBS_NVAR(&right); + if (zephir_array_isset_string_fetch(&right, &expr, SL("right"), 0)) { + ZEPHIR_CALL_METHOD(&rightCode, this_ptr, "expression", &_7, 507, &right); + zephir_check_call_status(); + } + ZEPHIR_INIT_NVAR(&exprCode); + ZVAL_NULL(&exprCode); + do { + if (ZEPHIR_IS_LONG(&type, '!')) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SV(&exprCode, "!", &rightCode); + break; + } + if (ZEPHIR_IS_LONG(&type, '*')) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " * ", &rightCode); + break; + } + if (ZEPHIR_IS_LONG(&type, '+')) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " + ", &rightCode); + break; + } + if (ZEPHIR_IS_LONG(&type, '-')) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " - ", &rightCode); + break; + } + if (ZEPHIR_IS_LONG(&type, '/')) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " / ", &rightCode); + break; + } + if (ZEPHIR_IS_LONG(&type, 37)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " % ", &rightCode); + break; + } + if (ZEPHIR_IS_LONG(&type, '<')) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " < ", &rightCode); + break; + } + if (ZEPHIR_IS_LONG(&type, 61)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " > ", &rightCode); + break; + } + if (ZEPHIR_IS_LONG(&type, 62)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " > ", &rightCode); + break; + } + if (ZEPHIR_IS_LONG(&type, 126)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " . ", &rightCode); + break; + } + if (ZEPHIR_IS_LONG(&type, 278)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVSVS(&exprCode, "pow(", &leftCode, ", ", &rightCode, ")"); + break; + } + if (ZEPHIR_IS_LONG(&type, 360)) { + ZEPHIR_INIT_NVAR(&exprCode); + if (zephir_array_isset_string(&expr, SL("left"))) { + ZEPHIR_CONCAT_SVS(&exprCode, "[", &leftCode, "]"); + } else { + ZVAL_STRING(&exprCode, "[]"); + } + break; + } + if (ZEPHIR_IS_LONG(&type, 258)) { + ZEPHIR_OBS_NVAR(&exprCode); + zephir_array_fetch_string(&exprCode, &expr, SL("value"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1462); + break; + } + if (ZEPHIR_IS_LONG(&type, 259)) { + ZEPHIR_OBS_NVAR(&exprCode); + zephir_array_fetch_string(&exprCode, &expr, SL("value"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1466); + break; + } + if (ZEPHIR_IS_LONG(&type, 260)) { + ZEPHIR_INIT_NVAR(&_16$$34); + zephir_array_fetch_string(&_17$$34, &expr, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1470); + ZEPHIR_INIT_NVAR(&_18$$34); + ZVAL_STRING(&_18$$34, "'"); + ZEPHIR_INIT_NVAR(&_19$$34); + ZVAL_STRING(&_19$$34, "\\'"); + zephir_fast_str_replace(&_16$$34, &_18$$34, &_19$$34, &_17$$34); + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVS(&exprCode, "'", &_16$$34, "'"); + break; + } + if (ZEPHIR_IS_LONG(&type, 261)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZVAL_STRING(&exprCode, "null"); + break; + } + if (ZEPHIR_IS_LONG(&type, 262)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZVAL_STRING(&exprCode, "false"); + break; + } + if (ZEPHIR_IS_LONG(&type, 263)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZVAL_STRING(&exprCode, "true"); + break; + } + if (ZEPHIR_IS_LONG(&type, 265)) { + zephir_array_fetch_string(&_20$$38, &expr, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1486); + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SV(&exprCode, "$", &_20$$38); + break; + } + if (ZEPHIR_IS_LONG(&type, 266)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " && ", &rightCode); + break; + } + if (ZEPHIR_IS_LONG(&type, 267)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " || ", &rightCode); + break; + } + if (ZEPHIR_IS_LONG(&type, 270)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " <= ", &rightCode); + break; + } + if (ZEPHIR_IS_LONG(&type, 271)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " >= ", &rightCode); + break; + } + if (ZEPHIR_IS_LONG(&type, 272)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " == ", &rightCode); + break; + } + if (ZEPHIR_IS_LONG(&type, 273)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " != ", &rightCode); + break; + } + if (ZEPHIR_IS_LONG(&type, 274)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " === ", &rightCode); + break; + } + if (ZEPHIR_IS_LONG(&type, 275)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " !== ", &rightCode); + break; + } + if (ZEPHIR_IS_LONG(&type, 276)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVSVS(&exprCode, "range(", &leftCode, ", ", &rightCode, ")"); + break; + } + if (ZEPHIR_IS_LONG(&type, 350)) { + ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "functioncall", &_21, 0, &expr); + zephir_check_call_status(); + break; + } + if (ZEPHIR_IS_LONG(&type, 356)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVS(&exprCode, "(", &leftCode, ")"); + break; + } + if (ZEPHIR_IS_LONG(&type, 361)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_VSVS(&exprCode, &leftCode, "[", &rightCode, "]"); + break; + } + if (ZEPHIR_IS_LONG(&type, 365)) { + ZEPHIR_OBS_NVAR(&start); + if (zephir_array_isset_string_fetch(&start, &expr, SL("start"), 0)) { + ZEPHIR_CALL_METHOD(&startCode, this_ptr, "expression", &_7, 507, &start); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&startCode); + ZVAL_STRING(&startCode, "null"); + } + ZEPHIR_OBS_NVAR(&end); + if (zephir_array_isset_string_fetch(&end, &expr, SL("end"), 0)) { + ZEPHIR_CALL_METHOD(&endCode, this_ptr, "expression", &_7, 507, &end); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&endCode); + ZVAL_STRING(&endCode, "null"); + } + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVSVSVS(&exprCode, "$this->slice(", &leftCode, ", ", &startCode, ", ", &endCode, ")"); + break; + } + if (ZEPHIR_IS_LONG(&type, 362)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVS(&exprCode, "!isset(", &leftCode, ")"); + break; + } + if (ZEPHIR_IS_LONG(&type, 363)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVS(&exprCode, "isset(", &leftCode, ")"); + break; + } + if (ZEPHIR_IS_LONG(&type, 392)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVS(&exprCode, "!empty(", &leftCode, ")"); + break; + } + if (ZEPHIR_IS_LONG(&type, 386)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVS(&exprCode, "empty(", &leftCode, ")"); + break; + } + if (ZEPHIR_IS_LONG(&type, 393)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVS(&exprCode, "!(((", &leftCode, ") % 2) == 0)"); + break; + } + if (ZEPHIR_IS_LONG(&type, 387)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVS(&exprCode, "(((", &leftCode, ") % 2) == 0)"); + break; + } + if (ZEPHIR_IS_LONG(&type, 394)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVS(&exprCode, "!(((", &leftCode, ") % 2) != 0)"); + break; + } + if (ZEPHIR_IS_LONG(&type, 388)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVS(&exprCode, "(((", &leftCode, ") % 2) != 0)"); + break; + } + if (ZEPHIR_IS_LONG(&type, 395)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVS(&exprCode, "!is_numeric(", &leftCode, ")"); + break; + } + if (ZEPHIR_IS_LONG(&type, 389)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVS(&exprCode, "is_numeric(", &leftCode, ")"); + break; + } + if (ZEPHIR_IS_LONG(&type, 396)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVS(&exprCode, "!is_scalar(", &leftCode, ")"); + break; + } + if (ZEPHIR_IS_LONG(&type, 390)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVS(&exprCode, "is_scalar(", &leftCode, ")"); + break; + } + if (ZEPHIR_IS_LONG(&type, 397)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVSVS(&exprCode, "!(is_array(", &leftCode, ") || (", &leftCode, ") instanceof Traversable)"); + break; + } + if (ZEPHIR_IS_LONG(&type, 391)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVSVS(&exprCode, "(is_array(", &leftCode, ") || (", &leftCode, ") instanceof Traversable)"); + break; + } + if (ZEPHIR_IS_LONG(&type, 309)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVSVS(&exprCode, "$this->isIncluded(", &leftCode, ", ", &rightCode, ")"); + break; + } + if (ZEPHIR_IS_LONG(&type, 367)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVSVS(&exprCode, "!$this->isIncluded(", &leftCode, ", ", &rightCode, ")"); + break; + } + if (ZEPHIR_IS_LONG(&type, 366)) { + zephir_array_fetch_string(&_23$$72, &expr, SL("ternary"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1625); + ZEPHIR_CALL_METHOD(&_22$$72, this_ptr, "expression", &_7, 507, &_23$$72); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SVSVSVS(&exprCode, "(", &_22$$72, " ? ", &leftCode, " : ", &rightCode, ")"); + break; + } + if (ZEPHIR_IS_LONG(&type, 368)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SV(&exprCode, "-", &rightCode); + break; + } + if (ZEPHIR_IS_LONG(&type, 369)) { + ZEPHIR_INIT_NVAR(&exprCode); + ZEPHIR_CONCAT_SV(&exprCode, "+", &rightCode); + break; + } + if (ZEPHIR_IS_LONG(&type, 364)) { + ZEPHIR_OBS_NVAR(&exprCode); + zephir_array_fetch_string(&exprCode, &expr, SL("value"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1637); + break; + } + ZEPHIR_INIT_NVAR(&_24$$76); + object_init_ex(&_24$$76, phalcon_mvc_view_engine_volt_exception_ce); + zephir_array_fetch_string(&_25$$76, &expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1642); + zephir_array_fetch_string(&_26$$76, &expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1643); + ZEPHIR_INIT_NVAR(&_27$$76); + ZEPHIR_CONCAT_SVSVSV(&_27$$76, "Unknown expression ", &type, " in ", &_25$$76, " on line ", &_26$$76); + ZEPHIR_CALL_METHOD(NULL, &_24$$76, "__construct", &_28, 508, &_27$$76); + zephir_check_call_status(); + zephir_throw_exception_debug(&_24$$76, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1643); + ZEPHIR_MM_RESTORE(); + return; + } while(0); + + break; } - RETURN_MM_BOOL(0); + RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("exprLevel"))); + RETURN_CCTOR(&exprCode); } -static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, calculateUriHost) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, fireExtensionEvent) { - zval defaults; + zval _3$$6, _4$$7, _5$$11, _6$$12; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *server, server_sub, *headers, headers_sub, __$null, host, port, _0, _1, _2, _4, _3$$3; + zval *name_param = NULL, *arguments = NULL, arguments_sub, __$null, extensions, extension, status, _0, *_1$$3, _2$$3; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&server_sub); - ZVAL_UNDEF(&headers_sub); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&arguments_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&host); - ZVAL_UNDEF(&port); + ZVAL_UNDEF(&extensions); + ZVAL_UNDEF(&extension); + ZVAL_UNDEF(&status); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&defaults); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$6); + ZVAL_UNDEF(&_4$$7); + ZVAL_UNDEF(&_5$$11); + ZVAL_UNDEF(&_6$$12); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(server, phalcon_collection_collectioninterface_ce) - Z_PARAM_OBJECT_OF_CLASS(headers, phalcon_collection_collectioninterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(name) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(arguments) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &server, &headers); - - - ZEPHIR_INIT_VAR(&defaults); - zephir_create_array(&defaults, 2, 0); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, ""); - zephir_array_fast_append(&defaults, &_0); - zephir_array_fast_append(&defaults, &__$null); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "host"); - ZVAL_BOOL(&_2, 0); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getheader", NULL, 303, headers, &_0, &_2); - zephir_check_call_status(); - if (UNEXPECTED(zephir_is_true(&_1))) { - ZEPHIR_INIT_VAR(&_3$$3); - ZVAL_STRING(&_3$$3, "host"); - ZEPHIR_CALL_METHOD(&host, this_ptr, "getheader", NULL, 303, headers, &_3$$3); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "calculateurihostfromheader", NULL, 304, &host); - zephir_check_call_status(); - RETURN_MM(); + zephir_fetch_params(1, 1, 1, &name_param, &arguments); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); } - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "SERVER_NAME"); - ZEPHIR_CALL_METHOD(&_4, server, "has", NULL, 0, &_0); - zephir_check_call_status(); - if (UNEXPECTED(!zephir_is_true(&_4))) { - RETURN_CTOR(&defaults); + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); } - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "SERVER_NAME"); - ZEPHIR_CALL_METHOD(&host, server, "get", NULL, 0, &_0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "SERVER_PORT"); - ZVAL_NULL(&_2); - ZEPHIR_CALL_METHOD(&port, server, "get", NULL, 0, &_0, &_2); - zephir_check_call_status(); - zephir_create_array(return_value, 2, 0); - zephir_array_fast_append(return_value, &host); - zephir_array_fast_append(return_value, &port); - RETURN_MM(); + if (!arguments) { + arguments = &arguments_sub; + arguments = &__$null; + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("extensions"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&extensions, &_0); + if (Z_TYPE_P(&extensions) == IS_ARRAY) { + zephir_is_iterable(&extensions, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1692); + if (Z_TYPE_P(&extensions) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&extensions), _1$$3) + { + ZEPHIR_INIT_NVAR(&extension); + ZVAL_COPY(&extension, _1$$3); + if ((zephir_method_exists(&extension, &name) == SUCCESS)) { + if (Z_TYPE_P(arguments) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&_3$$6); + zephir_create_array(&_3$$6, 2, 0); + zephir_array_fast_append(&_3$$6, &extension); + zephir_array_fast_append(&_3$$6, &name); + ZEPHIR_INIT_NVAR(&status); + ZEPHIR_CALL_USER_FUNC_ARRAY(&status, &_3$$6, arguments); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&_4$$7); + zephir_create_array(&_4$$7, 2, 0); + zephir_array_fast_append(&_4$$7, &extension); + zephir_array_fast_append(&_4$$7, &name); + ZEPHIR_INIT_NVAR(&status); + ZEPHIR_CALL_USER_FUNC(&status, &_4$$7); + zephir_check_call_status(); + } + if (Z_TYPE_P(&status) == IS_STRING) { + RETURN_CCTOR(&status); + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &extensions, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2$$3, &extensions, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&extension, &extensions, "current", NULL, 0); + zephir_check_call_status(); + if ((zephir_method_exists(&extension, &name) == SUCCESS)) { + if (Z_TYPE_P(arguments) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&_5$$11); + zephir_create_array(&_5$$11, 2, 0); + zephir_array_fast_append(&_5$$11, &extension); + zephir_array_fast_append(&_5$$11, &name); + ZEPHIR_INIT_NVAR(&status); + ZEPHIR_CALL_USER_FUNC_ARRAY(&status, &_5$$11, arguments); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&_6$$12); + zephir_create_array(&_6$$12, 2, 0); + zephir_array_fast_append(&_6$$12, &extension); + zephir_array_fast_append(&_6$$12, &name); + ZEPHIR_INIT_NVAR(&status); + ZEPHIR_CALL_USER_FUNC(&status, &_6$$12); + zephir_check_call_status(); + } + if (Z_TYPE_P(&status) == IS_STRING) { + RETURN_CCTOR(&status); + } + } + ZEPHIR_CALL_METHOD(NULL, &extensions, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&extension); + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, calculateUriHostFromHeader) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) { + zend_bool _8$$5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *host_param = NULL, matches, port, _0, _1, _2, _3$$3, _4$$3, _5$$3, _6$$3, _7$$3; - zval host; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *expr_param = NULL, __$true, code, funcArguments, arguments, nameExpr, nameType, name, extensions, functions, definition, extendedBlocks, block, currentBlock, exprLevel, escapedCode, method, arrayHelpers, _14, _0$$5, _12$$5, _13$$5, _2$$6, _4$$9, _5$$9, _6$$9, _7$$9, _9$$15, _10$$16, _11$$17; + zval expr, _1$$6, _3$$12; zval *this_ptr = getThis(); - ZVAL_UNDEF(&host); - ZVAL_UNDEF(&matches); - ZVAL_UNDEF(&port); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&_1$$6); + ZVAL_UNDEF(&_3$$12); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&code); + ZVAL_UNDEF(&funcArguments); + ZVAL_UNDEF(&arguments); + ZVAL_UNDEF(&nameExpr); + ZVAL_UNDEF(&nameType); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&extensions); + ZVAL_UNDEF(&functions); + ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&extendedBlocks); + ZVAL_UNDEF(&block); + ZVAL_UNDEF(¤tBlock); + ZVAL_UNDEF(&exprLevel); + ZVAL_UNDEF(&escapedCode); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&arrayHelpers); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_0$$5); + ZVAL_UNDEF(&_12$$5); + ZVAL_UNDEF(&_13$$5); + ZVAL_UNDEF(&_2$$6); + ZVAL_UNDEF(&_4$$9); + ZVAL_UNDEF(&_5$$9); + ZVAL_UNDEF(&_6$$9); + ZVAL_UNDEF(&_7$$9); + ZVAL_UNDEF(&_9$$15); + ZVAL_UNDEF(&_10$$16); + ZVAL_UNDEF(&_11$$17); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(host) + Z_PARAM_ARRAY(expr) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &host_param); - zephir_get_strval(&host, host_param); + zephir_fetch_params(1, 1, 0, &expr_param); + ZEPHIR_OBS_COPY_OR_DUP(&expr, expr_param); - ZEPHIR_INIT_VAR(&port); - ZVAL_NULL(&port); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "|:(\\d+)$|"); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "|:(\\d+)$|"); - zephir_preg_match(&_1, &_2, &host, &matches, 0, 0 , 0 ); - if (UNEXPECTED(zephir_is_true(&_1))) { - zephir_array_fetch_long(&_3$$3, &matches, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Message/ServerRequestFactory.zep", 200); - ZVAL_LONG(&_4$$3, 0); - ZVAL_LONG(&_5$$3, (-1 * ((zephir_fast_strlen_ev(&_3$$3) + 1)))); - ZEPHIR_INIT_VAR(&_6$$3); - zephir_substr(&_6$$3, &host, 0 , zephir_get_intval(&_5$$3), 0); - zephir_get_strval(&host, &_6$$3); - ZEPHIR_OBS_VAR(&_7$$3); - zephir_array_fetch_long(&_7$$3, &matches, 1, PH_NOISY, "phalcon/Http/Message/ServerRequestFactory.zep", 201); - ZEPHIR_INIT_NVAR(&port); - ZVAL_LONG(&port, zephir_get_intval(&_7$$3)); + ZEPHIR_INIT_VAR(&code); + ZVAL_NULL(&code); + ZEPHIR_INIT_VAR(&funcArguments); + ZVAL_NULL(&funcArguments); + ZEPHIR_OBS_NVAR(&funcArguments); + if (zephir_array_isset_string_fetch(&funcArguments, &expr, SL("arguments"), 0)) { + ZEPHIR_CALL_METHOD(&arguments, this_ptr, "expression", NULL, 507, &funcArguments); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&arguments); + ZVAL_STRING(&arguments, ""); } - zephir_create_array(return_value, 2, 0); - zephir_array_fast_append(return_value, &host); - zephir_array_fast_append(return_value, &port); + ZEPHIR_OBS_VAR(&nameExpr); + zephir_array_fetch_string(&nameExpr, &expr, SL("name"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1718); + ZEPHIR_OBS_VAR(&nameType); + zephir_array_fetch_string(&nameType, &nameExpr, SL("type"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1719); + if (ZEPHIR_IS_LONG(&nameType, 265)) { + ZEPHIR_OBS_VAR(&name); + zephir_array_fetch_string(&name, &nameExpr, SL("value"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1725); + zephir_read_property(&_0$$5, this_ptr, ZEND_STRL("extensions"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&extensions, &_0$$5); + if (Z_TYPE_P(&extensions) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&_1$$6); + zephir_create_array(&_1$$6, 3, 0); + zephir_array_fast_append(&_1$$6, &name); + zephir_array_fast_append(&_1$$6, &arguments); + zephir_array_fast_append(&_1$$6, &funcArguments); + ZEPHIR_INIT_VAR(&_2$$6); + ZVAL_STRING(&_2$$6, "compileFunction"); + ZEPHIR_CALL_METHOD(&code, this_ptr, "fireextensionevent", NULL, 510, &_2$$6, &_1$$6); + zephir_check_call_status(); + if (Z_TYPE_P(&code) == IS_STRING) { + RETURN_CCTOR(&code); + } + } + zephir_read_property(&_0$$5, this_ptr, ZEND_STRL("functions"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&functions, &_0$$5); + if (Z_TYPE_P(&functions) == IS_ARRAY) { + ZEPHIR_OBS_VAR(&definition); + if (zephir_array_isset_fetch(&definition, &functions, &name, 0)) { + if (Z_TYPE_P(&definition) == IS_STRING) { + ZEPHIR_CONCAT_VSVS(return_value, &definition, "(", &arguments, ")"); + RETURN_MM(); + } + if (Z_TYPE_P(&definition) == IS_OBJECT) { + if (zephir_is_instance_of(&definition, SL("Closure"))) { + ZEPHIR_INIT_VAR(&_3$$12); + zephir_create_array(&_3$$12, 2, 0); + zephir_array_fast_append(&_3$$12, &arguments); + zephir_array_fast_append(&_3$$12, &funcArguments); + ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, &definition, &_3$$12); + zephir_check_call_status(); + RETURN_MM(); + } + } + ZEPHIR_INIT_VAR(&_4$$9); + object_init_ex(&_4$$9, phalcon_mvc_view_engine_volt_exception_ce); + zephir_array_fetch_string(&_5$$9, &expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1775); + zephir_array_fetch_string(&_6$$9, &expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1776); + ZEPHIR_INIT_VAR(&_7$$9); + ZEPHIR_CONCAT_SVSVSV(&_7$$9, "Invalid definition for user function '", &name, "' in ", &_5$$9, " on line ", &_6$$9); + ZEPHIR_CALL_METHOD(NULL, &_4$$9, "__construct", NULL, 508, &_7$$9); + zephir_check_call_status(); + zephir_throw_exception_debug(&_4$$9, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1776); + ZEPHIR_MM_RESTORE(); + return; + } + } + _8$$5 = ZEPHIR_IS_STRING(&name, "get_content"); + if (!(_8$$5)) { + _8$$5 = ZEPHIR_IS_STRING(&name, "content"); + } + if (_8$$5) { + RETURN_MM_STRING("$this->getContent()"); + } + if (ZEPHIR_IS_STRING(&name, "partial")) { + ZEPHIR_CONCAT_SVS(return_value, "$this->partial(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "super")) { + zephir_read_property(&_9$$15, this_ptr, ZEND_STRL("extendedBlocks"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&extendedBlocks, &_9$$15); + if (Z_TYPE_P(&extendedBlocks) == IS_ARRAY) { + zephir_read_property(&_10$$16, this_ptr, ZEND_STRL("currentBlock"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(¤tBlock, &_10$$16); + ZEPHIR_OBS_VAR(&block); + if (zephir_array_isset_fetch(&block, &extendedBlocks, ¤tBlock, 0)) { + zephir_read_property(&_11$$17, this_ptr, ZEND_STRL("exprLevel"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&exprLevel, &_11$$17); + if (Z_TYPE_P(&block) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&code, this_ptr, "statementlistorextends", NULL, 0, &block); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&exprLevel, 1)) { + ZEPHIR_CPY_WRT(&escapedCode, &code); + } else { + ZEPHIR_INIT_NVAR(&escapedCode); + zephir_addslashes(&escapedCode, &code); + } + } else { + if (ZEPHIR_IS_LONG(&exprLevel, 1)) { + ZEPHIR_CPY_WRT(&escapedCode, &block); + } else { + ZEPHIR_INIT_NVAR(&escapedCode); + zephir_addslashes(&escapedCode, &block); + } + } + if (ZEPHIR_IS_LONG(&exprLevel, 1)) { + RETURN_CCTOR(&escapedCode); + } + ZEPHIR_CONCAT_SVS(return_value, "'", &escapedCode, "'"); + RETURN_MM(); + } + } + RETURN_MM_STRING("''"); + } + ZEPHIR_INIT_VAR(&_12$$5); + zephir_camelize(&_12$$5, &name, NULL ); + ZEPHIR_CALL_FUNCTION(&method, "lcfirst", NULL, 96, &_12$$5); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&arrayHelpers); + zephir_create_array(&arrayHelpers, 16, 0); + zephir_array_update_string(&arrayHelpers, SL("link_to"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&arrayHelpers, SL("image"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&arrayHelpers, SL("form"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&arrayHelpers, SL("submit_button"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&arrayHelpers, SL("radio_field"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&arrayHelpers, SL("check_field"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&arrayHelpers, SL("file_field"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&arrayHelpers, SL("hidden_field"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&arrayHelpers, SL("password_field"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&arrayHelpers, SL("text_area"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&arrayHelpers, SL("text_field"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&arrayHelpers, SL("email_field"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&arrayHelpers, SL("date_field"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&arrayHelpers, SL("tel_field"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&arrayHelpers, SL("numeric_field"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&arrayHelpers, SL("image_input"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_13$$5); + ZVAL_STRING(&_13$$5, "Phalcon\\Tag"); + if ((zephir_method_exists(&_13$$5, &method) == SUCCESS)) { + if (zephir_array_isset(&arrayHelpers, &name)) { + ZEPHIR_CONCAT_SVSVS(return_value, "$this->tag->", &method, "([", &arguments, "])"); + RETURN_MM(); + } + ZEPHIR_CONCAT_SVSVS(return_value, "$this->tag->", &method, "(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "url")) { + ZEPHIR_CONCAT_SVS(return_value, "$this->url->get(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "static_url")) { + ZEPHIR_CONCAT_SVS(return_value, "$this->url->getStatic(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "date")) { + ZEPHIR_CONCAT_SVS(return_value, "date(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "time")) { + RETURN_MM_STRING("time()"); + } + if (ZEPHIR_IS_STRING(&name, "dump")) { + ZEPHIR_CONCAT_SVS(return_value, "var_dump(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "version")) { + RETURN_MM_STRING("(new Phalcon\\Support\\Version)->get()"); + } + if (ZEPHIR_IS_STRING(&name, "version_id")) { + RETURN_MM_STRING("(new Phalcon\\Support\\Version)->getId()"); + } + if (ZEPHIR_IS_STRING(&name, "preload")) { + ZEPHIR_CONCAT_SVS(return_value, "$this->tag->preload(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "constant")) { + ZEPHIR_CONCAT_SVS(return_value, "constant(", &arguments, ")"); + RETURN_MM(); + } + ZEPHIR_CONCAT_SVSVS(return_value, "$this->callMacro('", &name, "', [", &arguments, "])"); + RETURN_MM(); + } + ZEPHIR_CALL_METHOD(&_14, this_ptr, "expression", NULL, 507, &nameExpr); + zephir_check_call_status(); + ZEPHIR_CONCAT_VSVS(return_value, &_14, "(", &arguments, ")"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, calculateUriPath) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getCompiledTemplatePath) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "compiledTemplatePath"); +} + +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getDI) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "container"); +} + +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getExtensions) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "extensions"); +} + +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getFilters) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "filters"); +} + +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getFunctions) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "functions"); +} + +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getOption) { - zend_bool _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *server, server_sub, iisRewrite, origPathInfo, requestUri, unencodedUrl, _0, _1, _2, _3, _5$$4, _6$$4; + zval *option_param = NULL, value, _0; + zval option; zval *this_ptr = getThis(); - ZVAL_UNDEF(&server_sub); - ZVAL_UNDEF(&iisRewrite); - ZVAL_UNDEF(&origPathInfo); - ZVAL_UNDEF(&requestUri); - ZVAL_UNDEF(&unencodedUrl); + ZVAL_UNDEF(&option); + ZVAL_UNDEF(&value); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(server, phalcon_collection_collectioninterface_ce) + Z_PARAM_STR(option) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &server); + zephir_fetch_params(1, 1, 0, &option_param); + if (UNEXPECTED(Z_TYPE_P(option_param) != IS_STRING && Z_TYPE_P(option_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'option' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(option_param) == IS_STRING)) { + zephir_get_strval(&option, option_param); + } else { + ZEPHIR_INIT_VAR(&option); + } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "IIS_WasUrlRewritten"); - ZVAL_NULL(&_1); - ZEPHIR_CALL_METHOD(&iisRewrite, server, "get", NULL, 0, &_0, &_1); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "UNENCODED_URL"); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, ""); - ZEPHIR_CALL_METHOD(&unencodedUrl, server, "get", NULL, 0, &_0, &_2); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "1"); - _4 = ZEPHIR_IS_IDENTICAL(&_3, &iisRewrite); - if (_4) { - _4 = !(ZEPHIR_IS_EMPTY(&unencodedUrl)); + zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&value, &_0, &option, 1))) { + RETURN_MM_NULL(); } - if (UNEXPECTED(_4)) { - RETURN_CCTOR(&unencodedUrl); + RETURN_CTOR(&value); +} + +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getOptions) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "options"); +} + +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getTemplatePath) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "currentPath"); +} + +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getUniquePrefix) +{ + zval _7$$5; + zval _0, _3, _8, _1$$3, _2$$3, _4$$4, _5$$5, _6$$5; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_7$$5); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_0))) { + ZEPHIR_INIT_VAR(&_1$$3); + zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("currentPath"), PH_NOISY_CC | PH_READONLY); + zephir_unique_path_key(&_1$$3, &_2$$3); + zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &_1$$3); } - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "REQUEST_URI"); - ZVAL_NULL(&_1); - ZEPHIR_CALL_METHOD(&requestUri, server, "get", NULL, 0, &_0, &_1); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&requestUri) != IS_NULL)) { - ZEPHIR_INIT_VAR(&_5$$4); - ZVAL_STRING(&_5$$4, "#^[^/:]+://[^/]+#"); - ZEPHIR_INIT_VAR(&_6$$4); - ZVAL_STRING(&_6$$4, ""); - ZEPHIR_RETURN_CALL_FUNCTION("preg_replace", NULL, 50, &_5$$4, &_6$$4, &requestUri); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_OBS_VAR(&_3); + zephir_read_property(&_3, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC); + if (Z_TYPE_P(&_3) == IS_OBJECT) { + ZEPHIR_OBS_VAR(&_4$$4); + zephir_read_property(&_4$$4, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC); + if (zephir_is_instance_of(&_4$$4, SL("Closure"))) { + ZEPHIR_INIT_VAR(&_5$$5); + zephir_read_property(&_6$$5, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_7$$5); + zephir_create_array(&_7$$5, 1, 0); + zephir_array_fast_append(&_7$$5, this_ptr); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_5$$5, &_6$$5, &_7$$5); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &_5$$5); + } } - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "ORIG_PATH_INFO"); - ZVAL_NULL(&_1); - ZEPHIR_CALL_METHOD(&origPathInfo, server, "get", NULL, 0, &_0, &_1); - zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_IS_EMPTY(&origPathInfo))) { - RETURN_MM_STRING("/"); + ZEPHIR_OBS_VAR(&_8); + zephir_read_property(&_8, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC); + if (UNEXPECTED(Z_TYPE_P(&_8) != IS_STRING)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "The unique compilation prefix is invalid", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2097); + return; } - RETURN_CCTOR(&origPathInfo); + RETURN_MM_MEMBER(getThis(), "prefix"); } -static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, calculateUriQuery) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, parse) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *server, server_sub, _0, _1, _2; + zval *viewCode_param = NULL, currentPath; + zval viewCode; zval *this_ptr = getThis(); - ZVAL_UNDEF(&server_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&viewCode); + ZVAL_UNDEF(¤tPath); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(server, phalcon_collection_collectioninterface_ce) + Z_PARAM_STR(viewCode) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &server); + zephir_fetch_params(1, 1, 0, &viewCode_param); + if (UNEXPECTED(Z_TYPE_P(viewCode_param) != IS_STRING && Z_TYPE_P(viewCode_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewCode' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(viewCode_param) == IS_STRING)) { + zephir_get_strval(&viewCode, viewCode_param); + } else { + ZEPHIR_INIT_VAR(&viewCode); + } - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "QUERY_STRING"); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, ""); - ZEPHIR_CALL_METHOD(&_0, server, "get", NULL, 0, &_1, &_2); + ZEPHIR_INIT_VAR(¤tPath); + ZVAL_STRING(¤tPath, "eval code"); + ZEPHIR_LAST_CALL_STATUS = phvolt_parse_view(return_value, &viewCode, ¤tPath); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "?"); - zephir_fast_trim(return_value, &_0, &_1, ZEPHIR_TRIM_LEFT); RETURN_MM(); } -static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, calculateUriScheme) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveTest) { - double _7$$3; - zend_bool _9; - zval scheme, _5$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *server, server_sub, *headers, headers_sub, header, isHttps, _0, _1, _8, _10, _2$$3, _3$$3, _4$$3, _6$$3; + zval left; + zval *test_param = NULL, *left_param = NULL, type, name, testName, _6, _0$$12, _1$$12, _2$$13, _3$$13, _4$$14, _5$$14; + zval test; zval *this_ptr = getThis(); - ZVAL_UNDEF(&server_sub); - ZVAL_UNDEF(&headers_sub); - ZVAL_UNDEF(&header); - ZVAL_UNDEF(&isHttps); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&scheme); - ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&test); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&testName); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_0$$12); + ZVAL_UNDEF(&_1$$12); + ZVAL_UNDEF(&_2$$13); + ZVAL_UNDEF(&_3$$13); + ZVAL_UNDEF(&_4$$14); + ZVAL_UNDEF(&_5$$14); + ZVAL_UNDEF(&left); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(server, phalcon_collection_collectioninterface_ce) - Z_PARAM_OBJECT_OF_CLASS(headers, phalcon_collection_collectioninterface_ce) + Z_PARAM_ARRAY(test) + Z_PARAM_STR(left) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &server, &headers); + zephir_fetch_params(1, 2, 0, &test_param, &left_param); + ZEPHIR_OBS_COPY_OR_DUP(&test, test_param); + zephir_get_strval(&left, left_param); - ZEPHIR_INIT_VAR(&scheme); - ZVAL_STRING(&scheme, "https"); - ZEPHIR_INIT_VAR(&isHttps); - ZVAL_BOOL(&isHttps, 1); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "HTTPS"); - ZEPHIR_CALL_METHOD(&_0, server, "has", NULL, 0, &_1); - zephir_check_call_status(); - if (UNEXPECTED(zephir_is_true(&_0))) { - ZEPHIR_INIT_VAR(&_3$$3); - ZVAL_STRING(&_3$$3, "HTTPS"); - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "on"); - ZEPHIR_CALL_METHOD(&_2$$3, server, "get", NULL, 0, &_3$$3, &_4$$3); - zephir_check_call_status(); - zephir_cast_to_string(&_5$$3, &_2$$3); - ZEPHIR_CPY_WRT(&isHttps, &_5$$3); - ZEPHIR_INIT_NVAR(&_3$$3); - zephir_fast_strtolower(&_3$$3, &isHttps); - ZEPHIR_INIT_VAR(&_6$$3); - ZVAL_STRING(&_6$$3, "off"); - _7$$3 = !ZEPHIR_IS_IDENTICAL(&_6$$3, &_3$$3); - ZEPHIR_INIT_NVAR(&isHttps); - ZVAL_BOOL(&isHttps, _7$$3); - } - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "x-forwarded-proto"); - ZEPHIR_INIT_VAR(&_8); - ZVAL_STRING(&_8, "https"); - ZEPHIR_CALL_METHOD(&header, this_ptr, "getheader", NULL, 303, headers, &_1, &_8); - zephir_check_call_status(); - _9 = !zephir_is_true(&isHttps); - if (!(_9)) { - ZEPHIR_INIT_VAR(&_10); - ZVAL_STRING(&_10, "https"); - _9 = !ZEPHIR_IS_IDENTICAL(&_10, &header); + ZEPHIR_OBS_VAR(&type); + zephir_array_fetch_string(&type, &test, SL("type"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2131); + if (ZEPHIR_IS_LONG(&type, 265)) { + ZEPHIR_OBS_VAR(&name); + zephir_array_fetch_string(&name, &test, SL("value"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2137); + if (ZEPHIR_IS_STRING(&name, "empty")) { + ZEPHIR_CONCAT_SVS(return_value, "empty(", &left, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "even")) { + ZEPHIR_CONCAT_SVS(return_value, "(((", &left, ") % 2) == 0)"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "odd")) { + ZEPHIR_CONCAT_SVS(return_value, "(((", &left, ") % 2) != 0)"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "numeric")) { + ZEPHIR_CONCAT_SVS(return_value, "is_numeric(", &left, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "scalar")) { + ZEPHIR_CONCAT_SVS(return_value, "is_scalar(", &left, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "iterable")) { + ZEPHIR_CONCAT_SVSVS(return_value, "(is_array(", &left, ") || (", &left, ") instanceof Traversable)"); + RETURN_MM(); + } } - if (UNEXPECTED(_9)) { - ZEPHIR_INIT_NVAR(&scheme); - ZVAL_STRING(&scheme, "http"); + if (ZEPHIR_IS_LONG(&type, 350)) { + ZEPHIR_OBS_VAR(&testName); + zephir_array_fetch_string(&testName, &test, SL("name"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2187); + ZEPHIR_OBS_NVAR(&name); + if (zephir_array_isset_string_fetch(&name, &testName, SL("value"), 0)) { + if (ZEPHIR_IS_STRING(&name, "divisibleby")) { + zephir_array_fetch_string(&_1$$12, &test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2191); + ZEPHIR_CALL_METHOD(&_0$$12, this_ptr, "expression", NULL, 507, &_1$$12); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "(((", &left, ") % (", &_0$$12, ")) == 0)"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "sameas")) { + zephir_array_fetch_string(&_3$$13, &test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2198); + ZEPHIR_CALL_METHOD(&_2$$13, this_ptr, "expression", NULL, 507, &_3$$13); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "(", &left, ") === (", &_2$$13, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "type")) { + zephir_array_fetch_string(&_5$$14, &test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2205); + ZEPHIR_CALL_METHOD(&_4$$14, this_ptr, "expression", NULL, 507, &_5$$14); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "gettype(", &left, ") === (", &_4$$14, ")"); + RETURN_MM(); + } + } } - RETURN_CTOR(&scheme); + ZEPHIR_CALL_METHOD(&_6, this_ptr, "expression", NULL, 507, &test); + zephir_check_call_status(); + ZEPHIR_CONCAT_VSV(return_value, &left, " == ", &_6); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, checkNullArray) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, setDI) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval super; - zval *source, source_sub, *super_param = NULL; + zval *container, container_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&source_sub); - ZVAL_UNDEF(&super); + ZVAL_UNDEF(&container_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(source) - Z_PARAM_ARRAY(super) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &source, &super_param); - zephir_get_arrval(&super, super_param); + zephir_fetch_params_without_memory_grow(1, 0, &container); - if (UNEXPECTED(ZEPHIR_IS_EMPTY(source))) { - RETURN_CTOR(&super); - } - RETVAL_ZVAL(source, 1, 0); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); } -static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, createUploadedFile) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, setOption) { - zval _3$$3; - zend_bool _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *file_param = NULL, name, type, _4, _5, _6, _2$$3; - zval file; + zval *option_param = NULL, *value, value_sub; + zval option; zval *this_ptr = getThis(); - ZVAL_UNDEF(&file); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&option); + ZVAL_UNDEF(&value_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(file) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(option) + Z_PARAM_ZVAL(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &file_param); - zephir_get_arrval(&file, file_param); - - - _0 = !(zephir_array_isset_string(&file, SL("tmp_name"))); - if (!(_0)) { - _0 = !(zephir_array_isset_string(&file, SL("size"))); - } - _1 = _0; - if (!(_1)) { - _1 = !(zephir_array_isset_string(&file, SL("error"))); - } - if (UNEXPECTED(_1)) { - ZEPHIR_INIT_VAR(&_2$$3); - object_init_ex(&_2$$3, phalcon_http_message_exception_invalidargumentexception_ce); - ZEPHIR_INIT_VAR(&_3$$3); - ZEPHIR_CONCAT_SS(&_3$$3, "The file array must contain tmp_name, size and error; ", "one or more are missing"); - ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", NULL, 40, &_3$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_2$$3, "phalcon/Http/Message/ServerRequestFactory.zep", 319); - ZEPHIR_MM_RESTORE(); - return; - } - if (zephir_array_isset_string(&file, SL("name"))) { - ZEPHIR_OBS_VAR(&name); - zephir_array_fetch_string(&name, &file, SL("name"), PH_NOISY, "phalcon/Http/Message/ServerRequestFactory.zep", 322); - } else { - ZEPHIR_INIT_NVAR(&name); - ZVAL_NULL(&name); + zephir_fetch_params(1, 2, 0, &option_param, &value); + if (UNEXPECTED(Z_TYPE_P(option_param) != IS_STRING && Z_TYPE_P(option_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'option' must be of the type string")); + RETURN_MM_NULL(); } - if (zephir_array_isset_string(&file, SL("type"))) { - ZEPHIR_OBS_VAR(&type); - zephir_array_fetch_string(&type, &file, SL("type"), PH_NOISY, "phalcon/Http/Message/ServerRequestFactory.zep", 323); + if (EXPECTED(Z_TYPE_P(option_param) == IS_STRING)) { + zephir_get_strval(&option, option_param); } else { - ZEPHIR_INIT_NVAR(&type); - ZVAL_NULL(&type); + ZEPHIR_INIT_VAR(&option); } - object_init_ex(return_value, phalcon_http_message_uploadedfile_ce); - zephir_array_fetch_string(&_4, &file, SL("tmp_name"), PH_NOISY | PH_READONLY, "phalcon/Http/Message/ServerRequestFactory.zep", 326); - zephir_array_fetch_string(&_5, &file, SL("size"), PH_NOISY | PH_READONLY, "phalcon/Http/Message/ServerRequestFactory.zep", 327); - zephir_array_fetch_string(&_6, &file, SL("error"), PH_NOISY | PH_READONLY, "phalcon/Http/Message/ServerRequestFactory.zep", 328); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 305, &_4, &_5, &_6, &name, &type); - zephir_check_call_status(); - RETURN_MM(); + + + zephir_update_property_array(this_ptr, SL("options"), &option, value); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, getHeader) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, setOptions) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval name; - zval *headers, headers_sub, *name_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, value, _0$$3; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&headers_sub); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&name); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_OBJECT_OF_CLASS(headers, phalcon_collection_collectioninterface_ce) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(defaultValue) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &headers, &name_param, &defaultValue); - zephir_get_strval(&name, name_param); - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; - } + zephir_fetch_params(1, 1, 0, &options_param); + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); - ZEPHIR_CALL_METHOD(&value, headers, "get", NULL, 0, &name, defaultValue); - zephir_check_call_status(); - if (Z_TYPE_P(&value) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&_0$$3); - zephir_fast_join_str(&_0$$3, SL(","), &value); - ZEPHIR_CPY_WRT(&value, &_0$$3); - } - RETURN_CCTOR(&value); + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, parseCookieHeader) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, setUniquePrefix) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *cookieHeader_param = NULL, cookies, _1; - zval cookieHeader; + zval *prefix_param = NULL; + zval prefix; zval *this_ptr = getThis(); - ZVAL_UNDEF(&cookieHeader); - ZVAL_UNDEF(&cookies); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&prefix); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(cookieHeader) + Z_PARAM_STR(prefix) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &cookieHeader_param); - zephir_get_strval(&cookieHeader, cookieHeader_param); + zephir_fetch_params(1, 1, 0, &prefix_param); + if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { + zephir_get_strval(&prefix, prefix_param); + } else { + ZEPHIR_INIT_VAR(&prefix); + } - ZEPHIR_INIT_VAR(&cookies); - array_init(&cookies); - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 3, 0); - add_assoc_stringl_ex(&_0, SL("&"), SL("%26")); - add_assoc_stringl_ex(&_0, SL("+"), SL("%2B")); - add_assoc_stringl_ex(&_0, SL(";"), SL("&")); - ZEPHIR_CALL_FUNCTION(&_1, "strtr", NULL, 5, &cookieHeader, &_0); - zephir_check_call_status(); - ZEPHIR_MAKE_REF(&cookies); - ZEPHIR_CALL_FUNCTION(NULL, "parse_str", NULL, 306, &_1, &cookies); - ZEPHIR_UNREF(&cookies); - zephir_check_call_status(); - RETURN_CCTOR(&cookies); + zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &prefix); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, parseHeaders) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileSource) { - zend_string *_3; - zend_ulong _2; + zend_string *_6$$7; + zend_ulong _5$$7; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_10 = NULL, *_18 = NULL, *_30 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *server, server_sub, headers, key, name, serverArray, value, *_0, _1, _4$$3, _5$$4, _6$$4, _11$$4, _12$$4, _19$$4, _20$$4, _7$$5, _8$$5, _9$$5, _13$$7, _14$$7, _15$$7, _16$$7, _17$$7, _21$$8, _22$$8, _23$$8, _24$$9, _25$$10, _26$$10, _31$$10, _32$$10, _38$$10, _39$$10, _27$$11, _28$$11, _29$$11, _33$$13, _34$$13, _35$$13, _36$$13, _37$$13, _40$$14, _41$$14, _42$$14; + zend_bool extendsMode; + zval *viewCode_param = NULL, *extendsMode_param = NULL, currentPath, intermediate, extended, finalCompilation, blocks, extendedBlocks, name, block, blockCompilation, localBlock, compilation, options, autoescape, _0, _1, _2$$7, *_3$$7, _4$$7; + zval viewCode; zval *this_ptr = getThis(); - ZVAL_UNDEF(&server_sub); - ZVAL_UNDEF(&headers); - ZVAL_UNDEF(&key); + ZVAL_UNDEF(&viewCode); + ZVAL_UNDEF(¤tPath); + ZVAL_UNDEF(&intermediate); + ZVAL_UNDEF(&extended); + ZVAL_UNDEF(&finalCompilation); + ZVAL_UNDEF(&blocks); + ZVAL_UNDEF(&extendedBlocks); ZVAL_UNDEF(&name); - ZVAL_UNDEF(&serverArray); - ZVAL_UNDEF(&value); + ZVAL_UNDEF(&block); + ZVAL_UNDEF(&blockCompilation); + ZVAL_UNDEF(&localBlock); + ZVAL_UNDEF(&compilation); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&autoescape); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_11$$4); - ZVAL_UNDEF(&_12$$4); - ZVAL_UNDEF(&_19$$4); - ZVAL_UNDEF(&_20$$4); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_13$$7); - ZVAL_UNDEF(&_14$$7); - ZVAL_UNDEF(&_15$$7); - ZVAL_UNDEF(&_16$$7); - ZVAL_UNDEF(&_17$$7); - ZVAL_UNDEF(&_21$$8); - ZVAL_UNDEF(&_22$$8); - ZVAL_UNDEF(&_23$$8); - ZVAL_UNDEF(&_24$$9); - ZVAL_UNDEF(&_25$$10); - ZVAL_UNDEF(&_26$$10); - ZVAL_UNDEF(&_31$$10); - ZVAL_UNDEF(&_32$$10); - ZVAL_UNDEF(&_38$$10); - ZVAL_UNDEF(&_39$$10); - ZVAL_UNDEF(&_27$$11); - ZVAL_UNDEF(&_28$$11); - ZVAL_UNDEF(&_29$$11); - ZVAL_UNDEF(&_33$$13); - ZVAL_UNDEF(&_34$$13); - ZVAL_UNDEF(&_35$$13); - ZVAL_UNDEF(&_36$$13); - ZVAL_UNDEF(&_37$$13); - ZVAL_UNDEF(&_40$$14); - ZVAL_UNDEF(&_41$$14); - ZVAL_UNDEF(&_42$$14); + ZVAL_UNDEF(&_2$$7); + ZVAL_UNDEF(&_4$$7); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(server, phalcon_collection_collectioninterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(viewCode) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(extendsMode) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &server); + zephir_fetch_params(1, 1, 1, &viewCode_param, &extendsMode_param); + if (UNEXPECTED(Z_TYPE_P(viewCode_param) != IS_STRING && Z_TYPE_P(viewCode_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewCode' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(viewCode_param) == IS_STRING)) { + zephir_get_strval(&viewCode, viewCode_param); + } else { + ZEPHIR_INIT_VAR(&viewCode); + } + if (!extendsMode_param) { + extendsMode = 0; + } else { + extendsMode = zephir_get_boolval(extendsMode_param); + } - ZEPHIR_INIT_VAR(&headers); - object_init_ex(&headers, phalcon_collection_ce); - ZEPHIR_CALL_METHOD(NULL, &headers, "__construct", NULL, 22); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&serverArray, server, "toarray", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&serverArray, 0, "phalcon/Http/Message/ServerRequestFactory.zep", 438); - if (Z_TYPE_P(&serverArray) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&serverArray), _2, _3, _0) - { - ZEPHIR_INIT_NVAR(&key); - if (_3 != NULL) { - ZVAL_STR_COPY(&key, _3); - } else { - ZVAL_LONG(&key, _2); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0); - ZEPHIR_INIT_NVAR(&_4$$3); - ZVAL_STRING(&_4$$3, ""); - if (EXPECTED(!ZEPHIR_IS_IDENTICAL(&_4$$3, &value))) { - ZEPHIR_INIT_NVAR(&_5$$4); - ZVAL_STRING(&_5$$4, "REDIRECT_"); - ZEPHIR_INIT_NVAR(&_6$$4); - zephir_fast_strpos(&_6$$4, &key, &_5$$4, 0 ); - if (UNEXPECTED(ZEPHIR_IS_LONG_IDENTICAL(&_6$$4, 0))) { - ZVAL_LONG(&_7$$5, 9); - ZEPHIR_INIT_NVAR(&_8$$5); - zephir_substr(&_8$$5, &key, 9 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - ZEPHIR_CPY_WRT(&key, &_8$$5); - ZEPHIR_CALL_METHOD(&_9$$5, server, "has", &_10, 0, &key); - zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_IS_TRUE_IDENTICAL(&_9$$5))) { - continue; - } - } - ZEPHIR_INIT_NVAR(&_11$$4); - ZVAL_STRING(&_11$$4, "HTTP_"); - ZEPHIR_INIT_NVAR(&_12$$4); - zephir_fast_strpos(&_12$$4, &key, &_11$$4, 0 ); - if (EXPECTED(ZEPHIR_IS_LONG_IDENTICAL(&_12$$4, 0))) { - ZEPHIR_INIT_NVAR(&_13$$7); - ZVAL_LONG(&_14$$7, 5); - ZEPHIR_INIT_NVAR(&_15$$7); - zephir_substr(&_15$$7, &key, 5 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - zephir_fast_strtolower(&_13$$7, &_15$$7); - ZEPHIR_INIT_NVAR(&_16$$7); - ZVAL_STRING(&_16$$7, "_"); - ZEPHIR_INIT_NVAR(&_17$$7); - ZVAL_STRING(&_17$$7, "-"); - ZEPHIR_INIT_NVAR(&name); - zephir_fast_str_replace(&name, &_16$$7, &_17$$7, &_13$$7); - ZEPHIR_CALL_METHOD(NULL, &headers, "set", &_18, 42, &name, &value); - zephir_check_call_status(); - continue; - } - ZEPHIR_INIT_NVAR(&_19$$4); - ZVAL_STRING(&_19$$4, "CONTENT_"); - ZEPHIR_INIT_NVAR(&_20$$4); - zephir_fast_strpos(&_20$$4, &key, &_19$$4, 0 ); - if (UNEXPECTED(ZEPHIR_IS_LONG_IDENTICAL(&_20$$4, 0))) { - ZEPHIR_INIT_NVAR(&_21$$8); - ZVAL_LONG(&_22$$8, 8); - ZEPHIR_INIT_NVAR(&_23$$8); - zephir_substr(&_23$$8, &key, 8 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - zephir_fast_strtolower(&_21$$8, &_23$$8); - ZEPHIR_INIT_NVAR(&name); - ZEPHIR_CONCAT_SV(&name, "content-", &_21$$8); - ZEPHIR_CALL_METHOD(NULL, &headers, "set", &_18, 42, &name, &value); - zephir_check_call_status(); - continue; - } + zephir_read_property(&_0, this_ptr, ZEND_STRL("currentPath"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(¤tPath, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&options, &_0); + if (Z_TYPE_P(&options) == IS_ARRAY) { + ZEPHIR_OBS_VAR(&autoescape); + if (zephir_array_isset_string_fetch(&autoescape, &options, SL("autoescape"), 0)) { + if (UNEXPECTED(((Z_TYPE_P(&autoescape) == IS_TRUE || Z_TYPE_P(&autoescape) == IS_FALSE) != 1))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "'autoescape' must be bool", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2274); + return; } - } ZEND_HASH_FOREACH_END(); + zephir_update_property_zval(this_ptr, ZEND_STRL("autoescape"), &autoescape); + } + } + ZEPHIR_INIT_VAR(&intermediate); + ZEPHIR_LAST_CALL_STATUS = phvolt_parse_view(&intermediate, &viewCode, ¤tPath); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&intermediate) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Invalid intermediate representation", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2287); + return; + } + if (extendsMode) { + ZVAL_BOOL(&_0, 1); } else { - ZEPHIR_CALL_METHOD(NULL, &serverArray, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &serverArray, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&key, &serverArray, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &serverArray, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_24$$9); - ZVAL_STRING(&_24$$9, ""); - if (EXPECTED(!ZEPHIR_IS_IDENTICAL(&_24$$9, &value))) { - ZEPHIR_INIT_NVAR(&_25$$10); - ZVAL_STRING(&_25$$10, "REDIRECT_"); - ZEPHIR_INIT_NVAR(&_26$$10); - zephir_fast_strpos(&_26$$10, &key, &_25$$10, 0 ); - if (UNEXPECTED(ZEPHIR_IS_LONG_IDENTICAL(&_26$$10, 0))) { - ZVAL_LONG(&_27$$11, 9); - ZEPHIR_INIT_NVAR(&_28$$11); - zephir_substr(&_28$$11, &key, 9 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - ZEPHIR_CPY_WRT(&key, &_28$$11); - ZEPHIR_CALL_METHOD(&_29$$11, server, "has", &_30, 0, &key); + ZVAL_BOOL(&_0, 0); + } + ZEPHIR_CALL_METHOD(&compilation, this_ptr, "statementlist", NULL, 509, &intermediate, &_0); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("extended"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&extended, &_1); + if (ZEPHIR_IS_TRUE_IDENTICAL(&extended)) { + ZEPHIR_INIT_VAR(&finalCompilation); + if (extendsMode == 1) { + array_init(&finalCompilation); + } else { + ZVAL_NULL(&finalCompilation); + } + zephir_read_property(&_2$$7, this_ptr, ZEND_STRL("blocks"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&blocks, &_2$$7); + zephir_read_property(&_2$$7, this_ptr, ZEND_STRL("extendedBlocks"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&extendedBlocks, &_2$$7); + zephir_is_iterable(&extendedBlocks, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2359); + if (Z_TYPE_P(&extendedBlocks) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&extendedBlocks), _5$$7, _6$$7, _3$$7) + { + ZEPHIR_INIT_NVAR(&name); + if (_6$$7 != NULL) { + ZVAL_STR_COPY(&name, _6$$7); + } else { + ZVAL_LONG(&name, _5$$7); + } + ZEPHIR_INIT_NVAR(&block); + ZVAL_COPY(&block, _3$$7); + if (Z_TYPE_P(&name) == IS_STRING) { + if (zephir_array_isset(&blocks, &name)) { + ZEPHIR_OBS_NVAR(&localBlock); + zephir_array_fetch(&localBlock, &blocks, &name, PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2319); + zephir_update_property_zval(this_ptr, ZEND_STRL("currentBlock"), &name); + if (Z_TYPE_P(&localBlock) == IS_NULL) { + ZEPHIR_INIT_NVAR(&localBlock); + array_init(&localBlock); + } + ZEPHIR_CALL_METHOD(&blockCompilation, this_ptr, "statementlist", NULL, 509, &localBlock); zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_IS_TRUE_IDENTICAL(&_29$$11))) { - continue; + } else { + if (Z_TYPE_P(&block) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&blockCompilation, this_ptr, "statementlist", NULL, 509, &block); + zephir_check_call_status(); + } else { + ZEPHIR_CPY_WRT(&blockCompilation, &block); } } - ZEPHIR_INIT_NVAR(&_31$$10); - ZVAL_STRING(&_31$$10, "HTTP_"); - ZEPHIR_INIT_NVAR(&_32$$10); - zephir_fast_strpos(&_32$$10, &key, &_31$$10, 0 ); - if (EXPECTED(ZEPHIR_IS_LONG_IDENTICAL(&_32$$10, 0))) { - ZEPHIR_INIT_NVAR(&_33$$13); - ZVAL_LONG(&_34$$13, 5); - ZEPHIR_INIT_NVAR(&_35$$13); - zephir_substr(&_35$$13, &key, 5 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - zephir_fast_strtolower(&_33$$13, &_35$$13); - ZEPHIR_INIT_NVAR(&_36$$13); - ZVAL_STRING(&_36$$13, "_"); - ZEPHIR_INIT_NVAR(&_37$$13); - ZVAL_STRING(&_37$$13, "-"); - ZEPHIR_INIT_NVAR(&name); - zephir_fast_str_replace(&name, &_36$$13, &_37$$13, &_33$$13); - ZEPHIR_CALL_METHOD(NULL, &headers, "set", &_18, 42, &name, &value); - zephir_check_call_status(); - continue; + if (extendsMode) { + zephir_array_update_zval(&finalCompilation, &name, &blockCompilation, PH_COPY | PH_SEPARATE); + } else { + zephir_concat_self(&finalCompilation, &blockCompilation); } - ZEPHIR_INIT_NVAR(&_38$$10); - ZVAL_STRING(&_38$$10, "CONTENT_"); - ZEPHIR_INIT_NVAR(&_39$$10); - zephir_fast_strpos(&_39$$10, &key, &_38$$10, 0 ); - if (UNEXPECTED(ZEPHIR_IS_LONG_IDENTICAL(&_39$$10, 0))) { - ZEPHIR_INIT_NVAR(&_40$$14); - ZVAL_LONG(&_41$$14, 8); - ZEPHIR_INIT_NVAR(&_42$$14); - zephir_substr(&_42$$14, &key, 8 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - zephir_fast_strtolower(&_40$$14, &_42$$14); - ZEPHIR_INIT_NVAR(&name); - ZEPHIR_CONCAT_SV(&name, "content-", &_40$$14); - ZEPHIR_CALL_METHOD(NULL, &headers, "set", &_18, 42, &name, &value); - zephir_check_call_status(); - continue; + } else { + if (extendsMode) { + zephir_array_append(&finalCompilation, &block, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2352); + } else { + zephir_concat_self(&finalCompilation, &block); } } - ZEPHIR_CALL_METHOD(NULL, &serverArray, "next", NULL, 0); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &extendedBlocks, "rewind", NULL, 0); zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_4$$7, &extendedBlocks, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_4$$7)) { + break; + } + ZEPHIR_CALL_METHOD(&name, &extendedBlocks, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&block, &extendedBlocks, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&name) == IS_STRING) { + if (zephir_array_isset(&blocks, &name)) { + ZEPHIR_OBS_NVAR(&localBlock); + zephir_array_fetch(&localBlock, &blocks, &name, PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2319); + zephir_update_property_zval(this_ptr, ZEND_STRL("currentBlock"), &name); + if (Z_TYPE_P(&localBlock) == IS_NULL) { + ZEPHIR_INIT_NVAR(&localBlock); + array_init(&localBlock); + } + ZEPHIR_CALL_METHOD(&blockCompilation, this_ptr, "statementlist", NULL, 509, &localBlock); + zephir_check_call_status(); + } else { + if (Z_TYPE_P(&block) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&blockCompilation, this_ptr, "statementlist", NULL, 509, &block); + zephir_check_call_status(); + } else { + ZEPHIR_CPY_WRT(&blockCompilation, &block); + } + } + if (extendsMode) { + zephir_array_update_zval(&finalCompilation, &name, &blockCompilation, PH_COPY | PH_SEPARATE); + } else { + zephir_concat_self(&finalCompilation, &blockCompilation); + } + } else { + if (extendsMode) { + zephir_array_append(&finalCompilation, &block, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2352); + } else { + zephir_concat_self(&finalCompilation, &block); + } + } + ZEPHIR_CALL_METHOD(NULL, &extendedBlocks, "next", NULL, 0); + zephir_check_call_status(); + } } + ZEPHIR_INIT_NVAR(&block); + ZEPHIR_INIT_NVAR(&name); + RETURN_CCTOR(&finalCompilation); } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - RETURN_CCTOR(&headers); + if (extendsMode) { + RETURN_MM_MEMBER(getThis(), "blocks"); + } + RETURN_CCTOR(&compilation); } -static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, parseProtocol) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getFinalPath) { - zval _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *server, server_sub, localProtocol, protocol, protocols, _0, _1, _2, _3, _5, _6, _9, _10, _7$$4, _8$$4, _11$$5, _12$$5; + zval *path_param = NULL, view, viewsDirs, viewsDir, _0, *_1$$4, _2$$4, _3$$5, _4$$7; + zval path; zval *this_ptr = getThis(); - ZVAL_UNDEF(&server_sub); - ZVAL_UNDEF(&localProtocol); - ZVAL_UNDEF(&protocol); - ZVAL_UNDEF(&protocols); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&view); + ZVAL_UNDEF(&viewsDirs); + ZVAL_UNDEF(&viewsDir); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_8$$4); - ZVAL_UNDEF(&_11$$5); - ZVAL_UNDEF(&_12$$5); - ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_4$$7); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(server, phalcon_collection_collectioninterface_ce) + Z_PARAM_STR(path) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &server); + zephir_fetch_params(1, 1, 0, &path_param); + zephir_get_strval(&path, path_param); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "SERVER_PROTOCOL"); - ZEPHIR_CALL_METHOD(&_0, server, "has", NULL, 0, &_1); - zephir_check_call_status(); - if (!ZEPHIR_IS_TRUE_IDENTICAL(&_0)) { - RETURN_MM_STRING("1.1"); - } - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "SERVER_PROTOCOL"); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "HTTP/1.1"); - ZEPHIR_CALL_METHOD(&_2, server, "get", NULL, 0, &_1, &_3); - zephir_check_call_status(); - zephir_cast_to_string(&_4, &_2); - ZEPHIR_CPY_WRT(&protocol, &_4); - ZEPHIR_INIT_VAR(&localProtocol); - zephir_fast_strtolower(&localProtocol, &protocol); - ZEPHIR_INIT_VAR(&protocols); - zephir_create_array(&protocols, 4, 0); - add_assoc_long_ex(&protocols, SL("1.0"), 1); - add_assoc_long_ex(&protocols, SL("1.1"), 1); - add_assoc_long_ex(&protocols, SL("2.0"), 1); - add_assoc_long_ex(&protocols, SL("3.0"), 1); - ZVAL_LONG(&_5, 0); - ZVAL_LONG(&_6, 5); - ZEPHIR_INIT_NVAR(&_1); - zephir_substr(&_1, &localProtocol, 0 , 5 , 0); - if (!ZEPHIR_IS_STRING_IDENTICAL(&_1, "http/")) { - ZEPHIR_INIT_VAR(&_7$$4); - object_init_ex(&_7$$4, phalcon_http_message_exception_invalidargumentexception_ce); - ZEPHIR_INIT_VAR(&_8$$4); - ZEPHIR_CONCAT_SV(&_8$$4, "Incorrect protocol value ", &protocol); - ZEPHIR_CALL_METHOD(NULL, &_7$$4, "__construct", NULL, 40, &_8$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_7$$4, "phalcon/Http/Message/ServerRequestFactory.zep", 468); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_NVAR(&_3); - ZEPHIR_INIT_VAR(&_9); - ZVAL_STRING(&_9, "http/"); - ZEPHIR_INIT_VAR(&_10); - ZVAL_STRING(&_10, ""); - zephir_fast_str_replace(&_3, &_9, &_10, &localProtocol); - ZEPHIR_CPY_WRT(&localProtocol, &_3); - if (UNEXPECTED(!(zephir_array_isset(&protocols, &localProtocol)))) { - ZEPHIR_INIT_VAR(&_11$$5); - object_init_ex(&_11$$5, phalcon_http_message_exception_invalidargumentexception_ce); - ZEPHIR_INIT_VAR(&_12$$5); - ZEPHIR_CONCAT_SV(&_12$$5, "Unsupported protocol ", &protocol); - ZEPHIR_CALL_METHOD(NULL, &_11$$5, "__construct", NULL, 40, &_12$$5); + zephir_read_property(&_0, this_ptr, ZEND_STRL("view"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&view, &_0); + if (Z_TYPE_P(&view) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(&viewsDirs, &view, "getviewsdir", NULL, 0); zephir_check_call_status(); - zephir_throw_exception_debug(&_11$$5, "phalcon/Http/Message/ServerRequestFactory.zep", 476); - ZEPHIR_MM_RESTORE(); - return; + if (Z_TYPE_P(&viewsDirs) == IS_ARRAY) { + zephir_is_iterable(&viewsDirs, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2393); + if (Z_TYPE_P(&viewsDirs) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&viewsDirs), _1$$4) + { + ZEPHIR_INIT_NVAR(&viewsDir); + ZVAL_COPY(&viewsDir, _1$$4); + ZEPHIR_INIT_NVAR(&_3$$5); + ZEPHIR_CONCAT_VV(&_3$$5, &viewsDir, &path); + if ((zephir_file_exists(&_3$$5) == SUCCESS)) { + ZEPHIR_CONCAT_VV(return_value, &viewsDir, &path); + RETURN_MM(); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &viewsDirs, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2$$4, &viewsDirs, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2$$4)) { + break; + } + ZEPHIR_CALL_METHOD(&viewsDir, &viewsDirs, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_4$$7); + ZEPHIR_CONCAT_VV(&_4$$7, &viewsDir, &path); + if ((zephir_file_exists(&_4$$7) == SUCCESS)) { + ZEPHIR_CONCAT_VV(return_value, &viewsDir, &path); + RETURN_MM(); + } + ZEPHIR_CALL_METHOD(NULL, &viewsDirs, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&viewsDir); + ZEPHIR_CONCAT_VV(return_value, &viewsDir, &path); + RETURN_MM(); + } else { + ZEPHIR_CONCAT_VV(return_value, &viewsDirs, &path); + RETURN_MM(); + } } - RETURN_CCTOR(&localProtocol); + RETURN_CTOR(&path); } -static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, parseServer) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) { - zend_bool _2; + zend_bool _14, _21, _22; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *server_param = NULL, collection, headers, headersCollection, _0, _1, _3$$3, _4$$3, _5$$4, _6$$4; - zval server; + zval left; + zval *filter_param = NULL, *left_param = NULL, code, type, functionName, name, file, line, extensions, filters, funcArguments, arguments, definition, _6, _23, _24, _25, _26, _0$$5, _1$$5, _2$$5, _3$$5, _8$$9, _10$$11, _11$$11, _12$$11, _13$$11, _15$$29, _16$$29, _17$$29, _18$$29, _19$$29, _20$$29; + zval filter, _4$$7, _5$$7, _7$$9, _9$$14; zval *this_ptr = getThis(); - ZVAL_UNDEF(&server); - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&headers); - ZVAL_UNDEF(&headersCollection); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&filter); + ZVAL_UNDEF(&_4$$7); + ZVAL_UNDEF(&_5$$7); + ZVAL_UNDEF(&_7$$9); + ZVAL_UNDEF(&_9$$14); + ZVAL_UNDEF(&code); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&functionName); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&file); + ZVAL_UNDEF(&line); + ZVAL_UNDEF(&extensions); + ZVAL_UNDEF(&filters); + ZVAL_UNDEF(&funcArguments); + ZVAL_UNDEF(&arguments); + ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_23); + ZVAL_UNDEF(&_24); + ZVAL_UNDEF(&_25); + ZVAL_UNDEF(&_26); + ZVAL_UNDEF(&_0$$5); + ZVAL_UNDEF(&_1$$5); + ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_8$$9); + ZVAL_UNDEF(&_10$$11); + ZVAL_UNDEF(&_11$$11); + ZVAL_UNDEF(&_12$$11); + ZVAL_UNDEF(&_13$$11); + ZVAL_UNDEF(&_15$$29); + ZVAL_UNDEF(&_16$$29); + ZVAL_UNDEF(&_17$$29); + ZVAL_UNDEF(&_18$$29); + ZVAL_UNDEF(&_19$$29); + ZVAL_UNDEF(&_20$$29); + ZVAL_UNDEF(&left); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(server) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ARRAY(filter) + Z_PARAM_STR(left) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &server_param); - zephir_get_arrval(&server, server_param); + zephir_fetch_params(1, 2, 0, &filter_param, &left_param); + ZEPHIR_OBS_COPY_OR_DUP(&filter, filter_param); + zephir_get_strval(&left, left_param); - ZEPHIR_INIT_VAR(&collection); - object_init_ex(&collection, phalcon_collection_ce); - ZEPHIR_CALL_METHOD(NULL, &collection, "__construct", NULL, 22, &server); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&headers, this_ptr, "getheaders", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "HTTP_AUTHORIZATION"); - ZEPHIR_CALL_METHOD(&_0, &collection, "has", NULL, 307, &_1); - zephir_check_call_status(); - _2 = !zephir_is_true(&_0); - if (_2) { - _2 = !ZEPHIR_IS_FALSE_IDENTICAL(&headers); + ZEPHIR_INIT_VAR(&code); + ZVAL_NULL(&code); + ZEPHIR_OBS_VAR(&type); + zephir_array_fetch_string(&type, &filter, SL("type"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2411); + if (ZEPHIR_IS_LONG(&type, 265)) { + ZEPHIR_OBS_VAR(&name); + zephir_array_fetch_string(&name, &filter, SL("value"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2417); + } else { + if (UNEXPECTED(!ZEPHIR_IS_LONG(&type, 350))) { + ZEPHIR_INIT_VAR(&_0$$5); + object_init_ex(&_0$$5, phalcon_mvc_view_engine_volt_exception_ce); + zephir_array_fetch_string(&_1$$5, &filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2424); + zephir_array_fetch_string(&_2$$5, &filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2425); + ZEPHIR_INIT_VAR(&_3$$5); + ZEPHIR_CONCAT_SVSV(&_3$$5, "Unknown filter type in ", &_1$$5, " on line ", &_2$$5); + ZEPHIR_CALL_METHOD(NULL, &_0$$5, "__construct", NULL, 508, &_3$$5); + zephir_check_call_status(); + zephir_throw_exception_debug(&_0$$5, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2425); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_OBS_VAR(&functionName); + zephir_array_fetch_string(&functionName, &filter, SL("name"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2428); + ZEPHIR_OBS_NVAR(&name); + zephir_array_fetch_string(&name, &functionName, SL("value"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2429); } - if (UNEXPECTED(_2)) { - ZEPHIR_INIT_VAR(&headersCollection); - object_init_ex(&headersCollection, phalcon_collection_ce); - ZEPHIR_CALL_METHOD(NULL, &headersCollection, "__construct", NULL, 22, &headers); + ZEPHIR_INIT_VAR(&funcArguments); + ZVAL_NULL(&funcArguments); + ZEPHIR_INIT_VAR(&arguments); + ZVAL_NULL(&arguments); + ZEPHIR_OBS_NVAR(&funcArguments); + if (zephir_array_isset_string_fetch(&funcArguments, &filter, SL("arguments"), 0)) { + if (!ZEPHIR_IS_STRING(&name, "default")) { + ZEPHIR_OBS_VAR(&file); + zephir_array_fetch_string(&file, &filter, SL("file"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2443); + ZEPHIR_OBS_VAR(&line); + zephir_array_fetch_string(&line, &filter, SL("line"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2444); + ZEPHIR_INIT_VAR(&_4$$7); + zephir_create_array(&_4$$7, 3, 0); + ZEPHIR_INIT_VAR(&_5$$7); + zephir_create_array(&_5$$7, 4, 0); + add_assoc_long_ex(&_5$$7, SL("type"), 364); + zephir_array_update_string(&_5$$7, SL("value"), &left, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_5$$7, SL("file"), &file, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_5$$7, SL("line"), &line, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_4$$7, SL("expr"), &_5$$7, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_4$$7, SL("file"), &file, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_4$$7, SL("line"), &line, PH_COPY | PH_SEPARATE); + ZEPHIR_MAKE_REF(&funcArguments); + ZEPHIR_CALL_FUNCTION(NULL, "array_unshift", NULL, 0, &funcArguments, &_4$$7); + ZEPHIR_UNREF(&funcArguments); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(&arguments, this_ptr, "expression", NULL, 507, &funcArguments); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "Authorization"); - ZEPHIR_CALL_METHOD(&_3$$3, &headersCollection, "has", NULL, 307, &_4$$3); + } else { + ZEPHIR_CPY_WRT(&arguments, &left); + } + zephir_read_property(&_6, this_ptr, ZEND_STRL("extensions"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&extensions, &_6); + if (Z_TYPE_P(&extensions) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&_7$$9); + zephir_create_array(&_7$$9, 3, 0); + zephir_array_fast_append(&_7$$9, &name); + zephir_array_fast_append(&_7$$9, &arguments); + zephir_array_fast_append(&_7$$9, &funcArguments); + ZEPHIR_INIT_VAR(&_8$$9); + ZVAL_STRING(&_8$$9, "compileFilter"); + ZEPHIR_CALL_METHOD(&code, this_ptr, "fireextensionevent", NULL, 510, &_8$$9, &_7$$9); zephir_check_call_status(); - if (UNEXPECTED(zephir_is_true(&_3$$3))) { - ZEPHIR_INIT_VAR(&_6$$4); - ZVAL_STRING(&_6$$4, "Authorization"); - ZEPHIR_CALL_METHOD(&_5$$4, &headersCollection, "get", NULL, 308, &_6$$4); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_6$$4); - ZVAL_STRING(&_6$$4, "HTTP_AUTHORIZATION"); - ZEPHIR_CALL_METHOD(NULL, &collection, "set", NULL, 42, &_6$$4, &_5$$4); - zephir_check_call_status(); + if (Z_TYPE_P(&code) == IS_STRING) { + RETURN_CCTOR(&code); } } - RETURN_CCTOR(&collection); + zephir_read_property(&_6, this_ptr, ZEND_STRL("filters"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&filters, &_6); + ZEPHIR_OBS_VAR(&definition); + if (zephir_array_isset_fetch(&definition, &filters, &name, 0)) { + if (Z_TYPE_P(&definition) == IS_STRING) { + ZEPHIR_CONCAT_VSVS(return_value, &definition, "(", &arguments, ")"); + RETURN_MM(); + } + if (Z_TYPE_P(&definition) == IS_OBJECT) { + if (zephir_is_instance_of(&definition, SL("Closure"))) { + ZEPHIR_INIT_VAR(&_9$$14); + zephir_create_array(&_9$$14, 2, 0); + zephir_array_fast_append(&_9$$14, &arguments); + zephir_array_fast_append(&_9$$14, &funcArguments); + ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, &definition, &_9$$14); + zephir_check_call_status(); + RETURN_MM(); + } + } + ZEPHIR_INIT_VAR(&_10$$11); + object_init_ex(&_10$$11, phalcon_mvc_view_engine_volt_exception_ce); + zephir_array_fetch_string(&_11$$11, &filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2518); + zephir_array_fetch_string(&_12$$11, &filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2519); + ZEPHIR_INIT_VAR(&_13$$11); + ZEPHIR_CONCAT_SVSVSV(&_13$$11, "Invalid definition for user filter '", &name, "' in ", &_11$$11, " on line ", &_12$$11); + ZEPHIR_CALL_METHOD(NULL, &_10$$11, "__construct", NULL, 508, &_13$$11); + zephir_check_call_status(); + zephir_throw_exception_debug(&_10$$11, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2519); + ZEPHIR_MM_RESTORE(); + return; + } + if (ZEPHIR_IS_STRING(&name, "length")) { + ZEPHIR_CONCAT_SVS(return_value, "$this->length(", &arguments, ")"); + RETURN_MM(); + } + _14 = ZEPHIR_IS_STRING(&name, "e"); + if (!(_14)) { + _14 = ZEPHIR_IS_STRING(&name, "escape"); + } + if (_14) { + ZEPHIR_CONCAT_SVS(return_value, "$this->escaper->escapeHtml(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "escape_css")) { + ZEPHIR_CONCAT_SVS(return_value, "$this->escaper->escapeCss(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "escape_js")) { + ZEPHIR_CONCAT_SVS(return_value, "$this->escaper->escapeJs(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "escape_attr")) { + ZEPHIR_CONCAT_SVS(return_value, "$this->escaper->escapeHtmlAttr(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "trim")) { + ZEPHIR_CONCAT_SVS(return_value, "trim(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "left_trim")) { + ZEPHIR_CONCAT_SVS(return_value, "ltrim(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "right_trim")) { + ZEPHIR_CONCAT_SVS(return_value, "rtrim(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "striptags")) { + ZEPHIR_CONCAT_SVS(return_value, "strip_tags(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "url_encode")) { + ZEPHIR_CONCAT_SVS(return_value, "urlencode(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "slashes")) { + ZEPHIR_CONCAT_SVS(return_value, "addslashes(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "stripslashes")) { + ZEPHIR_CONCAT_SVS(return_value, "stripslashes(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "nl2br")) { + ZEPHIR_CONCAT_SVS(return_value, "nl2br(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "keys")) { + ZEPHIR_CONCAT_SVS(return_value, "array_keys(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "join")) { + zephir_array_fetch_long(&_15$$29, &funcArguments, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2625); + zephir_array_fetch_string(&_16$$29, &_15$$29, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2625); + zephir_array_fetch_string(&_17$$29, &_16$$29, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2625); + zephir_array_fetch_long(&_18$$29, &funcArguments, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2625); + zephir_array_fetch_string(&_19$$29, &_18$$29, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2625); + zephir_array_fetch_string(&_20$$29, &_19$$29, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2625); + ZEPHIR_CONCAT_SVSVS(return_value, "join('", &_17$$29, "', ", &_20$$29, ")"); + RETURN_MM(); + } + _21 = ZEPHIR_IS_STRING(&name, "lower"); + if (!(_21)) { + _21 = ZEPHIR_IS_STRING(&name, "lowercase"); + } + if (_21) { + ZEPHIR_CONCAT_SVS(return_value, "Phalcon\\Text::lower(", &arguments, ")"); + RETURN_MM(); + } + _22 = ZEPHIR_IS_STRING(&name, "upper"); + if (!(_22)) { + _22 = ZEPHIR_IS_STRING(&name, "uppercase"); + } + if (_22) { + ZEPHIR_CONCAT_SVS(return_value, "Phalcon\\Text::upper(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "capitalize")) { + ZEPHIR_CONCAT_SVS(return_value, "ucwords(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "sort")) { + ZEPHIR_CONCAT_SVS(return_value, "$this->sort(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "json_encode")) { + ZEPHIR_CONCAT_SVS(return_value, "json_encode(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "json_decode")) { + ZEPHIR_CONCAT_SVS(return_value, "json_decode(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "format")) { + ZEPHIR_CONCAT_SVS(return_value, "sprintf(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "abs")) { + ZEPHIR_CONCAT_SVS(return_value, "abs(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "slice")) { + ZEPHIR_CONCAT_SVS(return_value, "$this->slice(", &arguments, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "default")) { + ZEPHIR_CONCAT_SVSVSVS(return_value, "(empty(", &left, ") ? (", &arguments, ") : (", &left, "))"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&name, "convert_encoding")) { + ZEPHIR_CONCAT_SVS(return_value, "$this->convertEncoding(", &arguments, ")"); + RETURN_MM(); + } + ZEPHIR_INIT_VAR(&_23); + object_init_ex(&_23, phalcon_mvc_view_engine_volt_exception_ce); + zephir_array_fetch_string(&_24, &filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2712); + zephir_array_fetch_string(&_25, &filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2713); + ZEPHIR_INIT_VAR(&_26); + ZEPHIR_CONCAT_SVSVSV(&_26, "Unknown filter \"", &name, "\" in ", &_24, " on line ", &_25); + ZEPHIR_CALL_METHOD(NULL, &_23, "__construct", NULL, 508, &_26); + zephir_check_call_status(); + zephir_throw_exception_debug(&_23, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2713); + ZEPHIR_MM_RESTORE(); + return; } -static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, parseUploadedFiles) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList) { - zend_bool _5$$3, _7$$3, _13$$7, _14$$7; - zval _4$$3, _12$$7; - zend_string *_3; - zend_ulong _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_6 = NULL, *_9 = NULL, *_10 = NULL; + zephir_fcall_cache_entry *_8 = NULL, *_11 = NULL, *_15 = NULL, *_17 = NULL, *_20 = NULL, *_22 = NULL, *_27 = NULL, *_29 = NULL, *_31 = NULL, *_35 = NULL, *_37 = NULL, *_40 = NULL, *_42 = NULL, *_44 = NULL, *_47 = NULL, *_49 = NULL, *_52 = NULL, *_55 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *files_param = NULL, collection, data, key, file, *_0, _1, _8$$5, _11$$6, _15$$9, _16$$10; - zval files; + zend_bool extendsMode, _1; + zval *statements_param = NULL, *extendsMode_param = NULL, __$true, __$false, extended, blockMode, compilation, extensions, statement, tempCompilation, type, blockName, blockStatements, blocks, path, finalPath, subCompiler, level, _0, *_2, _3, _4$$7, _5$$7, _6$$7, _7$$7, _10$$8, _12$$10, _13$$11, _14$$11, _16$$12, _18$$13, _19$$13, _21$$14, _23$$15, _24$$15, _25$$16, _26$$16, _28$$17, _30$$18, _32$$19, _33$$24, _34$$24, _36$$25, _38$$26, _39$$27, _41$$28, _43$$29, _45$$30, _46$$30, _48$$33, _50$$34, _51$$34, _53$$35, _54$$35, _56$$37, _57$$37, _58$$37, _59$$37, _60$$40, _61$$40, _62$$40, _63$$40, _65$$41, _66$$43, _67$$44, _68$$44, _69$$45, _70$$46, _71$$46, _72$$47, _73$$48, _74$$48, _75$$49, _76$$49, _77$$50, _78$$51, _79$$52, _80$$57, _81$$57, _82$$58, _83$$59, _84$$60, _85$$61, _86$$62, _87$$63, _88$$63, _89$$66, _90$$67, _91$$67, _92$$68, _93$$68, _94$$70, _95$$70, _96$$70, _97$$70; + zval statements, _9$$8, _64$$41; zval *this_ptr = getThis(); - ZVAL_UNDEF(&files); - ZVAL_UNDEF(&collection); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&file); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_11$$6); - ZVAL_UNDEF(&_15$$9); - ZVAL_UNDEF(&_16$$10); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_12$$7); + ZVAL_UNDEF(&statements); + ZVAL_UNDEF(&_9$$8); + ZVAL_UNDEF(&_64$$41); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&extended); + ZVAL_UNDEF(&blockMode); + ZVAL_UNDEF(&compilation); + ZVAL_UNDEF(&extensions); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&tempCompilation); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&blockName); + ZVAL_UNDEF(&blockStatements); + ZVAL_UNDEF(&blocks); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&finalPath); + ZVAL_UNDEF(&subCompiler); + ZVAL_UNDEF(&level); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4$$7); + ZVAL_UNDEF(&_5$$7); + ZVAL_UNDEF(&_6$$7); + ZVAL_UNDEF(&_7$$7); + ZVAL_UNDEF(&_10$$8); + ZVAL_UNDEF(&_12$$10); + ZVAL_UNDEF(&_13$$11); + ZVAL_UNDEF(&_14$$11); + ZVAL_UNDEF(&_16$$12); + ZVAL_UNDEF(&_18$$13); + ZVAL_UNDEF(&_19$$13); + ZVAL_UNDEF(&_21$$14); + ZVAL_UNDEF(&_23$$15); + ZVAL_UNDEF(&_24$$15); + ZVAL_UNDEF(&_25$$16); + ZVAL_UNDEF(&_26$$16); + ZVAL_UNDEF(&_28$$17); + ZVAL_UNDEF(&_30$$18); + ZVAL_UNDEF(&_32$$19); + ZVAL_UNDEF(&_33$$24); + ZVAL_UNDEF(&_34$$24); + ZVAL_UNDEF(&_36$$25); + ZVAL_UNDEF(&_38$$26); + ZVAL_UNDEF(&_39$$27); + ZVAL_UNDEF(&_41$$28); + ZVAL_UNDEF(&_43$$29); + ZVAL_UNDEF(&_45$$30); + ZVAL_UNDEF(&_46$$30); + ZVAL_UNDEF(&_48$$33); + ZVAL_UNDEF(&_50$$34); + ZVAL_UNDEF(&_51$$34); + ZVAL_UNDEF(&_53$$35); + ZVAL_UNDEF(&_54$$35); + ZVAL_UNDEF(&_56$$37); + ZVAL_UNDEF(&_57$$37); + ZVAL_UNDEF(&_58$$37); + ZVAL_UNDEF(&_59$$37); + ZVAL_UNDEF(&_60$$40); + ZVAL_UNDEF(&_61$$40); + ZVAL_UNDEF(&_62$$40); + ZVAL_UNDEF(&_63$$40); + ZVAL_UNDEF(&_65$$41); + ZVAL_UNDEF(&_66$$43); + ZVAL_UNDEF(&_67$$44); + ZVAL_UNDEF(&_68$$44); + ZVAL_UNDEF(&_69$$45); + ZVAL_UNDEF(&_70$$46); + ZVAL_UNDEF(&_71$$46); + ZVAL_UNDEF(&_72$$47); + ZVAL_UNDEF(&_73$$48); + ZVAL_UNDEF(&_74$$48); + ZVAL_UNDEF(&_75$$49); + ZVAL_UNDEF(&_76$$49); + ZVAL_UNDEF(&_77$$50); + ZVAL_UNDEF(&_78$$51); + ZVAL_UNDEF(&_79$$52); + ZVAL_UNDEF(&_80$$57); + ZVAL_UNDEF(&_81$$57); + ZVAL_UNDEF(&_82$$58); + ZVAL_UNDEF(&_83$$59); + ZVAL_UNDEF(&_84$$60); + ZVAL_UNDEF(&_85$$61); + ZVAL_UNDEF(&_86$$62); + ZVAL_UNDEF(&_87$$63); + ZVAL_UNDEF(&_88$$63); + ZVAL_UNDEF(&_89$$66); + ZVAL_UNDEF(&_90$$67); + ZVAL_UNDEF(&_91$$67); + ZVAL_UNDEF(&_92$$68); + ZVAL_UNDEF(&_93$$68); + ZVAL_UNDEF(&_94$$70); + ZVAL_UNDEF(&_95$$70); + ZVAL_UNDEF(&_96$$70); + ZVAL_UNDEF(&_97$$70); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(files) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(statements) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(extendsMode) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &files_param); - zephir_get_arrval(&files, files_param); + zephir_fetch_params(1, 1, 1, &statements_param, &extendsMode_param); + ZEPHIR_OBS_COPY_OR_DUP(&statements, statements_param); + if (!extendsMode_param) { + extendsMode = 0; + } else { + extendsMode = zephir_get_boolval(extendsMode_param); + } - ZEPHIR_INIT_VAR(&collection); - object_init_ex(&collection, phalcon_collection_ce); - ZEPHIR_CALL_METHOD(NULL, &collection, "__construct", NULL, 22); - zephir_check_call_status(); - zephir_is_iterable(&files, 0, "phalcon/Http/Message/ServerRequestFactory.zep", 559); - if (Z_TYPE_P(&files) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&files), _2, _3, _0) + if (!(zephir_fast_count_int(&statements))) { + RETURN_MM_STRING(""); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("extended"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&extended, &_0); + _1 = zephir_is_true(&extended); + if (!(_1)) { + _1 = extendsMode; + } + ZEPHIR_INIT_VAR(&blockMode); + ZVAL_BOOL(&blockMode, _1); + if (ZEPHIR_IS_TRUE_IDENTICAL(&blockMode)) { + RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("blockLevel"))); + } + RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("level"))); + ZEPHIR_INIT_VAR(&compilation); + ZVAL_NULL(&compilation); + zephir_read_property(&_0, this_ptr, ZEND_STRL("extensions"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&extensions, &_0); + zephir_is_iterable(&statements, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 3001); + if (Z_TYPE_P(&statements) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&statements), _2) { - ZEPHIR_INIT_NVAR(&key); - if (_3 != NULL) { - ZVAL_STR_COPY(&key, _3); - } else { - ZVAL_LONG(&key, _2); - } - ZEPHIR_INIT_NVAR(&file); - ZVAL_COPY(&file, _0); - zephir_cast_to_string(&_4$$3, &key); - ZEPHIR_CPY_WRT(&key, &_4$$3); - _5$$3 = Z_TYPE_P(&file) == IS_OBJECT; - if (_5$$3) { - _5$$3 = zephir_is_instance_of(&file, SL("Psr\\Http\\Message\\UploadedFileInterface")); - } - if (UNEXPECTED(_5$$3)) { - ZEPHIR_CALL_METHOD(NULL, &collection, "set", &_6, 42, &key, &file); - zephir_check_call_status(); - continue; - } - _7$$3 = Z_TYPE_P(&file) == IS_ARRAY; - if (_7$$3) { - _7$$3 = zephir_array_isset_string(&file, SL("tmp_name")); + ZEPHIR_INIT_NVAR(&statement); + ZVAL_COPY(&statement, _2); + if (UNEXPECTED(Z_TYPE_P(&statement) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2753); + return; } - if (EXPECTED(_7$$3)) { - ZEPHIR_CALL_METHOD(&_8$$5, this_ptr, "createuploadedfile", &_9, 309, &file); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &collection, "set", &_6, 42, &key, &_8$$5); + if (UNEXPECTED(!(zephir_array_isset_string(&statement, SL("type"))))) { + ZEPHIR_INIT_NVAR(&_4$$7); + object_init_ex(&_4$$7, phalcon_mvc_view_engine_volt_exception_ce); + zephir_array_fetch_string(&_5$$7, &statement, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2761); + zephir_array_fetch_string(&_6$$7, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2761); + ZEPHIR_INIT_NVAR(&_7$$7); + ZEPHIR_CONCAT_SVSV(&_7$$7, "Invalid statement in ", &_5$$7, " on line ", &_6$$7); + ZEPHIR_CALL_METHOD(NULL, &_4$$7, "__construct", &_8, 508, &_7$$7, &statement); zephir_check_call_status(); - continue; + zephir_throw_exception_debug(&_4$$7, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2763); + ZEPHIR_MM_RESTORE(); + return; } - if (UNEXPECTED(Z_TYPE_P(&file) == IS_ARRAY)) { - ZEPHIR_CALL_METHOD(&data, this_ptr, "parseuploadedfiles", &_10, 299, &file); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_11$$6, &data, "toarray", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &collection, "set", &_6, 42, &key, &_11$$6); + if (Z_TYPE_P(&extensions) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&_9$$8); + zephir_create_array(&_9$$8, 1, 0); + zephir_array_fast_append(&_9$$8, &statement); + ZEPHIR_INIT_NVAR(&_10$$8); + ZVAL_STRING(&_10$$8, "compileStatement"); + ZEPHIR_CALL_METHOD(&tempCompilation, this_ptr, "fireextensionevent", &_11, 510, &_10$$8, &_9$$8); zephir_check_call_status(); - continue; - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &files, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &files, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&key, &files, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&file, &files, "current", NULL, 0); - zephir_check_call_status(); - zephir_cast_to_string(&_12$$7, &key); - ZEPHIR_CPY_WRT(&key, &_12$$7); - _13$$7 = Z_TYPE_P(&file) == IS_OBJECT; - if (_13$$7) { - _13$$7 = zephir_is_instance_of(&file, SL("Psr\\Http\\Message\\UploadedFileInterface")); - } - if (UNEXPECTED(_13$$7)) { - ZEPHIR_CALL_METHOD(NULL, &collection, "set", &_6, 42, &key, &file); - zephir_check_call_status(); + if (Z_TYPE_P(&tempCompilation) == IS_STRING) { + zephir_concat_self(&compilation, &tempCompilation); continue; } - _14$$7 = Z_TYPE_P(&file) == IS_ARRAY; - if (_14$$7) { - _14$$7 = zephir_array_isset_string(&file, SL("tmp_name")); + } + ZEPHIR_OBS_NVAR(&type); + zephir_array_fetch_string(&type, &statement, SL("type"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2789); + do { + if (ZEPHIR_IS_LONG(&type, 357)) { + zephir_array_fetch_string(&_12$$10, &statement, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2797); + zephir_concat_self(&compilation, &_12$$10); + break; } - if (EXPECTED(_14$$7)) { - ZEPHIR_CALL_METHOD(&_15$$9, this_ptr, "createuploadedfile", &_9, 309, &file); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &collection, "set", &_6, 42, &key, &_15$$9); + if (ZEPHIR_IS_LONG(&type, 300)) { + if (extendsMode) { + ZVAL_BOOL(&_14$$11, 1); + } else { + ZVAL_BOOL(&_14$$11, 0); + } + ZEPHIR_CALL_METHOD(&_13$$11, this_ptr, "compileif", &_15, 0, &statement, &_14$$11); zephir_check_call_status(); - continue; + zephir_concat_self(&compilation, &_13$$11); + break; } - if (UNEXPECTED(Z_TYPE_P(&file) == IS_ARRAY)) { - ZEPHIR_CALL_METHOD(&data, this_ptr, "parseuploadedfiles", &_10, 299, &file); + if (ZEPHIR_IS_LONG(&type, 302)) { + ZEPHIR_CALL_METHOD(&_16$$12, this_ptr, "compileelseif", &_17, 0, &statement); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_16$$10, &data, "toarray", NULL, 0); + zephir_concat_self(&compilation, &_16$$12); + break; + } + if (ZEPHIR_IS_LONG(&type, 411)) { + if (extendsMode) { + ZVAL_BOOL(&_19$$13, 1); + } else { + ZVAL_BOOL(&_19$$13, 0); + } + ZEPHIR_CALL_METHOD(&_18$$13, this_ptr, "compileswitch", &_20, 0, &statement, &_19$$13); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &collection, "set", &_6, 42, &key, &_16$$10); + zephir_concat_self(&compilation, &_18$$13); + break; + } + if (ZEPHIR_IS_LONG(&type, 412)) { + ZEPHIR_CALL_METHOD(&_21$$14, this_ptr, "compilecase", &_22, 0, &statement); zephir_check_call_status(); - continue; + zephir_concat_self(&compilation, &_21$$14); + break; } - ZEPHIR_CALL_METHOD(NULL, &files, "next", NULL, 0); - zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&type, 413)) { + ZVAL_BOOL(&_24$$15, 0); + ZEPHIR_CALL_METHOD(&_23$$15, this_ptr, "compilecase", &_22, 0, &statement, &_24$$15); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_23$$15); + break; + } + if (ZEPHIR_IS_LONG(&type, 304)) { + if (extendsMode) { + ZVAL_BOOL(&_26$$16, 1); + } else { + ZVAL_BOOL(&_26$$16, 0); + } + ZEPHIR_CALL_METHOD(&_25$$16, this_ptr, "compileforeach", &_27, 0, &statement, &_26$$16); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_25$$16); + break; + } + if (ZEPHIR_IS_LONG(&type, 306)) { + ZEPHIR_CALL_METHOD(&_28$$17, this_ptr, "compileset", &_29, 0, &statement); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_28$$17); + break; + } + if (ZEPHIR_IS_LONG(&type, 359)) { + ZEPHIR_CALL_METHOD(&_30$$18, this_ptr, "compileecho", &_31, 0, &statement); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_30$$18); + break; + } + if (ZEPHIR_IS_LONG(&type, 307)) { + ZEPHIR_OBS_NVAR(&blockName); + zephir_array_fetch_string(&blockName, &statement, SL("name"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2845); + ZEPHIR_OBS_NVAR(&blockStatements); + zephir_array_isset_string_fetch(&blockStatements, &statement, SL("block_statements"), 0); + zephir_read_property(&_32$$19, this_ptr, ZEND_STRL("blocks"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&blocks, &_32$$19); + if (zephir_is_true(&blockMode)) { + if (Z_TYPE_P(&blocks) != IS_ARRAY) { + ZEPHIR_INIT_NVAR(&blocks); + array_init(&blocks); + } + if (Z_TYPE_P(&compilation) != IS_NULL) { + zephir_array_append(&blocks, &compilation, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2860); + ZEPHIR_INIT_NVAR(&compilation); + ZVAL_NULL(&compilation); + } + zephir_array_update_zval(&blocks, &blockName, &blockStatements, PH_COPY | PH_SEPARATE); + zephir_update_property_zval(this_ptr, ZEND_STRL("blocks"), &blocks); + } else { + if (Z_TYPE_P(&blockStatements) == IS_ARRAY) { + if (extendsMode) { + ZVAL_BOOL(&_34$$24, 1); + } else { + ZVAL_BOOL(&_34$$24, 0); + } + ZEPHIR_CALL_METHOD(&_33$$24, this_ptr, "statementlist", &_35, 509, &blockStatements, &_34$$24); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_33$$24); + } + } + break; + } + if (ZEPHIR_IS_LONG(&type, 310)) { + ZEPHIR_OBS_NVAR(&path); + zephir_array_fetch_string(&path, &statement, SL("path"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2886); + zephir_array_fetch_string(&_36$$25, &path, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2890); + ZEPHIR_CALL_METHOD(&finalPath, this_ptr, "getfinalpath", &_37, 0, &_36$$25); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&extended); + ZVAL_BOOL(&extended, 1); + ZEPHIR_INIT_NVAR(&subCompiler); + if (zephir_clone(&subCompiler, this_ptr) == FAILURE) { + RETURN_MM(); + } + ZEPHIR_CALL_METHOD(&tempCompilation, &subCompiler, "compile", NULL, 0, &finalPath, &extended); + zephir_check_call_status(); + if (Z_TYPE_P(&tempCompilation) == IS_NULL) { + ZEPHIR_CALL_METHOD(&_38$$26, &subCompiler, "getcompiledtemplatepath", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&tempCompilation); + zephir_file_get_contents(&tempCompilation, &_38$$26); + } + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("extended"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("extended"), &__$false); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("extendedBlocks"), &tempCompilation); + ZEPHIR_CPY_WRT(&blockMode, &extended); + break; + } + if (ZEPHIR_IS_LONG(&type, 313)) { + ZEPHIR_CALL_METHOD(&_39$$27, this_ptr, "compileinclude", &_40, 0, &statement); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_39$$27); + break; + } + if (ZEPHIR_IS_LONG(&type, 316)) { + ZEPHIR_CALL_METHOD(&_41$$28, this_ptr, "compiledo", &_42, 0, &statement); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_41$$28); + break; + } + if (ZEPHIR_IS_LONG(&type, 327)) { + ZEPHIR_CALL_METHOD(&_43$$29, this_ptr, "compilereturn", &_44, 0, &statement); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_43$$29); + break; + } + if (ZEPHIR_IS_LONG(&type, 317)) { + if (extendsMode) { + ZVAL_BOOL(&_46$$30, 1); + } else { + ZVAL_BOOL(&_46$$30, 0); + } + ZEPHIR_CALL_METHOD(&_45$$30, this_ptr, "compileautoescape", &_47, 0, &statement, &_46$$30); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_45$$30); + break; + } + if (ZEPHIR_IS_LONG(&type, 319)) { + zephir_concat_self_str(&compilation, SL("")); + break; + } + if (ZEPHIR_IS_LONG(&type, 320)) { + zephir_concat_self_str(&compilation, SL("")); + break; + } + if (ZEPHIR_IS_LONG(&type, 321)) { + ZEPHIR_CALL_METHOD(&_48$$33, this_ptr, "compileforelse", &_49, 0); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_48$$33); + break; + } + if (ZEPHIR_IS_LONG(&type, 322)) { + if (extendsMode) { + ZVAL_BOOL(&_51$$34, 1); + } else { + ZVAL_BOOL(&_51$$34, 0); + } + ZEPHIR_CALL_METHOD(&_50$$34, this_ptr, "compilemacro", &_52, 0, &statement, &_51$$34); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_50$$34); + break; + } + if (ZEPHIR_IS_LONG(&type, 325)) { + if (extendsMode) { + ZVAL_BOOL(&_54$$35, 1); + } else { + ZVAL_BOOL(&_54$$35, 0); + } + ZEPHIR_CALL_METHOD(&_53$$35, this_ptr, "compilecall", &_55, 0, &statement, &_54$$35); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_53$$35); + break; + } + if (ZEPHIR_IS_LONG(&type, 358)) { + break; + } + ZEPHIR_INIT_NVAR(&_56$$37); + object_init_ex(&_56$$37, phalcon_mvc_view_engine_volt_exception_ce); + zephir_array_fetch_string(&_57$$37, &statement, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2992); + zephir_array_fetch_string(&_58$$37, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2993); + ZEPHIR_INIT_NVAR(&_59$$37); + ZEPHIR_CONCAT_SVSVSV(&_59$$37, "Unknown statement ", &type, " in ", &_57$$37, " on line ", &_58$$37); + ZEPHIR_CALL_METHOD(NULL, &_56$$37, "__construct", &_8, 508, &_59$$37); + zephir_check_call_status(); + zephir_throw_exception_debug(&_56$$37, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2993); + ZEPHIR_MM_RESTORE(); + return; + } while(0); + + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &statements, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3, &statements, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3)) { + break; + } + ZEPHIR_CALL_METHOD(&statement, &statements, "current", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&statement) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2753); + return; + } + if (UNEXPECTED(!(zephir_array_isset_string(&statement, SL("type"))))) { + ZEPHIR_INIT_NVAR(&_60$$40); + object_init_ex(&_60$$40, phalcon_mvc_view_engine_volt_exception_ce); + zephir_array_fetch_string(&_61$$40, &statement, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2761); + zephir_array_fetch_string(&_62$$40, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2761); + ZEPHIR_INIT_NVAR(&_63$$40); + ZEPHIR_CONCAT_SVSV(&_63$$40, "Invalid statement in ", &_61$$40, " on line ", &_62$$40); + ZEPHIR_CALL_METHOD(NULL, &_60$$40, "__construct", &_8, 508, &_63$$40, &statement); + zephir_check_call_status(); + zephir_throw_exception_debug(&_60$$40, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2763); + ZEPHIR_MM_RESTORE(); + return; + } + if (Z_TYPE_P(&extensions) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&_64$$41); + zephir_create_array(&_64$$41, 1, 0); + zephir_array_fast_append(&_64$$41, &statement); + ZEPHIR_INIT_NVAR(&_65$$41); + ZVAL_STRING(&_65$$41, "compileStatement"); + ZEPHIR_CALL_METHOD(&tempCompilation, this_ptr, "fireextensionevent", &_11, 510, &_65$$41, &_64$$41); + zephir_check_call_status(); + if (Z_TYPE_P(&tempCompilation) == IS_STRING) { + zephir_concat_self(&compilation, &tempCompilation); + continue; + } + } + ZEPHIR_OBS_NVAR(&type); + zephir_array_fetch_string(&type, &statement, SL("type"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2789); + do { + if (ZEPHIR_IS_LONG(&type, 357)) { + zephir_array_fetch_string(&_66$$43, &statement, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2797); + zephir_concat_self(&compilation, &_66$$43); + break; + } + if (ZEPHIR_IS_LONG(&type, 300)) { + if (extendsMode) { + ZVAL_BOOL(&_68$$44, 1); + } else { + ZVAL_BOOL(&_68$$44, 0); + } + ZEPHIR_CALL_METHOD(&_67$$44, this_ptr, "compileif", &_15, 0, &statement, &_68$$44); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_67$$44); + break; + } + if (ZEPHIR_IS_LONG(&type, 302)) { + ZEPHIR_CALL_METHOD(&_69$$45, this_ptr, "compileelseif", &_17, 0, &statement); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_69$$45); + break; + } + if (ZEPHIR_IS_LONG(&type, 411)) { + if (extendsMode) { + ZVAL_BOOL(&_71$$46, 1); + } else { + ZVAL_BOOL(&_71$$46, 0); + } + ZEPHIR_CALL_METHOD(&_70$$46, this_ptr, "compileswitch", &_20, 0, &statement, &_71$$46); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_70$$46); + break; + } + if (ZEPHIR_IS_LONG(&type, 412)) { + ZEPHIR_CALL_METHOD(&_72$$47, this_ptr, "compilecase", &_22, 0, &statement); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_72$$47); + break; + } + if (ZEPHIR_IS_LONG(&type, 413)) { + ZVAL_BOOL(&_74$$48, 0); + ZEPHIR_CALL_METHOD(&_73$$48, this_ptr, "compilecase", &_22, 0, &statement, &_74$$48); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_73$$48); + break; + } + if (ZEPHIR_IS_LONG(&type, 304)) { + if (extendsMode) { + ZVAL_BOOL(&_76$$49, 1); + } else { + ZVAL_BOOL(&_76$$49, 0); + } + ZEPHIR_CALL_METHOD(&_75$$49, this_ptr, "compileforeach", &_27, 0, &statement, &_76$$49); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_75$$49); + break; + } + if (ZEPHIR_IS_LONG(&type, 306)) { + ZEPHIR_CALL_METHOD(&_77$$50, this_ptr, "compileset", &_29, 0, &statement); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_77$$50); + break; + } + if (ZEPHIR_IS_LONG(&type, 359)) { + ZEPHIR_CALL_METHOD(&_78$$51, this_ptr, "compileecho", &_31, 0, &statement); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_78$$51); + break; + } + if (ZEPHIR_IS_LONG(&type, 307)) { + ZEPHIR_OBS_NVAR(&blockName); + zephir_array_fetch_string(&blockName, &statement, SL("name"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2845); + ZEPHIR_OBS_NVAR(&blockStatements); + zephir_array_isset_string_fetch(&blockStatements, &statement, SL("block_statements"), 0); + zephir_read_property(&_79$$52, this_ptr, ZEND_STRL("blocks"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&blocks, &_79$$52); + if (zephir_is_true(&blockMode)) { + if (Z_TYPE_P(&blocks) != IS_ARRAY) { + ZEPHIR_INIT_NVAR(&blocks); + array_init(&blocks); + } + if (Z_TYPE_P(&compilation) != IS_NULL) { + zephir_array_append(&blocks, &compilation, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2860); + ZEPHIR_INIT_NVAR(&compilation); + ZVAL_NULL(&compilation); + } + zephir_array_update_zval(&blocks, &blockName, &blockStatements, PH_COPY | PH_SEPARATE); + zephir_update_property_zval(this_ptr, ZEND_STRL("blocks"), &blocks); + } else { + if (Z_TYPE_P(&blockStatements) == IS_ARRAY) { + if (extendsMode) { + ZVAL_BOOL(&_81$$57, 1); + } else { + ZVAL_BOOL(&_81$$57, 0); + } + ZEPHIR_CALL_METHOD(&_80$$57, this_ptr, "statementlist", &_35, 509, &blockStatements, &_81$$57); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_80$$57); + } + } + break; + } + if (ZEPHIR_IS_LONG(&type, 310)) { + ZEPHIR_OBS_NVAR(&path); + zephir_array_fetch_string(&path, &statement, SL("path"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2886); + zephir_array_fetch_string(&_82$$58, &path, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2890); + ZEPHIR_CALL_METHOD(&finalPath, this_ptr, "getfinalpath", &_37, 0, &_82$$58); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&extended); + ZVAL_BOOL(&extended, 1); + ZEPHIR_INIT_NVAR(&subCompiler); + if (zephir_clone(&subCompiler, this_ptr) == FAILURE) { + RETURN_MM(); + } + ZEPHIR_CALL_METHOD(&tempCompilation, &subCompiler, "compile", NULL, 0, &finalPath, &extended); + zephir_check_call_status(); + if (Z_TYPE_P(&tempCompilation) == IS_NULL) { + ZEPHIR_CALL_METHOD(&_83$$59, &subCompiler, "getcompiledtemplatepath", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&tempCompilation); + zephir_file_get_contents(&tempCompilation, &_83$$59); + } + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("extended"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("extended"), &__$false); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("extendedBlocks"), &tempCompilation); + ZEPHIR_CPY_WRT(&blockMode, &extended); + break; + } + if (ZEPHIR_IS_LONG(&type, 313)) { + ZEPHIR_CALL_METHOD(&_84$$60, this_ptr, "compileinclude", &_40, 0, &statement); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_84$$60); + break; + } + if (ZEPHIR_IS_LONG(&type, 316)) { + ZEPHIR_CALL_METHOD(&_85$$61, this_ptr, "compiledo", &_42, 0, &statement); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_85$$61); + break; + } + if (ZEPHIR_IS_LONG(&type, 327)) { + ZEPHIR_CALL_METHOD(&_86$$62, this_ptr, "compilereturn", &_44, 0, &statement); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_86$$62); + break; + } + if (ZEPHIR_IS_LONG(&type, 317)) { + if (extendsMode) { + ZVAL_BOOL(&_88$$63, 1); + } else { + ZVAL_BOOL(&_88$$63, 0); + } + ZEPHIR_CALL_METHOD(&_87$$63, this_ptr, "compileautoescape", &_47, 0, &statement, &_88$$63); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_87$$63); + break; + } + if (ZEPHIR_IS_LONG(&type, 319)) { + zephir_concat_self_str(&compilation, SL("")); + break; + } + if (ZEPHIR_IS_LONG(&type, 320)) { + zephir_concat_self_str(&compilation, SL("")); + break; + } + if (ZEPHIR_IS_LONG(&type, 321)) { + ZEPHIR_CALL_METHOD(&_89$$66, this_ptr, "compileforelse", &_49, 0); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_89$$66); + break; + } + if (ZEPHIR_IS_LONG(&type, 322)) { + if (extendsMode) { + ZVAL_BOOL(&_91$$67, 1); + } else { + ZVAL_BOOL(&_91$$67, 0); + } + ZEPHIR_CALL_METHOD(&_90$$67, this_ptr, "compilemacro", &_52, 0, &statement, &_91$$67); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_90$$67); + break; + } + if (ZEPHIR_IS_LONG(&type, 325)) { + if (extendsMode) { + ZVAL_BOOL(&_93$$68, 1); + } else { + ZVAL_BOOL(&_93$$68, 0); + } + ZEPHIR_CALL_METHOD(&_92$$68, this_ptr, "compilecall", &_55, 0, &statement, &_93$$68); + zephir_check_call_status(); + zephir_concat_self(&compilation, &_92$$68); + break; + } + if (ZEPHIR_IS_LONG(&type, 358)) { + break; + } + ZEPHIR_INIT_NVAR(&_94$$70); + object_init_ex(&_94$$70, phalcon_mvc_view_engine_volt_exception_ce); + zephir_array_fetch_string(&_95$$70, &statement, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2992); + zephir_array_fetch_string(&_96$$70, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2993); + ZEPHIR_INIT_NVAR(&_97$$70); + ZEPHIR_CONCAT_SVSVSV(&_97$$70, "Unknown statement ", &type, " in ", &_95$$70, " on line ", &_96$$70); + ZEPHIR_CALL_METHOD(NULL, &_94$$70, "__construct", &_8, 508, &_97$$70); + zephir_check_call_status(); + zephir_throw_exception_debug(&_94$$70, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2993); + ZEPHIR_MM_RESTORE(); + return; + } while(0); + + ZEPHIR_CALL_METHOD(NULL, &statements, "next", NULL, 0); + zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&file); - ZEPHIR_INIT_NVAR(&key); - RETURN_CCTOR(&collection); + ZEPHIR_INIT_NVAR(&statement); + if (ZEPHIR_IS_TRUE_IDENTICAL(&blockMode)) { + zephir_read_property(&level, this_ptr, ZEND_STRL("blockLevel"), PH_NOISY_CC | PH_READONLY); + if (ZEPHIR_IS_LONG(&level, 1)) { + if (Z_TYPE_P(&compilation) != IS_NULL) { + zephir_update_property_array_append(this_ptr, SL("blocks"), &compilation); + } + } + RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("blockLevel"))); + } + RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("level"))); + RETURN_CCTOR(&compilation); } -static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, parseUri) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementListOrExtends) { + zend_bool isStatementList = 0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *server, server_sub, *headers, headers_sub, path, query, scheme, split, uri, _0, _1, _7, _8, _2$$3, _3$$3, _4$$3, _5$$4, _6$$4, _9$$5, _10$$5; + zval *statements, statements_sub, statement, *_0$$4, _1$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&server_sub); - ZVAL_UNDEF(&headers_sub); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&query); - ZVAL_UNDEF(&scheme); - ZVAL_UNDEF(&split); - ZVAL_UNDEF(&uri); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&statements_sub); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&_1$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(server, phalcon_collection_collectioninterface_ce) - Z_PARAM_OBJECT_OF_CLASS(headers, phalcon_collection_collectioninterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(statements) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &server, &headers); + zephir_fetch_params(1, 1, 0, &statements); - ZEPHIR_INIT_VAR(&uri); - object_init_ex(&uri, phalcon_http_message_uri_ce); - ZEPHIR_CALL_METHOD(NULL, &uri, "__construct", NULL, 107); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&scheme, this_ptr, "calculateurischeme", NULL, 310, server, headers); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, &uri, "withscheme", NULL, 311, &scheme); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&uri, &_0); - ZEPHIR_CALL_METHOD(&split, this_ptr, "calculateurihost", NULL, 312, server, headers); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&_1); - zephir_array_fetch_long(&_1, &split, 0, PH_NOISY, "phalcon/Http/Message/ServerRequestFactory.zep", 586); - if (EXPECTED(!(ZEPHIR_IS_EMPTY(&_1)))) { - zephir_array_fetch_long(&_3$$3, &split, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Message/ServerRequestFactory.zep", 587); - ZEPHIR_CALL_METHOD(&_2$$3, &uri, "withhost", NULL, 313, &_3$$3); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&uri, &_2$$3); - ZEPHIR_OBS_VAR(&_4$$3); - zephir_array_fetch_long(&_4$$3, &split, 1, PH_NOISY, "phalcon/Http/Message/ServerRequestFactory.zep", 588); - if (UNEXPECTED(!(ZEPHIR_IS_EMPTY(&_4$$3)))) { - zephir_array_fetch_long(&_6$$4, &split, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Message/ServerRequestFactory.zep", 589); - ZEPHIR_CALL_METHOD(&_5$$4, &uri, "withport", NULL, 314, &_6$$4); + if (Z_TYPE_P(statements) != IS_ARRAY) { + RETVAL_ZVAL(statements, 1, 0); + RETURN_MM(); + } + isStatementList = 1; + if (!(zephir_array_isset_string(statements, SL("type")))) { + zephir_is_iterable(statements, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 3050); + if (Z_TYPE_P(statements) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(statements), _0$$4) + { + ZEPHIR_INIT_NVAR(&statement); + ZVAL_COPY(&statement, _0$$4); + if (Z_TYPE_P(&statement) != IS_ARRAY) { + isStatementList = 0; + break; + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, statements, "rewind", NULL, 0); zephir_check_call_status(); - ZEPHIR_CPY_WRT(&uri, &_5$$4); + while (1) { + ZEPHIR_CALL_METHOD(&_1$$4, statements, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1$$4)) { + break; + } + ZEPHIR_CALL_METHOD(&statement, statements, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&statement) != IS_ARRAY) { + isStatementList = 0; + break; + } + ZEPHIR_CALL_METHOD(NULL, statements, "next", NULL, 0); + zephir_check_call_status(); + } } + ZEPHIR_INIT_NVAR(&statement); } - ZEPHIR_CALL_METHOD(&path, this_ptr, "calculateuripath", NULL, 315, server); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&split); - zephir_fast_explode_str(&split, SL("#"), &path, LONG_MAX); - zephir_array_fetch_long(&_7, &split, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Message/ServerRequestFactory.zep", 598); - ZEPHIR_INIT_NVAR(&path); - zephir_fast_explode_str(&path, SL("?"), &_7, LONG_MAX); - zephir_array_fetch_long(&_8, &path, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Message/ServerRequestFactory.zep", 599); - ZEPHIR_CALL_METHOD(&_0, &uri, "withpath", NULL, 316, &_8); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&uri, &_0); - if (UNEXPECTED(zephir_fast_count_int(&split) > 1)) { - zephir_array_fetch_long(&_10$$5, &split, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Message/ServerRequestFactory.zep", 602); - ZEPHIR_CALL_METHOD(&_9$$5, &uri, "withfragment", NULL, 317, &_10$$5); + if (isStatementList) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "statementlist", NULL, 509, statements); zephir_check_call_status(); - ZEPHIR_CPY_WRT(&uri, &_9$$5); + RETURN_MM(); + } + RETVAL_ZVAL(statements, 1, 0); + RETURN_MM(); +} + +zend_object *zephir_init_properties_Phalcon_Mvc_View_Engine_Volt_Compiler(zend_class_entry *class_type) +{ + zval _0, _2, _4, _6, _8, _10, _12, _1$$3, _3$$4, _5$$5, _7$$6, _9$$7, _11$$8, _13$$9; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_9$$7); + ZVAL_UNDEF(&_11$$8); + ZVAL_UNDEF(&_13$$9); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("macros"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("macros"), &_3$$4); + } + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("loopPointers"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_4) == IS_NULL) { + ZEPHIR_INIT_VAR(&_5$$5); + array_init(&_5$$5); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("loopPointers"), &_5$$5); + } + zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("functions"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_6) == IS_NULL) { + ZEPHIR_INIT_VAR(&_7$$6); + array_init(&_7$$6); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("functions"), &_7$$6); + } + zephir_read_property_ex(&_8, this_ptr, ZEND_STRL("forElsePointers"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_8) == IS_NULL) { + ZEPHIR_INIT_VAR(&_9$$7); + array_init(&_9$$7); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("forElsePointers"), &_9$$7); + } + zephir_read_property_ex(&_10, this_ptr, ZEND_STRL("filters"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_10) == IS_NULL) { + ZEPHIR_INIT_VAR(&_11$$8); + array_init(&_11$$8); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("filters"), &_11$$8); + } + zephir_read_property_ex(&_12, this_ptr, ZEND_STRL("extensions"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_12) == IS_NULL) { + ZEPHIR_INIT_VAR(&_13$$9); + array_init(&_13$$9); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("extensions"), &_13$$9); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); } - ZEPHIR_CALL_METHOD(&query, this_ptr, "calculateuriquery", NULL, 318, server); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, &uri, "withquery", NULL, 319, &query); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&uri, &_0); - RETURN_CCTOR(&uri); } @@ -106886,12346 +99393,9529 @@ static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, parseUri) -ZEPHIR_INIT_CLASS(Phalcon_Http_Message_Stream) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_View_Engine_Volt_Exception) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Message, Stream, phalcon, http_message_stream, phalcon_http_message_stream_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\View\\Engine\\Volt, Exception, phalcon, mvc_view_engine_volt_exception, phalcon_mvc_view_exception_ce, phalcon_mvc_view_engine_volt_exception_method_entry, 0); + + zend_declare_property_null(phalcon_mvc_view_engine_volt_exception_ce, SL("statement"), ZEND_ACC_PROTECTED); + phalcon_mvc_view_engine_volt_exception_ce->create_object = zephir_init_properties_Phalcon_Mvc_View_Engine_Volt_Exception; - zend_declare_property_null(phalcon_http_message_stream_ce, SL("handle"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_message_stream_ce, SL("stream"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_http_message_stream_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\streaminterface"))); return SUCCESS; } -static PHP_METHOD(Phalcon_Http_Message_Stream, __construct) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Exception, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval mode; - zval *stream, stream_sub, *mode_param = NULL; + zend_long code, ZEPHIR_LAST_CALL_STATUS; + zval statement; + zval *message_param = NULL, *statement_param = NULL, *code_param = NULL, *previous = NULL, previous_sub, __$null, _0; + zval message; zval *this_ptr = getThis(); - ZVAL_UNDEF(&stream_sub); - ZVAL_UNDEF(&mode); + ZVAL_UNDEF(&message); + ZVAL_UNDEF(&previous_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&statement); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(stream) + ZEND_PARSE_PARAMETERS_START(0, 4) Z_PARAM_OPTIONAL - Z_PARAM_STR(mode) + Z_PARAM_STR(message) + Z_PARAM_ARRAY(statement) + Z_PARAM_LONG(code) + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(previous, zend_ce_exception) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &stream, &mode_param); - if (!mode_param) { - ZEPHIR_INIT_VAR(&mode); - ZVAL_STRING(&mode, "rb"); + zephir_fetch_params(1, 0, 4, &message_param, &statement_param, &code_param, &previous); + if (!message_param) { + ZEPHIR_INIT_VAR(&message); + ZVAL_STRING(&message, ""); } else { - if (UNEXPECTED(Z_TYPE_P(mode_param) != IS_STRING && Z_TYPE_P(mode_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'mode' must be of the type string")); - RETURN_MM_NULL(); + zephir_get_strval(&message, message_param); } - if (EXPECTED(Z_TYPE_P(mode_param) == IS_STRING)) { - zephir_get_strval(&mode, mode_param); + if (!statement_param) { + ZEPHIR_INIT_VAR(&statement); + array_init(&statement); } else { - ZEPHIR_INIT_VAR(&mode); + zephir_get_arrval(&statement, statement_param); } + if (!code_param) { + code = 0; + } else { + code = zephir_get_intval(code_param); + } + if (!previous) { + previous = &previous_sub; + previous = &__$null; } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setstream", NULL, 0, stream, &mode); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Http_Message_Stream, __destruct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "close", NULL, 0); + zephir_update_property_zval(this_ptr, ZEND_STRL("statement"), &statement); + ZVAL_LONG(&_0, code); + ZEPHIR_CALL_PARENT(NULL, phalcon_mvc_view_engine_volt_exception_ce, getThis(), "__construct", NULL, 0, &message, &_0, previous); zephir_check_call_status(); ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Http_Message_Stream, __toString) -{ - zval _0$$3, _1$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$4); - - - ZEPHIR_MM_GROW(); - - - /* try_start_1: */ - - ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "isreadable", NULL, 0); - zephir_check_call_status_or_jump(try_end_1); - if (UNEXPECTED(zephir_is_true(&_0$$3))) { - ZEPHIR_CALL_METHOD(&_1$$4, this_ptr, "isseekable", NULL, 0); - zephir_check_call_status_or_jump(try_end_1); - if (UNEXPECTED(zephir_is_true(&_1$$4))) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "rewind", NULL, 0); - zephir_check_call_status_or_jump(try_end_1); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getcontents", NULL, 0); - zephir_check_call_status_or_jump(try_end_1); - RETURN_MM(); - } - - try_end_1: - - zend_clear_exception(); - RETURN_MM_STRING(""); -} - -static PHP_METHOD(Phalcon_Http_Message_Stream, close) +static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Exception, getStatement) { - zval handle, _0; + zval statement, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&handle); + ZVAL_UNDEF(&statement); ZVAL_UNDEF(&_0); ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); - if (EXPECTED(Z_TYPE_P(&_0) != IS_NULL)) { - ZEPHIR_CALL_METHOD(&handle, this_ptr, "detach", NULL, 0); - zephir_check_call_status(); - zephir_fclose(&handle); + zephir_read_property(&_0, this_ptr, ZEND_STRL("statement"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&statement, &_0); + if (Z_TYPE_P(&statement) != IS_ARRAY) { + ZEPHIR_INIT_NVAR(&statement); + array_init(&statement); } - ZEPHIR_MM_RESTORE(); + RETURN_CCTOR(&statement); } -static PHP_METHOD(Phalcon_Http_Message_Stream, detach) +zend_object *zephir_init_properties_Phalcon_Mvc_View_Engine_Volt_Exception(zend_class_entry *class_type) { + zval _0, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval __$null, handle, _0; - zval *this_ptr = getThis(); - - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&handle); - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&handle, &_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("handle"), &__$null); - RETURN_CCTOR(&handle); -} - -static PHP_METHOD(Phalcon_Http_Message_Stream, eof) -{ - zval _0, _1$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1$$3); + - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(zephir_is_true(&_0))) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); - RETURN_BOOL(zephir_feof(&_1$$3)); + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("statement"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("statement"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); } - RETURN_BOOL(1); } -static PHP_METHOD(Phalcon_Http_Message_Stream, getContents) -{ - zval data, _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&_0); - - ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkhandle", NULL, 77); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkreadable", NULL, 78); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&data, "stream_get_contents", NULL, 79, &_0); - zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&data))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_RuntimeException, "Could not read from the file/stream", "phalcon/Http/Message/Stream.zep", 140); - return; - } - RETURN_CCTOR(&data); -} +/* Driver template for the LEMON parser generator. +** The author disclaims copyright to this source code. +*/ +/* First off, code is include which follows the "include" declaration +** in the input file. */ +// 38 "parser.php.lemon" -static PHP_METHOD(Phalcon_Http_Message_Stream, getMetadata) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_2 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key = NULL, key_sub, __$null, metadata, _0, _1, _3; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&key_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&metadata); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(key) - ZEND_PARSE_PARAMETERS_END(); +/* Change next line to "#if 1" + * to enable parser tracing. */ +#if 0 +# ifdef NDEBUG +# undef NDEBUG +# endif +#else +# ifndef NDEBUG +# define NDEBUG 1 +# endif #endif +// 24 "parser.php.c" +/* Next is all token values, in a form suitable for use by makeheaders. +** This section will be null unless lemon is run with the -m switch. +*/ +/* Make sure the INTERFACE macro is defined. +*/ +#ifndef INTERFACE +# define INTERFACE 1 +#endif +/* The next thing included is series of defines which control +** various aspects of the generated parser. +** VVCODETYPE is the data type used for storing terminal +** and nonterminal numbers. "unsigned char" is +** used if there are fewer than 250 terminals +** and nonterminals. "int" is used otherwise. +** VVNOCODE is a number of type VVCODETYPE which corresponds +** to no legal terminal or nonterminal number. This +** number is used to fill in empty slots of the hash +** table. +** VVFALLBACK If defined, this indicates that one or more tokens +** have fall-back values which should be used if the +** original value of the token will not parse. +** VVACTIONTYPE is the data type used for storing terminal +** and nonterminal numbers. "unsigned char" is +** used if there are fewer than 250 rules and +** states combined. "int" is used otherwise. +** phvolt_TOKENTYPE is the data type used for minor tokens given +** directly to the parser from the tokenizer. +** VVMINORTYPE is the data type used for all minor tokens. +** This is typically a union of many types, one of +** which is phvolt_TOKENTYPE. The entry in the union +** for base tokens is called "vv0". +** VVSTACKDEPTH is the maximum depth of the parser's stack. +** phvolt_ARG_SDECL A static variable declaration for the %extra_argument +** phvolt_ARG_PDECL A parameter declaration for the %extra_argument +** phvolt_ARG_STORE Code to store %extra_argument into vvpParser +** phvolt_ARG_FETCH Code to extract %extra_argument from vvpParser +** VVNSTATE the combined number of states. +** VVNRULE the number of rules in the grammar +** VVERRORSYMBOL is the code number of the error symbol. If not +** defined, then do no error processing. +*/ +#define VVCODETYPE unsigned char +#define VVNOCODE 131 +#define VVACTIONTYPE unsigned short int +#define phvolt_TOKENTYPE phvolt_parser_token* +typedef union { + phvolt_TOKENTYPE vv0; + zval vv186; + int vv261; +} VVMINORTYPE; +#define VVSTACKDEPTH 100 +#define phvolt_ARG_SDECL phvolt_parser_status *status; +#define phvolt_ARG_PDECL ,phvolt_parser_status *status +#define phvolt_ARG_FETCH phvolt_parser_status *status = vvpParser->status +#define phvolt_ARG_STORE vvpParser->status = status +#define VVNSTATE 365 +#define VVNRULE 158 +#define VVERRORSYMBOL 89 +#define VVERRSYMDT vv261 +#define VV_NO_ACTION (VVNSTATE+VVNRULE+2) +#define VV_ACCEPT_ACTION (VVNSTATE+VVNRULE+1) +#define VV_ERROR_ACTION (VVNSTATE+VVNRULE) - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &key); - if (!key) { - key = &key_sub; - key = &__$null; - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(Z_TYPE_P(&_0) == IS_NULL)) { - RETURN_MM_NULL(); - } - zephir_read_property(&_1, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&metadata, "stream_get_meta_data", NULL, 80, &_1); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(key) == IS_NULL)) { - RETURN_CCTOR(&metadata); - } - ZEPHIR_INIT_VAR(&_3); - array_init(&_3); - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_helper_arr_ce, "get", &_2, 16, &metadata, key, &_3); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Http_Message_Stream, getSize) -{ - zval stats, _0, _1$$3, _3$$4, _4$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_2 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&stats); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$4); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); - if (EXPECTED(Z_TYPE_P(&_0) != IS_NULL)) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&stats, "fstat", NULL, 81, &_1$$3); - zephir_check_call_status(); - if (EXPECTED(!ZEPHIR_IS_FALSE_IDENTICAL(&stats))) { - ZEPHIR_INIT_VAR(&_3$$4); - ZVAL_STRING(&_3$$4, "size"); - ZVAL_NULL(&_4$$4); - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_helper_arr_ce, "get", &_2, 16, &stats, &_3$$4, &_4$$4); - zephir_check_call_status(); - RETURN_MM(); - } - } - RETURN_MM_NULL(); -} - -static PHP_METHOD(Phalcon_Http_Message_Stream, isReadable) -{ - zval _2; - zval mode, _0, _1, _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&mode); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_2); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "mode"); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmetadata", NULL, 0, &_1); - zephir_check_call_status(); - zephir_cast_to_string(&_2, &_0); - ZEPHIR_CPY_WRT(&mode, &_2); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "r+"); - ZEPHIR_CALL_FUNCTION(&_3, "strpbrk", NULL, 82, &mode, &_1); - zephir_check_call_status(); - RETURN_MM_BOOL(!ZEPHIR_IS_FALSE_IDENTICAL(&_3)); -} +/* Next are that tables used to determine what action to take based on the +** current state and lookahead token. These tables are used to implement +** functions that take a state number and lookahead value and return an +** action integer. +** +** Suppose the action integer is N. Then the action is determined as +** follows +** +** 0 <= N < VVNSTATE Shift N. That is, push the lookahead +** token onto the stack and goto state N. +** +** VVNSTATE <= N < VVNSTATE+VVNRULE Reduce by rule N-VVNSTATE. +** +** N == VVNSTATE+VVNRULE A syntax error has occurred. +** +** N == VVNSTATE+VVNRULE+1 The parser accepts its input. +** +** N == VVNSTATE+VVNRULE+2 No such action. Denotes unused +** slots in the vv_action[] table. +** +** The action table is constructed as a single large table named vv_action[]. +** Given state S and lookahead X, the action is computed as +** +** vv_action[ vv_shift_ofst[S] + X ] +** +** If the index value vv_shift_ofst[S]+X is out of range or if the value +** vv_lookahead[vv_shift_ofst[S]+X] is not equal to X or if vv_shift_ofst[S] +** is equal to VV_SHIFT_USE_DFLT, it means that the action is not in the table +** and that vv_default[S] should be used instead. +** +** The formula above is for computing the action when the lookahead is +** a terminal symbol. If the lookahead is a non-terminal (as occurs after +** a reduce action) then the vv_reduce_ofst[] array is used in place of +** the vv_shift_ofst[] array and VV_REDUCE_USE_DFLT is used in place of +** VV_SHIFT_USE_DFLT. +** +** The following are the tables generated in this section: +** +** vv_action[] A single table containing all actions. +** vv_lookahead[] A table containing the lookahead for each entry in +** vv_action. Used to detect hash collisions. +** vv_shift_ofst[] For each state, the offset into vv_action for +** shifting terminals. +** vv_reduce_ofst[] For each state, the offset into vv_action for +** shifting non-terminals after a reduce. +** vv_default[] Default action for each state. +*/ +static VVACTIONTYPE vv_action[] = { + /* 0 */ 95, 111, 63, 55, 57, 85, 69, 65, 67, 75, + /* 10 */ 77, 79, 81, 71, 73, 51, 49, 53, 46, 43, + /* 20 */ 59, 92, 61, 87, 90, 91, 99, 83, 365, 245, + /* 30 */ 87, 90, 91, 99, 83, 300, 51, 49, 53, 46, + /* 40 */ 43, 59, 92, 61, 87, 90, 91, 99, 83, 110, + /* 50 */ 338, 299, 194, 215, 198, 95, 174, 63, 55, 57, + /* 60 */ 85, 69, 65, 67, 75, 77, 79, 81, 71, 73, + /* 70 */ 51, 49, 53, 46, 43, 59, 92, 61, 87, 90, + /* 80 */ 91, 99, 83, 331, 176, 95, 33, 63, 55, 57, + /* 90 */ 85, 69, 65, 67, 75, 77, 79, 81, 71, 73, + /* 100 */ 51, 49, 53, 46, 43, 59, 92, 61, 87, 90, + /* 110 */ 91, 99, 83, 95, 265, 63, 55, 57, 85, 69, + /* 120 */ 65, 67, 75, 77, 79, 81, 71, 73, 51, 49, + /* 130 */ 53, 46, 43, 59, 92, 61, 87, 90, 91, 99, + /* 140 */ 83, 347, 342, 46, 43, 59, 92, 61, 87, 90, + /* 150 */ 91, 99, 83, 35, 266, 197, 198, 39, 95, 88, + /* 160 */ 63, 55, 57, 85, 69, 65, 67, 75, 77, 79, + /* 170 */ 81, 71, 73, 51, 49, 53, 46, 43, 59, 92, + /* 180 */ 61, 87, 90, 91, 99, 83, 95, 29, 63, 55, + /* 190 */ 57, 85, 69, 65, 67, 75, 77, 79, 81, 71, + /* 200 */ 73, 51, 49, 53, 46, 43, 59, 92, 61, 87, + /* 210 */ 90, 91, 99, 83, 95, 42, 63, 55, 57, 85, + /* 220 */ 69, 65, 67, 75, 77, 79, 81, 71, 73, 51, + /* 230 */ 49, 53, 46, 43, 59, 92, 61, 87, 90, 91, + /* 240 */ 99, 83, 92, 61, 87, 90, 91, 99, 83, 321, + /* 250 */ 322, 323, 324, 325, 326, 309, 327, 276, 287, 118, + /* 260 */ 134, 94, 139, 140, 503, 95, 97, 63, 55, 57, + /* 270 */ 85, 69, 65, 67, 75, 77, 79, 81, 71, 73, + /* 280 */ 51, 49, 53, 46, 43, 59, 92, 61, 87, 90, + /* 290 */ 91, 99, 83, 95, 504, 63, 55, 57, 85, 69, + /* 300 */ 65, 67, 75, 77, 79, 81, 71, 73, 51, 49, + /* 310 */ 53, 46, 43, 59, 92, 61, 87, 90, 91, 99, + /* 320 */ 83, 100, 146, 142, 142, 144, 107, 147, 129, 503, + /* 330 */ 504, 318, 107, 120, 137, 109, 145, 116, 120, 141, + /* 340 */ 141, 114, 105, 116, 120, 219, 95, 171, 63, 55, + /* 350 */ 57, 85, 69, 65, 67, 75, 77, 79, 81, 71, + /* 360 */ 73, 51, 49, 53, 46, 43, 59, 92, 61, 87, + /* 370 */ 90, 91, 99, 83, 95, 183, 63, 55, 57, 85, + /* 380 */ 69, 65, 67, 75, 77, 79, 81, 71, 73, 51, + /* 390 */ 49, 53, 46, 43, 59, 92, 61, 87, 90, 91, + /* 400 */ 99, 83, 95, 190, 63, 55, 57, 85, 69, 65, + /* 410 */ 67, 75, 77, 79, 81, 71, 73, 51, 49, 53, + /* 420 */ 46, 43, 59, 92, 61, 87, 90, 91, 99, 83, + /* 430 */ 100, 173, 131, 28, 93, 180, 107, 228, 100, 187, + /* 440 */ 165, 192, 120, 137, 143, 120, 120, 128, 120, 211, + /* 450 */ 120, 132, 120, 95, 213, 63, 55, 57, 85, 69, + /* 460 */ 65, 67, 75, 77, 79, 81, 71, 73, 51, 49, + /* 470 */ 53, 46, 43, 59, 92, 61, 87, 90, 91, 99, + /* 480 */ 83, 95, 130, 63, 55, 57, 85, 69, 65, 67, + /* 490 */ 75, 77, 79, 81, 71, 73, 51, 49, 53, 46, + /* 500 */ 43, 59, 92, 61, 87, 90, 91, 99, 83, 214, + /* 510 */ 262, 217, 95, 254, 63, 55, 57, 85, 69, 65, + /* 520 */ 67, 75, 77, 79, 81, 71, 73, 51, 49, 53, + /* 530 */ 46, 43, 59, 92, 61, 87, 90, 91, 99, 83, + /* 540 */ 95, 268, 63, 55, 57, 85, 69, 65, 67, 75, + /* 550 */ 77, 79, 81, 71, 73, 51, 49, 53, 46, 43, + /* 560 */ 59, 92, 61, 87, 90, 91, 99, 83, 95, 271, + /* 570 */ 63, 55, 57, 85, 69, 65, 67, 75, 77, 79, + /* 580 */ 81, 71, 73, 51, 49, 53, 46, 43, 59, 92, + /* 590 */ 61, 87, 90, 91, 99, 83, 95, 274, 63, 55, + /* 600 */ 57, 85, 69, 65, 67, 75, 77, 79, 81, 71, + /* 610 */ 73, 51, 49, 53, 46, 43, 59, 92, 61, 87, + /* 620 */ 90, 91, 99, 83, 95, 333, 63, 55, 57, 85, + /* 630 */ 69, 65, 67, 75, 77, 79, 81, 71, 73, 51, + /* 640 */ 49, 53, 46, 43, 59, 92, 61, 87, 90, 91, + /* 650 */ 99, 83, 95, 349, 63, 55, 57, 85, 69, 65, + /* 660 */ 67, 75, 77, 79, 81, 71, 73, 51, 49, 53, + /* 670 */ 46, 43, 59, 92, 61, 87, 90, 91, 99, 83, + /* 680 */ 95, 218, 63, 55, 57, 85, 69, 65, 67, 75, + /* 690 */ 77, 79, 81, 71, 73, 51, 49, 53, 46, 43, + /* 700 */ 59, 92, 61, 87, 90, 91, 227, 83, 524, 1, + /* 710 */ 2, 286, 4, 5, 6, 7, 8, 9, 10, 11, + /* 720 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + /* 730 */ 22, 23, 24, 25, 63, 55, 57, 85, 69, 65, + /* 740 */ 67, 75, 77, 79, 81, 71, 73, 51, 49, 53, + /* 750 */ 46, 43, 59, 92, 61, 87, 90, 91, 99, 83, + /* 760 */ 55, 57, 85, 69, 65, 67, 75, 77, 79, 81, + /* 770 */ 71, 73, 51, 49, 53, 46, 43, 59, 92, 61, + /* 780 */ 87, 90, 91, 99, 83, 30, 286, 4, 5, 6, + /* 790 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + /* 800 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 36, + /* 810 */ 286, 4, 5, 6, 7, 8, 9, 10, 11, 12, + /* 820 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 830 */ 23, 24, 25, 177, 286, 4, 5, 6, 7, 8, + /* 840 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + /* 850 */ 19, 20, 21, 22, 23, 24, 25, 184, 286, 4, + /* 860 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + /* 870 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + /* 880 */ 25, 221, 286, 4, 5, 6, 7, 8, 9, 10, + /* 890 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + /* 900 */ 21, 22, 23, 24, 25, 231, 286, 4, 5, 6, + /* 910 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + /* 920 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 239, + /* 930 */ 286, 4, 5, 6, 7, 8, 9, 10, 11, 12, + /* 940 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 950 */ 23, 24, 25, 246, 286, 4, 5, 6, 7, 8, + /* 960 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + /* 970 */ 19, 20, 21, 22, 23, 24, 25, 278, 286, 4, + /* 980 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + /* 990 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + /* 1000 */ 25, 289, 286, 4, 5, 6, 7, 8, 9, 10, + /* 1010 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + /* 1020 */ 21, 22, 23, 24, 25, 295, 286, 4, 5, 6, + /* 1030 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + /* 1040 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 312, + /* 1050 */ 286, 4, 5, 6, 7, 8, 9, 10, 11, 12, + /* 1060 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 1070 */ 23, 24, 25, 334, 286, 4, 5, 6, 7, 8, + /* 1080 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + /* 1090 */ 19, 20, 21, 22, 23, 24, 25, 343, 286, 4, + /* 1100 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + /* 1110 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + /* 1120 */ 25, 350, 286, 4, 5, 6, 7, 8, 9, 10, + /* 1130 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + /* 1140 */ 21, 22, 23, 24, 25, 3, 4, 5, 6, 7, + /* 1150 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + /* 1160 */ 18, 19, 20, 21, 22, 23, 24, 25, 27, 235, + /* 1170 */ 32, 34, 40, 170, 172, 41, 196, 181, 169, 188, + /* 1180 */ 191, 193, 45, 168, 48, 220, 50, 120, 216, 224, + /* 1190 */ 120, 230, 52, 111, 120, 120, 120, 225, 120, 234, + /* 1200 */ 256, 236, 293, 243, 120, 250, 195, 260, 263, 237, + /* 1210 */ 269, 272, 275, 238, 282, 284, 85, 69, 65, 67, + /* 1220 */ 75, 77, 79, 81, 71, 73, 51, 49, 53, 46, + /* 1230 */ 43, 59, 92, 61, 87, 90, 91, 99, 83, 255, + /* 1240 */ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + /* 1250 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + /* 1260 */ 24, 25, 27, 235, 358, 360, 40, 170, 172, 366, + /* 1270 */ 26, 181, 26, 188, 191, 193, 54, 357, 56, 115, + /* 1280 */ 58, 60, 216, 242, 62, 249, 64, 131, 120, 316, + /* 1290 */ 120, 225, 120, 120, 251, 236, 120, 243, 120, 250, + /* 1300 */ 66, 260, 263, 257, 269, 272, 275, 258, 282, 284, + /* 1310 */ 119, 277, 120, 281, 27, 235, 38, 306, 40, 170, + /* 1320 */ 172, 283, 120, 181, 285, 188, 191, 193, 288, 68, + /* 1330 */ 292, 252, 294, 252, 216, 31, 298, 229, 252, 310, + /* 1340 */ 354, 120, 37, 225, 178, 437, 328, 236, 259, 243, + /* 1350 */ 259, 250, 438, 260, 263, 259, 269, 272, 275, 303, + /* 1360 */ 282, 284, 305, 69, 65, 67, 75, 77, 79, 81, + /* 1370 */ 71, 73, 51, 49, 53, 46, 43, 59, 92, 61, + /* 1380 */ 87, 90, 91, 99, 83, 307, 27, 235, 70, 308, + /* 1390 */ 40, 170, 172, 311, 179, 181, 252, 188, 191, 193, + /* 1400 */ 120, 252, 315, 252, 244, 252, 216, 252, 319, 185, + /* 1410 */ 318, 222, 317, 259, 330, 225, 120, 320, 259, 236, + /* 1420 */ 259, 243, 259, 250, 259, 260, 263, 232, 269, 272, + /* 1430 */ 275, 301, 282, 284, 337, 339, 340, 346, 27, 235, + /* 1440 */ 209, 353, 40, 170, 172, 356, 212, 181, 186, 188, + /* 1450 */ 191, 193, 359, 240, 253, 361, 332, 362, 216, 290, + /* 1460 */ 363, 199, 201, 203, 205, 207, 120, 225, 120, 364, + /* 1470 */ 252, 236, 252, 243, 247, 250, 290, 260, 263, 279, + /* 1480 */ 269, 272, 275, 290, 282, 284, 290, 259, 252, 259, + /* 1490 */ 27, 235, 252, 290, 40, 170, 172, 290, 296, 181, + /* 1500 */ 290, 188, 191, 193, 72, 259, 290, 290, 74, 259, + /* 1510 */ 216, 290, 223, 290, 252, 290, 120, 290, 290, 225, + /* 1520 */ 120, 290, 290, 236, 290, 243, 290, 250, 290, 260, + /* 1530 */ 263, 259, 269, 272, 275, 252, 282, 284, 76, 290, + /* 1540 */ 252, 290, 27, 235, 252, 290, 40, 170, 172, 290, + /* 1550 */ 120, 181, 259, 188, 191, 193, 78, 259, 290, 252, + /* 1560 */ 290, 259, 216, 290, 290, 290, 290, 290, 120, 290, + /* 1570 */ 290, 225, 233, 290, 290, 236, 259, 243, 313, 250, + /* 1580 */ 80, 260, 263, 335, 269, 272, 275, 344, 282, 284, + /* 1590 */ 290, 290, 120, 290, 27, 235, 82, 84, 40, 170, + /* 1600 */ 172, 86, 351, 181, 89, 188, 191, 193, 120, 120, + /* 1610 */ 290, 290, 96, 120, 216, 290, 120, 290, 98, 290, + /* 1620 */ 102, 290, 290, 225, 120, 290, 290, 236, 241, 243, + /* 1630 */ 120, 250, 120, 260, 263, 290, 269, 272, 275, 252, + /* 1640 */ 282, 284, 104, 290, 252, 290, 27, 235, 252, 290, + /* 1650 */ 40, 170, 172, 290, 120, 181, 259, 188, 191, 193, + /* 1660 */ 135, 259, 290, 252, 167, 259, 216, 290, 290, 290, + /* 1670 */ 290, 290, 120, 290, 290, 225, 120, 290, 290, 236, + /* 1680 */ 259, 243, 248, 250, 290, 260, 263, 290, 269, 272, + /* 1690 */ 275, 290, 282, 284, 175, 290, 182, 290, 27, 235, + /* 1700 */ 189, 200, 40, 170, 172, 202, 120, 181, 120, 188, + /* 1710 */ 191, 193, 120, 120, 204, 290, 206, 120, 216, 290, + /* 1720 */ 208, 290, 210, 290, 226, 290, 120, 225, 120, 290, + /* 1730 */ 290, 236, 120, 243, 120, 250, 120, 260, 263, 290, + /* 1740 */ 269, 272, 275, 280, 282, 284, 261, 290, 264, 290, + /* 1750 */ 27, 235, 290, 267, 40, 170, 172, 270, 120, 181, + /* 1760 */ 120, 188, 191, 193, 273, 120, 290, 290, 341, 120, + /* 1770 */ 216, 290, 348, 290, 290, 290, 120, 290, 290, 225, + /* 1780 */ 120, 290, 290, 236, 120, 243, 290, 250, 290, 260, + /* 1790 */ 263, 290, 269, 272, 275, 291, 282, 284, 290, 290, + /* 1800 */ 290, 290, 27, 235, 290, 290, 40, 170, 172, 290, + /* 1810 */ 290, 181, 290, 188, 191, 193, 290, 290, 290, 290, + /* 1820 */ 290, 290, 216, 290, 290, 290, 290, 290, 290, 290, + /* 1830 */ 290, 225, 290, 290, 290, 236, 290, 243, 297, 250, + /* 1840 */ 290, 260, 263, 290, 269, 272, 275, 290, 282, 284, + /* 1850 */ 290, 290, 290, 290, 27, 235, 290, 290, 40, 170, + /* 1860 */ 172, 290, 290, 181, 290, 188, 191, 193, 290, 290, + /* 1870 */ 290, 290, 290, 290, 216, 290, 290, 290, 290, 290, + /* 1880 */ 290, 290, 290, 225, 290, 290, 290, 236, 302, 243, + /* 1890 */ 290, 250, 290, 260, 263, 290, 269, 272, 275, 290, + /* 1900 */ 282, 284, 290, 290, 290, 290, 27, 235, 290, 290, + /* 1910 */ 40, 170, 172, 290, 290, 181, 290, 188, 191, 193, + /* 1920 */ 290, 290, 290, 290, 290, 290, 216, 290, 314, 290, + /* 1930 */ 290, 290, 290, 290, 290, 225, 290, 290, 290, 236, + /* 1940 */ 290, 243, 290, 250, 290, 260, 263, 290, 269, 272, + /* 1950 */ 275, 290, 282, 284, 290, 290, 290, 290, 27, 235, + /* 1960 */ 290, 290, 40, 170, 172, 290, 290, 181, 329, 188, + /* 1970 */ 191, 193, 290, 290, 290, 290, 290, 290, 216, 290, + /* 1980 */ 290, 290, 290, 290, 290, 290, 290, 225, 290, 290, + /* 1990 */ 290, 236, 290, 243, 290, 250, 290, 260, 263, 290, + /* 2000 */ 269, 272, 275, 290, 282, 284, 290, 290, 290, 290, + /* 2010 */ 27, 235, 290, 290, 40, 170, 172, 290, 336, 181, + /* 2020 */ 290, 188, 191, 193, 290, 290, 290, 290, 290, 290, + /* 2030 */ 216, 290, 290, 290, 290, 290, 290, 290, 290, 225, + /* 2040 */ 290, 290, 290, 236, 290, 243, 290, 250, 290, 260, + /* 2050 */ 263, 290, 269, 272, 275, 290, 282, 284, 290, 290, + /* 2060 */ 290, 290, 27, 235, 290, 290, 40, 170, 172, 290, + /* 2070 */ 345, 181, 290, 188, 191, 193, 290, 290, 290, 290, + /* 2080 */ 290, 290, 216, 290, 290, 290, 290, 290, 290, 290, + /* 2090 */ 290, 225, 290, 290, 290, 236, 290, 243, 290, 250, + /* 2100 */ 290, 260, 263, 290, 269, 272, 275, 290, 282, 284, + /* 2110 */ 290, 290, 290, 290, 27, 235, 290, 290, 40, 170, + /* 2120 */ 172, 290, 352, 181, 290, 188, 191, 193, 290, 290, + /* 2130 */ 290, 290, 290, 290, 216, 290, 290, 290, 290, 290, + /* 2140 */ 290, 290, 290, 225, 290, 290, 290, 236, 290, 243, + /* 2150 */ 290, 250, 290, 260, 263, 290, 269, 272, 275, 290, + /* 2160 */ 282, 284, 290, 290, 290, 290, 27, 235, 355, 290, + /* 2170 */ 40, 170, 172, 290, 290, 181, 290, 188, 191, 193, + /* 2180 */ 290, 290, 290, 290, 290, 290, 216, 290, 290, 290, + /* 2190 */ 290, 290, 290, 290, 290, 225, 290, 290, 290, 236, + /* 2200 */ 290, 243, 290, 250, 290, 260, 263, 290, 269, 272, + /* 2210 */ 275, 290, 282, 284, 290, 290, 290, 290, 27, 235, + /* 2220 */ 290, 290, 40, 170, 172, 290, 290, 181, 290, 188, + /* 2230 */ 191, 193, 290, 290, 290, 290, 290, 290, 216, 290, + /* 2240 */ 290, 290, 290, 290, 290, 290, 290, 225, 290, 290, + /* 2250 */ 290, 236, 290, 243, 290, 250, 290, 260, 263, 290, + /* 2260 */ 269, 272, 275, 290, 282, 284, 290, 290, 290, 47, + /* 2270 */ 44, 290, 106, 290, 101, 290, 290, 103, 290, 47, + /* 2280 */ 44, 290, 106, 290, 101, 290, 121, 103, 290, 290, + /* 2290 */ 290, 290, 290, 290, 290, 290, 121, 290, 290, 290, + /* 2300 */ 290, 290, 122, 123, 124, 125, 126, 127, 290, 290, + /* 2310 */ 290, 290, 122, 123, 124, 125, 126, 127, 290, 290, + /* 2320 */ 290, 290, 290, 290, 290, 290, 290, 290, 157, 158, + /* 2330 */ 159, 160, 161, 162, 163, 112, 290, 290, 150, 151, + /* 2340 */ 152, 153, 154, 155, 156, 112, 290, 290, 166, 290, + /* 2350 */ 47, 44, 290, 106, 290, 101, 138, 164, 103, 290, + /* 2360 */ 47, 44, 290, 106, 290, 101, 290, 121, 103, 290, + /* 2370 */ 290, 290, 290, 47, 44, 290, 106, 121, 101, 290, + /* 2380 */ 290, 103, 290, 122, 123, 124, 125, 126, 127, 290, + /* 2390 */ 149, 290, 290, 122, 123, 124, 125, 126, 127, 290, + /* 2400 */ 290, 290, 290, 290, 290, 290, 148, 123, 124, 125, + /* 2410 */ 126, 127, 47, 44, 290, 106, 112, 101, 290, 290, + /* 2420 */ 103, 290, 290, 290, 290, 290, 112, 290, 290, 121, + /* 2430 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 112, + /* 2440 */ 290, 290, 290, 136, 290, 122, 133, 124, 125, 126, + /* 2450 */ 127, 47, 44, 290, 106, 290, 101, 290, 290, 103, + /* 2460 */ 290, 290, 290, 290, 290, 290, 290, 290, 121, 290, + /* 2470 */ 290, 290, 290, 290, 47, 44, 290, 106, 112, 101, + /* 2480 */ 108, 290, 103, 290, 122, 117, 124, 125, 126, 127, + /* 2490 */ 290, 121, 290, 290, 290, 290, 47, 44, 290, 106, + /* 2500 */ 290, 101, 290, 290, 103, 290, 290, 122, 117, 124, + /* 2510 */ 125, 126, 127, 121, 290, 290, 290, 112, 47, 44, + /* 2520 */ 290, 106, 290, 101, 290, 290, 103, 304, 290, 122, + /* 2530 */ 133, 124, 125, 126, 127, 121, 290, 290, 290, 290, + /* 2540 */ 112, 113, 290, 290, 290, 290, 290, 290, 290, 290, + /* 2550 */ 290, 122, 123, 124, 125, 126, 127, 290, 290, 290, + /* 2560 */ 290, 290, 112, 47, 44, 290, 106, 290, 101, 290, + /* 2570 */ 290, 103, 290, 47, 44, 290, 106, 290, 101, 290, + /* 2580 */ 121, 103, 290, 290, 112, 290, 290, 290, 290, 290, + /* 2590 */ 121, 290, 290, 290, 290, 290, 122, 117, 124, 125, + /* 2600 */ 126, 127, 290, 290, 290, 290, 122, 133, 124, 125, + /* 2610 */ 126, 127, 290, 290, 290, 290, 290, 290, 290, 290, + /* 2620 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 112, + /* 2630 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 112, +}; +static VVCODETYPE vv_lookahead[] = { + /* 0 */ 3, 2, 5, 6, 7, 8, 9, 10, 11, 12, + /* 10 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 20 */ 23, 24, 25, 26, 27, 28, 29, 30, 0, 32, + /* 30 */ 26, 27, 28, 29, 30, 38, 18, 19, 20, 21, + /* 40 */ 22, 23, 24, 25, 26, 27, 28, 29, 30, 50, + /* 50 */ 2, 54, 117, 118, 119, 3, 8, 5, 6, 7, + /* 60 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + /* 70 */ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + /* 80 */ 28, 29, 30, 31, 32, 3, 32, 5, 6, 7, + /* 90 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + /* 100 */ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + /* 110 */ 28, 29, 30, 3, 32, 5, 6, 7, 8, 9, + /* 120 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + /* 130 */ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + /* 140 */ 30, 31, 32, 21, 22, 23, 24, 25, 26, 27, + /* 150 */ 28, 29, 30, 32, 72, 118, 119, 32, 3, 8, + /* 160 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + /* 170 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + /* 180 */ 25, 26, 27, 28, 29, 30, 3, 32, 5, 6, + /* 190 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + /* 200 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + /* 210 */ 27, 28, 29, 30, 3, 32, 5, 6, 7, 8, + /* 220 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + /* 230 */ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + /* 240 */ 29, 30, 24, 25, 26, 27, 28, 29, 30, 54, + /* 250 */ 55, 56, 57, 58, 59, 120, 121, 58, 59, 4, + /* 260 */ 4, 50, 126, 50, 50, 3, 4, 5, 6, 7, + /* 270 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + /* 280 */ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + /* 290 */ 28, 29, 30, 3, 50, 5, 6, 7, 8, 9, + /* 300 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + /* 310 */ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + /* 320 */ 30, 116, 126, 38, 38, 4, 116, 50, 123, 4, + /* 330 */ 4, 38, 116, 128, 129, 125, 50, 127, 128, 54, + /* 340 */ 54, 125, 52, 127, 128, 52, 3, 32, 5, 6, + /* 350 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + /* 360 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + /* 370 */ 27, 28, 29, 30, 3, 32, 5, 6, 7, 8, + /* 380 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + /* 390 */ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + /* 400 */ 29, 30, 3, 32, 5, 6, 7, 8, 9, 10, + /* 410 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + /* 420 */ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + /* 430 */ 116, 38, 2, 116, 116, 32, 116, 123, 116, 32, + /* 440 */ 116, 32, 128, 129, 126, 128, 128, 127, 128, 50, + /* 450 */ 128, 129, 128, 3, 38, 5, 6, 7, 8, 9, + /* 460 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + /* 470 */ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + /* 480 */ 30, 3, 52, 5, 6, 7, 8, 9, 10, 11, + /* 490 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + /* 500 */ 22, 23, 24, 25, 26, 27, 28, 29, 30, 119, + /* 510 */ 32, 38, 3, 63, 5, 6, 7, 8, 9, 10, + /* 520 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + /* 530 */ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + /* 540 */ 3, 32, 5, 6, 7, 8, 9, 10, 11, 12, + /* 550 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 560 */ 23, 24, 25, 26, 27, 28, 29, 30, 3, 32, + /* 570 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + /* 580 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + /* 590 */ 25, 26, 27, 28, 29, 30, 3, 32, 5, 6, + /* 600 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + /* 610 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + /* 620 */ 27, 28, 29, 30, 3, 32, 5, 6, 7, 8, + /* 630 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + /* 640 */ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + /* 650 */ 29, 30, 3, 32, 5, 6, 7, 8, 9, 10, + /* 660 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + /* 670 */ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + /* 680 */ 3, 29, 5, 6, 7, 8, 9, 10, 11, 12, + /* 690 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + /* 700 */ 23, 24, 25, 26, 27, 28, 29, 30, 90, 91, + /* 710 */ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + /* 720 */ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + /* 730 */ 112, 113, 114, 115, 5, 6, 7, 8, 9, 10, + /* 740 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + /* 750 */ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + /* 760 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + /* 770 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + /* 780 */ 26, 27, 28, 29, 30, 92, 93, 94, 95, 96, + /* 790 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + /* 800 */ 107, 108, 109, 110, 111, 112, 113, 114, 115, 92, + /* 810 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + /* 820 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + /* 830 */ 113, 114, 115, 92, 93, 94, 95, 96, 97, 98, + /* 840 */ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + /* 850 */ 109, 110, 111, 112, 113, 114, 115, 92, 93, 94, + /* 860 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + /* 870 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + /* 880 */ 115, 92, 93, 94, 95, 96, 97, 98, 99, 100, + /* 890 */ 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + /* 900 */ 111, 112, 113, 114, 115, 92, 93, 94, 95, 96, + /* 910 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + /* 920 */ 107, 108, 109, 110, 111, 112, 113, 114, 115, 92, + /* 930 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + /* 940 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + /* 950 */ 113, 114, 115, 92, 93, 94, 95, 96, 97, 98, + /* 960 */ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + /* 970 */ 109, 110, 111, 112, 113, 114, 115, 92, 93, 94, + /* 980 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + /* 990 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + /* 1000 */ 115, 92, 93, 94, 95, 96, 97, 98, 99, 100, + /* 1010 */ 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + /* 1020 */ 111, 112, 113, 114, 115, 92, 93, 94, 95, 96, + /* 1030 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + /* 1040 */ 107, 108, 109, 110, 111, 112, 113, 114, 115, 92, + /* 1050 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + /* 1060 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + /* 1070 */ 113, 114, 115, 92, 93, 94, 95, 96, 97, 98, + /* 1080 */ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + /* 1090 */ 109, 110, 111, 112, 113, 114, 115, 92, 93, 94, + /* 1100 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + /* 1110 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + /* 1120 */ 115, 92, 93, 94, 95, 96, 97, 98, 99, 100, + /* 1130 */ 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + /* 1140 */ 111, 112, 113, 114, 115, 93, 94, 95, 96, 97, + /* 1150 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + /* 1160 */ 108, 109, 110, 111, 112, 113, 114, 115, 31, 32, + /* 1170 */ 33, 34, 35, 36, 37, 116, 2, 40, 116, 42, + /* 1180 */ 43, 44, 116, 116, 116, 32, 116, 128, 51, 32, + /* 1190 */ 128, 32, 116, 2, 128, 128, 128, 60, 128, 32, + /* 1200 */ 1, 64, 124, 66, 128, 68, 32, 70, 71, 38, + /* 1210 */ 73, 74, 75, 32, 77, 78, 8, 9, 10, 11, + /* 1220 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + /* 1230 */ 22, 23, 24, 25, 26, 27, 28, 29, 30, 93, + /* 1240 */ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + /* 1250 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + /* 1260 */ 114, 115, 31, 32, 33, 34, 35, 36, 37, 0, + /* 1270 */ 1, 40, 1, 42, 43, 44, 116, 1, 116, 88, + /* 1280 */ 116, 116, 51, 32, 116, 32, 116, 2, 128, 2, + /* 1290 */ 128, 60, 128, 128, 32, 64, 128, 66, 128, 68, + /* 1300 */ 116, 70, 71, 69, 73, 74, 75, 32, 77, 78, + /* 1310 */ 116, 32, 128, 32, 31, 32, 33, 1, 35, 36, + /* 1320 */ 37, 32, 128, 40, 32, 42, 43, 44, 32, 116, + /* 1330 */ 32, 62, 32, 62, 51, 1, 32, 52, 62, 52, + /* 1340 */ 1, 128, 1, 60, 1, 32, 1, 64, 79, 66, + /* 1350 */ 79, 68, 32, 70, 71, 79, 73, 74, 75, 32, + /* 1360 */ 77, 78, 32, 9, 10, 11, 12, 13, 14, 15, + /* 1370 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + /* 1380 */ 26, 27, 28, 29, 30, 61, 31, 32, 116, 32, + /* 1390 */ 35, 36, 37, 32, 39, 40, 62, 42, 43, 44, + /* 1400 */ 128, 62, 32, 62, 116, 62, 51, 62, 45, 1, + /* 1410 */ 38, 1, 121, 79, 32, 60, 128, 122, 79, 64, + /* 1420 */ 79, 66, 79, 68, 79, 70, 71, 1, 73, 74, + /* 1430 */ 75, 1, 77, 78, 32, 38, 8, 32, 31, 32, + /* 1440 */ 24, 32, 35, 36, 37, 32, 30, 40, 41, 42, + /* 1450 */ 43, 44, 32, 1, 116, 32, 116, 1, 51, 130, + /* 1460 */ 33, 45, 46, 47, 48, 49, 128, 60, 128, 32, + /* 1470 */ 62, 64, 62, 66, 1, 68, 130, 70, 71, 1, + /* 1480 */ 73, 74, 75, 1, 77, 78, 130, 79, 62, 79, + /* 1490 */ 31, 32, 62, 130, 35, 36, 37, 130, 1, 40, + /* 1500 */ 130, 42, 43, 44, 116, 79, 130, 130, 116, 79, + /* 1510 */ 51, 130, 53, 130, 62, 130, 128, 130, 130, 60, + /* 1520 */ 128, 130, 130, 64, 130, 66, 130, 68, 130, 70, + /* 1530 */ 71, 79, 73, 74, 75, 62, 77, 78, 116, 130, + /* 1540 */ 62, 130, 31, 32, 62, 130, 35, 36, 37, 130, + /* 1550 */ 128, 40, 79, 42, 43, 44, 116, 79, 130, 62, + /* 1560 */ 130, 79, 51, 130, 130, 130, 130, 130, 128, 130, + /* 1570 */ 130, 60, 61, 130, 130, 64, 79, 66, 1, 68, + /* 1580 */ 116, 70, 71, 1, 73, 74, 75, 1, 77, 78, + /* 1590 */ 130, 130, 128, 130, 31, 32, 116, 116, 35, 36, + /* 1600 */ 37, 116, 1, 40, 116, 42, 43, 44, 128, 128, + /* 1610 */ 130, 130, 116, 128, 51, 130, 128, 130, 116, 130, + /* 1620 */ 116, 130, 130, 60, 128, 130, 130, 64, 65, 66, + /* 1630 */ 128, 68, 128, 70, 71, 130, 73, 74, 75, 62, + /* 1640 */ 77, 78, 116, 130, 62, 130, 31, 32, 62, 130, + /* 1650 */ 35, 36, 37, 130, 128, 40, 79, 42, 43, 44, + /* 1660 */ 116, 79, 130, 62, 116, 79, 51, 130, 130, 130, + /* 1670 */ 130, 130, 128, 130, 130, 60, 128, 130, 130, 64, + /* 1680 */ 79, 66, 67, 68, 130, 70, 71, 130, 73, 74, + /* 1690 */ 75, 130, 77, 78, 116, 130, 116, 130, 31, 32, + /* 1700 */ 116, 116, 35, 36, 37, 116, 128, 40, 128, 42, + /* 1710 */ 43, 44, 128, 128, 116, 130, 116, 128, 51, 130, + /* 1720 */ 116, 130, 116, 130, 116, 130, 128, 60, 128, 130, + /* 1730 */ 130, 64, 128, 66, 128, 68, 128, 70, 71, 130, + /* 1740 */ 73, 74, 75, 76, 77, 78, 116, 130, 116, 130, + /* 1750 */ 31, 32, 130, 116, 35, 36, 37, 116, 128, 40, + /* 1760 */ 128, 42, 43, 44, 116, 128, 130, 130, 116, 128, + /* 1770 */ 51, 130, 116, 130, 130, 130, 128, 130, 130, 60, + /* 1780 */ 128, 130, 130, 64, 128, 66, 130, 68, 130, 70, + /* 1790 */ 71, 130, 73, 74, 75, 76, 77, 78, 130, 130, + /* 1800 */ 130, 130, 31, 32, 130, 130, 35, 36, 37, 130, + /* 1810 */ 130, 40, 130, 42, 43, 44, 130, 130, 130, 130, + /* 1820 */ 130, 130, 51, 130, 130, 130, 130, 130, 130, 130, + /* 1830 */ 130, 60, 130, 130, 130, 64, 130, 66, 67, 68, + /* 1840 */ 130, 70, 71, 130, 73, 74, 75, 130, 77, 78, + /* 1850 */ 130, 130, 130, 130, 31, 32, 130, 130, 35, 36, + /* 1860 */ 37, 130, 130, 40, 130, 42, 43, 44, 130, 130, + /* 1870 */ 130, 130, 130, 130, 51, 130, 130, 130, 130, 130, + /* 1880 */ 130, 130, 130, 60, 130, 130, 130, 64, 65, 66, + /* 1890 */ 130, 68, 130, 70, 71, 130, 73, 74, 75, 130, + /* 1900 */ 77, 78, 130, 130, 130, 130, 31, 32, 130, 130, + /* 1910 */ 35, 36, 37, 130, 130, 40, 130, 42, 43, 44, + /* 1920 */ 130, 130, 130, 130, 130, 130, 51, 130, 53, 130, + /* 1930 */ 130, 130, 130, 130, 130, 60, 130, 130, 130, 64, + /* 1940 */ 130, 66, 130, 68, 130, 70, 71, 130, 73, 74, + /* 1950 */ 75, 130, 77, 78, 130, 130, 130, 130, 31, 32, + /* 1960 */ 130, 130, 35, 36, 37, 130, 130, 40, 41, 42, + /* 1970 */ 43, 44, 130, 130, 130, 130, 130, 130, 51, 130, + /* 1980 */ 130, 130, 130, 130, 130, 130, 130, 60, 130, 130, + /* 1990 */ 130, 64, 130, 66, 130, 68, 130, 70, 71, 130, + /* 2000 */ 73, 74, 75, 130, 77, 78, 130, 130, 130, 130, + /* 2010 */ 31, 32, 130, 130, 35, 36, 37, 130, 39, 40, + /* 2020 */ 130, 42, 43, 44, 130, 130, 130, 130, 130, 130, + /* 2030 */ 51, 130, 130, 130, 130, 130, 130, 130, 130, 60, + /* 2040 */ 130, 130, 130, 64, 130, 66, 130, 68, 130, 70, + /* 2050 */ 71, 130, 73, 74, 75, 130, 77, 78, 130, 130, + /* 2060 */ 130, 130, 31, 32, 130, 130, 35, 36, 37, 130, + /* 2070 */ 39, 40, 130, 42, 43, 44, 130, 130, 130, 130, + /* 2080 */ 130, 130, 51, 130, 130, 130, 130, 130, 130, 130, + /* 2090 */ 130, 60, 130, 130, 130, 64, 130, 66, 130, 68, + /* 2100 */ 130, 70, 71, 130, 73, 74, 75, 130, 77, 78, + /* 2110 */ 130, 130, 130, 130, 31, 32, 130, 130, 35, 36, + /* 2120 */ 37, 130, 39, 40, 130, 42, 43, 44, 130, 130, + /* 2130 */ 130, 130, 130, 130, 51, 130, 130, 130, 130, 130, + /* 2140 */ 130, 130, 130, 60, 130, 130, 130, 64, 130, 66, + /* 2150 */ 130, 68, 130, 70, 71, 130, 73, 74, 75, 130, + /* 2160 */ 77, 78, 130, 130, 130, 130, 31, 32, 33, 130, + /* 2170 */ 35, 36, 37, 130, 130, 40, 130, 42, 43, 44, + /* 2180 */ 130, 130, 130, 130, 130, 130, 51, 130, 130, 130, + /* 2190 */ 130, 130, 130, 130, 130, 60, 130, 130, 130, 64, + /* 2200 */ 130, 66, 130, 68, 130, 70, 71, 130, 73, 74, + /* 2210 */ 75, 130, 77, 78, 130, 130, 130, 130, 31, 32, + /* 2220 */ 130, 130, 35, 36, 37, 130, 130, 40, 130, 42, + /* 2230 */ 43, 44, 130, 130, 130, 130, 130, 130, 51, 130, + /* 2240 */ 130, 130, 130, 130, 130, 130, 130, 60, 130, 130, + /* 2250 */ 130, 64, 130, 66, 130, 68, 130, 70, 71, 130, + /* 2260 */ 73, 74, 75, 130, 77, 78, 130, 130, 130, 21, + /* 2270 */ 22, 130, 24, 130, 26, 130, 130, 29, 130, 21, + /* 2280 */ 22, 130, 24, 130, 26, 130, 38, 29, 130, 130, + /* 2290 */ 130, 130, 130, 130, 130, 130, 38, 130, 130, 130, + /* 2300 */ 130, 130, 54, 55, 56, 57, 58, 59, 130, 130, + /* 2310 */ 130, 130, 54, 55, 56, 57, 58, 59, 130, 130, + /* 2320 */ 130, 130, 130, 130, 130, 130, 130, 130, 80, 81, + /* 2330 */ 82, 83, 84, 85, 86, 87, 130, 130, 80, 81, + /* 2340 */ 82, 83, 84, 85, 86, 87, 130, 130, 19, 130, + /* 2350 */ 21, 22, 130, 24, 130, 26, 4, 18, 29, 130, + /* 2360 */ 21, 22, 130, 24, 130, 26, 130, 38, 29, 130, + /* 2370 */ 130, 130, 130, 21, 22, 130, 24, 38, 26, 130, + /* 2380 */ 130, 29, 130, 54, 55, 56, 57, 58, 59, 130, + /* 2390 */ 38, 130, 130, 54, 55, 56, 57, 58, 59, 130, + /* 2400 */ 130, 130, 130, 130, 130, 130, 54, 55, 56, 57, + /* 2410 */ 58, 59, 21, 22, 130, 24, 87, 26, 130, 130, + /* 2420 */ 29, 130, 130, 130, 130, 130, 87, 130, 130, 38, + /* 2430 */ 130, 130, 130, 130, 130, 130, 130, 130, 130, 87, + /* 2440 */ 130, 130, 130, 52, 130, 54, 55, 56, 57, 58, + /* 2450 */ 59, 21, 22, 130, 24, 130, 26, 130, 130, 29, + /* 2460 */ 130, 130, 130, 130, 130, 130, 130, 130, 38, 130, + /* 2470 */ 130, 130, 130, 130, 21, 22, 130, 24, 87, 26, + /* 2480 */ 50, 130, 29, 130, 54, 55, 56, 57, 58, 59, + /* 2490 */ 130, 38, 130, 130, 130, 130, 21, 22, 130, 24, + /* 2500 */ 130, 26, 130, 130, 29, 130, 130, 54, 55, 56, + /* 2510 */ 57, 58, 59, 38, 130, 130, 130, 87, 21, 22, + /* 2520 */ 130, 24, 130, 26, 130, 130, 29, 52, 130, 54, + /* 2530 */ 55, 56, 57, 58, 59, 38, 130, 130, 130, 130, + /* 2540 */ 87, 88, 130, 130, 130, 130, 130, 130, 130, 130, + /* 2550 */ 130, 54, 55, 56, 57, 58, 59, 130, 130, 130, + /* 2560 */ 130, 130, 87, 21, 22, 130, 24, 130, 26, 130, + /* 2570 */ 130, 29, 130, 21, 22, 130, 24, 130, 26, 130, + /* 2580 */ 38, 29, 130, 130, 87, 130, 130, 130, 130, 130, + /* 2590 */ 38, 130, 130, 130, 130, 130, 54, 55, 56, 57, + /* 2600 */ 58, 59, 130, 130, 130, 130, 54, 55, 56, 57, + /* 2610 */ 58, 59, 130, 130, 130, 130, 130, 130, 130, 130, + /* 2620 */ 130, 130, 130, 130, 130, 130, 130, 130, 130, 87, + /* 2630 */ 130, 130, 130, 130, 130, 130, 130, 130, 130, 87, +}; +#define VV_SHIFT_USE_DFLT (-4) +static short vv_shift_ofst[] = { + /* 0 */ 1271, 28, 1269, -4, -4, -4, -4, -4, -4, -4, + /* 10 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* 20 */ -4, -4, -4, -4, -4, -4, 2187, 2497, 155, 1276, + /* 30 */ 1334, 1137, 54, -4, 121, 1339, 1341, 1283, 125, -4, + /* 40 */ 2497, 183, -4, 2497, 2497, 218, 2497, 2497, 218, 2329, + /* 50 */ 122, 2339, 122, 2497, 122, 2497, 1208, 2497, 1208, 2497, + /* 60 */ 218, 2497, 4, 2497, 754, 2497, 18, 2248, 18, 2258, + /* 70 */ 18, 2497, 18, 2497, 18, 2497, 18, 2497, 18, 2497, + /* 80 */ 18, 2497, 18, 2497, -4, 2497, 1354, 151, 2497, 4, + /* 90 */ -4, -4, 2352, 211, -4, 2497, 262, 2497, 729, 2391, + /* 100 */ 649, 2497, 4, 2497, 290, -4, 2430, 649, -4, -1, + /* 110 */ -4, 2542, 2453, -4, 1191, -4, -4, 255, 2497, 649, + /* 120 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, 430, + /* 130 */ -4, 2552, -4, 256, 2497, 649, -4, -4, 285, 213, + /* 140 */ -4, 214, 244, 321, 286, -4, 277, -4, 325, 326, + /* 150 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* 160 */ -4, -4, -4, -4, 2497, 122, 2497, 122, 218, 218, + /* 170 */ 315, -4, 393, 48, 2497, 52, 1271, 1343, 1355, 403, + /* 180 */ -4, 2497, 343, 1345, 1408, 1407, 407, -4, 2497, 371, + /* 190 */ -4, 409, -4, 416, 1174, -4, 416, -4, 1416, 2497, + /* 200 */ 649, 2497, 649, 2497, 649, 2497, 649, 2497, 649, 2497, + /* 210 */ 399, -4, 416, -4, -4, -4, 473, 652, 293, 1153, + /* 220 */ 1271, 1410, 1459, 1157, -4, 2497, 677, 2475, 1285, 1159, + /* 230 */ 1271, 1426, 1511, 1167, -4, -4, 1171, 1181, 1430, 1452, + /* 240 */ 1563, 1251, -4, 2497, -3, 1271, 1473, 1615, 1253, -4, + /* 250 */ 1262, 1271, 2497, 450, -4, 1199, 1234, 1275, -4, -4, + /* 260 */ 2497, 478, -4, 2497, 82, -4, 2497, 509, -4, 2497, + /* 270 */ 537, -4, 2497, 565, -4, 199, 1279, 1271, 1478, 1667, + /* 280 */ 1281, -4, 1289, -4, 1292, -4, -4, 1296, 1271, 1482, + /* 290 */ 1719, 1298, -4, 1300, 1271, 1497, 1771, 1304, -4, 1313, + /* 300 */ 1320, 1823, 1327, -4, 1330, 1316, 1324, 1357, -4, 1287, + /* 310 */ 1361, 1271, 1577, 1875, 1370, -4, 1372, -4, 1363, 195, + /* 320 */ -4, -4, -4, -4, -4, -4, -4, -4, 1927, 1382, + /* 330 */ -4, 2497, 593, 1271, 1582, 1979, 1402, -4, 1397, 1428, + /* 340 */ 2497, 110, 1271, 1586, 2031, 1405, -4, 2497, 621, 1271, + /* 350 */ 1601, 2083, 1409, -4, 2135, 1413, -4, 1231, 1420, -4, + /* 360 */ 1423, 1456, 1427, 1437, -4, +}; +#define VV_REDUCE_USE_DFLT (-66) +static short vv_reduce_ofst[] = { + /* 0 */ 618, -66, 1052, -66, -66, -66, -66, -66, -66, -66, + /* 10 */ -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, + /* 20 */ -66, -66, -66, -66, -66, -66, -66, 317, -66, 693, + /* 30 */ 1052, -66, -66, -66, -66, 717, 1052, -66, -66, -66, + /* 40 */ 1059, -66, -66, 1062, 1066, -66, 1067, 1068, -66, 1070, + /* 50 */ -66, 1076, -66, 1160, -66, 1162, -66, 1164, -66, 1165, + /* 60 */ -66, 1168, -66, 1170, -66, 1184, -66, 1213, -66, 1272, + /* 70 */ -66, 1388, -66, 1392, -66, 1422, -66, 1440, -66, 1464, + /* 80 */ -66, 1480, -66, 1481, -66, 1485, -66, -66, 1488, -66, + /* 90 */ -66, -66, 318, -66, -66, 1496, -66, 1502, -66, 205, + /* 100 */ -66, 1504, -66, 1526, -66, -66, 210, -66, -66, -66, + /* 110 */ -66, 320, 216, -66, -66, -66, -66, -66, 1194, -66, + /* 120 */ -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, + /* 130 */ -66, 322, -66, -66, 1544, -66, -66, -66, 136, -66, + /* 140 */ -66, -66, -66, -66, 196, -66, -66, -66, -66, -66, + /* 150 */ -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, + /* 160 */ -66, -66, -66, -66, 324, -66, 1548, -66, -66, -66, + /* 170 */ -66, -66, -66, -66, 1578, -66, 741, 1052, -66, -66, + /* 180 */ -66, 1580, -66, 765, 1052, -66, -66, -66, 1584, -66, + /* 190 */ -66, -66, -66, -65, -66, -66, 37, -66, -66, 1585, + /* 200 */ -66, 1589, -66, 1598, -66, 1600, -66, 1604, -66, 1606, + /* 210 */ -66, -66, 390, -66, -66, -66, -66, -66, 135, -66, + /* 220 */ 789, 1052, -66, -66, -66, 1608, -66, 314, -66, -66, + /* 230 */ 813, 1052, -66, -66, -66, -66, -66, -66, 837, 1052, + /* 240 */ -66, -66, -66, 1288, 1078, 861, 1052, -66, -66, -66, + /* 250 */ -66, 1146, 1338, -66, -66, -66, -66, -66, -66, -66, + /* 260 */ 1630, -66, -66, 1632, -66, -66, 1637, -66, -66, 1641, + /* 270 */ -66, -66, 1648, -66, -66, -66, -66, 885, 1052, -66, + /* 280 */ -66, -66, -66, -66, -66, -66, -66, -66, 909, 1052, + /* 290 */ -66, -66, -66, -66, 933, 1052, -66, -66, -66, -66, + /* 300 */ -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, + /* 310 */ -66, 957, 1052, -66, -66, -66, 1291, -66, -66, 1295, + /* 320 */ -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, + /* 330 */ -66, 1340, -66, 981, 1052, -66, -66, -66, -66, -66, + /* 340 */ 1652, -66, 1005, 1052, -66, -66, -66, 1656, -66, 1029, + /* 350 */ 1052, -66, -66, -66, -66, -66, -66, -66, -66, -66, + /* 360 */ -66, -66, -66, -66, -66, +}; +static VVACTIONTYPE vv_default[] = { + /* 0 */ 523, 523, 523, 367, 369, 370, 371, 372, 373, 374, + /* 10 */ 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + /* 20 */ 385, 386, 387, 388, 389, 390, 523, 523, 523, 523, + /* 30 */ 523, 523, 523, 391, 523, 523, 523, 523, 523, 393, + /* 40 */ 523, 523, 396, 523, 523, 450, 523, 523, 451, 523, + /* 50 */ 454, 523, 456, 523, 458, 523, 459, 523, 460, 523, + /* 60 */ 461, 523, 462, 523, 463, 523, 464, 523, 480, 523, + /* 70 */ 479, 523, 481, 523, 482, 523, 483, 523, 484, 523, + /* 80 */ 485, 523, 486, 523, 487, 523, 488, 523, 523, 489, + /* 90 */ 491, 492, 523, 523, 498, 523, 523, 523, 499, 523, + /* 100 */ 514, 523, 490, 523, 523, 493, 523, 508, 494, 523, + /* 110 */ 495, 523, 523, 496, 523, 497, 506, 518, 523, 507, + /* 120 */ 509, 516, 517, 518, 519, 520, 521, 522, 505, 523, + /* 130 */ 510, 523, 512, 518, 523, 515, 511, 513, 523, 523, + /* 140 */ 500, 523, 523, 523, 523, 501, 523, 502, 517, 516, + /* 150 */ 466, 468, 470, 472, 474, 476, 478, 465, 467, 469, + /* 160 */ 471, 473, 475, 477, 523, 457, 523, 455, 453, 452, + /* 170 */ 523, 397, 523, 523, 523, 523, 523, 523, 523, 523, + /* 180 */ 398, 523, 523, 523, 523, 523, 523, 402, 523, 523, + /* 190 */ 404, 523, 405, 523, 523, 406, 523, 407, 523, 523, + /* 200 */ 409, 523, 410, 523, 411, 523, 412, 523, 413, 523, + /* 210 */ 523, 415, 523, 414, 416, 408, 523, 523, 523, 523, + /* 220 */ 523, 523, 523, 523, 417, 523, 523, 523, 523, 510, + /* 230 */ 523, 523, 523, 523, 429, 431, 523, 523, 523, 523, + /* 240 */ 523, 523, 433, 523, 523, 523, 523, 523, 523, 435, + /* 250 */ 523, 523, 523, 523, 432, 523, 523, 523, 439, 449, + /* 260 */ 523, 523, 440, 523, 523, 441, 523, 523, 442, 523, + /* 270 */ 523, 443, 523, 523, 444, 523, 523, 523, 523, 523, + /* 280 */ 523, 445, 523, 447, 523, 448, 368, 523, 523, 523, + /* 290 */ 523, 523, 446, 523, 523, 523, 523, 523, 436, 523, + /* 300 */ 523, 523, 523, 434, 511, 523, 523, 523, 430, 523, + /* 310 */ 523, 523, 523, 523, 523, 418, 523, 419, 421, 523, + /* 320 */ 422, 423, 424, 425, 426, 427, 428, 420, 523, 523, + /* 330 */ 403, 523, 523, 523, 523, 523, 523, 399, 523, 523, + /* 340 */ 523, 523, 523, 523, 523, 523, 400, 523, 523, 523, + /* 350 */ 523, 523, 523, 401, 523, 523, 394, 523, 523, 392, + /* 360 */ 523, 523, 523, 523, 395, +}; +#define VV_SZ_ACTTAB (sizeof(vv_action)/sizeof(vv_action[0])) -static PHP_METHOD(Phalcon_Http_Message_Stream, isSeekable) -{ - zval _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); +/* The next table maps tokens into fallback tokens. If a construct +** like the following: +** +** %fallback ID X Y Z. +** +** appears in the grammer, then ID becomes a fallback token for X, Y, +** and Z. Whenever one of the tokens X, Y, or Z is input to the parser +** but it does not parse, the type of the token is changed to ID and +** the parse is retried before an error is thrown. +*/ +#ifdef VVFALLBACK +static const VVCODETYPE vvFallback[] = { +}; +#endif /* VVFALLBACK */ - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); +/* The following structure represents a single element of the +** parser's stack. Information stored includes: +** +** + The state number for the parser at this level of the stack. +** +** + The value of the token stored at this level of the stack. +** (In other words, the "major" token.) +** +** + The semantic value stored at this level of the stack. This is +** the information used by the action routines in the grammar. +** It is sometimes called the "minor" token. +*/ +struct vvStackEntry { + int stateno; /* The state-number */ + int major; /* The major token value. This is the code + ** number for the token at this stack level */ + VVMINORTYPE minor; /* The user-supplied minor token value. This + ** is the value of the token */ +}; +typedef struct vvStackEntry vvStackEntry; +/* The state of the parser is completely contained in an instance of +** the following structure */ +struct vvParser { + int vvidx; /* Index of top element in stack */ + int vverrcnt; /* Shifts left before out of the error */ + phvolt_ARG_SDECL /* A place to hold %extra_argument */ + vvStackEntry vvstack[VVSTACKDEPTH]; /* The parser's stack */ +}; +typedef struct vvParser vvParser; - ZEPHIR_MM_GROW(); +#ifndef NDEBUG +static FILE *vvTraceFILE = 0; +static char *vvTracePrompt = 0; +#endif /* NDEBUG */ - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "seekable"); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmetadata", NULL, 0, &_1); - zephir_check_call_status(); - RETURN_MM_BOOL(zephir_get_boolval(&_0)); +#ifndef NDEBUG +static void phvolt_Trace(FILE *TraceFILE, char *zTracePrompt){ + vvTraceFILE = TraceFILE; + vvTracePrompt = zTracePrompt; + if( vvTraceFILE==0 ) vvTracePrompt = 0; + else if( vvTracePrompt==0 ) vvTraceFILE = 0; } +#endif /* NDEBUG */ -static PHP_METHOD(Phalcon_Http_Message_Stream, isWritable) -{ - zval _2; - zval mode, _0, _1, _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&mode); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_2); +#ifndef NDEBUG +/* For tracing shifts, the names of all terminals and nonterminals +** are required. The following table supplies these names */ +static const char *vvTokenName[] = { + "$", "OPEN_DELIMITER", "COMMA", "QUESTION", + "COLON", "RANGE", "AND", "OR", + "IN", "IS", "EQUALS", "NOTEQUALS", + "LESS", "GREATER", "GREATEREQUAL", "LESSEQUAL", + "IDENTICAL", "NOTIDENTICAL", "DIVIDE", "TIMES", + "MOD", "PLUS", "MINUS", "CONCAT", + "SBRACKET_OPEN", "PIPE", "NOT", "INCR", + "DECR", "PARENTHESES_OPEN", "DOT", "IF", + "CLOSE_DELIMITER", "ENDIF", "ELSE", "ELSEIF", + "ELSEFOR", "FOR", "IDENTIFIER", "ENDFOR", + "SWITCH", "ENDSWITCH", "CASE", "DEFAULT", + "SET", "ASSIGN", "ADD_ASSIGN", "SUB_ASSIGN", + "MUL_ASSIGN", "DIV_ASSIGN", "SBRACKET_CLOSE", "MACRO", + "PARENTHESES_CLOSE", "ENDMACRO", "INTEGER", "STRING", + "DOUBLE", "NULL", "FALSE", "TRUE", + "CALL", "ENDCALL", "OPEN_EDELIMITER", "CLOSE_EDELIMITER", + "BLOCK", "ENDBLOCK", "CACHE", "ENDCACHE", + "RAW", "ENDRAW", "EXTENDS", "INCLUDE", + "WITH", "DO", "RETURN", "AUTOESCAPE", + "ENDAUTOESCAPE", "BREAK", "CONTINUE", "RAW_FRAGMENT", + "DEFINED", "EMPTY", "EVEN", "ODD", + "NUMERIC", "SCALAR", "ITERABLE", "CBRACKET_OPEN", + "CBRACKET_CLOSE", "error", "program", "volt_language", + "statement_list", "statement", "raw_fragment", "if_statement", + "elseif_statement", "elsefor_statement", "for_statement", "switch_statement", + "case_clause", "set_statement", "echo_statement", "block_statement", + "cache_statement", "extends_statement", "include_statement", "do_statement", + "return_statement", "autoescape_statement", "raw_statement", "break_statement", + "continue_statement", "macro_statement", "empty_statement", "macro_call_statement", + "expr", "set_assignments", "set_assignment", "assignable_expr", + "macro_parameters", "macro_parameter", "macro_parameter_default", "argument_list", + "cache_lifetime", "array_list", "slice_offset", "array_item", + "function_call", "argument_item", +}; +#endif /* NDEBUG */ +#ifndef NDEBUG +/* For tracing reduce actions, the names of all rules are required. +*/ +static const char *vvRuleName[] = { + /* 0 */ "program ::= volt_language", + /* 1 */ "volt_language ::= statement_list", + /* 2 */ "statement_list ::= statement_list statement", + /* 3 */ "statement_list ::= statement", + /* 4 */ "statement ::= raw_fragment", + /* 5 */ "statement ::= if_statement", + /* 6 */ "statement ::= elseif_statement", + /* 7 */ "statement ::= elsefor_statement", + /* 8 */ "statement ::= for_statement", + /* 9 */ "statement ::= switch_statement", + /* 10 */ "statement ::= case_clause", + /* 11 */ "statement ::= set_statement", + /* 12 */ "statement ::= echo_statement", + /* 13 */ "statement ::= block_statement", + /* 14 */ "statement ::= cache_statement", + /* 15 */ "statement ::= extends_statement", + /* 16 */ "statement ::= include_statement", + /* 17 */ "statement ::= do_statement", + /* 18 */ "statement ::= return_statement", + /* 19 */ "statement ::= autoescape_statement", + /* 20 */ "statement ::= raw_statement", + /* 21 */ "statement ::= break_statement", + /* 22 */ "statement ::= continue_statement", + /* 23 */ "statement ::= macro_statement", + /* 24 */ "statement ::= empty_statement", + /* 25 */ "statement ::= macro_call_statement", + /* 26 */ "if_statement ::= OPEN_DELIMITER IF expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDIF CLOSE_DELIMITER", + /* 27 */ "if_statement ::= OPEN_DELIMITER IF expr CLOSE_DELIMITER OPEN_DELIMITER ENDIF CLOSE_DELIMITER", + /* 28 */ "if_statement ::= OPEN_DELIMITER IF expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ELSE CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDIF CLOSE_DELIMITER", + /* 29 */ "if_statement ::= OPEN_DELIMITER IF expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ELSE CLOSE_DELIMITER OPEN_DELIMITER ENDIF CLOSE_DELIMITER", + /* 30 */ "if_statement ::= OPEN_DELIMITER IF expr CLOSE_DELIMITER OPEN_DELIMITER ELSE CLOSE_DELIMITER OPEN_DELIMITER ENDIF CLOSE_DELIMITER", + /* 31 */ "elseif_statement ::= OPEN_DELIMITER ELSEIF expr CLOSE_DELIMITER", + /* 32 */ "elsefor_statement ::= OPEN_DELIMITER ELSEFOR CLOSE_DELIMITER", + /* 33 */ "for_statement ::= OPEN_DELIMITER FOR IDENTIFIER IN expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDFOR CLOSE_DELIMITER", + /* 34 */ "for_statement ::= OPEN_DELIMITER FOR IDENTIFIER IN expr IF expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDFOR CLOSE_DELIMITER", + /* 35 */ "for_statement ::= OPEN_DELIMITER FOR IDENTIFIER COMMA IDENTIFIER IN expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDFOR CLOSE_DELIMITER", + /* 36 */ "for_statement ::= OPEN_DELIMITER FOR IDENTIFIER COMMA IDENTIFIER IN expr IF expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDFOR CLOSE_DELIMITER", + /* 37 */ "switch_statement ::= OPEN_DELIMITER SWITCH expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDSWITCH CLOSE_DELIMITER", + /* 38 */ "switch_statement ::= OPEN_DELIMITER SWITCH expr CLOSE_DELIMITER OPEN_DELIMITER ENDSWITCH CLOSE_DELIMITER", + /* 39 */ "case_clause ::= OPEN_DELIMITER CASE expr CLOSE_DELIMITER", + /* 40 */ "case_clause ::= OPEN_DELIMITER DEFAULT CLOSE_DELIMITER", + /* 41 */ "set_statement ::= OPEN_DELIMITER SET set_assignments CLOSE_DELIMITER", + /* 42 */ "set_assignments ::= set_assignments COMMA set_assignment", + /* 43 */ "set_assignments ::= set_assignment", + /* 44 */ "set_assignment ::= assignable_expr ASSIGN expr", + /* 45 */ "set_assignment ::= assignable_expr ADD_ASSIGN expr", + /* 46 */ "set_assignment ::= assignable_expr SUB_ASSIGN expr", + /* 47 */ "set_assignment ::= assignable_expr MUL_ASSIGN expr", + /* 48 */ "set_assignment ::= assignable_expr DIV_ASSIGN expr", + /* 49 */ "assignable_expr ::= IDENTIFIER", + /* 50 */ "assignable_expr ::= assignable_expr SBRACKET_OPEN expr SBRACKET_CLOSE", + /* 51 */ "assignable_expr ::= assignable_expr DOT assignable_expr", + /* 52 */ "macro_statement ::= OPEN_DELIMITER MACRO IDENTIFIER PARENTHESES_OPEN PARENTHESES_CLOSE CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDMACRO CLOSE_DELIMITER", + /* 53 */ "macro_statement ::= OPEN_DELIMITER MACRO IDENTIFIER PARENTHESES_OPEN macro_parameters PARENTHESES_CLOSE CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDMACRO CLOSE_DELIMITER", + /* 54 */ "macro_parameters ::= macro_parameters COMMA macro_parameter", + /* 55 */ "macro_parameters ::= macro_parameter", + /* 56 */ "macro_parameter ::= IDENTIFIER", + /* 57 */ "macro_parameter ::= IDENTIFIER ASSIGN macro_parameter_default", + /* 58 */ "macro_parameter_default ::= INTEGER", + /* 59 */ "macro_parameter_default ::= STRING", + /* 60 */ "macro_parameter_default ::= DOUBLE", + /* 61 */ "macro_parameter_default ::= NULL", + /* 62 */ "macro_parameter_default ::= FALSE", + /* 63 */ "macro_parameter_default ::= TRUE", + /* 64 */ "macro_call_statement ::= OPEN_DELIMITER CALL expr PARENTHESES_OPEN argument_list PARENTHESES_CLOSE CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDCALL CLOSE_DELIMITER", + /* 65 */ "macro_call_statement ::= OPEN_DELIMITER CALL expr PARENTHESES_OPEN PARENTHESES_CLOSE CLOSE_DELIMITER OPEN_DELIMITER ENDCALL CLOSE_DELIMITER", + /* 66 */ "empty_statement ::= OPEN_DELIMITER CLOSE_DELIMITER", + /* 67 */ "echo_statement ::= OPEN_EDELIMITER expr CLOSE_EDELIMITER", + /* 68 */ "block_statement ::= OPEN_DELIMITER BLOCK IDENTIFIER CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDBLOCK CLOSE_DELIMITER", + /* 69 */ "block_statement ::= OPEN_DELIMITER BLOCK IDENTIFIER CLOSE_DELIMITER OPEN_DELIMITER ENDBLOCK CLOSE_DELIMITER", + /* 70 */ "cache_statement ::= OPEN_DELIMITER CACHE expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDCACHE CLOSE_DELIMITER", + /* 71 */ "cache_statement ::= OPEN_DELIMITER CACHE expr cache_lifetime CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDCACHE CLOSE_DELIMITER", + /* 72 */ "cache_lifetime ::= INTEGER", + /* 73 */ "cache_lifetime ::= IDENTIFIER", + /* 74 */ "raw_statement ::= OPEN_DELIMITER RAW CLOSE_DELIMITER statement OPEN_DELIMITER ENDRAW CLOSE_DELIMITER", + /* 75 */ "extends_statement ::= OPEN_DELIMITER EXTENDS expr CLOSE_DELIMITER", + /* 76 */ "include_statement ::= OPEN_DELIMITER INCLUDE expr CLOSE_DELIMITER", + /* 77 */ "include_statement ::= OPEN_DELIMITER INCLUDE expr WITH expr CLOSE_DELIMITER", + /* 78 */ "do_statement ::= OPEN_DELIMITER DO expr CLOSE_DELIMITER", + /* 79 */ "return_statement ::= OPEN_DELIMITER RETURN expr CLOSE_DELIMITER", + /* 80 */ "autoescape_statement ::= OPEN_DELIMITER AUTOESCAPE FALSE CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDAUTOESCAPE CLOSE_DELIMITER", + /* 81 */ "autoescape_statement ::= OPEN_DELIMITER AUTOESCAPE TRUE CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDAUTOESCAPE CLOSE_DELIMITER", + /* 82 */ "break_statement ::= OPEN_DELIMITER BREAK CLOSE_DELIMITER", + /* 83 */ "continue_statement ::= OPEN_DELIMITER CONTINUE CLOSE_DELIMITER", + /* 84 */ "raw_fragment ::= RAW_FRAGMENT", + /* 85 */ "expr ::= MINUS expr", + /* 86 */ "expr ::= PLUS expr", + /* 87 */ "expr ::= expr MINUS expr", + /* 88 */ "expr ::= expr PLUS expr", + /* 89 */ "expr ::= expr TIMES expr", + /* 90 */ "expr ::= expr TIMES TIMES expr", + /* 91 */ "expr ::= expr DIVIDE expr", + /* 92 */ "expr ::= expr DIVIDE DIVIDE expr", + /* 93 */ "expr ::= expr MOD expr", + /* 94 */ "expr ::= expr AND expr", + /* 95 */ "expr ::= expr OR expr", + /* 96 */ "expr ::= expr CONCAT expr", + /* 97 */ "expr ::= expr PIPE expr", + /* 98 */ "expr ::= expr RANGE expr", + /* 99 */ "expr ::= expr EQUALS expr", + /* 100 */ "expr ::= expr NOTEQUALS DEFINED", + /* 101 */ "expr ::= expr IS DEFINED", + /* 102 */ "expr ::= expr NOTEQUALS EMPTY", + /* 103 */ "expr ::= expr IS EMPTY", + /* 104 */ "expr ::= expr NOTEQUALS EVEN", + /* 105 */ "expr ::= expr IS EVEN", + /* 106 */ "expr ::= expr NOTEQUALS ODD", + /* 107 */ "expr ::= expr IS ODD", + /* 108 */ "expr ::= expr NOTEQUALS NUMERIC", + /* 109 */ "expr ::= expr IS NUMERIC", + /* 110 */ "expr ::= expr NOTEQUALS SCALAR", + /* 111 */ "expr ::= expr IS SCALAR", + /* 112 */ "expr ::= expr NOTEQUALS ITERABLE", + /* 113 */ "expr ::= expr IS ITERABLE", + /* 114 */ "expr ::= expr IS expr", + /* 115 */ "expr ::= expr NOTEQUALS expr", + /* 116 */ "expr ::= expr IDENTICAL expr", + /* 117 */ "expr ::= expr NOTIDENTICAL expr", + /* 118 */ "expr ::= expr LESS expr", + /* 119 */ "expr ::= expr GREATER expr", + /* 120 */ "expr ::= expr GREATEREQUAL expr", + /* 121 */ "expr ::= expr LESSEQUAL expr", + /* 122 */ "expr ::= expr DOT expr", + /* 123 */ "expr ::= expr IN expr", + /* 124 */ "expr ::= expr NOT IN expr", + /* 125 */ "expr ::= NOT expr", + /* 126 */ "expr ::= expr INCR", + /* 127 */ "expr ::= expr DECR", + /* 128 */ "expr ::= PARENTHESES_OPEN expr PARENTHESES_CLOSE", + /* 129 */ "expr ::= SBRACKET_OPEN SBRACKET_CLOSE", + /* 130 */ "expr ::= SBRACKET_OPEN array_list SBRACKET_CLOSE", + /* 131 */ "expr ::= CBRACKET_OPEN CBRACKET_CLOSE", + /* 132 */ "expr ::= CBRACKET_OPEN array_list CBRACKET_CLOSE", + /* 133 */ "expr ::= expr SBRACKET_OPEN expr SBRACKET_CLOSE", + /* 134 */ "expr ::= expr QUESTION expr COLON expr", + /* 135 */ "expr ::= expr SBRACKET_OPEN COLON slice_offset SBRACKET_CLOSE", + /* 136 */ "expr ::= expr SBRACKET_OPEN slice_offset COLON SBRACKET_CLOSE", + /* 137 */ "expr ::= expr SBRACKET_OPEN slice_offset COLON slice_offset SBRACKET_CLOSE", + /* 138 */ "slice_offset ::= INTEGER", + /* 139 */ "slice_offset ::= IDENTIFIER", + /* 140 */ "array_list ::= array_list COMMA array_item", + /* 141 */ "array_list ::= array_item", + /* 142 */ "array_item ::= STRING COLON expr", + /* 143 */ "array_item ::= expr", + /* 144 */ "expr ::= function_call", + /* 145 */ "function_call ::= expr PARENTHESES_OPEN argument_list PARENTHESES_CLOSE", + /* 146 */ "function_call ::= expr PARENTHESES_OPEN PARENTHESES_CLOSE", + /* 147 */ "argument_list ::= argument_list COMMA argument_item", + /* 148 */ "argument_list ::= argument_item", + /* 149 */ "argument_item ::= expr", + /* 150 */ "argument_item ::= STRING COLON expr", + /* 151 */ "expr ::= IDENTIFIER", + /* 152 */ "expr ::= INTEGER", + /* 153 */ "expr ::= STRING", + /* 154 */ "expr ::= DOUBLE", + /* 155 */ "expr ::= NULL", + /* 156 */ "expr ::= FALSE", + /* 157 */ "expr ::= TRUE", +}; +#endif /* NDEBUG */ - ZEPHIR_MM_GROW(); +const char *phvolt_TokenName(int tokenType){ +#ifndef NDEBUG + if( tokenType>0 && tokenType<(sizeof(vvTokenName)/sizeof(vvTokenName[0])) ){ + return vvTokenName[tokenType]; + }else{ + return "Unknown"; + } +#else + return ""; +#endif +} - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "mode"); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmetadata", NULL, 0, &_1); - zephir_check_call_status(); - zephir_cast_to_string(&_2, &_0); - ZEPHIR_CPY_WRT(&mode, &_2); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "xwca+"); - ZEPHIR_CALL_FUNCTION(&_3, "strpbrk", NULL, 82, &mode, &_1); - zephir_check_call_status(); - RETURN_MM_BOOL(!ZEPHIR_IS_FALSE_IDENTICAL(&_3)); +void *phvolt_Alloc(void *(*mallocProc)(size_t)){ + vvParser *pParser; + pParser = (vvParser*)(*mallocProc)( (size_t)sizeof(vvParser) ); + if( pParser ){ + pParser->vvidx = -1; + } + return pParser; } -static PHP_METHOD(Phalcon_Http_Message_Stream, read) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *length, length_sub, data, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&length_sub); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(length) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &length); - - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkhandle", NULL, 77); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkreadable", NULL, 78); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&data, "fread", NULL, 83, &_0, length); - zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&data))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_RuntimeException, "Could not read from the file/stream", "phalcon/Http/Message/Stream.zep", 240); - return; +/* The following function deletes the value associated with a +** symbol. The symbol can be either a terminal or nonterminal. +** "vvmajor" is the symbol code, and "vvpminor" is a pointer to +** the value. +*/ +static void vv_destructor(VVCODETYPE vvmajor, VVMINORTYPE *vvpminor){ + switch( vvmajor ){ + /* Here is inserted the actions which take place when a + ** terminal or non-terminal is destroyed. This can happen + ** when the symbol is popped from the stack during a + ** reduce or during error processing or when a parser is + ** being destroyed before it is finished parsing. + ** + ** Note: during a reduce, the only symbols destroyed are those + ** which appear on the RHS of the rule, but which are not used + ** inside the C code. + */ + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 85: + case 86: + case 87: + case 88: +// 158 "parser.php.lemon" +{ + if ((vvpminor->vv0)) { + if ((vvpminor->vv0)->free_flag) { + efree((vvpminor->vv0)->token); + } + efree((vvpminor->vv0)); } - RETURN_CCTOR(&data); } - -static PHP_METHOD(Phalcon_Http_Message_Stream, rewind) +// 1229 "parser.php.c" + break; + case 91: +// 171 "parser.php.lemon" { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - ZVAL_LONG(&_0, 0); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", NULL, 0, &_0); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + if (&(vvpminor->vv186)) { + zval_ptr_dtor(&(vvpminor->vv186)); + } } - -static PHP_METHOD(Phalcon_Http_Message_Stream, seek) +// 1238 "parser.php.c" + break; + case 89: + case 90: + case 92: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 104: + case 105: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 118: + case 119: + case 120: + case 121: + case 122: + case 123: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: +// 14 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *offset, offset_sub, *whence = NULL, whence_sub, seeker, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&offset_sub); - ZVAL_UNDEF(&whence_sub); - ZVAL_UNDEF(&seeker); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(offset) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL(whence) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &offset, &whence); - if (!whence) { - whence = &whence_sub; - ZEPHIR_INIT_VAR(whence); - ZVAL_LONG(whence, 0); - } - - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkhandle", NULL, 77); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkseekable", NULL, 84); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&seeker, "fseek", NULL, 85, &_0, offset, whence); - zephir_check_call_status(); - if (UNEXPECTED(!ZEPHIR_IS_LONG_IDENTICAL(&seeker, 0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_RuntimeException, "Could not seek on the file pointer", "phalcon/Http/Message/Stream.zep", 273); - return; + if (&(vvpminor->vv186)) { + zval_ptr_dtor(&(vvpminor->vv186)); } - ZEPHIR_MM_RESTORE(); +} +// 1286 "parser.php.c" + break; + default: break; /* If no destructor action specified: do nothing */ + } } -static PHP_METHOD(Phalcon_Http_Message_Stream, setStream) -{ - zend_bool _7, _8; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval mode; - zval *stream, stream_sub, *mode_param = NULL, __$false, handle, version, _9, _10, _0$$3, _1$$3, _2$$3, _3$$4, _4$$4, _5$$5, _6$$5; - zval *this_ptr = getThis(); +static int vv_pop_parser_stack(vvParser *pParser){ + VVCODETYPE vvmajor; + vvStackEntry *vvtos = &pParser->vvstack[pParser->vvidx]; - ZVAL_UNDEF(&stream_sub); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&handle); - ZVAL_UNDEF(&version); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&mode); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(stream) - Z_PARAM_OPTIONAL - Z_PARAM_STR(mode) - ZEND_PARSE_PARAMETERS_END(); + if( pParser->vvidx<0 ) return 0; +#ifndef NDEBUG + if( vvTraceFILE && pParser->vvidx>=0 ){ + fprintf(vvTraceFILE,"%sPopping %s\n", + vvTracePrompt, + vvTokenName[vvtos->major]); + } #endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &stream, &mode_param); - if (!mode_param) { - ZEPHIR_INIT_VAR(&mode); - ZVAL_STRING(&mode, "rb"); - } else { - if (UNEXPECTED(Z_TYPE_P(mode_param) != IS_STRING && Z_TYPE_P(mode_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'mode' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(mode_param) == IS_STRING)) { - zephir_get_strval(&mode, mode_param); - } else { - ZEPHIR_INIT_VAR(&mode); - } - } - - - ZEPHIR_CPY_WRT(&handle, stream); - ZEPHIR_CALL_FUNCTION(&version, "phpversion", NULL, 86); - zephir_check_call_status(); - ZEPHIR_GLOBAL(warning).enable = zend_is_true(&__$false); - if (EXPECTED(Z_TYPE_P(stream) == IS_STRING)) { - ZEPHIR_INIT_VAR(&_0$$3); - ZVAL_STRING(&_0$$3, "8.0"); - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, ">="); - ZEPHIR_CALL_FUNCTION(&_2$$3, "version_compare", NULL, 87, &version, &_0$$3, &_1$$3); - zephir_check_call_status(); - if (zephir_is_true(&_2$$3)) { - ZEPHIR_INIT_VAR(&_3$$4); - ZEPHIR_INIT_NVAR(&_3$$4); - zephir_create_closure_ex(&_3$$4, NULL, phalcon_0__closure_ce, SL("__invoke")); - ZVAL_LONG(&_4$$4, 2); - ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_3$$4, &_4$$4); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_VAR(&_5$$5); - ZEPHIR_INIT_NVAR(&_5$$5); - zephir_create_closure_ex(&_5$$5, NULL, phalcon_1__closure_ce, SL("__invoke")); - ZVAL_LONG(&_6$$5, 2); - ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_5$$5, &_6$$5); - zephir_check_call_status(); - } - ZEPHIR_CALL_FUNCTION(&handle, "fopen", NULL, 89, stream, &mode); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(NULL, "restore_error_handler", NULL, 90); - zephir_check_call_status(); - } - _7 = ZEPHIR_GLOBAL(warning).enable; - if (!(_7)) { - _7 = Z_TYPE_P(&handle) != IS_RESOURCE; - } - _8 = _7; - if (!(_8)) { - ZEPHIR_CALL_FUNCTION(&_9, "get_resource_type", NULL, 91, &handle); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_10); - ZVAL_STRING(&_10, "stream"); - _8 = !ZEPHIR_IS_IDENTICAL(&_10, &_9); - } - if (UNEXPECTED(_8)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_RuntimeException, "The stream provided is not valid (string/resource) or could not be opened.", "phalcon/Http/Message/Stream.zep", 321); - return; - } - zephir_update_property_zval(this_ptr, ZEND_STRL("handle"), &handle); - zephir_update_property_zval(this_ptr, ZEND_STRL("stream"), stream); - ZEPHIR_MM_RESTORE(); + vvmajor = vvtos->major; + vv_destructor( vvmajor, &vvtos->minor); + pParser->vvidx--; + return vvmajor; } -static PHP_METHOD(Phalcon_Http_Message_Stream, tell) -{ - zval position, _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); +static void phvolt_Free( + void *p, /* The parser to be deleted */ + void (*freeProc)(void*) /* Function used to reclaim memory */ +){ + vvParser *pParser = (vvParser*)p; + if( pParser==0 ) return; + while( pParser->vvidx>=0 ) vv_pop_parser_stack(pParser); + (*freeProc)((void*)pParser); +} - ZVAL_UNDEF(&position); - ZVAL_UNDEF(&_0); +static int vv_find_shift_action( + vvParser *pParser, /* The parser */ + int iLookAhead /* The look-ahead token */ +){ + int i; + int stateno = pParser->vvstack[pParser->vvidx].stateno; + /* if( pParser->vvidx<0 ) return VV_NO_ACTION; */ + i = vv_shift_ofst[stateno]; + if( i==VV_SHIFT_USE_DFLT ){ + return vv_default[stateno]; + } + if( iLookAhead==VVNOCODE ){ + return VV_NO_ACTION; + } + i += iLookAhead; + if( i<0 || i>=VV_SZ_ACTTAB || vv_lookahead[i]!=iLookAhead ){ +#ifdef VVFALLBACK + int iFallback; /* Fallback token */ + if( iLookAhead %s\n", + vvTracePrompt, vvTokenName[iLookAhead], vvTokenName[iFallback]); + } +#endif + return vv_find_shift_action(pParser, iFallback); + } +#endif + return vv_default[stateno]; + }else{ + return vv_action[i]; + } +} - ZEPHIR_MM_GROW(); +static int vv_find_reduce_action( + vvParser *pParser, /* The parser */ + int iLookAhead /* The look-ahead token */ +){ + int i; + int stateno = pParser->vvstack[pParser->vvidx].stateno; - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkhandle", NULL, 77); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&position, "ftell", NULL, 92, &_0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&position) != IS_LONG)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(zend_ce_exception, "Could not retrieve the pointer position", "phalcon/Http/Message/Stream.zep", 342); - return; - } - RETURN_CCTOR(&position); + i = vv_reduce_ofst[stateno]; + if( i==VV_REDUCE_USE_DFLT ){ + return vv_default[stateno]; + } + if( iLookAhead==VVNOCODE ){ + return VV_NO_ACTION; + } + i += iLookAhead; + if( i<0 || i>=VV_SZ_ACTTAB || vv_lookahead[i]!=iLookAhead ){ + return vv_default[stateno]; + }else{ + return vv_action[i]; + } } -static PHP_METHOD(Phalcon_Http_Message_Stream, write) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *data, data_sub, bytes, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&data_sub); - ZVAL_UNDEF(&bytes); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(data) - ZEND_PARSE_PARAMETERS_END(); +static void vv_shift( + vvParser *vvpParser, /* The parser to be shifted */ + int vvNewState, /* The new state to shift in */ + int vvMajor, /* The major token to shift in */ + VVMINORTYPE *vvpMinor /* Pointer ot the minor token to shift in */ +){ + vvStackEntry *vvtos; + vvpParser->vvidx++; + if( vvpParser->vvidx>=VVSTACKDEPTH ){ + phvolt_ARG_FETCH; + vvpParser->vvidx--; +#ifndef NDEBUG + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sStack Overflow!\n",vvTracePrompt); + } +#endif + while( vvpParser->vvidx>=0 ) vv_pop_parser_stack(vvpParser); + /* Here code is inserted which will execute if the parser + ** stack every overflows */ + phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument var */ + return; + } + vvtos = &vvpParser->vvstack[vvpParser->vvidx]; + vvtos->stateno = vvNewState; + vvtos->major = vvMajor; + vvtos->minor = *vvpMinor; +#ifndef NDEBUG + if( vvTraceFILE && vvpParser->vvidx>0 ){ + int i; + fprintf(vvTraceFILE,"%sShift %d\n",vvTracePrompt,vvNewState); + fprintf(vvTraceFILE,"%sStack:",vvTracePrompt); + for(i=1; i<=vvpParser->vvidx; i++) + fprintf(vvTraceFILE," %s",vvTokenName[vvpParser->vvstack[i].major]); + fprintf(vvTraceFILE,"\n"); + } #endif +} +/* The following table contains information about every rule that +** is used during the reduce. +*/ +static struct { + VVCODETYPE lhs; /* Symbol on the left-hand side of the rule */ + unsigned char nrhs; /* Number of right-hand side symbols in the rule */ +} vvRuleInfo[] = { + { 90, 1 }, + { 91, 1 }, + { 92, 2 }, + { 92, 1 }, + { 93, 1 }, + { 93, 1 }, + { 93, 1 }, + { 93, 1 }, + { 93, 1 }, + { 93, 1 }, + { 93, 1 }, + { 93, 1 }, + { 93, 1 }, + { 93, 1 }, + { 93, 1 }, + { 93, 1 }, + { 93, 1 }, + { 93, 1 }, + { 93, 1 }, + { 93, 1 }, + { 93, 1 }, + { 93, 1 }, + { 93, 1 }, + { 93, 1 }, + { 93, 1 }, + { 93, 1 }, + { 95, 8 }, + { 95, 7 }, + { 95, 12 }, + { 95, 11 }, + { 95, 10 }, + { 96, 4 }, + { 97, 3 }, + { 98, 10 }, + { 98, 12 }, + { 98, 12 }, + { 98, 14 }, + { 99, 8 }, + { 99, 7 }, + { 100, 4 }, + { 100, 3 }, + { 101, 4 }, + { 117, 3 }, + { 117, 1 }, + { 118, 3 }, + { 118, 3 }, + { 118, 3 }, + { 118, 3 }, + { 118, 3 }, + { 119, 1 }, + { 119, 4 }, + { 119, 3 }, + { 113, 10 }, + { 113, 11 }, + { 120, 3 }, + { 120, 1 }, + { 121, 1 }, + { 121, 3 }, + { 122, 1 }, + { 122, 1 }, + { 122, 1 }, + { 122, 1 }, + { 122, 1 }, + { 122, 1 }, + { 115, 11 }, + { 115, 9 }, + { 114, 2 }, + { 102, 3 }, + { 103, 8 }, + { 103, 7 }, + { 104, 8 }, + { 104, 9 }, + { 124, 1 }, + { 124, 1 }, + { 110, 7 }, + { 105, 4 }, + { 106, 4 }, + { 106, 6 }, + { 107, 4 }, + { 108, 4 }, + { 109, 8 }, + { 109, 8 }, + { 111, 3 }, + { 112, 3 }, + { 94, 1 }, + { 116, 2 }, + { 116, 2 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 4 }, + { 116, 3 }, + { 116, 4 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 3 }, + { 116, 4 }, + { 116, 2 }, + { 116, 2 }, + { 116, 2 }, + { 116, 3 }, + { 116, 2 }, + { 116, 3 }, + { 116, 2 }, + { 116, 3 }, + { 116, 4 }, + { 116, 5 }, + { 116, 5 }, + { 116, 5 }, + { 116, 6 }, + { 126, 1 }, + { 126, 1 }, + { 125, 3 }, + { 125, 1 }, + { 127, 3 }, + { 127, 1 }, + { 116, 1 }, + { 128, 4 }, + { 128, 3 }, + { 123, 3 }, + { 123, 1 }, + { 129, 1 }, + { 129, 3 }, + { 116, 1 }, + { 116, 1 }, + { 116, 1 }, + { 116, 1 }, + { 116, 1 }, + { 116, 1 }, + { 116, 1 }, +}; - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &data); +static void vv_accept(vvParser*); /* Forward Declaration */ +static void vv_reduce( + vvParser *vvpParser, /* The parser */ + int vvruleno /* Number of the rule by which to reduce */ +){ + int vvgoto; /* The next state */ + int vvact; /* The next action */ + VVMINORTYPE vvgotominor; /* The LHS of the rule reduced */ + vvStackEntry *vvmsp; /* The top of the parser's stack */ + int vvsize; /* Amount to pop the stack */ + phvolt_ARG_FETCH; + vvmsp = &vvpParser->vvstack[vvpParser->vvidx]; +#ifndef NDEBUG + if( vvTraceFILE && vvruleno>=0 + && vvruleno + ** { ... } // User supplied code + ** // + ** break; + */ + case 0: +// 167 "parser.php.lemon" +{ + ZVAL_ZVAL(&status->ret, &vvmsp[0].minor.vv186, 1, 1); } - -static PHP_METHOD(Phalcon_Http_Message_Stream, checkHandle) +// 1661 "parser.php.c" + break; + case 1: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 144: +// 177 "parser.php.lemon" { - zval _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(Z_TYPE_P(&_0) == IS_NULL)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(spl_ce_RuntimeException, "A valid resource is required.", "phalcon/Http/Message/Stream.zep", 377); - return; - } + vvgotominor.vv186 = vvmsp[0].minor.vv186; } - -static PHP_METHOD(Phalcon_Http_Message_Stream, checkReadable) +// 1691 "parser.php.c" + break; + case 2: +// 181 "parser.php.lemon" { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "isreadable", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_RuntimeException, "The resource is not readable.", "phalcon/Http/Message/Stream.zep", 387); - return; - } - ZEPHIR_MM_RESTORE(); + phvolt_ret_zval_list(&vvgotominor.vv186, &vvmsp[-1].minor.vv186, &vvmsp[0].minor.vv186); } - -static PHP_METHOD(Phalcon_Http_Message_Stream, checkSeekable) +// 1698 "parser.php.c" + break; + case 3: + case 43: + case 55: + case 141: + case 148: +// 185 "parser.php.lemon" { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "isseekable", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_RuntimeException, "The resource is not seekable.", "phalcon/Http/Message/Stream.zep", 397); - return; - } - ZEPHIR_MM_RESTORE(); + phvolt_ret_zval_list(&vvgotominor.vv186, NULL, &vvmsp[0].minor.vv186); } - -static PHP_METHOD(Phalcon_Http_Message_Stream, checkWritable) +// 1709 "parser.php.c" + break; + case 26: +// 278 "parser.php.lemon" { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "iswritable", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_RuntimeException, "The resource is not writable.", "phalcon/Http/Message/Stream.zep", 407); - return; - } - ZEPHIR_MM_RESTORE(); + phvolt_ret_if_statement(&vvgotominor.vv186, &vvmsp[-5].minor.vv186, &vvmsp[-3].minor.vv186, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-7].minor); + vv_destructor(31,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(33,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Message_StreamFactory) +// 1722 "parser.php.c" + break; + case 27: +// 283 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Message, StreamFactory, phalcon, http_message_streamfactory, phalcon_http_message_streamfactory_method_entry, ZEND_ACC_FINAL_CLASS); - - zend_class_implements(phalcon_http_message_streamfactory_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\streamfactoryinterface"))); - return SUCCESS; + phvolt_ret_if_statement(&vvgotominor.vv186, &vvmsp[-4].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-6].minor); + vv_destructor(31,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-3].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(33,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_StreamFactory, createStream) +// 1735 "parser.php.c" + break; + case 28: +// 288 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *content_param = NULL, handle, _0, _1; - zval content; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&content); - ZVAL_UNDEF(&handle); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR(content) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &content_param); - if (!content_param) { - ZEPHIR_INIT_VAR(&content); - ZVAL_STRING(&content, ""); - } else { - if (UNEXPECTED(Z_TYPE_P(content_param) != IS_STRING && Z_TYPE_P(content_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'content' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(content_param) == IS_STRING)) { - zephir_get_strval(&content, content_param); - } else { - ZEPHIR_INIT_VAR(&content); - } - } - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "php://temp"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "r+b"); - ZEPHIR_CALL_FUNCTION(&handle, "fopen", NULL, 89, &_0, &_1); - zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&handle))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Cannot write to file.", "phalcon/Http/Message/StreamFactory.zep", 41); - return; - } - zephir_fwrite(NULL, &handle, &content); - ZEPHIR_CALL_FUNCTION(NULL, "rewind", NULL, 320, &handle); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "createstreamfromresource", NULL, 321, &handle); - zephir_check_call_status(); - RETURN_MM(); + phvolt_ret_if_statement(&vvgotominor.vv186, &vvmsp[-9].minor.vv186, &vvmsp[-7].minor.vv186, &vvmsp[-3].minor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-11].minor); + vv_destructor(31,&vvmsp[-10].minor); + vv_destructor(32,&vvmsp[-8].minor); + vv_destructor(1,&vvmsp[-6].minor); + vv_destructor(34,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(33,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_StreamFactory, createStreamFromFile) +// 1751 "parser.php.c" + break; + case 29: +// 293 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *filename_param = NULL, *mode_param = NULL; - zval filename, mode; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&filename); - ZVAL_UNDEF(&mode); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(filename) - Z_PARAM_OPTIONAL - Z_PARAM_STR(mode) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &filename_param, &mode_param); - if (UNEXPECTED(Z_TYPE_P(filename_param) != IS_STRING && Z_TYPE_P(filename_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'filename' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(filename_param) == IS_STRING)) { - zephir_get_strval(&filename, filename_param); - } else { - ZEPHIR_INIT_VAR(&filename); - } - if (!mode_param) { - ZEPHIR_INIT_VAR(&mode); - ZVAL_STRING(&mode, "r+b"); - } else { - if (UNEXPECTED(Z_TYPE_P(mode_param) != IS_STRING && Z_TYPE_P(mode_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'mode' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(mode_param) == IS_STRING)) { - zephir_get_strval(&mode, mode_param); - } else { - ZEPHIR_INIT_VAR(&mode); - } - } - - - object_init_ex(return_value, phalcon_http_message_stream_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 43, &filename, &mode); - zephir_check_call_status(); - RETURN_MM(); + phvolt_ret_if_statement(&vvgotominor.vv186, &vvmsp[-8].minor.vv186, &vvmsp[-6].minor.vv186, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-10].minor); + vv_destructor(31,&vvmsp[-9].minor); + vv_destructor(32,&vvmsp[-7].minor); + vv_destructor(1,&vvmsp[-5].minor); + vv_destructor(34,&vvmsp[-4].minor); + vv_destructor(32,&vvmsp[-3].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(33,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_StreamFactory, createStreamFromResource) +// 1767 "parser.php.c" + break; + case 30: +// 298 "parser.php.lemon" { - zend_bool _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *phpResource, phpResource_sub, _1, _2; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&phpResource_sub); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(phpResource) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &phpResource); - - - _0 = Z_TYPE_P(phpResource) != IS_RESOURCE; - if (!(_0)) { - ZEPHIR_CALL_FUNCTION(&_1, "get_resource_type", NULL, 91, phpResource); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "stream"); - _0 = !ZEPHIR_IS_IDENTICAL(&_2, &_1); - } - if (UNEXPECTED(_0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid stream provided", "phalcon/Http/Message/StreamFactory.zep", 79); - return; - } - object_init_ex(return_value, phalcon_http_message_stream_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 43, phpResource); - zephir_check_call_status(); - RETURN_MM(); + phvolt_ret_if_statement(&vvgotominor.vv186, &vvmsp[-7].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-9].minor); + vv_destructor(31,&vvmsp[-8].minor); + vv_destructor(32,&vvmsp[-6].minor); + vv_destructor(1,&vvmsp[-5].minor); + vv_destructor(34,&vvmsp[-4].minor); + vv_destructor(32,&vvmsp[-3].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(33,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Message_UploadedFile) +// 1783 "parser.php.c" + break; + case 31: +// 302 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Message, UploadedFile, phalcon, http_message_uploadedfile, phalcon_http_message_uploadedfile_method_entry, ZEND_ACC_FINAL_CLASS); - - zend_declare_property_bool(phalcon_http_message_uploadedfile_ce, SL("alreadyMoved"), 0, ZEND_ACC_PRIVATE); - zend_declare_property_null(phalcon_http_message_uploadedfile_ce, SL("clientFilename"), ZEND_ACC_PRIVATE); - zend_declare_property_null(phalcon_http_message_uploadedfile_ce, SL("clientMediaType"), ZEND_ACC_PRIVATE); - zend_declare_property_long(phalcon_http_message_uploadedfile_ce, SL("error"), 0, ZEND_ACC_PRIVATE); - zend_declare_property_string(phalcon_http_message_uploadedfile_ce, SL("fileName"), "", ZEND_ACC_PRIVATE); - zend_declare_property_null(phalcon_http_message_uploadedfile_ce, SL("size"), ZEND_ACC_PRIVATE); - zend_declare_property_null(phalcon_http_message_uploadedfile_ce, SL("stream"), ZEND_ACC_PRIVATE); - zend_class_implements(phalcon_http_message_uploadedfile_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\uploadedfileinterface"))); - return SUCCESS; + phvolt_ret_elseif_statement(&vvgotominor.vv186, &vvmsp[-1].minor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(35,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_UploadedFile, getClientFilename) +// 1793 "parser.php.c" + break; + case 32: +// 306 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "clientFilename"); + phvolt_ret_elsefor_statement(&vvgotominor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(36,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_UploadedFile, getClientMediaType) +// 1803 "parser.php.c" + break; + case 33: +// 310 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "clientMediaType"); + phvolt_ret_for_statement(&vvgotominor.vv186, vvmsp[-7].minor.vv0, NULL, &vvmsp[-5].minor.vv186, NULL, &vvmsp[-3].minor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-9].minor); + vv_destructor(37,&vvmsp[-8].minor); + vv_destructor(8,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(39,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_UploadedFile, getError) +// 1817 "parser.php.c" + break; + case 34: +// 314 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "error"); + phvolt_ret_for_statement(&vvgotominor.vv186, vvmsp[-9].minor.vv0, NULL, &vvmsp[-7].minor.vv186, &vvmsp[-5].minor.vv186, &vvmsp[-3].minor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-11].minor); + vv_destructor(37,&vvmsp[-10].minor); + vv_destructor(8,&vvmsp[-8].minor); + vv_destructor(31,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(39,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_UploadedFile, getSize) +// 1832 "parser.php.c" + break; + case 35: +// 318 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "size"); + phvolt_ret_for_statement(&vvgotominor.vv186, vvmsp[-7].minor.vv0, vvmsp[-9].minor.vv0, &vvmsp[-5].minor.vv186, NULL, &vvmsp[-3].minor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-11].minor); + vv_destructor(37,&vvmsp[-10].minor); + vv_destructor(2,&vvmsp[-8].minor); + vv_destructor(8,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(39,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_UploadedFile, __construct) +// 1847 "parser.php.c" + break; + case 36: +// 322 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval clientFilename, clientMediaType; - zend_long size, error, ZEPHIR_LAST_CALL_STATUS; - zval *stream, stream_sub, *size_param = NULL, *error_param = NULL, *clientFilename_param = NULL, *clientMediaType_param = NULL, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&stream_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&clientFilename); - ZVAL_UNDEF(&clientMediaType); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 5) - Z_PARAM_ZVAL(stream) - Z_PARAM_OPTIONAL - Z_PARAM_LONG_OR_NULL(size, is_null_true) - Z_PARAM_LONG(error) - Z_PARAM_STR_OR_NULL(clientFilename) - Z_PARAM_STR_OR_NULL(clientMediaType) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 4, &stream, &size_param, &error_param, &clientFilename_param, &clientMediaType_param); - if (!size_param) { - size = 0; - } else { - size = zephir_get_intval(size_param); - } - if (!error_param) { - error = 0; - } else { - error = zephir_get_intval(error_param); - } - if (!clientFilename_param) { - ZEPHIR_INIT_VAR(&clientFilename); - } else { - zephir_get_strval(&clientFilename, clientFilename_param); - } - if (!clientMediaType_param) { - ZEPHIR_INIT_VAR(&clientMediaType); - } else { - zephir_get_strval(&clientMediaType, clientMediaType_param); - } - - - ZVAL_LONG(&_0, error); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkstream", NULL, 322, stream, &_0); - zephir_check_call_status(); - ZVAL_LONG(&_0, error); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkerror", NULL, 323, &_0); - zephir_check_call_status(); - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, size); - zephir_update_property_zval(this_ptr, ZEND_STRL("size"), &_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("clientFilename"), &clientFilename); - zephir_update_property_zval(this_ptr, ZEND_STRL("clientMediaType"), &clientMediaType); - ZEPHIR_MM_RESTORE(); + phvolt_ret_for_statement(&vvgotominor.vv186, vvmsp[-9].minor.vv0, vvmsp[-11].minor.vv0, &vvmsp[-7].minor.vv186, &vvmsp[-5].minor.vv186, &vvmsp[-3].minor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-13].minor); + vv_destructor(37,&vvmsp[-12].minor); + vv_destructor(2,&vvmsp[-10].minor); + vv_destructor(8,&vvmsp[-8].minor); + vv_destructor(31,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(39,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_UploadedFile, getStream) +// 1863 "parser.php.c" + break; + case 37: +// 327 "parser.php.lemon" { - zval _0, _4, _5, _1$$3, _2$$3, _3$$3, _6$$5, _7$$5; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_7$$5); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("error"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(!ZEPHIR_IS_LONG_IDENTICAL(&_0, 0))) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_http_message_exception_invalidargumentexception_ce); - zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("error"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_2$$3, this_ptr, "geterrordescription", NULL, 324, &_3$$3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 40, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Http/Message/UploadedFile.zep", 159); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_read_property(&_4, this_ptr, ZEND_STRL("alreadyMoved"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(zephir_is_true(&_4))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "The file has already been moved to the target location", "phalcon/Http/Message/UploadedFile.zep", 165); - return; - } - ZEPHIR_OBS_VAR(&_5); - zephir_read_property(&_5, this_ptr, ZEND_STRL("stream"), PH_NOISY_CC); - if (UNEXPECTED(!(zephir_is_instance_of(&_5, SL("Psr\\Http\\Message\\StreamInterface"))))) { - ZEPHIR_INIT_VAR(&_6$$5); - object_init_ex(&_6$$5, phalcon_http_message_stream_ce); - zephir_read_property(&_7$$5, this_ptr, ZEND_STRL("fileName"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_6$$5, "__construct", NULL, 43, &_7$$5); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("stream"), &_6$$5); - } - RETURN_MM_MEMBER(getThis(), "stream"); + phvolt_ret_switch_statement(&vvgotominor.vv186, &vvmsp[-5].minor.vv186, &vvmsp[-3].minor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-7].minor); + vv_destructor(40,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(41,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_UploadedFile, moveTo) +// 1876 "parser.php.c" + break; + case 38: +// 332 "parser.php.lemon" { - zend_bool _5, _6, _9, _13, _15, _16; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *targetPath, targetPath_sub, __$true, __$false, sapi, _0, _1, _7, _8, _10, _11, _12, _14, _2$$4, _3$$4, _4$$4, _17$$7, _18$$7; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&targetPath_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&sapi); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_17$$7); - ZVAL_UNDEF(&_18$$7); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(targetPath) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &targetPath); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("alreadyMoved"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(zephir_is_true(&_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "File has already been moved", "phalcon/Http/Message/UploadedFile.zep", 214); - return; - } - zephir_read_property(&_1, this_ptr, ZEND_STRL("error"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(!ZEPHIR_IS_LONG_IDENTICAL(&_1, 0))) { - ZEPHIR_INIT_VAR(&_2$$4); - object_init_ex(&_2$$4, phalcon_http_message_exception_invalidargumentexception_ce); - zephir_read_property(&_4$$4, this_ptr, ZEND_STRL("error"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_3$$4, this_ptr, "geterrordescription", NULL, 324, &_4$$4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_2$$4, "__construct", NULL, 40, &_3$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_2$$4, "phalcon/Http/Message/UploadedFile.zep", 220); - ZEPHIR_MM_RESTORE(); - return; - } - _5 = Z_TYPE_P(targetPath) == IS_STRING; - if (_5) { - _5 = !(ZEPHIR_IS_EMPTY(targetPath)); - } - _6 = _5; - if (_6) { - ZEPHIR_CALL_FUNCTION(&_7, "dirname", NULL, 325, targetPath); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_8, "is_dir", NULL, 136, &_7); - zephir_check_call_status(); - _6 = zephir_is_true(&_8); - } - _9 = _6; - if (_9) { - ZEPHIR_CALL_FUNCTION(&_10, "dirname", NULL, 325, targetPath); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_11, "is_writable", NULL, 326, &_10); - zephir_check_call_status(); - _9 = zephir_is_true(&_11); - } - if (UNEXPECTED(!(_9))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Target folder is empty string, not a folder or not writable", "phalcon/Http/Message/UploadedFile.zep", 232); - return; - } - ZEPHIR_INIT_VAR(&_12); - ZVAL_STRING(&_12, "PHP_SAPI"); - ZEPHIR_CALL_FUNCTION(&sapi, "constant", NULL, 128, &_12); - zephir_check_call_status(); - _13 = ZEPHIR_IS_EMPTY(&sapi); - if (!(_13)) { - ZEPHIR_OBS_VAR(&_14); - zephir_read_property(&_14, this_ptr, ZEND_STRL("fileName"), PH_NOISY_CC); - _13 = !(ZEPHIR_IS_EMPTY(&_14)); - } - _15 = _13; - if (!(_15)) { - _15 = zephir_start_with_str(&sapi, SL("cli")); - } - _16 = _15; - if (!(_16)) { - _16 = zephir_start_with_str(&sapi, SL("phpdbg")); - } - if (UNEXPECTED(_16)) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "storefile", NULL, 327, targetPath); - zephir_check_call_status(); - } else { - zephir_read_property(&_17$$7, this_ptr, ZEND_STRL("fileName"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&_18$$7, "move_uploaded_file", NULL, 328, &_17$$7, targetPath); - zephir_check_call_status(); - if (!ZEPHIR_IS_TRUE_IDENTICAL(&_18$$7)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "The file cannot be moved to the target folder", "phalcon/Http/Message/UploadedFile.zep", 246); - return; - } - } - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("alreadyMoved"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("alreadyMoved"), &__$false); - } - ZEPHIR_MM_RESTORE(); + phvolt_ret_switch_statement(&vvgotominor.vv186, &vvmsp[-4].minor.vv186, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-6].minor); + vv_destructor(40,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-3].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(41,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_UploadedFile, checkError) +// 1889 "parser.php.c" + break; + case 39: +// 337 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_1 = NULL; - zval *error_param = NULL, _0, _2, _3, _4; - zend_long error, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(error) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &error_param); - error = zephir_get_intval(error_param); - - - ZVAL_LONG(&_2, error); - ZVAL_LONG(&_3, 0); - ZVAL_LONG(&_4, 8); - ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_number_ce, "between", &_1, 290, &_2, &_3, &_4); - zephir_check_call_status(); - if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid error. Must be one of the UPLOAD_ERR_* constants", "phalcon/Http/Message/UploadedFile.zep", 263); - return; - } - ZEPHIR_INIT_ZVAL_NREF(_2); - ZVAL_LONG(&_2, error); - zephir_update_property_zval(this_ptr, ZEND_STRL("error"), &_2); - ZEPHIR_MM_RESTORE(); + phvolt_ret_case_clause(&vvgotominor.vv186, &vvmsp[-1].minor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(42,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_UploadedFile, checkStream) +// 1899 "parser.php.c" + break; + case 40: +// 342 "parser.php.lemon" { - zend_bool _0$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long error, ZEPHIR_LAST_CALL_STATUS; - zval *stream, stream_sub, *error_param = NULL, _1$$5; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&stream_sub); - ZVAL_UNDEF(&_1$$5); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(stream) - Z_PARAM_LONG(error) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &stream, &error_param); - error = zephir_get_intval(error_param); - - - if (UNEXPECTED(0 == error)) { - do { - _0$$3 = 1; - if (_0$$3 == (Z_TYPE_P(stream) == IS_STRING)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("fileName"), stream); - break; - } - if (_0$$3 == (Z_TYPE_P(stream) == IS_RESOURCE)) { - ZEPHIR_INIT_VAR(&_1$$5); - object_init_ex(&_1$$5, phalcon_http_message_stream_ce); - ZEPHIR_CALL_METHOD(NULL, &_1$$5, "__construct", NULL, 43, stream); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("stream"), &_1$$5); - break; - } - if (_0$$3 == (zephir_is_instance_of(stream, SL("Psr\\Http\\Message\\StreamInterface")))) { - zephir_update_property_zval(this_ptr, ZEND_STRL("stream"), stream); - break; - } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid stream or file passed", "phalcon/Http/Message/UploadedFile.zep", 289); - return; - } while(0); - - } - ZEPHIR_MM_RESTORE(); + phvolt_ret_case_clause(&vvgotominor.vv186, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(43,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_UploadedFile, getErrorDescription) +// 1909 "parser.php.c" + break; + case 41: +// 346 "parser.php.lemon" { - zval errors; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_0 = NULL; - zval *error_param = NULL, _1, _2; - zend_long error, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&errors); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(error) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &error_param); - error = zephir_get_intval(error_param); - - - ZEPHIR_INIT_VAR(&errors); - zephir_create_array(&errors, 8, 0); - add_index_stringl(&errors, 0, SL("There is no error, the file uploaded with success.")); - add_index_stringl(&errors, 1, SL("The uploaded file exceeds the upload_max_filesize directive in php.ini.")); - add_index_stringl(&errors, 2, SL("The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.")); - add_index_stringl(&errors, 3, SL("The uploaded file was only partially uploaded.")); - add_index_stringl(&errors, 4, SL("No file was uploaded.")); - add_index_stringl(&errors, 6, SL("Missing a temporary folder.")); - add_index_stringl(&errors, 7, SL("Failed to write file to disk.")); - add_index_stringl(&errors, 8, SL("A PHP extension stopped the file upload.")); - ZVAL_LONG(&_1, error); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "Unknown upload error"); - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_helper_arr_ce, "get", &_0, 16, &errors, &_1, &_2); - zephir_check_call_status(); - RETURN_MM(); + phvolt_ret_set_statement(&vvgotominor.vv186, &vvmsp[-1].minor.vv186); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(44,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_UploadedFile, storeFile) +// 1919 "parser.php.c" + break; + case 42: + case 54: + case 140: + case 147: +// 350 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *targetPath_param = NULL, data, handle, stream, _0, _1, _2$$4; - zval targetPath; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&targetPath); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&handle); - ZVAL_UNDEF(&stream); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(targetPath) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &targetPath_param); - zephir_get_strval(&targetPath, targetPath_param); - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "w+b"); - ZEPHIR_CALL_FUNCTION(&handle, "fopen", NULL, 89, &targetPath, &_0); - zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&handle))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Cannot write to file.", "phalcon/Http/Message/UploadedFile.zep", 330); - return; - } - ZEPHIR_CALL_METHOD(&stream, this_ptr, "getstream", NULL, 329); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &stream, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &stream, "eof", NULL, 0); - zephir_check_call_status(); - if (!(!ZEPHIR_IS_TRUE_IDENTICAL(&_1))) { - break; - } - ZVAL_LONG(&_2$$4, 2048); - ZEPHIR_CALL_METHOD(&data, &stream, "read", &_3, 0, &_2$$4); - zephir_check_call_status(); - zephir_fwrite(NULL, &handle, &data); - } - zephir_fclose(&handle); - ZEPHIR_MM_RESTORE(); + phvolt_ret_zval_list(&vvgotominor.vv186, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186); + vv_destructor(2,&vvmsp[-1].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Message_UploadedFileFactory) +// 1930 "parser.php.c" + break; + case 44: +// 358 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Message, UploadedFileFactory, phalcon, http_message_uploadedfilefactory, phalcon_http_message_uploadedfilefactory_method_entry, ZEND_ACC_FINAL_CLASS); - - zend_class_implements(phalcon_http_message_uploadedfilefactory_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\uploadedfilefactoryinterface"))); - return SUCCESS; + phvolt_ret_set_assignment(&vvgotominor.vv186, &vvmsp[-2].minor.vv186, PHVOLT_T_ASSIGN, &vvmsp[0].minor.vv186, status->scanner_state); + vv_destructor(45,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Message_UploadedFileFactory, createUploadedFile) +// 1938 "parser.php.c" + break; + case 45: +// 362 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval clientFilename, clientMediaType; - zend_long size, error, ZEPHIR_LAST_CALL_STATUS; - zval *stream, stream_sub, *size_param = NULL, *error_param = NULL, *clientFilename_param = NULL, *clientMediaType_param = NULL, _0, _1; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&stream_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&clientFilename); - ZVAL_UNDEF(&clientMediaType); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 5) - Z_PARAM_OBJECT_OF_CLASS(stream, zephir_get_internal_ce(SL("psr\\http\\message\\streaminterface"))) - Z_PARAM_OPTIONAL - Z_PARAM_LONG_OR_NULL(size, is_null_true) - Z_PARAM_LONG(error) - Z_PARAM_STR_OR_NULL(clientFilename) - Z_PARAM_STR_OR_NULL(clientMediaType) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 4, &stream, &size_param, &error_param, &clientFilename_param, &clientMediaType_param); - if (!size_param) { - size = 0; - } else { - size = zephir_get_intval(size_param); - } - if (!error_param) { - error = 0; - } else { - error = zephir_get_intval(error_param); - } - if (!clientFilename_param) { - ZEPHIR_INIT_VAR(&clientFilename); - } else { - zephir_get_strval(&clientFilename, clientFilename_param); - } - if (!clientMediaType_param) { - ZEPHIR_INIT_VAR(&clientMediaType); - } else { - zephir_get_strval(&clientMediaType, clientMediaType_param); - } - - - object_init_ex(return_value, phalcon_http_message_uploadedfile_ce); - ZVAL_LONG(&_0, size); - ZVAL_LONG(&_1, error); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 305, stream, &_0, &_1, &clientFilename, &clientMediaType); - zephir_check_call_status(); - RETURN_MM(); + phvolt_ret_set_assignment(&vvgotominor.vv186, &vvmsp[-2].minor.vv186, PHVOLT_T_ADD_ASSIGN, &vvmsp[0].minor.vv186, status->scanner_state); + vv_destructor(46,&vvmsp[-1].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Message_Uri) +// 1946 "parser.php.c" + break; + case 46: +// 366 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Message, Uri, phalcon, http_message_uri, phalcon_http_message_abstractcommon_ce, phalcon_http_message_uri_method_entry, ZEND_ACC_FINAL_CLASS); - - zend_declare_property_string(phalcon_http_message_uri_ce, SL("fragment"), "", ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_http_message_uri_ce, SL("host"), "", ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_http_message_uri_ce, SL("pass"), "", ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_http_message_uri_ce, SL("path"), "", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_message_uri_ce, SL("port"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_http_message_uri_ce, SL("query"), "", ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_http_message_uri_ce, SL("scheme"), "https", ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_http_message_uri_ce, SL("user"), "", ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_http_message_uri_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\uriinterface"))); - return SUCCESS; + phvolt_ret_set_assignment(&vvgotominor.vv186, &vvmsp[-2].minor.vv186, PHVOLT_T_SUB_ASSIGN, &vvmsp[0].minor.vv186, status->scanner_state); + vv_destructor(47,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, getFragment) +// 1954 "parser.php.c" + break; + case 47: +// 370 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "fragment"); + phvolt_ret_set_assignment(&vvgotominor.vv186, &vvmsp[-2].minor.vv186, PHVOLT_T_MUL_ASSIGN, &vvmsp[0].minor.vv186, status->scanner_state); + vv_destructor(48,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, getHost) +// 1962 "parser.php.c" + break; + case 48: +// 374 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "host"); + phvolt_ret_set_assignment(&vvgotominor.vv186, &vvmsp[-2].minor.vv186, PHVOLT_T_DIV_ASSIGN, &vvmsp[0].minor.vv186, status->scanner_state); + vv_destructor(49,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, getPath) +// 1970 "parser.php.c" + break; + case 49: + case 73: + case 139: + case 151: +// 378 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "path"); + phvolt_ret_literal_zval(&vvgotominor.vv186, PHVOLT_T_IDENTIFIER, vvmsp[0].minor.vv0, status->scanner_state); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, getPort) +// 1980 "parser.php.c" + break; + case 50: + case 133: +// 382 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "port"); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ARRAYACCESS, &vvmsp[-3].minor.vv186, &vvmsp[-1].minor.vv186, NULL, status->scanner_state); + vv_destructor(24,&vvmsp[-2].minor); + vv_destructor(50,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, getQuery) +// 1990 "parser.php.c" + break; + case 51: + case 122: +// 386 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "query"); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_DOT, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(30,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, getScheme) +// 1999 "parser.php.c" + break; + case 52: +// 390 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "scheme"); + phvolt_ret_macro_statement(&vvgotominor.vv186, vvmsp[-7].minor.vv0, NULL, &vvmsp[-3].minor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-9].minor); + vv_destructor(51,&vvmsp[-8].minor); + vv_destructor(29,&vvmsp[-6].minor); + vv_destructor(52,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(53,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, __construct) +// 2014 "parser.php.c" + break; + case 53: +// 394 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *uri_param = NULL, urlParts, _0, _1$$3, _2$$3, _4$$3, _5$$3, _6$$3, _7$$3, _8$$3, _9$$3, _10$$3, _11$$3, _12$$3, _13$$3, _14$$3, _15$$3, _16$$3, _17$$3, _18$$3, _19$$3, _20$$3; - zval uri; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&uri); - ZVAL_UNDEF(&urlParts); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_8$$3); - ZVAL_UNDEF(&_9$$3); - ZVAL_UNDEF(&_10$$3); - ZVAL_UNDEF(&_11$$3); - ZVAL_UNDEF(&_12$$3); - ZVAL_UNDEF(&_13$$3); - ZVAL_UNDEF(&_14$$3); - ZVAL_UNDEF(&_15$$3); - ZVAL_UNDEF(&_16$$3); - ZVAL_UNDEF(&_17$$3); - ZVAL_UNDEF(&_18$$3); - ZVAL_UNDEF(&_19$$3); - ZVAL_UNDEF(&_20$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR(uri) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &uri_param); - if (!uri_param) { - ZEPHIR_INIT_VAR(&uri); - ZVAL_STRING(&uri, ""); - } else { - if (UNEXPECTED(Z_TYPE_P(uri_param) != IS_STRING && Z_TYPE_P(uri_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'uri' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(uri_param) == IS_STRING)) { - zephir_get_strval(&uri, uri_param); - } else { - ZEPHIR_INIT_VAR(&uri); - } - } - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, ""); - if (UNEXPECTED(!ZEPHIR_IS_IDENTICAL(&_0, &uri))) { - ZEPHIR_CALL_FUNCTION(&urlParts, "parse_url", NULL, 118, &uri); - zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&urlParts))) { - ZEPHIR_INIT_NVAR(&urlParts); - array_init(&urlParts); - } - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "fragment"); - ZEPHIR_INIT_VAR(&_5$$3); - ZVAL_STRING(&_5$$3, ""); - ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_helper_arr_ce, "get", &_3, 16, &urlParts, &_4$$3, &_5$$3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1$$3, this_ptr, "filterfragment", NULL, 330, &_2$$3); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("fragment"), &_1$$3); - ZEPHIR_INIT_NVAR(&_4$$3); - ZEPHIR_INIT_NVAR(&_5$$3); - ZVAL_STRING(&_5$$3, "host"); - ZEPHIR_INIT_VAR(&_7$$3); - ZVAL_STRING(&_7$$3, ""); - ZEPHIR_CALL_CE_STATIC(&_6$$3, phalcon_helper_arr_ce, "get", &_3, 16, &urlParts, &_5$$3, &_7$$3); - zephir_check_call_status(); - zephir_fast_strtolower(&_4$$3, &_6$$3); - zephir_update_property_zval(this_ptr, ZEND_STRL("host"), &_4$$3); - ZEPHIR_INIT_NVAR(&_5$$3); - ZVAL_STRING(&_5$$3, "pass"); - ZEPHIR_INIT_NVAR(&_7$$3); - ZVAL_STRING(&_7$$3, ""); - ZEPHIR_CALL_CE_STATIC(&_8$$3, phalcon_helper_arr_ce, "get", &_3, 16, &urlParts, &_5$$3, &_7$$3); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_9$$3, "rawurlencode", NULL, 229, &_8$$3); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("pass"), &_9$$3); - ZEPHIR_INIT_NVAR(&_5$$3); - ZVAL_STRING(&_5$$3, "path"); - ZEPHIR_INIT_NVAR(&_7$$3); - ZVAL_STRING(&_7$$3, ""); - ZEPHIR_CALL_CE_STATIC(&_11$$3, phalcon_helper_arr_ce, "get", &_3, 16, &urlParts, &_5$$3, &_7$$3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_10$$3, this_ptr, "filterpath", NULL, 331, &_11$$3); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("path"), &_10$$3); - ZEPHIR_INIT_NVAR(&_5$$3); - ZVAL_STRING(&_5$$3, "port"); - ZVAL_NULL(&_14$$3); - ZEPHIR_CALL_CE_STATIC(&_13$$3, phalcon_helper_arr_ce, "get", &_3, 16, &urlParts, &_5$$3, &_14$$3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_12$$3, this_ptr, "filterport", NULL, 332, &_13$$3); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("port"), &_12$$3); - ZEPHIR_INIT_NVAR(&_5$$3); - ZVAL_STRING(&_5$$3, "query"); - ZEPHIR_INIT_NVAR(&_7$$3); - ZVAL_STRING(&_7$$3, ""); - ZEPHIR_CALL_CE_STATIC(&_16$$3, phalcon_helper_arr_ce, "get", &_3, 16, &urlParts, &_5$$3, &_7$$3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_15$$3, this_ptr, "filterquery", NULL, 333, &_16$$3); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("query"), &_15$$3); - ZEPHIR_INIT_NVAR(&_5$$3); - ZVAL_STRING(&_5$$3, "scheme"); - ZEPHIR_INIT_NVAR(&_7$$3); - ZVAL_STRING(&_7$$3, ""); - ZEPHIR_CALL_CE_STATIC(&_18$$3, phalcon_helper_arr_ce, "get", &_3, 16, &urlParts, &_5$$3, &_7$$3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_17$$3, this_ptr, "filterscheme", NULL, 334, &_18$$3); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("scheme"), &_17$$3); - ZEPHIR_INIT_NVAR(&_5$$3); - ZVAL_STRING(&_5$$3, "user"); - ZEPHIR_INIT_NVAR(&_7$$3); - ZVAL_STRING(&_7$$3, ""); - ZEPHIR_CALL_CE_STATIC(&_19$$3, phalcon_helper_arr_ce, "get", &_3, 16, &urlParts, &_5$$3, &_7$$3); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_20$$3, "rawurlencode", NULL, 229, &_19$$3); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("user"), &_20$$3); - } - ZEPHIR_MM_RESTORE(); + phvolt_ret_macro_statement(&vvgotominor.vv186, vvmsp[-8].minor.vv0, &vvmsp[-6].minor.vv186, &vvmsp[-3].minor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-10].minor); + vv_destructor(51,&vvmsp[-9].minor); + vv_destructor(29,&vvmsp[-7].minor); + vv_destructor(52,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(53,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, __toString) +// 2029 "parser.php.c" + break; + case 56: +// 406 "parser.php.lemon" { - zend_bool _2, _3; - zval authority, path, uri, _0, _1, _4, _6, _7, _8, _9, _10, _11, _12, _13, _5$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&authority); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&uri); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_13); - ZVAL_UNDEF(&_5$$3); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(&authority, this_ptr, "getauthority", NULL, 335); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("path"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&path, &_0); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, ""); - _2 = !ZEPHIR_IS_IDENTICAL(&_1, &path); - if (_2) { - _2 = 1 != zephir_start_with_str(&path, SL("/")); - } - _3 = _2; - if (_3) { - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, ""); - _3 = !ZEPHIR_IS_IDENTICAL(&_4, &authority); - } - if (UNEXPECTED(_3)) { - ZEPHIR_INIT_VAR(&_5$$3); - ZEPHIR_CONCAT_SV(&_5$$3, "/", &path); - ZEPHIR_CPY_WRT(&path, &_5$$3); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("scheme"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_7); - ZVAL_STRING(&_7, ""); - ZEPHIR_INIT_VAR(&_8); - ZVAL_STRING(&_8, ":"); - ZEPHIR_CALL_METHOD(&_6, this_ptr, "checkvalue", NULL, 336, &_0, &_7, &_8); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_7); - ZVAL_STRING(&_7, "//"); - ZEPHIR_CALL_METHOD(&_9, this_ptr, "checkvalue", NULL, 336, &authority, &_7); - zephir_check_call_status(); - zephir_read_property(&_11, this_ptr, ZEND_STRL("query"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_7); - ZVAL_STRING(&_7, "?"); - ZEPHIR_CALL_METHOD(&_10, this_ptr, "checkvalue", NULL, 336, &_11, &_7); - zephir_check_call_status(); - zephir_read_property(&_13, this_ptr, ZEND_STRL("fragment"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_7); - ZVAL_STRING(&_7, "#"); - ZEPHIR_CALL_METHOD(&_12, this_ptr, "checkvalue", NULL, 336, &_13, &_7); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&uri); - ZEPHIR_CONCAT_VVVVV(&uri, &_6, &_9, &path, &_10, &_12); - RETURN_CCTOR(&uri); + phvolt_ret_macro_parameter(&vvgotominor.vv186, vvmsp[0].minor.vv0, NULL, status->scanner_state); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, getAuthority) +// 2036 "parser.php.c" + break; + case 57: +// 410 "parser.php.lemon" { - zval authority, userInfo, _0, _1, _2, _4, _3$$4, _5$$5, _6$$5; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&authority); - ZVAL_UNDEF(&userInfo); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_6$$5); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("host"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, ""); - if (UNEXPECTED(ZEPHIR_IS_IDENTICAL(&_1, &_0))) { - RETURN_MM_STRING(""); - } - ZEPHIR_OBS_VAR(&authority); - zephir_read_property(&authority, this_ptr, ZEND_STRL("host"), PH_NOISY_CC); - ZEPHIR_CALL_METHOD(&userInfo, this_ptr, "getuserinfo", NULL, 337); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, ""); - if (UNEXPECTED(!ZEPHIR_IS_IDENTICAL(&_2, &userInfo))) { - ZEPHIR_INIT_VAR(&_3$$4); - ZEPHIR_CONCAT_VSV(&_3$$4, &userInfo, "@", &authority); - ZEPHIR_CPY_WRT(&authority, &_3$$4); - } - zephir_read_property(&_4, this_ptr, ZEND_STRL("port"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(Z_TYPE_P(&_4) != IS_NULL)) { - zephir_read_property(&_5$$5, this_ptr, ZEND_STRL("port"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_6$$5); - ZEPHIR_CONCAT_SV(&_6$$5, ":", &_5$$5); - zephir_concat_self(&authority, &_6$$5); - } - RETURN_CCTOR(&authority); + phvolt_ret_macro_parameter(&vvgotominor.vv186, vvmsp[-2].minor.vv0, &vvmsp[0].minor.vv186, status->scanner_state); + vv_destructor(45,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, getUserInfo) +// 2044 "parser.php.c" + break; + case 58: + case 72: + case 138: + case 152: +// 414 "parser.php.lemon" { - zval _0, _1$$3, _2$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_OBS_VAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pass"), PH_NOISY_CC); - if (UNEXPECTED(1 != ZEPHIR_IS_EMPTY(&_0))) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("user"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("pass"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CONCAT_VSV(return_value, &_1$$3, ":", &_2$$3); - RETURN_MM(); - } - RETURN_MM_MEMBER(getThis(), "user"); + phvolt_ret_literal_zval(&vvgotominor.vv186, PHVOLT_T_INTEGER, vvmsp[0].minor.vv0, status->scanner_state); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, withFragment) +// 2054 "parser.php.c" + break; + case 59: + case 153: +// 418 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *fragment = NULL, fragment_sub, _0, _1; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&fragment_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(fragment) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &fragment); - ZEPHIR_SEPARATE_PARAM(fragment); - - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkstringparameter", NULL, 20, fragment); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "filterfragment", NULL, 330, fragment); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(fragment, &_0); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "fragment"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, fragment, &_1); - zephir_check_call_status(); - RETURN_MM(); + phvolt_ret_literal_zval(&vvgotominor.vv186, PHVOLT_T_STRING, vvmsp[0].minor.vv0, status->scanner_state); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, withPath) +// 2062 "parser.php.c" + break; + case 60: + case 154: +// 422 "parser.php.lemon" { - zend_bool _2; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *path = NULL, path_sub, _0, _1, _3, _4, _5, _6; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&path_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(path) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &path); - ZEPHIR_SEPARATE_PARAM(path); - - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkstringparameter", NULL, 20, path); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "?"); - ZEPHIR_INIT_VAR(&_1); - zephir_fast_strpos(&_1, path, &_0, 0 ); - _2 = !ZEPHIR_IS_FALSE_IDENTICAL(&_1); - if (!(_2)) { - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "#"); - ZEPHIR_INIT_VAR(&_4); - zephir_fast_strpos(&_4, path, &_3, 0 ); - _2 = !ZEPHIR_IS_FALSE_IDENTICAL(&_4); - } - if (UNEXPECTED(_2)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Path cannot contain a query string or fragment", "phalcon/Http/Message/Uri.zep", 290); - return; - } - ZEPHIR_CALL_METHOD(&_5, this_ptr, "filterpath", NULL, 331, path); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(path, &_5); - ZEPHIR_INIT_VAR(&_6); - ZVAL_STRING(&_6, "path"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, path, &_6); - zephir_check_call_status(); - RETURN_MM(); + phvolt_ret_literal_zval(&vvgotominor.vv186, PHVOLT_T_DOUBLE, vvmsp[0].minor.vv0, status->scanner_state); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, withPort) +// 2070 "parser.php.c" + break; + case 61: + case 155: +// 426 "parser.php.lemon" { - zend_bool _1$$3, _2$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *port = NULL, port_sub, _0$$3, _3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&port_sub); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(port) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &port); - ZEPHIR_SEPARATE_PARAM(port); - - - if (UNEXPECTED(Z_TYPE_P(port) != IS_NULL)) { - ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "filterport", NULL, 332, port); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(port, &_0$$3); - _1$$3 = Z_TYPE_P(port) != IS_NULL; - if (_1$$3) { - _2$$3 = ZEPHIR_LT_LONG(port, 1); - if (!(_2$$3)) { - _2$$3 = ZEPHIR_GT_LONG(port, 65535); - } - _1$$3 = _2$$3; - } - if (UNEXPECTED(_1$$3)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Method expects valid port (1-65535)", "phalcon/Http/Message/Uri.zep", 323); - return; - } - } - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "port"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, port, &_3); - zephir_check_call_status(); - RETURN_MM(); + phvolt_ret_literal_zval(&vvgotominor.vv186, PHVOLT_T_NULL, NULL, status->scanner_state); + vv_destructor(57,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, withQuery) +// 2079 "parser.php.c" + break; + case 62: + case 156: +// 430 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *query = NULL, query_sub, _0, _1, _2, _3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&query_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(query) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &query); - ZEPHIR_SEPARATE_PARAM(query); - - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkstringparameter", NULL, 20, query); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "#"); - ZEPHIR_INIT_VAR(&_1); - zephir_fast_strpos(&_1, query, &_0, 0 ); - if (UNEXPECTED(!ZEPHIR_IS_FALSE_IDENTICAL(&_1))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Query cannot contain a query fragment", "phalcon/Http/Message/Uri.zep", 353); - return; - } - ZEPHIR_CALL_METHOD(&_2, this_ptr, "filterquery", NULL, 333, query); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(query, &_2); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "query"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, query, &_3); - zephir_check_call_status(); - RETURN_MM(); + phvolt_ret_literal_zval(&vvgotominor.vv186, PHVOLT_T_FALSE, NULL, status->scanner_state); + vv_destructor(58,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, withScheme) +// 2088 "parser.php.c" + break; + case 63: + case 157: +// 434 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *scheme = NULL, scheme_sub, _0, _1; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&scheme_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(scheme) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &scheme); - ZEPHIR_SEPARATE_PARAM(scheme); - - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkstringparameter", NULL, 20, scheme); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "filterscheme", NULL, 334, scheme); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(scheme, &_0); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "scheme"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "processwith", NULL, 338, scheme, &_1); - zephir_check_call_status(); - RETURN_MM(); + phvolt_ret_literal_zval(&vvgotominor.vv186, PHVOLT_T_TRUE, NULL, status->scanner_state); + vv_destructor(59,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, withUserInfo) +// 2097 "parser.php.c" + break; + case 64: +// 438 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *user = NULL, user_sub, *password = NULL, password_sub, __$null, newInstance, _0, _2, _1$$4; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&user_sub); - ZVAL_UNDEF(&password_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&newInstance); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_1$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(user) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(password) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &user, &password); - ZEPHIR_SEPARATE_PARAM(user); - if (!password) { - password = &password_sub; - ZEPHIR_CPY_WRT(password, &__$null); - } else { - ZEPHIR_SEPARATE_PARAM(password); - } - - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkstringparameter", NULL, 20, user); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(password) != IS_NULL)) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkstringparameter", NULL, 20, user); - zephir_check_call_status(); - } - ZEPHIR_CALL_FUNCTION(&_0, "rawurlencode", NULL, 229, user); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(user, &_0); - if (UNEXPECTED(Z_TYPE_P(password) != IS_NULL)) { - ZEPHIR_CALL_FUNCTION(&_1$$4, "rawurlencode", NULL, 229, password); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(password, &_1$$4); - } - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "user"); - ZEPHIR_CALL_METHOD(&newInstance, this_ptr, "cloneinstance", NULL, 21, user, &_2); - zephir_check_call_status(); - zephir_update_property_zval(&newInstance, ZEND_STRL("pass"), password); - RETURN_CCTOR(&newInstance); + phvolt_ret_macro_call_statement(&vvgotominor.vv186, &vvmsp[-8].minor.vv186, &vvmsp[-6].minor.vv186, &vvmsp[-3].minor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-10].minor); + vv_destructor(60,&vvmsp[-9].minor); + vv_destructor(29,&vvmsp[-7].minor); + vv_destructor(52,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(61,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, withHost) +// 2112 "parser.php.c" + break; + case 65: +// 442 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *host, host_sub, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&host_sub); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(host) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &host); - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "host"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "processwith", NULL, 338, host, &_0); - zephir_check_call_status(); - RETURN_MM(); + phvolt_ret_macro_call_statement(&vvgotominor.vv186, &vvmsp[-6].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-8].minor); + vv_destructor(60,&vvmsp[-7].minor); + vv_destructor(29,&vvmsp[-5].minor); + vv_destructor(52,&vvmsp[-4].minor); + vv_destructor(32,&vvmsp[-3].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(61,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, checkValue) +// 2127 "parser.php.c" + break; + case 66: +// 446 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *value_param = NULL, *prefix_param = NULL, *suffix_param = NULL, _0; - zval value, prefix, suffix, _1$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&prefix); - ZVAL_UNDEF(&suffix); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(value) - Z_PARAM_OPTIONAL - Z_PARAM_STR(prefix) - Z_PARAM_STR(suffix) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &value_param, &prefix_param, &suffix_param); - if (UNEXPECTED(Z_TYPE_P(value_param) != IS_STRING && Z_TYPE_P(value_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'value' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(value_param) == IS_STRING)) { - zephir_get_strval(&value, value_param); - } else { - ZEPHIR_INIT_VAR(&value); - } - if (!prefix_param) { - ZEPHIR_INIT_VAR(&prefix); - ZVAL_STRING(&prefix, ""); - } else { - if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { - zephir_get_strval(&prefix, prefix_param); - } else { - ZEPHIR_INIT_VAR(&prefix); - } - } - if (!suffix_param) { - ZEPHIR_INIT_VAR(&suffix); - ZVAL_STRING(&suffix, ""); - } else { - if (UNEXPECTED(Z_TYPE_P(suffix_param) != IS_STRING && Z_TYPE_P(suffix_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'suffix' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(suffix_param) == IS_STRING)) { - zephir_get_strval(&suffix, suffix_param); - } else { - ZEPHIR_INIT_VAR(&suffix); - } - } - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, ""); - if (UNEXPECTED(!ZEPHIR_IS_IDENTICAL(&_0, &value))) { - ZEPHIR_INIT_VAR(&_1$$3); - ZEPHIR_CONCAT_VVV(&_1$$3, &prefix, &value, &suffix); - ZEPHIR_CPY_WRT(&value, &_1$$3); - } - RETURN_CTOR(&value); + phvolt_ret_empty_statement(&vvgotominor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, filterFragment) +// 2136 "parser.php.c" + break; + case 67: +// 450 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *fragment_param = NULL; - zval fragment; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&fragment); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(fragment) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &fragment_param); - if (UNEXPECTED(Z_TYPE_P(fragment_param) != IS_STRING && Z_TYPE_P(fragment_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'fragment' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(fragment_param) == IS_STRING)) { - zephir_get_strval(&fragment, fragment_param); - } else { - ZEPHIR_INIT_VAR(&fragment); - } - - - ZEPHIR_RETURN_CALL_FUNCTION("rawurlencode", NULL, 229, &fragment); - zephir_check_call_status(); - RETURN_MM(); + phvolt_ret_echo_statement(&vvgotominor.vv186, &vvmsp[-1].minor.vv186, status->scanner_state); + vv_destructor(62,&vvmsp[-2].minor); + vv_destructor(63,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, filterPath) +// 2145 "parser.php.c" + break; + case 68: +// 454 "parser.php.lemon" { - zend_string *_5; - zend_ulong _4; - zend_bool _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_7 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *path_param = NULL, element, key, parts, _0, *_2, _3, _9, _10, _6$$4, _8$$5; - zval path; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&element); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&parts); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_8$$5); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(path) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &path_param); - if (UNEXPECTED(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 of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { - zephir_get_strval(&path, path_param); - } else { - ZEPHIR_INIT_VAR(&path); - } - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, ""); - _1 = ZEPHIR_IS_IDENTICAL(&_0, &path); - if (!(_1)) { - _1 = 1 != zephir_start_with_str(&path, SL("/")); - } - if (UNEXPECTED(_1)) { - RETURN_CTOR(&path); - } - ZEPHIR_INIT_VAR(&parts); - zephir_fast_explode_str(&parts, SL("/"), &path, LONG_MAX); - zephir_is_iterable(&parts, 1, "phalcon/Http/Message/Uri.zep", 524); - if (Z_TYPE_P(&parts) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&parts), _4, _5, _2) - { - ZEPHIR_INIT_NVAR(&key); - if (_5 != NULL) { - ZVAL_STR_COPY(&key, _5); - } else { - ZVAL_LONG(&key, _4); - } - ZEPHIR_INIT_NVAR(&element); - ZVAL_COPY(&element, _2); - ZEPHIR_CALL_FUNCTION(&_6$$4, "rawurlencode", &_7, 229, &element); - zephir_check_call_status(); - zephir_array_update_zval(&parts, &key, &_6$$4, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &parts, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3, &parts, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3)) { - break; - } - ZEPHIR_CALL_METHOD(&key, &parts, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&element, &parts, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_8$$5, "rawurlencode", &_7, 229, &element); - zephir_check_call_status(); - zephir_array_update_zval(&parts, &key, &_8$$5, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &parts, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&element); - ZEPHIR_INIT_NVAR(&key); - ZEPHIR_INIT_NVAR(&path); - zephir_fast_join_str(&path, SL("/"), &parts); - ZEPHIR_INIT_VAR(&_9); - ZEPHIR_INIT_VAR(&_10); - ZVAL_STRING(&_10, "/"); - zephir_fast_trim(&_9, &path, &_10, ZEPHIR_TRIM_LEFT); - ZEPHIR_CONCAT_SV(return_value, "/", &_9); - RETURN_MM(); + phvolt_ret_block_statement(&vvgotominor.vv186, vvmsp[-5].minor.vv0, &vvmsp[-3].minor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-7].minor); + vv_destructor(64,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(65,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, filterPort) +// 2158 "parser.php.c" + break; + case 69: +// 458 "parser.php.lemon" { - zend_long _0$$3; - zval ports; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *port = NULL, port_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&port_sub); - ZVAL_UNDEF(&ports); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(port) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &port); - ZEPHIR_SEPARATE_PARAM(port); - - - ZEPHIR_INIT_VAR(&ports); - zephir_create_array(&ports, 2, 0); - add_index_long(&ports, 80, 1); - add_index_long(&ports, 443, 1); - if (UNEXPECTED(Z_TYPE_P(port) != IS_NULL)) { - _0$$3 = zephir_get_intval(port); - ZEPHIR_INIT_NVAR(port); - ZVAL_LONG(port, _0$$3); - if (UNEXPECTED(zephir_array_isset(&ports, port))) { - ZEPHIR_INIT_NVAR(port); - ZVAL_NULL(port); - } - } - RETVAL_ZVAL(port, 1, 0); - RETURN_MM(); + phvolt_ret_block_statement(&vvgotominor.vv186, vvmsp[-4].minor.vv0, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-6].minor); + vv_destructor(64,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-3].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(65,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, filterQuery) +// 2171 "parser.php.c" + break; + case 70: +// 462 "parser.php.lemon" { - zend_string *_6; - zend_ulong _5; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_7 = NULL, *_11 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *query_param = NULL, index, part, parts, split, _0, _1, _2, *_3, _4, _8$$4, _12$$4, _13$$4, _14$$4, _15$$4, _16$$4, _9$$5, _10$$5, _17$$6, _20$$6, _21$$6, _22$$6, _23$$6, _24$$6, _18$$7, _19$$7; - zval query; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&query); - ZVAL_UNDEF(&index); - ZVAL_UNDEF(&part); - ZVAL_UNDEF(&parts); - ZVAL_UNDEF(&split); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_8$$4); - ZVAL_UNDEF(&_12$$4); - ZVAL_UNDEF(&_13$$4); - ZVAL_UNDEF(&_14$$4); - ZVAL_UNDEF(&_15$$4); - ZVAL_UNDEF(&_16$$4); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_10$$5); - ZVAL_UNDEF(&_17$$6); - ZVAL_UNDEF(&_20$$6); - ZVAL_UNDEF(&_21$$6); - ZVAL_UNDEF(&_22$$6); - ZVAL_UNDEF(&_23$$6); - ZVAL_UNDEF(&_24$$6); - ZVAL_UNDEF(&_18$$7); - ZVAL_UNDEF(&_19$$7); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(query) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &query_param); - zephir_get_strval(&query, query_param); - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, ""); - if (UNEXPECTED(ZEPHIR_IS_IDENTICAL(&_0, &query))) { - RETURN_MM_STRING(""); - } - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "?"); - zephir_fast_trim(&_1, &query, &_2, ZEPHIR_TRIM_LEFT); - zephir_get_strval(&query, &_1); - ZEPHIR_INIT_VAR(&parts); - zephir_fast_explode_str(&parts, SL("&"), &query, LONG_MAX); - zephir_is_iterable(&parts, 1, "phalcon/Http/Message/Uri.zep", 597); - if (Z_TYPE_P(&parts) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&parts), _5, _6, _3) - { - ZEPHIR_INIT_NVAR(&index); - if (_6 != NULL) { - ZVAL_STR_COPY(&index, _6); - } else { - ZVAL_LONG(&index, _5); - } - ZEPHIR_INIT_NVAR(&part); - ZVAL_COPY(&part, _3); - ZEPHIR_CALL_METHOD(&split, this_ptr, "splitqueryvalue", &_7, 339, &part); - zephir_check_call_status(); - zephir_array_fetch_long(&_8$$4, &split, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Message/Uri.zep", 589); - if (UNEXPECTED(Z_TYPE_P(&_8$$4) == IS_NULL)) { - zephir_array_fetch_long(&_9$$5, &split, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Message/Uri.zep", 590); - ZEPHIR_CALL_FUNCTION(&_10$$5, "rawurlencode", &_11, 229, &_9$$5); - zephir_check_call_status(); - zephir_array_update_zval(&parts, &index, &_10$$5, PH_COPY | PH_SEPARATE); - continue; - } - zephir_array_fetch_long(&_12$$4, &split, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Message/Uri.zep", 594); - ZEPHIR_CALL_FUNCTION(&_13$$4, "rawurlencode", &_11, 229, &_12$$4); - zephir_check_call_status(); - zephir_array_fetch_long(&_14$$4, &split, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Message/Uri.zep", 594); - ZEPHIR_CALL_FUNCTION(&_15$$4, "rawurlencode", &_11, 229, &_14$$4); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_16$$4); - ZEPHIR_CONCAT_VSV(&_16$$4, &_13$$4, "=", &_15$$4); - zephir_array_update_zval(&parts, &index, &_16$$4, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &parts, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_4, &parts, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_4)) { - break; - } - ZEPHIR_CALL_METHOD(&index, &parts, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&part, &parts, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&split, this_ptr, "splitqueryvalue", &_7, 339, &part); - zephir_check_call_status(); - zephir_array_fetch_long(&_17$$6, &split, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Message/Uri.zep", 589); - if (UNEXPECTED(Z_TYPE_P(&_17$$6) == IS_NULL)) { - zephir_array_fetch_long(&_18$$7, &split, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Message/Uri.zep", 590); - ZEPHIR_CALL_FUNCTION(&_19$$7, "rawurlencode", &_11, 229, &_18$$7); - zephir_check_call_status(); - zephir_array_update_zval(&parts, &index, &_19$$7, PH_COPY | PH_SEPARATE); - continue; - } - zephir_array_fetch_long(&_20$$6, &split, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Message/Uri.zep", 594); - ZEPHIR_CALL_FUNCTION(&_21$$6, "rawurlencode", &_11, 229, &_20$$6); - zephir_check_call_status(); - zephir_array_fetch_long(&_22$$6, &split, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Message/Uri.zep", 594); - ZEPHIR_CALL_FUNCTION(&_23$$6, "rawurlencode", &_11, 229, &_22$$6); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_24$$6); - ZEPHIR_CONCAT_VSV(&_24$$6, &_21$$6, "=", &_23$$6); - zephir_array_update_zval(&parts, &index, &_24$$6, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &parts, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&part); - ZEPHIR_INIT_NVAR(&index); - zephir_fast_join_str(return_value, SL("&"), &parts); - RETURN_MM(); + phvolt_ret_cache_statement(&vvgotominor.vv186, &vvmsp[-5].minor.vv186, NULL, &vvmsp[-3].minor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-7].minor); + vv_destructor(66,&vvmsp[-6].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(67,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, filterScheme) +// 2184 "parser.php.c" + break; + case 71: +// 466 "parser.php.lemon" { - zval schemes; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *scheme_param = NULL, filtered, _0, _1, _2, _3, _4$$4, _5$$4, _6$$4, _7$$4; - zval scheme; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&scheme); - ZVAL_UNDEF(&filtered); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&schemes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(scheme) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &scheme_param); - if (UNEXPECTED(Z_TYPE_P(scheme_param) != IS_STRING && Z_TYPE_P(scheme_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'scheme' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(scheme_param) == IS_STRING)) { - zephir_get_strval(&scheme, scheme_param); - } else { - ZEPHIR_INIT_VAR(&scheme); - } - - - ZEPHIR_CALL_FUNCTION(&_0, "mb_strtolower", NULL, 25, &scheme); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "#:(//)?$#"); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, ""); - ZEPHIR_CALL_FUNCTION(&filtered, "preg_replace", NULL, 50, &_1, &_2, &_0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&schemes); - zephir_create_array(&schemes, 2, 0); - add_assoc_long_ex(&schemes, SL("http"), 1); - add_assoc_long_ex(&schemes, SL("https"), 1); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, ""); - if (UNEXPECTED(ZEPHIR_IS_IDENTICAL(&_3, &filtered))) { - RETURN_MM_STRING(""); - } - if (UNEXPECTED(!(zephir_array_isset(&schemes, &filtered)))) { - ZEPHIR_INIT_VAR(&_4$$4); - object_init_ex(&_4$$4, phalcon_http_message_exception_invalidargumentexception_ce); - ZEPHIR_INIT_VAR(&_5$$4); - ZEPHIR_INIT_VAR(&_6$$4); - zephir_array_keys(&_6$$4, &schemes); - zephir_fast_join_str(&_5$$4, SL(", "), &_6$$4); - ZEPHIR_INIT_VAR(&_7$$4); - ZEPHIR_CONCAT_SVSSVS(&_7$$4, "Unsupported scheme [", &filtered, "]. ", "Scheme must be one of [", &_5$$4, "]"); - ZEPHIR_CALL_METHOD(NULL, &_4$$4, "__construct", NULL, 40, &_7$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_4$$4, "phalcon/Http/Message/Uri.zep", 627); - ZEPHIR_MM_RESTORE(); - return; - } - RETURN_CTOR(&scheme); + phvolt_ret_cache_statement(&vvgotominor.vv186, &vvmsp[-6].minor.vv186, &vvmsp[-5].minor.vv186, &vvmsp[-3].minor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-8].minor); + vv_destructor(66,&vvmsp[-7].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(67,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Uri, splitQueryValue) +// 2197 "parser.php.c" + break; + case 74: +// 478 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *element_param = NULL, __$null, data; - zval element; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&element); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&data); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(element) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &element_param); - zephir_get_strval(&element, element_param); - - - ZEPHIR_INIT_VAR(&data); - zephir_fast_explode_str(&data, SL("="), &element, 2 ); - if (UNEXPECTED(!(zephir_array_isset_long(&data, 1)))) { - zephir_array_append(&data, &__$null, PH_SEPARATE, "phalcon/Http/Message/Uri.zep", 644); - } - RETURN_CCTOR(&data); + phvolt_ret_raw_statement(&vvgotominor.vv186, &vvmsp[-3].minor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-6].minor); + vv_destructor(68,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(69,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Message_UriFactory) +// 2210 "parser.php.c" + break; + case 75: +// 482 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Message, UriFactory, phalcon, http_message_urifactory, phalcon_http_message_urifactory_method_entry, ZEND_ACC_FINAL_CLASS); - - zend_class_implements(phalcon_http_message_urifactory_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\urifactoryinterface"))); - return SUCCESS; + phvolt_ret_extends_statement(&vvgotominor.vv186, &vvmsp[-1].minor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(70,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_UriFactory, createUri) +// 2220 "parser.php.c" + break; + case 76: +// 486 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *uri_param = NULL; - zval uri; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&uri); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR(uri) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &uri_param); - if (!uri_param) { - ZEPHIR_INIT_VAR(&uri); - ZVAL_STRING(&uri, ""); - } else { - if (UNEXPECTED(Z_TYPE_P(uri_param) != IS_STRING && Z_TYPE_P(uri_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'uri' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(uri_param) == IS_STRING)) { - zephir_get_strval(&uri, uri_param); - } else { - ZEPHIR_INIT_VAR(&uri); - } - } - - - object_init_ex(return_value, phalcon_http_message_uri_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 107, &uri); - zephir_check_call_status(); - RETURN_MM(); + phvolt_ret_include_statement(&vvgotominor.vv186, &vvmsp[-1].minor.vv186, NULL, status->scanner_state); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(71,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Message_Exception_InvalidArgumentException) +// 2230 "parser.php.c" + break; + case 77: +// 490 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Message\\Exception, InvalidArgumentException, phalcon, http_message_exception_invalidargumentexception, spl_ce_InvalidArgumentException, NULL, 0); - - zend_class_implements(phalcon_http_message_exception_invalidargumentexception_ce, 1, zend_ce_throwable); - return SUCCESS; + phvolt_ret_include_statement(&vvgotominor.vv186, &vvmsp[-3].minor.vv186, &vvmsp[-1].minor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-5].minor); + vv_destructor(71,&vvmsp[-4].minor); + vv_destructor(72,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Message_Stream_Input) +// 2241 "parser.php.c" + break; + case 78: +// 494 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Message\\Stream, Input, phalcon, http_message_stream_input, phalcon_http_message_stream_ce, phalcon_http_message_stream_input_method_entry, 0); - - zend_declare_property_string(phalcon_http_message_stream_input_ce, SL("data"), "", ZEND_ACC_PRIVATE); - zend_declare_property_bool(phalcon_http_message_stream_input_ce, SL("eof"), 0, ZEND_ACC_PRIVATE); - return SUCCESS; + phvolt_ret_do_statement(&vvgotominor.vv186, &vvmsp[-1].minor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(73,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Stream_Input, __construct) +// 2251 "parser.php.c" + break; + case 79: +// 498 "parser.php.lemon" { - zval _1, _2; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "php://input"); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "rb"); - ZEPHIR_CALL_PARENT(NULL, phalcon_http_message_stream_input_ce, getThis(), "__construct", &_0, 0, &_1, &_2); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + phvolt_ret_return_statement(&vvgotominor.vv186, &vvmsp[-1].minor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-3].minor); + vv_destructor(74,&vvmsp[-2].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Stream_Input, __toString) +// 2261 "parser.php.c" + break; + case 80: +// 502 "parser.php.lemon" { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("eof"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(zephir_is_true(&_0))) { - RETURN_MM_MEMBER(getThis(), "data"); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "getcontents", NULL, 0); - zephir_check_call_status(); - RETURN_MM_MEMBER(getThis(), "data"); + phvolt_ret_autoescape_statement(&vvgotominor.vv186, 0, &vvmsp[-3].minor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-7].minor); + vv_destructor(75,&vvmsp[-6].minor); + vv_destructor(58,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(76,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Stream_Input, getContents) +// 2275 "parser.php.c" + break; + case 81: +// 506 "parser.php.lemon" { - zend_bool _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *length_param = NULL, __$true, __$false, data, _0, _1, _2, _4; - zend_long length, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(length) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &length_param); - if (!length_param) { - length = -1; - } else { - length = zephir_get_intval(length_param); - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("eof"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(zephir_is_true(&_0))) { - RETURN_MM_MEMBER(getThis(), "data"); - } - zephir_read_property(&_1, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_2, length); - ZEPHIR_CALL_FUNCTION(&data, "stream_get_contents", NULL, 79, &_1, &_2); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &data); - _3 = -1 == length; - if (!(_3)) { - ZEPHIR_CALL_METHOD(&_4, this_ptr, "eof", NULL, 0); - zephir_check_call_status(); - _3 = zephir_is_true(&_4); - } - if (UNEXPECTED(_3)) { - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("eof"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("eof"), &__$false); - } - } - RETURN_MM_MEMBER(getThis(), "data"); + phvolt_ret_autoescape_statement(&vvgotominor.vv186, 1, &vvmsp[-3].minor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-7].minor); + vv_destructor(75,&vvmsp[-6].minor); + vv_destructor(59,&vvmsp[-5].minor); + vv_destructor(32,&vvmsp[-4].minor); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(76,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Stream_Input, isWritable) +// 2289 "parser.php.c" + break; + case 82: +// 510 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_BOOL(0); + phvolt_ret_break_statement(&vvgotominor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(77,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Stream_Input, read) +// 2299 "parser.php.c" + break; + case 83: +// 514 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *length, length_sub, __$true, __$false, data, _1, _2; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&length_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(length) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &length); - - - ZEPHIR_CALL_PARENT(&data, phalcon_http_message_stream_input_ce, getThis(), "read", &_0, 0, length); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("eof"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&_1))) { - zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &data); - } - ZEPHIR_CALL_METHOD(&_2, this_ptr, "eof", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(zephir_is_true(&_2))) { - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("eof"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("eof"), &__$false); - } - } - RETURN_CCTOR(&data); + phvolt_ret_continue_statement(&vvgotominor.vv186, status->scanner_state); + vv_destructor(1,&vvmsp[-2].minor); + vv_destructor(78,&vvmsp[-1].minor); + vv_destructor(32,&vvmsp[0].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Message_Stream_Memory) +// 2309 "parser.php.c" + break; + case 84: +// 518 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Message\\Stream, Memory, phalcon, http_message_stream_memory, phalcon_http_message_stream_ce, phalcon_http_message_stream_memory_method_entry, 0); - - return SUCCESS; + phvolt_ret_literal_zval(&vvgotominor.vv186, PHVOLT_T_RAW_FRAGMENT, vvmsp[0].minor.vv0, status->scanner_state); } - -static PHP_METHOD(Phalcon_Http_Message_Stream_Memory, __construct) +// 2316 "parser.php.c" + break; + case 85: +// 522 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *mode = NULL, mode_sub, _1; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&mode_sub); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL(mode) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &mode); - if (!mode) { - mode = &mode_sub; - ZEPHIR_INIT_VAR(mode); - ZVAL_STRING(mode, "rb"); - } - - - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "php://memory"); - ZEPHIR_CALL_PARENT(NULL, phalcon_http_message_stream_memory_ce, getThis(), "__construct", &_0, 0, &_1, mode); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_MINUS, NULL, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(22,&vvmsp[-1].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Message_Stream_Temp) +// 2324 "parser.php.c" + break; + case 86: +// 526 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Message\\Stream, Temp, phalcon, http_message_stream_temp, phalcon_http_message_stream_ce, phalcon_http_message_stream_temp_method_entry, 0); - - return SUCCESS; + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_PLUS, NULL, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(21,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Message_Stream_Temp, __construct) +// 2332 "parser.php.c" + break; + case 87: +// 530 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *mode = NULL, mode_sub, _1; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&mode_sub); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL(mode) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &mode); - if (!mode) { - mode = &mode_sub; - ZEPHIR_INIT_VAR(mode); - ZVAL_STRING(mode, "rb"); - } - - - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "php://temp"); - ZEPHIR_CALL_PARENT(NULL, phalcon_http_message_stream_temp_ce, getThis(), "__construct", &_0, 0, &_1, mode); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_SUB, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(22,&vvmsp[-1].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Request_Exception) +// 2340 "parser.php.c" + break; + case 88: +// 534 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Request, Exception, phalcon, http_request_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ADD, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(21,&vvmsp[-1].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Request_File) +// 2348 "parser.php.c" + break; + case 89: +// 538 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Request, File, phalcon, http_request_file, phalcon_http_request_file_method_entry, 0); - - zend_declare_property_null(phalcon_http_request_file_ce, SL("error"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_request_file_ce, SL("extension"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_request_file_ce, SL("key"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_request_file_ce, SL("name"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_request_file_ce, SL("realType"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_http_request_file_ce, SL("size"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_request_file_ce, SL("tmp"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_request_file_ce, SL("type"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_http_request_file_ce, 1, phalcon_http_request_fileinterface_ce); - return SUCCESS; + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_MUL, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(19,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Request_File, getError) +// 2356 "parser.php.c" + break; + case 90: +// 542 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "error"); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_POW, &vvmsp[-3].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(19,&vvmsp[-2].minor); + vv_destructor(19,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Request_File, getExtension) +// 2365 "parser.php.c" + break; + case 91: +// 546 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "extension"); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_DIV, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(18,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Request_File, getKey) +// 2373 "parser.php.c" + break; + case 92: +// 550 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "key"); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_MOD, &vvmsp[-3].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(18,&vvmsp[-2].minor); + vv_destructor(18,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Request_File, __construct) +// 2382 "parser.php.c" + break; + case 93: +// 554 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *file_param = NULL, *key = NULL, key_sub, __$null, name, _4, _6, _7, _8, _9, _0$$3, _1$$3, _2$$4, _3$$4; - zval file; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&file); - ZVAL_UNDEF(&key_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(file) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(key) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &file_param, &key); - ZEPHIR_OBS_COPY_OR_DUP(&file, file_param); - if (!key) { - key = &key_sub; - key = &__$null; - } - - - ZEPHIR_OBS_VAR(&name); - if (zephir_array_isset_string_fetch(&name, &file, SL("name"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); - ZEPHIR_INIT_VAR(&_0$$3); - ZVAL_STRING(&_0$$3, "PATHINFO_EXTENSION"); - ZEPHIR_CALL_FUNCTION(&_1$$3, "defined", NULL, 127, &_0$$3); - zephir_check_call_status(); - if (zephir_is_true(&_1$$3)) { - ZVAL_LONG(&_2$$4, 4); - ZEPHIR_CALL_FUNCTION(&_3$$4, "pathinfo", NULL, 109, &name, &_2$$4); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("extension"), &_3$$4); - } - } - ZEPHIR_INIT_VAR(&_6); - ZVAL_STRING(&_6, "tmp_name"); - ZEPHIR_CALL_CE_STATIC(&_4, phalcon_helper_arr_ce, "get", &_5, 16, &file, &_6); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("tmp"), &_4); - ZEPHIR_INIT_NVAR(&_6); - ZVAL_STRING(&_6, "size"); - ZEPHIR_CALL_CE_STATIC(&_7, phalcon_helper_arr_ce, "get", &_5, 16, &file, &_6); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("size"), &_7); - ZEPHIR_INIT_NVAR(&_6); - ZVAL_STRING(&_6, "type"); - ZEPHIR_CALL_CE_STATIC(&_8, phalcon_helper_arr_ce, "get", &_5, 16, &file, &_6); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_8); - ZEPHIR_INIT_NVAR(&_6); - ZVAL_STRING(&_6, "error"); - ZEPHIR_CALL_CE_STATIC(&_9, phalcon_helper_arr_ce, "get", &_5, 16, &file, &_6); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("error"), &_9); - if (zephir_is_true(key)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("key"), key); - } - ZEPHIR_MM_RESTORE(); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_MOD, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(20,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Request_File, getName) +// 2390 "parser.php.c" + break; + case 94: +// 558 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "name"); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_AND, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(6,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Request_File, getRealType) +// 2398 "parser.php.c" + break; + case 95: +// 562 "parser.php.lemon" { - zval finfo, mime, _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&finfo); - ZVAL_UNDEF(&mime); - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - ZVAL_LONG(&_0, 16); - ZEPHIR_CALL_FUNCTION(&finfo, "finfo_open", NULL, 355, &_0); - zephir_check_call_status(); - if (Z_TYPE_P(&finfo) != IS_RESOURCE) { - RETURN_MM_STRING(""); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("tmp"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&mime, "finfo_file", NULL, 356, &finfo, &_0); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(NULL, "finfo_close", NULL, 357, &finfo); - zephir_check_call_status(); - RETURN_CCTOR(&mime); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_OR, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(7,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Request_File, getSize) +// 2406 "parser.php.c" + break; + case 96: +// 566 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "size"); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_CONCAT, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(23,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Request_File, getTempName) +// 2414 "parser.php.c" + break; + case 97: +// 570 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "tmp"); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_PIPE, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(25,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Request_File, getType) +// 2422 "parser.php.c" + break; + case 98: +// 574 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "type"); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_RANGE, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(5,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Request_File, isUploadedFile) +// 2430 "parser.php.c" + break; + case 99: +// 578 "parser.php.lemon" { - zend_bool _0; - zval tmp, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&tmp); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(&tmp, this_ptr, "gettempname", NULL, 0); - zephir_check_call_status(); - _0 = Z_TYPE_P(&tmp) == IS_STRING; - if (_0) { - ZEPHIR_CALL_FUNCTION(&_1, "is_uploaded_file", NULL, 19, &tmp); - zephir_check_call_status(); - _0 = zephir_is_true(&_1); - } - RETURN_MM_BOOL(_0); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_EQUALS, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(10,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Request_File, moveTo) +// 2438 "parser.php.c" + break; + case 100: +// 582 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *destination_param = NULL, _0; - zval destination; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&destination); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(destination) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &destination_param); - if (UNEXPECTED(Z_TYPE_P(destination_param) != IS_STRING && Z_TYPE_P(destination_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'destination' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(destination_param) == IS_STRING)) { - zephir_get_strval(&destination, destination_param); - } else { - ZEPHIR_INIT_VAR(&destination); - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("tmp"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_FUNCTION("move_uploaded_file", NULL, 328, &_0, &destination); - zephir_check_call_status(); - RETURN_MM(); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOT_ISSET, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(80,&vvmsp[0].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Request_FileInterface) +// 2447 "parser.php.c" + break; + case 101: +// 586 "parser.php.lemon" { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Http\\Request, FileInterface, phalcon, http_request_fileinterface, phalcon_http_request_fileinterface_method_entry); - - return SUCCESS; + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ISSET, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(80,&vvmsp[0].minor); } - -ZEPHIR_DOC_METHOD(Phalcon_Http_Request_FileInterface, getError); -ZEPHIR_DOC_METHOD(Phalcon_Http_Request_FileInterface, getName); -ZEPHIR_DOC_METHOD(Phalcon_Http_Request_FileInterface, getRealType); -ZEPHIR_DOC_METHOD(Phalcon_Http_Request_FileInterface, getSize); -ZEPHIR_DOC_METHOD(Phalcon_Http_Request_FileInterface, getTempName); -ZEPHIR_DOC_METHOD(Phalcon_Http_Request_FileInterface, getType); -ZEPHIR_DOC_METHOD(Phalcon_Http_Request_FileInterface, moveTo); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Response_Cookies) +// 2456 "parser.php.c" + break; + case 102: +// 590 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Response, Cookies, phalcon, http_response_cookies, phalcon_di_abstractinjectionaware_ce, phalcon_http_response_cookies_method_entry, 0); - - zend_declare_property_null(phalcon_http_response_cookies_ce, SL("cookies"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_http_response_cookies_ce, SL("isSent"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_http_response_cookies_ce, SL("registered"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_http_response_cookies_ce, SL("signKey"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_http_response_cookies_ce, SL("useEncryption"), 1, ZEND_ACC_PROTECTED); - phalcon_http_response_cookies_ce->create_object = zephir_init_properties_Phalcon_Http_Response_Cookies; - - zend_class_implements(phalcon_http_response_cookies_ce, 1, phalcon_http_response_cookiesinterface_ce); - return SUCCESS; + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOT_ISEMPTY, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(81,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Response_Cookies, __construct) +// 2465 "parser.php.c" + break; + case 103: +// 594 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval signKey; - zval *useEncryption_param = NULL, *signKey_param = NULL, __$true, __$false; - zend_bool useEncryption; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&signKey); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(useEncryption) - Z_PARAM_STR_OR_NULL(signKey) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &useEncryption_param, &signKey_param); - if (!useEncryption_param) { - useEncryption = 1; - } else { - useEncryption = zephir_get_boolval(useEncryption_param); - } - if (!signKey_param) { - ZEPHIR_INIT_VAR(&signKey); - } else { - zephir_get_strval(&signKey, signKey_param); - } - - - if (useEncryption) { - zephir_update_property_zval(this_ptr, ZEND_STRL("useEncryption"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("useEncryption"), &__$false); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setsignkey", NULL, 0, &signKey); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ISEMPTY, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(81,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Response_Cookies, delete) +// 2474 "parser.php.c" + break; + case 104: +// 598 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, cookie, _0; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&cookie); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - - - ZEPHIR_OBS_VAR(&cookie); - zephir_read_property(&_0, this_ptr, ZEND_STRL("cookies"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&cookie, &_0, &name, 0))) { - RETURN_MM_BOOL(0); - } - ZEPHIR_CALL_METHOD(NULL, &cookie, "delete", NULL, 0); - zephir_check_call_status(); - RETURN_MM_BOOL(1); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOT_ISEVEN, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(82,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Response_Cookies, get) +// 2483 "parser.php.c" + break; + case 105: +// 602 "parser.php.lemon" { - zval _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, container, encryption, cookie, _0, _1, _2, _4, _5, _6$$5; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&encryption); - ZVAL_UNDEF(&cookie); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - - - ZEPHIR_OBS_VAR(&cookie); - zephir_read_property(&_0, this_ptr, ZEND_STRL("cookies"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&cookie, &_0, &name, 0)) { - RETURN_CCTOR(&cookie); - } - zephir_read_property(&_1, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_3); - zephir_create_array(&_3, 1, 0); - zephir_array_fast_append(&_3, &name); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "Phalcon\\Http\\Cookie"); - ZEPHIR_CALL_METHOD(&_2, &_1, "get", NULL, 0, &_4, &_3); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&cookie, &_2); - zephir_read_property(&_5, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_5); - if (Z_TYPE_P(&container) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(NULL, &cookie, "setdi", NULL, 0, &container); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&encryption); - zephir_read_property(&encryption, this_ptr, ZEND_STRL("useEncryption"), PH_NOISY_CC); - if (zephir_is_true(&encryption)) { - ZEPHIR_CALL_METHOD(NULL, &cookie, "useencryption", NULL, 0, &encryption); - zephir_check_call_status(); - zephir_read_property(&_6$$5, this_ptr, ZEND_STRL("signKey"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &cookie, "setsignkey", NULL, 0, &_6$$5); - zephir_check_call_status(); - } - } - RETURN_CCTOR(&cookie); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ISEVEN, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(82,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Response_Cookies, getCookies) +// 2492 "parser.php.c" + break; + case 106: +// 606 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "cookies"); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOT_ISODD, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(83,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Response_Cookies, has) +// 2501 "parser.php.c" + break; + case 107: +// 610 "parser.php.lemon" { - zend_bool _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, _COOKIE, _0; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_COOKIE); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_get_global(&_COOKIE, SL("_COOKIE")); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("cookies"), PH_NOISY_CC | PH_READONLY); - _1 = zephir_array_isset(&_0, &name); - if (!(_1)) { - _1 = zephir_array_isset(&_COOKIE, &name); - } - RETURN_MM_BOOL(_1); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ISODD, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(83,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Response_Cookies, isSent) +// 2510 "parser.php.c" + break; + case 108: +// 614 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "isSent"); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOT_ISNUMERIC, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(84,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Response_Cookies, isUsingEncryption) +// 2519 "parser.php.c" + break; + case 109: +// 618 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "useEncryption"); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ISNUMERIC, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(84,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Response_Cookies, reset) +// 2528 "parser.php.c" + break; + case 110: +// 622 "parser.php.lemon" { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&_0); - array_init(&_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("cookies"), &_0); - RETURN_THIS(); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOT_ISSCALAR, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(85,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Response_Cookies, send) +// 2537 "parser.php.c" + break; + case 111: +// 626 "parser.php.lemon" { - zend_bool _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval __$true, __$false, cookie, _0, _2, _3, *_4, _5; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&cookie); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_FUNCTION(&_0, "headers_sent", NULL, 361); - zephir_check_call_status(); - _1 = ZEPHIR_IS_TRUE_IDENTICAL(&_0); - if (!(_1)) { - ZEPHIR_CALL_METHOD(&_2, this_ptr, "issent", NULL, 0); - zephir_check_call_status(); - _1 = ZEPHIR_IS_TRUE_IDENTICAL(&_2); - } - if (_1) { - RETURN_MM_BOOL(0); - } - zephir_read_property(&_3, this_ptr, ZEND_STRL("cookies"), PH_NOISY_CC | PH_READONLY); - zephir_is_iterable(&_3, 0, "phalcon/Http/Response/Cookies.zep", 225); - if (Z_TYPE_P(&_3) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_3), _4) - { - ZEPHIR_INIT_NVAR(&cookie); - ZVAL_COPY(&cookie, _4); - ZEPHIR_CALL_METHOD(NULL, &cookie, "send", NULL, 0); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_3, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5, &_3, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5)) { - break; - } - ZEPHIR_CALL_METHOD(&cookie, &_3, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &cookie, "send", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_3, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&cookie); - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("isSent"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("isSent"), &__$false); - } - RETURN_MM_BOOL(1); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ISSCALAR, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(85,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Response_Cookies, set) +// 2546 "parser.php.c" + break; + case 112: +// 630 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_14 = NULL; - zval options, _3$$3; - zend_bool secure, httpOnly; - zend_long expire, ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, *value = NULL, value_sub, *expire_param = NULL, *path_param = NULL, *secure_param = NULL, *domain_param = NULL, *httpOnly_param = NULL, *options_param = NULL, __$true, __$false, __$null, cookie, encryption, container, response, _0, _10, _1$$3, _2$$3, _4$$3, _5$$3, _6$$4, _7$$5, _8$$5, _9$$5, _11$$6, _16$$6, _12$$7, _13$$7, _15$$7; - zval name, path, domain; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&domain); - ZVAL_UNDEF(&value_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&cookie); - ZVAL_UNDEF(&encryption); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&response); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_11$$6); - ZVAL_UNDEF(&_16$$6); - ZVAL_UNDEF(&_12$$7); - ZVAL_UNDEF(&_13$$7); - ZVAL_UNDEF(&_15$$7); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&_3$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 8) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(value) - Z_PARAM_LONG(expire) - Z_PARAM_STR(path) - Z_PARAM_BOOL_OR_NULL(secure, is_null_true) - Z_PARAM_STR_OR_NULL(domain) - Z_PARAM_BOOL_OR_NULL(httpOnly, is_null_true) - Z_PARAM_ARRAY(options) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 7, &name_param, &value, &expire_param, &path_param, &secure_param, &domain_param, &httpOnly_param, &options_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - if (!value) { - value = &value_sub; - value = &__$null; - } - if (!expire_param) { - expire = 0; - } else { - expire = zephir_get_intval(expire_param); - } - if (!path_param) { - ZEPHIR_INIT_VAR(&path); - ZVAL_STRING(&path, "/"); - } else { - zephir_get_strval(&path, path_param); - } - if (!secure_param) { - secure = 0; - } else { - secure = zephir_get_boolval(secure_param); - } - if (!domain_param) { - ZEPHIR_INIT_VAR(&domain); - } else { - if (UNEXPECTED(Z_TYPE_P(domain_param) != IS_STRING && Z_TYPE_P(domain_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'domain' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(domain_param) == IS_STRING)) { - zephir_get_strval(&domain, domain_param); - } else { - ZEPHIR_INIT_VAR(&domain); - } - } - if (!httpOnly_param) { - httpOnly = 0; - } else { - httpOnly = zephir_get_boolval(httpOnly_param); - } - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); - } else { - zephir_get_arrval(&options, options_param); - } - - - ZEPHIR_OBS_VAR(&encryption); - zephir_read_property(&encryption, this_ptr, ZEND_STRL("useEncryption"), PH_NOISY_CC); - ZEPHIR_OBS_VAR(&cookie); - zephir_read_property(&_0, this_ptr, ZEND_STRL("cookies"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&cookie, &_0, &name, 0))) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_3$$3); - zephir_create_array(&_3$$3, 8, 0); - zephir_array_fast_append(&_3$$3, &name); - zephir_array_fast_append(&_3$$3, value); - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_LONG(&_4$$3, expire); - zephir_array_fast_append(&_3$$3, &_4$$3); - zephir_array_fast_append(&_3$$3, &path); - ZEPHIR_INIT_NVAR(&_4$$3); - ZVAL_BOOL(&_4$$3, secure); - zephir_array_fast_append(&_3$$3, &_4$$3); - zephir_array_fast_append(&_3$$3, &domain); - ZEPHIR_INIT_NVAR(&_4$$3); - ZVAL_BOOL(&_4$$3, httpOnly); - zephir_array_fast_append(&_3$$3, &_4$$3); - zephir_array_fast_append(&_3$$3, &options); - ZEPHIR_INIT_NVAR(&_4$$3); - ZVAL_STRING(&_4$$3, "Phalcon\\Http\\Cookie"); - ZEPHIR_CALL_METHOD(&_2$$3, &_1$$3, "get", NULL, 0, &_4$$3, &_3$$3); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&cookie, &_2$$3); - zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &cookie, "setdi", NULL, 0, &_5$$3); - zephir_check_call_status(); - if (zephir_is_true(&encryption)) { - ZEPHIR_CALL_METHOD(NULL, &cookie, "useencryption", NULL, 0, &encryption); - zephir_check_call_status(); - zephir_read_property(&_6$$4, this_ptr, ZEND_STRL("signKey"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &cookie, "setsignkey", NULL, 0, &_6$$4); - zephir_check_call_status(); - } - zephir_update_property_array(this_ptr, SL("cookies"), &name, &cookie); - } else { - ZEPHIR_CALL_METHOD(NULL, &cookie, "setvalue", NULL, 0, value); - zephir_check_call_status(); - ZVAL_LONG(&_7$$5, expire); - ZEPHIR_CALL_METHOD(NULL, &cookie, "setexpiration", NULL, 0, &_7$$5); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &cookie, "setpath", NULL, 0, &path); - zephir_check_call_status(); - if (secure) { - ZVAL_BOOL(&_7$$5, 1); - } else { - ZVAL_BOOL(&_7$$5, 0); - } - ZEPHIR_CALL_METHOD(NULL, &cookie, "setsecure", NULL, 0, &_7$$5); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &cookie, "setdomain", NULL, 0, &domain); - zephir_check_call_status(); - if (httpOnly) { - ZVAL_BOOL(&_8$$5, 1); - } else { - ZVAL_BOOL(&_8$$5, 0); - } - ZEPHIR_CALL_METHOD(NULL, &cookie, "sethttponly", NULL, 0, &_8$$5); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &cookie, "setoptions", NULL, 0, &options); - zephir_check_call_status(); - zephir_read_property(&_9$$5, this_ptr, ZEND_STRL("signKey"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &cookie, "setsignkey", NULL, 0, &_9$$5); - zephir_check_call_status(); - } - zephir_read_property(&_10, this_ptr, ZEND_STRL("registered"), PH_NOISY_CC | PH_READONLY); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_10)) { - zephir_read_property(&_11$$6, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_11$$6); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_12$$7); - object_init_ex(&_12$$7, phalcon_http_cookie_exception_ce); - ZEPHIR_INIT_VAR(&_15$$7); - ZVAL_STRING(&_15$$7, "the 'response' service"); - ZEPHIR_CALL_CE_STATIC(&_13$$7, phalcon_http_cookie_exception_ce, "containerservicenotfound", &_14, 0, &_15$$7); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_12$$7, "__construct", NULL, 8, &_13$$7); - zephir_check_call_status(); - zephir_throw_exception_debug(&_12$$7, "phalcon/Http/Response/Cookies.zep", 313); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_VAR(&_16$$6); - ZVAL_STRING(&_16$$6, "response"); - ZEPHIR_CALL_METHOD(&response, &container, "getshared", NULL, 0, &_16$$6); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &response, "setcookies", NULL, 0, this_ptr); - zephir_check_call_status(); - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("registered"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("registered"), &__$false); - } - } - RETURN_THIS(); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOT_ISITERABLE, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); + vv_destructor(86,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Response_Cookies, setSignKey) +// 2555 "parser.php.c" + break; + case 113: +// 634 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *signKey_param = NULL; - zval signKey; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&signKey); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(signKey) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &signKey_param); - if (!signKey_param) { - ZEPHIR_INIT_VAR(&signKey); - } else { - zephir_get_strval(&signKey, signKey_param); - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("signKey"), &signKey); - RETURN_THIS(); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ISITERABLE, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); + vv_destructor(86,&vvmsp[0].minor); } - -static PHP_METHOD(Phalcon_Http_Response_Cookies, useEncryption) +// 2564 "parser.php.c" + break; + case 114: +// 638 "parser.php.lemon" { - zval *useEncryption_param = NULL, __$true, __$false; - zend_bool useEncryption; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(useEncryption) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &useEncryption_param); - useEncryption = zephir_get_boolval(useEncryption_param); - - - if (useEncryption) { - zephir_update_property_zval(this_ptr, ZEND_STRL("useEncryption"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("useEncryption"), &__$false); - } - RETURN_THISW(); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_IS, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(9,&vvmsp[-1].minor); } - -zend_object *zephir_init_properties_Phalcon_Http_Response_Cookies(zend_class_entry *class_type) +// 2572 "parser.php.c" + break; + case 115: +// 642 "parser.php.lemon" { - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("cookies"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("cookies"), &_1$$3); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOTEQUALS, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(11,&vvmsp[-1].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Response_CookiesInterface) +// 2580 "parser.php.c" + break; + case 116: +// 646 "parser.php.lemon" { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Http\\Response, CookiesInterface, phalcon, http_response_cookiesinterface, phalcon_http_response_cookiesinterface_method_entry); - - return SUCCESS; + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_IDENTICAL, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(16,&vvmsp[-1].minor); } - -ZEPHIR_DOC_METHOD(Phalcon_Http_Response_CookiesInterface, delete); -ZEPHIR_DOC_METHOD(Phalcon_Http_Response_CookiesInterface, get); -ZEPHIR_DOC_METHOD(Phalcon_Http_Response_CookiesInterface, has); -ZEPHIR_DOC_METHOD(Phalcon_Http_Response_CookiesInterface, isUsingEncryption); -ZEPHIR_DOC_METHOD(Phalcon_Http_Response_CookiesInterface, reset); -ZEPHIR_DOC_METHOD(Phalcon_Http_Response_CookiesInterface, send); -ZEPHIR_DOC_METHOD(Phalcon_Http_Response_CookiesInterface, set); -ZEPHIR_DOC_METHOD(Phalcon_Http_Response_CookiesInterface, useEncryption); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Response_Exception) +// 2588 "parser.php.c" + break; + case 117: +// 650 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Response, Exception, phalcon, http_response_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOTIDENTICAL, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(17,&vvmsp[-1].minor); } - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Http_Response_Headers) +// 2596 "parser.php.c" + break; + case 118: +// 654 "parser.php.lemon" { - ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Response, Headers, phalcon, http_response_headers, phalcon_http_response_headers_method_entry, 0); - - zend_declare_property_null(phalcon_http_response_headers_ce, SL("headers"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_http_response_headers_ce, SL("isSent"), 0, ZEND_ACC_PROTECTED); - phalcon_http_response_headers_ce->create_object = zephir_init_properties_Phalcon_Http_Response_Headers; - - zend_class_implements(phalcon_http_response_headers_ce, 1, phalcon_http_response_headersinterface_ce); - return SUCCESS; + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_LESS, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(12,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Response_Headers, get) +// 2604 "parser.php.c" + break; + case 119: +// 658 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, headers, headerValue, _0; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&headers); - ZVAL_UNDEF(&headerValue); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - zephir_get_strval(&name, name_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&headers, &_0); - if (!(zephir_array_isset_fetch(&headerValue, &headers, &name, 1))) { - RETURN_MM_BOOL(0); - } - RETURN_CTOR(&headerValue); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_GREATER, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(13,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Response_Headers, has) +// 2612 "parser.php.c" + break; + case 120: +// 662 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, _0; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - zephir_get_strval(&name, name_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); - RETURN_MM_BOOL(zephir_array_isset(&_0, &name)); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_GREATEREQUAL, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(14,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Response_Headers, isSent) +// 2620 "parser.php.c" + break; + case 121: +// 666 "parser.php.lemon" { - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "isSent"); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_LESSEQUAL, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(15,&vvmsp[-1].minor); } - -static PHP_METHOD(Phalcon_Http_Response_Headers, remove) +// 2628 "parser.php.c" + break; + case 123: +// 674 "parser.php.lemon" { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *header_param = NULL, headers, _0; - zval header; - zval *this_ptr = getThis(); + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_IN, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(8,&vvmsp[-1].minor); +} +// 2636 "parser.php.c" + break; + case 124: +// 678 "parser.php.lemon" +{ + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOT_IN, &vvmsp[-3].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(26,&vvmsp[-2].minor); + vv_destructor(8,&vvmsp[-1].minor); +} +// 2645 "parser.php.c" + break; + case 125: +// 682 "parser.php.lemon" +{ + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOT, NULL, &vvmsp[0].minor.vv186, NULL, status->scanner_state); + vv_destructor(26,&vvmsp[-1].minor); +} +// 2653 "parser.php.c" + break; + case 126: +// 686 "parser.php.lemon" +{ + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_INCR, &vvmsp[-1].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(27,&vvmsp[0].minor); +} +// 2661 "parser.php.c" + break; + case 127: +// 690 "parser.php.lemon" +{ + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_DECR, &vvmsp[-1].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(28,&vvmsp[0].minor); +} +// 2669 "parser.php.c" + break; + case 128: +// 694 "parser.php.lemon" +{ + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ENCLOSED, &vvmsp[-1].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(29,&vvmsp[-2].minor); + vv_destructor(52,&vvmsp[0].minor); +} +// 2678 "parser.php.c" + break; + case 129: +// 698 "parser.php.lemon" +{ + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ARRAY, NULL, NULL, NULL, status->scanner_state); + vv_destructor(24,&vvmsp[-1].minor); + vv_destructor(50,&vvmsp[0].minor); +} +// 2687 "parser.php.c" + break; + case 130: +// 702 "parser.php.lemon" +{ + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ARRAY, &vvmsp[-1].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(24,&vvmsp[-2].minor); + vv_destructor(50,&vvmsp[0].minor); +} +// 2696 "parser.php.c" + break; + case 131: +// 706 "parser.php.lemon" +{ + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ARRAY, NULL, NULL, NULL, status->scanner_state); + vv_destructor(87,&vvmsp[-1].minor); + vv_destructor(88,&vvmsp[0].minor); +} +// 2705 "parser.php.c" + break; + case 132: +// 710 "parser.php.lemon" +{ + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ARRAY, &vvmsp[-1].minor.vv186, NULL, NULL, status->scanner_state); + vv_destructor(87,&vvmsp[-2].minor); + vv_destructor(88,&vvmsp[0].minor); +} +// 2714 "parser.php.c" + break; + case 134: +// 718 "parser.php.lemon" +{ + phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_TERNARY, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, &vvmsp[-4].minor.vv186, status->scanner_state); + vv_destructor(3,&vvmsp[-3].minor); + vv_destructor(4,&vvmsp[-1].minor); +} +// 2723 "parser.php.c" + break; + case 135: +// 722 "parser.php.lemon" +{ + phvolt_ret_slice(&vvgotominor.vv186, &vvmsp[-4].minor.vv186, NULL, &vvmsp[-1].minor.vv186, status->scanner_state); + vv_destructor(24,&vvmsp[-3].minor); + vv_destructor(4,&vvmsp[-2].minor); + vv_destructor(50,&vvmsp[0].minor); +} +// 2733 "parser.php.c" + break; + case 136: +// 726 "parser.php.lemon" +{ + phvolt_ret_slice(&vvgotominor.vv186, &vvmsp[-4].minor.vv186, &vvmsp[-2].minor.vv186, NULL, status->scanner_state); + vv_destructor(24,&vvmsp[-3].minor); + vv_destructor(4,&vvmsp[-1].minor); + vv_destructor(50,&vvmsp[0].minor); +} +// 2743 "parser.php.c" + break; + case 137: +// 730 "parser.php.lemon" +{ + phvolt_ret_slice(&vvgotominor.vv186, &vvmsp[-5].minor.vv186, &vvmsp[-3].minor.vv186, &vvmsp[-1].minor.vv186, status->scanner_state); + vv_destructor(24,&vvmsp[-4].minor); + vv_destructor(4,&vvmsp[-2].minor); + vv_destructor(50,&vvmsp[0].minor); +} +// 2753 "parser.php.c" + break; + case 142: + case 150: +// 750 "parser.php.lemon" +{ + phvolt_ret_named_item(&vvgotominor.vv186, vvmsp[-2].minor.vv0, &vvmsp[0].minor.vv186, status->scanner_state); + vv_destructor(4,&vvmsp[-1].minor); +} +// 2762 "parser.php.c" + break; + case 143: + case 149: +// 754 "parser.php.lemon" +{ + phvolt_ret_named_item(&vvgotominor.vv186, NULL, &vvmsp[0].minor.vv186, status->scanner_state); +} +// 2770 "parser.php.c" + break; + case 145: +// 762 "parser.php.lemon" +{ + phvolt_ret_func_call(&vvgotominor.vv186, &vvmsp[-3].minor.vv186, &vvmsp[-1].minor.vv186, status->scanner_state); + vv_destructor(29,&vvmsp[-2].minor); + vv_destructor(52,&vvmsp[0].minor); +} +// 2779 "parser.php.c" + break; + case 146: +// 766 "parser.php.lemon" +{ + phvolt_ret_func_call(&vvgotominor.vv186, &vvmsp[-2].minor.vv186, NULL, status->scanner_state); + vv_destructor(29,&vvmsp[-1].minor); + vv_destructor(52,&vvmsp[0].minor); +} +// 2788 "parser.php.c" + break; + }; + vvgoto = vvRuleInfo[vvruleno].lhs; + vvsize = vvRuleInfo[vvruleno].nrhs; + vvpParser->vvidx -= vvsize; + vvact = vv_find_reduce_action(vvpParser,vvgoto); + if( vvact < VVNSTATE ){ + vv_shift(vvpParser,vvact,vvgoto,&vvgotominor); + }else if( vvact == VVNSTATE + VVNRULE + 1 ){ + vv_accept(vvpParser); + } +} - ZVAL_UNDEF(&header); - ZVAL_UNDEF(&headers); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(header) - ZEND_PARSE_PARAMETERS_END(); +static void vv_parse_failed( + vvParser *vvpParser /* The parser */ +){ + phvolt_ARG_FETCH; +#ifndef NDEBUG + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sFail!\n",vvTracePrompt); + } #endif + while( vvpParser->vvidx>=0 ) vv_pop_parser_stack(vvpParser); + /* Here code is inserted which will be executed whenever the + ** parser fails */ + phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ +} +static void vv_syntax_error( + vvParser *vvpParser, /* The parser */ + int vvmajor, /* The major type of the error token */ + VVMINORTYPE vvminor /* The minor type of the error token */ +){ + phvolt_ARG_FETCH; +#define VTOKEN (vvminor.vv0) +// 54 "parser.php.lemon" - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &header_param); - zephir_get_strval(&header, header_param); + { + smart_str error_str = {0}; + char *token_name = NULL; + const phvolt_token_names *tokens = phvolt_tokens; + int token_len = 0; + int active_token = status->scanner_state->active_token; - zephir_read_property(&_0, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&headers, &_0); - zephir_array_unset(&headers, &header, PH_SEPARATE); - zephir_update_property_zval(this_ptr, ZEND_STRL("headers"), &headers); - RETURN_THIS(); -} + if (status->scanner_state->start_length) { -static PHP_METHOD(Phalcon_Http_Response_Headers, reset) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *this_ptr = getThis(); + if (active_token) { - ZVAL_UNDEF(&_0); + do { + if (tokens->code == active_token) { + token_name = tokens->name; + token_len = tokens->len; + break; + } + ++tokens; + } while (tokens[0].code != 0); + } - ZEPHIR_MM_GROW(); + smart_str_appendl(&error_str, "Syntax error, unexpected token ", sizeof("Syntax error, unexpected token ") - 1); + if (!token_name) { + smart_str_appendl(&error_str, "UNKNOWN", sizeof("UNKNOWN") - 1); + } else { + smart_str_appendl(&error_str, token_name, token_len); + } - ZEPHIR_INIT_VAR(&_0); - array_init(&_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("headers"), &_0); - ZEPHIR_MM_RESTORE(); -} + if (status->token->value) { + smart_str_appendc(&error_str, '('); + smart_str_appendl(&error_str, status->token->value, status->token->len); + smart_str_appendc(&error_str, ')'); + } -static PHP_METHOD(Phalcon_Http_Response_Headers, send) -{ - zend_string *_7; - zend_ulong _6; - zend_bool _1, _10$$6, _16$$11; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_9 = NULL; - zval __$true, __$false, header, value, _0, _2, _3, *_4, _5, _8$$5, _11$$6, _12$$6, _13$$6, _14$$8, _15$$10, _17$$11, _18$$11, _19$$11, _20$$13; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); + smart_str_appendl(&error_str, " in ", sizeof(" in ") - 1); + smart_str_appendl(&error_str, Z_STRVAL_P(status->scanner_state->active_file), Z_STRLEN_P(status->scanner_state->active_file)); + smart_str_appendl(&error_str, " on line ", sizeof(" on line ") - 1); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&header); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_11$$6); - ZVAL_UNDEF(&_12$$6); - ZVAL_UNDEF(&_13$$6); - ZVAL_UNDEF(&_14$$8); - ZVAL_UNDEF(&_15$$10); - ZVAL_UNDEF(&_17$$11); - ZVAL_UNDEF(&_18$$11); - ZVAL_UNDEF(&_19$$11); - ZVAL_UNDEF(&_20$$13); + { + char stmp[MAX_LENGTH_OF_LONG + 1]; + int str_len; + str_len = slprintf(stmp, sizeof(stmp), "%u", status->scanner_state->active_line); + smart_str_appendl(&error_str, stmp, str_len); + } + } else { - ZEPHIR_MM_GROW(); + smart_str_appendl(&error_str, "Syntax error, unexpected EOF in ", sizeof("Syntax error, unexpected EOF in ") - 1); + smart_str_appendl(&error_str, Z_STRVAL_P(status->scanner_state->active_file), Z_STRLEN_P(status->scanner_state->active_file)); - ZEPHIR_CALL_FUNCTION(&_0, "headers_sent", NULL, 361); - zephir_check_call_status(); - _1 = ZEPHIR_IS_TRUE_IDENTICAL(&_0); - if (!(_1)) { - ZEPHIR_CALL_METHOD(&_2, this_ptr, "issent", NULL, 0); - zephir_check_call_status(); - _1 = ZEPHIR_IS_TRUE_IDENTICAL(&_2); - } - if (_1) { - RETURN_MM_BOOL(0); - } - zephir_read_property(&_3, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); - zephir_is_iterable(&_3, 0, "phalcon/Http/Response/Headers.zep", 116); - if (Z_TYPE_P(&_3) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_3), _6, _7, _4) - { - ZEPHIR_INIT_NVAR(&header); - if (_7 != NULL) { - ZVAL_STR_COPY(&header, _7); - } else { - ZVAL_LONG(&header, _6); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _4); - if (Z_TYPE_P(&value) != IS_NULL) { - ZEPHIR_INIT_NVAR(&_8$$5); - ZEPHIR_CONCAT_VSV(&_8$$5, &header, ": ", &value); - ZEPHIR_CALL_FUNCTION(NULL, "header", &_9, 362, &_8$$5, &__$true); - zephir_check_call_status(); - } else { - _10$$6 = zephir_memnstr_str(&header, SL(":"), "phalcon/Http/Response/Headers.zep", 102); - if (!(_10$$6)) { - ZVAL_LONG(&_11$$6, 0); - ZVAL_LONG(&_12$$6, 5); - ZEPHIR_INIT_NVAR(&_13$$6); - zephir_substr(&_13$$6, &header, 0 , 5 , 0); - _10$$6 = ZEPHIR_IS_STRING(&_13$$6, "HTTP/"); - } - if (_10$$6) { - ZEPHIR_CALL_FUNCTION(NULL, "header", &_9, 362, &header, &__$true); - zephir_check_call_status(); + /* Report unclosed 'if' blocks */ + if ((status->scanner_state->if_level + status->scanner_state->old_if_level) > 0) { + if ((status->scanner_state->if_level + status->scanner_state->old_if_level) == 1) { + smart_str_appendl(&error_str, ", there is one 'if' block without close", sizeof(", there is one 'if' block without close") - 1); } else { - ZEPHIR_INIT_NVAR(&_14$$8); - ZEPHIR_CONCAT_VS(&_14$$8, &header, ": "); - ZEPHIR_CALL_FUNCTION(NULL, "header", &_9, 362, &_14$$8, &__$true); - zephir_check_call_status(); + smart_str_appendl(&error_str, ", there are ", sizeof(", there are ") - 1); + { + char stmp[MAX_LENGTH_OF_LONG + 1]; + int str_len; + str_len = slprintf(stmp, sizeof(stmp), "%u", status->scanner_state->if_level + status->scanner_state->old_if_level); + smart_str_appendl(&error_str, stmp, str_len); + } + smart_str_appendl(&error_str, " 'if' blocks without close", sizeof(" 'if' blocks without close") - 1); } } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_3, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5, &_3, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5)) { - break; - } - ZEPHIR_CALL_METHOD(&header, &_3, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &_3, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&value) != IS_NULL) { - ZEPHIR_INIT_NVAR(&_15$$10); - ZEPHIR_CONCAT_VSV(&_15$$10, &header, ": ", &value); - ZEPHIR_CALL_FUNCTION(NULL, "header", &_9, 362, &_15$$10, &__$true); - zephir_check_call_status(); + + /* Report unclosed 'for' blocks */ + if (status->scanner_state->for_level > 0) { + if (status->scanner_state->for_level == 1) { + smart_str_appendl(&error_str, ", there is one 'for' block without close", sizeof(", there is one 'for' block without close") - 1); } else { - _16$$11 = zephir_memnstr_str(&header, SL(":"), "phalcon/Http/Response/Headers.zep", 102); - if (!(_16$$11)) { - ZVAL_LONG(&_17$$11, 0); - ZVAL_LONG(&_18$$11, 5); - ZEPHIR_INIT_NVAR(&_19$$11); - zephir_substr(&_19$$11, &header, 0 , 5 , 0); - _16$$11 = ZEPHIR_IS_STRING(&_19$$11, "HTTP/"); - } - if (_16$$11) { - ZEPHIR_CALL_FUNCTION(NULL, "header", &_9, 362, &header, &__$true); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&_20$$13); - ZEPHIR_CONCAT_VS(&_20$$13, &header, ": "); - ZEPHIR_CALL_FUNCTION(NULL, "header", &_9, 362, &_20$$13, &__$true); - zephir_check_call_status(); + smart_str_appendl(&error_str, ", there are ", sizeof(", there are ") - 1); + { + char stmp[MAX_LENGTH_OF_LONG + 1]; + int str_len; + str_len = slprintf(stmp, sizeof(stmp), "%u", status->scanner_state->if_level); + smart_str_appendl(&error_str, stmp, str_len); } + smart_str_appendl(&error_str, " 'for' blocks without close", sizeof(" 'for' blocks without close") - 1); } - ZEPHIR_CALL_METHOD(NULL, &_3, "next", NULL, 0); - zephir_check_call_status(); + } + + /* Report unclosed 'switch' blocks */ + if (status->scanner_state->switch_level > 0) { + smart_str_appendl(&error_str, ", there is a 'switch' block without 'endswitch'", sizeof(", there is a 'switch' block without 'endswitch'") - 1); + } + } + + smart_str_0(&error_str); + + if (error_str.s) { + status->syntax_error = estrndup(ZSTR_VAL(error_str.s), ZSTR_LEN(error_str.s)); + status->syntax_error_len = ZSTR_LEN(error_str.s); + } else { + status->syntax_error = NULL; } } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&header); - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("isSent"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("isSent"), &__$false); - } - RETURN_MM_BOOL(1); + + status->status = PHVOLT_PARSING_FAILED; + +// 2934 "parser.php.c" + phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static PHP_METHOD(Phalcon_Http_Response_Headers, set) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, *value_param = NULL; - zval name, value; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&value); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(name) - Z_PARAM_STR(value) - ZEND_PARSE_PARAMETERS_END(); +static void vv_accept( + vvParser *vvpParser /* The parser */ +){ + phvolt_ARG_FETCH; +#ifndef NDEBUG + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sAccept!\n",vvTracePrompt); + } #endif + while( vvpParser->vvidx>=0 ) vv_pop_parser_stack(vvpParser); + /* Here code is inserted which will be executed whenever the + ** parser accepts */ + phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ +} +/* The main parser program. +** The first argument is a pointer to a structure obtained from +** "phvolt_Alloc" which describes the current state of the parser. +** The second argument is the major token number. The third is +** the minor token. The fourth optional argument is whatever the +** user wants (and specified in the grammar) and is available for +** use by the action routines. +** +** Inputs: +**
    +**
  • A pointer to the parser (an opaque structure.) +**
  • The major token number. +**
  • The minor token number. +**
  • An option argument of a grammar-specified type. +**
+** +** Outputs: +** None. +*/ +static void phvolt_( + void *vvp, /* The parser */ + int vvmajor, /* The major token code number */ + phvolt_TOKENTYPE vvminor /* The value for the token */ + phvolt_ARG_PDECL /* Optional %extra_argument parameter */ +){ + VVMINORTYPE vvminorunion; + int vvact; /* The parser action. */ + int vvendofinput; /* True if we are at the end of input */ + int vverrorhit = 0; /* True if vvmajor has invoked an error */ + vvParser *vvpParser; /* The parser */ - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &name_param, &value_param); - zephir_get_strval(&name, name_param); - zephir_get_strval(&value, value_param); + /* (re)initialize the parser, if necessary */ + vvpParser = (vvParser*)vvp; + if( vvpParser->vvidx<0 ){ + if( vvmajor==0 ) return; + vvpParser->vvidx = 0; + vvpParser->vverrcnt = -1; + vvpParser->vvstack[0].stateno = 0; + vvpParser->vvstack[0].major = 0; + } + vvminorunion.vv0 = vvminor; + vvendofinput = (vvmajor==0); + phvolt_ARG_STORE; +#ifndef NDEBUG + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sInput %s\n",vvTracePrompt,vvTokenName[vvmajor]); + } +#endif - zephir_update_property_array(this_ptr, SL("headers"), &name, &value); - RETURN_THIS(); + do{ + vvact = vv_find_shift_action(vvpParser,vvmajor); + if( vvactvverrcnt--; + if( vvendofinput && vvpParser->vvidx>=0 ){ + vvmajor = 0; + }else{ + vvmajor = VVNOCODE; + } + }else if( vvact < VVNSTATE + VVNRULE ){ + vv_reduce(vvpParser,vvact-VVNSTATE); + }else if( vvact == VV_ERROR_ACTION ){ + int vvmx; +#ifndef NDEBUG + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sSyntax Error!\n",vvTracePrompt); + } +#endif +#ifdef VVERRORSYMBOL + /* A syntax error has occurred. + ** The response to an error depends upon whether or not the + ** grammar defines an error token "ERROR". + ** + ** This is what we do if the grammar does define ERROR: + ** + ** * Call the %syntax_error function. + ** + ** * Begin popping the stack until we enter a state where + ** it is legal to shift the error symbol, then shift + ** the error symbol. + ** + ** * Set the error count to three. + ** + ** * Begin accepting and shifting new tokens. No new error + ** processing will occur until three tokens have been + ** shifted successfully. + ** + */ + if( vvpParser->vverrcnt<0 ){ + vv_syntax_error(vvpParser,vvmajor,vvminorunion); + } + vvmx = vvpParser->vvstack[vvpParser->vvidx].major; + if( vvmx==VVERRORSYMBOL || vverrorhit ){ +#ifndef NDEBUG + if( vvTraceFILE ){ + fprintf(vvTraceFILE,"%sDiscard input token %s\n", + vvTracePrompt,vvTokenName[vvmajor]); + } +#endif + vv_destructor(vvmajor,&vvminorunion); + vvmajor = VVNOCODE; + }else{ + while( + vvpParser->vvidx >= 0 && + vvmx != VVERRORSYMBOL && + (vvact = vv_find_shift_action(vvpParser,VVERRORSYMBOL)) >= VVNSTATE + ){ + vv_pop_parser_stack(vvpParser); + } + if( vvpParser->vvidx < 0 || vvmajor==0 ){ + vv_destructor(vvmajor,&vvminorunion); + vv_parse_failed(vvpParser); + vvmajor = VVNOCODE; + }else if( vvmx!=VVERRORSYMBOL ){ + VVMINORTYPE u2; + u2.VVERRSYMDT = 0; + vv_shift(vvpParser,vvact,VVERRORSYMBOL,&u2); + } + } + vvpParser->vverrcnt = 3; + vverrorhit = 1; +#else /* VVERRORSYMBOL is not defined */ + /* This is what we do if the grammar does not define ERROR: + ** + ** * Report an error message, and throw away the input token. + ** + ** * If the input token is $, then fail the parse. + ** + ** As before, subsequent error messages are suppressed until + ** three input tokens have been successfully shifted. + */ + if( vvpParser->vverrcnt<=0 ){ + vv_syntax_error(vvpParser,vvmajor,vvminorunion); + } + vvpParser->vverrcnt = 3; + vv_destructor(vvmajor,&vvminorunion); + if( vvendofinput ){ + vv_parse_failed(vvpParser); + } + vvmajor = VVNOCODE; +#endif + }else{ + vv_accept(vvpParser); + vvmajor = VVNOCODE; + } + }while( vvmajor!=VVNOCODE && vvpParser->vvidx>=0 ); + return; } +/* base.c + * + * This file is part of the Phalcon Framework. + * + * (c) Phalcon Team + * + * For the full copyright and license information, please view the + * LICENSE.txt file that was distributed with this source code. + */ -static PHP_METHOD(Phalcon_Http_Response_Headers, setRaw) +const phvolt_token_names phvolt_tokens[] = { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *header_param = NULL, __$null; - zval header; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&header); - ZVAL_NULL(&__$null); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(header) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &header_param); - zephir_get_strval(&header, header_param); + { SL("INTEGER"), PHVOLT_T_INTEGER }, + { SL("DOUBLE"), PHVOLT_T_DOUBLE }, + { SL("STRING"), PHVOLT_T_STRING }, + { SL("IDENTIFIER"), PHVOLT_T_IDENTIFIER }, + { SL("MINUS"), PHVOLT_T_MINUS }, + { SL("+"), PHVOLT_T_ADD }, + { SL("-"), PHVOLT_T_SUB }, + { SL("*"), PHVOLT_T_MUL }, + { SL("/"), PHVOLT_T_DIV }, + { SL("%%"), PHVOLT_T_MOD }, + { SL("!"), PHVOLT_T_NOT }, + { SL("~"), PHVOLT_T_CONCAT }, + { SL("AND"), PHVOLT_T_AND }, + { SL("OR"), PHVOLT_T_OR }, + { SL("DOT"), PHVOLT_T_DOT }, + { SL("COMMA"), PHVOLT_T_COMMA }, + { SL("EQUALS"), PHVOLT_T_EQUALS }, + { SL("NOT EQUALS"), PHVOLT_T_NOTEQUALS }, + { SL("IDENTICAL"), PHVOLT_T_IDENTICAL }, + { SL("NOT IDENTICAL"), PHVOLT_T_NOTIDENTICAL }, + { SL("NOT"), PHVOLT_T_NOT }, + { SL("RANGE"), PHVOLT_T_RANGE }, + { SL("COLON"), PHVOLT_T_COLON }, + { SL("QUESTION MARK"), PHVOLT_T_QUESTION }, + { SL("<"), PHVOLT_T_LESS }, + { SL("<="), PHVOLT_T_LESSEQUAL }, + { SL(">"), PHVOLT_T_GREATER }, + { SL(">="), PHVOLT_T_GREATEREQUAL }, + { SL("("), PHVOLT_T_PARENTHESES_OPEN }, + { SL(")"), PHVOLT_T_PARENTHESES_CLOSE }, + { SL("["), PHVOLT_T_SBRACKET_OPEN }, + { SL("]"), PHVOLT_T_SBRACKET_CLOSE }, + { SL("{"), PHVOLT_T_CBRACKET_OPEN }, + { SL("}"), PHVOLT_T_CBRACKET_CLOSE }, + { SL("{%"), PHVOLT_T_OPEN_DELIMITER }, + { SL("%}"), PHVOLT_T_CLOSE_DELIMITER }, + { SL("{{"), PHVOLT_T_OPEN_EDELIMITER }, + { SL("}}"), PHVOLT_T_CLOSE_EDELIMITER }, + { SL("IF"), PHVOLT_T_IF }, + { SL("ELSE"), PHVOLT_T_ELSE }, + { SL("ELSEIF"), PHVOLT_T_ELSEIF }, + { SL("ELSEFOR"), PHVOLT_T_ELSEFOR }, + { SL("ENDIF"), PHVOLT_T_ENDIF }, + { SL("FOR"), PHVOLT_T_FOR }, + { SL("SWITCH"), PHVOLT_T_SWITCH }, + { SL("CASE"), PHVOLT_T_CASE }, + { SL("DEFAULT"), PHVOLT_T_DEFAULT }, + { SL("ENDSWITCH"), PHVOLT_T_ENDSWITCH }, + { SL("IN"), PHVOLT_T_IN }, + { SL("ENDFOR"), PHVOLT_T_ENDFOR }, + { SL("SET"), PHVOLT_T_SET }, + { SL("ASSIGN"), PHVOLT_T_ASSIGN }, + { SL("+="), PHVOLT_T_ADD_ASSIGN }, + { SL("-="), PHVOLT_T_SUB_ASSIGN }, + { SL("*="), PHVOLT_T_MUL_ASSIGN }, + { SL("/="), PHVOLT_T_DIV_ASSIGN }, + { SL("++"), PHVOLT_T_INCR }, + { SL("--"), PHVOLT_T_DECR }, + { SL("BLOCK"), PHVOLT_T_BLOCK }, + { SL("ENDBLOCK"), PHVOLT_T_ENDBLOCK }, + { SL("CACHE"), PHVOLT_T_CACHE }, + { SL("ENDCACHE"), PHVOLT_T_ENDCACHE }, + { SL("EXTENDS"), PHVOLT_T_EXTENDS }, + { SL("IS"), PHVOLT_T_IS }, + { SL("DEFINED"), PHVOLT_T_DEFINED }, + { SL("EMPTY"), PHVOLT_T_EMPTY }, + { SL("EVEN"), PHVOLT_T_EVEN }, + { SL("ODD"), PHVOLT_T_ODD }, + { SL("NUMERIC"), PHVOLT_T_NUMERIC }, + { SL("SCALAR"), PHVOLT_T_SCALAR }, + { SL("ITERABLE"), PHVOLT_T_ITERABLE }, + { SL("INCLUDE"), PHVOLT_T_INCLUDE }, + { SL("DO"), PHVOLT_T_DO }, + { SL("WHITESPACE"), PHVOLT_T_IGNORE }, + { SL("AUTOESCAPE"), PHVOLT_T_AUTOESCAPE }, + { SL("ENDAUTOESCAPE"), PHVOLT_T_ENDAUTOESCAPE }, + { SL("CONTINUE"), PHVOLT_T_CONTINUE }, + { SL("BREAK"), PHVOLT_T_BREAK }, + { SL("WITH"), PHVOLT_T_WITH }, + { SL("RETURN"), PHVOLT_T_RETURN }, + { SL("MACRO"), PHVOLT_T_MACRO }, + { SL("ENDMACRO"), PHVOLT_T_ENDMACRO }, + { SL("CALL"), PHVOLT_T_CALL }, + { SL("WITH"), PHVOLT_T_WITH }, + { NULL, 0, 0 } +}; +/* {{{ phvolt_wrapper_alloc + Wrapper to alloc memory within the parser. */ +static void *phvolt_wrapper_alloc(size_t bytes) +{ + return emalloc(bytes); +} +/* }}} */ - zephir_update_property_array(this_ptr, SL("headers"), &header, &__$null); - RETURN_THIS(); +/* {{{ phvolt_wrapper_free + Wrapper to free memory within the parser. */ +static void phvolt_wrapper_free(void *pointer) +{ + efree(pointer); } +/* }}} */ -static PHP_METHOD(Phalcon_Http_Response_Headers, toArray) +/* {{{ phvolt_parse_with_token + Creates a parser_token to be passed to the parser. */ +static void phvolt_parse_with_token(void* phvolt_parser, int opcode, int parsercode, phvolt_scanner_token *token, + phvolt_parser_status *parser_status) { - zval *this_ptr = getThis(); + phvolt_parser_token *pToken; + pToken = emalloc(sizeof(phvolt_parser_token)); + pToken->opcode = opcode; + pToken->token = token->value; + pToken->token_len = token->len; + pToken->free_flag = 1; + phvolt_(phvolt_parser, parsercode, pToken, parser_status); - RETURN_MEMBER(getThis(), "headers"); + token->value = NULL; + token->len = 0; } +/* }}} */ -zend_object *zephir_init_properties_Phalcon_Http_Response_Headers(zend_class_entry *class_type) +/* {{{ phvolt_create_error_msg + Creates an error message. */ +static void phvolt_create_error_msg(phvolt_parser_status *parser_status, char *message) { - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - + unsigned int length = (128 + Z_STRLEN_P(parser_status->scanner_state->active_file)); + char *str = emalloc(sizeof(char) * length); - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("headers"), &_1$$3); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} + snprintf(str, length, "%s in %s on line %d", message, + Z_STRVAL_P(parser_status->scanner_state->active_file), parser_status->scanner_state->active_line); + str[length - 1] = '\0'; + parser_status->syntax_error = estrndup(str, strlen(str)); + efree(str); +} +/* }}} */ +/* {{{ phvolt_scanner_error_msg + Creates an error message when it's triggered by the scanner. */ +static void phvolt_scanner_error_msg(phvolt_parser_status *parser_status, zval **error_msg) +{ + char *error, *error_part; + int length; + phvolt_scanner_state *state = parser_status->scanner_state; + ZVAL_NULL(*error_msg); -#ifdef HAVE_CONFIG_H -#endif + if (state->start) { + error = emalloc(sizeof(char) * 72 + state->start_length + Z_STRLEN_P(state->active_file)); + if (state->start_length > 16) { + length = 72 + Z_STRLEN_P(state->active_file); + error_part = estrndup(state->start, 16); + snprintf(error, length, "Scanning error before '%s...' in %s on line %d", + error_part, Z_STRVAL_P(state->active_file), state->active_line); + error[length - 1] = '\0'; + efree(error_part); + } else { + length = 48 + state->start_length + Z_STRLEN_P(state->active_file); + snprintf(error, length, "Scanning error before '%s' in %s on line %d", + state->start, Z_STRVAL_P(state->active_file), state->active_line); + } + } else { + error = emalloc(sizeof(char) * (32 + Z_STRLEN_P(state->active_file))); + length = 32 + Z_STRLEN_P(state->active_file); + snprintf(error, length, "Scanning error near to EOF in %s", Z_STRVAL_P(state->active_file)); + } + error[length - 1] = '\0'; + ZVAL_STRING(*error_msg, error); + efree(error); +} +/* }}} */ +/* {{{ phvolt_parse_view + Receives the volt code tokenizes and parses it. */ +static int phvolt_parse_view(zval *result, zval *view_code, zval *template_path) +{ + zval em, *error_msg = &em; + ZVAL_NULL(result); + ZVAL_NULL(error_msg); + if (Z_TYPE_P(view_code) != IS_STRING) { + ZEPHIR_THROW_EXCEPTION_STRW(phalcon_mvc_view_exception_ce, "View code must be a string"); + return FAILURE; + } -ZEPHIR_INIT_CLASS(Phalcon_Http_Response_HeadersInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Http\\Response, HeadersInterface, phalcon, http_response_headersinterface, phalcon_http_response_headersinterface_method_entry); + if (phvolt_internal_parse_view(&result, view_code, template_path, &error_msg) == FAILURE) { + ZEPHIR_THROW_EXCEPTION_STRW(phalcon_mvc_view_exception_ce, Z_STRVAL_P(error_msg)); + zval_dtor(error_msg); + return FAILURE; + } return SUCCESS; } +/* }}} */ -ZEPHIR_DOC_METHOD(Phalcon_Http_Response_HeadersInterface, get); -ZEPHIR_DOC_METHOD(Phalcon_Http_Response_HeadersInterface, has); -ZEPHIR_DOC_METHOD(Phalcon_Http_Response_HeadersInterface, reset); -ZEPHIR_DOC_METHOD(Phalcon_Http_Response_HeadersInterface, send); -ZEPHIR_DOC_METHOD(Phalcon_Http_Response_HeadersInterface, set); -ZEPHIR_DOC_METHOD(Phalcon_Http_Response_HeadersInterface, setRaw); - +/* {{{ phvolt_parse_view + Checks whether the token has only blank characters. */ +static int phvolt_is_blank_string(phvolt_scanner_token *token) +{ + char *marker = token->value; + unsigned int ch, i; + for (i = 0; i < token->len; i++) { + ch = *marker; + if (ch != ' ' && ch != '\t' && ch != '\n' && ch != '\r' && ch != 11) { + return 0; + } + marker++; + } -#ifdef HAVE_CONFIG_H -#endif + return 1; +} +/* }}} */ +/* {{{ Parses a volt template returning an intermediate array representation + Checks whether the token has only blank characters. */ +static int phvolt_internal_parse_view(zval **result, zval *view_code, zval *template_path, zval **error_msg) +{ + char *error; + phvolt_scanner_state *state; + phvolt_scanner_token token; + int scanner_status, status = SUCCESS; + phvolt_parser_status *parser_status = NULL; + void* phvolt_parser; + /** Check if the view has code */ + if (!Z_STRVAL_P(view_code)) { + ZVAL_STRING(*error_msg, "View code cannot be null"); + return FAILURE; + } + if (!Z_STRLEN_P(view_code)) { + array_init(*result); + return SUCCESS; + } + /** Start the reentrant parser */ + phvolt_parser = phvolt_Alloc(phvolt_wrapper_alloc); + if (unlikely(!phvolt_parser)) { + ZVAL_STRING(*error_msg, "Memory allocation error"); + return FAILURE; + } -ZEPHIR_INIT_CLASS(Phalcon_Http_Server_AbstractMiddleware) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Server, AbstractMiddleware, phalcon, http_server_abstractmiddleware, phalcon_http_server_abstractmiddleware_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + parser_status = emalloc(sizeof(phvolt_parser_status)); + state = emalloc(sizeof(phvolt_scanner_state)); - zend_class_implements(phalcon_http_server_abstractmiddleware_ce, 1, zephir_get_internal_ce(SL("psr\\http\\server\\middlewareinterface"))); - return SUCCESS; -} + parser_status->status = PHVOLT_PARSING_OK; + parser_status->scanner_state = state; + ZVAL_UNDEF(&parser_status->ret); -static PHP_METHOD(Phalcon_Http_Server_AbstractMiddleware, process) -{ -} + parser_status->token = &token; + parser_status->syntax_error = NULL; + /** Initialize the scanner state */ + state->active_token = 0; + state->start = Z_STRVAL_P(view_code); + state->mode = PHVOLT_MODE_RAW; + state->raw_buffer = emalloc(sizeof(char) * PHVOLT_RAW_BUFFER_SIZE); + state->raw_buffer_size = PHVOLT_RAW_BUFFER_SIZE; + state->raw_buffer_cursor = 0; + state->active_file = template_path; + state->active_line = 1; + state->statement_position = 0; + state->extends_mode = 0; + state->block_level = 0; + state->macro_level = 0; + state->start_length = 0; + state->old_if_level = 0; + state->if_level = 0; + state->for_level = 0; + state->switch_level = 0; + state->whitespace_control = 0; + state->forced_raw_state = 0; + state->end = state->start; + token.value = NULL; + token.len = 0; -#ifdef HAVE_CONFIG_H + /* To enable parser tracing decalre "#undef NDEBUG" in the lemon file */ +#ifndef NDEBUG + phvolt_Trace(stderr, "[PARSER] "); #endif + while (0 <= (scanner_status = phvolt_get_token(state, &token))) { + state->active_token = token.opcode; + state->start_length = (Z_STRVAL_P(view_code) + Z_STRLEN_P(view_code) - state->start); + switch (token.opcode) { + case PHVOLT_T_IGNORE: + break; + case PHVOLT_T_ADD: + phvolt_(phvolt_parser, PHVOLT_PLUS, NULL, parser_status); + break; -ZEPHIR_INIT_CLASS(Phalcon_Http_Server_AbstractRequestHandler) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Server, AbstractRequestHandler, phalcon, http_server_abstractrequesthandler, phalcon_http_server_abstractrequesthandler_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + case PHVOLT_T_SUB: + phvolt_(phvolt_parser, PHVOLT_MINUS, NULL, parser_status); + break; - zend_class_implements(phalcon_http_server_abstractrequesthandler_ce, 1, zephir_get_internal_ce(SL("psr\\http\\server\\requesthandlerinterface"))); - return SUCCESS; -} + case PHVOLT_T_MUL: + phvolt_(phvolt_parser, PHVOLT_TIMES, NULL, parser_status); + break; -static PHP_METHOD(Phalcon_Http_Server_AbstractRequestHandler, handle) -{ -} + case PHVOLT_T_DIV: + phvolt_(phvolt_parser, PHVOLT_DIVIDE, NULL, parser_status); + break; + case PHVOLT_T_MOD: + phvolt_(phvolt_parser, PHVOLT_MOD, NULL, parser_status); + break; + case PHVOLT_T_AND: + phvolt_(phvolt_parser, PHVOLT_AND, NULL, parser_status); + break; + case PHVOLT_T_OR: + phvolt_(phvolt_parser, PHVOLT_OR, NULL, parser_status); + break; -#ifdef HAVE_CONFIG_H -#endif + case PHVOLT_T_IS: + phvolt_(phvolt_parser, PHVOLT_IS, NULL, parser_status); + break; + case PHVOLT_T_EQUALS: + phvolt_(phvolt_parser, PHVOLT_EQUALS, NULL, parser_status); + break; + case PHVOLT_T_NOTEQUALS: + phvolt_(phvolt_parser, PHVOLT_NOTEQUALS, NULL, parser_status); + break; + case PHVOLT_T_LESS: + phvolt_(phvolt_parser, PHVOLT_LESS, NULL, parser_status); + break; + case PHVOLT_T_GREATER: + phvolt_(phvolt_parser, PHVOLT_GREATER, NULL, parser_status); + break; -ZEPHIR_INIT_CLASS(Phalcon_Image_Enum) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Image, Enum, phalcon, image_enum, NULL, 0); + case PHVOLT_T_GREATEREQUAL: + phvolt_(phvolt_parser, PHVOLT_GREATEREQUAL, NULL, parser_status); + break; - zephir_declare_class_constant_long(phalcon_image_enum_ce, SL("AUTO"), 4); + case PHVOLT_T_LESSEQUAL: + phvolt_(phvolt_parser, PHVOLT_LESSEQUAL, NULL, parser_status); + break; - zephir_declare_class_constant_long(phalcon_image_enum_ce, SL("HEIGHT"), 3); + case PHVOLT_T_IDENTICAL: + phvolt_(phvolt_parser, PHVOLT_IDENTICAL, NULL, parser_status); + break; - zephir_declare_class_constant_long(phalcon_image_enum_ce, SL("INVERSE"), 5); + case PHVOLT_T_NOTIDENTICAL: + phvolt_(phvolt_parser, PHVOLT_NOTIDENTICAL, NULL, parser_status); + break; - zephir_declare_class_constant_long(phalcon_image_enum_ce, SL("NONE"), 1); + case PHVOLT_T_NOT: + phvolt_(phvolt_parser, PHVOLT_NOT, NULL, parser_status); + break; - zephir_declare_class_constant_long(phalcon_image_enum_ce, SL("PRECISE"), 6); + case PHVOLT_T_DOT: + phvolt_(phvolt_parser, PHVOLT_DOT, NULL, parser_status); + break; - zephir_declare_class_constant_long(phalcon_image_enum_ce, SL("TENSILE"), 7); + case PHVOLT_T_CONCAT: + phvolt_(phvolt_parser, PHVOLT_CONCAT, NULL, parser_status); + break; - zephir_declare_class_constant_long(phalcon_image_enum_ce, SL("WIDTH"), 2); + case PHVOLT_T_RANGE: + phvolt_(phvolt_parser, PHVOLT_RANGE, NULL, parser_status); + break; - zephir_declare_class_constant_long(phalcon_image_enum_ce, SL("HORIZONTAL"), 11); + case PHVOLT_T_PIPE: + phvolt_(phvolt_parser, PHVOLT_PIPE, NULL, parser_status); + break; - zephir_declare_class_constant_long(phalcon_image_enum_ce, SL("VERTICAL"), 12); + case PHVOLT_T_COMMA: + phvolt_(phvolt_parser, PHVOLT_COMMA, NULL, parser_status); + break; - return SUCCESS; -} + case PHVOLT_T_COLON: + phvolt_(phvolt_parser, PHVOLT_COLON, NULL, parser_status); + break; + case PHVOLT_T_QUESTION: + phvolt_(phvolt_parser, PHVOLT_QUESTION, NULL, parser_status); + break; + case PHVOLT_T_PARENTHESES_OPEN: + phvolt_(phvolt_parser, PHVOLT_PARENTHESES_OPEN, NULL, parser_status); + break; + case PHVOLT_T_PARENTHESES_CLOSE: + phvolt_(phvolt_parser, PHVOLT_PARENTHESES_CLOSE, NULL, parser_status); + break; -#ifdef HAVE_CONFIG_H -#endif + case PHVOLT_T_SBRACKET_OPEN: + phvolt_(phvolt_parser, PHVOLT_SBRACKET_OPEN, NULL, parser_status); + break; + case PHVOLT_T_SBRACKET_CLOSE: + phvolt_(phvolt_parser, PHVOLT_SBRACKET_CLOSE, NULL, parser_status); + break; + case PHVOLT_T_CBRACKET_OPEN: + phvolt_(phvolt_parser, PHVOLT_CBRACKET_OPEN, NULL, parser_status); + break; + case PHVOLT_T_CBRACKET_CLOSE: + phvolt_(phvolt_parser, PHVOLT_CBRACKET_CLOSE, NULL, parser_status); + break; + case PHVOLT_T_OPEN_DELIMITER: + phvolt_(phvolt_parser, PHVOLT_OPEN_DELIMITER, NULL, parser_status); + break; -ZEPHIR_INIT_CLASS(Phalcon_Image_Exception) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Image, Exception, phalcon, image_exception, phalcon_exception_ce, NULL, 0); + case PHVOLT_T_CLOSE_DELIMITER: + phvolt_(phvolt_parser, PHVOLT_CLOSE_DELIMITER, NULL, parser_status); + break; - return SUCCESS; -} + case PHVOLT_T_OPEN_EDELIMITER: + if (state->extends_mode == 1 && state->block_level == 0) { + phvolt_create_error_msg(parser_status, "Child templates only may contain blocks"); + parser_status->status = PHVOLT_PARSING_FAILED; + break; + } + phvolt_(phvolt_parser, PHVOLT_OPEN_EDELIMITER, NULL, parser_status); + break; + case PHVOLT_T_CLOSE_EDELIMITER: + phvolt_(phvolt_parser, PHVOLT_CLOSE_EDELIMITER, NULL, parser_status); + break; + case PHVOLT_T_NULL: + phvolt_(phvolt_parser, PHVOLT_NULL, NULL, parser_status); + break; + case PHVOLT_T_TRUE: + phvolt_(phvolt_parser, PHVOLT_TRUE, NULL, parser_status); + break; -#ifdef HAVE_CONFIG_H -#endif + case PHVOLT_T_FALSE: + phvolt_(phvolt_parser, PHVOLT_FALSE, NULL, parser_status); + break; + case PHVOLT_T_INTEGER: + phvolt_parse_with_token(phvolt_parser, PHVOLT_T_INTEGER, PHVOLT_INTEGER, &token, parser_status); + break; + case PHVOLT_T_DOUBLE: + phvolt_parse_with_token(phvolt_parser, PHVOLT_T_DOUBLE, PHVOLT_DOUBLE, &token, parser_status); + break; + case PHVOLT_T_STRING: + phvolt_parse_with_token(phvolt_parser, PHVOLT_T_STRING, PHVOLT_STRING, &token, parser_status); + break; + case PHVOLT_T_IDENTIFIER: + phvolt_parse_with_token(phvolt_parser, PHVOLT_T_IDENTIFIER, PHVOLT_IDENTIFIER, &token, parser_status); + break; -ZEPHIR_INIT_CLASS(Phalcon_Image_ImageFactory) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Image, ImageFactory, phalcon, image_imagefactory, phalcon_factory_abstractfactory_ce, phalcon_image_imagefactory_method_entry, 0); + case PHVOLT_T_IF: + if (state->extends_mode == 1 && state->block_level == 0){ + phvolt_create_error_msg(parser_status, "Child templates only may contain blocks"); + parser_status->status = PHVOLT_PARSING_FAILED; + break; + } else { + state->if_level++; + state->block_level++; + } + phvolt_(phvolt_parser, PHVOLT_IF, NULL, parser_status); + break; - zend_declare_property_string(phalcon_image_imagefactory_ce, SL("exception"), "Phalcon\\Image\\Exception", ZEND_ACC_PROTECTED); - return SUCCESS; -} + case PHVOLT_T_ELSE: + if (state->if_level == 0 && state->for_level > 0) { + phvolt_(phvolt_parser, PHVOLT_ELSEFOR, NULL, parser_status); + } else { + phvolt_(phvolt_parser, PHVOLT_ELSE, NULL, parser_status); + } + break; -static PHP_METHOD(Phalcon_Image_ImageFactory, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *services_param = NULL; - zval services; - zval *this_ptr = getThis(); + case PHVOLT_T_ELSEFOR: + phvolt_(phvolt_parser, PHVOLT_ELSEFOR, NULL, parser_status); + break; - ZVAL_UNDEF(&services); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(services) - ZEND_PARSE_PARAMETERS_END(); -#endif + case PHVOLT_T_ELSEIF: + if (state->if_level == 0) { + phvolt_create_error_msg(parser_status, "Unexpected ENDIF"); + parser_status->status = PHVOLT_PARSING_FAILED; + break; + } + phvolt_(phvolt_parser, PHVOLT_ELSEIF, NULL, parser_status); + break; + case PHVOLT_T_ENDIF: + state->block_level--; + state->if_level--; + phvolt_(phvolt_parser, PHVOLT_ENDIF, NULL, parser_status); + break; - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &services_param); - if (!services_param) { - ZEPHIR_INIT_VAR(&services); - array_init(&services); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&services, services_param); - } + case PHVOLT_T_FOR: + if (state->extends_mode == 1 && state->block_level == 0){ + phvolt_create_error_msg(parser_status, "Child templates only may contain blocks"); + parser_status->status = PHVOLT_PARSING_FAILED; + break; + } else { + state->old_if_level = state->if_level; + state->if_level = 0; + state->for_level++; + state->block_level++; + } + phvolt_(phvolt_parser, PHVOLT_FOR, NULL, parser_status); + break; + case PHVOLT_T_IN: + phvolt_(phvolt_parser, PHVOLT_IN, NULL, parser_status); + break; - ZEPHIR_CALL_METHOD(NULL, this_ptr, "init", NULL, 0, &services); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} + case PHVOLT_T_ENDFOR: + state->block_level--; + state->for_level--; + state->if_level = state->old_if_level; + phvolt_(phvolt_parser, PHVOLT_ENDFOR, NULL, parser_status); + break; -static PHP_METHOD(Phalcon_Image_ImageFactory, load) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_1 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *config = NULL, config_sub, height, file, name, width, _0, _2, _3; - zval *this_ptr = getThis(); + case PHVOLT_T_SWITCH: + if (state->extends_mode == 1 && state->block_level == 0){ + phvolt_create_error_msg(parser_status, "Child templates only may contain blocks"); + parser_status->status = PHVOLT_PARSING_FAILED; + break; + } else if (state->switch_level > 0) { + phvolt_create_error_msg(parser_status, "A nested switch detected. There is no nested switch-case statements support"); + parser_status->status = PHVOLT_PARSING_FAILED; + break; + } else { + state->switch_level = 1; + state->block_level++; + } + phvolt_(phvolt_parser, PHVOLT_SWITCH, NULL, parser_status); + break; - ZVAL_UNDEF(&config_sub); - ZVAL_UNDEF(&height); - ZVAL_UNDEF(&file); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&width); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(config) - ZEND_PARSE_PARAMETERS_END(); -#endif + case PHVOLT_T_CASE: + if (state->switch_level == 0) { + phvolt_create_error_msg(parser_status, "Unexpected CASE"); + parser_status->status = PHVOLT_PARSING_FAILED; + break; + } + phvolt_(phvolt_parser, PHVOLT_CASE, NULL, parser_status); + break; + /* only for switch-case statements */ + case PHVOLT_T_DEFAULT: + if (state->switch_level != 0) { + phvolt_(phvolt_parser, PHVOLT_DEFAULT, NULL, parser_status); + efree(token.value); + } else { + phvolt_parse_with_token(phvolt_parser, PHVOLT_T_IDENTIFIER, PHVOLT_IDENTIFIER, &token, parser_status); + } - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &config); - ZEPHIR_SEPARATE_PARAM(config); + break; + case PHVOLT_T_ENDSWITCH: + if (state->switch_level == 0) { + phvolt_create_error_msg(parser_status, "Unexpected ENDSWITCH"); + parser_status->status = PHVOLT_PARSING_FAILED; + break; + } else { + state->switch_level = 0; + state->block_level--; + } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "checkconfig", NULL, 0, config); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(config, &_0); - if (UNEXPECTED(!(zephir_array_isset_string(config, SL("file"))))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "You must provide 'file' option in factory config parameter.", "phalcon/Image/ImageFactory.zep", 52); - return; - } - ZEPHIR_OBS_VAR(&name); - zephir_array_fetch_string(&name, config, SL("adapter"), PH_NOISY, "phalcon/Image/ImageFactory.zep", 55); - zephir_array_unset_string(config, SL("adapter"), PH_SEPARATE); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "file"); - ZEPHIR_CALL_CE_STATIC(&file, phalcon_helper_arr_ce, "get", &_1, 16, config, &_2); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "height"); - ZVAL_NULL(&_3); - ZEPHIR_CALL_CE_STATIC(&height, phalcon_helper_arr_ce, "get", &_1, 16, config, &_2, &_3); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "width"); - ZVAL_NULL(&_3); - ZEPHIR_CALL_CE_STATIC(&width, phalcon_helper_arr_ce, "get", &_1, 16, config, &_2, &_3); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "newinstance", NULL, 0, &name, &file, &width, &height); - zephir_check_call_status(); - RETURN_MM(); -} + phvolt_(phvolt_parser, PHVOLT_ENDSWITCH, NULL, parser_status); + break; -static PHP_METHOD(Phalcon_Image_ImageFactory, newInstance) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long width, height, ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, *file_param = NULL, *width_param = NULL, *height_param = NULL, definition, _1; - zval name, file; - zval *this_ptr = getThis(); + case PHVOLT_T_RAW_FRAGMENT: + if (token.len > 0) { + if (state->extends_mode == 1 && state->block_level == 0){ + if (!phvolt_is_blank_string(&token)) { + phvolt_create_error_msg(parser_status, "Child templates only may contain blocks"); + parser_status->status = PHVOLT_PARSING_FAILED; + } + efree(token.value); + break; + } else { + if (!phvolt_is_blank_string(&token)) { + state->statement_position++; + } + } + phvolt_parse_with_token(phvolt_parser, PHVOLT_T_RAW_FRAGMENT, PHVOLT_RAW_FRAGMENT, &token, parser_status); + } else { + efree(token.value); + } + break; - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&file); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 4) - Z_PARAM_STR(name) - Z_PARAM_STR(file) - Z_PARAM_OPTIONAL - Z_PARAM_LONG_OR_NULL(width, is_null_true) - Z_PARAM_LONG_OR_NULL(height, is_null_true) - ZEND_PARSE_PARAMETERS_END(); -#endif + case PHVOLT_T_SET: + if (state->extends_mode == 1 && state->block_level == 0){ + phvolt_create_error_msg(parser_status, "Child templates only may contain blocks"); + parser_status->status = PHVOLT_PARSING_FAILED; + break; + } + phvolt_(phvolt_parser, PHVOLT_SET, NULL, parser_status); + break; + case PHVOLT_T_ASSIGN: + phvolt_(phvolt_parser, PHVOLT_ASSIGN, NULL, parser_status); + break; - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 2, &name_param, &file_param, &width_param, &height_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - if (UNEXPECTED(Z_TYPE_P(file_param) != IS_STRING && Z_TYPE_P(file_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'file' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(file_param) == IS_STRING)) { - zephir_get_strval(&file, file_param); - } else { - ZEPHIR_INIT_VAR(&file); - } - if (!width_param) { - width = 0; - } else { - width = zephir_get_intval(width_param); - } - if (!height_param) { - height = 0; - } else { - height = zephir_get_intval(height_param); - } + case PHVOLT_T_ADD_ASSIGN: + phvolt_(phvolt_parser, PHVOLT_ADD_ASSIGN, NULL, parser_status); + break; + case PHVOLT_T_SUB_ASSIGN: + phvolt_(phvolt_parser, PHVOLT_SUB_ASSIGN, NULL, parser_status); + break; - ZEPHIR_CALL_METHOD(&definition, this_ptr, "getservice", NULL, 0, &name); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 3, 0); - zephir_array_fast_append(&_0, &file); - ZEPHIR_INIT_VAR(&_1); - ZVAL_LONG(&_1, width); - zephir_array_fast_append(&_0, &_1); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_LONG(&_1, height); - zephir_array_fast_append(&_0, &_1); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(return_value, &definition, &_0); - zephir_check_call_status(); - RETURN_MM(); -} + case PHVOLT_T_MUL_ASSIGN: + phvolt_(phvolt_parser, PHVOLT_MUL_ASSIGN, NULL, parser_status); + break; -static PHP_METHOD(Phalcon_Image_ImageFactory, getAdapters) -{ - zval *this_ptr = getThis(); + case PHVOLT_T_DIV_ASSIGN: + phvolt_(phvolt_parser, PHVOLT_DIV_ASSIGN, NULL, parser_status); + break; + case PHVOLT_T_INCR: + phvolt_(phvolt_parser, PHVOLT_INCR, NULL, parser_status); + break; + case PHVOLT_T_DECR: + phvolt_(phvolt_parser, PHVOLT_DECR, NULL, parser_status); + break; - zephir_create_array(return_value, 2, 0); - add_assoc_stringl_ex(return_value, SL("gd"), SL("Phalcon\\Image\\Adapter\\Gd")); - add_assoc_stringl_ex(return_value, SL("imagick"), SL("Phalcon\\Image\\Adapter\\Imagick")); - return; -} + case PHVOLT_T_BLOCK: + if (state->block_level > 0) { + phvolt_create_error_msg(parser_status, "Embedding blocks into other blocks is not supported"); + parser_status->status = PHVOLT_PARSING_FAILED; + break; + } else { + state->block_level++; + } + phvolt_(phvolt_parser, PHVOLT_BLOCK, NULL, parser_status); + break; + case PHVOLT_T_ENDBLOCK: + state->block_level--; + phvolt_(phvolt_parser, PHVOLT_ENDBLOCK, NULL, parser_status); + break; + case PHVOLT_T_MACRO: + if (state->macro_level > 0) { + phvolt_create_error_msg(parser_status, "Embedding macros into other macros is not allowed"); + parser_status->status = PHVOLT_PARSING_FAILED; + break; + } else { + state->macro_level++; + } + phvolt_(phvolt_parser, PHVOLT_MACRO, NULL, parser_status); + break; + case PHVOLT_T_ENDMACRO: + state->macro_level--; + phvolt_(phvolt_parser, PHVOLT_ENDMACRO, NULL, parser_status); + break; + case PHVOLT_T_CALL: + phvolt_(phvolt_parser, PHVOLT_CALL, NULL, parser_status); + break; + case PHVOLT_T_ENDCALL: + phvolt_(phvolt_parser, PHVOLT_ENDCALL, NULL, parser_status); + break; -#ifdef HAVE_CONFIG_H -#endif + case PHVOLT_T_CACHE: + phvolt_(phvolt_parser, PHVOLT_CACHE, NULL, parser_status); + break; + case PHVOLT_T_ENDCACHE: + phvolt_(phvolt_parser, PHVOLT_ENDCACHE, NULL, parser_status); + break; + case PHVOLT_T_RAW: + phvolt_(phvolt_parser, PHVOLT_RAW, NULL, parser_status); + state->forced_raw_state++; + break; + case PHVOLT_T_ENDRAW: + phvolt_(phvolt_parser, PHVOLT_ENDRAW, NULL, parser_status); + state->forced_raw_state--; + break; + case PHVOLT_T_INCLUDE: + phvolt_(phvolt_parser, PHVOLT_INCLUDE, NULL, parser_status); + break; + case PHVOLT_T_WITH: + phvolt_(phvolt_parser, PHVOLT_WITH, NULL, parser_status); + break; + case PHVOLT_T_DEFINED: + phvolt_(phvolt_parser, PHVOLT_DEFINED, NULL, parser_status); + break; -ZEPHIR_INIT_CLASS(Phalcon_Image_Adapter_AbstractAdapter) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Image\\Adapter, AbstractAdapter, phalcon, image_adapter_abstractadapter, phalcon_image_adapter_abstractadapter_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_bool(phalcon_image_adapter_abstractadapter_ce, SL("checked"), 0, ZEND_ACC_PROTECTED|ZEND_ACC_STATIC); - zend_declare_property_null(phalcon_image_adapter_abstractadapter_ce, SL("file"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_image_adapter_abstractadapter_ce, SL("height"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_image_adapter_abstractadapter_ce, SL("image"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_image_adapter_abstractadapter_ce, SL("mime"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_image_adapter_abstractadapter_ce, SL("realpath"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_image_adapter_abstractadapter_ce, SL("type"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_image_adapter_abstractadapter_ce, SL("width"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_image_adapter_abstractadapter_ce, 1, phalcon_image_adapter_adapterinterface_ce); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, getHeight) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "height"); -} - -static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, getImage) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "image"); -} - -static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, getMime) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "mime"); -} - -static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, getRealpath) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "realpath"); -} - -static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, getType) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "type"); -} + case PHVOLT_T_EMPTY: + phvolt_(phvolt_parser, PHVOLT_EMPTY, NULL, parser_status); + break; -static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, getWidth) -{ - zval *this_ptr = getThis(); + case PHVOLT_T_EVEN: + phvolt_(phvolt_parser, PHVOLT_EVEN, NULL, parser_status); + break; + case PHVOLT_T_ODD: + phvolt_(phvolt_parser, PHVOLT_ODD, NULL, parser_status); + break; + case PHVOLT_T_NUMERIC: + phvolt_(phvolt_parser, PHVOLT_NUMERIC, NULL, parser_status); + break; - RETURN_MEMBER(getThis(), "width"); -} + case PHVOLT_T_SCALAR: + phvolt_(phvolt_parser, PHVOLT_SCALAR, NULL, parser_status); + break; -static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, background) -{ - zend_bool _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long opacity, ZEPHIR_LAST_CALL_STATUS; - zval *color_param = NULL, *opacity_param = NULL, colors, _1, _2, _3, _9, _10, _11, _12, _13, _14, _4$$3, _5$$3, _6$$4, _7$$4, _8$$4; - zval color; - zval *this_ptr = getThis(); + case PHVOLT_T_ITERABLE: + phvolt_(phvolt_parser, PHVOLT_ITERABLE, NULL, parser_status); + break; - ZVAL_UNDEF(&color); - ZVAL_UNDEF(&colors); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_13); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_8$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(color) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(opacity) - ZEND_PARSE_PARAMETERS_END(); -#endif + case PHVOLT_T_DO: + phvolt_(phvolt_parser, PHVOLT_DO, NULL, parser_status); + break; + case PHVOLT_T_RETURN: + phvolt_(phvolt_parser, PHVOLT_RETURN, NULL, parser_status); + break; + case PHVOLT_T_AUTOESCAPE: + phvolt_(phvolt_parser, PHVOLT_AUTOESCAPE, NULL, parser_status); + break; - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &color_param, &opacity_param); - zephir_get_strval(&color, color_param); - if (!opacity_param) { - opacity = 100; - } else { - opacity = zephir_get_intval(opacity_param); - } + case PHVOLT_T_ENDAUTOESCAPE: + phvolt_(phvolt_parser, PHVOLT_ENDAUTOESCAPE, NULL, parser_status); + break; + case PHVOLT_T_BREAK: + phvolt_(phvolt_parser, PHVOLT_BREAK, NULL, parser_status); + break; - _0 = zephir_fast_strlen_ev(&color) > 1; - if (_0) { - ZVAL_LONG(&_1, 0); - ZVAL_LONG(&_2, 1); - ZEPHIR_INIT_VAR(&_3); - zephir_substr(&_3, &color, 0 , 1 , 0); - _0 = ZEPHIR_IS_STRING_IDENTICAL(&_3, "#"); - } - if (_0) { - ZVAL_LONG(&_4$$3, 1); - ZEPHIR_INIT_VAR(&_5$$3); - zephir_substr(&_5$$3, &color, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - zephir_get_strval(&color, &_5$$3); - } - if (zephir_fast_strlen_ev(&color) == 3) { - ZEPHIR_INIT_VAR(&_6$$4); - ZVAL_STRING(&_6$$4, "/./"); - ZEPHIR_INIT_VAR(&_7$$4); - ZVAL_STRING(&_7$$4, "$0$0"); - ZEPHIR_CALL_FUNCTION(&_8$$4, "preg_replace", NULL, 50, &_6$$4, &_7$$4, &color); - zephir_check_call_status(); - zephir_get_strval(&color, &_8$$4); - } - ZVAL_LONG(&_9, 2); - ZEPHIR_CALL_FUNCTION(&_10, "str_split", NULL, 108, &color, &_9); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_11); - ZVAL_STRING(&_11, "hexdec"); - ZEPHIR_CALL_FUNCTION(&colors, "array_map", NULL, 102, &_11, &_10); - zephir_check_call_status(); - zephir_array_fetch_long(&_12, &colors, 0, PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/AbstractAdapter.zep", 93); - zephir_array_fetch_long(&_13, &colors, 1, PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/AbstractAdapter.zep", 93); - zephir_array_fetch_long(&_14, &colors, 2, PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/AbstractAdapter.zep", 93); - ZVAL_LONG(&_9, opacity); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processbackground", NULL, 0, &_12, &_13, &_14, &_9); - zephir_check_call_status(); - RETURN_THIS(); -} + case PHVOLT_T_CONTINUE: + phvolt_(phvolt_parser, PHVOLT_CONTINUE, NULL, parser_status); + break; -static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, blur) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *radius_param = NULL, _0; - zend_long radius, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); + case PHVOLT_T_EXTENDS: + if (state->statement_position != 1) { + phvolt_create_error_msg(parser_status, "Extends statement must be placed at the first line in the template"); + parser_status->status = PHVOLT_PARSING_FAILED; + break; + } else { + state->extends_mode = 1; + } + phvolt_(phvolt_parser, PHVOLT_EXTENDS, NULL, parser_status); + break; - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(radius) - ZEND_PARSE_PARAMETERS_END(); -#endif + default: + parser_status->status = PHVOLT_PARSING_FAILED; + error = emalloc(sizeof(char) * (48 + Z_STRLEN_P(state->active_file))); + snprintf(error, 48 + Z_STRLEN_P(state->active_file) + state->active_line, + "Scanner: unknown opcode %d on in %s line %d", token.opcode, + Z_STRVAL_P(state->active_file), state->active_line); + if (Z_TYPE_P(*error_msg) == IS_NULL) { + ZVAL_STRING((*error_msg), error); + } - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &radius_param); - radius = zephir_get_intval(radius_param); + efree(error); + break; + } + if (parser_status->status != PHVOLT_PARSING_OK) { + status = FAILURE; + break; + } - if (radius < 1) { - radius = 1; - } else if (radius > 100) { - radius = 100; + state->end = state->start; } - ZVAL_LONG(&_0, radius); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processblur", NULL, 0, &_0); - zephir_check_call_status(); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, crop) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *width_param = NULL, *height_param = NULL, *offsetX_param = NULL, *offsetY_param = NULL, _0, _5, _10, _12, _14, _15, _16, _17, _1$$3, _2$$5, _3$$4, _4$$6, _6$$7, _7$$9, _8$$8, _9$$10, _11$$11, _13$$12; - zend_long width, height, offsetX, offsetY, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_15); - ZVAL_UNDEF(&_16); - ZVAL_UNDEF(&_17); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$5); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$6); - ZVAL_UNDEF(&_6$$7); - ZVAL_UNDEF(&_7$$9); - ZVAL_UNDEF(&_8$$8); - ZVAL_UNDEF(&_9$$10); - ZVAL_UNDEF(&_11$$11); - ZVAL_UNDEF(&_13$$12); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 4) - Z_PARAM_LONG(width) - Z_PARAM_LONG(height) - Z_PARAM_OPTIONAL - Z_PARAM_LONG_OR_NULL(offsetX, is_null_true) - Z_PARAM_LONG_OR_NULL(offsetY, is_null_true) - ZEND_PARSE_PARAMETERS_END(); -#endif - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 2, &width_param, &height_param, &offsetX_param, &offsetY_param); - width = zephir_get_intval(width_param); - height = zephir_get_intval(height_param); - if (!offsetX_param) { - offsetX = 0; - } else { - offsetX = zephir_get_intval(offsetX_param); - } - if (!offsetY_param) { - offsetY = 0; - } else { - offsetY = zephir_get_intval(offsetY_param); + if (status != FAILURE) { + switch (scanner_status) { + case PHVOLT_SCANNER_RETCODE_ERR: + case PHVOLT_SCANNER_RETCODE_IMPOSSIBLE: + if (!*error_msg) { + phvolt_scanner_error_msg(parser_status, error_msg); + } else { + if (Z_TYPE_P(*error_msg) == IS_NULL) { + phvolt_scanner_error_msg(parser_status, error_msg); + } + } + status = FAILURE; + break; + default: + phvolt_(phvolt_parser, 0, NULL, parser_status); + } } + state->active_token = 0; + state->start = NULL; + efree(state->raw_buffer); - ZVAL_LONG(&_0, offsetX); - if (Z_TYPE_P(&_0) == IS_NULL) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - offsetX = (long) ((zephir_safe_div_long_long(((zephir_get_numberval(&_1$$3) - width)), 2))); - } else { - if (offsetX < 0) { - zephir_read_property(&_2$$5, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - offsetX = ((zephir_get_numberval(&_2$$5) - width) + offsetX); - } - zephir_read_property(&_3$$4, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - if (ZEPHIR_LT_LONG(&_3$$4, offsetX)) { - ZEPHIR_OBS_VAR(&_4$$6); - zephir_read_property(&_4$$6, this_ptr, ZEND_STRL("width"), PH_NOISY_CC); - offsetX = zephir_get_intval(&_4$$6); + if (parser_status->status != PHVOLT_PARSING_OK) { + status = FAILURE; + if (parser_status->syntax_error) { + ZVAL_STRING(*error_msg, parser_status->syntax_error); + efree(parser_status->syntax_error); } } - ZVAL_LONG(&_5, offsetY); - if (Z_TYPE_P(&_5) == IS_NULL) { - zephir_read_property(&_6$$7, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - offsetY = (long) ((zephir_safe_div_long_long(((zephir_get_numberval(&_6$$7) - height)), 2))); - } else { - if (offsetY < 0) { - zephir_read_property(&_7$$9, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - offsetY = ((zephir_get_numberval(&_7$$9) - height) + offsetY); - } - zephir_read_property(&_8$$8, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - if (ZEPHIR_LT_LONG(&_8$$8, offsetY)) { - ZEPHIR_OBS_VAR(&_9$$10); - zephir_read_property(&_9$$10, this_ptr, ZEND_STRL("height"), PH_NOISY_CC); - offsetY = zephir_get_intval(&_9$$10); + + if (status != FAILURE) { + if (parser_status->status == PHVOLT_PARSING_OK) { + if (Z_TYPE(parser_status->ret) != IS_UNDEF) { + ZVAL_ZVAL(*result, &parser_status->ret, 1, 1); + } else { + array_init(*result); + } } } - zephir_read_property(&_10, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - if (width > ((zephir_get_numberval(&_10) - offsetX))) { - zephir_read_property(&_11$$11, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - width = (zephir_get_numberval(&_11$$11) - offsetX); - } - zephir_read_property(&_12, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - if (height > ((zephir_get_numberval(&_12) - offsetY))) { - zephir_read_property(&_13$$12, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - height = (zephir_get_numberval(&_13$$12) - offsetY); - } - ZVAL_LONG(&_14, width); - ZVAL_LONG(&_15, height); - ZVAL_LONG(&_16, offsetX); - ZVAL_LONG(&_17, offsetY); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processcrop", NULL, 0, &_14, &_15, &_16, &_17); - zephir_check_call_status(); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, flip) -{ - zend_bool _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *direction_param = NULL, _1; - zend_long direction, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(direction) - ZEND_PARSE_PARAMETERS_END(); -#endif + phvolt_Free(phvolt_parser, phvolt_wrapper_free); - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &direction_param); - direction = zephir_get_intval(direction_param); + efree(parser_status); + efree(state); + return status; - _0 = direction != 11; - if (_0) { - _0 = direction != 12; - } - if (_0) { - direction = 11; - } - ZVAL_LONG(&_1, direction); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processflip", NULL, 0, &_1); - zephir_check_call_status(); - RETURN_THIS(); } +/* }}} */ -static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, liquidRescale) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *width_param = NULL, *height_param = NULL, *deltaX_param = NULL, *rigidity_param = NULL, _0, _1, _2, _3; - zend_long width, height, deltaX, rigidity, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 4) - Z_PARAM_LONG(width) - Z_PARAM_LONG(height) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(deltaX) - Z_PARAM_LONG(rigidity) - ZEND_PARSE_PARAMETERS_END(); -#endif +/* Generated by re2c 1.1.1 */ +/* scanner.re + * + * This file is part of the Phalcon Framework. + * + * (c) Phalcon Team + * + * For the full copyright and license information, please view the + * LICENSE.txt file that was distributed with this source code. + */ - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 2, &width_param, &height_param, &deltaX_param, &rigidity_param); - width = zephir_get_intval(width_param); - height = zephir_get_intval(height_param); - if (!deltaX_param) { - deltaX = 0; - } else { - deltaX = zephir_get_intval(deltaX_param); - } - if (!rigidity_param) { - rigidity = 0; - } else { - rigidity = zephir_get_intval(rigidity_param); - } +/* for re2c */ +#define VVCTYPE unsigned char +#define VVCURSOR (s->start) +#define VVLIMIT (s->end) +#define VVMARKER (s->marker) - ZVAL_LONG(&_0, width); - ZVAL_LONG(&_1, height); - ZVAL_LONG(&_2, deltaX); - ZVAL_LONG(&_3, rigidity); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processliquidrescale", NULL, 0, &_0, &_1, &_2, &_3); - zephir_check_call_status(); - RETURN_THIS(); -} +static void phvolt_rtrim(phvolt_scanner_token *token) { -static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, mask) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *watermark, watermark_sub; - zval *this_ptr = getThis(); + char *cursor, *removed_str; + int i; + char ch; - ZVAL_UNDEF(&watermark_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(watermark, phalcon_image_adapter_adapterinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif + if (token->len > 0) { + cursor = token->value; + cursor += (token->len - 1); + for (i = token->len; i > 0; i--) { + ch = (*cursor); + if (ch == '\t' || ch == '\n' || ch == '\r' || ch == ' ' || ch == '\v') { + cursor--; + continue; + } + break; + } - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &watermark); + if (i >= 0) { + removed_str = emalloc(i + 1); + memcpy(removed_str, token->value, i); + removed_str[i] = '\0'; + efree(token->value); + token->value = removed_str; + token->len = i; + } + } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processmask", NULL, 0, watermark); - zephir_check_call_status(); - RETURN_THIS(); } -static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, pixelate) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *amount_param = NULL, _0; - zend_long amount, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); +static void phvolt_ltrim(phvolt_scanner_token *token) { - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(amount) - ZEND_PARSE_PARAMETERS_END(); -#endif + char *cursor, *removed_str; + int i; + if (token->len > 0) { - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &amount_param); - amount = zephir_get_intval(amount_param); + cursor = token->value; + for (i = 0; i < token->len; i++) { + char ch = (*cursor); + if (ch == '\t' || ch == '\n' || ch == '\r' || ch == ' ' || ch == '\v') { + cursor++; + continue; + } + break; + } + if (i >= 0) { + removed_str = emalloc(token->len - i + 1); + memcpy(removed_str, token->value + i, token->len - i); + removed_str[token->len - i] = '\0'; - if (amount < 2) { - amount = 2; + efree(token->value); + token->value = removed_str; + token->len = token->len - i; + } } - ZVAL_LONG(&_0, amount); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processpixelate", NULL, 0, &_0); - zephir_check_call_status(); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, reflection) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_bool fadeIn, _0; - zval *height_param = NULL, *opacity_param = NULL, *fadeIn_param = NULL, _1, _3, _4, _5, _2$$3; - zend_long height, opacity, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_2$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_LONG(height) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(opacity) - Z_PARAM_BOOL(fadeIn) - ZEND_PARSE_PARAMETERS_END(); -#endif +} - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &height_param, &opacity_param, &fadeIn_param); - height = zephir_get_intval(height_param); - if (!opacity_param) { - opacity = 100; - } else { - opacity = zephir_get_intval(opacity_param); - } - if (!fadeIn_param) { - fadeIn = 0; - } else { - fadeIn = zephir_get_boolval(fadeIn_param); - } +static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token) { + unsigned char next, double_next; + char *start = VVCURSOR; + int status = PHVOLT_SCANNER_RETCODE_IMPOSSIBLE; + while (PHVOLT_SCANNER_RETCODE_IMPOSSIBLE == status) { + if (s->mode == PHVOLT_MODE_RAW || s->mode == PHVOLT_MODE_COMMENT) { + next = '\0'; + double_next = '\0'; - _0 = height <= 0; - if (!(_0)) { - zephir_read_property(&_1, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - _0 = ZEPHIR_LT_LONG(&_1, height); - } - if (_0) { - ZEPHIR_OBS_VAR(&_2$$3); - zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("height"), PH_NOISY_CC); - height = zephir_get_intval(&_2$$3); - } - if (opacity < 0) { - opacity = 0; - } else if (opacity > 100) { - opacity = 100; - } - ZVAL_LONG(&_3, height); - ZVAL_LONG(&_4, opacity); - if (fadeIn) { - ZVAL_BOOL(&_5, 1); - } else { - ZVAL_BOOL(&_5, 0); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processreflection", NULL, 0, &_3, &_4, &_5); - zephir_check_call_status(); - RETURN_THIS(); -} + if (*VVCURSOR == '\n') { + s->active_line++; + } -static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, render) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long quality, ZEPHIR_LAST_CALL_STATUS; - zval *ext_param = NULL, *quality_param = NULL, _0$$3, _1$$3, _2$$3, _4; - zval ext, _3$$3; - zval *this_ptr = getThis(); + if (*VVCURSOR != '\0') { + next = *(VVCURSOR + 1); + if (next != '\0') { + double_next = *(VVCURSOR + 2); + } + } - ZVAL_UNDEF(&ext); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(ext) - Z_PARAM_LONG(quality) - ZEND_PARSE_PARAMETERS_END(); -#endif + if (*VVCURSOR == '\0' || (*VVCURSOR == '{' && (next == '%' || next == '{' || next == '#'))) { + if (next != '#') { + s->mode = PHVOLT_MODE_CODE; + if (s->raw_buffer_cursor > 0) { + token->opcode = PHVOLT_T_RAW_FRAGMENT; + token->value = emalloc(sizeof(char) * s->raw_buffer_cursor + 1); + memcpy(token->value, s->raw_buffer, s->raw_buffer_cursor); + token->value[s->raw_buffer_cursor] = 0; + token->len = s->raw_buffer_cursor; - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &ext_param, &quality_param); - if (!ext_param) { - ZEPHIR_INIT_VAR(&ext); - } else { - zephir_get_strval(&ext, ext_param); - } - if (!quality_param) { - quality = 100; - } else { - quality = zephir_get_intval(quality_param); - } + if (s->whitespace_control == 1) { + phvolt_ltrim(token); + s->whitespace_control = 0; + } + if (double_next == '-') { + phvolt_rtrim(token); + } - if (ZEPHIR_IS_EMPTY(&ext)) { - zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_1$$3, 4); - ZEPHIR_CALL_FUNCTION(&_2$$3, "pathinfo", NULL, 109, &_0$$3, &_1$$3); - zephir_check_call_status(); - zephir_cast_to_string(&_3$$3, &_2$$3); - ZEPHIR_CPY_WRT(&ext, &_3$$3); - } - if (ZEPHIR_IS_EMPTY(&ext)) { - ZEPHIR_INIT_NVAR(&ext); - ZVAL_STRING(&ext, "png"); - } - if (quality < 1) { - quality = 1; - } else if (quality > 100) { - quality = 100; - } - ZVAL_LONG(&_4, quality); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "processrender", NULL, 0, &ext, &_4); - zephir_check_call_status(); - RETURN_MM(); -} + s->raw_buffer_cursor = 0; + } else { + token->opcode = PHVOLT_T_IGNORE; + } + } else { + while ((next = *(++VVCURSOR))) { + if (next == '#' && *(VVCURSOR + 1) == '}') { + VVCURSOR += 2; + token->opcode = PHVOLT_T_IGNORE; + return 0; + } else { + if (next == '\n') { + s->active_line++; + } + } + } -static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, resize) -{ - zend_bool _0$$3, _1$$6, _5$$8, _13$$14; - double ratio = 0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *width_param = NULL, *height_param = NULL, *master_param = NULL, _23, _24, _25, _26, _27, _28, _29, _30, _2$$6, _3$$6, _4$$6, _6$$8, _7$$8, _8$$8, _9$$10, _10$$10, _11$$12, _12$$12, _14$$14, _15$$14, _16$$14, _17$$16, _18$$16, _19$$17, _20$$17, _21$$19, _22$$20; - zend_long width, height, master, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); + return PHVOLT_SCANNER_RETCODE_EOF; + } - ZVAL_UNDEF(&_23); - ZVAL_UNDEF(&_24); - ZVAL_UNDEF(&_25); - ZVAL_UNDEF(&_26); - ZVAL_UNDEF(&_27); - ZVAL_UNDEF(&_28); - ZVAL_UNDEF(&_29); - ZVAL_UNDEF(&_30); - ZVAL_UNDEF(&_2$$6); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&_4$$6); - ZVAL_UNDEF(&_6$$8); - ZVAL_UNDEF(&_7$$8); - ZVAL_UNDEF(&_8$$8); - ZVAL_UNDEF(&_9$$10); - ZVAL_UNDEF(&_10$$10); - ZVAL_UNDEF(&_11$$12); - ZVAL_UNDEF(&_12$$12); - ZVAL_UNDEF(&_14$$14); - ZVAL_UNDEF(&_15$$14); - ZVAL_UNDEF(&_16$$14); - ZVAL_UNDEF(&_17$$16); - ZVAL_UNDEF(&_18$$16); - ZVAL_UNDEF(&_19$$17); - ZVAL_UNDEF(&_20$$17); - ZVAL_UNDEF(&_21$$19); - ZVAL_UNDEF(&_22$$20); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 3) - Z_PARAM_OPTIONAL - Z_PARAM_LONG_OR_NULL(width, is_null_true) - Z_PARAM_LONG_OR_NULL(height, is_null_true) - Z_PARAM_LONG(master) - ZEND_PARSE_PARAMETERS_END(); -#endif + return 0; + } else { + if (s->raw_buffer_cursor == s->raw_buffer_size) { + s->raw_buffer_size += PHVOLT_RAW_BUFFER_SIZE; + s->raw_buffer = erealloc(s->raw_buffer, s->raw_buffer_size); + } - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 3, &width_param, &height_param, &master_param); - if (!width_param) { - width = 0; - } else { - width = zephir_get_intval(width_param); - } - if (!height_param) { - height = 0; - } else { - height = zephir_get_intval(height_param); - } - if (!master_param) { - master = 4; - } else { - master = zephir_get_intval(master_param); - } + memcpy(s->raw_buffer+s->raw_buffer_cursor, VVCURSOR, 1); + s->raw_buffer_cursor++; + ++VVCURSOR; + } - if (master == 7) { - _0$$3 = !width; - if (!(_0$$3)) { - _0$$3 = !height; + } else { + + { + VVCTYPE vvch; + unsigned int vvaccept = 0; + vvch = *VVCURSOR; + switch (vvch) { + case 0x00: goto vv2; + case '\t': + case '\r': + case ' ': goto vv6; + case '\n': goto vv9; + case '!': goto vv11; + case '"': goto vv13; + case '%': goto vv14; + case '\'': goto vv16; + case '(': goto vv17; + case ')': goto vv19; + case '*': goto vv21; + case '+': goto vv23; + case ',': goto vv25; + case '-': goto vv27; + case '.': goto vv29; + case '/': goto vv31; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto vv33; + case ':': goto vv36; + case '<': goto vv38; + case '=': goto vv40; + case '>': goto vv42; + case '?': goto vv44; + case 'A': + case 'a': goto vv46; + case 'B': + case 'b': goto vv48; + case 'C': + case 'c': goto vv49; + case 'D': + case 'd': goto vv50; + case 'E': + case 'e': goto vv51; + case 'F': + case 'f': goto vv52; + case 'G': + case 'H': + case 'J': + case 'K': + case 'L': + case 'P': + case 'Q': + case 'U': + case 'V': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'g': + case 'h': + case 'j': + case 'k': + case 'l': + case 'p': + case 'q': + case 'u': + case 'v': + case 'x': + case 'y': + case 'z': goto vv53; + case 'I': goto vv55; + case 'M': + case 'm': goto vv56; + case 'N': + case 'n': goto vv57; + case 'O': + case 'o': goto vv58; + case 'R': + case 'r': goto vv59; + case 'S': + case 's': goto vv60; + case 'T': + case 't': goto vv61; + case 'W': + case 'w': goto vv62; + case '[': goto vv63; + case '\\': goto vv65; + case ']': goto vv66; + case 'i': goto vv68; + case '{': goto vv69; + case '|': goto vv71; + case '}': goto vv73; + case '~': goto vv75; + default: goto vv4; + } +vv2: + ++VVCURSOR; + { + status = PHVOLT_SCANNER_RETCODE_EOF; + break; } - if (UNEXPECTED(_0$$3)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "width and height must be specified", "phalcon/Image/Adapter/AbstractAdapter.zep", 277); - return; +vv4: + ++VVCURSOR; +vv5: + { + status = PHVOLT_SCANNER_RETCODE_ERR; + break; } - } else { - if (master == 4) { - _1$$6 = !width; - if (!(_1$$6)) { - _1$$6 = !height; - } - if (UNEXPECTED(_1$$6)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "width and height must be specified", "phalcon/Image/Adapter/AbstractAdapter.zep", 284); - return; - } - ZEPHIR_INIT_VAR(&_2$$6); - zephir_read_property(&_3$$6, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_4$$6, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - if ((zephir_safe_div_zval_long(&_3$$6, width)) > (int) (zephir_safe_div_zval_long(&_4$$6, height))) { - ZEPHIR_INIT_NVAR(&_2$$6); - ZVAL_LONG(&_2$$6, 2); - } else { - ZEPHIR_INIT_NVAR(&_2$$6); - ZVAL_LONG(&_2$$6, 3); +vv6: + vvch = *++VVCURSOR; + switch (vvch) { + case '\t': + case '\r': + case ' ': goto vv6; + default: goto vv8; } - master = zephir_get_numberval(&_2$$6); +vv8: + { + token->opcode = PHVOLT_T_IGNORE; + return 0; } - if (master == 5) { - _5$$8 = !width; - if (!(_5$$8)) { - _5$$8 = !height; +vv9: + ++VVCURSOR; + { + s->active_line++; + token->opcode = PHVOLT_T_IGNORE; + return 0; + } +vv11: + vvch = *++VVCURSOR; + switch (vvch) { + case '=': goto vv77; + default: goto vv12; } - if (UNEXPECTED(_5$$8)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "width and height must be specified", "phalcon/Image/Adapter/AbstractAdapter.zep", 293); - return; +vv12: + { + token->opcode = PHVOLT_T_NOT; + return 0; + } +vv13: + vvaccept = 0; + vvch = *(VVMARKER = ++VVCURSOR); + if (vvch <= 0x00) goto vv5; + goto vv80; +vv14: + vvch = *++VVCURSOR; + switch (vvch) { + case '}': goto vv85; + default: goto vv15; } - ZEPHIR_INIT_VAR(&_6$$8); - zephir_read_property(&_7$$8, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_8$$8, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - if ((zephir_safe_div_zval_long(&_7$$8, width)) > (int) (zephir_safe_div_zval_long(&_8$$8, height))) { - ZEPHIR_INIT_NVAR(&_6$$8); - ZVAL_LONG(&_6$$8, 3); - } else { - ZEPHIR_INIT_NVAR(&_6$$8); - ZVAL_LONG(&_6$$8, 2); +vv15: + { + token->opcode = PHVOLT_T_MOD; + return 0; + } +vv16: + vvaccept = 0; + vvch = *(VVMARKER = ++VVCURSOR); + if (vvch <= 0x00) goto vv5; + goto vv88; +vv17: + ++VVCURSOR; + { + token->opcode = PHVOLT_T_PARENTHESES_OPEN; + return 0; + } +vv19: + ++VVCURSOR; + { + token->opcode = PHVOLT_T_PARENTHESES_CLOSE; + return 0; + } +vv21: + vvch = *++VVCURSOR; + switch (vvch) { + case '=': goto vv90; + default: goto vv22; } - master = zephir_get_numberval(&_6$$8); +vv22: + { + token->opcode = PHVOLT_T_MUL; + return 0; } - do { - if (master == 2) { - if (UNEXPECTED(!width)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "width must be specified", "phalcon/Image/Adapter/AbstractAdapter.zep", 303); - return; - } - zephir_read_property(&_9$$10, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_10$$10, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - height = (long) (zephir_safe_div_long_zval((zephir_get_numberval(&_9$$10) * width), &_10$$10)); - break; +vv23: + vvch = *++VVCURSOR; + switch (vvch) { + case '+': goto vv92; + case '=': goto vv94; + default: goto vv24; } - if (master == 3) { - if (UNEXPECTED(!height)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "height must be specified", "phalcon/Image/Adapter/AbstractAdapter.zep", 312); - return; - } - zephir_read_property(&_11$$12, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_12$$12, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - width = (long) (zephir_safe_div_long_zval((zephir_get_numberval(&_11$$12) * height), &_12$$12)); - break; +vv24: + { + token->opcode = PHVOLT_T_ADD; + return 0; + } +vv25: + ++VVCURSOR; + { + token->opcode = PHVOLT_T_COMMA; + return 0; + } +vv27: + vvaccept = 1; + vvch = *(VVMARKER = ++VVCURSOR); + switch (vvch) { + case '%': goto vv96; + case '-': goto vv97; + case '=': goto vv99; + case '}': goto vv101; + default: goto vv28; } - if (master == 6) { - _13$$14 = !width; - if (!(_13$$14)) { - _13$$14 = !height; - } - if (UNEXPECTED(_13$$14)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "width and height must be specified", "phalcon/Image/Adapter/AbstractAdapter.zep", 323); - return; - } - zephir_read_property(&_14$$14, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_15$$14, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_16$$14); - div_function(&_16$$14, &_14$$14, &_15$$14); - ratio = zephir_get_numberval(&_16$$14); - if ((zephir_safe_div_long_long(width, height)) > ratio) { - zephir_read_property(&_17$$16, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_18$$16, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - height = (long) (zephir_safe_div_long_zval((zephir_get_numberval(&_17$$16) * width), &_18$$16)); - } else { - zephir_read_property(&_19$$17, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_20$$17, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - width = (long) (zephir_safe_div_long_zval((zephir_get_numberval(&_19$$17) * height), &_20$$17)); - } - break; +vv28: + { + token->opcode = PHVOLT_T_SUB; + return 0; + } +vv29: + vvch = *++VVCURSOR; + switch (vvch) { + case '.': goto vv102; + default: goto vv30; } - if (master == 1) { - if (!(width)) { - ZEPHIR_OBS_VAR(&_21$$19); - zephir_read_property(&_21$$19, this_ptr, ZEND_STRL("width"), PH_NOISY_CC); - width = zephir_get_intval(&_21$$19); - } - if (!(height)) { - ZEPHIR_OBS_VAR(&_22$$20); - zephir_read_property(&_22$$20, this_ptr, ZEND_STRL("height"), PH_NOISY_CC); - width = zephir_get_intval(&_22$$20); - } - break; +vv30: + { + token->opcode = PHVOLT_T_DOT; + return 0; + } +vv31: + vvch = *++VVCURSOR; + switch (vvch) { + case '=': goto vv104; + default: goto vv32; } - } while(0); - - } - ZEPHIR_INIT_VAR(&_23); - ZVAL_LONG(&_24, width); - zephir_round(&_23, &_24, NULL, NULL); - ZVAL_LONG(&_25, 1); - ZEPHIR_CALL_FUNCTION(&_26, "max", NULL, 110, &_23, &_25); - zephir_check_call_status(); - width = zephir_get_intval(&_26); - ZEPHIR_INIT_VAR(&_27); - ZVAL_LONG(&_25, height); - zephir_round(&_27, &_25, NULL, NULL); - ZVAL_LONG(&_28, 1); - ZEPHIR_CALL_FUNCTION(&_29, "max", NULL, 110, &_27, &_28); - zephir_check_call_status(); - height = zephir_get_intval(&_29); - ZVAL_LONG(&_28, width); - ZVAL_LONG(&_30, height); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processresize", NULL, 0, &_28, &_30); - zephir_check_call_status(); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, rotate) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *degrees_param = NULL, _0; - zend_long degrees, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(degrees) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, °rees_param); - degrees = zephir_get_intval(degrees_param); - - - if (degrees > 180) { - degrees %= 360; - if (degrees > 180) { - degrees -= 360; +vv32: + { + token->opcode = PHVOLT_T_DIV; + return 0; } - } else { - while (1) { - if (!(degrees < -180)) { - break; +vv33: + vvaccept = 2; + vvch = *(VVMARKER = ++VVCURSOR); + switch (vvch) { + case '.': goto vv106; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto vv33; + default: goto vv35; } - degrees += 360; +vv35: + { + token->opcode = PHVOLT_T_INTEGER; + token->value = estrndup(start, VVCURSOR - start); + token->len = VVCURSOR - start; + return 0; } - } - ZVAL_LONG(&_0, degrees); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processrotate", NULL, 0, &_0); - zephir_check_call_status(); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, save) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long quality, ZEPHIR_LAST_CALL_STATUS; - zval *file_param = NULL, *quality_param = NULL, _0$$3, _2; - zval file, _1$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&file); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(file) - Z_PARAM_LONG(quality) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &file_param, &quality_param); - if (!file_param) { - ZEPHIR_INIT_VAR(&file); - } else { - zephir_get_strval(&file, file_param); - } - if (!quality_param) { - quality = -1; - } else { - quality = zephir_get_intval(quality_param); - } - - - if (!(!(ZEPHIR_IS_EMPTY(&file)))) { - ZEPHIR_OBS_VAR(&_0$$3); - zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("realpath"), PH_NOISY_CC); - zephir_cast_to_string(&_1$$3, &_0$$3); - ZEPHIR_CPY_WRT(&file, &_1$$3); - } - ZVAL_LONG(&_2, quality); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processsave", NULL, 0, &file, &_2); - zephir_check_call_status(); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, sharpen) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *amount_param = NULL, _0; - zend_long amount, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(amount) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &amount_param); - amount = zephir_get_intval(amount_param); - - - if (amount > 100) { - amount = 100; - } else if (amount < 1) { - amount = 1; - } - ZVAL_LONG(&_0, amount); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processsharpen", NULL, 0, &_0); - zephir_check_call_status(); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, text) -{ - zend_bool _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long opacity, size, ZEPHIR_LAST_CALL_STATUS; - zval *text_param = NULL, *offsetX = NULL, offsetX_sub, *offsetY = NULL, offsetY_sub, *opacity_param = NULL, *color_param = NULL, *size_param = NULL, *fontfile_param = NULL, __$false, colors, _1, _2, _3, _9, _10, _11, _12, _13, _14, _15, _4$$6, _5$$6, _6$$7, _7$$7, _8$$7; - zval text, color, fontfile; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&color); - ZVAL_UNDEF(&fontfile); - ZVAL_UNDEF(&offsetX_sub); - ZVAL_UNDEF(&offsetY_sub); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&colors); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_13); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_15); - ZVAL_UNDEF(&_4$$6); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_6$$7); - ZVAL_UNDEF(&_7$$7); - ZVAL_UNDEF(&_8$$7); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 7) - Z_PARAM_STR(text) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL(offsetX) - Z_PARAM_ZVAL(offsetY) - Z_PARAM_LONG(opacity) - Z_PARAM_STR(color) - Z_PARAM_LONG(size) - Z_PARAM_STR_OR_NULL(fontfile) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 6, &text_param, &offsetX, &offsetY, &opacity_param, &color_param, &size_param, &fontfile_param); - zephir_get_strval(&text, text_param); - if (!offsetX) { - offsetX = &offsetX_sub; - offsetX = &__$false; - } - if (!offsetY) { - offsetY = &offsetY_sub; - offsetY = &__$false; - } - if (!opacity_param) { - opacity = 100; - } else { - opacity = zephir_get_intval(opacity_param); - } - if (!color_param) { - ZEPHIR_INIT_VAR(&color); - ZVAL_STRING(&color, "000000"); - } else { - zephir_get_strval(&color, color_param); - } - if (!size_param) { - size = 12; - } else { - size = zephir_get_intval(size_param); - } - if (!fontfile_param) { - ZEPHIR_INIT_VAR(&fontfile); - } else { - zephir_get_strval(&fontfile, fontfile_param); - } - - - if (opacity < 0) { - opacity = 0; - } else { - if (opacity > 100) { - opacity = 100; +vv36: + ++VVCURSOR; + { + token->opcode = PHVOLT_T_COLON; + return 0; } - } - _0 = zephir_fast_strlen_ev(&color) > 1; - if (_0) { - ZVAL_LONG(&_1, 0); - ZVAL_LONG(&_2, 1); - ZEPHIR_INIT_VAR(&_3); - zephir_substr(&_3, &color, 0 , 1 , 0); - _0 = ZEPHIR_IS_STRING_IDENTICAL(&_3, "#"); - } - if (_0) { - ZVAL_LONG(&_4$$6, 1); - ZEPHIR_INIT_VAR(&_5$$6); - zephir_substr(&_5$$6, &color, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - zephir_get_strval(&color, &_5$$6); - } - if (zephir_fast_strlen_ev(&color) == 3) { - ZEPHIR_INIT_VAR(&_6$$7); - ZVAL_STRING(&_6$$7, "/./"); - ZEPHIR_INIT_VAR(&_7$$7); - ZVAL_STRING(&_7$$7, "$0$0"); - ZEPHIR_CALL_FUNCTION(&_8$$7, "preg_replace", NULL, 50, &_6$$7, &_7$$7, &color); - zephir_check_call_status(); - zephir_get_strval(&color, &_8$$7); - } - ZVAL_LONG(&_9, 2); - ZEPHIR_CALL_FUNCTION(&_10, "str_split", NULL, 108, &color, &_9); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_11); - ZVAL_STRING(&_11, "hexdec"); - ZEPHIR_CALL_FUNCTION(&colors, "array_map", NULL, 102, &_11, &_10); - zephir_check_call_status(); - zephir_array_fetch_long(&_12, &colors, 0, PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/AbstractAdapter.zep", 449); - zephir_array_fetch_long(&_13, &colors, 1, PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/AbstractAdapter.zep", 450); - zephir_array_fetch_long(&_14, &colors, 2, PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/AbstractAdapter.zep", 451); - ZVAL_LONG(&_9, opacity); - ZVAL_LONG(&_15, size); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processtext", NULL, 0, &text, offsetX, offsetY, &_9, &_12, &_13, &_14, &_15, &fontfile); - zephir_check_call_status(); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, watermark) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long offsetX, offsetY, opacity, ZEPHIR_LAST_CALL_STATUS, tmp = 0; - zval *watermark, watermark_sub, *offsetX_param = NULL, *offsetY_param = NULL, *opacity_param = NULL, _0, _1, _2, _3, _4, _5; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&watermark_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 4) - Z_PARAM_OBJECT_OF_CLASS(watermark, phalcon_image_adapter_adapterinterface_ce) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(offsetX) - Z_PARAM_LONG(offsetY) - Z_PARAM_LONG(opacity) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 3, &watermark, &offsetX_param, &offsetY_param, &opacity_param); - if (!offsetX_param) { - offsetX = 0; - } else { - offsetX = zephir_get_intval(offsetX_param); - } - if (!offsetY_param) { - offsetY = 0; - } else { - offsetY = zephir_get_intval(offsetY_param); - } - if (!opacity_param) { - opacity = 100; - } else { - opacity = zephir_get_intval(opacity_param); - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, watermark, "getwidth", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - zephir_sub_function(&_2, &_0, &_1); - tmp = zephir_get_numberval(&_2); - if (offsetX < 0) { - offsetX = 0; - } else if (offsetX > tmp) { - offsetX = tmp; - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, watermark, "getheight", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_3); - zephir_sub_function(&_3, &_0, &_1); - tmp = zephir_get_numberval(&_3); - if (offsetY < 0) { - offsetY = 0; - } else if (offsetY > tmp) { - offsetY = tmp; - } - if (opacity < 0) { - opacity = 0; - } else if (opacity > 100) { - opacity = 100; - } - ZVAL_LONG(&_0, offsetX); - ZVAL_LONG(&_4, offsetY); - ZVAL_LONG(&_5, opacity); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processwatermark", NULL, 0, watermark, &_0, &_4, &_5); - zephir_check_call_status(); - RETURN_THIS(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Image_Adapter_AdapterInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Image\\Adapter, AdapterInterface, phalcon, image_adapter_adapterinterface, phalcon_image_adapter_adapterinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, background); -ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, blur); -ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, crop); -ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, flip); -ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, mask); -ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, pixelate); -ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, reflection); -ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, render); -ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, resize); -ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, rotate); -ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, save); -ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, sharpen); -ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, text); -ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, watermark); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Image_Adapter_Gd) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Image\\Adapter, Gd, phalcon, image_adapter_gd, phalcon_image_adapter_abstractadapter_ce, phalcon_image_adapter_gd_method_entry, 0); - - zend_declare_property_bool(phalcon_image_adapter_gd_ce, SL("checked"), 0, ZEND_ACC_PROTECTED|ZEND_ACC_STATIC); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Image_Adapter_Gd, __construct) -{ - zend_bool _25$$13; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long width, height, ZEPHIR_LAST_CALL_STATUS; - zval *file_param = NULL, *width_param = NULL, *height_param = NULL, __$true, imageinfo, _0, _1, _2$$4, _3$$4, _4$$4, _9$$4, _24$$4, _5$$5, _6$$5, _7$$5, _8$$5, _10$$6, _11$$6, _12$$7, _13$$7, _14$$8, _15$$8, _16$$9, _17$$9, _18$$10, _19$$10, _20$$11, _21$$12, _22$$12, _23$$12, _29$$13, _30$$13, _31$$13, _32$$13, _33$$13, _34$$13, _26$$14, _27$$14, _28$$14; - zval file; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&file); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&imageinfo); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_24$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_10$$6); - ZVAL_UNDEF(&_11$$6); - ZVAL_UNDEF(&_12$$7); - ZVAL_UNDEF(&_13$$7); - ZVAL_UNDEF(&_14$$8); - ZVAL_UNDEF(&_15$$8); - ZVAL_UNDEF(&_16$$9); - ZVAL_UNDEF(&_17$$9); - ZVAL_UNDEF(&_18$$10); - ZVAL_UNDEF(&_19$$10); - ZVAL_UNDEF(&_20$$11); - ZVAL_UNDEF(&_21$$12); - ZVAL_UNDEF(&_22$$12); - ZVAL_UNDEF(&_23$$12); - ZVAL_UNDEF(&_29$$13); - ZVAL_UNDEF(&_30$$13); - ZVAL_UNDEF(&_31$$13); - ZVAL_UNDEF(&_32$$13); - ZVAL_UNDEF(&_33$$13); - ZVAL_UNDEF(&_34$$13); - ZVAL_UNDEF(&_26$$14); - ZVAL_UNDEF(&_27$$14); - ZVAL_UNDEF(&_28$$14); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(file) - Z_PARAM_OPTIONAL - Z_PARAM_LONG_OR_NULL(width, is_null_true) - Z_PARAM_LONG_OR_NULL(height, is_null_true) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &file_param, &width_param, &height_param); - if (UNEXPECTED(Z_TYPE_P(file_param) != IS_STRING && Z_TYPE_P(file_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'file' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(file_param) == IS_STRING)) { - zephir_get_strval(&file, file_param); - } else { - ZEPHIR_INIT_VAR(&file); - } - if (!width_param) { - width = 0; - } else { - width = zephir_get_intval(width_param); - } - if (!height_param) { - height = 0; - } else { - height = zephir_get_intval(height_param); - } - - - zephir_read_static_property_ce(&_0, phalcon_image_adapter_gd_ce, SL("checked"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - ZEPHIR_CALL_SELF(NULL, "check", NULL, 0); - zephir_check_call_status(); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("file"), &file); - zephir_read_property(&_1, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); - if ((zephir_file_exists(&_1) == SUCCESS)) { - zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&_3$$4, "realpath", NULL, 94, &_2$$4); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("realpath"), &_3$$4); - zephir_read_property(&_4$$4, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&imageinfo, "getimagesize", NULL, 363, &_4$$4); - zephir_check_call_status(); - if (zephir_is_true(&imageinfo)) { - zephir_array_fetch_long(&_5$$5, &imageinfo, 0, PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/Gd.zep", 38); - zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_5$$5); - zephir_array_fetch_long(&_6$$5, &imageinfo, 1, PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/Gd.zep", 39); - zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_6$$5); - zephir_array_fetch_long(&_7$$5, &imageinfo, 2, PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/Gd.zep", 40); - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_7$$5); - zephir_array_fetch_string(&_8$$5, &imageinfo, SL("mime"), PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/Gd.zep", 41); - zephir_update_property_zval(this_ptr, ZEND_STRL("mime"), &_8$$5); +vv38: + vvch = *++VVCURSOR; + switch (vvch) { + case '=': goto vv107; + case '>': goto vv109; + default: goto vv39; + } +vv39: + { + token->opcode = PHVOLT_T_LESS; + return 0; } - zephir_read_property(&_9$$4, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); - do { - if (ZEPHIR_IS_LONG(&_9$$4, 1)) { - zephir_read_property(&_10$$6, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&_11$$6, "imagecreatefromgif", NULL, 364, &_10$$6); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &_11$$6); - break; +vv40: + vvch = *++VVCURSOR; + switch (vvch) { + case '=': goto vv111; + default: goto vv41; } - if (ZEPHIR_IS_LONG(&_9$$4, 2)) { - zephir_read_property(&_12$$7, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&_13$$7, "imagecreatefromjpeg", NULL, 365, &_12$$7); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &_13$$7); - break; +vv41: + { + token->opcode = PHVOLT_T_ASSIGN; + return 0; + } +vv42: + vvch = *++VVCURSOR; + switch (vvch) { + case '=': goto vv113; + default: goto vv43; } - if (ZEPHIR_IS_LONG(&_9$$4, 3)) { - zephir_read_property(&_14$$8, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&_15$$8, "imagecreatefrompng", NULL, 366, &_14$$8); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &_15$$8); - break; +vv43: + { + token->opcode = PHVOLT_T_GREATER; + return 0; + } +vv44: + ++VVCURSOR; + { + token->opcode = PHVOLT_T_QUESTION; + return 0; + } +vv46: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv115; + case 'U': + case 'u': goto vv116; + default: goto vv54; } - if (ZEPHIR_IS_LONG(&_9$$4, 15)) { - zephir_read_property(&_16$$9, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&_17$$9, "imagecreatefromwbmp", NULL, 367, &_16$$9); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &_17$$9); - break; +vv47: + { + token->opcode = PHVOLT_T_IDENTIFIER; + token->value = estrndup(start, VVCURSOR - start); + token->len = VVCURSOR - start; + return 0; + } +vv48: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv117; + case 'R': + case 'r': goto vv118; + default: goto vv54; } - if (ZEPHIR_IS_LONG(&_9$$4, 16)) { - zephir_read_property(&_18$$10, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&_19$$10, "imagecreatefromxbm", NULL, 368, &_18$$10); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &_19$$10); - break; +vv49: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv119; + case 'O': + case 'o': goto vv120; + default: goto vv54; } - zephir_read_property(&_20$$11, this_ptr, ZEND_STRL("mime"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_20$$11)) { - ZEPHIR_INIT_VAR(&_21$$12); - object_init_ex(&_21$$12, phalcon_image_exception_ce); - zephir_read_property(&_22$$12, this_ptr, ZEND_STRL("mime"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_23$$12); - ZEPHIR_CONCAT_SVS(&_23$$12, "Installed GD does not support ", &_22$$12, " images"); - ZEPHIR_CALL_METHOD(NULL, &_21$$12, "__construct", NULL, 8, &_23$$12); - zephir_check_call_status(); - zephir_throw_exception_debug(&_21$$12, "phalcon/Image/Adapter/Gd.zep", 69); - ZEPHIR_MM_RESTORE(); - return; +vv50: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv121; + case 'O': + case 'o': goto vv122; + default: goto vv54; } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "Installed GD does not support such images", "phalcon/Image/Adapter/Gd.zep", 74); - return; - } while(0); - - zephir_read_property(&_24$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(NULL, "imagesavealpha", NULL, 369, &_24$$4, &__$true); - zephir_check_call_status(); - } else { - _25$$13 = !width; - if (!(_25$$13)) { - _25$$13 = !height; +vv51: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv124; + case 'M': + case 'm': goto vv125; + case 'N': + case 'n': goto vv126; + case 'V': + case 'v': goto vv127; + case 'X': + case 'x': goto vv128; + default: goto vv54; + } +vv52: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv129; + case 'O': + case 'o': goto vv130; + default: goto vv54; + } +vv53: + vvch = *++VVCURSOR; +vv54: + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv47; + } +vv55: + vvch = *++VVCURSOR; + switch (vvch) { + case 'F': + case 'f': goto vv131; + case 'N': + case 'n': goto vv133; + case 'S': + case 's': goto vv135; + case 'T': + case 't': goto vv137; + default: goto vv54; + } +vv56: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv138; + default: goto vv54; + } +vv57: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv139; + case 'U': + case 'u': goto vv140; + default: goto vv54; + } +vv58: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv141; + case 'R': + case 'r': goto vv142; + default: goto vv54; + } +vv59: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv144; + case 'E': + case 'e': goto vv145; + default: goto vv54; + } +vv60: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv146; + case 'E': + case 'e': goto vv147; + case 'W': + case 'w': goto vv148; + default: goto vv54; + } +vv61: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv149; + default: goto vv54; + } +vv62: + vvch = *++VVCURSOR; + switch (vvch) { + case 'I': + case 'i': goto vv150; + default: goto vv54; + } +vv63: + ++VVCURSOR; + { + token->opcode = PHVOLT_T_SBRACKET_OPEN; + return 0; } - if (UNEXPECTED(_25$$13)) { - ZEPHIR_INIT_VAR(&_26$$14); - object_init_ex(&_26$$14, phalcon_image_exception_ce); - zephir_read_property(&_27$$14, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_28$$14); - ZEPHIR_CONCAT_SV(&_28$$14, "Failed to create image from file ", &_27$$14); - ZEPHIR_CALL_METHOD(NULL, &_26$$14, "__construct", NULL, 8, &_28$$14); - zephir_check_call_status(); - zephir_throw_exception_debug(&_26$$14, "phalcon/Image/Adapter/Gd.zep", 83); - ZEPHIR_MM_RESTORE(); - return; +vv65: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv5; + } +vv66: + ++VVCURSOR; + { + token->opcode = PHVOLT_T_SBRACKET_CLOSE; + return 0; } - ZVAL_LONG(&_29$$13, width); - ZVAL_LONG(&_30$$13, height); - ZEPHIR_CALL_FUNCTION(&_31$$13, "imagecreatetruecolor", NULL, 370, &_29$$13, &_30$$13); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &_31$$13); - zephir_read_property(&_29$$13, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(NULL, "imagealphablending", NULL, 371, &_29$$13, &__$true); - zephir_check_call_status(); - zephir_read_property(&_30$$13, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(NULL, "imagesavealpha", NULL, 369, &_30$$13, &__$true); - zephir_check_call_status(); - zephir_read_property(&_32$$13, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); - zephir_update_property_zval(this_ptr, ZEND_STRL("realpath"), &_32$$13); - ZEPHIR_INIT_ZVAL_NREF(_33$$13); - ZVAL_LONG(&_33$$13, width); - zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_33$$13); - ZEPHIR_INIT_ZVAL_NREF(_33$$13); - ZVAL_LONG(&_33$$13, height); - zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_33$$13); - ZEPHIR_INIT_ZVAL_NREF(_33$$13); - ZVAL_LONG(&_33$$13, 3); - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_33$$13); - ZEPHIR_INIT_VAR(&_34$$13); - ZEPHIR_INIT_NVAR(&_34$$13); - ZVAL_STRING(&_34$$13, "image/png"); - zephir_update_property_zval(this_ptr, ZEND_STRL("mime"), &_34$$13); - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Gd, __destruct) -{ - zval image, _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&image); - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&image, &_0); - if (Z_TYPE_P(&image) == IS_RESOURCE) { - ZEPHIR_CALL_FUNCTION(NULL, "imagedestroy", NULL, 372, &image); - zephir_check_call_status(); - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Gd, check) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval __$true, version, _0, _1, _2, _3, _6, _4$$5, _5$$5; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&version); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_5$$5); - - - ZEPHIR_MM_GROW(); - - zephir_read_static_property_ce(&_0, phalcon_image_adapter_gd_ce, SL("checked"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_0)) { - RETURN_MM_BOOL(1); - } - if (UNEXPECTED(!((zephir_function_exists_ex(ZEND_STRL("gd_info")) == SUCCESS)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "GD is either not installed or not enabled, check your configuration", "phalcon/Image/Adapter/Gd.zep", 121); - return; - } - ZEPHIR_CALL_SELF(&version, "getversion", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "2.0.1"); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, ">="); - ZEPHIR_CALL_FUNCTION(&_3, "version_compare", NULL, 87, &version, &_1, &_2); - zephir_check_call_status(); - if (UNEXPECTED(!zephir_is_true(&_3))) { - ZEPHIR_INIT_VAR(&_4$$5); - object_init_ex(&_4$$5, phalcon_image_exception_ce); - ZEPHIR_INIT_VAR(&_5$$5); - ZEPHIR_CONCAT_SV(&_5$$5, "Phalcon\\Image\\Adapter\\GD requires GD version '2.0.1' or greater, you have ", &version); - ZEPHIR_CALL_METHOD(NULL, &_4$$5, "__construct", NULL, 8, &_5$$5); - zephir_check_call_status(); - zephir_throw_exception_debug(&_4$$5, "phalcon/Image/Adapter/Gd.zep", 129); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_update_static_property_ce(phalcon_image_adapter_gd_ce, ZEND_STRL("checked"), &__$true); - zephir_read_static_property_ce(&_6, phalcon_image_adapter_gd_ce, SL("checked"), PH_NOISY_CC | PH_READONLY); - RETURN_CTOR(&_6); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Gd, getVersion) -{ - zval version, info, matches, _0, _1, _2$$5, _3$$5, _4$$5, _5$$5; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&version); - ZVAL_UNDEF(&info); - ZVAL_UNDEF(&matches); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$5); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_5$$5); - - - ZEPHIR_MM_GROW(); - - if (UNEXPECTED(!((zephir_function_exists_ex(ZEND_STRL("gd_info")) == SUCCESS)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "GD is either not installed or not enabled, check your configuration", "phalcon/Image/Adapter/Gd.zep", 144); - return; - } - ZEPHIR_INIT_VAR(&version); - ZVAL_NULL(&version); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "GD_VERSION"); - ZEPHIR_CALL_FUNCTION(&_1, "defined", NULL, 127, &_0); - zephir_check_call_status(); - if (zephir_is_true(&_1)) { - ZEPHIR_INIT_NVAR(&version); - ZEPHIR_GET_CONSTANT(&version, "GD_VERSION"); - } else { - ZEPHIR_CALL_FUNCTION(&info, "gd_info", NULL, 373); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&matches); - ZVAL_NULL(&matches); - zephir_array_fetch_string(&_2$$5, &info, SL("GD Version"), PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/Gd.zep", 155); - ZEPHIR_INIT_VAR(&_3$$5); - ZVAL_STRING(&_3$$5, "/\\d+\\.\\d+(?:\\.\\d+)?/"); - ZEPHIR_INIT_VAR(&_4$$5); - ZEPHIR_INIT_VAR(&_5$$5); - ZVAL_STRING(&_5$$5, "/\\d+\\.\\d+(?:\\.\\d+)?/"); - zephir_preg_match(&_4$$5, &_5$$5, &_2$$5, &matches, 0, 0 , 0 ); - if (zephir_is_true(&_4$$5)) { - ZEPHIR_OBS_NVAR(&version); - zephir_array_fetch_long(&version, &matches, 0, PH_NOISY, "phalcon/Image/Adapter/Gd.zep", 156); +vv68: + vvch = *++VVCURSOR; + switch (vvch) { + case 'F': + case 'f': goto vv131; + case 'N': + case 'n': goto vv133; + case 'S': goto vv135; + case 'T': + case 't': goto vv137; + case 's': goto vv151; + default: goto vv54; + } +vv69: + vvch = *++VVCURSOR; + switch (vvch) { + case '%': goto vv152; + case '{': goto vv154; + default: goto vv70; + } +vv70: + { + token->opcode = PHVOLT_T_CBRACKET_OPEN; + return 0; } - } - RETURN_CCTOR(&version); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Gd, processBackground) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *r_param = NULL, *g_param = NULL, *b_param = NULL, *opacity_param = NULL, __$true, background, color, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12$$3; - zend_long r, g, b, opacity, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&background); - ZVAL_UNDEF(&color); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_12$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(4, 4) - Z_PARAM_LONG(r) - Z_PARAM_LONG(g) - Z_PARAM_LONG(b) - Z_PARAM_LONG(opacity) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 4, 0, &r_param, &g_param, &b_param, &opacity_param); - r = zephir_get_intval(r_param); - g = zephir_get_intval(g_param); - b = zephir_get_intval(b_param); - opacity = zephir_get_intval(opacity_param); - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_DOUBLE(&_1, ((zephir_safe_div_long_long((opacity * 127), 100)) - (double) (127))); - ZEPHIR_CALL_FUNCTION(&_2, "abs", NULL, 238, &_1); - zephir_check_call_status(); - zephir_round(&_0, &_2, NULL, NULL); - opacity = zephir_get_intval(&_0); - zephir_read_property(&_1, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_3, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&background, this_ptr, "processcreate", NULL, 0, &_1, &_3); - zephir_check_call_status(); - ZVAL_LONG(&_4, r); - ZVAL_LONG(&_5, g); - ZVAL_LONG(&_6, b); - ZVAL_LONG(&_7, opacity); - ZEPHIR_CALL_FUNCTION(&color, "imagecolorallocatealpha", NULL, 374, &background, &_4, &_5, &_6, &_7); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(NULL, "imagealphablending", NULL, 371, &background, &__$true); - zephir_check_call_status(); - zephir_read_property(&_4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_5, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_6, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_7, 0); - ZVAL_LONG(&_8, 0); - ZVAL_LONG(&_9, 0); - ZVAL_LONG(&_10, 0); - ZEPHIR_CALL_FUNCTION(&_11, "imagecopy", NULL, 375, &background, &_4, &_7, &_8, &_9, &_10, &_5, &_6); - zephir_check_call_status(); - if (zephir_is_true(&_11)) { - zephir_read_property(&_12$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(NULL, "imagedestroy", NULL, 372, &_12$$3); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &background); - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Gd, processBlur) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_2 = NULL; - zval *radius_param = NULL, _0$$3, _1$$3; - zend_long radius, ZEPHIR_LAST_CALL_STATUS, i = 0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(radius) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &radius_param); - radius = zephir_get_intval(radius_param); - - - i = 0; - while (1) { - if (!(i < radius)) { - break; +vv71: + ++VVCURSOR; + { + token->opcode = PHVOLT_T_PIPE; + return 0; } - zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_1$$3, 7); - ZEPHIR_CALL_FUNCTION(NULL, "imagefilter", &_2, 376, &_0$$3, &_1$$3); - zephir_check_call_status(); - i++; - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Gd, processCreate) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *width_param = NULL, *height_param = NULL, __$false, __$true, image, _0, _1; - zend_long width, height, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$false, 0); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&image); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_LONG(width) - Z_PARAM_LONG(height) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &width_param, &height_param); - width = zephir_get_intval(width_param); - height = zephir_get_intval(height_param); - - - ZVAL_LONG(&_0, width); - ZVAL_LONG(&_1, height); - ZEPHIR_CALL_FUNCTION(&image, "imagecreatetruecolor", NULL, 370, &_0, &_1); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(NULL, "imagealphablending", NULL, 371, &image, &__$false); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(NULL, "imagesavealpha", NULL, 369, &image, &__$true); - zephir_check_call_status(); - RETURN_CCTOR(&image); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Gd, processCrop) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *width_param = NULL, *height_param = NULL, *offsetX_param = NULL, *offsetY_param = NULL, image, rect, _0, _1, _2, _3, _4; - zend_long width, height, offsetX, offsetY, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&image); - ZVAL_UNDEF(&rect); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(4, 4) - Z_PARAM_LONG(width) - Z_PARAM_LONG(height) - Z_PARAM_LONG(offsetX) - Z_PARAM_LONG(offsetY) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 4, 0, &width_param, &height_param, &offsetX_param, &offsetY_param); - width = zephir_get_intval(width_param); - height = zephir_get_intval(height_param); - offsetX = zephir_get_intval(offsetX_param); - offsetY = zephir_get_intval(offsetY_param); - - - ZEPHIR_INIT_VAR(&rect); - zephir_create_array(&rect, 4, 0); - ZEPHIR_INIT_VAR(&_0); - ZVAL_LONG(&_0, offsetX); - zephir_array_update_string(&rect, SL("x"), &_0, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_LONG(&_0, offsetY); - zephir_array_update_string(&rect, SL("y"), &_0, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_LONG(&_0, width); - zephir_array_update_string(&rect, SL("width"), &_0, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_LONG(&_0, height); - zephir_array_update_string(&rect, SL("height"), &_0, PH_COPY | PH_SEPARATE); - zephir_read_property(&_1, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&image, "imagecrop", NULL, 377, &_1, &rect); - zephir_check_call_status(); - zephir_read_property(&_2, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(NULL, "imagedestroy", NULL, 372, &_2); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &image); - ZEPHIR_CALL_FUNCTION(&_3, "imagesx", NULL, 378, &image); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_3); - ZEPHIR_CALL_FUNCTION(&_4, "imagesy", NULL, 379, &image); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_4); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Gd, processFlip) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *direction_param = NULL, _0$$3, _1$$3, _2$$4, _3$$4; - zend_long direction, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(direction) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &direction_param); - direction = zephir_get_intval(direction_param); - - - if (direction == 11) { - zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_1$$3, 1); - ZEPHIR_CALL_FUNCTION(NULL, "imageflip", NULL, 380, &_0$$3, &_1$$3); - zephir_check_call_status(); - } else { - zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_3$$4, 2); - ZEPHIR_CALL_FUNCTION(NULL, "imageflip", NULL, 380, &_2$$4, &_3$$4); - zephir_check_call_status(); - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Gd, processMask) -{ - zend_bool _9; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_23 = NULL, *_24 = NULL, *_29 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, mask_width = 0, mask_height = 0, x = 0, y = 0, alpha = 0; - zval *mask, mask_sub, __$true, maskImage, newimage, tempImage, color, index, r, g, b, _0, _1, _2, _3, _4, _5, _6, _7, _8, _10$$3, _11$$3, _12$$3, _13$$3, _14$$3, _15$$3, _16$$3, _17$$3, _18$$3, _19$$3, _20$$4, _21$$5, _22$$5, _27$$5, _28$$5, _25$$6, _26$$6; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&mask_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&maskImage); - ZVAL_UNDEF(&newimage); - ZVAL_UNDEF(&tempImage); - ZVAL_UNDEF(&color); - ZVAL_UNDEF(&index); - ZVAL_UNDEF(&r); - ZVAL_UNDEF(&g); - ZVAL_UNDEF(&b); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_10$$3); - ZVAL_UNDEF(&_11$$3); - ZVAL_UNDEF(&_12$$3); - ZVAL_UNDEF(&_13$$3); - ZVAL_UNDEF(&_14$$3); - ZVAL_UNDEF(&_15$$3); - ZVAL_UNDEF(&_16$$3); - ZVAL_UNDEF(&_17$$3); - ZVAL_UNDEF(&_18$$3); - ZVAL_UNDEF(&_19$$3); - ZVAL_UNDEF(&_20$$4); - ZVAL_UNDEF(&_21$$5); - ZVAL_UNDEF(&_22$$5); - ZVAL_UNDEF(&_27$$5); - ZVAL_UNDEF(&_28$$5); - ZVAL_UNDEF(&_25$$6); - ZVAL_UNDEF(&_26$$6); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(mask, phalcon_image_adapter_adapterinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &mask); - - - ZEPHIR_CALL_METHOD(&_0, mask, "render", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&maskImage, "imagecreatefromstring", NULL, 381, &_0); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_1, "imagesx", NULL, 378, &maskImage); - zephir_check_call_status(); - mask_width = zephir_get_intval(&_1); - ZEPHIR_CALL_FUNCTION(&_2, "imagesy", NULL, 379, &maskImage); - zephir_check_call_status(); - mask_height = zephir_get_intval(&_2); - alpha = 127; - ZEPHIR_CALL_FUNCTION(NULL, "imagesavealpha", NULL, 369, &maskImage, &__$true); - zephir_check_call_status(); - zephir_read_property(&_3, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_4, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&newimage, this_ptr, "processcreate", NULL, 0, &_3, &_4); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(NULL, "imagesavealpha", NULL, 369, &newimage, &__$true); - zephir_check_call_status(); - ZVAL_LONG(&_5, 0); - ZVAL_LONG(&_6, 0); - ZVAL_LONG(&_7, 0); - ZVAL_LONG(&_8, alpha); - ZEPHIR_CALL_FUNCTION(&color, "imagecolorallocatealpha", NULL, 374, &newimage, &_5, &_6, &_7, &_8); - zephir_check_call_status(); - ZVAL_LONG(&_5, 0); - ZVAL_LONG(&_6, 0); - ZEPHIR_CALL_FUNCTION(NULL, "imagefill", NULL, 382, &newimage, &_5, &_6, &color); - zephir_check_call_status(); - zephir_read_property(&_5, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - _9 = !ZEPHIR_IS_LONG(&_5, mask_width); - if (!(_9)) { - zephir_read_property(&_6, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - _9 = !ZEPHIR_IS_LONG(&_6, mask_height); - } - if (_9) { - zephir_read_property(&_10$$3, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_11$$3, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&tempImage, "imagecreatetruecolor", NULL, 370, &_10$$3, &_11$$3); - zephir_check_call_status(); - zephir_read_property(&_12$$3, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_13$$3, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_14$$3, 0); - ZVAL_LONG(&_15$$3, 0); - ZVAL_LONG(&_16$$3, 0); - ZVAL_LONG(&_17$$3, 0); - ZVAL_LONG(&_18$$3, mask_width); - ZVAL_LONG(&_19$$3, mask_height); - ZEPHIR_CALL_FUNCTION(NULL, "imagecopyresampled", NULL, 383, &tempImage, &maskImage, &_14$$3, &_15$$3, &_16$$3, &_17$$3, &_12$$3, &_13$$3, &_18$$3, &_19$$3); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(NULL, "imagedestroy", NULL, 372, &maskImage); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&maskImage, &tempImage); - } - x = 0; - while (1) { - zephir_read_property(&_7, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - if (!(ZEPHIR_GT_LONG(&_7, x))) { - break; +vv73: + vvch = *++VVCURSOR; + switch (vvch) { + case '}': goto vv156; + default: goto vv74; + } +vv74: + { + token->opcode = PHVOLT_T_CBRACKET_CLOSE; + return 0; } - y = 0; - while (1) { - zephir_read_property(&_20$$4, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - if (!(ZEPHIR_GT_LONG(&_20$$4, y))) { - break; +vv75: + ++VVCURSOR; + { + token->opcode = PHVOLT_T_CONCAT; + return 0; + } +vv77: + vvch = *++VVCURSOR; + switch (vvch) { + case '=': goto vv158; + default: goto vv78; } - ZVAL_LONG(&_21$$5, x); - ZVAL_LONG(&_22$$5, y); - ZEPHIR_CALL_FUNCTION(&index, "imagecolorat", &_23, 384, &maskImage, &_21$$5, &_22$$5); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&color, "imagecolorsforindex", &_24, 385, &maskImage, &index); - zephir_check_call_status(); - if (zephir_array_isset_string(&color, SL("red"))) { - zephir_array_fetch_string(&_25$$6, &color, SL("red"), PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/Gd.zep", 291); - ZVAL_DOUBLE(&_26$$6, zephir_safe_div_zval_long(&_25$$6, 2)); - alpha = (127 - zephir_get_intval(&_26$$6)); +vv78: + { + token->opcode = PHVOLT_T_NOTEQUALS; + return 0; + } +vv79: + vvch = *++VVCURSOR; +vv80: + switch (vvch) { + case 0x00: goto vv81; + case '"': goto vv82; + case '\\': goto vv84; + default: goto vv79; } - zephir_read_property(&_21$$5, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_22$$5, x); - ZVAL_LONG(&_27$$5, y); - ZEPHIR_CALL_FUNCTION(&index, "imagecolorat", &_23, 384, &_21$$5, &_22$$5, &_27$$5); - zephir_check_call_status(); - zephir_read_property(&_22$$5, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&color, "imagecolorsforindex", &_24, 385, &_22$$5, &index); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&r); - zephir_array_fetch_string(&r, &color, SL("red"), PH_NOISY, "phalcon/Image/Adapter/Gd.zep", 296); - ZEPHIR_OBS_NVAR(&g); - zephir_array_fetch_string(&g, &color, SL("green"), PH_NOISY, "phalcon/Image/Adapter/Gd.zep", 297); - ZEPHIR_OBS_NVAR(&b); - zephir_array_fetch_string(&b, &color, SL("blue"), PH_NOISY, "phalcon/Image/Adapter/Gd.zep", 298); - ZVAL_LONG(&_27$$5, alpha); - ZEPHIR_CALL_FUNCTION(&color, "imagecolorallocatealpha", NULL, 374, &newimage, &r, &g, &b, &_27$$5); - zephir_check_call_status(); - ZVAL_LONG(&_27$$5, x); - ZVAL_LONG(&_28$$5, y); - ZEPHIR_CALL_FUNCTION(NULL, "imagesetpixel", &_29, 386, &newimage, &_27$$5, &_28$$5, &color); - zephir_check_call_status(); - y++; +vv81: + VVCURSOR = VVMARKER; + switch (vvaccept) { + case 0: goto vv5; + case 1: goto vv28; + case 2: goto vv35; + default: goto vv136; + } +vv82: + ++VVCURSOR; + { + start++; + token->opcode = PHVOLT_T_STRING; + token->value = estrndup(start, VVCURSOR - start - 1); + token->len = VVCURSOR - start - 1; + return 0; } - x++; - } - zephir_read_property(&_8, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(NULL, "imagedestroy", NULL, 372, &_8); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(NULL, "imagedestroy", NULL, 372, &maskImage); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &newimage); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Gd, processPixelate) -{ - zend_bool _3$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_8 = NULL, *_12 = NULL; - zval *amount_param = NULL, color, _0, _1$$3, _2$$4, _4$$4, _5$$4, _6$$4, _7$$4, _9$$4, _10$$4, _11$$4; - zend_long amount, ZEPHIR_LAST_CALL_STATUS, x = 0, y = 0, x1 = 0, y1 = 0, x2 = 0, y2 = 0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&color); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_10$$4); - ZVAL_UNDEF(&_11$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(amount) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &amount_param); - amount = zephir_get_intval(amount_param); - - - x = 0; - while (1) { - zephir_read_property(&_0, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - if (!(ZEPHIR_GT_LONG(&_0, x))) { - break; +vv84: + vvch = *++VVCURSOR; + switch (vvch) { + case '\n': goto vv81; + default: goto vv79; + } +vv85: + ++VVCURSOR; + { + s->mode = PHVOLT_MODE_RAW; + token->opcode = PHVOLT_T_CLOSE_DELIMITER; + return 0; } - y = 0; - while (1) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - if (!(ZEPHIR_GT_LONG(&_1$$3, y))) { - break; +vv87: + vvch = *++VVCURSOR; +vv88: + switch (vvch) { + case 0x00: goto vv81; + case '\'': goto vv82; + case '\\': goto vv89; + default: goto vv87; } - x1 = (x + zephir_safe_div_long_long(amount, 2)); - y1 = (y + zephir_safe_div_long_long(amount, 2)); - zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - _3$$4 = ZEPHIR_LE_LONG(&_2$$4, x1); - if (!(_3$$4)) { - zephir_read_property(&_4$$4, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - _3$$4 = ZEPHIR_LE_LONG(&_4$$4, y1); +vv89: + vvch = *++VVCURSOR; + switch (vvch) { + case '\n': goto vv81; + default: goto vv87; } - if (_3$$4) { - break; +vv90: + ++VVCURSOR; + { + token->opcode = PHVOLT_T_MUL_ASSIGN; + return 0; + } +vv92: + ++VVCURSOR; + { + token->opcode = PHVOLT_T_INCR; + return 0; + } +vv94: + ++VVCURSOR; + { + token->opcode = PHVOLT_T_ADD_ASSIGN; + return 0; + } +vv96: + vvch = *++VVCURSOR; + switch (vvch) { + case '}': goto vv160; + default: goto vv81; } - zephir_read_property(&_5$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_6$$4, x1); - ZVAL_LONG(&_7$$4, y1); - ZEPHIR_CALL_FUNCTION(&color, "imagecolorat", &_8, 384, &_5$$4, &_6$$4, &_7$$4); - zephir_check_call_status(); - x2 = (x + amount); - y2 = (y + amount); - zephir_read_property(&_6$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_7$$4, x); - ZVAL_LONG(&_9$$4, y); - ZVAL_LONG(&_10$$4, x2); - ZVAL_LONG(&_11$$4, y2); - ZEPHIR_CALL_FUNCTION(NULL, "imagefilledrectangle", &_12, 387, &_6$$4, &_7$$4, &_9$$4, &_10$$4, &_11$$4, &color); - zephir_check_call_status(); - y += amount; +vv97: + ++VVCURSOR; + { + token->opcode = PHVOLT_T_DECR; + return 0; } - x += amount; - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Gd, processReflection) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_25 = NULL; - zend_bool fadeIn; - zval *height_param = NULL, *opacity_param = NULL, *fadeIn_param = NULL, reflection, line, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _27, _28, _11$$5, _12$$5, _17$$5, _18$$5, _19$$5, _20$$5, _21$$5, _22$$5, _23$$5, _24$$5, _26$$5, _13$$6, _14$$6, _15$$7, _16$$7; - zend_long height, opacity, ZEPHIR_LAST_CALL_STATUS, stepping = 0, offset = 0, src_y = 0, dst_y = 0, dst_opacity = 0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&reflection); - ZVAL_UNDEF(&line); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_27); - ZVAL_UNDEF(&_28); - ZVAL_UNDEF(&_11$$5); - ZVAL_UNDEF(&_12$$5); - ZVAL_UNDEF(&_17$$5); - ZVAL_UNDEF(&_18$$5); - ZVAL_UNDEF(&_19$$5); - ZVAL_UNDEF(&_20$$5); - ZVAL_UNDEF(&_21$$5); - ZVAL_UNDEF(&_22$$5); - ZVAL_UNDEF(&_23$$5); - ZVAL_UNDEF(&_24$$5); - ZVAL_UNDEF(&_26$$5); - ZVAL_UNDEF(&_13$$6); - ZVAL_UNDEF(&_14$$6); - ZVAL_UNDEF(&_15$$7); - ZVAL_UNDEF(&_16$$7); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_LONG(height) - Z_PARAM_LONG(opacity) - Z_PARAM_BOOL(fadeIn) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &height_param, &opacity_param, &fadeIn_param); - height = zephir_get_intval(height_param); - opacity = zephir_get_intval(opacity_param); - fadeIn = zephir_get_boolval(fadeIn_param); - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_DOUBLE(&_1, ((zephir_safe_div_long_long((opacity * 127), 100)) - (double) (127))); - ZEPHIR_CALL_FUNCTION(&_2, "abs", NULL, 238, &_1); - zephir_check_call_status(); - zephir_round(&_0, &_2, NULL, NULL); - opacity = zephir_get_intval(&_0); - if (opacity < 127) { - stepping = (long) (zephir_safe_div_long_long(((127 - opacity)), height)); - } else { - stepping = (long) (zephir_safe_div_long_long(127, height)); - } - zephir_read_property(&_1, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_3, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_4, (zephir_get_numberval(&_3) + height)); - ZEPHIR_CALL_METHOD(&reflection, this_ptr, "processcreate", NULL, 0, &_1, &_4); - zephir_check_call_status(); - zephir_read_property(&_4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_5, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_6, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_7, 0); - ZVAL_LONG(&_8, 0); - ZVAL_LONG(&_9, 0); - ZVAL_LONG(&_10, 0); - ZEPHIR_CALL_FUNCTION(NULL, "imagecopy", NULL, 375, &reflection, &_4, &_7, &_8, &_9, &_10, &_5, &_6); - zephir_check_call_status(); - offset = 0; - while (1) { - if (!(height >= offset)) { - break; +vv99: + ++VVCURSOR; + { + token->opcode = PHVOLT_T_SUB_ASSIGN; + return 0; } - zephir_read_property(&_11$$5, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - src_y = ((zephir_get_numberval(&_11$$5) - offset) - 1); - zephir_read_property(&_12$$5, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - dst_y = (zephir_get_numberval(&_12$$5) + offset); - if (fadeIn) { - ZEPHIR_INIT_NVAR(&_13$$6); - ZVAL_LONG(&_14$$6, (opacity + ((stepping * ((height - offset)))))); - zephir_round(&_13$$6, &_14$$6, NULL, NULL); - dst_opacity = zephir_get_intval(&_13$$6); - } else { - ZEPHIR_INIT_NVAR(&_15$$7); - ZVAL_LONG(&_16$$7, (opacity + ((stepping * offset)))); - zephir_round(&_15$$7, &_16$$7, NULL, NULL); - dst_opacity = zephir_get_intval(&_15$$7); +vv101: + vvch = *++VVCURSOR; + switch (vvch) { + case '}': goto vv162; + default: goto vv81; + } +vv102: + ++VVCURSOR; + { + token->opcode = PHVOLT_T_RANGE; + return 0; } - zephir_read_property(&_17$$5, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_18$$5, 1); - ZEPHIR_CALL_METHOD(&line, this_ptr, "processcreate", NULL, 0, &_17$$5, &_18$$5); - zephir_check_call_status(); - zephir_read_property(&_18$$5, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_19$$5, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_20$$5, 0); - ZVAL_LONG(&_21$$5, 0); - ZVAL_LONG(&_22$$5, 0); - ZVAL_LONG(&_23$$5, src_y); - ZVAL_LONG(&_24$$5, 1); - ZEPHIR_CALL_FUNCTION(NULL, "imagecopy", NULL, 375, &line, &_18$$5, &_20$$5, &_21$$5, &_22$$5, &_23$$5, &_19$$5, &_24$$5); - zephir_check_call_status(); - ZVAL_LONG(&_20$$5, 4); - ZVAL_LONG(&_21$$5, 0); - ZVAL_LONG(&_22$$5, 0); - ZVAL_LONG(&_23$$5, 0); - ZVAL_LONG(&_24$$5, dst_opacity); - ZEPHIR_CALL_FUNCTION(NULL, "imagefilter", &_25, 376, &line, &_20$$5, &_21$$5, &_22$$5, &_23$$5, &_24$$5); - zephir_check_call_status(); - zephir_read_property(&_20$$5, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_21$$5, 0); - ZVAL_LONG(&_22$$5, dst_y); - ZVAL_LONG(&_23$$5, 0); - ZVAL_LONG(&_24$$5, 0); - ZVAL_LONG(&_26$$5, 1); - ZEPHIR_CALL_FUNCTION(NULL, "imagecopy", NULL, 375, &reflection, &line, &_21$$5, &_22$$5, &_23$$5, &_24$$5, &_20$$5, &_26$$5); - zephir_check_call_status(); - offset++; - } - zephir_read_property(&_7, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(NULL, "imagedestroy", NULL, 372, &_7); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &reflection); - ZEPHIR_CALL_FUNCTION(&_27, "imagesx", NULL, 378, &reflection); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_27); - ZEPHIR_CALL_FUNCTION(&_28, "imagesy", NULL, 379, &reflection); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_28); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Gd, processRender) -{ - zend_bool _4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long quality, ZEPHIR_LAST_CALL_STATUS; - zval *ext_param = NULL, *quality_param = NULL, __$null, _0, _1, _2, _3, _5, _6, _7, _8, _9$$3, _10$$4, _11$$4, _12$$5, _13$$6, _14$$7, _15$$8; - zval ext, _16$$8; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&ext); - ZVAL_UNDEF(&_16$$8); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9$$3); - ZVAL_UNDEF(&_10$$4); - ZVAL_UNDEF(&_11$$4); - ZVAL_UNDEF(&_12$$5); - ZVAL_UNDEF(&_13$$6); - ZVAL_UNDEF(&_14$$7); - ZVAL_UNDEF(&_15$$8); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(ext) - Z_PARAM_LONG(quality) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &ext_param, &quality_param); - zephir_get_strval(&ext, ext_param); - quality = zephir_get_intval(quality_param); - - - ZEPHIR_INIT_VAR(&_0); - zephir_fast_strtolower(&_0, &ext); - zephir_get_strval(&ext, &_0); - ZEPHIR_CALL_FUNCTION(NULL, "ob_start", NULL, 388); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "gif"); - ZEPHIR_CALL_FUNCTION(&_2, "strcmp", NULL, 389, &ext, &_1); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "jpg"); - ZEPHIR_CALL_FUNCTION(&_3, "strcmp", NULL, 389, &ext, &_1); - zephir_check_call_status(); - _4 = ZEPHIR_IS_LONG(&_3, 0); - if (!(_4)) { - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "jpeg"); - ZEPHIR_CALL_FUNCTION(&_5, "strcmp", NULL, 389, &ext, &_1); - zephir_check_call_status(); - _4 = ZEPHIR_IS_LONG(&_5, 0); - } - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "png"); - ZEPHIR_CALL_FUNCTION(&_6, "strcmp", NULL, 389, &ext, &_1); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "wbmp"); - ZEPHIR_CALL_FUNCTION(&_7, "strcmp", NULL, 389, &ext, &_1); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "xbm"); - ZEPHIR_CALL_FUNCTION(&_8, "strcmp", NULL, 389, &ext, &_1); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&_2, 0)) { - zephir_read_property(&_9$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(NULL, "imagegif", NULL, 390, &_9$$3); - zephir_check_call_status(); - } else if (_4) { - zephir_read_property(&_10$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_11$$4, quality); - ZEPHIR_CALL_FUNCTION(NULL, "imagejpeg", NULL, 391, &_10$$4, &__$null, &_11$$4); - zephir_check_call_status(); - } else if (ZEPHIR_IS_LONG(&_6, 0)) { - zephir_read_property(&_12$$5, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(NULL, "imagepng", NULL, 392, &_12$$5); - zephir_check_call_status(); - } else if (ZEPHIR_IS_LONG(&_7, 0)) { - zephir_read_property(&_13$$6, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(NULL, "imagewbmp", NULL, 393, &_13$$6); - zephir_check_call_status(); - } else if (ZEPHIR_IS_LONG(&_8, 0)) { - zephir_read_property(&_14$$7, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(NULL, "imagexbm", NULL, 394, &_14$$7, &__$null); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_VAR(&_15$$8); - object_init_ex(&_15$$8, phalcon_image_exception_ce); - ZEPHIR_INIT_VAR(&_16$$8); - ZEPHIR_CONCAT_SVS(&_16$$8, "Installed GD does not support '", &ext, "' images"); - ZEPHIR_CALL_METHOD(NULL, &_15$$8, "__construct", NULL, 8, &_16$$8); - zephir_check_call_status(); - zephir_throw_exception_debug(&_15$$8, "phalcon/Image/Adapter/Gd.zep", 454); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_RETURN_CALL_FUNCTION("ob_get_clean", NULL, 395); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Gd, processResize) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *width_param = NULL, *height_param = NULL, image, _0, _1, _2, _3, _4; - zend_long width, height, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&image); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_LONG(width) - Z_PARAM_LONG(height) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &width_param, &height_param); - width = zephir_get_intval(width_param); - height = zephir_get_intval(height_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_1, width); - ZVAL_LONG(&_2, height); - ZEPHIR_CALL_FUNCTION(&image, "imagescale", NULL, 396, &_0, &_1, &_2); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(NULL, "imagedestroy", NULL, 372, &_1); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &image); - ZEPHIR_CALL_FUNCTION(&_3, "imagesx", NULL, 378, &image); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_3); - ZEPHIR_CALL_FUNCTION(&_4, "imagesy", NULL, 379, &image); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_4); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Gd, processRotate) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *degrees_param = NULL, __$true, image, transparent, width, height, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9$$3; - zend_long degrees, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&image); - ZVAL_UNDEF(&transparent); - ZVAL_UNDEF(&width); - ZVAL_UNDEF(&height); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(degrees) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, °rees_param); - degrees = zephir_get_intval(degrees_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_1, 0); - ZVAL_LONG(&_2, 0); - ZVAL_LONG(&_3, 0); - ZVAL_LONG(&_4, 127); - ZEPHIR_CALL_FUNCTION(&transparent, "imagecolorallocatealpha", NULL, 374, &_0, &_1, &_2, &_3, &_4); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_2, (360 - degrees)); - ZVAL_LONG(&_3, 1); - ZEPHIR_CALL_FUNCTION(&image, "imagerotate", NULL, 397, &_1, &_2, &transparent, &_3); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(NULL, "imagesavealpha", NULL, 369, &image, &__$true); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&width, "imagesx", NULL, 378, &image); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&height, "imagesy", NULL, 379, &image); - zephir_check_call_status(); - zephir_read_property(&_2, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_3, 0); - ZVAL_LONG(&_4, 0); - ZVAL_LONG(&_5, 0); - ZVAL_LONG(&_6, 0); - ZVAL_LONG(&_7, 100); - ZEPHIR_CALL_FUNCTION(&_8, "imagecopymerge", NULL, 398, &_2, &image, &_3, &_4, &_5, &_6, &width, &height, &_7); - zephir_check_call_status(); - if (zephir_is_true(&_8)) { - zephir_read_property(&_9$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(NULL, "imagedestroy", NULL, 372, &_9$$3); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &image); - zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &width); - zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &height); - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Gd, processSave) -{ - zend_bool _8; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long quality, ZEPHIR_LAST_CALL_STATUS; - zval *file_param = NULL, *quality_param = NULL, __$false, ext, _0, _2, _3, _7, _9, _15, _19, _23, _27, _1$$3, _4$$4, _5$$4, _6$$4, _10$$5, _11$$5, _12$$6, _13$$6, _14$$9, _16$$10, _17$$10, _18$$10, _20$$11, _21$$11, _22$$11, _24$$12, _25$$12, _26$$12; - zval file; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&file); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&ext); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_15); - ZVAL_UNDEF(&_19); - ZVAL_UNDEF(&_23); - ZVAL_UNDEF(&_27); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_10$$5); - ZVAL_UNDEF(&_11$$5); - ZVAL_UNDEF(&_12$$6); - ZVAL_UNDEF(&_13$$6); - ZVAL_UNDEF(&_14$$9); - ZVAL_UNDEF(&_16$$10); - ZVAL_UNDEF(&_17$$10); - ZVAL_UNDEF(&_18$$10); - ZVAL_UNDEF(&_20$$11); - ZVAL_UNDEF(&_21$$11); - ZVAL_UNDEF(&_22$$11); - ZVAL_UNDEF(&_24$$12); - ZVAL_UNDEF(&_25$$12); - ZVAL_UNDEF(&_26$$12); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(file) - Z_PARAM_LONG(quality) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &file_param, &quality_param); - zephir_get_strval(&file, file_param); - quality = zephir_get_intval(quality_param); - - - ZVAL_LONG(&_0, 4); - ZEPHIR_CALL_FUNCTION(&ext, "pathinfo", NULL, 109, &file, &_0); - zephir_check_call_status(); - if (!(zephir_is_true(&ext))) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&ext, "image_type_to_extension", NULL, 399, &_1$$3, &__$false); - zephir_check_call_status(); - } - ZEPHIR_INIT_VAR(&_2); - zephir_fast_strtolower(&_2, &ext); - ZEPHIR_CPY_WRT(&ext, &_2); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "gif"); - ZEPHIR_CALL_FUNCTION(&_3, "strcmp", NULL, 389, &ext, &_2); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&_3, 0)) { - ZEPHIR_INIT_ZVAL_NREF(_4$$4); - ZVAL_LONG(&_4$$4, 1); - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_4$$4); - zephir_read_property(&_4$$4, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&_5$$4, "image_type_to_mime_type", NULL, 400, &_4$$4); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("mime"), &_5$$4); - zephir_read_property(&_6$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(NULL, "imagegif", NULL, 390, &_6$$4, &file); - zephir_check_call_status(); - RETURN_MM_BOOL(1); - } - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "jpg"); - ZEPHIR_CALL_FUNCTION(&_7, "strcmp", NULL, 389, &ext, &_2); - zephir_check_call_status(); - _8 = ZEPHIR_IS_LONG(&_7, 0); - if (!(_8)) { - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "jpeg"); - ZEPHIR_CALL_FUNCTION(&_9, "strcmp", NULL, 389, &ext, &_2); - zephir_check_call_status(); - _8 = ZEPHIR_IS_LONG(&_9, 0); - } - if (_8) { - ZEPHIR_INIT_ZVAL_NREF(_10$$5); - ZVAL_LONG(&_10$$5, 2); - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_10$$5); - zephir_read_property(&_10$$5, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&_11$$5, "image_type_to_mime_type", NULL, 400, &_10$$5); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("mime"), &_11$$5); - if (quality >= 0) { - if (quality < 1) { - quality = 1; - } else if (quality > 100) { - quality = 100; +vv104: + ++VVCURSOR; + { + token->opcode = PHVOLT_T_DIV_ASSIGN; + return 0; + } +vv106: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto vv164; + default: goto vv81; } - zephir_read_property(&_12$$6, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_13$$6, quality); - ZEPHIR_CALL_FUNCTION(NULL, "imagejpeg", NULL, 391, &_12$$6, &file, &_13$$6); - zephir_check_call_status(); - } else { - zephir_read_property(&_14$$9, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(NULL, "imagejpeg", NULL, 391, &_14$$9, &file); - zephir_check_call_status(); +vv107: + ++VVCURSOR; + { + token->opcode = PHVOLT_T_LESSEQUAL; + return 0; } - RETURN_MM_BOOL(1); - } - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "png"); - ZEPHIR_CALL_FUNCTION(&_15, "strcmp", NULL, 389, &ext, &_2); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&_15, 0)) { - ZEPHIR_INIT_ZVAL_NREF(_16$$10); - ZVAL_LONG(&_16$$10, 3); - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_16$$10); - zephir_read_property(&_16$$10, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&_17$$10, "image_type_to_mime_type", NULL, 400, &_16$$10); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("mime"), &_17$$10); - zephir_read_property(&_18$$10, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(NULL, "imagepng", NULL, 392, &_18$$10, &file); - zephir_check_call_status(); - RETURN_MM_BOOL(1); - } - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "wbmp"); - ZEPHIR_CALL_FUNCTION(&_19, "strcmp", NULL, 389, &ext, &_2); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&_19, 0)) { - ZEPHIR_INIT_ZVAL_NREF(_20$$11); - ZVAL_LONG(&_20$$11, 15); - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_20$$11); - zephir_read_property(&_20$$11, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&_21$$11, "image_type_to_mime_type", NULL, 400, &_20$$11); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("mime"), &_21$$11); - zephir_read_property(&_22$$11, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(NULL, "imagewbmp", NULL, 393, &_22$$11, &file); - zephir_check_call_status(); - RETURN_MM_BOOL(1); - } - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "xbm"); - ZEPHIR_CALL_FUNCTION(&_23, "strcmp", NULL, 389, &ext, &_2); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&_23, 0)) { - ZEPHIR_INIT_ZVAL_NREF(_24$$12); - ZVAL_LONG(&_24$$12, 16); - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_24$$12); - zephir_read_property(&_24$$12, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&_25$$12, "image_type_to_mime_type", NULL, 400, &_24$$12); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("mime"), &_25$$12); - zephir_read_property(&_26$$12, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(NULL, "imagexbm", NULL, 394, &_26$$12, &file); - zephir_check_call_status(); - RETURN_MM_BOOL(1); - } - ZEPHIR_INIT_NVAR(&_2); - object_init_ex(&_2, phalcon_image_exception_ce); - ZEPHIR_INIT_VAR(&_27); - ZEPHIR_CONCAT_SVS(&_27, "Installed GD does not support '", &ext, "' images"); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 8, &_27); - zephir_check_call_status(); - zephir_throw_exception_debug(&_2, "phalcon/Image/Adapter/Gd.zep", 576); - ZEPHIR_MM_RESTORE(); - return; -} - -static PHP_METHOD(Phalcon_Image_Adapter_Gd, processSharpen) -{ - zval _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *amount_param = NULL, matrix, _0, _1, _2, _4, _5, _6, _7, _8, _9$$3, _10$$3, _11$$3, _12$$3; - zend_long amount, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&matrix); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9$$3); - ZVAL_UNDEF(&_10$$3); - ZVAL_UNDEF(&_11$$3); - ZVAL_UNDEF(&_12$$3); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(amount) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &amount_param); - amount = zephir_get_intval(amount_param); - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_LONG(&_1, (-18 + ((amount * 0.08)))); - ZEPHIR_CALL_FUNCTION(&_2, "abs", NULL, 238, &_1); - zephir_check_call_status(); - ZVAL_LONG(&_1, 2); - zephir_round(&_0, &_2, &_1, NULL); - amount = zephir_get_intval(&_0); - ZEPHIR_INIT_VAR(&matrix); - zephir_create_array(&matrix, 3, 0); - ZEPHIR_INIT_VAR(&_3); - zephir_create_array(&_3, 3, 0); - ZEPHIR_INIT_VAR(&_4); - ZVAL_LONG(&_4, -1); - zephir_array_fast_append(&_3, &_4); - ZEPHIR_INIT_NVAR(&_4); - ZVAL_LONG(&_4, -1); - zephir_array_fast_append(&_3, &_4); - ZEPHIR_INIT_NVAR(&_4); - ZVAL_LONG(&_4, -1); - zephir_array_fast_append(&_3, &_4); - zephir_array_fast_append(&matrix, &_3); - ZEPHIR_INIT_NVAR(&_3); - zephir_create_array(&_3, 3, 0); - ZEPHIR_INIT_NVAR(&_4); - ZVAL_LONG(&_4, -1); - zephir_array_fast_append(&_3, &_4); - ZEPHIR_INIT_NVAR(&_4); - ZVAL_LONG(&_4, amount); - zephir_array_fast_append(&_3, &_4); - ZEPHIR_INIT_NVAR(&_4); - ZVAL_LONG(&_4, -1); - zephir_array_fast_append(&_3, &_4); - zephir_array_fast_append(&matrix, &_3); - ZEPHIR_INIT_NVAR(&_3); - zephir_create_array(&_3, 3, 0); - ZEPHIR_INIT_NVAR(&_4); - ZVAL_LONG(&_4, -1); - zephir_array_fast_append(&_3, &_4); - ZEPHIR_INIT_NVAR(&_4); - ZVAL_LONG(&_4, -1); - zephir_array_fast_append(&_3, &_4); - ZEPHIR_INIT_NVAR(&_4); - ZVAL_LONG(&_4, -1); - zephir_array_fast_append(&_3, &_4); - zephir_array_fast_append(&matrix, &_3); - zephir_read_property(&_5, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_6, (amount - 8)); - ZVAL_LONG(&_7, 0); - ZEPHIR_CALL_FUNCTION(&_8, "imageconvolution", NULL, 401, &_5, &matrix, &_6, &_7); - zephir_check_call_status(); - if (zephir_is_true(&_8)) { - zephir_read_property(&_9$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&_10$$3, "imagesx", NULL, 378, &_9$$3); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_10$$3); - zephir_read_property(&_11$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&_12$$3, "imagesy", NULL, 379, &_11$$3); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_12$$3); - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Gd, processText) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long offsetX, offsetY, opacity, r, g, b, size, ZEPHIR_LAST_CALL_STATUS, angle = 0, bottomLeftX, bottomLeftY, topRightX, topRightY, width = 0, height = 0; - zval *text_param = NULL, *offsetX_param = NULL, *offsetY_param = NULL, *opacity_param = NULL, *r_param = NULL, *g_param = NULL, *b_param = NULL, *size_param = NULL, *fontfile_param = NULL, space, color, _0, _1, _2, _3$$3, _4$$3, _9$$3, _10$$3, _13$$3, _14$$3, _15$$3, _16$$3, _5$$5, _6$$5, _7$$5, _8$$5, _11$$6, _12$$7, _17$$8, _18$$8, _19$$8, _22$$8, _23$$8, _24$$8, _25$$8, _20$$9, _21$$10; - zval text, fontfile; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&fontfile); - ZVAL_UNDEF(&space); - ZVAL_UNDEF(&color); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_9$$3); - ZVAL_UNDEF(&_10$$3); - ZVAL_UNDEF(&_13$$3); - ZVAL_UNDEF(&_14$$3); - ZVAL_UNDEF(&_15$$3); - ZVAL_UNDEF(&_16$$3); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_11$$6); - ZVAL_UNDEF(&_12$$7); - ZVAL_UNDEF(&_17$$8); - ZVAL_UNDEF(&_18$$8); - ZVAL_UNDEF(&_19$$8); - ZVAL_UNDEF(&_22$$8); - ZVAL_UNDEF(&_23$$8); - ZVAL_UNDEF(&_24$$8); - ZVAL_UNDEF(&_25$$8); - ZVAL_UNDEF(&_20$$9); - ZVAL_UNDEF(&_21$$10); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(9, 9) - Z_PARAM_STR(text) - Z_PARAM_LONG(offsetX) - Z_PARAM_LONG(offsetY) - Z_PARAM_LONG(opacity) - Z_PARAM_LONG(r) - Z_PARAM_LONG(g) - Z_PARAM_LONG(b) - Z_PARAM_LONG(size) - Z_PARAM_STR(fontfile) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 9, 0, &text_param, &offsetX_param, &offsetY_param, &opacity_param, &r_param, &g_param, &b_param, &size_param, &fontfile_param); - zephir_get_strval(&text, text_param); - offsetX = zephir_get_intval(offsetX_param); - offsetY = zephir_get_intval(offsetY_param); - opacity = zephir_get_intval(opacity_param); - r = zephir_get_intval(r_param); - g = zephir_get_intval(g_param); - b = zephir_get_intval(b_param); - size = zephir_get_intval(size_param); - zephir_get_strval(&fontfile, fontfile_param); - - - bottomLeftX = 0; - bottomLeftY = 0; - topRightX = 0; - topRightY = 0; - ZEPHIR_INIT_VAR(&_0); - ZVAL_DOUBLE(&_1, ((zephir_safe_div_long_long((opacity * 127), 100)) - (double) (127))); - ZEPHIR_CALL_FUNCTION(&_2, "abs", NULL, 238, &_1); - zephir_check_call_status(); - zephir_round(&_0, &_2, NULL, NULL); - opacity = zephir_get_intval(&_0); - if (!(ZEPHIR_IS_EMPTY(&fontfile))) { - ZVAL_LONG(&_3$$3, size); - ZVAL_LONG(&_4$$3, 0); - ZEPHIR_CALL_FUNCTION(&space, "imagettfbbox", NULL, 402, &_3$$3, &_4$$3, &fontfile, &text); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&space)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "Call to imagettfbbox() failed", "phalcon/Image/Adapter/Gd.zep", 618); - return; +vv109: + ++VVCURSOR; + { + token->opcode = PHVOLT_T_NOTEQUALS; + return 0; } - if (zephir_array_isset_long(&space, 0)) { - ZEPHIR_OBS_VAR(&_5$$5); - zephir_array_fetch_long(&_5$$5, &space, 0, PH_NOISY, "phalcon/Image/Adapter/Gd.zep", 622); - bottomLeftX = zephir_get_intval(&_5$$5); - ZEPHIR_OBS_VAR(&_6$$5); - zephir_array_fetch_long(&_6$$5, &space, 1, PH_NOISY, "phalcon/Image/Adapter/Gd.zep", 623); - bottomLeftY = zephir_get_intval(&_6$$5); - ZEPHIR_OBS_VAR(&_7$$5); - zephir_array_fetch_long(&_7$$5, &space, 4, PH_NOISY, "phalcon/Image/Adapter/Gd.zep", 624); - topRightX = zephir_get_intval(&_7$$5); - ZEPHIR_OBS_VAR(&_8$$5); - zephir_array_fetch_long(&_8$$5, &space, 5, PH_NOISY, "phalcon/Image/Adapter/Gd.zep", 625); - topRightY = zephir_get_intval(&_8$$5); +vv111: + vvch = *++VVCURSOR; + switch (vvch) { + case '=': goto vv167; + default: goto vv112; + } +vv112: + { + token->opcode = PHVOLT_T_EQUALS; + return 0; } - ZVAL_LONG(&_3$$3, (topRightX - bottomLeftX)); - ZEPHIR_CALL_FUNCTION(&_9$$3, "abs", NULL, 238, &_3$$3); - zephir_check_call_status(); - width = (zephir_get_numberval(&_9$$3) + 10); - ZVAL_LONG(&_3$$3, (topRightY - bottomLeftY)); - ZEPHIR_CALL_FUNCTION(&_10$$3, "abs", NULL, 238, &_3$$3); - zephir_check_call_status(); - height = (zephir_get_numberval(&_10$$3) + 10); - if (offsetX < 0) { - zephir_read_property(&_11$$6, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - offsetX = ((zephir_get_numberval(&_11$$6) - width) + offsetX); +vv113: + ++VVCURSOR; + { + token->opcode = PHVOLT_T_GREATEREQUAL; + return 0; } - if (offsetY < 0) { - zephir_read_property(&_12$$7, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - offsetY = ((zephir_get_numberval(&_12$$7) - height) + offsetY); +vv115: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv169; + default: goto vv54; + } +vv116: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv171; + default: goto vv54; + } +vv117: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv172; + default: goto vv54; + } +vv118: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv173; + default: goto vv54; + } +vv119: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv174; + case 'L': + case 'l': goto vv175; + case 'S': + case 's': goto vv176; + default: goto vv54; + } +vv120: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv177; + default: goto vv54; + } +vv121: + vvch = *++VVCURSOR; + switch (vvch) { + case 'F': + case 'f': goto vv178; + default: goto vv54; + } +vv122: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv123; + } +vv123: + { + s->statement_position++; + token->opcode = PHVOLT_T_DO; + return 0; } - zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_4$$3, r); - ZVAL_LONG(&_13$$3, g); - ZVAL_LONG(&_14$$3, b); - ZVAL_LONG(&_15$$3, opacity); - ZEPHIR_CALL_FUNCTION(&color, "imagecolorallocatealpha", NULL, 374, &_3$$3, &_4$$3, &_13$$3, &_14$$3, &_15$$3); - zephir_check_call_status(); - angle = 0; - zephir_read_property(&_4$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_13$$3, size); - ZVAL_LONG(&_14$$3, angle); - ZVAL_LONG(&_15$$3, offsetX); - ZVAL_LONG(&_16$$3, offsetY); - ZEPHIR_CALL_FUNCTION(NULL, "imagettftext", NULL, 403, &_4$$3, &_13$$3, &_14$$3, &_15$$3, &_16$$3, &color, &fontfile, &text); - zephir_check_call_status(); - } else { - ZVAL_LONG(&_17$$8, size); - ZEPHIR_CALL_FUNCTION(&_18$$8, "imagefontwidth", NULL, 404, &_17$$8); - zephir_check_call_status(); - width = (zephir_get_intval(&_18$$8) * zephir_fast_strlen_ev(&text)); - ZVAL_LONG(&_17$$8, size); - ZEPHIR_CALL_FUNCTION(&_19$$8, "imagefontheight", NULL, 405, &_17$$8); - zephir_check_call_status(); - height = zephir_get_intval(&_19$$8); - if (offsetX < 0) { - zephir_read_property(&_20$$9, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - offsetX = ((zephir_get_numberval(&_20$$9) - width) + offsetX); +vv124: + vvch = *++VVCURSOR; + switch (vvch) { + case 'S': + case 's': goto vv179; + default: goto vv54; + } +vv125: + vvch = *++VVCURSOR; + switch (vvch) { + case 'P': + case 'p': goto vv180; + default: goto vv54; + } +vv126: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv181; + default: goto vv54; + } +vv127: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv182; + default: goto vv54; + } +vv128: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv183; + default: goto vv54; + } +vv129: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv184; + default: goto vv54; + } +vv130: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv185; + default: goto vv54; + } +vv131: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv132; + } +vv132: + { + s->statement_position++; + token->opcode = PHVOLT_T_IF; + return 0; } - if (offsetY < 0) { - zephir_read_property(&_21$$10, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - offsetY = ((zephir_get_numberval(&_21$$10) - height) + offsetY); +vv133: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + case 'C': + case 'c': goto vv187; + default: goto vv134; + } +vv134: + { + token->opcode = PHVOLT_T_IN; + return 0; } - zephir_read_property(&_17$$8, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_22$$8, r); - ZVAL_LONG(&_23$$8, g); - ZVAL_LONG(&_24$$8, b); - ZVAL_LONG(&_25$$8, opacity); - ZEPHIR_CALL_FUNCTION(&color, "imagecolorallocatealpha", NULL, 374, &_17$$8, &_22$$8, &_23$$8, &_24$$8, &_25$$8); - zephir_check_call_status(); - zephir_read_property(&_22$$8, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_23$$8, size); - ZVAL_LONG(&_24$$8, offsetX); - ZVAL_LONG(&_25$$8, offsetY); - ZEPHIR_CALL_FUNCTION(NULL, "imagestring", NULL, 406, &_22$$8, &_23$$8, &_24$$8, &_25$$8, &text, &color); - zephir_check_call_status(); - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Gd, processWatermark) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long offsetX, offsetY, opacity, ZEPHIR_LAST_CALL_STATUS, width = 0, height = 0; - zval *watermark, watermark_sub, *offsetX_param = NULL, *offsetY_param = NULL, *opacity_param = NULL, __$true, overlay, color, _0, _1, _2, _9, _10, _11, _12, _13, _14, _15, _16, _17, _3$$3, _4$$3, _5$$3, _6$$3, _7$$3, _8$$3; - zval *this_ptr = getThis(); +vv135: + vvaccept = 3; + vvch = *(VVMARKER = ++VVCURSOR); + switch (vvch) { + case ' ': goto vv188; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv136; + } +vv136: + { + if (s->active_token == PHVOLT_T_DOT) { + token->opcode = PHVOLT_T_IDENTIFIER; + token->value = estrndup(start, VVCURSOR - start); + token->len = VVCURSOR - start; + } else { + s->statement_position++; + token->opcode = PHVOLT_T_IS; + } - ZVAL_UNDEF(&watermark_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&overlay); - ZVAL_UNDEF(&color); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_13); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_15); - ZVAL_UNDEF(&_16); - ZVAL_UNDEF(&_17); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_8$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(4, 4) - Z_PARAM_OBJECT_OF_CLASS(watermark, phalcon_image_adapter_adapterinterface_ce) - Z_PARAM_LONG(offsetX) - Z_PARAM_LONG(offsetY) - Z_PARAM_LONG(opacity) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 4, 0, &watermark, &offsetX_param, &offsetY_param, &opacity_param); - offsetX = zephir_get_intval(offsetX_param); - offsetY = zephir_get_intval(offsetY_param); - opacity = zephir_get_intval(opacity_param); - - - ZEPHIR_CALL_METHOD(&_0, watermark, "render", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&overlay, "imagecreatefromstring", NULL, 381, &_0); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(NULL, "imagesavealpha", NULL, 369, &overlay, &__$true); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_1, "imagesx", NULL, 378, &overlay); - zephir_check_call_status(); - width = zephir_get_intval(&_1); - ZEPHIR_CALL_FUNCTION(&_2, "imagesy", NULL, 379, &overlay); - zephir_check_call_status(); - height = zephir_get_intval(&_2); - if (opacity < 100) { - ZEPHIR_INIT_VAR(&_3$$3); - ZVAL_DOUBLE(&_4$$3, ((zephir_safe_div_long_long((opacity * 127), 100)) - (double) (127))); - ZEPHIR_CALL_FUNCTION(&_5$$3, "abs", NULL, 238, &_4$$3); - zephir_check_call_status(); - zephir_round(&_3$$3, &_5$$3, NULL, NULL); - opacity = zephir_get_intval(&_3$$3); - ZVAL_LONG(&_4$$3, 127); - ZVAL_LONG(&_6$$3, 127); - ZVAL_LONG(&_7$$3, 127); - ZVAL_LONG(&_8$$3, opacity); - ZEPHIR_CALL_FUNCTION(&color, "imagecolorallocatealpha", NULL, 374, &overlay, &_4$$3, &_6$$3, &_7$$3, &_8$$3); - zephir_check_call_status(); - ZVAL_LONG(&_4$$3, 3); - ZEPHIR_CALL_FUNCTION(NULL, "imagelayereffect", NULL, 407, &overlay, &_4$$3); - zephir_check_call_status(); - ZVAL_LONG(&_4$$3, 0); - ZVAL_LONG(&_6$$3, 0); - ZVAL_LONG(&_7$$3, width); - ZVAL_LONG(&_8$$3, height); - ZEPHIR_CALL_FUNCTION(NULL, "imagefilledrectangle", NULL, 387, &overlay, &_4$$3, &_6$$3, &_7$$3, &_8$$3, &color); - zephir_check_call_status(); - } - zephir_read_property(&_9, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(NULL, "imagealphablending", NULL, 371, &_9, &__$true); - zephir_check_call_status(); - zephir_read_property(&_10, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_11, offsetX); - ZVAL_LONG(&_12, offsetY); - ZVAL_LONG(&_13, 0); - ZVAL_LONG(&_14, 0); - ZVAL_LONG(&_15, width); - ZVAL_LONG(&_16, height); - ZEPHIR_CALL_FUNCTION(&_17, "imagecopy", NULL, 375, &_10, &overlay, &_11, &_12, &_13, &_14, &_15, &_16); - zephir_check_call_status(); - if (zephir_is_true(&_17)) { - ZEPHIR_CALL_FUNCTION(NULL, "imagedestroy", NULL, 372, &overlay); - zephir_check_call_status(); - } - ZEPHIR_MM_RESTORE(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Image_Adapter_Imagick) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Image\\Adapter, Imagick, phalcon, image_adapter_imagick, phalcon_image_adapter_abstractadapter_ce, phalcon_image_adapter_imagick_method_entry, 0); - - zend_declare_property_bool(phalcon_image_adapter_imagick_ce, SL("checked"), 0, ZEND_ACC_PROTECTED|ZEND_ACC_STATIC); - zend_declare_property_long(phalcon_image_adapter_imagick_ce, SL("version"), 0, ZEND_ACC_PROTECTED|ZEND_ACC_STATIC); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Image_Adapter_Imagick, __construct) -{ - zend_bool _20$$8; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long width, height, ZEPHIR_LAST_CALL_STATUS; - zval *file_param = NULL, *width_param = NULL, *height_param = NULL, image, _0, _1, _2, _30, _31, _32, _33, _34, _35, _36, _37, _38, _3$$4, _4$$4, _5$$4, _6$$4, _7$$4, _11$$4, _12$$4, _16$$4, _8$$5, _9$$5, _10$$5, _13$$6, _14$$6, _15$$6, _17$$7, _18$$7, _19$$7, _24$$8, _25$$8, _26$$8, _27$$8, _28$$8, _29$$8, _21$$9, _22$$9, _23$$9; - zval file; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&file); - ZVAL_UNDEF(&image); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_30); - ZVAL_UNDEF(&_31); - ZVAL_UNDEF(&_32); - ZVAL_UNDEF(&_33); - ZVAL_UNDEF(&_34); - ZVAL_UNDEF(&_35); - ZVAL_UNDEF(&_36); - ZVAL_UNDEF(&_37); - ZVAL_UNDEF(&_38); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_11$$4); - ZVAL_UNDEF(&_12$$4); - ZVAL_UNDEF(&_16$$4); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_10$$5); - ZVAL_UNDEF(&_13$$6); - ZVAL_UNDEF(&_14$$6); - ZVAL_UNDEF(&_15$$6); - ZVAL_UNDEF(&_17$$7); - ZVAL_UNDEF(&_18$$7); - ZVAL_UNDEF(&_19$$7); - ZVAL_UNDEF(&_24$$8); - ZVAL_UNDEF(&_25$$8); - ZVAL_UNDEF(&_26$$8); - ZVAL_UNDEF(&_27$$8); - ZVAL_UNDEF(&_28$$8); - ZVAL_UNDEF(&_29$$8); - ZVAL_UNDEF(&_21$$9); - ZVAL_UNDEF(&_22$$9); - ZVAL_UNDEF(&_23$$9); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(file) - Z_PARAM_OPTIONAL - Z_PARAM_LONG_OR_NULL(width, is_null_true) - Z_PARAM_LONG_OR_NULL(height, is_null_true) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &file_param, &width_param, &height_param); - if (UNEXPECTED(Z_TYPE_P(file_param) != IS_STRING && Z_TYPE_P(file_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'file' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(file_param) == IS_STRING)) { - zephir_get_strval(&file, file_param); - } else { - ZEPHIR_INIT_VAR(&file); - } - if (!width_param) { - width = 0; - } else { - width = zephir_get_intval(width_param); - } - if (!height_param) { - height = 0; - } else { - height = zephir_get_intval(height_param); - } - - - zephir_read_static_property_ce(&_0, phalcon_image_adapter_imagick_ce, SL("checked"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - ZEPHIR_CALL_SELF(NULL, "check", NULL, 0); - zephir_check_call_status(); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("file"), &file); - ZEPHIR_INIT_VAR(&_1); - object_init_ex(&_1, zephir_get_internal_ce(SL("imagick"))); - ZEPHIR_CALL_METHOD(NULL, &_1, "__construct", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &_1); - zephir_read_property(&_2, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); - if ((zephir_file_exists(&_2) == SUCCESS)) { - zephir_read_property(&_3$$4, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&_4$$4, "realpath", NULL, 94, &_3$$4); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("realpath"), &_4$$4); - zephir_read_property(&_5$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_7$$4, this_ptr, ZEND_STRL("realpath"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_6$$4, &_5$$4, "readimage", NULL, 0, &_7$$4); - zephir_check_call_status(); - if (UNEXPECTED(!zephir_is_true(&_6$$4))) { - ZEPHIR_INIT_VAR(&_8$$5); - object_init_ex(&_8$$5, phalcon_image_exception_ce); - zephir_read_property(&_9$$5, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_10$$5); - ZEPHIR_CONCAT_SVS(&_10$$5, "Imagick::readImage ", &_9$$5, " failed"); - ZEPHIR_CALL_METHOD(NULL, &_8$$5, "__construct", NULL, 8, &_10$$5); - zephir_check_call_status(); - zephir_throw_exception_debug(&_8$$5, "phalcon/Image/Adapter/Imagick.zep", 63); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_read_property(&_11$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_12$$4, &_11$$4, "getimagealphachannel", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_12$$4))) { - zephir_read_property(&_13$$6, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_14$$6); - ZVAL_STRING(&_14$$6, "Imagick::ALPHACHANNEL_SET"); - ZEPHIR_CALL_FUNCTION(&_15$$6, "constant", NULL, 128, &_14$$6); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_13$$6, "setimagealphachannel", NULL, 0, &_15$$6); - zephir_check_call_status(); + return 0; } - zephir_read_property(&_16$$4, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); - if (ZEPHIR_IS_LONG(&_16$$4, 1)) { - zephir_read_property(&_17$$7, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&image, &_17$$7, "coalesceimages", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_18$$7, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_18$$7, "clear", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_19$$7, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_19$$7, "destroy", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &image); +vv137: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv189; + default: goto vv54; + } +vv138: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv190; + default: goto vv54; + } +vv139: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv191; + default: goto vv54; + } +vv140: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv193; + case 'M': + case 'm': goto vv194; + default: goto vv54; + } +vv141: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv195; + default: goto vv54; + } +vv142: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv143; + } +vv143: + { + token->opcode = PHVOLT_T_OR; + return 0; } - } else { - _20$$8 = !width; - if (!(_20$$8)) { - _20$$8 = !height; +vv144: + vvch = *++VVCURSOR; + switch (vvch) { + case 'W': + case 'w': goto vv197; + default: goto vv54; + } +vv145: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv199; + default: goto vv54; + } +vv146: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv200; + default: goto vv54; + } +vv147: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv201; + default: goto vv54; + } +vv148: + vvch = *++VVCURSOR; + switch (vvch) { + case 'I': + case 'i': goto vv203; + default: goto vv54; + } +vv149: + vvch = *++VVCURSOR; + switch (vvch) { + case 'U': + case 'u': goto vv204; + default: goto vv54; + } +vv150: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv205; + default: goto vv54; + } +vv151: + vvaccept = 3; + vvch = *(VVMARKER = ++VVCURSOR); + switch (vvch) { + case ' ': goto vv206; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv136; + } +vv152: + vvch = *++VVCURSOR; + switch (vvch) { + case '-': goto vv207; + default: goto vv153; + } +vv153: + { + s->whitespace_control = 0; + token->opcode = PHVOLT_T_OPEN_DELIMITER; + return 0; } - if (UNEXPECTED(_20$$8)) { - ZEPHIR_INIT_VAR(&_21$$9); - object_init_ex(&_21$$9, phalcon_image_exception_ce); - zephir_read_property(&_22$$9, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_23$$9); - ZEPHIR_CONCAT_SV(&_23$$9, "Failed to create image from file ", &_22$$9); - ZEPHIR_CALL_METHOD(NULL, &_21$$9, "__construct", NULL, 8, &_23$$9); - zephir_check_call_status(); - zephir_throw_exception_debug(&_21$$9, "phalcon/Image/Adapter/Imagick.zep", 84); - ZEPHIR_MM_RESTORE(); - return; +vv154: + vvch = *++VVCURSOR; + switch (vvch) { + case '-': goto vv209; + default: goto vv155; + } +vv155: + { + s->whitespace_control = 0; + s->statement_position++; + token->opcode = PHVOLT_T_OPEN_EDELIMITER; + return 0; } - zephir_read_property(&_24$$8, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_25$$8); - object_init_ex(&_25$$8, zephir_get_internal_ce(SL("imagickpixel"))); - ZEPHIR_INIT_VAR(&_26$$8); - ZVAL_STRING(&_26$$8, "transparent"); - ZEPHIR_CALL_METHOD(NULL, &_25$$8, "__construct", NULL, 0, &_26$$8); - zephir_check_call_status(); - ZVAL_LONG(&_27$$8, width); - ZVAL_LONG(&_28$$8, height); - ZEPHIR_CALL_METHOD(NULL, &_24$$8, "newimage", NULL, 0, &_27$$8, &_28$$8, &_25$$8); - zephir_check_call_status(); - zephir_read_property(&_27$$8, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_26$$8); - ZVAL_STRING(&_26$$8, "png"); - ZEPHIR_CALL_METHOD(NULL, &_27$$8, "setformat", NULL, 0, &_26$$8); - zephir_check_call_status(); - zephir_read_property(&_28$$8, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_26$$8); - ZVAL_STRING(&_26$$8, "png"); - ZEPHIR_CALL_METHOD(NULL, &_28$$8, "setimageformat", NULL, 0, &_26$$8); - zephir_check_call_status(); - zephir_read_property(&_29$$8, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); - zephir_update_property_zval(this_ptr, ZEND_STRL("realpath"), &_29$$8); - } - zephir_read_property(&_30, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_31, &_30, "getimagewidth", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_31); - zephir_read_property(&_32, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_33, &_32, "getimageheight", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_33); - zephir_read_property(&_34, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_35, &_34, "getimagetype", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_35); - zephir_read_property(&_36, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_37, &_36, "getimageformat", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_38); - ZEPHIR_CONCAT_SV(&_38, "image/", &_37); - zephir_update_property_zval(this_ptr, ZEND_STRL("mime"), &_38); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Imagick, __destruct) -{ - zval _0, _1$$3, _2$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_OBS_VAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC); - if (zephir_is_instance_of(&_0, SL("Imagick"))) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "clear", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_2$$3, "destroy", NULL, 0); - zephir_check_call_status(); - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Imagick, check) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval __$true, _0, _1, _2, _3, _6, _4$$5, _5$$5; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_5$$5); - - - ZEPHIR_MM_GROW(); - - zephir_read_static_property_ce(&_0, phalcon_image_adapter_imagick_ce, SL("checked"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_0)) { - RETURN_MM_BOOL(1); - } - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "imagick"); - if (UNEXPECTED(!(zephir_class_exists(&_1, 1)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "Imagick is not installed, or the extension is not loaded", "phalcon/Image/Adapter/Imagick.zep", 128); - return; - } - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "Imagick::IMAGICK_EXTNUM"); - ZEPHIR_CALL_FUNCTION(&_3, "defined", NULL, 127, &_2); - zephir_check_call_status(); - if (zephir_is_true(&_3)) { - ZEPHIR_INIT_VAR(&_4$$5); - ZVAL_STRING(&_4$$5, "Imagick::IMAGICK_EXTNUM"); - ZEPHIR_CALL_FUNCTION(&_5$$5, "constant", NULL, 128, &_4$$5); - zephir_check_call_status(); - zephir_update_static_property_ce(phalcon_image_adapter_imagick_ce, ZEND_STRL("version"), &_5$$5); - } - zephir_update_static_property_ce(phalcon_image_adapter_imagick_ce, ZEND_STRL("checked"), &__$true); - zephir_read_static_property_ce(&_6, phalcon_image_adapter_imagick_ce, SL("checked"), PH_NOISY_CC | PH_READONLY); - RETURN_CTOR(&_6); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Imagick, getInternalImInstance) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "image"); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Imagick, setResourceLimit) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *type_param = NULL, *limit_param = NULL, _0, _1, _2; - zend_long type, limit, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_LONG(type) - Z_PARAM_LONG(limit) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &type_param, &limit_param); - type = zephir_get_intval(type_param); - limit = zephir_get_intval(limit_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_1, type); - ZVAL_LONG(&_2, limit); - ZEPHIR_CALL_METHOD(NULL, &_0, "setresourcelimit", NULL, 0, &_1, &_2); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processBackground) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_6 = NULL, *_8 = NULL, *_11 = NULL, *_12 = NULL, *_13 = NULL, *_18 = NULL, *_20 = NULL, *_25 = NULL; - zval *r_param = NULL, *g_param = NULL, *b_param = NULL, *opacity_param = NULL, background, color, pixel1, pixel2, ret, _0, _1, _2, _3, _4$$3, _5$$3, _7$$3, _14$$3, _15$$3, _16$$3, _17$$3, _19$$3, _21$$3, _22$$3, _23$$3, _24$$3, _26$$3, _9$$4, _10$$4; - zend_long r, g, b, opacity, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&background); - ZVAL_UNDEF(&color); - ZVAL_UNDEF(&pixel1); - ZVAL_UNDEF(&pixel2); - ZVAL_UNDEF(&ret); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_14$$3); - ZVAL_UNDEF(&_15$$3); - ZVAL_UNDEF(&_16$$3); - ZVAL_UNDEF(&_17$$3); - ZVAL_UNDEF(&_19$$3); - ZVAL_UNDEF(&_21$$3); - ZVAL_UNDEF(&_22$$3); - ZVAL_UNDEF(&_23$$3); - ZVAL_UNDEF(&_24$$3); - ZVAL_UNDEF(&_26$$3); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_10$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(4, 4) - Z_PARAM_LONG(r) - Z_PARAM_LONG(g) - Z_PARAM_LONG(b) - Z_PARAM_LONG(opacity) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 4, 0, &r_param, &g_param, &b_param, &opacity_param); - r = zephir_get_intval(r_param); - g = zephir_get_intval(g_param); - b = zephir_get_intval(b_param); - opacity = zephir_get_intval(opacity_param); - - - opacity /= 100; - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "rgb(%d, %d, %d)"); - ZVAL_LONG(&_1, r); - ZVAL_LONG(&_2, g); - ZVAL_LONG(&_3, b); - ZEPHIR_CALL_FUNCTION(&color, "sprintf", NULL, 194, &_0, &_1, &_2, &_3); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&pixel1); - object_init_ex(&pixel1, zephir_get_internal_ce(SL("imagickpixel"))); - ZEPHIR_CALL_METHOD(NULL, &pixel1, "__construct", NULL, 0, &color); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&pixel2); - object_init_ex(&pixel2, zephir_get_internal_ce(SL("imagickpixel"))); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "transparent"); - ZEPHIR_CALL_METHOD(NULL, &pixel2, "__construct", NULL, 0, &_0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&background); - object_init_ex(&background, zephir_get_internal_ce(SL("imagick"))); - ZEPHIR_CALL_METHOD(NULL, &background, "__construct", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_2, 0); - ZEPHIR_CALL_METHOD(NULL, &_1, "setiteratorindex", NULL, 0, &_2); - zephir_check_call_status(); - while (1) { - zephir_read_property(&_4$$3, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &background, "newimage", &_6, 0, &_4$$3, &_5$$3, &pixel1); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_7$$3, &background, "getimagealphachannel", &_8, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_7$$3))) { - ZEPHIR_INIT_NVAR(&_9$$4); - ZVAL_STRING(&_9$$4, "Imagick::ALPHACHANNEL_SET"); - ZEPHIR_CALL_FUNCTION(&_10$$4, "constant", &_11, 128, &_9$$4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &background, "setimagealphachannel", &_12, 0, &_10$$4); - zephir_check_call_status(); +vv156: + ++VVCURSOR; + { + s->mode = PHVOLT_MODE_RAW; + token->opcode = PHVOLT_T_CLOSE_EDELIMITER; + return 0; } - ZEPHIR_CALL_METHOD(NULL, &background, "setimagebackgroundcolor", &_13, 0, &pixel2); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_14$$3); - ZVAL_STRING(&_14$$3, "Imagick::EVALUATE_MULTIPLY"); - ZEPHIR_CALL_FUNCTION(&_15$$3, "constant", &_11, 128, &_14$$3); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_14$$3); - ZVAL_STRING(&_14$$3, "Imagick::CHANNEL_ALPHA"); - ZEPHIR_CALL_FUNCTION(&_16$$3, "constant", &_11, 128, &_14$$3); - zephir_check_call_status(); - ZVAL_LONG(&_17$$3, opacity); - ZEPHIR_CALL_METHOD(NULL, &background, "evaluateimage", &_18, 0, &_15$$3, &_17$$3, &_16$$3); - zephir_check_call_status(); - zephir_read_property(&_17$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_19$$3, &_17$$3, "getcolorspace", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &background, "setcolorspace", &_20, 0, &_19$$3); - zephir_check_call_status(); - zephir_read_property(&_21$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_14$$3); - ZVAL_STRING(&_14$$3, "Imagick::COMPOSITE_DISSOLVE"); - ZEPHIR_CALL_FUNCTION(&_22$$3, "constant", &_11, 128, &_14$$3); - zephir_check_call_status(); - ZVAL_LONG(&_23$$3, 0); - ZVAL_LONG(&_24$$3, 0); - ZEPHIR_CALL_METHOD(&ret, &background, "compositeimage", &_25, 0, &_21$$3, &_22$$3, &_23$$3, &_24$$3); - zephir_check_call_status(); - if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&ret))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "Imagick::compositeImage failed", "phalcon/Image/Adapter/Imagick.zep", 202); - return; +vv158: + ++VVCURSOR; + { + token->opcode = PHVOLT_T_NOTIDENTICAL; + return 0; } - zephir_read_property(&_23$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_26$$3, &_23$$3, "nextimage", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_26$$3)) { - break; +vv160: + ++VVCURSOR; + { + s->mode = PHVOLT_MODE_RAW; + s->whitespace_control = 1; + token->opcode = PHVOLT_T_CLOSE_DELIMITER; + return 0; } - } - zephir_read_property(&_2, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_2, "clear", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_3, "destroy", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &background); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processBlur) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *radius_param = NULL, _0, _1, _2$$3, _3$$3, _4$$3, _5$$3; - zend_long radius, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(radius) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &radius_param); - radius = zephir_get_intval(radius_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_1, 0); - ZEPHIR_CALL_METHOD(NULL, &_0, "setiteratorindex", NULL, 0, &_1); - zephir_check_call_status(); - while (1) { - zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_3$$3, radius); - ZVAL_LONG(&_4$$3, 100); - ZEPHIR_CALL_METHOD(NULL, &_2$$3, "blurimage", NULL, 0, &_3$$3, &_4$$3); - zephir_check_call_status(); - zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_5$$3, &_3$$3, "nextimage", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_5$$3)) { - break; +vv162: + ++VVCURSOR; + { + s->mode = PHVOLT_MODE_RAW; + s->whitespace_control = 1; + token->opcode = PHVOLT_T_CLOSE_EDELIMITER; + return 0; } - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processCrop) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL, *_6 = NULL, *_8 = NULL; - zval *width_param = NULL, *height_param = NULL, *offsetX_param = NULL, *offsetY_param = NULL, image, _0, _9, _10, _1$$3, _2$$3, _3$$3, _4$$3, _7$$3; - zend_long width, height, offsetX, offsetY, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&image); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_7$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(4, 4) - Z_PARAM_LONG(width) - Z_PARAM_LONG(height) - Z_PARAM_LONG(offsetX) - Z_PARAM_LONG(offsetY) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 4, 0, &width_param, &height_param, &offsetX_param, &offsetY_param); - width = zephir_get_intval(width_param); - height = zephir_get_intval(height_param); - offsetX = zephir_get_intval(offsetX_param); - offsetY = zephir_get_intval(offsetY_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&image, &_0); - ZVAL_LONG(&_0, 0); - ZEPHIR_CALL_METHOD(NULL, &image, "setiteratorindex", NULL, 0, &_0); - zephir_check_call_status(); - while (1) { - ZVAL_LONG(&_1$$3, width); - ZVAL_LONG(&_2$$3, height); - ZVAL_LONG(&_3$$3, offsetX); - ZVAL_LONG(&_4$$3, offsetY); - ZEPHIR_CALL_METHOD(NULL, &image, "cropimage", &_5, 0, &_1$$3, &_2$$3, &_3$$3, &_4$$3); - zephir_check_call_status(); - ZVAL_LONG(&_1$$3, width); - ZVAL_LONG(&_2$$3, height); - ZVAL_LONG(&_3$$3, 0); - ZVAL_LONG(&_4$$3, 0); - ZEPHIR_CALL_METHOD(NULL, &image, "setimagepage", &_6, 0, &_1$$3, &_2$$3, &_3$$3, &_4$$3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_7$$3, &image, "nextimage", &_8, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_7$$3))) { - break; +vv164: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto vv164; + default: goto vv166; + } +vv166: + { + token->opcode = PHVOLT_T_DOUBLE; + token->value = estrndup(start, VVCURSOR - start); + token->len = VVCURSOR - start; + return 0; } - } - ZEPHIR_CALL_METHOD(&_9, &image, "getimagewidth", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_9); - ZEPHIR_CALL_METHOD(&_10, &image, "getimageheight", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_10); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processFlip) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *direction_param = NULL, func, _0, _1, _2$$4, _3$$4, _4$$4; - zend_long direction, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&func); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(direction) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &direction_param); - direction = zephir_get_intval(direction_param); - - - ZEPHIR_INIT_VAR(&func); - ZVAL_STRING(&func, "flipImage"); - if (direction == 11) { - ZEPHIR_INIT_NVAR(&func); - ZVAL_STRING(&func, "flopImage"); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_1, 0); - ZEPHIR_CALL_METHOD(NULL, &_0, "setiteratorindex", NULL, 0, &_1); - zephir_check_call_status(); - while (1) { - zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD_ZVAL(NULL, &_2$$4, &func, NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_3$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_4$$4, &_3$$4, "nextimage", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_4$$4)) { - break; +vv167: + ++VVCURSOR; + { + token->opcode = PHVOLT_T_IDENTICAL; + return 0; } - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processLiquidRescale) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL, *_7 = NULL; - zval *width_param = NULL, *height_param = NULL, *deltaX_param = NULL, *rigidity_param = NULL, ret, image, _0, _8, _9, _1$$3, _2$$3, _3$$3, _4$$3, _6$$3; - zend_long width, height, deltaX, rigidity, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&ret); - ZVAL_UNDEF(&image); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_6$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(4, 4) - Z_PARAM_LONG(width) - Z_PARAM_LONG(height) - Z_PARAM_LONG(deltaX) - Z_PARAM_LONG(rigidity) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 4, 0, &width_param, &height_param, &deltaX_param, &rigidity_param); - width = zephir_get_intval(width_param); - height = zephir_get_intval(height_param); - deltaX = zephir_get_intval(deltaX_param); - rigidity = zephir_get_intval(rigidity_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&image, &_0); - ZVAL_LONG(&_0, 0); - ZEPHIR_CALL_METHOD(NULL, &image, "setiteratorindex", NULL, 0, &_0); - zephir_check_call_status(); - while (1) { - ZVAL_LONG(&_1$$3, width); - ZVAL_LONG(&_2$$3, height); - ZVAL_LONG(&_3$$3, deltaX); - ZVAL_LONG(&_4$$3, rigidity); - ZEPHIR_CALL_METHOD(&ret, &image, "liquidrescaleimage", &_5, 0, &_1$$3, &_2$$3, &_3$$3, &_4$$3); - zephir_check_call_status(); - if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&ret))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "Imagick::liquidRescale failed", "phalcon/Image/Adapter/Imagick.zep", 308); - return; +vv169: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv170; + } +vv170: + { + token->opcode = PHVOLT_T_AND; + return 0; } - ZEPHIR_CALL_METHOD(&_6$$3, &image, "nextimage", &_7, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_6$$3)) { - break; +vv171: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv211; + default: goto vv54; + } +vv172: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv212; + default: goto vv54; + } +vv173: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv213; + default: goto vv54; + } +vv174: + vvch = *++VVCURSOR; + switch (vvch) { + case 'H': + case 'h': goto vv214; + default: goto vv54; + } +vv175: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv215; + default: goto vv54; + } +vv176: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv217; + default: goto vv54; + } +vv177: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv219; + default: goto vv54; + } +vv178: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv220; + case 'I': + case 'i': goto vv221; + default: goto vv54; + } +vv179: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv222; + default: goto vv54; + } +vv180: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv224; + default: goto vv54; + } +vv181: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv225; + case 'B': + case 'b': goto vv226; + case 'C': + case 'c': goto vv227; + case 'F': + case 'f': goto vv228; + case 'I': + case 'i': goto vv229; + case 'M': + case 'm': goto vv230; + case 'R': + case 'r': goto vv231; + case 'S': + case 's': goto vv232; + default: goto vv54; + } +vv182: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv233; + default: goto vv54; + } +vv183: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv235; + default: goto vv54; + } +vv184: + vvch = *++VVCURSOR; + switch (vvch) { + case 'S': + case 's': goto vv236; + default: goto vv54; + } +vv185: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv186; + } +vv186: + { + s->statement_position++; + token->opcode = PHVOLT_T_FOR; + return 0; } - } - ZEPHIR_CALL_METHOD(&_8, &image, "getimagewidth", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_8); - ZEPHIR_CALL_METHOD(&_9, &image, "getimageheight", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_9); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processMask) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_7 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *image, image_sub, mask, ret, _0, _1, _2, _3$$3, _4$$3, _5$$3, _6$$3, _8$$3, _9$$3, _10$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&image_sub); - ZVAL_UNDEF(&mask); - ZVAL_UNDEF(&ret); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_8$$3); - ZVAL_UNDEF(&_9$$3); - ZVAL_UNDEF(&_10$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(image, phalcon_image_adapter_adapterinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &image); - - - ZEPHIR_INIT_VAR(&mask); - object_init_ex(&mask, zephir_get_internal_ce(SL("imagick"))); - ZEPHIR_CALL_METHOD(NULL, &mask, "__construct", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, image, "render", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &mask, "readimageblob", NULL, 0, &_0); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_2, 0); - ZEPHIR_CALL_METHOD(NULL, &_1, "setiteratorindex", NULL, 0, &_2); - zephir_check_call_status(); - while (1) { - zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_4$$3, 1); - ZEPHIR_CALL_METHOD(NULL, &_3$$3, "setimagematte", NULL, 0, &_4$$3); - zephir_check_call_status(); - zephir_read_property(&_4$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_5$$3); - ZVAL_STRING(&_5$$3, "Imagick::COMPOSITE_DSTIN"); - ZEPHIR_CALL_FUNCTION(&_6$$3, "constant", &_7, 128, &_5$$3); - zephir_check_call_status(); - ZVAL_LONG(&_8$$3, 0); - ZVAL_LONG(&_9$$3, 0); - ZEPHIR_CALL_METHOD(&ret, &_4$$3, "compositeimage", NULL, 0, &mask, &_6$$3, &_8$$3, &_9$$3); - zephir_check_call_status(); - if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&ret))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "Imagick::compositeImage failed", "phalcon/Image/Adapter/Imagick.zep", 346); - return; +vv187: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv237; + default: goto vv54; + } +vv188: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv238; + default: goto vv81; + } +vv189: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv239; + default: goto vv54; + } +vv190: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv240; + default: goto vv54; + } +vv191: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv192; + } +vv192: + { + s->statement_position++; + token->opcode = PHVOLT_T_NOT; + return 0; } - zephir_read_property(&_8$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_10$$3, &_8$$3, "nextimage", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_10$$3)) { - break; +vv193: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv241; + default: goto vv54; + } +vv194: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv243; + default: goto vv54; + } +vv195: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv196; + } +vv196: + { + s->statement_position++; + token->opcode = PHVOLT_T_ODD; + return 0; } - } - ZEPHIR_CALL_METHOD(NULL, &mask, "clear", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &mask, "destroy", NULL, 0); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processPixelate) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *amount_param = NULL, _0, _1, _2, _3, _4$$3, _5$$3, _6$$3, _7$$3, _8$$3, _9$$3; - zend_long amount, ZEPHIR_LAST_CALL_STATUS, width = 0, height = 0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_8$$3); - ZVAL_UNDEF(&_9$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(amount) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &amount_param); - amount = zephir_get_intval(amount_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - width = (long) (zephir_safe_div_zval_long(&_0, amount)); - zephir_read_property(&_1, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - height = (long) (zephir_safe_div_zval_long(&_1, amount)); - zephir_read_property(&_2, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_3, 0); - ZEPHIR_CALL_METHOD(NULL, &_2, "setiteratorindex", NULL, 0, &_3); - zephir_check_call_status(); - while (1) { - zephir_read_property(&_4$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_5$$3, width); - ZVAL_LONG(&_6$$3, height); - ZEPHIR_CALL_METHOD(NULL, &_4$$3, "scaleimage", NULL, 0, &_5$$3, &_6$$3); - zephir_check_call_status(); - zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_6$$3, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_7$$3, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_5$$3, "scaleimage", NULL, 0, &_6$$3, &_7$$3); - zephir_check_call_status(); - zephir_read_property(&_8$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_9$$3, &_8$$3, "nextimage", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_9$$3)) { - break; +vv197: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv198; + } +vv198: + { + s->statement_position++; + token->opcode = PHVOLT_T_RAW; + return 0; } - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processReflection) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL, *_7 = NULL, *_11 = NULL, *_13 = NULL, *_14 = NULL, *_16 = NULL, *_21 = NULL, *_24 = NULL, *_27 = NULL, *_29 = NULL, *_35 = NULL, *_38 = NULL, *_40 = NULL, *_43 = NULL, *_48 = NULL, *_55 = NULL; - zend_bool fadeIn, _56$$13; - zval *height_param = NULL, *opacity_param = NULL, *fadeIn_param = NULL, reflection, fade, pseudo, image, pixel, ret, _0, _4, _17, _18, _30, _31, _32, _58, _59, _60, _61, _62, _1$$3, _2$$4, _3$$4, _6$$5, _8$$5, _9$$5, _10$$5, _12$$5, _15$$5, _19$$7, _20$$7, _22$$7, _23$$7, _25$$7, _26$$7, _28$$7, _33$$10, _34$$10, _36$$10, _37$$10, _39$$10, _41$$10, _42$$10, _44$$10, _45$$10, _46$$10, _47$$10, _49$$10, _50$$13, _51$$13, _52$$13, _53$$13, _54$$13, _57$$13; - zend_long height, opacity, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&reflection); - ZVAL_UNDEF(&fade); - ZVAL_UNDEF(&pseudo); - ZVAL_UNDEF(&image); - ZVAL_UNDEF(&pixel); - ZVAL_UNDEF(&ret); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_17); - ZVAL_UNDEF(&_18); - ZVAL_UNDEF(&_30); - ZVAL_UNDEF(&_31); - ZVAL_UNDEF(&_32); - ZVAL_UNDEF(&_58); - ZVAL_UNDEF(&_59); - ZVAL_UNDEF(&_60); - ZVAL_UNDEF(&_61); - ZVAL_UNDEF(&_62); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_10$$5); - ZVAL_UNDEF(&_12$$5); - ZVAL_UNDEF(&_15$$5); - ZVAL_UNDEF(&_19$$7); - ZVAL_UNDEF(&_20$$7); - ZVAL_UNDEF(&_22$$7); - ZVAL_UNDEF(&_23$$7); - ZVAL_UNDEF(&_25$$7); - ZVAL_UNDEF(&_26$$7); - ZVAL_UNDEF(&_28$$7); - ZVAL_UNDEF(&_33$$10); - ZVAL_UNDEF(&_34$$10); - ZVAL_UNDEF(&_36$$10); - ZVAL_UNDEF(&_37$$10); - ZVAL_UNDEF(&_39$$10); - ZVAL_UNDEF(&_41$$10); - ZVAL_UNDEF(&_42$$10); - ZVAL_UNDEF(&_44$$10); - ZVAL_UNDEF(&_45$$10); - ZVAL_UNDEF(&_46$$10); - ZVAL_UNDEF(&_47$$10); - ZVAL_UNDEF(&_49$$10); - ZVAL_UNDEF(&_50$$13); - ZVAL_UNDEF(&_51$$13); - ZVAL_UNDEF(&_52$$13); - ZVAL_UNDEF(&_53$$13); - ZVAL_UNDEF(&_54$$13); - ZVAL_UNDEF(&_57$$13); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_LONG(height) - Z_PARAM_LONG(opacity) - Z_PARAM_BOOL(fadeIn) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &height_param, &opacity_param, &fadeIn_param); - height = zephir_get_intval(height_param); - opacity = zephir_get_intval(opacity_param); - fadeIn = zephir_get_boolval(fadeIn_param); - +vv199: + vvch = *++VVCURSOR; + switch (vvch) { + case 'U': + case 'u': goto vv244; + default: goto vv54; + } +vv200: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv245; + default: goto vv54; + } +vv201: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv202; + } +vv202: + { + if (s->active_token == PHVOLT_T_DOT) { + token->opcode = PHVOLT_T_IDENTIFIER; + token->value = estrndup(start, VVCURSOR - start); + token->len = VVCURSOR - start; + } else { + token->opcode = PHVOLT_T_SET; + } - zephir_read_static_property_ce(&_0, phalcon_image_adapter_imagick_ce, SL("version"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&reflection); - if (ZEPHIR_GE_LONG(&_0, 30100)) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - if (zephir_clone(&reflection, &_1$$3) == FAILURE) { - RETURN_MM(); - } - } else { - zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_3$$4, &_2$$4, "clone", NULL, 0); - zephir_check_call_status(); - if (zephir_clone(&reflection, &_3$$4) == FAILURE) { - RETURN_MM(); - } - } - ZVAL_LONG(&_4, 0); - ZEPHIR_CALL_METHOD(NULL, &reflection, "setiteratorindex", NULL, 0, &_4); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(NULL, &reflection, "flipimage", &_5, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_6$$5, &reflection, "getimagewidth", &_7, 0); - zephir_check_call_status(); - ZVAL_LONG(&_8$$5, height); - ZVAL_LONG(&_9$$5, 0); - ZVAL_LONG(&_10$$5, 0); - ZEPHIR_CALL_METHOD(NULL, &reflection, "cropimage", &_11, 0, &_6$$5, &_8$$5, &_9$$5, &_10$$5); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_12$$5, &reflection, "getimagewidth", &_13, 0); - zephir_check_call_status(); - ZVAL_LONG(&_8$$5, height); - ZVAL_LONG(&_9$$5, 0); - ZVAL_LONG(&_10$$5, 0); - ZEPHIR_CALL_METHOD(NULL, &reflection, "setimagepage", &_14, 0, &_12$$5, &_8$$5, &_9$$5, &_10$$5); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_15$$5, &reflection, "nextimage", &_16, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_15$$5)) { - break; + return 0; } - } - if (fadeIn) { - ZEPHIR_INIT_VAR(&pseudo); - ZVAL_STRING(&pseudo, "gradient:black-transparent"); - } else { - ZEPHIR_INIT_NVAR(&pseudo); - ZVAL_STRING(&pseudo, "gradient:transparent-black"); - } - ZEPHIR_INIT_VAR(&fade); - object_init_ex(&fade, zephir_get_internal_ce(SL("imagick"))); - ZEPHIR_CALL_METHOD(NULL, &fade, "__construct", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_17, &reflection, "getimagewidth", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_18, &reflection, "getimageheight", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &fade, "newpseudoimage", NULL, 0, &_17, &_18, &pseudo); - zephir_check_call_status(); - opacity /= 100; - ZVAL_LONG(&_4, 0); - ZEPHIR_CALL_METHOD(NULL, &reflection, "setiteratorindex", NULL, 0, &_4); - zephir_check_call_status(); - while (1) { - ZEPHIR_INIT_NVAR(&_19$$7); - ZVAL_STRING(&_19$$7, "Imagick::COMPOSITE_DSTOUT"); - ZEPHIR_CALL_FUNCTION(&_20$$7, "constant", &_21, 128, &_19$$7); - zephir_check_call_status(); - ZVAL_LONG(&_22$$7, 0); - ZVAL_LONG(&_23$$7, 0); - ZEPHIR_CALL_METHOD(&ret, &reflection, "compositeimage", &_24, 0, &fade, &_20$$7, &_22$$7, &_23$$7); - zephir_check_call_status(); - if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&ret))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "Imagick::compositeImage failed", "phalcon/Image/Adapter/Imagick.zep", 441); - return; +vv203: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv246; + default: goto vv54; + } +vv204: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv247; + default: goto vv54; + } +vv205: + vvch = *++VVCURSOR; + switch (vvch) { + case 'H': + case 'h': goto vv249; + default: goto vv54; + } +vv206: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv238; + default: goto vv252; + } +vv207: + ++VVCURSOR; + { + s->whitespace_control = 0; + token->opcode = PHVOLT_T_OPEN_DELIMITER; + return 0; } - ZEPHIR_INIT_NVAR(&_19$$7); - ZVAL_STRING(&_19$$7, "Imagick::EVALUATE_MULTIPLY"); - ZEPHIR_CALL_FUNCTION(&_25$$7, "constant", &_21, 128, &_19$$7); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_19$$7); - ZVAL_STRING(&_19$$7, "Imagick::CHANNEL_ALPHA"); - ZEPHIR_CALL_FUNCTION(&_26$$7, "constant", &_21, 128, &_19$$7); - zephir_check_call_status(); - ZVAL_LONG(&_22$$7, opacity); - ZEPHIR_CALL_METHOD(NULL, &reflection, "evaluateimage", &_27, 0, &_25$$7, &_22$$7, &_26$$7); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_28$$7, &reflection, "nextimage", &_29, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_28$$7)) { - break; +vv209: + ++VVCURSOR; + { + s->whitespace_control = 0; + s->statement_position++; + token->opcode = PHVOLT_T_OPEN_EDELIMITER; + return 0; } - } - ZEPHIR_CALL_METHOD(NULL, &fade, "destroy", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&image); - object_init_ex(&image, zephir_get_internal_ce(SL("imagick"))); - ZEPHIR_CALL_METHOD(NULL, &image, "__construct", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&pixel); - object_init_ex(&pixel, zephir_get_internal_ce(SL("imagickpixel"))); - ZEPHIR_CALL_METHOD(NULL, &pixel, "__construct", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_30, &_4, "getimageheight", NULL, 0); - zephir_check_call_status(); - height = (zephir_get_numberval(&_30) + height); - zephir_read_property(&_31, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_32, 0); - ZEPHIR_CALL_METHOD(NULL, &_31, "setiteratorindex", NULL, 0, &_32); - zephir_check_call_status(); - while (1) { - zephir_read_property(&_33$$10, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_34$$10, height); - ZEPHIR_CALL_METHOD(NULL, &image, "newimage", &_35, 0, &_33$$10, &_34$$10, &pixel); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_36$$10); - ZVAL_STRING(&_36$$10, "Imagick::ALPHACHANNEL_SET"); - ZEPHIR_CALL_FUNCTION(&_37$$10, "constant", &_21, 128, &_36$$10); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &image, "setimagealphachannel", &_38, 0, &_37$$10); - zephir_check_call_status(); - zephir_read_property(&_34$$10, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_39$$10, &_34$$10, "getcolorspace", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &image, "setcolorspace", &_40, 0, &_39$$10); - zephir_check_call_status(); - zephir_read_property(&_41$$10, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_42$$10, &_41$$10, "getimagedelay", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &image, "setimagedelay", &_43, 0, &_42$$10); - zephir_check_call_status(); - zephir_read_property(&_44$$10, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_36$$10); - ZVAL_STRING(&_36$$10, "Imagick::COMPOSITE_SRC"); - ZEPHIR_CALL_FUNCTION(&_45$$10, "constant", &_21, 128, &_36$$10); - zephir_check_call_status(); - ZVAL_LONG(&_46$$10, 0); - ZVAL_LONG(&_47$$10, 0); - ZEPHIR_CALL_METHOD(&ret, &image, "compositeimage", &_48, 0, &_44$$10, &_45$$10, &_46$$10, &_47$$10); - zephir_check_call_status(); - if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&ret))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "Imagick::compositeImage failed", "phalcon/Image/Adapter/Imagick.zep", 486); - return; +vv211: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv253; + default: goto vv54; + } +vv212: + vvch = *++VVCURSOR; + switch (vvch) { + case 'K': + case 'k': goto vv254; + default: goto vv54; + } +vv213: + vvch = *++VVCURSOR; + switch (vvch) { + case 'K': + case 'k': goto vv256; + default: goto vv54; + } +vv214: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv258; + default: goto vv54; + } +vv215: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv216; + } +vv216: + { + s->statement_position++; + token->opcode = PHVOLT_T_CALL; + return 0; } - zephir_read_property(&_46$$10, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_49$$10, &_46$$10, "nextimage", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_49$$10)) { - break; +vv217: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv218; + } +vv218: + { + token->opcode = PHVOLT_T_CASE; + return 0; } - } - ZVAL_LONG(&_32, 0); - ZEPHIR_CALL_METHOD(NULL, &image, "setiteratorindex", NULL, 0, &_32); - zephir_check_call_status(); - ZVAL_LONG(&_32, 0); - ZEPHIR_CALL_METHOD(NULL, &reflection, "setiteratorindex", NULL, 0, &_32); - zephir_check_call_status(); - while (1) { - ZEPHIR_INIT_NVAR(&_50$$13); - ZVAL_STRING(&_50$$13, "Imagick::COMPOSITE_OVER"); - ZEPHIR_CALL_FUNCTION(&_51$$13, "constant", &_21, 128, &_50$$13); - zephir_check_call_status(); - zephir_read_property(&_52$$13, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_53$$13, 0); - ZEPHIR_CALL_METHOD(&ret, &image, "compositeimage", &_48, 0, &reflection, &_51$$13, &_53$$13, &_52$$13); - zephir_check_call_status(); - if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&ret))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "Imagick::compositeImage failed", "phalcon/Image/Adapter/Imagick.zep", 506); - return; +vv219: + vvch = *++VVCURSOR; + switch (vvch) { + case 'I': + case 'i': goto vv260; + default: goto vv54; + } +vv220: + vvch = *++VVCURSOR; + switch (vvch) { + case 'U': + case 'u': goto vv261; + default: goto vv54; + } +vv221: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv262; + default: goto vv54; + } +vv222: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'G': + case 'H': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'g': + case 'h': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + case 'F': + case 'f': goto vv263; + case 'I': + case 'i': goto vv264; + default: goto vv223; + } +vv223: + { + token->opcode = PHVOLT_T_ELSE; + return 0; } - ZEPHIR_CALL_METHOD(&_54$$13, &image, "nextimage", &_55, 0); - zephir_check_call_status(); - _56$$13 = ZEPHIR_IS_FALSE_IDENTICAL(&_54$$13); - if (!(_56$$13)) { - ZEPHIR_CALL_METHOD(&_57$$13, &reflection, "nextimage", NULL, 0); - zephir_check_call_status(); - _56$$13 = ZEPHIR_IS_FALSE_IDENTICAL(&_57$$13); +vv224: + vvch = *++VVCURSOR; + switch (vvch) { + case 'Y': + case 'y': goto vv265; + default: goto vv54; + } +vv225: + vvch = *++VVCURSOR; + switch (vvch) { + case 'U': + case 'u': goto vv267; + default: goto vv54; + } +vv226: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv268; + default: goto vv54; + } +vv227: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv269; + default: goto vv54; + } +vv228: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv270; + default: goto vv54; + } +vv229: + vvch = *++VVCURSOR; + switch (vvch) { + case 'F': + case 'f': goto vv271; + default: goto vv54; + } +vv230: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv273; + default: goto vv54; + } +vv231: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv274; + default: goto vv54; + } +vv232: + vvch = *++VVCURSOR; + switch (vvch) { + case 'W': + case 'w': goto vv275; + default: goto vv54; + } +vv233: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv234; + } +vv234: + { + s->statement_position++; + token->opcode = PHVOLT_T_EVEN; + return 0; } - if (_56$$13) { - break; +vv235: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv276; + default: goto vv54; + } +vv236: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv277; + default: goto vv54; + } +vv237: + vvch = *++VVCURSOR; + switch (vvch) { + case 'U': + case 'u': goto vv279; + default: goto vv54; + } +vv238: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv280; + default: goto vv81; + } +vv239: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv281; + default: goto vv54; + } +vv240: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv282; + default: goto vv54; + } +vv241: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv242; + } +vv242: + { + token->opcode = PHVOLT_T_NULL; + return 0; } - } - ZEPHIR_CALL_METHOD(NULL, &reflection, "destroy", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_32, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_32, "clear", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_58, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_58, "destroy", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &image); - zephir_read_property(&_59, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_60, &_59, "getimagewidth", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_60); - zephir_read_property(&_61, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_62, &_61, "getimageheight", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_62); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processRender) -{ - zend_bool _8$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long quality, ZEPHIR_LAST_CALL_STATUS; - zval *extension_param = NULL, *quality_param = NULL, image, _0, _1, _2, _3, _4, _5, _6$$4, _7$$4, _9$$4, _12$$4, _10$$5, _11$$5; - zval extension; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&extension); - ZVAL_UNDEF(&image); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_12$$4); - ZVAL_UNDEF(&_10$$5); - ZVAL_UNDEF(&_11$$5); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(extension) - Z_PARAM_LONG(quality) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &extension_param, &quality_param); - zephir_get_strval(&extension, extension_param); - quality = zephir_get_intval(quality_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&image, &_0); - ZEPHIR_CALL_METHOD(NULL, &image, "setformat", NULL, 0, &extension); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &image, "setimageformat", NULL, 0, &extension); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &image, "stripimage", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, &image, "getimagetype", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_1); - ZEPHIR_CALL_METHOD(&_2, &image, "getimageformat", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_3); - ZEPHIR_CONCAT_SV(&_3, "image/", &_2); - zephir_update_property_zval(this_ptr, ZEND_STRL("mime"), &_3); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "gif"); - ZEPHIR_CALL_FUNCTION(&_5, "strcasecmp", NULL, 47, &extension, &_4); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG_IDENTICAL(&_5, 0)) { - ZEPHIR_CALL_METHOD(NULL, &image, "optimizeimagelayers", NULL, 0); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_VAR(&_6$$4); - ZVAL_STRING(&_6$$4, "jpg"); - ZEPHIR_CALL_FUNCTION(&_7$$4, "strcasecmp", NULL, 47, &extension, &_6$$4); - zephir_check_call_status(); - _8$$4 = ZEPHIR_IS_LONG_IDENTICAL(&_7$$4, 0); - if (!(_8$$4)) { - ZEPHIR_INIT_NVAR(&_6$$4); - ZVAL_STRING(&_6$$4, "jpeg"); - ZEPHIR_CALL_FUNCTION(&_9$$4, "strcasecmp", NULL, 47, &extension, &_6$$4); - zephir_check_call_status(); - _8$$4 = ZEPHIR_IS_LONG_IDENTICAL(&_9$$4, 0); +vv243: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv284; + default: goto vv54; + } +vv244: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv285; + default: goto vv54; + } +vv245: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv286; + default: goto vv54; + } +vv246: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv287; + default: goto vv54; + } +vv247: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv248; + } +vv248: + { + token->opcode = PHVOLT_T_TRUE; + return 0; } - if (_8$$4) { - ZEPHIR_INIT_VAR(&_10$$5); - ZVAL_STRING(&_10$$5, "Imagick::COMPRESSION_JPEG"); - ZEPHIR_CALL_FUNCTION(&_11$$5, "constant", NULL, 128, &_10$$5); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &image, "setimagecompression", NULL, 0, &_11$$5); - zephir_check_call_status(); +vv249: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv250; + } +vv250: + { + token->opcode = PHVOLT_T_WITH; + return 0; } - ZVAL_LONG(&_12$$4, quality); - ZEPHIR_CALL_METHOD(NULL, &image, "setimagecompressionquality", NULL, 0, &_12$$4); - zephir_check_call_status(); - } - ZEPHIR_RETURN_CALL_METHOD(&image, "getimageblob", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processResize) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL, *_5 = NULL; - zval *width_param = NULL, *height_param = NULL, image, _0, _6, _7, _1$$3, _2$$3, _4$$3; - zend_long width, height, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&image); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_LONG(width) - Z_PARAM_LONG(height) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &width_param, &height_param); - width = zephir_get_intval(width_param); - height = zephir_get_intval(height_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&image, &_0); - ZVAL_LONG(&_0, 0); - ZEPHIR_CALL_METHOD(NULL, &image, "setiteratorindex", NULL, 0, &_0); - zephir_check_call_status(); - while (1) { - ZVAL_LONG(&_1$$3, width); - ZVAL_LONG(&_2$$3, height); - ZEPHIR_CALL_METHOD(NULL, &image, "scaleimage", &_3, 0, &_1$$3, &_2$$3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_4$$3, &image, "nextimage", &_5, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_4$$3)) { - break; +vv251: + vvch = *++VVCURSOR; +vv252: + switch (vvch) { + case ' ': goto vv251; + case 'n': goto vv288; + default: goto vv81; + } +vv253: + vvch = *++VVCURSOR; + switch (vvch) { + case 'S': + case 's': goto vv289; + default: goto vv54; + } +vv254: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv255; + } +vv255: + { + s->statement_position++; + token->opcode = PHVOLT_T_BLOCK; + return 0; } - } - ZEPHIR_CALL_METHOD(&_6, &image, "getimagewidth", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_6); - ZEPHIR_CALL_METHOD(&_7, &image, "getimageheight", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_7); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processRotate) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *degrees_param = NULL, pixel, _0, _1, _9, _10, _11, _2$$3, _3$$3, _4$$3, _5$$3, _6$$3, _7$$3, _8$$3; - zend_long degrees, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&pixel); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_8$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(degrees) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, °rees_param); - degrees = zephir_get_intval(degrees_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_1, 0); - ZEPHIR_CALL_METHOD(NULL, &_0, "setiteratorindex", NULL, 0, &_1); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&pixel); - object_init_ex(&pixel, zephir_get_internal_ce(SL("imagickpixel"))); - ZEPHIR_CALL_METHOD(NULL, &pixel, "__construct", NULL, 0); - zephir_check_call_status(); - while (1) { - zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_3$$3, degrees); - ZEPHIR_CALL_METHOD(NULL, &_2$$3, "rotateimage", NULL, 0, &pixel, &_3$$3); - zephir_check_call_status(); - zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_4$$3, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_6$$3, 0); - ZVAL_LONG(&_7$$3, 0); - ZEPHIR_CALL_METHOD(NULL, &_3$$3, "setimagepage", NULL, 0, &_4$$3, &_5$$3, &_6$$3, &_7$$3); - zephir_check_call_status(); - zephir_read_property(&_6$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_8$$3, &_6$$3, "nextimage", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_8$$3)) { - break; - } - } - zephir_read_property(&_1, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_9, &_1, "getimagewidth", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_9); - zephir_read_property(&_10, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_11, &_10, "getimageheight", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_11); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processSave) -{ - zend_bool _13; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long quality, ZEPHIR_LAST_CALL_STATUS; - zval *file_param = NULL, *quality_param = NULL, ext, fp, _0, _1, _2, _3, _4, _5, _6, _7, _8, _12, _14, _20, _9$$3, _10$$3, _11$$3, _15$$4, _16$$4, _17$$4, _18$$5, _19$$5; - zval file; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&file); - ZVAL_UNDEF(&ext); - ZVAL_UNDEF(&fp); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_20); - ZVAL_UNDEF(&_9$$3); - ZVAL_UNDEF(&_10$$3); - ZVAL_UNDEF(&_11$$3); - ZVAL_UNDEF(&_15$$4); - ZVAL_UNDEF(&_16$$4); - ZVAL_UNDEF(&_17$$4); - ZVAL_UNDEF(&_18$$5); - ZVAL_UNDEF(&_19$$5); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(file) - Z_PARAM_LONG(quality) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &file_param, &quality_param); - zephir_get_strval(&file, file_param); - quality = zephir_get_intval(quality_param); - - - ZVAL_LONG(&_0, 4); - ZEPHIR_CALL_FUNCTION(&ext, "pathinfo", NULL, 109, &file, &_0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_0, "setformat", NULL, 0, &ext); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_1, "setimageformat", NULL, 0, &ext); - zephir_check_call_status(); - zephir_read_property(&_2, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_3, &_2, "getimagetype", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_3); - zephir_read_property(&_4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_5, &_4, "getimageformat", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_6); - ZEPHIR_CONCAT_SV(&_6, "image/", &_5); - zephir_update_property_zval(this_ptr, ZEND_STRL("mime"), &_6); - ZEPHIR_INIT_VAR(&_7); - ZVAL_STRING(&_7, "gif"); - ZEPHIR_CALL_FUNCTION(&_8, "strcasecmp", NULL, 47, &ext, &_7); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&_8, 0)) { - zephir_read_property(&_9$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_9$$3, "optimizeimagelayers", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_10$$3); - ZVAL_STRING(&_10$$3, "w"); - ZEPHIR_CALL_FUNCTION(&fp, "fopen", NULL, 89, &file, &_10$$3); - zephir_check_call_status(); - zephir_read_property(&_11$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_11$$3, "writeimagesfile", NULL, 0, &fp); - zephir_check_call_status(); - zephir_fclose(&fp); - RETURN_MM_NULL(); - } - ZEPHIR_INIT_NVAR(&_7); - ZVAL_STRING(&_7, "jpg"); - ZEPHIR_CALL_FUNCTION(&_12, "strcasecmp", NULL, 47, &ext, &_7); - zephir_check_call_status(); - _13 = ZEPHIR_IS_LONG(&_12, 0); - if (!(_13)) { - ZEPHIR_INIT_NVAR(&_7); - ZVAL_STRING(&_7, "jpeg"); - ZEPHIR_CALL_FUNCTION(&_14, "strcasecmp", NULL, 47, &ext, &_7); - zephir_check_call_status(); - _13 = ZEPHIR_IS_LONG(&_14, 0); - } - if (_13) { - zephir_read_property(&_15$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_16$$4); - ZVAL_STRING(&_16$$4, "Imagick::COMPRESSION_JPEG"); - ZEPHIR_CALL_FUNCTION(&_17$$4, "constant", NULL, 128, &_16$$4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_15$$4, "setimagecompression", NULL, 0, &_17$$4); - zephir_check_call_status(); - } - if (quality >= 0) { - if (quality < 1) { - quality = 1; - } else if (quality > 100) { - quality = 100; +vv256: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv257; + } +vv257: + { + s->statement_position++; + token->opcode = PHVOLT_T_BREAK; + return 0; } - zephir_read_property(&_18$$5, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_19$$5, quality); - ZEPHIR_CALL_METHOD(NULL, &_18$$5, "setimagecompressionquality", NULL, 0, &_19$$5); - zephir_check_call_status(); - } - zephir_read_property(&_20, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_20, "writeimage", NULL, 0, &file); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processSharpen) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *amount_param = NULL, _0, _1, _2, _3$$3, _4$$3, _5$$3, _6$$3; - zend_long amount, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(amount) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &amount_param); - amount = zephir_get_intval(amount_param); - - - ZEPHIR_INIT_VAR(&_0); - if (amount < 5) { - ZEPHIR_INIT_NVAR(&_0); - ZVAL_LONG(&_0, 5); - } else { - ZEPHIR_INIT_NVAR(&_0); - ZVAL_LONG(&_0, amount); - } - amount = zephir_get_numberval(&_0); - amount = (long) (zephir_safe_div_long_long(((amount * 3.0)), 100)); - zephir_read_property(&_1, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_2, 0); - ZEPHIR_CALL_METHOD(NULL, &_1, "setiteratorindex", NULL, 0, &_2); - zephir_check_call_status(); - while (1) { - zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_4$$3, 0); - ZVAL_LONG(&_5$$3, amount); - ZEPHIR_CALL_METHOD(NULL, &_3$$3, "sharpenimage", NULL, 0, &_4$$3, &_5$$3); - zephir_check_call_status(); - zephir_read_property(&_4$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_6$$3, &_4$$3, "nextimage", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_6$$3)) { - break; +vv258: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv259; + } +vv259: + { + s->statement_position++; + token->opcode = PHVOLT_T_CACHE; + return 0; } - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processText) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long opacity, r, g, b, size, ZEPHIR_LAST_CALL_STATUS, x = 0, y = 0; - zval *text_param = NULL, *offsetX = NULL, offsetX_sub, *offsetY = NULL, offsetY_sub, *opacity_param = NULL, *r_param = NULL, *g_param = NULL, *b_param = NULL, *size_param = NULL, *fontfile_param = NULL, draw, color, gravity, _0, _1, _2, _3, _4$$4, _5$$5, _6$$7, _7$$11, _8$$12, _9$$14, _10$$15, _11$$21, _12$$22, _13$$24, _14$$25, _15$$29, _16$$30, _17$$32, _18$$33, _19$$34, _20$$34, _21$$34; - zval text, fontfile; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&fontfile); - ZVAL_UNDEF(&offsetX_sub); - ZVAL_UNDEF(&offsetY_sub); - ZVAL_UNDEF(&draw); - ZVAL_UNDEF(&color); - ZVAL_UNDEF(&gravity); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_6$$7); - ZVAL_UNDEF(&_7$$11); - ZVAL_UNDEF(&_8$$12); - ZVAL_UNDEF(&_9$$14); - ZVAL_UNDEF(&_10$$15); - ZVAL_UNDEF(&_11$$21); - ZVAL_UNDEF(&_12$$22); - ZVAL_UNDEF(&_13$$24); - ZVAL_UNDEF(&_14$$25); - ZVAL_UNDEF(&_15$$29); - ZVAL_UNDEF(&_16$$30); - ZVAL_UNDEF(&_17$$32); - ZVAL_UNDEF(&_18$$33); - ZVAL_UNDEF(&_19$$34); - ZVAL_UNDEF(&_20$$34); - ZVAL_UNDEF(&_21$$34); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(9, 9) - Z_PARAM_STR(text) - Z_PARAM_ZVAL(offsetX) - Z_PARAM_ZVAL(offsetY) - Z_PARAM_LONG(opacity) - Z_PARAM_LONG(r) - Z_PARAM_LONG(g) - Z_PARAM_LONG(b) - Z_PARAM_LONG(size) - Z_PARAM_STR(fontfile) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 9, 0, &text_param, &offsetX, &offsetY, &opacity_param, &r_param, &g_param, &b_param, &size_param, &fontfile_param); - zephir_get_strval(&text, text_param); - ZEPHIR_SEPARATE_PARAM(offsetX); - ZEPHIR_SEPARATE_PARAM(offsetY); - opacity = zephir_get_intval(opacity_param); - r = zephir_get_intval(r_param); - g = zephir_get_intval(g_param); - b = zephir_get_intval(b_param); - size = zephir_get_intval(size_param); - zephir_get_strval(&fontfile, fontfile_param); - - - opacity = (long) (zephir_safe_div_long_long(opacity, 100)); - ZEPHIR_INIT_VAR(&draw); - object_init_ex(&draw, zephir_get_internal_ce(SL("imagickdraw"))); - ZEPHIR_CALL_METHOD(NULL, &draw, "__construct", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "rgb(%d, %d, %d)"); - ZVAL_LONG(&_1, r); - ZVAL_LONG(&_2, g); - ZVAL_LONG(&_3, b); - ZEPHIR_CALL_FUNCTION(&color, "sprintf", NULL, 194, &_0, &_1, &_2, &_3); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_0); - object_init_ex(&_0, zephir_get_internal_ce(SL("imagickpixel"))); - ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 0, &color); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &draw, "setfillcolor", NULL, 0, &_0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&fontfile))) { - ZEPHIR_CALL_METHOD(NULL, &draw, "setfont", NULL, 0, &fontfile); - zephir_check_call_status(); - } - if (size) { - ZVAL_LONG(&_4$$4, size); - ZEPHIR_CALL_METHOD(NULL, &draw, "setfontsize", NULL, 0, &_4$$4); - zephir_check_call_status(); - } - if (opacity) { - ZVAL_LONG(&_5$$5, opacity); - ZEPHIR_CALL_METHOD(NULL, &draw, "setfillopacity", NULL, 0, &_5$$5); - zephir_check_call_status(); - } - ZEPHIR_INIT_VAR(&gravity); - ZVAL_NULL(&gravity); - if (((Z_TYPE_P(offsetX) == IS_TRUE || Z_TYPE_P(offsetX) == IS_FALSE) == 1)) { - if (((Z_TYPE_P(offsetY) == IS_TRUE || Z_TYPE_P(offsetY) == IS_FALSE) == 1)) { - ZEPHIR_INIT_NVAR(offsetX); - ZVAL_LONG(offsetX, 0); - ZEPHIR_INIT_NVAR(offsetY); - ZVAL_LONG(offsetY, 0); - ZEPHIR_INIT_VAR(&_6$$7); - ZVAL_STRING(&_6$$7, "Imagick::GRAVITY_CENTER"); - ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_6$$7); - zephir_check_call_status(); - } else { - if (Z_TYPE_P(offsetY) == IS_LONG) { - y = zephir_get_intval(offsetY); - if (zephir_is_true(offsetX)) { - ZEPHIR_INIT_NVAR(offsetX); - if (y < 0) { - ZVAL_LONG(offsetX, 0); - ZEPHIR_INIT_NVAR(offsetY); - ZVAL_LONG(offsetY, (y * -1)); - ZEPHIR_INIT_VAR(&_7$$11); - ZVAL_STRING(&_7$$11, "Imagick::GRAVITY_SOUTHEAST"); - ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_7$$11); - zephir_check_call_status(); - } else { - ZVAL_LONG(offsetX, 0); - ZEPHIR_INIT_VAR(&_8$$12); - ZVAL_STRING(&_8$$12, "Imagick::GRAVITY_NORTHEAST"); - ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_8$$12); - zephir_check_call_status(); - } - } else { - ZEPHIR_INIT_NVAR(offsetX); - if (y < 0) { - ZVAL_LONG(offsetX, 0); - ZEPHIR_INIT_NVAR(offsetY); - ZVAL_LONG(offsetY, (y * -1)); - ZEPHIR_INIT_VAR(&_9$$14); - ZVAL_STRING(&_9$$14, "Imagick::GRAVITY_SOUTH"); - ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_9$$14); - zephir_check_call_status(); - } else { - ZVAL_LONG(offsetX, 0); - ZEPHIR_INIT_VAR(&_10$$15); - ZVAL_STRING(&_10$$15, "Imagick::GRAVITY_NORTH"); - ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_10$$15); - zephir_check_call_status(); - } - } +vv260: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv290; + default: goto vv54; + } +vv261: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv291; + default: goto vv54; + } +vv262: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv292; + default: goto vv54; + } +vv263: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv293; + default: goto vv54; + } +vv264: + vvch = *++VVCURSOR; + switch (vvch) { + case 'F': + case 'f': goto vv294; + default: goto vv54; + } +vv265: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv266; } +vv266: + { + s->statement_position++; + token->opcode = PHVOLT_T_EMPTY; + return 0; } - } else { - if (Z_TYPE_P(offsetX) == IS_LONG) { - x = zephir_get_intval(offsetX); - if (zephir_is_true(offsetX)) { - if (((Z_TYPE_P(offsetY) == IS_TRUE || Z_TYPE_P(offsetY) == IS_FALSE) == 1)) { - if (zephir_is_true(offsetY)) { - ZEPHIR_INIT_NVAR(offsetY); - if (x < 0) { - ZEPHIR_INIT_NVAR(offsetX); - ZVAL_LONG(offsetX, (x * -1)); - ZVAL_LONG(offsetY, 0); - ZEPHIR_INIT_VAR(&_11$$21); - ZVAL_STRING(&_11$$21, "Imagick::GRAVITY_SOUTHEAST"); - ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_11$$21); - zephir_check_call_status(); - } else { - ZVAL_LONG(offsetY, 0); - ZEPHIR_INIT_VAR(&_12$$22); - ZVAL_STRING(&_12$$22, "Imagick::GRAVITY_SOUTH"); - ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_12$$22); - zephir_check_call_status(); - } - } else { - ZEPHIR_INIT_NVAR(offsetY); - if (x < 0) { - ZEPHIR_INIT_NVAR(offsetX); - ZVAL_LONG(offsetX, (x * -1)); - ZVAL_LONG(offsetY, 0); - ZEPHIR_INIT_VAR(&_13$$24); - ZVAL_STRING(&_13$$24, "Imagick::GRAVITY_EAST"); - ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_13$$24); - zephir_check_call_status(); - } else { - ZVAL_LONG(offsetY, 0); - ZEPHIR_INIT_VAR(&_14$$25); - ZVAL_STRING(&_14$$25, "Imagick::GRAVITY_WEST"); - ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_14$$25); - zephir_check_call_status(); - } - } - } else { - if (Z_TYPE_P(offsetY) == IS_LONG) { - x = zephir_get_intval(offsetX); - y = zephir_get_intval(offsetY); - if (x < 0) { - ZEPHIR_INIT_NVAR(offsetX); - if (y < 0) { - ZVAL_LONG(offsetX, (x * -1)); - ZEPHIR_INIT_NVAR(offsetY); - ZVAL_LONG(offsetY, (y * -1)); - ZEPHIR_INIT_VAR(&_15$$29); - ZVAL_STRING(&_15$$29, "Imagick::GRAVITY_SOUTHEAST"); - ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_15$$29); - zephir_check_call_status(); - } else { - ZVAL_LONG(offsetX, (x * -1)); - ZEPHIR_INIT_VAR(&_16$$30); - ZVAL_STRING(&_16$$30, "Imagick::GRAVITY_NORTHEAST"); - ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_16$$30); - zephir_check_call_status(); - } - } else { - ZEPHIR_INIT_NVAR(offsetX); - if (y < 0) { - ZVAL_LONG(offsetX, 0); - ZEPHIR_INIT_NVAR(offsetY); - ZVAL_LONG(offsetY, (y * -1)); - ZEPHIR_INIT_VAR(&_17$$32); - ZVAL_STRING(&_17$$32, "Imagick::GRAVITY_SOUTHWEST"); - ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_17$$32); - zephir_check_call_status(); - } else { - ZVAL_LONG(offsetX, 0); - ZEPHIR_INIT_VAR(&_18$$33); - ZVAL_STRING(&_18$$33, "Imagick::GRAVITY_NORTHWEST"); - ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_18$$33); - zephir_check_call_status(); - } - } - } - } +vv267: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv296; + default: goto vv54; + } +vv268: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv297; + default: goto vv54; + } +vv269: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv298; + case 'L': + case 'l': goto vv299; + default: goto vv54; + } +vv270: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv300; + default: goto vv54; + } +vv271: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv272; } +vv272: + { + token->opcode = PHVOLT_T_ENDIF; + return 0; } - } - ZEPHIR_CALL_METHOD(NULL, &draw, "setgravity", NULL, 0, &gravity); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_2, 0); - ZEPHIR_CALL_METHOD(NULL, &_1, "setiteratorindex", NULL, 0, &_2); - zephir_check_call_status(); - while (1) { - zephir_read_property(&_19$$34, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_20$$34, 0); - ZEPHIR_CALL_METHOD(NULL, &_19$$34, "annotateimage", NULL, 0, &draw, offsetX, offsetY, &_20$$34, &text); - zephir_check_call_status(); - zephir_read_property(&_20$$34, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_21$$34, &_20$$34, "nextimage", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_21$$34)) { - break; +vv273: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv302; + default: goto vv54; + } +vv274: + vvch = *++VVCURSOR; + switch (vvch) { + case 'W': + case 'w': goto vv303; + default: goto vv54; + } +vv275: + vvch = *++VVCURSOR; + switch (vvch) { + case 'I': + case 'i': goto vv305; + default: goto vv54; + } +vv276: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv306; + default: goto vv54; + } +vv277: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv278; + } +vv278: + { + token->opcode = PHVOLT_T_FALSE; + return 0; } - } - ZEPHIR_CALL_METHOD(NULL, &draw, "destroy", NULL, 0); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processWatermark) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long offsetX, offsetY, opacity, ZEPHIR_LAST_CALL_STATUS; - zval *image, image_sub, *offsetX_param = NULL, *offsetY_param = NULL, *opacity_param = NULL, watermark, ret, _0, _1, _2, _3, _4, _5, _6$$3, _7$$3, _8$$3, _9$$3, _10$$3, _11$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&image_sub); - ZVAL_UNDEF(&watermark); - ZVAL_UNDEF(&ret); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_8$$3); - ZVAL_UNDEF(&_9$$3); - ZVAL_UNDEF(&_10$$3); - ZVAL_UNDEF(&_11$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(4, 4) - Z_PARAM_OBJECT_OF_CLASS(image, phalcon_image_adapter_adapterinterface_ce) - Z_PARAM_LONG(offsetX) - Z_PARAM_LONG(offsetY) - Z_PARAM_LONG(opacity) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 4, 0, &image, &offsetX_param, &offsetY_param, &opacity_param); - offsetX = zephir_get_intval(offsetX_param); - offsetY = zephir_get_intval(offsetY_param); - opacity = zephir_get_intval(opacity_param); - - - opacity = (long) (zephir_safe_div_long_long(opacity, 100)); - ZEPHIR_INIT_VAR(&watermark); - object_init_ex(&watermark, zephir_get_internal_ce(SL("imagick"))); - ZEPHIR_CALL_METHOD(NULL, &watermark, "__construct", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, image, "render", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &watermark, "readimageblob", NULL, 0, &_0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "Imagick::EVALUATE_MULTIPLY"); - ZEPHIR_CALL_FUNCTION(&_2, "constant", NULL, 128, &_1); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "Imagick::CHANNEL_ALPHA"); - ZEPHIR_CALL_FUNCTION(&_3, "constant", NULL, 128, &_1); - zephir_check_call_status(); - ZVAL_LONG(&_4, opacity); - ZEPHIR_CALL_METHOD(NULL, &watermark, "evaluateimage", NULL, 0, &_2, &_4, &_3); - zephir_check_call_status(); - zephir_read_property(&_4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_5, 0); - ZEPHIR_CALL_METHOD(NULL, &_4, "setiteratorindex", NULL, 0, &_5); - zephir_check_call_status(); - while (1) { - zephir_read_property(&_6$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_7$$3); - ZVAL_STRING(&_7$$3, "Imagick::COMPOSITE_OVER"); - ZEPHIR_CALL_FUNCTION(&_8$$3, "constant", NULL, 128, &_7$$3); - zephir_check_call_status(); - ZVAL_LONG(&_9$$3, offsetX); - ZVAL_LONG(&_10$$3, offsetY); - ZEPHIR_CALL_METHOD(&ret, &_6$$3, "compositeimage", NULL, 0, &watermark, &_8$$3, &_9$$3, &_10$$3); - zephir_check_call_status(); - if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&ret))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "Imagick::compositeImage failed", "phalcon/Image/Adapter/Imagick.zep", 834); - return; - } - zephir_read_property(&_9$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_11$$3, &_9$$3, "nextimage", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_11$$3)) { - break; - } - } - ZEPHIR_CALL_METHOD(NULL, &watermark, "clear", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &watermark, "destroy", NULL, 0); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Loader_Exception) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Loader, Exception, phalcon, loader_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Logger_AdapterFactory) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Logger, AdapterFactory, phalcon, logger_adapterfactory, phalcon_factory_abstractfactory_ce, phalcon_logger_adapterfactory_method_entry, 0); - - zend_declare_property_string(phalcon_logger_adapterfactory_ce, SL("exception"), "Phalcon\\Logger\\Exception", ZEND_ACC_PROTECTED); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Logger_AdapterFactory, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *services_param = NULL; - zval services; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&services); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(services) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &services_param); - if (!services_param) { - ZEPHIR_INIT_VAR(&services); - array_init(&services); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&services, services_param); - } - - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "init", NULL, 0, &services); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Logger_AdapterFactory, newInstance) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval options, _0; - zval *name_param = NULL, *fileName_param = NULL, *options_param = NULL, definition; - zval name, fileName; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&fileName); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(name) - Z_PARAM_STR(fileName) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &name_param, &fileName_param, &options_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - if (UNEXPECTED(Z_TYPE_P(fileName_param) != IS_STRING && Z_TYPE_P(fileName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'fileName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(fileName_param) == IS_STRING)) { - zephir_get_strval(&fileName, fileName_param); - } else { - ZEPHIR_INIT_VAR(&fileName); - } - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); - } else { - zephir_get_arrval(&options, options_param); - } - - - ZEPHIR_CALL_METHOD(&definition, this_ptr, "getservice", NULL, 0, &name); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 2, 0); - zephir_array_fast_append(&_0, &fileName); - zephir_array_fast_append(&_0, &options); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(return_value, &definition, &_0); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Logger_AdapterFactory, getAdapters) -{ - zval *this_ptr = getThis(); - - - - zephir_create_array(return_value, 3, 0); - add_assoc_stringl_ex(return_value, SL("noop"), SL("Phalcon\\Logger\\Adapter\\Noop")); - add_assoc_stringl_ex(return_value, SL("stream"), SL("Phalcon\\Logger\\Adapter\\Stream")); - add_assoc_stringl_ex(return_value, SL("syslog"), SL("Phalcon\\Logger\\Adapter\\Syslog")); - return; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Logger_Exception) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Logger, Exception, phalcon, logger_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Logger_Item) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Logger, Item, phalcon, logger_item, phalcon_logger_item_method_entry, 0); - - zend_declare_property_null(phalcon_logger_item_ce, SL("context"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_logger_item_ce, SL("message"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_logger_item_ce, SL("level"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_logger_item_ce, SL("levelName"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_logger_item_ce, SL("time"), ZEND_ACC_PROTECTED); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Logger_Item, getContext) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "context"); -} - -static PHP_METHOD(Phalcon_Logger_Item, getMessage) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "message"); -} - -static PHP_METHOD(Phalcon_Logger_Item, getLevel) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "level"); -} - -static PHP_METHOD(Phalcon_Logger_Item, getLevelName) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "levelName"); -} - -static PHP_METHOD(Phalcon_Logger_Item, getTime) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "time"); -} - -static PHP_METHOD(Phalcon_Logger_Item, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval context; - zend_long level; - zval *message_param = NULL, *levelName_param = NULL, *level_param = NULL, *time, time_sub, *context_param = NULL, _0; - zval message, levelName; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&levelName); - ZVAL_UNDEF(&time_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&context); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(4, 5) - Z_PARAM_STR(message) - Z_PARAM_STR(levelName) - Z_PARAM_LONG(level) - Z_PARAM_OBJECT_OF_CLASS(time, php_date_get_immutable_ce()) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(context) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 4, 1, &message_param, &levelName_param, &level_param, &time, &context_param); - zephir_get_strval(&message, message_param); - zephir_get_strval(&levelName, levelName_param); - level = zephir_get_intval(level_param); - if (!context_param) { - ZEPHIR_INIT_VAR(&context); - array_init(&context); - } else { - zephir_get_arrval(&context, context_param); - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("message"), &message); - zephir_update_property_zval(this_ptr, ZEND_STRL("levelName"), &levelName); - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, level); - zephir_update_property_zval(this_ptr, ZEND_STRL("level"), &_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("time"), time); - zephir_update_property_zval(this_ptr, ZEND_STRL("context"), &context); - ZEPHIR_MM_RESTORE(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Logger_LoggerFactory) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Logger, LoggerFactory, phalcon, logger_loggerfactory, phalcon_logger_loggerfactory_method_entry, 0); - - zend_declare_property_null(phalcon_logger_loggerfactory_ce, SL("adapterFactory"), ZEND_ACC_PRIVATE); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Logger_LoggerFactory, __construct) -{ - zval *factory, factory_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&factory_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_logger_adapterfactory_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &factory); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("adapterFactory"), factory); -} - -static PHP_METHOD(Phalcon_Logger_LoggerFactory, load) -{ - zend_bool _0; - zval data; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_2 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *config = NULL, config_sub, adapter, adapterClass, adapterFileName, adapterOptions, adapters, name, options, _3, _4, _5, *_6, _7, _1$$3, _8$$6, _9$$6, _10$$6, _11$$6, _12$$7, _13$$7, _14$$7, _15$$7; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&config_sub); - ZVAL_UNDEF(&adapter); - ZVAL_UNDEF(&adapterClass); - ZVAL_UNDEF(&adapterFileName); - ZVAL_UNDEF(&adapterOptions); - ZVAL_UNDEF(&adapters); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_8$$6); - ZVAL_UNDEF(&_9$$6); - ZVAL_UNDEF(&_10$$6); - ZVAL_UNDEF(&_11$$6); - ZVAL_UNDEF(&_12$$7); - ZVAL_UNDEF(&_13$$7); - ZVAL_UNDEF(&_14$$7); - ZVAL_UNDEF(&_15$$7); - ZVAL_UNDEF(&data); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(config) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &config); - ZEPHIR_SEPARATE_PARAM(config); - - - _0 = Z_TYPE_P(config) == IS_OBJECT; - if (_0) { - _0 = zephir_instance_of_ev(config, phalcon_config_configinterface_ce); - } - if (_0) { - ZEPHIR_CALL_METHOD(&_1$$3, config, "toarray", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(config, &_1$$3); - } - if (UNEXPECTED(Z_TYPE_P(config) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_logger_exception_ce, "Config must be array or Phalcon\\Config object", "phalcon/Logger/LoggerFactory.zep", 64); - return; - } - if (UNEXPECTED(!(zephir_array_isset_string(config, SL("name"))))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_logger_exception_ce, "You must provide 'name' option in factory config parameter.", "phalcon/Logger/LoggerFactory.zep", 70); - return; - } - ZEPHIR_OBS_VAR(&name); - zephir_array_fetch_string(&name, config, SL("name"), PH_NOISY, "phalcon/Logger/LoggerFactory.zep", 73); - ZEPHIR_INIT_VAR(&_3); - array_init(&_3); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "options"); - ZEPHIR_CALL_CE_STATIC(&options, phalcon_helper_arr_ce, "get", &_2, 16, config, &_4, &_3); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_4); - array_init(&_4); - ZEPHIR_INIT_VAR(&_5); - ZVAL_STRING(&_5, "adapters"); - ZEPHIR_CALL_CE_STATIC(&adapters, phalcon_helper_arr_ce, "get", &_2, 16, config, &_5, &_4); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&data); - array_init(&data); - zephir_is_iterable(&adapters, 0, "phalcon/Logger/LoggerFactory.zep", 90); - if (Z_TYPE_P(&adapters) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&adapters), _6) - { - ZEPHIR_INIT_NVAR(&adapter); - ZVAL_COPY(&adapter, _6); - ZEPHIR_INIT_NVAR(&_8$$6); - ZVAL_STRING(&_8$$6, "adapter"); - ZEPHIR_CALL_CE_STATIC(&adapterClass, phalcon_helper_arr_ce, "get", &_2, 16, &adapter, &_8$$6); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_8$$6); - ZVAL_STRING(&_8$$6, "name"); - ZEPHIR_CALL_CE_STATIC(&adapterFileName, phalcon_helper_arr_ce, "get", &_2, 16, &adapter, &_8$$6); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_8$$6); - array_init(&_8$$6); - ZEPHIR_INIT_NVAR(&_9$$6); - ZVAL_STRING(&_9$$6, "options"); - ZEPHIR_CALL_CE_STATIC(&adapterOptions, phalcon_helper_arr_ce, "get", &_2, 16, &adapter, &_9$$6, &_8$$6); - zephir_check_call_status(); - zephir_read_property(&_10$$6, this_ptr, ZEND_STRL("adapterFactory"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_11$$6, &_10$$6, "newinstance", NULL, 0, &adapterClass, &adapterFileName, &adapterOptions); - zephir_check_call_status(); - zephir_array_append(&data, &_11$$6, PH_SEPARATE, "phalcon/Logger/LoggerFactory.zep", 87); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &adapters, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_7, &adapters, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_7)) { - break; +vv279: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv307; + default: goto vv54; } - ZEPHIR_CALL_METHOD(&adapter, &adapters, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_12$$7); - ZVAL_STRING(&_12$$7, "adapter"); - ZEPHIR_CALL_CE_STATIC(&adapterClass, phalcon_helper_arr_ce, "get", &_2, 16, &adapter, &_12$$7); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_12$$7); - ZVAL_STRING(&_12$$7, "name"); - ZEPHIR_CALL_CE_STATIC(&adapterFileName, phalcon_helper_arr_ce, "get", &_2, 16, &adapter, &_12$$7); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_12$$7); - array_init(&_12$$7); - ZEPHIR_INIT_NVAR(&_13$$7); - ZVAL_STRING(&_13$$7, "options"); - ZEPHIR_CALL_CE_STATIC(&adapterOptions, phalcon_helper_arr_ce, "get", &_2, 16, &adapter, &_13$$7, &_12$$7); - zephir_check_call_status(); - zephir_read_property(&_14$$7, this_ptr, ZEND_STRL("adapterFactory"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_15$$7, &_14$$7, "newinstance", NULL, 0, &adapterClass, &adapterFileName, &adapterOptions); - zephir_check_call_status(); - zephir_array_append(&data, &_15$$7, PH_SEPARATE, "phalcon/Logger/LoggerFactory.zep", 87); - ZEPHIR_CALL_METHOD(NULL, &adapters, "next", NULL, 0); - zephir_check_call_status(); +vv280: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv308; + default: goto vv81; + } +vv281: + vvch = *++VVCURSOR; + switch (vvch) { + case 'B': + case 'b': goto vv310; + default: goto vv54; + } +vv282: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv283; + } +vv283: + { + s->statement_position++; + token->opcode = PHVOLT_T_MACRO; + return 0; } - } - ZEPHIR_INIT_NVAR(&adapter); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "newinstance", NULL, 0, &name, &data); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Logger_LoggerFactory, newInstance) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval adapters; - zval *name_param = NULL, *adapters_param = NULL; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&adapters); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(adapters) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &name_param, &adapters_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - if (!adapters_param) { - ZEPHIR_INIT_VAR(&adapters); - array_init(&adapters); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&adapters, adapters_param); - } - - - object_init_ex(return_value, phalcon_logger_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 419, &name, &adapters); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Logger_Adapter_AbstractAdapter) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Logger\\Adapter, AbstractAdapter, phalcon, logger_adapter_abstractadapter, phalcon_logger_adapter_abstractadapter_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_string(phalcon_logger_adapter_abstractadapter_ce, SL("defaultFormatter"), "Line", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_logger_adapter_abstractadapter_ce, SL("formatter"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_logger_adapter_abstractadapter_ce, SL("inTransaction"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_logger_adapter_abstractadapter_ce, SL("queue"), ZEND_ACC_PROTECTED); - phalcon_logger_adapter_abstractadapter_ce->create_object = zephir_init_properties_Phalcon_Logger_Adapter_AbstractAdapter; - - zend_class_implements(phalcon_logger_adapter_abstractadapter_ce, 1, phalcon_logger_adapter_adapterinterface_ce); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Logger_Adapter_AbstractAdapter, __destruct) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("inTransaction"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_logger_exception_ce, "There is an active transaction", "phalcon/Logger/Adapter/AbstractAdapter.zep", 54); - return; - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "close", NULL, 0); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Logger_Adapter_AbstractAdapter, __serialize) -{ - zval *this_ptr = getThis(); - - - - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_logger_exception_ce, "This object cannot be serialized", "phalcon/Logger/Adapter/AbstractAdapter.zep", 65); - return; -} - -static PHP_METHOD(Phalcon_Logger_Adapter_AbstractAdapter, __unserialize) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *data_param = NULL; - zval data; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&data); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(data) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &data_param); - zephir_get_arrval(&data, data_param); - - - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_logger_exception_ce, "This object cannot be unserialized", "phalcon/Logger/Adapter/AbstractAdapter.zep", 73); - return; -} - -static PHP_METHOD(Phalcon_Logger_Adapter_AbstractAdapter, add) -{ - zval *item, item_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&item_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(item, phalcon_logger_item_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &item); - - - zephir_update_property_array_append(this_ptr, SL("queue"), item); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Logger_Adapter_AbstractAdapter, begin) -{ - zval __$true, __$false; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - - - - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("inTransaction"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("inTransaction"), &__$false); - } - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Logger_Adapter_AbstractAdapter, commit) -{ - zval inTransaction, item, queue, _0, *_1, _2, _4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&inTransaction); - ZVAL_UNDEF(&item); - ZVAL_UNDEF(&queue); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("inTransaction"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&inTransaction, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("queue"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&queue, &_0); - if (!(zephir_is_true(&inTransaction))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_logger_exception_ce, "There is no active transaction", "phalcon/Logger/Adapter/AbstractAdapter.zep", 107); - return; - } - zephir_is_iterable(&queue, 0, "phalcon/Logger/Adapter/AbstractAdapter.zep", 118); - if (Z_TYPE_P(&queue) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&queue), _1) - { - ZEPHIR_INIT_NVAR(&item); - ZVAL_COPY(&item, _1); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "process", &_3, 0, &item); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &queue, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &queue, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; +vv284: + vvch = *++VVCURSOR; + switch (vvch) { + case 'I': + case 'i': goto vv311; + default: goto vv54; } - ZEPHIR_CALL_METHOD(&item, &queue, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "process", &_3, 0, &item); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &queue, "next", NULL, 0); - zephir_check_call_status(); +vv285: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv312; + default: goto vv54; + } +vv286: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv314; + default: goto vv54; + } +vv287: + vvch = *++VVCURSOR; + switch (vvch) { + case 'H': + case 'h': goto vv316; + default: goto vv54; + } +vv288: + vvch = *++VVCURSOR; + switch (vvch) { + case 'o': goto vv318; + default: goto vv81; + } +vv289: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv319; + default: goto vv54; + } +vv290: + vvch = *++VVCURSOR; + switch (vvch) { + case 'U': + case 'u': goto vv320; + default: goto vv54; + } +vv291: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv321; + default: goto vv54; + } +vv292: + vvch = *++VVCURSOR; + switch (vvch) { + case 'D': + case 'd': goto vv323; + default: goto vv54; + } +vv293: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv325; + default: goto vv54; + } +vv294: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv295; + } +vv295: + { + token->opcode = PHVOLT_T_ELSEIF; + return 0; } - } - ZEPHIR_INIT_NVAR(&item); - ZEPHIR_INIT_NVAR(&inTransaction); - ZVAL_BOOL(&inTransaction, 0); - ZEPHIR_INIT_VAR(&_4); - array_init(&_4); - zephir_update_property_zval(this_ptr, ZEND_STRL("queue"), &_4); - zephir_update_property_zval(this_ptr, ZEND_STRL("inTransaction"), &inTransaction); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Logger_Adapter_AbstractAdapter, getFormatter) -{ - zval _0, _1$$3, _2$$3, _3$$3; - zval className; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_OBS_VAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("formatter"), PH_NOISY_CC); - if (Z_TYPE_P(&_0) != IS_OBJECT) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("defaultFormatter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_CONCAT_SV(&_2$$3, "Phalcon\\Logger\\Formatter\\", &_1$$3); - zephir_get_strval(&className, &_2$$3); - ZEPHIR_INIT_VAR(&_3$$3); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(&_3$$3, &className); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("formatter"), &_3$$3); - } - RETURN_MM_MEMBER(getThis(), "formatter"); -} - -static PHP_METHOD(Phalcon_Logger_Adapter_AbstractAdapter, inTransaction) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "inTransaction"); -} - -static PHP_METHOD(Phalcon_Logger_Adapter_AbstractAdapter, process) -{ -} - -static PHP_METHOD(Phalcon_Logger_Adapter_AbstractAdapter, rollback) -{ - zval inTransaction, _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&inTransaction); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("inTransaction"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&inTransaction, &_0); - if (!(zephir_is_true(&inTransaction))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_logger_exception_ce, "There is no active transaction", "phalcon/Logger/Adapter/AbstractAdapter.zep", 161); - return; - } - ZEPHIR_INIT_VAR(&_1); - array_init(&_1); - zephir_update_property_zval(this_ptr, ZEND_STRL("queue"), &_1); - ZEPHIR_INIT_NVAR(&inTransaction); - ZVAL_BOOL(&inTransaction, 0); - zephir_update_property_zval(this_ptr, ZEND_STRL("inTransaction"), &inTransaction); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Logger_Adapter_AbstractAdapter, setFormatter) -{ - zval *formatter, formatter_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&formatter_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(formatter, phalcon_logger_formatter_formatterinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &formatter); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("formatter"), formatter); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Logger_Adapter_AbstractAdapter, getFormattedItem) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *item, item_sub, formatter, _0, _1; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&item_sub); - ZVAL_UNDEF(&formatter); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(item, phalcon_logger_item_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &item); - - - ZEPHIR_CALL_METHOD(&formatter, this_ptr, "getformatter", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, &formatter, "format", NULL, 0, item); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_GET_CONSTANT(&_1, "PHP_EOL"); - ZEPHIR_CONCAT_VV(return_value, &_0, &_1); - RETURN_MM(); -} - -zend_object *zephir_init_properties_Phalcon_Logger_Adapter_AbstractAdapter(zend_class_entry *class_type) -{ - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("queue"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("queue"), &_1$$3); +vv296: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv327; + default: goto vv54; + } +vv297: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv328; + default: goto vv54; + } +vv298: + vvch = *++VVCURSOR; + switch (vvch) { + case 'H': + case 'h': goto vv329; + default: goto vv54; + } +vv299: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv330; + default: goto vv54; + } +vv300: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv301; + } +vv301: + { + token->opcode = PHVOLT_T_ENDFOR; + return 0; } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Logger_Adapter_AdapterInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Logger\\Adapter, AdapterInterface, phalcon, logger_adapter_adapterinterface, phalcon_logger_adapter_adapterinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Logger_Adapter_AdapterInterface, add); -ZEPHIR_DOC_METHOD(Phalcon_Logger_Adapter_AdapterInterface, begin); -ZEPHIR_DOC_METHOD(Phalcon_Logger_Adapter_AdapterInterface, close); -ZEPHIR_DOC_METHOD(Phalcon_Logger_Adapter_AdapterInterface, commit); -ZEPHIR_DOC_METHOD(Phalcon_Logger_Adapter_AdapterInterface, getFormatter); -ZEPHIR_DOC_METHOD(Phalcon_Logger_Adapter_AdapterInterface, inTransaction); -ZEPHIR_DOC_METHOD(Phalcon_Logger_Adapter_AdapterInterface, process); -ZEPHIR_DOC_METHOD(Phalcon_Logger_Adapter_AdapterInterface, rollback); -ZEPHIR_DOC_METHOD(Phalcon_Logger_Adapter_AdapterInterface, setFormatter); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Logger_Adapter_Noop) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Logger\\Adapter, Noop, phalcon, logger_adapter_noop, phalcon_logger_adapter_abstractadapter_ce, phalcon_logger_adapter_noop_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Logger_Adapter_Noop, close) -{ - zval *this_ptr = getThis(); - - - - RETURN_BOOL(1); -} - -static PHP_METHOD(Phalcon_Logger_Adapter_Noop, process) -{ - zval *item, item_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&item_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(item, phalcon_logger_item_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &item); - - -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Logger_Adapter_Stream) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Logger\\Adapter, Stream, phalcon, logger_adapter_stream, phalcon_logger_adapter_abstractadapter_ce, phalcon_logger_adapter_stream_method_entry, 0); - - zend_declare_property_null(phalcon_logger_adapter_stream_ce, SL("handler"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_logger_adapter_stream_ce, SL("mode"), "ab", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_logger_adapter_stream_ce, SL("name"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_logger_adapter_stream_ce, SL("options"), ZEND_ACC_PROTECTED); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Logger_Adapter_Stream, getName) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "name"); -} - -static PHP_METHOD(Phalcon_Logger_Adapter_Stream, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval options; - zval *name_param = NULL, *options_param = NULL, mode; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&mode); - ZVAL_UNDEF(&options); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &name_param, &options_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); - } else { - zephir_get_arrval(&options, options_param); - } - - - ZEPHIR_OBS_VAR(&mode); - if (zephir_array_isset_string_fetch(&mode, &options, SL("mode"), 0)) { - if (zephir_memnstr_str(&mode, SL("r"), "phalcon/Logger/Adapter/Stream.zep", 79)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_logger_exception_ce, "Adapter cannot be opened in read mode", "phalcon/Logger/Adapter/Stream.zep", 80); - return; +vv302: + vvch = *++VVCURSOR; + switch (vvch) { + case 'R': + case 'r': goto vv332; + default: goto vv54; + } +vv303: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv304; + } +vv304: + { + s->statement_position++; + token->opcode = PHVOLT_T_ENDRAW; + return 0; } - } - if (Z_TYPE_P(&mode) == IS_NULL) { - ZEPHIR_INIT_NVAR(&mode); - ZVAL_STRING(&mode, "ab"); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); - zephir_update_property_zval(this_ptr, ZEND_STRL("mode"), &mode); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Logger_Adapter_Stream, close) -{ - zend_bool result; - zval __$null, _0, _1$$3; - zval *this_ptr = getThis(); - - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - - result = 1; - zephir_read_property(&_0, this_ptr, ZEND_STRL("handler"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_RESOURCE) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("handler"), PH_NOISY_CC | PH_READONLY); - result = zephir_fclose(&_1$$3); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("handler"), &__$null); - RETURN_BOOL(result); -} - -static PHP_METHOD(Phalcon_Logger_Adapter_Stream, process) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *item, item_sub, __$null, message, _0, _10, _1$$3, _2$$3, _3$$3, _4$$3, _5$$4, _6$$4, _7$$4, _8$$4, _9$$4; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&item_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_8$$4); - ZVAL_UNDEF(&_9$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(item, phalcon_logger_item_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &item); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("handler"), PH_NOISY_CC | PH_READONLY); - if (!(Z_TYPE_P(&_0) == IS_RESOURCE)) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("mode"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&_3$$3, "fopen", NULL, 89, &_1$$3, &_2$$3); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("handler"), &_3$$3); - zephir_read_property(&_4$$3, this_ptr, ZEND_STRL("handler"), PH_NOISY_CC | PH_READONLY); - if (!(Z_TYPE_P(&_4$$3) == IS_RESOURCE)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("handler"), &__$null); - ZEPHIR_INIT_VAR(&_5$$4); - object_init_ex(&_5$$4, spl_ce_UnexpectedValueException); - zephir_read_property(&_6$$4, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_7$$4, this_ptr, ZEND_STRL("mode"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_8$$4); - ZVAL_STRING(&_8$$4, "The file '%s' cannot be opened with mode '%s'"); - ZEPHIR_CALL_FUNCTION(&_9$$4, "sprintf", NULL, 194, &_8$$4, &_6$$4, &_7$$4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_5$$4, "__construct", NULL, 345, &_9$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_5$$4, "phalcon/Logger/Adapter/Stream.zep", 127); - ZEPHIR_MM_RESTORE(); - return; +vv305: + vvch = *++VVCURSOR; + switch (vvch) { + case 'T': + case 't': goto vv333; + default: goto vv54; + } +vv306: + vvch = *++VVCURSOR; + switch (vvch) { + case 'S': + case 's': goto vv334; + default: goto vv54; + } +vv307: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv336; + default: goto vv54; + } +vv308: + ++VVCURSOR; + { + s->statement_position++; + token->opcode = PHVOLT_T_NOTEQUALS; + return 0; } - } - ZEPHIR_CALL_METHOD(&message, this_ptr, "getformatteditem", NULL, 0, item); - zephir_check_call_status(); - zephir_read_property(&_10, this_ptr, ZEND_STRL("handler"), PH_NOISY_CC | PH_READONLY); - zephir_fwrite(NULL, &_10, &message); - ZEPHIR_MM_RESTORE(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Logger_Adapter_Syslog) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Logger\\Adapter, Syslog, phalcon, logger_adapter_syslog, phalcon_logger_adapter_abstractadapter_ce, phalcon_logger_adapter_syslog_method_entry, 0); - - zend_declare_property_string(phalcon_logger_adapter_syslog_ce, SL("defaultFormatter"), "Line", ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_logger_adapter_syslog_ce, SL("facility"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_logger_adapter_syslog_ce, SL("name"), "", ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_logger_adapter_syslog_ce, SL("opened"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_logger_adapter_syslog_ce, SL("option"), 0, ZEND_ACC_PROTECTED); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Logger_Adapter_Syslog, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL; - zval options; - zval *name_param = NULL, *options_param = NULL, _0, _2, _3, _4; - zval name; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&options); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &name_param, &options_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); - } else { - zephir_get_arrval(&options, options_param); - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "facility"); - ZVAL_LONG(&_3, 8); - ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("facility"), &_0); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "option"); - ZVAL_LONG(&_3, 4); - ZEPHIR_CALL_CE_STATIC(&_4, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("option"), &_4); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Logger_Adapter_Syslog, close) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("opened"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - RETURN_MM_BOOL(1); - } - ZEPHIR_RETURN_CALL_FUNCTION("closelog", NULL, 413); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Logger_Adapter_Syslog, process) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *item, item_sub, __$true, __$false, name, facility, level, message, option, result, _0, _4, _1$$3, _2$$3, _3$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&item_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&facility); - ZVAL_UNDEF(&level); - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&option); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(item, phalcon_logger_item_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &item); - - - ZEPHIR_CALL_METHOD(&message, this_ptr, "getformatteditem", NULL, 0, item); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&name, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("facility"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&facility, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("option"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&option, &_0); - ZEPHIR_CALL_FUNCTION(&result, "openlog", NULL, 414, &name, &option, &facility); - zephir_check_call_status(); - if (!zephir_is_true(&result)) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, spl_ce_LogicException); - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "Cannot open syslog for name [%s] and facility [%s]"); - ZEPHIR_CALL_FUNCTION(&_3$$3, "sprintf", NULL, 194, &_2$$3, &name, &facility); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 415, &_3$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Logger/Adapter/Syslog.zep", 120); - ZEPHIR_MM_RESTORE(); - return; - } - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("opened"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("opened"), &__$false); - } - ZEPHIR_CALL_METHOD(&_4, item, "getlevel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&level, this_ptr, "logleveltosyslog", NULL, 416, &_4); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(NULL, "syslog", NULL, 417, &level, &message); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Logger_Adapter_Syslog, logLevelToSyslog) -{ - zval levels; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *level_param = NULL, result; - zend_long level; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&levels); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(level) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &level_param); - level = zephir_get_intval(level_param); - - - ZEPHIR_INIT_VAR(&levels); - zephir_create_array(&levels, 9, 0); - add_index_long(&levels, 2, 1); - add_index_long(&levels, 1, 2); - add_index_long(&levels, 8, 3); - add_index_long(&levels, 7, 7); - add_index_long(&levels, 0, 0); - add_index_long(&levels, 3, 3); - add_index_long(&levels, 6, 6); - add_index_long(&levels, 5, 5); - add_index_long(&levels, 4, 4); - ZEPHIR_OBS_VAR(&result); - if (!(zephir_array_isset_long_fetch(&result, &levels, level, 0))) { - ZEPHIR_INIT_NVAR(&result); - ZVAL_LONG(&result, 3); - } - RETURN_CCTOR(&result); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Logger_Formatter_AbstractFormatter) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Logger\\Formatter, AbstractFormatter, phalcon, logger_formatter_abstractformatter, phalcon_logger_formatter_abstractformatter_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_null(phalcon_logger_formatter_abstractformatter_ce, SL("dateFormat"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_logger_formatter_abstractformatter_ce, 1, phalcon_logger_formatter_formatterinterface_ce); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Logger_Formatter_AbstractFormatter, getDateFormat) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "dateFormat"); -} - -static PHP_METHOD(Phalcon_Logger_Formatter_AbstractFormatter, setDateFormat) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *dateFormat_param = NULL; - zval dateFormat; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&dateFormat); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(dateFormat) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &dateFormat_param); - zephir_get_strval(&dateFormat, dateFormat_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("dateFormat"), &dateFormat); - RETURN_THIS(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Logger_Formatter_FormatterInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Logger\\Formatter, FormatterInterface, phalcon, logger_formatter_formatterinterface, phalcon_logger_formatter_formatterinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Logger_Formatter_FormatterInterface, format); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Logger_Formatter_Json) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Logger\\Formatter, Json, phalcon, logger_formatter_json, phalcon_logger_formatter_abstractformatter_ce, phalcon_logger_formatter_json_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Logger_Formatter_Json, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *dateFormat_param = NULL; - zval dateFormat; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&dateFormat); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR(dateFormat) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &dateFormat_param); - if (!dateFormat_param) { - ZEPHIR_INIT_VAR(&dateFormat); - ZVAL_STRING(&dateFormat, "c"); - } else { - zephir_get_strval(&dateFormat, dateFormat_param); - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("dateFormat"), &dateFormat); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Logger_Formatter_Json, format) -{ - zval _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_2 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *item, item_sub, interpolate, message, time, _0, _1, _4, _5; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&item_sub); - ZVAL_UNDEF(&interpolate); - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&time); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(item, phalcon_logger_item_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &item); - - - ZEPHIR_CALL_METHOD(&time, item, "gettime", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&interpolate); - object_init_ex(&interpolate, phalcon_support_helper_str_interpolate_ce); - if (zephir_has_constructor(&interpolate)) { - ZEPHIR_CALL_METHOD(NULL, &interpolate, "__construct", NULL, 0); - zephir_check_call_status(); - } - - ZEPHIR_CALL_METHOD(&_0, item, "getmessage", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, item, "getcontext", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&message, &interpolate, "__invoke", NULL, 418, &_0, &_1); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_3); - zephir_create_array(&_3, 3, 0); - ZEPHIR_CALL_METHOD(&_4, item, "getlevelname", NULL, 0); - zephir_check_call_status(); - zephir_array_update_string(&_3, SL("level"), &_4, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_3, SL("message"), &message, PH_COPY | PH_SEPARATE); - zephir_read_property(&_5, this_ptr, ZEND_STRL("dateFormat"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_4, &time, "format", NULL, 0, &_5); - zephir_check_call_status(); - zephir_array_update_string(&_3, SL("timestamp"), &_4, PH_COPY | PH_SEPARATE); - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_helper_json_ce, "encode", &_2, 14, &_3); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Logger_Formatter_Line) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Logger\\Formatter, Line, phalcon, logger_formatter_line, phalcon_logger_formatter_abstractformatter_ce, phalcon_logger_formatter_line_method_entry, 0); - - zend_declare_property_null(phalcon_logger_formatter_line_ce, SL("format"), ZEND_ACC_PROTECTED); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Logger_Formatter_Line, getFormat) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "format"); -} - -static PHP_METHOD(Phalcon_Logger_Formatter_Line, setFormat) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *format_param = NULL; - zval format; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&format); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(format) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &format_param); - zephir_get_strval(&format, format_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("format"), &format); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Logger_Formatter_Line, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *format_param = NULL, *dateFormat_param = NULL; - zval format, dateFormat; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&format); - ZVAL_UNDEF(&dateFormat); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_STR(format) - Z_PARAM_STR(dateFormat) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &format_param, &dateFormat_param); - if (!format_param) { - ZEPHIR_INIT_VAR(&format); - ZVAL_STRING(&format, "[%date%][%level%] %message%"); - } else { - zephir_get_strval(&format, format_param); - } - if (!dateFormat_param) { - ZEPHIR_INIT_VAR(&dateFormat); - ZVAL_STRING(&dateFormat, "c"); - } else { - zephir_get_strval(&dateFormat, dateFormat_param); - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("format"), &format); - zephir_update_property_zval(this_ptr, ZEND_STRL("dateFormat"), &dateFormat); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Logger_Formatter_Line, format) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *item, item_sub, context, format, interpolate, time, _0, _1, _2, _3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&item_sub); - ZVAL_UNDEF(&context); - ZVAL_UNDEF(&format); - ZVAL_UNDEF(&interpolate); - ZVAL_UNDEF(&time); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(item, phalcon_logger_item_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &item); - - - ZEPHIR_CALL_METHOD(&context, item, "getcontext", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("format"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&format, &_0); - ZEPHIR_CALL_METHOD(&time, item, "gettime", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&interpolate); - object_init_ex(&interpolate, phalcon_support_helper_str_interpolate_ce); - if (zephir_has_constructor(&interpolate)) { - ZEPHIR_CALL_METHOD(NULL, &interpolate, "__construct", NULL, 0); - zephir_check_call_status(); - } - - zephir_read_property(&_0, this_ptr, ZEND_STRL("dateFormat"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &time, "format", NULL, 0, &_0); - zephir_check_call_status(); - zephir_array_update_string(&context, SL("date"), &_1, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_2, item, "getlevelname", NULL, 0); - zephir_check_call_status(); - zephir_array_update_string(&context, SL("level"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_3, item, "getmessage", NULL, 0); - zephir_check_call_status(); - zephir_array_update_string(&context, SL("message"), &_3, PH_COPY | PH_SEPARATE); - ZEPHIR_RETURN_CALL_METHOD(&interpolate, "__invoke", NULL, 418, &format, &context); - zephir_check_call_status(); - RETURN_MM(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Messages_Exception) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Messages, Exception, phalcon, messages_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Messages_Message) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Messages, Message, phalcon, messages_message, phalcon_messages_message_method_entry, 0); - - zend_declare_property_null(phalcon_messages_message_ce, SL("code"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_messages_message_ce, SL("field"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_messages_message_ce, SL("message"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_messages_message_ce, SL("type"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_messages_message_ce, SL("metaData"), ZEND_ACC_PROTECTED); - phalcon_messages_message_ce->create_object = zephir_init_properties_Phalcon_Messages_Message; - - zend_class_implements(phalcon_messages_message_ce, 1, phalcon_messages_messageinterface_ce); - zend_class_implements(phalcon_messages_message_ce, 1, zephir_get_internal_ce(SL("jsonserializable"))); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Messages_Message, getCode) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "code"); -} - -static PHP_METHOD(Phalcon_Messages_Message, getField) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "field"); -} - -static PHP_METHOD(Phalcon_Messages_Message, getMessage) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "message"); -} - -static PHP_METHOD(Phalcon_Messages_Message, getType) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "type"); -} - -static PHP_METHOD(Phalcon_Messages_Message, getMetaData) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "metaData"); -} - -static PHP_METHOD(Phalcon_Messages_Message, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval metaData; - zend_long code; - zval *message_param = NULL, *field = NULL, field_sub, *type_param = NULL, *code_param = NULL, *metaData_param = NULL, _0; - zval message, type; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&field_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&metaData); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 5) - Z_PARAM_STR(message) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL(field) - Z_PARAM_STR(type) - Z_PARAM_LONG(code) - Z_PARAM_ARRAY(metaData) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 4, &message_param, &field, &type_param, &code_param, &metaData_param); - if (UNEXPECTED(Z_TYPE_P(message_param) != IS_STRING && Z_TYPE_P(message_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'message' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(message_param) == IS_STRING)) { - zephir_get_strval(&message, message_param); - } else { - ZEPHIR_INIT_VAR(&message); - } - if (!field) { - field = &field_sub; - ZEPHIR_INIT_VAR(field); - ZVAL_STRING(field, ""); - } - if (!type_param) { - ZEPHIR_INIT_VAR(&type); - ZVAL_STRING(&type, ""); - } else { - zephir_get_strval(&type, type_param); - } - if (!code_param) { - code = 0; - } else { - code = zephir_get_intval(code_param); - } - if (!metaData_param) { - ZEPHIR_INIT_VAR(&metaData); - array_init(&metaData); - } else { - zephir_get_arrval(&metaData, metaData_param); - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("message"), &message); - zephir_update_property_zval(this_ptr, ZEND_STRL("field"), field); - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &type); - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, code); - zephir_update_property_zval(this_ptr, ZEND_STRL("code"), &_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("metaData"), &metaData); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Messages_Message, __toString) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "message"); -} - -static PHP_METHOD(Phalcon_Messages_Message, jsonSerialize) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - zephir_create_array(return_value, 5, 0); - ZEPHIR_OBS_VAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("field"), PH_NOISY_CC); - zephir_array_update_string(return_value, SL("field"), &_0, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("message"), PH_NOISY_CC); - zephir_array_update_string(return_value, SL("message"), &_0, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("type"), PH_NOISY_CC); - zephir_array_update_string(return_value, SL("type"), &_0, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("code"), PH_NOISY_CC); - zephir_array_update_string(return_value, SL("code"), &_0, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC); - zephir_array_update_string(return_value, SL("metaData"), &_0, PH_COPY | PH_SEPARATE); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Messages_Message, setCode) -{ - zval *code_param = NULL, _0; - zend_long code; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(code) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &code_param); - code = zephir_get_intval(code_param); - - - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, code); - zephir_update_property_zval(this_ptr, ZEND_STRL("code"), &_0); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Messages_Message, setField) -{ - zval *field, field_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&field_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(field) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &field); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("field"), field); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Messages_Message, setMessage) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *message_param = NULL; - zval message; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&message); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(message) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &message_param); - if (UNEXPECTED(Z_TYPE_P(message_param) != IS_STRING && Z_TYPE_P(message_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'message' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(message_param) == IS_STRING)) { - zephir_get_strval(&message, message_param); - } else { - ZEPHIR_INIT_VAR(&message); - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("message"), &message); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Messages_Message, setMetaData) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *metaData_param = NULL; - zval metaData; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&metaData); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(metaData) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &metaData_param); - ZEPHIR_OBS_COPY_OR_DUP(&metaData, metaData_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("metaData"), &metaData); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Messages_Message, setType) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *type_param = NULL; - zval type; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&type); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(type) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &type_param); - if (UNEXPECTED(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(type_param) == IS_STRING)) { - zephir_get_strval(&type, type_param); - } else { - ZEPHIR_INIT_VAR(&type); - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &type); - RETURN_THIS(); -} - -zend_object *zephir_init_properties_Phalcon_Messages_Message(zend_class_entry *class_type) -{ - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("metaData"), &_1$$3); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Messages_MessageInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Messages, MessageInterface, phalcon, messages_messageinterface, phalcon_messages_messageinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Messages_MessageInterface, __toString); -ZEPHIR_DOC_METHOD(Phalcon_Messages_MessageInterface, getCode); -ZEPHIR_DOC_METHOD(Phalcon_Messages_MessageInterface, getField); -ZEPHIR_DOC_METHOD(Phalcon_Messages_MessageInterface, getMessage); -ZEPHIR_DOC_METHOD(Phalcon_Messages_MessageInterface, getMetaData); -ZEPHIR_DOC_METHOD(Phalcon_Messages_MessageInterface, getType); -ZEPHIR_DOC_METHOD(Phalcon_Messages_MessageInterface, setCode); -ZEPHIR_DOC_METHOD(Phalcon_Messages_MessageInterface, setField); -ZEPHIR_DOC_METHOD(Phalcon_Messages_MessageInterface, setMessage); -ZEPHIR_DOC_METHOD(Phalcon_Messages_MessageInterface, setMetaData); -ZEPHIR_DOC_METHOD(Phalcon_Messages_MessageInterface, setType); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Messages_Messages) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Messages, Messages, phalcon, messages_messages, phalcon_messages_messages_method_entry, 0); - - zend_declare_property_long(phalcon_messages_messages_ce, SL("position"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_messages_messages_ce, SL("messages"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_messages_messages_ce, 1, zend_ce_arrayaccess); - zend_class_implements(phalcon_messages_messages_ce, 1, zend_ce_countable); - zend_class_implements(phalcon_messages_messages_ce, 1, zend_ce_iterator); - zend_class_implements(phalcon_messages_messages_ce, 1, zephir_get_internal_ce(SL("jsonserializable"))); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Messages_Messages, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *messages_param = NULL; - zval messages; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&messages); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(messages) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &messages_param); - if (!messages_param) { - ZEPHIR_INIT_VAR(&messages); - array_init(&messages); - } else { - zephir_get_arrval(&messages, messages_param); - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("messages"), &messages); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Messages_Messages, appendMessage) -{ - zval *message, message_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&message_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(message, phalcon_messages_messageinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &message); - - - zephir_update_property_array_append(this_ptr, SL("messages"), message); -} - -static PHP_METHOD(Phalcon_Messages_Messages, appendMessages) -{ - zend_bool _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_2 = NULL, *_3 = NULL, *_4 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *messages, messages_sub, currentMessages, finalMessages, message, _1$$7; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&messages_sub); - ZVAL_UNDEF(¤tMessages); - ZVAL_UNDEF(&finalMessages); - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&_1$$7); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(messages) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &messages); - - - _0 = Z_TYPE_P(messages) != IS_ARRAY; - if (_0) { - _0 = Z_TYPE_P(messages) != IS_OBJECT; - } - if (_0) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_messages_exception_ce, "The messages must be array or object", "phalcon/Messages/Messages.zep", 69); - return; - } - ZEPHIR_OBS_VAR(¤tMessages); - zephir_read_property(¤tMessages, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC); - if (Z_TYPE_P(messages) == IS_ARRAY) { - if (Z_TYPE_P(¤tMessages) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&finalMessages); - zephir_fast_array_merge(&finalMessages, ¤tMessages, messages); - } else { - ZEPHIR_CPY_WRT(&finalMessages, messages); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("messages"), &finalMessages); - } else { - ZEPHIR_CALL_METHOD(NULL, messages, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1$$7, messages, "valid", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_1$$7))) { - break; +vv310: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv338; + default: goto vv54; } - ZEPHIR_CALL_METHOD(&message, messages, "current", &_2, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_3, 0, &message); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, messages, "next", &_4, 0); - zephir_check_call_status(); +vv311: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv339; + default: goto vv54; + } +vv312: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv313; + } +vv313: + { + token->opcode = PHVOLT_T_RETURN; + return 0; } - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Messages_Messages, count) -{ - zval _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); - RETURN_LONG(zephir_fast_count_int(&_0)); -} - -static PHP_METHOD(Phalcon_Messages_Messages, current) -{ - zval _0, _1, _2; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_OBS_VAR(&_2); - zephir_read_property(&_2, this_ptr, ZEND_STRL("position"), PH_NOISY_CC); - zephir_array_fetch(&_1, &_0, &_2, PH_NOISY | PH_READONLY, "phalcon/Messages/Messages.zep", 117); - RETURN_CTOR(&_1); -} - -static PHP_METHOD(Phalcon_Messages_Messages, filter) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *fieldName_param = NULL, filtered, messages, message, _0, *_1$$3, _2$$3, _3$$5, _4$$8; - zval fieldName; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&fieldName); - ZVAL_UNDEF(&filtered); - ZVAL_UNDEF(&messages); - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_4$$8); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(fieldName) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &fieldName_param); - if (UNEXPECTED(Z_TYPE_P(fieldName_param) != IS_STRING && Z_TYPE_P(fieldName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'fieldName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(fieldName_param) == IS_STRING)) { - zephir_get_strval(&fieldName, fieldName_param); - } else { - ZEPHIR_INIT_VAR(&fieldName); - } - - - ZEPHIR_INIT_VAR(&filtered); - array_init(&filtered); - zephir_read_property(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&messages, &_0); - if (Z_TYPE_P(&messages) == IS_ARRAY) { - zephir_is_iterable(&messages, 0, "phalcon/Messages/Messages.zep", 145); - if (Z_TYPE_P(&messages) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&messages), _1$$3) +vv314: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv315; + } +vv315: { - ZEPHIR_INIT_NVAR(&message); - ZVAL_COPY(&message, _1$$3); - if ((zephir_method_exists_ex(&message, ZEND_STRL("getfield")) == SUCCESS)) { - ZEPHIR_CALL_METHOD(&_3$$5, &message, "getfield", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_EQUAL(&fieldName, &_3$$5)) { - zephir_array_append(&filtered, &message, PH_SEPARATE, "phalcon/Messages/Messages.zep", 141); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &messages, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2$$3, &messages, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&message, &messages, "current", NULL, 0); - zephir_check_call_status(); - if ((zephir_method_exists_ex(&message, ZEND_STRL("getfield")) == SUCCESS)) { - ZEPHIR_CALL_METHOD(&_4$$8, &message, "getfield", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_EQUAL(&fieldName, &_4$$8)) { - zephir_array_append(&filtered, &message, PH_SEPARATE, "phalcon/Messages/Messages.zep", 141); - } - } - ZEPHIR_CALL_METHOD(NULL, &messages, "next", NULL, 0); - zephir_check_call_status(); + s->statement_position++; + token->opcode = PHVOLT_T_SCALAR; + return 0; + } +vv316: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv317; } +vv317: + { + s->statement_position++; + token->opcode = PHVOLT_T_SWITCH; + return 0; } - ZEPHIR_INIT_NVAR(&message); - } - RETURN_CCTOR(&filtered); -} - -static PHP_METHOD(Phalcon_Messages_Messages, jsonSerialize) -{ - zend_bool _3$$3, _5$$6; - zval records; - zval message, _0, *_1, _2, _4$$4, _6$$7; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_6$$7); - ZVAL_UNDEF(&records); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&records); - array_init(&records); - zephir_read_property(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); - zephir_is_iterable(&_0, 0, "phalcon/Messages/Messages.zep", 174); - if (Z_TYPE_P(&_0) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _1) - { - ZEPHIR_INIT_NVAR(&message); - ZVAL_COPY(&message, _1); - _3$$3 = Z_TYPE_P(&message) == IS_OBJECT; - if (_3$$3) { - _3$$3 = (zephir_method_exists_ex(&message, ZEND_STRL("jsonserialize")) == SUCCESS); +vv318: + vvch = *++VVCURSOR; + switch (vvch) { + case 't': goto vv341; + default: goto vv81; } - if (_3$$3) { - ZEPHIR_CALL_METHOD(&_4$$4, &message, "jsonserialize", NULL, 0); - zephir_check_call_status(); - zephir_array_append(&records, &_4$$4, PH_SEPARATE, "phalcon/Messages/Messages.zep", 168); - } else { - zephir_array_append(&records, &message, PH_SEPARATE, "phalcon/Messages/Messages.zep", 170); +vv319: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv343; + default: goto vv54; } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &_0, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; +vv320: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv344; + default: goto vv54; } - ZEPHIR_CALL_METHOD(&message, &_0, "current", NULL, 0); - zephir_check_call_status(); - _5$$6 = Z_TYPE_P(&message) == IS_OBJECT; - if (_5$$6) { - _5$$6 = (zephir_method_exists_ex(&message, ZEND_STRL("jsonserialize")) == SUCCESS); - } - if (_5$$6) { - ZEPHIR_CALL_METHOD(&_6$$7, &message, "jsonserialize", NULL, 0); - zephir_check_call_status(); - zephir_array_append(&records, &_6$$7, PH_SEPARATE, "phalcon/Messages/Messages.zep", 168); - } else { - zephir_array_append(&records, &message, PH_SEPARATE, "phalcon/Messages/Messages.zep", 170); - } - ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&message); - RETURN_CTOR(&records); -} - -static PHP_METHOD(Phalcon_Messages_Messages, key) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "position"); -} - -static PHP_METHOD(Phalcon_Messages_Messages, next) -{ - zval *this_ptr = getThis(); - - - - RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("position"))); -} - -static PHP_METHOD(Phalcon_Messages_Messages, offsetExists) -{ - zval *index, index_sub, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&index_sub); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(index) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &index); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); - RETURN_BOOL(zephir_array_isset(&_0, index)); -} - -static PHP_METHOD(Phalcon_Messages_Messages, offsetGet) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *index, index_sub, message, returnValue, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&index_sub); - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&returnValue); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(index) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &index); - - - ZEPHIR_INIT_VAR(&returnValue); - ZVAL_NULL(&returnValue); - zephir_read_property(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&message, &_0, index, 1)) { - ZEPHIR_CPY_WRT(&returnValue, &message); - } - RETURN_CCTOR(&returnValue); -} - -static PHP_METHOD(Phalcon_Messages_Messages, offsetSet) -{ - zval *index, index_sub, *message, message_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&index_sub); - ZVAL_UNDEF(&message_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(index) - Z_PARAM_ZVAL(message) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(2, 0, &index, &message); - - - if (Z_TYPE_P(message) != IS_OBJECT) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_messages_exception_ce, "The message must be an object", "phalcon/Messages/Messages.zep", 241); - return; - } - zephir_update_property_array(this_ptr, SL("messages"), index, message); -} - -static PHP_METHOD(Phalcon_Messages_Messages, offsetUnset) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *index, index_sub, _0, _1$$3, _2$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&index_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(index) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &index); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset(&_0, index)) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_2$$3, 1); - ZEPHIR_MAKE_REF(&_1$$3); - ZEPHIR_CALL_FUNCTION(NULL, "array_splice", NULL, 420, &_1$$3, index, &_2$$3); - ZEPHIR_UNREF(&_1$$3); - zephir_check_call_status(); - } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Messages_Messages, rewind) -{ - zval _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, 0); - zephir_update_property_zval(this_ptr, ZEND_STRL("position"), &_0); -} - -static PHP_METHOD(Phalcon_Messages_Messages, valid) -{ - zval _0, _1; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_1, this_ptr, ZEND_STRL("position"), PH_NOISY_CC | PH_READONLY); - RETURN_BOOL(zephir_array_isset(&_0, &_1)); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Application) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc, Application, phalcon, mvc_application, phalcon_application_abstractapplication_ce, phalcon_mvc_application_method_entry, 0); - - zend_declare_property_bool(phalcon_mvc_application_ce, SL("implicitView"), 1, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_application_ce, SL("sendCookies"), 1, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_application_ce, SL("sendHeaders"), 1, ZEND_ACC_PROTECTED); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Mvc_Application, handle) -{ - zval _21$$21; - zend_class_entry *_10$$8; - zend_bool returnedResponse = 0, _14$$7, _17$$12, _35$$31, _37$$31; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_3 = NULL; - zval *uri_param = NULL, __$false, container, eventsManager, router, dispatcher, response, view, module, moduleObject, moduleName, className, path, implicitView, controller, possibleResponse, renderStatus, matchedRoute, match, _0, _7, _8, _25, _26, _27, _28, _45, _1$$3, _2$$3, _4$$3, _5$$4, _6$$4, _9$$8, _11$$7, _12$$9, _13$$9, _15$$13, _16$$13, _18$$19, _19$$19, _20$$16, _22$$23, _23$$24, _24$$24, _29$$26, _30$$26, _31$$28, _32$$28, _33$$30, _34$$30, _36$$32, _38$$35, _39$$36, _40$$36, _41$$39, _42$$39, _43$$40, _44$$41; - zval uri; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&uri); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&router); - ZVAL_UNDEF(&dispatcher); - ZVAL_UNDEF(&response); - ZVAL_UNDEF(&view); - ZVAL_UNDEF(&module); - ZVAL_UNDEF(&moduleObject); - ZVAL_UNDEF(&moduleName); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&implicitView); - ZVAL_UNDEF(&controller); - ZVAL_UNDEF(&possibleResponse); - ZVAL_UNDEF(&renderStatus); - ZVAL_UNDEF(&matchedRoute); - ZVAL_UNDEF(&match); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_25); - ZVAL_UNDEF(&_26); - ZVAL_UNDEF(&_27); - ZVAL_UNDEF(&_28); - ZVAL_UNDEF(&_45); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_9$$8); - ZVAL_UNDEF(&_11$$7); - ZVAL_UNDEF(&_12$$9); - ZVAL_UNDEF(&_13$$9); - ZVAL_UNDEF(&_15$$13); - ZVAL_UNDEF(&_16$$13); - ZVAL_UNDEF(&_18$$19); - ZVAL_UNDEF(&_19$$19); - ZVAL_UNDEF(&_20$$16); - ZVAL_UNDEF(&_22$$23); - ZVAL_UNDEF(&_23$$24); - ZVAL_UNDEF(&_24$$24); - ZVAL_UNDEF(&_29$$26); - ZVAL_UNDEF(&_30$$26); - ZVAL_UNDEF(&_31$$28); - ZVAL_UNDEF(&_32$$28); - ZVAL_UNDEF(&_33$$30); - ZVAL_UNDEF(&_34$$30); - ZVAL_UNDEF(&_36$$32); - ZVAL_UNDEF(&_38$$35); - ZVAL_UNDEF(&_39$$36); - ZVAL_UNDEF(&_40$$36); - ZVAL_UNDEF(&_41$$39); - ZVAL_UNDEF(&_42$$39); - ZVAL_UNDEF(&_43$$40); - ZVAL_UNDEF(&_44$$41); - ZVAL_UNDEF(&_21$$21); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(uri) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &uri_param); - if (UNEXPECTED(Z_TYPE_P(uri_param) != IS_STRING && Z_TYPE_P(uri_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'uri' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(uri_param) == IS_STRING)) { - zephir_get_strval(&uri, uri_param); - } else { - ZEPHIR_INIT_VAR(&uri); - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_mvc_application_exception_ce); - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "internal services"); - ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_mvc_application_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Application.zep", 100); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_0); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_6$$4); - ZVAL_STRING(&_6$$4, "application:boot"); - ZEPHIR_CALL_METHOD(&_5$$4, &eventsManager, "fire", NULL, 0, &_6$$4, this_ptr); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_5$$4)) { - RETURN_MM_BOOL(0); - } - } - ZEPHIR_INIT_VAR(&_8); - ZVAL_STRING(&_8, "router"); - ZEPHIR_CALL_METHOD(&_7, &container, "getshared", NULL, 0, &_8); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&router, &_7); - ZEPHIR_CALL_METHOD(NULL, &router, "handle", NULL, 0, &uri); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&matchedRoute, &router, "getmatchedroute", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&matchedRoute) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&match, &matchedRoute, "getmatch", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&match) != IS_NULL) { - if (zephir_is_instance_of(&match, SL("Closure"))) { - _10$$8 = zephir_fetch_class_str_ex(SL("Closure"), ZEND_FETCH_CLASS_AUTO); - ZEPHIR_CALL_CE_STATIC(&_9$$8, _10$$8, "bind", NULL, 0, &match, &container); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&match, &_9$$8); - } - ZEPHIR_CALL_METHOD(&_11$$7, &router, "getparams", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&possibleResponse); - ZEPHIR_CALL_USER_FUNC_ARRAY(&possibleResponse, &match, &_11$$7); - zephir_check_call_status(); - if (Z_TYPE_P(&possibleResponse) == IS_STRING) { - ZEPHIR_INIT_VAR(&_13$$9); - ZVAL_STRING(&_13$$9, "response"); - ZEPHIR_CALL_METHOD(&_12$$9, &container, "getshared", NULL, 0, &_13$$9); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&response, &_12$$9); - ZEPHIR_CALL_METHOD(NULL, &response, "setcontent", NULL, 0, &possibleResponse); - zephir_check_call_status(); - RETURN_CCTOR(&response); - } - _14$$7 = Z_TYPE_P(&possibleResponse) == IS_OBJECT; - if (_14$$7) { - _14$$7 = zephir_instance_of_ev(&possibleResponse, phalcon_http_responseinterface_ce); - } - if (_14$$7) { - ZEPHIR_CALL_METHOD(NULL, &possibleResponse, "sendheaders", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &possibleResponse, "sendcookies", NULL, 0); - zephir_check_call_status(); - RETURN_CCTOR(&possibleResponse); +vv321: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv322; } +vv322: + { + token->opcode = PHVOLT_T_DEFAULT; + token->value = estrndup(start, VVCURSOR - start); + token->len = VVCURSOR - start; + return 0; } - } - ZEPHIR_CALL_METHOD(&moduleName, &router, "getmodulename", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&moduleName))) { - ZEPHIR_OBS_NVAR(&moduleName); - zephir_read_property(&moduleName, this_ptr, ZEND_STRL("defaultModule"), PH_NOISY_CC); - } - ZEPHIR_INIT_VAR(&moduleObject); - ZVAL_NULL(&moduleObject); - if (zephir_is_true(&moduleName)) { - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_16$$13); - ZVAL_STRING(&_16$$13, "application:beforeStartModule"); - ZEPHIR_CALL_METHOD(&_15$$13, &eventsManager, "fire", NULL, 0, &_16$$13, this_ptr, &moduleName); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_15$$13)) { - RETURN_MM_BOOL(0); +vv323: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv324; } +vv324: + { + s->statement_position++; + token->opcode = PHVOLT_T_DEFINED; + return 0; } - ZEPHIR_CALL_METHOD(&module, this_ptr, "getmodule", NULL, 0, &moduleName); - zephir_check_call_status(); - _17$$12 = Z_TYPE_P(&module) != IS_ARRAY; - if (_17$$12) { - _17$$12 = Z_TYPE_P(&module) != IS_OBJECT; - } - if (UNEXPECTED(_17$$12)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_application_exception_ce, "Invalid module definition", "phalcon/Mvc/Application.zep", 198); - return; - } - if (Z_TYPE_P(&module) == IS_ARRAY) { - ZEPHIR_OBS_VAR(&className); - if (!(zephir_array_isset_string_fetch(&className, &module, SL("className"), 0))) { - ZEPHIR_INIT_NVAR(&className); - ZVAL_STRING(&className, "Module"); +vv325: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv326; } - ZEPHIR_OBS_VAR(&path); - if (zephir_array_isset_string_fetch(&path, &module, SL("path"), 0)) { - if (UNEXPECTED(!((zephir_file_exists(&path) == SUCCESS)))) { - ZEPHIR_INIT_VAR(&_18$$19); - object_init_ex(&_18$$19, phalcon_mvc_application_exception_ce); - ZEPHIR_INIT_VAR(&_19$$19); - ZEPHIR_CONCAT_SVS(&_19$$19, "Module definition path '", &path, "' doesn't exist"); - ZEPHIR_CALL_METHOD(NULL, &_18$$19, "__construct", NULL, 8, &_19$$19); - zephir_check_call_status(); - zephir_throw_exception_debug(&_18$$19, "phalcon/Mvc/Application.zep", 220); - ZEPHIR_MM_RESTORE(); - return; - } - if (!(zephir_class_exists(&className, zephir_is_true(&__$false) ))) { - if (zephir_require_zval(&path) == FAILURE) { - RETURN_MM_NULL(); - } - } +vv326: + { + token->opcode = PHVOLT_T_ELSEFOR; + return 0; + } +vv327: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv346; + default: goto vv54; } - ZEPHIR_CALL_METHOD(&_20$$16, &container, "get", NULL, 0, &className); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&moduleObject, &_20$$16); - ZEPHIR_CALL_METHOD(NULL, &moduleObject, "registerautoloaders", NULL, 0, &container); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &moduleObject, "registerservices", NULL, 0, &container); - zephir_check_call_status(); - } else { - if (UNEXPECTED(!((zephir_is_instance_of(&module, SL("Closure")))))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_application_exception_ce, "Invalid module definition", "phalcon/Mvc/Application.zep", 241); - return; +vv328: + vvch = *++VVCURSOR; + switch (vvch) { + case 'K': + case 'k': goto vv347; + default: goto vv54; } - ZEPHIR_INIT_VAR(&_21$$21); - zephir_create_array(&_21$$21, 1, 0); - zephir_array_fast_append(&_21$$21, &container); - ZEPHIR_INIT_NVAR(&moduleObject); - ZEPHIR_CALL_USER_FUNC_ARRAY(&moduleObject, &module, &_21$$21); - zephir_check_call_status(); - } - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_22$$23); - ZVAL_STRING(&_22$$23, "application:afterStartModule"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_22$$23, this_ptr, &moduleObject); - zephir_check_call_status(); - } - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("implicitView"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&implicitView, &_0); - if (ZEPHIR_IS_TRUE_IDENTICAL(&implicitView)) { - ZEPHIR_INIT_VAR(&_24$$24); - ZVAL_STRING(&_24$$24, "view"); - ZEPHIR_CALL_METHOD(&_23$$24, &container, "getshared", NULL, 0, &_24$$24); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&view, &_23$$24); - } - ZEPHIR_INIT_NVAR(&_8); - ZVAL_STRING(&_8, "dispatcher"); - ZEPHIR_CALL_METHOD(&_7, &container, "getshared", NULL, 0, &_8); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&dispatcher, &_7); - ZEPHIR_CALL_METHOD(&_7, &router, "getmodulename", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &dispatcher, "setmodulename", NULL, 0, &_7); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_25, &router, "getnamespacename", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &dispatcher, "setnamespacename", NULL, 0, &_25); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_26, &router, "getcontrollername", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &dispatcher, "setcontrollername", NULL, 0, &_26); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_27, &router, "getactionname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &dispatcher, "setactionname", NULL, 0, &_27); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_28, &router, "getparams", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &dispatcher, "setparams", NULL, 0, &_28); - zephir_check_call_status(); - if (ZEPHIR_IS_TRUE_IDENTICAL(&implicitView)) { - ZEPHIR_CALL_METHOD(NULL, &view, "start", NULL, 0); - zephir_check_call_status(); - } - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_30$$26); - ZVAL_STRING(&_30$$26, "application:beforeHandleRequest"); - ZEPHIR_CALL_METHOD(&_29$$26, &eventsManager, "fire", NULL, 0, &_30$$26, this_ptr, &dispatcher); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_29$$26)) { - RETURN_MM_BOOL(0); - } - } - ZEPHIR_CALL_METHOD(&controller, &dispatcher, "dispatch", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&possibleResponse, &dispatcher, "getreturnedvalue", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&possibleResponse)) { - ZEPHIR_INIT_VAR(&_32$$28); - ZVAL_STRING(&_32$$28, "response"); - ZEPHIR_CALL_METHOD(&_31$$28, &container, "getshared", NULL, 0, &_32$$28); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&response, &_31$$28); - } else { - if (Z_TYPE_P(&possibleResponse) == IS_STRING) { - ZEPHIR_INIT_VAR(&_34$$30); - ZVAL_STRING(&_34$$30, "response"); - ZEPHIR_CALL_METHOD(&_33$$30, &container, "getshared", NULL, 0, &_34$$30); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&response, &_33$$30); - ZEPHIR_CALL_METHOD(NULL, &response, "setcontent", NULL, 0, &possibleResponse); - zephir_check_call_status(); - } else { - _35$$31 = (Z_TYPE_P(&possibleResponse) == IS_OBJECT); - if (_35$$31) { - _35$$31 = (zephir_instance_of_ev(&possibleResponse, phalcon_http_responseinterface_ce)); +vv329: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv349; + default: goto vv54; } - returnedResponse = _35$$31; - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_36$$32); - ZVAL_STRING(&_36$$32, "application:afterHandleRequest"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_36$$32, this_ptr, &controller); - zephir_check_call_status(); +vv330: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv331; } - _37$$31 = returnedResponse == 0; - if (_37$$31) { - _37$$31 = ZEPHIR_IS_TRUE_IDENTICAL(&implicitView); +vv331: + { + token->opcode = PHVOLT_T_ENDCALL; + return 0; + } +vv332: + vvch = *++VVCURSOR; + switch (vvch) { + case 'O': + case 'o': goto vv351; + default: goto vv54; } - if (_37$$31) { - if (Z_TYPE_P(&controller) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&renderStatus); - ZVAL_BOOL(&renderStatus, 1); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_38$$35); - ZVAL_STRING(&_38$$35, "application:viewRender"); - ZEPHIR_CALL_METHOD(&renderStatus, &eventsManager, "fire", NULL, 0, &_38$$35, this_ptr, &view); - zephir_check_call_status(); - } - if (!ZEPHIR_IS_FALSE_IDENTICAL(&renderStatus)) { - ZEPHIR_CALL_METHOD(&_39$$36, &dispatcher, "getcontrollername", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_40$$36, &dispatcher, "getactionname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &view, "render", NULL, 0, &_39$$36, &_40$$36); - zephir_check_call_status(); - } - } +vv333: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv353; + default: goto vv54; } - if (ZEPHIR_IS_TRUE_IDENTICAL(&implicitView)) { - ZEPHIR_CALL_METHOD(NULL, &view, "finish", NULL, 0); - zephir_check_call_status(); +vv334: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv335; } - if (returnedResponse == 1) { - ZEPHIR_CPY_WRT(&response, &possibleResponse); - } else { - ZEPHIR_INIT_VAR(&_42$$39); - ZVAL_STRING(&_42$$39, "response"); - ZEPHIR_CALL_METHOD(&_41$$39, &container, "getshared", NULL, 0, &_42$$39); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&response, &_41$$39); - if (ZEPHIR_IS_TRUE_IDENTICAL(&implicitView)) { - ZEPHIR_CALL_METHOD(&_43$$40, &view, "getcontent", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &response, "setcontent", NULL, 0, &_43$$40); - zephir_check_call_status(); - } +vv335: + { + s->statement_position++; + token->opcode = PHVOLT_T_EXTENDS; + return 0; + } +vv336: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv337; } +vv337: + { + s->statement_position++; + token->opcode = PHVOLT_T_INCLUDE; + return 0; + } +vv338: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv354; + default: goto vv54; + } +vv339: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv340; + } +vv340: + { + s->statement_position++; + token->opcode = PHVOLT_T_NUMERIC; + return 0; + } +vv341: + ++VVCURSOR; + { + s->statement_position++; + token->opcode = PHVOLT_T_NOTEQUALS; + return 0; + } +vv343: + vvch = *++VVCURSOR; + switch (vvch) { + case 'P': + case 'p': goto vv356; + default: goto vv54; + } +vv344: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv345; + } +vv345: + { + s->statement_position++; + token->opcode = PHVOLT_T_CONTINUE; + return 0; + } +vv346: + vvch = *++VVCURSOR; + switch (vvch) { + case 'S': + case 's': goto vv357; + default: goto vv54; + } +vv347: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv348; + } +vv348: + { + token->opcode = PHVOLT_T_ENDBLOCK; + return 0; + } +vv349: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv350; + } +vv350: + { + token->opcode = PHVOLT_T_ENDCACHE; + return 0; + } +vv351: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv352; + } +vv352: + { + token->opcode = PHVOLT_T_ENDMACRO; + return 0; + } +vv353: + vvch = *++VVCURSOR; + switch (vvch) { + case 'H': + case 'h': goto vv358; + default: goto vv54; + } +vv354: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv355; + } +vv355: + { + s->statement_position++; + token->opcode = PHVOLT_T_ITERABLE; + return 0; + } +vv356: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv360; + default: goto vv54; + } +vv357: + vvch = *++VVCURSOR; + switch (vvch) { + case 'C': + case 'c': goto vv362; + default: goto vv54; + } +vv358: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv359; + } +vv359: + { + token->opcode = PHVOLT_T_ENDSWITCH; + return 0; + } +vv360: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv361; + } +vv361: + { + s->statement_position++; + token->opcode = PHVOLT_T_AUTOESCAPE; + return 0; + } +vv362: + vvch = *++VVCURSOR; + switch (vvch) { + case 'A': + case 'a': goto vv363; + default: goto vv54; + } +vv363: + vvch = *++VVCURSOR; + switch (vvch) { + case 'P': + case 'p': goto vv364; + default: goto vv54; + } +vv364: + vvch = *++VVCURSOR; + switch (vvch) { + case 'E': + case 'e': goto vv365; + default: goto vv54; + } +vv365: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv366; + } +vv366: + { + s->statement_position++; + token->opcode = PHVOLT_T_ENDAUTOESCAPE; + return 0; + } } - } - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_44$$41); - ZVAL_STRING(&_44$$41, "application:beforeSendResponse"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_44$$41, this_ptr, &response); - zephir_check_call_status(); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("sendHeaders"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_0)) { - ZEPHIR_CALL_METHOD(NULL, &response, "sendheaders", NULL, 0); - zephir_check_call_status(); - } - zephir_read_property(&_45, this_ptr, ZEND_STRL("sendCookies"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_45)) { - ZEPHIR_CALL_METHOD(NULL, &response, "sendcookies", NULL, 0); - zephir_check_call_status(); - } - RETURN_CCTOR(&response); -} - -static PHP_METHOD(Phalcon_Mvc_Application, sendCookiesOnHandleRequest) -{ - zval *sendCookies_param = NULL, __$true, __$false; - zend_bool sendCookies; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(sendCookies) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &sendCookies_param); - sendCookies = zephir_get_boolval(sendCookies_param); - - - if (sendCookies) { - zephir_update_property_zval(this_ptr, ZEND_STRL("sendCookies"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("sendCookies"), &__$false); - } - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Mvc_Application, sendHeadersOnHandleRequest) -{ - zval *sendHeaders_param = NULL, __$true, __$false; - zend_bool sendHeaders; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(sendHeaders) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &sendHeaders_param); - sendHeaders = zephir_get_boolval(sendHeaders_param); - if (sendHeaders) { - zephir_update_property_zval(this_ptr, ZEND_STRL("sendHeaders"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("sendHeaders"), &__$false); + } } - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Mvc_Application, useImplicitView) -{ - zval *implicitView_param = NULL, __$true, __$false; - zend_bool implicitView; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(implicitView) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &implicitView_param); - implicitView = zephir_get_boolval(implicitView_param); - - if (implicitView) { - zephir_update_property_zval(this_ptr, ZEND_STRL("implicitView"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("implicitView"), &__$false); - } - RETURN_THISW(); + return status; } - #ifdef HAVE_CONFIG_H #endif @@ -119233,31 +108923,13 @@ static PHP_METHOD(Phalcon_Mvc_Application, useImplicitView) -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Controller) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Application_Exception) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc, Controller, phalcon, mvc_controller, phalcon_di_injectable_ce, phalcon_mvc_controller_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Application, Exception, phalcon, mvc_application_exception, phalcon_application_exception_ce, NULL, 0); - zend_class_implements(phalcon_mvc_controller_ce, 1, phalcon_mvc_controllerinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Controller, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - - - ZEPHIR_MM_GROW(); - - if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("onconstruct")) == SUCCESS)) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "onconstruct", NULL, 0); - zephir_check_call_status(); - } - ZEPHIR_MM_RESTORE(); -} - @@ -119268,2490 +108940,3075 @@ static PHP_METHOD(Phalcon_Mvc_Controller, __construct) -ZEPHIR_INIT_CLASS(Phalcon_Mvc_ControllerInterface) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Router_Annotations) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc, ControllerInterface, phalcon, mvc_controllerinterface, NULL); - - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Router, Annotations, phalcon, mvc_router_annotations, phalcon_mvc_router_ce, phalcon_mvc_router_annotations_method_entry, 0); -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Dispatcher) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc, Dispatcher, phalcon, mvc_dispatcher, phalcon_dispatcher_abstractdispatcher_ce, phalcon_mvc_dispatcher_method_entry, 0); + zend_declare_property_string(phalcon_mvc_router_annotations_ce, SL("actionSuffix"), "Action", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_annotations_ce, SL("actionPreformatCallback"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_mvc_router_annotations_ce, SL("controllerSuffix"), "Controller", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_annotations_ce, SL("handlers"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_mvc_router_annotations_ce, SL("routePrefix"), "", ZEND_ACC_PROTECTED); + phalcon_mvc_router_annotations_ce->create_object = zephir_init_properties_Phalcon_Mvc_Router_Annotations; - zend_declare_property_string(phalcon_mvc_dispatcher_ce, SL("defaultAction"), "index", ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_mvc_dispatcher_ce, SL("defaultHandler"), "index", ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_mvc_dispatcher_ce, SL("handlerSuffix"), "Controller", ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_mvc_dispatcher_ce, 1, phalcon_mvc_dispatcherinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Dispatcher, forward) +static PHP_METHOD(Phalcon_Mvc_Router_Annotations, addModuleResource) { + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_2 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *forward_param = NULL, eventsManager, _0, _1$$3; - zval forward; + zval *module_param = NULL, *handler_param = NULL, *prefix_param = NULL; + zval module, handler, prefix; zval *this_ptr = getThis(); - ZVAL_UNDEF(&forward); - ZVAL_UNDEF(&eventsManager); + ZVAL_UNDEF(&module); + ZVAL_UNDEF(&handler); + ZVAL_UNDEF(&prefix); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(forward) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(module) + Z_PARAM_STR(handler) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(prefix) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &forward_param); - zephir_get_arrval(&forward, forward_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_0); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "dispatch:beforeForward"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_1$$3, this_ptr, &forward); - zephir_check_call_status(); + zephir_fetch_params(1, 2, 1, &module_param, &handler_param, &prefix_param); + if (UNEXPECTED(Z_TYPE_P(module_param) != IS_STRING && Z_TYPE_P(module_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'module' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(module_param) == IS_STRING)) { + zephir_get_strval(&module, module_param); + } else { + ZEPHIR_INIT_VAR(&module); + } + if (UNEXPECTED(Z_TYPE_P(handler_param) != IS_STRING && Z_TYPE_P(handler_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'handler' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(handler_param) == IS_STRING)) { + zephir_get_strval(&handler, handler_param); + } else { + ZEPHIR_INIT_VAR(&handler); + } + if (!prefix_param) { + ZEPHIR_INIT_VAR(&prefix); + } else { + if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { + zephir_get_strval(&prefix, prefix_param); + } else { + ZEPHIR_INIT_VAR(&prefix); + } } - ZEPHIR_CALL_PARENT(NULL, phalcon_mvc_dispatcher_ce, getThis(), "forward", &_2, 0, &forward); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Mvc_Dispatcher, getActiveController) -{ - zval *this_ptr = getThis(); - - RETURN_MEMBER(getThis(), "activeHandler"); + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 3, 0); + zephir_array_fast_append(&_0, &prefix); + zephir_array_fast_append(&_0, &handler); + zephir_array_fast_append(&_0, &module); + zephir_update_property_array_append(this_ptr, SL("handlers"), &_0); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Dispatcher, getControllerClass) +static PHP_METHOD(Phalcon_Mvc_Router_Annotations, addResource) { + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval *handler_param = NULL, *prefix_param = NULL; + zval handler, prefix; zval *this_ptr = getThis(); + ZVAL_UNDEF(&handler); + ZVAL_UNDEF(&prefix); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(handler) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(prefix) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethandlerclass", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Mvc_Dispatcher, getControllerName) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "handlerName"); -} - -static PHP_METHOD(Phalcon_Mvc_Dispatcher, getLastController) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "lastHandler"); -} - -static PHP_METHOD(Phalcon_Mvc_Dispatcher, getPreviousActionName) -{ - zval *this_ptr = getThis(); - + zephir_fetch_params(1, 1, 1, &handler_param, &prefix_param); + if (UNEXPECTED(Z_TYPE_P(handler_param) != IS_STRING && Z_TYPE_P(handler_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'handler' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(handler_param) == IS_STRING)) { + zephir_get_strval(&handler, handler_param); + } else { + ZEPHIR_INIT_VAR(&handler); + } + if (!prefix_param) { + ZEPHIR_INIT_VAR(&prefix); + } else { + if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { + zephir_get_strval(&prefix, prefix_param); + } else { + ZEPHIR_INIT_VAR(&prefix); + } + } - RETURN_MEMBER(getThis(), "previousActionName"); + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 2, 0); + zephir_array_fast_append(&_0, &prefix); + zephir_array_fast_append(&_0, &handler); + zephir_update_property_array_append(this_ptr, SL("handlers"), &_0); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Dispatcher, getPreviousControllerName) +static PHP_METHOD(Phalcon_Mvc_Router_Annotations, getResources) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "previousHandlerName"); + RETURN_MEMBER(getThis(), "handlers"); } -static PHP_METHOD(Phalcon_Mvc_Dispatcher, getPreviousNamespaceName) +static PHP_METHOD(Phalcon_Mvc_Router_Annotations, handle) { + zend_string *_24$$18, *_45$$41; + zend_ulong _23$$18, _44$$41; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_3 = NULL, *_8 = NULL, *_10 = NULL, *_17 = NULL, *_20 = NULL, *_28 = NULL, *_39 = NULL, *_52 = NULL; + zval *uri_param = NULL, __$null, annotationsService, handlers, controllerSuffix, scope, prefix, route, compiledPattern, container, handler, controllerName, lowerControllerName, namespaceName, moduleName, handlerAnnotations, classAnnotations, annotations, annotation, methodAnnotations, method, collection, _0, _5, *_6, _7, _1$$3, _2$$3, _4$$3, _9$$6, _11$$6, _12$$6, _13$$7, _14$$7, _15$$4, _16$$12, *_18$$15, _19$$15, *_21$$18, _22$$18, _25$$19, *_26$$19, _27$$19, _29$$23, *_30$$23, _31$$23, _32$$29, _33$$29, _34$$29, _35$$30, _36$$30, _37$$27, _38$$35, *_40$$38, _41$$38, *_42$$41, _43$$41, _46$$42, *_47$$42, _48$$42, _49$$46, *_50$$46, _51$$46; + zval uri, sufixed; zval *this_ptr = getThis(); - - - RETURN_MEMBER(getThis(), "previousNamespaceName"); -} - -static PHP_METHOD(Phalcon_Mvc_Dispatcher, setControllerName) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *controllerName_param = NULL; - zval controllerName; - zval *this_ptr = getThis(); - + ZVAL_UNDEF(&uri); + ZVAL_UNDEF(&sufixed); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&annotationsService); + ZVAL_UNDEF(&handlers); + ZVAL_UNDEF(&controllerSuffix); + ZVAL_UNDEF(&scope); + ZVAL_UNDEF(&prefix); + ZVAL_UNDEF(&route); + ZVAL_UNDEF(&compiledPattern); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&handler); ZVAL_UNDEF(&controllerName); + ZVAL_UNDEF(&lowerControllerName); + ZVAL_UNDEF(&namespaceName); + ZVAL_UNDEF(&moduleName); + ZVAL_UNDEF(&handlerAnnotations); + ZVAL_UNDEF(&classAnnotations); + ZVAL_UNDEF(&annotations); + ZVAL_UNDEF(&annotation); + ZVAL_UNDEF(&methodAnnotations); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_9$$6); + ZVAL_UNDEF(&_11$$6); + ZVAL_UNDEF(&_12$$6); + ZVAL_UNDEF(&_13$$7); + ZVAL_UNDEF(&_14$$7); + ZVAL_UNDEF(&_15$$4); + ZVAL_UNDEF(&_16$$12); + ZVAL_UNDEF(&_19$$15); + ZVAL_UNDEF(&_22$$18); + ZVAL_UNDEF(&_25$$19); + ZVAL_UNDEF(&_27$$19); + ZVAL_UNDEF(&_29$$23); + ZVAL_UNDEF(&_31$$23); + ZVAL_UNDEF(&_32$$29); + ZVAL_UNDEF(&_33$$29); + ZVAL_UNDEF(&_34$$29); + ZVAL_UNDEF(&_35$$30); + ZVAL_UNDEF(&_36$$30); + ZVAL_UNDEF(&_37$$27); + ZVAL_UNDEF(&_38$$35); + ZVAL_UNDEF(&_41$$38); + ZVAL_UNDEF(&_43$$41); + ZVAL_UNDEF(&_46$$42); + ZVAL_UNDEF(&_48$$42); + ZVAL_UNDEF(&_49$$46); + ZVAL_UNDEF(&_51$$46); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(controllerName) + Z_PARAM_STR(uri) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &controllerName_param); - if (UNEXPECTED(Z_TYPE_P(controllerName_param) != IS_STRING && Z_TYPE_P(controllerName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'controllerName' must be of the type string")); + zephir_fetch_params(1, 1, 0, &uri_param); + if (UNEXPECTED(Z_TYPE_P(uri_param) != IS_STRING && Z_TYPE_P(uri_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'uri' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(controllerName_param) == IS_STRING)) { - zephir_get_strval(&controllerName, controllerName_param); + if (EXPECTED(Z_TYPE_P(uri_param) == IS_STRING)) { + zephir_get_strval(&uri, uri_param); } else { - ZEPHIR_INIT_VAR(&controllerName); + ZEPHIR_INIT_VAR(&uri); } - zephir_update_property_zval(this_ptr, ZEND_STRL("handlerName"), &controllerName); + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_mvc_router_exception_ce); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "the 'annotations' service"); + ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_mvc_router_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Router/Annotations.zep", 114); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("handlers"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&handlers, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("controllerSuffix"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&controllerSuffix, &_0); + ZEPHIR_INIT_VAR(&_5); + ZVAL_STRING(&_5, "annotations"); + ZEPHIR_CALL_METHOD(&annotationsService, &container, "getshared", NULL, 0, &_5); + zephir_check_call_status(); + zephir_is_iterable(&handlers, 0, "phalcon/Mvc/Router/Annotations.zep", 249); + if (Z_TYPE_P(&handlers) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&handlers), _6) + { + ZEPHIR_INIT_NVAR(&scope); + ZVAL_COPY(&scope, _6); + if (Z_TYPE_P(&scope) != IS_ARRAY) { + continue; + } + ZEPHIR_OBS_NVAR(&prefix); + zephir_array_fetch_long(&prefix, &scope, 0, PH_NOISY, "phalcon/Mvc/Router/Annotations.zep", 129); + if (!(ZEPHIR_IS_EMPTY(&prefix))) { + ZEPHIR_INIT_NVAR(&route); + object_init_ex(&route, phalcon_mvc_router_route_ce); + ZEPHIR_CALL_METHOD(NULL, &route, "__construct", &_8, 117, &prefix); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_9$$6, &route, "getcompiledpattern", &_10, 495); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_11$$6); + ZVAL_STRING(&_11$$6, "$#"); + ZEPHIR_INIT_NVAR(&_12$$6); + ZVAL_STRING(&_12$$6, "#"); + ZEPHIR_INIT_NVAR(&compiledPattern); + zephir_fast_str_replace(&compiledPattern, &_11$$6, &_12$$6, &_9$$6); + if (zephir_memnstr_str(&compiledPattern, SL("^"), "phalcon/Mvc/Router/Annotations.zep", 146)) { + ZEPHIR_INIT_NVAR(&_13$$7); + ZEPHIR_INIT_NVAR(&_14$$7); + zephir_preg_match(&_14$$7, &compiledPattern, &uri, &_13$$7, 0, 0 , 0 ); + if (!(zephir_is_true(&_14$$7))) { + continue; + } + } else if (!(zephir_start_with(&uri, &prefix, NULL))) { + continue; + } + } + ZEPHIR_OBS_NVAR(&handler); + zephir_array_fetch_long(&handler, &scope, 1, PH_NOISY, "phalcon/Mvc/Router/Annotations.zep", 161); + if (zephir_memnstr_str(&handler, SL("\\"), "phalcon/Mvc/Router/Annotations.zep", 163)) { + ZEPHIR_INIT_NVAR(&controllerName); + zephir_get_class_ns(&controllerName, &handler, 0); + ZEPHIR_INIT_NVAR(&namespaceName); + zephir_get_ns_class(&namespaceName, &handler, 0); + } else { + ZEPHIR_CPY_WRT(&controllerName, &handler); + ZEPHIR_OBS_NVAR(&namespaceName); + zephir_fetch_property(&namespaceName, this_ptr, SL("defaultNamespace"), PH_SILENT_CC); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("routePrefix"), &__$null); + ZEPHIR_OBS_NVAR(&moduleName); + zephir_array_isset_long_fetch(&moduleName, &scope, 2, 0); + ZEPHIR_INIT_NVAR(&_15$$4); + ZEPHIR_CONCAT_VV(&_15$$4, &controllerName, &controllerSuffix); + zephir_get_strval(&sufixed, &_15$$4); + if (Z_TYPE_P(&namespaceName) != IS_NULL) { + ZEPHIR_INIT_NVAR(&_16$$12); + ZEPHIR_CONCAT_VSV(&_16$$12, &namespaceName, "\\", &sufixed); + zephir_get_strval(&sufixed, &_16$$12); + } + ZEPHIR_CALL_METHOD(&handlerAnnotations, &annotationsService, "get", &_17, 0, &sufixed); + zephir_check_call_status(); + if (Z_TYPE_P(&handlerAnnotations) != IS_OBJECT) { + continue; + } + ZEPHIR_CALL_METHOD(&classAnnotations, &handlerAnnotations, "getclassannotations", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&classAnnotations) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(&annotations, &classAnnotations, "getannotations", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&annotations) == IS_ARRAY) { + zephir_is_iterable(&annotations, 0, "phalcon/Mvc/Router/Annotations.zep", 217); + if (Z_TYPE_P(&annotations) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&annotations), _18$$15) + { + ZEPHIR_INIT_NVAR(&annotation); + ZVAL_COPY(&annotation, _18$$15); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processcontrollerannotation", &_20, 0, &controllerName, &annotation); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &annotations, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_19$$15, &annotations, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_19$$15)) { + break; + } + ZEPHIR_CALL_METHOD(&annotation, &annotations, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processcontrollerannotation", &_20, 0, &controllerName, &annotation); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &annotations, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&annotation); + } + } + ZEPHIR_CALL_METHOD(&methodAnnotations, &handlerAnnotations, "getmethodsannotations", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&methodAnnotations) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&lowerControllerName); + zephir_uncamelize(&lowerControllerName, &controllerName, NULL ); + zephir_is_iterable(&methodAnnotations, 0, "phalcon/Mvc/Router/Annotations.zep", 243); + if (Z_TYPE_P(&methodAnnotations) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&methodAnnotations), _23$$18, _24$$18, _21$$18) + { + ZEPHIR_INIT_NVAR(&method); + if (_24$$18 != NULL) { + ZVAL_STR_COPY(&method, _24$$18); + } else { + ZVAL_LONG(&method, _23$$18); + } + ZEPHIR_INIT_NVAR(&collection); + ZVAL_COPY(&collection, _21$$18); + if (Z_TYPE_P(&collection) != IS_OBJECT) { + continue; + } + ZEPHIR_CALL_METHOD(&_25$$19, &collection, "getannotations", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&_25$$19, 0, "phalcon/Mvc/Router/Annotations.zep", 242); + if (Z_TYPE_P(&_25$$19) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_25$$19), _26$$19) + { + ZEPHIR_INIT_NVAR(&annotation); + ZVAL_COPY(&annotation, _26$$19); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processactionannotation", &_28, 0, &moduleName, &namespaceName, &lowerControllerName, &method, &annotation); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_25$$19, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_27$$19, &_25$$19, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_27$$19)) { + break; + } + ZEPHIR_CALL_METHOD(&annotation, &_25$$19, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processactionannotation", &_28, 0, &moduleName, &namespaceName, &lowerControllerName, &method, &annotation); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_25$$19, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&annotation); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &methodAnnotations, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_22$$18, &methodAnnotations, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_22$$18)) { + break; + } + ZEPHIR_CALL_METHOD(&method, &methodAnnotations, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&collection, &methodAnnotations, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&collection) != IS_OBJECT) { + continue; + } + ZEPHIR_CALL_METHOD(&_29$$23, &collection, "getannotations", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&_29$$23, 0, "phalcon/Mvc/Router/Annotations.zep", 242); + if (Z_TYPE_P(&_29$$23) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_29$$23), _30$$23) + { + ZEPHIR_INIT_NVAR(&annotation); + ZVAL_COPY(&annotation, _30$$23); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processactionannotation", &_28, 0, &moduleName, &namespaceName, &lowerControllerName, &method, &annotation); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_29$$23, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_31$$23, &_29$$23, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_31$$23)) { + break; + } + ZEPHIR_CALL_METHOD(&annotation, &_29$$23, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processactionannotation", &_28, 0, &moduleName, &namespaceName, &lowerControllerName, &method, &annotation); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_29$$23, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&annotation); + ZEPHIR_CALL_METHOD(NULL, &methodAnnotations, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&collection); + ZEPHIR_INIT_NVAR(&method); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &handlers, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_7, &handlers, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_7)) { + break; + } + ZEPHIR_CALL_METHOD(&scope, &handlers, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&scope) != IS_ARRAY) { + continue; + } + ZEPHIR_OBS_NVAR(&prefix); + zephir_array_fetch_long(&prefix, &scope, 0, PH_NOISY, "phalcon/Mvc/Router/Annotations.zep", 129); + if (!(ZEPHIR_IS_EMPTY(&prefix))) { + ZEPHIR_INIT_NVAR(&route); + object_init_ex(&route, phalcon_mvc_router_route_ce); + ZEPHIR_CALL_METHOD(NULL, &route, "__construct", &_8, 117, &prefix); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_32$$29, &route, "getcompiledpattern", &_10, 495); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_33$$29); + ZVAL_STRING(&_33$$29, "$#"); + ZEPHIR_INIT_NVAR(&_34$$29); + ZVAL_STRING(&_34$$29, "#"); + ZEPHIR_INIT_NVAR(&compiledPattern); + zephir_fast_str_replace(&compiledPattern, &_33$$29, &_34$$29, &_32$$29); + if (zephir_memnstr_str(&compiledPattern, SL("^"), "phalcon/Mvc/Router/Annotations.zep", 146)) { + ZEPHIR_INIT_NVAR(&_35$$30); + ZEPHIR_INIT_NVAR(&_36$$30); + zephir_preg_match(&_36$$30, &compiledPattern, &uri, &_35$$30, 0, 0 , 0 ); + if (!(zephir_is_true(&_36$$30))) { + continue; + } + } else if (!(zephir_start_with(&uri, &prefix, NULL))) { + continue; + } + } + ZEPHIR_OBS_NVAR(&handler); + zephir_array_fetch_long(&handler, &scope, 1, PH_NOISY, "phalcon/Mvc/Router/Annotations.zep", 161); + if (zephir_memnstr_str(&handler, SL("\\"), "phalcon/Mvc/Router/Annotations.zep", 163)) { + ZEPHIR_INIT_NVAR(&controllerName); + zephir_get_class_ns(&controllerName, &handler, 0); + ZEPHIR_INIT_NVAR(&namespaceName); + zephir_get_ns_class(&namespaceName, &handler, 0); + } else { + ZEPHIR_CPY_WRT(&controllerName, &handler); + ZEPHIR_OBS_NVAR(&namespaceName); + zephir_fetch_property(&namespaceName, this_ptr, SL("defaultNamespace"), PH_SILENT_CC); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("routePrefix"), &__$null); + ZEPHIR_OBS_NVAR(&moduleName); + zephir_array_isset_long_fetch(&moduleName, &scope, 2, 0); + ZEPHIR_INIT_NVAR(&_37$$27); + ZEPHIR_CONCAT_VV(&_37$$27, &controllerName, &controllerSuffix); + zephir_get_strval(&sufixed, &_37$$27); + if (Z_TYPE_P(&namespaceName) != IS_NULL) { + ZEPHIR_INIT_NVAR(&_38$$35); + ZEPHIR_CONCAT_VSV(&_38$$35, &namespaceName, "\\", &sufixed); + zephir_get_strval(&sufixed, &_38$$35); + } + ZEPHIR_CALL_METHOD(&handlerAnnotations, &annotationsService, "get", &_39, 0, &sufixed); + zephir_check_call_status(); + if (Z_TYPE_P(&handlerAnnotations) != IS_OBJECT) { + continue; + } + ZEPHIR_CALL_METHOD(&classAnnotations, &handlerAnnotations, "getclassannotations", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&classAnnotations) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(&annotations, &classAnnotations, "getannotations", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&annotations) == IS_ARRAY) { + zephir_is_iterable(&annotations, 0, "phalcon/Mvc/Router/Annotations.zep", 217); + if (Z_TYPE_P(&annotations) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&annotations), _40$$38) + { + ZEPHIR_INIT_NVAR(&annotation); + ZVAL_COPY(&annotation, _40$$38); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processcontrollerannotation", &_20, 0, &controllerName, &annotation); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &annotations, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_41$$38, &annotations, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_41$$38)) { + break; + } + ZEPHIR_CALL_METHOD(&annotation, &annotations, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processcontrollerannotation", &_20, 0, &controllerName, &annotation); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &annotations, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&annotation); + } + } + ZEPHIR_CALL_METHOD(&methodAnnotations, &handlerAnnotations, "getmethodsannotations", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&methodAnnotations) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&lowerControllerName); + zephir_uncamelize(&lowerControllerName, &controllerName, NULL ); + zephir_is_iterable(&methodAnnotations, 0, "phalcon/Mvc/Router/Annotations.zep", 243); + if (Z_TYPE_P(&methodAnnotations) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&methodAnnotations), _44$$41, _45$$41, _42$$41) + { + ZEPHIR_INIT_NVAR(&method); + if (_45$$41 != NULL) { + ZVAL_STR_COPY(&method, _45$$41); + } else { + ZVAL_LONG(&method, _44$$41); + } + ZEPHIR_INIT_NVAR(&collection); + ZVAL_COPY(&collection, _42$$41); + if (Z_TYPE_P(&collection) != IS_OBJECT) { + continue; + } + ZEPHIR_CALL_METHOD(&_46$$42, &collection, "getannotations", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&_46$$42, 0, "phalcon/Mvc/Router/Annotations.zep", 242); + if (Z_TYPE_P(&_46$$42) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_46$$42), _47$$42) + { + ZEPHIR_INIT_NVAR(&annotation); + ZVAL_COPY(&annotation, _47$$42); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processactionannotation", &_28, 0, &moduleName, &namespaceName, &lowerControllerName, &method, &annotation); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_46$$42, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_48$$42, &_46$$42, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_48$$42)) { + break; + } + ZEPHIR_CALL_METHOD(&annotation, &_46$$42, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processactionannotation", &_28, 0, &moduleName, &namespaceName, &lowerControllerName, &method, &annotation); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_46$$42, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&annotation); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &methodAnnotations, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_43$$41, &methodAnnotations, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_43$$41)) { + break; + } + ZEPHIR_CALL_METHOD(&method, &methodAnnotations, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&collection, &methodAnnotations, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&collection) != IS_OBJECT) { + continue; + } + ZEPHIR_CALL_METHOD(&_49$$46, &collection, "getannotations", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&_49$$46, 0, "phalcon/Mvc/Router/Annotations.zep", 242); + if (Z_TYPE_P(&_49$$46) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_49$$46), _50$$46) + { + ZEPHIR_INIT_NVAR(&annotation); + ZVAL_COPY(&annotation, _50$$46); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processactionannotation", &_28, 0, &moduleName, &namespaceName, &lowerControllerName, &method, &annotation); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_49$$46, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_51$$46, &_49$$46, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_51$$46)) { + break; + } + ZEPHIR_CALL_METHOD(&annotation, &_49$$46, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processactionannotation", &_28, 0, &moduleName, &namespaceName, &lowerControllerName, &method, &annotation); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_49$$46, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&annotation); + ZEPHIR_CALL_METHOD(NULL, &methodAnnotations, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&collection); + ZEPHIR_INIT_NVAR(&method); + } + ZEPHIR_CALL_METHOD(NULL, &handlers, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&scope); + ZEPHIR_CALL_PARENT(NULL, phalcon_mvc_router_annotations_ce, getThis(), "handle", &_52, 0, &uri); + zephir_check_call_status(); ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Dispatcher, setControllerSuffix) +static PHP_METHOD(Phalcon_Mvc_Router_Annotations, processActionAnnotation) { + zend_string *_12$$18, *_18$$21; + zend_ulong _11$$18, _17$$21; + zend_bool isRoute = 0, _8, _21; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *controllerSuffix_param = NULL; - zval controllerSuffix; + zephir_fcall_cache_entry *_13 = NULL, *_14 = NULL, *_19 = NULL, *_20 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *module_param = NULL, *namespaceName_param = NULL, *controller_param = NULL, *action_param = NULL, *annotation, annotation_sub, name, proxyActionName, actionName, routePrefix, paths, value, uri, route, methods, converts, param, convert, converterParam, routeName, beforeMatch, _0, _1, _2, _5, _6, _3$$6, _4$$6, _7$$16, *_9$$18, _10$$18, *_15$$21, _16$$21; + zval module, namespaceName, controller, action; zval *this_ptr = getThis(); - ZVAL_UNDEF(&controllerSuffix); + ZVAL_UNDEF(&module); + ZVAL_UNDEF(&namespaceName); + ZVAL_UNDEF(&controller); + ZVAL_UNDEF(&action); + ZVAL_UNDEF(&annotation_sub); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&proxyActionName); + ZVAL_UNDEF(&actionName); + ZVAL_UNDEF(&routePrefix); + ZVAL_UNDEF(&paths); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&uri); + ZVAL_UNDEF(&route); + ZVAL_UNDEF(&methods); + ZVAL_UNDEF(&converts); + ZVAL_UNDEF(¶m); + ZVAL_UNDEF(&convert); + ZVAL_UNDEF(&converterParam); + ZVAL_UNDEF(&routeName); + ZVAL_UNDEF(&beforeMatch); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_3$$6); + ZVAL_UNDEF(&_4$$6); + ZVAL_UNDEF(&_7$$16); + ZVAL_UNDEF(&_10$$18); + ZVAL_UNDEF(&_16$$21); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(controllerSuffix) + ZEND_PARSE_PARAMETERS_START(5, 5) + Z_PARAM_STR(module) + Z_PARAM_STR(namespaceName) + Z_PARAM_STR(controller) + Z_PARAM_STR(action) + Z_PARAM_OBJECT_OF_CLASS(annotation, phalcon_annotations_annotation_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &controllerSuffix_param); - if (UNEXPECTED(Z_TYPE_P(controllerSuffix_param) != IS_STRING && Z_TYPE_P(controllerSuffix_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'controllerSuffix' must be of the type string")); + zephir_fetch_params(1, 5, 0, &module_param, &namespaceName_param, &controller_param, &action_param, &annotation); + if (UNEXPECTED(Z_TYPE_P(module_param) != IS_STRING && Z_TYPE_P(module_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'module' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(controllerSuffix_param) == IS_STRING)) { - zephir_get_strval(&controllerSuffix, controllerSuffix_param); + if (EXPECTED(Z_TYPE_P(module_param) == IS_STRING)) { + zephir_get_strval(&module, module_param); } else { - ZEPHIR_INIT_VAR(&controllerSuffix); + ZEPHIR_INIT_VAR(&module); + } + if (UNEXPECTED(Z_TYPE_P(namespaceName_param) != IS_STRING && Z_TYPE_P(namespaceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'namespaceName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(namespaceName_param) == IS_STRING)) { + zephir_get_strval(&namespaceName, namespaceName_param); + } else { + ZEPHIR_INIT_VAR(&namespaceName); + } + if (UNEXPECTED(Z_TYPE_P(controller_param) != IS_STRING && Z_TYPE_P(controller_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'controller' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(controller_param) == IS_STRING)) { + zephir_get_strval(&controller, controller_param); + } else { + ZEPHIR_INIT_VAR(&controller); + } + if (UNEXPECTED(Z_TYPE_P(action_param) != IS_STRING && Z_TYPE_P(action_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'action' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(action_param) == IS_STRING)) { + zephir_get_strval(&action, action_param); + } else { + ZEPHIR_INIT_VAR(&action); } - zephir_update_property_zval(this_ptr, ZEND_STRL("handlerSuffix"), &controllerSuffix); + isRoute = 0; + ZEPHIR_INIT_VAR(&methods); + ZVAL_NULL(&methods); + ZEPHIR_CALL_METHOD(&name, annotation, "getname", NULL, 0); + zephir_check_call_status(); + do { + if (ZEPHIR_IS_STRING(&name, "Route")) { + isRoute = 1; + break; + } + if (ZEPHIR_IS_STRING(&name, "Get") || ZEPHIR_IS_STRING(&name, "Post") || ZEPHIR_IS_STRING(&name, "Put") || ZEPHIR_IS_STRING(&name, "Patch") || ZEPHIR_IS_STRING(&name, "Delete") || ZEPHIR_IS_STRING(&name, "Options")) { + isRoute = 1; + ZEPHIR_INIT_NVAR(&methods); + zephir_fast_strtoupper(&methods, &name); + break; + } + } while(0); + + if (!(isRoute)) { + RETURN_MM_NULL(); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("actionSuffix"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, ""); + ZEPHIR_INIT_VAR(&proxyActionName); + zephir_fast_str_replace(&proxyActionName, &_0, &_1, &action); + zephir_read_property(&_2, this_ptr, ZEND_STRL("routePrefix"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&routePrefix, &_2); + zephir_read_property(&_2, this_ptr, ZEND_STRL("actionPreformatCallback"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) != IS_NULL) { + zephir_read_property(&_3$$6, this_ptr, ZEND_STRL("actionPreformatCallback"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&_4$$6, "call_user_func", NULL, 255, &_3$$6, &proxyActionName); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&proxyActionName, &_4$$6); + } + ZEPHIR_INIT_VAR(&actionName); + zephir_fast_strtolower(&actionName, &proxyActionName); + ZEPHIR_INIT_VAR(&_5); + ZVAL_STRING(&_5, "paths"); + ZEPHIR_CALL_METHOD(&paths, annotation, "getnamedargument", NULL, 0, &_5); + zephir_check_call_status(); + if (Z_TYPE_P(&paths) != IS_ARRAY) { + ZEPHIR_INIT_NVAR(&paths); + array_init(&paths); + } + if (!(ZEPHIR_IS_EMPTY(&module))) { + zephir_array_update_string(&paths, SL("module"), &module, PH_COPY | PH_SEPARATE); + } + if (!(ZEPHIR_IS_EMPTY(&namespaceName))) { + zephir_array_update_string(&paths, SL("namespace"), &namespaceName, PH_COPY | PH_SEPARATE); + } + zephir_array_update_string(&paths, SL("controller"), &controller, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&paths, SL("action"), &actionName, PH_COPY | PH_SEPARATE); + ZVAL_LONG(&_6, 0); + ZEPHIR_CALL_METHOD(&value, annotation, "getargument", NULL, 0, &_6); + zephir_check_call_status(); + if (Z_TYPE_P(&value) != IS_NULL) { + if (!ZEPHIR_IS_STRING(&value, "/")) { + ZEPHIR_INIT_VAR(&uri); + ZEPHIR_CONCAT_VV(&uri, &routePrefix, &value); + } else { + if (Z_TYPE_P(&routePrefix) != IS_NULL) { + ZEPHIR_CPY_WRT(&uri, &routePrefix); + } else { + ZEPHIR_CPY_WRT(&uri, &value); + } + } + } else { + ZEPHIR_INIT_NVAR(&uri); + ZEPHIR_CONCAT_VV(&uri, &routePrefix, &actionName); + } + ZEPHIR_CALL_METHOD(&route, this_ptr, "add", NULL, 0, &uri, &paths); + zephir_check_call_status(); + if (Z_TYPE_P(&methods) == IS_NULL) { + ZEPHIR_INIT_VAR(&_7$$16); + ZVAL_STRING(&_7$$16, "methods"); + ZEPHIR_CALL_METHOD(&methods, annotation, "getnamedargument", NULL, 0, &_7$$16); + zephir_check_call_status(); + } + _8 = Z_TYPE_P(&methods) == IS_ARRAY; + if (!(_8)) { + _8 = Z_TYPE_P(&methods) == IS_STRING; + } + if (_8) { + ZEPHIR_CALL_METHOD(NULL, &route, "via", NULL, 0, &methods); + zephir_check_call_status(); + } + ZEPHIR_INIT_NVAR(&_5); + ZVAL_STRING(&_5, "converts"); + ZEPHIR_CALL_METHOD(&converts, annotation, "getnamedargument", NULL, 0, &_5); + zephir_check_call_status(); + if (Z_TYPE_P(&converts) == IS_ARRAY) { + zephir_is_iterable(&converts, 0, "phalcon/Mvc/Router/Annotations.zep", 372); + if (Z_TYPE_P(&converts) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&converts), _11$$18, _12$$18, _9$$18) + { + ZEPHIR_INIT_NVAR(¶m); + if (_12$$18 != NULL) { + ZVAL_STR_COPY(¶m, _12$$18); + } else { + ZVAL_LONG(¶m, _11$$18); + } + ZEPHIR_INIT_NVAR(&convert); + ZVAL_COPY(&convert, _9$$18); + ZEPHIR_CALL_METHOD(NULL, &route, "convert", &_13, 0, ¶m, &convert); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &converts, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_10$$18, &converts, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_10$$18)) { + break; + } + ZEPHIR_CALL_METHOD(¶m, &converts, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&convert, &converts, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &route, "convert", &_14, 0, ¶m, &convert); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &converts, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&convert); + ZEPHIR_INIT_NVAR(¶m); + } + ZEPHIR_INIT_NVAR(&_5); + ZVAL_STRING(&_5, "converters"); + ZEPHIR_CALL_METHOD(&converts, annotation, "getnamedargument", NULL, 0, &_5); + zephir_check_call_status(); + if (Z_TYPE_P(&converts) == IS_ARRAY) { + zephir_is_iterable(&converts, 0, "phalcon/Mvc/Router/Annotations.zep", 383); + if (Z_TYPE_P(&converts) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&converts), _17$$21, _18$$21, _15$$21) + { + ZEPHIR_INIT_NVAR(&converterParam); + if (_18$$21 != NULL) { + ZVAL_STR_COPY(&converterParam, _18$$21); + } else { + ZVAL_LONG(&converterParam, _17$$21); + } + ZEPHIR_INIT_NVAR(&convert); + ZVAL_COPY(&convert, _15$$21); + ZEPHIR_CALL_METHOD(NULL, &route, "convert", &_19, 0, &converterParam, &convert); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &converts, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_16$$21, &converts, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_16$$21)) { + break; + } + ZEPHIR_CALL_METHOD(&converterParam, &converts, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&convert, &converts, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &route, "convert", &_20, 0, &converterParam, &convert); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &converts, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&convert); + ZEPHIR_INIT_NVAR(&converterParam); + } + ZEPHIR_INIT_NVAR(&_5); + ZVAL_STRING(&_5, "beforeMatch"); + ZEPHIR_CALL_METHOD(&beforeMatch, annotation, "getnamedargument", NULL, 0, &_5); + zephir_check_call_status(); + _21 = Z_TYPE_P(&beforeMatch) == IS_ARRAY; + if (!(_21)) { + _21 = Z_TYPE_P(&beforeMatch) == IS_STRING; + } + if (_21) { + ZEPHIR_CALL_METHOD(NULL, &route, "beforematch", NULL, 0, &beforeMatch); + zephir_check_call_status(); + } + ZEPHIR_INIT_NVAR(&_5); + ZVAL_STRING(&_5, "name"); + ZEPHIR_CALL_METHOD(&routeName, annotation, "getnamedargument", NULL, 0, &_5); + zephir_check_call_status(); + if (Z_TYPE_P(&routeName) == IS_STRING) { + ZEPHIR_CALL_METHOD(NULL, &route, "setname", NULL, 0, &routeName); + zephir_check_call_status(); + } ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Dispatcher, setDefaultController) +static PHP_METHOD(Phalcon_Mvc_Router_Annotations, processControllerAnnotation) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *controllerName_param = NULL; - zval controllerName; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *handler_param = NULL, *annotation, annotation_sub, _0, _1$$3, _2$$3; + zval handler; zval *this_ptr = getThis(); - ZVAL_UNDEF(&controllerName); + ZVAL_UNDEF(&handler); + ZVAL_UNDEF(&annotation_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(controllerName) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(handler) + Z_PARAM_OBJECT_OF_CLASS(annotation, phalcon_annotations_annotation_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &controllerName_param); - if (UNEXPECTED(Z_TYPE_P(controllerName_param) != IS_STRING && Z_TYPE_P(controllerName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'controllerName' must be of the type string")); + zephir_fetch_params(1, 2, 0, &handler_param, &annotation); + if (UNEXPECTED(Z_TYPE_P(handler_param) != IS_STRING && Z_TYPE_P(handler_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'handler' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(controllerName_param) == IS_STRING)) { - zephir_get_strval(&controllerName, controllerName_param); + if (EXPECTED(Z_TYPE_P(handler_param) == IS_STRING)) { + zephir_get_strval(&handler, handler_param); } else { - ZEPHIR_INIT_VAR(&controllerName); + ZEPHIR_INIT_VAR(&handler); } - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultHandler"), &controllerName); + ZEPHIR_CALL_METHOD(&_0, annotation, "getname", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_STRING(&_0, "RoutePrefix")) { + ZVAL_LONG(&_2$$3, 0); + ZEPHIR_CALL_METHOD(&_1$$3, annotation, "getargument", NULL, 0, &_2$$3); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("routePrefix"), &_1$$3); + } ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Dispatcher, handleException) +static PHP_METHOD(Phalcon_Mvc_Router_Annotations, setActionSuffix) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *exception, exception_sub, eventsManager, _0, _1$$3, _2$$3; + zval *actionSuffix_param = NULL; + zval actionSuffix; zval *this_ptr = getThis(); - ZVAL_UNDEF(&exception_sub); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&actionSuffix); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(exception, zend_ce_exception) + Z_PARAM_STR(actionSuffix) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &exception); + zephir_fetch_params(1, 1, 0, &actionSuffix_param); + if (UNEXPECTED(Z_TYPE_P(actionSuffix_param) != IS_STRING && Z_TYPE_P(actionSuffix_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'actionSuffix' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(actionSuffix_param) == IS_STRING)) { + zephir_get_strval(&actionSuffix, actionSuffix_param); + } else { + ZEPHIR_INIT_VAR(&actionSuffix); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_0); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "dispatch:beforeException"); - ZEPHIR_CALL_METHOD(&_1$$3, &eventsManager, "fire", NULL, 0, &_2$$3, this_ptr, exception); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_1$$3)) { - RETURN_MM_BOOL(0); - } - } + zephir_update_property_zval(this_ptr, ZEND_STRL("actionSuffix"), &actionSuffix); ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Dispatcher, throwDispatchException) +static PHP_METHOD(Phalcon_Mvc_Router_Annotations, setActionPreformatCallback) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; - zend_long exceptionCode, ZEPHIR_LAST_CALL_STATUS; - zval *message_param = NULL, *exceptionCode_param = NULL, container, response, exception, _0, _6, _7, _1$$3, _2$$3, _4$$3, _5$$3; - zval message; + zval *callback = NULL, callback_sub, __$null, _0$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&response); - ZVAL_UNDEF(&exception); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&callback_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(message) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_LONG(exceptionCode) + Z_PARAM_ZVAL_OR_NULL(callback) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &message_param, &exceptionCode_param); - if (UNEXPECTED(Z_TYPE_P(message_param) != IS_STRING && Z_TYPE_P(message_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'message' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(message_param) == IS_STRING)) { - zephir_get_strval(&message, message_param); - } else { - ZEPHIR_INIT_VAR(&message); - } - if (!exceptionCode_param) { - exceptionCode = 0; - } else { - exceptionCode = zephir_get_intval(exceptionCode_param); + zephir_fetch_params(1, 0, 1, &callback); + if (!callback) { + callback = &callback_sub; + callback = &__$null; } - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_mvc_dispatcher_exception_ce); - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "the 'response' service"); - ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_mvc_dispatcher_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); - zephir_check_call_status(); - ZVAL_LONG(&_5$$3, 0); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3, &_5$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Dispatcher.zep", 228); - ZEPHIR_MM_RESTORE(); + if (EXPECTED(zephir_is_callable(callback))) { + zephir_update_property_zval(this_ptr, ZEND_STRL("actionPreformatCallback"), callback); + } else if (Z_TYPE_P(callback) == IS_NULL) { + ZEPHIR_INIT_VAR(&_0$$4); + ZEPHIR_INIT_NVAR(&_0$$4); + zephir_create_closure_ex(&_0$$4, NULL, phalcon_9__closure_ce, SL("__invoke")); + zephir_update_property_zval(this_ptr, ZEND_STRL("actionPreformatCallback"), &_0$$4); + } else { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_router_exception_ce, "The 'callback' parameter must be either a callable or NULL.", "phalcon/Mvc/Router/Annotations.zep", 455); return; } - ZEPHIR_INIT_VAR(&_7); - ZVAL_STRING(&_7, "response"); - ZEPHIR_CALL_METHOD(&_6, &container, "getshared", NULL, 0, &_7); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&response, &_6); - ZVAL_LONG(&_0, 404); - ZEPHIR_INIT_NVAR(&_7); - ZVAL_STRING(&_7, "Not Found"); - ZEPHIR_CALL_METHOD(NULL, &response, "setstatuscode", NULL, 0, &_0, &_7); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&exception); - object_init_ex(&exception, phalcon_mvc_dispatcher_exception_ce); - ZVAL_LONG(&_0, exceptionCode); - ZEPHIR_CALL_METHOD(NULL, &exception, "__construct", NULL, 8, &message, &_0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_6, this_ptr, "handleexception", NULL, 0, &exception); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_6)) { - RETURN_MM_BOOL(0); - } - zephir_throw_exception_debug(&exception, "phalcon/Mvc/Dispatcher.zep", 250); ZEPHIR_MM_RESTORE(); - return; } - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_DispatcherInterface) +static PHP_METHOD(Phalcon_Mvc_Router_Annotations, getActionPreformatCallback) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc, DispatcherInterface, phalcon, mvc_dispatcherinterface, phalcon_mvc_dispatcherinterface_method_entry); - - zend_class_implements(phalcon_mvc_dispatcherinterface_ce, 1, phalcon_dispatcher_dispatcherinterface_ce); - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Mvc_DispatcherInterface, getActiveController); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_DispatcherInterface, getControllerName); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_DispatcherInterface, getLastController); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_DispatcherInterface, setControllerSuffix); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_DispatcherInterface, setControllerName); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_DispatcherInterface, setDefaultController); - - - -#ifdef HAVE_CONFIG_H -#endif - - - + zval *this_ptr = getThis(); -ZEPHIR_INIT_CLASS(Phalcon_Mvc_EntityInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc, EntityInterface, phalcon, mvc_entityinterface, phalcon_mvc_entityinterface_method_entry); - return SUCCESS; + RETURN_MEMBER(getThis(), "actionPreformatCallback"); } -ZEPHIR_DOC_METHOD(Phalcon_Mvc_EntityInterface, readAttribute); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_EntityInterface, writeAttribute); - - +static PHP_METHOD(Phalcon_Mvc_Router_Annotations, setControllerSuffix) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *controllerSuffix_param = NULL; + zval controllerSuffix; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&controllerSuffix); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(controllerSuffix) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &controllerSuffix_param); + if (UNEXPECTED(Z_TYPE_P(controllerSuffix_param) != IS_STRING && Z_TYPE_P(controllerSuffix_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'controllerSuffix' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(controllerSuffix_param) == IS_STRING)) { + zephir_get_strval(&controllerSuffix, controllerSuffix_param); + } else { + ZEPHIR_INIT_VAR(&controllerSuffix); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("controllerSuffix"), &controllerSuffix); + ZEPHIR_MM_RESTORE(); +} -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Micro) +zend_object *zephir_init_properties_Phalcon_Mvc_Router_Annotations(zend_class_entry *class_type) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc, Micro, phalcon, mvc_micro, phalcon_di_injectable_ce, phalcon_mvc_micro_method_entry, 0); + zval _0, _2, _4, _6, _8, _10, _12, _1$$3, _3$$4, _5$$5, _7$$6, _9$$7, _11$$8, _13$$9; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_9$$7); + ZVAL_UNDEF(&_11$$8); + ZVAL_UNDEF(&_13$$9); + - zend_declare_property_null(phalcon_mvc_micro_ce, SL("activeHandler"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_micro_ce, SL("afterBindingHandlers"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_micro_ce, SL("afterHandlers"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_micro_ce, SL("beforeHandlers"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_micro_ce, SL("container"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_micro_ce, SL("errorHandler"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_micro_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_micro_ce, SL("finishHandlers"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_micro_ce, SL("handlers"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_micro_ce, SL("modelBinder"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_micro_ce, SL("notFoundHandler"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_micro_ce, SL("responseHandler"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_micro_ce, SL("returnedValue"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_micro_ce, SL("router"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_micro_ce, SL("stopped"), 0, ZEND_ACC_PROTECTED); - phalcon_mvc_micro_ce->create_object = zephir_init_properties_Phalcon_Mvc_Micro; + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("routes"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("params"), &_3$$4); + } + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("matches"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_4) == IS_NULL) { + ZEPHIR_INIT_VAR(&_5$$5); + array_init(&_5$$5); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("matches"), &_5$$5); + } + zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("keyRouteIds"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_6) == IS_NULL) { + ZEPHIR_INIT_VAR(&_7$$6); + array_init(&_7$$6); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("keyRouteIds"), &_7$$6); + } + zephir_read_property_ex(&_8, this_ptr, ZEND_STRL("keyRouteNames"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_8) == IS_NULL) { + ZEPHIR_INIT_VAR(&_9$$7); + array_init(&_9$$7); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("keyRouteNames"), &_9$$7); + } + zephir_read_property_ex(&_10, this_ptr, ZEND_STRL("defaultParams"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_10) == IS_NULL) { + ZEPHIR_INIT_VAR(&_11$$8); + array_init(&_11$$8); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("defaultParams"), &_11$$8); + } + zephir_read_property_ex(&_12, this_ptr, ZEND_STRL("handlers"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_12) == IS_NULL) { + ZEPHIR_INIT_VAR(&_13$$9); + array_init(&_13$$9); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("handlers"), &_13$$9); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Router_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Router, Exception, phalcon, mvc_router_exception, phalcon_exception_ce, NULL, 0); - zend_class_implements(phalcon_mvc_micro_ce, 1, zend_ce_arrayaccess); - zend_class_implements(phalcon_mvc_micro_ce, 1, phalcon_events_eventsawareinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Micro, __construct) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Router_Group) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Router, Group, phalcon, mvc_router_group, phalcon_mvc_router_group_method_entry, 0); + + zend_declare_property_null(phalcon_mvc_router_group_ce, SL("beforeMatch"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_group_ce, SL("hostname"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_group_ce, SL("paths"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_group_ce, SL("prefix"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_group_ce, SL("routes"), ZEND_ACC_PROTECTED); + phalcon_mvc_router_group_ce->create_object = zephir_init_properties_Phalcon_Mvc_Router_Group; + + zend_class_implements(phalcon_mvc_router_group_ce, 1, phalcon_mvc_router_groupinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Mvc_Router_Group, __construct) { + zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *container = NULL, container_sub, __$null; + zval *paths = NULL, paths_sub, __$null; zval *this_ptr = getThis(); - ZVAL_UNDEF(&container_sub); + ZVAL_UNDEF(&paths_sub); ZVAL_NULL(&__$null); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(container, phalcon_di_diinterface_ce) + Z_PARAM_ZVAL_OR_NULL(paths) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &container); - if (!container) { - container = &container_sub; - container = &__$null; + zephir_fetch_params(1, 0, 1, &paths); + if (!paths) { + paths = &paths_sub; + paths = &__$null; } - if (Z_TYPE_P(container) != IS_NULL) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setdi", NULL, 0, container); + _0 = Z_TYPE_P(paths) == IS_ARRAY; + if (!(_0)) { + _0 = Z_TYPE_P(paths) == IS_STRING; + } + if (_0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("paths"), paths); + } + if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("initialize")) == SUCCESS)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "initialize", NULL, 0, paths); zephir_check_call_status(); } ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Micro, after) +static PHP_METHOD(Phalcon_Mvc_Router_Group, add) { - zval *handler, handler_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *pattern_param = NULL, *paths = NULL, paths_sub, *httpMethods = NULL, httpMethods_sub, __$null; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_UNDEF(&httpMethods_sub); + ZVAL_NULL(&__$null); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(handler) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_ZVAL_OR_NULL(httpMethods) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &handler); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &httpMethods); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); + } else { + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; + } + if (!httpMethods) { + httpMethods = &httpMethods_sub; + httpMethods = &__$null; + } - zephir_update_property_array_append(this_ptr, SL("afterHandlers"), handler); - RETURN_THISW(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, httpMethods); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Micro, afterBinding) +static PHP_METHOD(Phalcon_Mvc_Router_Group, addConnect) { - zval *handler, handler_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, _0; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(handler) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &handler); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &pattern_param, &paths); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); + } else { + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; + } - zephir_update_property_array_append(this_ptr, SL("afterBindingHandlers"), handler); - RETURN_THISW(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "CONNECT"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, &_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Micro, before) +static PHP_METHOD(Phalcon_Mvc_Router_Group, addDelete) { - zval *handler, handler_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, _0; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(handler) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &handler); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &pattern_param, &paths); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); + } else { + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; + } - zephir_update_property_array_append(this_ptr, SL("beforeHandlers"), handler); - RETURN_THISW(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "DELETE"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, &_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Micro, delete) +static PHP_METHOD(Phalcon_Mvc_Router_Group, addGet) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *routePattern_param = NULL, *handler, handler_sub, router, route, _0; - zval routePattern; + zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, _0; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&routePattern); - ZVAL_UNDEF(&handler_sub); - ZVAL_UNDEF(&router); - ZVAL_UNDEF(&route); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(routePattern) - Z_PARAM_ZVAL(handler) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &routePattern_param, &handler); - if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); + zephir_fetch_params(1, 1, 1, &pattern_param, &paths); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { - zephir_get_strval(&routePattern, routePattern_param); + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); } else { - ZEPHIR_INIT_VAR(&routePattern); + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; } - ZEPHIR_CALL_METHOD(&router, this_ptr, "getrouter", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&route, &router, "adddelete", NULL, 0, &routePattern); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, &route, "getrouteid", NULL, 0); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "GET"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, &_0); zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("handlers"), &_0, handler); - RETURN_CCTOR(&route); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Micro, error) +static PHP_METHOD(Phalcon_Mvc_Router_Group, addHead) { - zval *handler, handler_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, _0; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(handler) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &handler); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &pattern_param, &paths); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); + } else { + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; + } - zephir_update_property_zval(this_ptr, ZEND_STRL("errorHandler"), handler); - RETURN_THISW(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "HEAD"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, &_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Micro, finish) +static PHP_METHOD(Phalcon_Mvc_Router_Group, addOptions) { - zval *handler, handler_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, _0; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(handler) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &handler); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &pattern_param, &paths); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); + } else { + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; + } - zephir_update_property_array_append(this_ptr, SL("finishHandlers"), handler); - RETURN_THISW(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "OPTIONS"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, &_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Micro, get) +static PHP_METHOD(Phalcon_Mvc_Router_Group, addPatch) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *routePattern_param = NULL, *handler, handler_sub, router, route, _0; - zval routePattern; + zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, _0; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&routePattern); - ZVAL_UNDEF(&handler_sub); - ZVAL_UNDEF(&router); - ZVAL_UNDEF(&route); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(routePattern) - Z_PARAM_ZVAL(handler) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &routePattern_param, &handler); - if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); + zephir_fetch_params(1, 1, 1, &pattern_param, &paths); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { - zephir_get_strval(&routePattern, routePattern_param); + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); } else { - ZEPHIR_INIT_VAR(&routePattern); + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; } - ZEPHIR_CALL_METHOD(&router, this_ptr, "getrouter", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&route, &router, "addget", NULL, 0, &routePattern); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, &route, "getrouteid", NULL, 0); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "PATCH"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, &_0); zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("handlers"), &_0, handler); - RETURN_CCTOR(&route); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Micro, getActiveHandler) +static PHP_METHOD(Phalcon_Mvc_Router_Group, addPost) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, _0; + zval pattern; zval *this_ptr = getThis(); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "activeHandler"); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &pattern_param, &paths); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); + } else { + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; + } + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "POST"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, &_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Micro, getBoundModels) +static PHP_METHOD(Phalcon_Mvc_Router_Group, addPurge) { - zval modelBinder, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, _0; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&modelBinder); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &pattern_param, &paths); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); + } else { + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelBinder"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&modelBinder, &_0); - if (Z_TYPE_P(&modelBinder) == IS_NULL) { - array_init(return_value); - RETURN_MM(); + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "PURGE"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, &_0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Mvc_Router_Group, addPut) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, _0; + zval pattern; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &pattern_param, &paths); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); } - ZEPHIR_RETURN_CALL_METHOD(&modelBinder, "getboundmodels", NULL, 0); + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); + } else { + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; + } + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "PUT"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, &_0); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Micro, getEventsManager) +static PHP_METHOD(Phalcon_Mvc_Router_Group, addTrace) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, _0; + zval pattern; zval *this_ptr = getThis(); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "eventsManager"); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &pattern_param, &paths); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); + } else { + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; + } + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "TRACE"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, &_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Micro, setEventsManager) +static PHP_METHOD(Phalcon_Mvc_Router_Group, beforeMatch) { - zval *eventsManager, eventsManager_sub; + zval *beforeMatch, beforeMatch_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&eventsManager_sub); + ZVAL_UNDEF(&beforeMatch_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) + Z_PARAM_ZVAL(beforeMatch) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); + zephir_fetch_params_without_memory_grow(1, 0, &beforeMatch); - zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); + zephir_update_property_zval(this_ptr, ZEND_STRL("beforeMatch"), beforeMatch); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_Micro, getHandlers) +static PHP_METHOD(Phalcon_Mvc_Router_Group, clear) { + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); - RETURN_MEMBER(getThis(), "handlers"); + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("routes"), &_0); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Micro, getModelBinder) +static PHP_METHOD(Phalcon_Mvc_Router_Group, getBeforeMatch) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "modelBinder"); + RETURN_MEMBER(getThis(), "beforeMatch"); } -static PHP_METHOD(Phalcon_Mvc_Micro, getReturnedValue) +static PHP_METHOD(Phalcon_Mvc_Router_Group, getHostname) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "returnedValue"); + RETURN_MEMBER(getThis(), "hostname"); } -static PHP_METHOD(Phalcon_Mvc_Micro, getRouter) +static PHP_METHOD(Phalcon_Mvc_Router_Group, getPaths) { - zval router, _0, _1$$3, _2$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&router); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZEPHIR_MM_GROW(); + RETURN_MEMBER(getThis(), "paths"); +} - zephir_read_property(&_0, this_ptr, ZEND_STRL("router"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&router, &_0); - if (Z_TYPE_P(&router) != IS_OBJECT) { - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "router"); - ZEPHIR_CALL_METHOD(&router, this_ptr, "getsharedservice", NULL, 0, &_1$$3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &router, "clear", NULL, 0); - zephir_check_call_status(); - ZVAL_BOOL(&_2$$3, 1); - ZEPHIR_CALL_METHOD(NULL, &router, "removeextraslashes", NULL, 0, &_2$$3); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("router"), &router); - } - RETURN_CCTOR(&router); +static PHP_METHOD(Phalcon_Mvc_Router_Group, getPrefix) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "prefix"); } -static PHP_METHOD(Phalcon_Mvc_Micro, getService) +static PHP_METHOD(Phalcon_Mvc_Router_Group, getRoutes) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "routes"); +} + +static PHP_METHOD(Phalcon_Mvc_Router_Group, setHostname) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *serviceName_param = NULL, container, _0; - zval serviceName; + zval *hostname_param = NULL; + zval hostname; zval *this_ptr = getThis(); - ZVAL_UNDEF(&serviceName); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&hostname); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(serviceName) + Z_PARAM_STR(hostname) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &serviceName_param); - if (UNEXPECTED(Z_TYPE_P(serviceName_param) != IS_STRING && Z_TYPE_P(serviceName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'serviceName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(serviceName_param) == IS_STRING)) { - zephir_get_strval(&serviceName, serviceName_param); - } else { - ZEPHIR_INIT_VAR(&serviceName); - } + zephir_fetch_params(1, 1, 0, &hostname_param); + zephir_get_strval(&hostname, hostname_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - if (Z_TYPE_P(&container) != IS_OBJECT) { - ZEPHIR_INIT_NVAR(&container); - object_init_ex(&container, phalcon_di_factorydefault_ce); - ZEPHIR_CALL_METHOD(NULL, &container, "__construct", NULL, 421); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), &container); - } - ZEPHIR_RETURN_CALL_METHOD(&container, "get", NULL, 422, &serviceName); - zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("hostname"), &hostname); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Micro, getSharedService) +static PHP_METHOD(Phalcon_Mvc_Router_Group, setPaths) +{ + zval *paths, paths_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&paths_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(paths) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &paths); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("paths"), paths); + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Mvc_Router_Group, setPrefix) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *serviceName_param = NULL, container, _0; - zval serviceName; + zval *prefix_param = NULL; + zval prefix; zval *this_ptr = getThis(); - ZVAL_UNDEF(&serviceName); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&prefix); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(serviceName) + Z_PARAM_STR(prefix) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &serviceName_param); - if (UNEXPECTED(Z_TYPE_P(serviceName_param) != IS_STRING && Z_TYPE_P(serviceName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'serviceName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(serviceName_param) == IS_STRING)) { - zephir_get_strval(&serviceName, serviceName_param); - } else { - ZEPHIR_INIT_VAR(&serviceName); - } + zephir_fetch_params(1, 1, 0, &prefix_param); + zephir_get_strval(&prefix, prefix_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - if (Z_TYPE_P(&container) != IS_OBJECT) { - ZEPHIR_INIT_NVAR(&container); - object_init_ex(&container, phalcon_di_factorydefault_ce); - ZEPHIR_CALL_METHOD(NULL, &container, "__construct", NULL, 421); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), &container); - } - ZEPHIR_RETURN_CALL_METHOD(&container, "getshared", NULL, 423, &serviceName); - zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &prefix); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Micro, handle) +static PHP_METHOD(Phalcon_Mvc_Router_Group, addRoute) { - zval _73$$59, _78$$64, _83$$69; - zend_class_entry *_29$$21; - zend_bool _27$$7, _38$$7, _19$$11, _23$$16, _34$$25, _43$$31, _47$$36, _54$$42, _58$$47, _70$$57, _75$$62, _88$$79; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_3 = NULL; - zval *uri_param = NULL, __$true, __$false, container, eventsManager, status, router, matchedRoute, handler, beforeHandlers, params, returnedValue, e, errorHandler, afterHandlers, notFoundHandler, finishHandlers, finish, before, after, response, modelBinder, routeName, realHandler, methodName, lazyReturned, afterBindingHandlers, afterBinding, _0, _80, _1$$3, _2$$3, _4$$3, _5$$4, _8$$4, _9$$4, *_68$$4, _69$$4, _6$$5, _7$$5, _10$$7, _11$$7, _16$$7, *_17$$7, _18$$7, *_41$$7, _42$$7, *_52$$7, _53$$7, _12$$8, _13$$8, _14$$9, _15$$9, _22$$11, _20$$14, _21$$14, _26$$16, _24$$19, _25$$19, _28$$21, _30$$23, _31$$24, _32$$24, _33$$22, _35$$26, _36$$26, _37$$26, _39$$29, _40$$29, _46$$31, _44$$34, _45$$34, _50$$36, _48$$39, _49$$39, _51$$41, _57$$42, _55$$45, _56$$45, _61$$47, _59$$50, _60$$50, _62$$52, _63$$53, _64$$53, _65$$55, _66$$55, _67$$56, _74$$57, _71$$60, _72$$60, _79$$62, _76$$65, _77$$65, _81$$67, _82$$68, _84$$77, _85$$77, _86$$80, _87$$80, _89$$82; - zval uri, bindCacheKey; + zephir_fcall_cache_entry *_0 = NULL; + zval *pattern_param = NULL, *paths = NULL, paths_sub, *httpMethods = NULL, httpMethods_sub, __$null, mergedPaths, route, defaultPaths, processedPaths, _1, _2; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&uri); - ZVAL_UNDEF(&bindCacheKey); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&status); - ZVAL_UNDEF(&router); - ZVAL_UNDEF(&matchedRoute); - ZVAL_UNDEF(&handler); - ZVAL_UNDEF(&beforeHandlers); - ZVAL_UNDEF(¶ms); - ZVAL_UNDEF(&returnedValue); - ZVAL_UNDEF(&e); - ZVAL_UNDEF(&errorHandler); - ZVAL_UNDEF(&afterHandlers); - ZVAL_UNDEF(¬FoundHandler); - ZVAL_UNDEF(&finishHandlers); - ZVAL_UNDEF(&finish); - ZVAL_UNDEF(&before); - ZVAL_UNDEF(&after); - ZVAL_UNDEF(&response); - ZVAL_UNDEF(&modelBinder); - ZVAL_UNDEF(&routeName); - ZVAL_UNDEF(&realHandler); - ZVAL_UNDEF(&methodName); - ZVAL_UNDEF(&lazyReturned); - ZVAL_UNDEF(&afterBindingHandlers); - ZVAL_UNDEF(&afterBinding); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_80); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_8$$4); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_69$$4); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_10$$7); - ZVAL_UNDEF(&_11$$7); - ZVAL_UNDEF(&_16$$7); - ZVAL_UNDEF(&_18$$7); - ZVAL_UNDEF(&_42$$7); - ZVAL_UNDEF(&_53$$7); - ZVAL_UNDEF(&_12$$8); - ZVAL_UNDEF(&_13$$8); - ZVAL_UNDEF(&_14$$9); - ZVAL_UNDEF(&_15$$9); - ZVAL_UNDEF(&_22$$11); - ZVAL_UNDEF(&_20$$14); - ZVAL_UNDEF(&_21$$14); - ZVAL_UNDEF(&_26$$16); - ZVAL_UNDEF(&_24$$19); - ZVAL_UNDEF(&_25$$19); - ZVAL_UNDEF(&_28$$21); - ZVAL_UNDEF(&_30$$23); - ZVAL_UNDEF(&_31$$24); - ZVAL_UNDEF(&_32$$24); - ZVAL_UNDEF(&_33$$22); - ZVAL_UNDEF(&_35$$26); - ZVAL_UNDEF(&_36$$26); - ZVAL_UNDEF(&_37$$26); - ZVAL_UNDEF(&_39$$29); - ZVAL_UNDEF(&_40$$29); - ZVAL_UNDEF(&_46$$31); - ZVAL_UNDEF(&_44$$34); - ZVAL_UNDEF(&_45$$34); - ZVAL_UNDEF(&_50$$36); - ZVAL_UNDEF(&_48$$39); - ZVAL_UNDEF(&_49$$39); - ZVAL_UNDEF(&_51$$41); - ZVAL_UNDEF(&_57$$42); - ZVAL_UNDEF(&_55$$45); - ZVAL_UNDEF(&_56$$45); - ZVAL_UNDEF(&_61$$47); - ZVAL_UNDEF(&_59$$50); - ZVAL_UNDEF(&_60$$50); - ZVAL_UNDEF(&_62$$52); - ZVAL_UNDEF(&_63$$53); - ZVAL_UNDEF(&_64$$53); - ZVAL_UNDEF(&_65$$55); - ZVAL_UNDEF(&_66$$55); - ZVAL_UNDEF(&_67$$56); - ZVAL_UNDEF(&_74$$57); - ZVAL_UNDEF(&_71$$60); - ZVAL_UNDEF(&_72$$60); - ZVAL_UNDEF(&_79$$62); - ZVAL_UNDEF(&_76$$65); - ZVAL_UNDEF(&_77$$65); - ZVAL_UNDEF(&_81$$67); - ZVAL_UNDEF(&_82$$68); - ZVAL_UNDEF(&_84$$77); - ZVAL_UNDEF(&_85$$77); - ZVAL_UNDEF(&_86$$80); - ZVAL_UNDEF(&_87$$80); - ZVAL_UNDEF(&_89$$82); - ZVAL_UNDEF(&_73$$59); - ZVAL_UNDEF(&_78$$64); - ZVAL_UNDEF(&_83$$69); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_UNDEF(&httpMethods_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&mergedPaths); + ZVAL_UNDEF(&route); + ZVAL_UNDEF(&defaultPaths); + ZVAL_UNDEF(&processedPaths); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(uri) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_ZVAL_OR_NULL(httpMethods) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &uri_param); - if (UNEXPECTED(Z_TYPE_P(uri_param) != IS_STRING && Z_TYPE_P(uri_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'uri' must be of the type string")); + zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &httpMethods); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(uri_param) == IS_STRING)) { - zephir_get_strval(&uri, uri_param); + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); } else { - ZEPHIR_INIT_VAR(&uri); + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; + } + if (!httpMethods) { + httpMethods = &httpMethods_sub; + httpMethods = &__$null; } - ZEPHIR_INIT_VAR(&status); - ZVAL_NULL(&status); - ZEPHIR_INIT_VAR(&realHandler); - ZVAL_NULL(&realHandler); - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_mvc_micro_exception_ce); - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "micro services"); - ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_mvc_micro_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Micro.zep", 419); + ZEPHIR_OBS_VAR(&defaultPaths); + zephir_read_property(&defaultPaths, this_ptr, ZEND_STRL("paths"), PH_NOISY_CC); + if (Z_TYPE_P(&defaultPaths) == IS_ARRAY) { + if (Z_TYPE_P(paths) == IS_STRING) { + ZEPHIR_CALL_CE_STATIC(&processedPaths, phalcon_mvc_router_route_ce, "getroutepaths", &_0, 0, paths); + zephir_check_call_status(); + } else { + ZEPHIR_CPY_WRT(&processedPaths, paths); + } + if (Z_TYPE_P(&processedPaths) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&mergedPaths); + zephir_fast_array_merge(&mergedPaths, &defaultPaths, &processedPaths); + } else { + ZEPHIR_CPY_WRT(&mergedPaths, &defaultPaths); + } + } else { + ZEPHIR_CPY_WRT(&mergedPaths, paths); + } + ZEPHIR_INIT_VAR(&route); + object_init_ex(&route, phalcon_mvc_router_route_ce); + zephir_read_property(&_1, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_CONCAT_VV(&_2, &_1, &pattern); + ZEPHIR_CALL_METHOD(NULL, &route, "__construct", NULL, 117, &_2, &mergedPaths, httpMethods); + zephir_check_call_status(); + zephir_update_property_array_append(this_ptr, SL("routes"), &route); + ZEPHIR_CALL_METHOD(NULL, &route, "setgroup", NULL, 496, this_ptr); + zephir_check_call_status(); + RETURN_CCTOR(&route); +} + +zend_object *zephir_init_properties_Phalcon_Mvc_Router_Group(zend_class_entry *class_type) +{ + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("routes"), &_1$$3); + } ZEPHIR_MM_RESTORE(); - return; + return Z_OBJ_P(this_ptr); } +} - /* try_start_1: */ - ZEPHIR_INIT_VAR(&returnedValue); - ZVAL_NULL(&returnedValue); - zephir_read_property(&_5$$4, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_5$$4); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_7$$5); - ZVAL_STRING(&_7$$5, "micro:beforeHandleRoute"); - ZEPHIR_CALL_METHOD(&_6$$5, &eventsManager, "fire", NULL, 0, &_7$$5, this_ptr); - zephir_check_call_status_or_jump(try_end_1); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_6$$5)) { - RETURN_MM_BOOL(0); - } - } - ZEPHIR_INIT_VAR(&_9$$4); - ZVAL_STRING(&_9$$4, "router"); - ZEPHIR_CALL_METHOD(&_8$$4, &container, "getshared", NULL, 0, &_9$$4); - zephir_check_call_status_or_jump(try_end_1); - ZEPHIR_CPY_WRT(&router, &_8$$4); - ZEPHIR_CALL_METHOD(NULL, &router, "handle", NULL, 0, &uri); - zephir_check_call_status_or_jump(try_end_1); - ZEPHIR_CALL_METHOD(&matchedRoute, &router, "getmatchedroute", NULL, 0); - zephir_check_call_status_or_jump(try_end_1); - if (Z_TYPE_P(&matchedRoute) == IS_OBJECT) { - ZEPHIR_OBS_VAR(&handler); - zephir_read_property(&_10$$7, this_ptr, ZEND_STRL("handlers"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_11$$7, &matchedRoute, "getrouteid", NULL, 0); - zephir_check_call_status_or_jump(try_end_1); - if (UNEXPECTED(!(zephir_array_isset_fetch(&handler, &_10$$7, &_11$$7, 0)))) { - ZEPHIR_INIT_VAR(&_12$$8); - object_init_ex(&_12$$8, phalcon_mvc_micro_exception_ce); - ZEPHIR_INIT_VAR(&_13$$8); - ZVAL_STRING(&_13$$8, "Matched route doesn't have an associated handler"); - ZEPHIR_CALL_METHOD(NULL, &_12$$8, "__construct", NULL, 8, &_13$$8); - zephir_check_call_status_or_jump(try_end_1); - zephir_throw_exception_debug(&_12$$8, "phalcon/Mvc/Micro.zep", 455); - goto try_end_1; - } - zephir_update_property_zval(this_ptr, ZEND_STRL("activeHandler"), &handler); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_15$$9); - ZVAL_STRING(&_15$$9, "micro:beforeExecuteRoute"); - ZEPHIR_CALL_METHOD(&_14$$9, &eventsManager, "fire", NULL, 0, &_15$$9, this_ptr); - zephir_check_call_status_or_jump(try_end_1); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_14$$9)) { - RETURN_MM_BOOL(0); - } - ZEPHIR_OBS_NVAR(&handler); - zephir_read_property(&handler, this_ptr, ZEND_STRL("activeHandler"), PH_NOISY_CC); - } - zephir_read_property(&_16$$7, this_ptr, ZEND_STRL("beforeHandlers"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&beforeHandlers, &_16$$7); - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$false); - } - zephir_is_iterable(&beforeHandlers, 0, "phalcon/Mvc/Micro.zep", 508); - if (Z_TYPE_P(&beforeHandlers) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&beforeHandlers), _17$$7) - { - ZEPHIR_INIT_NVAR(&before); - ZVAL_COPY(&before, _17$$7); - _19$$11 = Z_TYPE_P(&before) == IS_OBJECT; - if (_19$$11) { - _19$$11 = zephir_instance_of_ev(&before, phalcon_mvc_micro_middlewareinterface_ce); - } - if (_19$$11) { - ZEPHIR_CALL_METHOD(&status, &before, "call", NULL, 0, this_ptr); - zephir_check_call_status_or_jump(try_end_1); - } else { - if (UNEXPECTED(!(zephir_is_callable(&before)))) { - ZEPHIR_INIT_NVAR(&_20$$14); - object_init_ex(&_20$$14, phalcon_mvc_micro_exception_ce); - ZEPHIR_INIT_NVAR(&_21$$14); - ZVAL_STRING(&_21$$14, "'before' handler is not callable"); - ZEPHIR_CALL_METHOD(NULL, &_20$$14, "__construct", NULL, 8, &_21$$14); - zephir_check_call_status_or_jump(try_end_1); - zephir_throw_exception_debug(&_20$$14, "phalcon/Mvc/Micro.zep", 491); - goto try_end_1; - } - ZEPHIR_INIT_NVAR(&status); - ZEPHIR_CALL_USER_FUNC(&status, &before); - zephir_check_call_status_or_jump(try_end_1); - } - zephir_read_property(&_22$$11, this_ptr, ZEND_STRL("stopped"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_22$$11)) { - RETURN_CCTOR(&status); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &beforeHandlers, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_18$$7, &beforeHandlers, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_18$$7)) { - break; - } - ZEPHIR_CALL_METHOD(&before, &beforeHandlers, "current", NULL, 0); - zephir_check_call_status(); - _23$$16 = Z_TYPE_P(&before) == IS_OBJECT; - if (_23$$16) { - _23$$16 = zephir_instance_of_ev(&before, phalcon_mvc_micro_middlewareinterface_ce); - } - if (_23$$16) { - ZEPHIR_CALL_METHOD(&status, &before, "call", NULL, 0, this_ptr); - zephir_check_call_status_or_jump(try_end_1); - } else { - if (UNEXPECTED(!(zephir_is_callable(&before)))) { - ZEPHIR_INIT_NVAR(&_24$$19); - object_init_ex(&_24$$19, phalcon_mvc_micro_exception_ce); - ZEPHIR_INIT_NVAR(&_25$$19); - ZVAL_STRING(&_25$$19, "'before' handler is not callable"); - ZEPHIR_CALL_METHOD(NULL, &_24$$19, "__construct", NULL, 8, &_25$$19); - zephir_check_call_status_or_jump(try_end_1); - zephir_throw_exception_debug(&_24$$19, "phalcon/Mvc/Micro.zep", 491); - goto try_end_1; +#ifdef HAVE_CONFIG_H +#endif - } - ZEPHIR_INIT_NVAR(&status); - ZEPHIR_CALL_USER_FUNC(&status, &before); - zephir_check_call_status_or_jump(try_end_1); - } - zephir_read_property(&_26$$16, this_ptr, ZEND_STRL("stopped"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_26$$16)) { - RETURN_CCTOR(&status); - } - ZEPHIR_CALL_METHOD(NULL, &beforeHandlers, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&before); - ZEPHIR_CALL_METHOD(¶ms, &router, "getparams", NULL, 0); - zephir_check_call_status_or_jump(try_end_1); - zephir_read_property(&_16$$7, this_ptr, ZEND_STRL("modelBinder"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&modelBinder, &_16$$7); - _27$$7 = Z_TYPE_P(&handler) == IS_OBJECT; - if (_27$$7) { - _27$$7 = zephir_is_instance_of(&handler, SL("Closure")); - } - if (_27$$7) { - _29$$21 = zephir_fetch_class_str_ex(SL("Closure"), ZEND_FETCH_CLASS_AUTO); - ZEPHIR_CALL_CE_STATIC(&_28$$21, _29$$21, "bind", NULL, 0, &handler, this_ptr); - zephir_check_call_status_or_jump(try_end_1); - ZEPHIR_CPY_WRT(&handler, &_28$$21); - if (Z_TYPE_P(&modelBinder) != IS_NULL) { - ZEPHIR_CALL_METHOD(&routeName, &matchedRoute, "getname", NULL, 0); - zephir_check_call_status_or_jump(try_end_1); - if (Z_TYPE_P(&routeName) != IS_NULL) { - ZEPHIR_INIT_VAR(&_30$$23); - ZEPHIR_CONCAT_SV(&_30$$23, "_PHMB_", &routeName); - zephir_get_strval(&bindCacheKey, &_30$$23); - } else { - ZEPHIR_CALL_METHOD(&_31$$24, &matchedRoute, "getpattern", NULL, 0); - zephir_check_call_status_or_jump(try_end_1); - ZEPHIR_INIT_VAR(&_32$$24); - ZEPHIR_CONCAT_SV(&_32$$24, "_PHMB_", &_31$$24); - zephir_get_strval(&bindCacheKey, &_32$$24); - } - ZEPHIR_CALL_METHOD(&_33$$22, &modelBinder, "bindtohandler", NULL, 0, &handler, ¶ms, &bindCacheKey); - zephir_check_call_status_or_jump(try_end_1); - ZEPHIR_CPY_WRT(¶ms, &_33$$22); - } - } - if (Z_TYPE_P(&handler) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&realHandler); - zephir_array_fetch_long(&realHandler, &handler, 0, PH_NOISY, "phalcon/Mvc/Micro.zep", 539); - _34$$25 = zephir_instance_of_ev(&realHandler, phalcon_mvc_controller_ce); - if (_34$$25) { - _34$$25 = Z_TYPE_P(&modelBinder) != IS_NULL; - } - if (_34$$25) { - ZEPHIR_OBS_VAR(&methodName); - zephir_array_fetch_long(&methodName, &handler, 1, PH_NOISY, "phalcon/Mvc/Micro.zep", 542); - ZEPHIR_INIT_VAR(&_35$$26); - zephir_get_class(&_35$$26, &realHandler, 0); - ZEPHIR_INIT_VAR(&_36$$26); - ZEPHIR_CONCAT_SVSV(&_36$$26, "_PHMB_", &_35$$26, "_", &methodName); - zephir_get_strval(&bindCacheKey, &_36$$26); - ZEPHIR_CALL_METHOD(&_37$$26, &modelBinder, "bindtohandler", NULL, 0, &realHandler, ¶ms, &bindCacheKey, &methodName); - zephir_check_call_status_or_jump(try_end_1); - ZEPHIR_CPY_WRT(¶ms, &_37$$26); - } - } - _38$$7 = Z_TYPE_P(&realHandler) != IS_NULL; - if (_38$$7) { - _38$$7 = zephir_instance_of_ev(&realHandler, phalcon_mvc_micro_lazyloader_ce); - } - if (_38$$7) { - ZEPHIR_OBS_NVAR(&methodName); - zephir_array_fetch_long(&methodName, &handler, 1, PH_NOISY, "phalcon/Mvc/Micro.zep", 559); - ZEPHIR_CALL_METHOD(&lazyReturned, &realHandler, "callmethod", NULL, 0, &methodName, ¶ms, &modelBinder); - zephir_check_call_status_or_jump(try_end_1); - } else { - ZEPHIR_INIT_NVAR(&lazyReturned); - ZEPHIR_CALL_USER_FUNC_ARRAY(&lazyReturned, &handler, ¶ms); - zephir_check_call_status_or_jump(try_end_1); - } - ZEPHIR_CPY_WRT(&returnedValue, &lazyReturned); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_40$$29); - ZVAL_STRING(&_40$$29, "micro:afterBinding"); - ZEPHIR_CALL_METHOD(&_39$$29, &eventsManager, "fire", NULL, 0, &_40$$29, this_ptr); - zephir_check_call_status_or_jump(try_end_1); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_39$$29)) { - RETURN_MM_BOOL(0); - } - } - zephir_read_property(&_16$$7, this_ptr, ZEND_STRL("afterBindingHandlers"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&afterBindingHandlers, &_16$$7); - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$false); - } - zephir_is_iterable(&afterBindingHandlers, 0, "phalcon/Mvc/Micro.zep", 622); - if (Z_TYPE_P(&afterBindingHandlers) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&afterBindingHandlers), _41$$7) - { - ZEPHIR_INIT_NVAR(&afterBinding); - ZVAL_COPY(&afterBinding, _41$$7); - _43$$31 = Z_TYPE_P(&afterBinding) == IS_OBJECT; - if (_43$$31) { - _43$$31 = zephir_instance_of_ev(&afterBinding, phalcon_mvc_micro_middlewareinterface_ce); - } - if (_43$$31) { - ZEPHIR_CALL_METHOD(&status, &afterBinding, "call", NULL, 0, this_ptr); - zephir_check_call_status_or_jump(try_end_1); - } else { - if (UNEXPECTED(!(zephir_is_callable(&afterBinding)))) { - ZEPHIR_INIT_NVAR(&_44$$34); - object_init_ex(&_44$$34, phalcon_mvc_micro_exception_ce); - ZEPHIR_INIT_NVAR(&_45$$34); - ZVAL_STRING(&_45$$34, "'afterBinding' handler is not callable"); - ZEPHIR_CALL_METHOD(NULL, &_44$$34, "__construct", NULL, 8, &_45$$34); - zephir_check_call_status_or_jump(try_end_1); - zephir_throw_exception_debug(&_44$$34, "phalcon/Mvc/Micro.zep", 602); - goto try_end_1; - } - ZEPHIR_INIT_NVAR(&status); - ZEPHIR_CALL_USER_FUNC(&status, &afterBinding); - zephir_check_call_status_or_jump(try_end_1); - } - zephir_read_property(&_46$$31, this_ptr, ZEND_STRL("stopped"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_46$$31)) { - RETURN_CCTOR(&status); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &afterBindingHandlers, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_42$$7, &afterBindingHandlers, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_42$$7)) { - break; - } - ZEPHIR_CALL_METHOD(&afterBinding, &afterBindingHandlers, "current", NULL, 0); - zephir_check_call_status(); - _47$$36 = Z_TYPE_P(&afterBinding) == IS_OBJECT; - if (_47$$36) { - _47$$36 = zephir_instance_of_ev(&afterBinding, phalcon_mvc_micro_middlewareinterface_ce); - } - if (_47$$36) { - ZEPHIR_CALL_METHOD(&status, &afterBinding, "call", NULL, 0, this_ptr); - zephir_check_call_status_or_jump(try_end_1); - } else { - if (UNEXPECTED(!(zephir_is_callable(&afterBinding)))) { - ZEPHIR_INIT_NVAR(&_48$$39); - object_init_ex(&_48$$39, phalcon_mvc_micro_exception_ce); - ZEPHIR_INIT_NVAR(&_49$$39); - ZVAL_STRING(&_49$$39, "'afterBinding' handler is not callable"); - ZEPHIR_CALL_METHOD(NULL, &_48$$39, "__construct", NULL, 8, &_49$$39); - zephir_check_call_status_or_jump(try_end_1); - zephir_throw_exception_debug(&_48$$39, "phalcon/Mvc/Micro.zep", 602); - goto try_end_1; - } - ZEPHIR_INIT_NVAR(&status); - ZEPHIR_CALL_USER_FUNC(&status, &afterBinding); - zephir_check_call_status_or_jump(try_end_1); - } - zephir_read_property(&_50$$36, this_ptr, ZEND_STRL("stopped"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_50$$36)) { - RETURN_CCTOR(&status); - } - ZEPHIR_CALL_METHOD(NULL, &afterBindingHandlers, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&afterBinding); - zephir_update_property_zval(this_ptr, ZEND_STRL("returnedValue"), &returnedValue); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_51$$41); - ZVAL_STRING(&_51$$41, "micro:afterExecuteRoute"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_51$$41, this_ptr); - zephir_check_call_status_or_jump(try_end_1); - } - zephir_read_property(&_16$$7, this_ptr, ZEND_STRL("afterHandlers"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&afterHandlers, &_16$$7); - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$false); - } - zephir_is_iterable(&afterHandlers, 0, "phalcon/Mvc/Micro.zep", 661); - if (Z_TYPE_P(&afterHandlers) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&afterHandlers), _52$$7) - { - ZEPHIR_INIT_NVAR(&after); - ZVAL_COPY(&after, _52$$7); - _54$$42 = Z_TYPE_P(&after) == IS_OBJECT; - if (_54$$42) { - _54$$42 = zephir_instance_of_ev(&after, phalcon_mvc_micro_middlewareinterface_ce); - } - if (_54$$42) { - ZEPHIR_CALL_METHOD(&status, &after, "call", NULL, 0, this_ptr); - zephir_check_call_status_or_jump(try_end_1); - } else { - if (UNEXPECTED(!(zephir_is_callable(&after)))) { - ZEPHIR_INIT_NVAR(&_55$$45); - object_init_ex(&_55$$45, phalcon_mvc_micro_exception_ce); - ZEPHIR_INIT_NVAR(&_56$$45); - ZVAL_STRING(&_56$$45, "One of the 'after' handlers is not callable"); - ZEPHIR_CALL_METHOD(NULL, &_55$$45, "__construct", NULL, 8, &_56$$45); - zephir_check_call_status_or_jump(try_end_1); - zephir_throw_exception_debug(&_55$$45, "phalcon/Mvc/Micro.zep", 648); - goto try_end_1; - } - ZEPHIR_INIT_NVAR(&status); - ZEPHIR_CALL_USER_FUNC(&status, &after); - zephir_check_call_status_or_jump(try_end_1); - } - zephir_read_property(&_57$$42, this_ptr, ZEND_STRL("stopped"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_57$$42)) { - break; - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &afterHandlers, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_53$$7, &afterHandlers, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_53$$7)) { - break; - } - ZEPHIR_CALL_METHOD(&after, &afterHandlers, "current", NULL, 0); - zephir_check_call_status(); - _58$$47 = Z_TYPE_P(&after) == IS_OBJECT; - if (_58$$47) { - _58$$47 = zephir_instance_of_ev(&after, phalcon_mvc_micro_middlewareinterface_ce); - } - if (_58$$47) { - ZEPHIR_CALL_METHOD(&status, &after, "call", NULL, 0, this_ptr); - zephir_check_call_status_or_jump(try_end_1); - } else { - if (UNEXPECTED(!(zephir_is_callable(&after)))) { - ZEPHIR_INIT_NVAR(&_59$$50); - object_init_ex(&_59$$50, phalcon_mvc_micro_exception_ce); - ZEPHIR_INIT_NVAR(&_60$$50); - ZVAL_STRING(&_60$$50, "One of the 'after' handlers is not callable"); - ZEPHIR_CALL_METHOD(NULL, &_59$$50, "__construct", NULL, 8, &_60$$50); - zephir_check_call_status_or_jump(try_end_1); - zephir_throw_exception_debug(&_59$$50, "phalcon/Mvc/Micro.zep", 648); - goto try_end_1; - } - ZEPHIR_INIT_NVAR(&status); - ZEPHIR_CALL_USER_FUNC(&status, &after); - zephir_check_call_status_or_jump(try_end_1); - } - zephir_read_property(&_61$$47, this_ptr, ZEND_STRL("stopped"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_61$$47)) { - break; - } - ZEPHIR_CALL_METHOD(NULL, &afterHandlers, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&after); - } else { - zephir_read_property(&_62$$52, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_62$$52); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_64$$53); - ZVAL_STRING(&_64$$53, "micro:beforeNotFound"); - ZEPHIR_CALL_METHOD(&_63$$53, &eventsManager, "fire", NULL, 0, &_64$$53, this_ptr); - zephir_check_call_status_or_jump(try_end_1); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_63$$53)) { - RETURN_MM_BOOL(0); - } - } - zephir_read_property(&_62$$52, this_ptr, ZEND_STRL("notFoundHandler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(¬FoundHandler, &_62$$52); - if (UNEXPECTED(!(zephir_is_callable(¬FoundHandler)))) { - ZEPHIR_INIT_VAR(&_65$$55); - object_init_ex(&_65$$55, phalcon_mvc_micro_exception_ce); - ZEPHIR_INIT_VAR(&_66$$55); - ZVAL_STRING(&_66$$55, "Not-Found handler is not callable or is not defined"); - ZEPHIR_CALL_METHOD(NULL, &_65$$55, "__construct", NULL, 8, &_66$$55); - zephir_check_call_status_or_jump(try_end_1); - zephir_throw_exception_debug(&_65$$55, "phalcon/Mvc/Micro.zep", 681); - goto try_end_1; +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Router_GroupInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Router, GroupInterface, phalcon, mvc_router_groupinterface, phalcon_mvc_router_groupinterface_method_entry); - } - ZEPHIR_INIT_NVAR(&returnedValue); - ZEPHIR_CALL_USER_FUNC(&returnedValue, ¬FoundHandler); - zephir_check_call_status_or_jump(try_end_1); - } - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_67$$56); - ZVAL_STRING(&_67$$56, "micro:afterHandleRoute"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_67$$56, this_ptr, &returnedValue); - zephir_check_call_status_or_jump(try_end_1); - } - zephir_read_property(&_5$$4, this_ptr, ZEND_STRL("finishHandlers"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&finishHandlers, &_5$$4); - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$false); - } - zephir_is_iterable(&finishHandlers, 0, "phalcon/Mvc/Micro.zep", 736); - if (Z_TYPE_P(&finishHandlers) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&finishHandlers), _68$$4) - { - ZEPHIR_INIT_NVAR(&finish); - ZVAL_COPY(&finish, _68$$4); - _70$$57 = Z_TYPE_P(&finish) == IS_OBJECT; - if (_70$$57) { - _70$$57 = zephir_instance_of_ev(&finish, phalcon_mvc_micro_middlewareinterface_ce); - } - if (_70$$57) { - ZEPHIR_CALL_METHOD(&status, &finish, "call", NULL, 0, this_ptr); - zephir_check_call_status_or_jump(try_end_1); - } else { - if (UNEXPECTED(!(zephir_is_callable(&finish)))) { - ZEPHIR_INIT_NVAR(&_71$$60); - object_init_ex(&_71$$60, phalcon_mvc_micro_exception_ce); - ZEPHIR_INIT_NVAR(&_72$$60); - ZVAL_STRING(&_72$$60, "One of the 'finish' handlers is not callable"); - ZEPHIR_CALL_METHOD(NULL, &_71$$60, "__construct", NULL, 8, &_72$$60); - zephir_check_call_status_or_jump(try_end_1); - zephir_throw_exception_debug(&_71$$60, "phalcon/Mvc/Micro.zep", 717); - goto try_end_1; + return SUCCESS; +} - } - ZEPHIR_INIT_NVAR(&_73$$59); - zephir_create_array(&_73$$59, 1, 0); - zephir_array_fast_append(&_73$$59, this_ptr); - ZEPHIR_INIT_NVAR(&status); - ZEPHIR_CALL_USER_FUNC_ARRAY(&status, &finish, &_73$$59); - zephir_check_call_status_or_jump(try_end_1); - } - zephir_read_property(&_74$$57, this_ptr, ZEND_STRL("stopped"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_74$$57)) { - break; - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &finishHandlers, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_69$$4, &finishHandlers, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_69$$4)) { - break; - } - ZEPHIR_CALL_METHOD(&finish, &finishHandlers, "current", NULL, 0); - zephir_check_call_status(); - _75$$62 = Z_TYPE_P(&finish) == IS_OBJECT; - if (_75$$62) { - _75$$62 = zephir_instance_of_ev(&finish, phalcon_mvc_micro_middlewareinterface_ce); - } - if (_75$$62) { - ZEPHIR_CALL_METHOD(&status, &finish, "call", NULL, 0, this_ptr); - zephir_check_call_status_or_jump(try_end_1); - } else { - if (UNEXPECTED(!(zephir_is_callable(&finish)))) { - ZEPHIR_INIT_NVAR(&_76$$65); - object_init_ex(&_76$$65, phalcon_mvc_micro_exception_ce); - ZEPHIR_INIT_NVAR(&_77$$65); - ZVAL_STRING(&_77$$65, "One of the 'finish' handlers is not callable"); - ZEPHIR_CALL_METHOD(NULL, &_76$$65, "__construct", NULL, 8, &_77$$65); - zephir_check_call_status_or_jump(try_end_1); - zephir_throw_exception_debug(&_76$$65, "phalcon/Mvc/Micro.zep", 717); - goto try_end_1; +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, add); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, addConnect); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, addDelete); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, addGet); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, addHead); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, addOptions); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, addPatch); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, addPost); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, addPurge); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, addPut); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, addTrace); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, beforeMatch); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, clear); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, getBeforeMatch); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, getHostname); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, getPaths); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, getPrefix); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, getRoutes); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, setHostname); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, setPaths); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, setPrefix); - } - ZEPHIR_INIT_NVAR(&_78$$64); - zephir_create_array(&_78$$64, 1, 0); - zephir_array_fast_append(&_78$$64, this_ptr); - ZEPHIR_INIT_NVAR(&status); - ZEPHIR_CALL_USER_FUNC_ARRAY(&status, &finish, &_78$$64); - zephir_check_call_status_or_jump(try_end_1); - } - zephir_read_property(&_79$$62, this_ptr, ZEND_STRL("stopped"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_79$$62)) { - break; - } - ZEPHIR_CALL_METHOD(NULL, &finishHandlers, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&finish); - try_end_1: - if (EG(exception)) { - ZEPHIR_INIT_VAR(&_80); - ZVAL_OBJ(&_80, EG(exception)); - Z_ADDREF_P(&_80); - if (zephir_is_instance_of(&_80, SL("Throwable"))) { - zend_clear_exception(); - ZEPHIR_CPY_WRT(&e, &_80); - zephir_read_property(&_81$$67, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_81$$67); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_82$$68); - ZVAL_STRING(&_82$$68, "micro:beforeException"); - ZEPHIR_CALL_METHOD(&returnedValue, &eventsManager, "fire", NULL, 0, &_82$$68, this_ptr, &e); - zephir_check_call_status(); - } - zephir_read_property(&_81$$67, this_ptr, ZEND_STRL("errorHandler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&errorHandler, &_81$$67); - if (zephir_is_true(&errorHandler)) { - if (UNEXPECTED(!(zephir_is_callable(&errorHandler)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_micro_exception_ce, "Error handler is not callable", "phalcon/Mvc/Micro.zep", 757); - return; - } - ZEPHIR_INIT_VAR(&_83$$69); - zephir_create_array(&_83$$69, 1, 0); - zephir_array_fast_append(&_83$$69, &e); - ZEPHIR_INIT_NVAR(&returnedValue); - ZEPHIR_CALL_USER_FUNC_ARRAY(&returnedValue, &errorHandler, &_83$$69); - zephir_check_call_status(); - if (Z_TYPE_P(&returnedValue) == IS_OBJECT) { - if (!(zephir_instance_of_ev(&returnedValue, phalcon_http_responseinterface_ce))) { - zephir_throw_exception_debug(&e, "phalcon/Mvc/Micro.zep", 770); - ZEPHIR_MM_RESTORE(); - return; - } - } else { - if (!ZEPHIR_IS_FALSE_IDENTICAL(&returnedValue)) { - zephir_throw_exception_debug(&e, "phalcon/Mvc/Micro.zep", 774); - ZEPHIR_MM_RESTORE(); - return; - } - } - } else { - if (!ZEPHIR_IS_FALSE_IDENTICAL(&returnedValue)) { - zephir_throw_exception_debug(&e, "phalcon/Mvc/Micro.zep", 779); - ZEPHIR_MM_RESTORE(); - return; - } - } - } - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("responseHandler"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_0)) { - zephir_read_property(&_84$$77, this_ptr, ZEND_STRL("responseHandler"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(!(zephir_is_callable(&_84$$77)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_micro_exception_ce, "Response handler is not callable or is not defined", "phalcon/Mvc/Micro.zep", 792); - return; - } - zephir_read_property(&_85$$77, this_ptr, ZEND_STRL("responseHandler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&returnedValue); - ZEPHIR_CALL_USER_FUNC(&returnedValue, &_85$$77); - zephir_check_call_status(); - } else { - if (Z_TYPE_P(&returnedValue) == IS_STRING) { - ZEPHIR_INIT_VAR(&_87$$80); - ZVAL_STRING(&_87$$80, "response"); - ZEPHIR_CALL_METHOD(&_86$$80, &container, "getshared", NULL, 0, &_87$$80); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&response, &_86$$80); - ZEPHIR_CALL_METHOD(&_86$$80, &response, "issent", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_86$$80))) { - ZEPHIR_CALL_METHOD(NULL, &response, "setcontent", NULL, 0, &returnedValue); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &response, "send", NULL, 0); - zephir_check_call_status(); - } - } - _88$$79 = Z_TYPE_P(&returnedValue) == IS_OBJECT; - if (_88$$79) { - _88$$79 = zephir_instance_of_ev(&returnedValue, phalcon_http_responseinterface_ce); - } - if (_88$$79) { - ZEPHIR_CALL_METHOD(&_89$$82, &returnedValue, "issent", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_89$$82))) { - ZEPHIR_CALL_METHOD(NULL, &returnedValue, "send", NULL, 0); - zephir_check_call_status(); - } - } - } - RETURN_CCTOR(&returnedValue); +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Router_Route) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Router, Route, phalcon, mvc_router_route, phalcon_mvc_router_route_method_entry, 0); + + zend_declare_property_null(phalcon_mvc_router_route_ce, SL("beforeMatch"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_route_ce, SL("compiledPattern"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_route_ce, SL("converters"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_route_ce, SL("group"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_route_ce, SL("hostname"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_route_ce, SL("id"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_route_ce, SL("methods"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_route_ce, SL("match"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_route_ce, SL("name"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_route_ce, SL("paths"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_router_route_ce, SL("pattern"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_mvc_router_route_ce, SL("uniqueId"), 0, ZEND_ACC_PROTECTED|ZEND_ACC_STATIC); + phalcon_mvc_router_route_ce->create_object = zephir_init_properties_Phalcon_Mvc_Router_Route; + + zend_class_implements(phalcon_mvc_router_route_ce, 1, phalcon_mvc_router_routeinterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Micro, hasService) +static PHP_METHOD(Phalcon_Mvc_Router_Route, getId) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "id"); +} + +static PHP_METHOD(Phalcon_Mvc_Router_Route, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *serviceName_param = NULL, container, _0; - zval serviceName; + zval *pattern_param = NULL, *paths = NULL, paths_sub, *httpMethods = NULL, httpMethods_sub, __$null, routeId, uniqueId, _0; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&serviceName); - ZVAL_UNDEF(&container); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_UNDEF(&httpMethods_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&routeId); + ZVAL_UNDEF(&uniqueId); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(serviceName) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_ZVAL_OR_NULL(httpMethods) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &serviceName_param); - if (UNEXPECTED(Z_TYPE_P(serviceName_param) != IS_STRING && Z_TYPE_P(serviceName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'serviceName' must be of the type string")); + zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &httpMethods); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(serviceName_param) == IS_STRING)) { - zephir_get_strval(&serviceName, serviceName_param); + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); } else { - ZEPHIR_INIT_VAR(&serviceName); + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; + } + if (!httpMethods) { + httpMethods = &httpMethods_sub; + httpMethods = &__$null; } - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - if (Z_TYPE_P(&container) != IS_OBJECT) { - ZEPHIR_INIT_NVAR(&container); - object_init_ex(&container, phalcon_di_factorydefault_ce); - ZEPHIR_CALL_METHOD(NULL, &container, "__construct", NULL, 421); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), &container); - } - ZEPHIR_RETURN_CALL_METHOD(&container, "has", NULL, 424, &serviceName); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "reconfigure", NULL, 0, &pattern, paths); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "via", NULL, 0, httpMethods); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&_0); + zephir_read_static_property_ce(&_0, phalcon_mvc_router_route_ce, SL("uniqueId"), PH_NOISY_CC); + ZEPHIR_CPY_WRT(&uniqueId, &_0); + ZEPHIR_CPY_WRT(&routeId, &uniqueId); + zephir_update_property_zval(this_ptr, ZEND_STRL("id"), &routeId); + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, (zephir_get_numberval(&uniqueId) + 1)); + zephir_update_static_property_ce(phalcon_mvc_router_route_ce, ZEND_STRL("uniqueId"), &_0); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Micro, head) +static PHP_METHOD(Phalcon_Mvc_Router_Route, beforeMatch) +{ + zval *callback, callback_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&callback_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(callback) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &callback); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("beforeMatch"), callback); + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Mvc_Router_Route, compilePattern) { + zend_bool _14; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *routePattern_param = NULL, *handler, handler_sub, router, route, _0; - zval routePattern; + zval *pattern_param = NULL, _0$$4, _1$$4, _2$$5, _3$$5, _4$$6, _5$$6, _6$$7, _7$$7, _8$$8, _9$$8, _10$$8, _11$$9, _12$$9, _13$$9; + zval pattern, idPattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&routePattern); - ZVAL_UNDEF(&handler_sub); - ZVAL_UNDEF(&router); - ZVAL_UNDEF(&route); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&idPattern); + ZVAL_UNDEF(&_0$$4); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_4$$6); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&_6$$7); + ZVAL_UNDEF(&_7$$7); + ZVAL_UNDEF(&_8$$8); + ZVAL_UNDEF(&_9$$8); + ZVAL_UNDEF(&_10$$8); + ZVAL_UNDEF(&_11$$9); + ZVAL_UNDEF(&_12$$9); + ZVAL_UNDEF(&_13$$9); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(routePattern) - Z_PARAM_ZVAL(handler) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(pattern) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &routePattern_param, &handler); - if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); + zephir_fetch_params(1, 1, 0, &pattern_param); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { - zephir_get_strval(&routePattern, routePattern_param); + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); } else { - ZEPHIR_INIT_VAR(&routePattern); + ZEPHIR_INIT_VAR(&pattern); } - ZEPHIR_CALL_METHOD(&router, this_ptr, "getrouter", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&route, &router, "addhead", NULL, 0, &routePattern); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, &route, "getrouteid", NULL, 0); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("handlers"), &_0, handler); - RETURN_CCTOR(&route); + if (zephir_memnstr_str(&pattern, SL(":"), "phalcon/Mvc/Router/Route.zep", 141)) { + ZEPHIR_INIT_VAR(&idPattern); + ZVAL_STRING(&idPattern, "/([\\w0-9\\_\\-]+)"); + if (zephir_memnstr_str(&pattern, SL("/:module"), "phalcon/Mvc/Router/Route.zep", 146)) { + ZEPHIR_INIT_VAR(&_0$$4); + ZEPHIR_INIT_VAR(&_1$$4); + ZVAL_STRING(&_1$$4, "/:module"); + zephir_fast_str_replace(&_0$$4, &_1$$4, &idPattern, &pattern); + zephir_get_strval(&pattern, &_0$$4); + } + if (zephir_memnstr_str(&pattern, SL("/:controller"), "phalcon/Mvc/Router/Route.zep", 151)) { + ZEPHIR_INIT_VAR(&_2$$5); + ZEPHIR_INIT_VAR(&_3$$5); + ZVAL_STRING(&_3$$5, "/:controller"); + zephir_fast_str_replace(&_2$$5, &_3$$5, &idPattern, &pattern); + zephir_get_strval(&pattern, &_2$$5); + } + if (zephir_memnstr_str(&pattern, SL("/:namespace"), "phalcon/Mvc/Router/Route.zep", 156)) { + ZEPHIR_INIT_VAR(&_4$$6); + ZEPHIR_INIT_VAR(&_5$$6); + ZVAL_STRING(&_5$$6, "/:namespace"); + zephir_fast_str_replace(&_4$$6, &_5$$6, &idPattern, &pattern); + zephir_get_strval(&pattern, &_4$$6); + } + if (zephir_memnstr_str(&pattern, SL("/:action"), "phalcon/Mvc/Router/Route.zep", 161)) { + ZEPHIR_INIT_VAR(&_6$$7); + ZEPHIR_INIT_VAR(&_7$$7); + ZVAL_STRING(&_7$$7, "/:action"); + zephir_fast_str_replace(&_6$$7, &_7$$7, &idPattern, &pattern); + zephir_get_strval(&pattern, &_6$$7); + } + if (zephir_memnstr_str(&pattern, SL("/:params"), "phalcon/Mvc/Router/Route.zep", 166)) { + ZEPHIR_INIT_VAR(&_8$$8); + ZEPHIR_INIT_VAR(&_9$$8); + ZVAL_STRING(&_9$$8, "/:params"); + ZEPHIR_INIT_VAR(&_10$$8); + ZVAL_STRING(&_10$$8, "(/.*)*"); + zephir_fast_str_replace(&_8$$8, &_9$$8, &_10$$8, &pattern); + zephir_get_strval(&pattern, &_8$$8); + } + if (zephir_memnstr_str(&pattern, SL("/:int"), "phalcon/Mvc/Router/Route.zep", 171)) { + ZEPHIR_INIT_VAR(&_11$$9); + ZEPHIR_INIT_VAR(&_12$$9); + ZVAL_STRING(&_12$$9, "/:int"); + ZEPHIR_INIT_VAR(&_13$$9); + ZVAL_STRING(&_13$$9, "/([0-9]+)"); + zephir_fast_str_replace(&_11$$9, &_12$$9, &_13$$9, &pattern); + zephir_get_strval(&pattern, &_11$$9); + } + } + _14 = zephir_memnstr_str(&pattern, SL("("), "phalcon/Mvc/Router/Route.zep", 182); + if (!(_14)) { + _14 = zephir_memnstr_str(&pattern, SL("["), "phalcon/Mvc/Router/Route.zep", 182); + } + if (_14) { + ZEPHIR_CONCAT_SVS(return_value, "#^", &pattern, "$#u"); + RETURN_MM(); + } + RETURN_CTOR(&pattern); } -static PHP_METHOD(Phalcon_Mvc_Micro, map) +static PHP_METHOD(Phalcon_Mvc_Router_Route, convert) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *routePattern_param = NULL, *handler, handler_sub, router, route, _0; - zval routePattern; + zval *name_param = NULL, *converter, converter_sub; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&routePattern); - ZVAL_UNDEF(&handler_sub); - ZVAL_UNDEF(&router); - ZVAL_UNDEF(&route); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&converter_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(routePattern) - Z_PARAM_ZVAL(handler) + Z_PARAM_STR(name) + Z_PARAM_ZVAL(converter) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &routePattern_param, &handler); - if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); + zephir_fetch_params(1, 2, 0, &name_param, &converter); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { - zephir_get_strval(&routePattern, routePattern_param); + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); } else { - ZEPHIR_INIT_VAR(&routePattern); + ZEPHIR_INIT_VAR(&name); } - ZEPHIR_CALL_METHOD(&router, this_ptr, "getrouter", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&route, &router, "add", NULL, 0, &routePattern); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, &route, "getrouteid", NULL, 0); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("handlers"), &_0, handler); - RETURN_CCTOR(&route); + zephir_update_property_array(this_ptr, SL("converters"), &name, converter); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Micro, mount) +static PHP_METHOD(Phalcon_Mvc_Router_Route, extractNamedParams) { - zend_bool _4$$7, _5$$7, _7$$15, _8$$15; + long _0, _5$$10, _26$$18; + zend_long cursor = 0, cursorVar = 0, marker = 0, bracketCount, parenthesesCount, foundPattern, intermediate, numberMatches; + zend_bool notValid = 0, _6$$11, _7$$11, _8$$11, _9$$11, _10$$11, _11$$11, _12$$11, _13$$11, _14$$11, _15$$11, _16$$11, _17$$11, _25$$17, _29$$34, _30$$35, _31$$35, _32$$35; + char ch = 0, prevCh; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *collection, collection_sub, mainHandler, handlers, lazyHandler, prefix, methods, pattern, subHandler, realHandler, prefixedPattern, route, handler, name, _0, *_1, _2, _6$$15; + zval *pattern_param = NULL, tmp, matches, _1$$10, _2$$10, _3$$10, _18$$15, _19$$15, _20$$15, _22$$15, _23$$15; + zval pattern, route, item, variable, regexp, _4$$10, _21$$15, _24$$15, _27$$25, _28$$28; zval *this_ptr = getThis(); - ZVAL_UNDEF(&collection_sub); - ZVAL_UNDEF(&mainHandler); - ZVAL_UNDEF(&handlers); - ZVAL_UNDEF(&lazyHandler); - ZVAL_UNDEF(&prefix); - ZVAL_UNDEF(&methods); ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&subHandler); - ZVAL_UNDEF(&realHandler); - ZVAL_UNDEF(&prefixedPattern); ZVAL_UNDEF(&route); - ZVAL_UNDEF(&handler); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_6$$15); + ZVAL_UNDEF(&item); + ZVAL_UNDEF(&variable); + ZVAL_UNDEF(®exp); + ZVAL_UNDEF(&_4$$10); + ZVAL_UNDEF(&_21$$15); + ZVAL_UNDEF(&_24$$15); + ZVAL_UNDEF(&_27$$25); + ZVAL_UNDEF(&_28$$28); + ZVAL_UNDEF(&tmp); + ZVAL_UNDEF(&matches); + ZVAL_UNDEF(&_1$$10); + ZVAL_UNDEF(&_2$$10); + ZVAL_UNDEF(&_3$$10); + ZVAL_UNDEF(&_18$$15); + ZVAL_UNDEF(&_19$$15); + ZVAL_UNDEF(&_20$$15); + ZVAL_UNDEF(&_22$$15); + ZVAL_UNDEF(&_23$$15); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(collection, phalcon_mvc_micro_collectioninterface_ce) + Z_PARAM_STR(pattern) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &collection); - - - ZEPHIR_CALL_METHOD(&mainHandler, collection, "gethandler", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_IS_EMPTY(&mainHandler))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_micro_exception_ce, "Collection requires a main handler", "phalcon/Mvc/Micro.zep", 915); - return; - } - ZEPHIR_CALL_METHOD(&handlers, collection, "gethandlers", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(!(zephir_fast_count_int(&handlers)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_micro_exception_ce, "There are no handlers to mount", "phalcon/Mvc/Micro.zep", 921); - return; + zephir_fetch_params(1, 1, 0, &pattern_param); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); } - ZEPHIR_CALL_METHOD(&_0, collection, "islazy", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_0)) { - ZEPHIR_INIT_VAR(&lazyHandler); - object_init_ex(&lazyHandler, phalcon_mvc_micro_lazyloader_ce); - ZEPHIR_CALL_METHOD(NULL, &lazyHandler, "__construct", NULL, 425, &mainHandler); - zephir_check_call_status(); + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); } else { - ZEPHIR_CPY_WRT(&lazyHandler, &mainHandler); + ZEPHIR_INIT_VAR(&pattern); } - ZEPHIR_CALL_METHOD(&prefix, collection, "getprefix", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&handlers, 0, "phalcon/Mvc/Micro.zep", 979); - if (Z_TYPE_P(&handlers) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&handlers), _1) - { - ZEPHIR_INIT_NVAR(&handler); - ZVAL_COPY(&handler, _1); - if (UNEXPECTED(Z_TYPE_P(&handler) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_micro_exception_ce, "One of the registered handlers is invalid", "phalcon/Mvc/Micro.zep", 942); - return; - } - ZEPHIR_OBS_NVAR(&methods); - zephir_array_fetch_long(&methods, &handler, 0, PH_NOISY, "phalcon/Mvc/Micro.zep", 945); - ZEPHIR_OBS_NVAR(&pattern); - zephir_array_fetch_long(&pattern, &handler, 1, PH_NOISY, "phalcon/Mvc/Micro.zep", 946); - ZEPHIR_OBS_NVAR(&subHandler); - zephir_array_fetch_long(&subHandler, &handler, 2, PH_NOISY, "phalcon/Mvc/Micro.zep", 947); - ZEPHIR_OBS_NVAR(&name); - zephir_array_fetch_long(&name, &handler, 3, PH_NOISY, "phalcon/Mvc/Micro.zep", 948); - ZEPHIR_INIT_NVAR(&realHandler); - zephir_create_array(&realHandler, 2, 0); - zephir_array_fast_append(&realHandler, &lazyHandler); - zephir_array_fast_append(&realHandler, &subHandler); - if (!(ZEPHIR_IS_EMPTY(&prefix))) { - if (ZEPHIR_IS_STRING(&pattern, "/")) { - ZEPHIR_CPY_WRT(&prefixedPattern, &prefix); - } else { - ZEPHIR_INIT_NVAR(&prefixedPattern); - ZEPHIR_CONCAT_VV(&prefixedPattern, &prefix, &pattern); + + + prevCh = '\0'; + bracketCount = 0; + parenthesesCount = 0; + foundPattern = 0; + intermediate = 0; + numberMatches = 0; + if (zephir_fast_strlen_ev(&pattern) == 0) { + RETURN_MM_BOOL(0); + } + ZEPHIR_INIT_VAR(&matches); + array_init(&matches); + ZEPHIR_INIT_VAR(&route); + for (_0 = 0; _0 < Z_STRLEN_P(&pattern); _0++) { + cursor = _0; + ch = ZEPHIR_STRING_OFFSET(&pattern, _0); + if (parenthesesCount == 0) { + if (ch == '{') { + if (bracketCount == 0) { + marker = (cursor + 1); + intermediate = 0; + notValid = 0; + } + bracketCount++; + } else if (ch == '}') { + bracketCount--; + if (intermediate > 0) { + if (bracketCount == 0) { + numberMatches++; + ZEPHIR_INIT_NVAR(&variable); + ZEPHIR_INIT_NVAR(®exp); + ZVAL_LONG(&_1$$10, marker); + ZVAL_LONG(&_2$$10, (cursor - marker)); + ZEPHIR_INIT_NVAR(&_3$$10); + zephir_substr(&_3$$10, &pattern, zephir_get_intval(&_1$$10), zephir_get_intval(&_2$$10), 0); + zephir_cast_to_string(&_4$$10, &_3$$10); + ZEPHIR_CPY_WRT(&item, &_4$$10); + for (_5$$10 = 0; _5$$10 < Z_STRLEN_P(&item); _5$$10++) { + cursorVar = _5$$10; + ch = ZEPHIR_STRING_OFFSET(&item, _5$$10); + if (ch == '\0') { + break; + } + _6$$11 = cursorVar == 0; + if (_6$$11) { + _7$$11 = ch >= 'a'; + if (_7$$11) { + _7$$11 = ch <= 'z'; + } + _8$$11 = _7$$11; + if (!(_8$$11)) { + _9$$11 = ch >= 'A'; + if (_9$$11) { + _9$$11 = ch <= 'Z'; + } + _8$$11 = _9$$11; + } + _6$$11 = !(_8$$11); + } + if (_6$$11) { + notValid = 1; + break; + } + _10$$11 = ch >= 'a'; + if (_10$$11) { + _10$$11 = ch <= 'z'; + } + _11$$11 = _10$$11; + if (!(_11$$11)) { + _12$$11 = ch >= 'A'; + if (_12$$11) { + _12$$11 = ch <= 'Z'; + } + _11$$11 = _12$$11; + } + _13$$11 = _11$$11; + if (!(_13$$11)) { + _14$$11 = ch >= '0'; + if (_14$$11) { + _14$$11 = ch <= '9'; + } + _13$$11 = _14$$11; + } + _15$$11 = _13$$11; + if (!(_15$$11)) { + _15$$11 = ch == '-'; + } + _16$$11 = _15$$11; + if (!(_16$$11)) { + _16$$11 = ch == '_'; + } + _17$$11 = _16$$11; + if (!(_17$$11)) { + _17$$11 = ch == ':'; + } + if (_17$$11) { + if (ch == ':') { + ZVAL_LONG(&_18$$15, 0); + ZVAL_LONG(&_19$$15, cursorVar); + ZEPHIR_INIT_NVAR(&_20$$15); + zephir_substr(&_20$$15, &item, 0 , zephir_get_intval(&_19$$15), 0); + zephir_cast_to_string(&_21$$15, &_20$$15); + ZEPHIR_CPY_WRT(&variable, &_21$$15); + ZVAL_LONG(&_22$$15, (cursorVar + 1)); + ZEPHIR_INIT_NVAR(&_23$$15); + zephir_substr(&_23$$15, &item, zephir_get_intval(&_22$$15), 0, ZEPHIR_SUBSTR_NO_LENGTH); + zephir_cast_to_string(&_24$$15, &_23$$15); + ZEPHIR_CPY_WRT(®exp, &_24$$15); + break; + } + } else { + notValid = 1; + break; + } + } + if (!(notValid)) { + ZEPHIR_INIT_NVAR(&tmp); + ZVAL_LONG(&tmp, numberMatches); + _25$$17 = zephir_is_true(&variable); + if (_25$$17) { + _25$$17 = zephir_is_true(®exp); + } + if (_25$$17) { + foundPattern = 0; + for (_26$$18 = 0; _26$$18 < Z_STRLEN_P(®exp); _26$$18++) { + ch = ZEPHIR_STRING_OFFSET(®exp, _26$$18); + if (ch == '\0') { + break; + } + if (!(foundPattern)) { + if (ch == '(') { + foundPattern = 1; + } + } else { + if (ch == ')') { + foundPattern = 2; + break; + } + } + } + if (foundPattern != 2) { + ZEPHIR_INIT_NVAR(&_27$$25); + ZEPHIR_CONCAT_SVS(&_27$$25, "(", ®exp, ")"); + zephir_concat_self(&route, &_27$$25); + } else { + zephir_concat_self(&route, ®exp); + } + zephir_array_update_zval(&matches, &variable, &tmp, PH_COPY | PH_SEPARATE); + } else { + zephir_concat_self_str(&route, "([^/]*)", sizeof("([^/]*)") - 1); + zephir_array_update_zval(&matches, &item, &tmp, PH_COPY | PH_SEPARATE); + } + } else { + ZEPHIR_INIT_NVAR(&_28$$28); + ZEPHIR_CONCAT_SVS(&_28$$28, "{", &item, "}"); + zephir_concat_self(&route, &_28$$28); + } + continue; + } } - } else { - ZEPHIR_CPY_WRT(&prefixedPattern, &pattern); - } - ZEPHIR_CALL_METHOD(&route, this_ptr, "map", &_3, 0, &prefixedPattern, &realHandler); - zephir_check_call_status(); - _4$$7 = Z_TYPE_P(&methods) == IS_STRING; - if (_4$$7) { - _4$$7 = !ZEPHIR_IS_STRING(&methods, ""); - } - _5$$7 = _4$$7; - if (!(_5$$7)) { - _5$$7 = Z_TYPE_P(&methods) == IS_ARRAY; - } - if (_5$$7) { - ZEPHIR_CALL_METHOD(NULL, &route, "via", NULL, 0, &methods); - zephir_check_call_status(); } - if (Z_TYPE_P(&name) == IS_STRING) { - ZEPHIR_CALL_METHOD(NULL, &route, "setname", NULL, 0, &name); - zephir_check_call_status(); + } + if (bracketCount == 0) { + if (ch == '(') { + parenthesesCount++; + } else if (ch == ')') { + parenthesesCount--; + if (parenthesesCount == 0) { + numberMatches++; + } } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &handlers, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &handlers, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; + } + if (bracketCount > 0) { + intermediate++; + } else { + _29$$34 = parenthesesCount == 0; + if (_29$$34) { + _29$$34 = prevCh != '\\'; } - ZEPHIR_CALL_METHOD(&handler, &handlers, "current", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&handler) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_micro_exception_ce, "One of the registered handlers is invalid", "phalcon/Mvc/Micro.zep", 942); - return; - } - ZEPHIR_OBS_NVAR(&methods); - zephir_array_fetch_long(&methods, &handler, 0, PH_NOISY, "phalcon/Mvc/Micro.zep", 945); - ZEPHIR_OBS_NVAR(&pattern); - zephir_array_fetch_long(&pattern, &handler, 1, PH_NOISY, "phalcon/Mvc/Micro.zep", 946); - ZEPHIR_OBS_NVAR(&subHandler); - zephir_array_fetch_long(&subHandler, &handler, 2, PH_NOISY, "phalcon/Mvc/Micro.zep", 947); - ZEPHIR_OBS_NVAR(&name); - zephir_array_fetch_long(&name, &handler, 3, PH_NOISY, "phalcon/Mvc/Micro.zep", 948); - ZEPHIR_INIT_NVAR(&_6$$15); - zephir_create_array(&_6$$15, 2, 0); - zephir_array_fast_append(&_6$$15, &lazyHandler); - zephir_array_fast_append(&_6$$15, &subHandler); - ZEPHIR_CPY_WRT(&realHandler, &_6$$15); - if (!(ZEPHIR_IS_EMPTY(&prefix))) { - if (ZEPHIR_IS_STRING(&pattern, "/")) { - ZEPHIR_CPY_WRT(&prefixedPattern, &prefix); - } else { - ZEPHIR_INIT_NVAR(&prefixedPattern); - ZEPHIR_CONCAT_VV(&prefixedPattern, &prefix, &pattern); - } - } else { - ZEPHIR_CPY_WRT(&prefixedPattern, &pattern); - } - ZEPHIR_CALL_METHOD(&route, this_ptr, "map", &_3, 0, &prefixedPattern, &realHandler); - zephir_check_call_status(); - _7$$15 = Z_TYPE_P(&methods) == IS_STRING; - if (_7$$15) { - _7$$15 = !ZEPHIR_IS_STRING(&methods, ""); + if (_29$$34) { + _30$$35 = ch == '.'; + if (!(_30$$35)) { + _30$$35 = ch == '+'; } - _8$$15 = _7$$15; - if (!(_8$$15)) { - _8$$15 = Z_TYPE_P(&methods) == IS_ARRAY; + _31$$35 = _30$$35; + if (!(_31$$35)) { + _31$$35 = ch == '|'; } - if (_8$$15) { - ZEPHIR_CALL_METHOD(NULL, &route, "via", NULL, 0, &methods); - zephir_check_call_status(); + _32$$35 = _31$$35; + if (!(_32$$35)) { + _32$$35 = ch == '#'; } - if (Z_TYPE_P(&name) == IS_STRING) { - ZEPHIR_CALL_METHOD(NULL, &route, "setname", NULL, 0, &name); - zephir_check_call_status(); + if (_32$$35) { + zephir_concat_self_str(&route, "\\", sizeof("\\") - 1); } - ZEPHIR_CALL_METHOD(NULL, &handlers, "next", NULL, 0); - zephir_check_call_status(); + } + zephir_concat_self_char(&route, ch); + prevCh = ch; } } - ZEPHIR_INIT_NVAR(&handler); - RETURN_THIS(); + zephir_create_array(return_value, 2, 0); + zephir_array_fast_append(return_value, &route); + zephir_array_fast_append(return_value, &matches); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Micro, notFound) +static PHP_METHOD(Phalcon_Mvc_Router_Route, getBeforeMatch) { - zval *handler, handler_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&handler_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(handler) - ZEND_PARSE_PARAMETERS_END(); -#endif - zephir_fetch_params_without_memory_grow(1, 0, &handler); + RETURN_MEMBER(getThis(), "beforeMatch"); +} + +static PHP_METHOD(Phalcon_Mvc_Router_Route, getCompiledPattern) +{ + zval *this_ptr = getThis(); - zephir_update_property_zval(this_ptr, ZEND_STRL("notFoundHandler"), handler); - RETURN_THISW(); + + RETURN_MEMBER(getThis(), "compiledPattern"); } -static PHP_METHOD(Phalcon_Mvc_Micro, offsetExists) +static PHP_METHOD(Phalcon_Mvc_Router_Route, getConverters) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *alias, alias_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&alias_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(alias) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &alias); + RETURN_MEMBER(getThis(), "converters"); +} + +static PHP_METHOD(Phalcon_Mvc_Router_Route, getGroup) +{ + zval *this_ptr = getThis(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "hasservice", NULL, 0, alias); - zephir_check_call_status(); - RETURN_MM(); + + RETURN_MEMBER(getThis(), "group"); } -static PHP_METHOD(Phalcon_Mvc_Micro, offsetGet) +static PHP_METHOD(Phalcon_Mvc_Router_Route, getHttpMethods) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *alias, alias_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&alias_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(alias) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &alias); + RETURN_MEMBER(getThis(), "methods"); +} + +static PHP_METHOD(Phalcon_Mvc_Router_Route, getHostname) +{ + zval *this_ptr = getThis(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getservice", NULL, 0, alias); - zephir_check_call_status(); - RETURN_MM(); + + RETURN_MEMBER(getThis(), "hostname"); } -static PHP_METHOD(Phalcon_Mvc_Micro, offsetSet) +static PHP_METHOD(Phalcon_Mvc_Router_Route, getMatch) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *alias, alias_sub, *definition, definition_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&alias_sub); - ZVAL_UNDEF(&definition_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(alias) - Z_PARAM_ZVAL(definition) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &alias, &definition); + RETURN_MEMBER(getThis(), "match"); +} + +static PHP_METHOD(Phalcon_Mvc_Router_Route, getName) +{ + zval *this_ptr = getThis(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setservice", NULL, 0, alias, definition); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + + RETURN_MEMBER(getThis(), "name"); } -static PHP_METHOD(Phalcon_Mvc_Micro, offsetUnset) +static PHP_METHOD(Phalcon_Mvc_Router_Route, getPaths) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *alias, alias_sub, container, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&alias_sub); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(alias) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &alias); + RETURN_MEMBER(getThis(), "paths"); +} +static PHP_METHOD(Phalcon_Mvc_Router_Route, getPattern) +{ + zval *this_ptr = getThis(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - if (Z_TYPE_P(&container) != IS_OBJECT) { - ZEPHIR_INIT_NVAR(&container); - object_init_ex(&container, phalcon_di_factorydefault_ce); - ZEPHIR_CALL_METHOD(NULL, &container, "__construct", NULL, 421); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), &container); - } - ZEPHIR_CALL_METHOD(NULL, &container, "remove", NULL, 426, alias); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + + + RETURN_MEMBER(getThis(), "pattern"); } -static PHP_METHOD(Phalcon_Mvc_Micro, options) +static PHP_METHOD(Phalcon_Mvc_Router_Route, getReversedPaths) { + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *routePattern_param = NULL, *handler, handler_sub, router, route, _0; - zval routePattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&routePattern); - ZVAL_UNDEF(&handler_sub); - ZVAL_UNDEF(&router); - ZVAL_UNDEF(&route); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(routePattern) - Z_PARAM_ZVAL(handler) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &routePattern_param, &handler); - if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { - zephir_get_strval(&routePattern, routePattern_param); - } else { - ZEPHIR_INIT_VAR(&routePattern); - } - - ZEPHIR_CALL_METHOD(&router, this_ptr, "getrouter", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&route, &router, "addoptions", NULL, 0, &routePattern); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, &route, "getrouteid", NULL, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("paths"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_FUNCTION("array_flip", NULL, 174, &_0); zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("handlers"), &_0, handler); - RETURN_CCTOR(&route); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Micro, patch) +static PHP_METHOD(Phalcon_Mvc_Router_Route, getRouteId) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "id"); +} + +static PHP_METHOD(Phalcon_Mvc_Router_Route, getRoutePaths) { + zend_long _0$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *routePattern_param = NULL, *handler, handler_sub, router, route, _0; - zval routePattern; + zval *paths = NULL, paths_sub, __$null, moduleName, controllerName, actionName, parts, routePaths, realClassName, namespaceName, _1$$9; zval *this_ptr = getThis(); - ZVAL_UNDEF(&routePattern); - ZVAL_UNDEF(&handler_sub); - ZVAL_UNDEF(&router); - ZVAL_UNDEF(&route); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&moduleName); + ZVAL_UNDEF(&controllerName); + ZVAL_UNDEF(&actionName); + ZVAL_UNDEF(&parts); + ZVAL_UNDEF(&routePaths); + ZVAL_UNDEF(&realClassName); + ZVAL_UNDEF(&namespaceName); + ZVAL_UNDEF(&_1$$9); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(routePattern) - Z_PARAM_ZVAL(handler) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &routePattern_param, &handler); - if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { - zephir_get_strval(&routePattern, routePattern_param); + zephir_fetch_params(1, 0, 1, &paths); + if (!paths) { + paths = &paths_sub; + ZEPHIR_CPY_WRT(paths, &__$null); } else { - ZEPHIR_INIT_VAR(&routePattern); + ZEPHIR_SEPARATE_PARAM(paths); } - ZEPHIR_CALL_METHOD(&router, this_ptr, "getrouter", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&route, &router, "addpatch", NULL, 0, &routePattern); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, &route, "getrouteid", NULL, 0); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("handlers"), &_0, handler); - RETURN_CCTOR(&route); + if (Z_TYPE_P(paths) == IS_NULL) { + ZEPHIR_INIT_NVAR(paths); + array_init(paths); + } + if (Z_TYPE_P(paths) == IS_STRING) { + ZEPHIR_INIT_VAR(&moduleName); + ZVAL_NULL(&moduleName); + ZEPHIR_INIT_VAR(&controllerName); + ZVAL_NULL(&controllerName); + ZEPHIR_INIT_VAR(&actionName); + ZVAL_NULL(&actionName); + ZEPHIR_INIT_VAR(&parts); + zephir_fast_explode_str(&parts, SL("::"), paths, LONG_MAX); + do { + _0$$4 = zephir_fast_count_int(&parts); + if (_0$$4 == 3) { + ZEPHIR_OBS_NVAR(&moduleName); + zephir_array_fetch_long(&moduleName, &parts, 0, PH_NOISY, "phalcon/Mvc/Router/Route.zep", 459); + ZEPHIR_OBS_NVAR(&controllerName); + zephir_array_fetch_long(&controllerName, &parts, 1, PH_NOISY, "phalcon/Mvc/Router/Route.zep", 460); + ZEPHIR_OBS_NVAR(&actionName); + zephir_array_fetch_long(&actionName, &parts, 2, PH_NOISY, "phalcon/Mvc/Router/Route.zep", 461); + break; + } + if (_0$$4 == 2) { + ZEPHIR_OBS_NVAR(&controllerName); + zephir_array_fetch_long(&controllerName, &parts, 0, PH_NOISY, "phalcon/Mvc/Router/Route.zep", 465); + ZEPHIR_OBS_NVAR(&actionName); + zephir_array_fetch_long(&actionName, &parts, 1, PH_NOISY, "phalcon/Mvc/Router/Route.zep", 466); + break; + } + if (_0$$4 == 1) { + ZEPHIR_OBS_NVAR(&controllerName); + zephir_array_fetch_long(&controllerName, &parts, 0, PH_NOISY, "phalcon/Mvc/Router/Route.zep", 470); + break; + } + } while(0); + + ZEPHIR_INIT_VAR(&routePaths); + array_init(&routePaths); + if (Z_TYPE_P(&moduleName) != IS_NULL) { + zephir_array_update_string(&routePaths, SL("module"), &moduleName, PH_COPY | PH_SEPARATE); + } + if (Z_TYPE_P(&controllerName) != IS_NULL) { + if (zephir_memnstr_str(&controllerName, SL("\\"), "phalcon/Mvc/Router/Route.zep", 484)) { + ZEPHIR_INIT_VAR(&realClassName); + zephir_get_class_ns(&realClassName, &controllerName, 0); + ZEPHIR_INIT_VAR(&namespaceName); + zephir_get_ns_class(&namespaceName, &controllerName, 0); + if (zephir_is_true(&namespaceName)) { + zephir_array_update_string(&routePaths, SL("namespace"), &namespaceName, PH_COPY | PH_SEPARATE); + } + } else { + ZEPHIR_CPY_WRT(&realClassName, &controllerName); + } + ZEPHIR_INIT_VAR(&_1$$9); + zephir_uncamelize(&_1$$9, &realClassName, NULL ); + zephir_array_update_string(&routePaths, SL("controller"), &_1$$9, PH_COPY | PH_SEPARATE); + } + if (Z_TYPE_P(&actionName) != IS_NULL) { + zephir_array_update_string(&routePaths, SL("action"), &actionName, PH_COPY | PH_SEPARATE); + } + } else { + ZEPHIR_CPY_WRT(&routePaths, paths); + } + if (UNEXPECTED(Z_TYPE_P(&routePaths) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_router_exception_ce, "The route contains invalid paths", "phalcon/Mvc/Router/Route.zep", 512); + return; + } + RETURN_CCTOR(&routePaths); } -static PHP_METHOD(Phalcon_Mvc_Micro, post) +static PHP_METHOD(Phalcon_Mvc_Router_Route, match) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *routePattern_param = NULL, *handler, handler_sub, router, route, _0; - zval routePattern; + zval *callback, callback_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&routePattern); - ZVAL_UNDEF(&handler_sub); - ZVAL_UNDEF(&router); - ZVAL_UNDEF(&route); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&callback_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(routePattern) - Z_PARAM_ZVAL(handler) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(callback) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &routePattern_param, &handler); - if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { - zephir_get_strval(&routePattern, routePattern_param); - } else { - ZEPHIR_INIT_VAR(&routePattern); - } + zephir_fetch_params_without_memory_grow(1, 0, &callback); - ZEPHIR_CALL_METHOD(&router, this_ptr, "getrouter", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&route, &router, "addpost", NULL, 0, &routePattern); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, &route, "getrouteid", NULL, 0); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("handlers"), &_0, handler); - RETURN_CCTOR(&route); + zephir_update_property_zval(this_ptr, ZEND_STRL("match"), callback); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_Micro, put) +static PHP_METHOD(Phalcon_Mvc_Router_Route, reConfigure) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *routePattern_param = NULL, *handler, handler_sub, router, route, _0; - zval routePattern; + zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, routePaths, pcrePattern, compiledPattern, extracted, _0$$4, _1$$4; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&routePattern); - ZVAL_UNDEF(&handler_sub); - ZVAL_UNDEF(&router); - ZVAL_UNDEF(&route); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&routePaths); + ZVAL_UNDEF(&pcrePattern); + ZVAL_UNDEF(&compiledPattern); + ZVAL_UNDEF(&extracted); + ZVAL_UNDEF(&_0$$4); + ZVAL_UNDEF(&_1$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(routePattern) - Z_PARAM_ZVAL(handler) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &routePattern_param, &handler); - if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); + zephir_fetch_params(1, 1, 1, &pattern_param, &paths); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { - zephir_get_strval(&routePattern, routePattern_param); + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); } else { - ZEPHIR_INIT_VAR(&routePattern); + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + paths = &__$null; } - ZEPHIR_CALL_METHOD(&router, this_ptr, "getrouter", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&route, &router, "addput", NULL, 0, &routePattern); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, &route, "getrouteid", NULL, 0); + ZEPHIR_CALL_SELF(&routePaths, "getroutepaths", NULL, 0, paths); zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("handlers"), &_0, handler); - RETURN_CCTOR(&route); + if (!(zephir_start_with_str(&pattern, SL("#")))) { + if (zephir_memnstr_str(&pattern, SL("{"), "phalcon/Mvc/Router/Route.zep", 552)) { + ZEPHIR_CALL_METHOD(&extracted, this_ptr, "extractnamedparams", NULL, 0, &pattern); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&pcrePattern); + zephir_array_fetch_long(&pcrePattern, &extracted, 0, PH_NOISY, "phalcon/Mvc/Router/Route.zep", 557); + ZEPHIR_INIT_VAR(&_0$$4); + zephir_array_fetch_long(&_1$$4, &extracted, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Router/Route.zep", 558); + zephir_fast_array_merge(&_0$$4, &routePaths, &_1$$4); + ZEPHIR_CPY_WRT(&routePaths, &_0$$4); + } else { + ZEPHIR_CPY_WRT(&pcrePattern, &pattern); + } + ZEPHIR_CALL_METHOD(&compiledPattern, this_ptr, "compilepattern", NULL, 0, &pcrePattern); + zephir_check_call_status(); + } else { + ZEPHIR_CPY_WRT(&compiledPattern, &pattern); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("pattern"), &pattern); + zephir_update_property_zval(this_ptr, ZEND_STRL("compiledPattern"), &compiledPattern); + zephir_update_property_zval(this_ptr, ZEND_STRL("paths"), &routePaths); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Micro, setActiveHandler) +static PHP_METHOD(Phalcon_Mvc_Router_Route, reset) { - zval *activeHandler, activeHandler_sub; + zval _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&activeHandler_sub); + ZVAL_UNDEF(&_0); + + + + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, 0); + zephir_update_static_property_ce(phalcon_mvc_router_route_ce, ZEND_STRL("uniqueId"), &_0); +} + +static PHP_METHOD(Phalcon_Mvc_Router_Route, setGroup) +{ + zval *group, group_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&group_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(activeHandler) + Z_PARAM_OBJECT_OF_CLASS(group, phalcon_mvc_router_groupinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &activeHandler); + zephir_fetch_params_without_memory_grow(1, 0, &group); - zephir_update_property_zval(this_ptr, ZEND_STRL("activeHandler"), activeHandler); + zephir_update_property_zval(this_ptr, ZEND_STRL("group"), group); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_Micro, setDI) +static PHP_METHOD(Phalcon_Mvc_Router_Route, setHttpMethods) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *container, container_sub, _0, _1, _2$$3; + zval *httpMethods, httpMethods_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&container_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&httpMethods_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + Z_PARAM_ZVAL(httpMethods) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &container); + zephir_fetch_params(1, 1, 0, &httpMethods); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "application"); - ZEPHIR_CALL_METHOD(&_0, container, "has", NULL, 0, &_1); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "via", NULL, 0, httpMethods); zephir_check_call_status(); - if (!(zephir_is_true(&_0))) { - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "application"); - ZEPHIR_CALL_METHOD(NULL, container, "set", NULL, 0, &_2$$3, this_ptr); - zephir_check_call_status(); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); - ZEPHIR_MM_RESTORE(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Micro, setModelBinder) +static PHP_METHOD(Phalcon_Mvc_Router_Route, setHostname) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *modelBinder, modelBinder_sub, *cache = NULL, cache_sub, __$null, _0$$3; + zval *hostname_param = NULL; + zval hostname; zval *this_ptr = getThis(); - ZVAL_UNDEF(&modelBinder_sub); - ZVAL_UNDEF(&cache_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&hostname); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_OBJECT_OF_CLASS(modelBinder, phalcon_mvc_model_binderinterface_ce) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(cache) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(hostname) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &modelBinder, &cache); - if (!cache) { - cache = &cache_sub; - ZEPHIR_CPY_WRT(cache, &__$null); + zephir_fetch_params(1, 1, 0, &hostname_param); + if (UNEXPECTED(Z_TYPE_P(hostname_param) != IS_STRING && Z_TYPE_P(hostname_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'hostname' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(hostname_param) == IS_STRING)) { + zephir_get_strval(&hostname, hostname_param); } else { - ZEPHIR_SEPARATE_PARAM(cache); + ZEPHIR_INIT_VAR(&hostname); } - if (Z_TYPE_P(cache) == IS_STRING) { - ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "getservice", NULL, 0, cache); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(cache, &_0$$3); - } - if (Z_TYPE_P(cache) != IS_NULL) { - ZEPHIR_CALL_METHOD(NULL, modelBinder, "setcache", NULL, 0, cache); - zephir_check_call_status(); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("modelBinder"), modelBinder); + zephir_update_property_zval(this_ptr, ZEND_STRL("hostname"), &hostname); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Micro, setResponseHandler) +static PHP_METHOD(Phalcon_Mvc_Router_Route, setName) { - zval *handler, handler_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *name_param = NULL; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&name); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(handler) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &handler); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + zephir_get_strval(&name, name_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("responseHandler"), handler); - RETURN_THISW(); + zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Micro, setService) +static PHP_METHOD(Phalcon_Mvc_Router_Route, via) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool shared; - zval *serviceName_param = NULL, *definition, definition_sub, *shared_param = NULL, container, _0; - zval serviceName; + zval *httpMethods, httpMethods_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&serviceName); - ZVAL_UNDEF(&definition_sub); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&httpMethods_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(serviceName) - Z_PARAM_ZVAL(definition) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(shared) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(httpMethods) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &serviceName_param, &definition, &shared_param); - if (UNEXPECTED(Z_TYPE_P(serviceName_param) != IS_STRING && Z_TYPE_P(serviceName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'serviceName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(serviceName_param) == IS_STRING)) { - zephir_get_strval(&serviceName, serviceName_param); - } else { - ZEPHIR_INIT_VAR(&serviceName); - } - if (!shared_param) { - shared = 0; - } else { - shared = zephir_get_boolval(shared_param); - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - if (Z_TYPE_P(&container) != IS_OBJECT) { - ZEPHIR_INIT_NVAR(&container); - object_init_ex(&container, phalcon_di_factorydefault_ce); - ZEPHIR_CALL_METHOD(NULL, &container, "__construct", NULL, 421); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), &container); - } - if (shared) { - ZVAL_BOOL(&_0, 1); - } else { - ZVAL_BOOL(&_0, 0); - } - ZEPHIR_RETURN_CALL_METHOD(&container, "set", NULL, 427, &serviceName, definition, &_0); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Mvc_Micro, stop) -{ - zval __$true, __$false; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - + zephir_fetch_params_without_memory_grow(1, 0, &httpMethods); - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("stopped"), &__$false); - } + zephir_update_property_zval(this_ptr, ZEND_STRL("methods"), httpMethods); + RETURN_THISW(); } -zend_object *zephir_init_properties_Phalcon_Mvc_Micro(zend_class_entry *class_type) +zend_object *zephir_init_properties_Phalcon_Mvc_Router_Route(zend_class_entry *class_type) { - zval _0, _2, _4, _6, _8, _1$$3, _3$$4, _5$$5, _7$$6, _9$$7; + zval _0, _2, _4, _1$$3, _3$$4, _5$$5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_8); ZVAL_UNDEF(&_1$$3); ZVAL_UNDEF(&_3$$4); ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_9$$7); ZEPHIR_MM_GROW(); @@ -121759,35 +112016,23 @@ zend_object *zephir_init_properties_Phalcon_Mvc_Micro(zend_class_entry *class_ty { zval local_this_ptr, *this_ptr = &local_this_ptr; ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("handlers"), PH_NOISY_CC | PH_READONLY); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("paths"), PH_NOISY_CC | PH_READONLY); if (Z_TYPE_P(&_0) == IS_NULL) { ZEPHIR_INIT_VAR(&_1$$3); array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("handlers"), &_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("paths"), &_1$$3); } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("finishHandlers"), PH_NOISY_CC | PH_READONLY); + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("methods"), PH_NOISY_CC | PH_READONLY); if (Z_TYPE_P(&_2) == IS_NULL) { ZEPHIR_INIT_VAR(&_3$$4); array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("finishHandlers"), &_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("methods"), &_3$$4); } - zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("beforeHandlers"), PH_NOISY_CC | PH_READONLY); + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("converters"), PH_NOISY_CC | PH_READONLY); if (Z_TYPE_P(&_4) == IS_NULL) { ZEPHIR_INIT_VAR(&_5$$5); array_init(&_5$$5); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("beforeHandlers"), &_5$$5); - } - zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("afterHandlers"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_6) == IS_NULL) { - ZEPHIR_INIT_VAR(&_7$$6); - array_init(&_7$$6); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("afterHandlers"), &_7$$6); - } - zephir_read_property_ex(&_8, this_ptr, ZEND_STRL("afterBindingHandlers"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_8) == IS_NULL) { - ZEPHIR_INIT_VAR(&_9$$7); - array_init(&_9$$7); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("afterBindingHandlers"), &_9$$7); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("converters"), &_5$$5); } ZEPHIR_MM_RESTORE(); return Z_OBJ_P(this_ptr); @@ -121804,9386 +112049,4319 @@ zend_object *zephir_init_properties_Phalcon_Mvc_Micro(zend_class_entry *class_ty -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Router_RouteInterface) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc, Model, phalcon, mvc_model, phalcon_di_abstractinjectionaware_ce, phalcon_mvc_model_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Router, RouteInterface, phalcon, mvc_router_routeinterface, phalcon_mvc_router_routeinterface_method_entry); - zend_declare_property_long(phalcon_mvc_model_ce, SL("dirtyState"), 1, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_ce, SL("dirtyRelated"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_ce, SL("errorMessages"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_ce, SL("modelsManager"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_ce, SL("modelsMetaData"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_ce, SL("related"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_mvc_model_ce, SL("operationMade"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_ce, SL("oldSnapshot"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_model_ce, SL("skipped"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_ce, SL("snapshot"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_ce, SL("transaction"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_ce, SL("uniqueKey"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_ce, SL("uniqueParams"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_ce, SL("uniqueTypes"), ZEND_ACC_PROTECTED); - phalcon_mvc_model_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model; - zephir_declare_class_constant_long(phalcon_mvc_model_ce, SL("DIRTY_STATE_DETACHED"), 2); + return SUCCESS; +} - zephir_declare_class_constant_long(phalcon_mvc_model_ce, SL("DIRTY_STATE_PERSISTENT"), 0); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, compilePattern); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, convert); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, getCompiledPattern); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, getHostname); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, getHttpMethods); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, getName); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, getPaths); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, getPattern); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, getReversedPaths); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, getRouteId); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, setHostname); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, setHttpMethods); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, setName); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, reConfigure); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, reset); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, via); - zephir_declare_class_constant_long(phalcon_mvc_model_ce, SL("DIRTY_STATE_TRANSIENT"), 1); - zephir_declare_class_constant_long(phalcon_mvc_model_ce, SL("OP_CREATE"), 1); - zephir_declare_class_constant_long(phalcon_mvc_model_ce, SL("OP_DELETE"), 3); +#ifdef HAVE_CONFIG_H +#endif - zephir_declare_class_constant_long(phalcon_mvc_model_ce, SL("OP_NONE"), 0); - zephir_declare_class_constant_long(phalcon_mvc_model_ce, SL("OP_UPDATE"), 2); - zephir_declare_class_constant_string(phalcon_mvc_model_ce, SL("TRANSACTION_INDEX"), "transaction"); - zend_class_implements(phalcon_mvc_model_ce, 1, phalcon_mvc_entityinterface_ce); - zend_class_implements(phalcon_mvc_model_ce, 1, phalcon_mvc_modelinterface_ce); - zend_class_implements(phalcon_mvc_model_ce, 1, phalcon_mvc_model_resultinterface_ce); - zend_class_implements(phalcon_mvc_model_ce, 1, zend_ce_serializable); - zend_class_implements(phalcon_mvc_model_ce, 1, zephir_get_internal_ce(SL("jsonserializable"))); - return SUCCESS; -} -static PHP_METHOD(Phalcon_Mvc_Model, getTransaction) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Micro_Collection) { - zval *this_ptr = getThis(); - + ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Micro, Collection, phalcon, mvc_micro_collection, phalcon_mvc_micro_collection_method_entry, 0); + zend_declare_property_null(phalcon_mvc_micro_collection_ce, SL("handler"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_micro_collection_ce, SL("handlers"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_mvc_micro_collection_ce, SL("lazy"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_mvc_micro_collection_ce, SL("prefix"), "", ZEND_ACC_PROTECTED); + phalcon_mvc_micro_collection_ce->create_object = zephir_init_properties_Phalcon_Mvc_Micro_Collection; - RETURN_MEMBER(getThis(), "transaction"); + zend_class_implements(phalcon_mvc_micro_collection_ce, 1, phalcon_mvc_micro_collectioninterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model, __construct) +static PHP_METHOD(Phalcon_Mvc_Micro_Collection, delete) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL, *_3 = NULL; - zval *data = NULL, data_sub, *container = NULL, container_sub, *modelsManager = NULL, modelsManager_sub, __$null, _1$$4, _2$$4, _4$$4, _5$$5, _6$$5; + zval *routePattern_param = NULL, *handler, handler_sub, *name_param = NULL, _0; + zval routePattern, name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&data_sub); - ZVAL_UNDEF(&container_sub); - ZVAL_UNDEF(&modelsManager_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&routePattern); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 3) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(routePattern) + Z_PARAM_ZVAL(handler) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(data) - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(container, phalcon_di_diinterface_ce) - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(modelsManager, phalcon_mvc_model_managerinterface_ce) + Z_PARAM_STR_OR_NULL(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 3, &data, &container, &modelsManager); - if (!data) { - data = &data_sub; - data = &__$null; + zephir_fetch_params(1, 2, 1, &routePattern_param, &handler, &name_param); + if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); + RETURN_MM_NULL(); } - if (!container) { - container = &container_sub; - ZEPHIR_CPY_WRT(container, &__$null); + if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { + zephir_get_strval(&routePattern, routePattern_param); } else { - ZEPHIR_SEPARATE_PARAM(container); + ZEPHIR_INIT_VAR(&routePattern); } - if (!modelsManager) { - modelsManager = &modelsManager_sub; - ZEPHIR_CPY_WRT(modelsManager, &__$null); + if (!name_param) { + ZEPHIR_INIT_VAR(&name); } else { - ZEPHIR_SEPARATE_PARAM(modelsManager); + zephir_get_strval(&name, name_param); } - if (Z_TYPE_P(container) != IS_OBJECT) { - ZEPHIR_CALL_CE_STATIC(container, phalcon_di_ce, "getdefault", &_0, 0); - zephir_check_call_status(); - } - if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_1$$4); - object_init_ex(&_1$$4, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_4$$4); - ZVAL_STRING(&_4$$4, "the services related to the ODM"); - ZEPHIR_CALL_CE_STATIC(&_2$$4, phalcon_mvc_model_exception_ce, "containerservicenotfound", &_3, 0, &_4$$4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_1$$4, "__construct", NULL, 8, &_2$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$4, "phalcon/Mvc/Model.zep", 186); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); - if (Z_TYPE_P(modelsManager) != IS_OBJECT) { - ZEPHIR_INIT_VAR(&_6$$5); - ZVAL_STRING(&_6$$5, "modelsManager"); - ZEPHIR_CALL_METHOD(&_5$$5, container, "getshared", NULL, 0, &_6$$5); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(modelsManager, &_5$$5); - if (UNEXPECTED(Z_TYPE_P(modelsManager) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The injected service 'modelsManager' is not valid", "phalcon/Mvc/Model.zep", 200); - return; - } - } - zephir_update_property_zval(this_ptr, ZEND_STRL("modelsManager"), modelsManager); - ZEPHIR_CALL_METHOD(NULL, modelsManager, "initialize", NULL, 0, this_ptr); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "DELETE"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addmap", NULL, 0, &_0, &routePattern, handler, &name); zephir_check_call_status(); - if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("onconstruct")) == SUCCESS)) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "onconstruct", NULL, 0, data); - zephir_check_call_status(); - } - if (Z_TYPE_P(data) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "assign", NULL, 0, data); - zephir_check_call_status(); - } - ZEPHIR_MM_RESTORE(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model, __call) +static PHP_METHOD(Phalcon_Mvc_Micro_Collection, get) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval arguments; - zval *method_param = NULL, *arguments_param = NULL, modelName, status, records, _1, _2, _3; - zval method; + zval *routePattern_param = NULL, *handler, handler_sub, *name_param = NULL, _0; + zval routePattern, name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&status); - ZVAL_UNDEF(&records); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&arguments); + ZVAL_UNDEF(&routePattern); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(method) - Z_PARAM_ARRAY(arguments) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(routePattern) + Z_PARAM_ZVAL(handler) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &method_param, &arguments_param); - zephir_get_strval(&method, method_param); - zephir_get_arrval(&arguments, arguments_param); - - - ZEPHIR_CALL_SELF(&records, "invokefinder", &_0, 428, &method, &arguments); - zephir_check_call_status(); - if (!ZEPHIR_IS_FALSE_IDENTICAL(&records)) { - RETURN_CCTOR(&records); + zephir_fetch_params(1, 2, 1, &routePattern_param, &handler, &name_param); + if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); + RETURN_MM_NULL(); } - ZEPHIR_INIT_VAR(&modelName); - zephir_get_class(&modelName, this_ptr, 0); - ZEPHIR_CALL_METHOD(&records, this_ptr, "getrelatedrecords", NULL, 0, &modelName, &method, &arguments); - zephir_check_call_status(); - if (!ZEPHIR_IS_FALSE_IDENTICAL(&records)) { - RETURN_CCTOR(&records); + if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { + zephir_get_strval(&routePattern, routePattern_param); + } else { + ZEPHIR_INIT_VAR(&routePattern); } - zephir_read_property(&_1, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&status, &_1, "missingmethod", NULL, 0, this_ptr, &method, &arguments); - zephir_check_call_status(); - if (Z_TYPE_P(&status) != IS_NULL) { - RETURN_CCTOR(&status); + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + } else { + zephir_get_strval(&name, name_param); } - ZEPHIR_INIT_VAR(&_2); - object_init_ex(&_2, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_3); - ZEPHIR_CONCAT_SVSVS(&_3, "The method '", &method, "' doesn't exist on model '", &modelName, "'"); - ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 8, &_3); + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "GET"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addmap", NULL, 0, &_0, &routePattern, handler, &name); zephir_check_call_status(); - zephir_throw_exception_debug(&_2, "phalcon/Mvc/Model.zep", 269); - ZEPHIR_MM_RESTORE(); - return; + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model, __callStatic) +static PHP_METHOD(Phalcon_Mvc_Micro_Collection, getHandler) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval arguments; - zval *method_param = NULL, *arguments_param = NULL, modelName, records, _1, _2; - zval method; zval *this_ptr = getThis(); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&records); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&arguments); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(method) - Z_PARAM_ARRAY(arguments) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &method_param, &arguments_param); - zephir_get_strval(&method, method_param); - zephir_get_arrval(&arguments, arguments_param); + RETURN_MEMBER(getThis(), "handler"); +} +static PHP_METHOD(Phalcon_Mvc_Micro_Collection, getHandlers) +{ + zval *this_ptr = getThis(); - ZEPHIR_CALL_SELF(&records, "invokefinder", &_0, 428, &method, &arguments); - zephir_check_call_status(); - if (!ZEPHIR_IS_FALSE_IDENTICAL(&records)) { - RETURN_CCTOR(&records); - } - ZEPHIR_INIT_VAR(&modelName); - zephir_get_called_class(&modelName); - ZEPHIR_INIT_VAR(&_1); - object_init_ex(&_1, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_2); - ZEPHIR_CONCAT_SVSVS(&_2, "The method '", &method, "' doesn't exist on model '", &modelName, "'"); - ZEPHIR_CALL_METHOD(NULL, &_1, "__construct", NULL, 8, &_2); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1, "phalcon/Mvc/Model.zep", 295); - ZEPHIR_MM_RESTORE(); - return; + + + RETURN_MEMBER(getThis(), "handlers"); } -static PHP_METHOD(Phalcon_Mvc_Model, __get) +static PHP_METHOD(Phalcon_Mvc_Micro_Collection, getPrefix) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "prefix"); +} + +static PHP_METHOD(Phalcon_Mvc_Micro_Collection, head) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *property_param = NULL, modelName, manager, lowerProperty, relation, _0, _4, _5, _6, _1$$3, _2$$4, _3$$4; - zval property, method; + zval *routePattern_param = NULL, *handler, handler_sub, *name_param = NULL, _0; + zval routePattern, name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&property); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&lowerProperty); - ZVAL_UNDEF(&relation); + ZVAL_UNDEF(&routePattern); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&handler_sub); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(property) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(routePattern) + Z_PARAM_ZVAL(handler) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &property_param); - if (UNEXPECTED(Z_TYPE_P(property_param) != IS_STRING && Z_TYPE_P(property_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'property' must be of the type string")); + zephir_fetch_params(1, 2, 1, &routePattern_param, &handler, &name_param); + if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(property_param) == IS_STRING)) { - zephir_get_strval(&property, property_param); + if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { + zephir_get_strval(&routePattern, routePattern_param); } else { - ZEPHIR_INIT_VAR(&property); + ZEPHIR_INIT_VAR(&routePattern); + } + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + } else { + zephir_get_strval(&name, name_param); } - ZEPHIR_INIT_VAR(&modelName); - zephir_get_class(&modelName, this_ptr, 0); - ZEPHIR_CALL_METHOD(&manager, this_ptr, "getmodelsmanager", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&lowerProperty); - zephir_fast_strtolower(&lowerProperty, &property); - ZEPHIR_CALL_METHOD(&_0, &manager, "getrelationbyalias", NULL, 0, &modelName, &lowerProperty); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&relation, &_0); - if (Z_TYPE_P(&relation) == IS_OBJECT) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("dirtyRelated"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset(&_1$$3, &lowerProperty)) { - zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("dirtyRelated"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_3$$4, &_2$$4, &lowerProperty, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 327); - RETURN_CTOR(&_3$$4); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getrelated", NULL, 0, &lowerProperty); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_INIT_VAR(&_4); - zephir_camelize(&_4, &property, NULL ); - ZEPHIR_INIT_VAR(&_5); - ZEPHIR_CONCAT_SV(&_5, "get", &_4); - zephir_get_strval(&method, &_5); - if ((zephir_method_exists(this_ptr, &method) == SUCCESS)) { - ZEPHIR_RETURN_CALL_METHOD_ZVAL(this_ptr, &method, NULL, 0); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_INIT_VAR(&_6); - ZEPHIR_CONCAT_SVSV(&_6, "Access to undefined property ", &modelName, "::", &property); - ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_6); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "HEAD"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addmap", NULL, 0, &_0, &routePattern, handler, &name); zephir_check_call_status(); - RETURN_MM_NULL(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model, __isset) +static PHP_METHOD(Phalcon_Mvc_Micro_Collection, isLazy) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "lazy"); +} + +static PHP_METHOD(Phalcon_Mvc_Micro_Collection, map) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *property_param = NULL, manager, method, modelName, relation, result, _0, _1$$4; - zval property; + zval *routePattern_param = NULL, *handler, handler_sub, *name_param = NULL, _0; + zval routePattern, name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&property); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&relation); - ZVAL_UNDEF(&result); + ZVAL_UNDEF(&routePattern); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&handler_sub); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(property) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(routePattern) + Z_PARAM_ZVAL(handler) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &property_param); - if (UNEXPECTED(Z_TYPE_P(property_param) != IS_STRING && Z_TYPE_P(property_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'property' must be of the type string")); + zephir_fetch_params(1, 2, 1, &routePattern_param, &handler, &name_param); + if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(property_param) == IS_STRING)) { - zephir_get_strval(&property, property_param); + if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { + zephir_get_strval(&routePattern, routePattern_param); } else { - ZEPHIR_INIT_VAR(&property); + ZEPHIR_INIT_VAR(&routePattern); + } + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + } else { + zephir_get_strval(&name, name_param); } - ZEPHIR_INIT_VAR(&modelName); - zephir_get_class(&modelName, this_ptr, 0); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmodelsmanager", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&manager, &_0); - ZEPHIR_CALL_METHOD(&_0, &manager, "getrelationbyalias", NULL, 0, &modelName, &property); + ZVAL_NULL(&_0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addmap", NULL, 0, &_0, &routePattern, handler, &name); zephir_check_call_status(); - ZEPHIR_CPY_WRT(&relation, &_0); - if (Z_TYPE_P(&relation) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&result); - ZVAL_BOOL(&result, 1); - } else { - ZEPHIR_INIT_VAR(&_1$$4); - zephir_camelize(&_1$$4, &property, NULL ); - ZEPHIR_INIT_VAR(&method); - ZEPHIR_CONCAT_SV(&method, "get", &_1$$4); - ZEPHIR_INIT_NVAR(&result); - ZVAL_BOOL(&result, (zephir_method_exists(this_ptr, &method) == SUCCESS)); - } - RETURN_CCTOR(&result); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model, __set) +static PHP_METHOD(Phalcon_Mvc_Micro_Collection, mapVia) { - zend_bool _0; - zval related; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *property_param = NULL, *value, value_sub, lowerProperty, modelName, manager, relation, referencedModel, item, dirtyState, _14, _15, _1$$3, _2$$4, _3$$4, _4$$6, _5$$7, _6$$8, _7$$9, _8$$9, *_9$$10, _10$$10, _11$$10, _12$$17, _13$$18, _16$$20, _17$$21; - zval property, _18$$21; + zval *routePattern_param = NULL, *handler, handler_sub, *method, method_sub, *name_param = NULL; + zval routePattern, name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&property); - ZVAL_UNDEF(&_18$$21); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&lowerProperty); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&relation); - ZVAL_UNDEF(&referencedModel); - ZVAL_UNDEF(&item); - ZVAL_UNDEF(&dirtyState); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_15); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$6); - ZVAL_UNDEF(&_5$$7); - ZVAL_UNDEF(&_6$$8); - ZVAL_UNDEF(&_7$$9); - ZVAL_UNDEF(&_8$$9); - ZVAL_UNDEF(&_10$$10); - ZVAL_UNDEF(&_11$$10); - ZVAL_UNDEF(&_12$$17); - ZVAL_UNDEF(&_13$$18); - ZVAL_UNDEF(&_16$$20); - ZVAL_UNDEF(&_17$$21); - ZVAL_UNDEF(&related); + ZVAL_UNDEF(&routePattern); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&method_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(property) - Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_START(3, 4) + Z_PARAM_STR(routePattern) + Z_PARAM_ZVAL(handler) + Z_PARAM_ZVAL(method) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &property_param, &value); - zephir_get_strval(&property, property_param); - - - _0 = Z_TYPE_P(value) == IS_OBJECT; - if (_0) { - _0 = zephir_instance_of_ev(value, phalcon_mvc_modelinterface_ce); + zephir_fetch_params(1, 3, 1, &routePattern_param, &handler, &method, &name_param); + if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); + RETURN_MM_NULL(); } - if (_0) { - ZEPHIR_INIT_VAR(&lowerProperty); - zephir_fast_strtolower(&lowerProperty, &property); - ZEPHIR_INIT_VAR(&modelName); - zephir_get_class(&modelName, this_ptr, 0); - ZEPHIR_CALL_METHOD(&manager, this_ptr, "getmodelsmanager", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1$$3, &manager, "getrelationbyalias", NULL, 0, &modelName, &lowerProperty); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&relation, &_1$$3); - if (Z_TYPE_P(&relation) == IS_OBJECT) { - zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("dirtyState"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&dirtyState, &_2$$4); - ZEPHIR_CALL_METHOD(&_3$$4, value, "getdirtystate", NULL, 0); - zephir_check_call_status(); - if (!ZEPHIR_IS_EQUAL(&_3$$4, &dirtyState)) { - ZEPHIR_INIT_NVAR(&dirtyState); - ZVAL_LONG(&dirtyState, 1); - } - zephir_unset_property_array(this_ptr, ZEND_STRL("related"), &lowerProperty); - zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("related"), PH_NOISY_CC | PH_READONLY); - zephir_array_unset(&_2$$4, &lowerProperty, PH_SEPARATE); - zephir_update_property_array(this_ptr, SL("dirtyRelated"), &lowerProperty, value); - zephir_update_property_zval(this_ptr, ZEND_STRL("dirtyState"), &dirtyState); - RETVAL_ZVAL(value, 1, 0); - RETURN_MM(); - } - } else if (Z_TYPE_P(value) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&lowerProperty); - zephir_fast_strtolower(&lowerProperty, &property); - ZEPHIR_INIT_NVAR(&modelName); - zephir_get_class(&modelName, this_ptr, 0); - ZEPHIR_CALL_METHOD(&manager, this_ptr, "getmodelsmanager", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_4$$6, &manager, "getrelationbyalias", NULL, 0, &modelName, &lowerProperty); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&relation, &_4$$6); - if (Z_TYPE_P(&relation) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&_5$$7, &relation, "gettype", NULL, 0); - zephir_check_call_status(); - do { - if (ZEPHIR_IS_LONG(&_5$$7, 0) || ZEPHIR_IS_LONG(&_5$$7, 1)) { - ZEPHIR_CALL_METHOD(&_6$$8, &relation, "getreferencedmodel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&referencedModel, &manager, "load", NULL, 0, &_6$$8); - zephir_check_call_status(); - if (Z_TYPE_P(&referencedModel) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(NULL, &referencedModel, "assign", NULL, 0, value); - zephir_check_call_status(); - zephir_unset_property_array(this_ptr, ZEND_STRL("related"), &lowerProperty); - zephir_read_property(&_7$$9, this_ptr, ZEND_STRL("related"), PH_NOISY_CC | PH_READONLY); - zephir_array_unset(&_7$$9, &lowerProperty, PH_SEPARATE); - zephir_update_property_array(this_ptr, SL("dirtyRelated"), &lowerProperty, &referencedModel); - ZEPHIR_INIT_ZVAL_NREF(_8$$9); - ZVAL_LONG(&_8$$9, 1); - zephir_update_property_zval(this_ptr, ZEND_STRL("dirtyState"), &_8$$9); - RETVAL_ZVAL(value, 1, 0); - RETURN_MM(); - } - break; - } - if (ZEPHIR_IS_LONG(&_5$$7, 2) || ZEPHIR_IS_LONG(&_5$$7, 4)) { - ZEPHIR_INIT_VAR(&related); - array_init(&related); - zephir_is_iterable(value, 0, "phalcon/Mvc/Model.zep", 473); - if (Z_TYPE_P(value) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(value), _9$$10) - { - ZEPHIR_INIT_NVAR(&item); - ZVAL_COPY(&item, _9$$10); - if (Z_TYPE_P(&item) == IS_OBJECT) { - if (zephir_instance_of_ev(&item, phalcon_mvc_modelinterface_ce)) { - zephir_array_append(&related, &item, PH_SEPARATE, "phalcon/Mvc/Model.zep", 468); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, value, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_10$$10, value, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_10$$10)) { - break; - } - ZEPHIR_CALL_METHOD(&item, value, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&item) == IS_OBJECT) { - if (zephir_instance_of_ev(&item, phalcon_mvc_modelinterface_ce)) { - zephir_array_append(&related, &item, PH_SEPARATE, "phalcon/Mvc/Model.zep", 468); - } - } - ZEPHIR_CALL_METHOD(NULL, value, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&item); - zephir_unset_property_array(this_ptr, ZEND_STRL("related"), &lowerProperty); - zephir_read_property(&_11$$10, this_ptr, ZEND_STRL("related"), PH_NOISY_CC | PH_READONLY); - zephir_array_unset(&_11$$10, &lowerProperty, PH_SEPARATE); - if (zephir_fast_count_int(&related) > 0) { - zephir_update_property_array(this_ptr, SL("dirtyRelated"), &lowerProperty, &related); - ZEPHIR_INIT_ZVAL_NREF(_12$$17); - ZVAL_LONG(&_12$$17, 1); - zephir_update_property_zval(this_ptr, ZEND_STRL("dirtyState"), &_12$$17); - } else { - zephir_unset_property_array(this_ptr, ZEND_STRL("dirtyRelated"), &lowerProperty); - zephir_read_property(&_13$$18, this_ptr, ZEND_STRL("dirtyRelated"), PH_NOISY_CC | PH_READONLY); - zephir_array_unset(&_13$$18, &lowerProperty, PH_SEPARATE); - } - RETVAL_ZVAL(value, 1, 0); - RETURN_MM(); - } - } while(0); - - } + if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { + zephir_get_strval(&routePattern, routePattern_param); + } else { + ZEPHIR_INIT_VAR(&routePattern); } - ZEPHIR_CALL_METHOD(&_14, this_ptr, "possiblesetter", NULL, 429, &property, value); - zephir_check_call_status(); - if (zephir_is_true(&_14)) { - RETVAL_ZVAL(value, 1, 0); - RETURN_MM(); + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + } else { + zephir_get_strval(&name, name_param); } - ZEPHIR_CALL_FUNCTION(&_15, "property_exists", NULL, 430, this_ptr, &property); + + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addmap", NULL, 0, method, &routePattern, handler, &name); zephir_check_call_status(); - if (zephir_is_true(&_15)) { - ZEPHIR_CALL_METHOD(&manager, this_ptr, "getmodelsmanager", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_16$$20, &manager, "isvisiblemodelproperty", NULL, 0, this_ptr, &property); - zephir_check_call_status(); - if (UNEXPECTED(!zephir_is_true(&_16$$20))) { - ZEPHIR_INIT_VAR(&_17$$21); - object_init_ex(&_17$$21, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_18$$21); - ZEPHIR_CONCAT_SVS(&_18$$21, "Cannot access property '", &property, "' (not public)."); - ZEPHIR_CALL_METHOD(NULL, &_17$$21, "__construct", NULL, 8, &_18$$21); - zephir_check_call_status(); - zephir_throw_exception_debug(&_17$$21, "phalcon/Mvc/Model.zep", 502); - ZEPHIR_MM_RESTORE(); - return; - } - } - zephir_update_property_zval_zval(this_ptr, &property, value); - RETVAL_ZVAL(value, 1, 0); - RETURN_MM(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model, addBehavior) +static PHP_METHOD(Phalcon_Mvc_Micro_Collection, options) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *behavior, behavior_sub, _0; + zval *routePattern_param = NULL, *handler, handler_sub, *name_param = NULL, _0; + zval routePattern, name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&behavior_sub); + ZVAL_UNDEF(&routePattern); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&handler_sub); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(behavior, phalcon_mvc_model_behaviorinterface_ce) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(routePattern) + Z_PARAM_ZVAL(handler) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &behavior); + zephir_fetch_params(1, 2, 1, &routePattern_param, &handler, &name_param); + if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { + zephir_get_strval(&routePattern, routePattern_param); + } else { + ZEPHIR_INIT_VAR(&routePattern); + } + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + } else { + zephir_get_strval(&name, name_param); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_0, "addbehavior", NULL, 0, this_ptr, behavior); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "OPTIONS"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addmap", NULL, 0, &_0, &routePattern, handler, &name); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model, appendMessage) +static PHP_METHOD(Phalcon_Mvc_Micro_Collection, patch) { - zval *message, message_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *routePattern_param = NULL, *handler, handler_sub, *name_param = NULL, _0; + zval routePattern, name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&message_sub); + ZVAL_UNDEF(&routePattern); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(message, phalcon_messages_messageinterface_ce) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(routePattern) + Z_PARAM_ZVAL(handler) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(name) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &message); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &routePattern_param, &handler, &name_param); + if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { + zephir_get_strval(&routePattern, routePattern_param); + } else { + ZEPHIR_INIT_VAR(&routePattern); + } + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + } else { + zephir_get_strval(&name, name_param); + } - zephir_update_property_array_append(this_ptr, SL("errorMessages"), message); - RETURN_THISW(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "PATCH"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addmap", NULL, 0, &_0, &routePattern, handler, &name); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model, assign) +static PHP_METHOD(Phalcon_Mvc_Micro_Collection, post) { - zend_bool _7$$12, _13$$18, _16$$22, _20$$28; - zend_string *_3$$3; - zend_ulong _2$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_9 = NULL, *_12 = NULL, *_15 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *data_param = NULL, *whiteList = NULL, whiteList_sub, *dataColumnMap = NULL, dataColumnMap_sub, __$null, key, keyMapped, value, attribute, attributeField, metaData, columnMap, disableAssignSetters, _4, *_5, _6, *_0$$3, _1$$3, _8$$13, _10$$16, _11$$16, _14$$18, _17$$23, _18$$26, _19$$26, _21$$28; - zval data, dataMapped; + zval *routePattern_param = NULL, *handler, handler_sub, *name_param = NULL, _0; + zval routePattern, name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&dataMapped); - ZVAL_UNDEF(&whiteList_sub); - ZVAL_UNDEF(&dataColumnMap_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&keyMapped); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&attribute); - ZVAL_UNDEF(&attributeField); - ZVAL_UNDEF(&metaData); - ZVAL_UNDEF(&columnMap); - ZVAL_UNDEF(&disableAssignSetters); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_8$$13); - ZVAL_UNDEF(&_10$$16); - ZVAL_UNDEF(&_11$$16); - ZVAL_UNDEF(&_14$$18); - ZVAL_UNDEF(&_17$$23); - ZVAL_UNDEF(&_18$$26); - ZVAL_UNDEF(&_19$$26); - ZVAL_UNDEF(&_21$$28); + ZVAL_UNDEF(&routePattern); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ARRAY(data) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(routePattern) + Z_PARAM_ZVAL(handler) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(whiteList) - Z_PARAM_ZVAL_OR_NULL(dataColumnMap) + Z_PARAM_STR_OR_NULL(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &data_param, &whiteList, &dataColumnMap); - ZEPHIR_OBS_COPY_OR_DUP(&data, data_param); - if (!whiteList) { - whiteList = &whiteList_sub; - whiteList = &__$null; - } - if (!dataColumnMap) { - dataColumnMap = &dataColumnMap_sub; - dataColumnMap = &__$null; + zephir_fetch_params(1, 2, 1, &routePattern_param, &handler, &name_param); + if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); + RETURN_MM_NULL(); } - - - ZEPHIR_INIT_VAR(&disableAssignSetters); - ZVAL_BOOL(&disableAssignSetters, ZEPHIR_GLOBAL(orm).disable_assign_setters); - if (Z_TYPE_P(dataColumnMap) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&dataMapped); - array_init(&dataMapped); - zephir_is_iterable(&data, 0, "phalcon/Mvc/Model.zep", 648); - if (Z_TYPE_P(&data) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _2$$3, _3$$3, _0$$3) - { - ZEPHIR_INIT_NVAR(&key); - if (_3$$3 != NULL) { - ZVAL_STR_COPY(&key, _3$$3); - } else { - ZVAL_LONG(&key, _2$$3); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0$$3); - ZEPHIR_OBS_NVAR(&keyMapped); - if (zephir_array_isset_fetch(&keyMapped, dataColumnMap, &key, 0)) { - zephir_array_update_zval(&dataMapped, &keyMapped, &value, PH_COPY | PH_SEPARATE); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &data, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1$$3, &data, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&key, &data, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &data, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&keyMapped); - if (zephir_array_isset_fetch(&keyMapped, dataColumnMap, &key, 0)) { - zephir_array_update_zval(&dataMapped, &keyMapped, &value, PH_COPY | PH_SEPARATE); - } - ZEPHIR_CALL_METHOD(NULL, &data, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); + if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { + zephir_get_strval(&routePattern, routePattern_param); } else { - ZEPHIR_CPY_WRT(&dataMapped, &data); - } - if (zephir_fast_count_int(&dataMapped) == 0) { - RETURN_THIS(); + ZEPHIR_INIT_VAR(&routePattern); } - ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_GLOBAL(orm).column_renaming) { - ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getcolumnmap", NULL, 0, this_ptr); - zephir_check_call_status(); + if (!name_param) { + ZEPHIR_INIT_VAR(&name); } else { - ZEPHIR_INIT_NVAR(&columnMap); - ZVAL_NULL(&columnMap); + zephir_get_strval(&name, name_param); } - ZEPHIR_CALL_METHOD(&_4, &metaData, "getattributes", NULL, 0, this_ptr); + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "POST"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addmap", NULL, 0, &_0, &routePattern, handler, &name); zephir_check_call_status(); - zephir_is_iterable(&_4, 0, "phalcon/Mvc/Model.zep", 705); - if (Z_TYPE_P(&_4) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_4), _5) - { - ZEPHIR_INIT_NVAR(&attribute); - ZVAL_COPY(&attribute, _5); - _7$$12 = !(zephir_array_isset(&columnMap, &attribute)); - if (_7$$12) { - _7$$12 = ZEPHIR_GLOBAL(orm).case_insensitive_column_map; - } - if (_7$$12) { - ZEPHIR_CALL_SELF(&_8$$13, "caseinsensitivecolumnmap", &_9, 431, &columnMap, &attribute); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&attribute, &_8$$13); - } - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&attributeField); - if (!(zephir_array_isset_fetch(&attributeField, &columnMap, &attribute, 0))) { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_10$$16); - object_init_ex(&_10$$16, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_11$$16); - ZEPHIR_CONCAT_SVS(&_11$$16, "Column '", &attribute, "' doesn't make part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_10$$16, "__construct", &_12, 8, &_11$$16); - zephir_check_call_status(); - zephir_throw_exception_debug(&_10$$16, "phalcon/Mvc/Model.zep", 679); - ZEPHIR_MM_RESTORE(); - return; - } - continue; - } - } else { - ZEPHIR_CPY_WRT(&attributeField, &attribute); - } - ZEPHIR_OBS_NVAR(&value); - if (zephir_array_isset_fetch(&value, &dataMapped, &attributeField, 0)) { - if (Z_TYPE_P(whiteList) == IS_ARRAY) { - if (!(zephir_fast_in_array(&attributeField, whiteList))) { - continue; - } - } - _13$$18 = zephir_is_true(&disableAssignSetters); - if (!(_13$$18)) { - ZEPHIR_CALL_METHOD(&_14$$18, this_ptr, "possiblesetter", &_15, 429, &attributeField, &value); - zephir_check_call_status(); - _13$$18 = !zephir_is_true(&_14$$18); - } - if (_13$$18) { - zephir_update_property_zval_zval(this_ptr, &attributeField, &value); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_4, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_6, &_4, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_6)) { - break; - } - ZEPHIR_CALL_METHOD(&attribute, &_4, "current", NULL, 0); - zephir_check_call_status(); - _16$$22 = !(zephir_array_isset(&columnMap, &attribute)); - if (_16$$22) { - _16$$22 = ZEPHIR_GLOBAL(orm).case_insensitive_column_map; - } - if (_16$$22) { - ZEPHIR_CALL_SELF(&_17$$23, "caseinsensitivecolumnmap", &_9, 431, &columnMap, &attribute); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&attribute, &_17$$23); - } - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&attributeField); - if (!(zephir_array_isset_fetch(&attributeField, &columnMap, &attribute, 0))) { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_18$$26); - object_init_ex(&_18$$26, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_19$$26); - ZEPHIR_CONCAT_SVS(&_19$$26, "Column '", &attribute, "' doesn't make part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_18$$26, "__construct", &_12, 8, &_19$$26); - zephir_check_call_status(); - zephir_throw_exception_debug(&_18$$26, "phalcon/Mvc/Model.zep", 679); - ZEPHIR_MM_RESTORE(); - return; - } - continue; - } - } else { - ZEPHIR_CPY_WRT(&attributeField, &attribute); - } - ZEPHIR_OBS_NVAR(&value); - if (zephir_array_isset_fetch(&value, &dataMapped, &attributeField, 0)) { - if (Z_TYPE_P(whiteList) == IS_ARRAY) { - if (!(zephir_fast_in_array(&attributeField, whiteList))) { - continue; - } - } - _20$$28 = zephir_is_true(&disableAssignSetters); - if (!(_20$$28)) { - ZEPHIR_CALL_METHOD(&_21$$28, this_ptr, "possiblesetter", &_15, 429, &attributeField, &value); - zephir_check_call_status(); - _20$$28 = !zephir_is_true(&_21$$28); - } - if (_20$$28) { - zephir_update_property_zval_zval(this_ptr, &attributeField, &value); - } - } - ZEPHIR_CALL_METHOD(NULL, &_4, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&attribute); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model, average) +static PHP_METHOD(Phalcon_Mvc_Micro_Collection, put) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *parameters_param = NULL, result, _0, _1; - zval parameters; + zval *routePattern_param = NULL, *handler, handler_sub, *name_param = NULL, _0; + zval routePattern, name; zval *this_ptr = getThis(); - ZVAL_UNDEF(¶meters); - ZVAL_UNDEF(&result); + ZVAL_UNDEF(&routePattern); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&handler_sub); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(routePattern) + Z_PARAM_ZVAL(handler) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(parameters) + Z_PARAM_STR_OR_NULL(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, ¶meters_param); - if (!parameters_param) { - ZEPHIR_INIT_VAR(¶meters); - array_init(¶meters); + zephir_fetch_params(1, 2, 1, &routePattern_param, &handler, &name_param); + if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { + zephir_get_strval(&routePattern, routePattern_param); } else { - zephir_get_arrval(¶meters, parameters_param); + ZEPHIR_INIT_VAR(&routePattern); + } + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + } else { + zephir_get_strval(&name, name_param); } ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "AVG"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "average"); - ZEPHIR_CALL_SELF(&result, "groupresult", NULL, 0, &_0, &_1, ¶meters); + ZVAL_STRING(&_0, "PUT"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addmap", NULL, 0, &_0, &routePattern, handler, &name); zephir_check_call_status(); - if (Z_TYPE_P(&result) == IS_STRING) { - RETURN_MM_DOUBLE(zephir_get_doubleval(&result)); - } - RETURN_CCTOR(&result); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model, cloneResult) +static PHP_METHOD(Phalcon_Mvc_Micro_Collection, setHandler) { - zend_string *_4; - zend_ulong _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long dirtyState, ZEPHIR_LAST_CALL_STATUS; - zval data; - zval *base, base_sub, *data_param = NULL, *dirtyState_param = NULL, instance, key, value, _0, *_1, _2, _5; + zend_bool lazy; + zval *handler, handler_sub, *lazy_param = NULL, __$true, __$false; zval *this_ptr = getThis(); - ZVAL_UNDEF(&base_sub); - ZVAL_UNDEF(&instance); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&data); + ZVAL_UNDEF(&handler_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_OBJECT_OF_CLASS(base, phalcon_mvc_modelinterface_ce) - Z_PARAM_ARRAY(data) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(handler) Z_PARAM_OPTIONAL - Z_PARAM_LONG(dirtyState) + Z_PARAM_BOOL(lazy) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &base, &data_param, &dirtyState_param); - ZEPHIR_OBS_COPY_OR_DUP(&data, data_param); - if (!dirtyState_param) { - dirtyState = 0; + zephir_fetch_params_without_memory_grow(1, 1, &handler, &lazy_param); + if (!lazy_param) { + lazy = 0; } else { - dirtyState = zephir_get_intval(dirtyState_param); + lazy = zephir_get_boolval(lazy_param); } - ZEPHIR_INIT_VAR(&instance); - if (zephir_clone(&instance, base) == FAILURE) { - RETURN_MM(); - } - ZVAL_LONG(&_0, dirtyState); - ZEPHIR_CALL_METHOD(NULL, &instance, "setdirtystate", NULL, 0, &_0); - zephir_check_call_status(); - zephir_is_iterable(&data, 0, "phalcon/Mvc/Model.zep", 795); - if (Z_TYPE_P(&data) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _3, _4, _1) - { - ZEPHIR_INIT_NVAR(&key); - if (_4 != NULL) { - ZVAL_STR_COPY(&key, _4); - } else { - ZVAL_LONG(&key, _3); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _1); - if (UNEXPECTED(Z_TYPE_P(&key) != IS_STRING)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid key in array data provided to dumpResult()", "phalcon/Mvc/Model.zep", 785); - return; - } - zephir_update_property_zval_zval(&instance, &key, &value); - } ZEND_HASH_FOREACH_END(); + zephir_update_property_zval(this_ptr, ZEND_STRL("handler"), handler); + if (lazy) { + zephir_update_property_zval(this_ptr, ZEND_STRL("lazy"), &__$true); } else { - ZEPHIR_CALL_METHOD(NULL, &data, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &data, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&key, &data, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &data, "current", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&key) != IS_STRING)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid key in array data provided to dumpResult()", "phalcon/Mvc/Model.zep", 785); - return; - } - zephir_update_property_zval_zval(&instance, &key, &value); - ZEPHIR_CALL_METHOD(NULL, &data, "next", NULL, 0); - zephir_check_call_status(); - } + zephir_update_property_zval(this_ptr, ZEND_STRL("lazy"), &__$false); } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - ZEPHIR_INIT_VAR(&_5); - ZVAL_STRING(&_5, "afterFetch"); - ZEPHIR_CALL_METHOD(NULL, &instance, "fireevent", NULL, 0, &_5); - zephir_check_call_status(); - RETURN_CCTOR(&instance); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_Model, cloneResultMap) +static PHP_METHOD(Phalcon_Mvc_Micro_Collection, setLazy) { - zend_string *_4; - zend_ulong _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_8 = NULL, *_14 = NULL; - zend_bool keepSnapshots, _5$$6, _11$$3, _16$$24, _21$$21; - zend_long dirtyState, ZEPHIR_LAST_CALL_STATUS; - zval data; - zval *base, base_sub, *data_param = NULL, *columnMap, columnMap_sub, *dirtyState_param = NULL, *keepSnapshots_param = NULL, instance, attribute, key, value, castValue, attributeName, metaData, reverseMap, _0, *_1, _2, _6$$9, _7$$9, _9$$11, _10$$11, _12$$13, _13$$14, _15$$18, _17$$27, _18$$27, _19$$29, _20$$29, _22$$31, _23$$32, _24$$36, _25$$40; + zval *lazy_param = NULL, __$true, __$false; + zend_bool lazy; zval *this_ptr = getThis(); - ZVAL_UNDEF(&base_sub); - ZVAL_UNDEF(&columnMap_sub); - ZVAL_UNDEF(&instance); - ZVAL_UNDEF(&attribute); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&castValue); - ZVAL_UNDEF(&attributeName); - ZVAL_UNDEF(&metaData); - ZVAL_UNDEF(&reverseMap); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_6$$9); - ZVAL_UNDEF(&_7$$9); - ZVAL_UNDEF(&_9$$11); - ZVAL_UNDEF(&_10$$11); - ZVAL_UNDEF(&_12$$13); - ZVAL_UNDEF(&_13$$14); - ZVAL_UNDEF(&_15$$18); - ZVAL_UNDEF(&_17$$27); - ZVAL_UNDEF(&_18$$27); - ZVAL_UNDEF(&_19$$29); - ZVAL_UNDEF(&_20$$29); - ZVAL_UNDEF(&_22$$31); - ZVAL_UNDEF(&_23$$32); - ZVAL_UNDEF(&_24$$36); - ZVAL_UNDEF(&_25$$40); - ZVAL_UNDEF(&data); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 5) - Z_PARAM_ZVAL(base) - Z_PARAM_ARRAY(data) - Z_PARAM_ZVAL(columnMap) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(dirtyState) - Z_PARAM_BOOL_OR_NULL(keepSnapshots, is_null_true) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(lazy) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 2, &base, &data_param, &columnMap, &dirtyState_param, &keepSnapshots_param); - ZEPHIR_OBS_COPY_OR_DUP(&data, data_param); - if (!dirtyState_param) { - dirtyState = 0; - } else { - dirtyState = zephir_get_intval(dirtyState_param); - } - if (!keepSnapshots_param) { - keepSnapshots = 0; - } else { - keepSnapshots = zephir_get_boolval(keepSnapshots_param); - } - - - ZEPHIR_INIT_VAR(&instance); - if (zephir_clone(&instance, base) == FAILURE) { - RETURN_MM(); + zephir_fetch_params_without_memory_grow(1, 0, &lazy_param); + if (UNEXPECTED(Z_TYPE_P(lazy_param) != IS_TRUE && Z_TYPE_P(lazy_param) != IS_FALSE)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'lazy' must be of the type bool")); + RETURN_NULL(); } - ZVAL_LONG(&_0, dirtyState); - ZEPHIR_CALL_METHOD(NULL, &instance, "setdirtystate", NULL, 0, &_0); - zephir_check_call_status(); - zephir_is_iterable(&data, 1, "phalcon/Mvc/Model.zep", 929); - if (Z_TYPE_P(&data) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _3, _4, _1) - { - ZEPHIR_INIT_NVAR(&key); - if (_4 != NULL) { - ZVAL_STR_COPY(&key, _4); - } else { - ZVAL_LONG(&key, _3); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _1); - if (Z_TYPE_P(&key) != IS_STRING) { - continue; - } - if (Z_TYPE_P(columnMap) != IS_ARRAY) { - zephir_update_property_zval_zval(&instance, &key, &value); - continue; - } - ZEPHIR_OBS_NVAR(&attribute); - if (!(zephir_array_isset_fetch(&attribute, columnMap, &key, 0))) { - _5$$6 = Z_TYPE_P(columnMap) == IS_ARRAY; - if (_5$$6) { - _5$$6 = !(ZEPHIR_IS_EMPTY(columnMap)); - } - if (_5$$6) { - ZEPHIR_CALL_METHOD(&metaData, &instance, "getmodelsmetadata", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&reverseMap, &metaData, "getreversecolumnmap", NULL, 0, &instance); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&attribute); - if (!(zephir_array_isset_fetch(&attribute, &reverseMap, &key, 0))) { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_6$$9); - object_init_ex(&_6$$9, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_7$$9); - ZEPHIR_CONCAT_SVS(&_7$$9, "Column '", &key, "' doesn't make part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_6$$9, "__construct", &_8, 8, &_7$$9); - zephir_check_call_status(); - zephir_throw_exception_debug(&_6$$9, "phalcon/Mvc/Model.zep", 855); - ZEPHIR_MM_RESTORE(); - return; - } - continue; - } - } else { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_9$$11); - object_init_ex(&_9$$11, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_10$$11); - ZEPHIR_CONCAT_SVS(&_10$$11, "Column '", &key, "' doesn't make part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_9$$11, "__construct", &_8, 8, &_10$$11); - zephir_check_call_status(); - zephir_throw_exception_debug(&_9$$11, "phalcon/Mvc/Model.zep", 864); - ZEPHIR_MM_RESTORE(); - return; - } - continue; - } - } - if (Z_TYPE_P(&attribute) != IS_ARRAY) { - zephir_update_property_zval_zval(&instance, &attribute, &value); - continue; - } - _11$$3 = !ZEPHIR_IS_STRING(&value, ""); - if (_11$$3) { - _11$$3 = Z_TYPE_P(&value) != IS_NULL; - } - if (_11$$3) { - zephir_array_fetch_long(&_12$$13, &attribute, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 878); - do { - if (ZEPHIR_IS_LONG(&_12$$13, 14) || ZEPHIR_IS_LONG(&_12$$13, 0) || ZEPHIR_IS_LONG(&_12$$13, 21) || ZEPHIR_IS_LONG(&_12$$13, 22) || ZEPHIR_IS_LONG(&_12$$13, 26)) { - ZVAL_LONG(&_13$$14, 10); - ZEPHIR_CALL_FUNCTION(&castValue, "intval", &_14, 51, &value, &_13$$14); - zephir_check_call_status(); - break; - } - if (ZEPHIR_IS_LONG(&_12$$13, 3) || ZEPHIR_IS_LONG(&_12$$13, 9) || ZEPHIR_IS_LONG(&_12$$13, 7)) { - ZEPHIR_INIT_NVAR(&castValue); - ZVAL_DOUBLE(&castValue, zephir_get_doubleval(&value)); - break; - } - if (ZEPHIR_IS_LONG(&_12$$13, 8)) { - ZEPHIR_INIT_NVAR(&castValue); - ZVAL_BOOL(&castValue, zephir_get_boolval(&value)); - break; - } - ZEPHIR_CPY_WRT(&castValue, &value); - break; - } while(0); + lazy = (Z_TYPE_P(lazy_param) == IS_TRUE); - } else { - zephir_array_fetch_long(&_15$$18, &attribute, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 902); - do { - if (ZEPHIR_IS_LONG(&_15$$18, 14) || ZEPHIR_IS_LONG(&_15$$18, 8) || ZEPHIR_IS_LONG(&_15$$18, 3) || ZEPHIR_IS_LONG(&_15$$18, 9) || ZEPHIR_IS_LONG(&_15$$18, 7) || ZEPHIR_IS_LONG(&_15$$18, 0) || ZEPHIR_IS_LONG(&_15$$18, 21) || ZEPHIR_IS_LONG(&_15$$18, 22) || ZEPHIR_IS_LONG(&_15$$18, 26)) { - ZEPHIR_INIT_NVAR(&castValue); - ZVAL_NULL(&castValue); - break; - } - ZEPHIR_CPY_WRT(&castValue, &value); - break; - } while(0); - } - ZEPHIR_OBS_NVAR(&attributeName); - zephir_array_fetch_long(&attributeName, &attribute, 0, PH_NOISY, "phalcon/Mvc/Model.zep", 921); - zephir_update_property_zval_zval(&instance, &attributeName, &castValue); - zephir_array_update_zval(&data, &key, &castValue, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); + if (lazy) { + zephir_update_property_zval(this_ptr, ZEND_STRL("lazy"), &__$true); } else { - ZEPHIR_CALL_METHOD(NULL, &data, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &data, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&key, &data, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &data, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&key) != IS_STRING) { - continue; - } - if (Z_TYPE_P(columnMap) != IS_ARRAY) { - zephir_update_property_zval_zval(&instance, &key, &value); - continue; - } - ZEPHIR_OBS_NVAR(&attribute); - if (!(zephir_array_isset_fetch(&attribute, columnMap, &key, 0))) { - _16$$24 = Z_TYPE_P(columnMap) == IS_ARRAY; - if (_16$$24) { - _16$$24 = !(ZEPHIR_IS_EMPTY(columnMap)); - } - if (_16$$24) { - ZEPHIR_CALL_METHOD(&metaData, &instance, "getmodelsmetadata", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&reverseMap, &metaData, "getreversecolumnmap", NULL, 0, &instance); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&attribute); - if (!(zephir_array_isset_fetch(&attribute, &reverseMap, &key, 0))) { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_17$$27); - object_init_ex(&_17$$27, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_18$$27); - ZEPHIR_CONCAT_SVS(&_18$$27, "Column '", &key, "' doesn't make part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_17$$27, "__construct", &_8, 8, &_18$$27); - zephir_check_call_status(); - zephir_throw_exception_debug(&_17$$27, "phalcon/Mvc/Model.zep", 855); - ZEPHIR_MM_RESTORE(); - return; - } - continue; - } - } else { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_19$$29); - object_init_ex(&_19$$29, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_20$$29); - ZEPHIR_CONCAT_SVS(&_20$$29, "Column '", &key, "' doesn't make part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_19$$29, "__construct", &_8, 8, &_20$$29); - zephir_check_call_status(); - zephir_throw_exception_debug(&_19$$29, "phalcon/Mvc/Model.zep", 864); - ZEPHIR_MM_RESTORE(); - return; - } - continue; - } - } - if (Z_TYPE_P(&attribute) != IS_ARRAY) { - zephir_update_property_zval_zval(&instance, &attribute, &value); - continue; - } - _21$$21 = !ZEPHIR_IS_STRING(&value, ""); - if (_21$$21) { - _21$$21 = Z_TYPE_P(&value) != IS_NULL; - } - if (_21$$21) { - zephir_array_fetch_long(&_22$$31, &attribute, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 878); - do { - if (ZEPHIR_IS_LONG(&_22$$31, 14) || ZEPHIR_IS_LONG(&_22$$31, 0) || ZEPHIR_IS_LONG(&_22$$31, 21) || ZEPHIR_IS_LONG(&_22$$31, 22) || ZEPHIR_IS_LONG(&_22$$31, 26)) { - ZVAL_LONG(&_23$$32, 10); - ZEPHIR_CALL_FUNCTION(&castValue, "intval", &_14, 51, &value, &_23$$32); - zephir_check_call_status(); - break; - } - if (ZEPHIR_IS_LONG(&_22$$31, 3) || ZEPHIR_IS_LONG(&_22$$31, 9) || ZEPHIR_IS_LONG(&_22$$31, 7)) { - ZEPHIR_INIT_NVAR(&castValue); - ZVAL_DOUBLE(&castValue, zephir_get_doubleval(&value)); - break; - } - if (ZEPHIR_IS_LONG(&_22$$31, 8)) { - ZEPHIR_INIT_NVAR(&castValue); - ZVAL_BOOL(&castValue, zephir_get_boolval(&value)); - break; - } - ZEPHIR_CPY_WRT(&castValue, &value); - break; - } while(0); - - } else { - zephir_array_fetch_long(&_24$$36, &attribute, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 902); - do { - if (ZEPHIR_IS_LONG(&_24$$36, 14) || ZEPHIR_IS_LONG(&_24$$36, 8) || ZEPHIR_IS_LONG(&_24$$36, 3) || ZEPHIR_IS_LONG(&_24$$36, 9) || ZEPHIR_IS_LONG(&_24$$36, 7) || ZEPHIR_IS_LONG(&_24$$36, 0) || ZEPHIR_IS_LONG(&_24$$36, 21) || ZEPHIR_IS_LONG(&_24$$36, 22) || ZEPHIR_IS_LONG(&_24$$36, 26)) { - ZEPHIR_INIT_NVAR(&castValue); - ZVAL_NULL(&castValue); - break; - } - ZEPHIR_CPY_WRT(&castValue, &value); - break; - } while(0); - - } - ZEPHIR_OBS_NVAR(&attributeName); - zephir_array_fetch_long(&attributeName, &attribute, 0, PH_NOISY, "phalcon/Mvc/Model.zep", 921); - zephir_update_property_zval_zval(&instance, &attributeName, &castValue); - zephir_array_update_zval(&data, &key, &castValue, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &data, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - if (keepSnapshots) { - ZEPHIR_CALL_METHOD(NULL, &instance, "setsnapshotdata", NULL, 0, &data, columnMap); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &instance, "setoldsnapshotdata", NULL, 0, &data, columnMap); - zephir_check_call_status(); - } - if ((zephir_method_exists_ex(&instance, ZEND_STRL("fireevent")) == SUCCESS)) { - ZEPHIR_INIT_VAR(&_25$$40); - ZVAL_STRING(&_25$$40, "afterFetch"); - ZEPHIR_CALL_METHOD(NULL, &instance, "fireevent", NULL, 0, &_25$$40); - zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("lazy"), &__$false); } - RETURN_CCTOR(&instance); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_Model, cloneResultMapHydrate) +static PHP_METHOD(Phalcon_Mvc_Micro_Collection, setPrefix) { - zend_bool _4$$7, _10$$16; - zend_string *_3; - zend_ulong _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_6 = NULL, *_9 = NULL, *_14 = NULL; - zend_long hydrationMode, ZEPHIR_LAST_CALL_STATUS; - zval *data_param = NULL, *columnMap, columnMap_sub, *hydrationMode_param = NULL, key, value, attribute, attributeName, *_0, _1, _5$$8, _7$$10, _8$$10, _11$$17, _12$$19, _13$$19; - zval data, hydrateArray; + zval *prefix_param = NULL; + zval prefix; zval *this_ptr = getThis(); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&hydrateArray); - ZVAL_UNDEF(&columnMap_sub); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&attribute); - ZVAL_UNDEF(&attributeName); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_5$$8); - ZVAL_UNDEF(&_7$$10); - ZVAL_UNDEF(&_8$$10); - ZVAL_UNDEF(&_11$$17); - ZVAL_UNDEF(&_12$$19); - ZVAL_UNDEF(&_13$$19); + ZVAL_UNDEF(&prefix); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_ARRAY(data) - Z_PARAM_ZVAL(columnMap) - Z_PARAM_LONG(hydrationMode) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(prefix) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &data_param, &columnMap, &hydrationMode_param); - ZEPHIR_OBS_COPY_OR_DUP(&data, data_param); - hydrationMode = zephir_get_intval(hydrationMode_param); - - - if (Z_TYPE_P(columnMap) != IS_ARRAY) { - if (hydrationMode == 1) { - RETURN_CTOR(&data); - } + zephir_fetch_params(1, 1, 0, &prefix_param); + if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); + RETURN_MM_NULL(); } - ZEPHIR_INIT_VAR(&hydrateArray); - array_init(&hydrateArray); - zephir_is_iterable(&data, 0, "phalcon/Mvc/Model.zep", 1013); - if (Z_TYPE_P(&data) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _2, _3, _0) - { - ZEPHIR_INIT_NVAR(&key); - if (_3 != NULL) { - ZVAL_STR_COPY(&key, _3); - } else { - ZVAL_LONG(&key, _2); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0); - if (Z_TYPE_P(&key) != IS_STRING) { - continue; - } - if (Z_TYPE_P(columnMap) == IS_ARRAY) { - _4$$7 = !(zephir_array_isset(columnMap, &key)); - if (_4$$7) { - _4$$7 = ZEPHIR_GLOBAL(orm).case_insensitive_column_map; - } - if (_4$$7) { - ZEPHIR_CALL_SELF(&_5$$8, "caseinsensitivecolumnmap", &_6, 431, columnMap, &key); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&key, &_5$$8); - } - ZEPHIR_OBS_NVAR(&attribute); - if (!(zephir_array_isset_fetch(&attribute, columnMap, &key, 0))) { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_7$$10); - object_init_ex(&_7$$10, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_8$$10); - ZEPHIR_CONCAT_SVS(&_8$$10, "Column '", &key, "' doesn't make part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_7$$10, "__construct", &_9, 8, &_8$$10); - zephir_check_call_status(); - zephir_throw_exception_debug(&_7$$10, "phalcon/Mvc/Model.zep", 992); - ZEPHIR_MM_RESTORE(); - return; - } - continue; - } - if (Z_TYPE_P(&attribute) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&attributeName); - zephir_array_fetch_long(&attributeName, &attribute, 0, PH_NOISY, "phalcon/Mvc/Model.zep", 1002); - } else { - ZEPHIR_CPY_WRT(&attributeName, &attribute); - } - zephir_array_update_zval(&hydrateArray, &attributeName, &value, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&hydrateArray, &key, &value, PH_COPY | PH_SEPARATE); - } - } ZEND_HASH_FOREACH_END(); + if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { + zephir_get_strval(&prefix, prefix_param); } else { - ZEPHIR_CALL_METHOD(NULL, &data, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &data, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&key, &data, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &data, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&key) != IS_STRING) { - continue; - } - if (Z_TYPE_P(columnMap) == IS_ARRAY) { - _10$$16 = !(zephir_array_isset(columnMap, &key)); - if (_10$$16) { - _10$$16 = ZEPHIR_GLOBAL(orm).case_insensitive_column_map; - } - if (_10$$16) { - ZEPHIR_CALL_SELF(&_11$$17, "caseinsensitivecolumnmap", &_6, 431, columnMap, &key); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&key, &_11$$17); - } - ZEPHIR_OBS_NVAR(&attribute); - if (!(zephir_array_isset_fetch(&attribute, columnMap, &key, 0))) { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_12$$19); - object_init_ex(&_12$$19, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_13$$19); - ZEPHIR_CONCAT_SVS(&_13$$19, "Column '", &key, "' doesn't make part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_12$$19, "__construct", &_9, 8, &_13$$19); - zephir_check_call_status(); - zephir_throw_exception_debug(&_12$$19, "phalcon/Mvc/Model.zep", 992); - ZEPHIR_MM_RESTORE(); - return; - } - continue; - } - if (Z_TYPE_P(&attribute) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&attributeName); - zephir_array_fetch_long(&attributeName, &attribute, 0, PH_NOISY, "phalcon/Mvc/Model.zep", 1002); - } else { - ZEPHIR_CPY_WRT(&attributeName, &attribute); - } - zephir_array_update_zval(&hydrateArray, &attributeName, &value, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&hydrateArray, &key, &value, PH_COPY | PH_SEPARATE); - } - ZEPHIR_CALL_METHOD(NULL, &data, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - if (hydrationMode != 1) { - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_helper_arr_ce, "toobject", &_14, 432, &hydrateArray); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_VAR(&prefix); } - RETURN_CTOR(&hydrateArray); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &prefix); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model, collectRelatedToSave) +static PHP_METHOD(Phalcon_Mvc_Micro_Collection, addMap) { - zend_bool _6$$3, _7$$6; - zend_string *_5; - zend_ulong _4; - zval related, dirtyRelated; - zval name, record, _0, _1, *_2, _3; + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval routePattern, name; + zval *method, method_sub, *routePattern_param = NULL, *handler, handler_sub, *name_param = NULL; zval *this_ptr = getThis(); + ZVAL_UNDEF(&method_sub); + ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&routePattern); ZVAL_UNDEF(&name); - ZVAL_UNDEF(&record); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&related); - ZVAL_UNDEF(&dirtyRelated); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(4, 4) + Z_PARAM_ZVAL(method) + Z_PARAM_STR(routePattern) + Z_PARAM_ZVAL(handler) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("related"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&related, &_0); - zephir_read_property(&_1, this_ptr, ZEND_STRL("dirtyRelated"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&dirtyRelated, &_1); - zephir_is_iterable(&related, 0, "phalcon/Mvc/Model.zep", 1053); - if (Z_TYPE_P(&related) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&related), _4, _5, _2) - { - ZEPHIR_INIT_NVAR(&name); - if (_5 != NULL) { - ZVAL_STR_COPY(&name, _5); - } else { - ZVAL_LONG(&name, _4); - } - ZEPHIR_INIT_NVAR(&record); - ZVAL_COPY(&record, _2); - if (zephir_array_isset(&dirtyRelated, &name)) { - continue; - } - _6$$3 = Z_TYPE_P(&record) != IS_OBJECT; - if (!(_6$$3)) { - _6$$3 = !((zephir_instance_of_ev(&record, phalcon_mvc_modelinterface_ce))); - } - if (_6$$3) { - continue; - } - zephir_array_update_zval(&dirtyRelated, &name, &record, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); + zephir_fetch_params(1, 4, 0, &method, &routePattern_param, &handler, &name_param); + if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { + zephir_get_strval(&routePattern, routePattern_param); } else { - ZEPHIR_CALL_METHOD(NULL, &related, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3, &related, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3)) { - break; - } - ZEPHIR_CALL_METHOD(&name, &related, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&record, &related, "current", NULL, 0); - zephir_check_call_status(); - if (zephir_array_isset(&dirtyRelated, &name)) { - continue; - } - _7$$6 = Z_TYPE_P(&record) != IS_OBJECT; - if (!(_7$$6)) { - _7$$6 = !((zephir_instance_of_ev(&record, phalcon_mvc_modelinterface_ce))); - } - if (_7$$6) { - continue; - } - zephir_array_update_zval(&dirtyRelated, &name, &record, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &related, "next", NULL, 0); - zephir_check_call_status(); - } + ZEPHIR_INIT_VAR(&routePattern); } - ZEPHIR_INIT_NVAR(&record); - ZEPHIR_INIT_NVAR(&name); - RETURN_CTOR(&dirtyRelated); + zephir_get_strval(&name, name_param); + + + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 4, 0); + zephir_array_fast_append(&_0, method); + zephir_array_fast_append(&_0, &routePattern); + zephir_array_fast_append(&_0, handler); + zephir_array_fast_append(&_0, &name); + zephir_update_property_array_append(this_ptr, SL("handlers"), &_0); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model, count) +zend_object *zephir_init_properties_Phalcon_Mvc_Micro_Collection(zend_class_entry *class_type) { + zval _0, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *parameters = NULL, parameters_sub, __$null, result, _0, _1; - zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + - ZVAL_UNDEF(¶meters_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(parameters) - ZEND_PARSE_PARAMETERS_END(); + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("handlers"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("handlers"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, ¶meters); - if (!parameters) { - parameters = ¶meters_sub; - parameters = &__$null; - } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "COUNT"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "rowcount"); - ZEPHIR_CALL_SELF(&result, "groupresult", NULL, 0, &_0, &_1, parameters); - zephir_check_call_status(); - if (Z_TYPE_P(&result) == IS_STRING) { - RETURN_MM_LONG(zephir_get_intval(&result)); - } - RETURN_CCTOR(&result); + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Micro_CollectionInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Micro, CollectionInterface, phalcon, mvc_micro_collectioninterface, phalcon_mvc_micro_collectioninterface_method_entry); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model, create) +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, delete); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, get); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, getHandler); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, getHandlers); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, getPrefix); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, head); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, isLazy); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, map); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, options); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, patch); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, post); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, put); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, setHandler); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, setLazy); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, setPrefix); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Micro_Exception) { - zval _2$$3; - zval metaData, _0, _1, _3$$3, _4$$3, _5$$3, _6$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Micro, Exception, phalcon, mvc_micro_exception, phalcon_exception_ce, NULL, 0); - ZVAL_UNDEF(&metaData); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_2$$3); + return SUCCESS; +} - ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getwriteconnection", NULL, 433); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "exists", NULL, 0, &metaData, &_1); - zephir_check_call_status(); - if (zephir_is_true(&_0)) { - ZEPHIR_INIT_VAR(&_2$$3); - zephir_create_array(&_2$$3, 1, 0); - ZEPHIR_INIT_VAR(&_3$$3); - object_init_ex(&_3$$3, phalcon_messages_message_ce); - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "Record cannot be created because it already exists"); - ZVAL_NULL(&_5$$3); - ZEPHIR_INIT_VAR(&_6$$3); - ZVAL_STRING(&_6$$3, "InvalidCreateAttempt"); - ZEPHIR_CALL_METHOD(NULL, &_3$$3, "__construct", NULL, 6, &_4$$3, &_5$$3, &_6$$3); - zephir_check_call_status(); - zephir_array_fast_append(&_2$$3, &_3$$3); - zephir_update_property_zval(this_ptr, ZEND_STRL("errorMessages"), &_2$$3); - RETURN_MM_BOOL(0); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "save", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Micro_LazyLoader) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Micro, LazyLoader, phalcon, mvc_micro_lazyloader, phalcon_mvc_micro_lazyloader_method_entry, 0); + + zend_declare_property_null(phalcon_mvc_micro_lazyloader_ce, SL("handler"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_mvc_micro_lazyloader_ce, SL("definition"), ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model, delete) +static PHP_METHOD(Phalcon_Mvc_Micro_LazyLoader, getHandler) { - zval values, bindTypes, conditions; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval __$true, __$false, metaData, writeConnection, primaryKeys, bindDataTypes, columnMap, attributeField, primaryKey, bindType, value, schema, source, table, success, _0, _1, *_3, _4, _27, _2$$3, _5$$9, _6$$9, _8$$11, _9$$11, _10$$13, _11$$13, _12$$8, _14$$8, _15$$15, _16$$15, _17$$17, _18$$17, _19$$19, _20$$19, _21$$14, _23$$14, _24$$20, _25$$20, _26$$20, _28$$25, _29$$28; - zephir_fcall_cache_entry *_7 = NULL, *_13 = NULL, *_22 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&metaData); - ZVAL_UNDEF(&writeConnection); - ZVAL_UNDEF(&primaryKeys); - ZVAL_UNDEF(&bindDataTypes); - ZVAL_UNDEF(&columnMap); - ZVAL_UNDEF(&attributeField); - ZVAL_UNDEF(&primaryKey); - ZVAL_UNDEF(&bindType); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&success); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_27); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_5$$9); - ZVAL_UNDEF(&_6$$9); - ZVAL_UNDEF(&_8$$11); - ZVAL_UNDEF(&_9$$11); - ZVAL_UNDEF(&_10$$13); - ZVAL_UNDEF(&_11$$13); - ZVAL_UNDEF(&_12$$8); - ZVAL_UNDEF(&_14$$8); - ZVAL_UNDEF(&_15$$15); - ZVAL_UNDEF(&_16$$15); - ZVAL_UNDEF(&_17$$17); - ZVAL_UNDEF(&_18$$17); - ZVAL_UNDEF(&_19$$19); - ZVAL_UNDEF(&_20$$19); - ZVAL_UNDEF(&_21$$14); - ZVAL_UNDEF(&_23$$14); - ZVAL_UNDEF(&_24$$20); - ZVAL_UNDEF(&_25$$20); - ZVAL_UNDEF(&_26$$20); - ZVAL_UNDEF(&_28$$25); - ZVAL_UNDEF(&_29$$28); - ZVAL_UNDEF(&values); - ZVAL_UNDEF(&bindTypes); - ZVAL_UNDEF(&conditions); - - ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&writeConnection, this_ptr, "getwriteconnection", NULL, 433); - zephir_check_call_status(); - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, 3); - zephir_update_property_zval(this_ptr, ZEND_STRL("operationMade"), &_0); - ZEPHIR_INIT_VAR(&_1); - array_init(&_1); - zephir_update_property_zval(this_ptr, ZEND_STRL("errorMessages"), &_1); - if (ZEPHIR_GLOBAL(orm).virtual_foreign_keys) { - ZEPHIR_CALL_METHOD(&_2$$3, this_ptr, "checkforeignkeysreverserestrict", NULL, 434); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_2$$3)) { - RETURN_MM_BOOL(0); - } - } - ZEPHIR_INIT_VAR(&values); - array_init(&values); - ZEPHIR_INIT_VAR(&bindTypes); - array_init(&bindTypes); - ZEPHIR_INIT_VAR(&conditions); - array_init(&conditions); - ZEPHIR_CALL_METHOD(&primaryKeys, &metaData, "getprimarykeyattributes", NULL, 0, this_ptr); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&bindDataTypes, &metaData, "getbindtypes", NULL, 0, this_ptr); - zephir_check_call_status(); - if (ZEPHIR_GLOBAL(orm).column_renaming) { - ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getcolumnmap", NULL, 0, this_ptr); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&columnMap); - ZVAL_NULL(&columnMap); - } - if (UNEXPECTED(!(zephir_fast_count_int(&primaryKeys)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A primary key must be defined in the model in order to perform the operation", "phalcon/Mvc/Model.zep", 1206); - return; - } - zephir_is_iterable(&primaryKeys, 0, "phalcon/Mvc/Model.zep", 1254); - if (Z_TYPE_P(&primaryKeys) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&primaryKeys), _3) - { - ZEPHIR_INIT_NVAR(&primaryKey); - ZVAL_COPY(&primaryKey, _3); - ZEPHIR_OBS_NVAR(&bindType); - if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, &bindDataTypes, &primaryKey, 0)))) { - ZEPHIR_INIT_NVAR(&_5$$9); - object_init_ex(&_5$$9, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_6$$9); - ZEPHIR_CONCAT_SVS(&_6$$9, "Column '", &primaryKey, "' have not defined a bind data type"); - ZEPHIR_CALL_METHOD(NULL, &_5$$9, "__construct", &_7, 8, &_6$$9); - zephir_check_call_status(); - zephir_throw_exception_debug(&_5$$9, "phalcon/Mvc/Model.zep", 1220); - ZEPHIR_MM_RESTORE(); - return; - } - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&attributeField); - if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &primaryKey, 0)))) { - ZEPHIR_INIT_NVAR(&_8$$11); - object_init_ex(&_8$$11, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_9$$11); - ZEPHIR_CONCAT_SVS(&_9$$11, "Column '", &primaryKey, "' isn't part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_8$$11, "__construct", &_7, 8, &_9$$11); - zephir_check_call_status(); - zephir_throw_exception_debug(&_8$$11, "phalcon/Mvc/Model.zep", 1230); - ZEPHIR_MM_RESTORE(); - return; - } - } else { - ZEPHIR_CPY_WRT(&attributeField, &primaryKey); - } - ZEPHIR_OBS_NVAR(&value); - if (UNEXPECTED(!(zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)))) { - ZEPHIR_INIT_NVAR(&_10$$13); - object_init_ex(&_10$$13, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_11$$13); - ZEPHIR_CONCAT_SVS(&_11$$13, "Cannot delete the record because the primary key attribute: '", &attributeField, "' wasn't set"); - ZEPHIR_CALL_METHOD(NULL, &_10$$13, "__construct", &_7, 8, &_11$$13); - zephir_check_call_status(); - zephir_throw_exception_debug(&_10$$13, "phalcon/Mvc/Model.zep", 1243); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1249); - ZEPHIR_CALL_METHOD(&_12$$8, &writeConnection, "escapeidentifier", &_13, 0, &primaryKey); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_14$$8); - ZEPHIR_CONCAT_VS(&_14$$8, &_12$$8, " = ?"); - zephir_array_append(&conditions, &_14$$8, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1250); - zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1251); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &primaryKeys, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_4, &primaryKeys, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_4)) { - break; - } - ZEPHIR_CALL_METHOD(&primaryKey, &primaryKeys, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&bindType); - if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, &bindDataTypes, &primaryKey, 0)))) { - ZEPHIR_INIT_NVAR(&_15$$15); - object_init_ex(&_15$$15, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_16$$15); - ZEPHIR_CONCAT_SVS(&_16$$15, "Column '", &primaryKey, "' have not defined a bind data type"); - ZEPHIR_CALL_METHOD(NULL, &_15$$15, "__construct", &_7, 8, &_16$$15); - zephir_check_call_status(); - zephir_throw_exception_debug(&_15$$15, "phalcon/Mvc/Model.zep", 1220); - ZEPHIR_MM_RESTORE(); - return; - } - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&attributeField); - if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &primaryKey, 0)))) { - ZEPHIR_INIT_NVAR(&_17$$17); - object_init_ex(&_17$$17, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_18$$17); - ZEPHIR_CONCAT_SVS(&_18$$17, "Column '", &primaryKey, "' isn't part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_17$$17, "__construct", &_7, 8, &_18$$17); - zephir_check_call_status(); - zephir_throw_exception_debug(&_17$$17, "phalcon/Mvc/Model.zep", 1230); - ZEPHIR_MM_RESTORE(); - return; - } - } else { - ZEPHIR_CPY_WRT(&attributeField, &primaryKey); - } - ZEPHIR_OBS_NVAR(&value); - if (UNEXPECTED(!(zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)))) { - ZEPHIR_INIT_NVAR(&_19$$19); - object_init_ex(&_19$$19, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_20$$19); - ZEPHIR_CONCAT_SVS(&_20$$19, "Cannot delete the record because the primary key attribute: '", &attributeField, "' wasn't set"); - ZEPHIR_CALL_METHOD(NULL, &_19$$19, "__construct", &_7, 8, &_20$$19); - zephir_check_call_status(); - zephir_throw_exception_debug(&_19$$19, "phalcon/Mvc/Model.zep", 1243); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1249); - ZEPHIR_CALL_METHOD(&_21$$14, &writeConnection, "escapeidentifier", &_22, 0, &primaryKey); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_23$$14); - ZEPHIR_CONCAT_VS(&_23$$14, &_21$$14, " = ?"); - zephir_array_append(&conditions, &_23$$14, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1250); - zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1251); - ZEPHIR_CALL_METHOD(NULL, &primaryKeys, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&primaryKey); - if (ZEPHIR_GLOBAL(orm).events) { - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("skipped"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("skipped"), &__$false); - } - ZEPHIR_INIT_VAR(&_25$$20); - ZVAL_STRING(&_25$$20, "beforeDelete"); - ZEPHIR_CALL_METHOD(&_24$$20, this_ptr, "fireeventcancel", NULL, 0, &_25$$20); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_24$$20)) { - RETURN_MM_BOOL(0); - } - zephir_read_property(&_26$$20, this_ptr, ZEND_STRL("skipped"), PH_NOISY_CC | PH_READONLY); - if (ZEPHIR_IS_TRUE_IDENTICAL(&_26$$20)) { - RETURN_MM_BOOL(1); - } - } - ZEPHIR_CALL_METHOD(&schema, this_ptr, "getschema", NULL, 435); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&source, this_ptr, "getsource", NULL, 436); - zephir_check_call_status(); - if (zephir_is_true(&schema)) { - ZEPHIR_INIT_VAR(&table); - zephir_create_array(&table, 2, 0); - zephir_array_fast_append(&table, &schema); - zephir_array_fast_append(&table, &source); - } else { - ZEPHIR_CPY_WRT(&table, &source); - } - ZEPHIR_INIT_VAR(&_27); - zephir_fast_join_str(&_27, SL(" AND "), &conditions); - ZEPHIR_CALL_METHOD(&success, &writeConnection, "delete", NULL, 0, &table, &_27, &values, &bindTypes); - zephir_check_call_status(); - if (ZEPHIR_GLOBAL(orm).virtual_foreign_keys) { - ZEPHIR_CALL_METHOD(&_28$$25, this_ptr, "checkforeignkeysreversecascade", NULL, 437); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_28$$25)) { - RETURN_MM_BOOL(0); - } - } - if (ZEPHIR_GLOBAL(orm).events) { - if (zephir_is_true(&success)) { - ZEPHIR_INIT_VAR(&_29$$28); - ZVAL_STRING(&_29$$28, "afterDelete"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_29$$28); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, 2); - zephir_update_property_zval(this_ptr, ZEND_STRL("dirtyState"), &_0); - RETURN_CCTOR(&success); + RETURN_MEMBER(getThis(), "handler"); } -static PHP_METHOD(Phalcon_Mvc_Model, dump) +static PHP_METHOD(Phalcon_Mvc_Micro_LazyLoader, getDefinition) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZEPHIR_MM_GROW(); - - ZEPHIR_RETURN_CALL_FUNCTION("get_object_vars", NULL, 438, this_ptr); - zephir_check_call_status(); - RETURN_MM(); + RETURN_MEMBER(getThis(), "definition"); } -static PHP_METHOD(Phalcon_Mvc_Model, find) +static PHP_METHOD(Phalcon_Mvc_Micro_LazyLoader, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *parameters = NULL, parameters_sub, __$null, params, query, resultset, hydration; + zval *definition_param = NULL; + zval definition; zval *this_ptr = getThis(); - ZVAL_UNDEF(¶meters_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(¶ms); - ZVAL_UNDEF(&query); - ZVAL_UNDEF(&resultset); - ZVAL_UNDEF(&hydration); + ZVAL_UNDEF(&definition); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(parameters) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(definition) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, ¶meters); - if (!parameters) { - parameters = ¶meters_sub; - parameters = &__$null; + zephir_fetch_params(1, 1, 0, &definition_param); + if (UNEXPECTED(Z_TYPE_P(definition_param) != IS_STRING && Z_TYPE_P(definition_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'definition' must be of the type string")); + RETURN_MM_NULL(); } - - - if (Z_TYPE_P(parameters) != IS_ARRAY) { - ZEPHIR_INIT_VAR(¶ms); - array_init(¶ms); - if (Z_TYPE_P(parameters) != IS_NULL) { - zephir_array_append(¶ms, parameters, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1515); - } + if (EXPECTED(Z_TYPE_P(definition_param) == IS_STRING)) { + zephir_get_strval(&definition, definition_param); } else { - ZEPHIR_CPY_WRT(¶ms, parameters); - } - ZEPHIR_CALL_STATIC(&query, "getpreparedquery", &_0, 439, ¶ms); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&resultset, &query, "execute", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&resultset) == IS_OBJECT) { - ZEPHIR_OBS_VAR(&hydration); - if (zephir_array_isset_string_fetch(&hydration, ¶ms, SL("hydration"), 0)) { - ZEPHIR_CALL_METHOD(NULL, &resultset, "sethydratemode", NULL, 0, &hydration); - zephir_check_call_status(); - } + ZEPHIR_INIT_VAR(&definition); } - RETURN_CCTOR(&resultset); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("definition"), &definition); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model, findFirst) +static PHP_METHOD(Phalcon_Mvc_Micro_LazyLoader, callMethod) { - zend_bool _0; + zval _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_2 = NULL; - zval *parameters = NULL, parameters_sub, __$null, params, query, _3, _1$$5; + zval *method_param = NULL, *arguments = NULL, arguments_sub, *modelBinder = NULL, modelBinder_sub, __$null, handler, definition, bindCacheKey, _0, _1$$4, _2$$4, _3$$5; + zval method; zval *this_ptr = getThis(); - ZVAL_UNDEF(¶meters_sub); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&arguments_sub); + ZVAL_UNDEF(&modelBinder_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(¶ms); - ZVAL_UNDEF(&query); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_1$$5); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(parameters) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, ¶meters); - if (!parameters) { - parameters = ¶meters_sub; - parameters = &__$null; - } - - - _0 = Z_TYPE_P(parameters) == IS_STRING; - if (!(_0)) { - _0 = zephir_is_numeric(parameters); - } - if (Z_TYPE_P(parameters) == IS_NULL) { - ZEPHIR_INIT_VAR(¶ms); - array_init(¶ms); - } else if (Z_TYPE_P(parameters) == IS_ARRAY) { - ZEPHIR_CPY_WRT(¶ms, parameters); - } else if (_0) { - ZEPHIR_INIT_VAR(&_1$$5); - zephir_create_array(&_1$$5, 1, 0); - zephir_array_fast_append(&_1$$5, parameters); - ZEPHIR_CPY_WRT(¶ms, &_1$$5); - } else { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Parameters passed must be of type array, string, numeric or null", "phalcon/Mvc/Model.zep", 1637); - return; - } - ZVAL_LONG(&_3, 1); - ZEPHIR_CALL_STATIC(&query, "getpreparedquery", &_2, 439, ¶ms, &_3); - zephir_check_call_status(); - ZVAL_BOOL(&_3, 1); - ZEPHIR_CALL_METHOD(NULL, &query, "setuniquerow", NULL, 0, &_3); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&query, "execute", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Mvc_Model, fireEvent) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *eventName_param = NULL, _0; - zval eventName; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&eventName); + ZVAL_UNDEF(&handler); + ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&bindCacheKey); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(eventName) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(method) + Z_PARAM_ZVAL(arguments) + Z_PARAM_OPTIONAL + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(modelBinder, phalcon_mvc_model_binderinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &eventName_param); - if (UNEXPECTED(Z_TYPE_P(eventName_param) != IS_STRING && Z_TYPE_P(eventName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventName' must be of the type string")); + zephir_fetch_params(1, 2, 1, &method_param, &arguments, &modelBinder); + if (UNEXPECTED(Z_TYPE_P(method_param) != IS_STRING && Z_TYPE_P(method_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'method' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(eventName_param) == IS_STRING)) { - zephir_get_strval(&eventName, eventName_param); + if (EXPECTED(Z_TYPE_P(method_param) == IS_STRING)) { + zephir_get_strval(&method, method_param); } else { - ZEPHIR_INIT_VAR(&eventName); + ZEPHIR_INIT_VAR(&method); } - - - if ((zephir_method_exists(this_ptr, &eventName) == SUCCESS)) { - ZEPHIR_CALL_METHOD_ZVAL(NULL, this_ptr, &eventName, NULL, 0); - zephir_check_call_status(); + ZEPHIR_SEPARATE_PARAM(arguments); + if (!modelBinder) { + modelBinder = &modelBinder_sub; + modelBinder = &__$null; } - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "notifyevent", NULL, 0, &eventName, this_ptr); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Mvc_Model, fireEventCancel) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *eventName_param = NULL, _0$$3, _1; - zval eventName; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&eventName); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(eventName) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &eventName_param); - if (UNEXPECTED(Z_TYPE_P(eventName_param) != IS_STRING && Z_TYPE_P(eventName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(eventName_param) == IS_STRING)) { - zephir_get_strval(&eventName, eventName_param); - } else { - ZEPHIR_INIT_VAR(&eventName); + zephir_read_property(&_0, this_ptr, ZEND_STRL("handler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&handler, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("definition"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&definition, &_0); + if (Z_TYPE_P(&handler) != IS_OBJECT) { + if (!(zephir_class_exists(&definition, 1))) { + ZEPHIR_INIT_VAR(&_1$$4); + object_init_ex(&_1$$4, phalcon_mvc_micro_exception_ce); + ZEPHIR_INIT_VAR(&_2$$4); + ZEPHIR_CONCAT_SVS(&_2$$4, "Handler '", &definition, "' doesn't exist"); + ZEPHIR_CALL_METHOD(NULL, &_1$$4, "__construct", NULL, 8, &_2$$4); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$4, "phalcon/Mvc/Micro/LazyLoader.zep", 55); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_NVAR(&handler); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(&handler, &definition); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("handler"), &handler); } - - - if ((zephir_method_exists(this_ptr, &eventName) == SUCCESS)) { - ZEPHIR_CALL_METHOD_ZVAL(&_0$$3, this_ptr, &eventName, NULL, 0); + if (Z_TYPE_P(modelBinder) != IS_NULL) { + ZEPHIR_INIT_VAR(&bindCacheKey); + ZEPHIR_CONCAT_SVSV(&bindCacheKey, "_PHMB_", &definition, "_", &method); + ZEPHIR_CALL_METHOD(&_3$$5, modelBinder, "bindtohandler", NULL, 0, &handler, arguments, &bindCacheKey, &method); zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_0$$3)) { - RETURN_MM_BOOL(0); - } + ZEPHIR_CPY_WRT(arguments, &_3$$5); } - zephir_read_property(&_1, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_1, "notifyevent", NULL, 0, &eventName, this_ptr); + ZEPHIR_INIT_VAR(&_4); + zephir_create_array(&_4, 2, 0); + zephir_array_fast_append(&_4, &handler); + zephir_array_fast_append(&_4, &method); + ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, &_4, arguments); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model, getChangedFields) -{ - zend_string *_5; - zend_ulong _4; - zval changed; - zval metaData, name, snapshot, columnMap, allAttributes, value, _0, _1, *_2, _3, _6$$6, _7$$10; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&metaData); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&snapshot); - ZVAL_UNDEF(&columnMap); - ZVAL_UNDEF(&allAttributes); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_6$$6); - ZVAL_UNDEF(&_7$$10); - ZVAL_UNDEF(&changed); - ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("snapshot"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&snapshot, &_0); - if (UNEXPECTED(Z_TYPE_P(&snapshot) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The 'keepSnapshots' option must be enabled to track changes", "phalcon/Mvc/Model.zep", 1723); - return; - } - ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getreversecolumnmap", NULL, 0, this_ptr); - zephir_check_call_status(); - if (Z_TYPE_P(&columnMap) != IS_ARRAY) { - ZEPHIR_CALL_METHOD(&allAttributes, &metaData, "getdatatypes", NULL, 0, this_ptr); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(&allAttributes, &columnMap); - } - ZEPHIR_INIT_VAR(&changed); - array_init(&changed); - ZEPHIR_INIT_VAR(&_1); - zephir_is_iterable(&allAttributes, 0, "phalcon/Mvc/Model.zep", 1781); - if (Z_TYPE_P(&allAttributes) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&allAttributes), _4, _5, _2) - { - ZEPHIR_INIT_NVAR(&name); - if (_5 != NULL) { - ZVAL_STR_COPY(&name, _5); - } else { - ZVAL_LONG(&name, _4); - } - ZEPHIR_INIT_NVAR(&_1); - ZVAL_COPY(&_1, _2); - if (!(zephir_array_isset(&snapshot, &name))) { - zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1756); - continue; - } - ZEPHIR_OBS_NVAR(&value); - if (!(zephir_fetch_property_zval(&value, this_ptr, &name, PH_SILENT_CC))) { - zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1766); - continue; - } - zephir_array_fetch(&_6$$6, &snapshot, &name, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 1774); - if (!ZEPHIR_IS_IDENTICAL(&value, &_6$$6)) { - zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1775); - continue; - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &allAttributes, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3, &allAttributes, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3)) { - break; - } - ZEPHIR_CALL_METHOD(&name, &allAttributes, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, &allAttributes, "current", NULL, 0); - zephir_check_call_status(); - if (!(zephir_array_isset(&snapshot, &name))) { - zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1756); - continue; - } - ZEPHIR_OBS_NVAR(&value); - if (!(zephir_fetch_property_zval(&value, this_ptr, &name, PH_SILENT_CC))) { - zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1766); - continue; - } - zephir_array_fetch(&_7$$10, &snapshot, &name, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 1774); - if (!ZEPHIR_IS_IDENTICAL(&value, &_7$$10)) { - zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1775); - continue; - } - ZEPHIR_CALL_METHOD(NULL, &allAttributes, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&_1); - ZEPHIR_INIT_NVAR(&name); - RETURN_CTOR(&changed); -} +#ifdef HAVE_CONFIG_H +#endif -static PHP_METHOD(Phalcon_Mvc_Model, getDirtyState) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "dirtyState"); -} -static PHP_METHOD(Phalcon_Mvc_Model, getEventsManager) +ZEPHIR_INIT_CLASS(Phalcon_Mvc_Micro_MiddlewareInterface) { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Micro, MiddlewareInterface, phalcon, mvc_micro_middlewareinterface, phalcon_mvc_micro_middlewareinterface_method_entry); + return SUCCESS; +} - ZEPHIR_MM_GROW(); +ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_MiddlewareInterface, call); - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "getcustomeventsmanager", NULL, 0, this_ptr); - zephir_check_call_status(); - RETURN_MM(); -} -static PHP_METHOD(Phalcon_Mvc_Model, getMessages) -{ - zend_bool _0; - zval filtered; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *filter = NULL, filter_sub, __$null, message, _1$$3, *_2$$3, _3$$3, _4$$4, _5$$6; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&filter_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&filtered); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(filter) - ZEND_PARSE_PARAMETERS_END(); +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &filter); - if (!filter) { - filter = &filter_sub; - filter = &__$null; - } - _0 = Z_TYPE_P(filter) == IS_STRING; - if (_0) { - _0 = !(ZEPHIR_IS_EMPTY(filter)); - } - if (_0) { - ZEPHIR_INIT_VAR(&filtered); - array_init(&filtered); - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("errorMessages"), PH_NOISY_CC | PH_READONLY); - zephir_is_iterable(&_1$$3, 0, "phalcon/Mvc/Model.zep", 1838); - if (Z_TYPE_P(&_1$$3) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_1$$3), _2$$3) - { - ZEPHIR_INIT_NVAR(&message); - ZVAL_COPY(&message, _2$$3); - ZEPHIR_CALL_METHOD(&_4$$4, &message, "getfield", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_EQUAL(&_4$$4, filter)) { - zephir_array_append(&filtered, &message, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1834); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3$$3, &_1$$3, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&message, &_1$$3, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_5$$6, &message, "getfield", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_EQUAL(&_5$$6, filter)) { - zephir_array_append(&filtered, &message, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1834); - } - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&message); - RETURN_CTOR(&filtered); - } - RETURN_MM_MEMBER(getThis(), "errorMessages"); -} -static PHP_METHOD(Phalcon_Mvc_Model, getModelsManager) +ZEPHIR_INIT_CLASS(Phalcon_Escaper_EscaperInterface) { - zval *this_ptr = getThis(); - - + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Escaper, EscaperInterface, phalcon, escaper_escaperinterface, phalcon_escaper_escaperinterface_method_entry); - RETURN_MEMBER(getThis(), "modelsManager"); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model, getModelsMetaData) -{ - zval metaData, container, _0$$3, _1$$3, _2$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&metaData); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); +ZEPHIR_DOC_METHOD(Phalcon_Escaper_EscaperInterface, escapeCss); +ZEPHIR_DOC_METHOD(Phalcon_Escaper_EscaperInterface, escapeHtml); +ZEPHIR_DOC_METHOD(Phalcon_Escaper_EscaperInterface, escapeHtmlAttr); +ZEPHIR_DOC_METHOD(Phalcon_Escaper_EscaperInterface, escapeJs); +ZEPHIR_DOC_METHOD(Phalcon_Escaper_EscaperInterface, escapeUrl); +ZEPHIR_DOC_METHOD(Phalcon_Escaper_EscaperInterface, getEncoding); +ZEPHIR_DOC_METHOD(Phalcon_Escaper_EscaperInterface, setEncoding); +ZEPHIR_DOC_METHOD(Phalcon_Escaper_EscaperInterface, setHtmlQuoteType); - ZEPHIR_MM_GROW(); - ZEPHIR_OBS_VAR(&metaData); - zephir_read_property(&metaData, this_ptr, ZEND_STRL("modelsMetaData"), PH_NOISY_CC); - if (Z_TYPE_P(&metaData) != IS_OBJECT) { - zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0$$3); - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "modelsMetadata"); - ZEPHIR_CALL_METHOD(&_1$$3, &container, "getshared", NULL, 0, &_2$$3); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&metaData, &_1$$3); - if (UNEXPECTED(Z_TYPE_P(&metaData) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The injected service 'modelsMetadata' is not valid", "phalcon/Mvc/Model.zep", 1872); - return; - } - zephir_update_property_zval(this_ptr, ZEND_STRL("modelsMetaData"), &metaData); - } - RETURN_CCTOR(&metaData); -} +#ifdef HAVE_CONFIG_H +#endif -static PHP_METHOD(Phalcon_Mvc_Model, getOperationMade) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "operationMade"); -} -static PHP_METHOD(Phalcon_Mvc_Model, getOldSnapshotData) +ZEPHIR_INIT_CLASS(Phalcon_Escaper_Exception) { - zval *this_ptr = getThis(); - - + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Escaper, Exception, phalcon, escaper_exception, phalcon_exception_ce, NULL, 0); - RETURN_MEMBER(getThis(), "oldSnapshot"); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model, getReadConnection) -{ - zval transaction, _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&transaction); - ZVAL_UNDEF(&_0); - ZEPHIR_MM_GROW(); +#ifdef HAVE_CONFIG_H +#endif - zephir_read_property(&_0, this_ptr, ZEND_STRL("transaction"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&transaction, &_0); - if (Z_TYPE_P(&transaction) == IS_OBJECT) { - ZEPHIR_RETURN_CALL_METHOD(&transaction, "getconnection", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "getreadconnection", NULL, 0, this_ptr); - zephir_check_call_status(); - RETURN_MM(); -} -static PHP_METHOD(Phalcon_Mvc_Model, getReadConnectionService) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZEPHIR_MM_GROW(); +ZEPHIR_INIT_CLASS(Phalcon_Url_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Url, Exception, phalcon, url_exception, phalcon_exception_ce, NULL, 0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "getreadconnectionservice", NULL, 0, this_ptr); - zephir_check_call_status(); - RETURN_MM(); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model, getRelated) -{ - zend_bool _5$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *alias_param = NULL, *arguments = NULL, arguments_sub, __$null, relation, className, manager, result, lowerAlias, _0, _1, _2$$3, _3$$3, _4$$4, _6$$4, _7$$5; - zval alias; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&alias); - ZVAL_UNDEF(&arguments_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&relation); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&lowerAlias); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$5); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(alias) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(arguments) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &alias_param, &arguments); - zephir_get_strval(&alias, alias_param); - if (!arguments) { - arguments = &arguments_sub; - arguments = &__$null; - } - ZEPHIR_INIT_VAR(&className); - zephir_get_class(&className, this_ptr, 0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&manager, &_0); - ZEPHIR_INIT_VAR(&lowerAlias); - zephir_fast_strtolower(&lowerAlias, &alias); - ZEPHIR_CALL_METHOD(&_1, &manager, "getrelationbyalias", NULL, 0, &className, &lowerAlias); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&relation, &_1); - if (UNEXPECTED(Z_TYPE_P(&relation) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_2$$3); - object_init_ex(&_2$$3, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_3$$3); - ZEPHIR_CONCAT_SVSVS(&_3$$3, "There is no defined relations for the model '", &className, "' using alias '", &alias, "'"); - ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", NULL, 8, &_3$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_2$$3, "phalcon/Mvc/Model.zep", 1951); - ZEPHIR_MM_RESTORE(); - return; - } - if (Z_TYPE_P(arguments) == IS_NULL) { - ZEPHIR_CALL_METHOD(&_4$$4, &relation, "isreusable", NULL, 0); - zephir_check_call_status(); - _5$$4 = zephir_is_true(&_4$$4); - if (_5$$4) { - ZEPHIR_CALL_METHOD(&_6$$4, this_ptr, "isrelationshiploaded", NULL, 0, &lowerAlias); - zephir_check_call_status(); - _5$$4 = zephir_is_true(&_6$$4); - } - if (_5$$4) { - zephir_read_property(&_7$$5, this_ptr, ZEND_STRL("related"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_OBS_VAR(&result); - zephir_array_fetch(&result, &_7$$5, &lowerAlias, PH_NOISY, "phalcon/Mvc/Model.zep", 1963); - } else { - ZEPHIR_CALL_METHOD(&result, &manager, "getrelationrecords", NULL, 0, &relation, this_ptr, arguments); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("related"), &lowerAlias, &result); - } - } else { - ZEPHIR_CALL_METHOD(&result, &manager, "getrelationrecords", NULL, 0, &relation, this_ptr, arguments); - zephir_check_call_status(); - } - RETURN_CCTOR(&result); -} -static PHP_METHOD(Phalcon_Mvc_Model, isRelationshipLoaded) +ZEPHIR_INIT_CLASS(Phalcon_Url_UrlInterface) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *relationshipAlias_param = NULL, _0, _1; - zval relationshipAlias; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Url, UrlInterface, phalcon, url_urlinterface, phalcon_url_urlinterface_method_entry); - ZVAL_UNDEF(&relationshipAlias); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(relationshipAlias) - ZEND_PARSE_PARAMETERS_END(); -#endif + return SUCCESS; +} +ZEPHIR_DOC_METHOD(Phalcon_Url_UrlInterface, get); +ZEPHIR_DOC_METHOD(Phalcon_Url_UrlInterface, getBasePath); +ZEPHIR_DOC_METHOD(Phalcon_Url_UrlInterface, getBaseUri); +ZEPHIR_DOC_METHOD(Phalcon_Url_UrlInterface, setBasePath); +ZEPHIR_DOC_METHOD(Phalcon_Url_UrlInterface, setBaseUri); +ZEPHIR_DOC_METHOD(Phalcon_Url_UrlInterface, path); - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &relationshipAlias_param); - zephir_get_strval(&relationshipAlias, relationshipAlias_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("related"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - zephir_fast_strtolower(&_1, &relationshipAlias); - RETURN_MM_BOOL(zephir_array_isset(&_0, &_1)); -} -static PHP_METHOD(Phalcon_Mvc_Model, getSchema) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); +#ifdef HAVE_CONFIG_H +#endif - ZVAL_UNDEF(&_0); - ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "getmodelschema", NULL, 0, this_ptr); - zephir_check_call_status(); - RETURN_MM(); -} -static PHP_METHOD(Phalcon_Mvc_Model, getSnapshotData) +static void phalcon_get_uri(zval *return_value, zval *path) { - zval *this_ptr = getThis(); + int i, found = 0, mark = 0; + char *cursor, *str, ch; + if (Z_TYPE_P(path) != IS_STRING) { + RETURN_EMPTY_STRING(); + } + if (Z_STRLEN_P(path) > 0) { + cursor = Z_STRVAL_P(path) + Z_STRLEN_P(path) - 1; + for (i = Z_STRLEN_P(path); i > 0; i--) { + ch = *cursor; + if (ch == '/' || ch == '\\') { + found++; + if (found == 1) { + mark = i - 1; + } else { + str = emalloc(mark - i + 1); + memcpy(str, Z_STRVAL_P(path) + i, mark - i); + str[mark - i] = '\0'; + ZVAL_STRINGL(return_value, str, mark - i); + return; + } + } + cursor--; + } + } - RETURN_MEMBER(getThis(), "snapshot"); + RETURN_EMPTY_STRING(); } -static PHP_METHOD(Phalcon_Mvc_Model, getSource) +zval *phalcon_replace_marker(int named, zval *paths, zval *replacements, unsigned long *position, char *cursor, char *marker) { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); + unsigned int length = 0, variable_length, ch, j; + char *item = NULL, *cursor_var, *variable = NULL; + int not_valid = 0; + zval *zv, *tmp; - ZVAL_UNDEF(&_0); + if (named) { + length = cursor - marker - 1; + item = estrndup(marker + 1, length); + cursor_var = item; + marker = item; + for (j = 0; j < length; j++) { + ch = *cursor_var; + if (ch == '\0') { + not_valid = 1; + break; + } + if (j == 0 && !((ch >= 'a' && ch <='z') || (ch >= 'A' && ch <= 'Z'))){ + not_valid = 1; + break; + } + if ((ch >= 'a' && ch <='z') || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9') || ch == '-' || ch == '_' || ch == ':') { + if (ch == ':') { + variable_length = cursor_var - marker; + variable = estrndup(marker, variable_length); + break; + } + } else { + not_valid = 1; + break; + } + cursor_var++; + } + } + if (!not_valid) { - ZEPHIR_MM_GROW(); + if (zend_hash_index_exists(Z_ARRVAL_P(paths), *position)) { + if (named) { + if (variable) { + efree(item); + item = variable; + length = variable_length; + } + if (zend_hash_str_exists(Z_ARRVAL_P(replacements), item, length)) { + if ((zv = zend_hash_str_find(Z_ARRVAL_P(replacements), item, length)) != NULL) { + efree(item); + (*position)++; + return zv; + } + } + } else { + if ((zv = zend_hash_index_find(Z_ARRVAL_P(paths), *position)) != NULL) { + if (Z_TYPE_P(zv) == IS_STRING) { + if (zend_hash_str_exists(Z_ARRVAL_P(replacements), Z_STRVAL_P(zv), Z_STRLEN_P(zv))) { + if ((tmp = zend_hash_str_find(Z_ARRVAL_P(replacements), Z_STRVAL_P(zv), Z_STRLEN_P(zv))) != NULL) { + (*position)++; + return tmp; + } + } + } + } + } + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "getmodelsource", NULL, 0, this_ptr); - zephir_check_call_status(); - RETURN_MM(); -} + (*position)++; + } -static PHP_METHOD(Phalcon_Mvc_Model, getUpdatedFields) -{ - zend_bool _5$$6, _7$$8; - zend_string *_4; - zend_ulong _3; - zval updated; - zval name, snapshot, oldSnapshot, value, _0, *_1, _2, _6$$6, _8$$8; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); + if (item) { + efree(item); + } - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&snapshot); - ZVAL_UNDEF(&oldSnapshot); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_6$$6); - ZVAL_UNDEF(&_8$$8); - ZVAL_UNDEF(&updated); + return NULL; +} +static void phalcon_replace_paths(zval *return_value, zval *pattern, zval *paths, zval *replacements) +{ - ZEPHIR_MM_GROW(); + char *cursor, *marker = NULL; + unsigned int bracket_count = 0, parentheses_count = 0, intermediate = 0; + unsigned char ch; + smart_str route_str = {0}; + zend_ulong position = 1; + int i; + zval *replace, replace_copy; + int use_copy, looking_placeholder = 0; - zephir_read_property(&_0, this_ptr, ZEND_STRL("snapshot"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&snapshot, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("oldSnapshot"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&oldSnapshot, &_0); - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).update_snapshot_on_save))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The 'updateSnapshotOnSave' option must be enabled for this method to work properly", "phalcon/Mvc/Model.zep", 2062); + if (Z_TYPE_P(pattern) != IS_STRING || Z_TYPE_P(replacements) != IS_ARRAY || Z_TYPE_P(paths) != IS_ARRAY) { + ZVAL_NULL(return_value); + php_error_docref(NULL, E_WARNING, "Invalid arguments supplied for phalcon_replace_paths()"); return; } - if (UNEXPECTED(Z_TYPE_P(&snapshot) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The 'keepSnapshots' option must be enabled to track changes", "phalcon/Mvc/Model.zep", 2068); + + if (Z_STRLEN_P(pattern) <= 0) { + ZVAL_FALSE(return_value); return; } - zephir_read_property(&_0, this_ptr, ZEND_STRL("dirtyState"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(!ZEPHIR_IS_LONG(&_0, 0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Change checking cannot be performed because the object has not been persisted or is deleted", "phalcon/Mvc/Model.zep", 2077); + + cursor = Z_STRVAL_P(pattern); + if (*cursor == '/') { + ++cursor; + i = 1; + } + else { + i = 0; + } + + if (!zend_hash_num_elements(Z_ARRVAL_P(paths))) { + ZVAL_STRINGL(return_value, Z_STRVAL_P(pattern) + i, Z_STRLEN_P(pattern) - i); return; } - ZEPHIR_INIT_VAR(&updated); - array_init(&updated); - zephir_is_iterable(&snapshot, 0, "phalcon/Mvc/Model.zep", 2092); - if (Z_TYPE_P(&snapshot) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&snapshot), _3, _4, _1) - { - ZEPHIR_INIT_NVAR(&name); - if (_4 != NULL) { - ZVAL_STR_COPY(&name, _4); + + for (; i < Z_STRLEN_P(pattern); ++i) { + + ch = *cursor; + if (ch == '\0') { + break; + } + + if (parentheses_count == 0 && !looking_placeholder) { + if (ch == '{') { + if (bracket_count == 0) { + marker = cursor; + intermediate = 0; + } + bracket_count++; } else { - ZVAL_LONG(&name, _3); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _1); - _5$$6 = !(zephir_array_isset(&oldSnapshot, &name)); - if (!(_5$$6)) { - zephir_array_fetch(&_6$$6, &oldSnapshot, &name, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 2087); - _5$$6 = !ZEPHIR_IS_IDENTICAL(&value, &_6$$6); - } - if (_5$$6) { - zephir_array_append(&updated, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 2088); + if (ch == '}') { + bracket_count--; + if (intermediate > 0) { + if (bracket_count == 0) { + replace = phalcon_replace_marker(1, paths, replacements, &position, cursor, marker); + if (replace) { + use_copy = 0; + if (Z_TYPE_P(replace) != IS_STRING) { + use_copy = zend_make_printable_zval(replace, &replace_copy); + if (use_copy) { + replace = &replace_copy; + } + } + smart_str_appendl(&route_str, Z_STRVAL_P(replace), Z_STRLEN_P(replace)); + if (use_copy) { + zval_dtor(&replace_copy); + } + } + cursor++; + continue; + } + } + } } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &snapshot, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &snapshot, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; + } + + if (bracket_count == 0 && !looking_placeholder) { + if (ch == '(') { + if (parentheses_count == 0) { + marker = cursor; + intermediate = 0; + } + parentheses_count++; + } else { + if (ch == ')') { + parentheses_count--; + if (intermediate > 0) { + if (parentheses_count == 0) { + replace = phalcon_replace_marker(0, paths, replacements, &position, cursor, marker); + if (replace) { + use_copy = 0; + if (Z_TYPE_P(replace) != IS_STRING) { + use_copy = zend_make_printable_zval(replace, &replace_copy); + if (use_copy) { + replace = &replace_copy; + } + } + smart_str_appendl(&route_str, Z_STRVAL_P(replace), Z_STRLEN_P(replace)); + if (use_copy) { + zval_dtor(&replace_copy); + } + } + cursor++; + continue; + } + } + } } - ZEPHIR_CALL_METHOD(&name, &snapshot, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &snapshot, "current", NULL, 0); - zephir_check_call_status(); - _7$$8 = !(zephir_array_isset(&oldSnapshot, &name)); - if (!(_7$$8)) { - zephir_array_fetch(&_8$$8, &oldSnapshot, &name, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 2087); - _7$$8 = !ZEPHIR_IS_IDENTICAL(&value, &_8$$8); + } + + if (bracket_count == 0 && parentheses_count == 0) { + if (looking_placeholder) { + if (intermediate > 0) { + if (ch < 'a' || ch > 'z' || i == (Z_STRLEN_P(pattern) - 1)) { + replace = phalcon_replace_marker(0, paths, replacements, &position, cursor, marker); + if (replace) { + use_copy = 0; + if (Z_TYPE_P(replace) != IS_STRING) { + use_copy = zend_make_printable_zval(replace, &replace_copy); + if (use_copy) { + replace = &replace_copy; + } + } + smart_str_appendl(&route_str, Z_STRVAL_P(replace), Z_STRLEN_P(replace)); + if (use_copy) { + zval_dtor(&replace_copy); + } + } + looking_placeholder = 0; + continue; + } } - if (_7$$8) { - zephir_array_append(&updated, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 2088); + } else { + if (ch == ':') { + looking_placeholder = 1; + marker = cursor; + intermediate = 0; } - ZEPHIR_CALL_METHOD(NULL, &snapshot, "next", NULL, 0); - zephir_check_call_status(); + } + } + + if (bracket_count > 0 || parentheses_count > 0 || looking_placeholder) { + intermediate++; + } else { + smart_str_appendc(&route_str, ch); } + + cursor++; + } + smart_str_0(&route_str); + + if (route_str.s) { + RETURN_STR(route_str.s); + } else { + smart_str_free(&route_str); + RETURN_EMPTY_STRING(); } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&name); - RETURN_CTOR(&updated); } -static PHP_METHOD(Phalcon_Mvc_Model, getWriteConnection) -{ - zval transaction, _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&transaction); - ZVAL_UNDEF(&_0); +#ifdef HAVE_CONFIG_H +#endif - ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("transaction"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&transaction, &_0); - if (Z_TYPE_P(&transaction) == IS_OBJECT) { - ZEPHIR_RETURN_CALL_METHOD(&transaction, "getconnection", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "getwriteconnection", NULL, 0, this_ptr); - zephir_check_call_status(); - RETURN_MM(); + + + +ZEPHIR_INIT_CLASS(Phalcon_Di_AbstractInjectionAware) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Di, AbstractInjectionAware, phalcon, di_abstractinjectionaware, phalcon_di_abstractinjectionaware_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_di_abstractinjectionaware_ce, SL("container"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_di_abstractinjectionaware_ce, 1, phalcon_di_injectionawareinterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model, getWriteConnectionService) +static PHP_METHOD(Phalcon_Di_AbstractInjectionAware, getDI) { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - - ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "getwriteconnectionservice", NULL, 0, this_ptr); - zephir_check_call_status(); - RETURN_MM(); + RETURN_MEMBER(getThis(), "container"); } -static PHP_METHOD(Phalcon_Mvc_Model, hasChanged) +static PHP_METHOD(Phalcon_Di_AbstractInjectionAware, setDI) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool allFields; - zval *fieldName = NULL, fieldName_sub, *allFields_param = NULL, __$null, changedFields, intersect; + zval *container, container_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&fieldName_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&changedFields); - ZVAL_UNDEF(&intersect); + ZVAL_UNDEF(&container_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(fieldName) - Z_PARAM_BOOL(allFields) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &fieldName, &allFields_param); - if (!fieldName) { - fieldName = &fieldName_sub; - fieldName = &__$null; - } - if (!allFields_param) { - allFields = 0; - } else { - allFields = zephir_get_boolval(allFields_param); - } + zephir_fetch_params_without_memory_grow(1, 0, &container); - ZEPHIR_CALL_METHOD(&changedFields, this_ptr, "getchangedfields", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(fieldName) == IS_STRING) { - RETURN_MM_BOOL(zephir_fast_in_array(fieldName, &changedFields)); - } - if (Z_TYPE_P(fieldName) == IS_ARRAY) { - ZEPHIR_CALL_FUNCTION(&intersect, "array_intersect", NULL, 440, fieldName, &changedFields); - zephir_check_call_status(); - if (allFields) { - RETURN_MM_BOOL(ZEPHIR_IS_EQUAL(&intersect, fieldName)); - } - RETURN_MM_BOOL(zephir_fast_count_int(&intersect) > 0); - } - RETURN_MM_BOOL(zephir_fast_count_int(&changedFields) > 0); + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); } -static PHP_METHOD(Phalcon_Mvc_Model, hasSnapshotData) -{ - zval _0; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); +#ifdef HAVE_CONFIG_H +#endif - zephir_read_property(&_0, this_ptr, ZEND_STRL("snapshot"), PH_NOISY_CC | PH_READONLY); - RETURN_BOOL(!(ZEPHIR_IS_EMPTY(&_0))); -} -static PHP_METHOD(Phalcon_Mvc_Model, hasUpdated) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool allFields; - zval *fieldName = NULL, fieldName_sub, *allFields_param = NULL, __$null, updatedFields, intersect; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&fieldName_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&updatedFields); - ZVAL_UNDEF(&intersect); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(fieldName) - Z_PARAM_BOOL(allFields) - ZEND_PARSE_PARAMETERS_END(); + + +ZEPHIR_INIT_CLASS(Phalcon_Di_DiInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Di, DiInterface, phalcon, di_diinterface, phalcon_di_diinterface_method_entry); + + zend_class_implements(phalcon_di_diinterface_ce, 1, zend_ce_arrayaccess); + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, attempt); +ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, get); +ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, getDefault); +ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, getRaw); +ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, getService); +ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, getServices); +ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, getShared); +ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, has); +ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, remove); +ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, reset); +ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, set); +ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, setDefault); +ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, setService); +ZEPHIR_DOC_METHOD(Phalcon_Di_DiInterface, setShared); + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &fieldName, &allFields_param); - if (!fieldName) { - fieldName = &fieldName_sub; - fieldName = &__$null; - } - if (!allFields_param) { - allFields = 0; - } else { - allFields = zephir_get_boolval(allFields_param); - } - ZEPHIR_CALL_METHOD(&updatedFields, this_ptr, "getupdatedfields", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(fieldName) == IS_STRING) { - RETURN_MM_BOOL(zephir_fast_in_array(fieldName, &updatedFields)); - } - if (Z_TYPE_P(fieldName) == IS_ARRAY) { - ZEPHIR_CALL_FUNCTION(&intersect, "array_intersect", NULL, 440, fieldName, &updatedFields); - zephir_check_call_status(); - if (allFields) { - RETURN_MM_BOOL(ZEPHIR_IS_EQUAL(&intersect, fieldName)); - } - RETURN_MM_BOOL(zephir_fast_count_int(&intersect) > 0); - } - RETURN_MM_BOOL(zephir_fast_count_int(&updatedFields) > 0); -} -static PHP_METHOD(Phalcon_Mvc_Model, jsonSerialize) +ZEPHIR_INIT_CLASS(Phalcon_Di_Exception) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di, Exception, phalcon, di_exception, phalcon_exception_ce, NULL, 0); + return SUCCESS; +} - ZEPHIR_MM_GROW(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "toarray", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Di_FactoryDefault) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di, FactoryDefault, phalcon, di_factorydefault, phalcon_di_ce, phalcon_di_factorydefault_method_entry, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model, maximum) +static PHP_METHOD(Phalcon_Di_FactoryDefault, __construct) { + zval _1; + zval filter, _2, _3, _4, _5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *parameters = NULL, parameters_sub, __$null, _0, _1; + zephir_fcall_cache_entry *_0 = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(¶meters_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&filter); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(parameters) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, ¶meters); - if (!parameters) { - parameters = ¶meters_sub; - parameters = &__$null; - } + ZEPHIR_CALL_PARENT(NULL, phalcon_di_factorydefault_ce, getThis(), "__construct", &_0, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&filter); + object_init_ex(&filter, phalcon_filter_filterfactory_ce); + if (zephir_has_constructor(&filter)) { + ZEPHIR_CALL_METHOD(NULL, &filter, "__construct", NULL, 0); + zephir_check_call_status(); + } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "MAX"); ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "maximum"); - ZEPHIR_RETURN_CALL_SELF("groupresult", NULL, 0, &_0, &_1, parameters); + zephir_create_array(&_1, 19, 0); + ZEPHIR_INIT_VAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Annotations\\Adapter\\Memory"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); zephir_check_call_status(); - RETURN_MM(); + zephir_array_update_string(&_1, SL("annotations"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Assets\\Manager"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("assets"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Crypt"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("crypt"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Http\\Response\\Cookies"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("cookies"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Mvc\\Dispatcher"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("dispatcher"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Escaper"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("escaper"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Events\\Manager"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("eventsManager"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Flash\\Direct"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("flash"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Flash\\Session"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("flashSession"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_CALL_METHOD(&_5, &filter, "newinstance", NULL, 113); + zephir_check_call_status(); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_5, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("filter"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Mvc\\Model\\Manager"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("modelsManager"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Mvc\\Model\\MetaData\\Memory"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("modelsMetadata"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Http\\Request"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("request"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Http\\Response"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("response"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Mvc\\Router"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("router"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Security"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("security"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Tag"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("tag"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Mvc\\Model\\Transaction\\Manager"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("transactionManager"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Url"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("url"), &_2, PH_COPY | PH_SEPARATE); + zephir_update_property_zval(this_ptr, ZEND_STRL("services"), &_1); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model, minimum) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *parameters = NULL, parameters_sub, __$null, _0, _1; - zval *this_ptr = getThis(); - ZVAL_UNDEF(¶meters_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(parameters) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, ¶meters); - if (!parameters) { - parameters = ¶meters_sub; - parameters = &__$null; - } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "MIN"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "minimum"); - ZEPHIR_RETURN_CALL_SELF("groupresult", NULL, 0, &_0, &_1, parameters); - zephir_check_call_status(); - RETURN_MM(); + +ZEPHIR_INIT_CLASS(Phalcon_Di_Injectable) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Di, Injectable, phalcon, di_injectable, phalcon_di_injectable_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_di_injectable_ce, SL("container"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_di_injectable_ce, 1, phalcon_di_injectionawareinterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model, query) +static PHP_METHOD(Phalcon_Di_Injectable, __get) { + zval _2$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *container = NULL, container_sub, __$null, criteria, _3, _1$$4, _2$$4; + zval *propertyName_param = NULL, container, service, _0, _1$$4, _3$$4, _4$$4; + zval propertyName, _5; zval *this_ptr = getThis(); - ZVAL_UNDEF(&container_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&criteria); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&propertyName); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&service); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$4); ZVAL_UNDEF(&_2$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(container, phalcon_di_diinterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(propertyName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &container); - if (!container) { - container = &container_sub; - ZEPHIR_CPY_WRT(container, &__$null); + zephir_fetch_params(1, 1, 0, &propertyName_param); + if (UNEXPECTED(Z_TYPE_P(propertyName_param) != IS_STRING && Z_TYPE_P(propertyName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'propertyName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(propertyName_param) == IS_STRING)) { + zephir_get_strval(&propertyName, propertyName_param); } else { - ZEPHIR_SEPARATE_PARAM(container); + ZEPHIR_INIT_VAR(&propertyName); } - if (Z_TYPE_P(container) != IS_OBJECT) { - ZEPHIR_CALL_CE_STATIC(container, phalcon_di_ce, "getdefault", &_0, 0); - zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getdi", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&container, &_0); + if (ZEPHIR_IS_STRING(&propertyName, "di")) { + zephir_update_property_zval(this_ptr, ZEND_STRL("di"), &container); + RETURN_CCTOR(&container); } - ZEPHIR_INIT_VAR(&criteria); - if (zephir_instance_of_ev(container, phalcon_di_diinterface_ce)) { + if (ZEPHIR_IS_STRING(&propertyName, "persistent")) { ZEPHIR_INIT_VAR(&_2$$4); - ZVAL_STRING(&_2$$4, "Phalcon\\Mvc\\Model\\Criteria"); - ZEPHIR_CALL_METHOD(&_1$$4, container, "get", NULL, 0, &_2$$4); + zephir_create_array(&_2$$4, 1, 0); + ZEPHIR_INIT_VAR(&_3$$4); + zephir_get_class(&_3$$4, this_ptr, 0); + zephir_array_fast_append(&_2$$4, &_3$$4); + ZEPHIR_INIT_NVAR(&_3$$4); + ZVAL_STRING(&_3$$4, "sessionBag"); + ZEPHIR_CALL_METHOD(&_1$$4, &container, "get", NULL, 0, &_3$$4, &_2$$4); zephir_check_call_status(); - ZEPHIR_CPY_WRT(&criteria, &_1$$4); - } else { - object_init_ex(&criteria, phalcon_mvc_model_criteria_ce); - if (zephir_has_constructor(&criteria)) { - ZEPHIR_CALL_METHOD(NULL, &criteria, "__construct", NULL, 0); - zephir_check_call_status(); - } - - ZEPHIR_CALL_METHOD(NULL, &criteria, "setdi", NULL, 441, container); + zephir_update_property_zval(this_ptr, ZEND_STRL("persistent"), &_1$$4); + ZEPHIR_OBS_VAR(&_4$$4); + zephir_read_property(&_4$$4, this_ptr, ZEND_STRL("persistent"), PH_NOISY_CC); + RETURN_CCTOR(&_4$$4); + } + ZEPHIR_CALL_METHOD(&_0, &container, "has", NULL, 0, &propertyName); + zephir_check_call_status(); + if (zephir_is_true(&_0)) { + ZEPHIR_CALL_METHOD(&service, &container, "getshared", NULL, 0, &propertyName); zephir_check_call_status(); + zephir_update_property_zval_zval(this_ptr, &propertyName, &service); + RETURN_CCTOR(&service); } - ZEPHIR_INIT_VAR(&_3); - zephir_get_called_class(&_3); - ZEPHIR_CALL_METHOD(NULL, &criteria, "setmodelname", NULL, 442, &_3); + ZEPHIR_INIT_VAR(&_5); + ZEPHIR_CONCAT_SV(&_5, "Access to undefined property ", &propertyName); + ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_5); zephir_check_call_status(); - RETURN_CCTOR(&criteria); + RETURN_MM_NULL(); } -static PHP_METHOD(Phalcon_Mvc_Model, readAttribute) +static PHP_METHOD(Phalcon_Di_Injectable, __isset) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *attribute_param = NULL, _0; - zval attribute; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, _0; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&attribute); + ZVAL_UNDEF(&name); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(attribute) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &attribute_param); - if (UNEXPECTED(Z_TYPE_P(attribute_param) != IS_STRING && Z_TYPE_P(attribute_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'attribute' must be of the type string")); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(attribute_param) == IS_STRING)) { - zephir_get_strval(&attribute, attribute_param); + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); } else { - ZEPHIR_INIT_VAR(&attribute); + ZEPHIR_INIT_VAR(&name); } - if (!(zephir_isset_property_zval(this_ptr, &attribute))) { - RETURN_MM_NULL(); - } - ZEPHIR_OBS_VAR(&_0); - zephir_read_property_zval(&_0, this_ptr, &attribute, PH_NOISY_CC); - RETURN_CCTOR(&_0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getdi", NULL, 0); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(&_0, "has", NULL, 0, &name); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model, refresh) +static PHP_METHOD(Phalcon_Di_Injectable, getDI) { - zval fields, _9, _7$$9, _8$$10; - zval metaData, readConnection, schema, source, table, uniqueKey, tables, uniqueParams, dialect, row, attribute, manager, columnMap, _0, _1, _4, *_5, _6, _10, _11, _14, _2$$6, _3$$6, _12$$11, _13$$11; + zval container, _0, _2$$4, _3$$4, _5$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_1 = NULL, *_4 = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&metaData); - ZVAL_UNDEF(&readConnection); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&uniqueKey); - ZVAL_UNDEF(&tables); - ZVAL_UNDEF(&uniqueParams); - ZVAL_UNDEF(&dialect); - ZVAL_UNDEF(&row); - ZVAL_UNDEF(&attribute); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&columnMap); + ZVAL_UNDEF(&container); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_2$$6); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&_12$$11); - ZVAL_UNDEF(&_13$$11); - ZVAL_UNDEF(&fields); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_7$$9); - ZVAL_UNDEF(&_8$$10); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$4); ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("dirtyState"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(!ZEPHIR_IS_LONG(&_0, 0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/Mvc/Model.zep", 2347); - return; - } - ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&readConnection, this_ptr, "getreadconnection", NULL, 443); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&manager, &_1); - ZEPHIR_CALL_METHOD(&schema, this_ptr, "getschema", NULL, 435); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&source, this_ptr, "getsource", NULL, 436); - zephir_check_call_status(); - if (zephir_is_true(&schema)) { - ZEPHIR_INIT_VAR(&table); - zephir_create_array(&table, 2, 0); - zephir_array_fast_append(&table, &schema); - zephir_array_fast_append(&table, &source); - } else { - ZEPHIR_CPY_WRT(&table, &source); - } - zephir_read_property(&_1, this_ptr, ZEND_STRL("uniqueKey"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&uniqueKey, &_1); - if (!(zephir_is_true(&uniqueKey))) { - ZEPHIR_CALL_METHOD(&_2$$6, this_ptr, "exists", NULL, 0, &metaData, &readConnection); - zephir_check_call_status(); - if (UNEXPECTED(!zephir_is_true(&_2$$6))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/Mvc/Model.zep", 2372); - return; - } - zephir_read_property(&_3$$6, this_ptr, ZEND_STRL("uniqueKey"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&uniqueKey, &_3$$6); - } - zephir_read_property(&_1, this_ptr, ZEND_STRL("uniqueParams"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&uniqueParams, &_1); - if (UNEXPECTED(Z_TYPE_P(&uniqueParams) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The record cannot be refreshed because it does not exist or is deleted", "phalcon/Mvc/Model.zep", 2383); - return; - } - ZEPHIR_INIT_VAR(&fields); - array_init(&fields); - ZEPHIR_CALL_METHOD(&_4, &metaData, "getattributes", NULL, 0, this_ptr); - zephir_check_call_status(); - zephir_is_iterable(&_4, 0, "phalcon/Mvc/Model.zep", 2398); - if (Z_TYPE_P(&_4) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_4), _5) - { - ZEPHIR_INIT_NVAR(&attribute); - ZVAL_COPY(&attribute, _5); - ZEPHIR_INIT_NVAR(&_7$$9); - zephir_create_array(&_7$$9, 1, 0); - zephir_array_fast_append(&_7$$9, &attribute); - zephir_array_append(&fields, &_7$$9, PH_SEPARATE, "phalcon/Mvc/Model.zep", 2392); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_4, "rewind", NULL, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + if (Z_TYPE_P(&container) != IS_OBJECT) { + ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_1, 0); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_6, &_4, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_6)) { - break; - } - ZEPHIR_CALL_METHOD(&attribute, &_4, "current", NULL, 0); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_2$$4); + object_init_ex(&_2$$4, phalcon_di_exception_ce); + ZEPHIR_INIT_VAR(&_5$$4); + ZVAL_STRING(&_5$$4, "internal services"); + ZEPHIR_CALL_CE_STATIC(&_3$$4, phalcon_di_exception_ce, "containerservicenotfound", &_4, 0, &_5$$4); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_8$$10); - zephir_create_array(&_8$$10, 1, 0); - zephir_array_fast_append(&_8$$10, &attribute); - zephir_array_append(&fields, &_8$$10, PH_SEPARATE, "phalcon/Mvc/Model.zep", 2392); - ZEPHIR_CALL_METHOD(NULL, &_4, "next", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &_2$$4, "__construct", NULL, 8, &_3$$4); zephir_check_call_status(); + zephir_throw_exception_debug(&_2$$4, "phalcon/Di/Injectable.zep", 124); + ZEPHIR_MM_RESTORE(); + return; } - } - ZEPHIR_INIT_NVAR(&attribute); - ZEPHIR_CALL_METHOD(&dialect, &readConnection, "getdialect", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_9); - zephir_create_array(&_9, 3, 0); - zephir_array_update_string(&_9, SL("columns"), &fields, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_10, &readConnection, "escapeidentifier", NULL, 0, &table); - zephir_check_call_status(); - zephir_array_update_string(&_9, SL("tables"), &_10, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_9, SL("where"), &uniqueKey, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&tables, &dialect, "select", NULL, 0, &_9); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("uniqueTypes"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_11, 2); - ZEPHIR_CALL_METHOD(&row, &readConnection, "fetchone", NULL, 0, &tables, &_11, &uniqueParams, &_1); - zephir_check_call_status(); - if (Z_TYPE_P(&row) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getcolumnmap", NULL, 0, this_ptr); - zephir_check_call_status(); - ZVAL_NULL(&_12$$11); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "assign", NULL, 0, &row, &_12$$11, &columnMap); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_13$$11, &manager, "iskeepingsnapshots", NULL, 0, this_ptr); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setdi", NULL, 0, &container); zephir_check_call_status(); - if (zephir_is_true(&_13$$11)) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setsnapshotdata", NULL, 0, &row, &columnMap); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setoldsnapshotdata", NULL, 0, &row, &columnMap); - zephir_check_call_status(); - } } - ZEPHIR_INIT_VAR(&_14); - ZVAL_STRING(&_14, "afterFetch"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_14); - zephir_check_call_status(); - RETURN_THIS(); + RETURN_CCTOR(&container); } -static PHP_METHOD(Phalcon_Mvc_Model, save) +static PHP_METHOD(Phalcon_Di_Injectable, setDI) { - zend_bool hasRelatedToSave = 0; - zval metaData, schema, writeConnection, readConnection, source, table, identityField, exists, success, relatedToSave, _0, _4, _1$$3, _2$$7, _3$$8, _5$$10, _6$$11, _7$$11, _8$$14, _9$$16, _10$$18, _11$$21, _12$$20; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval *container, container_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&metaData); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&writeConnection); - ZVAL_UNDEF(&readConnection); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&identityField); - ZVAL_UNDEF(&exists); - ZVAL_UNDEF(&success); - ZVAL_UNDEF(&relatedToSave); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$7); - ZVAL_UNDEF(&_3$$8); - ZVAL_UNDEF(&_5$$10); - ZVAL_UNDEF(&_6$$11); - ZVAL_UNDEF(&_7$$11); - ZVAL_UNDEF(&_8$$14); - ZVAL_UNDEF(&_9$$16); - ZVAL_UNDEF(&_10$$18); - ZVAL_UNDEF(&_11$$21); - ZVAL_UNDEF(&_12$$20); + ZVAL_UNDEF(&container_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif - ZEPHIR_MM_GROW(); + zephir_fetch_params_without_memory_grow(1, 0, &container); - ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&writeConnection, this_ptr, "getwriteconnection", NULL, 433); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "prepareSave"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&relatedToSave, this_ptr, "collectrelatedtosave", NULL, 0); - zephir_check_call_status(); - hasRelatedToSave = zephir_fast_count_int(&relatedToSave) > 0; - if (hasRelatedToSave) { - ZEPHIR_CALL_METHOD(&_1$$3, this_ptr, "presaverelatedrecords", NULL, 0, &writeConnection, &relatedToSave); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_1$$3)) { - RETURN_MM_BOOL(0); - } - } - ZEPHIR_CALL_METHOD(&schema, this_ptr, "getschema", NULL, 435); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&source, this_ptr, "getsource", NULL, 436); - zephir_check_call_status(); - if (zephir_is_true(&schema)) { - ZEPHIR_INIT_VAR(&table); - zephir_create_array(&table, 2, 0); - zephir_array_fast_append(&table, &schema); - zephir_array_fast_append(&table, &source); - } else { - ZEPHIR_CPY_WRT(&table, &source); - } - ZEPHIR_CALL_METHOD(&readConnection, this_ptr, "getreadconnection", NULL, 443); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&exists, this_ptr, "exists", NULL, 0, &metaData, &readConnection); - zephir_check_call_status(); - if (zephir_is_true(&exists)) { - ZEPHIR_INIT_ZVAL_NREF(_2$$7); - ZVAL_LONG(&_2$$7, 2); - zephir_update_property_zval(this_ptr, ZEND_STRL("operationMade"), &_2$$7); - } else { - ZEPHIR_INIT_ZVAL_NREF(_3$$8); - ZVAL_LONG(&_3$$8, 1); - zephir_update_property_zval(this_ptr, ZEND_STRL("operationMade"), &_3$$8); - } - ZEPHIR_INIT_NVAR(&_0); - array_init(&_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("errorMessages"), &_0); - ZEPHIR_CALL_METHOD(&identityField, &metaData, "getidentityfield", NULL, 0, this_ptr); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_4, this_ptr, "presave", NULL, 0, &metaData, &exists, &identityField); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_4)) { - if (hasRelatedToSave) { - ZVAL_BOOL(&_5$$10, 0); - ZEPHIR_CALL_METHOD(NULL, &writeConnection, "rollback", NULL, 0, &_5$$10); - zephir_check_call_status(); - } - if (UNEXPECTED(ZEPHIR_GLOBAL(orm).exception_on_failed_save)) { - ZEPHIR_INIT_VAR(&_6$$11); - object_init_ex(&_6$$11, phalcon_mvc_model_validationfailed_ce); - ZEPHIR_CALL_METHOD(&_7$$11, this_ptr, "getmessages", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_6$$11, "__construct", NULL, 444, this_ptr, &_7$$11); - zephir_check_call_status(); - zephir_throw_exception_debug(&_6$$11, "phalcon/Mvc/Model.zep", 2549); - ZEPHIR_MM_RESTORE(); - return; - } - RETURN_MM_BOOL(0); - } - if (zephir_is_true(&exists)) { - ZEPHIR_CALL_METHOD(&success, this_ptr, "dolowupdate", NULL, 0, &metaData, &writeConnection, &table); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(&success, this_ptr, "dolowinsert", NULL, 0, &metaData, &writeConnection, &table, &identityField); - zephir_check_call_status(); - } - if (zephir_is_true(&success)) { - ZEPHIR_INIT_ZVAL_NREF(_8$$14); - ZVAL_LONG(&_8$$14, 0); - zephir_update_property_zval(this_ptr, ZEND_STRL("dirtyState"), &_8$$14); - } - if (hasRelatedToSave) { - if (ZEPHIR_IS_FALSE_IDENTICAL(&success)) { - ZVAL_BOOL(&_9$$16, 0); - ZEPHIR_CALL_METHOD(NULL, &writeConnection, "rollback", NULL, 0, &_9$$16); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(&success, this_ptr, "postsaverelatedrecords", NULL, 0, &writeConnection, &relatedToSave); - zephir_check_call_status(); - } - } - if (ZEPHIR_GLOBAL(orm).events) { - ZEPHIR_CALL_METHOD(&_10$$18, this_ptr, "postsave", NULL, 0, &success, &exists); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&success, &_10$$18); - } - if (ZEPHIR_IS_FALSE_IDENTICAL(&success)) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "canceloperation", NULL, 0); - zephir_check_call_status(); - } else { - if (hasRelatedToSave) { - ZEPHIR_INIT_VAR(&_11$$21); - array_init(&_11$$21); - zephir_update_property_zval(this_ptr, ZEND_STRL("dirtyRelated"), &_11$$21); - } - ZEPHIR_INIT_VAR(&_12$$20); - ZVAL_STRING(&_12$$20, "afterSave"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_12$$20); - zephir_check_call_status(); - } - RETURN_CCTOR(&success); + + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); } -static PHP_METHOD(Phalcon_Mvc_Model, serialize) -{ - zval _3$$4; - zend_bool _2$$3; - zval attributes, snapshot, manager, _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&snapshot); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZEPHIR_MM_GROW(); +#ifdef HAVE_CONFIG_H +#endif - ZEPHIR_CALL_METHOD(&attributes, this_ptr, "toarray", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmodelsmanager", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&manager, &_0); - ZEPHIR_CALL_METHOD(&_0, &manager, "iskeepingsnapshots", NULL, 0, this_ptr); - zephir_check_call_status(); - if (zephir_is_true(&_0)) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("snapshot"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&snapshot, &_1$$3); - _2$$3 = Z_TYPE_P(&snapshot) != IS_NULL; - if (_2$$3) { - _2$$3 = !ZEPHIR_IS_EQUAL(&attributes, &snapshot); - } - if (_2$$3) { - ZEPHIR_INIT_VAR(&_3$$4); - zephir_create_array(&_3$$4, 2, 0); - zephir_array_update_string(&_3$$4, SL("_attributes"), &attributes, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_3$$4, SL("snapshot"), &snapshot, PH_COPY | PH_SEPARATE); - ZEPHIR_RETURN_CALL_FUNCTION("serialize", NULL, 13, &_3$$4); - zephir_check_call_status(); - RETURN_MM(); - } - } - ZEPHIR_RETURN_CALL_FUNCTION("serialize", NULL, 13, &attributes); - zephir_check_call_status(); - RETURN_MM(); -} -static PHP_METHOD(Phalcon_Mvc_Model, unserialize) + + + +ZEPHIR_INIT_CLASS(Phalcon_Di_InjectionAwareInterface) { - zend_string *_11$$3; - zend_ulong _10$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_0 = NULL, *_3 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *data, data_sub, attributes, container, manager, key, value, snapshot, _1$$4, _2$$4, _4$$4, _5$$3, _6$$3, *_8$$3, _9$$3, _7$$7; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Di, InjectionAwareInterface, phalcon, di_injectionawareinterface, phalcon_di_injectionawareinterface_method_entry); - ZVAL_UNDEF(&data_sub); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&snapshot); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_9$$3); - ZVAL_UNDEF(&_7$$7); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(data) - ZEND_PARSE_PARAMETERS_END(); + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Di_InjectionAwareInterface, setDI); +ZEPHIR_DOC_METHOD(Phalcon_Di_InjectionAwareInterface, getDI); + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &data); - ZEPHIR_CALL_FUNCTION(&attributes, "unserialize", NULL, 15, data); - zephir_check_call_status(); - if (Z_TYPE_P(&attributes) == IS_ARRAY) { - ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_0, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_1$$4); - object_init_ex(&_1$$4, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_4$$4); - ZVAL_STRING(&_4$$4, "the services related to the ODM"); - ZEPHIR_CALL_CE_STATIC(&_2$$4, phalcon_mvc_model_exception_ce, "containerservicenotfound", &_3, 0, &_4$$4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_1$$4, "__construct", NULL, 8, &_2$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$4, "phalcon/Mvc/Model.zep", 2670); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), &container); - ZEPHIR_INIT_VAR(&_6$$3); - ZVAL_STRING(&_6$$3, "modelsManager"); - ZEPHIR_CALL_METHOD(&_5$$3, &container, "getshared", NULL, 0, &_6$$3); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&manager, &_5$$3); - if (UNEXPECTED(Z_TYPE_P(&manager) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The injected service 'modelsManager' is not valid", "phalcon/Mvc/Model.zep", 2686); - return; - } - zephir_update_property_zval(this_ptr, ZEND_STRL("modelsManager"), &manager); - ZEPHIR_CALL_METHOD(NULL, &manager, "initialize", NULL, 0, this_ptr); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_5$$3, &manager, "iskeepingsnapshots", NULL, 0, this_ptr); - zephir_check_call_status(); - if (zephir_is_true(&_5$$3)) { - if (zephir_array_isset_string_fetch(&snapshot, &attributes, SL("snapshot"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("snapshot"), &snapshot); - zephir_array_fetch_string(&_7$$7, &attributes, SL("_attributes"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 2702); - ZEPHIR_CPY_WRT(&attributes, &_7$$7); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("snapshot"), &attributes); - } - } - zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model.zep", 2714); - if (Z_TYPE_P(&attributes) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&attributes), _10$$3, _11$$3, _8$$3) - { - ZEPHIR_INIT_NVAR(&key); - if (_11$$3 != NULL) { - ZVAL_STR_COPY(&key, _11$$3); - } else { - ZVAL_LONG(&key, _10$$3); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _8$$3); - zephir_update_property_zval_zval(this_ptr, &key, &value); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_9$$3, &attributes, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_9$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&key, &attributes, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &attributes, "current", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval_zval(this_ptr, &key, &value); - ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - } - ZEPHIR_MM_RESTORE(); + +ZEPHIR_INIT_CLASS(Phalcon_Di_Service) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Di, Service, phalcon, di_service, phalcon_di_service_method_entry, 0); + + zend_declare_property_null(phalcon_di_service_ce, SL("definition"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_di_service_ce, SL("resolved"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_di_service_ce, SL("shared"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_di_service_ce, SL("sharedInstance"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_di_service_ce, 1, phalcon_di_serviceinterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model, setConnectionService) +static PHP_METHOD(Phalcon_Di_Service, __construct) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *connectionService_param = NULL, _0; - zval connectionService; + zend_bool shared; + zval *definition, definition_sub, *shared_param = NULL, __$true, __$false; zval *this_ptr = getThis(); - ZVAL_UNDEF(&connectionService); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&definition_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(connectionService) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(definition) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(shared) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &connectionService_param); - if (UNEXPECTED(Z_TYPE_P(connectionService_param) != IS_STRING && Z_TYPE_P(connectionService_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'connectionService' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(connectionService_param) == IS_STRING)) { - zephir_get_strval(&connectionService, connectionService_param); + zephir_fetch_params_without_memory_grow(1, 1, &definition, &shared_param); + if (!shared_param) { + shared = 0; } else { - ZEPHIR_INIT_VAR(&connectionService); + shared = zephir_get_boolval(shared_param); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_0, "setconnectionservice", NULL, 0, this_ptr, &connectionService); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + zephir_update_property_zval(this_ptr, ZEND_STRL("definition"), definition); + if (shared) { + zephir_update_property_zval(this_ptr, ZEND_STRL("shared"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("shared"), &__$false); + } } -static PHP_METHOD(Phalcon_Mvc_Model, setDirtyState) +static PHP_METHOD(Phalcon_Di_Service, getDefinition) { - zval *dirtyState_param = NULL, _0; - zend_long dirtyState; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(dirtyState) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &dirtyState_param); - dirtyState = zephir_get_intval(dirtyState_param); - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, dirtyState); - zephir_update_property_zval(this_ptr, ZEND_STRL("dirtyState"), &_0); - RETURN_THISW(); + RETURN_MEMBER(getThis(), "definition"); } -static PHP_METHOD(Phalcon_Mvc_Model, setEventsManager) +static PHP_METHOD(Phalcon_Di_Service, getParameter) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *eventsManager, eventsManager_sub, _0; + zval *position_param = NULL, definition, arguments, parameter, _0; + zend_long position; zval *this_ptr = getThis(); - ZVAL_UNDEF(&eventsManager_sub); + ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&arguments); + ZVAL_UNDEF(¶meter); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) + Z_PARAM_LONG(position) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &eventsManager); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_0, "setcustomeventsmanager", NULL, 0, this_ptr, eventsManager); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} + zephir_fetch_params(1, 1, 0, &position_param); + position = zephir_get_intval(position_param); -static PHP_METHOD(Phalcon_Mvc_Model, setReadConnectionService) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *connectionService_param = NULL, _0; - zval connectionService; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&connectionService); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(connectionService) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &connectionService_param); - if (UNEXPECTED(Z_TYPE_P(connectionService_param) != IS_STRING && Z_TYPE_P(connectionService_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'connectionService' must be of the type string")); - RETURN_MM_NULL(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("definition"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&definition, &_0); + if (UNEXPECTED(Z_TYPE_P(&definition) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Definition must be an array to obtain its parameters", "phalcon/Di/Service.zep", 82); + return; } - if (EXPECTED(Z_TYPE_P(connectionService_param) == IS_STRING)) { - zephir_get_strval(&connectionService, connectionService_param); - } else { - ZEPHIR_INIT_VAR(&connectionService); + if (zephir_array_isset_string_fetch(&arguments, &definition, SL("arguments"), 1)) { + if (zephir_array_isset_long_fetch(¶meter, &arguments, position, 1)) { + RETURN_CTOR(¶meter); + } } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_0, "setreadconnectionservice", NULL, 0, this_ptr, &connectionService); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + RETURN_MM_NULL(); } -static PHP_METHOD(Phalcon_Mvc_Model, setOldSnapshotData) +static PHP_METHOD(Phalcon_Di_Service, isResolved) { - zend_string *_3$$3; - zend_ulong _2$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_6 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *data_param = NULL, *columnMap = NULL, columnMap_sub, __$null, key, value, attribute, *_0$$3, _1$$3, _4$$7, _5$$7, _7$$10, _8$$10, _9$$14, _10$$14, _11$$17, _12$$17; - zval data, snapshot; zval *this_ptr = getThis(); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&snapshot); - ZVAL_UNDEF(&columnMap_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&attribute); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_4$$7); - ZVAL_UNDEF(&_5$$7); - ZVAL_UNDEF(&_7$$10); - ZVAL_UNDEF(&_8$$10); - ZVAL_UNDEF(&_9$$14); - ZVAL_UNDEF(&_10$$14); - ZVAL_UNDEF(&_11$$17); - ZVAL_UNDEF(&_12$$17); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(data) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(columnMap) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &data_param, &columnMap); - ZEPHIR_OBS_COPY_OR_DUP(&data, data_param); - if (!columnMap) { - columnMap = &columnMap_sub; - columnMap = &__$null; - } + RETURN_MEMBER(getThis(), "resolved"); +} +static PHP_METHOD(Phalcon_Di_Service, isShared) +{ + zval *this_ptr = getThis(); - if (Z_TYPE_P(columnMap) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&snapshot); - array_init(&snapshot); - zephir_is_iterable(&data, 0, "phalcon/Mvc/Model.zep", 2811); - if (Z_TYPE_P(&data) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _2$$3, _3$$3, _0$$3) - { - ZEPHIR_INIT_NVAR(&key); - if (_3$$3 != NULL) { - ZVAL_STR_COPY(&key, _3$$3); - } else { - ZVAL_LONG(&key, _2$$3); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0$$3); - if (Z_TYPE_P(&key) != IS_STRING) { - continue; - } - ZEPHIR_OBS_NVAR(&attribute); - if (!(zephir_array_isset_fetch(&attribute, columnMap, &key, 0))) { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_4$$7); - object_init_ex(&_4$$7, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_5$$7); - ZEPHIR_CONCAT_SVS(&_5$$7, "Column '", &key, "' doesn't make part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_4$$7, "__construct", &_6, 8, &_5$$7); - zephir_check_call_status(); - zephir_throw_exception_debug(&_4$$7, "phalcon/Mvc/Model.zep", 2791); - ZEPHIR_MM_RESTORE(); - return; - } - continue; - } - if (Z_TYPE_P(&attribute) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&attribute); - if (!(zephir_array_isset_long_fetch(&attribute, &attribute, 0, 0))) { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_7$$10); - object_init_ex(&_7$$10, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_8$$10); - ZEPHIR_CONCAT_SVS(&_8$$10, "Column '", &key, "' doesn't make part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_7$$10, "__construct", &_6, 8, &_8$$10); - zephir_check_call_status(); - zephir_throw_exception_debug(&_7$$10, "phalcon/Mvc/Model.zep", 2802); - ZEPHIR_MM_RESTORE(); - return; - } - continue; - } - } - zephir_array_update_zval(&snapshot, &attribute, &value, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &data, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1$$3, &data, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&key, &data, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &data, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&key) != IS_STRING) { - continue; - } - ZEPHIR_OBS_NVAR(&attribute); - if (!(zephir_array_isset_fetch(&attribute, columnMap, &key, 0))) { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_9$$14); - object_init_ex(&_9$$14, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_10$$14); - ZEPHIR_CONCAT_SVS(&_10$$14, "Column '", &key, "' doesn't make part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_9$$14, "__construct", &_6, 8, &_10$$14); - zephir_check_call_status(); - zephir_throw_exception_debug(&_9$$14, "phalcon/Mvc/Model.zep", 2791); - ZEPHIR_MM_RESTORE(); - return; - } - continue; - } - if (Z_TYPE_P(&attribute) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&attribute); - if (!(zephir_array_isset_long_fetch(&attribute, &attribute, 0, 0))) { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_11$$17); - object_init_ex(&_11$$17, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_12$$17); - ZEPHIR_CONCAT_SVS(&_12$$17, "Column '", &key, "' doesn't make part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_11$$17, "__construct", &_6, 8, &_12$$17); - zephir_check_call_status(); - zephir_throw_exception_debug(&_11$$17, "phalcon/Mvc/Model.zep", 2802); - ZEPHIR_MM_RESTORE(); - return; - } - continue; - } - } - zephir_array_update_zval(&snapshot, &attribute, &value, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &data, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - } else { - ZEPHIR_CPY_WRT(&snapshot, &data); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("oldSnapshot"), &snapshot); - ZEPHIR_MM_RESTORE(); + + + RETURN_MEMBER(getThis(), "shared"); } -static PHP_METHOD(Phalcon_Mvc_Model, setSnapshotData) +static PHP_METHOD(Phalcon_Di_Service, resolve) { - zend_bool _4$$4, _12$$12; - zend_string *_3$$3; - zend_ulong _2$$3; + zend_class_entry *_4$$14; + zend_bool found = 0, _2$$7; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_6 = NULL, *_9 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *data_param = NULL, *columnMap = NULL, columnMap_sub, __$null, key, value, attribute, *_0$$3, _1$$3, _5$$6, _7$$8, _8$$8, _10$$11, _11$$11, _13$$14, _14$$16, _15$$16, _16$$19, _17$$19; - zval data, snapshot; + zval *parameters = NULL, parameters_sub, *container = NULL, container_sub, __$true, __$false, __$null, shared, definition, sharedInstance, instance, builder, _0, _1$$3, _3$$14, _5$$21; zval *this_ptr = getThis(); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&snapshot); - ZVAL_UNDEF(&columnMap_sub); + ZVAL_UNDEF(¶meters_sub); + ZVAL_UNDEF(&container_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&attribute); + ZVAL_UNDEF(&shared); + ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&sharedInstance); + ZVAL_UNDEF(&instance); + ZVAL_UNDEF(&builder); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_7$$8); - ZVAL_UNDEF(&_8$$8); - ZVAL_UNDEF(&_10$$11); - ZVAL_UNDEF(&_11$$11); - ZVAL_UNDEF(&_13$$14); - ZVAL_UNDEF(&_14$$16); - ZVAL_UNDEF(&_15$$16); - ZVAL_UNDEF(&_16$$19); - ZVAL_UNDEF(&_17$$19); + ZVAL_UNDEF(&_3$$14); + ZVAL_UNDEF(&_5$$21); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(data) + ZEND_PARSE_PARAMETERS_START(0, 2) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(columnMap) + Z_PARAM_ZVAL_OR_NULL(parameters) + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(container, phalcon_di_diinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &data_param, &columnMap); - ZEPHIR_OBS_COPY_OR_DUP(&data, data_param); - if (!columnMap) { - columnMap = &columnMap_sub; - columnMap = &__$null; + zephir_fetch_params(1, 0, 2, ¶meters, &container); + if (!parameters) { + parameters = ¶meters_sub; + parameters = &__$null; + } + if (!container) { + container = &container_sub; + container = &__$null; } - if (Z_TYPE_P(columnMap) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&snapshot); - array_init(&snapshot); - zephir_is_iterable(&data, 0, "phalcon/Mvc/Model.zep", 2876); - if (Z_TYPE_P(&data) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _2$$3, _3$$3, _0$$3) - { - ZEPHIR_INIT_NVAR(&key); - if (_3$$3 != NULL) { - ZVAL_STR_COPY(&key, _3$$3); - } else { - ZVAL_LONG(&key, _2$$3); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0$$3); - if (Z_TYPE_P(&key) != IS_STRING) { - continue; - } - _4$$4 = !(zephir_array_isset(columnMap, &key)); - if (_4$$4) { - _4$$4 = ZEPHIR_GLOBAL(orm).case_insensitive_column_map; - } - if (_4$$4) { - ZEPHIR_CALL_SELF(&_5$$6, "caseinsensitivecolumnmap", &_6, 431, columnMap, &key); + zephir_read_property(&_0, this_ptr, ZEND_STRL("shared"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&shared, &_0); + if (zephir_is_true(&shared)) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("sharedInstance"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&sharedInstance, &_1$$3); + if (Z_TYPE_P(&sharedInstance) != IS_NULL) { + RETURN_CCTOR(&sharedInstance); + } + } + found = 1; + ZEPHIR_INIT_VAR(&instance); + ZVAL_NULL(&instance); + zephir_read_property(&_0, this_ptr, ZEND_STRL("definition"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&definition, &_0); + if (Z_TYPE_P(&definition) == IS_STRING) { + if (Z_TYPE_P(container) != IS_NULL) { + ZEPHIR_CALL_METHOD(&instance, container, "get", NULL, 0, &definition, parameters); + zephir_check_call_status(); + } else if (zephir_class_exists(&definition, 1)) { + _2$$7 = Z_TYPE_P(parameters) == IS_ARRAY; + if (_2$$7) { + _2$$7 = ((zephir_fast_count_int(parameters)) ? 1 : 0); + } + if (_2$$7) { + ZEPHIR_INIT_NVAR(&instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(&instance, &definition, parameters); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(&instance, &definition); + zephir_check_call_status(); + } + } else { + found = 0; + } + } else { + if (Z_TYPE_P(&definition) == IS_OBJECT) { + if (zephir_is_instance_of(&definition, SL("Closure"))) { + if (Z_TYPE_P(container) == IS_OBJECT) { + _4$$14 = zephir_fetch_class_str_ex(SL("Closure"), ZEND_FETCH_CLASS_AUTO); + ZEPHIR_CALL_CE_STATIC(&_3$$14, _4$$14, "bind", NULL, 0, &definition, container); zephir_check_call_status(); - ZEPHIR_CPY_WRT(&key, &_5$$6); - } - ZEPHIR_OBS_NVAR(&attribute); - if (!(zephir_array_isset_fetch(&attribute, columnMap, &key, 0))) { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_7$$8); - object_init_ex(&_7$$8, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_8$$8); - ZEPHIR_CONCAT_SVS(&_8$$8, "Column '", &key, "' doesn't make part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_7$$8, "__construct", &_9, 8, &_8$$8); - zephir_check_call_status(); - zephir_throw_exception_debug(&_7$$8, "phalcon/Mvc/Model.zep", 2856); - ZEPHIR_MM_RESTORE(); - return; - } - continue; + ZEPHIR_CPY_WRT(&definition, &_3$$14); } - if (Z_TYPE_P(&attribute) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&attribute); - if (!(zephir_array_isset_long_fetch(&attribute, &attribute, 0, 0))) { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_10$$11); - object_init_ex(&_10$$11, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_11$$11); - ZEPHIR_CONCAT_SVS(&_11$$11, "Column '", &key, "' doesn't make part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_10$$11, "__construct", &_9, 8, &_11$$11); - zephir_check_call_status(); - zephir_throw_exception_debug(&_10$$11, "phalcon/Mvc/Model.zep", 2867); - ZEPHIR_MM_RESTORE(); - return; - } - continue; - } + if (Z_TYPE_P(parameters) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&instance); + ZEPHIR_CALL_USER_FUNC_ARRAY(&instance, &definition, parameters); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&instance); + ZEPHIR_CALL_USER_FUNC(&instance, &definition); + zephir_check_call_status(); } - zephir_array_update_zval(&snapshot, &attribute, &value, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CPY_WRT(&instance, &definition); + } } else { - ZEPHIR_CALL_METHOD(NULL, &data, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1$$3, &data, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1$$3)) { - break; + if (Z_TYPE_P(&definition) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&builder); + object_init_ex(&builder, phalcon_di_service_builder_ce); + if (zephir_has_constructor(&builder)) { + ZEPHIR_CALL_METHOD(NULL, &builder, "__construct", NULL, 0); + zephir_check_call_status(); } - ZEPHIR_CALL_METHOD(&key, &data, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &data, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&key) != IS_STRING) { - continue; - } - _12$$12 = !(zephir_array_isset(columnMap, &key)); - if (_12$$12) { - _12$$12 = ZEPHIR_GLOBAL(orm).case_insensitive_column_map; - } - if (_12$$12) { - ZEPHIR_CALL_SELF(&_13$$14, "caseinsensitivecolumnmap", &_6, 431, columnMap, &key); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&key, &_13$$14); - } - ZEPHIR_OBS_NVAR(&attribute); - if (!(zephir_array_isset_fetch(&attribute, columnMap, &key, 0))) { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_14$$16); - object_init_ex(&_14$$16, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_15$$16); - ZEPHIR_CONCAT_SVS(&_15$$16, "Column '", &key, "' doesn't make part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_14$$16, "__construct", &_9, 8, &_15$$16); - zephir_check_call_status(); - zephir_throw_exception_debug(&_14$$16, "phalcon/Mvc/Model.zep", 2856); - ZEPHIR_MM_RESTORE(); - return; - } - continue; - } - if (Z_TYPE_P(&attribute) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&attribute); - if (!(zephir_array_isset_long_fetch(&attribute, &attribute, 0, 0))) { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_16$$19); - object_init_ex(&_16$$19, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_17$$19); - ZEPHIR_CONCAT_SVS(&_17$$19, "Column '", &key, "' doesn't make part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_16$$19, "__construct", &_9, 8, &_17$$19); - zephir_check_call_status(); - zephir_throw_exception_debug(&_16$$19, "phalcon/Mvc/Model.zep", 2867); - ZEPHIR_MM_RESTORE(); - return; - } - continue; - } - } - zephir_array_update_zval(&snapshot, &attribute, &value, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &data, "next", NULL, 0); + + ZEPHIR_CALL_METHOD(&instance, &builder, "build", NULL, 221, container, &definition, parameters); zephir_check_call_status(); + } else { + found = 0; } } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); + } + if (UNEXPECTED(found == 0)) { + ZEPHIR_INIT_VAR(&_5$$21); + object_init_ex(&_5$$21, phalcon_di_exception_serviceresolutionexception_ce); + ZEPHIR_CALL_METHOD(NULL, &_5$$21, "__construct", NULL, 8); + zephir_check_call_status(); + zephir_throw_exception_debug(&_5$$21, "phalcon/Di/Service.zep", 205); + ZEPHIR_MM_RESTORE(); + return; + } + if (zephir_is_true(&shared)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("sharedInstance"), &instance); + } + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("resolved"), &__$true); } else { - ZEPHIR_CPY_WRT(&snapshot, &data); + zephir_update_property_zval(this_ptr, ZEND_STRL("resolved"), &__$false); } - zephir_update_property_zval(this_ptr, ZEND_STRL("snapshot"), &snapshot); - ZEPHIR_MM_RESTORE(); + RETURN_CCTOR(&instance); } -static PHP_METHOD(Phalcon_Mvc_Model, setTransaction) +static PHP_METHOD(Phalcon_Di_Service, setDefinition) { - zval *transaction, transaction_sub; + zval *definition, definition_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&transaction_sub); + ZVAL_UNDEF(&definition_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(transaction, phalcon_mvc_model_transactioninterface_ce) + Z_PARAM_ZVAL(definition) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &transaction); + zephir_fetch_params_without_memory_grow(1, 0, &definition); - zephir_update_property_zval(this_ptr, ZEND_STRL("transaction"), transaction); - RETURN_THISW(); + zephir_update_property_zval(this_ptr, ZEND_STRL("definition"), definition); } -static PHP_METHOD(Phalcon_Mvc_Model, setup) +static PHP_METHOD(Phalcon_Di_Service, setParameter) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *options_param = NULL, disableEvents, columnRenaming, notNullValidations, exceptionOnFailedSave, exceptionOnFailedMetaDataSave, phqlLiterals, virtualForeignKeys, lateStateBinding, castOnHydrate, ignoreUnknownColumns, updateSnapshotOnSave, disableAssignSetters, caseInsensitiveColumnMap, prefetchRecords, lastInsertId; - zval options; + zval parameter; + zval *position_param = NULL, *parameter_param = NULL, definition, arguments, _0, _1$$5; + zend_long position; zval *this_ptr = getThis(); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&disableEvents); - ZVAL_UNDEF(&columnRenaming); - ZVAL_UNDEF(¬NullValidations); - ZVAL_UNDEF(&exceptionOnFailedSave); - ZVAL_UNDEF(&exceptionOnFailedMetaDataSave); - ZVAL_UNDEF(&phqlLiterals); - ZVAL_UNDEF(&virtualForeignKeys); - ZVAL_UNDEF(&lateStateBinding); - ZVAL_UNDEF(&castOnHydrate); - ZVAL_UNDEF(&ignoreUnknownColumns); - ZVAL_UNDEF(&updateSnapshotOnSave); - ZVAL_UNDEF(&disableAssignSetters); - ZVAL_UNDEF(&caseInsensitiveColumnMap); - ZVAL_UNDEF(&prefetchRecords); - ZVAL_UNDEF(&lastInsertId); + ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&arguments); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$5); + ZVAL_UNDEF(¶meter); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_LONG(position) + Z_PARAM_ARRAY(parameter) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &options_param); - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + zephir_fetch_params(1, 2, 0, &position_param, ¶meter_param); + position = zephir_get_intval(position_param); + ZEPHIR_OBS_COPY_OR_DUP(¶meter, parameter_param); - ZEPHIR_OBS_VAR(&disableEvents); - if (zephir_array_isset_string_fetch(&disableEvents, &options, SL("events"), 0)) { - ZEPHIR_GLOBAL(orm).events = zend_is_true(&disableEvents); - } - ZEPHIR_OBS_VAR(&virtualForeignKeys); - if (zephir_array_isset_string_fetch(&virtualForeignKeys, &options, SL("virtualForeignKeys"), 0)) { - ZEPHIR_GLOBAL(orm).virtual_foreign_keys = zend_is_true(&virtualForeignKeys); - } - ZEPHIR_OBS_VAR(&columnRenaming); - if (zephir_array_isset_string_fetch(&columnRenaming, &options, SL("columnRenaming"), 0)) { - ZEPHIR_GLOBAL(orm).column_renaming = zend_is_true(&columnRenaming); - } - ZEPHIR_OBS_VAR(¬NullValidations); - if (zephir_array_isset_string_fetch(¬NullValidations, &options, SL("notNullValidations"), 0)) { - ZEPHIR_GLOBAL(orm).not_null_validations = zend_is_true(¬NullValidations); - } - ZEPHIR_OBS_VAR(&exceptionOnFailedSave); - if (zephir_array_isset_string_fetch(&exceptionOnFailedSave, &options, SL("exceptionOnFailedSave"), 0)) { - ZEPHIR_GLOBAL(orm).exception_on_failed_save = zend_is_true(&exceptionOnFailedSave); - } - ZEPHIR_OBS_VAR(&exceptionOnFailedMetaDataSave); - if (zephir_array_isset_string_fetch(&exceptionOnFailedMetaDataSave, &options, SL("exceptionOnFailedMetaDataSave"), 0)) { - ZEPHIR_GLOBAL(orm).exception_on_failed_metadata_save = zend_is_true(&exceptionOnFailedMetaDataSave); - } - ZEPHIR_OBS_VAR(&phqlLiterals); - if (zephir_array_isset_string_fetch(&phqlLiterals, &options, SL("phqlLiterals"), 0)) { - ZEPHIR_GLOBAL(orm).enable_literals = zend_is_true(&phqlLiterals); - } - ZEPHIR_OBS_VAR(&lateStateBinding); - if (zephir_array_isset_string_fetch(&lateStateBinding, &options, SL("lateStateBinding"), 0)) { - ZEPHIR_GLOBAL(orm).late_state_binding = zend_is_true(&lateStateBinding); - } - ZEPHIR_OBS_VAR(&castOnHydrate); - if (zephir_array_isset_string_fetch(&castOnHydrate, &options, SL("castOnHydrate"), 0)) { - ZEPHIR_GLOBAL(orm).cast_on_hydrate = zend_is_true(&castOnHydrate); - } - ZEPHIR_OBS_VAR(&ignoreUnknownColumns); - if (zephir_array_isset_string_fetch(&ignoreUnknownColumns, &options, SL("ignoreUnknownColumns"), 0)) { - ZEPHIR_GLOBAL(orm).ignore_unknown_columns = zend_is_true(&ignoreUnknownColumns); - } - ZEPHIR_OBS_VAR(&caseInsensitiveColumnMap); - if (zephir_array_isset_string_fetch(&caseInsensitiveColumnMap, &options, SL("caseInsensitiveColumnMap"), 0)) { - ZEPHIR_GLOBAL(orm).case_insensitive_column_map = zend_is_true(&caseInsensitiveColumnMap); - } - ZEPHIR_OBS_VAR(&updateSnapshotOnSave); - if (zephir_array_isset_string_fetch(&updateSnapshotOnSave, &options, SL("updateSnapshotOnSave"), 0)) { - ZEPHIR_GLOBAL(orm).update_snapshot_on_save = zend_is_true(&updateSnapshotOnSave); - } - ZEPHIR_OBS_VAR(&disableAssignSetters); - if (zephir_array_isset_string_fetch(&disableAssignSetters, &options, SL("disableAssignSetters"), 0)) { - ZEPHIR_GLOBAL(orm).disable_assign_setters = zend_is_true(&disableAssignSetters); - } - ZEPHIR_OBS_VAR(&prefetchRecords); - if (zephir_array_isset_string_fetch(&prefetchRecords, &options, SL("prefetchRecords"), 0)) { - ZEPHIR_GLOBAL(orm).resultset_prefetch_records = Z_LVAL_P(&prefetchRecords); + zephir_read_property(&_0, this_ptr, ZEND_STRL("definition"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&definition, &_0); + if (UNEXPECTED(Z_TYPE_P(&definition) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Definition must be an array to update its parameters", "phalcon/Di/Service.zep", 240); + return; } - ZEPHIR_OBS_VAR(&lastInsertId); - if (zephir_array_isset_string_fetch(&lastInsertId, &options, SL("castLastInsertIdToInt"), 0)) { - ZEPHIR_GLOBAL(orm).cast_last_insert_id_to_int = zend_is_true(&lastInsertId); + ZEPHIR_OBS_VAR(&arguments); + if (zephir_array_isset_string_fetch(&arguments, &definition, SL("arguments"), 0)) { + zephir_array_update_long(&arguments, position, ¶meter, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + } else { + ZEPHIR_INIT_VAR(&_1$$5); + zephir_create_array(&_1$$5, 1, 0); + zephir_array_update_long(&_1$$5, position, ¶meter, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + ZEPHIR_CPY_WRT(&arguments, &_1$$5); } - ZEPHIR_MM_RESTORE(); + zephir_array_update_string(&definition, SL("arguments"), &arguments, PH_COPY | PH_SEPARATE); + zephir_update_property_zval(this_ptr, ZEND_STRL("definition"), &definition); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model, setWriteConnectionService) +static PHP_METHOD(Phalcon_Di_Service, setShared) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *connectionService_param = NULL, _0; - zval connectionService; + zval *shared_param = NULL, __$true, __$false; + zend_bool shared; zval *this_ptr = getThis(); - ZVAL_UNDEF(&connectionService); - ZVAL_UNDEF(&_0); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(connectionService) + Z_PARAM_BOOL(shared) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &connectionService_param); - if (UNEXPECTED(Z_TYPE_P(connectionService_param) != IS_STRING && Z_TYPE_P(connectionService_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'connectionService' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(connectionService_param) == IS_STRING)) { - zephir_get_strval(&connectionService, connectionService_param); - } else { - ZEPHIR_INIT_VAR(&connectionService); - } + zephir_fetch_params_without_memory_grow(1, 0, &shared_param); + shared = zephir_get_boolval(shared_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_0, "setwriteconnectionservice", NULL, 0, this_ptr, &connectionService); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + if (shared) { + zephir_update_property_zval(this_ptr, ZEND_STRL("shared"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("shared"), &__$false); + } } -static PHP_METHOD(Phalcon_Mvc_Model, skipOperation) +static PHP_METHOD(Phalcon_Di_Service, setSharedInstance) { - zval *skip_param = NULL, __$true, __$false; - zend_bool skip; + zval *sharedInstance, sharedInstance_sub; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&sharedInstance_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(skip) + Z_PARAM_ZVAL(sharedInstance) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &skip_param); - skip = zephir_get_boolval(skip_param); + zephir_fetch_params_without_memory_grow(1, 0, &sharedInstance); - if (skip) { - zephir_update_property_zval(this_ptr, ZEND_STRL("skipped"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("skipped"), &__$false); - } + zephir_update_property_zval(this_ptr, ZEND_STRL("sharedInstance"), sharedInstance); } -static PHP_METHOD(Phalcon_Mvc_Model, sum) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Di_ServiceInterface) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *parameters = NULL, parameters_sub, __$null, _0, _1; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Di, ServiceInterface, phalcon, di_serviceinterface, phalcon_di_serviceinterface_method_entry); - ZVAL_UNDEF(¶meters_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(parameters) - ZEND_PARSE_PARAMETERS_END(); + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, getDefinition); +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, getParameter); +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, isResolved); +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, isShared); +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, resolve); +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, setDefinition); +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, setParameter); +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceInterface, setShared); + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, ¶meters); - if (!parameters) { - parameters = ¶meters_sub; - parameters = &__$null; - } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "SUM"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "sumatory"); - ZEPHIR_RETURN_CALL_SELF("groupresult", NULL, 0, &_0, &_1, parameters); - zephir_check_call_status(); - RETURN_MM(); + +ZEPHIR_INIT_CLASS(Phalcon_Di_ServiceProviderInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Di, ServiceProviderInterface, phalcon, di_serviceproviderinterface, phalcon_di_serviceproviderinterface_method_entry); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model, toArray) +ZEPHIR_DOC_METHOD(Phalcon_Di_ServiceProviderInterface, register); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Di_Service_Builder) { - zend_bool _3$$4, _9$$14; - zval data; + ZEPHIR_REGISTER_CLASS(Phalcon\\Di\\Service, Builder, phalcon, di_service_builder, phalcon_di_service_builder_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Di_Service_Builder, build) +{ + zend_string *_4$$10, *_28$$25; + zend_ulong _3$$10, _27$$25; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL, *_8 = NULL; + zephir_fcall_cache_entry *_7 = NULL, *_36 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *columns = NULL, columns_sub, __$null, metaData, columnMap, attribute, attributeField, value, _0, *_1, _2, _4$$5, _6$$7, _7$$7, _10$$15, _11$$17, _12$$17; + zval definition; + zval *container, container_sub, *definition_param = NULL, *parameters = NULL, parameters_sub, __$null, className, arguments, paramCalls, methodPosition, method, methodName, methodCall, instance, propertyPosition, property, propertyName, propertyValue, _0$$8, *_1$$10, _2$$10, _5$$14, _6$$14, _8$$15, _9$$15, _10$$17, _11$$17, _12$$18, _13$$18, _14$$13, _15$$20, _16$$20, _17$$21, _18$$21, _19$$19, _24$$19, _20$$23, _21$$23, _22$$24, _23$$24, *_25$$25, _26$$25, _29$$29, _30$$29, _31$$30, _32$$30, _33$$31, _34$$31, _35$$28, _37$$33, _38$$33, _39$$34, _40$$34, _41$$35, _42$$35, _43$$32; zval *this_ptr = getThis(); - ZVAL_UNDEF(&columns_sub); + ZVAL_UNDEF(&container_sub); + ZVAL_UNDEF(¶meters_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&metaData); - ZVAL_UNDEF(&columnMap); - ZVAL_UNDEF(&attribute); - ZVAL_UNDEF(&attributeField); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_6$$7); - ZVAL_UNDEF(&_7$$7); - ZVAL_UNDEF(&_10$$15); + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&arguments); + ZVAL_UNDEF(¶mCalls); + ZVAL_UNDEF(&methodPosition); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&methodName); + ZVAL_UNDEF(&methodCall); + ZVAL_UNDEF(&instance); + ZVAL_UNDEF(&propertyPosition); + ZVAL_UNDEF(&property); + ZVAL_UNDEF(&propertyName); + ZVAL_UNDEF(&propertyValue); + ZVAL_UNDEF(&_0$$8); + ZVAL_UNDEF(&_2$$10); + ZVAL_UNDEF(&_5$$14); + ZVAL_UNDEF(&_6$$14); + ZVAL_UNDEF(&_8$$15); + ZVAL_UNDEF(&_9$$15); + ZVAL_UNDEF(&_10$$17); ZVAL_UNDEF(&_11$$17); - ZVAL_UNDEF(&_12$$17); - ZVAL_UNDEF(&data); + ZVAL_UNDEF(&_12$$18); + ZVAL_UNDEF(&_13$$18); + ZVAL_UNDEF(&_14$$13); + ZVAL_UNDEF(&_15$$20); + ZVAL_UNDEF(&_16$$20); + ZVAL_UNDEF(&_17$$21); + ZVAL_UNDEF(&_18$$21); + ZVAL_UNDEF(&_19$$19); + ZVAL_UNDEF(&_24$$19); + ZVAL_UNDEF(&_20$$23); + ZVAL_UNDEF(&_21$$23); + ZVAL_UNDEF(&_22$$24); + ZVAL_UNDEF(&_23$$24); + ZVAL_UNDEF(&_26$$25); + ZVAL_UNDEF(&_29$$29); + ZVAL_UNDEF(&_30$$29); + ZVAL_UNDEF(&_31$$30); + ZVAL_UNDEF(&_32$$30); + ZVAL_UNDEF(&_33$$31); + ZVAL_UNDEF(&_34$$31); + ZVAL_UNDEF(&_35$$28); + ZVAL_UNDEF(&_37$$33); + ZVAL_UNDEF(&_38$$33); + ZVAL_UNDEF(&_39$$34); + ZVAL_UNDEF(&_40$$34); + ZVAL_UNDEF(&_41$$35); + ZVAL_UNDEF(&_42$$35); + ZVAL_UNDEF(&_43$$32); + ZVAL_UNDEF(&definition); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + Z_PARAM_ARRAY(definition) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(columns) + Z_PARAM_ZVAL_OR_NULL(parameters) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &columns); - if (!columns) { - columns = &columns_sub; - columns = &__$null; + zephir_fetch_params(1, 2, 1, &container, &definition_param, ¶meters); + ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); + if (!parameters) { + parameters = ¶meters_sub; + parameters = &__$null; } - ZEPHIR_INIT_VAR(&data); - array_init(&data); - ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getcolumnmap", NULL, 0, this_ptr); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, &metaData, "getattributes", NULL, 0, this_ptr); - zephir_check_call_status(); - zephir_is_iterable(&_0, 0, "phalcon/Mvc/Model.zep", 3148); - if (Z_TYPE_P(&_0) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _1) - { - ZEPHIR_INIT_NVAR(&attribute); - ZVAL_COPY(&attribute, _1); - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - _3$$4 = !(zephir_array_isset(&columnMap, &attribute)); - if (_3$$4) { - _3$$4 = ZEPHIR_GLOBAL(orm).case_insensitive_column_map; + ZEPHIR_OBS_VAR(&className); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&className, &definition, SL("className"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Invalid service definition. Missing 'className' parameter", "phalcon/Di/Service/Builder.zep", 41); + return; + } + if (Z_TYPE_P(parameters) == IS_ARRAY) { + if (zephir_fast_count_int(parameters)) { + ZEPHIR_INIT_VAR(&instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(&instance, &className, parameters); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(&instance, &className); + zephir_check_call_status(); + } + } else { + ZEPHIR_OBS_VAR(&arguments); + if (zephir_array_isset_string_fetch(&arguments, &definition, SL("arguments"), 0)) { + ZEPHIR_CALL_METHOD(&_0$$8, this_ptr, "buildparameters", NULL, 222, container, &arguments); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(&instance, &className, &_0$$8); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&instance); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(&instance, &className); + zephir_check_call_status(); + } + } + ZEPHIR_OBS_VAR(¶mCalls); + if (zephir_array_isset_string_fetch(¶mCalls, &definition, SL("calls"), 0)) { + if (UNEXPECTED(Z_TYPE_P(&instance) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The definition has setter injection parameters but the constructor didn't return an instance", "phalcon/Di/Service/Builder.zep", 83); + return; + } + if (UNEXPECTED(Z_TYPE_P(¶mCalls) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Setter injection parameters must be an array", "phalcon/Di/Service/Builder.zep", 89); + return; + } + zephir_is_iterable(¶mCalls, 0, "phalcon/Di/Service/Builder.zep", 148); + if (Z_TYPE_P(¶mCalls) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(¶mCalls), _3$$10, _4$$10, _1$$10) + { + ZEPHIR_INIT_NVAR(&methodPosition); + if (_4$$10 != NULL) { + ZVAL_STR_COPY(&methodPosition, _4$$10); + } else { + ZVAL_LONG(&methodPosition, _3$$10); } - if (_3$$4) { - ZEPHIR_CALL_SELF(&_4$$5, "caseinsensitivecolumnmap", &_5, 431, &columnMap, &attribute); + ZEPHIR_INIT_NVAR(&method); + ZVAL_COPY(&method, _1$$10); + if (UNEXPECTED(Z_TYPE_P(&method) != IS_ARRAY)) { + ZEPHIR_INIT_NVAR(&_5$$14); + object_init_ex(&_5$$14, phalcon_di_exception_ce); + ZEPHIR_INIT_NVAR(&_6$$14); + ZEPHIR_CONCAT_SV(&_6$$14, "Method call must be an array on position ", &methodPosition); + ZEPHIR_CALL_METHOD(NULL, &_5$$14, "__construct", &_7, 8, &_6$$14); zephir_check_call_status(); - ZEPHIR_CPY_WRT(&attribute, &_4$$5); + zephir_throw_exception_debug(&_5$$14, "phalcon/Di/Service/Builder.zep", 103); + ZEPHIR_MM_RESTORE(); + return; } - ZEPHIR_OBS_NVAR(&attributeField); - if (!(zephir_array_isset_fetch(&attributeField, &columnMap, &attribute, 0))) { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_6$$7); - object_init_ex(&_6$$7, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_7$$7); - ZEPHIR_CONCAT_SVS(&_7$$7, "Column '", &attribute, "' doesn't make part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_6$$7, "__construct", &_8, 8, &_7$$7); + ZEPHIR_OBS_NVAR(&methodName); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&methodName, &method, SL("method"), 0)))) { + ZEPHIR_INIT_NVAR(&_8$$15); + object_init_ex(&_8$$15, phalcon_di_exception_ce); + ZEPHIR_INIT_NVAR(&_9$$15); + ZEPHIR_CONCAT_SV(&_9$$15, "The method name is required on position ", &methodPosition); + ZEPHIR_CALL_METHOD(NULL, &_8$$15, "__construct", &_7, 8, &_9$$15); + zephir_check_call_status(); + zephir_throw_exception_debug(&_8$$15, "phalcon/Di/Service/Builder.zep", 112); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_NVAR(&methodCall); + zephir_create_array(&methodCall, 2, 0); + zephir_array_fast_append(&methodCall, &instance); + zephir_array_fast_append(&methodCall, &methodName); + ZEPHIR_OBS_NVAR(&arguments); + if (zephir_array_isset_string_fetch(&arguments, &method, SL("arguments"), 0)) { + if (UNEXPECTED(Z_TYPE_P(&arguments) != IS_ARRAY)) { + ZEPHIR_INIT_NVAR(&_10$$17); + object_init_ex(&_10$$17, phalcon_di_exception_ce); + ZEPHIR_INIT_NVAR(&_11$$17); + ZEPHIR_CONCAT_SV(&_11$$17, "Call arguments must be an array ", &methodPosition); + ZEPHIR_CALL_METHOD(NULL, &_10$$17, "__construct", &_7, 8, &_11$$17); zephir_check_call_status(); - zephir_throw_exception_debug(&_6$$7, "phalcon/Mvc/Model.zep", 3126); + zephir_throw_exception_debug(&_10$$17, "phalcon/Di/Service/Builder.zep", 124); ZEPHIR_MM_RESTORE(); return; } - continue; - } - } else { - ZEPHIR_CPY_WRT(&attributeField, &attribute); - } - if (Z_TYPE_P(columns) == IS_ARRAY) { - if (!(zephir_fast_in_array(&attributeField, columns))) { - continue; + if (zephir_fast_count_int(&arguments)) { + ZEPHIR_INIT_NVAR(&_12$$18); + ZEPHIR_CALL_METHOD(&_13$$18, this_ptr, "buildparameters", NULL, 222, container, &arguments); + zephir_check_call_status(); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_12$$18, &methodCall, &_13$$18); + zephir_check_call_status(); + continue; + } } - } - ZEPHIR_OBS_NVAR(&value); - if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { - zephir_array_update_zval(&data, &attributeField, &value, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&data, &attributeField, &__$null, PH_COPY | PH_SEPARATE); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &_0, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&attribute, &_0, "current", NULL, 0); + ZEPHIR_INIT_NVAR(&_14$$13); + ZEPHIR_CALL_USER_FUNC(&_14$$13, &methodCall); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, ¶mCalls, "rewind", NULL, 0); zephir_check_call_status(); - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - _9$$14 = !(zephir_array_isset(&columnMap, &attribute)); - if (_9$$14) { - _9$$14 = ZEPHIR_GLOBAL(orm).case_insensitive_column_map; + while (1) { + ZEPHIR_CALL_METHOD(&_2$$10, ¶mCalls, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2$$10)) { + break; + } + ZEPHIR_CALL_METHOD(&methodPosition, ¶mCalls, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&method, ¶mCalls, "current", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&method) != IS_ARRAY)) { + ZEPHIR_INIT_NVAR(&_15$$20); + object_init_ex(&_15$$20, phalcon_di_exception_ce); + ZEPHIR_INIT_NVAR(&_16$$20); + ZEPHIR_CONCAT_SV(&_16$$20, "Method call must be an array on position ", &methodPosition); + ZEPHIR_CALL_METHOD(NULL, &_15$$20, "__construct", &_7, 8, &_16$$20); + zephir_check_call_status(); + zephir_throw_exception_debug(&_15$$20, "phalcon/Di/Service/Builder.zep", 103); + ZEPHIR_MM_RESTORE(); + return; } - if (_9$$14) { - ZEPHIR_CALL_SELF(&_10$$15, "caseinsensitivecolumnmap", &_5, 431, &columnMap, &attribute); + ZEPHIR_OBS_NVAR(&methodName); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&methodName, &method, SL("method"), 0)))) { + ZEPHIR_INIT_NVAR(&_17$$21); + object_init_ex(&_17$$21, phalcon_di_exception_ce); + ZEPHIR_INIT_NVAR(&_18$$21); + ZEPHIR_CONCAT_SV(&_18$$21, "The method name is required on position ", &methodPosition); + ZEPHIR_CALL_METHOD(NULL, &_17$$21, "__construct", &_7, 8, &_18$$21); zephir_check_call_status(); - ZEPHIR_CPY_WRT(&attribute, &_10$$15); + zephir_throw_exception_debug(&_17$$21, "phalcon/Di/Service/Builder.zep", 112); + ZEPHIR_MM_RESTORE(); + return; } - ZEPHIR_OBS_NVAR(&attributeField); - if (!(zephir_array_isset_fetch(&attributeField, &columnMap, &attribute, 0))) { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_11$$17); - object_init_ex(&_11$$17, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_12$$17); - ZEPHIR_CONCAT_SVS(&_12$$17, "Column '", &attribute, "' doesn't make part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_11$$17, "__construct", &_8, 8, &_12$$17); + ZEPHIR_INIT_NVAR(&_19$$19); + zephir_create_array(&_19$$19, 2, 0); + zephir_array_fast_append(&_19$$19, &instance); + zephir_array_fast_append(&_19$$19, &methodName); + ZEPHIR_CPY_WRT(&methodCall, &_19$$19); + ZEPHIR_OBS_NVAR(&arguments); + if (zephir_array_isset_string_fetch(&arguments, &method, SL("arguments"), 0)) { + if (UNEXPECTED(Z_TYPE_P(&arguments) != IS_ARRAY)) { + ZEPHIR_INIT_NVAR(&_20$$23); + object_init_ex(&_20$$23, phalcon_di_exception_ce); + ZEPHIR_INIT_NVAR(&_21$$23); + ZEPHIR_CONCAT_SV(&_21$$23, "Call arguments must be an array ", &methodPosition); + ZEPHIR_CALL_METHOD(NULL, &_20$$23, "__construct", &_7, 8, &_21$$23); zephir_check_call_status(); - zephir_throw_exception_debug(&_11$$17, "phalcon/Mvc/Model.zep", 3126); + zephir_throw_exception_debug(&_20$$23, "phalcon/Di/Service/Builder.zep", 124); ZEPHIR_MM_RESTORE(); return; } - continue; - } - } else { - ZEPHIR_CPY_WRT(&attributeField, &attribute); - } - if (Z_TYPE_P(columns) == IS_ARRAY) { - if (!(zephir_fast_in_array(&attributeField, columns))) { - continue; + if (zephir_fast_count_int(&arguments)) { + ZEPHIR_INIT_NVAR(&_22$$24); + ZEPHIR_CALL_METHOD(&_23$$24, this_ptr, "buildparameters", NULL, 222, container, &arguments); + zephir_check_call_status(); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_22$$24, &methodCall, &_23$$24); + zephir_check_call_status(); + continue; + } } - } - ZEPHIR_OBS_NVAR(&value); - if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { - zephir_array_update_zval(&data, &attributeField, &value, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&data, &attributeField, &__$null, PH_COPY | PH_SEPARATE); - } - ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); - zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_24$$19); + ZEPHIR_CALL_USER_FUNC(&_24$$19, &methodCall); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, ¶mCalls, "next", NULL, 0); + zephir_check_call_status(); + } } + ZEPHIR_INIT_NVAR(&method); + ZEPHIR_INIT_NVAR(&methodPosition); } - ZEPHIR_INIT_NVAR(&attribute); - RETURN_CTOR(&data); -} - -static PHP_METHOD(Phalcon_Mvc_Model, update) -{ - zval _3$$4; - zval metaData, _0, _1$$3, _2$$3, _4$$4, _5$$4, _6$$4, _7$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&metaData); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_3$$4); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("dirtyState"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_0)) { - ZEPHIR_CALL_METHOD(&metaData, this_ptr, "getmodelsmetadata", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2$$3, this_ptr, "getreadconnection", NULL, 443); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1$$3, this_ptr, "exists", NULL, 0, &metaData, &_2$$3); - zephir_check_call_status(); - if (!(zephir_is_true(&_1$$3))) { - ZEPHIR_INIT_VAR(&_3$$4); - zephir_create_array(&_3$$4, 1, 0); - ZEPHIR_INIT_VAR(&_4$$4); - object_init_ex(&_4$$4, phalcon_messages_message_ce); - ZEPHIR_INIT_VAR(&_5$$4); - ZVAL_STRING(&_5$$4, "Record cannot be updated because it does not exist"); - ZVAL_NULL(&_6$$4); - ZEPHIR_INIT_VAR(&_7$$4); - ZVAL_STRING(&_7$$4, "InvalidUpdateAttempt"); - ZEPHIR_CALL_METHOD(NULL, &_4$$4, "__construct", NULL, 6, &_5$$4, &_6$$4, &_7$$4); - zephir_check_call_status(); - zephir_array_fast_append(&_3$$4, &_4$$4); - zephir_update_property_zval(this_ptr, ZEND_STRL("errorMessages"), &_3$$4); - RETURN_MM_BOOL(0); + ZEPHIR_OBS_NVAR(¶mCalls); + if (zephir_array_isset_string_fetch(¶mCalls, &definition, SL("properties"), 0)) { + if (UNEXPECTED(Z_TYPE_P(&instance) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The definition has properties injection parameters but the constructor didn't return an instance", "phalcon/Di/Service/Builder.zep", 158); + return; } - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "save", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Mvc_Model, writeAttribute) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *attribute_param = NULL, *value, value_sub; - zval attribute; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&attribute); - ZVAL_UNDEF(&value_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(attribute) - Z_PARAM_ZVAL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &attribute_param, &value); - if (UNEXPECTED(Z_TYPE_P(attribute_param) != IS_STRING && Z_TYPE_P(attribute_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'attribute' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(attribute_param) == IS_STRING)) { - zephir_get_strval(&attribute, attribute_param); - } else { - ZEPHIR_INIT_VAR(&attribute); - } - - - zephir_update_property_zval_zval(this_ptr, &attribute, value); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysRestrict) -{ - zend_string *_9$$7, *_30$$26; - zend_ulong _8$$7, _29$$26; - zend_bool error = 0, validateWithNulls = 0, _15$$3, _36$$22; - zval conditions, _17$$3, _38$$22; - zval manager, belongsTo, foreignKey, relation, position, bindParams, extraConditions, message, fields, referencedFields, field, referencedModel, value, allowNulls, _0, *_1, _2, _3$$5, _4$$3, _16$$3, _18$$3, *_6$$7, _7$$7, _10$$8, _11$$8, _12$$10, _13$$10, _14$$12, _19$$20, _20$$18, _21$$18, _24$$24, _25$$22, _37$$22, _39$$22, *_27$$26, _28$$26, _31$$27, _32$$27, _33$$29, _34$$29, _35$$31, _40$$39, _41$$37, _42$$37, _43$$42; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL, *_22 = NULL, *_23 = NULL, *_26 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, action = 0, numberNull = 0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&belongsTo); - ZVAL_UNDEF(&foreignKey); - ZVAL_UNDEF(&relation); - ZVAL_UNDEF(&position); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&extraConditions); - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&fields); - ZVAL_UNDEF(&referencedFields); - ZVAL_UNDEF(&field); - ZVAL_UNDEF(&referencedModel); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&allowNulls); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_16$$3); - ZVAL_UNDEF(&_18$$3); - ZVAL_UNDEF(&_7$$7); - ZVAL_UNDEF(&_10$$8); - ZVAL_UNDEF(&_11$$8); - ZVAL_UNDEF(&_12$$10); - ZVAL_UNDEF(&_13$$10); - ZVAL_UNDEF(&_14$$12); - ZVAL_UNDEF(&_19$$20); - ZVAL_UNDEF(&_20$$18); - ZVAL_UNDEF(&_21$$18); - ZVAL_UNDEF(&_24$$24); - ZVAL_UNDEF(&_25$$22); - ZVAL_UNDEF(&_37$$22); - ZVAL_UNDEF(&_39$$22); - ZVAL_UNDEF(&_28$$26); - ZVAL_UNDEF(&_31$$27); - ZVAL_UNDEF(&_32$$27); - ZVAL_UNDEF(&_33$$29); - ZVAL_UNDEF(&_34$$29); - ZVAL_UNDEF(&_35$$31); - ZVAL_UNDEF(&_40$$39); - ZVAL_UNDEF(&_41$$37); - ZVAL_UNDEF(&_42$$37); - ZVAL_UNDEF(&_43$$42); - ZVAL_UNDEF(&conditions); - ZVAL_UNDEF(&_17$$3); - ZVAL_UNDEF(&_38$$22); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&manager, &_0); - ZEPHIR_CALL_METHOD(&belongsTo, &manager, "getbelongsto", NULL, 0, this_ptr); - zephir_check_call_status(); - error = 0; - zephir_is_iterable(&belongsTo, 0, "phalcon/Mvc/Model.zep", 3359); - if (Z_TYPE_P(&belongsTo) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&belongsTo), _1) - { - ZEPHIR_INIT_NVAR(&relation); - ZVAL_COPY(&relation, _1); - validateWithNulls = 0; - ZEPHIR_CALL_METHOD(&foreignKey, &relation, "getforeignkey", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&foreignKey)) { - continue; - } - action = 1; - if (zephir_array_isset_string(&foreignKey, SL("action"))) { - ZEPHIR_OBS_NVAR(&_3$$5); - zephir_array_fetch_string(&_3$$5, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3250); - action = zephir_get_intval(&_3$$5); - } - if (action != 1) { - continue; - } - ZEPHIR_CALL_METHOD(&_4$$3, &relation, "getreferencedmodel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&referencedModel, &manager, "load", &_5, 0, &_4$$3); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&conditions); - array_init(&conditions); - ZEPHIR_INIT_NVAR(&bindParams); - array_init(&bindParams); - numberNull = 0; - ZEPHIR_CALL_METHOD(&fields, &relation, "getfields", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&referencedFields, &relation, "getreferencedfields", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&fields) == IS_ARRAY) { - zephir_is_iterable(&fields, 0, "phalcon/Mvc/Model.zep", 3293); - if (Z_TYPE_P(&fields) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&fields), _8$$7, _9$$7, _6$$7) - { - ZEPHIR_INIT_NVAR(&position); - if (_9$$7 != NULL) { - ZVAL_STR_COPY(&position, _9$$7); - } else { - ZVAL_LONG(&position, _8$$7); - } - ZEPHIR_INIT_NVAR(&field); - ZVAL_COPY(&field, _6$$7); - ZEPHIR_OBS_NVAR(&value); - zephir_fetch_property_zval(&value, this_ptr, &field, PH_SILENT_CC); - zephir_array_fetch(&_10$$8, &referencedFields, &position, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3285); - ZEPHIR_INIT_NVAR(&_11$$8); - ZEPHIR_CONCAT_SVSV(&_11$$8, "[", &_10$$8, "] = ?", &position); - zephir_array_append(&conditions, &_11$$8, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3285); - zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3286); - if (Z_TYPE_P(&value) == IS_NULL) { - numberNull++; - } - } ZEND_HASH_FOREACH_END(); + if (UNEXPECTED(Z_TYPE_P(¶mCalls) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "Setter injection parameters must be an array", "phalcon/Di/Service/Builder.zep", 164); + return; + } + zephir_is_iterable(¶mCalls, 0, "phalcon/Di/Service/Builder.zep", 208); + if (Z_TYPE_P(¶mCalls) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(¶mCalls), _27$$25, _28$$25, _25$$25) + { + ZEPHIR_INIT_NVAR(&propertyPosition); + if (_28$$25 != NULL) { + ZVAL_STR_COPY(&propertyPosition, _28$$25); } else { - ZEPHIR_CALL_METHOD(NULL, &fields, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_7$$7, &fields, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_7$$7)) { - break; - } - ZEPHIR_CALL_METHOD(&position, &fields, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&field, &fields, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&value); - zephir_fetch_property_zval(&value, this_ptr, &field, PH_SILENT_CC); - zephir_array_fetch(&_12$$10, &referencedFields, &position, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3285); - ZEPHIR_INIT_NVAR(&_13$$10); - ZEPHIR_CONCAT_SVSV(&_13$$10, "[", &_12$$10, "] = ?", &position); - zephir_array_append(&conditions, &_13$$10, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3285); - zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3286); - if (Z_TYPE_P(&value) == IS_NULL) { - numberNull++; - } - ZEPHIR_CALL_METHOD(NULL, &fields, "next", NULL, 0); - zephir_check_call_status(); - } + ZVAL_LONG(&propertyPosition, _27$$25); } - ZEPHIR_INIT_NVAR(&field); - ZEPHIR_INIT_NVAR(&position); - validateWithNulls = numberNull == zephir_fast_count_int(&fields); - } else { - ZEPHIR_OBS_NVAR(&value); - zephir_fetch_property_zval(&value, this_ptr, &fields, PH_SILENT_CC); - ZEPHIR_INIT_NVAR(&_14$$12); - ZEPHIR_CONCAT_SVS(&_14$$12, "[", &referencedFields, "] = ?0"); - zephir_array_append(&conditions, &_14$$12, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3297); - zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3298); - if (Z_TYPE_P(&value) == IS_NULL) { - validateWithNulls = 1; + ZEPHIR_INIT_NVAR(&property); + ZVAL_COPY(&property, _25$$25); + if (UNEXPECTED(Z_TYPE_P(&property) != IS_ARRAY)) { + ZEPHIR_INIT_NVAR(&_29$$29); + object_init_ex(&_29$$29, phalcon_di_exception_ce); + ZEPHIR_INIT_NVAR(&_30$$29); + ZEPHIR_CONCAT_SV(&_30$$29, "Property must be an array on position ", &propertyPosition); + ZEPHIR_CALL_METHOD(NULL, &_29$$29, "__construct", &_7, 8, &_30$$29); + zephir_check_call_status(); + zephir_throw_exception_debug(&_29$$29, "phalcon/Di/Service/Builder.zep", 178); + ZEPHIR_MM_RESTORE(); + return; } - } - ZEPHIR_OBS_NVAR(&extraConditions); - if (zephir_array_isset_string_fetch(&extraConditions, &foreignKey, SL("conditions"), 0)) { - zephir_array_append(&conditions, &extraConditions, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3309); - } - if (validateWithNulls) { - ZEPHIR_OBS_NVAR(&allowNulls); - if (zephir_array_isset_string_fetch(&allowNulls, &foreignKey, SL("allowNulls"), 0)) { - validateWithNulls = zephir_get_boolval(&allowNulls); - } else { - validateWithNulls = 0; + ZEPHIR_OBS_NVAR(&propertyName); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&propertyName, &property, SL("name"), 0)))) { + ZEPHIR_INIT_NVAR(&_31$$30); + object_init_ex(&_31$$30, phalcon_di_exception_ce); + ZEPHIR_INIT_NVAR(&_32$$30); + ZEPHIR_CONCAT_SV(&_32$$30, "The property name is required on position ", &propertyPosition); + ZEPHIR_CALL_METHOD(NULL, &_31$$30, "__construct", &_7, 8, &_32$$30); + zephir_check_call_status(); + zephir_throw_exception_debug(&_31$$30, "phalcon/Di/Service/Builder.zep", 187); + ZEPHIR_MM_RESTORE(); + return; } - } - _15$$3 = !validateWithNulls; - if (_15$$3) { - ZEPHIR_INIT_NVAR(&_17$$3); - zephir_create_array(&_17$$3, 2, 0); - ZEPHIR_INIT_NVAR(&_18$$3); - zephir_fast_join_str(&_18$$3, SL(" AND "), &conditions); - zephir_array_fast_append(&_17$$3, &_18$$3); - zephir_array_update_string(&_17$$3, SL("bind"), &bindParams, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_16$$3, &referencedModel, "count", NULL, 0, &_17$$3); - zephir_check_call_status(); - _15$$3 = !zephir_is_true(&_16$$3); - } - if (_15$$3) { - ZEPHIR_OBS_NVAR(&message); - if (!(zephir_array_isset_string_fetch(&message, &foreignKey, SL("message"), 0))) { - ZEPHIR_INIT_NVAR(&message); - if (Z_TYPE_P(&fields) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&_19$$20); - zephir_fast_join_str(&_19$$20, SL(", "), &fields); - ZEPHIR_CONCAT_SVS(&message, "Value of fields \"", &_19$$20, "\" does not exist on referenced table"); - } else { - ZEPHIR_CONCAT_SVS(&message, "Value of field \"", &fields, "\" does not exist on referenced table"); - } + ZEPHIR_OBS_NVAR(&propertyValue); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&propertyValue, &property, SL("value"), 0)))) { + ZEPHIR_INIT_NVAR(&_33$$31); + object_init_ex(&_33$$31, phalcon_di_exception_ce); + ZEPHIR_INIT_NVAR(&_34$$31); + ZEPHIR_CONCAT_SV(&_34$$31, "The property value is required on position ", &propertyPosition); + ZEPHIR_CALL_METHOD(NULL, &_33$$31, "__construct", &_7, 8, &_34$$31); + zephir_check_call_status(); + zephir_throw_exception_debug(&_33$$31, "phalcon/Di/Service/Builder.zep", 196); + ZEPHIR_MM_RESTORE(); + return; } - ZEPHIR_INIT_NVAR(&_20$$18); - object_init_ex(&_20$$18, phalcon_messages_message_ce); - ZEPHIR_INIT_NVAR(&_21$$18); - ZVAL_STRING(&_21$$18, "ConstraintViolation"); - ZEPHIR_CALL_METHOD(NULL, &_20$$18, "__construct", &_22, 6, &message, &fields, &_21$$18); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_23, 0, &_20$$18); + ZEPHIR_CALL_METHOD(&_35$$28, this_ptr, "buildparameter", &_36, 223, container, &propertyPosition, &propertyValue); zephir_check_call_status(); - error = 1; - break; - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &belongsTo, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &belongsTo, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&relation, &belongsTo, "current", NULL, 0); + zephir_update_property_zval_zval(&instance, &propertyName, &_35$$28); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, ¶mCalls, "rewind", NULL, 0); zephir_check_call_status(); - validateWithNulls = 0; - ZEPHIR_CALL_METHOD(&foreignKey, &relation, "getforeignkey", NULL, 0); + while (1) { + ZEPHIR_CALL_METHOD(&_26$$25, ¶mCalls, "valid", NULL, 0); zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&foreignKey)) { - continue; - } - action = 1; - if (zephir_array_isset_string(&foreignKey, SL("action"))) { - ZEPHIR_OBS_NVAR(&_24$$24); - zephir_array_fetch_string(&_24$$24, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3250); - action = zephir_get_intval(&_24$$24); - } - if (action != 1) { - continue; + if (!zend_is_true(&_26$$25)) { + break; } - ZEPHIR_CALL_METHOD(&_25$$22, &relation, "getreferencedmodel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&referencedModel, &manager, "load", &_26, 0, &_25$$22); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&conditions); - array_init(&conditions); - ZEPHIR_INIT_NVAR(&bindParams); - array_init(&bindParams); - numberNull = 0; - ZEPHIR_CALL_METHOD(&fields, &relation, "getfields", NULL, 0); + ZEPHIR_CALL_METHOD(&propertyPosition, ¶mCalls, "key", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&referencedFields, &relation, "getreferencedfields", NULL, 0); + ZEPHIR_CALL_METHOD(&property, ¶mCalls, "current", NULL, 0); zephir_check_call_status(); - if (Z_TYPE_P(&fields) == IS_ARRAY) { - zephir_is_iterable(&fields, 0, "phalcon/Mvc/Model.zep", 3293); - if (Z_TYPE_P(&fields) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&fields), _29$$26, _30$$26, _27$$26) - { - ZEPHIR_INIT_NVAR(&position); - if (_30$$26 != NULL) { - ZVAL_STR_COPY(&position, _30$$26); - } else { - ZVAL_LONG(&position, _29$$26); - } - ZEPHIR_INIT_NVAR(&field); - ZVAL_COPY(&field, _27$$26); - ZEPHIR_OBS_NVAR(&value); - zephir_fetch_property_zval(&value, this_ptr, &field, PH_SILENT_CC); - zephir_array_fetch(&_31$$27, &referencedFields, &position, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3285); - ZEPHIR_INIT_NVAR(&_32$$27); - ZEPHIR_CONCAT_SVSV(&_32$$27, "[", &_31$$27, "] = ?", &position); - zephir_array_append(&conditions, &_32$$27, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3285); - zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3286); - if (Z_TYPE_P(&value) == IS_NULL) { - numberNull++; - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &fields, "rewind", NULL, 0); + if (UNEXPECTED(Z_TYPE_P(&property) != IS_ARRAY)) { + ZEPHIR_INIT_NVAR(&_37$$33); + object_init_ex(&_37$$33, phalcon_di_exception_ce); + ZEPHIR_INIT_NVAR(&_38$$33); + ZEPHIR_CONCAT_SV(&_38$$33, "Property must be an array on position ", &propertyPosition); + ZEPHIR_CALL_METHOD(NULL, &_37$$33, "__construct", &_7, 8, &_38$$33); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_28$$26, &fields, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_28$$26)) { - break; - } - ZEPHIR_CALL_METHOD(&position, &fields, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&field, &fields, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&value); - zephir_fetch_property_zval(&value, this_ptr, &field, PH_SILENT_CC); - zephir_array_fetch(&_33$$29, &referencedFields, &position, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3285); - ZEPHIR_INIT_NVAR(&_34$$29); - ZEPHIR_CONCAT_SVSV(&_34$$29, "[", &_33$$29, "] = ?", &position); - zephir_array_append(&conditions, &_34$$29, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3285); - zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3286); - if (Z_TYPE_P(&value) == IS_NULL) { - numberNull++; - } - ZEPHIR_CALL_METHOD(NULL, &fields, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&field); - ZEPHIR_INIT_NVAR(&position); - validateWithNulls = numberNull == zephir_fast_count_int(&fields); - } else { - ZEPHIR_OBS_NVAR(&value); - zephir_fetch_property_zval(&value, this_ptr, &fields, PH_SILENT_CC); - ZEPHIR_INIT_NVAR(&_35$$31); - ZEPHIR_CONCAT_SVS(&_35$$31, "[", &referencedFields, "] = ?0"); - zephir_array_append(&conditions, &_35$$31, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3297); - zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3298); - if (Z_TYPE_P(&value) == IS_NULL) { - validateWithNulls = 1; + zephir_throw_exception_debug(&_37$$33, "phalcon/Di/Service/Builder.zep", 178); + ZEPHIR_MM_RESTORE(); + return; } - } - ZEPHIR_OBS_NVAR(&extraConditions); - if (zephir_array_isset_string_fetch(&extraConditions, &foreignKey, SL("conditions"), 0)) { - zephir_array_append(&conditions, &extraConditions, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3309); - } - if (validateWithNulls) { - ZEPHIR_OBS_NVAR(&allowNulls); - if (zephir_array_isset_string_fetch(&allowNulls, &foreignKey, SL("allowNulls"), 0)) { - validateWithNulls = zephir_get_boolval(&allowNulls); - } else { - validateWithNulls = 0; + ZEPHIR_OBS_NVAR(&propertyName); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&propertyName, &property, SL("name"), 0)))) { + ZEPHIR_INIT_NVAR(&_39$$34); + object_init_ex(&_39$$34, phalcon_di_exception_ce); + ZEPHIR_INIT_NVAR(&_40$$34); + ZEPHIR_CONCAT_SV(&_40$$34, "The property name is required on position ", &propertyPosition); + ZEPHIR_CALL_METHOD(NULL, &_39$$34, "__construct", &_7, 8, &_40$$34); + zephir_check_call_status(); + zephir_throw_exception_debug(&_39$$34, "phalcon/Di/Service/Builder.zep", 187); + ZEPHIR_MM_RESTORE(); + return; } - } - _36$$22 = !validateWithNulls; - if (_36$$22) { - ZEPHIR_INIT_NVAR(&_38$$22); - zephir_create_array(&_38$$22, 2, 0); - ZEPHIR_INIT_NVAR(&_39$$22); - zephir_fast_join_str(&_39$$22, SL(" AND "), &conditions); - zephir_array_fast_append(&_38$$22, &_39$$22); - zephir_array_update_string(&_38$$22, SL("bind"), &bindParams, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_37$$22, &referencedModel, "count", NULL, 0, &_38$$22); - zephir_check_call_status(); - _36$$22 = !zephir_is_true(&_37$$22); - } - if (_36$$22) { - ZEPHIR_OBS_NVAR(&message); - if (!(zephir_array_isset_string_fetch(&message, &foreignKey, SL("message"), 0))) { - ZEPHIR_INIT_NVAR(&message); - if (Z_TYPE_P(&fields) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&_40$$39); - zephir_fast_join_str(&_40$$39, SL(", "), &fields); - ZEPHIR_CONCAT_SVS(&message, "Value of fields \"", &_40$$39, "\" does not exist on referenced table"); - } else { - ZEPHIR_CONCAT_SVS(&message, "Value of field \"", &fields, "\" does not exist on referenced table"); - } + ZEPHIR_OBS_NVAR(&propertyValue); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&propertyValue, &property, SL("value"), 0)))) { + ZEPHIR_INIT_NVAR(&_41$$35); + object_init_ex(&_41$$35, phalcon_di_exception_ce); + ZEPHIR_INIT_NVAR(&_42$$35); + ZEPHIR_CONCAT_SV(&_42$$35, "The property value is required on position ", &propertyPosition); + ZEPHIR_CALL_METHOD(NULL, &_41$$35, "__construct", &_7, 8, &_42$$35); + zephir_check_call_status(); + zephir_throw_exception_debug(&_41$$35, "phalcon/Di/Service/Builder.zep", 196); + ZEPHIR_MM_RESTORE(); + return; } - ZEPHIR_INIT_NVAR(&_41$$37); - object_init_ex(&_41$$37, phalcon_messages_message_ce); - ZEPHIR_INIT_NVAR(&_42$$37); - ZVAL_STRING(&_42$$37, "ConstraintViolation"); - ZEPHIR_CALL_METHOD(NULL, &_41$$37, "__construct", &_22, 6, &message, &fields, &_42$$37); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_23, 0, &_41$$37); + ZEPHIR_CALL_METHOD(&_43$$32, this_ptr, "buildparameter", &_36, 223, container, &propertyPosition, &propertyValue); zephir_check_call_status(); - error = 1; - break; - } - ZEPHIR_CALL_METHOD(NULL, &belongsTo, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&relation); - if (error) { - if (ZEPHIR_GLOBAL(orm).events) { - ZEPHIR_INIT_VAR(&_43$$42); - ZVAL_STRING(&_43$$42, "onValidationFails"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_43$$42); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "canceloperation", NULL, 0); - zephir_check_call_status(); + zephir_update_property_zval_zval(&instance, &propertyName, &_43$$32); + ZEPHIR_CALL_METHOD(NULL, ¶mCalls, "next", NULL, 0); + zephir_check_call_status(); + } } - RETURN_MM_BOOL(0); + ZEPHIR_INIT_NVAR(&property); + ZEPHIR_INIT_NVAR(&propertyPosition); } - RETURN_MM_BOOL(1); + RETURN_CCTOR(&instance); } -static PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysReverseCascade) +static PHP_METHOD(Phalcon_Di_Service_Builder, buildParameter) { - zend_bool _3$$3, _7$$9; - zval manager, relations, relation, foreignKey, related, _0, *_1, _2, _4$$5, _6$$7, _8$$11, _10$$13; + zval _2$$3, _5$$5, _8$$8, _11$$10, _14$$13; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL, *_9 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, action = 0; + zval argument; + zend_long position, ZEPHIR_LAST_CALL_STATUS; + zval *container, container_sub, *position_param = NULL, *argument_param = NULL, type, name, value, instanceArguments, _0$$3, _1$$3, _3$$5, _4$$5, _6$$8, _7$$8, _9$$10, _10$$10, _12$$13, _13$$13; zval *this_ptr = getThis(); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&relations); - ZVAL_UNDEF(&relation); - ZVAL_UNDEF(&foreignKey); - ZVAL_UNDEF(&related); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&container_sub); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&instanceArguments); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$5); ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_6$$7); - ZVAL_UNDEF(&_8$$11); - ZVAL_UNDEF(&_10$$13); + ZVAL_UNDEF(&_6$$8); + ZVAL_UNDEF(&_7$$8); + ZVAL_UNDEF(&_9$$10); + ZVAL_UNDEF(&_10$$10); + ZVAL_UNDEF(&_12$$13); + ZVAL_UNDEF(&_13$$13); + ZVAL_UNDEF(&argument); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_8$$8); + ZVAL_UNDEF(&_11$$10); + ZVAL_UNDEF(&_14$$13); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + Z_PARAM_LONG(position) + Z_PARAM_ARRAY(argument) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &container, &position_param, &argument_param); + position = zephir_get_intval(position_param); + ZEPHIR_OBS_COPY_OR_DUP(&argument, argument_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&manager, &_0); - ZEPHIR_CALL_METHOD(&relations, &manager, "gethasoneandhasmany", NULL, 0, this_ptr); - zephir_check_call_status(); - zephir_is_iterable(&relations, 0, "phalcon/Mvc/Model.zep", 3435); - if (Z_TYPE_P(&relations) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relations), _1) - { - ZEPHIR_INIT_NVAR(&relation); - ZVAL_COPY(&relation, _1); - ZEPHIR_CALL_METHOD(&foreignKey, &relation, "getforeignkey", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&foreignKey)) { - continue; - } - action = 0; - _3$$3 = Z_TYPE_P(&foreignKey) == IS_ARRAY; - if (_3$$3) { - _3$$3 = zephir_array_isset_string(&foreignKey, SL("action")); - } - if (_3$$3) { - ZEPHIR_OBS_NVAR(&_4$$5); - zephir_array_fetch_string(&_4$$5, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3409); - action = zephir_get_intval(&_4$$5); + + ZEPHIR_OBS_VAR(&type); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&type, &argument, SL("type"), 0)))) { + ZEPHIR_INIT_VAR(&_0$$3); + object_init_ex(&_0$$3, phalcon_di_exception_ce); + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_LONG(&_1$$3, position); + ZEPHIR_INIT_VAR(&_2$$3); + ZEPHIR_CONCAT_SVS(&_2$$3, "Argument at position ", &_1$$3, " must have a type"); + ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 8, &_2$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_0$$3, "phalcon/Di/Service/Builder.zep", 228); + ZEPHIR_MM_RESTORE(); + return; + } + do { + if (ZEPHIR_IS_STRING(&type, "service")) { + ZEPHIR_OBS_VAR(&name); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&name, &argument, SL("name"), 0)))) { + ZEPHIR_INIT_VAR(&_3$$5); + object_init_ex(&_3$$5, phalcon_di_exception_ce); + ZEPHIR_INIT_VAR(&_4$$5); + ZVAL_LONG(&_4$$5, position); + ZEPHIR_INIT_VAR(&_5$$5); + ZEPHIR_CONCAT_SV(&_5$$5, "Service 'name' is required in parameter on position ", &_4$$5); + ZEPHIR_CALL_METHOD(NULL, &_3$$5, "__construct", NULL, 8, &_5$$5); + zephir_check_call_status(); + zephir_throw_exception_debug(&_3$$5, "phalcon/Di/Service/Builder.zep", 241); + ZEPHIR_MM_RESTORE(); + return; } - if (action != 2) { - continue; + if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The dependency injector container is not valid", "phalcon/Di/Service/Builder.zep", 247); + return; } - ZEPHIR_CALL_METHOD(&related, &manager, "getrelationrecords", &_5, 0, &relation, this_ptr); + ZEPHIR_RETURN_CALL_METHOD(container, "get", NULL, 0, &name); zephir_check_call_status(); - if (zephir_is_true(&related)) { - ZEPHIR_CALL_METHOD(&_6$$7, &related, "delete", NULL, 0); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&type, "parameter")) { + ZEPHIR_OBS_VAR(&value); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&value, &argument, SL("value"), 0)))) { + ZEPHIR_INIT_VAR(&_6$$8); + object_init_ex(&_6$$8, phalcon_di_exception_ce); + ZEPHIR_INIT_VAR(&_7$$8); + ZVAL_LONG(&_7$$8, position); + ZEPHIR_INIT_VAR(&_8$$8); + ZEPHIR_CONCAT_SV(&_8$$8, "Service 'value' is required in parameter on position ", &_7$$8); + ZEPHIR_CALL_METHOD(NULL, &_6$$8, "__construct", NULL, 8, &_8$$8); zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_6$$7)) { - RETURN_MM_BOOL(0); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &relations, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &relations, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; + zephir_throw_exception_debug(&_6$$8, "phalcon/Di/Service/Builder.zep", 259); + ZEPHIR_MM_RESTORE(); + return; } - ZEPHIR_CALL_METHOD(&relation, &relations, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&foreignKey, &relation, "getforeignkey", NULL, 0); + RETURN_CCTOR(&value); + } + if (ZEPHIR_IS_STRING(&type, "instance")) { + ZEPHIR_OBS_NVAR(&name); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&name, &argument, SL("className"), 0)))) { + ZEPHIR_INIT_VAR(&_9$$10); + object_init_ex(&_9$$10, phalcon_di_exception_ce); + ZEPHIR_INIT_VAR(&_10$$10); + ZVAL_LONG(&_10$$10, position); + ZEPHIR_INIT_VAR(&_11$$10); + ZEPHIR_CONCAT_SV(&_11$$10, "Service 'className' is required in parameter on position ", &_10$$10); + ZEPHIR_CALL_METHOD(NULL, &_9$$10, "__construct", NULL, 8, &_11$$10); zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&foreignKey)) { - continue; - } - action = 0; - _7$$9 = Z_TYPE_P(&foreignKey) == IS_ARRAY; - if (_7$$9) { - _7$$9 = zephir_array_isset_string(&foreignKey, SL("action")); - } - if (_7$$9) { - ZEPHIR_OBS_NVAR(&_8$$11); - zephir_array_fetch_string(&_8$$11, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3409); - action = zephir_get_intval(&_8$$11); - } - if (action != 2) { - continue; - } - ZEPHIR_CALL_METHOD(&related, &manager, "getrelationrecords", &_9, 0, &relation, this_ptr); + zephir_throw_exception_debug(&_9$$10, "phalcon/Di/Service/Builder.zep", 272); + ZEPHIR_MM_RESTORE(); + return; + } + if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_di_exception_ce, "The dependency injector container is not valid", "phalcon/Di/Service/Builder.zep", 278); + return; + } + ZEPHIR_OBS_VAR(&instanceArguments); + if (zephir_array_isset_string_fetch(&instanceArguments, &argument, SL("arguments"), 0)) { + ZEPHIR_RETURN_CALL_METHOD(container, "get", NULL, 0, &name, &instanceArguments); zephir_check_call_status(); - if (zephir_is_true(&related)) { - ZEPHIR_CALL_METHOD(&_10$$13, &related, "delete", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_10$$13)) { - RETURN_MM_BOOL(0); - } - } - ZEPHIR_CALL_METHOD(NULL, &relations, "next", NULL, 0); + RETURN_MM(); + } + ZEPHIR_RETURN_CALL_METHOD(container, "get", NULL, 0, &name); zephir_check_call_status(); + RETURN_MM(); } - } - ZEPHIR_INIT_NVAR(&relation); - RETURN_MM_BOOL(1); + ZEPHIR_INIT_VAR(&_12$$13); + object_init_ex(&_12$$13, phalcon_di_exception_ce); + ZEPHIR_INIT_VAR(&_13$$13); + ZVAL_LONG(&_13$$13, position); + ZEPHIR_INIT_VAR(&_14$$13); + ZEPHIR_CONCAT_SV(&_14$$13, "Unknown service type in parameter on position ", &_13$$13); + ZEPHIR_CALL_METHOD(NULL, &_12$$13, "__construct", NULL, 8, &_14$$13); + zephir_check_call_status(); + zephir_throw_exception_debug(&_12$$13, "phalcon/Di/Service/Builder.zep", 300); + ZEPHIR_MM_RESTORE(); + return; + } while(0); + + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysReverseRestrict) +static PHP_METHOD(Phalcon_Di_Service_Builder, buildParameters) { - zval manager, relations, foreignKey, relation, relationClass, fields, message, _0, *_1, _2, _5$$3, _6$$3, _7$$3, _4$$5, _9$$7, _10$$7, _15$$9, _16$$9, _17$$9, _14$$11, _19$$13, _20$$13, _21$$16; - zend_bool error = 0, _3$$3, _13$$9; + zend_string *_3; + zend_ulong _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_8 = NULL, *_11 = NULL, *_12 = NULL, *_18 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, action = 0; + zephir_fcall_cache_entry *_5 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval arguments, buildArguments; + zval *container, container_sub, *arguments_param = NULL, position, argument, *_0, _1, _4$$3, _6$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&relations); - ZVAL_UNDEF(&foreignKey); - ZVAL_UNDEF(&relation); - ZVAL_UNDEF(&relationClass); - ZVAL_UNDEF(&fields); - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_9$$7); - ZVAL_UNDEF(&_10$$7); - ZVAL_UNDEF(&_15$$9); - ZVAL_UNDEF(&_16$$9); - ZVAL_UNDEF(&_17$$9); - ZVAL_UNDEF(&_14$$11); - ZVAL_UNDEF(&_19$$13); - ZVAL_UNDEF(&_20$$13); - ZVAL_UNDEF(&_21$$16); + ZVAL_UNDEF(&container_sub); + ZVAL_UNDEF(&position); + ZVAL_UNDEF(&argument); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&arguments); + ZVAL_UNDEF(&buildArguments); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + Z_PARAM_ARRAY(arguments) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &container, &arguments_param); + ZEPHIR_OBS_COPY_OR_DUP(&arguments, arguments_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&manager, &_0); - ZEPHIR_CALL_METHOD(&relations, &manager, "gethasoneandhasmany", NULL, 0, this_ptr); - zephir_check_call_status(); - error = 0; - zephir_is_iterable(&relations, 0, "phalcon/Mvc/Model.zep", 3521); - if (Z_TYPE_P(&relations) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relations), _1) + + ZEPHIR_INIT_VAR(&buildArguments); + array_init(&buildArguments); + zephir_is_iterable(&arguments, 0, "phalcon/Di/Service/Builder.zep", 322); + if (Z_TYPE_P(&arguments) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&arguments), _2, _3, _0) { - ZEPHIR_INIT_NVAR(&relation); - ZVAL_COPY(&relation, _1); - ZEPHIR_CALL_METHOD(&foreignKey, &relation, "getforeignkey", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&foreignKey)) { - continue; - } - action = 1; - _3$$3 = Z_TYPE_P(&foreignKey) == IS_ARRAY; - if (_3$$3) { - _3$$3 = zephir_array_isset_string(&foreignKey, SL("action")); - } - if (_3$$3) { - ZEPHIR_OBS_NVAR(&_4$$5); - zephir_array_fetch_string(&_4$$5, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3480); - action = zephir_get_intval(&_4$$5); - } - if (action != 1) { - continue; + ZEPHIR_INIT_NVAR(&position); + if (_3 != NULL) { + ZVAL_STR_COPY(&position, _3); + } else { + ZVAL_LONG(&position, _2); } - ZEPHIR_CALL_METHOD(&relationClass, &relation, "getreferencedmodel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&fields, &relation, "getfields", NULL, 0); - zephir_check_call_status(); - ZVAL_NULL(&_6$$3); - ZEPHIR_INIT_NVAR(&_7$$3); - ZVAL_STRING(&_7$$3, "count"); - ZEPHIR_CALL_METHOD(&_5$$3, &manager, "getrelationrecords", &_8, 0, &relation, this_ptr, &_6$$3, &_7$$3); + ZEPHIR_INIT_NVAR(&argument); + ZVAL_COPY(&argument, _0); + ZEPHIR_CALL_METHOD(&_4$$3, this_ptr, "buildparameter", &_5, 223, container, &position, &argument); zephir_check_call_status(); - if (zephir_is_true(&_5$$3)) { - ZEPHIR_OBS_NVAR(&message); - if (!(zephir_array_isset_string_fetch(&message, &foreignKey, SL("message"), 0))) { - ZEPHIR_INIT_NVAR(&message); - ZEPHIR_CONCAT_SV(&message, "Record is referenced by model ", &relationClass); - } - ZEPHIR_INIT_NVAR(&_9$$7); - object_init_ex(&_9$$7, phalcon_messages_message_ce); - ZEPHIR_INIT_NVAR(&_10$$7); - ZVAL_STRING(&_10$$7, "ConstraintViolation"); - ZEPHIR_CALL_METHOD(NULL, &_9$$7, "__construct", &_11, 6, &message, &fields, &_10$$7); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_12, 0, &_9$$7); - zephir_check_call_status(); - error = 1; - break; - } + zephir_array_append(&buildArguments, &_4$$3, PH_SEPARATE, "phalcon/Di/Service/Builder.zep", 319); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &relations, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &arguments, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_2, &relations, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_1, &arguments, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_2)) { + if (!zend_is_true(&_1)) { break; } - ZEPHIR_CALL_METHOD(&relation, &relations, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&foreignKey, &relation, "getforeignkey", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&foreignKey)) { - continue; - } - action = 1; - _13$$9 = Z_TYPE_P(&foreignKey) == IS_ARRAY; - if (_13$$9) { - _13$$9 = zephir_array_isset_string(&foreignKey, SL("action")); - } - if (_13$$9) { - ZEPHIR_OBS_NVAR(&_14$$11); - zephir_array_fetch_string(&_14$$11, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3480); - action = zephir_get_intval(&_14$$11); - } - if (action != 1) { - continue; - } - ZEPHIR_CALL_METHOD(&relationClass, &relation, "getreferencedmodel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&fields, &relation, "getfields", NULL, 0); - zephir_check_call_status(); - ZVAL_NULL(&_16$$9); - ZEPHIR_INIT_NVAR(&_17$$9); - ZVAL_STRING(&_17$$9, "count"); - ZEPHIR_CALL_METHOD(&_15$$9, &manager, "getrelationrecords", &_18, 0, &relation, this_ptr, &_16$$9, &_17$$9); - zephir_check_call_status(); - if (zephir_is_true(&_15$$9)) { - ZEPHIR_OBS_NVAR(&message); - if (!(zephir_array_isset_string_fetch(&message, &foreignKey, SL("message"), 0))) { - ZEPHIR_INIT_NVAR(&message); - ZEPHIR_CONCAT_SV(&message, "Record is referenced by model ", &relationClass); - } - ZEPHIR_INIT_NVAR(&_19$$13); - object_init_ex(&_19$$13, phalcon_messages_message_ce); - ZEPHIR_INIT_NVAR(&_20$$13); - ZVAL_STRING(&_20$$13, "ConstraintViolation"); - ZEPHIR_CALL_METHOD(NULL, &_19$$13, "__construct", &_11, 6, &message, &fields, &_20$$13); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_12, 0, &_19$$13); - zephir_check_call_status(); - error = 1; - break; - } - ZEPHIR_CALL_METHOD(NULL, &relations, "next", NULL, 0); + ZEPHIR_CALL_METHOD(&position, &arguments, "key", NULL, 0); zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&relation); - if (error) { - if (ZEPHIR_GLOBAL(orm).events) { - ZEPHIR_INIT_VAR(&_21$$16); - ZVAL_STRING(&_21$$16, "onValidationFails"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_21$$16); + ZEPHIR_CALL_METHOD(&argument, &arguments, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "canceloperation", NULL, 0); + ZEPHIR_CALL_METHOD(&_6$$4, this_ptr, "buildparameter", &_5, 223, container, &position, &argument); + zephir_check_call_status(); + zephir_array_append(&buildArguments, &_6$$4, PH_SEPARATE, "phalcon/Di/Service/Builder.zep", 319); + ZEPHIR_CALL_METHOD(NULL, &arguments, "next", NULL, 0); zephir_check_call_status(); } - RETURN_MM_BOOL(0); } - RETURN_MM_BOOL(1); + ZEPHIR_INIT_NVAR(&argument); + ZEPHIR_INIT_NVAR(&position); + RETURN_CTOR(&buildArguments); } -static PHP_METHOD(Phalcon_Mvc_Model, doLowInsert) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Di_FactoryDefault_Cli) { - zend_string *_52$$56; - zend_ulong _51$$56; - zend_bool useExplicitIdentity = 0, _45, _6$$11, _22$$26, _39$$40, _54$$56; + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di\\FactoryDefault, Cli, phalcon, di_factorydefault_cli, phalcon_di_factorydefault_ce, phalcon_di_factorydefault_cli_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Di_FactoryDefault_Cli, __construct) +{ + zval _1; + zval filter, _2, _3, _4, _5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL, *_10 = NULL, *_11 = NULL, *_17 = NULL, *_19 = NULL, *_26 = NULL, *_27 = NULL, *_33 = NULL, *_35 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *metaData, metaData_sub, *connection, connection_sub, *table = NULL, table_sub, *identityField, identityField_sub, __$null, attributeField, attributes, automaticAttributes, bindDataTypes, bindSkip, bindType, bindTypes, columnMap, defaultValue, defaultValues, field, fields, lastInsertedId, manager, sequenceName, schema, snapshot, source, success, unsetDefaultValues, value, values, _0, *_1, _2, _3$$7, _4$$7, _7$$12, _8$$12, _9$$12, _12$$15, _13$$15, _14$$17, _15$$17, _16$$17, _18$$17, _20$$22, _21$$22, _23$$27, _24$$27, _25$$27, _28$$30, _29$$30, _30$$32, _31$$32, _32$$32, _34$$32, _36$$35, _37$$38, _38$$38, _40$$45, _41$$45, _42$$48, _43$$48, _44$$48, _46$$49, _47$$55, _48$$55, *_49$$56, _50$$56, _53$$56; + zephir_fcall_cache_entry *_0 = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&metaData_sub); - ZVAL_UNDEF(&connection_sub); - ZVAL_UNDEF(&table_sub); - ZVAL_UNDEF(&identityField_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&attributeField); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&automaticAttributes); - ZVAL_UNDEF(&bindDataTypes); - ZVAL_UNDEF(&bindSkip); - ZVAL_UNDEF(&bindType); - ZVAL_UNDEF(&bindTypes); - ZVAL_UNDEF(&columnMap); - ZVAL_UNDEF(&defaultValue); - ZVAL_UNDEF(&defaultValues); - ZVAL_UNDEF(&field); - ZVAL_UNDEF(&fields); - ZVAL_UNDEF(&lastInsertedId); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&sequenceName); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&snapshot); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&success); - ZVAL_UNDEF(&unsetDefaultValues); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&values); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&filter); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3$$7); - ZVAL_UNDEF(&_4$$7); - ZVAL_UNDEF(&_7$$12); - ZVAL_UNDEF(&_8$$12); - ZVAL_UNDEF(&_9$$12); - ZVAL_UNDEF(&_12$$15); - ZVAL_UNDEF(&_13$$15); - ZVAL_UNDEF(&_14$$17); - ZVAL_UNDEF(&_15$$17); - ZVAL_UNDEF(&_16$$17); - ZVAL_UNDEF(&_18$$17); - ZVAL_UNDEF(&_20$$22); - ZVAL_UNDEF(&_21$$22); - ZVAL_UNDEF(&_23$$27); - ZVAL_UNDEF(&_24$$27); - ZVAL_UNDEF(&_25$$27); - ZVAL_UNDEF(&_28$$30); - ZVAL_UNDEF(&_29$$30); - ZVAL_UNDEF(&_30$$32); - ZVAL_UNDEF(&_31$$32); - ZVAL_UNDEF(&_32$$32); - ZVAL_UNDEF(&_34$$32); - ZVAL_UNDEF(&_36$$35); - ZVAL_UNDEF(&_37$$38); - ZVAL_UNDEF(&_38$$38); - ZVAL_UNDEF(&_40$$45); - ZVAL_UNDEF(&_41$$45); - ZVAL_UNDEF(&_42$$48); - ZVAL_UNDEF(&_43$$48); - ZVAL_UNDEF(&_44$$48); - ZVAL_UNDEF(&_46$$49); - ZVAL_UNDEF(&_47$$55); - ZVAL_UNDEF(&_48$$55); - ZVAL_UNDEF(&_50$$56); - ZVAL_UNDEF(&_53$$56); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(4, 4) - Z_PARAM_OBJECT_OF_CLASS(metaData, phalcon_mvc_model_metadatainterface_ce) - Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_db_adapter_adapterinterface_ce) - Z_PARAM_ZVAL(table) - Z_PARAM_ZVAL(identityField) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 4, 0, &metaData, &connection, &table, &identityField); - ZEPHIR_SEPARATE_PARAM(table); + ZEPHIR_CALL_PARENT(NULL, phalcon_di_factorydefault_cli_ce, getThis(), "__construct", &_0, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&filter); + object_init_ex(&filter, phalcon_filter_filterfactory_ce); + if (zephir_has_constructor(&filter)) { + ZEPHIR_CALL_METHOD(NULL, &filter, "__construct", NULL, 0); + zephir_check_call_status(); + } - ZEPHIR_INIT_VAR(&bindSkip); - ZVAL_LONG(&bindSkip, 1024); - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&manager, &_0); - ZEPHIR_INIT_VAR(&fields); - array_init(&fields); - ZEPHIR_INIT_VAR(&values); - array_init(&values); - ZEPHIR_INIT_VAR(&snapshot); - array_init(&snapshot); - ZEPHIR_INIT_VAR(&bindTypes); - array_init(&bindTypes); - ZEPHIR_INIT_VAR(&unsetDefaultValues); - array_init(&unsetDefaultValues); - ZEPHIR_CALL_METHOD(&attributes, metaData, "getattributes", NULL, 0, this_ptr); + ZEPHIR_INIT_VAR(&_1); + zephir_create_array(&_1, 10, 0); + ZEPHIR_INIT_VAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Annotations\\Adapter\\Memory"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&bindDataTypes, metaData, "getbindtypes", NULL, 0, this_ptr); + zephir_array_update_string(&_1, SL("annotations"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Cli\\Dispatcher"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&automaticAttributes, metaData, "getautomaticcreateattributes", NULL, 0, this_ptr); + zephir_array_update_string(&_1, SL("dispatcher"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Escaper"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&defaultValues, metaData, "getdefaultvalues", NULL, 0, this_ptr); + zephir_array_update_string(&_1, SL("escaper"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Events\\Manager"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); zephir_check_call_status(); - if (ZEPHIR_GLOBAL(orm).column_renaming) { - ZEPHIR_CALL_METHOD(&columnMap, metaData, "getcolumnmap", NULL, 0, this_ptr); - zephir_check_call_status(); + zephir_array_update_string(&_1, SL("eventsManager"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_CALL_METHOD(&_5, &filter, "newinstance", NULL, 113); + zephir_check_call_status(); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_5, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("filter"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Mvc\\Model\\Manager"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("modelsManager"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Mvc\\Model\\MetaData\\Memory"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("modelsMetadata"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Cli\\Router"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("router"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Security"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("security"), &_2, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_di_service_ce); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "Phalcon\\Mvc\\Model\\Transaction\\Manager"); + ZVAL_BOOL(&_4, 1); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 97, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL("transactionManager"), &_2, PH_COPY | PH_SEPARATE); + zephir_update_property_zval(this_ptr, ZEND_STRL("services"), &_1); + ZEPHIR_MM_RESTORE(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Di_Exception_ServiceResolutionException) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di\\Exception, ServiceResolutionException, phalcon, di_exception_serviceresolutionexception, phalcon_di_exception_ce, NULL, 0); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Cli_Console) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cli, Console, phalcon, cli_console, phalcon_application_abstractapplication_ce, phalcon_cli_console_method_entry, 0); + + zend_declare_property_null(phalcon_cli_console_ce, SL("arguments"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_cli_console_ce, SL("options"), ZEND_ACC_PROTECTED); + phalcon_cli_console_ce->create_object = zephir_init_properties_Phalcon_Cli_Console; + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Cli_Console, handle) +{ + zend_bool _9; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_3 = NULL; + zval *arguments_param = NULL, __$false, className, container, dispatcher, eventsManager, module, moduleName, moduleObject, modules, path, router, task, _0, _7, _8, _20, _21, _22, _23, _1$$3, _2$$3, _4$$3, _5$$4, _6$$4, _10$$6, _11$$10, _12$$10, _13$$9, _14$$12, _15$$12, _16$$16, _17$$16, _18$$18, _19$$18, _24$$20, _25$$20, _26$$22; + zval arguments; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&arguments); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&dispatcher); + ZVAL_UNDEF(&eventsManager); + ZVAL_UNDEF(&module); + ZVAL_UNDEF(&moduleName); + ZVAL_UNDEF(&moduleObject); + ZVAL_UNDEF(&modules); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&router); + ZVAL_UNDEF(&task); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_20); + ZVAL_UNDEF(&_21); + ZVAL_UNDEF(&_22); + ZVAL_UNDEF(&_23); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_10$$6); + ZVAL_UNDEF(&_11$$10); + ZVAL_UNDEF(&_12$$10); + ZVAL_UNDEF(&_13$$9); + ZVAL_UNDEF(&_14$$12); + ZVAL_UNDEF(&_15$$12); + ZVAL_UNDEF(&_16$$16); + ZVAL_UNDEF(&_17$$16); + ZVAL_UNDEF(&_18$$18); + ZVAL_UNDEF(&_19$$18); + ZVAL_UNDEF(&_24$$20); + ZVAL_UNDEF(&_25$$20); + ZVAL_UNDEF(&_26$$22); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY_OR_NULL(arguments) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &arguments_param); + if (!arguments_param) { + ZEPHIR_INIT_VAR(&arguments); } else { - ZEPHIR_INIT_NVAR(&columnMap); - ZVAL_NULL(&columnMap); + zephir_get_arrval(&arguments, arguments_param); } - zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model.zep", 3643); - if (Z_TYPE_P(&attributes) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _1) - { - ZEPHIR_INIT_NVAR(&field); - ZVAL_COPY(&field, _1); - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&attributeField); - if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &field, 0)))) { - ZEPHIR_INIT_NVAR(&_3$$7); - object_init_ex(&_3$$7, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_4$$7); - ZEPHIR_CONCAT_SVS(&_4$$7, "Column '", &field, "' isn't part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_3$$7, "__construct", &_5, 8, &_4$$7); - zephir_check_call_status(); - zephir_throw_exception_debug(&_3$$7, "phalcon/Mvc/Model.zep", 3577); - ZEPHIR_MM_RESTORE(); - return; - } - } else { - ZEPHIR_CPY_WRT(&attributeField, &field); - } - if (!(zephir_array_isset(&automaticAttributes, &attributeField))) { - if (!ZEPHIR_IS_EQUAL(&field, identityField)) { - ZEPHIR_OBS_NVAR(&value); - if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { - _6$$11 = Z_TYPE_P(&value) == IS_NULL; - if (_6$$11) { - _6$$11 = zephir_array_isset(&defaultValues, &field); - } - if (_6$$11) { - zephir_array_fetch(&_7$$12, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3594); - zephir_array_update_zval(&snapshot, &attributeField, &_7$$12, PH_COPY | PH_SEPARATE); - zephir_array_fetch(&_8$$12, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3595); - zephir_array_update_zval(&unsetDefaultValues, &attributeField, &_8$$12, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_9$$12, connection, "supportsdefaultvalue", &_10, 0); - zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&_9$$12))) { - continue; - } - ZEPHIR_CALL_METHOD(&value, connection, "getdefaultvalue", &_11, 0); - zephir_check_call_status(); - } else { - zephir_array_update_zval(&snapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); - } - ZEPHIR_OBS_NVAR(&bindType); - if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, &bindDataTypes, &field, 0)))) { - ZEPHIR_INIT_NVAR(&_12$$15); - object_init_ex(&_12$$15, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_13$$15); - ZEPHIR_CONCAT_SVS(&_13$$15, "Column '", &field, "' have not defined a bind data type"); - ZEPHIR_CALL_METHOD(NULL, &_12$$15, "__construct", &_5, 8, &_13$$15); - zephir_check_call_status(); - zephir_throw_exception_debug(&_12$$15, "phalcon/Mvc/Model.zep", 3612); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3615); - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3616); - zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3617); - } else { - if (zephir_array_isset(&defaultValues, &field)) { - zephir_array_fetch(&_14$$17, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3620); - zephir_array_update_zval(&snapshot, &attributeField, &_14$$17, PH_COPY | PH_SEPARATE); - zephir_array_fetch(&_15$$17, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3621); - zephir_array_update_zval(&unsetDefaultValues, &attributeField, &_15$$17, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_16$$17, connection, "supportsdefaultvalue", &_17, 0); - zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&_16$$17))) { - continue; - } - ZEPHIR_CALL_METHOD(&_18$$17, connection, "getdefaultvalue", &_19, 0); - zephir_check_call_status(); - zephir_array_append(&values, &_18$$17, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3627); - } else { - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3629); - zephir_array_update_zval(&snapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); - } - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3633); - zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3634); - } - } - } - } ZEND_HASH_FOREACH_END(); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_cli_console_exception_ce); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "internal services"); + ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_cli_console_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Cli/Console.zep", 47); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_0); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_6$$4); + ZVAL_STRING(&_6$$4, "console:boot"); + ZEPHIR_CALL_METHOD(&_5$$4, &eventsManager, "fire", NULL, 0, &_6$$4, this_ptr); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_5$$4)) { + RETURN_MM_BOOL(0); + } + } + ZEPHIR_INIT_VAR(&_8); + ZVAL_STRING(&_8, "router"); + ZEPHIR_CALL_METHOD(&_7, &container, "getshared", NULL, 0, &_8); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&router, &_7); + _9 = !(zephir_fast_count_int(&arguments)); + if (_9) { + zephir_read_property(&_0, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); + _9 = zephir_is_true(&_0); + } + if (_9) { + zephir_read_property(&_10$$6, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &router, "handle", NULL, 0, &_10$$6); + zephir_check_call_status(); } else { - ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &router, "handle", NULL, 0, &arguments); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &attributes, "valid", NULL, 0); + } + ZEPHIR_CALL_METHOD(&moduleName, &router, "getmodulename", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&moduleName))) { + ZEPHIR_OBS_NVAR(&moduleName); + zephir_read_property(&moduleName, this_ptr, ZEND_STRL("defaultModule"), PH_NOISY_CC); + } + if (zephir_is_true(&moduleName)) { + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_12$$10); + ZVAL_STRING(&_12$$10, "console:beforeStartModule"); + ZEPHIR_CALL_METHOD(&_11$$10, &eventsManager, "fire", NULL, 0, &_12$$10, this_ptr, &moduleName); zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; + if (ZEPHIR_IS_FALSE_IDENTICAL(&_11$$10)) { + RETURN_MM_BOOL(0); } - ZEPHIR_CALL_METHOD(&field, &attributes, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&attributeField); - if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &field, 0)))) { - ZEPHIR_INIT_NVAR(&_20$$22); - object_init_ex(&_20$$22, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_21$$22); - ZEPHIR_CONCAT_SVS(&_21$$22, "Column '", &field, "' isn't part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_20$$22, "__construct", &_5, 8, &_21$$22); - zephir_check_call_status(); - zephir_throw_exception_debug(&_20$$22, "phalcon/Mvc/Model.zep", 3577); - ZEPHIR_MM_RESTORE(); - return; - } - } else { - ZEPHIR_CPY_WRT(&attributeField, &field); - } - if (!(zephir_array_isset(&automaticAttributes, &attributeField))) { - if (!ZEPHIR_IS_EQUAL(&field, identityField)) { - ZEPHIR_OBS_NVAR(&value); - if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { - _22$$26 = Z_TYPE_P(&value) == IS_NULL; - if (_22$$26) { - _22$$26 = zephir_array_isset(&defaultValues, &field); - } - if (_22$$26) { - zephir_array_fetch(&_23$$27, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3594); - zephir_array_update_zval(&snapshot, &attributeField, &_23$$27, PH_COPY | PH_SEPARATE); - zephir_array_fetch(&_24$$27, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3595); - zephir_array_update_zval(&unsetDefaultValues, &attributeField, &_24$$27, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_25$$27, connection, "supportsdefaultvalue", &_26, 0); - zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&_25$$27))) { - continue; - } - ZEPHIR_CALL_METHOD(&value, connection, "getdefaultvalue", &_27, 0); - zephir_check_call_status(); - } else { - zephir_array_update_zval(&snapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); - } - ZEPHIR_OBS_NVAR(&bindType); - if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, &bindDataTypes, &field, 0)))) { - ZEPHIR_INIT_NVAR(&_28$$30); - object_init_ex(&_28$$30, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_29$$30); - ZEPHIR_CONCAT_SVS(&_29$$30, "Column '", &field, "' have not defined a bind data type"); - ZEPHIR_CALL_METHOD(NULL, &_28$$30, "__construct", &_5, 8, &_29$$30); - zephir_check_call_status(); - zephir_throw_exception_debug(&_28$$30, "phalcon/Mvc/Model.zep", 3612); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3615); - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3616); - zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3617); - } else { - if (zephir_array_isset(&defaultValues, &field)) { - zephir_array_fetch(&_30$$32, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3620); - zephir_array_update_zval(&snapshot, &attributeField, &_30$$32, PH_COPY | PH_SEPARATE); - zephir_array_fetch(&_31$$32, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3621); - zephir_array_update_zval(&unsetDefaultValues, &attributeField, &_31$$32, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_32$$32, connection, "supportsdefaultvalue", &_33, 0); - zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&_32$$32))) { - continue; - } - ZEPHIR_CALL_METHOD(&_34$$32, connection, "getdefaultvalue", &_35, 0); - zephir_check_call_status(); - zephir_array_append(&values, &_34$$32, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3627); - } else { - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3629); - zephir_array_update_zval(&snapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); - } - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3633); - zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3634); - } - } - } - ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); + } + zephir_read_property(&_13$$9, this_ptr, ZEND_STRL("modules"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&modules, &_13$$9); + if (UNEXPECTED(!(zephir_array_isset(&modules, &moduleName)))) { + ZEPHIR_INIT_VAR(&_14$$12); + object_init_ex(&_14$$12, phalcon_cli_console_exception_ce); + ZEPHIR_INIT_VAR(&_15$$12); + ZEPHIR_CONCAT_SVS(&_15$$12, "Module '", &moduleName, "' isn't registered in the console container"); + ZEPHIR_CALL_METHOD(NULL, &_14$$12, "__construct", NULL, 8, &_15$$12); zephir_check_call_status(); + zephir_throw_exception_debug(&_14$$12, "phalcon/Cli/Console.zep", 91); + ZEPHIR_MM_RESTORE(); + return; } - } - ZEPHIR_INIT_NVAR(&field); - if (!ZEPHIR_IS_FALSE_IDENTICAL(identityField)) { - ZEPHIR_CALL_METHOD(&defaultValue, connection, "getdefaultidvalue", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_36$$35, connection, "useexplicitidvalue", NULL, 0); - zephir_check_call_status(); - useExplicitIdentity = zephir_get_boolval(&_36$$35); - if (useExplicitIdentity) { - zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3653); + ZEPHIR_OBS_VAR(&module); + zephir_array_fetch(&module, &modules, &moduleName, PH_NOISY, "phalcon/Cli/Console.zep", 94); + if (UNEXPECTED(Z_TYPE_P(&module) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_console_exception_ce, "Invalid module definition path", "phalcon/Cli/Console.zep", 97); + return; } - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&attributeField); - if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, identityField, 0)))) { - ZEPHIR_INIT_VAR(&_37$$38); - object_init_ex(&_37$$38, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_38$$38); - ZEPHIR_CONCAT_SVS(&_38$$38, "Identity column '", identityField, "' isn't part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_37$$38, "__construct", &_5, 8, &_38$$38); + ZEPHIR_OBS_VAR(&className); + if (!(zephir_array_isset_string_fetch(&className, &module, SL("className"), 0))) { + ZEPHIR_INIT_NVAR(&className); + ZVAL_STRING(&className, "Module"); + } + ZEPHIR_OBS_VAR(&path); + if (zephir_array_isset_string_fetch(&path, &module, SL("path"), 0)) { + if (UNEXPECTED(!((zephir_file_exists(&path) == SUCCESS)))) { + ZEPHIR_INIT_VAR(&_16$$16); + object_init_ex(&_16$$16, phalcon_cli_console_exception_ce); + ZEPHIR_INIT_VAR(&_17$$16); + ZEPHIR_CONCAT_SVS(&_17$$16, "Module definition path '", &path, "' doesn't exist"); + ZEPHIR_CALL_METHOD(NULL, &_16$$16, "__construct", NULL, 8, &_17$$16); zephir_check_call_status(); - zephir_throw_exception_debug(&_37$$38, "phalcon/Mvc/Model.zep", 3663); + zephir_throw_exception_debug(&_16$$16, "phalcon/Cli/Console.zep", 108); ZEPHIR_MM_RESTORE(); return; } - } else { - ZEPHIR_CPY_WRT(&attributeField, identityField); - } - ZEPHIR_OBS_NVAR(&value); - if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { - _39$$40 = Z_TYPE_P(&value) == IS_NULL; - if (!(_39$$40)) { - _39$$40 = ZEPHIR_IS_STRING_IDENTICAL(&value, ""); - } - if (_39$$40) { - if (useExplicitIdentity) { - zephir_array_append(&values, &defaultValue, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3675); - zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3675); - } - } else { - if (!(useExplicitIdentity)) { - zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3683); - } - ZEPHIR_OBS_NVAR(&bindType); - if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, &bindDataTypes, identityField, 0)))) { - ZEPHIR_INIT_VAR(&_40$$45); - object_init_ex(&_40$$45, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_41$$45); - ZEPHIR_CONCAT_SVS(&_41$$45, "Identity column '", identityField, "' isn\'t part of the table columns"); - ZEPHIR_CALL_METHOD(NULL, &_40$$45, "__construct", &_5, 8, &_41$$45); - zephir_check_call_status(); - zephir_throw_exception_debug(&_40$$45, "phalcon/Mvc/Model.zep", 3692); - ZEPHIR_MM_RESTORE(); - return; + if (!(zephir_class_exists(&className, zephir_is_true(&__$false) ))) { + if (zephir_require_zval(&path) == FAILURE) { + RETURN_MM_NULL(); } - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3695); - zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3696); - } - } else { - if (useExplicitIdentity) { - zephir_array_append(&values, &defaultValue, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3700); - zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3701); } } - } - if (Z_TYPE_P(table) == IS_ARRAY) { - zephir_array_fetch_long(&_42$$48, table, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3710); - zephir_array_fetch_long(&_43$$48, table, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3710); - ZEPHIR_INIT_VAR(&_44$$48); - ZEPHIR_CONCAT_VSV(&_44$$48, &_42$$48, ".", &_43$$48); - ZEPHIR_CPY_WRT(table, &_44$$48); - } - ZEPHIR_CALL_METHOD(&success, connection, "insert", NULL, 0, table, &values, &fields, &bindTypes); - zephir_check_call_status(); - _45 = zephir_is_true(&success); - if (_45) { - _45 = !ZEPHIR_IS_FALSE_IDENTICAL(identityField); - } - if (_45) { - ZEPHIR_INIT_VAR(&sequenceName); - ZVAL_NULL(&sequenceName); - ZEPHIR_CALL_METHOD(&_46$$49, connection, "supportsequences", NULL, 0); + ZEPHIR_CALL_METHOD(&moduleObject, &container, "get", NULL, 0, &className); zephir_check_call_status(); - if (zephir_is_true(&_46$$49)) { - if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("getsequencename")) == SUCCESS)) { - ZEPHIR_CALL_METHOD(&sequenceName, this_ptr, "getsequencename", NULL, 0); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(&source, this_ptr, "getsource", NULL, 436); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&schema, this_ptr, "getschema", NULL, 435); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&sequenceName); - if (ZEPHIR_IS_EMPTY(&schema)) { - ZEPHIR_CONCAT_VSVS(&sequenceName, &source, "_", identityField, "_seq"); - } else { - ZEPHIR_CONCAT_VSVSVS(&sequenceName, &schema, ".", &source, "_", identityField, "_seq"); - } - } - } - ZEPHIR_CALL_METHOD(&lastInsertedId, connection, "lastinsertid", NULL, 0, &sequenceName); + ZEPHIR_CALL_METHOD(NULL, &moduleObject, "registerautoloaders", NULL, 0, &container); zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_GLOBAL(orm).cast_last_insert_id_to_int)) { - ZVAL_LONG(&_47$$55, 10); - ZEPHIR_CALL_FUNCTION(&_48$$55, "intval", NULL, 51, &lastInsertedId, &_47$$55); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&lastInsertedId, &_48$$55); - } - zephir_update_property_zval_zval(this_ptr, &attributeField, &lastInsertedId); - zephir_array_update_zval(&snapshot, &attributeField, &lastInsertedId, PH_COPY | PH_SEPARATE); - zephir_update_property_zval(this_ptr, ZEND_STRL("uniqueParams"), &__$null); - } - if (zephir_is_true(&success)) { - zephir_is_iterable(&unsetDefaultValues, 0, "phalcon/Mvc/Model.zep", 3771); - if (Z_TYPE_P(&unsetDefaultValues) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&unsetDefaultValues), _51$$56, _52$$56, _49$$56) - { - ZEPHIR_INIT_NVAR(&attributeField); - if (_52$$56 != NULL) { - ZVAL_STR_COPY(&attributeField, _52$$56); - } else { - ZVAL_LONG(&attributeField, _51$$56); - } - ZEPHIR_INIT_NVAR(&defaultValue); - ZVAL_COPY(&defaultValue, _49$$56); - zephir_update_property_zval_zval(this_ptr, &attributeField, &defaultValue); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &unsetDefaultValues, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &moduleObject, "registerservices", NULL, 0, &container); + zephir_check_call_status(); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_19$$18); + ZVAL_STRING(&_19$$18, "console:afterStartModule"); + ZEPHIR_CALL_METHOD(&_18$$18, &eventsManager, "fire", NULL, 0, &_19$$18, this_ptr, &moduleObject); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_50$$56, &unsetDefaultValues, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_50$$56)) { - break; - } - ZEPHIR_CALL_METHOD(&attributeField, &unsetDefaultValues, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&defaultValue, &unsetDefaultValues, "current", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval_zval(this_ptr, &attributeField, &defaultValue); - ZEPHIR_CALL_METHOD(NULL, &unsetDefaultValues, "next", NULL, 0); - zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_18$$18)) { + RETURN_MM_BOOL(0); } } - ZEPHIR_INIT_NVAR(&defaultValue); - ZEPHIR_INIT_NVAR(&attributeField); - ZEPHIR_CALL_METHOD(&_53$$56, &manager, "iskeepingsnapshots", NULL, 0, this_ptr); + } + ZEPHIR_INIT_NVAR(&_8); + ZVAL_STRING(&_8, "dispatcher"); + ZEPHIR_CALL_METHOD(&_7, &container, "getshared", NULL, 0, &_8); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&dispatcher, &_7); + ZEPHIR_CALL_METHOD(&_7, &router, "getmodulename", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &dispatcher, "setmodulename", NULL, 0, &_7); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_20, &router, "gettaskname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &dispatcher, "settaskname", NULL, 0, &_20); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_21, &router, "getactionname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &dispatcher, "setactionname", NULL, 0, &_21); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_22, &router, "getparams", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &dispatcher, "setparams", NULL, 0, &_22); + zephir_check_call_status(); + zephir_read_property(&_23, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &dispatcher, "setoptions", NULL, 0, &_23); + zephir_check_call_status(); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_25$$20); + ZVAL_STRING(&_25$$20, "console:beforeHandleTask"); + ZEPHIR_CALL_METHOD(&_24$$20, &eventsManager, "fire", NULL, 0, &_25$$20, this_ptr, &dispatcher); zephir_check_call_status(); - _54$$56 = zephir_is_true(&_53$$56); - if (_54$$56) { - _54$$56 = ZEPHIR_GLOBAL(orm).update_snapshot_on_save; - } - if (_54$$56) { - zephir_update_property_zval(this_ptr, ZEND_STRL("snapshot"), &snapshot); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_24$$20)) { + RETURN_MM_BOOL(0); } } - RETURN_CCTOR(&success); + ZEPHIR_CALL_METHOD(&task, &dispatcher, "dispatch", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_26$$22); + ZVAL_STRING(&_26$$22, "console:afterHandleTask"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_26$$22, this_ptr, &task); + zephir_check_call_status(); + } + RETURN_CCTOR(&task); } -static PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) +static PHP_METHOD(Phalcon_Cli_Console, setArgument) { - zval _14$$26, _15$$26, _24$$49, _25$$49; - zval _35; - zend_bool changed = 0, useDynamicUpdate = 0, _36, _37; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_6 = NULL, *_12 = NULL; + zephir_fcall_cache_entry *_6 = NULL, *_44 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *metaData, metaData_sub, *connection, connection_sub, *table = NULL, table_sub, __$null, automaticAttributes, attributeField, bindSkip, bindDataTypes, bindType, bindTypes, columnMap, dataType, dataTypes, field, fields, manager, nonPrimary, newSnapshot, success, primaryKeys, snapshot, snapshotValue, uniqueKey, uniqueParams, uniqueTypes, value, values, _0, _1, *_2, _3, _4$$10, _5$$10, _7$$13, _8$$13, _9$$23, _10$$23, _11$$25, _13$$25, _16$$33, _17$$33, _18$$36, _19$$36, _20$$46, _21$$46, _22$$48, _23$$48, *_26$$55, _27$$55, _28$$59, _29$$59, _30$$65, _31$$65, _32$$69, _33$$69, _34$$69, _38$$71, _39$$72; + zend_bool str, shift, _0; + zval *arguments_param = NULL, *str_param = NULL, *shift_param = NULL, __$true, arg, pos, args, opts, handleArgs, *_1, _2, _3$$5, _4$$5, _5$$5, _7$$6, _8$$7, _9$$7, _10$$7, _11$$7, _12$$7, _13$$7, _14$$7, _15$$8, _16$$8, _17$$8, _18$$9, _19$$9, _20$$9, _21$$10, _22$$10, _23$$14, _24$$14, _25$$14, _26$$15, _27$$16, _28$$16, _29$$16, _30$$16, _31$$16, _32$$16, _33$$16, _34$$17, _35$$17, _36$$17, _37$$18, _38$$18, _39$$18, _40$$19, _41$$19, _42$$22, _43$$22, _45$$24, _46$$25, _47$$26; + zval arguments; zval *this_ptr = getThis(); - ZVAL_UNDEF(&metaData_sub); - ZVAL_UNDEF(&connection_sub); - ZVAL_UNDEF(&table_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&automaticAttributes); - ZVAL_UNDEF(&attributeField); - ZVAL_UNDEF(&bindSkip); - ZVAL_UNDEF(&bindDataTypes); - ZVAL_UNDEF(&bindType); - ZVAL_UNDEF(&bindTypes); - ZVAL_UNDEF(&columnMap); - ZVAL_UNDEF(&dataType); - ZVAL_UNDEF(&dataTypes); - ZVAL_UNDEF(&field); - ZVAL_UNDEF(&fields); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&nonPrimary); - ZVAL_UNDEF(&newSnapshot); - ZVAL_UNDEF(&success); - ZVAL_UNDEF(&primaryKeys); - ZVAL_UNDEF(&snapshot); - ZVAL_UNDEF(&snapshotValue); - ZVAL_UNDEF(&uniqueKey); - ZVAL_UNDEF(&uniqueParams); - ZVAL_UNDEF(&uniqueTypes); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&values); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4$$10); - ZVAL_UNDEF(&_5$$10); - ZVAL_UNDEF(&_7$$13); - ZVAL_UNDEF(&_8$$13); - ZVAL_UNDEF(&_9$$23); - ZVAL_UNDEF(&_10$$23); - ZVAL_UNDEF(&_11$$25); - ZVAL_UNDEF(&_13$$25); - ZVAL_UNDEF(&_16$$33); - ZVAL_UNDEF(&_17$$33); - ZVAL_UNDEF(&_18$$36); - ZVAL_UNDEF(&_19$$36); - ZVAL_UNDEF(&_20$$46); - ZVAL_UNDEF(&_21$$46); - ZVAL_UNDEF(&_22$$48); - ZVAL_UNDEF(&_23$$48); - ZVAL_UNDEF(&_27$$55); - ZVAL_UNDEF(&_28$$59); - ZVAL_UNDEF(&_29$$59); - ZVAL_UNDEF(&_30$$65); - ZVAL_UNDEF(&_31$$65); - ZVAL_UNDEF(&_32$$69); - ZVAL_UNDEF(&_33$$69); - ZVAL_UNDEF(&_34$$69); - ZVAL_UNDEF(&_38$$71); - ZVAL_UNDEF(&_39$$72); - ZVAL_UNDEF(&_35); - ZVAL_UNDEF(&_14$$26); - ZVAL_UNDEF(&_15$$26); - ZVAL_UNDEF(&_24$$49); - ZVAL_UNDEF(&_25$$49); + 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); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_7$$6); + 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$$7); + ZVAL_UNDEF(&_15$$8); + ZVAL_UNDEF(&_16$$8); + ZVAL_UNDEF(&_17$$8); + ZVAL_UNDEF(&_18$$9); + ZVAL_UNDEF(&_19$$9); + ZVAL_UNDEF(&_20$$9); + ZVAL_UNDEF(&_21$$10); + ZVAL_UNDEF(&_22$$10); + ZVAL_UNDEF(&_23$$14); + ZVAL_UNDEF(&_24$$14); + ZVAL_UNDEF(&_25$$14); + ZVAL_UNDEF(&_26$$15); + ZVAL_UNDEF(&_27$$16); + ZVAL_UNDEF(&_28$$16); + ZVAL_UNDEF(&_29$$16); + ZVAL_UNDEF(&_30$$16); + ZVAL_UNDEF(&_31$$16); + ZVAL_UNDEF(&_32$$16); + ZVAL_UNDEF(&_33$$16); + ZVAL_UNDEF(&_34$$17); + ZVAL_UNDEF(&_35$$17); + ZVAL_UNDEF(&_36$$17); + ZVAL_UNDEF(&_37$$18); + ZVAL_UNDEF(&_38$$18); + ZVAL_UNDEF(&_39$$18); + ZVAL_UNDEF(&_40$$19); + ZVAL_UNDEF(&_41$$19); + ZVAL_UNDEF(&_42$$22); + ZVAL_UNDEF(&_43$$22); + ZVAL_UNDEF(&_45$$24); + ZVAL_UNDEF(&_46$$25); + ZVAL_UNDEF(&_47$$26); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_OBJECT_OF_CLASS(metaData, phalcon_mvc_model_metadatainterface_ce) - Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_db_adapter_adapterinterface_ce) - Z_PARAM_ZVAL(table) + ZEND_PARSE_PARAMETERS_START(0, 3) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY_OR_NULL(arguments) + Z_PARAM_BOOL(str) + Z_PARAM_BOOL(shift) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &metaData, &connection, &table); - ZEPHIR_SEPARATE_PARAM(table); + zephir_fetch_params(1, 0, 3, &arguments_param, &str_param, &shift_param); + if (!arguments_param) { + ZEPHIR_INIT_VAR(&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")); + 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")); + RETURN_MM_NULL(); + } + shift = (Z_TYPE_P(shift_param) == IS_TRUE); + } - ZEPHIR_INIT_VAR(&bindSkip); - ZVAL_LONG(&bindSkip, 1024); - ZEPHIR_INIT_VAR(&fields); - array_init(&fields); - ZEPHIR_INIT_VAR(&values); - array_init(&values); - ZEPHIR_INIT_VAR(&bindTypes); - array_init(&bindTypes); - ZEPHIR_INIT_VAR(&newSnapshot); - array_init(&newSnapshot); - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&manager, &_0); - ZEPHIR_CALL_METHOD(&_1, &manager, "isusingdynamicupdate", NULL, 0, this_ptr); - zephir_check_call_status(); - useDynamicUpdate = zephir_get_boolval(&_1); - zephir_read_property(&_0, this_ptr, ZEND_STRL("snapshot"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&snapshot, &_0); - if (useDynamicUpdate) { - if (Z_TYPE_P(&snapshot) != IS_ARRAY) { - useDynamicUpdate = 0; - } + 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)) ? 1 : 0); } - ZEPHIR_CALL_METHOD(&dataTypes, metaData, "getdatatypes", NULL, 0, this_ptr); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&bindDataTypes, metaData, "getbindtypes", NULL, 0, this_ptr); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&nonPrimary, metaData, "getnonprimarykeyattributes", NULL, 0, this_ptr); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&automaticAttributes, metaData, "getautomaticupdateattributes", NULL, 0, this_ptr); - zephir_check_call_status(); - if (ZEPHIR_GLOBAL(orm).column_renaming) { - ZEPHIR_CALL_METHOD(&columnMap, metaData, "getcolumnmap", NULL, 0, this_ptr); + if (_0) { + ZEPHIR_MAKE_REF(&arguments); + ZEPHIR_CALL_FUNCTION(NULL, "array_shift", NULL, 24, &arguments); + ZEPHIR_UNREF(&arguments); zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&columnMap); - ZVAL_NULL(&columnMap); } - zephir_is_iterable(&nonPrimary, 0, "phalcon/Mvc/Model.zep", 3947); - if (Z_TYPE_P(&nonPrimary) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&nonPrimary), _2) + zephir_is_iterable(&arguments, 0, "phalcon/Cli/Console.zep", 189); + if (Z_TYPE_P(&arguments) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&arguments), _1) { - ZEPHIR_INIT_NVAR(&field); - ZVAL_COPY(&field, _2); - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&attributeField); - if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &field, 0)))) { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_4$$10); - object_init_ex(&_4$$10, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_5$$10); - ZEPHIR_CONCAT_SVS(&_5$$10, "Column '", &field, "' isn't part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_4$$10, "__construct", &_6, 8, &_5$$10); - zephir_check_call_status(); - zephir_throw_exception_debug(&_4$$10, "phalcon/Mvc/Model.zep", 3835); - ZEPHIR_MM_RESTORE(); - return; + ZEPHIR_INIT_NVAR(&arg); + ZVAL_COPY(&arg, _1); + if (Z_TYPE_P(&arg) == IS_STRING) { + ZEPHIR_INIT_NVAR(&_3$$5); + ZVAL_STRING(&_3$$5, "--"); + ZVAL_LONG(&_4$$5, 2); + ZEPHIR_CALL_FUNCTION(&_5$$5, "strncmp", &_6, 172, &arg, &_3$$5, &_4$$5); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&_5$$5, 0)) { + ZEPHIR_INIT_NVAR(&_7$$6); + ZVAL_STRING(&_7$$6, "="); + ZEPHIR_INIT_NVAR(&pos); + zephir_fast_strpos(&pos, &arg, &_7$$6, 0 ); + if (zephir_is_true(&pos)) { + ZEPHIR_INIT_NVAR(&_8$$7); + ZVAL_LONG(&_9$$7, (zephir_get_numberval(&pos) + 1)); + ZEPHIR_INIT_NVAR(&_10$$7); + zephir_substr(&_10$$7, &arg, zephir_get_intval(&_9$$7), 0, ZEPHIR_SUBSTR_NO_LENGTH); + zephir_fast_trim(&_8$$7, &_10$$7, NULL , ZEPHIR_TRIM_BOTH); + ZEPHIR_INIT_NVAR(&_11$$7); + ZVAL_LONG(&_12$$7, 2); + ZVAL_LONG(&_13$$7, (zephir_get_numberval(&pos) - 2)); + ZEPHIR_INIT_NVAR(&_14$$7); + zephir_substr(&_14$$7, &arg, 2 , zephir_get_intval(&_13$$7), 0); + zephir_fast_trim(&_11$$7, &_14$$7, NULL , ZEPHIR_TRIM_BOTH); + zephir_array_update_zval(&opts, &_11$$7, &_8$$7, PH_COPY | PH_SEPARATE); + } else { + ZEPHIR_INIT_NVAR(&_15$$8); + ZVAL_LONG(&_16$$8, 2); + ZEPHIR_INIT_NVAR(&_17$$8); + zephir_substr(&_17$$8, &arg, 2 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + zephir_fast_trim(&_15$$8, &_17$$8, NULL , ZEPHIR_TRIM_BOTH); + zephir_array_update_zval(&opts, &_15$$8, &__$true, PH_COPY | PH_SEPARATE); + } + } else { + ZEPHIR_INIT_NVAR(&_18$$9); + ZVAL_STRING(&_18$$9, "-"); + ZVAL_LONG(&_19$$9, 1); + ZEPHIR_CALL_FUNCTION(&_20$$9, "strncmp", &_6, 172, &arg, &_18$$9, &_19$$9); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&_20$$9, 0)) { + ZVAL_LONG(&_21$$10, 1); + ZEPHIR_INIT_NVAR(&_22$$10); + zephir_substr(&_22$$10, &arg, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + zephir_array_update_zval(&opts, &_22$$10, &__$true, PH_COPY | PH_SEPARATE); + } else { + zephir_array_append(&args, &arg, PH_SEPARATE, "phalcon/Cli/Console.zep", 181); } } } else { - ZEPHIR_CPY_WRT(&attributeField, &field); - } - if (!(zephir_array_isset(&automaticAttributes, &attributeField))) { - ZEPHIR_OBS_NVAR(&bindType); - if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, &bindDataTypes, &field, 0)))) { - ZEPHIR_INIT_NVAR(&_7$$13); - object_init_ex(&_7$$13, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_8$$13); - ZEPHIR_CONCAT_SVS(&_8$$13, "Column '", &field, "' have not defined a bind data type"); - ZEPHIR_CALL_METHOD(NULL, &_7$$13, "__construct", &_6, 8, &_8$$13); - zephir_check_call_status(); - zephir_throw_exception_debug(&_7$$13, "phalcon/Mvc/Model.zep", 3849); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(&value); - if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { - if (!(useDynamicUpdate)) { - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3861); - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3862); - zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3863); - } else { - ZEPHIR_OBS_NVAR(&snapshotValue); - if (!(zephir_array_isset_fetch(&snapshotValue, &snapshot, &attributeField, 0))) { - changed = 1; - } else { - if (Z_TYPE_P(&value) == IS_NULL) { - changed = Z_TYPE_P(&snapshotValue) != IS_NULL; - } else { - if (Z_TYPE_P(&snapshotValue) == IS_NULL) { - changed = 1; - } else { - ZEPHIR_OBS_NVAR(&dataType); - if (UNEXPECTED(!(zephir_array_isset_fetch(&dataType, &dataTypes, &field, 0)))) { - ZEPHIR_INIT_NVAR(&_9$$23); - object_init_ex(&_9$$23, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_10$$23); - ZEPHIR_CONCAT_SVS(&_10$$23, "Column '", &field, "' have not defined a data type"); - ZEPHIR_CALL_METHOD(NULL, &_9$$23, "__construct", &_6, 8, &_10$$23); - zephir_check_call_status(); - zephir_throw_exception_debug(&_9$$23, "phalcon/Mvc/Model.zep", 3888); - ZEPHIR_MM_RESTORE(); - return; - } - do { - if (ZEPHIR_IS_LONG(&dataType, 8)) { - changed = zephir_get_boolval(&snapshotValue) != zephir_get_boolval(&value); - break; - } - if (ZEPHIR_IS_LONG(&dataType, 3) || ZEPHIR_IS_LONG(&dataType, 7)) { - ZEPHIR_CALL_FUNCTION(&_11$$25, "floatval", &_12, 18, &snapshotValue); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_13$$25, "floatval", &_12, 18, &value); - zephir_check_call_status(); - changed = !ZEPHIR_IS_IDENTICAL(&_11$$25, &_13$$25); - break; - } - if (ZEPHIR_IS_LONG(&dataType, 0) || ZEPHIR_IS_LONG(&dataType, 1) || ZEPHIR_IS_LONG(&dataType, 2) || ZEPHIR_IS_LONG(&dataType, 4) || ZEPHIR_IS_LONG(&dataType, 5) || ZEPHIR_IS_LONG(&dataType, 6) || ZEPHIR_IS_LONG(&dataType, 2) || ZEPHIR_IS_LONG(&dataType, 14)) { - zephir_cast_to_string(&_14$$26, &snapshotValue); - zephir_cast_to_string(&_15$$26, &value); - changed = !ZEPHIR_IS_IDENTICAL(&_14$$26, &_15$$26); - break; - } - changed = !ZEPHIR_IS_EQUAL(&value, &snapshotValue); - } while(0); - - } - } - } - if (changed) { - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3927); - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3928); - zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3929); - } - } - zephir_array_update_zval(&newSnapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&newSnapshot, &attributeField, &__$null, PH_COPY | PH_SEPARATE); - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3937); - zephir_array_append(&values, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3938); - zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3939); - } + zephir_array_append(&args, &arg, PH_SEPARATE, "phalcon/Cli/Console.zep", 185); } } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &nonPrimary, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &arguments, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_3, &nonPrimary, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_2, &arguments, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_3)) { + if (!zend_is_true(&_2)) { break; } - ZEPHIR_CALL_METHOD(&field, &nonPrimary, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&arg, &arguments, "current", NULL, 0); zephir_check_call_status(); - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&attributeField); - if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &field, 0)))) { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_16$$33); - object_init_ex(&_16$$33, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_17$$33); - ZEPHIR_CONCAT_SVS(&_17$$33, "Column '", &field, "' isn't part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_16$$33, "__construct", &_6, 8, &_17$$33); - zephir_check_call_status(); - zephir_throw_exception_debug(&_16$$33, "phalcon/Mvc/Model.zep", 3835); - ZEPHIR_MM_RESTORE(); - return; + if (Z_TYPE_P(&arg) == IS_STRING) { + ZEPHIR_INIT_NVAR(&_23$$14); + ZVAL_STRING(&_23$$14, "--"); + ZVAL_LONG(&_24$$14, 2); + ZEPHIR_CALL_FUNCTION(&_25$$14, "strncmp", &_6, 172, &arg, &_23$$14, &_24$$14); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&_25$$14, 0)) { + ZEPHIR_INIT_NVAR(&_26$$15); + ZVAL_STRING(&_26$$15, "="); + ZEPHIR_INIT_NVAR(&pos); + zephir_fast_strpos(&pos, &arg, &_26$$15, 0 ); + if (zephir_is_true(&pos)) { + ZEPHIR_INIT_NVAR(&_27$$16); + ZVAL_LONG(&_28$$16, (zephir_get_numberval(&pos) + 1)); + ZEPHIR_INIT_NVAR(&_29$$16); + zephir_substr(&_29$$16, &arg, zephir_get_intval(&_28$$16), 0, ZEPHIR_SUBSTR_NO_LENGTH); + zephir_fast_trim(&_27$$16, &_29$$16, NULL , ZEPHIR_TRIM_BOTH); + ZEPHIR_INIT_NVAR(&_30$$16); + ZVAL_LONG(&_31$$16, 2); + ZVAL_LONG(&_32$$16, (zephir_get_numberval(&pos) - 2)); + ZEPHIR_INIT_NVAR(&_33$$16); + zephir_substr(&_33$$16, &arg, 2 , zephir_get_intval(&_32$$16), 0); + zephir_fast_trim(&_30$$16, &_33$$16, NULL , ZEPHIR_TRIM_BOTH); + zephir_array_update_zval(&opts, &_30$$16, &_27$$16, PH_COPY | PH_SEPARATE); + } else { + ZEPHIR_INIT_NVAR(&_34$$17); + ZVAL_LONG(&_35$$17, 2); + ZEPHIR_INIT_NVAR(&_36$$17); + zephir_substr(&_36$$17, &arg, 2 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + zephir_fast_trim(&_34$$17, &_36$$17, NULL , ZEPHIR_TRIM_BOTH); + zephir_array_update_zval(&opts, &_34$$17, &__$true, PH_COPY | PH_SEPARATE); } - } - } else { - ZEPHIR_CPY_WRT(&attributeField, &field); - } - if (!(zephir_array_isset(&automaticAttributes, &attributeField))) { - ZEPHIR_OBS_NVAR(&bindType); - if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, &bindDataTypes, &field, 0)))) { - ZEPHIR_INIT_NVAR(&_18$$36); - object_init_ex(&_18$$36, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_19$$36); - ZEPHIR_CONCAT_SVS(&_19$$36, "Column '", &field, "' have not defined a bind data type"); - ZEPHIR_CALL_METHOD(NULL, &_18$$36, "__construct", &_6, 8, &_19$$36); + } else { + ZEPHIR_INIT_NVAR(&_37$$18); + ZVAL_STRING(&_37$$18, "-"); + ZVAL_LONG(&_38$$18, 1); + ZEPHIR_CALL_FUNCTION(&_39$$18, "strncmp", &_6, 172, &arg, &_37$$18, &_38$$18); zephir_check_call_status(); - zephir_throw_exception_debug(&_18$$36, "phalcon/Mvc/Model.zep", 3849); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(&value); - if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { - if (!(useDynamicUpdate)) { - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3861); - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3862); - zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3863); + if (ZEPHIR_IS_LONG(&_39$$18, 0)) { + ZVAL_LONG(&_40$$19, 1); + ZEPHIR_INIT_NVAR(&_41$$19); + zephir_substr(&_41$$19, &arg, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + zephir_array_update_zval(&opts, &_41$$19, &__$true, PH_COPY | PH_SEPARATE); } else { - ZEPHIR_OBS_NVAR(&snapshotValue); - if (!(zephir_array_isset_fetch(&snapshotValue, &snapshot, &attributeField, 0))) { - changed = 1; - } else { - if (Z_TYPE_P(&value) == IS_NULL) { - changed = Z_TYPE_P(&snapshotValue) != IS_NULL; - } else { - if (Z_TYPE_P(&snapshotValue) == IS_NULL) { - changed = 1; - } else { - ZEPHIR_OBS_NVAR(&dataType); - if (UNEXPECTED(!(zephir_array_isset_fetch(&dataType, &dataTypes, &field, 0)))) { - ZEPHIR_INIT_NVAR(&_20$$46); - object_init_ex(&_20$$46, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_21$$46); - ZEPHIR_CONCAT_SVS(&_21$$46, "Column '", &field, "' have not defined a data type"); - ZEPHIR_CALL_METHOD(NULL, &_20$$46, "__construct", &_6, 8, &_21$$46); - zephir_check_call_status(); - zephir_throw_exception_debug(&_20$$46, "phalcon/Mvc/Model.zep", 3888); - ZEPHIR_MM_RESTORE(); - return; - } - do { - if (ZEPHIR_IS_LONG(&dataType, 8)) { - changed = zephir_get_boolval(&snapshotValue) != zephir_get_boolval(&value); - break; - } - if (ZEPHIR_IS_LONG(&dataType, 3) || ZEPHIR_IS_LONG(&dataType, 7)) { - ZEPHIR_CALL_FUNCTION(&_22$$48, "floatval", &_12, 18, &snapshotValue); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_23$$48, "floatval", &_12, 18, &value); - zephir_check_call_status(); - changed = !ZEPHIR_IS_IDENTICAL(&_22$$48, &_23$$48); - break; - } - if (ZEPHIR_IS_LONG(&dataType, 0) || ZEPHIR_IS_LONG(&dataType, 1) || ZEPHIR_IS_LONG(&dataType, 2) || ZEPHIR_IS_LONG(&dataType, 4) || ZEPHIR_IS_LONG(&dataType, 5) || ZEPHIR_IS_LONG(&dataType, 6) || ZEPHIR_IS_LONG(&dataType, 2) || ZEPHIR_IS_LONG(&dataType, 14)) { - zephir_cast_to_string(&_24$$49, &snapshotValue); - zephir_cast_to_string(&_25$$49, &value); - changed = !ZEPHIR_IS_IDENTICAL(&_24$$49, &_25$$49); - break; - } - changed = !ZEPHIR_IS_EQUAL(&value, &snapshotValue); - } while(0); - - } - } - } - if (changed) { - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3927); - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3928); - zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3929); - } + zephir_array_append(&args, &arg, PH_SEPARATE, "phalcon/Cli/Console.zep", 181); } - zephir_array_update_zval(&newSnapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&newSnapshot, &attributeField, &__$null, PH_COPY | PH_SEPARATE); - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3937); - zephir_array_append(&values, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3938); - zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3939); } + } else { + zephir_array_append(&args, &arg, PH_SEPARATE, "phalcon/Cli/Console.zep", 185); } - ZEPHIR_CALL_METHOD(NULL, &nonPrimary, "next", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &arguments, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&field); - if (!(zephir_fast_count_int(&fields))) { - if (useDynamicUpdate) { - zephir_update_property_zval(this_ptr, ZEND_STRL("oldSnapshot"), &snapshot); - } - RETURN_MM_BOOL(1); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("uniqueKey"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&uniqueKey, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("uniqueParams"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&uniqueParams, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("uniqueTypes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&uniqueTypes, &_0); - if (Z_TYPE_P(&uniqueParams) != IS_ARRAY) { - ZEPHIR_CALL_METHOD(&primaryKeys, metaData, "getprimarykeyattributes", NULL, 0, this_ptr); + ZEPHIR_INIT_NVAR(&arg); + if (str) { + ZEPHIR_INIT_VAR(&_42$$22); + ZEPHIR_CALL_CE_STATIC(&_43$$22, phalcon_cli_router_route_ce, "getdelimiter", &_44, 0); zephir_check_call_status(); - if (UNEXPECTED(!(zephir_fast_count_int(&primaryKeys)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A primary key must be defined in the model in order to perform the operation", "phalcon/Mvc/Model.zep", 3971); - return; + zephir_fast_join(&_42$$22, &_43$$22, &args); + zephir_update_property_zval(this_ptr, ZEND_STRL("arguments"), &_42$$22); + } else { + if (zephir_fast_count_int(&args)) { + ZEPHIR_MAKE_REF(&args); + ZEPHIR_CALL_FUNCTION(&_45$$24, "array_shift", NULL, 24, &args); + ZEPHIR_UNREF(&args); + zephir_check_call_status(); + zephir_array_update_string(&handleArgs, SL("task"), &_45$$24, PH_COPY | PH_SEPARATE); } - ZEPHIR_INIT_NVAR(&uniqueParams); - array_init(&uniqueParams); - zephir_is_iterable(&primaryKeys, 0, "phalcon/Mvc/Model.zep", 3998); - if (Z_TYPE_P(&primaryKeys) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&primaryKeys), _26$$55) - { - ZEPHIR_INIT_NVAR(&field); - ZVAL_COPY(&field, _26$$55); - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&attributeField); - if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &field, 0)))) { - ZEPHIR_INIT_NVAR(&_28$$59); - object_init_ex(&_28$$59, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_29$$59); - ZEPHIR_CONCAT_SVS(&_29$$59, "Column '", &field, "' isn't part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_28$$59, "__construct", &_6, 8, &_29$$59); - zephir_check_call_status(); - zephir_throw_exception_debug(&_28$$59, "phalcon/Mvc/Model.zep", 3984); - ZEPHIR_MM_RESTORE(); - return; - } - } else { - ZEPHIR_CPY_WRT(&attributeField, &field); - } - ZEPHIR_OBS_NVAR(&value); - if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { - zephir_array_update_zval(&newSnapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); - zephir_array_append(&uniqueParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3992); - } else { - zephir_array_update_zval(&newSnapshot, &attributeField, &__$null, PH_COPY | PH_SEPARATE); - zephir_array_append(&uniqueParams, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3995); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &primaryKeys, "rewind", NULL, 0); + if (zephir_fast_count_int(&args)) { + ZEPHIR_MAKE_REF(&args); + ZEPHIR_CALL_FUNCTION(&_46$$25, "array_shift", NULL, 24, &args); + ZEPHIR_UNREF(&args); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_27$$55, &primaryKeys, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_27$$55)) { - break; - } - ZEPHIR_CALL_METHOD(&field, &primaryKeys, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&attributeField); - if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &field, 0)))) { - ZEPHIR_INIT_NVAR(&_30$$65); - object_init_ex(&_30$$65, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_31$$65); - ZEPHIR_CONCAT_SVS(&_31$$65, "Column '", &field, "' isn't part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_30$$65, "__construct", &_6, 8, &_31$$65); - zephir_check_call_status(); - zephir_throw_exception_debug(&_30$$65, "phalcon/Mvc/Model.zep", 3984); - ZEPHIR_MM_RESTORE(); - return; - } - } else { - ZEPHIR_CPY_WRT(&attributeField, &field); - } - ZEPHIR_OBS_NVAR(&value); - if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { - zephir_array_update_zval(&newSnapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); - zephir_array_append(&uniqueParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3992); - } else { - zephir_array_update_zval(&newSnapshot, &attributeField, &__$null, PH_COPY | PH_SEPARATE); - zephir_array_append(&uniqueParams, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3995); - } - ZEPHIR_CALL_METHOD(NULL, &primaryKeys, "next", NULL, 0); - zephir_check_call_status(); - } + zephir_array_update_string(&handleArgs, SL("action"), &_46$$25, PH_COPY | PH_SEPARATE); } - ZEPHIR_INIT_NVAR(&field); - } - if (Z_TYPE_P(table) == IS_ARRAY) { - zephir_array_fetch_long(&_32$$69, table, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 4004); - zephir_array_fetch_long(&_33$$69, table, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 4004); - ZEPHIR_INIT_VAR(&_34$$69); - ZEPHIR_CONCAT_VSV(&_34$$69, &_32$$69, ".", &_33$$69); - ZEPHIR_CPY_WRT(table, &_34$$69); - } - ZEPHIR_INIT_VAR(&_35); - zephir_create_array(&_35, 3, 0); - zephir_array_update_string(&_35, SL("conditions"), &uniqueKey, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_35, SL("bind"), &uniqueParams, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_35, SL("bindTypes"), &uniqueTypes, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&success, connection, "update", NULL, 0, table, &fields, &values, &_35, &bindTypes); - zephir_check_call_status(); - _36 = zephir_is_true(&success); - if (_36) { - ZEPHIR_CALL_METHOD(&_1, &manager, "iskeepingsnapshots", NULL, 0, this_ptr); - zephir_check_call_status(); - _36 = zephir_is_true(&_1); - } - _37 = _36; - if (_37) { - _37 = ZEPHIR_GLOBAL(orm).update_snapshot_on_save; - } - if (_37) { - if (Z_TYPE_P(&snapshot) == IS_ARRAY) { - zephir_update_property_zval(this_ptr, ZEND_STRL("oldSnapshot"), &snapshot); - ZEPHIR_INIT_VAR(&_38$$71); - zephir_fast_array_merge(&_38$$71, &snapshot, &newSnapshot); - zephir_update_property_zval(this_ptr, ZEND_STRL("snapshot"), &_38$$71); - } else { - ZEPHIR_INIT_VAR(&_39$$72); - array_init(&_39$$72); - zephir_update_property_zval(this_ptr, ZEND_STRL("oldSnapshot"), &_39$$72); - zephir_update_property_zval(this_ptr, ZEND_STRL("snapshot"), &newSnapshot); + if (zephir_fast_count_int(&args)) { + ZEPHIR_INIT_VAR(&_47$$26); + zephir_fast_array_merge(&_47$$26, &handleArgs, &args); + ZEPHIR_CPY_WRT(&handleArgs, &_47$$26); } + zephir_update_property_zval(this_ptr, ZEND_STRL("arguments"), &handleArgs); } - RETURN_CCTOR(&success); + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &opts); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model, exists) +zend_object *zephir_init_properties_Phalcon_Cli_Console(zend_class_entry *class_type) { - zend_bool _6$$11, _14$$19; + zval _0, _2, _4, _1$$3, _3$$4, _5$$5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL, *_10 = NULL, *_18 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, numberEmpty = 0, numberPrimary = 0; - zval *metaData, metaData_sub, *connection, connection_sub, __$null, attributeField, bindDataTypes, columnMap, field, joinWhere, num, primaryKeys, schema, source, table, type, uniqueKey, uniqueParams, uniqueTypes, value, wherePk, _0, _23, _24, _25, _26, *_1$$3, _2$$3, _3$$9, _4$$9, _7$$14, _8$$14, _9$$7, _11$$7, _12$$17, _13$$17, _15$$22, _16$$22, _17$$15, _19$$15, _20$$25, _21$$26, _22$$27, _27$$30, _28$$31; - zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + - ZVAL_UNDEF(&metaData_sub); - ZVAL_UNDEF(&connection_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&attributeField); - ZVAL_UNDEF(&bindDataTypes); - ZVAL_UNDEF(&columnMap); - ZVAL_UNDEF(&field); - ZVAL_UNDEF(&joinWhere); - ZVAL_UNDEF(&num); - ZVAL_UNDEF(&primaryKeys); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&uniqueKey); - ZVAL_UNDEF(&uniqueParams); - ZVAL_UNDEF(&uniqueTypes); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&wherePk); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_23); - ZVAL_UNDEF(&_24); - ZVAL_UNDEF(&_25); - ZVAL_UNDEF(&_26); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$9); - ZVAL_UNDEF(&_4$$9); - ZVAL_UNDEF(&_7$$14); - ZVAL_UNDEF(&_8$$14); - ZVAL_UNDEF(&_9$$7); - ZVAL_UNDEF(&_11$$7); - ZVAL_UNDEF(&_12$$17); - ZVAL_UNDEF(&_13$$17); - ZVAL_UNDEF(&_15$$22); - ZVAL_UNDEF(&_16$$22); - ZVAL_UNDEF(&_17$$15); - ZVAL_UNDEF(&_19$$15); - ZVAL_UNDEF(&_20$$25); - ZVAL_UNDEF(&_21$$26); - ZVAL_UNDEF(&_22$$27); - ZVAL_UNDEF(&_27$$30); - ZVAL_UNDEF(&_28$$31); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(metaData, phalcon_mvc_model_metadatainterface_ce) - Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_db_adapter_adapterinterface_ce) - ZEND_PARSE_PARAMETERS_END(); + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("modules"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("modules"), &_3$$4); + } + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_4) == IS_NULL) { + ZEPHIR_INIT_VAR(&_5$$5); + array_init(&_5$$5); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("arguments"), &_5$$5); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &metaData, &connection); - ZEPHIR_INIT_VAR(&uniqueParams); - ZVAL_NULL(&uniqueParams); - ZEPHIR_INIT_VAR(&uniqueTypes); - ZVAL_NULL(&uniqueTypes); - zephir_read_property(&_0, this_ptr, ZEND_STRL("uniqueKey"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&uniqueKey, &_0); - if (Z_TYPE_P(&uniqueKey) == IS_NULL) { - ZEPHIR_CALL_METHOD(&primaryKeys, metaData, "getprimarykeyattributes", NULL, 0, this_ptr); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&bindDataTypes, metaData, "getbindtypes", NULL, 0, this_ptr); - zephir_check_call_status(); - numberPrimary = zephir_fast_count_int(&primaryKeys); - if (!(numberPrimary)) { - RETURN_MM_BOOL(0); - } - if (ZEPHIR_GLOBAL(orm).column_renaming) { - ZEPHIR_CALL_METHOD(&columnMap, metaData, "getcolumnmap", NULL, 0, this_ptr); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&columnMap); - ZVAL_NULL(&columnMap); - } - numberEmpty = 0; - ZEPHIR_INIT_VAR(&wherePk); - array_init(&wherePk); - ZEPHIR_INIT_NVAR(&uniqueParams); - array_init(&uniqueParams); - ZEPHIR_INIT_NVAR(&uniqueTypes); - array_init(&uniqueTypes); - zephir_is_iterable(&primaryKeys, 0, "phalcon/Mvc/Model.zep", 4128); - if (Z_TYPE_P(&primaryKeys) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&primaryKeys), _1$$3) - { - ZEPHIR_INIT_NVAR(&field); - ZVAL_COPY(&field, _1$$3); - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&attributeField); - if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &field, 0)))) { - ZEPHIR_INIT_NVAR(&_3$$9); - object_init_ex(&_3$$9, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_4$$9); - ZEPHIR_CONCAT_SVS(&_4$$9, "Column '", &field, "' isn't part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_3$$9, "__construct", &_5, 8, &_4$$9); - zephir_check_call_status(); - zephir_throw_exception_debug(&_3$$9, "phalcon/Mvc/Model.zep", 4087); - ZEPHIR_MM_RESTORE(); - return; - } - } else { - ZEPHIR_CPY_WRT(&attributeField, &field); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_NULL(&value); - ZEPHIR_OBS_NVAR(&value); - if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { - _6$$11 = Z_TYPE_P(&value) == IS_NULL; - if (!(_6$$11)) { - _6$$11 = ZEPHIR_IS_STRING_IDENTICAL(&value, ""); - } - if (_6$$11) { - numberEmpty++; - } - zephir_array_append(&uniqueParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4108); - } else { - zephir_array_append(&uniqueParams, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4110); - numberEmpty++; - } - ZEPHIR_OBS_NVAR(&type); - if (UNEXPECTED(!(zephir_array_isset_fetch(&type, &bindDataTypes, &field, 0)))) { - ZEPHIR_INIT_NVAR(&_7$$14); - object_init_ex(&_7$$14, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_8$$14); - ZEPHIR_CONCAT_SVS(&_8$$14, "Column '", &field, "' isn't part of the table columns"); - ZEPHIR_CALL_METHOD(NULL, &_7$$14, "__construct", &_5, 8, &_8$$14); - zephir_check_call_status(); - zephir_throw_exception_debug(&_7$$14, "phalcon/Mvc/Model.zep", 4117); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_array_append(&uniqueTypes, &type, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4120); - ZEPHIR_CALL_METHOD(&_9$$7, connection, "escapeidentifier", &_10, 0, &field); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_11$$7); - ZEPHIR_CONCAT_VS(&_11$$7, &_9$$7, " = ?"); - zephir_array_append(&wherePk, &_11$$7, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4121); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &primaryKeys, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2$$3, &primaryKeys, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&field, &primaryKeys, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&attributeField); - if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &field, 0)))) { - ZEPHIR_INIT_NVAR(&_12$$17); - object_init_ex(&_12$$17, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_13$$17); - ZEPHIR_CONCAT_SVS(&_13$$17, "Column '", &field, "' isn't part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_12$$17, "__construct", &_5, 8, &_13$$17); - zephir_check_call_status(); - zephir_throw_exception_debug(&_12$$17, "phalcon/Mvc/Model.zep", 4087); - ZEPHIR_MM_RESTORE(); - return; - } - } else { - ZEPHIR_CPY_WRT(&attributeField, &field); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_NULL(&value); - ZEPHIR_OBS_NVAR(&value); - if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { - _14$$19 = Z_TYPE_P(&value) == IS_NULL; - if (!(_14$$19)) { - _14$$19 = ZEPHIR_IS_STRING_IDENTICAL(&value, ""); - } - if (_14$$19) { - numberEmpty++; - } - zephir_array_append(&uniqueParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4108); - } else { - zephir_array_append(&uniqueParams, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4110); - numberEmpty++; - } - ZEPHIR_OBS_NVAR(&type); - if (UNEXPECTED(!(zephir_array_isset_fetch(&type, &bindDataTypes, &field, 0)))) { - ZEPHIR_INIT_NVAR(&_15$$22); - object_init_ex(&_15$$22, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_16$$22); - ZEPHIR_CONCAT_SVS(&_16$$22, "Column '", &field, "' isn't part of the table columns"); - ZEPHIR_CALL_METHOD(NULL, &_15$$22, "__construct", &_5, 8, &_16$$22); - zephir_check_call_status(); - zephir_throw_exception_debug(&_15$$22, "phalcon/Mvc/Model.zep", 4117); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_array_append(&uniqueTypes, &type, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4120); - ZEPHIR_CALL_METHOD(&_17$$15, connection, "escapeidentifier", &_18, 0, &field); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_19$$15); - ZEPHIR_CONCAT_VS(&_19$$15, &_17$$15, " = ?"); - zephir_array_append(&wherePk, &_19$$15, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4121); - ZEPHIR_CALL_METHOD(NULL, &primaryKeys, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&field); - if (numberPrimary == numberEmpty) { - RETURN_MM_BOOL(0); - } - ZEPHIR_INIT_VAR(&joinWhere); - zephir_fast_join_str(&joinWhere, SL(" AND "), &wherePk); - zephir_update_property_zval(this_ptr, ZEND_STRL("uniqueKey"), &joinWhere); - zephir_update_property_zval(this_ptr, ZEND_STRL("uniqueParams"), &uniqueParams); - zephir_update_property_zval(this_ptr, ZEND_STRL("uniqueTypes"), &uniqueTypes); - ZEPHIR_CPY_WRT(&uniqueKey, &joinWhere); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("dirtyState"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - RETURN_MM_BOOL(1); - } - if (Z_TYPE_P(&uniqueKey) == IS_NULL) { - zephir_read_property(&_20$$25, this_ptr, ZEND_STRL("uniqueKey"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&uniqueKey, &_20$$25); - } - if (Z_TYPE_P(&uniqueParams) == IS_NULL) { - zephir_read_property(&_21$$26, this_ptr, ZEND_STRL("uniqueParams"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&uniqueParams, &_21$$26); - } - if (Z_TYPE_P(&uniqueTypes) == IS_NULL) { - zephir_read_property(&_22$$27, this_ptr, ZEND_STRL("uniqueTypes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&uniqueTypes, &_22$$27); - } - ZEPHIR_CALL_METHOD(&schema, this_ptr, "getschema", NULL, 435); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&source, this_ptr, "getsource", NULL, 436); - zephir_check_call_status(); - if (zephir_is_true(&schema)) { - ZEPHIR_INIT_VAR(&table); - zephir_create_array(&table, 2, 0); - zephir_array_fast_append(&table, &schema); - zephir_array_fast_append(&table, &source); - } else { - ZEPHIR_CPY_WRT(&table, &source); - } - ZEPHIR_CALL_METHOD(&_23, connection, "escapeidentifier", NULL, 0, &table); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_24); - ZEPHIR_CONCAT_SVSV(&_24, "SELECT COUNT(*) \"rowcount\" FROM ", &_23, " WHERE ", &uniqueKey); - ZVAL_NULL(&_25); - ZEPHIR_CALL_METHOD(&num, connection, "fetchone", NULL, 0, &_24, &_25, &uniqueParams, &uniqueTypes); - zephir_check_call_status(); - zephir_array_fetch_string(&_26, &num, SL("rowcount"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 4182); - if (zephir_is_true(&_26)) { - ZEPHIR_INIT_ZVAL_NREF(_27$$30); - ZVAL_LONG(&_27$$30, 0); - zephir_update_property_zval(this_ptr, ZEND_STRL("dirtyState"), &_27$$30); - RETURN_MM_BOOL(1); - } else { - ZEPHIR_INIT_ZVAL_NREF(_28$$31); - ZVAL_LONG(&_28$$31, 1); - zephir_update_property_zval(this_ptr, ZEND_STRL("dirtyState"), &_28$$31); - } - RETURN_MM_BOOL(0); + +ZEPHIR_INIT_CLASS(Phalcon_Cli_Dispatcher) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cli, Dispatcher, phalcon, cli_dispatcher, phalcon_dispatcher_abstractdispatcher_ce, phalcon_cli_dispatcher_method_entry, 0); + + zend_declare_property_string(phalcon_cli_dispatcher_ce, SL("defaultHandler"), "main", ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_cli_dispatcher_ce, SL("defaultAction"), "main", ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_cli_dispatcher_ce, SL("handlerSuffix"), "Task", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_cli_dispatcher_ce, SL("options"), ZEND_ACC_PROTECTED); + phalcon_cli_dispatcher_ce->create_object = zephir_init_properties_Phalcon_Cli_Dispatcher; + + zend_class_implements(phalcon_cli_dispatcher_ce, 1, phalcon_cli_dispatcherinterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model, getRelatedRecords) +static PHP_METHOD(Phalcon_Cli_Dispatcher, callActionMethod) { + zval _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval arguments; - zval *modelName_param = NULL, *method_param = NULL, *arguments_param = NULL, manager, relation, queryMethod, extraArgs, alias, _0, _1$$3, _2$$3, _3$$5, _4$$5, _5$$5; - zval modelName, method; + zval actionMethod; + zval *handler, handler_sub, *actionMethod_param = NULL, params, *params_param = NULL, _0, _1, _2; zval *this_ptr = getThis(); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&relation); - ZVAL_UNDEF(&queryMethod); - ZVAL_UNDEF(&extraArgs); - ZVAL_UNDEF(&alias); + ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(¶ms); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&arguments); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&actionMethod); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(modelName) - Z_PARAM_STR(method) - Z_PARAM_ARRAY(arguments) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_ZVAL(handler) + Z_PARAM_STR(actionMethod) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(params) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &modelName_param, &method_param, &arguments_param); - if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { - zephir_get_strval(&modelName, modelName_param); - } else { - ZEPHIR_INIT_VAR(&modelName); - } - if (UNEXPECTED(Z_TYPE_P(method_param) != IS_STRING && Z_TYPE_P(method_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'method' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(method_param) == IS_STRING)) { - zephir_get_strval(&method, method_param); + zephir_fetch_params(1, 2, 1, &handler, &actionMethod_param, ¶ms_param); + zephir_get_strval(&actionMethod, actionMethod_param); + if (!params_param) { + ZEPHIR_INIT_VAR(¶ms); + array_init(¶ms); } else { - ZEPHIR_INIT_VAR(&method); + ZEPHIR_OBS_COPY_OR_DUP(¶ms, params_param); } - ZEPHIR_OBS_COPY_OR_DUP(&arguments, arguments_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&manager, &_0); - ZEPHIR_INIT_VAR(&relation); - ZVAL_BOOL(&relation, 0); - ZEPHIR_INIT_VAR(&queryMethod); - ZVAL_NULL(&queryMethod); - ZEPHIR_OBS_VAR(&extraArgs); - zephir_array_isset_long_fetch(&extraArgs, &arguments, 0, 0); - if (zephir_start_with_str(&method, SL("get"))) { - ZVAL_LONG(&_1$$3, 3); - ZEPHIR_INIT_VAR(&alias); - zephir_substr(&alias, &method, 3 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - ZEPHIR_CALL_METHOD(&_2$$3, &manager, "getrelationbyalias", NULL, 0, &modelName, &alias); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&relation, &_2$$3); - if (Z_TYPE_P(&relation) != IS_OBJECT) { - RETURN_MM_BOOL(0); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getrelated", NULL, 0, &alias, &extraArgs); - zephir_check_call_status(); - RETURN_MM(); - } - if (zephir_start_with_str(&method, SL("count"))) { - ZEPHIR_INIT_NVAR(&queryMethod); - ZVAL_STRING(&queryMethod, "count"); - ZVAL_LONG(&_4$$5, 5); - ZEPHIR_INIT_VAR(&_5$$5); - zephir_substr(&_5$$5, &method, 5 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - ZEPHIR_CALL_METHOD(&_3$$5, &manager, "getrelationbyalias", NULL, 0, &modelName, &_5$$5); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&relation, &_3$$5); - if (Z_TYPE_P(&relation) != IS_OBJECT) { - RETURN_MM_BOOL(0); - } - ZEPHIR_RETURN_CALL_METHOD(&manager, "getrelationrecords", NULL, 0, &relation, this_ptr, &extraArgs, &queryMethod); - zephir_check_call_status(); - RETURN_MM(); - } - RETURN_MM_BOOL(0); + ZEPHIR_CALL_FUNCTION(&_0, "array_values", NULL, 12, ¶ms); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(¶ms, &_0); + ZEPHIR_INIT_VAR(&_1); + zephir_read_property(&_2, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + zephir_fast_array_merge(&_1, ¶ms, &_2); + ZEPHIR_CPY_WRT(¶ms, &_1); + ZEPHIR_INIT_VAR(&_3); + zephir_create_array(&_3, 2, 0); + zephir_array_fast_append(&_3, handler); + zephir_array_fast_append(&_3, &actionMethod); + ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, &_3, ¶ms); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model, groupResult) +static PHP_METHOD(Phalcon_Cli_Dispatcher, getActiveTask) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "activeHandler"); +} + +static PHP_METHOD(Phalcon_Cli_Dispatcher, getLastTask) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "lastHandler"); +} + +static PHP_METHOD(Phalcon_Cli_Dispatcher, getOption) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *functionName_param = NULL, *alias_param = NULL, *parameters = NULL, parameters_sub, __$null, params, distinctColumn, groupColumn, columns, resultset, cache, firstRow, groupColumns, builder, query, container, manager, transaction, bindParams, bindTypes, _1, _2, _3; - zval functionName, alias; + zephir_fcall_cache_entry *_2 = NULL; + zval *option, option_sub, *filters = NULL, filters_sub, *defaultValue = NULL, defaultValue_sub, __$null, options, filter, optionValue, container, _0, _5, _6, _1$$5, _3$$5, _4$$5; zval *this_ptr = getThis(); - ZVAL_UNDEF(&functionName); - ZVAL_UNDEF(&alias); - ZVAL_UNDEF(¶meters_sub); + ZVAL_UNDEF(&option_sub); + ZVAL_UNDEF(&filters_sub); + ZVAL_UNDEF(&defaultValue_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(¶ms); - ZVAL_UNDEF(&distinctColumn); - ZVAL_UNDEF(&groupColumn); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&resultset); - ZVAL_UNDEF(&cache); - ZVAL_UNDEF(&firstRow); - ZVAL_UNDEF(&groupColumns); - ZVAL_UNDEF(&builder); - ZVAL_UNDEF(&query); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&filter); + ZVAL_UNDEF(&optionValue); ZVAL_UNDEF(&container); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&transaction); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_1$$5); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_4$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(functionName) - Z_PARAM_STR(alias) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ZVAL(option) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(parameters) + Z_PARAM_ZVAL_OR_NULL(filters) + Z_PARAM_ZVAL_OR_NULL(defaultValue) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &functionName_param, &alias_param, ¶meters); - if (UNEXPECTED(Z_TYPE_P(functionName_param) != IS_STRING && Z_TYPE_P(functionName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'functionName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(functionName_param) == IS_STRING)) { - zephir_get_strval(&functionName, functionName_param); - } else { - ZEPHIR_INIT_VAR(&functionName); - } - if (UNEXPECTED(Z_TYPE_P(alias_param) != IS_STRING && Z_TYPE_P(alias_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'alias' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(alias_param) == IS_STRING)) { - zephir_get_strval(&alias, alias_param); - } else { - ZEPHIR_INIT_VAR(&alias); + zephir_fetch_params(1, 1, 2, &option, &filters, &defaultValue); + if (!filters) { + filters = &filters_sub; + filters = &__$null; } - if (!parameters) { - parameters = ¶meters_sub; - parameters = &__$null; + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; } - ZEPHIR_INIT_VAR(&bindParams); - array_init(&bindParams); - ZEPHIR_INIT_VAR(&bindTypes); - array_init(&bindTypes); - ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_0, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "modelsManager"); - ZEPHIR_CALL_METHOD(&_1, &container, "getshared", NULL, 0, &_2); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&manager, &_1); - if (Z_TYPE_P(parameters) != IS_ARRAY) { - ZEPHIR_INIT_VAR(¶ms); - array_init(¶ms); - if (Z_TYPE_P(parameters) != IS_NULL) { - zephir_array_append(¶ms, parameters, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4287); - } - } else { - ZEPHIR_CPY_WRT(¶ms, parameters); - } - ZEPHIR_OBS_VAR(&groupColumn); - if (!(zephir_array_isset_string_fetch(&groupColumn, ¶ms, SL("column"), 0))) { - ZEPHIR_INIT_NVAR(&groupColumn); - ZVAL_STRING(&groupColumn, "*"); - } - ZEPHIR_OBS_VAR(&distinctColumn); - if (zephir_array_isset_string_fetch(&distinctColumn, ¶ms, SL("distinct"), 0)) { - ZEPHIR_INIT_VAR(&columns); - ZEPHIR_CONCAT_VSVSV(&columns, &functionName, "(DISTINCT ", &distinctColumn, ") AS ", &alias); - } else { - ZEPHIR_OBS_VAR(&groupColumns); - ZEPHIR_INIT_NVAR(&columns); - if (zephir_array_isset_string_fetch(&groupColumns, ¶ms, SL("group"), 0)) { - ZEPHIR_CONCAT_VSVSVSV(&columns, &groupColumns, ", ", &functionName, "(", &groupColumn, ") AS ", &alias); - } else { - ZEPHIR_CONCAT_VSVSV(&columns, &functionName, "(", &groupColumn, ") AS ", &alias); - } - } - ZEPHIR_CALL_METHOD(&_1, &manager, "createbuilder", NULL, 0, ¶ms); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&builder, &_1); - ZEPHIR_CALL_METHOD(NULL, &builder, "columns", NULL, 0, &columns); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_2); - zephir_get_called_class(&_2); - ZEPHIR_CALL_METHOD(NULL, &builder, "from", NULL, 0, &_2); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, &builder, "getquery", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&query, &_1); - ZEPHIR_OBS_VAR(&transaction); - if (zephir_array_isset_string_fetch(&transaction, ¶ms, SL("transaction"), 0)) { - if (zephir_instance_of_ev(&transaction, phalcon_mvc_model_transactioninterface_ce)) { - ZEPHIR_CALL_METHOD(NULL, &query, "settransaction", NULL, 0, &transaction); - zephir_check_call_status(); - } + zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&options, &_0); + ZEPHIR_OBS_VAR(&optionValue); + if (!(zephir_array_isset_fetch(&optionValue, &options, option, 0))) { + RETVAL_ZVAL(defaultValue, 1, 0); + RETURN_MM(); } - if (zephir_array_isset_string(¶ms, SL("bind"))) { - ZEPHIR_OBS_NVAR(&bindParams); - zephir_array_fetch_string(&bindParams, ¶ms, SL("bind"), PH_NOISY, "phalcon/Mvc/Model.zep", 4330); - if (zephir_array_isset_string(¶ms, SL("bindTypes"))) { - ZEPHIR_OBS_NVAR(&bindTypes); - zephir_array_fetch_string(&bindTypes, ¶ms, SL("bindTypes"), PH_NOISY, "phalcon/Mvc/Model.zep", 4333); - } + if (Z_TYPE_P(filters) == IS_NULL) { + RETURN_CCTOR(&optionValue); } - ZEPHIR_OBS_VAR(&cache); - if (zephir_array_isset_string_fetch(&cache, ¶ms, SL("cache"), 0)) { - ZEPHIR_CALL_METHOD(NULL, &query, "cache", NULL, 0, &cache); + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + if (Z_TYPE_P(&container) != IS_OBJECT) { + ZEPHIR_INIT_VAR(&_3$$5); + ZVAL_STRING(&_3$$5, "the 'filter' service"); + ZEPHIR_CALL_CE_STATIC(&_1$$5, phalcon_cli_dispatcher_exception_ce, "containerservicenotfound", &_2, 0, &_3$$5); + zephir_check_call_status(); + ZVAL_LONG(&_4$$5, 0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "throwdispatchexception", NULL, 0, &_1$$5, &_4$$5); zephir_check_call_status(); } - ZEPHIR_CALL_METHOD(&resultset, &query, "execute", NULL, 0, &bindParams, &bindTypes); + ZEPHIR_INIT_VAR(&_6); + ZVAL_STRING(&_6, "filter"); + ZEPHIR_CALL_METHOD(&_5, &container, "getshared", NULL, 0, &_6); zephir_check_call_status(); - if (zephir_array_isset_string(¶ms, SL("group"))) { - RETURN_CCTOR(&resultset); - } - ZEPHIR_CALL_METHOD(&firstRow, &resultset, "getfirst", NULL, 0); + ZEPHIR_CPY_WRT(&filter, &_5); + ZEPHIR_RETURN_CALL_METHOD(&filter, "sanitize", NULL, 0, &optionValue, filters); zephir_check_call_status(); - ZEPHIR_OBS_VAR(&_3); - zephir_read_property_zval(&_3, &firstRow, &alias, PH_NOISY_CC); - RETURN_CCTOR(&_3); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model, invokeFinder) +static PHP_METHOD(Phalcon_Cli_Dispatcher, getOptions) { - zend_class_entry *_13; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval arguments, _9$$14; - zval *method_param = NULL, *arguments_param = NULL, extraMethod, type, modelName, value, model, attributes, field, extraMethodFirst, metaData, params, _12, _0$$3, _1$$4, _2$$5, _3$$7, _5$$13, _6$$13, _7$$14, _8$$14, _10$$15, _11$$15; - zval method, _4$$7; zval *this_ptr = getThis(); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&_4$$7); - ZVAL_UNDEF(&extraMethod); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&field); - ZVAL_UNDEF(&extraMethodFirst); - ZVAL_UNDEF(&metaData); - ZVAL_UNDEF(¶ms); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$5); - ZVAL_UNDEF(&_3$$7); - ZVAL_UNDEF(&_5$$13); - ZVAL_UNDEF(&_6$$13); - ZVAL_UNDEF(&_7$$14); - ZVAL_UNDEF(&_8$$14); - ZVAL_UNDEF(&_10$$15); - ZVAL_UNDEF(&_11$$15); - ZVAL_UNDEF(&arguments); - ZVAL_UNDEF(&_9$$14); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(method) - Z_PARAM_ARRAY(arguments) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &method_param, &arguments_param); - zephir_get_strval(&method, method_param); - zephir_get_arrval(&arguments, arguments_param); + RETURN_MEMBER(getThis(), "options"); +} +static PHP_METHOD(Phalcon_Cli_Dispatcher, getTaskName) +{ + zval *this_ptr = getThis(); - ZEPHIR_INIT_VAR(&extraMethod); - ZVAL_NULL(&extraMethod); - if (zephir_start_with_str(&method, SL("findFirstBy"))) { - ZEPHIR_INIT_VAR(&type); - ZVAL_STRING(&type, "findFirst"); - ZVAL_LONG(&_0$$3, 11); - ZEPHIR_INIT_NVAR(&extraMethod); - zephir_substr(&extraMethod, &method, 11 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - } else if (zephir_start_with_str(&method, SL("findBy"))) { - ZEPHIR_INIT_NVAR(&type); - ZVAL_STRING(&type, "find"); - ZVAL_LONG(&_1$$4, 6); - ZEPHIR_INIT_NVAR(&extraMethod); - zephir_substr(&extraMethod, &method, 6 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - } else if (zephir_start_with_str(&method, SL("countBy"))) { - ZEPHIR_INIT_NVAR(&type); - ZVAL_STRING(&type, "count"); - ZVAL_LONG(&_2$$5, 7); - ZEPHIR_INIT_NVAR(&extraMethod); - zephir_substr(&extraMethod, &method, 7 , 0, ZEPHIR_SUBSTR_NO_LENGTH); - } - ZEPHIR_INIT_VAR(&modelName); - zephir_get_called_class(&modelName); - if (!(zephir_is_true(&extraMethod))) { - RETURN_MM_BOOL(0); - } - if (UNEXPECTED(!(zephir_array_isset_long(&arguments, 0)))) { - ZEPHIR_INIT_VAR(&_3$$7); - object_init_ex(&_3$$7, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_4$$7); - ZEPHIR_CONCAT_SVS(&_4$$7, "The static method '", &method, "' requires one argument"); - ZEPHIR_CALL_METHOD(NULL, &_3$$7, "__construct", NULL, 8, &_4$$7); - zephir_check_call_status(); - zephir_throw_exception_debug(&_3$$7, "phalcon/Mvc/Model.zep", 4412); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_VAR(&model); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(&model, &modelName); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&metaData, &model, "getmodelsmetadata", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&attributes, &metaData, "getreversecolumnmap", NULL, 0, &model); - zephir_check_call_status(); - if (Z_TYPE_P(&attributes) != IS_ARRAY) { - ZEPHIR_CALL_METHOD(&attributes, &metaData, "getdatatypes", NULL, 0, &model); - zephir_check_call_status(); - } - if (zephir_array_isset(&attributes, &extraMethod)) { - ZEPHIR_CPY_WRT(&field, &extraMethod); - } else { - ZEPHIR_CALL_FUNCTION(&extraMethodFirst, "lcfirst", NULL, 96, &extraMethod); - zephir_check_call_status(); - if (zephir_array_isset(&attributes, &extraMethodFirst)) { - ZEPHIR_CPY_WRT(&field, &extraMethodFirst); - } else { - ZEPHIR_INIT_NVAR(&field); - zephir_uncamelize(&field, &extraMethod, NULL ); - if (UNEXPECTED(!(zephir_array_isset(&attributes, &field)))) { - ZEPHIR_INIT_VAR(&_5$$13); - object_init_ex(&_5$$13, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_6$$13); - ZEPHIR_CONCAT_SVS(&_6$$13, "Cannot resolve attribute '", &extraMethod, "' in the model"); - ZEPHIR_CALL_METHOD(NULL, &_5$$13, "__construct", NULL, 8, &_6$$13); - zephir_check_call_status(); - zephir_throw_exception_debug(&_5$$13, "phalcon/Mvc/Model.zep", 4449); - ZEPHIR_MM_RESTORE(); - return; - } - } - } - ZEPHIR_OBS_VAR(&value); - zephir_array_isset_long_fetch(&value, &arguments, 0, 0); - ZEPHIR_INIT_VAR(¶ms); - if (Z_TYPE_P(&value) != IS_NULL) { - ZEPHIR_INIT_VAR(&_7$$14); - zephir_create_array(&_7$$14, 2, 0); - ZEPHIR_INIT_VAR(&_8$$14); - ZEPHIR_CONCAT_SVS(&_8$$14, "[", &field, "] = ?0"); - zephir_array_update_string(&_7$$14, SL("conditions"), &_8$$14, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_VAR(&_9$$14); - zephir_create_array(&_9$$14, 1, 0); - zephir_array_fast_append(&_9$$14, &value); - zephir_array_update_string(&_7$$14, SL("bind"), &_9$$14, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(¶ms, &_7$$14); - } else { - ZEPHIR_INIT_VAR(&_10$$15); - zephir_create_array(&_10$$15, 1, 0); - ZEPHIR_INIT_VAR(&_11$$15); - ZEPHIR_CONCAT_SVS(&_11$$15, "[", &field, "] IS NULL"); - zephir_array_update_string(&_10$$15, SL("conditions"), &_11$$15, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(¶ms, &_10$$15); - } - zephir_array_unset_long(&arguments, 0, PH_SEPARATE); - zephir_array_unset_string(&arguments, SL("conditions"), PH_SEPARATE); - zephir_array_unset_string(&arguments, SL("bind"), PH_SEPARATE); - ZEPHIR_INIT_VAR(&_12); - zephir_fast_array_merge(&_12, ¶ms, &arguments); - ZEPHIR_CPY_WRT(¶ms, &_12); - _13 = zephir_fetch_class(&modelName); - ZEPHIR_RETURN_CALL_CE_STATIC_ZVAL(_13, type, NULL, 0, ¶ms); - zephir_check_call_status(); - RETURN_MM(); + + + RETURN_MEMBER(getThis(), "handlerName"); } -static PHP_METHOD(Phalcon_Mvc_Model, possibleSetter) +static PHP_METHOD(Phalcon_Cli_Dispatcher, getTaskSuffix) { - zval localMethods; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *property_param = NULL, *value, value_sub, possibleSetter, _0; - zval property; zval *this_ptr = getThis(); - ZVAL_UNDEF(&property); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&possibleSetter); + + + RETURN_MEMBER(getThis(), "handlerSuffix"); +} + +static PHP_METHOD(Phalcon_Cli_Dispatcher, hasOption) +{ + zval *option, option_sub, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&option_sub); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&localMethods); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(property) - Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(option) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &property_param, &value); - zephir_get_strval(&property, property_param); + zephir_fetch_params_without_memory_grow(1, 0, &option); - ZEPHIR_INIT_VAR(&localMethods); - zephir_create_array(&localMethods, 10, 0); - add_assoc_long_ex(&localMethods, SL("setConnectionService"), 1); - add_assoc_long_ex(&localMethods, SL("setDirtyState"), 1); - add_assoc_long_ex(&localMethods, SL("setEventsManager"), 1); - add_assoc_long_ex(&localMethods, SL("setReadConnectionService"), 1); - add_assoc_long_ex(&localMethods, SL("setOldSnapshotData"), 1); - add_assoc_long_ex(&localMethods, SL("setSchema"), 1); - add_assoc_long_ex(&localMethods, SL("setSnapshotData"), 1); - add_assoc_long_ex(&localMethods, SL("setSource"), 1); - add_assoc_long_ex(&localMethods, SL("setTransaction"), 1); - add_assoc_long_ex(&localMethods, SL("setWriteConnectionService"), 1); - ZEPHIR_INIT_VAR(&_0); - zephir_camelize(&_0, &property, NULL ); - ZEPHIR_INIT_VAR(&possibleSetter); - ZEPHIR_CONCAT_SV(&possibleSetter, "set", &_0); - if (!((zephir_method_exists(this_ptr, &possibleSetter) == SUCCESS))) { - RETURN_MM_BOOL(0); - } - if (!(zephir_array_isset(&localMethods, &possibleSetter))) { - ZEPHIR_CALL_METHOD_ZVAL(NULL, this_ptr, &possibleSetter, NULL, 0, value); - zephir_check_call_status(); - } - RETURN_MM_BOOL(1); + zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + RETURN_BOOL(zephir_array_isset(&_0, option)); } -static PHP_METHOD(Phalcon_Mvc_Model, preSave) +static PHP_METHOD(Phalcon_Cli_Dispatcher, setDefaultTask) { - zval eventName; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_8 = NULL, *_16 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool exists, error = 0, isNull = 0, _9$$27, _10$$27, _11$$27, _19$$47, _20$$47, _21$$47; - zval *metaData, metaData_sub, *exists_param = NULL, *identityField, identityField_sub, __$true, __$false, notNull, columnMap, dataTypeNumeric, automaticAttributes, defaultValues, field, attributeField, value, emptyStringValues, _27, _28, _0$$3, _1$$3, _2$$3, _3$$8, *_4$$11, _5$$11, _6$$19, _7$$19, _12$$27, _13$$32, _14$$32, _15$$32, _17$$39, _18$$39, _22$$47, _23$$52, _24$$52, _25$$52, _26$$57, _29$$59, _30$$60, _31$$60, _32$$60, _33$$60, _34$$60, _35$$60; + zval *taskName_param = NULL; + zval taskName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&metaData_sub); - ZVAL_UNDEF(&identityField_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(¬Null); - ZVAL_UNDEF(&columnMap); - ZVAL_UNDEF(&dataTypeNumeric); - ZVAL_UNDEF(&automaticAttributes); - ZVAL_UNDEF(&defaultValues); - ZVAL_UNDEF(&field); - ZVAL_UNDEF(&attributeField); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&emptyStringValues); - ZVAL_UNDEF(&_27); - ZVAL_UNDEF(&_28); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$8); - ZVAL_UNDEF(&_5$$11); - ZVAL_UNDEF(&_6$$19); - ZVAL_UNDEF(&_7$$19); - ZVAL_UNDEF(&_12$$27); - ZVAL_UNDEF(&_13$$32); - ZVAL_UNDEF(&_14$$32); - ZVAL_UNDEF(&_15$$32); - ZVAL_UNDEF(&_17$$39); - ZVAL_UNDEF(&_18$$39); - ZVAL_UNDEF(&_22$$47); - ZVAL_UNDEF(&_23$$52); - ZVAL_UNDEF(&_24$$52); - ZVAL_UNDEF(&_25$$52); - ZVAL_UNDEF(&_26$$57); - ZVAL_UNDEF(&_29$$59); - ZVAL_UNDEF(&_30$$60); - ZVAL_UNDEF(&_31$$60); - ZVAL_UNDEF(&_32$$60); - ZVAL_UNDEF(&_33$$60); - ZVAL_UNDEF(&_34$$60); - ZVAL_UNDEF(&_35$$60); - ZVAL_UNDEF(&eventName); + ZVAL_UNDEF(&taskName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_OBJECT_OF_CLASS(metaData, phalcon_mvc_model_metadatainterface_ce) - Z_PARAM_BOOL(exists) - Z_PARAM_ZVAL(identityField) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(taskName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &metaData, &exists_param, &identityField); - exists = zephir_get_boolval(exists_param); + zephir_fetch_params(1, 1, 0, &taskName_param); + zephir_get_strval(&taskName, taskName_param); - if (ZEPHIR_GLOBAL(orm).events) { - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "beforeValidation"); - ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "fireeventcancel", NULL, 0, &_1$$3); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_0$$3)) { - RETURN_MM_BOOL(0); - } - if (exists) { - ZEPHIR_INIT_VAR(&eventName); - ZVAL_STRING(&eventName, "beforeValidationOnUpdate"); - } else { - ZEPHIR_INIT_NVAR(&eventName); - ZVAL_STRING(&eventName, "beforeValidationOnCreate"); - } - ZEPHIR_CALL_METHOD(&_2$$3, this_ptr, "fireeventcancel", NULL, 0, &eventName); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_2$$3)) { - RETURN_MM_BOOL(0); - } - } - if (ZEPHIR_GLOBAL(orm).virtual_foreign_keys) { - ZEPHIR_CALL_METHOD(&_3$$8, this_ptr, "checkforeignkeysrestrict", NULL, 445); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_3$$8)) { - RETURN_MM_BOOL(0); - } - } - if (ZEPHIR_GLOBAL(orm).not_null_validations) { - ZEPHIR_CALL_METHOD(¬Null, metaData, "getnotnullattributes", NULL, 0, this_ptr); - zephir_check_call_status(); - if (Z_TYPE_P(¬Null) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&dataTypeNumeric, metaData, "getdatatypesnumeric", NULL, 0, this_ptr); - zephir_check_call_status(); - if (ZEPHIR_GLOBAL(orm).column_renaming) { - ZEPHIR_CALL_METHOD(&columnMap, metaData, "getcolumnmap", NULL, 0, this_ptr); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&columnMap); - ZVAL_NULL(&columnMap); - } - if (exists) { - ZEPHIR_CALL_METHOD(&automaticAttributes, metaData, "getautomaticupdateattributes", NULL, 0, this_ptr); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(&automaticAttributes, metaData, "getautomaticcreateattributes", NULL, 0, this_ptr); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(&defaultValues, metaData, "getdefaultvalues", NULL, 0, this_ptr); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&emptyStringValues, metaData, "getemptystringattributes", NULL, 0, this_ptr); - zephir_check_call_status(); - error = 0; - zephir_is_iterable(¬Null, 0, "phalcon/Mvc/Model.zep", 4686); - if (Z_TYPE_P(¬Null) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(¬Null), _4$$11) - { - ZEPHIR_INIT_NVAR(&field); - ZVAL_COPY(&field, _4$$11); - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&attributeField); - if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &field, 0)))) { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_6$$19); - object_init_ex(&_6$$19, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_7$$19); - ZEPHIR_CONCAT_SVS(&_7$$19, "Column '", &field, "' isn't part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_6$$19, "__construct", &_8, 8, &_7$$19); - zephir_check_call_status(); - zephir_throw_exception_debug(&_6$$19, "phalcon/Mvc/Model.zep", 4610); - ZEPHIR_MM_RESTORE(); - return; - } - } - } else { - ZEPHIR_CPY_WRT(&attributeField, &field); - } - if (!(zephir_array_isset(&automaticAttributes, &attributeField))) { - isNull = 0; - ZEPHIR_OBS_NVAR(&value); - if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { - if (Z_TYPE_P(&value) != IS_OBJECT) { - if (!(zephir_array_isset(&dataTypeNumeric, &field))) { - if (zephir_array_isset(&emptyStringValues, &field)) { - if (Z_TYPE_P(&value) == IS_NULL) { - isNull = 1; - } - } else { - _9$$27 = Z_TYPE_P(&value) == IS_NULL; - if (!(_9$$27)) { - _10$$27 = ZEPHIR_IS_STRING_IDENTICAL(&value, ""); - if (_10$$27) { - _11$$27 = !(zephir_array_isset(&defaultValues, &field)); - if (!(_11$$27)) { - zephir_array_fetch(&_12$$27, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 4640); - _11$$27 = !ZEPHIR_IS_IDENTICAL(&value, &_12$$27); - } - _10$$27 = _11$$27; - } - _9$$27 = _10$$27; - } - if (_9$$27) { - isNull = 1; - } - } - } else { - if (!(zephir_is_numeric(&value))) { - isNull = 1; - } - } - } - } else { - isNull = 1; - } - if (isNull) { - if (!(exists)) { - if (ZEPHIR_IS_EQUAL(&field, identityField)) { - continue; - } - if (zephir_array_isset(&defaultValues, &field)) { - continue; - } - } - ZEPHIR_INIT_NVAR(&_13$$32); - object_init_ex(&_13$$32, phalcon_messages_message_ce); - ZEPHIR_INIT_NVAR(&_14$$32); - ZEPHIR_CONCAT_VS(&_14$$32, &attributeField, " is required"); - ZEPHIR_INIT_NVAR(&_15$$32); - ZVAL_STRING(&_15$$32, "PresenceOf"); - ZEPHIR_CALL_METHOD(NULL, &_13$$32, "__construct", &_16, 6, &_14$$32, &attributeField, &_15$$32); - zephir_check_call_status(); - zephir_update_property_array_append(this_ptr, SL("errorMessages"), &_13$$32); - error = 1; - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, ¬Null, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5$$11, ¬Null, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5$$11)) { - break; - } - ZEPHIR_CALL_METHOD(&field, ¬Null, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&attributeField); - if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &field, 0)))) { - if (UNEXPECTED(!(ZEPHIR_GLOBAL(orm).ignore_unknown_columns))) { - ZEPHIR_INIT_NVAR(&_17$$39); - object_init_ex(&_17$$39, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_18$$39); - ZEPHIR_CONCAT_SVS(&_18$$39, "Column '", &field, "' isn't part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_17$$39, "__construct", &_8, 8, &_18$$39); - zephir_check_call_status(); - zephir_throw_exception_debug(&_17$$39, "phalcon/Mvc/Model.zep", 4610); - ZEPHIR_MM_RESTORE(); - return; - } - } - } else { - ZEPHIR_CPY_WRT(&attributeField, &field); - } - if (!(zephir_array_isset(&automaticAttributes, &attributeField))) { - isNull = 0; - ZEPHIR_OBS_NVAR(&value); - if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { - if (Z_TYPE_P(&value) != IS_OBJECT) { - if (!(zephir_array_isset(&dataTypeNumeric, &field))) { - if (zephir_array_isset(&emptyStringValues, &field)) { - if (Z_TYPE_P(&value) == IS_NULL) { - isNull = 1; - } - } else { - _19$$47 = Z_TYPE_P(&value) == IS_NULL; - if (!(_19$$47)) { - _20$$47 = ZEPHIR_IS_STRING_IDENTICAL(&value, ""); - if (_20$$47) { - _21$$47 = !(zephir_array_isset(&defaultValues, &field)); - if (!(_21$$47)) { - zephir_array_fetch(&_22$$47, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 4640); - _21$$47 = !ZEPHIR_IS_IDENTICAL(&value, &_22$$47); - } - _20$$47 = _21$$47; - } - _19$$47 = _20$$47; - } - if (_19$$47) { - isNull = 1; - } - } - } else { - if (!(zephir_is_numeric(&value))) { - isNull = 1; - } - } - } - } else { - isNull = 1; - } - if (isNull) { - if (!(exists)) { - if (ZEPHIR_IS_EQUAL(&field, identityField)) { - continue; - } - if (zephir_array_isset(&defaultValues, &field)) { - continue; - } - } - ZEPHIR_INIT_NVAR(&_23$$52); - object_init_ex(&_23$$52, phalcon_messages_message_ce); - ZEPHIR_INIT_NVAR(&_24$$52); - ZEPHIR_CONCAT_VS(&_24$$52, &attributeField, " is required"); - ZEPHIR_INIT_NVAR(&_25$$52); - ZVAL_STRING(&_25$$52, "PresenceOf"); - ZEPHIR_CALL_METHOD(NULL, &_23$$52, "__construct", &_16, 6, &_24$$52, &attributeField, &_25$$52); - zephir_check_call_status(); - zephir_update_property_array_append(this_ptr, SL("errorMessages"), &_23$$52); - error = 1; - } - } - ZEPHIR_CALL_METHOD(NULL, ¬Null, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&field); - if (error) { - if (ZEPHIR_GLOBAL(orm).events) { - ZEPHIR_INIT_VAR(&_26$$57); - ZVAL_STRING(&_26$$57, "onValidationFails"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_26$$57); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "canceloperation", NULL, 0); - zephir_check_call_status(); - } - RETURN_MM_BOOL(0); - } - } - } - ZEPHIR_INIT_VAR(&_28); - ZVAL_STRING(&_28, "validation"); - ZEPHIR_CALL_METHOD(&_27, this_ptr, "fireeventcancel", NULL, 0, &_28); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_27)) { - if (ZEPHIR_GLOBAL(orm).events) { - ZEPHIR_INIT_VAR(&_29$$59); - ZVAL_STRING(&_29$$59, "onValidationFails"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_29$$59); - zephir_check_call_status(); - } - RETURN_MM_BOOL(0); - } - if (ZEPHIR_GLOBAL(orm).events) { - if (exists) { - ZEPHIR_INIT_NVAR(&eventName); - ZVAL_STRING(&eventName, "afterValidationOnUpdate"); - } else { - ZEPHIR_INIT_NVAR(&eventName); - ZVAL_STRING(&eventName, "afterValidationOnCreate"); - } - ZEPHIR_CALL_METHOD(&_30$$60, this_ptr, "fireeventcancel", NULL, 0, &eventName); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_30$$60)) { - RETURN_MM_BOOL(0); - } - ZEPHIR_INIT_VAR(&_32$$60); - ZVAL_STRING(&_32$$60, "afterValidation"); - ZEPHIR_CALL_METHOD(&_31$$60, this_ptr, "fireeventcancel", NULL, 0, &_32$$60); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_31$$60)) { - RETURN_MM_BOOL(0); - } - ZEPHIR_INIT_NVAR(&_32$$60); - ZVAL_STRING(&_32$$60, "beforeSave"); - ZEPHIR_CALL_METHOD(&_33$$60, this_ptr, "fireeventcancel", NULL, 0, &_32$$60); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_33$$60)) { - RETURN_MM_BOOL(0); - } - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("skipped"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("skipped"), &__$false); - } - if (exists) { - ZEPHIR_INIT_NVAR(&eventName); - ZVAL_STRING(&eventName, "beforeUpdate"); - } else { - ZEPHIR_INIT_NVAR(&eventName); - ZVAL_STRING(&eventName, "beforeCreate"); - } - ZEPHIR_CALL_METHOD(&_34$$60, this_ptr, "fireeventcancel", NULL, 0, &eventName); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_34$$60)) { - RETURN_MM_BOOL(0); - } - zephir_read_property(&_35$$60, this_ptr, ZEND_STRL("skipped"), PH_NOISY_CC | PH_READONLY); - if (ZEPHIR_IS_TRUE_IDENTICAL(&_35$$60)) { - RETURN_MM_BOOL(1); - } - } - RETURN_MM_BOOL(1); + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultHandler"), &taskName); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model, preSaveRelatedRecords) +static PHP_METHOD(Phalcon_Cli_Dispatcher, setOptions) { - zval _18$$10, _20$$12, _36$$20, _37$$22; - zend_string *_5; - zend_ulong _4; - zend_bool nesting = 0, _13$$5, _31$$15; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_7 = NULL, *_9 = NULL, *_11 = NULL, *_19 = NULL, *_22 = NULL, *_25 = NULL, *_27 = NULL, *_29 = NULL, *_39 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *connection, connection_sub, *related, related_sub, className, manager, type, relation, columns, referencedFields, referencedModel, message, name, record, _0, _1, *_2, _3, _6$$3, _8$$6, _10$$7, _12$$5, _14$$5, _23$$5, _15$$8, *_16$$8, _17$$8, _21$$8, _24$$13, _26$$16, _28$$17, _30$$15, _32$$15, _40$$15, _33$$18, *_34$$18, _35$$18, _38$$18; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&connection_sub); - ZVAL_UNDEF(&related_sub); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&relation); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&referencedFields); - ZVAL_UNDEF(&referencedModel); - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&record); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_8$$6); - ZVAL_UNDEF(&_10$$7); - ZVAL_UNDEF(&_12$$5); - ZVAL_UNDEF(&_14$$5); - ZVAL_UNDEF(&_23$$5); - ZVAL_UNDEF(&_15$$8); - ZVAL_UNDEF(&_17$$8); - ZVAL_UNDEF(&_21$$8); - ZVAL_UNDEF(&_24$$13); - ZVAL_UNDEF(&_26$$16); - ZVAL_UNDEF(&_28$$17); - ZVAL_UNDEF(&_30$$15); - ZVAL_UNDEF(&_32$$15); - ZVAL_UNDEF(&_40$$15); - ZVAL_UNDEF(&_33$$18); - ZVAL_UNDEF(&_35$$18); - ZVAL_UNDEF(&_38$$18); - ZVAL_UNDEF(&_18$$10); - ZVAL_UNDEF(&_20$$12); - ZVAL_UNDEF(&_36$$20); - ZVAL_UNDEF(&_37$$22); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_db_adapter_adapterinterface_ce) - Z_PARAM_ZVAL(related) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &connection, &related); + zephir_fetch_params(1, 1, 0, &options_param); + zephir_get_arrval(&options, options_param); - nesting = 0; - if (nesting) { - ZVAL_BOOL(&_0, 1); - } else { - ZVAL_BOOL(&_0, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "begin", NULL, 0, &_0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&className); - zephir_get_class(&className, this_ptr, 0); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getmodelsmanager", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&manager, &_1); - zephir_is_iterable(related, 0, "phalcon/Mvc/Model.zep", 4864); - if (Z_TYPE_P(related) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(related), _4, _5, _2) - { - ZEPHIR_INIT_NVAR(&name); - if (_5 != NULL) { - ZVAL_STR_COPY(&name, _5); - } else { - ZVAL_LONG(&name, _4); - } - ZEPHIR_INIT_NVAR(&record); - ZVAL_COPY(&record, _2); - ZEPHIR_CALL_METHOD(&_6$$3, &manager, "getrelationbyalias", &_7, 0, &className, &name); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&relation, &_6$$3); - if (Z_TYPE_P(&relation) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&type, &relation, "gettype", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&type, 0)) { - if (UNEXPECTED(Z_TYPE_P(&record) != IS_OBJECT)) { - if (nesting) { - ZVAL_BOOL(&_8$$6, 1); - } else { - ZVAL_BOOL(&_8$$6, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_9, 0, &_8$$6); - zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects can be stored as part of belongs-to relations", "phalcon/Mvc/Model.zep", 4807); - return; - } - ZEPHIR_CALL_METHOD(&columns, &relation, "getfields", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&referencedModel, &relation, "getreferencedmodel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&referencedFields, &relation, "getreferencedfields", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&columns) == IS_ARRAY)) { - if (nesting) { - ZVAL_BOOL(&_10$$7, 1); - } else { - ZVAL_BOOL(&_10$$7, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_11, 0, &_10$$7); - zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/Mvc/Model.zep", 4817); - return; - } - zephir_read_property(&_12$$5, &record, ZEND_STRL("dirtyState"), PH_NOISY_CC | PH_READONLY); - _13$$5 = !ZEPHIR_IS_LONG_IDENTICAL(&_12$$5, 0); - if (_13$$5) { - ZEPHIR_CALL_METHOD(&_14$$5, &record, "save", NULL, 0); - zephir_check_call_status(); - _13$$5 = !zephir_is_true(&_14$$5); - } - if (_13$$5) { - ZEPHIR_CALL_METHOD(&_15$$8, &record, "getmessages", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&_15$$8, 0, "phalcon/Mvc/Model.zep", 4850); - if (Z_TYPE_P(&_15$$8) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_15$$8), _16$$8) - { - ZEPHIR_INIT_NVAR(&message); - ZVAL_COPY(&message, _16$$8); - if (Z_TYPE_P(&message) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_18$$10); - zephir_create_array(&_18$$10, 1, 0); - zephir_array_update_string(&_18$$10, SL("model"), &record, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_18$$10); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_19, 0, &message); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_15$$8, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_17$$8, &_15$$8, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_17$$8)) { - break; - } - ZEPHIR_CALL_METHOD(&message, &_15$$8, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&message) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_20$$12); - zephir_create_array(&_20$$12, 1, 0); - zephir_array_update_string(&_20$$12, SL("model"), &record, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_20$$12); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_19, 0, &message); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_15$$8, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&message); - if (nesting) { - ZVAL_BOOL(&_21$$8, 1); - } else { - ZVAL_BOOL(&_21$$8, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_22, 0, &_21$$8); - zephir_check_call_status(); - RETURN_MM_BOOL(0); - } - ZEPHIR_CALL_METHOD(&_23$$5, &record, "readattribute", NULL, 0, &referencedFields); - zephir_check_call_status(); - zephir_update_property_zval_zval(this_ptr, &columns, &_23$$5); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, related, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3, related, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3)) { - break; - } - ZEPHIR_CALL_METHOD(&name, related, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&record, related, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_24$$13, &manager, "getrelationbyalias", &_25, 0, &className, &name); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&relation, &_24$$13); - if (Z_TYPE_P(&relation) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&type, &relation, "gettype", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&type, 0)) { - if (UNEXPECTED(Z_TYPE_P(&record) != IS_OBJECT)) { - if (nesting) { - ZVAL_BOOL(&_26$$16, 1); - } else { - ZVAL_BOOL(&_26$$16, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_27, 0, &_26$$16); - zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects can be stored as part of belongs-to relations", "phalcon/Mvc/Model.zep", 4807); - return; - } - ZEPHIR_CALL_METHOD(&columns, &relation, "getfields", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&referencedModel, &relation, "getreferencedmodel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&referencedFields, &relation, "getreferencedfields", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&columns) == IS_ARRAY)) { - if (nesting) { - ZVAL_BOOL(&_28$$17, 1); - } else { - ZVAL_BOOL(&_28$$17, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_29, 0, &_28$$17); - zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/Mvc/Model.zep", 4817); - return; - } - zephir_read_property(&_30$$15, &record, ZEND_STRL("dirtyState"), PH_NOISY_CC | PH_READONLY); - _31$$15 = !ZEPHIR_IS_LONG_IDENTICAL(&_30$$15, 0); - if (_31$$15) { - ZEPHIR_CALL_METHOD(&_32$$15, &record, "save", NULL, 0); - zephir_check_call_status(); - _31$$15 = !zephir_is_true(&_32$$15); - } - if (_31$$15) { - ZEPHIR_CALL_METHOD(&_33$$18, &record, "getmessages", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&_33$$18, 0, "phalcon/Mvc/Model.zep", 4850); - if (Z_TYPE_P(&_33$$18) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_33$$18), _34$$18) - { - ZEPHIR_INIT_NVAR(&message); - ZVAL_COPY(&message, _34$$18); - if (Z_TYPE_P(&message) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_36$$20); - zephir_create_array(&_36$$20, 1, 0); - zephir_array_update_string(&_36$$20, SL("model"), &record, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_36$$20); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_19, 0, &message); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_33$$18, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_35$$18, &_33$$18, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_35$$18)) { - break; - } - ZEPHIR_CALL_METHOD(&message, &_33$$18, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&message) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_37$$22); - zephir_create_array(&_37$$22, 1, 0); - zephir_array_update_string(&_37$$22, SL("model"), &record, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_37$$22); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_19, 0, &message); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_33$$18, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&message); - if (nesting) { - ZVAL_BOOL(&_38$$18, 1); - } else { - ZVAL_BOOL(&_38$$18, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_39, 0, &_38$$18); - zephir_check_call_status(); - RETURN_MM_BOOL(0); - } - ZEPHIR_CALL_METHOD(&_40$$15, &record, "readattribute", NULL, 0, &referencedFields); - zephir_check_call_status(); - zephir_update_property_zval_zval(this_ptr, &columns, &_40$$15); - } - } - ZEPHIR_CALL_METHOD(NULL, related, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&record); - ZEPHIR_INIT_NVAR(&name); - RETURN_MM_BOOL(1); + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model, postSave) +static PHP_METHOD(Phalcon_Cli_Dispatcher, setTaskName) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *success_param = NULL, *exists_param = NULL, _0$$4, _1$$5; - zend_bool success, exists; + zval *taskName_param = NULL; + zval taskName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0$$4); - ZVAL_UNDEF(&_1$$5); + ZVAL_UNDEF(&taskName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_BOOL(success) - Z_PARAM_BOOL(exists) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(taskName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &success_param, &exists_param); - success = zephir_get_boolval(success_param); - exists = zephir_get_boolval(exists_param); + zephir_fetch_params(1, 1, 0, &taskName_param); + zephir_get_strval(&taskName, taskName_param); - if (success) { - if (exists) { - ZEPHIR_INIT_VAR(&_0$$4); - ZVAL_STRING(&_0$$4, "afterUpdate"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_0$$4); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_VAR(&_1$$5); - ZVAL_STRING(&_1$$5, "afterCreate"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_1$$5); - zephir_check_call_status(); - } - } - RETURN_MM_BOOL(success); + zephir_update_property_zval(this_ptr, ZEND_STRL("handlerName"), &taskName); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model, postSaveRelatedRecords) +static PHP_METHOD(Phalcon_Cli_Dispatcher, setTaskSuffix) { - zval _25$$16, _27$$18, _33$$20, _35$$20, _40$$24, _41$$26, _48$$31, _49$$33, _55$$35, _57$$35, _62$$39, _63$$41, _90$$57, _91$$59, _97$$61, _99$$61, _104$$65, _105$$67, _112$$72, _113$$74, _119$$76, _121$$76, _126$$80, _127$$82; - zend_string *_4; - zend_ulong _3; - zend_bool nesting = 0, isThrough = 0, _8$$4, _73$$45; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_6 = NULL, *_10 = NULL, *_12 = NULL, *_14 = NULL, *_17 = NULL, *_26 = NULL, *_29 = NULL, *_31 = NULL, *_32 = NULL, *_43 = NULL, *_51 = NULL, *_53 = NULL, *_54 = NULL, *_65 = NULL, *_67 = NULL, *_71 = NULL, *_75 = NULL, *_77 = NULL, *_80 = NULL, *_93 = NULL, *_95 = NULL, *_96 = NULL, *_107 = NULL, *_115 = NULL, *_117 = NULL, *_118 = NULL, *_129 = NULL, *_131 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *connection, connection_sub, *related, related_sub, className, manager, relation, name, record, message, columns, referencedModel, referencedFields, relatedRecords, value, recordAfter, intermediateModel, intermediateFields, intermediateValue, intermediateModelName, intermediateReferencedFields, existingIntermediateModel, _0, *_1, _2, _134, _5$$3, _7$$4, _18$$4, *_19$$4, _20$$4, _9$$6, _11$$7, _13$$10, _15$$10, _16$$10, _21$$12, _22$$14, *_23$$14, _24$$14, _28$$14, _30$$19, _36$$19, _34$$20, _37$$22, *_38$$22, _39$$22, _42$$22, _44$$27, _45$$29, *_46$$29, _47$$29, _50$$29, _52$$34, _58$$34, _56$$35, _59$$37, *_60$$37, _61$$37, _64$$37, _66$$43, _68$$43, _69$$43, _70$$44, _72$$45, _83$$45, *_84$$45, _85$$45, _74$$47, _76$$48, _78$$49, _79$$51, _81$$51, _82$$51, _86$$53, _87$$55, *_88$$55, _89$$55, _92$$55, _94$$60, _100$$60, _98$$61, _101$$63, *_102$$63, _103$$63, _106$$63, _108$$68, _109$$70, *_110$$70, _111$$70, _114$$70, _116$$75, _122$$75, _120$$76, _123$$78, *_124$$78, _125$$78, _128$$78, _130$$84, _132$$84, _133$$84; + zval *taskSuffix_param = NULL; + zval taskSuffix; zval *this_ptr = getThis(); - ZVAL_UNDEF(&connection_sub); - ZVAL_UNDEF(&related_sub); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&relation); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&record); - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&referencedModel); - ZVAL_UNDEF(&referencedFields); - ZVAL_UNDEF(&relatedRecords); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&recordAfter); - ZVAL_UNDEF(&intermediateModel); - ZVAL_UNDEF(&intermediateFields); - ZVAL_UNDEF(&intermediateValue); - ZVAL_UNDEF(&intermediateModelName); - ZVAL_UNDEF(&intermediateReferencedFields); - ZVAL_UNDEF(&existingIntermediateModel); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_134); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_18$$4); - ZVAL_UNDEF(&_20$$4); - ZVAL_UNDEF(&_9$$6); - ZVAL_UNDEF(&_11$$7); - ZVAL_UNDEF(&_13$$10); - ZVAL_UNDEF(&_15$$10); - ZVAL_UNDEF(&_16$$10); - ZVAL_UNDEF(&_21$$12); - ZVAL_UNDEF(&_22$$14); - ZVAL_UNDEF(&_24$$14); - ZVAL_UNDEF(&_28$$14); - ZVAL_UNDEF(&_30$$19); - ZVAL_UNDEF(&_36$$19); - ZVAL_UNDEF(&_34$$20); - ZVAL_UNDEF(&_37$$22); - ZVAL_UNDEF(&_39$$22); - ZVAL_UNDEF(&_42$$22); - ZVAL_UNDEF(&_44$$27); - ZVAL_UNDEF(&_45$$29); - ZVAL_UNDEF(&_47$$29); - ZVAL_UNDEF(&_50$$29); - ZVAL_UNDEF(&_52$$34); - ZVAL_UNDEF(&_58$$34); - ZVAL_UNDEF(&_56$$35); - ZVAL_UNDEF(&_59$$37); - ZVAL_UNDEF(&_61$$37); - ZVAL_UNDEF(&_64$$37); - ZVAL_UNDEF(&_66$$43); - ZVAL_UNDEF(&_68$$43); - ZVAL_UNDEF(&_69$$43); - ZVAL_UNDEF(&_70$$44); - ZVAL_UNDEF(&_72$$45); - ZVAL_UNDEF(&_83$$45); - ZVAL_UNDEF(&_85$$45); - ZVAL_UNDEF(&_74$$47); - ZVAL_UNDEF(&_76$$48); - ZVAL_UNDEF(&_78$$49); - ZVAL_UNDEF(&_79$$51); - ZVAL_UNDEF(&_81$$51); - ZVAL_UNDEF(&_82$$51); - ZVAL_UNDEF(&_86$$53); - ZVAL_UNDEF(&_87$$55); - ZVAL_UNDEF(&_89$$55); - ZVAL_UNDEF(&_92$$55); - ZVAL_UNDEF(&_94$$60); - ZVAL_UNDEF(&_100$$60); - ZVAL_UNDEF(&_98$$61); - ZVAL_UNDEF(&_101$$63); - ZVAL_UNDEF(&_103$$63); - ZVAL_UNDEF(&_106$$63); - ZVAL_UNDEF(&_108$$68); - ZVAL_UNDEF(&_109$$70); - ZVAL_UNDEF(&_111$$70); - ZVAL_UNDEF(&_114$$70); - ZVAL_UNDEF(&_116$$75); - ZVAL_UNDEF(&_122$$75); - ZVAL_UNDEF(&_120$$76); - ZVAL_UNDEF(&_123$$78); - ZVAL_UNDEF(&_125$$78); - ZVAL_UNDEF(&_128$$78); - ZVAL_UNDEF(&_130$$84); - ZVAL_UNDEF(&_132$$84); - ZVAL_UNDEF(&_133$$84); - ZVAL_UNDEF(&_25$$16); - ZVAL_UNDEF(&_27$$18); - ZVAL_UNDEF(&_33$$20); - ZVAL_UNDEF(&_35$$20); - ZVAL_UNDEF(&_40$$24); - ZVAL_UNDEF(&_41$$26); - ZVAL_UNDEF(&_48$$31); - ZVAL_UNDEF(&_49$$33); - ZVAL_UNDEF(&_55$$35); - ZVAL_UNDEF(&_57$$35); - ZVAL_UNDEF(&_62$$39); - ZVAL_UNDEF(&_63$$41); - ZVAL_UNDEF(&_90$$57); - ZVAL_UNDEF(&_91$$59); - ZVAL_UNDEF(&_97$$61); - ZVAL_UNDEF(&_99$$61); - ZVAL_UNDEF(&_104$$65); - ZVAL_UNDEF(&_105$$67); - ZVAL_UNDEF(&_112$$72); - ZVAL_UNDEF(&_113$$74); - ZVAL_UNDEF(&_119$$76); - ZVAL_UNDEF(&_121$$76); - ZVAL_UNDEF(&_126$$80); - ZVAL_UNDEF(&_127$$82); + ZVAL_UNDEF(&taskSuffix); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_db_adapter_adapterinterface_ce) - Z_PARAM_ZVAL(related) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(taskSuffix) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &connection, &related); + zephir_fetch_params(1, 1, 0, &taskSuffix_param); + zephir_get_strval(&taskSuffix, taskSuffix_param); - nesting = 0; - ZEPHIR_INIT_VAR(&className); - zephir_get_class(&className, this_ptr, 0); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmodelsmanager", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&manager, &_0); - zephir_is_iterable(related, 0, "phalcon/Mvc/Model.zep", 5113); - if (Z_TYPE_P(related) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(related), _3, _4, _1) - { - ZEPHIR_INIT_NVAR(&name); - if (_4 != NULL) { - ZVAL_STR_COPY(&name, _4); - } else { - ZVAL_LONG(&name, _3); - } - ZEPHIR_INIT_NVAR(&record); - ZVAL_COPY(&record, _1); - ZEPHIR_CALL_METHOD(&_5$$3, &manager, "getrelationbyalias", &_6, 0, &className, &name); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&relation, &_5$$3); - if (Z_TYPE_P(&relation) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&_7$$4, &relation, "gettype", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&_7$$4, 0)) { - continue; - } - _8$$4 = Z_TYPE_P(&record) != IS_OBJECT; - if (_8$$4) { - _8$$4 = Z_TYPE_P(&record) != IS_ARRAY; - } - if (UNEXPECTED(_8$$4)) { - if (nesting) { - ZVAL_BOOL(&_9$$6, 1); - } else { - ZVAL_BOOL(&_9$$6, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_10, 0, &_9$$6); - zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects/arrays can be stored as part of has-many/has-one/has-one-through/has-many-to-many relations", "phalcon/Mvc/Model.zep", 4926); - return; - } - ZEPHIR_CALL_METHOD(&columns, &relation, "getfields", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&referencedModel, &relation, "getreferencedmodel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&referencedFields, &relation, "getreferencedfields", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&columns) == IS_ARRAY)) { - if (nesting) { - ZVAL_BOOL(&_11$$7, 1); - } else { - ZVAL_BOOL(&_11$$7, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_12, 0, &_11$$7); - zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/Mvc/Model.zep", 4936); - return; - } - if (Z_TYPE_P(&record) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&relatedRecords); - zephir_create_array(&relatedRecords, 1, 0); - zephir_array_fast_append(&relatedRecords, &record); - } else { - ZEPHIR_CPY_WRT(&relatedRecords, &record); - } - ZEPHIR_OBS_NVAR(&value); - if (UNEXPECTED(!(zephir_fetch_property_zval(&value, this_ptr, &columns, PH_SILENT_CC)))) { - if (nesting) { - ZVAL_BOOL(&_13$$10, 1); - } else { - ZVAL_BOOL(&_13$$10, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_14, 0, &_13$$10); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_15$$10); - object_init_ex(&_15$$10, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_16$$10); - ZEPHIR_CONCAT_SVS(&_16$$10, "The column '", &columns, "' needs to be present in the model"); - ZEPHIR_CALL_METHOD(NULL, &_15$$10, "__construct", &_17, 8, &_16$$10); - zephir_check_call_status(); - zephir_throw_exception_debug(&_15$$10, "phalcon/Mvc/Model.zep", 4953); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CALL_METHOD(&_18$$4, &relation, "isthrough", NULL, 0); - zephir_check_call_status(); - isThrough = zephir_get_boolval(&_18$$4); - if (isThrough) { - ZEPHIR_CALL_METHOD(&intermediateModelName, &relation, "getintermediatemodel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&intermediateFields, &relation, "getintermediatefields", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&intermediateReferencedFields, &relation, "getintermediatereferencedfields", NULL, 0); - zephir_check_call_status(); - } - zephir_is_iterable(&relatedRecords, 0, "phalcon/Mvc/Model.zep", 5099); - if (Z_TYPE_P(&relatedRecords) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relatedRecords), _19$$4) - { - ZEPHIR_INIT_NVAR(&recordAfter); - ZVAL_COPY(&recordAfter, _19$$4); - if (!(isThrough)) { - ZEPHIR_CALL_METHOD(NULL, &recordAfter, "writeattribute", NULL, 0, &referencedFields, &value); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(&_21$$12, &recordAfter, "save", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_21$$12))) { - ZEPHIR_CALL_METHOD(&_22$$14, &recordAfter, "getmessages", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&_22$$14, 0, "phalcon/Mvc/Model.zep", 5012); - if (Z_TYPE_P(&_22$$14) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_22$$14), _23$$14) - { - ZEPHIR_INIT_NVAR(&message); - ZVAL_COPY(&message, _23$$14); - if (Z_TYPE_P(&message) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_25$$16); - zephir_create_array(&_25$$16, 1, 0); - zephir_array_update_string(&_25$$16, SL("model"), &recordAfter, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_25$$16); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_22$$14, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_24$$14, &_22$$14, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_24$$14)) { - break; - } - ZEPHIR_CALL_METHOD(&message, &_22$$14, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&message) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_27$$18); - zephir_create_array(&_27$$18, 1, 0); - zephir_array_update_string(&_27$$18, SL("model"), &recordAfter, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_27$$18); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_22$$14, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&message); - if (nesting) { - ZVAL_BOOL(&_28$$14, 1); - } else { - ZVAL_BOOL(&_28$$14, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_29, 0, &_28$$14); - zephir_check_call_status(); - RETURN_MM_BOOL(0); - } - if (isThrough) { - ZEPHIR_CALL_METHOD(&_30$$19, &manager, "load", &_31, 0, &intermediateModelName); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&intermediateModel, &_30$$19); - ZEPHIR_CALL_METHOD(&_30$$19, &relation, "gettype", &_32, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&_30$$19, 3)) { - ZEPHIR_INIT_NVAR(&_33$$20); - zephir_create_array(&_33$$20, 2, 0); - ZEPHIR_INIT_NVAR(&_34$$20); - ZEPHIR_CONCAT_SVS(&_34$$20, "[", &intermediateFields, "] = ?0"); - zephir_array_fast_append(&_33$$20, &_34$$20); - ZEPHIR_INIT_NVAR(&_35$$20); - zephir_create_array(&_35$$20, 1, 0); - zephir_array_fast_append(&_35$$20, &value); - zephir_array_update_string(&_33$$20, SL("bind"), &_35$$20, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&existingIntermediateModel, &intermediateModel, "findfirst", NULL, 0, &_33$$20); - zephir_check_call_status(); - if (zephir_is_true(&existingIntermediateModel)) { - ZEPHIR_CPY_WRT(&intermediateModel, &existingIntermediateModel); - } - } - ZEPHIR_CALL_METHOD(NULL, &intermediateModel, "writeattribute", NULL, 0, &intermediateFields, &value); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&intermediateValue, &recordAfter, "readattribute", NULL, 0, &referencedFields); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &intermediateModel, "writeattribute", NULL, 0, &intermediateReferencedFields, &intermediateValue); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_36$$19, &intermediateModel, "save", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_36$$19))) { - ZEPHIR_CALL_METHOD(&_37$$22, &intermediateModel, "getmessages", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&_37$$22, 0, "phalcon/Mvc/Model.zep", 5093); - if (Z_TYPE_P(&_37$$22) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_37$$22), _38$$22) - { - ZEPHIR_INIT_NVAR(&message); - ZVAL_COPY(&message, _38$$22); - if (Z_TYPE_P(&message) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_40$$24); - zephir_create_array(&_40$$24, 1, 0); - zephir_array_update_string(&_40$$24, SL("model"), &intermediateModel, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_40$$24); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_37$$22, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_39$$22, &_37$$22, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_39$$22)) { - break; - } - ZEPHIR_CALL_METHOD(&message, &_37$$22, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&message) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_41$$26); - zephir_create_array(&_41$$26, 1, 0); - zephir_array_update_string(&_41$$26, SL("model"), &intermediateModel, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_41$$26); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_37$$22, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&message); - if (nesting) { - ZVAL_BOOL(&_42$$22, 1); - } else { - ZVAL_BOOL(&_42$$22, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_43, 0, &_42$$22); - zephir_check_call_status(); - RETURN_MM_BOOL(0); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &relatedRecords, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_20$$4, &relatedRecords, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_20$$4)) { - break; - } - ZEPHIR_CALL_METHOD(&recordAfter, &relatedRecords, "current", NULL, 0); - zephir_check_call_status(); - if (!(isThrough)) { - ZEPHIR_CALL_METHOD(NULL, &recordAfter, "writeattribute", NULL, 0, &referencedFields, &value); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(&_44$$27, &recordAfter, "save", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_44$$27))) { - ZEPHIR_CALL_METHOD(&_45$$29, &recordAfter, "getmessages", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&_45$$29, 0, "phalcon/Mvc/Model.zep", 5012); - if (Z_TYPE_P(&_45$$29) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_45$$29), _46$$29) - { - ZEPHIR_INIT_NVAR(&message); - ZVAL_COPY(&message, _46$$29); - if (Z_TYPE_P(&message) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_48$$31); - zephir_create_array(&_48$$31, 1, 0); - zephir_array_update_string(&_48$$31, SL("model"), &recordAfter, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_48$$31); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_45$$29, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_47$$29, &_45$$29, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_47$$29)) { - break; - } - ZEPHIR_CALL_METHOD(&message, &_45$$29, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&message) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_49$$33); - zephir_create_array(&_49$$33, 1, 0); - zephir_array_update_string(&_49$$33, SL("model"), &recordAfter, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_49$$33); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_45$$29, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&message); - if (nesting) { - ZVAL_BOOL(&_50$$29, 1); - } else { - ZVAL_BOOL(&_50$$29, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_51, 0, &_50$$29); - zephir_check_call_status(); - RETURN_MM_BOOL(0); - } - if (isThrough) { - ZEPHIR_CALL_METHOD(&_52$$34, &manager, "load", &_53, 0, &intermediateModelName); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&intermediateModel, &_52$$34); - ZEPHIR_CALL_METHOD(&_52$$34, &relation, "gettype", &_54, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&_52$$34, 3)) { - ZEPHIR_INIT_NVAR(&_55$$35); - zephir_create_array(&_55$$35, 2, 0); - ZEPHIR_INIT_NVAR(&_56$$35); - ZEPHIR_CONCAT_SVS(&_56$$35, "[", &intermediateFields, "] = ?0"); - zephir_array_fast_append(&_55$$35, &_56$$35); - ZEPHIR_INIT_NVAR(&_57$$35); - zephir_create_array(&_57$$35, 1, 0); - zephir_array_fast_append(&_57$$35, &value); - zephir_array_update_string(&_55$$35, SL("bind"), &_57$$35, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&existingIntermediateModel, &intermediateModel, "findfirst", NULL, 0, &_55$$35); - zephir_check_call_status(); - if (zephir_is_true(&existingIntermediateModel)) { - ZEPHIR_CPY_WRT(&intermediateModel, &existingIntermediateModel); - } - } - ZEPHIR_CALL_METHOD(NULL, &intermediateModel, "writeattribute", NULL, 0, &intermediateFields, &value); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&intermediateValue, &recordAfter, "readattribute", NULL, 0, &referencedFields); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &intermediateModel, "writeattribute", NULL, 0, &intermediateReferencedFields, &intermediateValue); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_58$$34, &intermediateModel, "save", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_58$$34))) { - ZEPHIR_CALL_METHOD(&_59$$37, &intermediateModel, "getmessages", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&_59$$37, 0, "phalcon/Mvc/Model.zep", 5093); - if (Z_TYPE_P(&_59$$37) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_59$$37), _60$$37) - { - ZEPHIR_INIT_NVAR(&message); - ZVAL_COPY(&message, _60$$37); - if (Z_TYPE_P(&message) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_62$$39); - zephir_create_array(&_62$$39, 1, 0); - zephir_array_update_string(&_62$$39, SL("model"), &intermediateModel, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_62$$39); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_59$$37, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_61$$37, &_59$$37, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_61$$37)) { - break; - } - ZEPHIR_CALL_METHOD(&message, &_59$$37, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&message) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_63$$41); - zephir_create_array(&_63$$41, 1, 0); - zephir_array_update_string(&_63$$41, SL("model"), &intermediateModel, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_63$$41); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_59$$37, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&message); - if (nesting) { - ZVAL_BOOL(&_64$$37, 1); - } else { - ZVAL_BOOL(&_64$$37, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_65, 0, &_64$$37); - zephir_check_call_status(); - RETURN_MM_BOOL(0); - } - } - ZEPHIR_CALL_METHOD(NULL, &relatedRecords, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&recordAfter); - } else { - if (UNEXPECTED(Z_TYPE_P(&record) != IS_ARRAY)) { - if (nesting) { - ZVAL_BOOL(&_66$$43, 1); - } else { - ZVAL_BOOL(&_66$$43, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_67, 0, &_66$$43); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_68$$43); - object_init_ex(&_68$$43, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_69$$43); - ZEPHIR_CONCAT_SVSVS(&_69$$43, "There are no defined relations for the model '", &className, "' using alias '", &name, "'"); - ZEPHIR_CALL_METHOD(NULL, &_68$$43, "__construct", &_17, 8, &_69$$43); - zephir_check_call_status(); - zephir_throw_exception_debug(&_68$$43, "phalcon/Mvc/Model.zep", 5105); - ZEPHIR_MM_RESTORE(); - return; - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, related, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, related, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&name, related, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&record, related, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_70$$44, &manager, "getrelationbyalias", &_71, 0, &className, &name); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&relation, &_70$$44); - if (Z_TYPE_P(&relation) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&_72$$45, &relation, "gettype", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&_72$$45, 0)) { - continue; - } - _73$$45 = Z_TYPE_P(&record) != IS_OBJECT; - if (_73$$45) { - _73$$45 = Z_TYPE_P(&record) != IS_ARRAY; - } - if (UNEXPECTED(_73$$45)) { - if (nesting) { - ZVAL_BOOL(&_74$$47, 1); - } else { - ZVAL_BOOL(&_74$$47, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_75, 0, &_74$$47); - zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only objects/arrays can be stored as part of has-many/has-one/has-one-through/has-many-to-many relations", "phalcon/Mvc/Model.zep", 4926); - return; - } - ZEPHIR_CALL_METHOD(&columns, &relation, "getfields", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&referencedModel, &relation, "getreferencedmodel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&referencedFields, &relation, "getreferencedfields", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&columns) == IS_ARRAY)) { - if (nesting) { - ZVAL_BOOL(&_76$$48, 1); - } else { - ZVAL_BOOL(&_76$$48, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_77, 0, &_76$$48); - zephir_check_call_status(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not implemented", "phalcon/Mvc/Model.zep", 4936); - return; - } - if (Z_TYPE_P(&record) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_78$$49); - zephir_create_array(&_78$$49, 1, 0); - zephir_array_fast_append(&_78$$49, &record); - ZEPHIR_CPY_WRT(&relatedRecords, &_78$$49); - } else { - ZEPHIR_CPY_WRT(&relatedRecords, &record); - } - ZEPHIR_OBS_NVAR(&value); - if (UNEXPECTED(!(zephir_fetch_property_zval(&value, this_ptr, &columns, PH_SILENT_CC)))) { - if (nesting) { - ZVAL_BOOL(&_79$$51, 1); - } else { - ZVAL_BOOL(&_79$$51, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_80, 0, &_79$$51); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_81$$51); - object_init_ex(&_81$$51, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_82$$51); - ZEPHIR_CONCAT_SVS(&_82$$51, "The column '", &columns, "' needs to be present in the model"); - ZEPHIR_CALL_METHOD(NULL, &_81$$51, "__construct", &_17, 8, &_82$$51); - zephir_check_call_status(); - zephir_throw_exception_debug(&_81$$51, "phalcon/Mvc/Model.zep", 4953); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CALL_METHOD(&_83$$45, &relation, "isthrough", NULL, 0); - zephir_check_call_status(); - isThrough = zephir_get_boolval(&_83$$45); - if (isThrough) { - ZEPHIR_CALL_METHOD(&intermediateModelName, &relation, "getintermediatemodel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&intermediateFields, &relation, "getintermediatefields", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&intermediateReferencedFields, &relation, "getintermediatereferencedfields", NULL, 0); - zephir_check_call_status(); - } - zephir_is_iterable(&relatedRecords, 0, "phalcon/Mvc/Model.zep", 5099); - if (Z_TYPE_P(&relatedRecords) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relatedRecords), _84$$45) - { - ZEPHIR_INIT_NVAR(&recordAfter); - ZVAL_COPY(&recordAfter, _84$$45); - if (!(isThrough)) { - ZEPHIR_CALL_METHOD(NULL, &recordAfter, "writeattribute", NULL, 0, &referencedFields, &value); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(&_86$$53, &recordAfter, "save", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_86$$53))) { - ZEPHIR_CALL_METHOD(&_87$$55, &recordAfter, "getmessages", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&_87$$55, 0, "phalcon/Mvc/Model.zep", 5012); - if (Z_TYPE_P(&_87$$55) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_87$$55), _88$$55) - { - ZEPHIR_INIT_NVAR(&message); - ZVAL_COPY(&message, _88$$55); - if (Z_TYPE_P(&message) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_90$$57); - zephir_create_array(&_90$$57, 1, 0); - zephir_array_update_string(&_90$$57, SL("model"), &recordAfter, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_90$$57); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_87$$55, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_89$$55, &_87$$55, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_89$$55)) { - break; - } - ZEPHIR_CALL_METHOD(&message, &_87$$55, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&message) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_91$$59); - zephir_create_array(&_91$$59, 1, 0); - zephir_array_update_string(&_91$$59, SL("model"), &recordAfter, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_91$$59); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_87$$55, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&message); - if (nesting) { - ZVAL_BOOL(&_92$$55, 1); - } else { - ZVAL_BOOL(&_92$$55, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_93, 0, &_92$$55); - zephir_check_call_status(); - RETURN_MM_BOOL(0); - } - if (isThrough) { - ZEPHIR_CALL_METHOD(&_94$$60, &manager, "load", &_95, 0, &intermediateModelName); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&intermediateModel, &_94$$60); - ZEPHIR_CALL_METHOD(&_94$$60, &relation, "gettype", &_96, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&_94$$60, 3)) { - ZEPHIR_INIT_NVAR(&_97$$61); - zephir_create_array(&_97$$61, 2, 0); - ZEPHIR_INIT_NVAR(&_98$$61); - ZEPHIR_CONCAT_SVS(&_98$$61, "[", &intermediateFields, "] = ?0"); - zephir_array_fast_append(&_97$$61, &_98$$61); - ZEPHIR_INIT_NVAR(&_99$$61); - zephir_create_array(&_99$$61, 1, 0); - zephir_array_fast_append(&_99$$61, &value); - zephir_array_update_string(&_97$$61, SL("bind"), &_99$$61, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&existingIntermediateModel, &intermediateModel, "findfirst", NULL, 0, &_97$$61); - zephir_check_call_status(); - if (zephir_is_true(&existingIntermediateModel)) { - ZEPHIR_CPY_WRT(&intermediateModel, &existingIntermediateModel); - } - } - ZEPHIR_CALL_METHOD(NULL, &intermediateModel, "writeattribute", NULL, 0, &intermediateFields, &value); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&intermediateValue, &recordAfter, "readattribute", NULL, 0, &referencedFields); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &intermediateModel, "writeattribute", NULL, 0, &intermediateReferencedFields, &intermediateValue); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_100$$60, &intermediateModel, "save", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_100$$60))) { - ZEPHIR_CALL_METHOD(&_101$$63, &intermediateModel, "getmessages", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&_101$$63, 0, "phalcon/Mvc/Model.zep", 5093); - if (Z_TYPE_P(&_101$$63) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_101$$63), _102$$63) - { - ZEPHIR_INIT_NVAR(&message); - ZVAL_COPY(&message, _102$$63); - if (Z_TYPE_P(&message) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_104$$65); - zephir_create_array(&_104$$65, 1, 0); - zephir_array_update_string(&_104$$65, SL("model"), &intermediateModel, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_104$$65); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_101$$63, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_103$$63, &_101$$63, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_103$$63)) { - break; - } - ZEPHIR_CALL_METHOD(&message, &_101$$63, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&message) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_105$$67); - zephir_create_array(&_105$$67, 1, 0); - zephir_array_update_string(&_105$$67, SL("model"), &intermediateModel, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_105$$67); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_101$$63, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&message); - if (nesting) { - ZVAL_BOOL(&_106$$63, 1); - } else { - ZVAL_BOOL(&_106$$63, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_107, 0, &_106$$63); - zephir_check_call_status(); - RETURN_MM_BOOL(0); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &relatedRecords, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_85$$45, &relatedRecords, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_85$$45)) { - break; - } - ZEPHIR_CALL_METHOD(&recordAfter, &relatedRecords, "current", NULL, 0); - zephir_check_call_status(); - if (!(isThrough)) { - ZEPHIR_CALL_METHOD(NULL, &recordAfter, "writeattribute", NULL, 0, &referencedFields, &value); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(&_108$$68, &recordAfter, "save", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_108$$68))) { - ZEPHIR_CALL_METHOD(&_109$$70, &recordAfter, "getmessages", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&_109$$70, 0, "phalcon/Mvc/Model.zep", 5012); - if (Z_TYPE_P(&_109$$70) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_109$$70), _110$$70) - { - ZEPHIR_INIT_NVAR(&message); - ZVAL_COPY(&message, _110$$70); - if (Z_TYPE_P(&message) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_112$$72); - zephir_create_array(&_112$$72, 1, 0); - zephir_array_update_string(&_112$$72, SL("model"), &recordAfter, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_112$$72); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_109$$70, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_111$$70, &_109$$70, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_111$$70)) { - break; - } - ZEPHIR_CALL_METHOD(&message, &_109$$70, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&message) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_113$$74); - zephir_create_array(&_113$$74, 1, 0); - zephir_array_update_string(&_113$$74, SL("model"), &recordAfter, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_113$$74); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_109$$70, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&message); - if (nesting) { - ZVAL_BOOL(&_114$$70, 1); - } else { - ZVAL_BOOL(&_114$$70, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_115, 0, &_114$$70); - zephir_check_call_status(); - RETURN_MM_BOOL(0); - } - if (isThrough) { - ZEPHIR_CALL_METHOD(&_116$$75, &manager, "load", &_117, 0, &intermediateModelName); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&intermediateModel, &_116$$75); - ZEPHIR_CALL_METHOD(&_116$$75, &relation, "gettype", &_118, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&_116$$75, 3)) { - ZEPHIR_INIT_NVAR(&_119$$76); - zephir_create_array(&_119$$76, 2, 0); - ZEPHIR_INIT_NVAR(&_120$$76); - ZEPHIR_CONCAT_SVS(&_120$$76, "[", &intermediateFields, "] = ?0"); - zephir_array_fast_append(&_119$$76, &_120$$76); - ZEPHIR_INIT_NVAR(&_121$$76); - zephir_create_array(&_121$$76, 1, 0); - zephir_array_fast_append(&_121$$76, &value); - zephir_array_update_string(&_119$$76, SL("bind"), &_121$$76, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&existingIntermediateModel, &intermediateModel, "findfirst", NULL, 0, &_119$$76); - zephir_check_call_status(); - if (zephir_is_true(&existingIntermediateModel)) { - ZEPHIR_CPY_WRT(&intermediateModel, &existingIntermediateModel); - } - } - ZEPHIR_CALL_METHOD(NULL, &intermediateModel, "writeattribute", NULL, 0, &intermediateFields, &value); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&intermediateValue, &recordAfter, "readattribute", NULL, 0, &referencedFields); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &intermediateModel, "writeattribute", NULL, 0, &intermediateReferencedFields, &intermediateValue); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_122$$75, &intermediateModel, "save", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_122$$75))) { - ZEPHIR_CALL_METHOD(&_123$$78, &intermediateModel, "getmessages", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&_123$$78, 0, "phalcon/Mvc/Model.zep", 5093); - if (Z_TYPE_P(&_123$$78) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_123$$78), _124$$78) - { - ZEPHIR_INIT_NVAR(&message); - ZVAL_COPY(&message, _124$$78); - if (Z_TYPE_P(&message) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_126$$80); - zephir_create_array(&_126$$80, 1, 0); - zephir_array_update_string(&_126$$80, SL("model"), &intermediateModel, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_126$$80); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_123$$78, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_125$$78, &_123$$78, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_125$$78)) { - break; - } - ZEPHIR_CALL_METHOD(&message, &_123$$78, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&message) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_127$$82); - zephir_create_array(&_127$$82, 1, 0); - zephir_array_update_string(&_127$$82, SL("model"), &intermediateModel, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &message, "setmetadata", NULL, 0, &_127$$82); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_26, 0, &message); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_123$$78, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&message); - if (nesting) { - ZVAL_BOOL(&_128$$78, 1); - } else { - ZVAL_BOOL(&_128$$78, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_129, 0, &_128$$78); - zephir_check_call_status(); - RETURN_MM_BOOL(0); - } - } - ZEPHIR_CALL_METHOD(NULL, &relatedRecords, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&recordAfter); - } else { - if (UNEXPECTED(Z_TYPE_P(&record) != IS_ARRAY)) { - if (nesting) { - ZVAL_BOOL(&_130$$84, 1); - } else { - ZVAL_BOOL(&_130$$84, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "rollback", &_131, 0, &_130$$84); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_132$$84); - object_init_ex(&_132$$84, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_133$$84); - ZEPHIR_CONCAT_SVSVS(&_133$$84, "There are no defined relations for the model '", &className, "' using alias '", &name, "'"); - ZEPHIR_CALL_METHOD(NULL, &_132$$84, "__construct", &_17, 8, &_133$$84); - zephir_check_call_status(); - zephir_throw_exception_debug(&_132$$84, "phalcon/Mvc/Model.zep", 5105); - ZEPHIR_MM_RESTORE(); - return; - } - } - ZEPHIR_CALL_METHOD(NULL, related, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&record); - ZEPHIR_INIT_NVAR(&name); - if (nesting) { - ZVAL_BOOL(&_134, 1); - } else { - ZVAL_BOOL(&_134, 0); - } - ZEPHIR_CALL_METHOD(NULL, connection, "commit", NULL, 0, &_134); - zephir_check_call_status(); - RETURN_MM_BOOL(1); + zephir_update_property_zval(this_ptr, ZEND_STRL("handlerSuffix"), &taskSuffix); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model, allowEmptyStringValues) +static PHP_METHOD(Phalcon_Cli_Dispatcher, handleException) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *attributes_param = NULL, __$true, keysAttributes, attribute, *_0, _1, _2; - zval attributes; + zval *exception, exception_sub, eventsManager, _0, _1$$3, _2$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&attributes); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&keysAttributes); - ZVAL_UNDEF(&attribute); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&exception_sub); + ZVAL_UNDEF(&eventsManager); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(attributes) + Z_PARAM_OBJECT_OF_CLASS(exception, zend_ce_exception) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &attributes_param); - ZEPHIR_OBS_COPY_OR_DUP(&attributes, attributes_param); + zephir_fetch_params(1, 1, 0, &exception); - ZEPHIR_INIT_VAR(&keysAttributes); - array_init(&keysAttributes); - zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model.zep", 5146); - if (Z_TYPE_P(&attributes) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _0) - { - ZEPHIR_INIT_NVAR(&attribute); - ZVAL_COPY(&attribute, _0); - zephir_array_update_zval(&keysAttributes, &attribute, &__$true, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_0); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "dispatch:beforeException"); + ZEPHIR_CALL_METHOD(&_1$$3, &eventsManager, "fire", NULL, 0, &_2$$3, this_ptr, exception); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &attributes, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&attribute, &attributes, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_update_zval(&keysAttributes, &attribute, &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); - zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_1$$3)) { + RETURN_MM_BOOL(0); } } - ZEPHIR_INIT_NVAR(&attribute); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getmodelsmetadata", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_2, "setemptystringattributes", NULL, 0, this_ptr, &keysAttributes); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Mvc_Model, cancelOperation) -{ - zval _0, _1$$3, _2$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("operationMade"), PH_NOISY_CC | PH_READONLY); - if (ZEPHIR_IS_LONG(&_0, 3)) { - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "notDeleted"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_1$$3); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_VAR(&_2$$4); - ZVAL_STRING(&_2$$4, "notSaved"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "fireevent", NULL, 0, &_2$$4); - zephir_check_call_status(); - } ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model, belongsTo) +static PHP_METHOD(Phalcon_Cli_Dispatcher, throwDispatchException) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval referenceModel; - zval *fields, fields_sub, *referenceModel_param = NULL, *referencedFields, referencedFields_sub, *options = NULL, options_sub, __$null, _0; + zend_long exceptionCode, ZEPHIR_LAST_CALL_STATUS; + zval *message_param = NULL, *exceptionCode_param = NULL, exception, _0, _1; + zval message; zval *this_ptr = getThis(); - ZVAL_UNDEF(&fields_sub); - ZVAL_UNDEF(&referencedFields_sub); - ZVAL_UNDEF(&options_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&message); + ZVAL_UNDEF(&exception); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&referenceModel); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 4) - Z_PARAM_ZVAL(fields) - Z_PARAM_STR(referenceModel) - Z_PARAM_ZVAL(referencedFields) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(message) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(options) + Z_PARAM_LONG(exceptionCode) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 1, &fields, &referenceModel_param, &referencedFields, &options); - if (UNEXPECTED(Z_TYPE_P(referenceModel_param) != IS_STRING && Z_TYPE_P(referenceModel_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceModel' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(referenceModel_param) == IS_STRING)) { - zephir_get_strval(&referenceModel, referenceModel_param); + zephir_fetch_params(1, 1, 1, &message_param, &exceptionCode_param); + zephir_get_strval(&message, message_param); + if (!exceptionCode_param) { + exceptionCode = 0; } else { - ZEPHIR_INIT_VAR(&referenceModel); - } - if (!options) { - options = &options_sub; - options = &__$null; + exceptionCode = zephir_get_intval(exceptionCode_param); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "addbelongsto", NULL, 0, this_ptr, fields, &referenceModel, referencedFields, options); + ZEPHIR_INIT_VAR(&exception); + object_init_ex(&exception, phalcon_cli_dispatcher_exception_ce); + ZVAL_LONG(&_0, exceptionCode); + ZEPHIR_CALL_METHOD(NULL, &exception, "__construct", NULL, 8, &message, &_0); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "handleexception", NULL, 0, &exception); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_1)) { + RETURN_MM_BOOL(0); + } + zephir_throw_exception_debug(&exception, "phalcon/Cli/Dispatcher.zep", 221); + ZEPHIR_MM_RESTORE(); + return; } -static PHP_METHOD(Phalcon_Mvc_Model, getPreparedQuery) +zend_object *zephir_init_properties_Phalcon_Cli_Dispatcher(zend_class_entry *class_type) { + zval _0, _2, _4, _6, _8, _1$$3, _3$$4, _5$$5, _7$$6, _9$$7; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *params, params_sub, *limit = NULL, limit_sub, __$null, builder, bindParams, bindTypes, transaction, cache, manager, query, container, _1, _2, _3$$5, _4$$7; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(¶ms_sub); - ZVAL_UNDEF(&limit_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&builder); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); - ZVAL_UNDEF(&transaction); - ZVAL_UNDEF(&cache); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&query); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_4$$7); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(params) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(limit) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, ¶ms, &limit); - if (!limit) { - limit = &limit_sub; - limit = &__$null; - } - + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_9$$7); + - ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_0, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "modelsManager"); - ZEPHIR_CALL_METHOD(&_1, &container, "getshared", NULL, 0, &_2); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&manager, &_1); - ZEPHIR_CALL_METHOD(&_1, &manager, "createbuilder", NULL, 0, params); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&builder, &_1); - ZEPHIR_INIT_NVAR(&_2); - zephir_get_called_class(&_2); - ZEPHIR_CALL_METHOD(NULL, &builder, "from", NULL, 0, &_2); - zephir_check_call_status(); - if (Z_TYPE_P(limit) != IS_NULL) { - ZEPHIR_CALL_METHOD(NULL, &builder, "limit", NULL, 0, limit); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(&_1, &builder, "getquery", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&query, &_1); - ZEPHIR_OBS_VAR(&bindParams); - if (zephir_array_isset_string_fetch(&bindParams, params, SL("bind"), 0)) { - if (Z_TYPE_P(&bindParams) == IS_ARRAY) { - ZVAL_BOOL(&_3$$5, 1); - ZEPHIR_CALL_METHOD(NULL, &query, "setbindparams", NULL, 0, &bindParams, &_3$$5); - zephir_check_call_status(); + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("params"), &_1$$3); } - ZEPHIR_OBS_VAR(&bindTypes); - if (zephir_array_isset_string_fetch(&bindTypes, params, SL("bindTypes"), 0)) { - if (Z_TYPE_P(&bindTypes) == IS_ARRAY) { - ZVAL_BOOL(&_4$$7, 1); - ZEPHIR_CALL_METHOD(NULL, &query, "setbindtypes", NULL, 0, &bindTypes, &_4$$7); - zephir_check_call_status(); - } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("handlerHashes"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("handlerHashes"), &_3$$4); } - } - ZEPHIR_OBS_VAR(&transaction); - if (zephir_array_isset_string_fetch(&transaction, params, SL("transaction"), 0)) { - if (zephir_instance_of_ev(&transaction, phalcon_mvc_model_transactioninterface_ce)) { - ZEPHIR_CALL_METHOD(NULL, &query, "settransaction", NULL, 0, &transaction); - zephir_check_call_status(); + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("camelCaseMap"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_4) == IS_NULL) { + ZEPHIR_INIT_VAR(&_5$$5); + array_init(&_5$$5); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("camelCaseMap"), &_5$$5); } + zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("activeMethodMap"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_6) == IS_NULL) { + ZEPHIR_INIT_VAR(&_7$$6); + array_init(&_7$$6); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("activeMethodMap"), &_7$$6); + } + zephir_read_property_ex(&_8, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_8) == IS_NULL) { + ZEPHIR_INIT_VAR(&_9$$7); + array_init(&_9$$7); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_9$$7); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); } - ZEPHIR_OBS_VAR(&cache); - if (zephir_array_isset_string_fetch(&cache, params, SL("cache"), 0)) { - ZEPHIR_CALL_METHOD(NULL, &query, "cache", NULL, 0, &cache); - zephir_check_call_status(); - } - RETURN_CCTOR(&query); } -static PHP_METHOD(Phalcon_Mvc_Model, hasMany) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval referenceModel; - zval *fields, fields_sub, *referenceModel_param = NULL, *referencedFields, referencedFields_sub, *options = NULL, options_sub, __$null, _0; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&fields_sub); - ZVAL_UNDEF(&referencedFields_sub); - ZVAL_UNDEF(&options_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&referenceModel); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 4) - Z_PARAM_ZVAL(fields) - Z_PARAM_STR(referenceModel) - Z_PARAM_ZVAL(referencedFields) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(options) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 1, &fields, &referenceModel_param, &referencedFields, &options); - if (UNEXPECTED(Z_TYPE_P(referenceModel_param) != IS_STRING && Z_TYPE_P(referenceModel_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceModel' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(referenceModel_param) == IS_STRING)) { - zephir_get_strval(&referenceModel, referenceModel_param); - } else { - ZEPHIR_INIT_VAR(&referenceModel); - } - if (!options) { - options = &options_sub; - options = &__$null; - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "addhasmany", NULL, 0, this_ptr, fields, &referenceModel, referencedFields, options); - zephir_check_call_status(); - RETURN_MM(); -} -static PHP_METHOD(Phalcon_Mvc_Model, hasManyToMany) +ZEPHIR_INIT_CLASS(Phalcon_Cli_DispatcherInterface) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval intermediateModel, referenceModel; - zval *fields, fields_sub, *intermediateModel_param = NULL, *intermediateFields, intermediateFields_sub, *intermediateReferencedFields, intermediateReferencedFields_sub, *referenceModel_param = NULL, *referencedFields, referencedFields_sub, *options = NULL, options_sub, _0; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Cli, DispatcherInterface, phalcon, cli_dispatcherinterface, phalcon_cli_dispatcherinterface_method_entry); - ZVAL_UNDEF(&fields_sub); - ZVAL_UNDEF(&intermediateFields_sub); - ZVAL_UNDEF(&intermediateReferencedFields_sub); - ZVAL_UNDEF(&referencedFields_sub); - ZVAL_UNDEF(&options_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&intermediateModel); - ZVAL_UNDEF(&referenceModel); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(6, 7) - Z_PARAM_ZVAL(fields) - Z_PARAM_STR(intermediateModel) - Z_PARAM_ZVAL(intermediateFields) - Z_PARAM_ZVAL(intermediateReferencedFields) - Z_PARAM_STR(referenceModel) - Z_PARAM_ZVAL(referencedFields) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL(options) - ZEND_PARSE_PARAMETERS_END(); + zend_class_implements(phalcon_cli_dispatcherinterface_ce, 1, phalcon_dispatcher_dispatcherinterface_ce); + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Cli_DispatcherInterface, getActiveTask); +ZEPHIR_DOC_METHOD(Phalcon_Cli_DispatcherInterface, getLastTask); +ZEPHIR_DOC_METHOD(Phalcon_Cli_DispatcherInterface, getOptions); +ZEPHIR_DOC_METHOD(Phalcon_Cli_DispatcherInterface, getTaskName); +ZEPHIR_DOC_METHOD(Phalcon_Cli_DispatcherInterface, getTaskSuffix); +ZEPHIR_DOC_METHOD(Phalcon_Cli_DispatcherInterface, setDefaultTask); +ZEPHIR_DOC_METHOD(Phalcon_Cli_DispatcherInterface, setOptions); +ZEPHIR_DOC_METHOD(Phalcon_Cli_DispatcherInterface, setTaskName); +ZEPHIR_DOC_METHOD(Phalcon_Cli_DispatcherInterface, setTaskSuffix); + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 6, 1, &fields, &intermediateModel_param, &intermediateFields, &intermediateReferencedFields, &referenceModel_param, &referencedFields, &options); - if (UNEXPECTED(Z_TYPE_P(intermediateModel_param) != IS_STRING && Z_TYPE_P(intermediateModel_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'intermediateModel' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(intermediateModel_param) == IS_STRING)) { - zephir_get_strval(&intermediateModel, intermediateModel_param); - } else { - ZEPHIR_INIT_VAR(&intermediateModel); - } - if (UNEXPECTED(Z_TYPE_P(referenceModel_param) != IS_STRING && Z_TYPE_P(referenceModel_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceModel' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(referenceModel_param) == IS_STRING)) { - zephir_get_strval(&referenceModel, referenceModel_param); - } else { - ZEPHIR_INIT_VAR(&referenceModel); - } - if (!options) { - options = &options_sub; - ZEPHIR_INIT_VAR(options); - array_init(options); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "addhasmanytomany", NULL, 0, this_ptr, fields, &intermediateModel, intermediateFields, intermediateReferencedFields, &referenceModel, referencedFields, options); - zephir_check_call_status(); - RETURN_MM(); + +ZEPHIR_INIT_CLASS(Phalcon_Cli_Router) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cli, Router, phalcon, cli_router, phalcon_di_abstractinjectionaware_ce, phalcon_cli_router_method_entry, 0); + + zend_declare_property_null(phalcon_cli_router_ce, SL("action"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_cli_router_ce, SL("defaultAction"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_cli_router_ce, SL("defaultModule"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_cli_router_ce, SL("defaultParams"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_cli_router_ce, SL("defaultTask"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_cli_router_ce, SL("matchedRoute"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_cli_router_ce, SL("matches"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_cli_router_ce, SL("module"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_cli_router_ce, SL("params"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_cli_router_ce, SL("routes"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_cli_router_ce, SL("task"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_cli_router_ce, SL("wasMatched"), 0, ZEND_ACC_PROTECTED); + phalcon_cli_router_ce->create_object = zephir_init_properties_Phalcon_Cli_Router; + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model, hasOne) +static PHP_METHOD(Phalcon_Cli_Router, __construct) { + zval routes, _1$$3, _3$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval referenceModel; - zval *fields, fields_sub, *referenceModel_param = NULL, *referencedFields, referencedFields_sub, *options = NULL, options_sub, __$null, _0; + zval *defaultRoutes_param = NULL, _0$$3, _2$$3, _4$$3; + zend_bool defaultRoutes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&fields_sub); - ZVAL_UNDEF(&referencedFields_sub); - ZVAL_UNDEF(&options_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&referenceModel); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&routes); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 4) - Z_PARAM_ZVAL(fields) - Z_PARAM_STR(referenceModel) - Z_PARAM_ZVAL(referencedFields) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(options) + Z_PARAM_BOOL(defaultRoutes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 1, &fields, &referenceModel_param, &referencedFields, &options); - if (UNEXPECTED(Z_TYPE_P(referenceModel_param) != IS_STRING && Z_TYPE_P(referenceModel_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceModel' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(referenceModel_param) == IS_STRING)) { - zephir_get_strval(&referenceModel, referenceModel_param); + zephir_fetch_params(1, 0, 1, &defaultRoutes_param); + if (!defaultRoutes_param) { + defaultRoutes = 1; } else { - ZEPHIR_INIT_VAR(&referenceModel); - } - if (!options) { - options = &options_sub; - options = &__$null; + defaultRoutes = zephir_get_boolval(defaultRoutes_param); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "addhasone", NULL, 0, this_ptr, fields, &referenceModel, referencedFields, options); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_VAR(&routes); + array_init(&routes); + if (defaultRoutes) { + ZEPHIR_INIT_VAR(&_0$$3); + object_init_ex(&_0$$3, phalcon_cli_router_route_ce); + ZEPHIR_INIT_VAR(&_1$$3); + zephir_create_array(&_1$$3, 1, 0); + add_assoc_long_ex(&_1$$3, SL("task"), 1); + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "#^(?::delimiter)?([a-zA-Z0-9\\_\\-]+)[:delimiter]{0,1}$#"); + ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 173, &_2$$3, &_1$$3); + zephir_check_call_status(); + zephir_array_append(&routes, &_0$$3, PH_SEPARATE, "phalcon/Cli/Router.zep", 120); + ZEPHIR_INIT_NVAR(&_2$$3); + object_init_ex(&_2$$3, phalcon_cli_router_route_ce); + ZEPHIR_INIT_VAR(&_3$$3); + zephir_create_array(&_3$$3, 3, 0); + add_assoc_long_ex(&_3$$3, SL("task"), 1); + add_assoc_long_ex(&_3$$3, SL("action"), 2); + add_assoc_long_ex(&_3$$3, SL("params"), 3); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "#^(?::delimiter)?([a-zA-Z0-9\\_\\-]+):delimiter([a-zA-Z0-9\\.\\_]+)(:delimiter.*)*$#"); + ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", NULL, 173, &_4$$3, &_3$$3); + zephir_check_call_status(); + zephir_array_append(&routes, &_2$$3, PH_SEPARATE, "phalcon/Cli/Router.zep", 129); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("routes"), &routes); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model, hasOneThrough) +static PHP_METHOD(Phalcon_Cli_Router, add) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval intermediateModel, referenceModel; - zval *fields, fields_sub, *intermediateModel_param = NULL, *intermediateFields, intermediateFields_sub, *intermediateReferencedFields, intermediateReferencedFields_sub, *referenceModel_param = NULL, *referencedFields, referencedFields_sub, *options = NULL, options_sub, __$null, _0; + zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, route; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&fields_sub); - ZVAL_UNDEF(&intermediateFields_sub); - ZVAL_UNDEF(&intermediateReferencedFields_sub); - ZVAL_UNDEF(&referencedFields_sub); - ZVAL_UNDEF(&options_sub); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&intermediateModel); - ZVAL_UNDEF(&referenceModel); + ZVAL_UNDEF(&route); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(6, 7) - Z_PARAM_ZVAL(fields) - Z_PARAM_STR(intermediateModel) - Z_PARAM_ZVAL(intermediateFields) - Z_PARAM_ZVAL(intermediateReferencedFields) - Z_PARAM_STR(referenceModel) - Z_PARAM_ZVAL(referencedFields) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(pattern) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(options) + Z_PARAM_ZVAL_OR_NULL(paths) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 6, 1, &fields, &intermediateModel_param, &intermediateFields, &intermediateReferencedFields, &referenceModel_param, &referencedFields, &options); - if (UNEXPECTED(Z_TYPE_P(intermediateModel_param) != IS_STRING && Z_TYPE_P(intermediateModel_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'intermediateModel' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(intermediateModel_param) == IS_STRING)) { - zephir_get_strval(&intermediateModel, intermediateModel_param); - } else { - ZEPHIR_INIT_VAR(&intermediateModel); - } - if (UNEXPECTED(Z_TYPE_P(referenceModel_param) != IS_STRING && Z_TYPE_P(referenceModel_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceModel' must be of the type string")); + zephir_fetch_params(1, 1, 1, &pattern_param, &paths); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(referenceModel_param) == IS_STRING)) { - zephir_get_strval(&referenceModel, referenceModel_param); + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); } else { - ZEPHIR_INIT_VAR(&referenceModel); + ZEPHIR_INIT_VAR(&pattern); } - if (!options) { - options = &options_sub; - options = &__$null; + if (!paths) { + paths = &paths_sub; + paths = &__$null; } - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "addhasonethrough", NULL, 0, this_ptr, fields, &intermediateModel, intermediateFields, intermediateReferencedFields, &referenceModel, referencedFields, options); + ZEPHIR_INIT_VAR(&route); + object_init_ex(&route, phalcon_cli_router_route_ce); + ZEPHIR_CALL_METHOD(NULL, &route, "__construct", NULL, 173, &pattern, paths); zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_array_append(this_ptr, SL("routes"), &route); + RETURN_CCTOR(&route); } -static PHP_METHOD(Phalcon_Mvc_Model, keepSnapshots) +static PHP_METHOD(Phalcon_Cli_Router, getActionName) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *keepSnapshot_param = NULL, _0, _1; - zend_bool keepSnapshot; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(keepSnapshot) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &keepSnapshot_param); - keepSnapshot = zephir_get_boolval(keepSnapshot_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - if (keepSnapshot) { - ZVAL_BOOL(&_1, 1); - } else { - ZVAL_BOOL(&_1, 0); - } - ZEPHIR_CALL_METHOD(NULL, &_0, "keepsnapshots", NULL, 0, this_ptr, &_1); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + RETURN_MEMBER(getThis(), "action"); } -static PHP_METHOD(Phalcon_Mvc_Model, setSchema) +static PHP_METHOD(Phalcon_Cli_Router, getMatchedRoute) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *schema_param = NULL, _0; - zval schema; zval *this_ptr = getThis(); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(schema) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &schema_param); - if (UNEXPECTED(Z_TYPE_P(schema_param) != IS_STRING && Z_TYPE_P(schema_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schema' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schema_param) == IS_STRING)) { - zephir_get_strval(&schema, schema_param); - } else { - ZEPHIR_INIT_VAR(&schema); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_0, "setmodelschema", NULL, 0, this_ptr, &schema); - zephir_check_call_status(); - RETURN_THIS(); + RETURN_MEMBER(getThis(), "matchedRoute"); } -static PHP_METHOD(Phalcon_Mvc_Model, setSource) +static PHP_METHOD(Phalcon_Cli_Router, getMatches) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *source_param = NULL, _0; - zval source; zval *this_ptr = getThis(); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(source) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &source_param); - if (UNEXPECTED(Z_TYPE_P(source_param) != IS_STRING && Z_TYPE_P(source_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'source' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(source_param) == IS_STRING)) { - zephir_get_strval(&source, source_param); - } else { - ZEPHIR_INIT_VAR(&source); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_0, "setmodelsource", NULL, 0, this_ptr, &source); - zephir_check_call_status(); - RETURN_THIS(); + RETURN_MEMBER(getThis(), "matches"); } -static PHP_METHOD(Phalcon_Mvc_Model, skipAttributes) +static PHP_METHOD(Phalcon_Cli_Router, getModuleName) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *attributes_param = NULL; - zval attributes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &attributes_param); - ZEPHIR_OBS_COPY_OR_DUP(&attributes, attributes_param); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "skipattributesoncreate", NULL, 0, &attributes); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "skipattributesonupdate", NULL, 0, &attributes); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + RETURN_MEMBER(getThis(), "module"); } -static PHP_METHOD(Phalcon_Mvc_Model, skipAttributesOnCreate) +static PHP_METHOD(Phalcon_Cli_Router, getParams) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *attributes_param = NULL, __$null, attribute, *_0, _1, _2; - zval attributes, keysAttributes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&keysAttributes); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&attribute); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(attributes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &attributes_param); - ZEPHIR_OBS_COPY_OR_DUP(&attributes, attributes_param); - ZEPHIR_INIT_VAR(&keysAttributes); - array_init(&keysAttributes); - zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model.zep", 5605); - if (Z_TYPE_P(&attributes) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _0) - { - ZEPHIR_INIT_NVAR(&attribute); - ZVAL_COPY(&attribute, _0); - zephir_array_update_zval(&keysAttributes, &attribute, &__$null, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &attributes, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&attribute, &attributes, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_update_zval(&keysAttributes, &attribute, &__$null, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&attribute); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getmodelsmetadata", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_2, "setautomaticcreateattributes", NULL, 0, this_ptr, &keysAttributes); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + RETURN_MEMBER(getThis(), "params"); } -static PHP_METHOD(Phalcon_Mvc_Model, skipAttributesOnUpdate) +static PHP_METHOD(Phalcon_Cli_Router, getRouteById) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *attributes_param = NULL, __$null, attribute, *_0, _1, _2; - zval attributes, keysAttributes; + zval *id, id_sub, route, _0, *_1, _2, _3$$3, _4$$5; zval *this_ptr = getThis(); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&keysAttributes); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&attribute); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&id_sub); + ZVAL_UNDEF(&route); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(attributes) + Z_PARAM_ZVAL(id) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &attributes_param); - ZEPHIR_OBS_COPY_OR_DUP(&attributes, attributes_param); + zephir_fetch_params(1, 1, 0, &id); - ZEPHIR_INIT_VAR(&keysAttributes); - array_init(&keysAttributes); - zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model.zep", 5640); - if (Z_TYPE_P(&attributes) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _0) + zephir_read_property(&_0, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); + zephir_is_iterable(&_0, 0, "phalcon/Cli/Router.zep", 209); + if (Z_TYPE_P(&_0) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _1) { - ZEPHIR_INIT_NVAR(&attribute); - ZVAL_COPY(&attribute, _0); - zephir_array_update_zval(&keysAttributes, &attribute, &__$null, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&route); + ZVAL_COPY(&route, _1); + ZEPHIR_CALL_METHOD(&_3$$3, &route, "getrouteid", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_EQUAL(&_3$$3, id)) { + RETURN_CCTOR(&route); + } } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_1, &attributes, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_2, &_0, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_1)) { + if (!zend_is_true(&_2)) { break; } - ZEPHIR_CALL_METHOD(&attribute, &attributes, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&route, &_0, "current", NULL, 0); zephir_check_call_status(); - zephir_array_update_zval(&keysAttributes, &attribute, &__$null, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); + ZEPHIR_CALL_METHOD(&_4$$5, &route, "getrouteid", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_EQUAL(&_4$$5, id)) { + RETURN_CCTOR(&route); + } + ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&attribute); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getmodelsmetadata", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_2, "setautomaticupdateattributes", NULL, 0, this_ptr, &keysAttributes); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Mvc_Model, useDynamicUpdate) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *dynamicUpdate_param = NULL, _0, _1; - zend_bool dynamicUpdate; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(dynamicUpdate) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &dynamicUpdate_param); - dynamicUpdate = zephir_get_boolval(dynamicUpdate_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsManager"), PH_NOISY_CC | PH_READONLY); - if (dynamicUpdate) { - ZVAL_BOOL(&_1, 1); - } else { - ZVAL_BOOL(&_1, 0); - } - ZEPHIR_CALL_METHOD(NULL, &_0, "usedynamicupdate", NULL, 0, this_ptr, &_1); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + ZEPHIR_INIT_NVAR(&route); + RETURN_MM_BOOL(0); } -static PHP_METHOD(Phalcon_Mvc_Model, validate) +static PHP_METHOD(Phalcon_Cli_Router, getRouteByName) { - zend_object_iterator *_1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_7 = NULL, *_8 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *validator, validator_sub, messages, message, _0, _2$$4, _3$$4, _4$$4, _5$$4, _6$$4; + zval *name_param = NULL, route, _0, *_1, _2, _3$$3, _4$$5; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&validator_sub); - ZVAL_UNDEF(&messages); - ZVAL_UNDEF(&message); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&route); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(validator, phalcon_validation_validationinterface_ce) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &validator); - - - ZVAL_NULL(&_0); - ZEPHIR_CALL_METHOD(&messages, validator, "validate", NULL, 0, &_0, this_ptr); - zephir_check_call_status(); - if (((Z_TYPE_P(&messages) == IS_TRUE || Z_TYPE_P(&messages) == IS_FALSE) == 1)) { - RETURN_CCTOR(&messages); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); } - _1 = zephir_get_iterator(&messages); - _1->funcs->rewind(_1); - for (;_1->funcs->valid(_1) == SUCCESS && !EG(exception); _1->funcs->move_forward(_1)) { - { - ZEPHIR_ITERATOR_COPY(&message, _1); - } - ZEPHIR_INIT_NVAR(&_2$$4); - object_init_ex(&_2$$4, phalcon_messages_message_ce); - ZEPHIR_CALL_METHOD(&_3$$4, &message, "getmessage", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_4$$4, &message, "getfield", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_5$$4, &message, "gettype", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_6$$4, &message, "getcode", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_2$$4, "__construct", &_7, 6, &_3$$4, &_4$$4, &_5$$4, &_6$$4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendmessage", &_8, 0, &_2$$4); - zephir_check_call_status(); + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); } - zend_iterator_dtor(_1); - RETURN_MM_BOOL(!(zephir_fast_count_int(&messages))); -} -static PHP_METHOD(Phalcon_Mvc_Model, validationHasFailed) -{ - zval _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("errorMessages"), PH_NOISY_CC | PH_READONLY); - RETURN_BOOL(zephir_fast_count_int(&_0) > 0); -} - -static PHP_METHOD(Phalcon_Mvc_Model, caseInsensitiveColumnMap) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *columnMap, columnMap_sub, *key, key_sub, cmKey, _0, *_1, _2, _3$$3, _4$$3, _5$$5, _6$$5; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&columnMap_sub); - ZVAL_UNDEF(&key_sub); - ZVAL_UNDEF(&cmKey); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_6$$5); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(columnMap) - Z_PARAM_ZVAL(key) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &columnMap, &key); - - ZEPHIR_INIT_VAR(&_0); - zephir_array_keys(&_0, columnMap); - zephir_is_iterable(&_0, 0, "phalcon/Mvc/Model.zep", 5776); + zephir_read_property(&_0, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); + zephir_is_iterable(&_0, 0, "phalcon/Cli/Router.zep", 225); if (Z_TYPE_P(&_0) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _1) { - ZEPHIR_INIT_NVAR(&cmKey); - ZVAL_COPY(&cmKey, _1); - ZEPHIR_INIT_NVAR(&_3$$3); - zephir_fast_strtolower(&_3$$3, &cmKey); - ZEPHIR_INIT_NVAR(&_4$$3); - zephir_fast_strtolower(&_4$$3, key); - if (ZEPHIR_IS_EQUAL(&_3$$3, &_4$$3)) { - RETURN_CCTOR(&cmKey); + ZEPHIR_INIT_NVAR(&route); + ZVAL_COPY(&route, _1); + ZEPHIR_CALL_METHOD(&_3$$3, &route, "getname", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_EQUAL(&_3$$3, &name)) { + RETURN_CCTOR(&route); } } ZEND_HASH_FOREACH_END(); } else { @@ -131195,699 +116373,888 @@ static PHP_METHOD(Phalcon_Mvc_Model, caseInsensitiveColumnMap) if (!zend_is_true(&_2)) { break; } - ZEPHIR_CALL_METHOD(&cmKey, &_0, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&route, &_0, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_5$$5); - zephir_fast_strtolower(&_5$$5, &cmKey); - ZEPHIR_INIT_NVAR(&_6$$5); - zephir_fast_strtolower(&_6$$5, key); - if (ZEPHIR_IS_EQUAL(&_5$$5, &_6$$5)) { - RETURN_CCTOR(&cmKey); + ZEPHIR_CALL_METHOD(&_4$$5, &route, "getname", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_EQUAL(&_4$$5, &name)) { + RETURN_CCTOR(&route); } ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&cmKey); - RETVAL_ZVAL(key, 1, 0); - RETURN_MM(); -} - -zend_object *zephir_init_properties_Phalcon_Mvc_Model(zend_class_entry *class_type) -{ - zval _0, _2, _4, _6, _8, _10, _1$$3, _3$$4, _5$$5, _7$$6, _9$$7, _11$$8; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_9$$7); - ZVAL_UNDEF(&_11$$8); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("uniqueParams"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("uniqueParams"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("snapshot"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("snapshot"), &_3$$4); - } - zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("oldSnapshot"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_4) == IS_NULL) { - ZEPHIR_INIT_VAR(&_5$$5); - array_init(&_5$$5); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("oldSnapshot"), &_5$$5); - } - zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("related"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_6) == IS_NULL) { - ZEPHIR_INIT_VAR(&_7$$6); - array_init(&_7$$6); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("related"), &_7$$6); - } - zephir_read_property_ex(&_8, this_ptr, ZEND_STRL("errorMessages"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_8) == IS_NULL) { - ZEPHIR_INIT_VAR(&_9$$7); - array_init(&_9$$7); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("errorMessages"), &_9$$7); - } - zephir_read_property_ex(&_10, this_ptr, ZEND_STRL("dirtyRelated"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_10) == IS_NULL) { - ZEPHIR_INIT_VAR(&_11$$8); - array_init(&_11$$8); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("dirtyRelated"), &_11$$8); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_ModelInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc, ModelInterface, phalcon, mvc_modelinterface, phalcon_mvc_modelinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, appendMessage); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, assign); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, average); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, cloneResult); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, cloneResultMap); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, cloneResultMapHydrate); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, count); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, create); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, delete); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, find); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, findFirst); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, fireEvent); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, fireEventCancel); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getDirtyState); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getMessages); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getModelsMetaData); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getOperationMade); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getReadConnection); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getReadConnectionService); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getRelated); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getSchema); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getSource); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getWriteConnection); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, getWriteConnectionService); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, maximum); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, minimum); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, query); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, refresh); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, save); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, setConnectionService); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, setDirtyState); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, setReadConnectionService); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, setSnapshotData); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, setTransaction); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, setWriteConnectionService); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, skipOperation); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, sum); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, validationHasFailed); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModelInterface, update); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_ModuleDefinitionInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc, ModuleDefinitionInterface, phalcon, mvc_moduledefinitioninterface, phalcon_mvc_moduledefinitioninterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModuleDefinitionInterface, registerAutoloaders); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ModuleDefinitionInterface, registerServices); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Router) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc, Router, phalcon, mvc_router, phalcon_di_abstractinjectionaware_ce, phalcon_mvc_router_method_entry, 0); - - zend_declare_property_null(phalcon_mvc_router_ce, SL("action"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_ce, SL("controller"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_ce, SL("defaultAction"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_ce, SL("defaultController"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_ce, SL("defaultModule"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_ce, SL("defaultNamespace"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_ce, SL("defaultParams"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_ce, SL("keyRouteNames"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_ce, SL("keyRouteIds"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_ce, SL("matchedRoute"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_ce, SL("matches"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_ce, SL("module"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_ce, SL("namespaceName"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_ce, SL("notFoundPaths"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_ce, SL("params"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_router_ce, SL("removeExtraSlashes"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_ce, SL("routes"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_router_ce, SL("wasMatched"), 0, ZEND_ACC_PROTECTED); - phalcon_mvc_router_ce->create_object = zephir_init_properties_Phalcon_Mvc_Router; - zephir_declare_class_constant_long(phalcon_mvc_router_ce, SL("POSITION_FIRST"), 0); - - zephir_declare_class_constant_long(phalcon_mvc_router_ce, SL("POSITION_LAST"), 1); - - zend_class_implements(phalcon_mvc_router_ce, 1, phalcon_mvc_routerinterface_ce); - zend_class_implements(phalcon_mvc_router_ce, 1, phalcon_events_eventsawareinterface_ce); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Mvc_Router, getKeyRouteNames) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "keyRouteNames"); + ZEPHIR_INIT_NVAR(&route); + RETURN_MM_BOOL(0); } -static PHP_METHOD(Phalcon_Mvc_Router, setKeyRouteNames) +static PHP_METHOD(Phalcon_Cli_Router, getRoutes) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *keyRouteNames_param = NULL; - zval keyRouteNames; zval *this_ptr = getThis(); - ZVAL_UNDEF(&keyRouteNames); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(keyRouteNames) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &keyRouteNames_param); - zephir_get_arrval(&keyRouteNames, keyRouteNames_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("keyRouteNames"), &keyRouteNames); - RETURN_THIS(); + RETURN_MEMBER(getThis(), "routes"); } -static PHP_METHOD(Phalcon_Mvc_Router, getKeyRouteIds) +static PHP_METHOD(Phalcon_Cli_Router, getTaskName) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "keyRouteIds"); + RETURN_MEMBER(getThis(), "task"); } -static PHP_METHOD(Phalcon_Mvc_Router, setKeyRouteIds) +static PHP_METHOD(Phalcon_Cli_Router, handle) { + zval _34$$55; + zend_string *_8$$12, *_21$$32; + zend_ulong _7$$12, _20$$32; + zval _4$$9, _10$$15, _12$$18, _14$$21, _16$$24, _17$$29, _23$$35, _25$$38, _27$$41, _29$$44; + zend_bool _0$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *keyRouteIds_param = NULL; - zval keyRouteIds; + zephir_fcall_cache_entry *_37 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *arguments = NULL, arguments_sub, __$true, __$false, __$null, moduleName, taskName, actionName, params, route, parts, pattern, routeFound, matches, paths, beforeMatch, converters, converter, part, position, matchPosition, strParams, _1$$3, *_2$$3, _3$$3, *_5$$12, _6$$12, _9$$15, _11$$18, _13$$21, _15$$24, *_18$$32, _19$$32, _22$$35, _24$$38, _26$$41, _28$$44, _30$$46, _31$$46, _32$$46, _33$$46, _35$$55, _36$$56, _38$$58; zval *this_ptr = getThis(); - ZVAL_UNDEF(&keyRouteIds); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(keyRouteIds) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &keyRouteIds_param); - zephir_get_arrval(&keyRouteIds, keyRouteIds_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("keyRouteIds"), &keyRouteIds); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Mvc_Router, __construct) -{ - zval routes, _1$$3, _3$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *defaultRoutes_param = NULL, _0$$3, _2$$3, _4$$3; - zend_bool defaultRoutes; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&routes); + ZVAL_UNDEF(&arguments_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&moduleName); + ZVAL_UNDEF(&taskName); + ZVAL_UNDEF(&actionName); + ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&route); + ZVAL_UNDEF(&parts); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&routeFound); + ZVAL_UNDEF(&matches); + ZVAL_UNDEF(&paths); + ZVAL_UNDEF(&beforeMatch); + ZVAL_UNDEF(&converters); + ZVAL_UNDEF(&converter); + ZVAL_UNDEF(&part); + ZVAL_UNDEF(&position); + ZVAL_UNDEF(&matchPosition); + ZVAL_UNDEF(&strParams); ZVAL_UNDEF(&_1$$3); ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_6$$12); + ZVAL_UNDEF(&_9$$15); + ZVAL_UNDEF(&_11$$18); + ZVAL_UNDEF(&_13$$21); + ZVAL_UNDEF(&_15$$24); + ZVAL_UNDEF(&_19$$32); + ZVAL_UNDEF(&_22$$35); + ZVAL_UNDEF(&_24$$38); + ZVAL_UNDEF(&_26$$41); + ZVAL_UNDEF(&_28$$44); + ZVAL_UNDEF(&_30$$46); + ZVAL_UNDEF(&_31$$46); + ZVAL_UNDEF(&_32$$46); + ZVAL_UNDEF(&_33$$46); + ZVAL_UNDEF(&_35$$55); + ZVAL_UNDEF(&_36$$56); + ZVAL_UNDEF(&_38$$58); + ZVAL_UNDEF(&_4$$9); + ZVAL_UNDEF(&_10$$15); + ZVAL_UNDEF(&_12$$18); + ZVAL_UNDEF(&_14$$21); + ZVAL_UNDEF(&_16$$24); + ZVAL_UNDEF(&_17$$29); + ZVAL_UNDEF(&_23$$35); + ZVAL_UNDEF(&_25$$38); + ZVAL_UNDEF(&_27$$41); + ZVAL_UNDEF(&_29$$44); + ZVAL_UNDEF(&_34$$55); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_BOOL(defaultRoutes) + Z_PARAM_ZVAL_OR_NULL(arguments) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &defaultRoutes_param); - if (!defaultRoutes_param) { - defaultRoutes = 1; - } else { - if (UNEXPECTED(Z_TYPE_P(defaultRoutes_param) != IS_TRUE && Z_TYPE_P(defaultRoutes_param) != IS_FALSE)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'defaultRoutes' must be of the type bool")); - RETURN_MM_NULL(); - } - defaultRoutes = (Z_TYPE_P(defaultRoutes_param) == IS_TRUE); + zephir_fetch_params(1, 0, 1, &arguments); + if (!arguments) { + arguments = &arguments_sub; + arguments = &__$null; } - ZEPHIR_INIT_VAR(&routes); - array_init(&routes); - if (defaultRoutes) { - ZEPHIR_INIT_VAR(&_0$$3); - object_init_ex(&_0$$3, phalcon_mvc_router_route_ce); - ZEPHIR_INIT_VAR(&_1$$3); - zephir_create_array(&_1$$3, 1, 0); - add_assoc_long_ex(&_1$$3, SL("controller"), 1); - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "#^/([\\w0-9\\_\\-]+)[/]{0,1}$#u"); - ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 117, &_2$$3, &_1$$3); - zephir_check_call_status(); - zephir_array_append(&routes, &_0$$3, PH_SEPARATE, "phalcon/Mvc/Router.zep", 171); - ZEPHIR_INIT_NVAR(&_2$$3); - object_init_ex(&_2$$3, phalcon_mvc_router_route_ce); - ZEPHIR_INIT_VAR(&_3$$3); - zephir_create_array(&_3$$3, 3, 0); - add_assoc_long_ex(&_3$$3, SL("controller"), 1); - add_assoc_long_ex(&_3$$3, SL("action"), 2); - add_assoc_long_ex(&_3$$3, SL("params"), 3); - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "#^/([\\w0-9\\_\\-]+)/([\\w0-9\\.\\_]+)(/.*)*$#u"); - ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", NULL, 117, &_4$$3, &_3$$3); - zephir_check_call_status(); - zephir_array_append(&routes, &_2$$3, PH_SEPARATE, "phalcon/Mvc/Router.zep", 180); + ZEPHIR_INIT_VAR(&routeFound); + ZVAL_BOOL(&routeFound, 0); + ZEPHIR_INIT_VAR(&parts); + array_init(&parts); + ZEPHIR_INIT_VAR(¶ms); + array_init(¶ms); + ZEPHIR_INIT_VAR(&matches); + ZVAL_NULL(&matches); + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$false); } - zephir_update_property_zval(this_ptr, ZEND_STRL("routes"), &routes); + zephir_update_property_zval(this_ptr, ZEND_STRL("matchedRoute"), &__$null); + if (Z_TYPE_P(arguments) != IS_ARRAY) { + _0$$3 = Z_TYPE_P(arguments) != IS_STRING; + if (_0$$3) { + _0$$3 = Z_TYPE_P(arguments) != IS_NULL; + } + if (UNEXPECTED(_0$$3)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_router_exception_ce, "Arguments must be an array or string", "phalcon/Cli/Router.zep", 264); + return; + } + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); + zephir_is_iterable(&_1$$3, 0, "phalcon/Cli/Router.zep", 370); + if (Z_TYPE_P(&_1$$3) == IS_ARRAY) { + ZEND_HASH_REVERSE_FOREACH_VAL(Z_ARRVAL_P(&_1$$3), _2$$3) + { + ZEPHIR_INIT_NVAR(&route); + ZVAL_COPY(&route, _2$$3); + ZEPHIR_CALL_METHOD(&pattern, &route, "getcompiledpattern", NULL, 0); + zephir_check_call_status(); + if (zephir_memnstr_str(&pattern, SL("^"), "phalcon/Cli/Router.zep", 273)) { + ZEPHIR_INIT_NVAR(&routeFound); + zephir_preg_match(&routeFound, &pattern, arguments, &matches, 0, 0 , 0 ); + } else { + ZEPHIR_INIT_NVAR(&routeFound); + ZVAL_BOOL(&routeFound, ZEPHIR_IS_EQUAL(&pattern, arguments)); + } + if (zephir_is_true(&routeFound)) { + ZEPHIR_CALL_METHOD(&beforeMatch, &route, "getbeforematch", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&beforeMatch) != IS_NULL) { + if (UNEXPECTED(!(zephir_is_callable(&beforeMatch)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_router_exception_ce, "Before-Match callback is not callable in matched route", "phalcon/Cli/Router.zep", 292); + return; + } + ZEPHIR_INIT_NVAR(&_4$$9); + zephir_create_array(&_4$$9, 3, 0); + zephir_array_fast_append(&_4$$9, arguments); + zephir_array_fast_append(&_4$$9, &route); + zephir_array_fast_append(&_4$$9, this_ptr); + ZEPHIR_INIT_NVAR(&routeFound); + ZEPHIR_CALL_USER_FUNC_ARRAY(&routeFound, &beforeMatch, &_4$$9); + zephir_check_call_status(); + } + } + if (zephir_is_true(&routeFound)) { + ZEPHIR_CALL_METHOD(&paths, &route, "getpaths", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&parts, &paths); + if (Z_TYPE_P(&matches) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&converters, &route, "getconverters", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&paths, 0, "phalcon/Cli/Router.zep", 357); + if (Z_TYPE_P(&paths) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&paths), _7$$12, _8$$12, _5$$12) + { + ZEPHIR_INIT_NVAR(&part); + if (_8$$12 != NULL) { + ZVAL_STR_COPY(&part, _8$$12); + } else { + ZVAL_LONG(&part, _7$$12); + } + ZEPHIR_INIT_NVAR(&position); + ZVAL_COPY(&position, _5$$12); + ZEPHIR_OBS_NVAR(&matchPosition); + if (zephir_array_isset_fetch(&matchPosition, &matches, &position, 0)) { + ZEPHIR_OBS_NVAR(&converter); + if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { + ZEPHIR_INIT_NVAR(&_9$$15); + ZEPHIR_INIT_NVAR(&_10$$15); + zephir_create_array(&_10$$15, 1, 0); + zephir_array_fast_append(&_10$$15, &matchPosition); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_9$$15, &converter, &_10$$15); + zephir_check_call_status(); + zephir_array_update_zval(&parts, &part, &_9$$15, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_zval(&parts, &part, &matchPosition, PH_COPY | PH_SEPARATE); + } + } else { + ZEPHIR_OBS_NVAR(&converter); + if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { + ZEPHIR_INIT_NVAR(&_11$$18); + ZEPHIR_INIT_NVAR(&_12$$18); + zephir_create_array(&_12$$18, 1, 0); + zephir_array_fast_append(&_12$$18, &position); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_11$$18, &converter, &_12$$18); + zephir_check_call_status(); + zephir_array_update_zval(&parts, &part, &_11$$18, PH_COPY | PH_SEPARATE); + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &paths, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_6$$12, &paths, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_6$$12)) { + break; + } + ZEPHIR_CALL_METHOD(&part, &paths, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&position, &paths, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&matchPosition); + if (zephir_array_isset_fetch(&matchPosition, &matches, &position, 0)) { + ZEPHIR_OBS_NVAR(&converter); + if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { + ZEPHIR_INIT_NVAR(&_13$$21); + ZEPHIR_INIT_NVAR(&_14$$21); + zephir_create_array(&_14$$21, 1, 0); + zephir_array_fast_append(&_14$$21, &matchPosition); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_13$$21, &converter, &_14$$21); + zephir_check_call_status(); + zephir_array_update_zval(&parts, &part, &_13$$21, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_zval(&parts, &part, &matchPosition, PH_COPY | PH_SEPARATE); + } + } else { + ZEPHIR_OBS_NVAR(&converter); + if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { + ZEPHIR_INIT_NVAR(&_15$$24); + ZEPHIR_INIT_NVAR(&_16$$24); + zephir_create_array(&_16$$24, 1, 0); + zephir_array_fast_append(&_16$$24, &position); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_15$$24, &converter, &_16$$24); + zephir_check_call_status(); + zephir_array_update_zval(&parts, &part, &_15$$24, PH_COPY | PH_SEPARATE); + } + } + ZEPHIR_CALL_METHOD(NULL, &paths, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&position); + ZEPHIR_INIT_NVAR(&part); + zephir_update_property_zval(this_ptr, ZEND_STRL("matches"), &matches); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("matchedRoute"), &route); + break; + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3$$3, &_1$$3, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&route, &_1$$3, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&pattern, &route, "getcompiledpattern", NULL, 0); + zephir_check_call_status(); + if (zephir_memnstr_str(&pattern, SL("^"), "phalcon/Cli/Router.zep", 273)) { + ZEPHIR_INIT_NVAR(&routeFound); + zephir_preg_match(&routeFound, &pattern, arguments, &matches, 0, 0 , 0 ); + } else { + ZEPHIR_INIT_NVAR(&routeFound); + ZVAL_BOOL(&routeFound, ZEPHIR_IS_EQUAL(&pattern, arguments)); + } + if (zephir_is_true(&routeFound)) { + ZEPHIR_CALL_METHOD(&beforeMatch, &route, "getbeforematch", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&beforeMatch) != IS_NULL) { + if (UNEXPECTED(!(zephir_is_callable(&beforeMatch)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_router_exception_ce, "Before-Match callback is not callable in matched route", "phalcon/Cli/Router.zep", 292); + return; + } + ZEPHIR_INIT_NVAR(&_17$$29); + zephir_create_array(&_17$$29, 3, 0); + zephir_array_fast_append(&_17$$29, arguments); + zephir_array_fast_append(&_17$$29, &route); + zephir_array_fast_append(&_17$$29, this_ptr); + ZEPHIR_INIT_NVAR(&routeFound); + ZEPHIR_CALL_USER_FUNC_ARRAY(&routeFound, &beforeMatch, &_17$$29); + zephir_check_call_status(); + } + } + if (zephir_is_true(&routeFound)) { + ZEPHIR_CALL_METHOD(&paths, &route, "getpaths", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&parts, &paths); + if (Z_TYPE_P(&matches) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&converters, &route, "getconverters", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&paths, 0, "phalcon/Cli/Router.zep", 357); + if (Z_TYPE_P(&paths) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&paths), _20$$32, _21$$32, _18$$32) + { + ZEPHIR_INIT_NVAR(&part); + if (_21$$32 != NULL) { + ZVAL_STR_COPY(&part, _21$$32); + } else { + ZVAL_LONG(&part, _20$$32); + } + ZEPHIR_INIT_NVAR(&position); + ZVAL_COPY(&position, _18$$32); + ZEPHIR_OBS_NVAR(&matchPosition); + if (zephir_array_isset_fetch(&matchPosition, &matches, &position, 0)) { + ZEPHIR_OBS_NVAR(&converter); + if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { + ZEPHIR_INIT_NVAR(&_22$$35); + ZEPHIR_INIT_NVAR(&_23$$35); + zephir_create_array(&_23$$35, 1, 0); + zephir_array_fast_append(&_23$$35, &matchPosition); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_22$$35, &converter, &_23$$35); + zephir_check_call_status(); + zephir_array_update_zval(&parts, &part, &_22$$35, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_zval(&parts, &part, &matchPosition, PH_COPY | PH_SEPARATE); + } + } else { + ZEPHIR_OBS_NVAR(&converter); + if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { + ZEPHIR_INIT_NVAR(&_24$$38); + ZEPHIR_INIT_NVAR(&_25$$38); + zephir_create_array(&_25$$38, 1, 0); + zephir_array_fast_append(&_25$$38, &position); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_24$$38, &converter, &_25$$38); + zephir_check_call_status(); + zephir_array_update_zval(&parts, &part, &_24$$38, PH_COPY | PH_SEPARATE); + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &paths, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_19$$32, &paths, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_19$$32)) { + break; + } + ZEPHIR_CALL_METHOD(&part, &paths, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&position, &paths, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&matchPosition); + if (zephir_array_isset_fetch(&matchPosition, &matches, &position, 0)) { + ZEPHIR_OBS_NVAR(&converter); + if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { + ZEPHIR_INIT_NVAR(&_26$$41); + ZEPHIR_INIT_NVAR(&_27$$41); + zephir_create_array(&_27$$41, 1, 0); + zephir_array_fast_append(&_27$$41, &matchPosition); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_26$$41, &converter, &_27$$41); + zephir_check_call_status(); + zephir_array_update_zval(&parts, &part, &_26$$41, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_zval(&parts, &part, &matchPosition, PH_COPY | PH_SEPARATE); + } + } else { + ZEPHIR_OBS_NVAR(&converter); + if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { + ZEPHIR_INIT_NVAR(&_28$$44); + ZEPHIR_INIT_NVAR(&_29$$44); + zephir_create_array(&_29$$44, 1, 0); + zephir_array_fast_append(&_29$$44, &position); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_28$$44, &converter, &_29$$44); + zephir_check_call_status(); + zephir_array_update_zval(&parts, &part, &_28$$44, PH_COPY | PH_SEPARATE); + } + } + ZEPHIR_CALL_METHOD(NULL, &paths, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&position); + ZEPHIR_INIT_NVAR(&part); + zephir_update_property_zval(this_ptr, ZEND_STRL("matches"), &matches); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("matchedRoute"), &route); + break; + } + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&route); + if (zephir_is_true(&routeFound)) { + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$false); + } + } else { + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$false); + } + zephir_read_property(&_30$$46, this_ptr, ZEND_STRL("defaultModule"), PH_NOISY_CC | PH_READONLY); + zephir_update_property_zval(this_ptr, ZEND_STRL("module"), &_30$$46); + zephir_read_property(&_31$$46, this_ptr, ZEND_STRL("defaultTask"), PH_NOISY_CC | PH_READONLY); + zephir_update_property_zval(this_ptr, ZEND_STRL("task"), &_31$$46); + zephir_read_property(&_32$$46, this_ptr, ZEND_STRL("defaultAction"), PH_NOISY_CC | PH_READONLY); + zephir_update_property_zval(this_ptr, ZEND_STRL("action"), &_32$$46); + zephir_read_property(&_33$$46, this_ptr, ZEND_STRL("defaultParams"), PH_NOISY_CC | PH_READONLY); + zephir_update_property_zval(this_ptr, ZEND_STRL("params"), &_33$$46); + RETURN_THIS(); + } + } else { + ZEPHIR_CPY_WRT(&parts, arguments); + } + ZEPHIR_INIT_VAR(&moduleName); + ZVAL_NULL(&moduleName); + ZEPHIR_INIT_VAR(&taskName); + ZVAL_NULL(&taskName); + ZEPHIR_INIT_VAR(&actionName); + ZVAL_NULL(&actionName); + ZEPHIR_OBS_NVAR(&moduleName); + if (zephir_array_isset_string_fetch(&moduleName, &parts, SL("module"), 0)) { + zephir_array_unset_string(&parts, SL("module"), PH_SEPARATE); + } else { + ZEPHIR_OBS_NVAR(&moduleName); + zephir_read_property(&moduleName, this_ptr, ZEND_STRL("defaultModule"), PH_NOISY_CC); + } + ZEPHIR_OBS_NVAR(&taskName); + if (zephir_array_isset_string_fetch(&taskName, &parts, SL("task"), 0)) { + zephir_array_unset_string(&parts, SL("task"), PH_SEPARATE); + } else { + ZEPHIR_OBS_NVAR(&taskName); + zephir_read_property(&taskName, this_ptr, ZEND_STRL("defaultTask"), PH_NOISY_CC); + } + ZEPHIR_OBS_NVAR(&actionName); + if (zephir_array_isset_string_fetch(&actionName, &parts, SL("action"), 0)) { + zephir_array_unset_string(&parts, SL("action"), PH_SEPARATE); + } else { + ZEPHIR_OBS_NVAR(&actionName); + zephir_read_property(&actionName, this_ptr, ZEND_STRL("defaultAction"), PH_NOISY_CC); + } + ZEPHIR_OBS_NVAR(¶ms); + if (zephir_array_isset_string_fetch(¶ms, &parts, SL("params"), 0)) { + if (Z_TYPE_P(¶ms) != IS_ARRAY) { + zephir_cast_to_string(&_34$$55, ¶ms); + ZVAL_LONG(&_35$$55, 1); + ZEPHIR_INIT_VAR(&strParams); + zephir_substr(&strParams, &_34$$55, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + if (zephir_is_true(&strParams)) { + ZEPHIR_CALL_CE_STATIC(&_36$$56, phalcon_cli_router_route_ce, "getdelimiter", &_37, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(¶ms); + zephir_fast_explode(¶ms, &_36$$56, &strParams, LONG_MAX); + } else { + ZEPHIR_INIT_NVAR(¶ms); + array_init(¶ms); + } + } + zephir_array_unset_string(&parts, SL("params"), PH_SEPARATE); + } + if (zephir_fast_count_int(¶ms)) { + ZEPHIR_INIT_VAR(&_38$$58); + zephir_fast_array_merge(&_38$$58, ¶ms, &parts); + ZEPHIR_CPY_WRT(¶ms, &_38$$58); + } else { + ZEPHIR_CPY_WRT(¶ms, &parts); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("module"), &moduleName); + zephir_update_property_zval(this_ptr, ZEND_STRL("task"), &taskName); + zephir_update_property_zval(this_ptr, ZEND_STRL("action"), &actionName); + zephir_update_property_zval(this_ptr, ZEND_STRL("params"), ¶ms); ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Router, add) +static PHP_METHOD(Phalcon_Cli_Router, setDefaultAction) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long position, ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, *httpMethods = NULL, httpMethods_sub, *position_param = NULL, __$null, route, _0; - zval pattern; + zval *actionName_param = NULL; + zval actionName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_UNDEF(&httpMethods_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&route); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&actionName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 4) - Z_PARAM_STR(pattern) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) - Z_PARAM_ZVAL_OR_NULL(httpMethods) - Z_PARAM_LONG(position) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(actionName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 3, &pattern_param, &paths, &httpMethods, &position_param); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); - } else { - ZEPHIR_INIT_VAR(&pattern); - } - if (!paths) { - paths = &paths_sub; - paths = &__$null; - } - if (!httpMethods) { - httpMethods = &httpMethods_sub; - httpMethods = &__$null; - } - if (!position_param) { - position = 1; - } else { - position = zephir_get_intval(position_param); - } + zephir_fetch_params(1, 1, 0, &actionName_param); + zephir_get_strval(&actionName, actionName_param); - ZEPHIR_INIT_VAR(&route); - object_init_ex(&route, phalcon_mvc_router_route_ce); - ZEPHIR_CALL_METHOD(NULL, &route, "__construct", NULL, 117, &pattern, paths, httpMethods); - zephir_check_call_status(); - ZVAL_LONG(&_0, position); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "attach", NULL, 0, &route, &_0); - zephir_check_call_status(); - RETURN_CCTOR(&route); + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultAction"), &actionName); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Router, addConnect) +static PHP_METHOD(Phalcon_Cli_Router, setDefaultModule) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long position, ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, *position_param = NULL, __$null, _0, _1; - zval pattern; + zval *moduleName_param = NULL; + zval moduleName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&moduleName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(pattern) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) - Z_PARAM_LONG(position) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(moduleName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &position_param); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); - } else { - ZEPHIR_INIT_VAR(&pattern); - } - if (!paths) { - paths = &paths_sub; - paths = &__$null; - } - if (!position_param) { - position = 1; - } else { - position = zephir_get_intval(position_param); - } + zephir_fetch_params(1, 1, 0, &moduleName_param); + zephir_get_strval(&moduleName, moduleName_param); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "CONNECT"); - ZVAL_LONG(&_1, position); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &pattern, paths, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultModule"), &moduleName); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Router, addDelete) +static PHP_METHOD(Phalcon_Cli_Router, setDefaults) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long position, ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, *position_param = NULL, __$null, _0, _1; - zval pattern; + zval *defaults_param = NULL, module, task, action, params; + zval defaults; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&defaults); + ZVAL_UNDEF(&module); + ZVAL_UNDEF(&task); + ZVAL_UNDEF(&action); + ZVAL_UNDEF(¶ms); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(pattern) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) - Z_PARAM_LONG(position) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(defaults) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &position_param); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); - RETURN_MM_NULL(); + zephir_fetch_params(1, 1, 0, &defaults_param); + ZEPHIR_OBS_COPY_OR_DUP(&defaults, defaults_param); + + + if (zephir_array_isset_string_fetch(&module, &defaults, SL("module"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultModule"), &module); } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); - } else { - ZEPHIR_INIT_VAR(&pattern); + if (zephir_array_isset_string_fetch(&task, &defaults, SL("task"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultTask"), &task); } - if (!paths) { - paths = &paths_sub; - paths = &__$null; + if (zephir_array_isset_string_fetch(&action, &defaults, SL("action"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultAction"), &action); } - if (!position_param) { - position = 1; - } else { - position = zephir_get_intval(position_param); + if (zephir_array_isset_string_fetch(¶ms, &defaults, SL("params"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultParams"), ¶ms); } - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "DELETE"); - ZVAL_LONG(&_1, position); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &pattern, paths, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Router, addGet) +static PHP_METHOD(Phalcon_Cli_Router, setDefaultTask) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long position, ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, *position_param = NULL, __$null, _0, _1; - zval pattern; + zval *taskName_param = NULL; + zval taskName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&taskName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(pattern) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) - Z_PARAM_LONG(position) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(taskName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &position_param); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); - } else { - ZEPHIR_INIT_VAR(&pattern); - } - if (!paths) { - paths = &paths_sub; - paths = &__$null; - } - if (!position_param) { - position = 1; - } else { - position = zephir_get_intval(position_param); + zephir_fetch_params(1, 1, 0, &taskName_param); + zephir_get_strval(&taskName, taskName_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultTask"), &taskName); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Cli_Router, wasMatched) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "wasMatched"); +} + +zend_object *zephir_init_properties_Phalcon_Cli_Router(zend_class_entry *class_type) +{ + zval _0, _2, _4, _1$$3, _3$$4, _5$$5; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("routes"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("params"), &_3$$4); + } + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("defaultParams"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_4) == IS_NULL) { + ZEPHIR_INIT_VAR(&_5$$5); + array_init(&_5$$5); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("defaultParams"), &_5$$5); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); } +} - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "GET"); - ZVAL_LONG(&_1, position); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &pattern, paths, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Cli_RouterInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Cli, RouterInterface, phalcon, cli_routerinterface, phalcon_cli_routerinterface_method_entry); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Router, addHead) +ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, add); +ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, getActionName); +ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, getMatchedRoute); +ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, getMatches); +ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, getModuleName); +ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, getParams); +ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, getRouteById); +ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, getRouteByName); +ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, getRoutes); +ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, getTaskName); +ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, handle); +ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, setDefaultAction); +ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, setDefaultModule); +ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, setDefaults); +ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, setDefaultTask); +ZEPHIR_DOC_METHOD(Phalcon_Cli_RouterInterface, wasMatched); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Cli_Task) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cli, Task, phalcon, cli_task, phalcon_di_injectable_ce, phalcon_cli_task_method_entry, 0); + + zend_declare_property_null(phalcon_cli_task_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_cli_task_ce, 1, phalcon_cli_taskinterface_ce); + zend_class_implements(phalcon_cli_task_ce, 1, phalcon_events_eventsawareinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Cli_Task, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long position, ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, *position_param = NULL, __$null, _0, _1; - zval pattern; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(pattern) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) - Z_PARAM_LONG(position) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &position_param); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); - } else { - ZEPHIR_INIT_VAR(&pattern); - } - if (!paths) { - paths = &paths_sub; - paths = &__$null; - } - if (!position_param) { - position = 1; - } else { - position = zephir_get_intval(position_param); + + if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("onconstruct")) == SUCCESS)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "onconstruct", NULL, 0); + zephir_check_call_status(); } + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Cli_Task, getEventsManager) +{ + zval *this_ptr = getThis(); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "HEAD"); - ZVAL_LONG(&_1, position); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &pattern, paths, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); + + RETURN_MEMBER(getThis(), "eventsManager"); } -static PHP_METHOD(Phalcon_Mvc_Router, addOptions) +static PHP_METHOD(Phalcon_Cli_Task, setEventsManager) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long position, ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, *position_param = NULL, __$null, _0, _1; - zval pattern; + zval *eventsManager, eventsManager_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&eventsManager_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(pattern) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) - Z_PARAM_LONG(position) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &position_param); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); - } else { - ZEPHIR_INIT_VAR(&pattern); - } - if (!paths) { - paths = &paths_sub; - paths = &__$null; - } - if (!position_param) { - position = 1; - } else { - position = zephir_get_intval(position_param); - } + zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "OPTIONS"); - ZVAL_LONG(&_1, position); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &pattern, paths, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); } -static PHP_METHOD(Phalcon_Mvc_Router, addPatch) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Cli_TaskInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Cli, TaskInterface, phalcon, cli_taskinterface, NULL); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Cli_Dispatcher_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cli\\Dispatcher, Exception, phalcon, cli_dispatcher_exception, phalcon_dispatcher_exception_ce, NULL, 0); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Cli_Console_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cli\\Console, Exception, phalcon, cli_console_exception, phalcon_application_exception_ce, NULL, 0); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Cli_Router_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Cli\\Router, Exception, phalcon, cli_router_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Cli_Router_Route) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Cli\\Router, Route, phalcon, cli_router_route, phalcon_cli_router_route_method_entry, 0); + + zend_declare_property_null(phalcon_cli_router_route_ce, SL("beforeMatch"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_cli_router_route_ce, SL("compiledPattern"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_cli_router_route_ce, SL("converters"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_cli_router_route_ce, SL("delimiter"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_cli_router_route_ce, SL("delimiterPath"), " ", ZEND_ACC_PROTECTED|ZEND_ACC_STATIC); + zend_declare_property_null(phalcon_cli_router_route_ce, SL("description"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_cli_router_route_ce, SL("id"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_cli_router_route_ce, SL("name"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_cli_router_route_ce, SL("paths"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_cli_router_route_ce, SL("pattern"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_cli_router_route_ce, SL("uniqueId"), 0, ZEND_ACC_PROTECTED|ZEND_ACC_STATIC); + phalcon_cli_router_route_ce->create_object = zephir_init_properties_Phalcon_Cli_Router_Route; + zephir_declare_class_constant_string(phalcon_cli_router_route_ce, SL("DEFAULT_DELIMITER"), " "); + + zend_class_implements(phalcon_cli_router_route_ce, 1, phalcon_cli_router_routeinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Cli_Router_Route, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long position, ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, *position_param = NULL, __$null, _0, _1; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, routeId, uniqueId, _0, _1; zval pattern; zval *this_ptr = getThis(); ZVAL_UNDEF(&pattern); ZVAL_UNDEF(&paths_sub); ZVAL_NULL(&__$null); + ZVAL_UNDEF(&routeId); + ZVAL_UNDEF(&uniqueId); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) + ZEND_PARSE_PARAMETERS_START(1, 2) Z_PARAM_STR(pattern) Z_PARAM_OPTIONAL Z_PARAM_ZVAL_OR_NULL(paths) - Z_PARAM_LONG(position) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &position_param); + zephir_fetch_params(1, 1, 1, &pattern_param, &paths); if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); RETURN_MM_NULL(); @@ -131901,47 +117268,86 @@ static PHP_METHOD(Phalcon_Mvc_Router, addPatch) paths = &paths_sub; paths = &__$null; } - if (!position_param) { - position = 1; - } else { - position = zephir_get_intval(position_param); - } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "PATCH"); - ZVAL_LONG(&_1, position); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &pattern, paths, &_0, &_1); + ZEPHIR_OBS_VAR(&_0); + zephir_read_static_property_ce(&_0, phalcon_cli_router_route_ce, SL("delimiterPath"), PH_NOISY_CC); + zephir_update_property_zval(this_ptr, ZEND_STRL("delimiter"), &_0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "reconfigure", NULL, 0, &pattern, paths); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_OBS_VAR(&_1); + zephir_read_static_property_ce(&_1, phalcon_cli_router_route_ce, SL("uniqueId"), PH_NOISY_CC); + ZEPHIR_CPY_WRT(&uniqueId, &_1); + ZEPHIR_CPY_WRT(&routeId, &uniqueId); + zephir_update_property_zval(this_ptr, ZEND_STRL("id"), &routeId); + ZEPHIR_INIT_ZVAL_NREF(_1); + ZVAL_LONG(&_1, (zephir_get_numberval(&uniqueId) + 1)); + zephir_update_static_property_ce(phalcon_cli_router_route_ce, ZEND_STRL("uniqueId"), &_1); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Router, addPost) +static PHP_METHOD(Phalcon_Cli_Router_Route, beforeMatch) +{ + zval *callback, callback_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&callback_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(callback) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &callback); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("beforeMatch"), callback); + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Cli_Router_Route, compilePattern) { + zend_bool _20; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long position, ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, *position_param = NULL, __$null, _0, _1; + zval *pattern_param = NULL, idPattern, part, _0$$3, _4$$3, _6$$3, _8$$3, _10$$3, _12$$3, _16$$3, _1$$4, _2$$4, _3$$4, _5$$5, _7$$6, _9$$7, _11$$8, _13$$9, _14$$9, _15$$9, _17$$10, _18$$10, _19$$10; zval pattern; zval *this_ptr = getThis(); ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&idPattern); + ZVAL_UNDEF(&part); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_8$$3); + ZVAL_UNDEF(&_10$$3); + ZVAL_UNDEF(&_12$$3); + ZVAL_UNDEF(&_16$$3); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_9$$7); + ZVAL_UNDEF(&_11$$8); + ZVAL_UNDEF(&_13$$9); + ZVAL_UNDEF(&_14$$9); + ZVAL_UNDEF(&_15$$9); + ZVAL_UNDEF(&_17$$10); + ZVAL_UNDEF(&_18$$10); + ZVAL_UNDEF(&_19$$10); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) + ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_STR(pattern) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) - Z_PARAM_LONG(position) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &position_param); + zephir_fetch_params(1, 1, 0, &pattern_param); if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); RETURN_MM_NULL(); @@ -131951,159 +117357,203 @@ static PHP_METHOD(Phalcon_Mvc_Router, addPost) } else { ZEPHIR_INIT_VAR(&pattern); } - if (!paths) { - paths = &paths_sub; - paths = &__$null; - } - if (!position_param) { - position = 1; - } else { - position = zephir_get_intval(position_param); - } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "POST"); - ZVAL_LONG(&_1, position); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &pattern, paths, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); + if (zephir_memnstr_str(&pattern, SL(":"), "phalcon/Cli/Router/Route.zep", 120)) { + zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&idPattern); + ZEPHIR_CONCAT_VS(&idPattern, &_0$$3, "([a-zA-Z0-9\\_\\-]+)"); + if (zephir_memnstr_str(&pattern, SL(":delimiter"), "phalcon/Cli/Router/Route.zep", 126)) { + ZEPHIR_INIT_VAR(&_1$$4); + zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_3$$4); + ZVAL_STRING(&_3$$4, ":delimiter"); + zephir_fast_str_replace(&_1$$4, &_3$$4, &_2$$4, &pattern); + zephir_get_strval(&pattern, &_1$$4); + } + zephir_read_property(&_4$$3, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&part); + ZEPHIR_CONCAT_VS(&part, &_4$$3, ":module"); + if (zephir_memnstr(&pattern, &part, "phalcon/Cli/Router/Route.zep", 136)) { + ZEPHIR_INIT_VAR(&_5$$5); + zephir_fast_str_replace(&_5$$5, &part, &idPattern, &pattern); + zephir_get_strval(&pattern, &_5$$5); + } + zephir_read_property(&_6$$3, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&part); + ZEPHIR_CONCAT_VS(&part, &_6$$3, ":task"); + if (zephir_memnstr(&pattern, &part, "phalcon/Cli/Router/Route.zep", 142)) { + ZEPHIR_INIT_VAR(&_7$$6); + zephir_fast_str_replace(&_7$$6, &part, &idPattern, &pattern); + zephir_get_strval(&pattern, &_7$$6); + } + zephir_read_property(&_8$$3, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&part); + ZEPHIR_CONCAT_VS(&part, &_8$$3, ":namespace"); + if (zephir_memnstr(&pattern, &part, "phalcon/Cli/Router/Route.zep", 148)) { + ZEPHIR_INIT_VAR(&_9$$7); + zephir_fast_str_replace(&_9$$7, &part, &idPattern, &pattern); + zephir_get_strval(&pattern, &_9$$7); + } + zephir_read_property(&_10$$3, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&part); + ZEPHIR_CONCAT_VS(&part, &_10$$3, ":action"); + if (zephir_memnstr(&pattern, &part, "phalcon/Cli/Router/Route.zep", 154)) { + ZEPHIR_INIT_VAR(&_11$$8); + zephir_fast_str_replace(&_11$$8, &part, &idPattern, &pattern); + zephir_get_strval(&pattern, &_11$$8); + } + zephir_read_property(&_12$$3, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&part); + ZEPHIR_CONCAT_VS(&part, &_12$$3, ":params"); + if (zephir_memnstr(&pattern, &part, "phalcon/Cli/Router/Route.zep", 160)) { + ZEPHIR_INIT_VAR(&_13$$9); + zephir_read_property(&_14$$9, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_15$$9); + ZEPHIR_CONCAT_SVS(&_15$$9, "(", &_14$$9, ".*)*"); + zephir_fast_str_replace(&_13$$9, &part, &_15$$9, &pattern); + zephir_get_strval(&pattern, &_13$$9); + } + zephir_read_property(&_16$$3, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&part); + ZEPHIR_CONCAT_VS(&part, &_16$$3, ":int"); + if (zephir_memnstr(&pattern, &part, "phalcon/Cli/Router/Route.zep", 170)) { + ZEPHIR_INIT_VAR(&_17$$10); + zephir_read_property(&_18$$10, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_19$$10); + ZEPHIR_CONCAT_VS(&_19$$10, &_18$$10, "([0-9]+)"); + zephir_fast_str_replace(&_17$$10, &part, &_19$$10, &pattern); + zephir_get_strval(&pattern, &_17$$10); + } + } + _20 = zephir_memnstr_str(&pattern, SL("("), "phalcon/Cli/Router/Route.zep", 183); + if (!(_20)) { + _20 = zephir_memnstr_str(&pattern, SL("["), "phalcon/Cli/Router/Route.zep", 183); + } + if (_20) { + ZEPHIR_CONCAT_SVS(return_value, "#^", &pattern, "$#"); + RETURN_MM(); + } + RETURN_CTOR(&pattern); } -static PHP_METHOD(Phalcon_Mvc_Router, addPurge) +static PHP_METHOD(Phalcon_Cli_Router_Route, convert) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long position, ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, *position_param = NULL, __$null, _0, _1; - zval pattern; + zval *name_param = NULL, *converter, converter_sub; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&converter_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(pattern) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) - Z_PARAM_LONG(position) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(name) + Z_PARAM_ZVAL(converter) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &position_param); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + zephir_fetch_params(1, 2, 0, &name_param, &converter); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); - } else { - ZEPHIR_INIT_VAR(&pattern); - } - if (!paths) { - paths = &paths_sub; - paths = &__$null; - } - if (!position_param) { - position = 1; + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); } else { - position = zephir_get_intval(position_param); + ZEPHIR_INIT_VAR(&name); } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "PURGE"); - ZVAL_LONG(&_1, position); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &pattern, paths, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_array(this_ptr, SL("converters"), &name, converter); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Router, addPut) +static PHP_METHOD(Phalcon_Cli_Router_Route, delimiter) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long position, ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, *position_param = NULL, __$null, _0, _1; - zval pattern; + zval *delimiter_param = NULL; + zval delimiter; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&delimiter); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(pattern) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) - Z_PARAM_LONG(position) + Z_PARAM_STR_OR_NULL(delimiter) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &position_param); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + zephir_fetch_params(1, 0, 1, &delimiter_param); + if (!delimiter_param) { + ZEPHIR_INIT_VAR(&delimiter); + } else { + if (UNEXPECTED(Z_TYPE_P(delimiter_param) != IS_STRING && Z_TYPE_P(delimiter_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'delimiter' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); + if (EXPECTED(Z_TYPE_P(delimiter_param) == IS_STRING)) { + zephir_get_strval(&delimiter, delimiter_param); } else { - ZEPHIR_INIT_VAR(&pattern); - } - if (!paths) { - paths = &paths_sub; - paths = &__$null; + ZEPHIR_INIT_VAR(&delimiter); } - if (!position_param) { - position = 1; - } else { - position = zephir_get_intval(position_param); } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "PUT"); - ZVAL_LONG(&_1, position); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &pattern, paths, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); + zephir_update_static_property_ce(phalcon_cli_router_route_ce, ZEND_STRL("delimiterPath"), &delimiter); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Router, addTrace) +static PHP_METHOD(Phalcon_Cli_Router_Route, extractNamedParams) { + long _0, _5$$10, _26$$18; + zend_long cursor = 0, cursorVar = 0, marker = 0, bracketCount, parenthesesCount, foundPattern, intermediate, numberMatches; + zend_bool notValid = 0, _6$$11, _7$$11, _8$$11, _9$$11, _10$$11, _11$$11, _12$$11, _13$$11, _14$$11, _15$$11, _16$$11, _17$$11, _25$$17; + zval matches; + char ch = 0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long position, ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, *position_param = NULL, __$null, _0, _1; - zval pattern; + zval *pattern_param = NULL, tmp, _1$$10, _2$$10, _3$$10, _18$$15, _19$$15, _20$$15, _22$$15, _23$$15, _28$$27, _29$$27; + zval pattern, route, item, variable, regexp, _4$$10, _21$$15, _24$$15, _27$$25, _30$$28; zval *this_ptr = getThis(); ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&route); + ZVAL_UNDEF(&item); + ZVAL_UNDEF(&variable); + ZVAL_UNDEF(®exp); + ZVAL_UNDEF(&_4$$10); + ZVAL_UNDEF(&_21$$15); + ZVAL_UNDEF(&_24$$15); + ZVAL_UNDEF(&_27$$25); + ZVAL_UNDEF(&_30$$28); + ZVAL_UNDEF(&tmp); + ZVAL_UNDEF(&_1$$10); + ZVAL_UNDEF(&_2$$10); + ZVAL_UNDEF(&_3$$10); + ZVAL_UNDEF(&_18$$15); + ZVAL_UNDEF(&_19$$15); + ZVAL_UNDEF(&_20$$15); + ZVAL_UNDEF(&_22$$15); + ZVAL_UNDEF(&_23$$15); + ZVAL_UNDEF(&_28$$27); + ZVAL_UNDEF(&_29$$27); + ZVAL_UNDEF(&matches); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) + ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_STR(pattern) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) - Z_PARAM_LONG(position) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &position_param); + zephir_fetch_params(1, 1, 0, &pattern_param); if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); RETURN_MM_NULL(); @@ -132113,271 +117563,517 @@ static PHP_METHOD(Phalcon_Mvc_Router, addTrace) } else { ZEPHIR_INIT_VAR(&pattern); } - if (!paths) { - paths = &paths_sub; - paths = &__$null; - } - if (!position_param) { - position = 1; - } else { - position = zephir_get_intval(position_param); - } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "TRACE"); - ZVAL_LONG(&_1, position); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "add", NULL, 0, &pattern, paths, &_0, &_1); - zephir_check_call_status(); + bracketCount = 0; + parenthesesCount = 0; + foundPattern = 0; + intermediate = 0; + numberMatches = 0; + if (zephir_fast_strlen_ev(&pattern) == 0) { + RETURN_MM_BOOL(0); + } + ZEPHIR_INIT_VAR(&matches); + array_init(&matches); + ZEPHIR_INIT_VAR(&route); + for (_0 = 0; _0 < Z_STRLEN_P(&pattern); _0++) { + cursor = _0; + ch = ZEPHIR_STRING_OFFSET(&pattern, _0); + if (parenthesesCount == 0) { + if (ch == '{') { + if (bracketCount == 0) { + marker = (cursor + 1); + intermediate = 0; + notValid = 0; + } + bracketCount++; + } else if (ch == '}') { + bracketCount--; + if (intermediate > 0) { + if (bracketCount == 0) { + numberMatches++; + ZEPHIR_INIT_NVAR(&variable); + ZEPHIR_INIT_NVAR(®exp); + ZVAL_LONG(&_1$$10, marker); + ZVAL_LONG(&_2$$10, (cursor - marker)); + ZEPHIR_INIT_NVAR(&_3$$10); + zephir_substr(&_3$$10, &pattern, zephir_get_intval(&_1$$10), zephir_get_intval(&_2$$10), 0); + zephir_cast_to_string(&_4$$10, &_3$$10); + ZEPHIR_CPY_WRT(&item, &_4$$10); + for (_5$$10 = 0; _5$$10 < Z_STRLEN_P(&item); _5$$10++) { + cursorVar = _5$$10; + ch = ZEPHIR_STRING_OFFSET(&item, _5$$10); + if (ch == '\0') { + break; + } + _6$$11 = cursorVar == 0; + if (_6$$11) { + _7$$11 = ch >= 'a'; + if (_7$$11) { + _7$$11 = ch <= 'z'; + } + _8$$11 = _7$$11; + if (!(_8$$11)) { + _9$$11 = ch >= 'A'; + if (_9$$11) { + _9$$11 = ch <= 'Z'; + } + _8$$11 = _9$$11; + } + _6$$11 = !(_8$$11); + } + if (_6$$11) { + notValid = 1; + break; + } + _10$$11 = ch >= 'a'; + if (_10$$11) { + _10$$11 = ch <= 'z'; + } + _11$$11 = _10$$11; + if (!(_11$$11)) { + _12$$11 = ch >= 'A'; + if (_12$$11) { + _12$$11 = ch <= 'Z'; + } + _11$$11 = _12$$11; + } + _13$$11 = _11$$11; + if (!(_13$$11)) { + _14$$11 = ch >= '0'; + if (_14$$11) { + _14$$11 = ch <= '9'; + } + _13$$11 = _14$$11; + } + _15$$11 = _13$$11; + if (!(_15$$11)) { + _15$$11 = ch == '-'; + } + _16$$11 = _15$$11; + if (!(_16$$11)) { + _16$$11 = ch == '_'; + } + _17$$11 = _16$$11; + if (!(_17$$11)) { + _17$$11 = ch == ':'; + } + if (_17$$11) { + if (ch == ':') { + ZVAL_LONG(&_18$$15, 0); + ZVAL_LONG(&_19$$15, cursorVar); + ZEPHIR_INIT_NVAR(&_20$$15); + zephir_substr(&_20$$15, &item, 0 , zephir_get_intval(&_19$$15), 0); + zephir_cast_to_string(&_21$$15, &_20$$15); + ZEPHIR_CPY_WRT(&variable, &_21$$15); + ZVAL_LONG(&_22$$15, (cursorVar + 1)); + ZEPHIR_INIT_NVAR(&_23$$15); + zephir_substr(&_23$$15, &item, zephir_get_intval(&_22$$15), 0, ZEPHIR_SUBSTR_NO_LENGTH); + zephir_cast_to_string(&_24$$15, &_23$$15); + ZEPHIR_CPY_WRT(®exp, &_24$$15); + break; + } + } else { + notValid = 1; + break; + } + } + if (!(notValid)) { + ZEPHIR_INIT_NVAR(&tmp); + ZVAL_LONG(&tmp, numberMatches); + _25$$17 = zephir_is_true(&variable); + if (_25$$17) { + _25$$17 = zephir_is_true(®exp); + } + if (_25$$17) { + foundPattern = 0; + for (_26$$18 = 0; _26$$18 < Z_STRLEN_P(®exp); _26$$18++) { + ch = ZEPHIR_STRING_OFFSET(®exp, _26$$18); + if (ch == '\0') { + break; + } + if (!(foundPattern)) { + if (ch == '(') { + foundPattern = 1; + } + } else { + if (ch == ')') { + foundPattern = 2; + break; + } + } + } + if (foundPattern != 2) { + ZEPHIR_INIT_NVAR(&_27$$25); + ZEPHIR_CONCAT_SVS(&_27$$25, "(", ®exp, ")"); + zephir_concat_self(&route, &_27$$25); + } else { + zephir_concat_self(&route, ®exp); + } + zephir_array_update_zval(&matches, &variable, &tmp, PH_COPY | PH_SEPARATE); + } else { + zephir_read_property(&_28$$27, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_29$$27); + ZEPHIR_CONCAT_SVS(&_29$$27, "([^", &_28$$27, "]*)"); + zephir_concat_self(&route, &_29$$27); + zephir_array_update_zval(&matches, &item, &tmp, PH_COPY | PH_SEPARATE); + } + } else { + ZEPHIR_INIT_NVAR(&_30$$28); + ZEPHIR_CONCAT_SVS(&_30$$28, "{", &item, "}"); + zephir_concat_self(&route, &_30$$28); + } + continue; + } + } + } + } + if (bracketCount == 0) { + if (ch == '(') { + parenthesesCount++; + } else if (ch == ')') { + parenthesesCount--; + if (parenthesesCount == 0) { + numberMatches++; + } + } + } + if (bracketCount > 0) { + intermediate++; + } else { + zephir_concat_self_char(&route, ch); + } + } + zephir_create_array(return_value, 2, 0); + zephir_array_fast_append(return_value, &route); + zephir_array_fast_append(return_value, &matches); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Router, attach) +static PHP_METHOD(Phalcon_Cli_Router_Route, getBeforeMatch) { - zval _1$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long position; - zval *route, route_sub, *position_param = NULL, _0$$4, _2$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&route_sub); - ZVAL_UNDEF(&_0$$4); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_1$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_OBJECT_OF_CLASS(route, phalcon_mvc_router_routeinterface_ce) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(position) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &route, &position_param); - if (!position_param) { - position = 1; - } else { - position = zephir_get_intval(position_param); - } - - do { - if (position == 1) { - zephir_update_property_array_append(this_ptr, SL("routes"), route); - break; - } - if (position == 0) { - ZEPHIR_INIT_VAR(&_0$$4); - ZEPHIR_INIT_VAR(&_1$$4); - zephir_create_array(&_1$$4, 1, 0); - zephir_array_fast_append(&_1$$4, route); - zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); - zephir_fast_array_merge(&_0$$4, &_1$$4, &_2$$4); - zephir_update_property_zval(this_ptr, ZEND_STRL("routes"), &_0$$4); - break; - } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_router_exception_ce, "Invalid route position", "phalcon/Mvc/Router.zep", 459); - return; - } while(0); - RETURN_THIS(); + RETURN_MEMBER(getThis(), "beforeMatch"); } -static PHP_METHOD(Phalcon_Mvc_Router, clear) +static PHP_METHOD(Phalcon_Cli_Router_Route, getCompiledPattern) { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - - ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(&_0); - array_init(&_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("routes"), &_0); - ZEPHIR_MM_RESTORE(); + RETURN_MEMBER(getThis(), "compiledPattern"); } -static PHP_METHOD(Phalcon_Mvc_Router, getEventsManager) +static PHP_METHOD(Phalcon_Cli_Router_Route, getConverters) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "eventsManager"); + RETURN_MEMBER(getThis(), "converters"); } -static PHP_METHOD(Phalcon_Mvc_Router, getActionName) +static PHP_METHOD(Phalcon_Cli_Router_Route, getDelimiter) { + zval _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + - RETURN_MEMBER(getThis(), "action"); + zephir_read_static_property_ce(&_0, phalcon_cli_router_route_ce, SL("delimiterPath"), PH_NOISY_CC | PH_READONLY); + RETURN_CTORW(&_0); } -static PHP_METHOD(Phalcon_Mvc_Router, getControllerName) +static PHP_METHOD(Phalcon_Cli_Router_Route, getDescription) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "controller"); + RETURN_MEMBER(getThis(), "description"); } -static PHP_METHOD(Phalcon_Mvc_Router, getMatchedRoute) +static PHP_METHOD(Phalcon_Cli_Router_Route, getName) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "matchedRoute"); + RETURN_MEMBER(getThis(), "name"); } -static PHP_METHOD(Phalcon_Mvc_Router, getMatches) +static PHP_METHOD(Phalcon_Cli_Router_Route, getPaths) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "matches"); + RETURN_MEMBER(getThis(), "paths"); } -static PHP_METHOD(Phalcon_Mvc_Router, getModuleName) +static PHP_METHOD(Phalcon_Cli_Router_Route, getPattern) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "module"); + RETURN_MEMBER(getThis(), "pattern"); } -static PHP_METHOD(Phalcon_Mvc_Router, getNamespaceName) +static PHP_METHOD(Phalcon_Cli_Router_Route, getReversedPaths) { + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + + ZEPHIR_MM_GROW(); - RETURN_MEMBER(getThis(), "namespaceName"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("paths"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_FUNCTION("array_flip", NULL, 174, &_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Router, getParams) +static PHP_METHOD(Phalcon_Cli_Router_Route, getRouteId) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "params"); + RETURN_MEMBER(getThis(), "id"); } -static PHP_METHOD(Phalcon_Mvc_Router, getRouteById) +static PHP_METHOD(Phalcon_Cli_Router_Route, reConfigure) { - zend_string *_7; - zend_ulong _6; + zend_bool _1$$10; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *id, id_sub, route, routeId, key, _0, _3, *_4, _5, _1$$3, _2$$3; + zend_long ZEPHIR_LAST_CALL_STATUS, _0$$4; + zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, moduleName, taskName, actionName, parts, routePaths, realClassName, namespaceName, pcrePattern, compiledPattern, extracted, _2$$9, _3$$18, _4$$18, _5$$21, _6$$21, _7$$21; + zval pattern; zval *this_ptr = getThis(); - ZVAL_UNDEF(&id_sub); - ZVAL_UNDEF(&route); - ZVAL_UNDEF(&routeId); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&paths_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&moduleName); + ZVAL_UNDEF(&taskName); + ZVAL_UNDEF(&actionName); + ZVAL_UNDEF(&parts); + ZVAL_UNDEF(&routePaths); + ZVAL_UNDEF(&realClassName); + ZVAL_UNDEF(&namespaceName); + ZVAL_UNDEF(&pcrePattern); + ZVAL_UNDEF(&compiledPattern); + ZVAL_UNDEF(&extracted); + ZVAL_UNDEF(&_2$$9); + ZVAL_UNDEF(&_3$$18); + ZVAL_UNDEF(&_4$$18); + ZVAL_UNDEF(&_5$$21); + ZVAL_UNDEF(&_6$$21); + ZVAL_UNDEF(&_7$$21); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(id) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(pattern) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(paths) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &id); + zephir_fetch_params(1, 1, 1, &pattern_param, &paths); + if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { + zephir_get_strval(&pattern, pattern_param); + } else { + ZEPHIR_INIT_VAR(&pattern); + } + if (!paths) { + paths = &paths_sub; + ZEPHIR_CPY_WRT(paths, &__$null); + } else { + ZEPHIR_SEPARATE_PARAM(paths); + } - ZEPHIR_OBS_VAR(&key); - zephir_read_property(&_0, this_ptr, ZEND_STRL("keyRouteIds"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&key, &_0, id, 0)) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_2$$3, &_1$$3, &key, PH_NOISY | PH_READONLY, "phalcon/Mvc/Router.zep", 549); - RETURN_CTOR(&_2$$3); + if (Z_TYPE_P(paths) == IS_NULL) { + ZEPHIR_INIT_NVAR(paths); + array_init(paths); } - zephir_read_property(&_3, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); - zephir_is_iterable(&_3, 0, "phalcon/Mvc/Router.zep", 561); - if (Z_TYPE_P(&_3) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_3), _6, _7, _4) - { - ZEPHIR_INIT_NVAR(&key); - if (_7 != NULL) { - ZVAL_STR_COPY(&key, _7); - } else { - ZVAL_LONG(&key, _6); + if (Z_TYPE_P(paths) == IS_STRING) { + ZEPHIR_INIT_VAR(&moduleName); + ZVAL_NULL(&moduleName); + ZEPHIR_INIT_VAR(&taskName); + ZVAL_NULL(&taskName); + ZEPHIR_INIT_VAR(&actionName); + ZVAL_NULL(&actionName); + ZEPHIR_INIT_VAR(&parts); + zephir_fast_explode_str(&parts, SL("::"), paths, LONG_MAX); + do { + _0$$4 = zephir_fast_count_int(&parts); + if (_0$$4 == 3) { + ZEPHIR_OBS_NVAR(&moduleName); + zephir_array_fetch_long(&moduleName, &parts, 0, PH_NOISY, "phalcon/Cli/Router/Route.zep", 454); + ZEPHIR_OBS_NVAR(&taskName); + zephir_array_fetch_long(&taskName, &parts, 1, PH_NOISY, "phalcon/Cli/Router/Route.zep", 455); + ZEPHIR_OBS_NVAR(&actionName); + zephir_array_fetch_long(&actionName, &parts, 2, PH_NOISY, "phalcon/Cli/Router/Route.zep", 456); + break; } - ZEPHIR_INIT_NVAR(&route); - ZVAL_COPY(&route, _4); - ZEPHIR_CALL_METHOD(&routeId, &route, "getrouteid", NULL, 0); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("keyRouteIds"), &routeId, &key); - if (ZEPHIR_IS_EQUAL(&routeId, id)) { - RETURN_CCTOR(&route); + if (_0$$4 == 2) { + ZEPHIR_OBS_NVAR(&taskName); + zephir_array_fetch_long(&taskName, &parts, 0, PH_NOISY, "phalcon/Cli/Router/Route.zep", 460); + ZEPHIR_OBS_NVAR(&actionName); + zephir_array_fetch_long(&actionName, &parts, 1, PH_NOISY, "phalcon/Cli/Router/Route.zep", 461); + break; } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_3, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5, &_3, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5)) { + if (_0$$4 == 1) { + ZEPHIR_OBS_NVAR(&taskName); + zephir_array_fetch_long(&taskName, &parts, 0, PH_NOISY, "phalcon/Cli/Router/Route.zep", 465); break; } - ZEPHIR_CALL_METHOD(&key, &_3, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&route, &_3, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&routeId, &route, "getrouteid", NULL, 0); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("keyRouteIds"), &routeId, &key); - if (ZEPHIR_IS_EQUAL(&routeId, id)) { - RETURN_CCTOR(&route); + } while(0); + + ZEPHIR_INIT_VAR(&routePaths); + array_init(&routePaths); + if (Z_TYPE_P(&moduleName) != IS_NULL) { + zephir_array_update_string(&routePaths, SL("module"), &moduleName, PH_COPY | PH_SEPARATE); + } + if (Z_TYPE_P(&taskName) != IS_NULL) { + if (zephir_memnstr_str(&taskName, SL("\\"), "phalcon/Cli/Router/Route.zep", 479)) { + ZEPHIR_INIT_VAR(&realClassName); + zephir_get_class_ns(&realClassName, &taskName, 0); + ZEPHIR_INIT_VAR(&namespaceName); + zephir_get_ns_class(&namespaceName, &taskName, 0); + _1$$10 = Z_TYPE_P(&namespaceName) == IS_NULL; + if (!(_1$$10)) { + _1$$10 = Z_TYPE_P(&realClassName) == IS_NULL; } - ZEPHIR_CALL_METHOD(NULL, &_3, "next", NULL, 0); + if (UNEXPECTED(_1$$10)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_router_exception_ce, "The route contains invalid paths", "phalcon/Cli/Router/Route.zep", 489); + return; + } + if (zephir_is_true(&namespaceName)) { + zephir_array_update_string(&routePaths, SL("namespace"), &namespaceName, PH_COPY | PH_SEPARATE); + } + } else { + ZEPHIR_CPY_WRT(&realClassName, &taskName); + } + ZEPHIR_INIT_VAR(&_2$$9); + zephir_uncamelize(&_2$$9, &realClassName, NULL ); + zephir_array_update_string(&routePaths, SL("task"), &_2$$9, PH_COPY | PH_SEPARATE); + } + if (Z_TYPE_P(&actionName) != IS_NULL) { + zephir_array_update_string(&routePaths, SL("action"), &actionName, PH_COPY | PH_SEPARATE); + } + } else { + ZEPHIR_CPY_WRT(&routePaths, paths); + } + if (UNEXPECTED(Z_TYPE_P(&routePaths) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_cli_router_exception_ce, "The route contains invalid paths", "phalcon/Cli/Router/Route.zep", 513); + return; + } + if (!(zephir_start_with_str(&pattern, SL("#")))) { + if (zephir_memnstr_str(&pattern, SL("{"), "phalcon/Cli/Router/Route.zep", 521)) { + ZEPHIR_CALL_METHOD(&extracted, this_ptr, "extractnamedparams", NULL, 0, &pattern); zephir_check_call_status(); + ZEPHIR_OBS_VAR(&pcrePattern); + zephir_array_fetch_long(&pcrePattern, &extracted, 0, PH_NOISY, "phalcon/Cli/Router/Route.zep", 526); + ZEPHIR_INIT_VAR(&_3$$18); + zephir_array_fetch_long(&_4$$18, &extracted, 1, PH_NOISY | PH_READONLY, "phalcon/Cli/Router/Route.zep", 527); + zephir_fast_array_merge(&_3$$18, &routePaths, &_4$$18); + ZEPHIR_CPY_WRT(&routePaths, &_3$$18); + } else { + ZEPHIR_CPY_WRT(&pcrePattern, &pattern); + } + ZEPHIR_CALL_METHOD(&compiledPattern, this_ptr, "compilepattern", NULL, 0, &pcrePattern); + zephir_check_call_status(); + } else { + if (zephir_memnstr_str(&pattern, SL(":delimiter"), "phalcon/Cli/Router/Route.zep", 538)) { + ZEPHIR_INIT_VAR(&_5$$21); + zephir_read_property(&_6$$21, this_ptr, ZEND_STRL("delimiter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_7$$21); + ZVAL_STRING(&_7$$21, ":delimiter"); + zephir_fast_str_replace(&_5$$21, &_7$$21, &_6$$21, &pattern); + zephir_get_strval(&pattern, &_5$$21); } + ZEPHIR_CPY_WRT(&compiledPattern, &pattern); } - ZEPHIR_INIT_NVAR(&route); - ZEPHIR_INIT_NVAR(&key); - RETURN_MM_BOOL(0); + zephir_update_property_zval(this_ptr, ZEND_STRL("pattern"), &pattern); + zephir_update_property_zval(this_ptr, ZEND_STRL("compiledPattern"), &compiledPattern); + zephir_update_property_zval(this_ptr, ZEND_STRL("paths"), &routePaths); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Router, getRouteByName) +static PHP_METHOD(Phalcon_Cli_Router_Route, reset) +{ + zval _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, 0); + zephir_update_static_property_ce(phalcon_cli_router_route_ce, ZEND_STRL("uniqueId"), &_0); +} + +static PHP_METHOD(Phalcon_Cli_Router_Route, setDescription) { - zend_string *_7; - zend_ulong _6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, route, routeName, key, _0, _3, *_4, _5, _1$$3, _2$$3; + zval *description_param = NULL; + zval description; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&description); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(description) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &description_param); + if (UNEXPECTED(Z_TYPE_P(description_param) != IS_STRING && Z_TYPE_P(description_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'description' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(description_param) == IS_STRING)) { + zephir_get_strval(&description, description_param); + } else { + ZEPHIR_INIT_VAR(&description); + } + + + zephir_update_property_zval(this_ptr, ZEND_STRL("description"), &description); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Cli_Router_Route, setName) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *name_param = NULL; zval name; zval *this_ptr = getThis(); ZVAL_UNDEF(&name); - ZVAL_UNDEF(&route); - ZVAL_UNDEF(&routeName); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) @@ -132399,1699 +118095,1161 @@ static PHP_METHOD(Phalcon_Mvc_Router, getRouteByName) } - ZEPHIR_OBS_VAR(&key); - zephir_read_property(&_0, this_ptr, ZEND_STRL("keyRouteNames"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&key, &_0, &name, 0)) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_2$$3, &_1$$3, &key, PH_NOISY | PH_READONLY, "phalcon/Mvc/Router.zep", 576); - RETURN_CTOR(&_2$$3); - } - zephir_read_property(&_3, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); - zephir_is_iterable(&_3, 0, "phalcon/Mvc/Router.zep", 591); - if (Z_TYPE_P(&_3) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_3), _6, _7, _4) - { - ZEPHIR_INIT_NVAR(&key); - if (_7 != NULL) { - ZVAL_STR_COPY(&key, _7); - } else { - ZVAL_LONG(&key, _6); - } - ZEPHIR_INIT_NVAR(&route); - ZVAL_COPY(&route, _4); - ZEPHIR_CALL_METHOD(&routeName, &route, "getname", NULL, 0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&routeName))) { - zephir_update_property_array(this_ptr, SL("keyRouteNames"), &routeName, &key); - if (ZEPHIR_IS_EQUAL(&routeName, &name)) { - RETURN_CCTOR(&route); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_3, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5, &_3, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5)) { - break; - } - ZEPHIR_CALL_METHOD(&key, &_3, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&route, &_3, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&routeName, &route, "getname", NULL, 0); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&routeName))) { - zephir_update_property_array(this_ptr, SL("keyRouteNames"), &routeName, &key); - if (ZEPHIR_IS_EQUAL(&routeName, &name)) { - RETURN_CCTOR(&route); - } - } - ZEPHIR_CALL_METHOD(NULL, &_3, "next", NULL, 0); - zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); + RETURN_THIS(); +} + +zend_object *zephir_init_properties_Phalcon_Cli_Router_Route(zend_class_entry *class_type) +{ + zval _0, _2, _1$$3, _3$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("paths"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("paths"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("converters"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("converters"), &_3$$4); } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); } - ZEPHIR_INIT_NVAR(&route); - ZEPHIR_INIT_NVAR(&key); - RETURN_MM_BOOL(0); } -static PHP_METHOD(Phalcon_Mvc_Router, getRoutes) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "routes"); +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Cli_Router_RouteInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Cli\\Router, RouteInterface, phalcon, cli_router_routeinterface, phalcon_cli_router_routeinterface_method_entry); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Router, handle) +ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, compilePattern); +ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, delimiter); +ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, getCompiledPattern); +ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, getDelimiter); +ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, getDescription); +ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, getName); +ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, getPaths); +ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, getPattern); +ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, getReversedPaths); +ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, getRouteId); +ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, reConfigure); +ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, reset); +ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, setDescription); +ZEPHIR_DOC_METHOD(Phalcon_Cli_Router_RouteInterface, setName); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Crypt_CryptInterface) { - zend_string *_35$$33, *_75$$82; - zend_ulong _34$$33, _74$$82; - zval _29$$28, _40$$39, _42$$42, _47$$50, _49$$53, _69$$77, _80$$88, _82$$91, _87$$99, _89$$102; - zend_bool _2, _38$$34, _45$$45, _78$$83, _85$$94; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_11 = NULL, *_13 = NULL, *_26 = NULL, *_28 = NULL, *_31 = NULL, *_66 = NULL, *_68 = NULL, *_71 = NULL, *_91 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *uri_param = NULL, __$true, __$false, __$null, request, currentHostName, routeFound, parts, params, matches, notFoundPaths, vnamespace, module, controller, action, paramsStr, strParams, route, methods, container, hostname, regexHostName, matched, pattern, handledUri, beforeMatch, paths, converters, part, position, matchPosition, converter, eventsManager, _0, _1, _4, *_6, _7, _92, _93, _94, _95, _96, _3$$3, _5$$6, _8$$9, _14$$9, _15$$9, _9$$10, _10$$10, _12$$10, _16$$8, _17$$8, _18$$13, _22$$13, _23$$13, _19$$14, _20$$14, _21$$14, _24$$17, _25$$23, _27$$27, _30$$31, *_32$$33, _33$$33, _36$$35, _37$$35, _39$$39, _41$$42, _43$$46, _44$$46, _46$$50, _48$$53, _50$$58, _54$$58, _55$$58, _51$$59, _52$$59, _53$$59, _56$$57, _57$$57, _58$$62, _62$$62, _63$$62, _59$$63, _60$$63, _61$$63, _64$$66, _65$$72, _67$$76, _70$$80, *_72$$82, _73$$82, _76$$84, _77$$84, _79$$88, _81$$91, _83$$95, _84$$95, _86$$99, _88$$102, _90$$107, _97$$115, _98$$117, _99$$119; - zval uri; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Crypt, CryptInterface, phalcon, crypt_cryptinterface, phalcon_crypt_cryptinterface_method_entry); - ZVAL_UNDEF(&uri); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&request); - ZVAL_UNDEF(¤tHostName); - ZVAL_UNDEF(&routeFound); - ZVAL_UNDEF(&parts); - ZVAL_UNDEF(¶ms); - ZVAL_UNDEF(&matches); - ZVAL_UNDEF(¬FoundPaths); - ZVAL_UNDEF(&vnamespace); - ZVAL_UNDEF(&module); - ZVAL_UNDEF(&controller); - ZVAL_UNDEF(&action); - ZVAL_UNDEF(¶msStr); - ZVAL_UNDEF(&strParams); - ZVAL_UNDEF(&route); - ZVAL_UNDEF(&methods); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&hostname); - ZVAL_UNDEF(®exHostName); - ZVAL_UNDEF(&matched); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&handledUri); - ZVAL_UNDEF(&beforeMatch); - ZVAL_UNDEF(&paths); - ZVAL_UNDEF(&converters); - ZVAL_UNDEF(&part); - ZVAL_UNDEF(&position); - ZVAL_UNDEF(&matchPosition); - ZVAL_UNDEF(&converter); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_92); - ZVAL_UNDEF(&_93); - ZVAL_UNDEF(&_94); - ZVAL_UNDEF(&_95); - ZVAL_UNDEF(&_96); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_8$$9); - ZVAL_UNDEF(&_14$$9); - ZVAL_UNDEF(&_15$$9); - ZVAL_UNDEF(&_9$$10); - ZVAL_UNDEF(&_10$$10); - ZVAL_UNDEF(&_12$$10); - ZVAL_UNDEF(&_16$$8); - ZVAL_UNDEF(&_17$$8); - ZVAL_UNDEF(&_18$$13); - ZVAL_UNDEF(&_22$$13); - ZVAL_UNDEF(&_23$$13); - ZVAL_UNDEF(&_19$$14); - ZVAL_UNDEF(&_20$$14); - ZVAL_UNDEF(&_21$$14); - ZVAL_UNDEF(&_24$$17); - ZVAL_UNDEF(&_25$$23); - ZVAL_UNDEF(&_27$$27); - ZVAL_UNDEF(&_30$$31); - ZVAL_UNDEF(&_33$$33); - ZVAL_UNDEF(&_36$$35); - ZVAL_UNDEF(&_37$$35); - ZVAL_UNDEF(&_39$$39); - ZVAL_UNDEF(&_41$$42); - ZVAL_UNDEF(&_43$$46); - ZVAL_UNDEF(&_44$$46); - ZVAL_UNDEF(&_46$$50); - ZVAL_UNDEF(&_48$$53); - ZVAL_UNDEF(&_50$$58); - ZVAL_UNDEF(&_54$$58); - ZVAL_UNDEF(&_55$$58); - ZVAL_UNDEF(&_51$$59); - ZVAL_UNDEF(&_52$$59); - ZVAL_UNDEF(&_53$$59); - ZVAL_UNDEF(&_56$$57); - ZVAL_UNDEF(&_57$$57); - ZVAL_UNDEF(&_58$$62); - ZVAL_UNDEF(&_62$$62); - ZVAL_UNDEF(&_63$$62); - ZVAL_UNDEF(&_59$$63); - ZVAL_UNDEF(&_60$$63); - ZVAL_UNDEF(&_61$$63); - ZVAL_UNDEF(&_64$$66); - ZVAL_UNDEF(&_65$$72); - ZVAL_UNDEF(&_67$$76); - ZVAL_UNDEF(&_70$$80); - ZVAL_UNDEF(&_73$$82); - ZVAL_UNDEF(&_76$$84); - ZVAL_UNDEF(&_77$$84); - ZVAL_UNDEF(&_79$$88); - ZVAL_UNDEF(&_81$$91); - ZVAL_UNDEF(&_83$$95); - ZVAL_UNDEF(&_84$$95); - ZVAL_UNDEF(&_86$$99); - ZVAL_UNDEF(&_88$$102); - ZVAL_UNDEF(&_90$$107); - ZVAL_UNDEF(&_97$$115); - ZVAL_UNDEF(&_98$$117); - ZVAL_UNDEF(&_99$$119); - ZVAL_UNDEF(&_29$$28); - ZVAL_UNDEF(&_40$$39); - ZVAL_UNDEF(&_42$$42); - ZVAL_UNDEF(&_47$$50); - ZVAL_UNDEF(&_49$$53); - ZVAL_UNDEF(&_69$$77); - ZVAL_UNDEF(&_80$$88); - ZVAL_UNDEF(&_82$$91); - ZVAL_UNDEF(&_87$$99); - ZVAL_UNDEF(&_89$$102); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(uri) - ZEND_PARSE_PARAMETERS_END(); + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, decrypt); +ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, decryptBase64); +ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, encrypt); +ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, encryptBase64); +ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, getAvailableCiphers); +ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, getAuthTag); +ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, getAuthData); +ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, getAuthTagLength); +ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, getCipher); +ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, getKey); +ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, setAuthTag); +ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, setAuthData); +ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, setAuthTagLength); +ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, setCipher); +ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, setKey); +ZEPHIR_DOC_METHOD(Phalcon_Crypt_CryptInterface, setPadding); + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &uri_param); - if (UNEXPECTED(Z_TYPE_P(uri_param) != IS_STRING && Z_TYPE_P(uri_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'uri' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(uri_param) == IS_STRING)) { - zephir_get_strval(&uri, uri_param); - } else { - ZEPHIR_INIT_VAR(&uri); - } - ZVAL_LONG(&_0, 5); - ZEPHIR_CALL_FUNCTION(&_1, "parse_url", NULL, 118, &uri, &_0); - zephir_check_call_status(); - zephir_get_strval(&uri, &_1); - zephir_read_property(&_0, this_ptr, ZEND_STRL("removeExtraSlashes"), PH_NOISY_CC | PH_READONLY); - _2 = zephir_is_true(&_0); - if (_2) { - _2 = !ZEPHIR_IS_STRING(&uri, "/"); - } - if (_2) { - ZEPHIR_INIT_VAR(&_3$$3); - ZVAL_STRING(&_3$$3, "/"); - ZEPHIR_INIT_VAR(&handledUri); - zephir_fast_trim(&handledUri, &uri, &_3$$3, ZEPHIR_TRIM_RIGHT); - } else { - ZEPHIR_CPY_WRT(&handledUri, &uri); - } - if (ZEPHIR_IS_EMPTY(&handledUri)) { - ZEPHIR_INIT_NVAR(&handledUri); - ZVAL_STRING(&handledUri, "/"); - } - ZEPHIR_INIT_VAR(&request); - ZVAL_NULL(&request); - ZEPHIR_INIT_VAR(¤tHostName); - ZVAL_NULL(¤tHostName); - ZEPHIR_INIT_VAR(&routeFound); - ZVAL_BOOL(&routeFound, 0); - ZEPHIR_INIT_VAR(&parts); - array_init(&parts); - ZEPHIR_INIT_VAR(¶ms); - array_init(¶ms); - ZEPHIR_INIT_VAR(&matches); - ZVAL_NULL(&matches); - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$false); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("matchedRoute"), &__$null); - zephir_read_property(&_4, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_4); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_5$$6); - ZVAL_STRING(&_5$$6, "router:beforeCheckRoutes"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_5$$6, this_ptr); - zephir_check_call_status(); - } - zephir_read_property(&_4, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); - zephir_is_iterable(&_4, 0, "phalcon/Mvc/Router.zep", 892); - if (Z_TYPE_P(&_4) == IS_ARRAY) { - ZEND_HASH_REVERSE_FOREACH_VAL(Z_ARRVAL_P(&_4), _6) - { - ZEPHIR_INIT_NVAR(&route); - ZVAL_COPY(&route, _6); - ZEPHIR_INIT_NVAR(¶ms); - array_init(¶ms); - ZEPHIR_INIT_NVAR(&matches); - ZVAL_NULL(&matches); - ZEPHIR_CALL_METHOD(&methods, &route, "gethttpmethods", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&methods) != IS_NULL) { - if (Z_TYPE_P(&request) == IS_NULL) { - zephir_read_property(&_8$$9, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_8$$9); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_NVAR(&_9$$10); - object_init_ex(&_9$$10, phalcon_mvc_router_exception_ce); - ZEPHIR_INIT_NVAR(&_12$$10); - ZVAL_STRING(&_12$$10, "the 'request' service"); - ZEPHIR_CALL_CE_STATIC(&_10$$10, phalcon_mvc_router_exception_ce, "containerservicenotfound", &_11, 0, &_12$$10); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_9$$10, "__construct", &_13, 8, &_10$$10); - zephir_check_call_status(); - zephir_throw_exception_debug(&_9$$10, "phalcon/Mvc/Router.zep", 678); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_NVAR(&_15$$9); - ZVAL_STRING(&_15$$9, "request"); - ZEPHIR_CALL_METHOD(&_14$$9, &container, "getshared", NULL, 0, &_15$$9); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&request, &_14$$9); - } - ZVAL_BOOL(&_17$$8, 1); - ZEPHIR_CALL_METHOD(&_16$$8, &request, "ismethod", NULL, 0, &methods, &_17$$8); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_16$$8)) { - continue; - } - } - ZEPHIR_CALL_METHOD(&hostname, &route, "gethostname", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&hostname) != IS_NULL) { - if (Z_TYPE_P(&request) == IS_NULL) { - zephir_read_property(&_18$$13, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_18$$13); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_NVAR(&_19$$14); - object_init_ex(&_19$$14, phalcon_mvc_router_exception_ce); - ZEPHIR_INIT_NVAR(&_21$$14); - ZVAL_STRING(&_21$$14, "the 'request' service"); - ZEPHIR_CALL_CE_STATIC(&_20$$14, phalcon_mvc_router_exception_ce, "containerservicenotfound", &_11, 0, &_21$$14); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_19$$14, "__construct", &_13, 8, &_20$$14); - zephir_check_call_status(); - zephir_throw_exception_debug(&_19$$14, "phalcon/Mvc/Router.zep", 709); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_NVAR(&_23$$13); - ZVAL_STRING(&_23$$13, "request"); - ZEPHIR_CALL_METHOD(&_22$$13, &container, "getshared", NULL, 0, &_23$$13); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&request, &_22$$13); - } - if (Z_TYPE_P(¤tHostName) == IS_NULL) { - ZEPHIR_CALL_METHOD(¤tHostName, &request, "gethttphost", NULL, 0); - zephir_check_call_status(); - } - if (!(zephir_is_true(¤tHostName))) { - continue; - } - if (zephir_memnstr_str(&hostname, SL("("), "phalcon/Mvc/Router.zep", 733)) { - if (!(zephir_memnstr_str(&hostname, SL("#"), "phalcon/Mvc/Router.zep", 734))) { - ZEPHIR_INIT_NVAR(®exHostName); - ZEPHIR_CONCAT_SV(®exHostName, "#^", &hostname); - if (!(zephir_memnstr_str(&hostname, SL(":"), "phalcon/Mvc/Router.zep", 737))) { - zephir_concat_self_str(®exHostName, SL("(:[[:digit:]]+)?")); - } - zephir_concat_self_str(®exHostName, SL("$#i")); - } else { - ZEPHIR_CPY_WRT(®exHostName, &hostname); - } - ZEPHIR_INIT_NVAR(&_24$$17); - ZEPHIR_INIT_NVAR(&matched); - zephir_preg_match(&matched, ®exHostName, ¤tHostName, &_24$$17, 0, 0 , 0 ); - } else { - ZEPHIR_INIT_NVAR(&matched); - ZVAL_BOOL(&matched, ZEPHIR_IS_EQUAL(¤tHostName, &hostname)); - } - if (!(zephir_is_true(&matched))) { - continue; - } - } - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_25$$23); - ZVAL_STRING(&_25$$23, "router:beforeCheckRoute"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_26, 0, &_25$$23, this_ptr, &route); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(&pattern, &route, "getcompiledpattern", NULL, 0); - zephir_check_call_status(); - if (zephir_memnstr_str(&pattern, SL("^"), "phalcon/Mvc/Router.zep", 765)) { - ZEPHIR_INIT_NVAR(&routeFound); - zephir_preg_match(&routeFound, &pattern, &handledUri, &matches, 0, 0 , 0 ); - } else { - ZEPHIR_INIT_NVAR(&routeFound); - ZVAL_BOOL(&routeFound, ZEPHIR_IS_EQUAL(&pattern, &handledUri)); - } - if (zephir_is_true(&routeFound)) { - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_27$$27); - ZVAL_STRING(&_27$$27, "router:matchedRoute"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_28, 0, &_27$$27, this_ptr, &route); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(&beforeMatch, &route, "getbeforematch", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&beforeMatch) != IS_NULL) { - if (UNEXPECTED(!(zephir_is_callable(&beforeMatch)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_router_exception_ce, "Before-Match callback is not callable in matched route", "phalcon/Mvc/Router.zep", 788); - return; - } - ZEPHIR_INIT_NVAR(&_29$$28); - zephir_create_array(&_29$$28, 3, 0); - zephir_array_fast_append(&_29$$28, &handledUri); - zephir_array_fast_append(&_29$$28, &route); - zephir_array_fast_append(&_29$$28, this_ptr); - ZEPHIR_INIT_NVAR(&routeFound); - ZEPHIR_CALL_USER_FUNC_ARRAY(&routeFound, &beforeMatch, &_29$$28); - zephir_check_call_status(); - } - } else { - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_30$$31); - ZVAL_STRING(&_30$$31, "router:notMatchedRoute"); - ZEPHIR_CALL_METHOD(&routeFound, &eventsManager, "fire", &_31, 0, &_30$$31, this_ptr, &route); - zephir_check_call_status(); - } - } - if (zephir_is_true(&routeFound)) { - ZEPHIR_CALL_METHOD(&paths, &route, "getpaths", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&parts, &paths); - if (Z_TYPE_P(&matches) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&converters, &route, "getconverters", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&paths, 0, "phalcon/Mvc/Router.zep", 880); - if (Z_TYPE_P(&paths) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&paths), _34$$33, _35$$33, _32$$33) - { - ZEPHIR_INIT_NVAR(&part); - if (_35$$33 != NULL) { - ZVAL_STR_COPY(&part, _35$$33); - } else { - ZVAL_LONG(&part, _34$$33); - } - ZEPHIR_INIT_NVAR(&position); - ZVAL_COPY(&position, _32$$33); - if (UNEXPECTED(Z_TYPE_P(&part) != IS_STRING)) { - ZEPHIR_INIT_NVAR(&_36$$35); - object_init_ex(&_36$$35, phalcon_mvc_router_exception_ce); - ZEPHIR_INIT_NVAR(&_37$$35); - ZEPHIR_CONCAT_SV(&_37$$35, "Wrong key in paths: ", &part); - ZEPHIR_CALL_METHOD(NULL, &_36$$35, "__construct", &_13, 8, &_37$$35); - zephir_check_call_status(); - zephir_throw_exception_debug(&_36$$35, "phalcon/Mvc/Router.zep", 828); - ZEPHIR_MM_RESTORE(); - return; - } - _38$$34 = Z_TYPE_P(&position) != IS_STRING; - if (_38$$34) { - _38$$34 = Z_TYPE_P(&position) != IS_LONG; - } - if (_38$$34) { - continue; - } - ZEPHIR_OBS_NVAR(&matchPosition); - if (zephir_array_isset_fetch(&matchPosition, &matches, &position, 0)) { - if (Z_TYPE_P(&converters) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&converter); - if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { - ZEPHIR_INIT_NVAR(&_39$$39); - ZEPHIR_INIT_NVAR(&_40$$39); - zephir_create_array(&_40$$39, 1, 0); - zephir_array_fast_append(&_40$$39, &matchPosition); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_39$$39, &converter, &_40$$39); - zephir_check_call_status(); - zephir_array_update_zval(&parts, &part, &_39$$39, PH_COPY | PH_SEPARATE); - continue; - } - } - zephir_array_update_zval(&parts, &part, &matchPosition, PH_COPY | PH_SEPARATE); - } else { - if (Z_TYPE_P(&converters) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&converter); - if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { - ZEPHIR_INIT_NVAR(&_41$$42); - ZEPHIR_INIT_NVAR(&_42$$42); - zephir_create_array(&_42$$42, 1, 0); - zephir_array_fast_append(&_42$$42, &position); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_41$$42, &converter, &_42$$42); - zephir_check_call_status(); - zephir_array_update_zval(&parts, &part, &_41$$42, PH_COPY | PH_SEPARATE); - } - } else { - if (Z_TYPE_P(&position) == IS_LONG) { - zephir_array_unset(&parts, &part, PH_SEPARATE); - } - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &paths, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_33$$33, &paths, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_33$$33)) { - break; - } - ZEPHIR_CALL_METHOD(&part, &paths, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&position, &paths, "current", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&part) != IS_STRING)) { - ZEPHIR_INIT_NVAR(&_43$$46); - object_init_ex(&_43$$46, phalcon_mvc_router_exception_ce); - ZEPHIR_INIT_NVAR(&_44$$46); - ZEPHIR_CONCAT_SV(&_44$$46, "Wrong key in paths: ", &part); - ZEPHIR_CALL_METHOD(NULL, &_43$$46, "__construct", &_13, 8, &_44$$46); - zephir_check_call_status(); - zephir_throw_exception_debug(&_43$$46, "phalcon/Mvc/Router.zep", 828); - ZEPHIR_MM_RESTORE(); - return; - } - _45$$45 = Z_TYPE_P(&position) != IS_STRING; - if (_45$$45) { - _45$$45 = Z_TYPE_P(&position) != IS_LONG; - } - if (_45$$45) { - continue; - } - ZEPHIR_OBS_NVAR(&matchPosition); - if (zephir_array_isset_fetch(&matchPosition, &matches, &position, 0)) { - if (Z_TYPE_P(&converters) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&converter); - if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { - ZEPHIR_INIT_NVAR(&_46$$50); - ZEPHIR_INIT_NVAR(&_47$$50); - zephir_create_array(&_47$$50, 1, 0); - zephir_array_fast_append(&_47$$50, &matchPosition); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_46$$50, &converter, &_47$$50); - zephir_check_call_status(); - zephir_array_update_zval(&parts, &part, &_46$$50, PH_COPY | PH_SEPARATE); - continue; - } - } - zephir_array_update_zval(&parts, &part, &matchPosition, PH_COPY | PH_SEPARATE); - } else { - if (Z_TYPE_P(&converters) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&converter); - if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { - ZEPHIR_INIT_NVAR(&_48$$53); - ZEPHIR_INIT_NVAR(&_49$$53); - zephir_create_array(&_49$$53, 1, 0); - zephir_array_fast_append(&_49$$53, &position); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_48$$53, &converter, &_49$$53); - zephir_check_call_status(); - zephir_array_update_zval(&parts, &part, &_48$$53, PH_COPY | PH_SEPARATE); - } - } else { - if (Z_TYPE_P(&position) == IS_LONG) { - zephir_array_unset(&parts, &part, PH_SEPARATE); - } - } - } - ZEPHIR_CALL_METHOD(NULL, &paths, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&position); - ZEPHIR_INIT_NVAR(&part); - zephir_update_property_zval(this_ptr, ZEND_STRL("matches"), &matches); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("matchedRoute"), &route); - break; - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_4, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_7, &_4, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_7)) { - break; - } - ZEPHIR_CALL_METHOD(&route, &_4, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(¶ms); - array_init(¶ms); - ZEPHIR_INIT_NVAR(&matches); - ZVAL_NULL(&matches); - ZEPHIR_CALL_METHOD(&methods, &route, "gethttpmethods", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&methods) != IS_NULL) { - if (Z_TYPE_P(&request) == IS_NULL) { - zephir_read_property(&_50$$58, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_50$$58); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_NVAR(&_51$$59); - object_init_ex(&_51$$59, phalcon_mvc_router_exception_ce); - ZEPHIR_INIT_NVAR(&_53$$59); - ZVAL_STRING(&_53$$59, "the 'request' service"); - ZEPHIR_CALL_CE_STATIC(&_52$$59, phalcon_mvc_router_exception_ce, "containerservicenotfound", &_11, 0, &_53$$59); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_51$$59, "__construct", &_13, 8, &_52$$59); - zephir_check_call_status(); - zephir_throw_exception_debug(&_51$$59, "phalcon/Mvc/Router.zep", 678); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_NVAR(&_55$$58); - ZVAL_STRING(&_55$$58, "request"); - ZEPHIR_CALL_METHOD(&_54$$58, &container, "getshared", NULL, 0, &_55$$58); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&request, &_54$$58); - } - ZVAL_BOOL(&_57$$57, 1); - ZEPHIR_CALL_METHOD(&_56$$57, &request, "ismethod", NULL, 0, &methods, &_57$$57); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_56$$57)) { - continue; - } - } - ZEPHIR_CALL_METHOD(&hostname, &route, "gethostname", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&hostname) != IS_NULL) { - if (Z_TYPE_P(&request) == IS_NULL) { - zephir_read_property(&_58$$62, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_58$$62); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_NVAR(&_59$$63); - object_init_ex(&_59$$63, phalcon_mvc_router_exception_ce); - ZEPHIR_INIT_NVAR(&_61$$63); - ZVAL_STRING(&_61$$63, "the 'request' service"); - ZEPHIR_CALL_CE_STATIC(&_60$$63, phalcon_mvc_router_exception_ce, "containerservicenotfound", &_11, 0, &_61$$63); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_59$$63, "__construct", &_13, 8, &_60$$63); - zephir_check_call_status(); - zephir_throw_exception_debug(&_59$$63, "phalcon/Mvc/Router.zep", 709); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_NVAR(&_63$$62); - ZVAL_STRING(&_63$$62, "request"); - ZEPHIR_CALL_METHOD(&_62$$62, &container, "getshared", NULL, 0, &_63$$62); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&request, &_62$$62); - } - if (Z_TYPE_P(¤tHostName) == IS_NULL) { - ZEPHIR_CALL_METHOD(¤tHostName, &request, "gethttphost", NULL, 0); - zephir_check_call_status(); - } - if (!(zephir_is_true(¤tHostName))) { - continue; - } - if (zephir_memnstr_str(&hostname, SL("("), "phalcon/Mvc/Router.zep", 733)) { - if (!(zephir_memnstr_str(&hostname, SL("#"), "phalcon/Mvc/Router.zep", 734))) { - ZEPHIR_INIT_NVAR(®exHostName); - ZEPHIR_CONCAT_SV(®exHostName, "#^", &hostname); - if (!(zephir_memnstr_str(&hostname, SL(":"), "phalcon/Mvc/Router.zep", 737))) { - zephir_concat_self_str(®exHostName, SL("(:[[:digit:]]+)?")); - } - zephir_concat_self_str(®exHostName, SL("$#i")); - } else { - ZEPHIR_CPY_WRT(®exHostName, &hostname); - } - ZEPHIR_INIT_NVAR(&_64$$66); - ZEPHIR_INIT_NVAR(&matched); - zephir_preg_match(&matched, ®exHostName, ¤tHostName, &_64$$66, 0, 0 , 0 ); - } else { - ZEPHIR_INIT_NVAR(&matched); - ZVAL_BOOL(&matched, ZEPHIR_IS_EQUAL(¤tHostName, &hostname)); - } - if (!(zephir_is_true(&matched))) { - continue; - } - } - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_65$$72); - ZVAL_STRING(&_65$$72, "router:beforeCheckRoute"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_66, 0, &_65$$72, this_ptr, &route); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(&pattern, &route, "getcompiledpattern", NULL, 0); - zephir_check_call_status(); - if (zephir_memnstr_str(&pattern, SL("^"), "phalcon/Mvc/Router.zep", 765)) { - ZEPHIR_INIT_NVAR(&routeFound); - zephir_preg_match(&routeFound, &pattern, &handledUri, &matches, 0, 0 , 0 ); - } else { - ZEPHIR_INIT_NVAR(&routeFound); - ZVAL_BOOL(&routeFound, ZEPHIR_IS_EQUAL(&pattern, &handledUri)); - } - if (zephir_is_true(&routeFound)) { - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_67$$76); - ZVAL_STRING(&_67$$76, "router:matchedRoute"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_68, 0, &_67$$76, this_ptr, &route); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(&beforeMatch, &route, "getbeforematch", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&beforeMatch) != IS_NULL) { - if (UNEXPECTED(!(zephir_is_callable(&beforeMatch)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_router_exception_ce, "Before-Match callback is not callable in matched route", "phalcon/Mvc/Router.zep", 788); - return; - } - ZEPHIR_INIT_NVAR(&_69$$77); - zephir_create_array(&_69$$77, 3, 0); - zephir_array_fast_append(&_69$$77, &handledUri); - zephir_array_fast_append(&_69$$77, &route); - zephir_array_fast_append(&_69$$77, this_ptr); - ZEPHIR_INIT_NVAR(&routeFound); - ZEPHIR_CALL_USER_FUNC_ARRAY(&routeFound, &beforeMatch, &_69$$77); - zephir_check_call_status(); - } - } else { - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_70$$80); - ZVAL_STRING(&_70$$80, "router:notMatchedRoute"); - ZEPHIR_CALL_METHOD(&routeFound, &eventsManager, "fire", &_71, 0, &_70$$80, this_ptr, &route); - zephir_check_call_status(); - } - } - if (zephir_is_true(&routeFound)) { - ZEPHIR_CALL_METHOD(&paths, &route, "getpaths", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&parts, &paths); - if (Z_TYPE_P(&matches) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&converters, &route, "getconverters", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&paths, 0, "phalcon/Mvc/Router.zep", 880); - if (Z_TYPE_P(&paths) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&paths), _74$$82, _75$$82, _72$$82) - { - ZEPHIR_INIT_NVAR(&part); - if (_75$$82 != NULL) { - ZVAL_STR_COPY(&part, _75$$82); - } else { - ZVAL_LONG(&part, _74$$82); - } - ZEPHIR_INIT_NVAR(&position); - ZVAL_COPY(&position, _72$$82); - if (UNEXPECTED(Z_TYPE_P(&part) != IS_STRING)) { - ZEPHIR_INIT_NVAR(&_76$$84); - object_init_ex(&_76$$84, phalcon_mvc_router_exception_ce); - ZEPHIR_INIT_NVAR(&_77$$84); - ZEPHIR_CONCAT_SV(&_77$$84, "Wrong key in paths: ", &part); - ZEPHIR_CALL_METHOD(NULL, &_76$$84, "__construct", &_13, 8, &_77$$84); - zephir_check_call_status(); - zephir_throw_exception_debug(&_76$$84, "phalcon/Mvc/Router.zep", 828); - ZEPHIR_MM_RESTORE(); - return; - } - _78$$83 = Z_TYPE_P(&position) != IS_STRING; - if (_78$$83) { - _78$$83 = Z_TYPE_P(&position) != IS_LONG; - } - if (_78$$83) { - continue; - } - ZEPHIR_OBS_NVAR(&matchPosition); - if (zephir_array_isset_fetch(&matchPosition, &matches, &position, 0)) { - if (Z_TYPE_P(&converters) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&converter); - if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { - ZEPHIR_INIT_NVAR(&_79$$88); - ZEPHIR_INIT_NVAR(&_80$$88); - zephir_create_array(&_80$$88, 1, 0); - zephir_array_fast_append(&_80$$88, &matchPosition); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_79$$88, &converter, &_80$$88); - zephir_check_call_status(); - zephir_array_update_zval(&parts, &part, &_79$$88, PH_COPY | PH_SEPARATE); - continue; - } - } - zephir_array_update_zval(&parts, &part, &matchPosition, PH_COPY | PH_SEPARATE); - } else { - if (Z_TYPE_P(&converters) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&converter); - if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { - ZEPHIR_INIT_NVAR(&_81$$91); - ZEPHIR_INIT_NVAR(&_82$$91); - zephir_create_array(&_82$$91, 1, 0); - zephir_array_fast_append(&_82$$91, &position); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_81$$91, &converter, &_82$$91); - zephir_check_call_status(); - zephir_array_update_zval(&parts, &part, &_81$$91, PH_COPY | PH_SEPARATE); - } - } else { - if (Z_TYPE_P(&position) == IS_LONG) { - zephir_array_unset(&parts, &part, PH_SEPARATE); - } - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &paths, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_73$$82, &paths, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_73$$82)) { - break; - } - ZEPHIR_CALL_METHOD(&part, &paths, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&position, &paths, "current", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&part) != IS_STRING)) { - ZEPHIR_INIT_NVAR(&_83$$95); - object_init_ex(&_83$$95, phalcon_mvc_router_exception_ce); - ZEPHIR_INIT_NVAR(&_84$$95); - ZEPHIR_CONCAT_SV(&_84$$95, "Wrong key in paths: ", &part); - ZEPHIR_CALL_METHOD(NULL, &_83$$95, "__construct", &_13, 8, &_84$$95); - zephir_check_call_status(); - zephir_throw_exception_debug(&_83$$95, "phalcon/Mvc/Router.zep", 828); - ZEPHIR_MM_RESTORE(); - return; - } - _85$$94 = Z_TYPE_P(&position) != IS_STRING; - if (_85$$94) { - _85$$94 = Z_TYPE_P(&position) != IS_LONG; - } - if (_85$$94) { - continue; - } - ZEPHIR_OBS_NVAR(&matchPosition); - if (zephir_array_isset_fetch(&matchPosition, &matches, &position, 0)) { - if (Z_TYPE_P(&converters) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&converter); - if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { - ZEPHIR_INIT_NVAR(&_86$$99); - ZEPHIR_INIT_NVAR(&_87$$99); - zephir_create_array(&_87$$99, 1, 0); - zephir_array_fast_append(&_87$$99, &matchPosition); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_86$$99, &converter, &_87$$99); - zephir_check_call_status(); - zephir_array_update_zval(&parts, &part, &_86$$99, PH_COPY | PH_SEPARATE); - continue; - } - } - zephir_array_update_zval(&parts, &part, &matchPosition, PH_COPY | PH_SEPARATE); - } else { - if (Z_TYPE_P(&converters) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&converter); - if (zephir_array_isset_fetch(&converter, &converters, &part, 0)) { - ZEPHIR_INIT_NVAR(&_88$$102); - ZEPHIR_INIT_NVAR(&_89$$102); - zephir_create_array(&_89$$102, 1, 0); - zephir_array_fast_append(&_89$$102, &position); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_88$$102, &converter, &_89$$102); - zephir_check_call_status(); - zephir_array_update_zval(&parts, &part, &_88$$102, PH_COPY | PH_SEPARATE); - } - } else { - if (Z_TYPE_P(&position) == IS_LONG) { - zephir_array_unset(&parts, &part, PH_SEPARATE); - } - } - } - ZEPHIR_CALL_METHOD(NULL, &paths, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&position); - ZEPHIR_INIT_NVAR(&part); - zephir_update_property_zval(this_ptr, ZEND_STRL("matches"), &matches); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("matchedRoute"), &route); - break; - } - ZEPHIR_CALL_METHOD(NULL, &_4, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&route); - if (zephir_is_true(&routeFound)) { - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$false); - } - } else { - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("wasMatched"), &__$false); - } - } - if (!(zephir_is_true(&routeFound))) { - zephir_read_property(&_90$$107, this_ptr, ZEND_STRL("notFoundPaths"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(¬FoundPaths, &_90$$107); - if (Z_TYPE_P(¬FoundPaths) != IS_NULL) { - ZEPHIR_CALL_CE_STATIC(&parts, phalcon_mvc_router_route_ce, "getroutepaths", &_91, 0, ¬FoundPaths); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&routeFound); - ZVAL_BOOL(&routeFound, 1); - } - } - zephir_read_property(&_92, this_ptr, ZEND_STRL("defaultNamespace"), PH_NOISY_CC | PH_READONLY); - zephir_update_property_zval(this_ptr, ZEND_STRL("namespaceName"), &_92); - zephir_read_property(&_93, this_ptr, ZEND_STRL("defaultModule"), PH_NOISY_CC | PH_READONLY); - zephir_update_property_zval(this_ptr, ZEND_STRL("module"), &_93); - zephir_read_property(&_94, this_ptr, ZEND_STRL("defaultController"), PH_NOISY_CC | PH_READONLY); - zephir_update_property_zval(this_ptr, ZEND_STRL("controller"), &_94); - zephir_read_property(&_95, this_ptr, ZEND_STRL("defaultAction"), PH_NOISY_CC | PH_READONLY); - zephir_update_property_zval(this_ptr, ZEND_STRL("action"), &_95); - zephir_read_property(&_96, this_ptr, ZEND_STRL("defaultParams"), PH_NOISY_CC | PH_READONLY); - zephir_update_property_zval(this_ptr, ZEND_STRL("params"), &_96); - if (zephir_is_true(&routeFound)) { - ZEPHIR_OBS_VAR(&vnamespace); - if (zephir_array_isset_string_fetch(&vnamespace, &parts, SL("namespace"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("namespaceName"), &vnamespace); - zephir_array_unset_string(&parts, SL("namespace"), PH_SEPARATE); - } - ZEPHIR_OBS_VAR(&module); - if (zephir_array_isset_string_fetch(&module, &parts, SL("module"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("module"), &module); - zephir_array_unset_string(&parts, SL("module"), PH_SEPARATE); - } - ZEPHIR_OBS_VAR(&controller); - if (zephir_array_isset_string_fetch(&controller, &parts, SL("controller"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("controller"), &controller); - zephir_array_unset_string(&parts, SL("controller"), PH_SEPARATE); - } - ZEPHIR_OBS_VAR(&action); - if (zephir_array_isset_string_fetch(&action, &parts, SL("action"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("action"), &action); - zephir_array_unset_string(&parts, SL("action"), PH_SEPARATE); - } - ZEPHIR_OBS_VAR(¶msStr); - if (zephir_array_isset_string_fetch(¶msStr, &parts, SL("params"), 0)) { - if (Z_TYPE_P(¶msStr) == IS_STRING) { - ZEPHIR_INIT_VAR(&_97$$115); - ZVAL_STRING(&_97$$115, "/"); - ZEPHIR_INIT_VAR(&strParams); - zephir_fast_trim(&strParams, ¶msStr, &_97$$115, ZEPHIR_TRIM_BOTH); - if (!ZEPHIR_IS_STRING_IDENTICAL(&strParams, "")) { - ZEPHIR_INIT_NVAR(¶ms); - zephir_fast_explode_str(¶ms, SL("/"), &strParams, LONG_MAX); - } - } - zephir_array_unset_string(&parts, SL("params"), PH_SEPARATE); - } - if (zephir_fast_count_int(¶ms)) { - ZEPHIR_INIT_VAR(&_98$$117); - zephir_fast_array_merge(&_98$$117, ¶ms, &parts); - zephir_update_property_zval(this_ptr, ZEND_STRL("params"), &_98$$117); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("params"), &parts); - } - } - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_99$$119); - ZVAL_STRING(&_99$$119, "router:afterCheckRoutes"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_99$$119, this_ptr); - zephir_check_call_status(); - } - ZEPHIR_MM_RESTORE(); + +ZEPHIR_INIT_CLASS(Phalcon_Crypt_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Crypt, Exception, phalcon, crypt_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Router, isExactControllerName) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Crypt_Mismatch) { - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Crypt, Mismatch, phalcon, crypt_mismatch, phalcon_crypt_exception_ce, NULL, 0); + return SUCCESS; +} - RETURN_BOOL(1); + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Query_AbstractConditions) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Query, AbstractConditions, phalcon, datamapper_query_abstractconditions, phalcon_datamapper_query_abstractquery_ce, phalcon_datamapper_query_abstractconditions_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Router, mount) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, limit) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *group, group_sub, groupRoutes, beforeMatch, hostname, routes, route, eventsManager, _0, _6, _1$$3, *_2$$5, _3$$5, *_4$$8, _5$$8; + zval *limit_param = NULL, _0, _1; + zend_long limit; zval *this_ptr = getThis(); - ZVAL_UNDEF(&group_sub); - ZVAL_UNDEF(&groupRoutes); - ZVAL_UNDEF(&beforeMatch); - ZVAL_UNDEF(&hostname); - ZVAL_UNDEF(&routes); - ZVAL_UNDEF(&route); - ZVAL_UNDEF(&eventsManager); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_5$$8); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(group, phalcon_mvc_router_groupinterface_ce) + Z_PARAM_LONG(limit) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &group); + zephir_fetch_params(1, 1, 0, &limit_param); + limit = zephir_get_intval(limit_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_0); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "router:beforeMount"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_1$$3, this_ptr, group); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(&groupRoutes, group, "getroutes", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(!(zephir_fast_count_int(&groupRoutes)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_router_exception_ce, "The group of routes does not contain any routes", "phalcon/Mvc/Router.zep", 1013); - return; - } - ZEPHIR_CALL_METHOD(&beforeMatch, group, "getbeforematch", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&beforeMatch) != IS_NULL) { - zephir_is_iterable(&groupRoutes, 0, "phalcon/Mvc/Router.zep", 1025); - if (Z_TYPE_P(&groupRoutes) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&groupRoutes), _2$$5) - { - ZEPHIR_INIT_NVAR(&route); - ZVAL_COPY(&route, _2$$5); - ZEPHIR_CALL_METHOD(NULL, &route, "beforematch", NULL, 0, &beforeMatch); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &groupRoutes, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3$$5, &groupRoutes, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3$$5)) { - break; - } - ZEPHIR_CALL_METHOD(&route, &groupRoutes, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &route, "beforematch", NULL, 0, &beforeMatch); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &groupRoutes, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&route); - } - ZEPHIR_CALL_METHOD(&hostname, group, "gethostname", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&hostname) != IS_NULL) { - zephir_is_iterable(&groupRoutes, 0, "phalcon/Mvc/Router.zep", 1034); - if (Z_TYPE_P(&groupRoutes) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&groupRoutes), _4$$8) - { - ZEPHIR_INIT_NVAR(&route); - ZVAL_COPY(&route, _4$$8); - ZEPHIR_CALL_METHOD(NULL, &route, "sethostname", NULL, 0, &hostname); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &groupRoutes, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5$$8, &groupRoutes, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5$$8)) { - break; - } - ZEPHIR_CALL_METHOD(&route, &groupRoutes, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &route, "sethostname", NULL, 0, &hostname); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &groupRoutes, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&route); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&routes, &_0); - ZEPHIR_INIT_VAR(&_6); - zephir_fast_array_merge(&_6, &routes, &groupRoutes); - zephir_update_property_zval(this_ptr, ZEND_STRL("routes"), &_6); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "LIMIT"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_LONG(&_1, limit); + zephir_update_property_array(this_ptr, SL("store"), &_0, &_1); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Router, notFound) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, offset) { - zend_bool _0; - zval *paths, paths_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *offset_param = NULL, _0, _1; + zend_long offset; zval *this_ptr = getThis(); - ZVAL_UNDEF(&paths_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(paths) + Z_PARAM_LONG(offset) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &paths); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &offset_param); + offset = zephir_get_intval(offset_param); - _0 = Z_TYPE_P(paths) != IS_ARRAY; - if (_0) { - _0 = Z_TYPE_P(paths) != IS_STRING; - } - if (UNEXPECTED(_0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_router_exception_ce, "The not-found paths must be an array or string", "phalcon/Mvc/Router.zep", 1056); - return; - } - zephir_update_property_zval(this_ptr, ZEND_STRL("notFoundPaths"), paths); - RETURN_THISW(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "OFFSET"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_LONG(&_1, offset); + zephir_update_property_array(this_ptr, SL("store"), &_0, &_1); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Router, removeExtraSlashes) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, andWhere) { - zval *remove_param = NULL, __$true, __$false; - zend_bool remove; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _0; + zval condition; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&condition); + ZVAL_UNDEF(&value_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(remove) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(condition) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(value) + Z_PARAM_LONG(type) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &remove_param); - if (UNEXPECTED(Z_TYPE_P(remove_param) != IS_TRUE && Z_TYPE_P(remove_param) != IS_FALSE)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'remove' must be of the type bool")); - RETURN_NULL(); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &condition_param, &value, &type_param); + zephir_get_strval(&condition, condition_param); + if (!value) { + value = &value_sub; + value = &__$null; } - remove = (Z_TYPE_P(remove_param) == IS_TRUE); - - - if (remove) { - zephir_update_property_zval(this_ptr, ZEND_STRL("removeExtraSlashes"), &__$true); + if (!type_param) { + type = -1; } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("removeExtraSlashes"), &__$false); + type = zephir_get_intval(type_param); } - RETURN_THISW(); + + + ZVAL_LONG(&_0, type); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "where", NULL, 0, &condition, value, &_0); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Router, setDefaultAction) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, appendWhere) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *actionName_param = NULL; - zval actionName; + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _0, _1; + zval condition; zval *this_ptr = getThis(); - ZVAL_UNDEF(&actionName); + ZVAL_UNDEF(&condition); + ZVAL_UNDEF(&value_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(actionName) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(condition) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(value) + Z_PARAM_LONG(type) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &actionName_param); - if (UNEXPECTED(Z_TYPE_P(actionName_param) != IS_STRING && Z_TYPE_P(actionName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'actionName' must be of the type string")); - RETURN_MM_NULL(); + zephir_fetch_params(1, 1, 2, &condition_param, &value, &type_param); + zephir_get_strval(&condition, condition_param); + if (!value) { + value = &value_sub; + value = &__$null; } - if (EXPECTED(Z_TYPE_P(actionName_param) == IS_STRING)) { - zephir_get_strval(&actionName, actionName_param); + if (!type_param) { + type = -1; } else { - ZEPHIR_INIT_VAR(&actionName); + type = zephir_get_intval(type_param); } - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultAction"), &actionName); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "WHERE"); + ZVAL_LONG(&_1, type); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendcondition", NULL, 0, &_0, &condition, value, &_1); + zephir_check_call_status(); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Router, setDefaultController) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, orderBy) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *controllerName_param = NULL; - zval controllerName; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *orderBy, orderBy_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&controllerName); + ZVAL_UNDEF(&orderBy_sub); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(controllerName) + Z_PARAM_ZVAL(orderBy) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &controllerName_param); - if (UNEXPECTED(Z_TYPE_P(controllerName_param) != IS_STRING && Z_TYPE_P(controllerName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'controllerName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(controllerName_param) == IS_STRING)) { - zephir_get_strval(&controllerName, controllerName_param); - } else { - ZEPHIR_INIT_VAR(&controllerName); - } + zephir_fetch_params(1, 1, 0, &orderBy); - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultController"), &controllerName); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "ORDER"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processvalue", NULL, 0, &_0, orderBy); + zephir_check_call_status(); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Router, setDefaultModule) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, orWhere) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *moduleName_param = NULL; - zval moduleName; + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _0, _1, _2; + zval condition; zval *this_ptr = getThis(); - ZVAL_UNDEF(&moduleName); + ZVAL_UNDEF(&condition); + ZVAL_UNDEF(&value_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(moduleName) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(condition) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(value) + Z_PARAM_LONG(type) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &moduleName_param); - if (UNEXPECTED(Z_TYPE_P(moduleName_param) != IS_STRING && Z_TYPE_P(moduleName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'moduleName' must be of the type string")); - RETURN_MM_NULL(); + zephir_fetch_params(1, 1, 2, &condition_param, &value, &type_param); + zephir_get_strval(&condition, condition_param); + if (!value) { + value = &value_sub; + value = &__$null; } - if (EXPECTED(Z_TYPE_P(moduleName_param) == IS_STRING)) { - zephir_get_strval(&moduleName, moduleName_param); + if (!type_param) { + type = -1; } else { - ZEPHIR_INIT_VAR(&moduleName); + type = zephir_get_intval(type_param); } - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultModule"), &moduleName); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "WHERE"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "OR "); + ZVAL_LONG(&_2, type); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addcondition", NULL, 0, &_0, &_1, &condition, value, &_2); + zephir_check_call_status(); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Router, setDefaultNamespace) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, where) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *namespaceName_param = NULL; - zval namespaceName; + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _0, _1, _2; + zval condition; zval *this_ptr = getThis(); - ZVAL_UNDEF(&namespaceName); + ZVAL_UNDEF(&condition); + ZVAL_UNDEF(&value_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(namespaceName) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(condition) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(value) + Z_PARAM_LONG(type) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &namespaceName_param); - if (UNEXPECTED(Z_TYPE_P(namespaceName_param) != IS_STRING && Z_TYPE_P(namespaceName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'namespaceName' must be of the type string")); - RETURN_MM_NULL(); + zephir_fetch_params(1, 1, 2, &condition_param, &value, &type_param); + zephir_get_strval(&condition, condition_param); + if (!value) { + value = &value_sub; + value = &__$null; } - if (EXPECTED(Z_TYPE_P(namespaceName_param) == IS_STRING)) { - zephir_get_strval(&namespaceName, namespaceName_param); + if (!type_param) { + type = -1; } else { - ZEPHIR_INIT_VAR(&namespaceName); + type = zephir_get_intval(type_param); } - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultNamespace"), &namespaceName); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "WHERE"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "AND "); + ZVAL_LONG(&_2, type); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addcondition", NULL, 0, &_0, &_1, &condition, value, &_2); + zephir_check_call_status(); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Router, setDefaults) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, whereEquals) { + zend_string *_3; + zend_ulong _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *defaults_param = NULL, namespaceName, module, controller, action, params; - zval defaults; + zephir_fcall_cache_entry *_4 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *columnsValues_param = NULL, key, value, *_0, _1, _5$$5, _6$$6, _7$$7, _8$$10, _9$$11, _10$$12; + zval columnsValues; zval *this_ptr = getThis(); - ZVAL_UNDEF(&defaults); - ZVAL_UNDEF(&namespaceName); - ZVAL_UNDEF(&module); - ZVAL_UNDEF(&controller); - ZVAL_UNDEF(&action); - ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&columnsValues); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_6$$6); + ZVAL_UNDEF(&_7$$7); + ZVAL_UNDEF(&_8$$10); + ZVAL_UNDEF(&_9$$11); + ZVAL_UNDEF(&_10$$12); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(defaults) + Z_PARAM_ARRAY(columnsValues) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &defaults_param); - ZEPHIR_OBS_COPY_OR_DUP(&defaults, defaults_param); + zephir_fetch_params(1, 1, 0, &columnsValues_param); + zephir_get_arrval(&columnsValues, columnsValues_param); - if (zephir_array_isset_string_fetch(&namespaceName, &defaults, SL("namespace"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultNamespace"), &namespaceName); + zephir_is_iterable(&columnsValues, 0, "phalcon/DataMapper/Query/AbstractConditions.zep", 164); + if (Z_TYPE_P(&columnsValues) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&columnsValues), _2, _3, _0) + { + ZEPHIR_INIT_NVAR(&key); + if (_3 != NULL) { + ZVAL_STR_COPY(&key, _3); + } else { + ZVAL_LONG(&key, _2); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0); + if (zephir_is_numeric(&key)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "where", &_4, 0, &value); + zephir_check_call_status(); + } else if (Z_TYPE_P(&value) == IS_NULL) { + ZEPHIR_INIT_NVAR(&_5$$5); + ZEPHIR_CONCAT_VS(&_5$$5, &key, " IS NULL"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "where", &_4, 0, &_5$$5); + zephir_check_call_status(); + } else if (Z_TYPE_P(&value) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&_6$$6); + ZEPHIR_CONCAT_VS(&_6$$6, &key, " IN "); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "where", &_4, 0, &_6$$6, &value); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&_7$$7); + ZEPHIR_CONCAT_VS(&_7$$7, &key, " = "); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "where", &_4, 0, &_7$$7, &value); + zephir_check_call_status(); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &columnsValues, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &columnsValues, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &columnsValues, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &columnsValues, "current", NULL, 0); + zephir_check_call_status(); + if (zephir_is_numeric(&key)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "where", &_4, 0, &value); + zephir_check_call_status(); + } else if (Z_TYPE_P(&value) == IS_NULL) { + ZEPHIR_INIT_NVAR(&_8$$10); + ZEPHIR_CONCAT_VS(&_8$$10, &key, " IS NULL"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "where", &_4, 0, &_8$$10); + zephir_check_call_status(); + } else if (Z_TYPE_P(&value) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&_9$$11); + ZEPHIR_CONCAT_VS(&_9$$11, &key, " IN "); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "where", &_4, 0, &_9$$11, &value); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&_10$$12); + ZEPHIR_CONCAT_VS(&_10$$12, &key, " = "); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "where", &_4, 0, &_10$$12, &value); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, &columnsValues, "next", NULL, 0); + zephir_check_call_status(); + } } - if (zephir_array_isset_string_fetch(&module, &defaults, SL("module"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultModule"), &module); + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, addCondition) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *store_param = NULL, *andor_param = NULL, *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _0$$3, _1$$3, _2, _3; + zval store, andor, condition, _4; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&store); + ZVAL_UNDEF(&andor); + ZVAL_UNDEF(&condition); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&value_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 5) + Z_PARAM_STR(store) + Z_PARAM_STR(andor) + Z_PARAM_STR(condition) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(value) + Z_PARAM_LONG(type) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 2, &store_param, &andor_param, &condition_param, &value, &type_param); + zephir_get_strval(&store, store_param); + zephir_get_strval(&andor, andor_param); + zephir_get_strval(&condition, condition_param); + if (!value) { + value = &value_sub; + value = &__$null; } - if (zephir_array_isset_string_fetch(&controller, &defaults, SL("controller"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultController"), &controller); + if (!type_param) { + type = -1; + } else { + type = zephir_get_intval(type_param); } - if (zephir_array_isset_string_fetch(&action, &defaults, SL("action"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultAction"), &action); + + + if (!(ZEPHIR_IS_EMPTY(value))) { + ZVAL_LONG(&_1$$3, type); + ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "bindinline", NULL, 0, value, &_1$$3); + zephir_check_call_status(); + zephir_concat_self(&condition, &_0$$3); } - if (zephir_array_isset_string_fetch(¶ms, &defaults, SL("params"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultParams"), ¶ms); + zephir_read_property(&_2, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_3, &_2, &store, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 187); + if (ZEPHIR_IS_EMPTY(&_3)) { + ZEPHIR_INIT_NVAR(&andor); } - RETURN_THIS(); + ZEPHIR_INIT_VAR(&_4); + ZEPHIR_CONCAT_VV(&_4, &andor, &condition); + zephir_update_property_array_multi(this_ptr, SL("store"), &_4, SL("za"), 2, &store); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Router, getDefaults) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, buildBy) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *type_param = NULL, _0, _1, _2, _3, _4, _5; + zval type; zval *this_ptr = getThis(); + ZVAL_UNDEF(&type); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(type) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &type_param); + zephir_get_strval(&type, type_param); - zephir_create_array(return_value, 5, 0); - ZEPHIR_OBS_VAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("defaultNamespace"), PH_NOISY_CC); - zephir_array_update_string(return_value, SL("namespace"), &_0, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("defaultModule"), PH_NOISY_CC); - zephir_array_update_string(return_value, SL("module"), &_0, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("defaultController"), PH_NOISY_CC); - zephir_array_update_string(return_value, SL("controller"), &_0, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("defaultAction"), PH_NOISY_CC); - zephir_array_update_string(return_value, SL("action"), &_0, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("defaultParams"), PH_NOISY_CC); - zephir_array_update_string(return_value, SL("params"), &_0, PH_COPY | PH_SEPARATE); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_1, &_0, &type, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 203); + if (ZEPHIR_IS_EMPTY(&_1)) { + RETURN_MM_STRING(""); + } + zephir_read_property(&_3, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_4, &_3, &type, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 208); + ZEPHIR_INIT_VAR(&_5); + ZVAL_STRING(&_5, ","); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "indent", NULL, 0, &_4, &_5); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSV(return_value, " ", &type, " BY", &_2); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Router, setEventsManager) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, buildCondition) { - zval *eventsManager, eventsManager_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *type_param = NULL, _0, _1, _2, _3, _4; + zval type; zval *this_ptr = getThis(); - ZVAL_UNDEF(&eventsManager_sub); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) + Z_PARAM_STR(type) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &type_param); + zephir_get_strval(&type, type_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); + zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_1, &_0, &type, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 220); + if (ZEPHIR_IS_EMPTY(&_1)) { + RETURN_MM_STRING(""); + } + zephir_read_property(&_3, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_4, &_3, &type, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 225); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "indent", NULL, 0, &_4); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVV(return_value, " ", &type, &_2); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Router, wasMatched) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, buildLimitEarly) { + zend_bool _3, _6; + zval _0, _1, _2, _4, _5, _7, _8, _9$$3, _10$$3, _11$$3; + zval limit; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&limit); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9$$3); + ZVAL_UNDEF(&_10$$3); + ZVAL_UNDEF(&_11$$3); + + ZEPHIR_MM_GROW(); - RETURN_MEMBER(getThis(), "wasMatched"); + ZEPHIR_INIT_VAR(&limit); + zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "getdrivername", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "sqlsrv"); + _3 = ZEPHIR_IS_IDENTICAL(&_2, &_1); + if (_3) { + zephir_read_property(&_4, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_5, &_4, SL("LIMIT"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 239); + _3 = ZEPHIR_GT_LONG(&_5, 0); + } + _6 = _3; + if (_6) { + zephir_read_property(&_7, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_8, &_7, SL("OFFSET"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 241); + _6 = ZEPHIR_IS_LONG_IDENTICAL(&_8, 0); + } + if (_6) { + zephir_read_property(&_9$$3, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_10$$3, &_9$$3, SL("LIMIT"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 242); + ZEPHIR_INIT_VAR(&_11$$3); + ZEPHIR_CONCAT_SV(&_11$$3, " TOP ", &_10$$3); + zephir_get_strval(&limit, &_11$$3); + } + RETURN_CTOR(&limit); } -zend_object *zephir_init_properties_Phalcon_Mvc_Router(zend_class_entry *class_type) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, buildLimit) { - zval _0, _2, _4, _6, _8, _10, _1$$3, _3$$4, _5$$5, _7$$6, _9$$7, _11$$8; + zval method, suffix, _0, _1, _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&suffix); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_9$$7); - ZVAL_UNDEF(&_11$$8); - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("routes"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("params"), &_3$$4); - } - zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("matches"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_4) == IS_NULL) { - ZEPHIR_INIT_VAR(&_5$$5); - array_init(&_5$$5); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("matches"), &_5$$5); - } - zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("keyRouteIds"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_6) == IS_NULL) { - ZEPHIR_INIT_VAR(&_7$$6); - array_init(&_7$$6); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("keyRouteIds"), &_7$$6); - } - zephir_read_property_ex(&_8, this_ptr, ZEND_STRL("keyRouteNames"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_8) == IS_NULL) { - ZEPHIR_INIT_VAR(&_9$$7); - array_init(&_9$$7); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("keyRouteNames"), &_9$$7); - } - zephir_read_property_ex(&_10, this_ptr, ZEND_STRL("defaultParams"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_10) == IS_NULL) { - ZEPHIR_INIT_VAR(&_11$$8); - array_init(&_11$$8); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("defaultParams"), &_11$$8); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&suffix, &_0, "getdrivername", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "sqlsrv"); + if (!ZEPHIR_IS_IDENTICAL(&_1, &suffix)) { + ZEPHIR_INIT_NVAR(&suffix); + ZVAL_STRING(&suffix, "common"); } + ZEPHIR_INIT_VAR(&_2); + zephir_ucfirst(&_2, &suffix); + ZEPHIR_INIT_VAR(&method); + ZEPHIR_CONCAT_SV(&method, "buildLimit", &_2); + ZEPHIR_RETURN_CALL_METHOD_ZVAL(this_ptr, &method, NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, buildLimitCommon) +{ + zval _0, _1, _5, _6, _10, _2$$3, _3$$3, _4$$3, _7$$4, _8$$4, _9$$4, _11$$5, _12$$5; + zval limit; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&limit); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_8$$4); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&_11$$5); + ZVAL_UNDEF(&_12$$5); -#ifdef HAVE_CONFIG_H -#endif + ZEPHIR_MM_GROW(); + ZEPHIR_INIT_VAR(&limit); + zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_1, &_0, SL("LIMIT"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 277); + if (!ZEPHIR_IS_LONG_IDENTICAL(&_1, 0)) { + zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_3$$3, &_2$$3, SL("LIMIT"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 278); + ZEPHIR_INIT_VAR(&_4$$3); + ZEPHIR_CONCAT_SV(&_4$$3, "LIMIT ", &_3$$3); + zephir_concat_self(&limit, &_4$$3); + } + zephir_read_property(&_5, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_6, &_5, SL("OFFSET"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 281); + if (!ZEPHIR_IS_LONG_IDENTICAL(&_6, 0)) { + zephir_read_property(&_7$$4, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_8$$4, &_7$$4, SL("OFFSET"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 282); + ZEPHIR_INIT_VAR(&_9$$4); + ZEPHIR_CONCAT_SV(&_9$$4, " OFFSET ", &_8$$4); + zephir_concat_self(&limit, &_9$$4); + } + ZEPHIR_INIT_VAR(&_10); + ZVAL_STRING(&_10, ""); + if (!ZEPHIR_IS_IDENTICAL(&_10, &limit)) { + ZEPHIR_INIT_VAR(&_11$$5); + zephir_fast_trim(&_11$$5, &limit, NULL , ZEPHIR_TRIM_LEFT); + ZEPHIR_INIT_VAR(&_12$$5); + ZEPHIR_CONCAT_SV(&_12$$5, " ", &_11$$5); + zephir_get_strval(&limit, &_12$$5); + } + RETURN_CTOR(&limit); +} +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, buildLimitSqlsrv) +{ + zend_bool _2; + zval _0, _1, _3, _4, _5$$3, _6$$3, _7$$3, _8$$3, _9$$3; + zval limit; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&limit); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_8$$3); + ZVAL_UNDEF(&_9$$3); -ZEPHIR_INIT_CLASS(Phalcon_Mvc_RouterInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc, RouterInterface, phalcon, mvc_routerinterface, phalcon_mvc_routerinterface_method_entry); + ZEPHIR_MM_GROW(); - return SUCCESS; + ZEPHIR_INIT_VAR(&limit); + zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_1, &_0, SL("LIMIT"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 301); + _2 = ZEPHIR_GT_LONG(&_1, 0); + if (_2) { + zephir_read_property(&_3, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_4, &_3, SL("OFFSET"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 301); + _2 = ZEPHIR_GT_LONG(&_4, 0); + } + if (_2) { + zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_6$$3, &_5$$3, SL("OFFSET"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 302); + zephir_read_property(&_7$$3, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_8$$3, &_7$$3, SL("LIMIT"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 303); + ZEPHIR_INIT_VAR(&_9$$3); + ZEPHIR_CONCAT_SVSSVS(&_9$$3, " OFFSET ", &_6$$3, " ROWS", " FETCH NEXT ", &_8$$3, " ROWS ONLY"); + zephir_get_strval(&limit, &_9$$3); + } + RETURN_CTOR(&limit); } -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, add); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, attach); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, addConnect); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, addDelete); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, addHead); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, addGet); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, addOptions); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, addPatch); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, addPost); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, addPurge); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, addPut); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, addTrace); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, clear); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, getActionName); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, getControllerName); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, getMatchedRoute); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, getMatches); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, getModuleName); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, getNamespaceName); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, getParams); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, getRoutes); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, getRouteById); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, getRouteByName); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, handle); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, mount); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, setDefaultAction); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, setDefaultController); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, setDefaultModule); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, setDefaults); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_RouterInterface, wasMatched); - - +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, appendCondition) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_5 = NULL; + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *store_param = NULL, *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, key, _2, _3, _6, _7, _8, _9, _10, _11, _0$$3, _1$$3, _4$$4; + zval store, condition; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&store); + ZVAL_UNDEF(&condition); + ZVAL_UNDEF(&value_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_4$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 4) + Z_PARAM_STR(store) + Z_PARAM_STR(condition) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(value) + Z_PARAM_LONG(type) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 2, &store_param, &condition_param, &value, &type_param); + zephir_get_strval(&store, store_param); + zephir_get_strval(&condition, condition_param); + if (!value) { + value = &value_sub; + value = &__$null; + } + if (!type_param) { + type = -1; + } else { + type = zephir_get_intval(type_param); + } + if (!(ZEPHIR_IS_EMPTY(value))) { + ZVAL_LONG(&_1$$3, type); + ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "bindinline", NULL, 0, value, &_1$$3); + zephir_check_call_status(); + zephir_concat_self(&condition, &_0$$3); + } + zephir_read_property(&_2, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_3, &_2, &store, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 329); + if (ZEPHIR_IS_EMPTY(&_3)) { + ZEPHIR_INIT_VAR(&_4$$4); + ZVAL_STRING(&_4$$4, ""); + zephir_update_property_array_multi(this_ptr, SL("store"), &_4$$4, SL("za"), 2, &store); + } + zephir_read_property(&_6, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_7, &_6, &store, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 333); + ZEPHIR_CALL_CE_STATIC(&key, phalcon_helper_arr_ce, "lastkey", &_5, 49, &_7); + zephir_check_call_status(); + zephir_read_property(&_8, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_9, &_8, &store, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 335); + zephir_array_fetch(&_10, &_9, &key, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 335); + ZEPHIR_INIT_VAR(&_11); + ZEPHIR_CONCAT_VV(&_11, &_10, &condition); + zephir_update_property_array_multi(this_ptr, SL("store"), &_11, SL("zz"), 2, &store, &key); + ZEPHIR_MM_RESTORE(); +} -ZEPHIR_INIT_CLASS(Phalcon_Mvc_View) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractConditions, processValue) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc, View, phalcon, mvc_view, phalcon_di_injectable_ce, phalcon_mvc_view_method_entry, 0); - - zend_declare_property_null(phalcon_mvc_view_ce, SL("actionName"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_ce, SL("activeRenderPaths"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_mvc_view_ce, SL("basePath"), "", ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_mvc_view_ce, SL("content"), "", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_ce, SL("controllerName"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_mvc_view_ce, SL("currentRenderLevel"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_view_ce, SL("disabled"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_ce, SL("disabledLevels"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_view_ce, SL("engines"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_ce, SL("layout"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_mvc_view_ce, SL("layoutsDir"), "", ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_mvc_view_ce, SL("mainView"), "index", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_ce, SL("options"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_ce, SL("params"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_ce, SL("pickView"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_mvc_view_ce, SL("partialsDir"), "", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_ce, SL("registeredEngines"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_mvc_view_ce, SL("renderLevel"), 5, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_ce, SL("templatesAfter"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_ce, SL("templatesBefore"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_ce, SL("viewsDirs"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_ce, SL("viewParams"), ZEND_ACC_PROTECTED); - phalcon_mvc_view_ce->create_object = zephir_init_properties_Phalcon_Mvc_View; - zephir_declare_class_constant_long(phalcon_mvc_view_ce, SL("LEVEL_ACTION_VIEW"), 1); - - zephir_declare_class_constant_long(phalcon_mvc_view_ce, SL("LEVEL_BEFORE_TEMPLATE"), 2); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *store_param = NULL, *data = NULL, data_sub, _0$$3, _1$$4, _2$$4, _3$$4; + zval store; + zval *this_ptr = getThis(); - zephir_declare_class_constant_long(phalcon_mvc_view_ce, SL("LEVEL_LAYOUT"), 3); + ZVAL_UNDEF(&store); + ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(store) + Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_END(); +#endif - zephir_declare_class_constant_long(phalcon_mvc_view_ce, SL("LEVEL_MAIN_LAYOUT"), 5); - zephir_declare_class_constant_long(phalcon_mvc_view_ce, SL("LEVEL_NO_RENDER"), 0); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &store_param, &data); + zephir_get_strval(&store, store_param); + ZEPHIR_SEPARATE_PARAM(data); - zephir_declare_class_constant_long(phalcon_mvc_view_ce, SL("LEVEL_AFTER_TEMPLATE"), 4); - zend_class_implements(phalcon_mvc_view_ce, 1, phalcon_mvc_viewinterface_ce); - zend_class_implements(phalcon_mvc_view_ce, 1, phalcon_events_eventsawareinterface_ce); - return SUCCESS; + if (Z_TYPE_P(data) == IS_STRING) { + ZEPHIR_INIT_VAR(&_0$$3); + zephir_create_array(&_0$$3, 1, 0); + zephir_array_fast_append(&_0$$3, data); + ZEPHIR_CPY_WRT(data, &_0$$3); + } + if (Z_TYPE_P(data) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&_1$$4); + zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_3$$4, &_2$$4, &store, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractConditions.zep", 352); + zephir_fast_array_merge(&_1$$4, &_3$$4, data); + zephir_update_property_array(this_ptr, SL("store"), &store, &_1$$4); + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_View, getCurrentRenderLevel) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "currentRenderLevel"); -} +#ifdef HAVE_CONFIG_H +#endif -static PHP_METHOD(Phalcon_Mvc_View, getRegisteredEngines) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "registeredEngines"); -} -static PHP_METHOD(Phalcon_Mvc_View, getRenderLevel) +ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Query_AbstractQuery) { - zval *this_ptr = getThis(); - + ZEPHIR_REGISTER_CLASS(Phalcon\\DataMapper\\Query, AbstractQuery, phalcon, datamapper_query_abstractquery, phalcon_datamapper_query_abstractquery_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + zend_declare_property_null(phalcon_datamapper_query_abstractquery_ce, SL("bind"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_datamapper_query_abstractquery_ce, SL("connection"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_datamapper_query_abstractquery_ce, SL("store"), ZEND_ACC_PROTECTED); + phalcon_datamapper_query_abstractquery_ce->create_object = zephir_init_properties_Phalcon_DataMapper_Query_AbstractQuery; - RETURN_MEMBER(getThis(), "renderLevel"); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_View, __construct) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *options_param = NULL; - zval options; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *connection, connection_sub, *bind, bind_sub, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&options); + ZVAL_UNDEF(&connection_sub); + ZVAL_UNDEF(&bind_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_datamapper_pdo_connection_ce) + Z_PARAM_OBJECT_OF_CLASS(bind, phalcon_datamapper_query_bind_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &options_param); - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); - } else { - zephir_get_arrval(&options, options_param); - } + zephir_fetch_params(1, 2, 0, &connection, &bind); - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + zephir_update_property_zval(this_ptr, ZEND_STRL("bind"), bind); + zephir_update_property_zval(this_ptr, ZEND_STRL("connection"), connection); + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "UNION"); + zephir_update_property_array(this_ptr, SL("store"), &_1, &_0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "reset", NULL, 0); + zephir_check_call_status(); ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_View, __get) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, bindInline) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL; - zval key; + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *value, value_sub, *type_param = NULL, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(value) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(type) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + zephir_fetch_params(1, 1, 1, &value, &type_param); + if (!type_param) { + type = -1; } else { - ZEPHIR_INIT_VAR(&key); + type = zephir_get_intval(type_param); } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getvar", NULL, 0, &key); + zephir_read_property(&_0, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_1, type); + ZEPHIR_RETURN_CALL_METHOD(&_0, "bindinline", NULL, 0, value, &_1); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View, __isset) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, bindValue) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *key_param = NULL, _0; + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, *value, value_sub, *type_param = NULL, _0, _1; zval key; zval *this_ptr = getThis(); ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value_sub); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) + ZEND_PARSE_PARAMETERS_START(2, 3) Z_PARAM_STR(key) + Z_PARAM_ZVAL(value) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(type) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + zephir_fetch_params(1, 2, 1, &key_param, &value, &type_param); + zephir_get_strval(&key, key_param); + if (!type_param) { + type = -1; } else { - ZEPHIR_INIT_VAR(&key); + type = zephir_get_intval(type_param); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); - RETURN_MM_BOOL(zephir_array_isset(&_0, &key)); + zephir_read_property(&_0, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_1, type); + ZEPHIR_CALL_METHOD(NULL, &_0, "setvalue", NULL, 0, &key, value, &_1); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View, __set) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, bindValues) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *value, value_sub; - zval key; + zval *values_param = NULL, _0; + zval values; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&values); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(key) - Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(values) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &key_param, &value); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } + zephir_fetch_params(1, 1, 0, &values_param); + zephir_get_arrval(&values, values_param); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setvar", NULL, 0, &key, value); + zephir_read_property(&_0, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "setvalues", NULL, 0, &values); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View, cleanTemplateAfter) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, getBindValues) { zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); @@ -134099,551 +119257,426 @@ static PHP_METHOD(Phalcon_Mvc_View, cleanTemplateAfter) ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(&_0); - array_init(&_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("templatesAfter"), &_0); - RETURN_THIS(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "toarray", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View, cleanTemplateBefore) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, getStatement) { - zval _0; +} + +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, perform) +{ + zval _0, _1, _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(&_0); - array_init(&_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("templatesBefore"), &_0); - RETURN_THIS(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getstatement", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getbindvalues", NULL, 0); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(&_0, "perform", NULL, 0, &_1, &_2); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View, disableLevel) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, setFlag) { - zval *level, level_sub, __$true; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_bool enable; + zval *flag_param = NULL, *enable_param = NULL, __$true, flags, _0$$4, _1$$4; + zval flag; zval *this_ptr = getThis(); - ZVAL_UNDEF(&level_sub); + ZVAL_UNDEF(&flag); ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&flags); + ZVAL_UNDEF(&_0$$4); + ZVAL_UNDEF(&_1$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(level) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(flag) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(enable) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &level); - - - if (Z_TYPE_P(level) == IS_ARRAY) { - zephir_update_property_zval(this_ptr, ZEND_STRL("disabledLevels"), level); - } else { - zephir_update_property_array(this_ptr, SL("disabledLevels"), level, &__$true); - } - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Mvc_View, disable) -{ - zval __$true, __$false; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - - - - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("disabled"), &__$true); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &flag_param, &enable_param); + zephir_get_strval(&flag, flag_param); + if (!enable_param) { + enable = 1; } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("disabled"), &__$false); + enable = zephir_get_boolval(enable_param); } - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Mvc_View, enable) -{ - zval __$true, __$false; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("disabled"), &__$true); + if (enable) { + zephir_update_property_array_multi(this_ptr, SL("store"), &__$true, SL("sz"), 3, SL("FLAGS"), &flag); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("disabled"), &__$false); + zephir_read_property(&_0$$4, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_OBS_VAR(&flags); + zephir_array_fetch_string(&flags, &_0$$4, SL("FLAGS"), PH_NOISY, "phalcon/DataMapper/Query/AbstractQuery.zep", 148); + zephir_array_unset(&flags, &flag, PH_SEPARATE); + ZEPHIR_INIT_VAR(&_1$$4); + ZVAL_STRING(&_1$$4, "FLAGS"); + zephir_update_property_array(this_ptr, SL("store"), &_1$$4, &flags); } - RETURN_THISW(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_View, exists) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, quoteIdentifier) { - zend_string *_9$$4, *_16$$9; - zend_ulong _8$$4, _15$$9; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *view_param = NULL, basePath, viewsDir, engines, extension, _0, _2, *_3, _4, _1$$3, _5$$4, *_6$$4, _7$$4, _10$$5, _11$$7, _12$$9, *_13$$9, _14$$9, _17$$10, _18$$12; - zval view; + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, *type_param = NULL, _0, _1; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&view); - ZVAL_UNDEF(&basePath); - ZVAL_UNDEF(&viewsDir); - ZVAL_UNDEF(&engines); - ZVAL_UNDEF(&extension); + ZVAL_UNDEF(&name); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_10$$5); - ZVAL_UNDEF(&_11$$7); - ZVAL_UNDEF(&_12$$9); - ZVAL_UNDEF(&_14$$9); - ZVAL_UNDEF(&_17$$10); - ZVAL_UNDEF(&_18$$12); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(view) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(name) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(type) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &view_param); - if (UNEXPECTED(Z_TYPE_P(view_param) != IS_STRING && Z_TYPE_P(view_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'view' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(view_param) == IS_STRING)) { - zephir_get_strval(&view, view_param); + zephir_fetch_params(1, 1, 1, &name_param, &type_param); + zephir_get_strval(&name, name_param); + if (!type_param) { + type = 2; } else { - ZEPHIR_INIT_VAR(&view); + type = zephir_get_intval(type_param); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("basePath"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&basePath, &_0); - ZEPHIR_OBS_VAR(&engines); - zephir_read_property(&engines, this_ptr, ZEND_STRL("registeredEngines"), PH_NOISY_CC); - if (ZEPHIR_IS_EMPTY(&engines)) { - ZEPHIR_INIT_VAR(&_1$$3); - zephir_create_array(&_1$$3, 1, 0); - add_assoc_stringl_ex(&_1$$3, SL(".phtml"), SL("Phalcon\\Mvc\\View\\Engine\\Php")); - ZEPHIR_CPY_WRT(&engines, &_1$$3); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "registerengines", NULL, 0, &engines); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getviewsdirs", NULL, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_1, type); + ZEPHIR_RETURN_CALL_METHOD(&_0, "quote", NULL, 0, &name, &_1); zephir_check_call_status(); - zephir_is_iterable(&_2, 0, "phalcon/Mvc/View.zep", 327); - if (Z_TYPE_P(&_2) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_2), _3) - { - ZEPHIR_INIT_NVAR(&viewsDir); - ZVAL_COPY(&viewsDir, _3); - ZEPHIR_INIT_NVAR(&_5$$4); - zephir_is_iterable(&engines, 0, "phalcon/Mvc/View.zep", 325); - if (Z_TYPE_P(&engines) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&engines), _8$$4, _9$$4, _6$$4) - { - ZEPHIR_INIT_NVAR(&extension); - if (_9$$4 != NULL) { - ZVAL_STR_COPY(&extension, _9$$4); - } else { - ZVAL_LONG(&extension, _8$$4); - } - ZEPHIR_INIT_NVAR(&_5$$4); - ZVAL_COPY(&_5$$4, _6$$4); - ZEPHIR_INIT_NVAR(&_10$$5); - ZEPHIR_CONCAT_VVVV(&_10$$5, &basePath, &viewsDir, &view, &extension); - if ((zephir_file_exists(&_10$$5) == SUCCESS)) { - RETURN_MM_BOOL(1); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &engines, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_7$$4, &engines, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_7$$4)) { - break; - } - ZEPHIR_CALL_METHOD(&extension, &engines, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_5$$4, &engines, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_11$$7); - ZEPHIR_CONCAT_VVVV(&_11$$7, &basePath, &viewsDir, &view, &extension); - if ((zephir_file_exists(&_11$$7) == SUCCESS)) { - RETURN_MM_BOOL(1); - } - ZEPHIR_CALL_METHOD(NULL, &engines, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&_5$$4); - ZEPHIR_INIT_NVAR(&extension); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_2, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_4, &_2, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_4)) { - break; - } - ZEPHIR_CALL_METHOD(&viewsDir, &_2, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_12$$9); - zephir_is_iterable(&engines, 0, "phalcon/Mvc/View.zep", 325); - if (Z_TYPE_P(&engines) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&engines), _15$$9, _16$$9, _13$$9) - { - ZEPHIR_INIT_NVAR(&extension); - if (_16$$9 != NULL) { - ZVAL_STR_COPY(&extension, _16$$9); - } else { - ZVAL_LONG(&extension, _15$$9); - } - ZEPHIR_INIT_NVAR(&_12$$9); - ZVAL_COPY(&_12$$9, _13$$9); - ZEPHIR_INIT_NVAR(&_17$$10); - ZEPHIR_CONCAT_VVVV(&_17$$10, &basePath, &viewsDir, &view, &extension); - if ((zephir_file_exists(&_17$$10) == SUCCESS)) { - RETURN_MM_BOOL(1); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &engines, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_14$$9, &engines, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_14$$9)) { - break; - } - ZEPHIR_CALL_METHOD(&extension, &engines, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_12$$9, &engines, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_18$$12); - ZEPHIR_CONCAT_VVVV(&_18$$12, &basePath, &viewsDir, &view, &extension); - if ((zephir_file_exists(&_18$$12) == SUCCESS)) { - RETURN_MM_BOOL(1); - } - ZEPHIR_CALL_METHOD(NULL, &engines, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&_12$$9); - ZEPHIR_INIT_NVAR(&extension); - ZEPHIR_CALL_METHOD(NULL, &_2, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&viewsDir); - RETURN_MM_BOOL(0); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View, finish) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, reset) { + zval _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_13); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_15); + ZVAL_UNDEF(&_16); + ZVAL_UNDEF(&_17); ZEPHIR_MM_GROW(); - ZEPHIR_CALL_FUNCTION(NULL, "ob_end_clean", NULL, 497); - zephir_check_call_status(); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Mvc_View, getActionName) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "actionName"); + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "COLUMNS"); + zephir_update_property_array(this_ptr, SL("store"), &_1, &_0); + ZEPHIR_INIT_VAR(&_2); + array_init(&_2); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "FLAGS"); + zephir_update_property_array(this_ptr, SL("store"), &_3, &_2); + ZEPHIR_INIT_VAR(&_4); + array_init(&_4); + ZEPHIR_INIT_VAR(&_5); + ZVAL_STRING(&_5, "FROM"); + zephir_update_property_array(this_ptr, SL("store"), &_5, &_4); + ZEPHIR_INIT_VAR(&_6); + array_init(&_6); + ZEPHIR_INIT_VAR(&_7); + ZVAL_STRING(&_7, "GROUP"); + zephir_update_property_array(this_ptr, SL("store"), &_7, &_6); + ZEPHIR_INIT_VAR(&_8); + array_init(&_8); + ZEPHIR_INIT_VAR(&_9); + ZVAL_STRING(&_9, "HAVING"); + zephir_update_property_array(this_ptr, SL("store"), &_9, &_8); + ZEPHIR_INIT_VAR(&_10); + ZVAL_STRING(&_10, "LIMIT"); + ZEPHIR_INIT_VAR(&_11); + ZVAL_LONG(&_11, 0); + zephir_update_property_array(this_ptr, SL("store"), &_10, &_11); + ZEPHIR_INIT_VAR(&_12); + array_init(&_12); + ZEPHIR_INIT_VAR(&_13); + ZVAL_STRING(&_13, "ORDER"); + zephir_update_property_array(this_ptr, SL("store"), &_13, &_12); + ZEPHIR_INIT_VAR(&_14); + ZVAL_STRING(&_14, "OFFSET"); + ZEPHIR_INIT_VAR(&_15); + ZVAL_LONG(&_15, 0); + zephir_update_property_array(this_ptr, SL("store"), &_14, &_15); + ZEPHIR_INIT_VAR(&_16); + array_init(&_16); + ZEPHIR_INIT_VAR(&_17); + ZVAL_STRING(&_17, "WHERE"); + zephir_update_property_array(this_ptr, SL("store"), &_17, &_16); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_View, getActiveRenderPath) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, buildFlags) { - zend_bool _1$$3; - zval activeRenderPath, _0, _2$$4; + zval _0, _1, _2, _3, _4, _5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, viewsDirsCount = 0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&activeRenderPath); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getviewsdirs", NULL, 0); - zephir_check_call_status(); - viewsDirsCount = zephir_fast_count_int(&_0); - ZEPHIR_OBS_VAR(&activeRenderPath); - zephir_read_property(&activeRenderPath, this_ptr, ZEND_STRL("activeRenderPaths"), PH_NOISY_CC); - if (viewsDirsCount == 1) { - _1$$3 = Z_TYPE_P(&activeRenderPath) == IS_ARRAY; - if (_1$$3) { - _1$$3 = ((zephir_fast_count_int(&activeRenderPath)) ? 1 : 0); - } - if (_1$$3) { - zephir_array_fetch_long(&_2$$4, &activeRenderPath, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/View.zep", 361); - ZEPHIR_CPY_WRT(&activeRenderPath, &_2$$4); - } - } - if (Z_TYPE_P(&activeRenderPath) == IS_NULL) { - ZEPHIR_INIT_NVAR(&activeRenderPath); - ZVAL_STRING(&activeRenderPath, ""); + zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_1, &_0, SL("FLAGS"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractQuery.zep", 194); + if (ZEPHIR_IS_EMPTY(&_1)) { + RETURN_MM_STRING(""); } - RETURN_CCTOR(&activeRenderPath); -} - -static PHP_METHOD(Phalcon_Mvc_View, getBasePath) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "basePath"); -} - -static PHP_METHOD(Phalcon_Mvc_View, getContent) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "content"); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_INIT_VAR(&_3); + zephir_read_property(&_4, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_5, &_4, SL("FLAGS"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractQuery.zep", 198); + zephir_array_keys(&_3, &_5); + zephir_fast_join_str(&_2, SL(" "), &_3); + ZEPHIR_CONCAT_SV(return_value, " ", &_2); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View, getControllerName) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, buildReturning) { + zval _0, _1, _2, _3, _4, _5; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); - RETURN_MEMBER(getThis(), "controllerName"); -} - -static PHP_METHOD(Phalcon_Mvc_View, getEventsManager) -{ - zval *this_ptr = getThis(); - - + ZEPHIR_MM_GROW(); - RETURN_MEMBER(getThis(), "eventsManager"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_1, &_0, SL("RETURNING"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractQuery.zep", 208); + if (ZEPHIR_IS_EMPTY(&_1)) { + RETURN_MM_STRING(""); + } + zephir_read_property(&_3, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_4, &_3, SL("RETURNING"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/AbstractQuery.zep", 212); + ZEPHIR_INIT_VAR(&_5); + ZVAL_STRING(&_5, ","); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "indent", NULL, 0, &_4, &_5); + zephir_check_call_status(); + ZEPHIR_CONCAT_SV(return_value, " RETURNING", &_2); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View, getLayout) +static PHP_METHOD(Phalcon_DataMapper_Query_AbstractQuery, indent) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval glue, _1; + zval *collection_param = NULL, *glue_param = NULL, _0; + zval collection; zval *this_ptr = getThis(); + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&glue); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(collection) + Z_PARAM_OPTIONAL + Z_PARAM_STR(glue) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "layout"); -} - -static PHP_METHOD(Phalcon_Mvc_View, getLayoutsDir) -{ - zval *this_ptr = getThis(); - + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &collection_param, &glue_param); + zephir_get_arrval(&collection, collection_param); + if (!glue_param) { + ZEPHIR_INIT_VAR(&glue); + ZVAL_STRING(&glue, ""); + } else { + zephir_get_strval(&glue, glue_param); + } - RETURN_MEMBER(getThis(), "layoutsDir"); + if (ZEPHIR_IS_EMPTY(&collection)) { + RETURN_MM_STRING(""); + } + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_CONCAT_VS(&_1, &glue, " "); + zephir_fast_join(&_0, &_1, &collection); + ZEPHIR_CONCAT_SV(return_value, " ", &_0); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View, getMainView) +zend_object *zephir_init_properties_Phalcon_DataMapper_Query_AbstractQuery(zend_class_entry *class_type) { - zval *this_ptr = getThis(); - - + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + - RETURN_MEMBER(getThis(), "mainView"); + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("store"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } } -static PHP_METHOD(Phalcon_Mvc_View, getParamsToView) -{ - zval *this_ptr = getThis(); - - - RETURN_MEMBER(getThis(), "viewParams"); -} -static PHP_METHOD(Phalcon_Mvc_View, getPartial) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *partialPath_param = NULL, *params = NULL, params_sub, __$null; - zval partialPath; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&partialPath); - ZVAL_UNDEF(¶ms_sub); - ZVAL_NULL(&__$null); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(partialPath) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(params) - ZEND_PARSE_PARAMETERS_END(); +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &partialPath_param, ¶ms); - if (UNEXPECTED(Z_TYPE_P(partialPath_param) != IS_STRING && Z_TYPE_P(partialPath_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'partialPath' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(partialPath_param) == IS_STRING)) { - zephir_get_strval(&partialPath, partialPath_param); - } else { - ZEPHIR_INIT_VAR(&partialPath); - } - if (!params) { - params = ¶ms_sub; - params = &__$null; - } - ZEPHIR_CALL_FUNCTION(NULL, "ob_start", NULL, 388); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "partial", NULL, 0, &partialPath, params); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_FUNCTION("ob_get_clean", NULL, 395); - zephir_check_call_status(); - RETURN_MM(); -} -static PHP_METHOD(Phalcon_Mvc_View, getPartialsDir) +ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Query_Bind) { - zval *this_ptr = getThis(); - + ZEPHIR_REGISTER_CLASS(Phalcon\\DataMapper\\Query, Bind, phalcon, datamapper_query_bind, phalcon_datamapper_query_bind_method_entry, 0); + zend_declare_property_long(phalcon_datamapper_query_bind_ce, SL("inlineCount"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_datamapper_query_bind_ce, SL("store"), ZEND_ACC_PROTECTED); + phalcon_datamapper_query_bind_ce->create_object = zephir_init_properties_Phalcon_DataMapper_Query_Bind; - RETURN_MEMBER(getThis(), "partialsDir"); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_View, getRender) +static PHP_METHOD(Phalcon_DataMapper_Query_Bind, bindInline) { + zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval params, _1$$3; - zval *controllerName_param = NULL, *actionName_param = NULL, *params_param = NULL, *configCallback = NULL, configCallback_sub, __$null, view, _0$$3; - zval controllerName, actionName; + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *value, value_sub, *type_param = NULL, key, _3, _4, _5, _1$$3, _2$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&controllerName); - ZVAL_UNDEF(&actionName); - ZVAL_UNDEF(&configCallback_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&view); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 4) - Z_PARAM_STR(controllerName) - Z_PARAM_STR(actionName) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(value) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(params) - Z_PARAM_ZVAL_OR_NULL(configCallback) + Z_PARAM_LONG(type) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 2, &controllerName_param, &actionName_param, ¶ms_param, &configCallback); - if (UNEXPECTED(Z_TYPE_P(controllerName_param) != IS_STRING && Z_TYPE_P(controllerName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'controllerName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(controllerName_param) == IS_STRING)) { - zephir_get_strval(&controllerName, controllerName_param); - } else { - ZEPHIR_INIT_VAR(&controllerName); - } - if (UNEXPECTED(Z_TYPE_P(actionName_param) != IS_STRING && Z_TYPE_P(actionName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'actionName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(actionName_param) == IS_STRING)) { - zephir_get_strval(&actionName, actionName_param); - } else { - ZEPHIR_INIT_VAR(&actionName); - } - if (!params_param) { - ZEPHIR_INIT_VAR(¶ms); - array_init(¶ms); + zephir_fetch_params(1, 1, 1, &value, &type_param); + if (!type_param) { + type = -1; } else { - zephir_get_arrval(¶ms, params_param); - } - if (!configCallback) { - configCallback = &configCallback_sub; - configCallback = &__$null; + type = zephir_get_intval(type_param); } - ZEPHIR_INIT_VAR(&view); - if (zephir_clone(&view, this_ptr) == FAILURE) { + _0 = Z_TYPE_P(value) == IS_OBJECT; + if (_0) { + _0 = zephir_instance_of_ev(value, phalcon_datamapper_query_select_ce); + } + if (_0) { + ZEPHIR_CALL_METHOD(&_1$$3, value, "getstatement", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "(", &_1$$3, ")"); RETURN_MM(); } - ZEPHIR_CALL_METHOD(NULL, &view, "reset", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &view, "setvars", NULL, 0, ¶ms); - zephir_check_call_status(); - if (Z_TYPE_P(configCallback) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_0$$3); - ZEPHIR_INIT_VAR(&_1$$3); - zephir_create_array(&_1$$3, 1, 0); - zephir_array_fast_append(&_1$$3, &view); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_0$$3, configCallback, &_1$$3); + if (Z_TYPE_P(value) == IS_ARRAY) { + ZVAL_LONG(&_2$$4, type); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "inlinearray", NULL, 0, value, &_2$$4); zephir_check_call_status(); + RETURN_MM(); } - ZEPHIR_CALL_METHOD(NULL, &view, "start", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &view, "render", NULL, 0, &controllerName, &actionName); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &view, "finish", NULL, 0); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&view, "getcontent", NULL, 0); + zephir_read_property(&_3, this_ptr, ZEND_STRL("inlineCount"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_ZVAL_NREF(_4); + ZVAL_LONG(&_4, (zephir_get_numberval(&_3) + 1)); + zephir_update_property_zval(this_ptr, ZEND_STRL("inlineCount"), &_4); + zephir_read_property(&_4, this_ptr, ZEND_STRL("inlineCount"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&key); + ZEPHIR_CONCAT_SVS(&key, "__", &_4, "__"); + ZVAL_LONG(&_5, type); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setvalue", NULL, 0, &key, value, &_5); zephir_check_call_status(); + ZEPHIR_CONCAT_SV(return_value, ":", &key); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View, getVar) +static PHP_METHOD(Phalcon_DataMapper_Query_Bind, remove) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *key_param = NULL, value, _0; + zval *key_param = NULL, store, _0; zval key; zval *this_ptr = getThis(); ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); + ZVAL_UNDEF(&store); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; @@ -134655,2843 +119688,2648 @@ static PHP_METHOD(Phalcon_Mvc_View, getVar) ZEPHIR_MM_GROW(); zephir_fetch_params(1, 1, 0, &key_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&value, &_0, &key, 1))) { - RETURN_MM_NULL(); - } - RETURN_CTOR(&value); -} - -static PHP_METHOD(Phalcon_Mvc_View, getViewsDir) -{ - zval *this_ptr = getThis(); - + zephir_get_strval(&key, key_param); - RETURN_MEMBER(getThis(), "viewsDirs"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&store, &_0); + zephir_array_unset(&store, &key, PH_SEPARATE); + zephir_update_property_zval(this_ptr, ZEND_STRL("store"), &store); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_View, getViewsDirs) +static PHP_METHOD(Phalcon_DataMapper_Query_Bind, setValue) { - zval _0, _1$$3; + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, *value, value_sub, *type_param = NULL, localType; + zval key; zval *this_ptr = getThis(); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&localType); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(key) + Z_PARAM_ZVAL(value) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(type) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - ZEPHIR_OBS_VAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("viewsDirs"), PH_NOISY_CC); - if (Z_TYPE_P(&_0) == IS_STRING) { - zephir_create_array(return_value, 1, 0); - ZEPHIR_OBS_VAR(&_1$$3); - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("viewsDirs"), PH_NOISY_CC); - zephir_array_fast_append(return_value, &_1$$3); - RETURN_MM(); + zephir_fetch_params(1, 2, 1, &key_param, &value, &type_param); + zephir_get_strval(&key, key_param); + if (!type_param) { + type = -1; + } else { + type = zephir_get_intval(type_param); } - RETURN_MM_MEMBER(getThis(), "viewsDirs"); -} - -static PHP_METHOD(Phalcon_Mvc_View, isDisabled) -{ - zval *this_ptr = getThis(); - - RETURN_MEMBER(getThis(), "disabled"); + ZEPHIR_INIT_VAR(&localType); + ZVAL_LONG(&localType, type); + if (ZEPHIR_IS_LONG_IDENTICAL(&localType, -1)) { + ZEPHIR_CALL_METHOD(&localType, this_ptr, "gettype", NULL, 0, value); + zephir_check_call_status(); + } + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 2, 0); + zephir_array_fast_append(&_0, value); + zephir_array_fast_append(&_0, &localType); + zephir_update_property_array(this_ptr, SL("store"), &key, &_0); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_View, partial) +static PHP_METHOD(Phalcon_DataMapper_Query_Bind, setValues) { + zend_string *_3; + zend_ulong _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *partialPath_param = NULL, *params = NULL, params_sub, __$null, viewParams, _3, _4, _5, _6, _7, _0$$3, _1$$3, _2$$3; - zval partialPath; + zephir_fcall_cache_entry *_5 = NULL; + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *values_param = NULL, *type_param = NULL, key, value, *_0, _1, _4$$3, _6$$4; + zval values; zval *this_ptr = getThis(); - ZVAL_UNDEF(&partialPath); - ZVAL_UNDEF(¶ms_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&viewParams); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&values); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_6$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(partialPath) + Z_PARAM_ARRAY(values) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(params) + Z_PARAM_LONG(type) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &partialPath_param, ¶ms); - if (UNEXPECTED(Z_TYPE_P(partialPath_param) != IS_STRING && Z_TYPE_P(partialPath_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'partialPath' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(partialPath_param) == IS_STRING)) { - zephir_get_strval(&partialPath, partialPath_param); + zephir_fetch_params(1, 1, 1, &values_param, &type_param); + zephir_get_arrval(&values, values_param); + if (!type_param) { + type = -1; } else { - ZEPHIR_INIT_VAR(&partialPath); - } - if (!params) { - params = ¶ms_sub; - params = &__$null; + type = zephir_get_intval(type_param); } - if (Z_TYPE_P(params) == IS_ARRAY) { - zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&viewParams, &_0$$3); - ZEPHIR_INIT_VAR(&_1$$3); - zephir_fast_array_merge(&_1$$3, &viewParams, params); - zephir_update_property_zval(this_ptr, ZEND_STRL("viewParams"), &_1$$3); - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_CREATE_SYMBOL_TABLE(); - - } - ZEPHIR_CALL_METHOD(&_3, this_ptr, "loadtemplateengines", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_4, this_ptr, ZEND_STRL("partialsDir"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_5); - ZEPHIR_CONCAT_VV(&_5, &_4, &partialPath); - ZVAL_BOOL(&_6, 0); - ZVAL_BOOL(&_7, 0); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "enginerender", NULL, 0, &_3, &_5, &_6, &_7); - zephir_check_call_status(); - if (Z_TYPE_P(params) == IS_ARRAY) { - zephir_update_property_zval(this_ptr, ZEND_STRL("viewParams"), &viewParams); + zephir_is_iterable(&values, 0, "phalcon/DataMapper/Query/Bind.zep", 111); + if (Z_TYPE_P(&values) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&values), _2, _3, _0) + { + ZEPHIR_INIT_NVAR(&key); + if (_3 != NULL) { + ZVAL_STR_COPY(&key, _3); + } else { + ZVAL_LONG(&key, _2); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0); + ZVAL_LONG(&_4$$3, type); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setvalue", &_5, 0, &key, &value, &_4$$3); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &values, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &values, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &values, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &values, "current", NULL, 0); + zephir_check_call_status(); + ZVAL_LONG(&_6$$4, type); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setvalue", &_5, 0, &key, &value, &_6$$4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &values, "next", NULL, 0); + zephir_check_call_status(); + } } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_View, pick) +static PHP_METHOD(Phalcon_DataMapper_Query_Bind, toArray) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *renderView, renderView_sub, pickView, layout, parts, _0$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&renderView_sub); - ZVAL_UNDEF(&pickView); - ZVAL_UNDEF(&layout); - ZVAL_UNDEF(&parts); - ZVAL_UNDEF(&_0$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(renderView) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &renderView); - if (Z_TYPE_P(renderView) == IS_ARRAY) { - ZEPHIR_CPY_WRT(&pickView, renderView); - } else { - ZEPHIR_INIT_VAR(&layout); - ZVAL_NULL(&layout); - if (zephir_memnstr_str(renderView, SL("/"), "phalcon/Mvc/View.zep", 668)) { - ZEPHIR_INIT_VAR(&parts); - zephir_fast_explode_str(&parts, SL("/"), renderView, LONG_MAX); - ZEPHIR_OBS_NVAR(&layout); - zephir_array_fetch_long(&layout, &parts, 0, PH_NOISY, "phalcon/Mvc/View.zep", 670); - } - ZEPHIR_INIT_VAR(&_0$$4); - zephir_create_array(&_0$$4, 1, 0); - zephir_array_fast_append(&_0$$4, renderView); - ZEPHIR_CPY_WRT(&pickView, &_0$$4); - if (Z_TYPE_P(&layout) != IS_NULL) { - zephir_array_append(&pickView, &layout, PH_SEPARATE, "phalcon/Mvc/View.zep", 676); - } - } - zephir_update_property_zval(this_ptr, ZEND_STRL("pickView"), &pickView); - RETURN_THIS(); + RETURN_MEMBER(getThis(), "store"); } -static PHP_METHOD(Phalcon_Mvc_View, registerEngines) +static PHP_METHOD(Phalcon_DataMapper_Query_Bind, getType) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *engines_param = NULL; - zval engines; + zval *value, value_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&engines); + ZVAL_UNDEF(&value_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(engines) + Z_PARAM_ZVAL(value) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &engines_param); - ZEPHIR_OBS_COPY_OR_DUP(&engines, engines_param); + zephir_fetch_params_without_memory_grow(1, 0, &value); - zephir_update_property_zval(this_ptr, ZEND_STRL("registeredEngines"), &engines); - RETURN_THIS(); + if (Z_TYPE_P(value) == IS_NULL) { + RETURN_LONG(0); + } + if (((Z_TYPE_P(value) == IS_TRUE || Z_TYPE_P(value) == IS_FALSE) == 1)) { + RETURN_LONG(5); + } + if (Z_TYPE_P(value) == IS_LONG) { + RETURN_LONG(1); + } + RETURN_LONG(2); } -static PHP_METHOD(Phalcon_Mvc_View, render) +static PHP_METHOD(Phalcon_DataMapper_Query_Bind, inlineArray) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval params; - zval *controllerName_param = NULL, *actionName_param = NULL, *params_param = NULL, result; - zval controllerName, actionName; + zephir_fcall_cache_entry *_5 = NULL; + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *data_param = NULL, *type_param = NULL, key, value, *_0, _1, _11, _2$$3, _3$$3, _4$$3, _6$$3, _7$$4, _8$$4, _9$$4, _10$$4; + zval data, keys; zval *this_ptr = getThis(); - ZVAL_UNDEF(&controllerName); - ZVAL_UNDEF(&actionName); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&keys); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_8$$4); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&_10$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(controllerName) - Z_PARAM_STR(actionName) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(params) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ARRAY(data) + Z_PARAM_LONG(type) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &controllerName_param, &actionName_param, ¶ms_param); - if (UNEXPECTED(Z_TYPE_P(controllerName_param) != IS_STRING && Z_TYPE_P(controllerName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'controllerName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(controllerName_param) == IS_STRING)) { - zephir_get_strval(&controllerName, controllerName_param); - } else { - ZEPHIR_INIT_VAR(&controllerName); - } - if (UNEXPECTED(Z_TYPE_P(actionName_param) != IS_STRING && Z_TYPE_P(actionName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'actionName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(actionName_param) == IS_STRING)) { - zephir_get_strval(&actionName, actionName_param); - } else { - ZEPHIR_INIT_VAR(&actionName); - } - if (!params_param) { - ZEPHIR_INIT_VAR(¶ms); - array_init(¶ms); - } else { - zephir_get_arrval(¶ms, params_param); - } + zephir_fetch_params(1, 2, 0, &data_param, &type_param); + zephir_get_arrval(&data, data_param); + type = zephir_get_intval(type_param); - ZEPHIR_CALL_METHOD(&result, this_ptr, "processrender", NULL, 0, &controllerName, &actionName, ¶ms); - zephir_check_call_status(); - if (!(zephir_is_true(&result))) { - RETURN_MM_BOOL(0); + ZEPHIR_INIT_VAR(&keys); + array_init(&keys); + zephir_is_iterable(&data, 0, "phalcon/DataMapper/Query/Bind.zep", 170); + if (Z_TYPE_P(&data) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&data), _0) + { + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0); + zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("inlineCount"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_ZVAL_NREF(_3$$3); + ZVAL_LONG(&_3$$3, (zephir_get_numberval(&_2$$3) + 1)); + zephir_update_property_zval(this_ptr, ZEND_STRL("inlineCount"), &_3$$3); + zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("inlineCount"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&key); + ZEPHIR_CONCAT_SVS(&key, "__", &_3$$3, "__"); + ZVAL_LONG(&_4$$3, type); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setvalue", &_5, 0, &key, &value, &_4$$3); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_6$$3); + ZEPHIR_CONCAT_SV(&_6$$3, ":", &key); + zephir_array_append(&keys, &_6$$3, PH_SEPARATE, "phalcon/DataMapper/Query/Bind.zep", 167); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &data, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &data, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&value, &data, "current", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_7$$4, this_ptr, ZEND_STRL("inlineCount"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_ZVAL_NREF(_8$$4); + ZVAL_LONG(&_8$$4, (zephir_get_numberval(&_7$$4) + 1)); + zephir_update_property_zval(this_ptr, ZEND_STRL("inlineCount"), &_8$$4); + zephir_read_property(&_8$$4, this_ptr, ZEND_STRL("inlineCount"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&key); + ZEPHIR_CONCAT_SVS(&key, "__", &_8$$4, "__"); + ZVAL_LONG(&_9$$4, type); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setvalue", &_5, 0, &key, &value, &_9$$4); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_10$$4); + ZEPHIR_CONCAT_SV(&_10$$4, ":", &key); + zephir_array_append(&keys, &_10$$4, PH_SEPARATE, "phalcon/DataMapper/Query/Bind.zep", 167); + ZEPHIR_CALL_METHOD(NULL, &data, "next", NULL, 0); + zephir_check_call_status(); + } } - RETURN_THIS(); + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_VAR(&_11); + zephir_fast_join_str(&_11, SL(", "), &keys); + ZEPHIR_CONCAT_SVS(return_value, "(", &_11, ")"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View, reset) +zend_object *zephir_init_properties_Phalcon_DataMapper_Query_Bind(zend_class_entry *class_type) { + zval _0, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval __$true, __$false, __$null, _0, _1, _2; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("store"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Query_Delete) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Query, Delete, phalcon, datamapper_query_delete, phalcon_datamapper_query_abstractconditions_ce, phalcon_datamapper_query_delete_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_DataMapper_Query_Delete, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *connection, connection_sub, *bind, bind_sub, _1, _2, _3, _4; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&connection_sub); + ZVAL_UNDEF(&bind_sub); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_datamapper_pdo_connection_ce) + Z_PARAM_OBJECT_OF_CLASS(bind, phalcon_datamapper_query_bind_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &connection, &bind); - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("disabled"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("disabled"), &__$false); - } - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("engines"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("engines"), &__$false); - } - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, 5); - zephir_update_property_zval(this_ptr, ZEND_STRL("renderLevel"), &_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("content"), &__$null); + + ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_query_delete_ce, getThis(), "__construct", &_0, 0, connection, bind); + zephir_check_call_status(); ZEPHIR_INIT_VAR(&_1); - array_init(&_1); - zephir_update_property_zval(this_ptr, ZEND_STRL("templatesBefore"), &_1); + ZVAL_STRING(&_1, "FROM"); ZEPHIR_INIT_VAR(&_2); - array_init(&_2); - zephir_update_property_zval(this_ptr, ZEND_STRL("templatesAfter"), &_2); - RETURN_THIS(); + ZVAL_STRING(&_2, ""); + zephir_update_property_array(this_ptr, SL("store"), &_1, &_2); + ZEPHIR_INIT_VAR(&_3); + array_init(&_3); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "RETURNING"); + zephir_update_property_array(this_ptr, SL("store"), &_4, &_3); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_View, setBasePath) +static PHP_METHOD(Phalcon_DataMapper_Query_Delete, from) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *basePath_param = NULL; - zval basePath; + zval *table_param = NULL, _0; + zval table; zval *this_ptr = getThis(); - ZVAL_UNDEF(&basePath); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(basePath) + Z_PARAM_STR(table) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &basePath_param); - zephir_get_strval(&basePath, basePath_param); + zephir_fetch_params(1, 1, 0, &table_param); + zephir_get_strval(&table, table_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("basePath"), &basePath); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "FROM"); + zephir_update_property_array(this_ptr, SL("store"), &_0, &table); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View, setContent) +static PHP_METHOD(Phalcon_DataMapper_Query_Delete, returning) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *content_param = NULL; - zval content; + zval *columns_param = NULL, _0, _1, _2, _3; + zval columns; zval *this_ptr = getThis(); - ZVAL_UNDEF(&content); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(content) + Z_PARAM_ARRAY(columns) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &content_param); - zephir_get_strval(&content, content_param); + zephir_fetch_params(1, 1, 0, &columns_param); + zephir_get_arrval(&columns, columns_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("content"), &content); + ZEPHIR_INIT_VAR(&_0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_2, &_1, SL("RETURNING"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Delete.zep", 60); + zephir_fast_array_merge(&_0, &_2, &columns); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "RETURNING"); + zephir_update_property_array(this_ptr, SL("store"), &_3, &_0); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View, setEventsManager) +static PHP_METHOD(Phalcon_DataMapper_Query_Delete, getStatement) { - zval *eventsManager, eventsManager_sub; + zval _0, _1, _2, _3, _4, _5; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&eventsManager_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) - ZEND_PARSE_PARAMETERS_END(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "buildflags", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_2, &_1, SL("FROM"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Delete.zep", 75); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "WHERE"); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "buildcondition", NULL, 0, &_4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "buildreturning", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVVV(return_value, "DELETE", &_0, " FROM ", &_2, &_3, &_5); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_DataMapper_Query_Delete, reset) +{ + zval _1, _2, _3, _4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_query_delete_ce, getThis(), "reset", &_0, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "FROM"); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, ""); + zephir_update_property_array(this_ptr, SL("store"), &_1, &_2); + ZEPHIR_INIT_VAR(&_3); + array_init(&_3); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "RETURNING"); + zephir_update_property_array(this_ptr, SL("store"), &_4, &_3); + ZEPHIR_MM_RESTORE(); +} + + + + +#ifdef HAVE_CONFIG_H #endif - zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); - zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); + +ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Query_Insert) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Query, Insert, phalcon, datamapper_query_insert, phalcon_datamapper_query_abstractquery_ce, phalcon_datamapper_query_insert_method_entry, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_View, setLayout) +static PHP_METHOD(Phalcon_DataMapper_Query_Insert, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *layout_param = NULL; - zval layout; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *connection, connection_sub, *bind, bind_sub, _1, _2, _3, _4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&layout); + ZVAL_UNDEF(&connection_sub); + ZVAL_UNDEF(&bind_sub); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(layout) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_datamapper_pdo_connection_ce) + Z_PARAM_OBJECT_OF_CLASS(bind, phalcon_datamapper_query_bind_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &layout_param); - zephir_get_strval(&layout, layout_param); + zephir_fetch_params(1, 2, 0, &connection, &bind); - zephir_update_property_zval(this_ptr, ZEND_STRL("layout"), &layout); - RETURN_THIS(); + ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_query_insert_ce, getThis(), "__construct", &_0, 0, connection, bind); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "FROM"); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, ""); + zephir_update_property_array(this_ptr, SL("store"), &_1, &_2); + ZEPHIR_INIT_VAR(&_3); + array_init(&_3); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "RETURNING"); + zephir_update_property_array(this_ptr, SL("store"), &_4, &_3); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_View, setLayoutsDir) +static PHP_METHOD(Phalcon_DataMapper_Query_Insert, column) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *layoutsDir_param = NULL; - zval layoutsDir; + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *column_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _1$$3, _2$$3; + zval column, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&layoutsDir); + ZVAL_UNDEF(&column); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&value_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(layoutsDir) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(column) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(value) + Z_PARAM_LONG(type) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &layoutsDir_param); - zephir_get_strval(&layoutsDir, layoutsDir_param); + zephir_fetch_params(1, 1, 2, &column_param, &value, &type_param); + zephir_get_strval(&column, column_param); + if (!value) { + value = &value_sub; + value = &__$null; + } + if (!type_param) { + type = -1; + } else { + type = zephir_get_intval(type_param); + } - zephir_update_property_zval(this_ptr, ZEND_STRL("layoutsDir"), &layoutsDir); + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_CONCAT_SV(&_0, ":", &column); + zephir_update_property_array_multi(this_ptr, SL("store"), &_0, SL("sz"), 3, SL("COLUMNS"), &column); + if (Z_TYPE_P(value) != IS_NULL) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_2$$3, type); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "setvalue", NULL, 0, &column, value, &_2$$3); + zephir_check_call_status(); + } RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View, setMainView) +static PHP_METHOD(Phalcon_DataMapper_Query_Insert, columns) { + zend_string *_3; + zend_ulong _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *viewPath_param = NULL; - zval viewPath; + zephir_fcall_cache_entry *_4 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *columns_param = NULL, column, value, *_0, _1; + zval columns; zval *this_ptr = getThis(); - ZVAL_UNDEF(&viewPath); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&column); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(viewPath) + Z_PARAM_ARRAY(columns) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &viewPath_param); - zephir_get_strval(&viewPath, viewPath_param); + zephir_fetch_params(1, 1, 0, &columns_param); + zephir_get_arrval(&columns, columns_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("mainView"), &viewPath); + zephir_is_iterable(&columns, 0, "phalcon/DataMapper/Query/Insert.zep", 76); + if (Z_TYPE_P(&columns) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&columns), _2, _3, _0) + { + ZEPHIR_INIT_NVAR(&column); + if (_3 != NULL) { + ZVAL_STR_COPY(&column, _3); + } else { + ZVAL_LONG(&column, _2); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0); + if (Z_TYPE_P(&column) == IS_LONG) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "column", &_4, 0, &value); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "column", &_4, 0, &column, &value); + zephir_check_call_status(); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &columns, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &columns, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&column, &columns, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &columns, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&column) == IS_LONG) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "column", &_4, 0, &value); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "column", &_4, 0, &column, &value); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, &columns, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&column); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View, setPartialsDir) +static PHP_METHOD(Phalcon_DataMapper_Query_Insert, into) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *partialsDir_param = NULL; - zval partialsDir; + zval *table_param = NULL, _0; + zval table; zval *this_ptr = getThis(); - ZVAL_UNDEF(&partialsDir); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(partialsDir) + Z_PARAM_STR(table) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &partialsDir_param); - zephir_get_strval(&partialsDir, partialsDir_param); + zephir_fetch_params(1, 1, 0, &table_param); + zephir_get_strval(&table, table_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("partialsDir"), &partialsDir); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "FROM"); + zephir_update_property_array(this_ptr, SL("store"), &_0, &table); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View, setParamToView) +static PHP_METHOD(Phalcon_DataMapper_Query_Insert, getLastInsertId) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *key_param = NULL, *value, value_sub; - zval key; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, _0; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(key) - Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &key_param, &value); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + zephir_fetch_params(1, 0, 1, &name_param); + if (!name_param) { + ZEPHIR_INIT_VAR(&name); } else { - ZEPHIR_INIT_VAR(&key); + zephir_get_strval(&name, name_param); } - zephir_update_property_array(this_ptr, SL("viewParams"), &key, value); - RETURN_THIS(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "lastinsertid", NULL, 0, &name); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View, setRenderLevel) +static PHP_METHOD(Phalcon_DataMapper_Query_Insert, getStatement) { - zval *level_param = NULL, _0; - zend_long level; + zval _0, _1, _2, _3, _4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(level) - ZEND_PARSE_PARAMETERS_END(); -#endif - + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); - zephir_fetch_params_without_memory_grow(1, 0, &level_param); - level = zephir_get_intval(level_param); + ZEPHIR_MM_GROW(); - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, level); - zephir_update_property_zval(this_ptr, ZEND_STRL("renderLevel"), &_0); - RETURN_THISW(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "buildflags", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_2, &_1, SL("FROM"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Insert.zep", 113); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "buildcolumns", NULL, 204); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "buildreturning", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVVV(return_value, "INSERT", &_0, " INTO ", &_2, &_3, &_4); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View, setTemplateAfter) +static PHP_METHOD(Phalcon_DataMapper_Query_Insert, returning) { - zval _0$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *templateAfter, templateAfter_sub; + zval *columns_param = NULL, _0, _1, _2, _3; + zval columns; zval *this_ptr = getThis(); - ZVAL_UNDEF(&templateAfter_sub); - ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(templateAfter) + Z_PARAM_ARRAY(columns) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &templateAfter); + zephir_fetch_params(1, 1, 0, &columns_param); + zephir_get_arrval(&columns, columns_param); - if (Z_TYPE_P(templateAfter) != IS_ARRAY) { - ZEPHIR_INIT_VAR(&_0$$3); - zephir_create_array(&_0$$3, 1, 0); - zephir_array_fast_append(&_0$$3, templateAfter); - zephir_update_property_zval(this_ptr, ZEND_STRL("templatesAfter"), &_0$$3); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("templatesAfter"), templateAfter); - } + ZEPHIR_INIT_VAR(&_0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_2, &_1, SL("RETURNING"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Insert.zep", 127); + zephir_fast_array_merge(&_0, &_2, &columns); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "RETURNING"); + zephir_update_property_array(this_ptr, SL("store"), &_3, &_0); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View, setTemplateBefore) +static PHP_METHOD(Phalcon_DataMapper_Query_Insert, reset) { - zval _0$$3; + zval _1, _2, _3, _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *templateBefore, templateBefore_sub; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&templateBefore_sub); - ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_query_insert_ce, getThis(), "reset", &_0, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "FROM"); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, ""); + zephir_update_property_array(this_ptr, SL("store"), &_1, &_2); + ZEPHIR_INIT_VAR(&_3); + array_init(&_3); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "RETURNING"); + zephir_update_property_array(this_ptr, SL("store"), &_4, &_3); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_DataMapper_Query_Insert, set) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *column_param = NULL, *value = NULL, value_sub, __$null, _0; + zval column; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&column); + ZVAL_UNDEF(&value_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(templateBefore) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(column) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &templateBefore); + zephir_fetch_params(1, 1, 1, &column_param, &value); + zephir_get_strval(&column, column_param); + if (!value) { + value = &value_sub; + ZEPHIR_CPY_WRT(value, &__$null); + } else { + ZEPHIR_SEPARATE_PARAM(value); + } - if (Z_TYPE_P(templateBefore) != IS_ARRAY) { - ZEPHIR_INIT_VAR(&_0$$3); - zephir_create_array(&_0$$3, 1, 0); - zephir_array_fast_append(&_0$$3, templateBefore); - zephir_update_property_zval(this_ptr, ZEND_STRL("templatesBefore"), &_0$$3); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("templatesBefore"), templateBefore); + if (Z_TYPE_P(value) == IS_NULL) { + ZEPHIR_INIT_NVAR(value); + ZVAL_STRING(value, "NULL"); } + zephir_update_property_array_multi(this_ptr, SL("store"), value, SL("sz"), 3, SL("COLUMNS"), &column); + zephir_read_property(&_0, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "remove", NULL, 0, &column); + zephir_check_call_status(); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View, setVar) +static PHP_METHOD(Phalcon_DataMapper_Query_Insert, buildColumns) { + zend_string *_6; + zend_ulong _5; + zval columns; + zval column, _0, _1, _2, *_3, _4, _10, _11, _12, _13, _14, _15, _16, _17, _7$$3, _9$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *key_param = NULL, *value, value_sub; - zval key; + zephir_fcall_cache_entry *_8 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(key) - Z_PARAM_ZVAL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&column); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_13); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_15); + ZVAL_UNDEF(&_16); + ZVAL_UNDEF(&_17); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&columns); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &key_param, &value); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + + ZEPHIR_INIT_VAR(&columns); + array_init(&columns); + zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_1, &_0, SL("COLUMNS"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Insert.zep", 176); + ZEPHIR_INIT_VAR(&_2); + zephir_is_iterable(&_1, 0, "phalcon/DataMapper/Query/Insert.zep", 180); + if (Z_TYPE_P(&_1) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_1), _5, _6, _3) + { + ZEPHIR_INIT_NVAR(&column); + if (_6 != NULL) { + ZVAL_STR_COPY(&column, _6); + } else { + ZVAL_LONG(&column, _5); + } + ZEPHIR_INIT_NVAR(&_2); + ZVAL_COPY(&_2, _3); + ZEPHIR_CALL_METHOD(&_7$$3, this_ptr, "quoteidentifier", &_8, 0, &column); + zephir_check_call_status(); + zephir_array_append(&columns, &_7$$3, PH_SEPARATE, "phalcon/DataMapper/Query/Insert.zep", 177); + } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_INIT_VAR(&key); + ZEPHIR_CALL_METHOD(NULL, &_1, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_4, &_1, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_4)) { + break; + } + ZEPHIR_CALL_METHOD(&column, &_1, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_2, &_1, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_9$$4, this_ptr, "quoteidentifier", &_8, 0, &column); + zephir_check_call_status(); + zephir_array_append(&columns, &_9$$4, PH_SEPARATE, "phalcon/DataMapper/Query/Insert.zep", 177); + ZEPHIR_CALL_METHOD(NULL, &_1, "next", NULL, 0); + zephir_check_call_status(); + } } + ZEPHIR_INIT_NVAR(&_2); + ZEPHIR_INIT_NVAR(&column); + ZEPHIR_INIT_VAR(&_10); + ZEPHIR_INIT_VAR(&_12); + ZVAL_STRING(&_12, ","); + ZEPHIR_CALL_METHOD(&_11, this_ptr, "indent", NULL, 0, &columns, &_12); + zephir_check_call_status(); + zephir_fast_trim(&_10, &_11, NULL , ZEPHIR_TRIM_LEFT); + ZEPHIR_INIT_NVAR(&_12); + zephir_read_property(&_14, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_15, &_14, SL("COLUMNS"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Insert.zep", 183); + ZEPHIR_CALL_FUNCTION(&_16, "array_values", NULL, 12, &_15); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_17); + ZVAL_STRING(&_17, ","); + ZEPHIR_CALL_METHOD(&_13, this_ptr, "indent", NULL, 0, &_16, &_17); + zephir_check_call_status(); + zephir_fast_trim(&_12, &_13, NULL , ZEPHIR_TRIM_LEFT); + ZEPHIR_CONCAT_SVSVS(return_value, " (", &_10, ") VALUES (", &_12, ")"); + RETURN_MM(); +} - zephir_update_property_array(this_ptr, SL("viewParams"), &key, value); - RETURN_THIS(); + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Query_QueryFactory) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\DataMapper\\Query, QueryFactory, phalcon, datamapper_query_queryfactory, phalcon_datamapper_query_queryfactory_method_entry, 0); + + zend_declare_property_string(phalcon_datamapper_query_queryfactory_ce, SL("selectClass"), "", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_View, setVars) +static PHP_METHOD(Phalcon_DataMapper_Query_QueryFactory, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_bool merge; - zval *params_param = NULL, *merge_param = NULL, _0$$3, _1$$3; - zval params; + zval *selectClass_param = NULL; + zval selectClass; zval *this_ptr = getThis(); - ZVAL_UNDEF(¶ms); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&selectClass); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(params) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_BOOL(merge) + Z_PARAM_STR(selectClass) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, ¶ms_param, &merge_param); - ZEPHIR_OBS_COPY_OR_DUP(¶ms, params_param); - if (!merge_param) { - merge = 1; + zephir_fetch_params(1, 0, 1, &selectClass_param); + if (!selectClass_param) { + ZEPHIR_INIT_VAR(&selectClass); + ZVAL_STRING(&selectClass, ""); } else { - merge = zephir_get_boolval(merge_param); + zephir_get_strval(&selectClass, selectClass_param); } - if (merge) { - ZEPHIR_INIT_VAR(&_0$$3); - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); - zephir_fast_array_merge(&_0$$3, &_1$$3, ¶ms); - zephir_update_property_zval(this_ptr, ZEND_STRL("viewParams"), &_0$$3); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("viewParams"), ¶ms); + if (ZEPHIR_IS_EMPTY(&selectClass)) { + ZEPHIR_INIT_NVAR(&selectClass); + ZVAL_STRING(&selectClass, "Phalcon\\DataMapper\\Query\\Select"); } - RETURN_THIS(); + zephir_update_property_zval(this_ptr, ZEND_STRL("selectClass"), &selectClass); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_View, setViewsDir) +static PHP_METHOD(Phalcon_DataMapper_Query_QueryFactory, newBind) { - zend_string *_6$$5; - zend_ulong _5$$5; - zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_2 = NULL; - zval *viewsDir, viewsDir_sub, position, directory, newViewsDir, _1$$4, *_3$$5, _4$$5, _7$$6, _8$$8; zval *this_ptr = getThis(); - ZVAL_UNDEF(&viewsDir_sub); - ZVAL_UNDEF(&position); - ZVAL_UNDEF(&directory); - ZVAL_UNDEF(&newViewsDir); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_8$$8); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(viewsDir) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &viewsDir); - - _0 = Z_TYPE_P(viewsDir) != IS_STRING; - if (_0) { - _0 = Z_TYPE_P(viewsDir) != IS_ARRAY; - } - if (_0) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Views directory must be a string or an array", "phalcon/Mvc/View.zep", 949); - return; - } - if (Z_TYPE_P(viewsDir) == IS_STRING) { - ZEPHIR_CALL_CE_STATIC(&_1$$4, phalcon_helper_str_ce, "dirseparator", &_2, 129, viewsDir); + object_init_ex(return_value, phalcon_datamapper_query_bind_ce); + if (zephir_has_constructor(return_value)) { + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 0); zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("viewsDirs"), &_1$$4); - } else { - ZEPHIR_INIT_VAR(&newViewsDir); - array_init(&newViewsDir); - zephir_is_iterable(viewsDir, 0, "phalcon/Mvc/View.zep", 967); - if (Z_TYPE_P(viewsDir) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(viewsDir), _5$$5, _6$$5, _3$$5) - { - ZEPHIR_INIT_NVAR(&position); - if (_6$$5 != NULL) { - ZVAL_STR_COPY(&position, _6$$5); - } else { - ZVAL_LONG(&position, _5$$5); - } - ZEPHIR_INIT_NVAR(&directory); - ZVAL_COPY(&directory, _3$$5); - if (Z_TYPE_P(&directory) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Views directory item must be a string", "phalcon/Mvc/View.zep", 961); - return; - } - ZEPHIR_CALL_CE_STATIC(&_7$$6, phalcon_helper_str_ce, "dirseparator", &_2, 129, &directory); - zephir_check_call_status(); - zephir_array_update_zval(&newViewsDir, &position, &_7$$6, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, viewsDir, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_4$$5, viewsDir, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_4$$5)) { - break; - } - ZEPHIR_CALL_METHOD(&position, viewsDir, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&directory, viewsDir, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&directory) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Views directory item must be a string", "phalcon/Mvc/View.zep", 961); - return; - } - ZEPHIR_CALL_CE_STATIC(&_8$$8, phalcon_helper_str_ce, "dirseparator", &_2, 129, &directory); - zephir_check_call_status(); - zephir_array_update_zval(&newViewsDir, &position, &_8$$8, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, viewsDir, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&directory); - ZEPHIR_INIT_NVAR(&position); - zephir_update_property_zval(this_ptr, ZEND_STRL("viewsDirs"), &newViewsDir); } - RETURN_THIS(); + + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View, start) +static PHP_METHOD(Phalcon_DataMapper_Query_QueryFactory, newDelete) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval __$null; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *connection, connection_sub, _0; zval *this_ptr = getThis(); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&connection_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_datamapper_pdo_connection_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &connection); - ZEPHIR_CALL_FUNCTION(NULL, "ob_start", NULL, 388); + + object_init_ex(return_value, phalcon_datamapper_query_delete_ce); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "newbind", NULL, 0); zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("content"), &__$null); - RETURN_THIS(); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 205, connection, &_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View, toString) +static PHP_METHOD(Phalcon_DataMapper_Query_QueryFactory, newInsert) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval params; - zval *controllerName_param = NULL, *actionName_param = NULL, *params_param = NULL, result, _0; - zval controllerName, actionName; + zval *connection, connection_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&controllerName); - ZVAL_UNDEF(&actionName); - ZVAL_UNDEF(&result); + ZVAL_UNDEF(&connection_sub); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(¶ms); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(controllerName) - Z_PARAM_STR(actionName) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(params) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_datamapper_pdo_connection_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &controllerName_param, &actionName_param, ¶ms_param); - if (UNEXPECTED(Z_TYPE_P(controllerName_param) != IS_STRING && Z_TYPE_P(controllerName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'controllerName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(controllerName_param) == IS_STRING)) { - zephir_get_strval(&controllerName, controllerName_param); - } else { - ZEPHIR_INIT_VAR(&controllerName); - } - if (UNEXPECTED(Z_TYPE_P(actionName_param) != IS_STRING && Z_TYPE_P(actionName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'actionName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(actionName_param) == IS_STRING)) { - zephir_get_strval(&actionName, actionName_param); - } else { - ZEPHIR_INIT_VAR(&actionName); - } - if (!params_param) { - ZEPHIR_INIT_VAR(¶ms); - array_init(¶ms); - } else { - zephir_get_arrval(¶ms, params_param); - } + zephir_fetch_params(1, 1, 0, &connection); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "start", NULL, 0); - zephir_check_call_status(); - ZVAL_BOOL(&_0, 0); - ZEPHIR_CALL_METHOD(&result, this_ptr, "processrender", NULL, 0, &controllerName, &actionName, ¶ms, &_0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "finish", NULL, 0); + object_init_ex(return_value, phalcon_datamapper_query_insert_ce); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "newbind", NULL, 0); zephir_check_call_status(); - if (!(zephir_is_true(&result))) { - RETURN_MM_STRING(""); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getcontent", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 206, connection, &_0); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View, engineRender) +static PHP_METHOD(Phalcon_DataMapper_Query_QueryFactory, newSelect) { - zend_string *_9$$3, *_28$$16; - zend_ulong _8$$3, _27$$16; + zend_class_entry *_2; + zval selectClass; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL, *_13 = NULL, *_16 = NULL, *_20 = NULL, *_23 = NULL, *_32 = NULL, *_35 = NULL, *_39 = NULL, *_42 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool silence, mustClean; - zval viewPath, _45$$30; - zval *engines_param = NULL, *viewPath_param = NULL, *silence_param = NULL, *mustClean_param = NULL, basePath, engine, eventsManager, extension, viewsDir, viewsDirPath, viewEnginePath, viewEnginePaths, viewParams, _0, _1, *_2, _3, _4$$3, *_6$$3, _7$$3, _11$$8, _12$$8, _14$$7, _15$$10, _18$$13, _19$$13, _21$$12, _22$$15, _24$$16, *_25$$16, _26$$16, _30$$21, _31$$21, _33$$20, _34$$23, _37$$26, _38$$26, _40$$25, _41$$28, _43$$29, _44$$30; - zval engines, _10$$8, _17$$13, _29$$21, _36$$26; + zval *connection, connection_sub, _0, _1, _3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&engines); - ZVAL_UNDEF(&_10$$8); - ZVAL_UNDEF(&_17$$13); - ZVAL_UNDEF(&_29$$21); - ZVAL_UNDEF(&_36$$26); - ZVAL_UNDEF(&basePath); - ZVAL_UNDEF(&engine); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&extension); - ZVAL_UNDEF(&viewsDir); - ZVAL_UNDEF(&viewsDirPath); - ZVAL_UNDEF(&viewEnginePath); - ZVAL_UNDEF(&viewEnginePaths); - ZVAL_UNDEF(&viewParams); + ZVAL_UNDEF(&connection_sub); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_11$$8); - ZVAL_UNDEF(&_12$$8); - ZVAL_UNDEF(&_14$$7); - ZVAL_UNDEF(&_15$$10); - ZVAL_UNDEF(&_18$$13); - ZVAL_UNDEF(&_19$$13); - ZVAL_UNDEF(&_21$$12); - ZVAL_UNDEF(&_22$$15); - ZVAL_UNDEF(&_24$$16); - ZVAL_UNDEF(&_26$$16); - ZVAL_UNDEF(&_30$$21); - ZVAL_UNDEF(&_31$$21); - ZVAL_UNDEF(&_33$$20); - ZVAL_UNDEF(&_34$$23); - ZVAL_UNDEF(&_37$$26); - ZVAL_UNDEF(&_38$$26); - ZVAL_UNDEF(&_40$$25); - ZVAL_UNDEF(&_41$$28); - ZVAL_UNDEF(&_43$$29); - ZVAL_UNDEF(&_44$$30); - ZVAL_UNDEF(&viewPath); - ZVAL_UNDEF(&_45$$30); + ZVAL_UNDEF(&selectClass); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 4) - Z_PARAM_ARRAY(engines) - Z_PARAM_STR(viewPath) - Z_PARAM_BOOL(silence) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(mustClean) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_datamapper_pdo_connection_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 1, &engines_param, &viewPath_param, &silence_param, &mustClean_param); - zephir_get_arrval(&engines, engines_param); - zephir_get_strval(&viewPath, viewPath_param); - silence = zephir_get_boolval(silence_param); - if (!mustClean_param) { - mustClean = 1; - } else { - mustClean = zephir_get_boolval(mustClean_param); - } + zephir_fetch_params(1, 1, 0, &connection); - zephir_read_property(&_0, this_ptr, ZEND_STRL("basePath"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&basePath, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&viewParams, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_0); - ZEPHIR_INIT_VAR(&viewEnginePaths); - array_init(&viewEnginePaths); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getviewsdirs", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&_1, 0, "phalcon/Mvc/View.zep", 1073); - if (Z_TYPE_P(&_1) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_1), _2) - { - ZEPHIR_INIT_NVAR(&viewsDir); - ZVAL_COPY(&viewsDir, _2); - ZEPHIR_CALL_METHOD(&_4$$3, this_ptr, "isabsolutepath", &_5, 498, &viewPath); - zephir_check_call_status(); - if (!(zephir_is_true(&_4$$3))) { - ZEPHIR_INIT_NVAR(&viewsDirPath); - ZEPHIR_CONCAT_VVV(&viewsDirPath, &basePath, &viewsDir, &viewPath); - } else { - ZEPHIR_CPY_WRT(&viewsDirPath, &viewPath); - } - zephir_is_iterable(&engines, 0, "phalcon/Mvc/View.zep", 1068); - if (Z_TYPE_P(&engines) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&engines), _8$$3, _9$$3, _6$$3) - { - ZEPHIR_INIT_NVAR(&extension); - if (_9$$3 != NULL) { - ZVAL_STR_COPY(&extension, _9$$3); - } else { - ZVAL_LONG(&extension, _8$$3); - } - ZEPHIR_INIT_NVAR(&engine); - ZVAL_COPY(&engine, _6$$3); - ZEPHIR_INIT_NVAR(&viewEnginePath); - ZEPHIR_CONCAT_VV(&viewEnginePath, &viewsDirPath, &extension); - if ((zephir_file_exists(&viewEnginePath) == SUCCESS)) { - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_10$$8); - zephir_create_array(&_10$$8, 1, 0); - zephir_array_fast_append(&_10$$8, &viewEnginePath); - zephir_update_property_zval(this_ptr, ZEND_STRL("activeRenderPaths"), &_10$$8); - ZEPHIR_INIT_NVAR(&_12$$8); - ZVAL_STRING(&_12$$8, "view:beforeRenderView"); - ZEPHIR_CALL_METHOD(&_11$$8, &eventsManager, "fire", &_13, 0, &_12$$8, this_ptr, &viewEnginePath); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_11$$8)) { - continue; - } - } - if (mustClean) { - ZVAL_BOOL(&_14$$7, 1); - } else { - ZVAL_BOOL(&_14$$7, 0); - } - ZEPHIR_CALL_METHOD(NULL, &engine, "render", NULL, 0, &viewEnginePath, &viewParams, &_14$$7); - zephir_check_call_status(); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_15$$10); - ZVAL_STRING(&_15$$10, "view:afterRenderView"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_16, 0, &_15$$10, this_ptr); - zephir_check_call_status(); - } - RETURN_MM_NULL(); - } - zephir_array_append(&viewEnginePaths, &viewEnginePath, PH_SEPARATE, "phalcon/Mvc/View.zep", 1066); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &engines, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_7$$3, &engines, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_7$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&extension, &engines, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&engine, &engines, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&viewEnginePath); - ZEPHIR_CONCAT_VV(&viewEnginePath, &viewsDirPath, &extension); - if ((zephir_file_exists(&viewEnginePath) == SUCCESS)) { - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_17$$13); - zephir_create_array(&_17$$13, 1, 0); - zephir_array_fast_append(&_17$$13, &viewEnginePath); - zephir_update_property_zval(this_ptr, ZEND_STRL("activeRenderPaths"), &_17$$13); - ZEPHIR_INIT_NVAR(&_19$$13); - ZVAL_STRING(&_19$$13, "view:beforeRenderView"); - ZEPHIR_CALL_METHOD(&_18$$13, &eventsManager, "fire", &_20, 0, &_19$$13, this_ptr, &viewEnginePath); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_18$$13)) { - continue; - } - } - if (mustClean) { - ZVAL_BOOL(&_21$$12, 1); - } else { - ZVAL_BOOL(&_21$$12, 0); - } - ZEPHIR_CALL_METHOD(NULL, &engine, "render", NULL, 0, &viewEnginePath, &viewParams, &_21$$12); - zephir_check_call_status(); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_22$$15); - ZVAL_STRING(&_22$$15, "view:afterRenderView"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_23, 0, &_22$$15, this_ptr); - zephir_check_call_status(); - } - RETURN_MM_NULL(); - } - zephir_array_append(&viewEnginePaths, &viewEnginePath, PH_SEPARATE, "phalcon/Mvc/View.zep", 1066); - ZEPHIR_CALL_METHOD(NULL, &engines, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&engine); - ZEPHIR_INIT_NVAR(&extension); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_1, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3, &_1, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3)) { - break; - } - ZEPHIR_CALL_METHOD(&viewsDir, &_1, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_24$$16, this_ptr, "isabsolutepath", &_5, 498, &viewPath); - zephir_check_call_status(); - if (!(zephir_is_true(&_24$$16))) { - ZEPHIR_INIT_NVAR(&viewsDirPath); - ZEPHIR_CONCAT_VVV(&viewsDirPath, &basePath, &viewsDir, &viewPath); - } else { - ZEPHIR_CPY_WRT(&viewsDirPath, &viewPath); - } - zephir_is_iterable(&engines, 0, "phalcon/Mvc/View.zep", 1068); - if (Z_TYPE_P(&engines) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&engines), _27$$16, _28$$16, _25$$16) - { - ZEPHIR_INIT_NVAR(&extension); - if (_28$$16 != NULL) { - ZVAL_STR_COPY(&extension, _28$$16); - } else { - ZVAL_LONG(&extension, _27$$16); - } - ZEPHIR_INIT_NVAR(&engine); - ZVAL_COPY(&engine, _25$$16); - ZEPHIR_INIT_NVAR(&viewEnginePath); - ZEPHIR_CONCAT_VV(&viewEnginePath, &viewsDirPath, &extension); - if ((zephir_file_exists(&viewEnginePath) == SUCCESS)) { - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_29$$21); - zephir_create_array(&_29$$21, 1, 0); - zephir_array_fast_append(&_29$$21, &viewEnginePath); - zephir_update_property_zval(this_ptr, ZEND_STRL("activeRenderPaths"), &_29$$21); - ZEPHIR_INIT_NVAR(&_31$$21); - ZVAL_STRING(&_31$$21, "view:beforeRenderView"); - ZEPHIR_CALL_METHOD(&_30$$21, &eventsManager, "fire", &_32, 0, &_31$$21, this_ptr, &viewEnginePath); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_30$$21)) { - continue; - } - } - if (mustClean) { - ZVAL_BOOL(&_33$$20, 1); - } else { - ZVAL_BOOL(&_33$$20, 0); - } - ZEPHIR_CALL_METHOD(NULL, &engine, "render", NULL, 0, &viewEnginePath, &viewParams, &_33$$20); - zephir_check_call_status(); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_34$$23); - ZVAL_STRING(&_34$$23, "view:afterRenderView"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_35, 0, &_34$$23, this_ptr); - zephir_check_call_status(); - } - RETURN_MM_NULL(); - } - zephir_array_append(&viewEnginePaths, &viewEnginePath, PH_SEPARATE, "phalcon/Mvc/View.zep", 1066); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &engines, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_26$$16, &engines, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_26$$16)) { - break; - } - ZEPHIR_CALL_METHOD(&extension, &engines, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&engine, &engines, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&viewEnginePath); - ZEPHIR_CONCAT_VV(&viewEnginePath, &viewsDirPath, &extension); - if ((zephir_file_exists(&viewEnginePath) == SUCCESS)) { - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_36$$26); - zephir_create_array(&_36$$26, 1, 0); - zephir_array_fast_append(&_36$$26, &viewEnginePath); - zephir_update_property_zval(this_ptr, ZEND_STRL("activeRenderPaths"), &_36$$26); - ZEPHIR_INIT_NVAR(&_38$$26); - ZVAL_STRING(&_38$$26, "view:beforeRenderView"); - ZEPHIR_CALL_METHOD(&_37$$26, &eventsManager, "fire", &_39, 0, &_38$$26, this_ptr, &viewEnginePath); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_37$$26)) { - continue; - } - } - if (mustClean) { - ZVAL_BOOL(&_40$$25, 1); - } else { - ZVAL_BOOL(&_40$$25, 0); - } - ZEPHIR_CALL_METHOD(NULL, &engine, "render", NULL, 0, &viewEnginePath, &viewParams, &_40$$25); - zephir_check_call_status(); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_41$$28); - ZVAL_STRING(&_41$$28, "view:afterRenderView"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_42, 0, &_41$$28, this_ptr); - zephir_check_call_status(); - } - RETURN_MM_NULL(); - } - zephir_array_append(&viewEnginePaths, &viewEnginePath, PH_SEPARATE, "phalcon/Mvc/View.zep", 1066); - ZEPHIR_CALL_METHOD(NULL, &engines, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&engine); - ZEPHIR_INIT_NVAR(&extension); - ZEPHIR_CALL_METHOD(NULL, &_1, "next", NULL, 0); - zephir_check_call_status(); - } + zephir_read_property(&_0, this_ptr, ZEND_STRL("selectClass"), PH_NOISY_CC | PH_READONLY); + zephir_get_strval(&selectClass, &_0); + zephir_fetch_safe_class(&_1, &selectClass); + _2 = zephir_fetch_class_str_ex(Z_STRVAL_P(&_1), Z_STRLEN_P(&_1), ZEND_FETCH_CLASS_AUTO); + if(!_2) { + RETURN_MM_NULL(); } - ZEPHIR_INIT_NVAR(&viewsDir); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - zephir_update_property_zval(this_ptr, ZEND_STRL("activeRenderPaths"), &viewEnginePaths); - ZEPHIR_INIT_VAR(&_43$$29); - ZVAL_STRING(&_43$$29, "view:notFoundView"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_43$$29, this_ptr, &viewEnginePath); + object_init_ex(return_value, _2); + if (zephir_has_constructor(return_value)) { + ZEPHIR_CALL_METHOD(&_3, this_ptr, "newbind", NULL, 0); zephir_check_call_status(); - } - if (!(silence)) { - ZEPHIR_INIT_VAR(&_44$$30); - object_init_ex(&_44$$30, phalcon_mvc_view_exception_ce); - ZEPHIR_INIT_VAR(&_45$$30); - ZEPHIR_CONCAT_SVS(&_45$$30, "View '", &viewPath, "' was not found in any of the views directory"); - ZEPHIR_CALL_METHOD(NULL, &_44$$30, "__construct", NULL, 8, &_45$$30); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 0, connection, &_3); zephir_check_call_status(); - zephir_throw_exception_debug(&_44$$30, "phalcon/Mvc/View.zep", 1082); - ZEPHIR_MM_RESTORE(); - return; } - ZEPHIR_MM_RESTORE(); + + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View, isAbsolutePath) +static PHP_METHOD(Phalcon_DataMapper_Query_QueryFactory, newUpdate) { - unsigned char _6, _2$$3, _4$$3; - zend_bool _5, _1$$3, _3$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *path_param = NULL, _0; - zval path; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *connection, connection_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&path); + ZVAL_UNDEF(&connection_sub); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(path) + Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_datamapper_pdo_connection_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &path_param); - zephir_get_strval(&path, path_param); + zephir_fetch_params(1, 1, 0, &connection); - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_GET_CONSTANT(&_0, "PHP_OS"); - if (ZEPHIR_IS_STRING(&_0, "WINNT")) { - _1$$3 = zephir_fast_strlen_ev(&path) >= 3; - if (_1$$3) { - _2$$3 = ZEPHIR_STRING_OFFSET(&path, 1); - _1$$3 = _2$$3 == ':'; - } - _3$$3 = _1$$3; - if (_3$$3) { - _4$$3 = ZEPHIR_STRING_OFFSET(&path, 2); - _3$$3 = _4$$3 == '\\'; - } - RETURN_MM_BOOL(_3$$3); - } - _5 = zephir_fast_strlen_ev(&path) >= 1; - if (_5) { - _6 = ZEPHIR_STRING_OFFSET(&path, 0); - _5 = _6 == '/'; - } - RETURN_MM_BOOL(_5); + object_init_ex(return_value, phalcon_datamapper_query_update_ce); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "newbind", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 207, connection, &_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View, loadTemplateEngines) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Query_Select) { - zval _18$$11, _24$$17; - zend_class_entry *_12$$9, *_20$$15; - zend_string *_10$$5; - zend_ulong _9$$5; - zval engines, di, registeredEngines, engineService, extension, _0, _1$$3, _2$$4, _3$$6, _4$$6, _6$$6, *_7$$5, _8$$5, _11$$9, _15$$12, _16$$12, _17$$11, _19$$15, _21$$18, _22$$18, _23$$17; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL, *_13 = NULL, *_14 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Query, Select, phalcon, datamapper_query_select, phalcon_datamapper_query_abstractconditions_ce, phalcon_datamapper_query_select_method_entry, 0); - ZVAL_UNDEF(&engines); - ZVAL_UNDEF(&di); - ZVAL_UNDEF(®isteredEngines); - ZVAL_UNDEF(&engineService); - ZVAL_UNDEF(&extension); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&_4$$6); - ZVAL_UNDEF(&_6$$6); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_11$$9); - ZVAL_UNDEF(&_15$$12); - ZVAL_UNDEF(&_16$$12); - ZVAL_UNDEF(&_17$$11); - ZVAL_UNDEF(&_19$$15); - ZVAL_UNDEF(&_21$$18); - ZVAL_UNDEF(&_22$$18); - ZVAL_UNDEF(&_23$$17); - ZVAL_UNDEF(&_18$$11); - ZVAL_UNDEF(&_24$$17); + zend_declare_property_string(phalcon_datamapper_query_select_ce, SL("asAlias"), "", ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_datamapper_query_select_ce, SL("forUpdate"), 0, ZEND_ACC_PROTECTED); + zephir_declare_class_constant_string(phalcon_datamapper_query_select_ce, SL("JOIN_INNER"), "INNER"); + zephir_declare_class_constant_string(phalcon_datamapper_query_select_ce, SL("JOIN_LEFT"), "LEFT"); - ZEPHIR_MM_GROW(); + zephir_declare_class_constant_string(phalcon_datamapper_query_select_ce, SL("JOIN_NATURAL"), "NATURAL"); - zephir_read_property(&_0, this_ptr, ZEND_STRL("engines"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&engines, &_0); - if (ZEPHIR_IS_FALSE_IDENTICAL(&engines)) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&di, &_1$$3); - ZEPHIR_INIT_NVAR(&engines); - array_init(&engines); - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("registeredEngines"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(®isteredEngines, &_1$$3); - if (ZEPHIR_IS_EMPTY(®isteredEngines)) { - ZEPHIR_INIT_VAR(&_2$$4); - object_init_ex(&_2$$4, phalcon_mvc_view_engine_php_ce); - ZEPHIR_CALL_METHOD(NULL, &_2$$4, "__construct", NULL, 499, this_ptr, &di); - zephir_check_call_status(); - zephir_array_update_string(&engines, SL(".phtml"), &_2$$4, PH_COPY | PH_SEPARATE); - } else { - if (Z_TYPE_P(&di) != IS_OBJECT) { - ZEPHIR_INIT_VAR(&_3$$6); - object_init_ex(&_3$$6, phalcon_mvc_view_exception_ce); - ZEPHIR_INIT_VAR(&_6$$6); - ZVAL_STRING(&_6$$6, "application services"); - ZEPHIR_CALL_CE_STATIC(&_4$$6, phalcon_mvc_view_exception_ce, "containerservicenotfound", &_5, 0, &_6$$6); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_3$$6, "__construct", NULL, 8, &_4$$6); - zephir_check_call_status(); - zephir_throw_exception_debug(&_3$$6, "phalcon/Mvc/View.zep", 1127); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_is_iterable(®isteredEngines, 0, "phalcon/Mvc/View.zep", 1164); - if (Z_TYPE_P(®isteredEngines) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(®isteredEngines), _9$$5, _10$$5, _7$$5) - { - ZEPHIR_INIT_NVAR(&extension); - if (_10$$5 != NULL) { - ZVAL_STR_COPY(&extension, _10$$5); - } else { - ZVAL_LONG(&extension, _9$$5); - } - ZEPHIR_INIT_NVAR(&engineService); - ZVAL_COPY(&engineService, _7$$5); - if (Z_TYPE_P(&engineService) == IS_OBJECT) { - if (zephir_is_instance_of(&engineService, SL("Closure"))) { - _12$$9 = zephir_fetch_class_str_ex(SL("Closure"), ZEND_FETCH_CLASS_AUTO); - ZEPHIR_CALL_CE_STATIC(&_11$$9, _12$$9, "bind", &_13, 0, &engineService, &di); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&engineService, &_11$$9); - ZEPHIR_CALL_FUNCTION(&_11$$9, "call_user_func", &_14, 255, &engineService, this_ptr); - zephir_check_call_status(); - zephir_array_update_zval(&engines, &extension, &_11$$9, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&engines, &extension, &engineService, PH_COPY | PH_SEPARATE); - } - } else { - if (Z_TYPE_P(&engineService) != IS_STRING) { - ZEPHIR_INIT_NVAR(&_15$$12); - object_init_ex(&_15$$12, phalcon_mvc_view_exception_ce); - ZEPHIR_INIT_NVAR(&_16$$12); - ZEPHIR_CONCAT_SV(&_16$$12, "Invalid template engine registration for extension: ", &extension); - ZEPHIR_CALL_METHOD(NULL, &_15$$12, "__construct", NULL, 8, &_16$$12); - zephir_check_call_status(); - zephir_throw_exception_debug(&_15$$12, "phalcon/Mvc/View.zep", 1155); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_NVAR(&_18$$11); - zephir_create_array(&_18$$11, 1, 0); - zephir_array_fast_append(&_18$$11, this_ptr); - ZEPHIR_CALL_METHOD(&_17$$11, &di, "get", NULL, 0, &engineService, &_18$$11); - zephir_check_call_status(); - zephir_array_update_zval(&engines, &extension, &_17$$11, PH_COPY | PH_SEPARATE); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, ®isteredEngines, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_8$$5, ®isteredEngines, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_8$$5)) { - break; - } - ZEPHIR_CALL_METHOD(&extension, ®isteredEngines, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&engineService, ®isteredEngines, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&engineService) == IS_OBJECT) { - if (zephir_is_instance_of(&engineService, SL("Closure"))) { - _20$$15 = zephir_fetch_class_str_ex(SL("Closure"), ZEND_FETCH_CLASS_AUTO); - ZEPHIR_CALL_CE_STATIC(&_19$$15, _20$$15, "bind", &_13, 0, &engineService, &di); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&engineService, &_19$$15); - ZEPHIR_CALL_FUNCTION(&_19$$15, "call_user_func", &_14, 255, &engineService, this_ptr); - zephir_check_call_status(); - zephir_array_update_zval(&engines, &extension, &_19$$15, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&engines, &extension, &engineService, PH_COPY | PH_SEPARATE); - } - } else { - if (Z_TYPE_P(&engineService) != IS_STRING) { - ZEPHIR_INIT_NVAR(&_21$$18); - object_init_ex(&_21$$18, phalcon_mvc_view_exception_ce); - ZEPHIR_INIT_NVAR(&_22$$18); - ZEPHIR_CONCAT_SV(&_22$$18, "Invalid template engine registration for extension: ", &extension); - ZEPHIR_CALL_METHOD(NULL, &_21$$18, "__construct", NULL, 8, &_22$$18); - zephir_check_call_status(); - zephir_throw_exception_debug(&_21$$18, "phalcon/Mvc/View.zep", 1155); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_NVAR(&_24$$17); - zephir_create_array(&_24$$17, 1, 0); - zephir_array_fast_append(&_24$$17, this_ptr); - ZEPHIR_CALL_METHOD(&_23$$17, &di, "get", NULL, 0, &engineService, &_24$$17); - zephir_check_call_status(); - zephir_array_update_zval(&engines, &extension, &_23$$17, PH_COPY | PH_SEPARATE); - } - ZEPHIR_CALL_METHOD(NULL, ®isteredEngines, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&engineService); - ZEPHIR_INIT_NVAR(&extension); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("engines"), &engines); - } - RETURN_CCTOR(&engines); + zephir_declare_class_constant_string(phalcon_datamapper_query_select_ce, SL("JOIN_RIGHT"), "RIGHT"); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_View, processRender) +static PHP_METHOD(Phalcon_DataMapper_Query_Select, __call) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, renderLevel = 0; - zend_bool fireEvents, silence = 0, _5, _30; - zval params; - zval *controllerName_param = NULL, *actionName_param = NULL, *params_param = NULL, *fireEvents_param = NULL, layoutsDir, layout, pickView, layoutName, engines, renderView, pickViewAction, eventsManager, disabledLevels, templatesBefore, templatesAfter, templateBefore, templateAfter, _0, _2, _4, _8, _9, _1$$3, _6$$11, _7$$11, _10$$15, _11$$17, *_12$$17, _13$$17, _14$$18, _15$$18, _16$$19, _17$$19, _18$$21, _19$$21, _20$$23, *_21$$23, _22$$23, _23$$24, _24$$24, _25$$25, _26$$25, _27$$27, _28$$27, _29$$13, _31$$28; - zval controllerName, actionName, _3$$7; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval params, proxied, _0$$3, _3$$3; + zval *method_param = NULL, *params_param = NULL, __$true, _5, _1$$3, _2$$3, _4$$3; + zval method, _6; zval *this_ptr = getThis(); - ZVAL_UNDEF(&controllerName); - ZVAL_UNDEF(&actionName); - ZVAL_UNDEF(&_3$$7); - ZVAL_UNDEF(&layoutsDir); - ZVAL_UNDEF(&layout); - ZVAL_UNDEF(&pickView); - ZVAL_UNDEF(&layoutName); - ZVAL_UNDEF(&engines); - ZVAL_UNDEF(&renderView); - ZVAL_UNDEF(&pickViewAction); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&disabledLevels); - ZVAL_UNDEF(&templatesBefore); - ZVAL_UNDEF(&templatesAfter); - ZVAL_UNDEF(&templateBefore); - ZVAL_UNDEF(&templateAfter); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&_6); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&_5); ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_6$$11); - ZVAL_UNDEF(&_7$$11); - ZVAL_UNDEF(&_10$$15); - ZVAL_UNDEF(&_11$$17); - ZVAL_UNDEF(&_13$$17); - ZVAL_UNDEF(&_14$$18); - ZVAL_UNDEF(&_15$$18); - ZVAL_UNDEF(&_16$$19); - ZVAL_UNDEF(&_17$$19); - ZVAL_UNDEF(&_18$$21); - ZVAL_UNDEF(&_19$$21); - ZVAL_UNDEF(&_20$$23); - ZVAL_UNDEF(&_22$$23); - ZVAL_UNDEF(&_23$$24); - ZVAL_UNDEF(&_24$$24); - ZVAL_UNDEF(&_25$$25); - ZVAL_UNDEF(&_26$$25); - ZVAL_UNDEF(&_27$$27); - ZVAL_UNDEF(&_28$$27); - ZVAL_UNDEF(&_29$$13); - ZVAL_UNDEF(&_31$$28); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$3); ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&proxied); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_3$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 4) - Z_PARAM_STR(controllerName) - Z_PARAM_STR(actionName) - Z_PARAM_OPTIONAL + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(method) Z_PARAM_ARRAY(params) - Z_PARAM_BOOL(fireEvents) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 2, &controllerName_param, &actionName_param, ¶ms_param, &fireEvents_param); - if (UNEXPECTED(Z_TYPE_P(controllerName_param) != IS_STRING && Z_TYPE_P(controllerName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'controllerName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(controllerName_param) == IS_STRING)) { - zephir_get_strval(&controllerName, controllerName_param); - } else { - ZEPHIR_INIT_VAR(&controllerName); - } - if (UNEXPECTED(Z_TYPE_P(actionName_param) != IS_STRING && Z_TYPE_P(actionName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'actionName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(actionName_param) == IS_STRING)) { - zephir_get_strval(&actionName, actionName_param); - } else { - ZEPHIR_INIT_VAR(&actionName); - } - if (!params_param) { - ZEPHIR_INIT_VAR(¶ms); - array_init(¶ms); - } else { - zephir_get_arrval(¶ms, params_param); - } - if (!fireEvents_param) { - fireEvents = 1; - } else { - fireEvents = zephir_get_boolval(fireEvents_param); - } + zephir_fetch_params(1, 2, 0, &method_param, ¶ms_param); + zephir_get_strval(&method, method_param); + zephir_get_arrval(¶ms, params_param); - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, 0); - zephir_update_property_zval(this_ptr, ZEND_STRL("currentRenderLevel"), &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("disabled"), PH_NOISY_CC | PH_READONLY); - if (!ZEPHIR_IS_FALSE_IDENTICAL(&_0)) { - ZEPHIR_CALL_FUNCTION(&_1$$3, "ob_get_contents", NULL, 500); + ZEPHIR_INIT_VAR(&proxied); + zephir_create_array(&proxied, 10, 0); + zephir_array_update_string(&proxied, SL("fetchAffected"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&proxied, SL("fetchAll"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&proxied, SL("fetchAssoc"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&proxied, SL("fetchCol"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&proxied, SL("fetchGroup"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&proxied, SL("fetchObject"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&proxied, SL("fetchObjects"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&proxied, SL("fetchOne"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&proxied, SL("fetchPairs"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&proxied, SL("fetchValue"), &__$true, PH_COPY | PH_SEPARATE); + if (EXPECTED(zephir_array_isset(&proxied, &method))) { + ZEPHIR_INIT_VAR(&_0$$3); + zephir_create_array(&_0$$3, 2, 0); + ZEPHIR_OBS_VAR(&_1$$3); + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC); + zephir_array_fast_append(&_0$$3, &_1$$3); + zephir_array_fast_append(&_0$$3, &method); + ZEPHIR_INIT_VAR(&_2$$3); + ZEPHIR_INIT_VAR(&_3$$3); + zephir_create_array(&_3$$3, 2, 0); + ZEPHIR_CALL_METHOD(&_4$$3, this_ptr, "getstatement", NULL, 0); zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("content"), &_1$$3); - RETURN_MM_BOOL(0); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("controllerName"), &controllerName); - zephir_update_property_zval(this_ptr, ZEND_STRL("actionName"), &actionName); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setvars", NULL, 0, ¶ms); - zephir_check_call_status(); - zephir_read_property(&_2, this_ptr, ZEND_STRL("layoutsDir"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&layoutsDir, &_2); - if (!(zephir_is_true(&layoutsDir))) { - ZEPHIR_INIT_NVAR(&layoutsDir); - ZVAL_STRING(&layoutsDir, "layouts/"); - } - zephir_read_property(&_2, this_ptr, ZEND_STRL("layout"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&layout, &_2); - if (zephir_is_true(&layout)) { - ZEPHIR_CPY_WRT(&layoutName, &layout); - } else { - ZEPHIR_CPY_WRT(&layoutName, &controllerName); - } - ZEPHIR_CALL_METHOD(&engines, this_ptr, "loadtemplateengines", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_2, this_ptr, ZEND_STRL("pickView"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&pickView, &_2); - if (Z_TYPE_P(&pickView) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$7); - ZEPHIR_CONCAT_VSV(&_3$$7, &controllerName, "/", &actionName); - ZEPHIR_CPY_WRT(&renderView, &_3$$7); - } else { - ZEPHIR_OBS_NVAR(&renderView); - zephir_array_fetch_long(&renderView, &pickView, 0, PH_NOISY, "phalcon/Mvc/View.zep", 1242); - if (Z_TYPE_P(&layoutName) == IS_NULL) { - ZEPHIR_OBS_VAR(&pickViewAction); - if (zephir_array_isset_long_fetch(&pickViewAction, &pickView, 1, 0)) { - ZEPHIR_CPY_WRT(&layoutName, &pickViewAction); - } - } - } - zephir_read_property(&_2, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_2); - ZEPHIR_INIT_VAR(&_4); - ZEPHIR_CREATE_SYMBOL_TABLE(); - - _5 = fireEvents; - if (_5) { - _5 = Z_TYPE_P(&eventsManager) == IS_OBJECT; - } - if (_5) { - ZEPHIR_INIT_VAR(&_7$$11); - ZVAL_STRING(&_7$$11, "view:beforeRender"); - ZEPHIR_CALL_METHOD(&_6$$11, &eventsManager, "fire", NULL, 0, &_7$$11, this_ptr); + zephir_array_fast_append(&_3$$3, &_4$$3); + ZEPHIR_CALL_METHOD(&_4$$3, this_ptr, "getbindvalues", NULL, 0); zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_6$$11)) { - RETURN_MM_BOOL(0); - } - } - ZEPHIR_CALL_FUNCTION(&_8, "ob_get_contents", NULL, 500); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("content"), &_8); - silence = 1; - zephir_read_property(&_2, this_ptr, ZEND_STRL("disabledLevels"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&disabledLevels, &_2); - ZEPHIR_OBS_VAR(&_9); - zephir_read_property(&_9, this_ptr, ZEND_STRL("renderLevel"), PH_NOISY_CC); - renderLevel = zephir_get_intval(&_9); - if (renderLevel) { - if (renderLevel >= 1) { - if (!(zephir_array_isset_long(&disabledLevels, 1))) { - ZEPHIR_INIT_ZVAL_NREF(_10$$15); - ZVAL_LONG(&_10$$15, 1); - zephir_update_property_zval(this_ptr, ZEND_STRL("currentRenderLevel"), &_10$$15); - if (silence) { - ZVAL_BOOL(&_10$$15, 1); - } else { - ZVAL_BOOL(&_10$$15, 0); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "enginerender", NULL, 0, &engines, &renderView, &_10$$15); - zephir_check_call_status(); - } - } - if (renderLevel >= 2) { - if (!(zephir_array_isset_long(&disabledLevels, 2))) { - ZEPHIR_INIT_ZVAL_NREF(_11$$17); - ZVAL_LONG(&_11$$17, 2); - zephir_update_property_zval(this_ptr, ZEND_STRL("currentRenderLevel"), &_11$$17); - zephir_read_property(&_11$$17, this_ptr, ZEND_STRL("templatesBefore"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&templatesBefore, &_11$$17); - silence = 0; - zephir_is_iterable(&templatesBefore, 0, "phalcon/Mvc/View.zep", 1318); - if (Z_TYPE_P(&templatesBefore) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&templatesBefore), _12$$17) - { - ZEPHIR_INIT_NVAR(&templateBefore); - ZVAL_COPY(&templateBefore, _12$$17); - ZEPHIR_INIT_NVAR(&_14$$18); - ZEPHIR_CONCAT_VV(&_14$$18, &layoutsDir, &templateBefore); - if (silence) { - ZVAL_BOOL(&_15$$18, 1); - } else { - ZVAL_BOOL(&_15$$18, 0); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "enginerender", NULL, 0, &engines, &_14$$18, &_15$$18); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &templatesBefore, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_13$$17, &templatesBefore, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_13$$17)) { - break; - } - ZEPHIR_CALL_METHOD(&templateBefore, &templatesBefore, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_16$$19); - ZEPHIR_CONCAT_VV(&_16$$19, &layoutsDir, &templateBefore); - if (silence) { - ZVAL_BOOL(&_17$$19, 1); - } else { - ZVAL_BOOL(&_17$$19, 0); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "enginerender", NULL, 0, &engines, &_16$$19, &_17$$19); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &templatesBefore, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&templateBefore); - silence = 1; - } - } - if (renderLevel >= 3) { - if (!(zephir_array_isset_long(&disabledLevels, 3))) { - ZEPHIR_INIT_ZVAL_NREF(_18$$21); - ZVAL_LONG(&_18$$21, 3); - zephir_update_property_zval(this_ptr, ZEND_STRL("currentRenderLevel"), &_18$$21); - ZEPHIR_INIT_VAR(&_19$$21); - ZEPHIR_CONCAT_VV(&_19$$21, &layoutsDir, &layoutName); - if (silence) { - ZVAL_BOOL(&_18$$21, 1); - } else { - ZVAL_BOOL(&_18$$21, 0); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "enginerender", NULL, 0, &engines, &_19$$21, &_18$$21); - zephir_check_call_status(); - } - } - if (renderLevel >= 4) { - if (!(zephir_array_isset_long(&disabledLevels, 4))) { - ZEPHIR_INIT_ZVAL_NREF(_20$$23); - ZVAL_LONG(&_20$$23, 4); - zephir_update_property_zval(this_ptr, ZEND_STRL("currentRenderLevel"), &_20$$23); - zephir_read_property(&_20$$23, this_ptr, ZEND_STRL("templatesAfter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&templatesAfter, &_20$$23); - silence = 0; - zephir_is_iterable(&templatesAfter, 0, "phalcon/Mvc/View.zep", 1354); - if (Z_TYPE_P(&templatesAfter) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&templatesAfter), _21$$23) - { - ZEPHIR_INIT_NVAR(&templateAfter); - ZVAL_COPY(&templateAfter, _21$$23); - ZEPHIR_INIT_NVAR(&_23$$24); - ZEPHIR_CONCAT_VV(&_23$$24, &layoutsDir, &templateAfter); - if (silence) { - ZVAL_BOOL(&_24$$24, 1); - } else { - ZVAL_BOOL(&_24$$24, 0); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "enginerender", NULL, 0, &engines, &_23$$24, &_24$$24); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &templatesAfter, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_22$$23, &templatesAfter, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_22$$23)) { - break; - } - ZEPHIR_CALL_METHOD(&templateAfter, &templatesAfter, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_25$$25); - ZEPHIR_CONCAT_VV(&_25$$25, &layoutsDir, &templateAfter); - if (silence) { - ZVAL_BOOL(&_26$$25, 1); - } else { - ZVAL_BOOL(&_26$$25, 0); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "enginerender", NULL, 0, &engines, &_25$$25, &_26$$25); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &templatesAfter, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&templateAfter); - silence = 1; - } - } - if (renderLevel >= 5) { - if (!(zephir_array_isset_long(&disabledLevels, 5))) { - ZEPHIR_INIT_ZVAL_NREF(_27$$27); - ZVAL_LONG(&_27$$27, 5); - zephir_update_property_zval(this_ptr, ZEND_STRL("currentRenderLevel"), &_27$$27); - zephir_read_property(&_27$$27, this_ptr, ZEND_STRL("mainView"), PH_NOISY_CC | PH_READONLY); - if (silence) { - ZVAL_BOOL(&_28$$27, 1); - } else { - ZVAL_BOOL(&_28$$27, 0); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "enginerender", NULL, 0, &engines, &_27$$27, &_28$$27); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_ZVAL_NREF(_29$$13); - ZVAL_LONG(&_29$$13, 0); - zephir_update_property_zval(this_ptr, ZEND_STRL("currentRenderLevel"), &_29$$13); - } - _30 = fireEvents; - if (_30) { - _30 = Z_TYPE_P(&eventsManager) == IS_OBJECT; - } - if (_30) { - ZEPHIR_INIT_VAR(&_31$$28); - ZVAL_STRING(&_31$$28, "view:afterRender"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_31$$28, this_ptr); + zephir_array_fast_append(&_3$$3, &_4$$3); + zephir_fast_array_merge(&_2$$3, &_3$$3, ¶ms); + ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, &_0$$3, &_2$$3); zephir_check_call_status(); + RETURN_MM(); } - RETURN_MM_BOOL(1); + ZEPHIR_INIT_VAR(&_5); + object_init_ex(&_5, spl_ce_BadMethodCallException); + ZEPHIR_INIT_VAR(&_6); + ZEPHIR_CONCAT_SVS(&_6, "Unknown method: [", &method, "]"); + ZEPHIR_CALL_METHOD(NULL, &_5, "__construct", NULL, 95, &_6); + zephir_check_call_status(); + zephir_throw_exception_debug(&_5, "phalcon/DataMapper/Query/Select.zep", 98); + ZEPHIR_MM_RESTORE(); + return; } -zend_object *zephir_init_properties_Phalcon_Mvc_View(zend_class_entry *class_type) +static PHP_METHOD(Phalcon_DataMapper_Query_Select, andHaving) { - zval _0, _2, _4, _6, _8, _10, _12, _14, _1$$3, _3$$4, _5$$5, _7$$6, _9$$7, _11$$8, _13$$9, _15$$10; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_9$$7); - ZVAL_UNDEF(&_11$$8); - ZVAL_UNDEF(&_13$$9); - ZVAL_UNDEF(&_15$$10); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("viewParams"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("viewsDirs"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("viewsDirs"), &_3$$4); - } - zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("templatesBefore"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_4) == IS_NULL) { - ZEPHIR_INIT_VAR(&_5$$5); - array_init(&_5$$5); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("templatesBefore"), &_5$$5); - } - zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("templatesAfter"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_6) == IS_NULL) { - ZEPHIR_INIT_VAR(&_7$$6); - array_init(&_7$$6); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("templatesAfter"), &_7$$6); - } - zephir_read_property_ex(&_8, this_ptr, ZEND_STRL("registeredEngines"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_8) == IS_NULL) { - ZEPHIR_INIT_VAR(&_9$$7); - array_init(&_9$$7); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("registeredEngines"), &_9$$7); - } - zephir_read_property_ex(&_10, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_10) == IS_NULL) { - ZEPHIR_INIT_VAR(&_11$$8); - array_init(&_11$$8); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("params"), &_11$$8); - } - zephir_read_property_ex(&_12, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_12) == IS_NULL) { - ZEPHIR_INIT_VAR(&_13$$9); - array_init(&_13$$9); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_13$$9); - } - zephir_read_property_ex(&_14, this_ptr, ZEND_STRL("disabledLevels"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_14) == IS_NULL) { - ZEPHIR_INIT_VAR(&_15$$10); - array_init(&_15$$10); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("disabledLevels"), &_15$$10); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _0; + zval condition; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&condition); + ZVAL_UNDEF(&value_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(condition) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(value) + Z_PARAM_LONG(type) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &condition_param, &value, &type_param); + zephir_get_strval(&condition, condition_param); + if (!value) { + value = &value_sub; + value = &__$null; + } + if (!type_param) { + type = -1; + } else { + type = zephir_get_intval(type_param); + } - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_ViewBaseInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc, ViewBaseInterface, phalcon, mvc_viewbaseinterface, phalcon_mvc_viewbaseinterface_method_entry); - - return SUCCESS; + ZVAL_LONG(&_0, type); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "having", NULL, 0, &condition, value, &_0); + zephir_check_call_status(); + RETURN_THIS(); } -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewBaseInterface, getContent); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewBaseInterface, getParamsToView); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewBaseInterface, getViewsDir); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewBaseInterface, partial); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewBaseInterface, setContent); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewBaseInterface, setParamToView); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewBaseInterface, setVar); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewBaseInterface, setViewsDir); - - +static PHP_METHOD(Phalcon_DataMapper_Query_Select, asAlias) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *asAlias_param = NULL; + zval asAlias; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&asAlias); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(asAlias) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &asAlias_param); + zephir_get_strval(&asAlias, asAlias_param); + zephir_update_property_zval(this_ptr, ZEND_STRL("asAlias"), &asAlias); + RETURN_THIS(); +} -ZEPHIR_INIT_CLASS(Phalcon_Mvc_ViewInterface) +static PHP_METHOD(Phalcon_DataMapper_Query_Select, appendHaving) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc, ViewInterface, phalcon, mvc_viewinterface, phalcon_mvc_viewinterface_method_entry); - - zend_class_implements(phalcon_mvc_viewinterface_ce, 1, phalcon_mvc_viewbaseinterface_ce); - return SUCCESS; -} + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _0, _1; + zval condition; + zval *this_ptr = getThis(); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, cleanTemplateAfter); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, cleanTemplateBefore); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, disable); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, enable); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, finish); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, getActionName); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, getActiveRenderPath); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, getBasePath); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, getControllerName); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, getLayout); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, getLayoutsDir); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, getMainView); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, getPartialsDir); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, isDisabled); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, pick); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, registerEngines); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, render); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, reset); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, setBasePath); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, setLayout); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, setLayoutsDir); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, setMainView); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, setPartialsDir); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, setRenderLevel); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, setTemplateAfter); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, setTemplateBefore); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_ViewInterface, start); - - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&condition); + ZVAL_UNDEF(&value_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(condition) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(value) + Z_PARAM_LONG(type) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &condition_param, &value, &type_param); + zephir_get_strval(&condition, condition_param); + if (!value) { + value = &value_sub; + value = &__$null; + } + if (!type_param) { + type = -1; + } else { + type = zephir_get_intval(type_param); + } - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Application_Exception) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Application, Exception, phalcon, mvc_application_exception, phalcon_application_exception_ce, NULL, 0); - - return SUCCESS; + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "HAVING"); + ZVAL_LONG(&_1, type); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "appendcondition", NULL, 0, &_0, &condition, value, &_1); + zephir_check_call_status(); + RETURN_THIS(); } - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Controller_BindModelInterface) +static PHP_METHOD(Phalcon_DataMapper_Query_Select, appendJoin) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Controller, BindModelInterface, phalcon, mvc_controller_bindmodelinterface, phalcon_mvc_controller_bindmodelinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Controller_BindModelInterface, getModelName); - - + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_3 = NULL; + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, end, key, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _0$$3, _1$$3, _2$$3; + zval condition; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&condition); + ZVAL_UNDEF(&value_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&end); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_13); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(condition) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(value) + Z_PARAM_LONG(type) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &condition_param, &value, &type_param); + zephir_get_strval(&condition, condition_param); + if (!value) { + value = &value_sub; + value = &__$null; + } + if (!type_param) { + type = -1; + } else { + type = zephir_get_intval(type_param); + } - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Dispatcher_Exception) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Dispatcher, Exception, phalcon, mvc_dispatcher_exception, phalcon_dispatcher_exception_ce, NULL, 0); - - return SUCCESS; + if (!(ZEPHIR_IS_EMPTY(value))) { + zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_2$$3, type); + ZEPHIR_CALL_METHOD(&_1$$3, &_0$$3, "bindinline", NULL, 0, value, &_2$$3); + zephir_check_call_status(); + zephir_concat_self(&condition, &_1$$3); + } + zephir_read_property(&_4, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_5, &_4, SL("FROM"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 173); + ZEPHIR_CALL_CE_STATIC(&end, phalcon_helper_arr_ce, "lastkey", &_3, 49, &_5); + zephir_check_call_status(); + zephir_read_property(&_6, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_7, &_6, SL("FROM"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 174); + zephir_array_fetch(&_8, &_7, &end, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 174); + ZEPHIR_CALL_CE_STATIC(&key, phalcon_helper_arr_ce, "lastkey", &_3, 49, &_8); + zephir_check_call_status(); + zephir_read_property(&_9, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_10, &_9, SL("FROM"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 176); + zephir_array_fetch(&_11, &_10, &end, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 176); + zephir_array_fetch(&_12, &_11, &key, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 176); + ZEPHIR_INIT_VAR(&_13); + ZEPHIR_CONCAT_VV(&_13, &_12, &condition); + zephir_update_property_array_multi(this_ptr, SL("store"), &_13, SL("szz"), 4, SL("FROM"), &end, &key); + RETURN_THIS(); } +static PHP_METHOD(Phalcon_DataMapper_Query_Select, columns) +{ + zval _0, _1, _2, _3, _4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Micro_Collection) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Micro, Collection, phalcon, mvc_micro_collection, phalcon_mvc_micro_collection_method_entry, 0); - - zend_declare_property_null(phalcon_mvc_micro_collection_ce, SL("handler"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_micro_collection_ce, SL("handlers"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_micro_collection_ce, SL("lazy"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_mvc_micro_collection_ce, SL("prefix"), "", ZEND_ACC_PROTECTED); - phalcon_mvc_micro_collection_ce->create_object = zephir_init_properties_Phalcon_Mvc_Micro_Collection; + ZEPHIR_MM_GROW(); - zend_class_implements(phalcon_mvc_micro_collection_ce, 1, phalcon_mvc_micro_collectioninterface_ce); - return SUCCESS; + ZEPHIR_INIT_VAR(&_0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_2, &_1, SL("COLUMNS"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 192); + ZEPHIR_INIT_VAR(&_3); + zephir_get_args(&_3); + zephir_fast_array_merge(&_0, &_2, &_3); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "COLUMNS"); + zephir_update_property_array(this_ptr, SL("store"), &_4, &_0); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Micro_Collection, delete) +static PHP_METHOD(Phalcon_DataMapper_Query_Select, distinct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *routePattern_param = NULL, *handler, handler_sub, *name_param = NULL, _0; - zval routePattern, name; + zval *enable_param = NULL, _0, _1; + zend_bool enable; zval *this_ptr = getThis(); - ZVAL_UNDEF(&routePattern); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&handler_sub); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(routePattern) - Z_PARAM_ZVAL(handler) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) + Z_PARAM_BOOL(enable) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &routePattern_param, &handler, &name_param); - if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { - zephir_get_strval(&routePattern, routePattern_param); - } else { - ZEPHIR_INIT_VAR(&routePattern); - } - if (!name_param) { - ZEPHIR_INIT_VAR(&name); + zephir_fetch_params(1, 0, 1, &enable_param); + if (!enable_param) { + enable = 1; } else { - zephir_get_strval(&name, name_param); + enable = zephir_get_boolval(enable_param); } ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "DELETE"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addmap", NULL, 0, &_0, &routePattern, handler, &name); + ZVAL_STRING(&_0, "DISTINCT"); + if (enable) { + ZVAL_BOOL(&_1, 1); + } else { + ZVAL_BOOL(&_1, 0); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setflag", NULL, 0, &_0, &_1); zephir_check_call_status(); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Micro_Collection, get) +static PHP_METHOD(Phalcon_DataMapper_Query_Select, from) { + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *routePattern_param = NULL, *handler, handler_sub, *name_param = NULL, _0; - zval routePattern, name; + zval *table_param = NULL; + zval table; zval *this_ptr = getThis(); - ZVAL_UNDEF(&routePattern); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&table); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(routePattern) - Z_PARAM_ZVAL(handler) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(table) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &routePattern_param, &handler, &name_param); - if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { - zephir_get_strval(&routePattern, routePattern_param); - } else { - ZEPHIR_INIT_VAR(&routePattern); - } - if (!name_param) { - ZEPHIR_INIT_VAR(&name); - } else { - zephir_get_strval(&name, name_param); - } + zephir_fetch_params(1, 1, 0, &table_param); + zephir_get_strval(&table, table_param); ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "GET"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addmap", NULL, 0, &_0, &routePattern, handler, &name); - zephir_check_call_status(); + zephir_create_array(&_0, 1, 0); + zephir_array_fast_append(&_0, &table); + zephir_update_property_array_multi(this_ptr, SL("store"), &_0, SL("sa"), 3, SL("FROM")); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Micro_Collection, getHandler) +static PHP_METHOD(Phalcon_DataMapper_Query_Select, forUpdate) { + zval *enable_param = NULL, __$true, __$false; + zend_bool enable; zval *this_ptr = getThis(); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(enable) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "handler"); -} - -static PHP_METHOD(Phalcon_Mvc_Micro_Collection, getHandlers) -{ - zval *this_ptr = getThis(); - + zephir_fetch_params_without_memory_grow(0, 1, &enable_param); + if (!enable_param) { + enable = 1; + } else { + enable = zephir_get_boolval(enable_param); + } - RETURN_MEMBER(getThis(), "handlers"); + if (enable) { + zephir_update_property_zval(this_ptr, ZEND_STRL("forUpdate"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("forUpdate"), &__$false); + } + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_Micro_Collection, getPrefix) +static PHP_METHOD(Phalcon_DataMapper_Query_Select, getStatement) { + zval _0, _1, _2, _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + + ZEPHIR_MM_GROW(); - RETURN_MEMBER(getThis(), "prefix"); + ZEPHIR_INIT_VAR(&_0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_2, &_1, SL("UNION"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 246); + zephir_fast_join_str(&_0, SL(""), &_2); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getcurrentstatement", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CONCAT_VV(return_value, &_0, &_3); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Micro_Collection, head) +static PHP_METHOD(Phalcon_DataMapper_Query_Select, groupBy) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *routePattern_param = NULL, *handler, handler_sub, *name_param = NULL, _0; - zval routePattern, name; + zval *groupBy, groupBy_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&routePattern); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&groupBy_sub); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(routePattern) - Z_PARAM_ZVAL(handler) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(groupBy) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &routePattern_param, &handler, &name_param); - if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { - zephir_get_strval(&routePattern, routePattern_param); - } else { - ZEPHIR_INIT_VAR(&routePattern); - } - if (!name_param) { - ZEPHIR_INIT_VAR(&name); - } else { - zephir_get_strval(&name, name_param); - } + zephir_fetch_params(1, 1, 0, &groupBy); ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "HEAD"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addmap", NULL, 0, &_0, &routePattern, handler, &name); + ZVAL_STRING(&_0, "GROUP"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processvalue", NULL, 0, &_0, groupBy); zephir_check_call_status(); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Micro_Collection, isLazy) +static PHP_METHOD(Phalcon_DataMapper_Query_Select, hasColumns) { + zval _0, _1; zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + - RETURN_MEMBER(getThis(), "lazy"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_1, &_0, SL("COLUMNS"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 270); + RETURN_BOOL(zephir_fast_count_int(&_1) > 0); } -static PHP_METHOD(Phalcon_Mvc_Micro_Collection, map) +static PHP_METHOD(Phalcon_DataMapper_Query_Select, having) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *routePattern_param = NULL, *handler, handler_sub, *name_param = NULL, _0; - zval routePattern, name; + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _0, _1, _2; + zval condition; zval *this_ptr = getThis(); - ZVAL_UNDEF(&routePattern); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&condition); + ZVAL_UNDEF(&value_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(routePattern) - Z_PARAM_ZVAL(handler) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(condition) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) + Z_PARAM_ZVAL_OR_NULL(value) + Z_PARAM_LONG(type) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &routePattern_param, &handler, &name_param); - if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { - zephir_get_strval(&routePattern, routePattern_param); - } else { - ZEPHIR_INIT_VAR(&routePattern); + zephir_fetch_params(1, 1, 2, &condition_param, &value, &type_param); + zephir_get_strval(&condition, condition_param); + if (!value) { + value = &value_sub; + value = &__$null; } - if (!name_param) { - ZEPHIR_INIT_VAR(&name); + if (!type_param) { + type = -1; } else { - zephir_get_strval(&name, name_param); + type = zephir_get_intval(type_param); } - ZVAL_NULL(&_0); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addmap", NULL, 0, &_0, &routePattern, handler, &name); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "HAVING"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "AND "); + ZVAL_LONG(&_2, type); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addcondition", NULL, 0, &_0, &_1, &condition, value, &_2); zephir_check_call_status(); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Micro_Collection, mapVia) +static PHP_METHOD(Phalcon_DataMapper_Query_Select, join) { + zend_bool _5, _10; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *routePattern_param = NULL, *handler, handler_sub, *method, method_sub, *name_param = NULL; - zval routePattern, name; + zephir_fcall_cache_entry *_19 = NULL; + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *join_param = NULL, *table_param = NULL, *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, key, _0, _1, _2, _3, _4, _6, _7, _8, _9, _11, _12, _13, _14, _20, _21, _16$$5, _17$$5, _18$$5; + zval join, table, condition, _22, _15$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&routePattern); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&handler_sub); - ZVAL_UNDEF(&method_sub); + ZVAL_UNDEF(&join); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&condition); + ZVAL_UNDEF(&_22); + ZVAL_UNDEF(&_15$$4); + ZVAL_UNDEF(&value_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_13); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_20); + ZVAL_UNDEF(&_21); + ZVAL_UNDEF(&_16$$5); + ZVAL_UNDEF(&_17$$5); + ZVAL_UNDEF(&_18$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 4) - Z_PARAM_STR(routePattern) - Z_PARAM_ZVAL(handler) - Z_PARAM_ZVAL(method) + ZEND_PARSE_PARAMETERS_START(3, 5) + Z_PARAM_STR(join) + Z_PARAM_STR(table) + Z_PARAM_STR(condition) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) + Z_PARAM_ZVAL_OR_NULL(value) + Z_PARAM_LONG(type) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 1, &routePattern_param, &handler, &method, &name_param); - if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { - zephir_get_strval(&routePattern, routePattern_param); - } else { - ZEPHIR_INIT_VAR(&routePattern); + zephir_fetch_params(1, 3, 2, &join_param, &table_param, &condition_param, &value, &type_param); + zephir_get_strval(&join, join_param); + zephir_get_strval(&table, table_param); + zephir_get_strval(&condition, condition_param); + if (!value) { + value = &value_sub; + value = &__$null; } - if (!name_param) { - ZEPHIR_INIT_VAR(&name); + if (!type_param) { + type = -1; } else { - zephir_get_strval(&name, name_param); + type = zephir_get_intval(type_param); } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addmap", NULL, 0, method, &routePattern, handler, &name); + ZEPHIR_INIT_VAR(&_0); + zephir_fast_trim(&_0, &join, NULL , ZEPHIR_TRIM_BOTH); + ZEPHIR_INIT_NVAR(&join); + zephir_fast_strtoupper(&join, &_0); + ZVAL_LONG(&_1, -4); + ZEPHIR_INIT_VAR(&_2); + zephir_substr(&_2, &join, -4 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + if (!ZEPHIR_IS_STRING_IDENTICAL(&_2, "JOIN")) { + zephir_concat_self_str(&join, " JOIN", sizeof(" JOIN") - 1); + } + ZEPHIR_INIT_VAR(&_3); + zephir_fast_trim(&_3, &condition, NULL , ZEPHIR_TRIM_LEFT); + zephir_get_strval(&condition, &_3); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, ""); + _5 = !ZEPHIR_IS_IDENTICAL(&_4, &condition); + if (_5) { + ZEPHIR_INIT_VAR(&_6); + ZVAL_LONG(&_7, 0); + ZVAL_LONG(&_8, 3); + ZEPHIR_INIT_VAR(&_9); + zephir_substr(&_9, &condition, 0 , 3 , 0); + zephir_fast_strtoupper(&_6, &_9); + _5 = !ZEPHIR_IS_STRING_IDENTICAL(&_6, "ON "); + } + _10 = _5; + if (_10) { + ZEPHIR_INIT_VAR(&_11); + ZVAL_LONG(&_12, 0); + ZVAL_LONG(&_13, 6); + ZEPHIR_INIT_VAR(&_14); + zephir_substr(&_14, &condition, 0 , 6 , 0); + zephir_fast_strtoupper(&_11, &_14); + _10 = !ZEPHIR_IS_STRING_IDENTICAL(&_11, "USING "); + } + if (_10) { + ZEPHIR_INIT_VAR(&_15$$4); + ZEPHIR_CONCAT_SV(&_15$$4, "ON ", &condition); + ZEPHIR_CPY_WRT(&condition, &_15$$4); + } + if (!(ZEPHIR_IS_EMPTY(value))) { + zephir_read_property(&_16$$5, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_18$$5, type); + ZEPHIR_CALL_METHOD(&_17$$5, &_16$$5, "bindinline", NULL, 0, value, &_18$$5); + zephir_check_call_status(); + zephir_concat_self(&condition, &_17$$5); + } + zephir_read_property(&_20, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_21, &_20, SL("FROM"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 331); + ZEPHIR_CALL_CE_STATIC(&key, phalcon_helper_arr_ce, "lastkey", &_19, 49, &_21); zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_22); + ZEPHIR_CONCAT_VSVSV(&_22, &join, " ", &table, " ", &condition); + zephir_update_property_array_multi(this_ptr, SL("store"), &_22, SL("sza"), 4, SL("FROM"), &key); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Micro_Collection, options) +static PHP_METHOD(Phalcon_DataMapper_Query_Select, orHaving) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *routePattern_param = NULL, *handler, handler_sub, *name_param = NULL, _0; - zval routePattern, name; + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *condition_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _0, _1, _2; + zval condition; zval *this_ptr = getThis(); - ZVAL_UNDEF(&routePattern); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&condition); + ZVAL_UNDEF(&value_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(routePattern) - Z_PARAM_ZVAL(handler) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(condition) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) + Z_PARAM_ZVAL_OR_NULL(value) + Z_PARAM_LONG(type) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &routePattern_param, &handler, &name_param); - if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { - zephir_get_strval(&routePattern, routePattern_param); - } else { - ZEPHIR_INIT_VAR(&routePattern); + zephir_fetch_params(1, 1, 2, &condition_param, &value, &type_param); + zephir_get_strval(&condition, condition_param); + if (!value) { + value = &value_sub; + value = &__$null; } - if (!name_param) { - ZEPHIR_INIT_VAR(&name); + if (!type_param) { + type = -1; } else { - zephir_get_strval(&name, name_param); + type = zephir_get_intval(type_param); } ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "OPTIONS"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addmap", NULL, 0, &_0, &routePattern, handler, &name); + ZVAL_STRING(&_0, "HAVING"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "OR "); + ZVAL_LONG(&_2, type); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addcondition", NULL, 0, &_0, &_1, &condition, value, &_2); zephir_check_call_status(); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Micro_Collection, patch) +static PHP_METHOD(Phalcon_DataMapper_Query_Select, reset) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval __$true, __$false, _1; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *routePattern_param = NULL, *handler, handler_sub, *name_param = NULL, _0; - zval routePattern, name; + zephir_fcall_cache_entry *_0 = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&routePattern); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&handler_sub); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(routePattern) - Z_PARAM_ZVAL(handler) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &routePattern_param, &handler, &name_param); - if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { - zephir_get_strval(&routePattern, routePattern_param); - } else { - ZEPHIR_INIT_VAR(&routePattern); - } - if (!name_param) { - ZEPHIR_INIT_VAR(&name); + + ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_query_select_ce, getThis(), "reset", &_0, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, ""); + zephir_update_property_zval(this_ptr, ZEND_STRL("asAlias"), &_1); + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("forUpdate"), &__$true); } else { - zephir_get_strval(&name, name_param); + zephir_update_property_zval(this_ptr, ZEND_STRL("forUpdate"), &__$false); } + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_DataMapper_Query_Select, subSelect) +{ + zval _0, _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "PATCH"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addmap", NULL, 0, &_0, &routePattern, handler, &name); + ZEPHIR_MM_GROW(); + + object_init_ex(return_value, phalcon_datamapper_query_select_ce); + zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_1, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 208, &_0, &_1); zephir_check_call_status(); - RETURN_THIS(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Micro_Collection, post) +static PHP_METHOD(Phalcon_DataMapper_Query_Select, union) { + zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *routePattern_param = NULL, *handler, handler_sub, *name_param = NULL, _0; - zval routePattern, name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&routePattern); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&handler_sub); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(routePattern) - Z_PARAM_ZVAL(handler) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &routePattern_param, &handler, &name_param); - if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { - zephir_get_strval(&routePattern, routePattern_param); - } else { - ZEPHIR_INIT_VAR(&routePattern); - } - if (!name_param) { - ZEPHIR_INIT_VAR(&name); - } else { - zephir_get_strval(&name, name_param); - } - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "POST"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addmap", NULL, 0, &_0, &routePattern, handler, &name); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, " UNION "); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getcurrentstatement", NULL, 0, &_1); + zephir_check_call_status(); + zephir_update_property_array_multi(this_ptr, SL("store"), &_0, SL("sa"), 3, SL("UNION")); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "reset", NULL, 0); zephir_check_call_status(); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Micro_Collection, put) +static PHP_METHOD(Phalcon_DataMapper_Query_Select, unionAll) { + zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *routePattern_param = NULL, *handler, handler_sub, *name_param = NULL, _0; - zval routePattern, name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&routePattern); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&handler_sub); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(routePattern) - Z_PARAM_ZVAL(handler) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &routePattern_param, &handler, &name_param); - if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { - zephir_get_strval(&routePattern, routePattern_param); - } else { - ZEPHIR_INIT_VAR(&routePattern); - } - if (!name_param) { - ZEPHIR_INIT_VAR(&name); - } else { - zephir_get_strval(&name, name_param); - } - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "PUT"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "addmap", NULL, 0, &_0, &routePattern, handler, &name); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, " UNION ALL "); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getcurrentstatement", NULL, 0, &_1); + zephir_check_call_status(); + zephir_update_property_array_multi(this_ptr, SL("store"), &_0, SL("sa"), 3, SL("UNION")); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "reset", NULL, 0); zephir_check_call_status(); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Micro_Collection, setHandler) +static PHP_METHOD(Phalcon_DataMapper_Query_Select, getCurrentStatement) { - zend_bool lazy; - zval *handler, handler_sub, *lazy_param = NULL, __$true, __$false; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *suffix_param = NULL, statement, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13$$4, _14$$4; + zval suffix, forUpdate; zval *this_ptr = getThis(); - ZVAL_UNDEF(&handler_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&suffix); + ZVAL_UNDEF(&forUpdate); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_13$$4); + ZVAL_UNDEF(&_14$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(handler) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_BOOL(lazy) + Z_PARAM_STR(suffix) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 1, &handler, &lazy_param); - if (!lazy_param) { - lazy = 0; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &suffix_param); + if (!suffix_param) { + ZEPHIR_INIT_VAR(&suffix); + ZVAL_STRING(&suffix, ""); } else { - lazy = zephir_get_boolval(lazy_param); + zephir_get_strval(&suffix, suffix_param); } - zephir_update_property_zval(this_ptr, ZEND_STRL("handler"), handler); - if (lazy) { - zephir_update_property_zval(this_ptr, ZEND_STRL("lazy"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("lazy"), &__$false); + ZEPHIR_INIT_VAR(&forUpdate); + zephir_read_property(&_0, this_ptr, ZEND_STRL("forUpdate"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_0)) { + ZEPHIR_INIT_NVAR(&forUpdate); + ZVAL_STRING(&forUpdate, " FOR UPDATE"); } - RETURN_THISW(); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "buildflags", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "buildlimitearly", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "buildcolumns", NULL, 209); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "buildfrom", NULL, 210); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_6); + ZVAL_STRING(&_6, "WHERE"); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "buildcondition", NULL, 0, &_6); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_6); + ZVAL_STRING(&_6, "GROUP"); + ZEPHIR_CALL_METHOD(&_7, this_ptr, "buildby", NULL, 0, &_6); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_6); + ZVAL_STRING(&_6, "HAVING"); + ZEPHIR_CALL_METHOD(&_8, this_ptr, "buildcondition", NULL, 0, &_6); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_6); + ZVAL_STRING(&_6, "ORDER"); + ZEPHIR_CALL_METHOD(&_9, this_ptr, "buildby", NULL, 0, &_6); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_10, this_ptr, "buildlimit", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&statement); + ZEPHIR_CONCAT_SVVVVVVVVVV(&statement, "SELECT", &_1, &_2, &_3, &_4, &_5, &_7, &_8, &_9, &_10, &forUpdate); + zephir_read_property(&_11, this_ptr, ZEND_STRL("asAlias"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_12); + ZVAL_STRING(&_12, ""); + if (UNEXPECTED(!ZEPHIR_IS_IDENTICAL(&_12, &_11))) { + zephir_read_property(&_13$$4, this_ptr, ZEND_STRL("asAlias"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_14$$4); + ZEPHIR_CONCAT_SVSV(&_14$$4, "(", &statement, ") AS ", &_13$$4); + ZEPHIR_CPY_WRT(&statement, &_14$$4); + } + ZEPHIR_CONCAT_VV(return_value, &statement, &suffix); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Micro_Collection, setLazy) +static PHP_METHOD(Phalcon_DataMapper_Query_Select, buildColumns) { - zval *lazy_param = NULL, __$true, __$false; - zend_bool lazy; + zval columns, _0, _3, _1$$3, _2$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(lazy) - ZEND_PARSE_PARAMETERS_END(); -#endif - + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); - zephir_fetch_params_without_memory_grow(1, 0, &lazy_param); - if (UNEXPECTED(Z_TYPE_P(lazy_param) != IS_TRUE && Z_TYPE_P(lazy_param) != IS_FALSE)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'lazy' must be of the type bool")); - RETURN_NULL(); - } - lazy = (Z_TYPE_P(lazy_param) == IS_TRUE); + ZEPHIR_MM_GROW(); - if (lazy) { - zephir_update_property_zval(this_ptr, ZEND_STRL("lazy"), &__$true); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "hascolumns", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_0))) { + ZEPHIR_INIT_VAR(&columns); + zephir_create_array(&columns, 1, 0); + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, "*"); + zephir_array_fast_append(&columns, &_1$$3); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("lazy"), &__$false); + zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_OBS_NVAR(&columns); + zephir_array_fetch_string(&columns, &_2$$4, SL("COLUMNS"), PH_NOISY, "phalcon/DataMapper/Query/Select.zep", 457); } - RETURN_THISW(); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, ","); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "indent", NULL, 0, &columns, &_3); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Micro_Collection, setPrefix) +static PHP_METHOD(Phalcon_DataMapper_Query_Select, buildFrom) { + zval from; + zval table, _0, _1, _2, _3, *_4, _5, _14, _15, _6$$4, _8$$4, _10$$4, _11$$5, _12$$5, _13$$5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *prefix_param = NULL; - zval prefix; + zephir_fcall_cache_entry *_7 = NULL, *_9 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&prefix); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(prefix) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_15); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_8$$4); + ZVAL_UNDEF(&_10$$4); + ZVAL_UNDEF(&_11$$5); + ZVAL_UNDEF(&_12$$5); + ZVAL_UNDEF(&_13$$5); + ZVAL_UNDEF(&from); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &prefix_param); - if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); - RETURN_MM_NULL(); + + ZEPHIR_INIT_VAR(&from); + array_init(&from); + zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_1, &_0, SL("FROM"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 473); + if (ZEPHIR_IS_EMPTY(&_1)) { + RETURN_MM_STRING(""); } - if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { - zephir_get_strval(&prefix, prefix_param); + zephir_read_property(&_2, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_3, &_2, SL("FROM"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Select.zep", 477); + zephir_is_iterable(&_3, 0, "phalcon/DataMapper/Query/Select.zep", 481); + if (Z_TYPE_P(&_3) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_3), _4) + { + ZEPHIR_INIT_NVAR(&table); + ZVAL_COPY(&table, _4); + ZEPHIR_MAKE_REF(&table); + ZEPHIR_CALL_FUNCTION(&_6$$4, "array_shift", &_7, 24, &table); + ZEPHIR_UNREF(&table); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_8$$4, this_ptr, "indent", &_9, 0, &table); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_10$$4); + ZEPHIR_CONCAT_VV(&_10$$4, &_6$$4, &_8$$4); + zephir_array_append(&from, &_10$$4, PH_SEPARATE, "phalcon/DataMapper/Query/Select.zep", 478); + } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_INIT_VAR(&prefix); + ZEPHIR_CALL_METHOD(NULL, &_3, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_5, &_3, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_5)) { + break; + } + ZEPHIR_CALL_METHOD(&table, &_3, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_MAKE_REF(&table); + ZEPHIR_CALL_FUNCTION(&_11$$5, "array_shift", &_7, 24, &table); + ZEPHIR_UNREF(&table); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_12$$5, this_ptr, "indent", &_9, 0, &table); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_13$$5); + ZEPHIR_CONCAT_VV(&_13$$5, &_11$$5, &_12$$5); + zephir_array_append(&from, &_13$$5, PH_SEPARATE, "phalcon/DataMapper/Query/Select.zep", 478); + ZEPHIR_CALL_METHOD(NULL, &_3, "next", NULL, 0); + zephir_check_call_status(); + } } + ZEPHIR_INIT_NVAR(&table); + ZEPHIR_INIT_VAR(&_15); + ZVAL_STRING(&_15, ","); + ZEPHIR_CALL_METHOD(&_14, this_ptr, "indent", &_9, 0, &from, &_15); + zephir_check_call_status(); + ZEPHIR_CONCAT_SV(return_value, " FROM", &_14); + RETURN_MM(); +} - zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &prefix); - RETURN_THIS(); + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Query_Update) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Query, Update, phalcon, datamapper_query_update, phalcon_datamapper_query_abstractconditions_ce, phalcon_datamapper_query_update_method_entry, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Micro_Collection, addMap) +static PHP_METHOD(Phalcon_DataMapper_Query_Update, __construct) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval routePattern, name; - zval *method, method_sub, *routePattern_param = NULL, *handler, handler_sub, *name_param = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *connection, connection_sub, *bind, bind_sub, _1, _2, _3, _4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&method_sub); - ZVAL_UNDEF(&handler_sub); - ZVAL_UNDEF(&routePattern); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&connection_sub); + ZVAL_UNDEF(&bind_sub); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(4, 4) - Z_PARAM_ZVAL(method) - Z_PARAM_STR(routePattern) - Z_PARAM_ZVAL(handler) - Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_datamapper_pdo_connection_ce) + Z_PARAM_OBJECT_OF_CLASS(bind, phalcon_datamapper_query_bind_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 4, 0, &method, &routePattern_param, &handler, &name_param); - if (UNEXPECTED(Z_TYPE_P(routePattern_param) != IS_STRING && Z_TYPE_P(routePattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'routePattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(routePattern_param) == IS_STRING)) { - zephir_get_strval(&routePattern, routePattern_param); - } else { - ZEPHIR_INIT_VAR(&routePattern); - } - zephir_get_strval(&name, name_param); + zephir_fetch_params(1, 2, 0, &connection, &bind); - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 4, 0); - zephir_array_fast_append(&_0, method); - zephir_array_fast_append(&_0, &routePattern); - zephir_array_fast_append(&_0, handler); - zephir_array_fast_append(&_0, &name); - zephir_update_property_array_append(this_ptr, SL("handlers"), &_0); + ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_query_update_ce, getThis(), "__construct", &_0, 0, connection, bind); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "FROM"); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, ""); + zephir_update_property_array(this_ptr, SL("store"), &_1, &_2); + ZEPHIR_INIT_VAR(&_3); + array_init(&_3); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "RETURNING"); + zephir_update_property_array(this_ptr, SL("store"), &_4, &_3); ZEPHIR_MM_RESTORE(); } -zend_object *zephir_init_properties_Phalcon_Mvc_Micro_Collection(zend_class_entry *class_type) +static PHP_METHOD(Phalcon_DataMapper_Query_Update, column) { - zval _0, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("handlers"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("handlers"), &_1$$3); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *column_param = NULL, *value = NULL, value_sub, *type_param = NULL, __$null, _1$$3, _2$$3; + zval column, _0; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&column); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&value_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(column) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(value) + Z_PARAM_LONG(type) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &column_param, &value, &type_param); + zephir_get_strval(&column, column_param); + if (!value) { + value = &value_sub; + value = &__$null; + } + if (!type_param) { + type = -1; + } else { + type = zephir_get_intval(type_param); + } - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Micro_CollectionInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Micro, CollectionInterface, phalcon, mvc_micro_collectioninterface, phalcon_mvc_micro_collectioninterface_method_entry); - - return SUCCESS; + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_CONCAT_SV(&_0, ":", &column); + zephir_update_property_array_multi(this_ptr, SL("store"), &_0, SL("sz"), 3, SL("COLUMNS"), &column); + if (Z_TYPE_P(value) != IS_NULL) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_2$$3, type); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "setvalue", NULL, 0, &column, value, &_2$$3); + zephir_check_call_status(); + } + RETURN_THIS(); } -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, delete); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, get); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, getHandler); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, getHandlers); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, getPrefix); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, head); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, isLazy); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, map); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, options); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, patch); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, post); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, put); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, setHandler); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, setLazy); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_CollectionInterface, setPrefix); - - +static PHP_METHOD(Phalcon_DataMapper_Query_Update, columns) +{ + zend_string *_3; + zend_ulong _2; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_4 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *columns_param = NULL, column, value, *_0, _1; + zval columns; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&column); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(columns) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &columns_param); + zephir_get_arrval(&columns, columns_param); - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Micro_Exception) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Micro, Exception, phalcon, mvc_micro_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; + zephir_is_iterable(&columns, 0, "phalcon/DataMapper/Query/Update.zep", 76); + if (Z_TYPE_P(&columns) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&columns), _2, _3, _0) + { + ZEPHIR_INIT_NVAR(&column); + if (_3 != NULL) { + ZVAL_STR_COPY(&column, _3); + } else { + ZVAL_LONG(&column, _2); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0); + if (Z_TYPE_P(&column) == IS_LONG) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "column", &_4, 0, &value); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "column", &_4, 0, &column, &value); + zephir_check_call_status(); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &columns, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &columns, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&column, &columns, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &columns, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&column) == IS_LONG) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "column", &_4, 0, &value); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "column", &_4, 0, &column, &value); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, &columns, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&column); + RETURN_THIS(); } +static PHP_METHOD(Phalcon_DataMapper_Query_Update, from) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *table_param = NULL, _0; + zval table; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(table) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &table_param); + zephir_get_strval(&table, table_param); - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Micro_LazyLoader) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Micro, LazyLoader, phalcon, mvc_micro_lazyloader, phalcon_mvc_micro_lazyloader_method_entry, 0); - - zend_declare_property_null(phalcon_mvc_micro_lazyloader_ce, SL("handler"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_micro_lazyloader_ce, SL("definition"), ZEND_ACC_PROTECTED); - return SUCCESS; + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "FROM"); + zephir_update_property_array(this_ptr, SL("store"), &_0, &table); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Micro_LazyLoader, getHandler) +static PHP_METHOD(Phalcon_DataMapper_Query_Update, getStatement) { + zval _0, _1, _2, _3, _4, _5, _6; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); - RETURN_MEMBER(getThis(), "handler"); + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "buildflags", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_2, &_1, SL("FROM"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Update.zep", 101); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "buildcolumns", NULL, 211); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_5); + ZVAL_STRING(&_5, "WHERE"); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "buildcondition", NULL, 0, &_5); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_6, this_ptr, "buildreturning", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVVVV(return_value, "UPDATE", &_0, " ", &_2, &_3, &_4, &_6); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Micro_LazyLoader, getDefinition) +static PHP_METHOD(Phalcon_DataMapper_Query_Update, hasColumns) { + zval _0, _1; zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + - RETURN_MEMBER(getThis(), "definition"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_1, &_0, SL("COLUMNS"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Update.zep", 113); + RETURN_BOOL(zephir_fast_count_int(&_1) > 0); } -static PHP_METHOD(Phalcon_Mvc_Micro_LazyLoader, __construct) +static PHP_METHOD(Phalcon_DataMapper_Query_Update, returning) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *definition_param = NULL; - zval definition; + zval *columns_param = NULL, _0, _1, _2, _3; + zval columns; zval *this_ptr = getThis(); - ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(definition) + Z_PARAM_ARRAY(columns) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &definition_param); - if (UNEXPECTED(Z_TYPE_P(definition_param) != IS_STRING && Z_TYPE_P(definition_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'definition' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(definition_param) == IS_STRING)) { - zephir_get_strval(&definition, definition_param); - } else { - ZEPHIR_INIT_VAR(&definition); - } + zephir_fetch_params(1, 1, 0, &columns_param); + zephir_get_arrval(&columns, columns_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("definition"), &definition); + ZEPHIR_INIT_VAR(&_0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_2, &_1, SL("RETURNING"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Update.zep", 126); + zephir_fast_array_merge(&_0, &_2, &columns); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "RETURNING"); + zephir_update_property_array(this_ptr, SL("store"), &_3, &_0); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_DataMapper_Query_Update, reset) +{ + zval _1, _2, _3, _4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_query_update_ce, getThis(), "reset", &_0, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "FROM"); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, ""); + zephir_update_property_array(this_ptr, SL("store"), &_1, &_2); + ZEPHIR_INIT_VAR(&_3); + array_init(&_3); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "RETURNING"); + zephir_update_property_array(this_ptr, SL("store"), &_4, &_3); ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Micro_LazyLoader, callMethod) +static PHP_METHOD(Phalcon_DataMapper_Query_Update, set) { - zval _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *method_param = NULL, *arguments = NULL, arguments_sub, *modelBinder = NULL, modelBinder_sub, __$null, handler, definition, bindCacheKey, _0, _1$$4, _2$$4, _3$$5; - zval method; + zval *column_param = NULL, *value = NULL, value_sub, __$null, _0; + zval column; zval *this_ptr = getThis(); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&arguments_sub); - ZVAL_UNDEF(&modelBinder_sub); + ZVAL_UNDEF(&column); + ZVAL_UNDEF(&value_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&handler); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&bindCacheKey); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(method) - Z_PARAM_ZVAL(arguments) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(column) Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(modelBinder, phalcon_mvc_model_binderinterface_ce) + Z_PARAM_ZVAL_OR_NULL(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &method_param, &arguments, &modelBinder); - if (UNEXPECTED(Z_TYPE_P(method_param) != IS_STRING && Z_TYPE_P(method_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'method' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(method_param) == IS_STRING)) { - zephir_get_strval(&method, method_param); + zephir_fetch_params(1, 1, 1, &column_param, &value); + zephir_get_strval(&column, column_param); + if (!value) { + value = &value_sub; + ZEPHIR_CPY_WRT(value, &__$null); } else { - ZEPHIR_INIT_VAR(&method); - } - ZEPHIR_SEPARATE_PARAM(arguments); - if (!modelBinder) { - modelBinder = &modelBinder_sub; - modelBinder = &__$null; + ZEPHIR_SEPARATE_PARAM(value); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("handler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&handler, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("definition"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&definition, &_0); - if (Z_TYPE_P(&handler) != IS_OBJECT) { - if (!(zephir_class_exists(&definition, 1))) { - ZEPHIR_INIT_VAR(&_1$$4); - object_init_ex(&_1$$4, phalcon_mvc_micro_exception_ce); - ZEPHIR_INIT_VAR(&_2$$4); - ZEPHIR_CONCAT_SVS(&_2$$4, "Handler '", &definition, "' doesn't exist"); - ZEPHIR_CALL_METHOD(NULL, &_1$$4, "__construct", NULL, 8, &_2$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$4, "phalcon/Mvc/Micro/LazyLoader.zep", 55); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_NVAR(&handler); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(&handler, &definition); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("handler"), &handler); - } - if (Z_TYPE_P(modelBinder) != IS_NULL) { - ZEPHIR_INIT_VAR(&bindCacheKey); - ZEPHIR_CONCAT_SVSV(&bindCacheKey, "_PHMB_", &definition, "_", &method); - ZEPHIR_CALL_METHOD(&_3$$5, modelBinder, "bindtohandler", NULL, 0, &handler, arguments, &bindCacheKey, &method); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(arguments, &_3$$5); + if (Z_TYPE_P(value) == IS_NULL) { + ZEPHIR_INIT_NVAR(value); + ZVAL_STRING(value, "NULL"); } - ZEPHIR_INIT_VAR(&_4); - zephir_create_array(&_4, 2, 0); - zephir_array_fast_append(&_4, &handler); - zephir_array_fast_append(&_4, &method); - ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, &_4, arguments); + zephir_update_property_array_multi(this_ptr, SL("store"), value, SL("sz"), 3, SL("COLUMNS"), &column); + zephir_read_property(&_0, this_ptr, ZEND_STRL("bind"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "remove", NULL, 0, &column); zephir_check_call_status(); - RETURN_MM(); + RETURN_THIS(); } +static PHP_METHOD(Phalcon_DataMapper_Query_Update, buildColumns) +{ + zend_string *_5; + zend_ulong _4; + zval assignments; + zval column, value, _0, _1, *_2, _3, _11, _12, _6$$3, _8$$3, _9$$4, _10$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_7 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&column); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_8$$3); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&_10$$4); + ZVAL_UNDEF(&assignments); -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Micro_MiddlewareInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Micro, MiddlewareInterface, phalcon, mvc_micro_middlewareinterface, phalcon_mvc_micro_middlewareinterface_method_entry); + ZEPHIR_MM_GROW(); - return SUCCESS; + ZEPHIR_INIT_VAR(&assignments); + array_init(&assignments); + zephir_read_property(&_0, this_ptr, ZEND_STRL("store"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_1, &_0, SL("COLUMNS"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Query/Update.zep", 175); + zephir_is_iterable(&_1, 0, "phalcon/DataMapper/Query/Update.zep", 179); + if (Z_TYPE_P(&_1) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_1), _4, _5, _2) + { + ZEPHIR_INIT_NVAR(&column); + if (_5 != NULL) { + ZVAL_STR_COPY(&column, _5); + } else { + ZVAL_LONG(&column, _4); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _2); + ZEPHIR_CALL_METHOD(&_6$$3, this_ptr, "quoteidentifier", &_7, 0, &column); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_8$$3); + ZEPHIR_CONCAT_VSV(&_8$$3, &_6$$3, " = ", &value); + zephir_array_append(&assignments, &_8$$3, PH_SEPARATE, "phalcon/DataMapper/Query/Update.zep", 176); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_1, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3, &_1, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3)) { + break; + } + ZEPHIR_CALL_METHOD(&column, &_1, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &_1, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_9$$4, this_ptr, "quoteidentifier", &_7, 0, &column); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_10$$4); + ZEPHIR_CONCAT_VSV(&_10$$4, &_9$$4, " = ", &value); + zephir_array_append(&assignments, &_10$$4, PH_SEPARATE, "phalcon/DataMapper/Query/Update.zep", 176); + ZEPHIR_CALL_METHOD(NULL, &_1, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&column); + ZEPHIR_INIT_VAR(&_12); + ZVAL_STRING(&_12, ","); + ZEPHIR_CALL_METHOD(&_11, this_ptr, "indent", NULL, 0, &assignments, &_12); + zephir_check_call_status(); + ZEPHIR_CONCAT_SV(return_value, " SET", &_11); + RETURN_MM(); } -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_MiddlewareInterface, call); @@ -137502,209 +122340,315 @@ ZEPHIR_DOC_METHOD(Phalcon_Mvc_Micro_MiddlewareInterface, call); -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Behavior) +ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Connection) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model, Behavior, phalcon, mvc_model_behavior, phalcon_mvc_model_behavior_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Pdo, Connection, phalcon, datamapper_pdo_connection, phalcon_datamapper_pdo_connection_abstractconnection_ce, phalcon_datamapper_pdo_connection_method_entry, 0); + + zend_declare_property_null(phalcon_datamapper_pdo_connection_ce, SL("arguments"), ZEND_ACC_PROTECTED); + phalcon_datamapper_pdo_connection_ce->create_object = zephir_init_properties_Phalcon_DataMapper_Pdo_Connection; - zend_declare_property_null(phalcon_mvc_model_behavior_ce, SL("options"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_mvc_model_behavior_ce, 1, phalcon_mvc_model_behaviorinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Behavior, __construct) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *options_param = NULL; - zval options; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval options, queries, available, _5; + zval *dsn_param = NULL, *username_param = NULL, *password_param = NULL, *options_param = NULL, *queries_param = NULL, *profiler = NULL, profiler_sub, __$true, __$null, parts, _0, _1$$3, _2$$3, _3$$3, _4$$4; + zval dsn, username, password; zval *this_ptr = getThis(); + ZVAL_UNDEF(&dsn); + ZVAL_UNDEF(&username); + ZVAL_UNDEF(&password); + ZVAL_UNDEF(&profiler_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&parts); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$4); ZVAL_UNDEF(&options); + ZVAL_UNDEF(&queries); + ZVAL_UNDEF(&available); + ZVAL_UNDEF(&_5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(1, 6) + Z_PARAM_STR(dsn) Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(username) + Z_PARAM_STR_OR_NULL(password) Z_PARAM_ARRAY(options) + Z_PARAM_ARRAY(queries) + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(profiler, phalcon_datamapper_pdo_profiler_profilerinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &options_param); + zephir_fetch_params(1, 1, 5, &dsn_param, &username_param, &password_param, &options_param, &queries_param, &profiler); + zephir_get_strval(&dsn, dsn_param); + if (!username_param) { + ZEPHIR_INIT_VAR(&username); + } else { + zephir_get_strval(&username, username_param); + } + if (!password_param) { + ZEPHIR_INIT_VAR(&password); + } else { + zephir_get_strval(&password, password_param); + } if (!options_param) { ZEPHIR_INIT_VAR(&options); array_init(&options); } else { zephir_get_arrval(&options, options_param); } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Behavior, getOptions) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *eventName_param = NULL, options, eventOptions, _0; - zval eventName; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&eventName); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&eventOptions); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(eventName) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &eventName_param); - if (!eventName_param) { - ZEPHIR_INIT_VAR(&eventName); + if (!queries_param) { + ZEPHIR_INIT_VAR(&queries); + array_init(&queries); } else { - if (UNEXPECTED(Z_TYPE_P(eventName_param) != IS_STRING && Z_TYPE_P(eventName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventName' must be of the type string")); - RETURN_MM_NULL(); + zephir_get_arrval(&queries, queries_param); } - if (EXPECTED(Z_TYPE_P(eventName_param) == IS_STRING)) { - zephir_get_strval(&eventName, eventName_param); + if (!profiler) { + profiler = &profiler_sub; + ZEPHIR_CPY_WRT(profiler, &__$null); } else { - ZEPHIR_INIT_VAR(&eventName); - } + ZEPHIR_SEPARATE_PARAM(profiler); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&options, &_0); - if (!ZEPHIR_IS_NULL(&eventName)) { - if (!(zephir_array_isset_fetch(&eventOptions, &options, &eventName, 1))) { - RETURN_MM_NULL(); - } - RETURN_CTOR(&eventOptions); + ZEPHIR_INIT_VAR(&parts); + zephir_fast_explode_str(&parts, SL(":"), &dsn, LONG_MAX); + ZEPHIR_INIT_VAR(&available); + zephir_create_array(&available, 4, 0); + zephir_array_update_string(&available, SL("mysql"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&available, SL("pgsql"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&available, SL("sqlite"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&available, SL("mssql"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_fetch_long(&_0, &parts, 0, PH_READONLY, "phalcon/DataMapper/Pdo/Connection.zep", 69); + if (!(zephir_array_isset(&available, &_0))) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, spl_ce_InvalidArgumentException); + zephir_array_fetch_long(&_2$$3, &parts, 0, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/Connection.zep", 71); + ZEPHIR_INIT_VAR(&_3$$3); + ZEPHIR_CONCAT_SVS(&_3$$3, "Driver not supported [", &_2$$3, "]"); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 40, &_3$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/DataMapper/Pdo/Connection.zep", 72); + ZEPHIR_MM_RESTORE(); + return; } - RETURN_CCTOR(&options); + if (!(zephir_array_isset_long(&options, 3))) { + ZEPHIR_INIT_VAR(&_4$$4); + ZVAL_LONG(&_4$$4, 2); + zephir_array_update_long(&options, 3, &_4$$4, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + } + ZEPHIR_INIT_VAR(&_5); + zephir_create_array(&_5, 5, 0); + zephir_array_fast_append(&_5, &dsn); + zephir_array_fast_append(&_5, &username); + zephir_array_fast_append(&_5, &password); + zephir_array_fast_append(&_5, &options); + zephir_array_fast_append(&_5, &queries); + zephir_update_property_zval(this_ptr, ZEND_STRL("arguments"), &_5); + if (Z_TYPE_P(profiler) == IS_NULL) { + ZEPHIR_INIT_NVAR(profiler); + object_init_ex(profiler, phalcon_datamapper_pdo_profiler_profiler_ce); + ZEPHIR_CALL_METHOD(NULL, profiler, "__construct", NULL, 200); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setprofiler", NULL, 0, profiler); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Behavior, missingMethod) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection, __debugInfo) { + zval _1, _2, _3, _4, _5; + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval arguments; - zval method; - zval *model, model_sub, *method_param = NULL, *arguments_param = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&arguments); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_STR(method) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(arguments) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &model, &method_param, &arguments_param); - zephir_get_strval(&method, method_param); - if (!arguments_param) { - ZEPHIR_INIT_VAR(&arguments); - array_init(&arguments); - } else { - zephir_get_arrval(&arguments, arguments_param); - } - - RETURN_MM_NULL(); + zephir_create_array(return_value, 1, 0); + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 5, 0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_OBS_VAR(&_2); + zephir_array_fetch_long(&_2, &_1, 0, PH_NOISY, "phalcon/DataMapper/Pdo/Connection.zep", 106); + zephir_array_fast_append(&_0, &_2); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "****"); + zephir_array_fast_append(&_0, &_3); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "****"); + zephir_array_fast_append(&_0, &_3); + zephir_read_property(&_4, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_OBS_NVAR(&_2); + zephir_array_fetch_long(&_2, &_4, 3, PH_NOISY, "phalcon/DataMapper/Pdo/Connection.zep", 109); + zephir_array_fast_append(&_0, &_2); + zephir_read_property(&_5, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_OBS_NVAR(&_2); + zephir_array_fetch_long(&_2, &_5, 4, PH_NOISY, "phalcon/DataMapper/Pdo/Connection.zep", 111); + zephir_array_fast_append(&_0, &_2); + zephir_array_update_string(return_value, SL("arguments"), &_0, PH_COPY | PH_SEPARATE); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Behavior, mustTakeAction) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection, connect) { + zval dsn, options, password, query, queries, username, _0, _1$$3, _2$$3, _3$$3, _4$$3, _5$$3, _6$$3, _7$$3, _8$$3, *_9$$3, _10$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *eventName_param = NULL, _0; - zval eventName; + zephir_fcall_cache_entry *_11 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&eventName); + ZVAL_UNDEF(&dsn); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&password); + ZVAL_UNDEF(&query); + ZVAL_UNDEF(&queries); + ZVAL_UNDEF(&username); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(eventName) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_8$$3); + ZVAL_UNDEF(&_10$$3); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &eventName_param); - if (UNEXPECTED(Z_TYPE_P(eventName_param) != IS_STRING && Z_TYPE_P(eventName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(eventName_param) == IS_STRING)) { - zephir_get_strval(&eventName, eventName_param); - } else { - ZEPHIR_INIT_VAR(&eventName); - } - - zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - RETURN_MM_BOOL(zephir_array_isset(&_0, &eventName)); + zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_0))) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "connect"); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "start", NULL, 0, &_2$$3); + zephir_check_call_status(); + zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_OBS_VAR(&dsn); + zephir_array_fetch_long(&dsn, &_3$$3, 0, PH_NOISY, "phalcon/DataMapper/Pdo/Connection.zep", 126); + zephir_read_property(&_4$$3, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_OBS_VAR(&username); + zephir_array_fetch_long(&username, &_4$$3, 1, PH_NOISY, "phalcon/DataMapper/Pdo/Connection.zep", 127); + zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_OBS_VAR(&password); + zephir_array_fetch_long(&password, &_5$$3, 2, PH_NOISY, "phalcon/DataMapper/Pdo/Connection.zep", 128); + zephir_read_property(&_6$$3, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_OBS_VAR(&options); + zephir_array_fetch_long(&options, &_6$$3, 3, PH_NOISY, "phalcon/DataMapper/Pdo/Connection.zep", 129); + zephir_read_property(&_7$$3, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_OBS_VAR(&queries); + zephir_array_fetch_long(&queries, &_7$$3, 4, PH_NOISY, "phalcon/DataMapper/Pdo/Connection.zep", 130); + ZEPHIR_INIT_NVAR(&_2$$3); + object_init_ex(&_2$$3, php_pdo_get_dbh_ce()); + ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", NULL, 0, &dsn, &username, &password, &options); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("pdo"), &_2$$3); + zephir_read_property(&_8$$3, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_8$$3, "finish", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&queries, 0, "phalcon/DataMapper/Pdo/Connection.zep", 140); + if (Z_TYPE_P(&queries) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&queries), _9$$3) + { + ZEPHIR_INIT_NVAR(&query); + ZVAL_COPY(&query, _9$$3); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "exec", &_11, 0, &query); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &queries, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_10$$3, &queries, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_10$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&query, &queries, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "exec", &_11, 0, &query); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &queries, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&query); + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Behavior, notify) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection, disconnect) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *type_param = NULL, *model, model_sub; - zval type; + zval __$null, _0, _1, _2; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&model_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(type) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &type_param, &model); - zephir_get_strval(&type, type_param); - - RETURN_MM_NULL(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "disconnect"); + ZEPHIR_CALL_METHOD(NULL, &_0, "start", NULL, 0, &_1); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("pdo"), &__$null); + zephir_read_property(&_2, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_2, "finish", NULL, 0); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_BehaviorInterface) +zend_object *zephir_init_properties_Phalcon_DataMapper_Pdo_Connection(zend_class_entry *class_type) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model, BehaviorInterface, phalcon, mvc_model_behaviorinterface, phalcon_mvc_model_behaviorinterface_method_entry); + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + - return SUCCESS; + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("arguments"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } } -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_BehaviorInterface, missingMethod); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_BehaviorInterface, notify); @@ -137715,566 +122659,382 @@ ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_BehaviorInterface, notify); -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Binder) +ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_ConnectionLocator) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model, Binder, phalcon, mvc_model_binder, phalcon_mvc_model_binder_method_entry, 0); + ZEPHIR_REGISTER_CLASS(Phalcon\\DataMapper\\Pdo, ConnectionLocator, phalcon, datamapper_pdo_connectionlocator, phalcon_datamapper_pdo_connectionlocator_method_entry, 0); - zend_declare_property_null(phalcon_mvc_model_binder_ce, SL("boundModels"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_binder_ce, SL("cache"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_binder_ce, SL("internalCache"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_binder_ce, SL("originalValues"), ZEND_ACC_PROTECTED); - phalcon_mvc_model_binder_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_Binder; + zend_declare_property_null(phalcon_datamapper_pdo_connectionlocator_ce, SL("master"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_datamapper_pdo_connectionlocator_ce, SL("read"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_datamapper_pdo_connectionlocator_ce, SL("write"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_datamapper_pdo_connectionlocator_ce, SL("instances"), ZEND_ACC_PRIVATE); + phalcon_datamapper_pdo_connectionlocator_ce->create_object = zephir_init_properties_Phalcon_DataMapper_Pdo_ConnectionLocator; - zend_class_implements(phalcon_mvc_model_binder_ce, 1, phalcon_mvc_model_binderinterface_ce); + zend_class_implements(phalcon_datamapper_pdo_connectionlocator_ce, 1, phalcon_datamapper_pdo_connectionlocatorinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Binder, getBoundModels) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "boundModels"); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Binder, getOriginalValues) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "originalValues"); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Binder, __construct) -{ - zval *cache = NULL, cache_sub, __$null; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&cache_sub); - ZVAL_NULL(&__$null); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(cache, phalcon_cache_adapter_adapterinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(0, 1, &cache); - if (!cache) { - cache = &cache_sub; - cache = &__$null; - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("cache"), cache); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Binder, bindToHandler) +static PHP_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocator, __construct) { - zend_string *_6$$4; - zend_ulong _5$$4; - zend_bool _1; + zend_string *_3, *_8; + zend_ulong _2, _7; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_7 = NULL; + zephir_fcall_cache_entry *_4 = NULL, *_9 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval cacheKey, methodName; - zval params; - zval *handler, handler_sub, *params_param = NULL, *cacheKey_param = NULL, *methodName_param = NULL, paramKey, className, boundModel, paramsCache, paramValue, _0, _2, *_3$$4, _4$$4; + zval read, write; + zval *master, master_sub, *read_param = NULL, *write_param = NULL, name, callableObject, *_0, _1, *_5, _6; zval *this_ptr = getThis(); - ZVAL_UNDEF(&handler_sub); - ZVAL_UNDEF(¶mKey); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&boundModel); - ZVAL_UNDEF(¶msCache); - ZVAL_UNDEF(¶mValue); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(¶ms); - ZVAL_UNDEF(&cacheKey); - ZVAL_UNDEF(&methodName); + ZVAL_UNDEF(&master_sub); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&callableObject); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&read); + ZVAL_UNDEF(&write); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 4) - Z_PARAM_OBJECT(handler) - Z_PARAM_ARRAY(params) - Z_PARAM_STR(cacheKey) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_OBJECT_OF_CLASS(master, phalcon_datamapper_pdo_connection_connectioninterface_ce) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(methodName) + Z_PARAM_ARRAY(read) + Z_PARAM_ARRAY(write) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 1, &handler, ¶ms_param, &cacheKey_param, &methodName_param); - zephir_get_arrval(¶ms, params_param); - zephir_get_strval(&cacheKey, cacheKey_param); - if (!methodName_param) { - ZEPHIR_INIT_VAR(&methodName); + zephir_fetch_params(1, 1, 2, &master, &read_param, &write_param); + if (!read_param) { + ZEPHIR_INIT_VAR(&read); + array_init(&read); } else { - if (UNEXPECTED(Z_TYPE_P(methodName_param) != IS_STRING && Z_TYPE_P(methodName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'methodName' must be of the type string")); - RETURN_MM_NULL(); + zephir_get_arrval(&read, read_param); } - if (EXPECTED(Z_TYPE_P(methodName_param) == IS_STRING)) { - zephir_get_strval(&methodName, methodName_param); + if (!write_param) { + ZEPHIR_INIT_VAR(&write); + array_init(&write); } else { - ZEPHIR_INIT_VAR(&methodName); - } + zephir_get_arrval(&write, write_param); } - ZEPHIR_INIT_VAR(&_0); - array_init(&_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("originalValues"), &_0); - _1 = !((zephir_is_instance_of(handler, SL("Closure")))); - if (_1) { - _1 = ZEPHIR_IS_NULL(&methodName); - } - if (UNEXPECTED(_1)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "You must specify methodName for handler or pass Closure as handler", "phalcon/Mvc/Model/Binder.zep", 75); - return; - } - ZEPHIR_INIT_VAR(&_2); - array_init(&_2); - zephir_update_property_zval(this_ptr, ZEND_STRL("boundModels"), &_2); - ZEPHIR_CALL_METHOD(¶msCache, this_ptr, "getparamsfromcache", NULL, 0, &cacheKey); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setmaster", NULL, 0, master); zephir_check_call_status(); - if (Z_TYPE_P(¶msCache) == IS_ARRAY) { - zephir_is_iterable(¶msCache, 0, "phalcon/Mvc/Model/Binder.zep", 90); - if (Z_TYPE_P(¶msCache) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(¶msCache), _5$$4, _6$$4, _3$$4) - { - ZEPHIR_INIT_NVAR(¶mKey); - if (_6$$4 != NULL) { - ZVAL_STR_COPY(¶mKey, _6$$4); - } else { - ZVAL_LONG(¶mKey, _5$$4); - } - ZEPHIR_INIT_NVAR(&className); - ZVAL_COPY(&className, _3$$4); - ZEPHIR_OBS_NVAR(¶mValue); - zephir_array_fetch(¶mValue, ¶ms, ¶mKey, PH_NOISY, "phalcon/Mvc/Model/Binder.zep", 83); - ZEPHIR_CALL_METHOD(&boundModel, this_ptr, "findboundmodel", &_7, 0, ¶mValue, &className); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("originalValues"), ¶mKey, ¶mValue); - zephir_array_update_zval(¶ms, ¶mKey, &boundModel, PH_COPY | PH_SEPARATE); - zephir_update_property_array(this_ptr, SL("boundModels"), ¶mKey, &boundModel); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, ¶msCache, "rewind", NULL, 0); + zephir_is_iterable(&read, 0, "phalcon/DataMapper/Pdo/ConnectionLocator.zep", 78); + if (Z_TYPE_P(&read) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&read), _2, _3, _0) + { + ZEPHIR_INIT_NVAR(&name); + if (_3 != NULL) { + ZVAL_STR_COPY(&name, _3); + } else { + ZVAL_LONG(&name, _2); + } + ZEPHIR_INIT_NVAR(&callableObject); + ZVAL_COPY(&callableObject, _0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setread", &_4, 0, &name, &callableObject); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_4$$4, ¶msCache, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_4$$4)) { - break; - } - ZEPHIR_CALL_METHOD(¶mKey, ¶msCache, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&className, ¶msCache, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(¶mValue); - zephir_array_fetch(¶mValue, ¶ms, ¶mKey, PH_NOISY, "phalcon/Mvc/Model/Binder.zep", 83); - ZEPHIR_CALL_METHOD(&boundModel, this_ptr, "findboundmodel", &_7, 0, ¶mValue, &className); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("originalValues"), ¶mKey, ¶mValue); - zephir_array_update_zval(¶ms, ¶mKey, &boundModel, PH_COPY | PH_SEPARATE); - zephir_update_property_array(this_ptr, SL("boundModels"), ¶mKey, &boundModel); - ZEPHIR_CALL_METHOD(NULL, ¶msCache, "next", NULL, 0); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &read, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &read, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&name, &read, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&callableObject, &read, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setread", &_4, 0, &name, &callableObject); zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &read, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&callableObject); + ZEPHIR_INIT_NVAR(&name); + zephir_is_iterable(&write, 0, "phalcon/DataMapper/Pdo/ConnectionLocator.zep", 81); + if (Z_TYPE_P(&write) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&write), _7, _8, _5) + { + ZEPHIR_INIT_NVAR(&name); + if (_8 != NULL) { + ZVAL_STR_COPY(&name, _8); + } else { + ZVAL_LONG(&name, _7); + } + ZEPHIR_INIT_NVAR(&callableObject); + ZVAL_COPY(&callableObject, _5); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setwrite", &_9, 0, &name, &callableObject); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &write, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_6, &write, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_6)) { + break; } + ZEPHIR_CALL_METHOD(&name, &write, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&callableObject, &write, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setwrite", &_9, 0, &name, &callableObject); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &write, "next", NULL, 0); + zephir_check_call_status(); } - ZEPHIR_INIT_NVAR(&className); - ZEPHIR_INIT_NVAR(¶mKey); - RETURN_CTOR(¶ms); } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getparamsfromreflection", NULL, 0, handler, ¶ms, &cacheKey, &methodName); + ZEPHIR_INIT_NVAR(&callableObject); + ZEPHIR_INIT_NVAR(&name); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocator, getMaster) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "master"); +} + +static PHP_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocator, getRead) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, _0; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &name_param); + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + ZVAL_STRING(&name, ""); + } else { + zephir_get_strval(&name, name_param); + } + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "read"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getconnection", NULL, 0, &_0, &name); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Binder, findBoundModel) +static PHP_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocator, getWrite) { - zend_class_entry *_0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval className; - zval *paramValue, paramValue_sub, *className_param = NULL; + zval *name_param = NULL, _0; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(¶mValue_sub); - ZVAL_UNDEF(&className); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(paramValue) - Z_PARAM_STR(className) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, ¶mValue, &className_param); - zephir_get_strval(&className, className_param); + zephir_fetch_params(1, 0, 1, &name_param); + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + ZVAL_STRING(&name, ""); + } else { + zephir_get_strval(&name, name_param); + } - _0 = zephir_fetch_class(&className); - ZEPHIR_RETURN_CALL_CE_STATIC(_0, "findfirst", NULL, 0, paramValue); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "write"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getconnection", NULL, 0, &_0, &name); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Binder, getCache) +static PHP_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocator, setMaster) { + zval *callableObject, callableObject_sub; zval *this_ptr = getThis(); + ZVAL_UNDEF(&callableObject_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(callableObject, phalcon_datamapper_pdo_connection_connectioninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &callableObject); - RETURN_MEMBER(getThis(), "cache"); + zephir_update_property_zval(this_ptr, ZEND_STRL("master"), callableObject); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_Model_Binder, getParamsFromCache) +static PHP_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocator, setRead) { - zend_bool _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *cacheKey_param = NULL, cache, internalParams, _0, _1, _3; - zval cacheKey; + zval *name_param = NULL, *callableObject, callableObject_sub; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&cacheKey); - ZVAL_UNDEF(&cache); - ZVAL_UNDEF(&internalParams); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&callableObject_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(cacheKey) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(name) + Z_PARAM_ZVAL(callableObject) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &cacheKey_param); - zephir_get_strval(&cacheKey, cacheKey_param); + zephir_fetch_params(1, 2, 0, &name_param, &callableObject); + zephir_get_strval(&name, name_param); - ZEPHIR_OBS_VAR(&internalParams); - zephir_read_property(&_0, this_ptr, ZEND_STRL("internalCache"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&internalParams, &_0, &cacheKey, 0)) { - RETURN_CCTOR(&internalParams); - } - zephir_read_property(&_1, this_ptr, ZEND_STRL("cache"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&cache, &_1); - _2 = Z_TYPE_P(&cache) == IS_NULL; - if (!(_2)) { - ZEPHIR_CALL_METHOD(&_3, &cache, "has", NULL, 0, &cacheKey); - zephir_check_call_status(); - _2 = !zephir_is_true(&_3); - } - if (_2) { - RETURN_MM_NULL(); - } - ZEPHIR_CALL_METHOD(&internalParams, &cache, "get", NULL, 0, &cacheKey); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("internalCache"), &cacheKey, &internalParams); - RETURN_CCTOR(&internalParams); + zephir_update_property_array(this_ptr, SL("read"), &name, callableObject); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Binder, getParamsFromReflection) +static PHP_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocator, setWrite) { - zend_class_entry *_9$$10, *_17$$24; - zend_string *_4; - zend_ulong _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_8 = NULL, *_12 = NULL, *_13 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval cacheKey, methodName; - zval params, paramsCache; - zval *handler, handler_sub, *params_param = NULL, *cacheKey_param = NULL, *methodName_param = NULL, methodParams, reflection, paramKey, methodParam, className, realClasses, boundModel, cache, handlerClass, reflectionClass, paramsKeys, paramValue, _0, *_1, _2, _5$$7, _6$$5, _7$$5, _10$$14, _11$$14, _14$$21, _15$$19, _16$$19, _18$$28, _19$$28; + zval *name_param = NULL, *callableObject, callableObject_sub; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&handler_sub); - ZVAL_UNDEF(&methodParams); - ZVAL_UNDEF(&reflection); - ZVAL_UNDEF(¶mKey); - ZVAL_UNDEF(&methodParam); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&realClasses); - ZVAL_UNDEF(&boundModel); - ZVAL_UNDEF(&cache); - ZVAL_UNDEF(&handlerClass); - ZVAL_UNDEF(&reflectionClass); - ZVAL_UNDEF(¶msKeys); - ZVAL_UNDEF(¶mValue); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_5$$7); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_10$$14); - ZVAL_UNDEF(&_11$$14); - ZVAL_UNDEF(&_14$$21); - ZVAL_UNDEF(&_15$$19); - ZVAL_UNDEF(&_16$$19); - ZVAL_UNDEF(&_18$$28); - ZVAL_UNDEF(&_19$$28); - ZVAL_UNDEF(¶ms); - ZVAL_UNDEF(¶msCache); - ZVAL_UNDEF(&cacheKey); - ZVAL_UNDEF(&methodName); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&callableObject_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(4, 4) - Z_PARAM_OBJECT(handler) - Z_PARAM_ARRAY(params) - Z_PARAM_STR(cacheKey) - Z_PARAM_STR(methodName) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(name) + Z_PARAM_ZVAL(callableObject) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 4, 0, &handler, ¶ms_param, &cacheKey_param, &methodName_param); - zephir_get_arrval(¶ms, params_param); - zephir_get_strval(&cacheKey, cacheKey_param); - if (UNEXPECTED(Z_TYPE_P(methodName_param) != IS_STRING && Z_TYPE_P(methodName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'methodName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(methodName_param) == IS_STRING)) { - zephir_get_strval(&methodName, methodName_param); - } else { - ZEPHIR_INIT_VAR(&methodName); - } + zephir_fetch_params(1, 2, 0, &name_param, &callableObject); + zephir_get_strval(&name, name_param); - ZEPHIR_INIT_VAR(&realClasses); - ZVAL_NULL(&realClasses); - ZEPHIR_INIT_VAR(¶msCache); - array_init(¶msCache); - ZEPHIR_INIT_VAR(&reflection); - if (!ZEPHIR_IS_NULL(&methodName)) { - object_init_ex(&reflection, zephir_get_internal_ce(SL("reflectionmethod"))); - ZEPHIR_CALL_METHOD(NULL, &reflection, "__construct", NULL, 448, handler, &methodName); - zephir_check_call_status(); - } else { - object_init_ex(&reflection, zephir_get_internal_ce(SL("reflectionfunction"))); - ZEPHIR_CALL_METHOD(NULL, &reflection, "__construct", NULL, 151, handler); - zephir_check_call_status(); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("cache"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&cache, &_0); - ZEPHIR_CALL_METHOD(&methodParams, &reflection, "getparameters", NULL, 152); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(¶msKeys); - zephir_array_keys(¶msKeys, ¶ms); - zephir_is_iterable(&methodParams, 0, "phalcon/Mvc/Model/Binder.zep", 223); - if (Z_TYPE_P(&methodParams) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&methodParams), _3, _4, _1) - { - ZEPHIR_INIT_NVAR(¶mKey); - if (_4 != NULL) { - ZVAL_STR_COPY(¶mKey, _4); - } else { - ZVAL_LONG(¶mKey, _3); - } - ZEPHIR_INIT_NVAR(&methodParam); - ZVAL_COPY(&methodParam, _1); - ZEPHIR_CALL_METHOD(&reflectionClass, &methodParam, "getclass", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&reflectionClass))) { - continue; - } - ZEPHIR_CALL_METHOD(&className, &reflectionClass, "getname", NULL, 0); - zephir_check_call_status(); - if (!(zephir_array_isset(¶ms, ¶mKey))) { - zephir_array_fetch(&_5$$7, ¶msKeys, ¶mKey, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Binder.zep", 175); - ZEPHIR_CPY_WRT(¶mKey, &_5$$7); - } - ZEPHIR_INIT_NVAR(&boundModel); - ZVAL_NULL(&boundModel); - ZEPHIR_OBS_NVAR(¶mValue); - zephir_array_fetch(¶mValue, ¶ms, ¶mKey, PH_NOISY, "phalcon/Mvc/Model/Binder.zep", 179); - ZEPHIR_INIT_NVAR(&_6$$5); - ZVAL_STRING(&_6$$5, "Phalcon\\Mvc\\Model"); - ZEPHIR_CALL_FUNCTION(&_7$$5, "is_subclass_of", &_8, 449, &className, &_6$$5); - zephir_check_call_status(); - if (ZEPHIR_IS_STRING(&className, "Phalcon\\Mvc\\Model")) { - if (Z_TYPE_P(&realClasses) == IS_NULL) { - if (zephir_instance_of_ev(handler, phalcon_mvc_controller_bindmodelinterface_ce)) { - ZEPHIR_INIT_NVAR(&handlerClass); - zephir_get_class(&handlerClass, handler, 0); - _9$$10 = zephir_fetch_class(&handlerClass); - ZEPHIR_CALL_CE_STATIC(&realClasses, _9$$10, "getmodelname", NULL, 0); - zephir_check_call_status(); - } else if (zephir_instance_of_ev(handler, phalcon_mvc_model_binder_bindableinterface_ce)) { - ZEPHIR_CALL_METHOD(&realClasses, handler, "getmodelname", NULL, 0); - zephir_check_call_status(); - } else { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Handler must implement Phalcon\\Mvc\\Model\\Binder\\BindableInterface in order to use Phalcon\\Mvc\\Model as parameter", "phalcon/Mvc/Model/Binder.zep", 191); - return; - } - } - if (Z_TYPE_P(&realClasses) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&className); - if (UNEXPECTED(!(zephir_array_isset_fetch(&className, &realClasses, ¶mKey, 0)))) { - ZEPHIR_INIT_NVAR(&_10$$14); - object_init_ex(&_10$$14, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_11$$14); - ZEPHIR_CONCAT_SVS(&_11$$14, "You should provide model class name for ", ¶mKey, " parameter"); - ZEPHIR_CALL_METHOD(NULL, &_10$$14, "__construct", &_12, 8, &_11$$14); - zephir_check_call_status(); - zephir_throw_exception_debug(&_10$$14, "phalcon/Mvc/Model/Binder.zep", 199); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CALL_METHOD(&boundModel, this_ptr, "findboundmodel", &_13, 0, ¶mValue, &className); - zephir_check_call_status(); - } else if (Z_TYPE_P(&realClasses) == IS_STRING) { - ZEPHIR_CPY_WRT(&className, &realClasses); - ZEPHIR_CALL_METHOD(&boundModel, this_ptr, "findboundmodel", &_13, 0, ¶mValue, &className); - zephir_check_call_status(); - } else { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "getModelName should return array or string", "phalcon/Mvc/Model/Binder.zep", 209); - return; - } - } else if (zephir_is_true(&_7$$5)) { - ZEPHIR_CALL_METHOD(&boundModel, this_ptr, "findboundmodel", &_13, 0, ¶mValue, &className); - zephir_check_call_status(); - } - if (Z_TYPE_P(&boundModel) != IS_NULL) { - zephir_update_property_array(this_ptr, SL("originalValues"), ¶mKey, ¶mValue); - zephir_array_update_zval(¶ms, ¶mKey, &boundModel, PH_COPY | PH_SEPARATE); - zephir_update_property_array(this_ptr, SL("boundModels"), ¶mKey, &boundModel); - zephir_array_update_zval(¶msCache, ¶mKey, &className, PH_COPY | PH_SEPARATE); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &methodParams, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &methodParams, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(¶mKey, &methodParams, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&methodParam, &methodParams, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&reflectionClass, &methodParam, "getclass", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&reflectionClass))) { - continue; - } - ZEPHIR_CALL_METHOD(&className, &reflectionClass, "getname", NULL, 0); - zephir_check_call_status(); - if (!(zephir_array_isset(¶ms, ¶mKey))) { - zephir_array_fetch(&_14$$21, ¶msKeys, ¶mKey, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Binder.zep", 175); - ZEPHIR_CPY_WRT(¶mKey, &_14$$21); - } - ZEPHIR_INIT_NVAR(&boundModel); - ZVAL_NULL(&boundModel); - ZEPHIR_OBS_NVAR(¶mValue); - zephir_array_fetch(¶mValue, ¶ms, ¶mKey, PH_NOISY, "phalcon/Mvc/Model/Binder.zep", 179); - ZEPHIR_INIT_NVAR(&_15$$19); - ZVAL_STRING(&_15$$19, "Phalcon\\Mvc\\Model"); - ZEPHIR_CALL_FUNCTION(&_16$$19, "is_subclass_of", &_8, 449, &className, &_15$$19); - zephir_check_call_status(); - if (ZEPHIR_IS_STRING(&className, "Phalcon\\Mvc\\Model")) { - if (Z_TYPE_P(&realClasses) == IS_NULL) { - if (zephir_instance_of_ev(handler, phalcon_mvc_controller_bindmodelinterface_ce)) { - ZEPHIR_INIT_NVAR(&handlerClass); - zephir_get_class(&handlerClass, handler, 0); - _17$$24 = zephir_fetch_class(&handlerClass); - ZEPHIR_CALL_CE_STATIC(&realClasses, _17$$24, "getmodelname", NULL, 0); - zephir_check_call_status(); - } else if (zephir_instance_of_ev(handler, phalcon_mvc_model_binder_bindableinterface_ce)) { - ZEPHIR_CALL_METHOD(&realClasses, handler, "getmodelname", NULL, 0); - zephir_check_call_status(); - } else { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Handler must implement Phalcon\\Mvc\\Model\\Binder\\BindableInterface in order to use Phalcon\\Mvc\\Model as parameter", "phalcon/Mvc/Model/Binder.zep", 191); - return; - } - } - if (Z_TYPE_P(&realClasses) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&className); - if (UNEXPECTED(!(zephir_array_isset_fetch(&className, &realClasses, ¶mKey, 0)))) { - ZEPHIR_INIT_NVAR(&_18$$28); - object_init_ex(&_18$$28, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_19$$28); - ZEPHIR_CONCAT_SVS(&_19$$28, "You should provide model class name for ", ¶mKey, " parameter"); - ZEPHIR_CALL_METHOD(NULL, &_18$$28, "__construct", &_12, 8, &_19$$28); - zephir_check_call_status(); - zephir_throw_exception_debug(&_18$$28, "phalcon/Mvc/Model/Binder.zep", 199); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CALL_METHOD(&boundModel, this_ptr, "findboundmodel", &_13, 0, ¶mValue, &className); - zephir_check_call_status(); - } else if (Z_TYPE_P(&realClasses) == IS_STRING) { - ZEPHIR_CPY_WRT(&className, &realClasses); - ZEPHIR_CALL_METHOD(&boundModel, this_ptr, "findboundmodel", &_13, 0, ¶mValue, &className); - zephir_check_call_status(); - } else { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "getModelName should return array or string", "phalcon/Mvc/Model/Binder.zep", 209); - return; - } - } else if (zephir_is_true(&_16$$19)) { - ZEPHIR_CALL_METHOD(&boundModel, this_ptr, "findboundmodel", &_13, 0, ¶mValue, &className); - zephir_check_call_status(); - } - if (Z_TYPE_P(&boundModel) != IS_NULL) { - zephir_update_property_array(this_ptr, SL("originalValues"), ¶mKey, ¶mValue); - zephir_array_update_zval(¶ms, ¶mKey, &boundModel, PH_COPY | PH_SEPARATE); - zephir_update_property_array(this_ptr, SL("boundModels"), ¶mKey, &boundModel); - zephir_array_update_zval(¶msCache, ¶mKey, &className, PH_COPY | PH_SEPARATE); - } - ZEPHIR_CALL_METHOD(NULL, &methodParams, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&methodParam); - ZEPHIR_INIT_NVAR(¶mKey); - if (Z_TYPE_P(&cache) != IS_NULL) { - ZEPHIR_CALL_METHOD(NULL, &cache, "set", NULL, 0, &cacheKey, ¶msCache); - zephir_check_call_status(); - } - zephir_update_property_array(this_ptr, SL("internalCache"), &cacheKey, ¶msCache); - RETURN_CTOR(¶ms); + zephir_update_property_array(this_ptr, SL("write"), &name, callableObject); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Binder, setCache) +static PHP_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocator, getConnection) { - zval *cache, cache_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *type_param = NULL, *name_param = NULL, collection, instanceName, instances, requested, _0, _1, _6, _2$$5, _3$$5, _4$$6, _5$$6; + zval type, name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&cache_sub); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&instanceName); + ZVAL_UNDEF(&instances); + ZVAL_UNDEF(&requested); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_4$$6); + ZVAL_UNDEF(&_5$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(cache, phalcon_cache_adapter_adapterinterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(type) + Z_PARAM_OPTIONAL + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &cache); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &type_param, &name_param); + zephir_get_strval(&type, type_param); + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + ZVAL_STRING(&name, ""); + } else { + zephir_get_strval(&name, name_param); + } - zephir_update_property_zval(this_ptr, ZEND_STRL("cache"), cache); - RETURN_THISW(); + ZEPHIR_OBS_VAR(&collection); + zephir_read_property_zval(&collection, this_ptr, &type, PH_NOISY_CC); + ZEPHIR_CPY_WRT(&requested, &name); + zephir_read_property(&_0, this_ptr, ZEND_STRL("instances"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&instances, &_0); + if (ZEPHIR_IS_EMPTY(&collection)) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getmaster", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, ""); + if (ZEPHIR_IS_IDENTICAL(&_1, &requested)) { + ZEPHIR_CALL_FUNCTION(&requested, "array_rand", NULL, 201, &collection); + zephir_check_call_status(); + } + if (!(zephir_array_isset(&collection, &requested))) { + ZEPHIR_INIT_VAR(&_2$$5); + object_init_ex(&_2$$5, phalcon_datamapper_pdo_exception_connectionnotfound_ce); + ZEPHIR_INIT_VAR(&_3$$5); + ZEPHIR_CONCAT_SVSV(&_3$$5, "Connection not found: ", &type, ":", &requested); + ZEPHIR_CALL_METHOD(NULL, &_2$$5, "__construct", NULL, 8, &_3$$5); + zephir_check_call_status(); + zephir_throw_exception_debug(&_2$$5, "phalcon/DataMapper/Pdo/ConnectionLocator.zep", 210); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_VAR(&instanceName); + ZEPHIR_CONCAT_VSV(&instanceName, &type, "-", &requested); + if (!(zephir_array_isset(&instances, &instanceName))) { + ZEPHIR_INIT_VAR(&_4$$6); + zephir_array_fetch(&_5$$6, &collection, &requested, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/ConnectionLocator.zep", 221); + ZEPHIR_CALL_USER_FUNC(&_4$$6, &_5$$6); + zephir_check_call_status(); + zephir_array_update_zval(&instances, &instanceName, &_4$$6, PH_COPY | PH_SEPARATE); + zephir_update_property_zval(this_ptr, ZEND_STRL("instances"), &instances); + } + zephir_array_fetch(&_6, &instances, &instanceName, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/ConnectionLocator.zep", 225); + RETURN_CTOR(&_6); } -zend_object *zephir_init_properties_Phalcon_Mvc_Model_Binder(zend_class_entry *class_type) +zend_object *zephir_init_properties_Phalcon_DataMapper_Pdo_ConnectionLocator(zend_class_entry *class_type) { zval _0, _2, _4, _1$$3, _3$$4, _5$$5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; @@ -138291,23 +123051,23 @@ zend_object *zephir_init_properties_Phalcon_Mvc_Model_Binder(zend_class_entry *c { zval local_this_ptr, *this_ptr = &local_this_ptr; ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("originalValues"), PH_NOISY_CC | PH_READONLY); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("instances"), PH_NOISY_CC | PH_READONLY); if (Z_TYPE_P(&_0) == IS_NULL) { ZEPHIR_INIT_VAR(&_1$$3); array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("originalValues"), &_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("instances"), &_1$$3); } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("internalCache"), PH_NOISY_CC | PH_READONLY); + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("write"), PH_NOISY_CC | PH_READONLY); if (Z_TYPE_P(&_2) == IS_NULL) { ZEPHIR_INIT_VAR(&_3$$4); array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("internalCache"), &_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("write"), &_3$$4); } - zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("boundModels"), PH_NOISY_CC | PH_READONLY); + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("read"), PH_NOISY_CC | PH_READONLY); if (Z_TYPE_P(&_4) == IS_NULL) { ZEPHIR_INIT_VAR(&_5$$5); array_init(&_5$$5); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("boundModels"), &_5$$5); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("read"), &_5$$5); } ZEPHIR_MM_RESTORE(); return Z_OBJ_P(this_ptr); @@ -138324,17 +123084,19 @@ zend_object *zephir_init_properties_Phalcon_Mvc_Model_Binder(zend_class_entry *c -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_BinderInterface) +ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_ConnectionLocatorInterface) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model, BinderInterface, phalcon, mvc_model_binderinterface, phalcon_mvc_model_binderinterface_method_entry); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\DataMapper\\Pdo, ConnectionLocatorInterface, phalcon, datamapper_pdo_connectionlocatorinterface, phalcon_datamapper_pdo_connectionlocatorinterface_method_entry); return SUCCESS; } -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_BinderInterface, bindToHandler); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_BinderInterface, getBoundModels); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_BinderInterface, getCache); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_BinderInterface, setCache); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocatorInterface, getMaster); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocatorInterface, getRead); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocatorInterface, getWrite); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocatorInterface, setMaster); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocatorInterface, setRead); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_ConnectionLocatorInterface, setWrite); @@ -138345,4644 +123107,4366 @@ ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_BinderInterface, setCache); -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Criteria) +ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Exception_CannotDisconnect) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model, Criteria, phalcon, mvc_model_criteria, phalcon_mvc_model_criteria_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Pdo\\Exception, CannotDisconnect, phalcon, datamapper_pdo_exception_cannotdisconnect, phalcon_datamapper_pdo_exception_exception_ce, NULL, 0); - zend_declare_property_null(phalcon_mvc_model_criteria_ce, SL("bindParams"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_criteria_ce, SL("bindTypes"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_mvc_model_criteria_ce, SL("hiddenParamNumber"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_criteria_ce, SL("model"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_criteria_ce, SL("params"), ZEND_ACC_PROTECTED); - phalcon_mvc_model_criteria_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_Criteria; + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Exception_ConnectionNotFound) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Pdo\\Exception, ConnectionNotFound, phalcon, datamapper_pdo_exception_connectionnotfound, phalcon_datamapper_pdo_exception_exception_ce, NULL, 0); - zend_class_implements(phalcon_mvc_model_criteria_ce, 1, phalcon_mvc_model_criteriainterface_ce); - zend_class_implements(phalcon_mvc_model_criteria_ce, 1, phalcon_di_injectionawareinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, andWhere) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Exception_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Pdo\\Exception, Exception, phalcon, datamapper_pdo_exception_exception, zend_ce_exception, NULL, 0); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Pdo\\Profiler, MemoryLogger, phalcon, datamapper_pdo_profiler_memorylogger, zephir_get_internal_ce(SL("psr\\log\\abstractlogger")), phalcon_datamapper_pdo_profiler_memorylogger_method_entry, 0); + + zend_declare_property_null(phalcon_datamapper_pdo_profiler_memorylogger_ce, SL("messages"), ZEND_ACC_PROTECTED); + phalcon_datamapper_pdo_profiler_memorylogger_ce->create_object = zephir_init_properties_Phalcon_DataMapper_Pdo_Profiler_MemoryLogger; + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger, getMessages) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "messages"); +} + +static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger, emergency) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *conditions_param = NULL, *bindParams = NULL, bindParams_sub, *bindTypes = NULL, bindTypes_sub, __$null, currentConditions, _0, _1$$3; - zval conditions; + zval context; + zval *message, message_sub, *context_param = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&conditions); - ZVAL_UNDEF(&bindParams_sub); - ZVAL_UNDEF(&bindTypes_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(¤tConditions); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&message_sub); + ZVAL_UNDEF(&context); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(conditions) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(message) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(bindParams) - Z_PARAM_ZVAL_OR_NULL(bindTypes) + Z_PARAM_ARRAY(context) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &conditions_param, &bindParams, &bindTypes); - if (UNEXPECTED(Z_TYPE_P(conditions_param) != IS_STRING && Z_TYPE_P(conditions_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'conditions' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(conditions_param) == IS_STRING)) { - zephir_get_strval(&conditions, conditions_param); + zephir_fetch_params(1, 1, 1, &message, &context_param); + if (!context_param) { + ZEPHIR_INIT_VAR(&context); + array_init(&context); } else { - ZEPHIR_INIT_VAR(&conditions); - } - if (!bindParams) { - bindParams = &bindParams_sub; - bindParams = &__$null; - } - if (!bindTypes) { - bindTypes = &bindTypes_sub; - bindTypes = &__$null; + zephir_get_arrval(&context, context_param); } - ZEPHIR_OBS_VAR(¤tConditions); - zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_string_fetch(¤tConditions, &_0, SL("conditions"), 0)) { - ZEPHIR_INIT_VAR(&_1$$3); - ZEPHIR_CONCAT_SVSVS(&_1$$3, "(", ¤tConditions, ") AND (", &conditions, ")"); - zephir_get_strval(&conditions, &_1$$3); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "where", NULL, 0, &conditions, bindParams, bindTypes); + ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_pdo_profiler_memorylogger_ce, getThis(), "emergency", NULL, 0, message, &context); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, betweenWhere) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger, alert) { - zval _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *expr_param = NULL, *minimum, minimum_sub, *maximum, maximum_sub, hiddenParam, minimumKey, nextHiddenParam, maximumKey, _0; - zval expr; + zval context; + zval *message, message_sub, *context_param = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&minimum_sub); - ZVAL_UNDEF(&maximum_sub); - ZVAL_UNDEF(&hiddenParam); - ZVAL_UNDEF(&minimumKey); - ZVAL_UNDEF(&nextHiddenParam); - ZVAL_UNDEF(&maximumKey); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&message_sub); + ZVAL_UNDEF(&context); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(expr) - Z_PARAM_ZVAL(minimum) - Z_PARAM_ZVAL(maximum) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(message) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(context) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &expr_param, &minimum, &maximum); - if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { - zephir_get_strval(&expr, expr_param); + zephir_fetch_params(1, 1, 1, &message, &context_param); + if (!context_param) { + ZEPHIR_INIT_VAR(&context); + array_init(&context); } else { - ZEPHIR_INIT_VAR(&expr); + zephir_get_arrval(&context, context_param); } - ZEPHIR_OBS_VAR(&hiddenParam); - zephir_read_property(&hiddenParam, this_ptr, ZEND_STRL("hiddenParamNumber"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(&nextHiddenParam); - ZVAL_LONG(&nextHiddenParam, (zephir_get_numberval(&hiddenParam) + 1)); - ZEPHIR_INIT_VAR(&minimumKey); - ZEPHIR_CONCAT_SV(&minimumKey, "ACP", &hiddenParam); - ZEPHIR_INIT_VAR(&maximumKey); - ZEPHIR_CONCAT_SV(&maximumKey, "ACP", &nextHiddenParam); - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_CONCAT_VSVSVS(&_0, &expr, " BETWEEN :", &minimumKey, ": AND :", &maximumKey, ":"); - ZEPHIR_INIT_VAR(&_1); - zephir_create_array(&_1, 2, 0); - zephir_array_update_zval(&_1, &minimumKey, minimum, PH_COPY); - zephir_array_update_zval(&_1, &maximumKey, maximum, PH_COPY); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "andwhere", NULL, 0, &_0, &_1); + ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_pdo_profiler_memorylogger_ce, getThis(), "alert", NULL, 0, message, &context); zephir_check_call_status(); - ZEPHIR_SEPARATE(&nextHiddenParam); - zephir_increment(&nextHiddenParam); - zephir_update_property_zval(this_ptr, ZEND_STRL("hiddenParamNumber"), &nextHiddenParam); - RETURN_THIS(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, bind) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger, critical) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_bool merge, _5; - zval *bindParams_param = NULL, *merge_param = NULL, _0, _3, _4, _1$$3, _2$$3, _6$$4, _7$$4, _8$$4, _9$$4, _10$$5; - zval bindParams; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval context; + zval *message, message_sub, *context_param = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_8$$4); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&message_sub); + ZVAL_UNDEF(&context); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(bindParams) + Z_PARAM_ZVAL(message) Z_PARAM_OPTIONAL - Z_PARAM_BOOL(merge) + Z_PARAM_ARRAY(context) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &bindParams_param, &merge_param); - ZEPHIR_OBS_COPY_OR_DUP(&bindParams, bindParams_param); - if (!merge_param) { - merge = 0; + zephir_fetch_params(1, 1, 1, &message, &context_param); + if (!context_param) { + ZEPHIR_INIT_VAR(&context); + array_init(&context); } else { - merge = zephir_get_boolval(merge_param); + zephir_get_arrval(&context, context_param); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_string(&_0, SL("bind")))) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "bind"); - zephir_update_property_array(this_ptr, SL("params"), &_2$$3, &_1$$3); - } - zephir_read_property(&_3, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_OBS_VAR(&_4); - zephir_array_fetch_string(&_4, &_3, SL("bind"), PH_NOISY, "phalcon/Mvc/Model/Criteria.zep", 129); - _5 = Z_TYPE_P(&_4) == IS_ARRAY; - if (_5) { - _5 = merge; - } - if (_5) { - zephir_read_property(&_6$$4, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_7$$4, &_6$$4, SL("bind"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Criteria.zep", 130); - ZEPHIR_INIT_VAR(&_8$$4); - zephir_add_function(&_8$$4, &_7$$4, &bindParams); - ZEPHIR_INIT_VAR(&_9$$4); - ZVAL_STRING(&_9$$4, "bind"); - zephir_update_property_array(this_ptr, SL("params"), &_9$$4, &_8$$4); - } else { - ZEPHIR_INIT_VAR(&_10$$5); - ZVAL_STRING(&_10$$5, "bind"); - zephir_update_property_array(this_ptr, SL("params"), &_10$$5, &bindParams); - } - RETURN_THIS(); + ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_pdo_profiler_memorylogger_ce, getThis(), "critical", NULL, 0, message, &context); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, bindTypes) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger, error) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *bindTypes_param = NULL, _0; - zval bindTypes; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval context; + zval *message, message_sub, *context_param = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&bindTypes); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&message_sub); + ZVAL_UNDEF(&context); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(bindTypes) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(message) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(context) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &bindTypes_param); - ZEPHIR_OBS_COPY_OR_DUP(&bindTypes, bindTypes_param); + zephir_fetch_params(1, 1, 1, &message, &context_param); + if (!context_param) { + ZEPHIR_INIT_VAR(&context); + array_init(&context); + } else { + zephir_get_arrval(&context, context_param); + } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "bindTypes"); - zephir_update_property_array(this_ptr, SL("params"), &_0, &bindTypes); - RETURN_THIS(); + ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_pdo_profiler_memorylogger_ce, getThis(), "error", NULL, 0, message, &context); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, cache) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger, warning) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *cache_param = NULL, _0; - zval cache; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval context; + zval *message, message_sub, *context_param = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&cache); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&message_sub); + ZVAL_UNDEF(&context); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(cache) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(message) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(context) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &cache_param); - ZEPHIR_OBS_COPY_OR_DUP(&cache, cache_param); + zephir_fetch_params(1, 1, 1, &message, &context_param); + if (!context_param) { + ZEPHIR_INIT_VAR(&context); + array_init(&context); + } else { + zephir_get_arrval(&context, context_param); + } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "cache"); - zephir_update_property_array(this_ptr, SL("params"), &_0, &cache); - RETURN_THIS(); + ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_pdo_profiler_memorylogger_ce, getThis(), "warning", NULL, 0, message, &context); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, columns) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger, notice) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *columns, columns_sub, _0; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval context; + zval *message, message_sub, *context_param = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&columns_sub); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&message_sub); + ZVAL_UNDEF(&context); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(columns) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(message) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(context) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &columns); + zephir_fetch_params(1, 1, 1, &message, &context_param); + if (!context_param) { + ZEPHIR_INIT_VAR(&context); + array_init(&context); + } else { + zephir_get_arrval(&context, context_param); + } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "columns"); - zephir_update_property_array(this_ptr, SL("params"), &_0, columns); - RETURN_THIS(); + ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_pdo_profiler_memorylogger_ce, getThis(), "notice", NULL, 0, message, &context); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, conditions) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger, info) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *conditions_param = NULL, _0; - zval conditions; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval context; + zval *message, message_sub, *context_param = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&conditions); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&message_sub); + ZVAL_UNDEF(&context); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(conditions) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(message) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(context) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &conditions_param); - if (UNEXPECTED(Z_TYPE_P(conditions_param) != IS_STRING && Z_TYPE_P(conditions_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'conditions' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(conditions_param) == IS_STRING)) { - zephir_get_strval(&conditions, conditions_param); + zephir_fetch_params(1, 1, 1, &message, &context_param); + if (!context_param) { + ZEPHIR_INIT_VAR(&context); + array_init(&context); } else { - ZEPHIR_INIT_VAR(&conditions); + zephir_get_arrval(&context, context_param); } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "conditions"); - zephir_update_property_array(this_ptr, SL("params"), &_0, &conditions); - RETURN_THIS(); + ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_pdo_profiler_memorylogger_ce, getThis(), "info", NULL, 0, message, &context); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, createBuilder) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger, debug) { - zval container, manager, builder, _1, _2, _3, _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_0 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval context; + zval *message, message_sub, *context_param = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&builder); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&message_sub); + ZVAL_UNDEF(&context); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(message) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(context) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(&container, this_ptr, "getdi", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&container) != IS_OBJECT) { - ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_0, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setdi", NULL, 0, &container); - zephir_check_call_status(); + zephir_fetch_params(1, 1, 1, &message, &context_param); + if (!context_param) { + ZEPHIR_INIT_VAR(&context); + array_init(&context); + } else { + zephir_get_arrval(&context, context_param); } - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "modelsManager"); - ZEPHIR_CALL_METHOD(&_1, &container, "getshared", NULL, 0, &_2); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&manager, &_1); - zephir_read_property(&_3, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&builder, &manager, "createbuilder", NULL, 0, &_3); - zephir_check_call_status(); - zephir_read_property(&_4, this_ptr, ZEND_STRL("model"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &builder, "from", NULL, 0, &_4); + + + ZEPHIR_CALL_PARENT(NULL, phalcon_datamapper_pdo_profiler_memorylogger_ce, getThis(), "debug", NULL, 0, message, &context); zephir_check_call_status(); - RETURN_CCTOR(&builder); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, distinct) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_MemoryLogger, log) { + zend_string *_3; + zend_ulong _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *distinct, distinct_sub, _0; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval context, replace; + zval *level, level_sub, *message, message_sub, *context_param = NULL, key, value, *_0, _1, _6, _4$$3, _5$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&distinct_sub); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&level_sub); + ZVAL_UNDEF(&message_sub); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&context); + ZVAL_UNDEF(&replace); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(distinct) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_ZVAL(level) + Z_PARAM_ZVAL(message) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(context) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &distinct); + zephir_fetch_params(1, 2, 1, &level, &message, &context_param); + if (!context_param) { + ZEPHIR_INIT_VAR(&context); + array_init(&context); + } else { + zephir_get_arrval(&context, context_param); + } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "distinct"); - zephir_update_property_array(this_ptr, SL("params"), &_0, distinct); - RETURN_THIS(); + ZEPHIR_INIT_VAR(&replace); + array_init(&replace); + zephir_is_iterable(&context, 0, "phalcon/DataMapper/Pdo/Profiler/MemoryLogger.zep", 130); + if (Z_TYPE_P(&context) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&context), _2, _3, _0) + { + ZEPHIR_INIT_NVAR(&key); + if (_3 != NULL) { + ZVAL_STR_COPY(&key, _3); + } else { + ZVAL_LONG(&key, _2); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0); + ZEPHIR_INIT_NVAR(&_4$$3); + ZEPHIR_CONCAT_SVS(&_4$$3, "{", &key, "}"); + zephir_array_update_zval(&replace, &_4$$3, &value, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &context, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &context, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &context, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &context, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_5$$4); + ZEPHIR_CONCAT_SVS(&_5$$4, "{", &key, "}"); + zephir_array_update_zval(&replace, &_5$$4, &value, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &context, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + ZEPHIR_CALL_FUNCTION(&_6, "strtr", NULL, 5, message, &replace); + zephir_check_call_status(); + zephir_update_property_array_append(this_ptr, SL("messages"), &_6); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, execute) +zend_object *zephir_init_properties_Phalcon_DataMapper_Pdo_Profiler_MemoryLogger(zend_class_entry *class_type) { - zend_class_entry *_1; - zval model, _0; + zval _0, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&_0); + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("messages"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} - ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(&model, this_ptr, "getmodelname", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&model) != IS_STRING)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Model name must be string", "phalcon/Mvc/Model/Criteria.zep", 245); - return; - } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getparams", NULL, 0); - zephir_check_call_status(); - _1 = zephir_fetch_class(&model); - ZEPHIR_RETURN_CALL_CE_STATIC(_1, "find", NULL, 0, &_0); - zephir_check_call_status(); - RETURN_MM(); + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Profiler_Profiler) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\DataMapper\\Pdo\\Profiler, Profiler, phalcon, datamapper_pdo_profiler_profiler, phalcon_datamapper_pdo_profiler_profiler_method_entry, 0); + + zend_declare_property_bool(phalcon_datamapper_pdo_profiler_profiler_ce, SL("active"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_datamapper_pdo_profiler_profiler_ce, SL("context"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_datamapper_pdo_profiler_profiler_ce, SL("logFormat"), "", ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_datamapper_pdo_profiler_profiler_ce, SL("logLevel"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_datamapper_pdo_profiler_profiler_ce, SL("logger"), ZEND_ACC_PROTECTED); + phalcon_datamapper_pdo_profiler_profiler_ce->create_object = zephir_init_properties_Phalcon_DataMapper_Pdo_Profiler_Profiler; + + zend_class_implements(phalcon_datamapper_pdo_profiler_profiler_ce, 1, phalcon_datamapper_pdo_profiler_profilerinterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, forUpdate) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_Profiler, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *forUpdate_param = NULL, _0, _1; - zend_bool forUpdate; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *logger = NULL, logger_sub, __$null, _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&logger_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_BOOL(forUpdate) + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(logger, zephir_get_internal_ce(SL("psr\\log\\loggerinterface"))) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &forUpdate_param); - if (!forUpdate_param) { - forUpdate = 1; + zephir_fetch_params(1, 0, 1, &logger); + if (!logger) { + logger = &logger_sub; + ZEPHIR_CPY_WRT(logger, &__$null); } else { - forUpdate = zephir_get_boolval(forUpdate_param); + ZEPHIR_SEPARATE_PARAM(logger); } + if (Z_TYPE_P(logger) == IS_NULL) { + ZEPHIR_INIT_NVAR(logger); + object_init_ex(logger, phalcon_datamapper_pdo_profiler_memorylogger_ce); + if (zephir_has_constructor(logger)) { + ZEPHIR_CALL_METHOD(NULL, logger, "__construct", NULL, 0); + zephir_check_call_status(); + } + + } ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "for_update"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_BOOL(&_1, forUpdate); - zephir_update_property_array(this_ptr, SL("params"), &_0, &_1); - RETURN_THIS(); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "{method} ({duration}s): {statement} {backtrace}"); + zephir_update_property_zval(this_ptr, ZEND_STRL("logFormat"), &_0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "debug"); + zephir_update_property_zval(this_ptr, ZEND_STRL("logLevel"), &_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("logger"), logger); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, fromInput) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_Profiler, finish) { - zend_bool _6$$4, _7$$7, _11$$10, _12$$13; - zend_string *_5$$3; - zend_ulong _4$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_9 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval data, conditions, bind, _1$$3; - zval modelName, operator, _17$$16; - zval *container, container_sub, *modelName_param = NULL, *data_param = NULL, *operator_param = NULL, __$null, attribute, field, value, type, metaData, model, dataTypes, criteria, columnMap, _0$$3, *_2$$3, _3$$3, _8$$9, _9$$9, _10$$8, _13$$15, _14$$15, _15$$14, _16$$16; + zval values; + zval *statement_param = NULL, *values_param = NULL, __$true, ex, finish, _0, _1$$3, _2$$3, _3$$3, _4$$3, _5$$3, _6$$3, _7$$3, _8$$3, _10$$3, _11$$3, _12$$3, _13$$3, _14$$3, _15$$3; + zval statement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&container_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&attribute); - ZVAL_UNDEF(&field); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&metaData); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&dataTypes); - ZVAL_UNDEF(&criteria); - ZVAL_UNDEF(&columnMap); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_8$$9); - ZVAL_UNDEF(&_9$$9); - ZVAL_UNDEF(&_10$$8); - ZVAL_UNDEF(&_13$$15); - ZVAL_UNDEF(&_14$$15); - ZVAL_UNDEF(&_15$$14); - ZVAL_UNDEF(&_16$$16); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&operator); - ZVAL_UNDEF(&_17$$16); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&conditions); - ZVAL_UNDEF(&bind); + ZVAL_UNDEF(&statement); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&ex); + ZVAL_UNDEF(&finish); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_8$$3); + ZVAL_UNDEF(&_10$$3); + ZVAL_UNDEF(&_11$$3); + ZVAL_UNDEF(&_12$$3); + ZVAL_UNDEF(&_13$$3); + ZVAL_UNDEF(&_14$$3); + ZVAL_UNDEF(&_15$$3); + ZVAL_UNDEF(&values); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 4) - Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) - Z_PARAM_STR(modelName) - Z_PARAM_ARRAY(data) + ZEND_PARSE_PARAMETERS_START(0, 2) Z_PARAM_OPTIONAL - Z_PARAM_STR(operator) + Z_PARAM_STR_OR_NULL(statement) + Z_PARAM_ARRAY(values) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 1, &container, &modelName_param, &data_param, &operator_param); - if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { - zephir_get_strval(&modelName, modelName_param); - } else { - ZEPHIR_INIT_VAR(&modelName); - } - ZEPHIR_OBS_COPY_OR_DUP(&data, data_param); - if (!operator_param) { - ZEPHIR_INIT_VAR(&operator); - ZVAL_STRING(&operator, "AND"); + zephir_fetch_params(1, 0, 2, &statement_param, &values_param); + if (!statement_param) { + ZEPHIR_INIT_VAR(&statement); } else { - if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); - RETURN_MM_NULL(); + zephir_get_strval(&statement, statement_param); } - if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { - zephir_get_strval(&operator, operator_param); + if (!values_param) { + ZEPHIR_INIT_VAR(&values); + array_init(&values); } else { - ZEPHIR_INIT_VAR(&operator); - } + zephir_get_arrval(&values, values_param); } - ZEPHIR_INIT_VAR(&conditions); - array_init(&conditions); - if (zephir_fast_count_int(&data)) { - ZEPHIR_INIT_VAR(&_0$$3); - ZVAL_STRING(&_0$$3, "modelsMetadata"); - ZEPHIR_CALL_METHOD(&metaData, container, "getshared", NULL, 0, &_0$$3); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1$$3); - zephir_create_array(&_1$$3, 2, 0); - zephir_array_fast_append(&_1$$3, &__$null); - zephir_array_fast_append(&_1$$3, container); - ZEPHIR_INIT_VAR(&model); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(&model, &modelName, &_1$$3); + zephir_read_property(&_0, this_ptr, ZEND_STRL("active"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(zephir_is_true(&_0))) { + ZEPHIR_INIT_VAR(&ex); + object_init_ex(&ex, phalcon_datamapper_pdo_exception_exception_ce); + ZEPHIR_CALL_METHOD(NULL, &ex, "__construct", NULL, 8); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&dataTypes, &metaData, "getdatatypes", NULL, 0, &model); + ZEPHIR_CALL_FUNCTION(&finish, "hrtime", NULL, 202, &__$true); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getreversecolumnmap", NULL, 0, &model); + ZEPHIR_CALL_METHOD(&_1$$3, &ex, "gettraceasstring", NULL, 203); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&bind); - array_init(&bind); - zephir_is_iterable(&data, 0, "phalcon/Mvc/Model/Criteria.zep", 322); - if (Z_TYPE_P(&data) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _4$$3, _5$$3, _2$$3) - { - ZEPHIR_INIT_NVAR(&field); - if (_5$$3 != NULL) { - ZVAL_STR_COPY(&field, _5$$3); - } else { - ZVAL_LONG(&field, _4$$3); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _2$$3); - _6$$4 = Z_TYPE_P(&columnMap) == IS_ARRAY; - if (_6$$4) { - _6$$4 = ((zephir_fast_count_int(&columnMap)) ? 1 : 0); - } - if (_6$$4) { - ZEPHIR_OBS_NVAR(&attribute); - zephir_array_fetch(&attribute, &columnMap, &field, PH_NOISY, "phalcon/Mvc/Model/Criteria.zep", 297); - } else { - ZEPHIR_CPY_WRT(&attribute, &field); - } - ZEPHIR_OBS_NVAR(&type); - if (zephir_array_isset_fetch(&type, &dataTypes, &attribute, 0)) { - _7$$7 = Z_TYPE_P(&value) != IS_NULL; - if (_7$$7) { - _7$$7 = !ZEPHIR_IS_STRING_IDENTICAL(&value, ""); - } - if (_7$$7) { - if (ZEPHIR_IS_LONG(&type, 2)) { - ZEPHIR_INIT_NVAR(&_8$$9); - ZEPHIR_CONCAT_SVSVS(&_8$$9, "[", &field, "] LIKE :", &field, ":"); - zephir_array_append(&conditions, &_8$$9, PH_SEPARATE, "phalcon/Mvc/Model/Criteria.zep", 308); - ZEPHIR_INIT_NVAR(&_9$$9); - ZEPHIR_CONCAT_SVS(&_9$$9, "%", &value, "%"); - zephir_array_update_zval(&bind, &field, &_9$$9, PH_COPY | PH_SEPARATE); - continue; - } - ZEPHIR_INIT_NVAR(&_10$$8); - ZEPHIR_CONCAT_SVSVS(&_10$$8, "[", &field, "] = :", &field, ":"); - zephir_array_append(&conditions, &_10$$8, PH_SEPARATE, "phalcon/Mvc/Model/Criteria.zep", 317); - zephir_array_update_zval(&bind, &field, &value, PH_COPY | PH_SEPARATE); - } - } - } ZEND_HASH_FOREACH_END(); + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "backtrace"); + zephir_update_property_array(this_ptr, SL("context"), &_2$$3, &_1$$3); + zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("context"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_4$$3, &_3$$3, SL("start"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/Profiler/Profiler.zep", 91); + ZEPHIR_INIT_VAR(&_5$$3); + zephir_sub_function(&_5$$3, &finish, &_4$$3); + ZEPHIR_INIT_VAR(&_6$$3); + ZVAL_STRING(&_6$$3, "duration"); + zephir_update_property_array(this_ptr, SL("context"), &_6$$3, &_5$$3); + ZEPHIR_INIT_VAR(&_7$$3); + ZVAL_STRING(&_7$$3, "finish"); + zephir_update_property_array(this_ptr, SL("context"), &_7$$3, &finish); + ZEPHIR_INIT_VAR(&_8$$3); + ZVAL_STRING(&_8$$3, "statement"); + zephir_update_property_array(this_ptr, SL("context"), &_8$$3, &statement); + ZEPHIR_INIT_NVAR(&_5$$3); + if (ZEPHIR_IS_EMPTY(&values)) { + ZEPHIR_INIT_NVAR(&_5$$3); + ZVAL_STRING(&_5$$3, ""); } else { - ZEPHIR_CALL_METHOD(NULL, &data, "rewind", NULL, 0); + ZEPHIR_CALL_CE_STATIC(&_5$$3, phalcon_helper_json_ce, "encode", &_9, 14, &values); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3$$3, &data, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&field, &data, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &data, "current", NULL, 0); - zephir_check_call_status(); - _11$$10 = Z_TYPE_P(&columnMap) == IS_ARRAY; - if (_11$$10) { - _11$$10 = ((zephir_fast_count_int(&columnMap)) ? 1 : 0); - } - if (_11$$10) { - ZEPHIR_OBS_NVAR(&attribute); - zephir_array_fetch(&attribute, &columnMap, &field, PH_NOISY, "phalcon/Mvc/Model/Criteria.zep", 297); - } else { - ZEPHIR_CPY_WRT(&attribute, &field); - } - ZEPHIR_OBS_NVAR(&type); - if (zephir_array_isset_fetch(&type, &dataTypes, &attribute, 0)) { - _12$$13 = Z_TYPE_P(&value) != IS_NULL; - if (_12$$13) { - _12$$13 = !ZEPHIR_IS_STRING_IDENTICAL(&value, ""); - } - if (_12$$13) { - if (ZEPHIR_IS_LONG(&type, 2)) { - ZEPHIR_INIT_NVAR(&_13$$15); - ZEPHIR_CONCAT_SVSVS(&_13$$15, "[", &field, "] LIKE :", &field, ":"); - zephir_array_append(&conditions, &_13$$15, PH_SEPARATE, "phalcon/Mvc/Model/Criteria.zep", 308); - ZEPHIR_INIT_NVAR(&_14$$15); - ZEPHIR_CONCAT_SVS(&_14$$15, "%", &value, "%"); - zephir_array_update_zval(&bind, &field, &_14$$15, PH_COPY | PH_SEPARATE); - continue; - } - ZEPHIR_INIT_NVAR(&_15$$14); - ZEPHIR_CONCAT_SVSVS(&_15$$14, "[", &field, "] = :", &field, ":"); - zephir_array_append(&conditions, &_15$$14, PH_SEPARATE, "phalcon/Mvc/Model/Criteria.zep", 317); - zephir_array_update_zval(&bind, &field, &value, PH_COPY | PH_SEPARATE); - } - } - ZEPHIR_CALL_METHOD(NULL, &data, "next", NULL, 0); - zephir_check_call_status(); - } } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&field); - } - ZEPHIR_INIT_VAR(&criteria); - object_init_ex(&criteria, phalcon_mvc_model_criteria_ce); - if (zephir_has_constructor(&criteria)) { - ZEPHIR_CALL_METHOD(NULL, &criteria, "__construct", NULL, 0); + ZEPHIR_INIT_VAR(&_10$$3); + ZVAL_STRING(&_10$$3, "values"); + zephir_update_property_array(this_ptr, SL("context"), &_10$$3, &_5$$3); + zephir_read_property(&_11$$3, this_ptr, ZEND_STRL("logger"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_12$$3, this_ptr, ZEND_STRL("logLevel"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_13$$3, this_ptr, ZEND_STRL("logFormat"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_14$$3, this_ptr, ZEND_STRL("context"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_11$$3, "log", NULL, 0, &_12$$3, &_13$$3, &_14$$3); zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_15$$3); + array_init(&_15$$3); + zephir_update_property_zval(this_ptr, ZEND_STRL("context"), &_15$$3); } + ZEPHIR_MM_RESTORE(); +} - ZEPHIR_CALL_METHOD(NULL, &criteria, "setdi", NULL, 441, container); - zephir_check_call_status(); - if (zephir_fast_count_int(&conditions)) { - ZEPHIR_INIT_VAR(&_16$$16); - ZEPHIR_INIT_VAR(&_17$$16); - ZEPHIR_CONCAT_SVS(&_17$$16, " ", &operator, " "); - zephir_fast_join(&_16$$16, &_17$$16, &conditions); - ZEPHIR_CALL_METHOD(NULL, &criteria, "where", NULL, 450, &_16$$16); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &criteria, "bind", NULL, 451, &bind); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, &criteria, "setmodelname", NULL, 442, &modelName); - zephir_check_call_status(); - RETURN_CCTOR(&criteria); +static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_Profiler, getLogFormat) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "logFormat"); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, getColumns) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_Profiler, getLogger) { - zval columns, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&_0); + RETURN_MEMBER(getThis(), "logger"); +} - zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_string_fetch(&columns, &_0, SL("columns"), 1))) { - RETURN_NULL(); - } - RETURN_CTORW(&columns); +static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_Profiler, getLogLevel) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "logLevel"); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, getConditions) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_Profiler, isActive) { - zval conditions, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&conditions); - ZVAL_UNDEF(&_0); + RETURN_MEMBER(getThis(), "active"); +} - zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_string_fetch(&conditions, &_0, SL("conditions"), 1))) { - RETURN_NULL(); +static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_Profiler, setActive) +{ + zval *active_param = NULL, __$true, __$false; + zend_bool active; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(active) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &active_param); + active = zephir_get_boolval(active_param); + + + if (active) { + zephir_update_property_zval(this_ptr, ZEND_STRL("active"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("active"), &__$false); } - RETURN_CTORW(&conditions); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, getDI) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_Profiler, setLogFormat) { - zval _0, _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *logFormat_param = NULL; + zval logFormat; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&logFormat); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(logFormat) + ZEND_PARSE_PARAMETERS_END(); +#endif + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &logFormat_param); + zephir_get_strval(&logFormat, logFormat_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_1, &_0, SL("di"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Criteria.zep", 379); - RETURN_CTORW(&_1); + zephir_update_property_zval(this_ptr, ZEND_STRL("logFormat"), &logFormat); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, getGroupBy) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_Profiler, setLogLevel) { - zval group, _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *logLevel_param = NULL; + zval logLevel; zval *this_ptr = getThis(); - ZVAL_UNDEF(&group); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&logLevel); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(logLevel) + ZEND_PARSE_PARAMETERS_END(); +#endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &logLevel_param); + zephir_get_strval(&logLevel, logLevel_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_string_fetch(&group, &_0, SL("group"), 1))) { - RETURN_NULL(); - } - RETURN_CTORW(&group); + + zephir_update_property_zval(this_ptr, ZEND_STRL("logLevel"), &logLevel); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, getHaving) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Profiler_Profiler, start) { - zval having, _0; + zval _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *method_param = NULL, __$true, _0, _2$$3; + zval method; zval *this_ptr = getThis(); - ZVAL_UNDEF(&having); + ZVAL_UNDEF(&method); + ZVAL_BOOL(&__$true, 1); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_1$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(method) + ZEND_PARSE_PARAMETERS_END(); +#endif + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &method_param); + zephir_get_strval(&method, method_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_string_fetch(&having, &_0, SL("having"), 1))) { - RETURN_NULL(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("active"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(zephir_is_true(&_0))) { + ZEPHIR_INIT_VAR(&_1$$3); + zephir_create_array(&_1$$3, 2, 0); + zephir_array_update_string(&_1$$3, SL("method"), &method, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_FUNCTION(&_2$$3, "hrtime", NULL, 202, &__$true); + zephir_check_call_status(); + zephir_array_update_string(&_1$$3, SL("start"), &_2$$3, PH_COPY | PH_SEPARATE); + zephir_update_property_zval(this_ptr, ZEND_STRL("context"), &_1$$3); } - RETURN_CTORW(&having); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, getLimit) +zend_object *zephir_init_properties_Phalcon_DataMapper_Pdo_Profiler_Profiler(zend_class_entry *class_type) { - zval limit, _0; + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("context"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("context"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Profiler_ProfilerInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\DataMapper\\Pdo\\Profiler, ProfilerInterface, phalcon, datamapper_pdo_profiler_profilerinterface, phalcon_datamapper_pdo_profiler_profilerinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Profiler_ProfilerInterface, finish); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Profiler_ProfilerInterface, getLogger); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Profiler_ProfilerInterface, getLogFormat); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Profiler_ProfilerInterface, getLogLevel); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Profiler_ProfilerInterface, isActive); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Profiler_ProfilerInterface, setActive); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Profiler_ProfilerInterface, setLogFormat); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Profiler_ProfilerInterface, setLogLevel); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Profiler_ProfilerInterface, start); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Connection_AbstractConnection) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\DataMapper\\Pdo\\Connection, AbstractConnection, phalcon, datamapper_pdo_connection_abstractconnection, phalcon_datamapper_pdo_connection_abstractconnection_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_datamapper_pdo_connection_abstractconnection_ce, SL("pdo"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_datamapper_pdo_connection_abstractconnection_ce, SL("profiler"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_datamapper_pdo_connection_abstractconnection_ce, 1, phalcon_datamapper_pdo_connection_connectioninterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, __call) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval arguments, _2; + zval *name, name_sub, *arguments_param = NULL, className, message, _0, _3, _1$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&limit); + ZVAL_UNDEF(&name_sub); + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&message); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&arguments); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(name) + Z_PARAM_ARRAY(arguments) + ZEND_PARSE_PARAMETERS_END(); +#endif + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &name, &arguments_param); + zephir_get_arrval(&arguments, arguments_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_string_fetch(&limit, &_0, SL("limit"), 1))) { - RETURN_NULL(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + if (!((zephir_method_exists(&_0, name) == SUCCESS))) { + ZEPHIR_INIT_VAR(&className); + zephir_get_class(&className, this_ptr, 0); + ZEPHIR_INIT_VAR(&message); + ZEPHIR_CONCAT_SVSVS(&message, "Class '", &className, "' does not have a method '", name, "'"); + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, spl_ce_BadMethodCallException); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 95, &message); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 62); + ZEPHIR_MM_RESTORE(); + return; } - RETURN_CTORW(&limit); + ZEPHIR_INIT_VAR(&_2); + zephir_create_array(&_2, 2, 0); + ZEPHIR_OBS_VAR(&_3); + zephir_read_property(&_3, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC); + zephir_array_fast_append(&_2, &_3); + zephir_array_fast_append(&_2, name); + ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, &_2, &arguments); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, getModelName) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, beginTransaction) { + zval result, _0, _1, _2, _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); - RETURN_MEMBER(getThis(), "model"); + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "beginTransaction"); + ZEPHIR_CALL_METHOD(NULL, &_0, "start", NULL, 0, &_1); + zephir_check_call_status(); + zephir_read_property(&_2, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&result, &_2, "begintransaction", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_3, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_3, "finish", NULL, 0); + zephir_check_call_status(); + RETURN_CCTOR(&result); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, getOrderBy) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, commit) { - zval order, _0; + zval result, _0, _1, _2, _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&order); + ZVAL_UNDEF(&result); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_string_fetch(&order, &_0, SL("order"), 1))) { - RETURN_NULL(); - } - RETURN_CTORW(&order); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "commit"); + ZEPHIR_CALL_METHOD(NULL, &_0, "start", NULL, 0, &_1); + zephir_check_call_status(); + zephir_read_property(&_2, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&result, &_2, "commit", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_3, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_3, "finish", NULL, 0); + zephir_check_call_status(); + RETURN_CCTOR(&result); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, getParams) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, connect) +{ +} + +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, disconnect) +{ +} + +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, errorCode) { + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); - RETURN_MEMBER(getThis(), "params"); + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "errorcode", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, getWhere) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, errorInfo) { - zval conditions, _0; + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&conditions); ZVAL_UNDEF(&_0); + ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_string_fetch(&conditions, &_0, SL("conditions"), 1))) { - RETURN_NULL(); - } - RETURN_CTORW(&conditions); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "errorinfo", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, groupBy) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, exec) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *group, group_sub, _0; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *statement_param = NULL, affectedRows, _0, _1, _2, _3; + zval statement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&group_sub); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&affectedRows); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(group) + Z_PARAM_STR(statement) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &group); + zephir_fetch_params(1, 1, 0, &statement_param); + zephir_get_strval(&statement, statement_param); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "group"); - zephir_update_property_array(this_ptr, SL("params"), &_0, group); - RETURN_THIS(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "exec"); + ZEPHIR_CALL_METHOD(NULL, &_0, "start", NULL, 0, &_1); + zephir_check_call_status(); + zephir_read_property(&_2, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&affectedRows, &_2, "exec", NULL, 0, &statement); + zephir_check_call_status(); + zephir_read_property(&_3, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_3, "finish", NULL, 0, &statement); + zephir_check_call_status(); + RETURN_CCTOR(&affectedRows); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, having) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchAffected) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *having, having_sub, _0; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval values; + zval *statement_param = NULL, *values_param = NULL, sth; + zval statement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&having_sub); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&sth); + ZVAL_UNDEF(&values); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(having) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(statement) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(values) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &having); + zephir_fetch_params(1, 1, 1, &statement_param, &values_param); + zephir_get_strval(&statement, statement_param); + if (!values_param) { + ZEPHIR_INIT_VAR(&values); + array_init(&values); + } else { + zephir_get_arrval(&values, values_param); + } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "having"); - zephir_update_property_array(this_ptr, SL("params"), &_0, having); - RETURN_THIS(); + ZEPHIR_CALL_METHOD(&sth, this_ptr, "perform", NULL, 0, &statement, &values); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(&sth, "rowcount", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, innerJoin) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchAll) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model_param = NULL, *conditions = NULL, conditions_sub, *alias = NULL, alias_sub, __$null, _0; - zval model; + zval values, _0; + zval *statement_param = NULL, *values_param = NULL, _1; + zval statement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&conditions_sub); - ZVAL_UNDEF(&alias_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&values); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(model) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(statement) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(conditions) - Z_PARAM_ZVAL_OR_NULL(alias) + Z_PARAM_ARRAY(values) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &model_param, &conditions, &alias); - if (UNEXPECTED(Z_TYPE_P(model_param) != IS_STRING && Z_TYPE_P(model_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'model' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(model_param) == IS_STRING)) { - zephir_get_strval(&model, model_param); + zephir_fetch_params(1, 1, 1, &statement_param, &values_param); + zephir_get_strval(&statement, statement_param); + if (!values_param) { + ZEPHIR_INIT_VAR(&values); + array_init(&values); } else { - ZEPHIR_INIT_VAR(&model); - } - if (!conditions) { - conditions = &conditions_sub; - conditions = &__$null; - } - if (!alias) { - alias = &alias_sub; - alias = &__$null; + zephir_get_arrval(&values, values_param); } ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "INNER"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "join", NULL, 0, &model, conditions, alias, &_0); + zephir_create_array(&_0, 1, 0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_LONG(&_1, 2); + zephir_array_fast_append(&_0, &_1); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "fetchAll"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "fetchdata", NULL, 0, &_1, &_0, &statement, &values); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, inWhere) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchAssoc) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_2 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval values, bindParams, bindKeys; - zval *expr_param = NULL, *values_param = NULL, hiddenParam, value, *_1, _2, _5, _6, _3$$4, _4$$5; - zval expr, key, queryKey, _0$$3; + zval values; + zval *statement_param = NULL, *values_param = NULL, data, row, sth, _0, _1$$3, _3$$3; + zval statement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&queryKey); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&hiddenParam); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&row); + ZVAL_UNDEF(&sth); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$3); ZVAL_UNDEF(&values); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindKeys); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(expr) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(statement) + Z_PARAM_OPTIONAL Z_PARAM_ARRAY(values) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &expr_param, &values_param); - if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { - zephir_get_strval(&expr, expr_param); + zephir_fetch_params(1, 1, 1, &statement_param, &values_param); + zephir_get_strval(&statement, statement_param); + if (!values_param) { + ZEPHIR_INIT_VAR(&values); + array_init(&values); } else { - ZEPHIR_INIT_VAR(&expr); + zephir_get_arrval(&values, values_param); } - ZEPHIR_OBS_COPY_OR_DUP(&values, values_param); - if (!(zephir_fast_count_int(&values))) { - ZEPHIR_INIT_VAR(&_0$$3); - ZEPHIR_CONCAT_VSV(&_0$$3, &expr, " != ", &expr); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "andwhere", NULL, 0, &_0$$3); + ZEPHIR_INIT_VAR(&data); + array_init(&data); + ZEPHIR_CALL_METHOD(&sth, this_ptr, "perform", NULL, 0, &statement, &values); + zephir_check_call_status(); + ZVAL_LONG(&_0, 2); + ZEPHIR_CALL_METHOD(&row, &sth, "fetch", NULL, 0, &_0); + zephir_check_call_status(); + while (1) { + if (!(zephir_is_true(&row))) { + break; + } + ZEPHIR_CALL_FUNCTION(&_1$$3, "current", &_2, 4, &row); zephir_check_call_status(); - RETURN_THIS(); - } - ZEPHIR_OBS_VAR(&hiddenParam); - zephir_read_property(&hiddenParam, this_ptr, ZEND_STRL("hiddenParamNumber"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(&bindParams); - array_init(&bindParams); - ZEPHIR_INIT_VAR(&bindKeys); - array_init(&bindKeys); - zephir_is_iterable(&values, 0, "phalcon/Mvc/Model/Criteria.zep", 559); - if (Z_TYPE_P(&values) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&values), _1) - { - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _1); - ZEPHIR_INIT_NVAR(&_3$$4); - ZEPHIR_CONCAT_SV(&_3$$4, "ACP", &hiddenParam); - zephir_get_strval(&key, &_3$$4); - ZEPHIR_INIT_NVAR(&queryKey); - ZEPHIR_CONCAT_SVS(&queryKey, ":", &key, ":"); - zephir_array_append(&bindKeys, &queryKey, PH_SEPARATE, "phalcon/Mvc/Model/Criteria.zep", 549); - zephir_array_update_zval(&bindParams, &key, &value, PH_COPY | PH_SEPARATE); - ZEPHIR_SEPARATE(&hiddenParam); - zephir_increment(&hiddenParam); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &values, "rewind", NULL, 0); + zephir_array_update_zval(&data, &_1$$3, &row, PH_COPY | PH_SEPARATE); + ZVAL_LONG(&_3$$3, 2); + ZEPHIR_CALL_METHOD(&row, &sth, "fetch", NULL, 0, &_3$$3); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &values, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&value, &values, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_4$$5); - ZEPHIR_CONCAT_SV(&_4$$5, "ACP", &hiddenParam); - zephir_get_strval(&key, &_4$$5); - ZEPHIR_INIT_NVAR(&queryKey); - ZEPHIR_CONCAT_SVS(&queryKey, ":", &key, ":"); - zephir_array_append(&bindKeys, &queryKey, PH_SEPARATE, "phalcon/Mvc/Model/Criteria.zep", 549); - zephir_array_update_zval(&bindParams, &key, &value, PH_COPY | PH_SEPARATE); - ZEPHIR_SEPARATE(&hiddenParam); - zephir_increment(&hiddenParam); - ZEPHIR_CALL_METHOD(NULL, &values, "next", NULL, 0); - zephir_check_call_status(); - } } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_VAR(&_5); - zephir_fast_join_str(&_5, SL(", "), &bindKeys); - ZEPHIR_INIT_VAR(&_6); - ZEPHIR_CONCAT_VSVS(&_6, &expr, " IN (", &_5, ")"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "andwhere", NULL, 0, &_6, &bindParams); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("hiddenParamNumber"), &hiddenParam); - RETURN_THIS(); + RETURN_CCTOR(&data); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, join) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchColumn) { - zval join, _1$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *model_param = NULL, *conditions = NULL, conditions_sub, *alias = NULL, alias_sub, *type = NULL, type_sub, __$null, mergedJoins, currentJoins, _0, _4, _2$$5, _3$$6; - zval model; + zend_long column, ZEPHIR_LAST_CALL_STATUS; + zval values, _0; + zval *statement_param = NULL, *values_param = NULL, *column_param = NULL, _1; + zval statement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&conditions_sub); - ZVAL_UNDEF(&alias_sub); - ZVAL_UNDEF(&type_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&mergedJoins); - ZVAL_UNDEF(¤tJoins); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&values); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_2$$5); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&join); - ZVAL_UNDEF(&_1$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 4) - Z_PARAM_STR(model) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(statement) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(conditions) - Z_PARAM_ZVAL_OR_NULL(alias) - Z_PARAM_ZVAL_OR_NULL(type) + Z_PARAM_ARRAY(values) + Z_PARAM_LONG(column) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 3, &model_param, &conditions, &alias, &type); - if (UNEXPECTED(Z_TYPE_P(model_param) != IS_STRING && Z_TYPE_P(model_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'model' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(model_param) == IS_STRING)) { - zephir_get_strval(&model, model_param); + zephir_fetch_params(1, 1, 2, &statement_param, &values_param, &column_param); + zephir_get_strval(&statement, statement_param); + if (!values_param) { + ZEPHIR_INIT_VAR(&values); + array_init(&values); } else { - ZEPHIR_INIT_VAR(&model); - } - if (!conditions) { - conditions = &conditions_sub; - conditions = &__$null; - } - if (!alias) { - alias = &alias_sub; - alias = &__$null; + zephir_get_arrval(&values, values_param); } - if (!type) { - type = &type_sub; - type = &__$null; + if (!column_param) { + column = 0; + } else { + column = zephir_get_intval(column_param); } - ZEPHIR_INIT_VAR(&join); - zephir_create_array(&join, 4, 0); - zephir_array_fast_append(&join, &model); - zephir_array_fast_append(&join, conditions); - zephir_array_fast_append(&join, alias); - zephir_array_fast_append(&join, type); - ZEPHIR_OBS_VAR(¤tJoins); - zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_string_fetch(¤tJoins, &_0, SL("joins"), 0)) { - if (Z_TYPE_P(¤tJoins) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&_1$$4); - zephir_create_array(&_1$$4, 1, 0); - zephir_array_fast_append(&_1$$4, &join); - ZEPHIR_INIT_VAR(&mergedJoins); - zephir_fast_array_merge(&mergedJoins, ¤tJoins, &_1$$4); - } else { - ZEPHIR_INIT_VAR(&_2$$5); - zephir_create_array(&_2$$5, 1, 0); - zephir_array_fast_append(&_2$$5, &join); - ZEPHIR_CPY_WRT(&mergedJoins, &_2$$5); - } - } else { - ZEPHIR_INIT_VAR(&_3$$6); - zephir_create_array(&_3$$6, 1, 0); - zephir_array_fast_append(&_3$$6, &join); - ZEPHIR_CPY_WRT(&mergedJoins, &_3$$6); - } - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "joins"); - zephir_update_property_array(this_ptr, SL("params"), &_4, &mergedJoins); - RETURN_THIS(); + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 2, 0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_LONG(&_1, 7); + zephir_array_fast_append(&_0, &_1); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_LONG(&_1, column); + zephir_array_fast_append(&_0, &_1); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "fetchAll"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "fetchdata", NULL, 0, &_1, &_0, &statement, &values); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, leftJoin) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchGroup) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model_param = NULL, *conditions = NULL, conditions_sub, *alias = NULL, alias_sub, __$null, _0; - zval model; + zend_long flags, ZEPHIR_LAST_CALL_STATUS; + zval values, _0; + zval *statement_param = NULL, *values_param = NULL, *flags_param = NULL, _1; + zval statement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&conditions_sub); - ZVAL_UNDEF(&alias_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&values); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(model) + Z_PARAM_STR(statement) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(conditions) - Z_PARAM_ZVAL_OR_NULL(alias) + Z_PARAM_ARRAY(values) + Z_PARAM_LONG(flags) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &model_param, &conditions, &alias); - if (UNEXPECTED(Z_TYPE_P(model_param) != IS_STRING && Z_TYPE_P(model_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'model' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(model_param) == IS_STRING)) { - zephir_get_strval(&model, model_param); + zephir_fetch_params(1, 1, 2, &statement_param, &values_param, &flags_param); + zephir_get_strval(&statement, statement_param); + if (!values_param) { + ZEPHIR_INIT_VAR(&values); + array_init(&values); } else { - ZEPHIR_INIT_VAR(&model); - } - if (!conditions) { - conditions = &conditions_sub; - conditions = &__$null; + zephir_get_arrval(&values, values_param); } - if (!alias) { - alias = &alias_sub; - alias = &__$null; + if (!flags_param) { + flags = 2; + } else { + flags = zephir_get_intval(flags_param); } ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "LEFT"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "join", NULL, 0, &model, conditions, alias, &_0); + zephir_create_array(&_0, 1, 0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_LONG(&_1, (65536 | flags)); + zephir_array_fast_append(&_0, &_1); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "fetchAll"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "fetchdata", NULL, 0, &_1, &_0, &statement, &values); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, limit) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchObject) { - zval _5$$5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *limit_param = NULL, *offset_param = NULL, _0, _1, _2, _3$$4, _4$$4, _6$$5; - zend_long limit, offset, ZEPHIR_LAST_CALL_STATUS; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval values, arguments; + zval *statement_param = NULL, *values_param = NULL, *className_param = NULL, *arguments_param = NULL, sth; + zval statement, className; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&sth); + ZVAL_UNDEF(&values); + ZVAL_UNDEF(&arguments); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_LONG(limit) + ZEND_PARSE_PARAMETERS_START(1, 4) + Z_PARAM_STR(statement) Z_PARAM_OPTIONAL - Z_PARAM_LONG(offset) + Z_PARAM_ARRAY(values) + Z_PARAM_STR(className) + Z_PARAM_ARRAY(arguments) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &limit_param, &offset_param); - limit = zephir_get_intval(limit_param); - if (!offset_param) { - offset = 0; + zephir_fetch_params(1, 1, 3, &statement_param, &values_param, &className_param, &arguments_param); + zephir_get_strval(&statement, statement_param); + if (!values_param) { + ZEPHIR_INIT_VAR(&values); + array_init(&values); } else { - offset = zephir_get_intval(offset_param); + zephir_get_arrval(&values, values_param); + } + if (!className_param) { + ZEPHIR_INIT_VAR(&className); + ZVAL_STRING(&className, "stdClass"); + } else { + zephir_get_strval(&className, className_param); + } + if (!arguments_param) { + ZEPHIR_INIT_VAR(&arguments); + array_init(&arguments); + } else { + zephir_get_arrval(&arguments, arguments_param); } - ZVAL_LONG(&_0, limit); - ZEPHIR_CALL_FUNCTION(&_1, "abs", NULL, 238, &_0); + ZEPHIR_CALL_METHOD(&sth, this_ptr, "perform", NULL, 0, &statement, &values); zephir_check_call_status(); - limit = zephir_get_numberval(&_1); - ZVAL_LONG(&_0, offset); - ZEPHIR_CALL_FUNCTION(&_2, "abs", NULL, 238, &_0); + ZEPHIR_RETURN_CALL_METHOD(&sth, "fetchobject", NULL, 0, &className, &arguments); zephir_check_call_status(); - offset = zephir_get_numberval(&_2); - if (UNEXPECTED(limit == 0)) { - RETURN_THIS(); - } - if (offset == 0) { - ZEPHIR_INIT_VAR(&_3$$4); - ZVAL_STRING(&_3$$4, "limit"); - ZEPHIR_INIT_VAR(&_4$$4); - ZVAL_LONG(&_4$$4, limit); - zephir_update_property_array(this_ptr, SL("params"), &_3$$4, &_4$$4); - } else { - ZEPHIR_INIT_VAR(&_5$$5); - zephir_create_array(&_5$$5, 2, 0); - ZEPHIR_INIT_VAR(&_6$$5); - ZVAL_LONG(&_6$$5, limit); - zephir_array_update_string(&_5$$5, SL("number"), &_6$$5, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_6$$5); - ZVAL_LONG(&_6$$5, offset); - zephir_array_update_string(&_5$$5, SL("offset"), &_6$$5, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_6$$5); - ZVAL_STRING(&_6$$5, "limit"); - zephir_update_property_array(this_ptr, SL("params"), &_6$$5, &_5$$5); - } - RETURN_THIS(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, notBetweenWhere) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchObjects) { - zval _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *expr_param = NULL, *minimum, minimum_sub, *maximum, maximum_sub, hiddenParam, nextHiddenParam, _0, _1; - zval expr, minimumKey, maximumKey, _2; + zval values, arguments; + zval *statement_param = NULL, *values_param = NULL, *className_param = NULL, *arguments_param = NULL, sth, _0; + zval statement, className; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&minimumKey); - ZVAL_UNDEF(&maximumKey); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&minimum_sub); - ZVAL_UNDEF(&maximum_sub); - ZVAL_UNDEF(&hiddenParam); - ZVAL_UNDEF(&nextHiddenParam); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&sth); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&values); + ZVAL_UNDEF(&arguments); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(expr) - Z_PARAM_ZVAL(minimum) - Z_PARAM_ZVAL(maximum) + ZEND_PARSE_PARAMETERS_START(1, 4) + Z_PARAM_STR(statement) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(values) + Z_PARAM_STR(className) + Z_PARAM_ARRAY(arguments) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &expr_param, &minimum, &maximum); - if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); - RETURN_MM_NULL(); + zephir_fetch_params(1, 1, 3, &statement_param, &values_param, &className_param, &arguments_param); + zephir_get_strval(&statement, statement_param); + if (!values_param) { + ZEPHIR_INIT_VAR(&values); + array_init(&values); + } else { + zephir_get_arrval(&values, values_param); } - if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { - zephir_get_strval(&expr, expr_param); + if (!className_param) { + ZEPHIR_INIT_VAR(&className); + ZVAL_STRING(&className, "stdClass"); } else { - ZEPHIR_INIT_VAR(&expr); + zephir_get_strval(&className, className_param); + } + if (!arguments_param) { + ZEPHIR_INIT_VAR(&arguments); + array_init(&arguments); + } else { + zephir_get_arrval(&arguments, arguments_param); } - ZEPHIR_OBS_VAR(&hiddenParam); - zephir_read_property(&hiddenParam, this_ptr, ZEND_STRL("hiddenParamNumber"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(&nextHiddenParam); - ZVAL_LONG(&nextHiddenParam, (zephir_get_numberval(&hiddenParam) + 1)); - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_CONCAT_SV(&_0, "ACP", &hiddenParam); - zephir_get_strval(&minimumKey, &_0); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_CONCAT_SV(&_1, "ACP", &nextHiddenParam); - zephir_get_strval(&maximumKey, &_1); - ZEPHIR_INIT_VAR(&_2); - ZEPHIR_CONCAT_VSVSVS(&_2, &expr, " NOT BETWEEN :", &minimumKey, ": AND :", &maximumKey, ":"); - ZEPHIR_INIT_VAR(&_3); - zephir_create_array(&_3, 2, 0); - zephir_array_update_zval(&_3, &minimumKey, minimum, PH_COPY); - zephir_array_update_zval(&_3, &maximumKey, maximum, PH_COPY); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "andwhere", NULL, 0, &_2, &_3); + ZEPHIR_CALL_METHOD(&sth, this_ptr, "perform", NULL, 0, &statement, &values); zephir_check_call_status(); - ZEPHIR_SEPARATE(&nextHiddenParam); - zephir_increment(&nextHiddenParam); - zephir_update_property_zval(this_ptr, ZEND_STRL("hiddenParamNumber"), &nextHiddenParam); - RETURN_THIS(); + ZVAL_LONG(&_0, 8); + ZEPHIR_RETURN_CALL_METHOD(&sth, "fetchall", NULL, 0, &_0, &className, &arguments); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, notInWhere) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchOne) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval values, bindParams, bindKeys; - zval *expr_param = NULL, *values_param = NULL, hiddenParam, value, *_0, _1, _6, _7, _2$$3, _4$$4; - zval expr, key, _3$$3, _5$$4; + zval values, _0; + zval *statement_param = NULL, *values_param = NULL, _1; + zval statement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&hiddenParam); - ZVAL_UNDEF(&value); + ZVAL_UNDEF(&statement); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$4); ZVAL_UNDEF(&values); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindKeys); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(expr) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(statement) + Z_PARAM_OPTIONAL Z_PARAM_ARRAY(values) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &expr_param, &values_param); - if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { - zephir_get_strval(&expr, expr_param); + zephir_fetch_params(1, 1, 1, &statement_param, &values_param); + zephir_get_strval(&statement, statement_param); + if (!values_param) { + ZEPHIR_INIT_VAR(&values); + array_init(&values); } else { - ZEPHIR_INIT_VAR(&expr); + zephir_get_arrval(&values, values_param); } - ZEPHIR_OBS_COPY_OR_DUP(&values, values_param); - ZEPHIR_OBS_VAR(&hiddenParam); - zephir_read_property(&hiddenParam, this_ptr, ZEND_STRL("hiddenParamNumber"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(&bindParams); - array_init(&bindParams); - ZEPHIR_INIT_VAR(&bindKeys); - array_init(&bindKeys); - zephir_is_iterable(&values, 0, "phalcon/Mvc/Model/Criteria.zep", 742); - if (Z_TYPE_P(&values) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&values), _0) - { - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0); - ZEPHIR_INIT_NVAR(&_2$$3); - ZEPHIR_CONCAT_SV(&_2$$3, "ACP", &hiddenParam); - zephir_get_strval(&key, &_2$$3); - ZEPHIR_INIT_NVAR(&_3$$3); - ZEPHIR_CONCAT_SVS(&_3$$3, ":", &key, ":"); - zephir_array_append(&bindKeys, &_3$$3, PH_SEPARATE, "phalcon/Mvc/Model/Criteria.zep", 732); - zephir_array_update_zval(&bindParams, &key, &value, PH_COPY | PH_SEPARATE); - ZEPHIR_SEPARATE(&hiddenParam); - zephir_increment(&hiddenParam); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &values, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &values, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&value, &values, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_4$$4); - ZEPHIR_CONCAT_SV(&_4$$4, "ACP", &hiddenParam); - zephir_get_strval(&key, &_4$$4); - ZEPHIR_INIT_NVAR(&_5$$4); - ZEPHIR_CONCAT_SVS(&_5$$4, ":", &key, ":"); - zephir_array_append(&bindKeys, &_5$$4, PH_SEPARATE, "phalcon/Mvc/Model/Criteria.zep", 732); - zephir_array_update_zval(&bindParams, &key, &value, PH_COPY | PH_SEPARATE); - ZEPHIR_SEPARATE(&hiddenParam); - zephir_increment(&hiddenParam); - ZEPHIR_CALL_METHOD(NULL, &values, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_VAR(&_6); - zephir_fast_join_str(&_6, SL(", "), &bindKeys); - ZEPHIR_INIT_VAR(&_7); - ZEPHIR_CONCAT_VSVS(&_7, &expr, " NOT IN (", &_6, ")"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "andwhere", NULL, 0, &_7, &bindParams); + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 1, 0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_LONG(&_1, 2); + zephir_array_fast_append(&_0, &_1); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "fetch"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "fetchdata", NULL, 0, &_1, &_0, &statement, &values); zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("hiddenParamNumber"), &hiddenParam); - RETURN_THIS(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, orderBy) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchPairs) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *orderColumns_param = NULL, _0; - zval orderColumns; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval values, _0; + zval *statement_param = NULL, *values_param = NULL, _1; + zval statement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&orderColumns); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&values); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(orderColumns) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(statement) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(values) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &orderColumns_param); - if (UNEXPECTED(Z_TYPE_P(orderColumns_param) != IS_STRING && Z_TYPE_P(orderColumns_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'orderColumns' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(orderColumns_param) == IS_STRING)) { - zephir_get_strval(&orderColumns, orderColumns_param); + zephir_fetch_params(1, 1, 1, &statement_param, &values_param); + zephir_get_strval(&statement, statement_param); + if (!values_param) { + ZEPHIR_INIT_VAR(&values); + array_init(&values); } else { - ZEPHIR_INIT_VAR(&orderColumns); + zephir_get_arrval(&values, values_param); } ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "order"); - zephir_update_property_array(this_ptr, SL("params"), &_0, &orderColumns); - RETURN_THIS(); + zephir_create_array(&_0, 1, 0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_LONG(&_1, 12); + zephir_array_fast_append(&_0, &_1); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "fetchAll"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "fetchdata", NULL, 0, &_1, &_0, &statement, &values); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, orWhere) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchValue) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *conditions_param = NULL, *bindParams = NULL, bindParams_sub, *bindTypes = NULL, bindTypes_sub, __$null, currentConditions, _0, _1$$3; - zval conditions; + zval values; + zval *statement_param = NULL, *values_param = NULL, sth, _0; + zval statement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&conditions); - ZVAL_UNDEF(&bindParams_sub); - ZVAL_UNDEF(&bindTypes_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(¤tConditions); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&sth); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&values); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(conditions) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(statement) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(bindParams) - Z_PARAM_ZVAL_OR_NULL(bindTypes) + Z_PARAM_ARRAY(values) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &conditions_param, &bindParams, &bindTypes); - if (UNEXPECTED(Z_TYPE_P(conditions_param) != IS_STRING && Z_TYPE_P(conditions_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'conditions' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(conditions_param) == IS_STRING)) { - zephir_get_strval(&conditions, conditions_param); + zephir_fetch_params(1, 1, 1, &statement_param, &values_param); + zephir_get_strval(&statement, statement_param); + if (!values_param) { + ZEPHIR_INIT_VAR(&values); + array_init(&values); } else { - ZEPHIR_INIT_VAR(&conditions); - } - if (!bindParams) { - bindParams = &bindParams_sub; - bindParams = &__$null; - } - if (!bindTypes) { - bindTypes = &bindTypes_sub; - bindTypes = &__$null; + zephir_get_arrval(&values, values_param); } - ZEPHIR_OBS_VAR(¤tConditions); - zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_string_fetch(¤tConditions, &_0, SL("conditions"), 0)) { - ZEPHIR_INIT_VAR(&_1$$3); - ZEPHIR_CONCAT_SVSVS(&_1$$3, "(", ¤tConditions, ") OR (", &conditions, ")"); - zephir_get_strval(&conditions, &_1$$3); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "where", NULL, 0, &conditions, bindParams, bindTypes); + ZEPHIR_CALL_METHOD(&sth, this_ptr, "perform", NULL, 0, &statement, &values); + zephir_check_call_status(); + ZVAL_LONG(&_0, 0); + ZEPHIR_RETURN_CALL_METHOD(&sth, "fetchcolumn", NULL, 0, &_0); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, rightJoin) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, getAdapter) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model_param = NULL, *conditions = NULL, conditions_sub, *alias = NULL, alias_sub, __$null, _0; - zval model; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&conditions_sub); - ZVAL_UNDEF(&alias_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(model) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(conditions) - Z_PARAM_ZVAL_OR_NULL(alias) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &model_param, &conditions, &alias); - if (UNEXPECTED(Z_TYPE_P(model_param) != IS_STRING && Z_TYPE_P(model_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'model' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(model_param) == IS_STRING)) { - zephir_get_strval(&model, model_param); - } else { - ZEPHIR_INIT_VAR(&model); - } - if (!conditions) { - conditions = &conditions_sub; - conditions = &__$null; - } - if (!alias) { - alias = &alias_sub; - alias = &__$null; - } - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "RIGHT"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "join", NULL, 0, &model, conditions, alias, &_0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); zephir_check_call_status(); - RETURN_MM(); + RETURN_MM_MEMBER(getThis(), "pdo"); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, setDI) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, getAttribute) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *container, container_sub, _0; + zval *attribute_param = NULL, _0, _1; + zend_long attribute, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&container_sub); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + Z_PARAM_LONG(attribute) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &container); + zephir_fetch_params(1, 1, 0, &attribute_param); + attribute = zephir_get_intval(attribute_param); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "di"); - zephir_update_property_array(this_ptr, SL("params"), &_0, container); - ZEPHIR_MM_RESTORE(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_1, attribute); + ZEPHIR_RETURN_CALL_METHOD(&_0, "getattribute", NULL, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, setModelName) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, getAvailableDrivers) { + zend_class_entry *_0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *modelName_param = NULL; - zval modelName; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&modelName); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(modelName) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &modelName_param); - if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { - zephir_get_strval(&modelName, modelName_param); - } else { - ZEPHIR_INIT_VAR(&modelName); - } - - zephir_update_property_zval(this_ptr, ZEND_STRL("model"), &modelName); - RETURN_THIS(); + _0 = zephir_fetch_class_str_ex(SL("PDO"), ZEND_FETCH_CLASS_AUTO); + ZEPHIR_RETURN_CALL_CE_STATIC(_0, "getavailabledrivers", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, sharedLock) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, getDriverName) { + zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *sharedLock_param = NULL, _0, _1; - zend_bool sharedLock; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(sharedLock) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &sharedLock_param); - if (!sharedLock_param) { - sharedLock = 1; - } else { - sharedLock = zephir_get_boolval(sharedLock_param); - } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_1, 16); + ZEPHIR_RETURN_CALL_METHOD(&_0, "getattribute", NULL, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "shared_lock"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_BOOL(&_1, sharedLock); - zephir_update_property_array(this_ptr, SL("params"), &_0, &_1); - RETURN_THIS(); +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, getProfiler) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "profiler"); } -static PHP_METHOD(Phalcon_Mvc_Model_Criteria, where) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, getQuoteNames) { + zval quotes; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *conditions_param = NULL, *bindParams = NULL, bindParams_sub, *bindTypes = NULL, bindTypes_sub, __$null, currentBindParams, currentBindTypes, _0, _1$$3, _2$$4, _3$$4, _4$$5, _5$$6, _6$$7, _7$$7, _8$$8; - zval conditions; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *driver_param = NULL, option, _0$$5, _1$$6; + zval driver; zval *this_ptr = getThis(); - ZVAL_UNDEF(&conditions); - ZVAL_UNDEF(&bindParams_sub); - ZVAL_UNDEF(&bindTypes_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(¤tBindParams); - ZVAL_UNDEF(¤tBindTypes); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_6$$7); - ZVAL_UNDEF(&_7$$7); - ZVAL_UNDEF(&_8$$8); + ZVAL_UNDEF(&driver); + ZVAL_UNDEF(&option); + ZVAL_UNDEF(&_0$$5); + ZVAL_UNDEF(&_1$$6); + ZVAL_UNDEF("es); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(conditions) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(bindParams) - Z_PARAM_ZVAL_OR_NULL(bindTypes) + Z_PARAM_STR(driver) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &conditions_param, &bindParams, &bindTypes); - if (UNEXPECTED(Z_TYPE_P(conditions_param) != IS_STRING && Z_TYPE_P(conditions_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'conditions' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(conditions_param) == IS_STRING)) { - zephir_get_strval(&conditions, conditions_param); + zephir_fetch_params(1, 0, 1, &driver_param); + if (!driver_param) { + ZEPHIR_INIT_VAR(&driver); + ZVAL_STRING(&driver, ""); } else { - ZEPHIR_INIT_VAR(&conditions); - } - if (!bindParams) { - bindParams = &bindParams_sub; - bindParams = &__$null; - } - if (!bindTypes) { - bindTypes = &bindTypes_sub; - bindTypes = &__$null; + zephir_get_strval(&driver, driver_param); } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "conditions"); - zephir_update_property_array(this_ptr, SL("params"), &_0, &conditions); - if (Z_TYPE_P(bindParams) == IS_ARRAY) { - ZEPHIR_OBS_VAR(¤tBindParams); - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_string_fetch(¤tBindParams, &_1$$3, SL("bind"), 0)) { - ZEPHIR_INIT_VAR(&_2$$4); - zephir_fast_array_merge(&_2$$4, ¤tBindParams, bindParams); - ZEPHIR_INIT_VAR(&_3$$4); - ZVAL_STRING(&_3$$4, "bind"); - zephir_update_property_array(this_ptr, SL("params"), &_3$$4, &_2$$4); - } else { - ZEPHIR_INIT_VAR(&_4$$5); - ZVAL_STRING(&_4$$5, "bind"); - zephir_update_property_array(this_ptr, SL("params"), &_4$$5, bindParams); - } + ZEPHIR_CPY_WRT(&option, &driver); + if (ZEPHIR_IS_EMPTY(&option)) { + ZEPHIR_CALL_METHOD(&option, this_ptr, "getdrivername", NULL, 0); + zephir_check_call_status(); } - if (Z_TYPE_P(bindTypes) == IS_ARRAY) { - ZEPHIR_OBS_VAR(¤tBindTypes); - zephir_read_property(&_5$$6, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_string_fetch(¤tBindTypes, &_5$$6, SL("bindTypes"), 0)) { - ZEPHIR_INIT_VAR(&_6$$7); - zephir_fast_array_merge(&_6$$7, ¤tBindTypes, bindTypes); - ZEPHIR_INIT_VAR(&_7$$7); - ZVAL_STRING(&_7$$7, "bindTypes"); - zephir_update_property_array(this_ptr, SL("params"), &_7$$7, &_6$$7); - } else { - ZEPHIR_INIT_VAR(&_8$$8); - ZVAL_STRING(&_8$$8, "bindTypes"); - zephir_update_property_array(this_ptr, SL("params"), &_8$$8, bindTypes); + do { + if (ZEPHIR_IS_STRING(&option, "mysql")) { + ZEPHIR_INIT_VAR("es); + zephir_create_array("es, 4, 0); + add_assoc_stringl_ex("es, SL("prefix"), SL("`")); + add_assoc_stringl_ex("es, SL("suffix"), SL("`")); + add_assoc_stringl_ex("es, SL("find"), SL("`")); + add_assoc_stringl_ex("es, SL("replace"), SL("``")); + break; } - } - RETURN_THIS(); + if (ZEPHIR_IS_STRING(&option, "sqlsrv")) { + ZEPHIR_INIT_VAR(&_0$$5); + zephir_create_array(&_0$$5, 4, 0); + add_assoc_stringl_ex(&_0$$5, SL("prefix"), SL("[")); + add_assoc_stringl_ex(&_0$$5, SL("suffix"), SL("]")); + add_assoc_stringl_ex(&_0$$5, SL("find"), SL("]")); + add_assoc_stringl_ex(&_0$$5, SL("replace"), SL("][")); + ZEPHIR_CPY_WRT("es, &_0$$5); + break; + } + ZEPHIR_INIT_VAR(&_1$$6); + zephir_create_array(&_1$$6, 4, 0); + add_assoc_stringl_ex(&_1$$6, SL("prefix"), SL("\"")); + add_assoc_stringl_ex(&_1$$6, SL("suffix"), SL("\"")); + add_assoc_stringl_ex(&_1$$6, SL("find"), SL("\"")); + add_assoc_stringl_ex(&_1$$6, SL("replace"), SL("\"\"")); + ZEPHIR_CPY_WRT("es, &_1$$6); + break; + } while(0); + + RETURN_CTOR("es); } -zend_object *zephir_init_properties_Phalcon_Mvc_Model_Criteria(zend_class_entry *class_type) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, inTransaction) { - zval _0, _1$$3; + zval result, _0, _1, _2, _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("params"), &_1$$3); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); -#ifdef HAVE_CONFIG_H -#endif + ZEPHIR_MM_GROW(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "inTransaction"); + ZEPHIR_CALL_METHOD(NULL, &_0, "start", NULL, 0, &_1); + zephir_check_call_status(); + zephir_read_property(&_2, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&result, &_2, "intransaction", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_3, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_3, "finish", NULL, 0); + zephir_check_call_status(); + RETURN_CCTOR(&result); +} +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, isConnected) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_CriteriaInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model, CriteriaInterface, phalcon, mvc_model_criteriainterface, phalcon_mvc_model_criteriainterface_method_entry); + ZEPHIR_MM_GROW(); - return SUCCESS; + ZEPHIR_OBS_VAR(&_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC); + RETURN_MM_BOOL(zephir_get_boolval(&_0)); } -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, andWhere); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, betweenWhere); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, bind); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, bindTypes); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, cache); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, conditions); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, distinct); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, execute); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, forUpdate); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, getColumns); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, getConditions); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, getGroupBy); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, getHaving); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, getLimit); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, getModelName); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, getOrderBy); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, getParams); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, getWhere); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, groupBy); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, having); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, innerJoin); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, inWhere); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, leftJoin); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, limit); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, notBetweenWhere); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, notInWhere); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, orderBy); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, orWhere); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, rightJoin); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, setModelName); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, sharedLock); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_CriteriaInterface, where); - - +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, lastInsertId) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, result, _0, _1, _2, _3; + zval name, _4; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(name) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &name_param); + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + } else { + zephir_get_strval(&name, name_param); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "lastInsertId"); + ZEPHIR_CALL_METHOD(NULL, &_0, "start", NULL, 0, &_1); + zephir_check_call_status(); + zephir_read_property(&_2, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&result, &_2, "lastinsertid", NULL, 0, &name); + zephir_check_call_status(); + zephir_read_property(&_3, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_3, "finish", NULL, 0); + zephir_check_call_status(); + zephir_cast_to_string(&_4, &result); + RETURN_CTOR(&_4); +} -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Exception) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, perform) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model, Exception, phalcon, mvc_model_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; -} - - - + zend_string *_5; + zend_ulong _4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_6 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval values; + zval *statement_param = NULL, *values_param = NULL, name, sth, value, _0, _1, *_2, _3, _7; + zval statement; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&sth); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&values); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(statement) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(values) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &statement_param, &values_param); + zephir_get_strval(&statement, statement_param); + if (!values_param) { + ZEPHIR_INIT_VAR(&values); + array_init(&values); + } else { + zephir_get_arrval(&values, values_param); + } - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Manager) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model, Manager, phalcon, mvc_model_manager, phalcon_mvc_model_manager_method_entry, 0); - - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("aliases"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("behaviors"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("belongsTo"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("belongsToSingle"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("container"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("customEventsManager"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("dynamicUpdate"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("hasMany"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("hasManySingle"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("hasManyToMany"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("hasManyToManySingle"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("hasOne"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("hasOneSingle"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("hasOneThrough"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("hasOneThroughSingle"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("initialized"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("keepSnapshots"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("lastInitialized"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("lastQuery"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("modelVisibility"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_mvc_model_manager_ce, SL("prefix"), "", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("readConnectionServices"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("sources"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("schemas"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("writeConnectionServices"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_manager_ce, SL("reusable"), ZEND_ACC_PROTECTED); - phalcon_mvc_model_manager_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_Manager; - - zend_class_implements(phalcon_mvc_model_manager_ce, 1, phalcon_mvc_model_managerinterface_ce); - zend_class_implements(phalcon_mvc_model_manager_ce, 1, phalcon_di_injectionawareinterface_ce); - zend_class_implements(phalcon_mvc_model_manager_ce, 1, phalcon_events_eventsawareinterface_ce); - return SUCCESS; + ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "perform"); + ZEPHIR_CALL_METHOD(NULL, &_0, "start", NULL, 0, &_1); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&sth, this_ptr, "prepare", NULL, 0, &statement); + zephir_check_call_status(); + zephir_is_iterable(&values, 0, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 582); + if (Z_TYPE_P(&values) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&values), _4, _5, _2) + { + ZEPHIR_INIT_NVAR(&name); + if (_5 != NULL) { + ZVAL_STR_COPY(&name, _5); + } else { + ZVAL_LONG(&name, _4); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _2); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "performbind", &_6, 0, &sth, &name, &value); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &values, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3, &values, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3)) { + break; + } + ZEPHIR_CALL_METHOD(&name, &values, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &values, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "performbind", &_6, 0, &sth, &name, &value); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &values, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&name); + ZEPHIR_CALL_METHOD(NULL, &sth, "execute", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_7, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_7, "finish", NULL, 0, &statement, &values); + zephir_check_call_status(); + RETURN_CCTOR(&sth); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, setDI) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, prepare) { - zval *container, container_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval options; + zval *statement_param = NULL, *options_param = NULL, sth, _0, _1, _2, _3, _4; + zval statement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&container_sub); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&sth); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(statement) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &container); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &statement_param, &options_param); + zephir_get_strval(&statement, statement_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + zephir_get_arrval(&options, options_param); + } - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "prepare"); + ZEPHIR_CALL_METHOD(NULL, &_0, "start", NULL, 0, &_1); + zephir_check_call_status(); + zephir_read_property(&_2, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&sth, &_2, "prepare", NULL, 0, &statement, &options); + zephir_check_call_status(); + zephir_read_property(&_3, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_4, &sth, ZEND_STRL("queryString"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_3, "finish", NULL, 0, &_4); + zephir_check_call_status(); + RETURN_CCTOR(&sth); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getDI) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, query) { + zval _2; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *statement_param = NULL, sth, _0, _1, _3, _4, _5; + zval statement; zval *this_ptr = getThis(); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&sth); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(statement) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &statement_param); + zephir_get_strval(&statement, statement_param); - RETURN_MEMBER(getThis(), "container"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "query"); + ZEPHIR_CALL_METHOD(NULL, &_0, "start", NULL, 0, &_1); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + zephir_create_array(&_2, 2, 0); + ZEPHIR_OBS_VAR(&_3); + zephir_read_property(&_3, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC); + zephir_array_fast_append(&_2, &_3); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "query"); + zephir_array_fast_append(&_2, &_1); + ZEPHIR_INIT_NVAR(&_1); + zephir_get_args(&_1); + ZEPHIR_INIT_VAR(&sth); + ZEPHIR_CALL_USER_FUNC_ARRAY(&sth, &_2, &_1); + zephir_check_call_status(); + zephir_read_property(&_4, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_5, &sth, ZEND_STRL("queryString"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_4, "finish", NULL, 0, &_5); + zephir_check_call_status(); + RETURN_CCTOR(&sth); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, setEventsManager) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, quote) { - zval *eventsManager, eventsManager_sub; + zval _0$$3, _7$$4, _11$$5; + zend_string *_6; + zend_ulong _5; + zval elements; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long type, ZEPHIR_LAST_CALL_STATUS; + zval *value, value_sub, *type_param = NULL, element, key, quotes, *_3, _4, _1$$3, _2$$3, _8$$4, _9$$4, _10$$4, _12$$5, _13$$5, _14$$5; zval *this_ptr = getThis(); - ZVAL_UNDEF(&eventsManager_sub); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&element); + ZVAL_UNDEF(&key); + ZVAL_UNDEF("es); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_8$$4); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&_10$$4); + ZVAL_UNDEF(&_12$$5); + ZVAL_UNDEF(&_13$$5); + ZVAL_UNDEF(&_14$$5); + ZVAL_UNDEF(&elements); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_11$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(value) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(type) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &value, &type_param); + if (!type_param) { + type = 2; + } else { + type = zephir_get_intval(type_param); + } - zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); + ZEPHIR_INIT_VAR(&elements); + array_init(&elements); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&element, value); + ZEPHIR_CALL_METHOD("es, this_ptr, "getquotenames", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&element) != IS_ARRAY) { + zephir_cast_to_string(&_0$$3, &element); + ZEPHIR_CPY_WRT(&element, &_0$$3); + zephir_array_fetch_string(&_1$$3, "es, SL("prefix"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 667); + zephir_array_fetch_string(&_2$$3, "es, SL("suffix"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 667); + ZEPHIR_CONCAT_VVV(return_value, &_1$$3, &element, &_2$$3); + RETURN_MM(); + } + zephir_is_iterable(value, 0, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 676); + if (Z_TYPE_P(value) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(value), _5, _6, _3) + { + ZEPHIR_INIT_NVAR(&key); + if (_6 != NULL) { + ZVAL_STR_COPY(&key, _6); + } else { + ZVAL_LONG(&key, _5); + } + ZEPHIR_INIT_NVAR(&element); + ZVAL_COPY(&element, _3); + zephir_cast_to_string(&_7$$4, &element); + ZEPHIR_CPY_WRT(&element, &_7$$4); + zephir_array_fetch_string(&_8$$4, "es, SL("prefix"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 673); + zephir_array_fetch_string(&_9$$4, "es, SL("suffix"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 673); + ZEPHIR_INIT_NVAR(&_10$$4); + ZEPHIR_CONCAT_VVV(&_10$$4, &_8$$4, &element, &_9$$4); + zephir_array_update_zval(&elements, &key, &_10$$4, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, value, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_4, value, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_4)) { + break; + } + ZEPHIR_CALL_METHOD(&key, value, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&element, value, "current", NULL, 0); + zephir_check_call_status(); + zephir_cast_to_string(&_11$$5, &element); + ZEPHIR_CPY_WRT(&element, &_11$$5); + zephir_array_fetch_string(&_12$$5, "es, SL("prefix"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 673); + zephir_array_fetch_string(&_13$$5, "es, SL("suffix"), PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 673); + ZEPHIR_INIT_NVAR(&_14$$5); + ZEPHIR_CONCAT_VVV(&_14$$5, &_12$$5, &element, &_13$$5); + zephir_array_update_zval(&elements, &key, &_14$$5, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, value, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&element); + ZEPHIR_INIT_NVAR(&key); + zephir_fast_join_str(return_value, SL(", "), &elements); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getEventsManager) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, rollBack) { + zval result, _0, _1, _2, _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + + ZEPHIR_MM_GROW(); - RETURN_MEMBER(getThis(), "eventsManager"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "rollBack"); + ZEPHIR_CALL_METHOD(NULL, &_0, "start", NULL, 0, &_1); + zephir_check_call_status(); + zephir_read_property(&_2, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&result, &_2, "rollback", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_3, this_ptr, ZEND_STRL("profiler"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_3, "finish", NULL, 0); + zephir_check_call_status(); + RETURN_CCTOR(&result); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, setCustomEventsManager) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, setAttribute) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *model, model_sub, *eventsManager, eventsManager_sub, _0; + zval *attribute_param = NULL, *value, value_sub, _0, _1; + zend_long attribute, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&eventsManager_sub); + ZVAL_UNDEF(&value_sub); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) + Z_PARAM_LONG(attribute) + Z_PARAM_ZVAL(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &eventsManager); + zephir_fetch_params(1, 2, 0, &attribute_param, &value); + attribute = zephir_get_intval(attribute_param); - ZEPHIR_INIT_VAR(&_0); - zephir_get_class(&_0, model, 1); - zephir_update_property_array(this_ptr, SL("customEventsManager"), &_0, eventsManager); - ZEPHIR_MM_RESTORE(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_1, attribute); + ZEPHIR_RETURN_CALL_METHOD(&_0, "setattribute", NULL, 0, &_1, value); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getCustomEventsManager) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, setProfiler) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *model, model_sub, eventsManager, _0, _1; + zval *profiler, profiler_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&profiler_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_OBJECT_OF_CLASS(profiler, phalcon_datamapper_pdo_profiler_profilerinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); + zephir_fetch_params_without_memory_grow(1, 0, &profiler); - zephir_read_property(&_0, this_ptr, ZEND_STRL("customEventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - zephir_get_class(&_1, model, 1); - if (zephir_array_isset_fetch(&eventsManager, &_0, &_1, 1)) { - RETURN_CTOR(&eventsManager); - } - RETURN_MM_NULL(); + zephir_update_property_zval(this_ptr, ZEND_STRL("profiler"), profiler); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, initialize) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, performBind) { + zend_bool _1$$4; + zval _8, _5$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, __$true, className, eventsManager, _0, _1, _2$$5; + zend_long ZEPHIR_LAST_CALL_STATUS, _0$$3; + zval *statement, statement_sub, *name, name_sub, *arguments, arguments_sub, key, parameters, type, _7, _9, _2$$4, _3$$7, _4$$7, _6$$8; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&statement_sub); + ZVAL_UNDEF(&name_sub); + ZVAL_UNDEF(&arguments_sub); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(¶meters); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$7); + ZVAL_UNDEF(&_4$$7); + ZVAL_UNDEF(&_6$$8); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_5$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_OBJECT_OF_CLASS(statement, zephir_get_internal_ce(SL("pdostatement"))) + Z_PARAM_ZVAL(name) + Z_PARAM_ZVAL(arguments) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); + zephir_fetch_params(1, 3, 0, &statement, &name, &arguments); + ZEPHIR_SEPARATE_PARAM(arguments); - ZEPHIR_INIT_VAR(&className); - zephir_get_class(&className, model, 1); - zephir_read_property(&_0, this_ptr, ZEND_STRL("initialized"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset(&_0, &className)) { - RETURN_MM_BOOL(0); - } - zephir_update_property_array(this_ptr, SL("initialized"), &className, &__$true); - if ((zephir_method_exists_ex(model, ZEND_STRL("initialize")) == SUCCESS)) { - ZEPHIR_CALL_METHOD(NULL, model, "initialize", NULL, 0); - zephir_check_call_status(); + ZEPHIR_CPY_WRT(&key, name); + if (Z_TYPE_P(&key) == IS_LONG) { + _0$$3 = (zephir_get_numberval(&key) + 1); + ZEPHIR_INIT_NVAR(&key); + ZVAL_LONG(&key, _0$$3); } - zephir_update_property_zval(this_ptr, ZEND_STRL("lastInitialized"), model); - zephir_read_property(&_1, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_1); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_2$$5); - ZVAL_STRING(&_2$$5, "modelsManager:afterInitialize"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_2$$5, this_ptr, model); - zephir_check_call_status(); + if (Z_TYPE_P(arguments) == IS_ARRAY) { + if (zephir_array_isset_long(arguments, 1)) { + ZEPHIR_OBS_VAR(&type); + zephir_array_fetch_long(&type, arguments, 1, PH_NOISY, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 746); + } else { + ZEPHIR_INIT_NVAR(&type); + ZVAL_LONG(&type, 2); + } + _1$$4 = ZEPHIR_IS_LONG_IDENTICAL(&type, 5); + if (_1$$4) { + ZEPHIR_OBS_VAR(&_2$$4); + zephir_array_fetch_long(&_2$$4, arguments, 0, PH_NOISY, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 751); + _1$$4 = ((Z_TYPE_P(&_2$$4) == IS_TRUE || Z_TYPE_P(&_2$$4) == IS_FALSE) == 1); + } + if (_1$$4) { + ZEPHIR_INIT_VAR(&_3$$7); + zephir_array_fetch_long(&_4$$7, arguments, 0, PH_NOISY | PH_READONLY, "phalcon/DataMapper/Pdo/Connection/AbstractConnection.zep", 752); + if (zephir_is_true(&_4$$7)) { + ZEPHIR_INIT_NVAR(&_3$$7); + ZVAL_STRING(&_3$$7, "1"); + } else { + ZEPHIR_INIT_NVAR(&_3$$7); + ZVAL_STRING(&_3$$7, "0"); + } + zephir_array_update_long(arguments, 0, &_3$$7, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + } + ZEPHIR_INIT_VAR(&_5$$4); + zephir_create_array(&_5$$4, 1, 0); + zephir_array_fast_append(&_5$$4, &key); + ZEPHIR_INIT_VAR(¶meters); + zephir_fast_array_merge(¶meters, &_5$$4, arguments); + } else { + ZEPHIR_INIT_VAR(&_6$$8); + zephir_create_array(&_6$$8, 2, 0); + zephir_array_fast_append(&_6$$8, &key); + zephir_array_fast_append(&_6$$8, arguments); + ZEPHIR_CPY_WRT(¶meters, &_6$$8); } - RETURN_MM_BOOL(1); + ZEPHIR_INIT_VAR(&_7); + ZEPHIR_INIT_VAR(&_8); + zephir_create_array(&_8, 2, 0); + zephir_array_fast_append(&_8, statement); + ZEPHIR_INIT_VAR(&_9); + ZVAL_STRING(&_9, "bindValue"); + zephir_array_fast_append(&_8, &_9); + ZEPHIR_CALL_USER_FUNC_ARRAY(&_7, &_8, ¶meters); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, isInitialized) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_AbstractConnection, fetchData) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *className_param = NULL, _0, _1; - zval className; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval arguments, values, _0; + zval *method_param = NULL, *arguments_param = NULL, *statement_param = NULL, *values_param = NULL, result, sth; + zval method, statement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&className); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&sth); + ZVAL_UNDEF(&arguments); + ZVAL_UNDEF(&values); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(className) + ZEND_PARSE_PARAMETERS_START(3, 4) + Z_PARAM_STR(method) + Z_PARAM_ARRAY(arguments) + Z_PARAM_STR(statement) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(values) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &className_param); - if (UNEXPECTED(Z_TYPE_P(className_param) != IS_STRING && Z_TYPE_P(className_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'className' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(className_param) == IS_STRING)) { - zephir_get_strval(&className, className_param); + zephir_fetch_params(1, 3, 1, &method_param, &arguments_param, &statement_param, &values_param); + zephir_get_strval(&method, method_param); + zephir_get_arrval(&arguments, arguments_param); + zephir_get_strval(&statement, statement_param); + if (!values_param) { + ZEPHIR_INIT_VAR(&values); + array_init(&values); } else { - ZEPHIR_INIT_VAR(&className); + zephir_get_arrval(&values, values_param); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("initialized"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - zephir_fast_strtolower(&_1, &className); - RETURN_MM_BOOL(zephir_array_isset(&_0, &_1)); + ZEPHIR_CALL_METHOD(&sth, this_ptr, "perform", NULL, 0, &statement, &values); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 2, 0); + zephir_array_fast_append(&_0, &sth); + zephir_array_fast_append(&_0, &method); + ZEPHIR_INIT_VAR(&result); + ZEPHIR_CALL_USER_FUNC_ARRAY(&result, &_0, &arguments); + zephir_check_call_status(); + if (Z_TYPE_P(&result) != IS_ARRAY) { + ZEPHIR_INIT_NVAR(&result); + array_init(&result); + } + RETURN_CCTOR(&result); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getLastInitialized) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface) { - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\DataMapper\\Pdo\\Connection, ConnectionInterface, phalcon, datamapper_pdo_connection_connectioninterface, phalcon_datamapper_pdo_connection_connectioninterface_method_entry); + + zend_class_implements(phalcon_datamapper_pdo_connection_connectioninterface_ce, 1, phalcon_datamapper_pdo_connection_pdointerface_ce); + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, connect); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, disconnect); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, fetchAffected); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, fetchAll); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, fetchAssoc); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, fetchColumn); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, fetchGroup); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, fetchObject); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, fetchObjects); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, fetchOne); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, fetchPairs); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, fetchValue); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, getAdapter); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, getProfiler); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, isConnected); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, perform); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_ConnectionInterface, setProfiler); - RETURN_MEMBER(getThis(), "lastInitialized"); +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Connection_Decorated) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\DataMapper\\Pdo\\Connection, Decorated, phalcon, datamapper_pdo_connection_decorated, phalcon_datamapper_pdo_connection_abstractconnection_ce, phalcon_datamapper_pdo_connection_decorated_method_entry, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, load) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_Decorated, __construct) { - zval _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *modelName_param = NULL, __$null, model, _3, _0$$3; - zval modelName, _1$$3; + zval *pdo, pdo_sub, *profiler = NULL, profiler_sub, __$null; zval *this_ptr = getThis(); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&pdo_sub); + ZVAL_UNDEF(&profiler_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(modelName) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_OBJECT_OF_CLASS(pdo, php_pdo_get_dbh_ce()) + Z_PARAM_OPTIONAL + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(profiler, phalcon_datamapper_pdo_profiler_profilerinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &modelName_param); - if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { - zephir_get_strval(&modelName, modelName_param); + zephir_fetch_params(1, 1, 1, &pdo, &profiler); + if (!profiler) { + profiler = &profiler_sub; + ZEPHIR_CPY_WRT(profiler, &__$null); } else { - ZEPHIR_INIT_VAR(&modelName); + ZEPHIR_SEPARATE_PARAM(profiler); } - if (UNEXPECTED(!(zephir_class_exists(&modelName, 1)))) { - ZEPHIR_INIT_VAR(&_0$$3); - object_init_ex(&_0$$3, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_1$$3); - ZEPHIR_CONCAT_SVS(&_1$$3, "Model '", &modelName, "' could not be loaded"); - ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 8, &_1$$3); + zephir_update_property_zval(this_ptr, ZEND_STRL("pdo"), pdo); + if (Z_TYPE_P(profiler) == IS_NULL) { + ZEPHIR_INIT_NVAR(profiler); + object_init_ex(profiler, phalcon_datamapper_pdo_profiler_profiler_ce); + ZEPHIR_CALL_METHOD(NULL, profiler, "__construct", NULL, 200); zephir_check_call_status(); - zephir_throw_exception_debug(&_0$$3, "phalcon/Mvc/Model/Manager.zep", 347); - ZEPHIR_MM_RESTORE(); - return; } - ZEPHIR_INIT_VAR(&_2); - zephir_create_array(&_2, 3, 0); - zephir_array_fast_append(&_2, &__$null); - ZEPHIR_OBS_VAR(&_3); - zephir_read_property(&_3, this_ptr, ZEND_STRL("container"), PH_NOISY_CC); - zephir_array_fast_append(&_2, &_3); - zephir_array_fast_append(&_2, this_ptr); - ZEPHIR_INIT_VAR(&model); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(&model, &modelName, &_2); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setprofiler", NULL, 0, profiler); zephir_check_call_status(); - RETURN_CCTOR(&model); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, setModelPrefix) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_Decorated, connect) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *prefix_param = NULL; - zval prefix; zval *this_ptr = getThis(); - ZVAL_UNDEF(&prefix); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(prefix) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &prefix_param); - if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { - zephir_get_strval(&prefix, prefix_param); - } else { - ZEPHIR_INIT_VAR(&prefix); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &prefix); - ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getModelPrefix) +static PHP_METHOD(Phalcon_DataMapper_Pdo_Connection_Decorated, disconnect) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "prefix"); + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_datamapper_pdo_exception_cannotdisconnect_ce, "Cannot disconnect a Decorated connection instance", "phalcon/DataMapper/Pdo/Connection/Decorated.zep", 66); + return; } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, setModelSource) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval source; - zval *model, model_sub, *source_param = NULL, _0; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&source); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_STR(source) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &source_param); - if (UNEXPECTED(Z_TYPE_P(source_param) != IS_STRING && Z_TYPE_P(source_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'source' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(source_param) == IS_STRING)) { - zephir_get_strval(&source, source_param); - } else { - ZEPHIR_INIT_VAR(&source); - } - ZEPHIR_INIT_VAR(&_0); - zephir_get_class(&_0, model, 1); - zephir_update_property_array(this_ptr, SL("sources"), &_0, &source); - ZEPHIR_MM_RESTORE(); -} -static PHP_METHOD(Phalcon_Mvc_Model_Manager, isVisibleModelProperty) +ZEPHIR_INIT_CLASS(Phalcon_DataMapper_Pdo_Connection_PdoInterface) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval property; - zval *model, model_sub, *property_param = NULL, properties, className, _0, _2, _1$$3; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\DataMapper\\Pdo\\Connection, PdoInterface, phalcon, datamapper_pdo_connection_pdointerface, phalcon_datamapper_pdo_connection_pdointerface_method_entry); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&properties); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&property); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_STR(property) - ZEND_PARSE_PARAMETERS_END(); + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, beginTransaction); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, commit); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, errorCode); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, errorInfo); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, exec); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, getAttribute); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, getAvailableDrivers); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, inTransaction); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, lastInsertId); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, prepare); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, query); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, quote); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, rollBack); +ZEPHIR_DOC_METHOD(Phalcon_DataMapper_Pdo_Connection_PdoInterface, setAttribute); + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &property_param); - zephir_get_strval(&property, property_param); - ZEPHIR_INIT_VAR(&className); - zephir_get_class(&className, model, 0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelVisibility"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset(&_0, &className))) { - ZEPHIR_CALL_FUNCTION(&_1$$3, "get_object_vars", NULL, 438, model); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("modelVisibility"), &className, &_1$$3); - } - zephir_read_property(&_2, this_ptr, ZEND_STRL("modelVisibility"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_OBS_VAR(&properties); - zephir_array_fetch(&properties, &_2, &className, PH_NOISY, "phalcon/Mvc/Model/Manager.zep", 428); - RETURN_MM_BOOL(zephir_array_key_exists(&properties, &property)); -} -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getModelSource) +ZEPHIR_INIT_CLASS(Phalcon_Paginator_Exception) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, entityName, _0, _3, _4, _5, _1$$3, _2$$3; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator, Exception, phalcon, paginator_exception, phalcon_exception_ce, NULL, 0); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&entityName); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - ZEND_PARSE_PARAMETERS_END(); + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); - ZEPHIR_INIT_VAR(&entityName); - zephir_get_class(&entityName, model, 1); - zephir_read_property(&_0, this_ptr, ZEND_STRL("sources"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset(&_0, &entityName))) { - ZEPHIR_INIT_VAR(&_1$$3); - ZEPHIR_INIT_VAR(&_2$$3); - zephir_get_class_ns(&_2$$3, model, 0); - zephir_uncamelize(&_1$$3, &_2$$3, NULL ); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setmodelsource", NULL, 0, model, &_1$$3); - zephir_check_call_status(); - } - zephir_read_property(&_3, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_4, this_ptr, ZEND_STRL("sources"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_5, &_4, &entityName, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 451); - ZEPHIR_CONCAT_VV(return_value, &_3, &_5); - RETURN_MM(); + +ZEPHIR_INIT_CLASS(Phalcon_Paginator_PaginatorFactory) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator, PaginatorFactory, phalcon, paginator_paginatorfactory, phalcon_factory_abstractfactory_ce, phalcon_paginator_paginatorfactory_method_entry, 0); + + zend_declare_property_string(phalcon_paginator_paginatorfactory_ce, SL("exception"), "Phalcon\\Annotations\\Exception", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, setModelSchema) +static PHP_METHOD(Phalcon_Paginator_PaginatorFactory, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval schema; - zval *model, model_sub, *schema_param = NULL, _0; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *services_param = NULL; + zval services; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&services); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_STR(schema) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(services) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &schema_param); - if (UNEXPECTED(Z_TYPE_P(schema_param) != IS_STRING && Z_TYPE_P(schema_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schema' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(schema_param) == IS_STRING)) { - zephir_get_strval(&schema, schema_param); + zephir_fetch_params(1, 0, 1, &services_param); + if (!services_param) { + ZEPHIR_INIT_VAR(&services); + array_init(&services); } else { - ZEPHIR_INIT_VAR(&schema); + ZEPHIR_OBS_COPY_OR_DUP(&services, services_param); } - ZEPHIR_INIT_VAR(&_0); - zephir_get_class(&_0, model, 1); - zephir_update_property_array(this_ptr, SL("schemas"), &_0, &schema); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "init", NULL, 0, &services); + zephir_check_call_status(); ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getModelSchema) +static PHP_METHOD(Phalcon_Paginator_PaginatorFactory, load) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *model, model_sub, schema, _0, _1; + zephir_fcall_cache_entry *_1 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *config = NULL, config_sub, name, options, _0, _2, _3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&config_sub); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&options); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_ZVAL(config) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); + zephir_fetch_params(1, 1, 0, &config); + ZEPHIR_SEPARATE_PARAM(config); - zephir_read_property(&_0, this_ptr, ZEND_STRL("schemas"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - zephir_get_class(&_1, model, 1); - if (!(zephir_array_isset_fetch(&schema, &_0, &_1, 1))) { - RETURN_MM_NULL(); - } - RETURN_CTOR(&schema); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "checkconfig", NULL, 0, config); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(config, &_0); + ZEPHIR_OBS_VAR(&name); + zephir_array_fetch_string(&name, config, SL("adapter"), PH_NOISY, "phalcon/Paginator/PaginatorFactory.zep", 64); + ZEPHIR_INIT_VAR(&_2); + array_init(&_2); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "options"); + ZEPHIR_CALL_CE_STATIC(&options, phalcon_helper_arr_ce, "get", &_1, 16, config, &_3, &_2); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "newinstance", NULL, 0, &name, &options); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, setConnectionService) +static PHP_METHOD(Phalcon_Paginator_PaginatorFactory, newInstance) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval connectionService; - zval *model, model_sub, *connectionService_param = NULL; + zval options, _0; + zval *name_param = NULL, *options_param = NULL, definition; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&connectionService); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_STR(connectionService) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(name) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &connectionService_param); - if (UNEXPECTED(Z_TYPE_P(connectionService_param) != IS_STRING && Z_TYPE_P(connectionService_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'connectionService' must be of the type string")); + zephir_fetch_params(1, 1, 1, &name_param, &options_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(connectionService_param) == IS_STRING)) { - zephir_get_strval(&connectionService, connectionService_param); + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); } else { - ZEPHIR_INIT_VAR(&connectionService); + ZEPHIR_INIT_VAR(&name); + } + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setreadconnectionservice", NULL, 0, model, &connectionService); + ZEPHIR_CALL_METHOD(&definition, this_ptr, "getservice", NULL, 0, &name); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setwriteconnectionservice", NULL, 0, model, &connectionService); + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 1, 0); + zephir_array_fast_append(&_0, &options); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(return_value, &definition, &_0); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, setWriteConnectionService) +static PHP_METHOD(Phalcon_Paginator_PaginatorFactory, getAdapters) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval connectionService; - zval *model, model_sub, *connectionService_param = NULL, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&connectionService); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_STR(connectionService) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &connectionService_param); - if (UNEXPECTED(Z_TYPE_P(connectionService_param) != IS_STRING && Z_TYPE_P(connectionService_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'connectionService' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(connectionService_param) == IS_STRING)) { - zephir_get_strval(&connectionService, connectionService_param); - } else { - ZEPHIR_INIT_VAR(&connectionService); - } + zephir_create_array(return_value, 3, 0); + add_assoc_stringl_ex(return_value, SL("model"), SL("Phalcon\\Paginator\\Adapter\\Model")); + add_assoc_stringl_ex(return_value, SL("nativeArray"), SL("Phalcon\\Paginator\\Adapter\\NativeArray")); + add_assoc_stringl_ex(return_value, SL("queryBuilder"), SL("Phalcon\\Paginator\\Adapter\\QueryBuilder")); + return; +} - ZEPHIR_INIT_VAR(&_0); - zephir_get_class(&_0, model, 1); - zephir_update_property_array(this_ptr, SL("writeConnectionServices"), &_0, &connectionService); - ZEPHIR_MM_RESTORE(); -} -static PHP_METHOD(Phalcon_Mvc_Model_Manager, setReadConnectionService) + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Paginator_Repository) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Paginator, Repository, phalcon, paginator_repository, phalcon_paginator_repository_method_entry, 0); + + zend_declare_property_null(phalcon_paginator_repository_ce, SL("aliases"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_paginator_repository_ce, SL("properties"), ZEND_ACC_PROTECTED); + phalcon_paginator_repository_ce->create_object = zephir_init_properties_Phalcon_Paginator_Repository; + + zend_class_implements(phalcon_paginator_repository_ce, 1, phalcon_paginator_repositoryinterface_ce); + zend_class_implements(phalcon_paginator_repository_ce, 1, zephir_get_internal_ce(SL("jsonserializable"))); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Paginator_Repository, __get) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval connectionService; - zval *model, model_sub, *connectionService_param = NULL, _0; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *property_param = NULL, method, _0, _1, _2, _3; + zval property; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&property); + ZVAL_UNDEF(&method); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&connectionService); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_STR(connectionService) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(property) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &connectionService_param); - if (UNEXPECTED(Z_TYPE_P(connectionService_param) != IS_STRING && Z_TYPE_P(connectionService_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'connectionService' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(connectionService_param) == IS_STRING)) { - zephir_get_strval(&connectionService, connectionService_param); - } else { - ZEPHIR_INIT_VAR(&connectionService); - } + zephir_fetch_params(1, 1, 0, &property_param); + zephir_get_strval(&property, property_param); ZEPHIR_INIT_VAR(&_0); - zephir_get_class(&_0, model, 1); - zephir_update_property_array(this_ptr, SL("readConnectionServices"), &_0, &connectionService); - ZEPHIR_MM_RESTORE(); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getrealnameproperty", NULL, 0, &property); + zephir_check_call_status(); + zephir_camelize(&_0, &_1, NULL ); + ZEPHIR_INIT_VAR(&method); + ZEPHIR_CONCAT_SV(&method, "get", &_0); + if ((zephir_method_exists(this_ptr, &method) == SUCCESS)) { + ZEPHIR_RETURN_CALL_METHOD_ZVAL(this_ptr, &method, NULL, 0); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_INIT_VAR(&_2); + zephir_get_class(&_2, this_ptr, 0); + ZEPHIR_INIT_VAR(&_3); + ZEPHIR_CONCAT_SVSV(&_3, "Access to undefined property ", &_2, "::", &property); + ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_3); + zephir_check_call_status(); + RETURN_MM_NULL(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getReadConnection) +static PHP_METHOD(Phalcon_Paginator_Repository, getAliases) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "aliases"); +} + +static PHP_METHOD(Phalcon_Paginator_Repository, getCurrent) { + zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("readConnectionServices"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getconnection", NULL, 0, model, &_0); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "current"); + ZVAL_LONG(&_1, 0); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getproperty", NULL, 0, &_0, &_1); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getWriteConnection) +static PHP_METHOD(Phalcon_Paginator_Repository, getFirst) { + zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("writeConnectionServices"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getconnection", NULL, 0, model, &_0); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "first"); + ZVAL_LONG(&_1, 0); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getproperty", NULL, 0, &_0, &_1); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getConnection) +static PHP_METHOD(Phalcon_Paginator_Repository, getItems) { + zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, *connectionServices, connectionServices_sub, container, service, connection, _0, _5, _1$$3, _2$$3, _4$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&connectionServices_sub); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&service); - ZVAL_UNDEF(&connection); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_ZVAL(connectionServices) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &connectionServices); - - ZEPHIR_CALL_METHOD(&service, this_ptr, "getconnectionservice", NULL, 0, model, connectionServices); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "the services related to the ORM"); - ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_mvc_model_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model/Manager.zep", 535); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CALL_METHOD(&_5, &container, "getshared", NULL, 0, &service); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "items"); + ZVAL_NULL(&_1); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getproperty", NULL, 0, &_0, &_1); zephir_check_call_status(); - ZEPHIR_CPY_WRT(&connection, &_5); - if (UNEXPECTED(Z_TYPE_P(&connection) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid injected connection service", "phalcon/Mvc/Model/Manager.zep", 544); - return; - } - RETURN_CCTOR(&connection); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getReadConnectionService) +static PHP_METHOD(Phalcon_Paginator_Repository, getLast) { + zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("readConnectionServices"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getconnectionservice", NULL, 0, model, &_0); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "last"); + ZVAL_LONG(&_1, 0); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getproperty", NULL, 0, &_0, &_1); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getWriteConnectionService) +static PHP_METHOD(Phalcon_Paginator_Repository, getLimit) { + zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("writeConnectionServices"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getconnectionservice", NULL, 0, model, &_0); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "limit"); + ZVAL_LONG(&_1, 0); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getproperty", NULL, 0, &_0, &_1); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getConnectionService) +static PHP_METHOD(Phalcon_Paginator_Repository, getNext) { + zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *model, model_sub, *connectionServices, connectionServices_sub, connection, _0; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&connectionServices_sub); - ZVAL_UNDEF(&connection); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_ZVAL(connectionServices) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &connectionServices); - ZEPHIR_INIT_VAR(&_0); - zephir_get_class(&_0, model, 1); - if (!(zephir_array_isset_fetch(&connection, connectionServices, &_0, 1))) { - RETURN_MM_STRING("db"); - } - RETURN_CTOR(&connection); + ZVAL_STRING(&_0, "next"); + ZVAL_LONG(&_1, 0); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getproperty", NULL, 0, &_0, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, notifyEvent) +static PHP_METHOD(Phalcon_Paginator_Repository, getPrevious) { + zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *eventName_param = NULL, *model, model_sub, status, behavior, modelsBehaviors, eventsManager, customEventsManager, _0, _1, _4, _6, *_2$$3, _3$$3; - zval eventName, _5$$8, _7$$10; zval *this_ptr = getThis(); - ZVAL_UNDEF(&eventName); - ZVAL_UNDEF(&_5$$8); - ZVAL_UNDEF(&_7$$10); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&status); - ZVAL_UNDEF(&behavior); - ZVAL_UNDEF(&modelsBehaviors); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&customEventsManager); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_3$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(eventName) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &eventName_param, &model); - if (UNEXPECTED(Z_TYPE_P(eventName_param) != IS_STRING && Z_TYPE_P(eventName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(eventName_param) == IS_STRING)) { - zephir_get_strval(&eventName, eventName_param); - } else { - ZEPHIR_INIT_VAR(&eventName); - } - - ZEPHIR_INIT_VAR(&status); - ZVAL_NULL(&status); - ZEPHIR_OBS_VAR(&modelsBehaviors); - zephir_read_property(&_0, this_ptr, ZEND_STRL("behaviors"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - zephir_get_class(&_1, model, 1); - if (zephir_array_isset_fetch(&modelsBehaviors, &_0, &_1, 0)) { - zephir_is_iterable(&modelsBehaviors, 0, "phalcon/Mvc/Model/Manager.zep", 615); - if (Z_TYPE_P(&modelsBehaviors) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&modelsBehaviors), _2$$3) - { - ZEPHIR_INIT_NVAR(&behavior); - ZVAL_COPY(&behavior, _2$$3); - ZEPHIR_CALL_METHOD(&status, &behavior, "notify", NULL, 0, &eventName, model); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&status)) { - RETURN_MM_BOOL(0); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &modelsBehaviors, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3$$3, &modelsBehaviors, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&behavior, &modelsBehaviors, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&status, &behavior, "notify", NULL, 0, &eventName, model); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&status)) { - RETURN_MM_BOOL(0); - } - ZEPHIR_CALL_METHOD(NULL, &modelsBehaviors, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&behavior); - } - zephir_read_property(&_4, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_4); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_5$$8); - ZEPHIR_CONCAT_SV(&_5$$8, "model:", &eventName); - ZEPHIR_CALL_METHOD(&status, &eventsManager, "fire", NULL, 0, &_5$$8, model); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&status)) { - RETURN_CCTOR(&status); - } - } - ZEPHIR_OBS_VAR(&customEventsManager); - zephir_read_property(&_4, this_ptr, ZEND_STRL("customEventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_6); - zephir_get_class(&_6, model, 1); - if (zephir_array_isset_fetch(&customEventsManager, &_4, &_6, 0)) { - ZEPHIR_INIT_VAR(&_7$$10); - ZEPHIR_CONCAT_SV(&_7$$10, "model:", &eventName); - ZEPHIR_CALL_METHOD(&status, &customEventsManager, "fire", NULL, 0, &_7$$10, model); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&status)) { - RETURN_MM_BOOL(0); - } - } - RETURN_CCTOR(&status); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "previous"); + ZVAL_LONG(&_1, 0); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getproperty", NULL, 0, &_0, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, missingMethod) +static PHP_METHOD(Phalcon_Paginator_Repository, getTotalItems) { + zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval eventName, _5$$8; - zval *model, model_sub, *eventName_param = NULL, *data, data_sub, modelsBehaviors, result, eventsManager, behavior, _0, _1, _4, *_2$$3, _3$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&data_sub); - ZVAL_UNDEF(&modelsBehaviors); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&behavior); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&eventName); - ZVAL_UNDEF(&_5$$8); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "total_items"); + ZVAL_LONG(&_1, 0); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getproperty", NULL, 0, &_0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Paginator_Repository, jsonSerialize) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "properties"); +} + +static PHP_METHOD(Phalcon_Paginator_Repository, setAliases) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *aliases_param = NULL; + zval aliases; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&aliases); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_STR(eventName) - Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(aliases) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &model, &eventName_param, &data); - if (UNEXPECTED(Z_TYPE_P(eventName_param) != IS_STRING && Z_TYPE_P(eventName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'eventName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(eventName_param) == IS_STRING)) { - zephir_get_strval(&eventName, eventName_param); - } else { - ZEPHIR_INIT_VAR(&eventName); - } + zephir_fetch_params(1, 1, 0, &aliases_param); + zephir_get_arrval(&aliases, aliases_param); - ZEPHIR_OBS_VAR(&modelsBehaviors); - zephir_read_property(&_0, this_ptr, ZEND_STRL("behaviors"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - zephir_get_class(&_1, model, 1); - if (zephir_array_isset_fetch(&modelsBehaviors, &_0, &_1, 0)) { - zephir_is_iterable(&modelsBehaviors, 0, "phalcon/Mvc/Model/Manager.zep", 673); - if (Z_TYPE_P(&modelsBehaviors) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&modelsBehaviors), _2$$3) - { - ZEPHIR_INIT_NVAR(&behavior); - ZVAL_COPY(&behavior, _2$$3); - ZEPHIR_CALL_METHOD(&result, &behavior, "missingmethod", NULL, 0, model, &eventName, data); - zephir_check_call_status(); - if (Z_TYPE_P(&result) != IS_NULL) { - RETURN_CCTOR(&result); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &modelsBehaviors, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3$$3, &modelsBehaviors, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&behavior, &modelsBehaviors, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&result, &behavior, "missingmethod", NULL, 0, model, &eventName, data); - zephir_check_call_status(); - if (Z_TYPE_P(&result) != IS_NULL) { - RETURN_CCTOR(&result); - } - ZEPHIR_CALL_METHOD(NULL, &modelsBehaviors, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&behavior); - } - zephir_read_property(&_4, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_4); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_5$$8); - ZEPHIR_CONCAT_SV(&_5$$8, "model:", &eventName); - ZEPHIR_RETURN_CALL_METHOD(&eventsManager, "fire", NULL, 0, &_5$$8, model, data); - zephir_check_call_status(); - RETURN_MM(); - } - RETURN_MM_NULL(); + zephir_update_property_zval(this_ptr, ZEND_STRL("aliases"), &aliases); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, addBehavior) +static PHP_METHOD(Phalcon_Paginator_Repository, setProperties) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *model, model_sub, *behavior, behavior_sub, entityName, _0, _1$$3; + zval *properties_param = NULL; + zval properties; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&behavior_sub); - ZVAL_UNDEF(&entityName); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&properties); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_OBJECT_OF_CLASS(behavior, phalcon_mvc_model_behaviorinterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(properties) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &behavior); + zephir_fetch_params(1, 1, 0, &properties_param); + zephir_get_arrval(&properties, properties_param); - ZEPHIR_INIT_VAR(&entityName); - zephir_get_class(&entityName, model, 1); - zephir_read_property(&_0, this_ptr, ZEND_STRL("behaviors"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset(&_0, &entityName))) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_array(this_ptr, SL("behaviors"), &entityName, &_1$$3); - } - zephir_update_property_array_multi(this_ptr, SL("behaviors"), behavior, SL("za"), 2, &entityName); - ZEPHIR_MM_RESTORE(); + zephir_update_property_zval(this_ptr, ZEND_STRL("properties"), &properties); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, keepSnapshots) +static PHP_METHOD(Phalcon_Paginator_Repository, getProperty) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_bool keepSnapshots; - zval *model, model_sub, *keepSnapshots_param = NULL, _0, _1; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *property_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, _1; + zval property; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&property); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_BOOL(keepSnapshots) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(property) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(defaultValue) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &keepSnapshots_param); - keepSnapshots = zephir_get_boolval(keepSnapshots_param); + zephir_fetch_params(1, 1, 1, &property_param, &defaultValue); + zephir_get_strval(&property, property_param); + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; + } - ZEPHIR_INIT_VAR(&_0); - zephir_get_class(&_0, model, 1); - ZEPHIR_INIT_VAR(&_1); - ZVAL_BOOL(&_1, keepSnapshots); - zephir_update_property_array(this_ptr, SL("keepSnapshots"), &_0, &_1); - ZEPHIR_MM_RESTORE(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("properties"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_helper_arr_ce, "get", &_0, 16, &_1, &property, defaultValue); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, isKeepingSnapshots) +static PHP_METHOD(Phalcon_Paginator_Repository, getRealNameProperty) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *model, model_sub, isKeeping, _0, _1; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *property_param = NULL, aliases, _0$$3; + zval property; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&isKeeping); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&property); + ZVAL_UNDEF(&aliases); + ZVAL_UNDEF(&_0$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_STR(property) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); + zephir_fetch_params(1, 1, 0, &property_param); + zephir_get_strval(&property, property_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("keepSnapshots"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - zephir_get_class(&_1, model, 1); - if (!(zephir_array_isset_fetch(&isKeeping, &_0, &_1, 1))) { - RETURN_MM_BOOL(0); + ZEPHIR_CALL_METHOD(&aliases, this_ptr, "getaliases", NULL, 0); + zephir_check_call_status(); + if (zephir_array_isset(&aliases, &property)) { + zephir_array_fetch(&_0$$3, &aliases, &property, PH_NOISY | PH_READONLY, "phalcon/Paginator/Repository.zep", 180); + RETURN_CTOR(&_0$$3); } - RETURN_CTOR(&isKeeping); + RETURN_CTOR(&property); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, useDynamicUpdate) +zend_object *zephir_init_properties_Phalcon_Paginator_Repository(zend_class_entry *class_type) { + zval _0, _2, _1$$3, _3$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_bool dynamicUpdate; - zval *model, model_sub, *dynamicUpdate_param = NULL, entityName, _0, _1; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("properties"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("properties"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("aliases"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("aliases"), &_3$$4); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Paginator_RepositoryInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Paginator, RepositoryInterface, phalcon, paginator_repositoryinterface, phalcon_paginator_repositoryinterface_method_entry); + + zephir_declare_class_constant_string(phalcon_paginator_repositoryinterface_ce, SL("PROPERTY_CURRENT_PAGE"), "current"); + + zephir_declare_class_constant_string(phalcon_paginator_repositoryinterface_ce, SL("PROPERTY_FIRST_PAGE"), "first"); + + zephir_declare_class_constant_string(phalcon_paginator_repositoryinterface_ce, SL("PROPERTY_ITEMS"), "items"); + + zephir_declare_class_constant_string(phalcon_paginator_repositoryinterface_ce, SL("PROPERTY_LAST_PAGE"), "last"); + + zephir_declare_class_constant_string(phalcon_paginator_repositoryinterface_ce, SL("PROPERTY_LIMIT"), "limit"); + + zephir_declare_class_constant_string(phalcon_paginator_repositoryinterface_ce, SL("PROPERTY_NEXT_PAGE"), "next"); + + zephir_declare_class_constant_string(phalcon_paginator_repositoryinterface_ce, SL("PROPERTY_PREVIOUS_PAGE"), "previous"); + + zephir_declare_class_constant_string(phalcon_paginator_repositoryinterface_ce, SL("PROPERTY_TOTAL_ITEMS"), "total_items"); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, getAliases); +ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, getCurrent); +ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, getFirst); +ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, getItems); +ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, getLast); +ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, getLimit); +ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, getNext); +ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, getPrevious); +ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, getTotalItems); +ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, setAliases); +ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, setProperties); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_AbstractAdapter) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Paginator\\Adapter, AbstractAdapter, phalcon, paginator_adapter_abstractadapter, phalcon_paginator_adapter_abstractadapter_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_paginator_adapter_abstractadapter_ce, SL("config"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_paginator_adapter_abstractadapter_ce, SL("limitRows"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_paginator_adapter_abstractadapter_ce, SL("page"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_paginator_adapter_abstractadapter_ce, SL("repository"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_paginator_adapter_abstractadapter_ce, 1, phalcon_paginator_adapter_adapterinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Paginator_Adapter_AbstractAdapter, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *config_param = NULL, _0$$3, _1$$4, _2$$5; + zval config; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&entityName); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&config); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_BOOL(dynamicUpdate) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(config) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &dynamicUpdate_param); - dynamicUpdate = zephir_get_boolval(dynamicUpdate_param); + zephir_fetch_params(1, 1, 0, &config_param); + ZEPHIR_OBS_COPY_OR_DUP(&config, config_param); - ZEPHIR_INIT_VAR(&entityName); - zephir_get_class(&entityName, model, 1); - ZEPHIR_INIT_VAR(&_0); - ZVAL_BOOL(&_0, dynamicUpdate); - zephir_update_property_array(this_ptr, SL("dynamicUpdate"), &entityName, &_0); - ZEPHIR_INIT_VAR(&_1); - ZVAL_BOOL(&_1, dynamicUpdate); - zephir_update_property_array(this_ptr, SL("keepSnapshots"), &entityName, &_1); + zephir_update_property_zval(this_ptr, ZEND_STRL("config"), &config); + if (zephir_array_isset_string(&config, SL("limit"))) { + zephir_array_fetch_string(&_0$$3, &config, SL("limit"), PH_NOISY | PH_READONLY, "phalcon/Paginator/Adapter/AbstractAdapter.zep", 62); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setlimit", NULL, 0, &_0$$3); + zephir_check_call_status(); + } + if (zephir_array_isset_string(&config, SL("page"))) { + zephir_array_fetch_string(&_1$$4, &config, SL("page"), PH_NOISY | PH_READONLY, "phalcon/Paginator/Adapter/AbstractAdapter.zep", 68); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setcurrentpage", NULL, 0, &_1$$4); + zephir_check_call_status(); + } + if (zephir_array_isset_string(&config, SL("repository"))) { + zephir_array_fetch_string(&_2$$5, &config, SL("repository"), PH_NOISY | PH_READONLY, "phalcon/Paginator/Adapter/AbstractAdapter.zep", 74); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setrepository", NULL, 0, &_2$$5); + zephir_check_call_status(); + } ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, isUsingDynamicUpdate) +static PHP_METHOD(Phalcon_Paginator_Adapter_AbstractAdapter, getLimit) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *model, model_sub, isUsing, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&isUsing); + + + RETURN_MEMBER(getThis(), "limitRows"); +} + +static PHP_METHOD(Phalcon_Paginator_Adapter_AbstractAdapter, setCurrentPage) +{ + zval *page_param = NULL, _0; + zend_long page; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_LONG(page) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); + zephir_fetch_params_without_memory_grow(1, 0, &page_param); + page = zephir_get_intval(page_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("dynamicUpdate"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - zephir_get_class(&_1, model, 1); - if (!(zephir_array_isset_fetch(&isUsing, &_0, &_1, 1))) { - RETURN_MM_BOOL(0); - } - RETURN_CTOR(&isUsing); + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, page); + zephir_update_property_zval(this_ptr, ZEND_STRL("page"), &_0); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, addHasOne) +static PHP_METHOD(Phalcon_Paginator_Adapter_AbstractAdapter, setLimit) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval referencedModel, keyRelation; - zval *model, model_sub, *fields, fields_sub, *referencedModel_param = NULL, *referencedFields, referencedFields_sub, *options = NULL, options_sub, __$null, entityName, referencedEntity, relation, relations, alias, lowerAlias, singleRelations, _0, _1, _2, _3; + zval *limit_param = NULL, _0; + zend_long limit; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&fields_sub); - ZVAL_UNDEF(&referencedFields_sub); - ZVAL_UNDEF(&options_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&entityName); - ZVAL_UNDEF(&referencedEntity); - ZVAL_UNDEF(&relation); - ZVAL_UNDEF(&relations); - ZVAL_UNDEF(&alias); - ZVAL_UNDEF(&lowerAlias); - ZVAL_UNDEF(&singleRelations); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&referencedModel); - ZVAL_UNDEF(&keyRelation); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(4, 5) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_ZVAL(fields) - Z_PARAM_STR(referencedModel) - Z_PARAM_ZVAL(referencedFields) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(options) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(limit) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 4, 1, &model, &fields, &referencedModel_param, &referencedFields, &options); - if (UNEXPECTED(Z_TYPE_P(referencedModel_param) != IS_STRING && Z_TYPE_P(referencedModel_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referencedModel' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(referencedModel_param) == IS_STRING)) { - zephir_get_strval(&referencedModel, referencedModel_param); - } else { - ZEPHIR_INIT_VAR(&referencedModel); - } - if (!options) { - options = &options_sub; - options = &__$null; - } + zephir_fetch_params_without_memory_grow(1, 0, &limit_param); + limit = zephir_get_intval(limit_param); - ZEPHIR_INIT_VAR(&entityName); - zephir_get_class(&entityName, model, 1); - ZEPHIR_INIT_VAR(&referencedEntity); - zephir_fast_strtolower(&referencedEntity, &referencedModel); - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_CONCAT_VSV(&_0, &entityName, "$", &referencedEntity); - zephir_get_strval(&keyRelation, &_0); - ZEPHIR_OBS_VAR(&relations); - zephir_read_property(&_1, this_ptr, ZEND_STRL("hasOne"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&relations, &_1, &keyRelation, 0))) { - ZEPHIR_INIT_NVAR(&relations); - array_init(&relations); - } - if (Z_TYPE_P(referencedFields) == IS_ARRAY) { - if (UNEXPECTED(zephir_fast_count_int(fields) != zephir_fast_count_int(referencedFields))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Number of referenced fields are not the same", "phalcon/Mvc/Model/Manager.zep", 786); - return; - } - } - ZEPHIR_INIT_VAR(&relation); - object_init_ex(&relation, phalcon_mvc_model_relation_ce); - ZVAL_LONG(&_2, 1); - ZEPHIR_CALL_METHOD(NULL, &relation, "__construct", NULL, 452, &_2, &referencedModel, fields, referencedFields, options); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&alias); - if (zephir_array_isset_string_fetch(&alias, options, SL("alias"), 0)) { - if (UNEXPECTED(Z_TYPE_P(&alias) != IS_STRING)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Relation alias must be a string", "phalcon/Mvc/Model/Manager.zep", 806); - return; - } - ZEPHIR_INIT_VAR(&lowerAlias); - zephir_fast_strtolower(&lowerAlias, &alias); - } else { - ZEPHIR_CPY_WRT(&lowerAlias, &referencedEntity); - } - zephir_array_append(&relations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 819); - ZEPHIR_INIT_VAR(&_3); - ZEPHIR_CONCAT_VSV(&_3, &entityName, "$", &lowerAlias); - zephir_update_property_array(this_ptr, SL("aliases"), &_3, &relation); - zephir_update_property_array(this_ptr, SL("hasOne"), &keyRelation, &relations); - ZEPHIR_OBS_VAR(&singleRelations); - zephir_read_property(&_2, this_ptr, ZEND_STRL("hasOneSingle"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&singleRelations, &_2, &entityName, 0))) { - ZEPHIR_INIT_NVAR(&singleRelations); - array_init(&singleRelations); + if (limit <= 0) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_paginator_exception_ce, "Limit must be greater than zero", "phalcon/Paginator/Adapter/AbstractAdapter.zep", 102); + return; } - zephir_array_append(&singleRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 833); - zephir_update_property_array(this_ptr, SL("hasOneSingle"), &entityName, &singleRelations); - RETURN_CCTOR(&relation); + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, limit); + zephir_update_property_zval(this_ptr, ZEND_STRL("limitRows"), &_0); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, addHasOneThrough) +static PHP_METHOD(Phalcon_Paginator_Adapter_AbstractAdapter, setRepository) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval intermediateModel, referencedModel, keyRelation; - zval *model, model_sub, *fields, fields_sub, *intermediateModel_param = NULL, *intermediateFields, intermediateFields_sub, *intermediateReferencedFields, intermediateReferencedFields_sub, *referencedModel_param = NULL, *referencedFields, referencedFields_sub, *options = NULL, options_sub, __$null, entityName, referencedEntity, hasOneThrough, relation, relations, alias, lowerAlias, singleRelations, intermediateEntity, _0, _1, _2; + zval *repository, repository_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&fields_sub); - ZVAL_UNDEF(&intermediateFields_sub); - ZVAL_UNDEF(&intermediateReferencedFields_sub); - ZVAL_UNDEF(&referencedFields_sub); - ZVAL_UNDEF(&options_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&entityName); - ZVAL_UNDEF(&referencedEntity); - ZVAL_UNDEF(&hasOneThrough); - ZVAL_UNDEF(&relation); - ZVAL_UNDEF(&relations); - ZVAL_UNDEF(&alias); - ZVAL_UNDEF(&lowerAlias); - ZVAL_UNDEF(&singleRelations); - ZVAL_UNDEF(&intermediateEntity); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&intermediateModel); - ZVAL_UNDEF(&referencedModel); - ZVAL_UNDEF(&keyRelation); + ZVAL_UNDEF(&repository_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(7, 8) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_ZVAL(fields) - Z_PARAM_STR(intermediateModel) - Z_PARAM_ZVAL(intermediateFields) - Z_PARAM_ZVAL(intermediateReferencedFields) - Z_PARAM_STR(referencedModel) - Z_PARAM_ZVAL(referencedFields) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(options) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(repository, phalcon_paginator_repositoryinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 7, 1, &model, &fields, &intermediateModel_param, &intermediateFields, &intermediateReferencedFields, &referencedModel_param, &referencedFields, &options); - if (UNEXPECTED(Z_TYPE_P(intermediateModel_param) != IS_STRING && Z_TYPE_P(intermediateModel_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'intermediateModel' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(intermediateModel_param) == IS_STRING)) { - zephir_get_strval(&intermediateModel, intermediateModel_param); - } else { - ZEPHIR_INIT_VAR(&intermediateModel); - } - if (UNEXPECTED(Z_TYPE_P(referencedModel_param) != IS_STRING && Z_TYPE_P(referencedModel_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referencedModel' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(referencedModel_param) == IS_STRING)) { - zephir_get_strval(&referencedModel, referencedModel_param); - } else { - ZEPHIR_INIT_VAR(&referencedModel); - } - if (!options) { - options = &options_sub; - options = &__$null; - } + zephir_fetch_params_without_memory_grow(1, 0, &repository); - ZEPHIR_INIT_VAR(&entityName); - zephir_get_class(&entityName, model, 1); - ZEPHIR_INIT_VAR(&intermediateEntity); - zephir_fast_strtolower(&intermediateEntity, &intermediateModel); - ZEPHIR_INIT_VAR(&referencedEntity); - zephir_fast_strtolower(&referencedEntity, &referencedModel); - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_CONCAT_VSV(&_0, &entityName, "$", &referencedEntity); - zephir_get_strval(&keyRelation, &_0); - zephir_read_property(&_1, this_ptr, ZEND_STRL("hasOneThrough"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&hasOneThrough, &_1); - ZEPHIR_OBS_VAR(&relations); - if (!(zephir_array_isset_fetch(&relations, &hasOneThrough, &keyRelation, 0))) { - ZEPHIR_INIT_NVAR(&relations); - array_init(&relations); - } - if (Z_TYPE_P(intermediateFields) == IS_ARRAY) { - if (UNEXPECTED(zephir_fast_count_int(fields) != zephir_fast_count_int(intermediateFields))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Number of referenced fields are not the same", "phalcon/Mvc/Model/Manager.zep", 878); - return; - } - } - if (Z_TYPE_P(intermediateReferencedFields) == IS_ARRAY) { - if (UNEXPECTED(zephir_fast_count_int(fields) != zephir_fast_count_int(intermediateFields))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Number of referenced fields are not the same", "phalcon/Mvc/Model/Manager.zep", 890); - return; - } - } - ZEPHIR_INIT_VAR(&relation); - object_init_ex(&relation, phalcon_mvc_model_relation_ce); - ZVAL_LONG(&_1, 3); - ZEPHIR_CALL_METHOD(NULL, &relation, "__construct", NULL, 452, &_1, &referencedModel, fields, referencedFields, options); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &relation, "setintermediaterelation", NULL, 453, intermediateFields, &intermediateModel, intermediateReferencedFields); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&alias); - if (zephir_array_isset_string_fetch(&alias, options, SL("alias"), 0)) { - if (Z_TYPE_P(&alias) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Relation alias must be a string", "phalcon/Mvc/Model/Manager.zep", 919); - return; - } - ZEPHIR_INIT_VAR(&lowerAlias); - zephir_fast_strtolower(&lowerAlias, &alias); - } else { - ZEPHIR_CPY_WRT(&lowerAlias, &referencedEntity); - } - zephir_array_append(&relations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 930); - ZEPHIR_INIT_VAR(&_2); - ZEPHIR_CONCAT_VSV(&_2, &entityName, "$", &lowerAlias); - zephir_update_property_array(this_ptr, SL("aliases"), &_2, &relation); - zephir_update_property_array(this_ptr, SL("hasOneThrough"), &keyRelation, &relations); - ZEPHIR_OBS_VAR(&singleRelations); - zephir_read_property(&_1, this_ptr, ZEND_STRL("hasOneThroughSingle"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&singleRelations, &_1, &entityName, 0))) { - ZEPHIR_INIT_NVAR(&singleRelations); - array_init(&singleRelations); - } - zephir_array_append(&singleRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 952); - zephir_update_property_array(this_ptr, SL("hasOneThroughSingle"), &entityName, &singleRelations); - RETURN_CCTOR(&relation); + zephir_update_property_zval(this_ptr, ZEND_STRL("repository"), repository); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, addBelongsTo) +static PHP_METHOD(Phalcon_Paginator_Adapter_AbstractAdapter, getRepository) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval referencedModel, keyRelation; - zval *model, model_sub, *fields, fields_sub, *referencedModel_param = NULL, *referencedFields, referencedFields_sub, *options = NULL, options_sub, __$null, entityName, referencedEntity, relation, relations, alias, lowerAlias, singleRelations, _0, _1, _2, _3; + zval *properties_param = NULL, _0, _1$$3, _2$$4; + zval properties; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&fields_sub); - ZVAL_UNDEF(&referencedFields_sub); - ZVAL_UNDEF(&options_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&entityName); - ZVAL_UNDEF(&referencedEntity); - ZVAL_UNDEF(&relation); - ZVAL_UNDEF(&relations); - ZVAL_UNDEF(&alias); - ZVAL_UNDEF(&lowerAlias); - ZVAL_UNDEF(&singleRelations); + ZVAL_UNDEF(&properties); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&referencedModel); - ZVAL_UNDEF(&keyRelation); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(4, 5) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_ZVAL(fields) - Z_PARAM_STR(referencedModel) - Z_PARAM_ZVAL(referencedFields) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(options) + Z_PARAM_ARRAY_OR_NULL(properties) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 4, 1, &model, &fields, &referencedModel_param, &referencedFields, &options); - if (UNEXPECTED(Z_TYPE_P(referencedModel_param) != IS_STRING && Z_TYPE_P(referencedModel_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referencedModel' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(referencedModel_param) == IS_STRING)) { - zephir_get_strval(&referencedModel, referencedModel_param); + zephir_fetch_params(1, 0, 1, &properties_param); + if (!properties_param) { + ZEPHIR_INIT_VAR(&properties); } else { - ZEPHIR_INIT_VAR(&referencedModel); - } - if (!options) { - options = &options_sub; - options = &__$null; + zephir_get_arrval(&properties, properties_param); } - ZEPHIR_INIT_VAR(&entityName); - zephir_get_class(&entityName, model, 1); - ZEPHIR_INIT_VAR(&referencedEntity); - zephir_fast_strtolower(&referencedEntity, &referencedModel); - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_CONCAT_VSV(&_0, &entityName, "$", &referencedEntity); - zephir_get_strval(&keyRelation, &_0); - ZEPHIR_OBS_VAR(&relations); - zephir_read_property(&_1, this_ptr, ZEND_STRL("belongsTo"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&relations, &_1, &keyRelation, 0))) { - ZEPHIR_INIT_NVAR(&relations); - array_init(&relations); - } - if (Z_TYPE_P(referencedFields) == IS_ARRAY) { - if (UNEXPECTED(zephir_fast_count_int(fields) != zephir_fast_count_int(referencedFields))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Number of referenced fields are not the same", "phalcon/Mvc/Model/Manager.zep", 990); - return; - } - } - ZEPHIR_INIT_VAR(&relation); - object_init_ex(&relation, phalcon_mvc_model_relation_ce); - ZVAL_LONG(&_2, 0); - ZEPHIR_CALL_METHOD(NULL, &relation, "__construct", NULL, 452, &_2, &referencedModel, fields, referencedFields, options); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&alias); - if (zephir_array_isset_string_fetch(&alias, options, SL("alias"), 0)) { - if (UNEXPECTED(Z_TYPE_P(&alias) != IS_STRING)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Relation alias must be a string", "phalcon/Mvc/Model/Manager.zep", 1010); - return; + ZEPHIR_OBS_VAR(&_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("repository"), PH_NOISY_CC); + if (Z_TYPE_P(&_0) != IS_OBJECT) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_paginator_repository_ce); + if (zephir_has_constructor(&_1$$3)) { + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 0); + zephir_check_call_status(); } - ZEPHIR_INIT_VAR(&lowerAlias); - zephir_fast_strtolower(&lowerAlias, &alias); - } else { - ZEPHIR_CPY_WRT(&lowerAlias, &referencedEntity); + + zephir_update_property_zval(this_ptr, ZEND_STRL("repository"), &_1$$3); } - zephir_array_append(&relations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1023); - ZEPHIR_INIT_VAR(&_3); - ZEPHIR_CONCAT_VSV(&_3, &entityName, "$", &lowerAlias); - zephir_update_property_array(this_ptr, SL("aliases"), &_3, &relation); - zephir_update_property_array(this_ptr, SL("belongsTo"), &keyRelation, &relations); - ZEPHIR_OBS_VAR(&singleRelations); - zephir_read_property(&_2, this_ptr, ZEND_STRL("belongsToSingle"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&singleRelations, &_2, &entityName, 0))) { - ZEPHIR_INIT_NVAR(&singleRelations); - array_init(&singleRelations); + if (!ZEPHIR_IS_NULL(&properties)) { + zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("repository"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_2$$4, "setproperties", NULL, 0, &properties); + zephir_check_call_status(); } - zephir_array_append(&singleRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1037); - zephir_update_property_array(this_ptr, SL("belongsToSingle"), &entityName, &singleRelations); - RETURN_CCTOR(&relation); + RETURN_MM_MEMBER(getThis(), "repository"); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, addHasMany) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_AdapterInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Paginator\\Adapter, AdapterInterface, phalcon, paginator_adapter_adapterinterface, phalcon_paginator_adapter_adapterinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Paginator_Adapter_AdapterInterface, getLimit); +ZEPHIR_DOC_METHOD(Phalcon_Paginator_Adapter_AdapterInterface, paginate); +ZEPHIR_DOC_METHOD(Phalcon_Paginator_Adapter_AdapterInterface, setCurrentPage); +ZEPHIR_DOC_METHOD(Phalcon_Paginator_Adapter_AdapterInterface, setLimit); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_Model) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator\\Adapter, Model, phalcon, paginator_adapter_model, phalcon_paginator_adapter_abstractadapter_ce, phalcon_paginator_adapter_model_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Paginator_Adapter_Model, paginate) { + zval _8, _15, _12$$6; + zval config, modelClass, parameters, pageItems, _0, _1, _2, _3, _5, _6, _7, _9, _16, _10$$6, _11$$6, _13$$6, _14$$6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval referencedModel, keyRelation; - zval *model, model_sub, *fields, fields_sub, *referencedModel_param = NULL, *referencedFields, referencedFields_sub, *options = NULL, options_sub, __$null, entityName, referencedEntity, hasMany, relation, relations, alias, lowerAlias, singleRelations, _0, _1, _2; + zend_long ZEPHIR_LAST_CALL_STATUS, pageNumber = 0, limit = 0, rowcount = 0, next = 0, totalPages = 0, previous = 0; + zephir_fcall_cache_entry *_4 = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&fields_sub); - ZVAL_UNDEF(&referencedFields_sub); - ZVAL_UNDEF(&options_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&entityName); - ZVAL_UNDEF(&referencedEntity); - ZVAL_UNDEF(&hasMany); - ZVAL_UNDEF(&relation); - ZVAL_UNDEF(&relations); - ZVAL_UNDEF(&alias); - ZVAL_UNDEF(&lowerAlias); - ZVAL_UNDEF(&singleRelations); + ZVAL_UNDEF(&config); + ZVAL_UNDEF(&modelClass); + ZVAL_UNDEF(¶meters); + ZVAL_UNDEF(&pageItems); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&referencedModel); - ZVAL_UNDEF(&keyRelation); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(4, 5) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_ZVAL(fields) - Z_PARAM_STR(referencedModel) - Z_PARAM_ZVAL(referencedFields) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(options) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_16); + ZVAL_UNDEF(&_10$$6); + ZVAL_UNDEF(&_11$$6); + ZVAL_UNDEF(&_13$$6); + ZVAL_UNDEF(&_14$$6); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_15); + ZVAL_UNDEF(&_12$$6); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 4, 1, &model, &fields, &referencedModel_param, &referencedFields, &options); - if (UNEXPECTED(Z_TYPE_P(referencedModel_param) != IS_STRING && Z_TYPE_P(referencedModel_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referencedModel' must be of the type string")); - RETURN_MM_NULL(); + + ZEPHIR_INIT_VAR(&pageItems); + array_init(&pageItems); + ZEPHIR_OBS_VAR(&_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("limitRows"), PH_NOISY_CC); + limit = zephir_get_intval(&_0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("config"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&config, &_1); + ZEPHIR_OBS_VAR(&_2); + zephir_read_property(&_2, this_ptr, ZEND_STRL("page"), PH_NOISY_CC); + pageNumber = zephir_get_intval(&_2); + zephir_array_fetch_string(&_3, &config, SL("model"), PH_NOISY | PH_READONLY, "phalcon/Paginator/Adapter/Model.zep", 100); + ZEPHIR_CPY_WRT(&modelClass, &_3); + ZEPHIR_INIT_VAR(&_5); + array_init(&_5); + ZEPHIR_INIT_VAR(&_6); + ZVAL_STRING(&_6, "parameters"); + ZEPHIR_INIT_VAR(&_7); + ZVAL_STRING(&_7, "array"); + ZEPHIR_CALL_CE_STATIC(¶meters, phalcon_helper_arr_ce, "get", &_4, 16, &config, &_6, &_5, &_7); + zephir_check_call_status(); + if (pageNumber <= 0) { + pageNumber = 1; } - if (EXPECTED(Z_TYPE_P(referencedModel_param) == IS_STRING)) { - zephir_get_strval(&referencedModel, referencedModel_param); + ZEPHIR_INIT_VAR(&_8); + zephir_create_array(&_8, 2, 0); + zephir_array_fast_append(&_8, &modelClass); + ZEPHIR_INIT_NVAR(&_6); + ZVAL_STRING(&_6, "count"); + zephir_array_fast_append(&_8, &_6); + ZEPHIR_CALL_FUNCTION(&_9, "call_user_func", NULL, 255, &_8, ¶meters); + zephir_check_call_status(); + rowcount = zephir_get_intval(&_9); + if (zephir_safe_mod_long_long(rowcount, limit) != 0) { + totalPages = (int) ((zephir_safe_div_long_long(rowcount, limit) + (double) (1))); } else { - ZEPHIR_INIT_VAR(&referencedModel); - } - if (!options) { - options = &options_sub; - options = &__$null; + totalPages = (int) (zephir_safe_div_long_long(rowcount, limit)); } - - - ZEPHIR_INIT_VAR(&entityName); - zephir_get_class(&entityName, model, 1); - ZEPHIR_INIT_VAR(&referencedEntity); - zephir_fast_strtolower(&referencedEntity, &referencedModel); - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_CONCAT_VSV(&_0, &entityName, "$", &referencedEntity); - zephir_get_strval(&keyRelation, &_0); - zephir_read_property(&_1, this_ptr, ZEND_STRL("hasMany"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&hasMany, &_1); - ZEPHIR_OBS_VAR(&relations); - if (!(zephir_array_isset_fetch(&relations, &hasMany, &keyRelation, 0))) { - ZEPHIR_INIT_NVAR(&relations); - array_init(&relations); + if (rowcount > 0) { + ZEPHIR_INIT_VAR(&_10$$6); + ZVAL_LONG(&_10$$6, limit); + zephir_array_update_string(¶meters, SL("limit"), &_10$$6, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_11$$6); + ZVAL_LONG(&_11$$6, (limit * ((pageNumber - 1)))); + zephir_array_update_string(¶meters, SL("offset"), &_11$$6, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_12$$6); + zephir_create_array(&_12$$6, 2, 0); + zephir_array_fast_append(&_12$$6, &modelClass); + ZEPHIR_INIT_VAR(&_13$$6); + ZVAL_STRING(&_13$$6, "find"); + zephir_array_fast_append(&_12$$6, &_13$$6); + ZEPHIR_CALL_FUNCTION(&_14$$6, "call_user_func", NULL, 255, &_12$$6, ¶meters); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&pageItems, &_14$$6); } - if (Z_TYPE_P(referencedFields) == IS_ARRAY) { - if (UNEXPECTED(zephir_fast_count_int(fields) != zephir_fast_count_int(referencedFields))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Number of referenced fields are not the same", "phalcon/Mvc/Model/Manager.zep", 1077); - return; - } + next = (pageNumber + 1); + if (next > totalPages) { + next = totalPages; } - ZEPHIR_INIT_VAR(&relation); - object_init_ex(&relation, phalcon_mvc_model_relation_ce); - ZVAL_LONG(&_1, 2); - ZEPHIR_CALL_METHOD(NULL, &relation, "__construct", NULL, 452, &_1, &referencedModel, fields, referencedFields, options); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&alias); - if (zephir_array_isset_string_fetch(&alias, options, SL("alias"), 0)) { - if (UNEXPECTED(Z_TYPE_P(&alias) != IS_STRING)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Relation alias must be a string", "phalcon/Mvc/Model/Manager.zep", 1097); - return; - } - ZEPHIR_INIT_VAR(&lowerAlias); - zephir_fast_strtolower(&lowerAlias, &alias); + if (pageNumber > 1) { + previous = (pageNumber - 1); } else { - ZEPHIR_CPY_WRT(&lowerAlias, &referencedEntity); - } - zephir_array_append(&relations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1110); - ZEPHIR_INIT_VAR(&_2); - ZEPHIR_CONCAT_VSV(&_2, &entityName, "$", &lowerAlias); - zephir_update_property_array(this_ptr, SL("aliases"), &_2, &relation); - zephir_update_property_array(this_ptr, SL("hasMany"), &keyRelation, &relations); - ZEPHIR_OBS_VAR(&singleRelations); - zephir_read_property(&_1, this_ptr, ZEND_STRL("hasManySingle"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&singleRelations, &_1, &entityName, 0))) { - ZEPHIR_INIT_NVAR(&singleRelations); - array_init(&singleRelations); + previous = 1; } - zephir_array_append(&singleRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1124); - zephir_update_property_array(this_ptr, SL("hasManySingle"), &entityName, &singleRelations); - RETURN_CCTOR(&relation); + ZEPHIR_INIT_VAR(&_15); + zephir_create_array(&_15, 8, 0); + zephir_array_update_string(&_15, SL("items"), &pageItems, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_6); + ZVAL_LONG(&_6, rowcount); + zephir_array_update_string(&_15, SL("total_items"), &_6, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_VAR(&_16); + zephir_read_property(&_16, this_ptr, ZEND_STRL("limitRows"), PH_NOISY_CC); + zephir_array_update_string(&_15, SL("limit"), &_16, PH_COPY | PH_SEPARATE); + add_assoc_long_ex(&_15, SL("first"), 1); + ZEPHIR_INIT_NVAR(&_6); + ZVAL_LONG(&_6, previous); + zephir_array_update_string(&_15, SL("previous"), &_6, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_6); + ZVAL_LONG(&_6, pageNumber); + zephir_array_update_string(&_15, SL("current"), &_6, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_6); + ZVAL_LONG(&_6, next); + zephir_array_update_string(&_15, SL("next"), &_6, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_6); + ZVAL_LONG(&_6, totalPages); + zephir_array_update_string(&_15, SL("last"), &_6, PH_COPY | PH_SEPARATE); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getrepository", NULL, 0, &_15); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, addHasManyToMany) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_NativeArray) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator\\Adapter, NativeArray, phalcon, paginator_adapter_nativearray, phalcon_paginator_adapter_abstractadapter_ce, phalcon_paginator_adapter_nativearray_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, paginate) { + zval _6; + double roundedTotal = 0; + zval config, items, _0, _1, _2, _3, _4, _5, _7, _8; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval intermediateModel, referencedModel, keyRelation; - zval *model, model_sub, *fields, fields_sub, *intermediateModel_param = NULL, *intermediateFields, intermediateFields_sub, *intermediateReferencedFields, intermediateReferencedFields_sub, *referencedModel_param = NULL, *referencedFields, referencedFields_sub, *options = NULL, options_sub, __$null, entityName, referencedEntity, hasManyToMany, relation, relations, alias, lowerAlias, singleRelations, intermediateEntity, _0, _1, _2; + zend_long ZEPHIR_LAST_CALL_STATUS, show = 0, pageNumber = 0, totalPages = 0, number = 0, previous = 0, next = 0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&fields_sub); - ZVAL_UNDEF(&intermediateFields_sub); - ZVAL_UNDEF(&intermediateReferencedFields_sub); - ZVAL_UNDEF(&referencedFields_sub); - ZVAL_UNDEF(&options_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&entityName); - ZVAL_UNDEF(&referencedEntity); - ZVAL_UNDEF(&hasManyToMany); - ZVAL_UNDEF(&relation); - ZVAL_UNDEF(&relations); - ZVAL_UNDEF(&alias); - ZVAL_UNDEF(&lowerAlias); - ZVAL_UNDEF(&singleRelations); - ZVAL_UNDEF(&intermediateEntity); + ZVAL_UNDEF(&config); + ZVAL_UNDEF(&items); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&intermediateModel); - ZVAL_UNDEF(&referencedModel); - ZVAL_UNDEF(&keyRelation); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(7, 8) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_ZVAL(fields) - Z_PARAM_STR(intermediateModel) - Z_PARAM_ZVAL(intermediateFields) - Z_PARAM_ZVAL(intermediateReferencedFields) - Z_PARAM_STR(referencedModel) - Z_PARAM_ZVAL(referencedFields) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(options) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_6); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 7, 1, &model, &fields, &intermediateModel_param, &intermediateFields, &intermediateReferencedFields, &referencedModel_param, &referencedFields, &options); - if (UNEXPECTED(Z_TYPE_P(intermediateModel_param) != IS_STRING && Z_TYPE_P(intermediateModel_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'intermediateModel' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(intermediateModel_param) == IS_STRING)) { - zephir_get_strval(&intermediateModel, intermediateModel_param); - } else { - ZEPHIR_INIT_VAR(&intermediateModel); - } - if (UNEXPECTED(Z_TYPE_P(referencedModel_param) != IS_STRING && Z_TYPE_P(referencedModel_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referencedModel' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(referencedModel_param) == IS_STRING)) { - zephir_get_strval(&referencedModel, referencedModel_param); - } else { - ZEPHIR_INIT_VAR(&referencedModel); - } - if (!options) { - options = &options_sub; - options = &__$null; - } - - ZEPHIR_INIT_VAR(&entityName); - zephir_get_class(&entityName, model, 1); - ZEPHIR_INIT_VAR(&intermediateEntity); - zephir_fast_strtolower(&intermediateEntity, &intermediateModel); - ZEPHIR_INIT_VAR(&referencedEntity); - zephir_fast_strtolower(&referencedEntity, &referencedModel); - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_CONCAT_VSV(&_0, &entityName, "$", &referencedEntity); - zephir_get_strval(&keyRelation, &_0); - zephir_read_property(&_1, this_ptr, ZEND_STRL("hasManyToMany"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&hasManyToMany, &_1); - ZEPHIR_OBS_VAR(&relations); - if (!(zephir_array_isset_fetch(&relations, &hasManyToMany, &keyRelation, 0))) { - ZEPHIR_INIT_NVAR(&relations); - array_init(&relations); - } - if (Z_TYPE_P(intermediateFields) == IS_ARRAY) { - if (UNEXPECTED(zephir_fast_count_int(fields) != zephir_fast_count_int(intermediateFields))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Number of referenced fields are not the same", "phalcon/Mvc/Model/Manager.zep", 1169); - return; - } + zephir_read_property(&_0, this_ptr, ZEND_STRL("config"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&config, &_0); + ZEPHIR_OBS_VAR(&items); + zephir_array_fetch_string(&items, &config, SL("data"), PH_NOISY, "phalcon/Paginator/Adapter/NativeArray.zep", 54); + if (UNEXPECTED(Z_TYPE_P(&items) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Invalid data for paginator", "phalcon/Paginator/Adapter/NativeArray.zep", 57); + return; } - if (Z_TYPE_P(intermediateReferencedFields) == IS_ARRAY) { - if (UNEXPECTED(zephir_fast_count_int(fields) != zephir_fast_count_int(intermediateFields))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Number of referenced fields are not the same", "phalcon/Mvc/Model/Manager.zep", 1181); - return; - } + ZEPHIR_OBS_VAR(&_1); + zephir_read_property(&_1, this_ptr, ZEND_STRL("limitRows"), PH_NOISY_CC); + show = zephir_get_intval(&_1); + ZEPHIR_OBS_VAR(&_2); + zephir_read_property(&_2, this_ptr, ZEND_STRL("page"), PH_NOISY_CC); + pageNumber = zephir_get_intval(&_2); + if (pageNumber <= 0) { + pageNumber = 1; } - ZEPHIR_INIT_VAR(&relation); - object_init_ex(&relation, phalcon_mvc_model_relation_ce); - ZVAL_LONG(&_1, 4); - ZEPHIR_CALL_METHOD(NULL, &relation, "__construct", NULL, 452, &_1, &referencedModel, fields, referencedFields, options); + number = zephir_fast_count_int(&items); + ZVAL_LONG(&_0, show); + ZEPHIR_CALL_FUNCTION(&_3, "floatval", NULL, 18, &_0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &relation, "setintermediaterelation", NULL, 453, intermediateFields, &intermediateModel, intermediateReferencedFields); + roundedTotal = zephir_safe_div_long_zval(number, &_3); + totalPages = (int) (roundedTotal); + if (totalPages != roundedTotal) { + totalPages++; + } + ZVAL_LONG(&_0, (show * ((pageNumber - 1)))); + ZVAL_LONG(&_4, show); + ZEPHIR_CALL_FUNCTION(&_5, "array_slice", NULL, 260, &items, &_0, &_4); zephir_check_call_status(); - ZEPHIR_OBS_VAR(&alias); - if (zephir_array_isset_string_fetch(&alias, options, SL("alias"), 0)) { - if (Z_TYPE_P(&alias) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Relation alias must be a string", "phalcon/Mvc/Model/Manager.zep", 1210); - return; - } - ZEPHIR_INIT_VAR(&lowerAlias); - zephir_fast_strtolower(&lowerAlias, &alias); + ZEPHIR_CPY_WRT(&items, &_5); + if (pageNumber < totalPages) { + next = (pageNumber + 1); } else { - ZEPHIR_CPY_WRT(&lowerAlias, &referencedEntity); + next = totalPages; } - zephir_array_append(&relations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1221); - ZEPHIR_INIT_VAR(&_2); - ZEPHIR_CONCAT_VSV(&_2, &entityName, "$", &lowerAlias); - zephir_update_property_array(this_ptr, SL("aliases"), &_2, &relation); - zephir_update_property_array(this_ptr, SL("hasManyToMany"), &keyRelation, &relations); - ZEPHIR_OBS_VAR(&singleRelations); - zephir_read_property(&_1, this_ptr, ZEND_STRL("hasManyToManySingle"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&singleRelations, &_1, &entityName, 0))) { - ZEPHIR_INIT_NVAR(&singleRelations); - array_init(&singleRelations); + if (pageNumber > 1) { + previous = (pageNumber - 1); + } else { + previous = 1; } - zephir_array_append(&singleRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1243); - zephir_update_property_array(this_ptr, SL("hasManyToManySingle"), &entityName, &singleRelations); - RETURN_CCTOR(&relation); + ZEPHIR_INIT_VAR(&_6); + zephir_create_array(&_6, 8, 0); + zephir_array_update_string(&_6, SL("items"), &items, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_7); + ZVAL_LONG(&_7, number); + zephir_array_update_string(&_6, SL("total_items"), &_7, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_VAR(&_8); + zephir_read_property(&_8, this_ptr, ZEND_STRL("limitRows"), PH_NOISY_CC); + zephir_array_update_string(&_6, SL("limit"), &_8, PH_COPY | PH_SEPARATE); + add_assoc_long_ex(&_6, SL("first"), 1); + ZEPHIR_INIT_NVAR(&_7); + ZVAL_LONG(&_7, previous); + zephir_array_update_string(&_6, SL("previous"), &_7, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_7); + ZVAL_LONG(&_7, pageNumber); + zephir_array_update_string(&_6, SL("current"), &_7, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_7); + ZVAL_LONG(&_7, next); + zephir_array_update_string(&_6, SL("next"), &_7, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_7); + ZVAL_LONG(&_7, totalPages); + zephir_array_update_string(&_6, SL("last"), &_7, PH_COPY | PH_SEPARATE); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getrepository", NULL, 0, &_6); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, existsBelongsTo) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_QueryBuilder) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator\\Adapter, QueryBuilder, phalcon, paginator_adapter_querybuilder, phalcon_paginator_adapter_abstractadapter_ce, phalcon_paginator_adapter_querybuilder_method_entry, 0); + + zend_declare_property_null(phalcon_paginator_adapter_querybuilder_ce, SL("builder"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_paginator_adapter_querybuilder_ce, SL("columns"), ZEND_ACC_PROTECTED); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, __construct) { + zval _1$$5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_2 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *modelName_param = NULL, *modelRelation_param = NULL, entityName, _0, _1, _2, _3; - zval modelName, modelRelation, keyRelation; + zval *config_param = NULL, builder, columns, _0$$5; + zval config; zval *this_ptr = getThis(); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&modelRelation); - ZVAL_UNDEF(&keyRelation); - ZVAL_UNDEF(&entityName); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&config); + ZVAL_UNDEF(&builder); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&_0$$5); + ZVAL_UNDEF(&_1$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(modelName) - Z_PARAM_STR(modelRelation) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(config) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &modelName_param, &modelRelation_param); - if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); - RETURN_MM_NULL(); + zephir_fetch_params(1, 1, 0, &config_param); + zephir_get_arrval(&config, config_param); + + + if (UNEXPECTED(!(zephir_array_isset_string(&config, SL("limit"))))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Parameter 'limit' is required", "phalcon/Paginator/Adapter/QueryBuilder.zep", 70); + return; } - if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { - zephir_get_strval(&modelName, modelName_param); - } else { - ZEPHIR_INIT_VAR(&modelName); + ZEPHIR_OBS_VAR(&builder); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&builder, &config, SL("builder"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Parameter 'builder' is required", "phalcon/Paginator/Adapter/QueryBuilder.zep", 74); + return; } - if (UNEXPECTED(Z_TYPE_P(modelRelation_param) != IS_STRING && Z_TYPE_P(modelRelation_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelRelation' must be of the type string")); - RETURN_MM_NULL(); + if (UNEXPECTED(!((zephir_instance_of_ev(&builder, phalcon_mvc_model_query_builder_ce))))) { + ZEPHIR_INIT_VAR(&_0$$5); + object_init_ex(&_0$$5, phalcon_paginator_exception_ce); + ZEPHIR_INIT_VAR(&_1$$5); + ZEPHIR_CONCAT_SS(&_1$$5, "Parameter 'builder' must be an instance ", "of Phalcon\\Mvc\\Model\\Query\\Builder"); + ZEPHIR_CALL_METHOD(NULL, &_0$$5, "__construct", NULL, 8, &_1$$5); + zephir_check_call_status(); + zephir_throw_exception_debug(&_0$$5, "phalcon/Paginator/Adapter/QueryBuilder.zep", 80); + ZEPHIR_MM_RESTORE(); + return; } - if (EXPECTED(Z_TYPE_P(modelRelation_param) == IS_STRING)) { - zephir_get_strval(&modelRelation, modelRelation_param); - } else { - ZEPHIR_INIT_VAR(&modelRelation); + ZEPHIR_OBS_VAR(&columns); + if (zephir_array_isset_string_fetch(&columns, &config, SL("columns"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("columns"), &columns); } + ZEPHIR_CALL_PARENT(NULL, phalcon_paginator_adapter_querybuilder_ce, getThis(), "__construct", &_2, 0, &config); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setquerybuilder", NULL, 0, &builder); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} +static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getCurrentPage) +{ + zval *this_ptr = getThis(); - ZEPHIR_INIT_VAR(&entityName); - zephir_fast_strtolower(&entityName, &modelName); - ZEPHIR_INIT_VAR(&_0); - zephir_fast_strtolower(&_0, &modelRelation); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_CONCAT_VSV(&_1, &entityName, "$", &_0); - zephir_get_strval(&keyRelation, &_1); - zephir_read_property(&_2, this_ptr, ZEND_STRL("initialized"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset(&_2, &entityName))) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "load", NULL, 0, &modelName); - zephir_check_call_status(); - } - zephir_read_property(&_3, this_ptr, ZEND_STRL("belongsTo"), PH_NOISY_CC | PH_READONLY); - RETURN_MM_BOOL(zephir_array_isset(&_3, &keyRelation)); + + + RETURN_MEMBER(getThis(), "page"); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, existsHasMany) +static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getQueryBuilder) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "builder"); +} + +static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, paginate) { + zval _23, _7$$14, _9$$15; + zend_bool hasHaving = 0, hasGroup = 0, _3; + zval originalBuilder, builder, totalBuilder, totalPages, limit, number, query, items, totalQuery, result, row, rowcount, next, sql, columns, db, model, modelClass, dbService, groups, groupColumn, _0, _1, _2, _24, _25, _4$$10, _5$$14, _6$$14, _8$$14, _10$$15, _11$$18, _12$$18, _13$$16, _14$$16, _15$$16, _16$$16, _17$$16, _18$$16, _19$$16, _20$$19, _21$$19, _22$$19; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *modelName_param = NULL, *modelRelation_param = NULL, entityName, _0, _1, _2, _3; - zval modelName, modelRelation, keyRelation; + zend_long ZEPHIR_LAST_CALL_STATUS, previous = 0, numberPage = 0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&modelRelation); - ZVAL_UNDEF(&keyRelation); - ZVAL_UNDEF(&entityName); + ZVAL_UNDEF(&originalBuilder); + ZVAL_UNDEF(&builder); + ZVAL_UNDEF(&totalBuilder); + ZVAL_UNDEF(&totalPages); + ZVAL_UNDEF(&limit); + ZVAL_UNDEF(&number); + ZVAL_UNDEF(&query); + ZVAL_UNDEF(&items); + ZVAL_UNDEF(&totalQuery); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&row); + ZVAL_UNDEF(&rowcount); + ZVAL_UNDEF(&next); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&db); + ZVAL_UNDEF(&model); + ZVAL_UNDEF(&modelClass); + ZVAL_UNDEF(&dbService); + ZVAL_UNDEF(&groups); + ZVAL_UNDEF(&groupColumn); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(modelName) - Z_PARAM_STR(modelRelation) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_24); + ZVAL_UNDEF(&_25); + ZVAL_UNDEF(&_4$$10); + ZVAL_UNDEF(&_5$$14); + ZVAL_UNDEF(&_6$$14); + ZVAL_UNDEF(&_8$$14); + ZVAL_UNDEF(&_10$$15); + ZVAL_UNDEF(&_11$$18); + ZVAL_UNDEF(&_12$$18); + ZVAL_UNDEF(&_13$$16); + ZVAL_UNDEF(&_14$$16); + ZVAL_UNDEF(&_15$$16); + ZVAL_UNDEF(&_16$$16); + ZVAL_UNDEF(&_17$$16); + ZVAL_UNDEF(&_18$$16); + ZVAL_UNDEF(&_19$$16); + ZVAL_UNDEF(&_20$$19); + ZVAL_UNDEF(&_21$$19); + ZVAL_UNDEF(&_22$$19); + ZVAL_UNDEF(&_23); + ZVAL_UNDEF(&_7$$14); + ZVAL_UNDEF(&_9$$15); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &modelName_param, &modelRelation_param); - if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); - RETURN_MM_NULL(); + + ZEPHIR_OBS_VAR(&originalBuilder); + zephir_read_property(&originalBuilder, this_ptr, ZEND_STRL("builder"), PH_NOISY_CC); + zephir_read_property(&_0, this_ptr, ZEND_STRL("columns"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&columns, &_0); + ZEPHIR_INIT_VAR(&builder); + if (zephir_clone(&builder, &originalBuilder) == FAILURE) { + RETURN_MM(); } - if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { - zephir_get_strval(&modelName, modelName_param); + ZEPHIR_INIT_VAR(&totalBuilder); + if (zephir_clone(&totalBuilder, &builder) == FAILURE) { + RETURN_MM(); + } + ZEPHIR_OBS_VAR(&limit); + zephir_read_property(&limit, this_ptr, ZEND_STRL("limitRows"), PH_NOISY_CC); + ZEPHIR_OBS_VAR(&_1); + zephir_read_property(&_1, this_ptr, ZEND_STRL("page"), PH_NOISY_CC); + numberPage = zephir_get_intval(&_1); + if (!(numberPage)) { + numberPage = 1; + } + ZEPHIR_INIT_VAR(&number); + ZVAL_LONG(&number, (zephir_get_numberval(&limit) * ((numberPage - 1)))); + if (ZEPHIR_LT(&number, &limit)) { + ZEPHIR_CALL_METHOD(NULL, &builder, "limit", NULL, 0, &limit); + zephir_check_call_status(); } else { - ZEPHIR_INIT_VAR(&modelName); + ZEPHIR_CALL_METHOD(NULL, &builder, "limit", NULL, 0, &limit, &number); + zephir_check_call_status(); } - if (UNEXPECTED(Z_TYPE_P(modelRelation_param) != IS_STRING && Z_TYPE_P(modelRelation_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelRelation' must be of the type string")); - RETURN_MM_NULL(); + ZEPHIR_CALL_METHOD(&query, &builder, "getquery", NULL, 0); + zephir_check_call_status(); + if (numberPage == 1) { + previous = 1; + } else { + previous = (numberPage - 1); } - if (EXPECTED(Z_TYPE_P(modelRelation_param) == IS_STRING)) { - zephir_get_strval(&modelRelation, modelRelation_param); + ZEPHIR_CALL_METHOD(&items, &query, "execute", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_2, &totalBuilder, "gethaving", NULL, 0); + zephir_check_call_status(); + hasHaving = !(ZEPHIR_IS_EMPTY(&_2)); + ZEPHIR_CALL_METHOD(&groups, &totalBuilder, "getgroupby", NULL, 0); + zephir_check_call_status(); + hasGroup = !(ZEPHIR_IS_EMPTY(&groups)); + _3 = hasHaving; + if (_3) { + _3 = !hasGroup; + } + if (_3) { + if (UNEXPECTED(ZEPHIR_IS_EMPTY(&columns))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "When having is set there should be columns option provided for which calculate row count", "phalcon/Paginator/Adapter/QueryBuilder.zep", 177); + return; + } + ZEPHIR_CALL_METHOD(NULL, &totalBuilder, "columns", NULL, 0, &columns); + zephir_check_call_status(); } else { - ZEPHIR_INIT_VAR(&modelRelation); + ZEPHIR_INIT_VAR(&_4$$10); + ZVAL_STRING(&_4$$10, "COUNT(*) [rowcount]"); + ZEPHIR_CALL_METHOD(NULL, &totalBuilder, "columns", NULL, 0, &_4$$10); + zephir_check_call_status(); } - - - ZEPHIR_INIT_VAR(&entityName); - zephir_fast_strtolower(&entityName, &modelName); - ZEPHIR_INIT_VAR(&_0); - zephir_fast_strtolower(&_0, &modelRelation); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_CONCAT_VSV(&_1, &entityName, "$", &_0); - zephir_get_strval(&keyRelation, &_1); - zephir_read_property(&_2, this_ptr, ZEND_STRL("initialized"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset(&_2, &entityName))) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "load", NULL, 0, &modelName); + if (hasGroup) { + if (Z_TYPE_P(&groups) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&groupColumn); + zephir_fast_join_str(&groupColumn, SL(", "), &groups); + } else { + ZEPHIR_CPY_WRT(&groupColumn, &groups); + } + if (!(hasHaving)) { + ZVAL_NULL(&_6$$14); + ZEPHIR_CALL_METHOD(&_5$$14, &totalBuilder, "groupby", NULL, 0, &_6$$14); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_7$$14); + zephir_create_array(&_7$$14, 1, 0); + ZEPHIR_INIT_VAR(&_8$$14); + ZEPHIR_CONCAT_SVS(&_8$$14, "COUNT(DISTINCT ", &groupColumn, ") AS [rowcount]"); + zephir_array_fast_append(&_7$$14, &_8$$14); + ZEPHIR_CALL_METHOD(NULL, &_5$$14, "columns", NULL, 0, &_7$$14); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_VAR(&_9$$15); + zephir_create_array(&_9$$15, 1, 0); + ZEPHIR_INIT_VAR(&_10$$15); + ZEPHIR_CONCAT_SV(&_10$$15, "DISTINCT ", &groupColumn); + zephir_array_fast_append(&_9$$15, &_10$$15); + ZEPHIR_CALL_METHOD(NULL, &totalBuilder, "columns", NULL, 0, &_9$$15); + zephir_check_call_status(); + } + } + ZVAL_NULL(&_0); + ZEPHIR_CALL_METHOD(NULL, &totalBuilder, "orderby", NULL, 0, &_0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&totalQuery, &totalBuilder, "getquery", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&rowcount); + if (hasHaving) { + ZEPHIR_CALL_METHOD(&sql, &totalQuery, "getsql", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&modelClass, &builder, "getmodels", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&modelClass) == IS_NULL)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Model not defined in builder", "phalcon/Paginator/Adapter/QueryBuilder.zep", 229); + return; + } + if (Z_TYPE_P(&modelClass) == IS_ARRAY) { + ZEPHIR_CALL_FUNCTION(&_11$$18, "array_values", NULL, 12, &modelClass); + zephir_check_call_status(); + zephir_array_fetch_long(&_12$$18, &_11$$18, 0, PH_NOISY | PH_READONLY, "phalcon/Paginator/Adapter/QueryBuilder.zep", 233); + ZEPHIR_CPY_WRT(&modelClass, &_12$$18); + } + ZEPHIR_INIT_VAR(&model); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(&model, &modelClass); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&dbService, &model, "getreadconnectionservice", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_13$$16, &totalBuilder, "getdi", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&db, &_13$$16, "get", NULL, 0, &dbService); + zephir_check_call_status(); + zephir_array_fetch_string(&_14$$16, &sql, SL("sql"), PH_NOISY | PH_READONLY, "phalcon/Paginator/Adapter/QueryBuilder.zep", 241); + ZEPHIR_INIT_VAR(&_15$$16); + ZEPHIR_CONCAT_SVS(&_15$$16, "SELECT COUNT(*) as \"rowcount\" FROM (", &_14$$16, ") as T1"); + zephir_array_fetch_string(&_16$$16, &sql, SL("bind"), PH_NOISY | PH_READONLY, "phalcon/Paginator/Adapter/QueryBuilder.zep", 244); + ZVAL_LONG(&_17$$16, 2); + ZEPHIR_CALL_METHOD(&row, &db, "fetchone", NULL, 0, &_15$$16, &_17$$16, &_16$$16); + zephir_check_call_status(); + if (zephir_is_true(&row)) { + zephir_array_fetch_string(&_18$$16, &row, SL("rowcount"), PH_NOISY | PH_READONLY, "phalcon/Paginator/Adapter/QueryBuilder.zep", 246); + ZVAL_LONG(&rowcount, zephir_get_intval(&_18$$16)); + } else { + ZVAL_LONG(&rowcount, 0); + } + ZEPHIR_INIT_VAR(&_19$$16); + div_function(&_19$$16, &rowcount, &limit); + ZVAL_DOUBLE(&_17$$16, zephir_ceil(&_19$$16)); + ZEPHIR_INIT_VAR(&totalPages); + ZVAL_LONG(&totalPages, zephir_get_intval(&_17$$16)); + } else { + ZEPHIR_CALL_METHOD(&result, &totalQuery, "execute", NULL, 0); zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&row, &result, "getfirst", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&row)) { + zephir_read_property(&_20$$19, &row, ZEND_STRL("rowcount"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&rowcount); + ZVAL_LONG(&rowcount, zephir_get_intval(&_20$$19)); + } else { + ZEPHIR_INIT_NVAR(&rowcount); + ZVAL_LONG(&rowcount, 0); + } + ZEPHIR_INIT_VAR(&_21$$19); + div_function(&_21$$19, &rowcount, &limit); + ZVAL_DOUBLE(&_22$$19, zephir_ceil(&_21$$19)); + ZEPHIR_INIT_NVAR(&totalPages); + ZVAL_LONG(&totalPages, zephir_get_intval(&_22$$19)); } - zephir_read_property(&_3, this_ptr, ZEND_STRL("hasMany"), PH_NOISY_CC | PH_READONLY); - RETURN_MM_BOOL(zephir_array_isset(&_3, &keyRelation)); + if (ZEPHIR_GT_LONG(&totalPages, numberPage)) { + ZEPHIR_INIT_VAR(&next); + ZVAL_LONG(&next, (numberPage + 1)); + } else { + ZEPHIR_CPY_WRT(&next, &totalPages); + } + ZEPHIR_INIT_VAR(&_23); + zephir_create_array(&_23, 8, 0); + zephir_array_update_string(&_23, SL("items"), &items, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_23, SL("total_items"), &rowcount, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_VAR(&_24); + zephir_read_property(&_24, this_ptr, ZEND_STRL("limitRows"), PH_NOISY_CC); + zephir_array_update_string(&_23, SL("limit"), &_24, PH_COPY | PH_SEPARATE); + add_assoc_long_ex(&_23, SL("first"), 1); + ZEPHIR_INIT_VAR(&_25); + ZVAL_LONG(&_25, previous); + zephir_array_update_string(&_23, SL("previous"), &_25, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_25); + ZVAL_LONG(&_25, numberPage); + zephir_array_update_string(&_23, SL("current"), &_25, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_23, SL("next"), &next, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_23, SL("last"), &totalPages, PH_COPY | PH_SEPARATE); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getrepository", NULL, 0, &_23); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, existsHasOne) +static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, setQueryBuilder) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *modelName_param = NULL, *modelRelation_param = NULL, entityName, _0, _1, _2, _3; - zval modelName, modelRelation, keyRelation; + zval *builder, builder_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&modelRelation); - ZVAL_UNDEF(&keyRelation); - ZVAL_UNDEF(&entityName); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&builder_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(modelName) - Z_PARAM_STR(modelRelation) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(builder, phalcon_mvc_model_query_builder_ce) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &modelName_param, &modelRelation_param); - if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { - zephir_get_strval(&modelName, modelName_param); - } else { - ZEPHIR_INIT_VAR(&modelName); - } - if (UNEXPECTED(Z_TYPE_P(modelRelation_param) != IS_STRING && Z_TYPE_P(modelRelation_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelRelation' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(modelRelation_param) == IS_STRING)) { - zephir_get_strval(&modelRelation, modelRelation_param); - } else { - ZEPHIR_INIT_VAR(&modelRelation); - } + zephir_fetch_params_without_memory_grow(1, 0, &builder); - ZEPHIR_INIT_VAR(&entityName); - zephir_fast_strtolower(&entityName, &modelName); - ZEPHIR_INIT_VAR(&_0); - zephir_fast_strtolower(&_0, &modelRelation); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_CONCAT_VSV(&_1, &entityName, "$", &_0); - zephir_get_strval(&keyRelation, &_1); - zephir_read_property(&_2, this_ptr, ZEND_STRL("initialized"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset(&_2, &entityName))) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "load", NULL, 0, &modelName); - zephir_check_call_status(); - } - zephir_read_property(&_3, this_ptr, ZEND_STRL("hasOne"), PH_NOISY_CC | PH_READONLY); - RETURN_MM_BOOL(zephir_array_isset(&_3, &keyRelation)); + zephir_update_property_zval(this_ptr, ZEND_STRL("builder"), builder); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, existsHasOneThrough) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Validation_AbstractCombinedFieldsValidator) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation, AbstractCombinedFieldsValidator, phalcon, validation_abstractcombinedfieldsvalidator, phalcon_validation_abstractvalidator_ce, NULL, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Validation_AbstractValidator) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Validation, AbstractValidator, phalcon, validation_abstractvalidator, phalcon_validation_abstractvalidator_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_validation_abstractvalidator_ce, SL("template"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_validation_abstractvalidator_ce, SL("templates"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_validation_abstractvalidator_ce, SL("options"), ZEND_ACC_PROTECTED); + phalcon_validation_abstractvalidator_ce->create_object = zephir_init_properties_Phalcon_Validation_AbstractValidator; + + zend_class_implements(phalcon_validation_abstractvalidator_ce, 1, phalcon_validation_validatorinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Validation_AbstractValidator, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *modelName_param = NULL, *modelRelation_param = NULL, entityName, _0, _1, _2, _3; - zval modelName, modelRelation, keyRelation; + zephir_fcall_cache_entry *_1 = NULL; + zval *options_param = NULL, template, _0, _3; + zval options, _2; zval *this_ptr = getThis(); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&modelRelation); - ZVAL_UNDEF(&keyRelation); - ZVAL_UNDEF(&entityName); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&options); ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&template); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(modelName) - Z_PARAM_STR(modelRelation) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &modelName_param, &modelRelation_param); - if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { - zephir_get_strval(&modelName, modelName_param); - } else { - ZEPHIR_INIT_VAR(&modelName); - } - if (UNEXPECTED(Z_TYPE_P(modelRelation_param) != IS_STRING && Z_TYPE_P(modelRelation_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelRelation' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(modelRelation_param) == IS_STRING)) { - zephir_get_strval(&modelRelation, modelRelation_param); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); } else { - ZEPHIR_INIT_VAR(&modelRelation); + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); } - ZEPHIR_INIT_VAR(&entityName); - zephir_fast_strtolower(&entityName, &modelName); - ZEPHIR_INIT_VAR(&_0); - zephir_fast_strtolower(&_0, &modelRelation); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_CONCAT_VSV(&_1, &entityName, "$", &_0); - zephir_get_strval(&keyRelation, &_1); - zephir_read_property(&_2, this_ptr, ZEND_STRL("initialized"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset(&_2, &entityName))) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "load", NULL, 0, &modelName); + ZEPHIR_INIT_VAR(&_2); + zephir_create_array(&_2, 3, 0); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "template"); + zephir_array_fast_append(&_2, &_3); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "message"); + zephir_array_fast_append(&_2, &_3); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_LONG(&_3, 0); + zephir_array_fast_append(&_2, &_3); + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_arr_ce, "whitelist", &_1, 3, &options, &_2); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&template, "current", NULL, 4, &_0); + zephir_check_call_status(); + if (Z_TYPE_P(&template) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "settemplates", NULL, 0, &template); + zephir_check_call_status(); + } else if (Z_TYPE_P(&template) == IS_STRING) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "settemplate", NULL, 0, &template); zephir_check_call_status(); } - zephir_read_property(&_3, this_ptr, ZEND_STRL("hasOneThrough"), PH_NOISY_CC | PH_READONLY); - RETURN_MM_BOOL(zephir_array_isset(&_3, &keyRelation)); + if (zephir_is_true(&template)) { + zephir_array_update_string(&options, SL("message"), &template, PH_COPY | PH_SEPARATE); + zephir_array_unset_string(&options, SL("template"), PH_SEPARATE); + zephir_array_unset_long(&options, 0, PH_SEPARATE); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, existsHasManyToMany) +static PHP_METHOD(Phalcon_Validation_AbstractValidator, getTemplate) { + zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *modelName_param = NULL, *modelRelation_param = NULL, entityName, _0, _1, _2, _3; - zval modelName, modelRelation, keyRelation; + zval *field_param = NULL, _1, _4, _5, _2$$3, _3$$3; + zval field; zval *this_ptr = getThis(); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&modelRelation); - ZVAL_UNDEF(&keyRelation); - ZVAL_UNDEF(&entityName); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&field); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(modelName) - Z_PARAM_STR(modelRelation) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &modelName_param, &modelRelation_param); - if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { - zephir_get_strval(&modelName, modelName_param); + zephir_fetch_params(1, 0, 1, &field_param); + if (!field_param) { + ZEPHIR_INIT_VAR(&field); } else { - ZEPHIR_INIT_VAR(&modelName); - } - if (UNEXPECTED(Z_TYPE_P(modelRelation_param) != IS_STRING && Z_TYPE_P(modelRelation_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelRelation' must be of the type string")); + if (UNEXPECTED(Z_TYPE_P(field_param) != IS_STRING && Z_TYPE_P(field_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'field' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(modelRelation_param) == IS_STRING)) { - zephir_get_strval(&modelRelation, modelRelation_param); + if (EXPECTED(Z_TYPE_P(field_param) == IS_STRING)) { + zephir_get_strval(&field, field_param); } else { - ZEPHIR_INIT_VAR(&modelRelation); + ZEPHIR_INIT_VAR(&field); + } } - ZEPHIR_INIT_VAR(&entityName); - zephir_fast_strtolower(&entityName, &modelName); - ZEPHIR_INIT_VAR(&_0); - zephir_fast_strtolower(&_0, &modelRelation); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_CONCAT_VSV(&_1, &entityName, "$", &_0); - zephir_get_strval(&keyRelation, &_1); - zephir_read_property(&_2, this_ptr, ZEND_STRL("initialized"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset(&_2, &entityName))) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "load", NULL, 0, &modelName); - zephir_check_call_status(); + _0 = !ZEPHIR_IS_NULL(&field); + if (_0) { + zephir_read_property(&_1, this_ptr, ZEND_STRL("templates"), PH_NOISY_CC | PH_READONLY); + _0 = zephir_array_isset(&_1, &field); } - zephir_read_property(&_3, this_ptr, ZEND_STRL("hasManyToMany"), PH_NOISY_CC | PH_READONLY); - RETURN_MM_BOOL(zephir_array_isset(&_3, &keyRelation)); + if (_0) { + zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("templates"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_3$$3, &_2$$3, &field, PH_NOISY | PH_READONLY, "phalcon/Validation/AbstractValidator.zep", 77); + RETURN_CTOR(&_3$$3); + } + zephir_read_property(&_4, this_ptr, ZEND_STRL("template"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_4)) { + RETURN_MM_MEMBER(getThis(), "template"); + } + ZEPHIR_INIT_VAR(&_5); + zephir_get_class(&_5, this_ptr, 0); + ZEPHIR_CONCAT_SV(return_value, "The field :field is not valid for ", &_5); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getRelationByAlias) +static PHP_METHOD(Phalcon_Validation_AbstractValidator, getTemplates) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "templates"); +} + +static PHP_METHOD(Phalcon_Validation_AbstractValidator, setTemplates) { + zval _5$$3, _6$$3, _7$$4, _8$$4; + zend_string *_4; + zend_ulong _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *modelName_param = NULL, *alias_param = NULL, relation, _0, _1; - zval modelName, alias, _2; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *templates_param = NULL, field, template, _0, *_1, _2; + zval templates; zval *this_ptr = getThis(); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&alias); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&relation); + ZVAL_UNDEF(&templates); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&template); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_8$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(modelName) - Z_PARAM_STR(alias) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(templates) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &modelName_param, &alias_param); - if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { - zephir_get_strval(&modelName, modelName_param); - } else { - ZEPHIR_INIT_VAR(&modelName); - } - if (UNEXPECTED(Z_TYPE_P(alias_param) != IS_STRING && Z_TYPE_P(alias_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'alias' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(alias_param) == IS_STRING)) { - zephir_get_strval(&alias, alias_param); - } else { - ZEPHIR_INIT_VAR(&alias); - } + zephir_fetch_params(1, 1, 0, &templates_param); + ZEPHIR_OBS_COPY_OR_DUP(&templates, templates_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("aliases"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_INIT_VAR(&_2); - ZEPHIR_CONCAT_VSV(&_2, &modelName, "$", &alias); - zephir_fast_strtolower(&_1, &_2); - if (!(zephir_array_isset_fetch(&relation, &_0, &_1, 1))) { - RETURN_MM_BOOL(0); + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("templates"), &_0); + zephir_is_iterable(&templates, 0, "phalcon/Validation/AbstractValidator.zep", 116); + if (Z_TYPE_P(&templates) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&templates), _3, _4, _1) + { + ZEPHIR_INIT_NVAR(&field); + if (_4 != NULL) { + ZVAL_STR_COPY(&field, _4); + } else { + ZVAL_LONG(&field, _3); + } + ZEPHIR_INIT_NVAR(&template); + ZVAL_COPY(&template, _1); + zephir_cast_to_string(&_5$$3, &field); + ZEPHIR_CPY_WRT(&field, &_5$$3); + zephir_cast_to_string(&_6$$3, &template); + ZEPHIR_CPY_WRT(&template, &_6$$3); + zephir_update_property_array(this_ptr, SL("templates"), &field, &template); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &templates, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &templates, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&field, &templates, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&template, &templates, "current", NULL, 0); + zephir_check_call_status(); + zephir_cast_to_string(&_7$$4, &field); + ZEPHIR_CPY_WRT(&field, &_7$$4); + zephir_cast_to_string(&_8$$4, &template); + ZEPHIR_CPY_WRT(&template, &_8$$4); + zephir_update_property_array(this_ptr, SL("templates"), &field, &template); + ZEPHIR_CALL_METHOD(NULL, &templates, "next", NULL, 0); + zephir_check_call_status(); + } } - RETURN_CTOR(&relation); + ZEPHIR_INIT_NVAR(&template); + ZEPHIR_INIT_NVAR(&field); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, _mergeFindParameters) +static PHP_METHOD(Phalcon_Validation_AbstractValidator, setTemplate) { - zend_bool _6$$6, _9$$11, _16$$17, _17$$17, _22$$26, _23$$26; - zend_string *_5$$5, *_15$$16; - zend_ulong _4$$5, _14$$16; - zval findParams; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *findParamsOne = NULL, findParamsOne_sub, *findParamsTwo = NULL, findParamsTwo_sub, key, value, _0$$3, _1$$4, *_2$$5, _3$$5, _7$$9, _8$$9, _10$$14, _11$$14, *_12$$16, _13$$16, _18$$20, _19$$20, _20$$24, _21$$24, _24$$29, _25$$29, _26$$33, _27$$33; + zval *template_param = NULL; + zval template; zval *this_ptr = getThis(); - ZVAL_UNDEF(&findParamsOne_sub); - ZVAL_UNDEF(&findParamsTwo_sub); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_7$$9); - ZVAL_UNDEF(&_8$$9); - ZVAL_UNDEF(&_10$$14); - ZVAL_UNDEF(&_11$$14); - ZVAL_UNDEF(&_13$$16); - ZVAL_UNDEF(&_18$$20); - ZVAL_UNDEF(&_19$$20); - ZVAL_UNDEF(&_20$$24); - ZVAL_UNDEF(&_21$$24); - ZVAL_UNDEF(&_24$$29); - ZVAL_UNDEF(&_25$$29); - ZVAL_UNDEF(&_26$$33); - ZVAL_UNDEF(&_27$$33); - ZVAL_UNDEF(&findParams); + ZVAL_UNDEF(&template); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(findParamsOne) - Z_PARAM_ZVAL(findParamsTwo) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(template) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &findParamsOne, &findParamsTwo); - ZEPHIR_SEPARATE_PARAM(findParamsOne); - ZEPHIR_SEPARATE_PARAM(findParamsTwo); - - - ZEPHIR_INIT_VAR(&findParams); - array_init(&findParams); - if (Z_TYPE_P(findParamsOne) == IS_STRING) { - ZEPHIR_INIT_VAR(&_0$$3); - zephir_create_array(&_0$$3, 1, 0); - zephir_array_update_string(&_0$$3, SL("conditions"), findParamsOne, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(findParamsOne, &_0$$3); - } - if (Z_TYPE_P(findParamsTwo) == IS_STRING) { - ZEPHIR_INIT_VAR(&_1$$4); - zephir_create_array(&_1$$4, 1, 0); - zephir_array_update_string(&_1$$4, SL("conditions"), findParamsTwo, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(findParamsTwo, &_1$$4); - } - if (Z_TYPE_P(findParamsOne) == IS_ARRAY) { - zephir_is_iterable(findParamsOne, 0, "phalcon/Mvc/Model/Manager.zep", 1431); - if (Z_TYPE_P(findParamsOne) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(findParamsOne), _4$$5, _5$$5, _2$$5) - { - ZEPHIR_INIT_NVAR(&key); - if (_5$$5 != NULL) { - ZVAL_STR_COPY(&key, _5$$5); - } else { - ZVAL_LONG(&key, _4$$5); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _2$$5); - _6$$6 = ZEPHIR_IS_LONG_IDENTICAL(&key, 0); - if (!(_6$$6)) { - _6$$6 = ZEPHIR_IS_STRING_IDENTICAL(&key, "conditions"); - } - if (_6$$6) { - if (!(zephir_array_isset_long(&findParams, 0))) { - zephir_array_update_long(&findParams, 0, &value, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - } else { - zephir_array_fetch_long(&_7$$9, &findParams, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1425); - ZEPHIR_INIT_NVAR(&_8$$9); - ZEPHIR_CONCAT_SVSVS(&_8$$9, "(", &_7$$9, ") AND (", &value, ")"); - zephir_array_update_long(&findParams, 0, &_8$$9, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - } - } else { - zephir_array_update_zval(&findParams, &key, &value, PH_COPY | PH_SEPARATE); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, findParamsOne, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3$$5, findParamsOne, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3$$5)) { - break; - } - ZEPHIR_CALL_METHOD(&key, findParamsOne, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, findParamsOne, "current", NULL, 0); - zephir_check_call_status(); - _9$$11 = ZEPHIR_IS_LONG_IDENTICAL(&key, 0); - if (!(_9$$11)) { - _9$$11 = ZEPHIR_IS_STRING_IDENTICAL(&key, "conditions"); - } - if (_9$$11) { - if (!(zephir_array_isset_long(&findParams, 0))) { - zephir_array_update_long(&findParams, 0, &value, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - } else { - zephir_array_fetch_long(&_10$$14, &findParams, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1425); - ZEPHIR_INIT_NVAR(&_11$$14); - ZEPHIR_CONCAT_SVSVS(&_11$$14, "(", &_10$$14, ") AND (", &value, ")"); - zephir_array_update_long(&findParams, 0, &_11$$14, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - } - } else { - zephir_array_update_zval(&findParams, &key, &value, PH_COPY | PH_SEPARATE); - } - ZEPHIR_CALL_METHOD(NULL, findParamsOne, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); + zephir_fetch_params(1, 1, 0, &template_param); + if (UNEXPECTED(Z_TYPE_P(template_param) != IS_STRING && Z_TYPE_P(template_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'template' must be of the type string")); + RETURN_MM_NULL(); } - if (Z_TYPE_P(findParamsTwo) == IS_ARRAY) { - zephir_is_iterable(findParamsTwo, 0, "phalcon/Mvc/Model/Manager.zep", 1456); - if (Z_TYPE_P(findParamsTwo) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(findParamsTwo), _14$$16, _15$$16, _12$$16) - { - ZEPHIR_INIT_NVAR(&key); - if (_15$$16 != NULL) { - ZVAL_STR_COPY(&key, _15$$16); - } else { - ZVAL_LONG(&key, _14$$16); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _12$$16); - _16$$17 = ZEPHIR_IS_LONG_IDENTICAL(&key, 0); - if (!(_16$$17)) { - _16$$17 = ZEPHIR_IS_STRING_IDENTICAL(&key, "conditions"); - } - _17$$17 = ZEPHIR_IS_STRING_IDENTICAL(&key, "bind"); - if (!(_17$$17)) { - _17$$17 = ZEPHIR_IS_STRING_IDENTICAL(&key, "bindTypes"); - } - if (_16$$17) { - if (!(zephir_array_isset_long(&findParams, 0))) { - zephir_array_update_long(&findParams, 0, &value, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - } else { - zephir_array_fetch_long(&_18$$20, &findParams, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1439); - ZEPHIR_INIT_NVAR(&_19$$20); - ZEPHIR_CONCAT_SVSVS(&_19$$20, "(", &_18$$20, ") AND (", &value, ")"); - zephir_array_update_long(&findParams, 0, &_19$$20, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - } - } else if (_17$$17) { - if (Z_TYPE_P(&value) == IS_ARRAY) { - if (!(zephir_array_isset(&findParams, &key))) { - zephir_array_update_zval(&findParams, &key, &value, PH_COPY | PH_SEPARATE); - } else { - ZEPHIR_INIT_NVAR(&_20$$24); - zephir_array_fetch(&_21$$24, &findParams, &key, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1447); - zephir_fast_array_merge(&_20$$24, &_21$$24, &value); - zephir_array_update_zval(&findParams, &key, &_20$$24, PH_COPY | PH_SEPARATE); - } - } - } else { - zephir_array_update_zval(&findParams, &key, &value, PH_COPY | PH_SEPARATE); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, findParamsTwo, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_13$$16, findParamsTwo, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_13$$16)) { - break; - } - ZEPHIR_CALL_METHOD(&key, findParamsTwo, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, findParamsTwo, "current", NULL, 0); - zephir_check_call_status(); - _22$$26 = ZEPHIR_IS_LONG_IDENTICAL(&key, 0); - if (!(_22$$26)) { - _22$$26 = ZEPHIR_IS_STRING_IDENTICAL(&key, "conditions"); - } - _23$$26 = ZEPHIR_IS_STRING_IDENTICAL(&key, "bind"); - if (!(_23$$26)) { - _23$$26 = ZEPHIR_IS_STRING_IDENTICAL(&key, "bindTypes"); - } - if (_22$$26) { - if (!(zephir_array_isset_long(&findParams, 0))) { - zephir_array_update_long(&findParams, 0, &value, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - } else { - zephir_array_fetch_long(&_24$$29, &findParams, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1439); - ZEPHIR_INIT_NVAR(&_25$$29); - ZEPHIR_CONCAT_SVSVS(&_25$$29, "(", &_24$$29, ") AND (", &value, ")"); - zephir_array_update_long(&findParams, 0, &_25$$29, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - } - } else if (_23$$26) { - if (Z_TYPE_P(&value) == IS_ARRAY) { - if (!(zephir_array_isset(&findParams, &key))) { - zephir_array_update_zval(&findParams, &key, &value, PH_COPY | PH_SEPARATE); - } else { - ZEPHIR_INIT_NVAR(&_26$$33); - zephir_array_fetch(&_27$$33, &findParams, &key, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1447); - zephir_fast_array_merge(&_26$$33, &_27$$33, &value); - zephir_array_update_zval(&findParams, &key, &_26$$33, PH_COPY | PH_SEPARATE); - } - } - } else { - zephir_array_update_zval(&findParams, &key, &value, PH_COPY | PH_SEPARATE); - } - ZEPHIR_CALL_METHOD(NULL, findParamsTwo, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); + if (EXPECTED(Z_TYPE_P(template_param) == IS_STRING)) { + zephir_get_strval(&template, template_param); + } else { + ZEPHIR_INIT_VAR(&template); } - RETURN_CTOR(&findParams); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("template"), &template); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getRelationRecords) +static PHP_METHOD(Phalcon_Validation_AbstractValidator, getOption) { - zend_string *_20$$11; - zend_ulong _19$$11; - zend_bool reusable = 0, _35$$21; - zval placeholders, conditions, joinConditions, _36, _34$$21; + zend_bool _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_24 = NULL, *_29 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval method, retrieveMethod; - zval *relation, relation_sub, *record, record_sub, *parameters = NULL, parameters_sub, *method_param = NULL, __$null, referencedModel, intermediateModel, intermediateFields, fields, builder, extraParameters, refPosition, field, referencedFields, findParams, findArguments, uniqueKey, records, arguments, rows, firstRow, query, _0, _31, _32, _1$$3, _2$$3, _3$$3, _4$$3, _5$$3, _6$$3, _7$$3, _11$$3, _8$$6, _9$$6, _10$$6, _12$$8, _13$$8, _14$$10, _15$$10, _16$$11, *_17$$11, _18$$11, _21$$12, _22$$12, _23$$12, _25$$12, _26$$13, _27$$13, _28$$13, _30$$13, _33$$16; + zval *key_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, value, fieldValue, _0; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&relation_sub); - ZVAL_UNDEF(&record_sub); - ZVAL_UNDEF(¶meters_sub); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&defaultValue_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&referencedModel); - ZVAL_UNDEF(&intermediateModel); - ZVAL_UNDEF(&intermediateFields); - ZVAL_UNDEF(&fields); - ZVAL_UNDEF(&builder); - ZVAL_UNDEF(&extraParameters); - ZVAL_UNDEF(&refPosition); - ZVAL_UNDEF(&field); - ZVAL_UNDEF(&referencedFields); - ZVAL_UNDEF(&findParams); - ZVAL_UNDEF(&findArguments); - ZVAL_UNDEF(&uniqueKey); - ZVAL_UNDEF(&records); - ZVAL_UNDEF(&arguments); - ZVAL_UNDEF(&rows); - ZVAL_UNDEF(&firstRow); - ZVAL_UNDEF(&query); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&fieldValue); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_31); - ZVAL_UNDEF(&_32); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_11$$3); - ZVAL_UNDEF(&_8$$6); - ZVAL_UNDEF(&_9$$6); - ZVAL_UNDEF(&_10$$6); - ZVAL_UNDEF(&_12$$8); - ZVAL_UNDEF(&_13$$8); - ZVAL_UNDEF(&_14$$10); - ZVAL_UNDEF(&_15$$10); - ZVAL_UNDEF(&_16$$11); - ZVAL_UNDEF(&_18$$11); - ZVAL_UNDEF(&_21$$12); - ZVAL_UNDEF(&_22$$12); - ZVAL_UNDEF(&_23$$12); - ZVAL_UNDEF(&_25$$12); - ZVAL_UNDEF(&_26$$13); - ZVAL_UNDEF(&_27$$13); - ZVAL_UNDEF(&_28$$13); - ZVAL_UNDEF(&_30$$13); - ZVAL_UNDEF(&_33$$16); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&retrieveMethod); - ZVAL_UNDEF(&placeholders); - ZVAL_UNDEF(&conditions); - ZVAL_UNDEF(&joinConditions); - ZVAL_UNDEF(&_36); - ZVAL_UNDEF(&_34$$21); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 4) - Z_PARAM_OBJECT_OF_CLASS(relation, phalcon_mvc_model_relationinterface_ce) - Z_PARAM_OBJECT_OF_CLASS(record, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(key) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(parameters) - Z_PARAM_STR_OR_NULL(method) + Z_PARAM_ZVAL_OR_NULL(defaultValue) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 2, &relation, &record, ¶meters, &method_param); - if (!parameters) { - parameters = ¶meters_sub; - parameters = &__$null; + zephir_fetch_params(1, 1, 1, &key_param, &defaultValue); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); } - if (!method_param) { - ZEPHIR_INIT_VAR(&method); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - zephir_get_strval(&method, method_param); + ZEPHIR_INIT_VAR(&key); + } + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; } - ZEPHIR_INIT_VAR(&placeholders); - array_init(&placeholders); - ZEPHIR_CALL_METHOD(&extraParameters, relation, "getparams", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&referencedModel, relation, "getreferencedmodel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, relation, "isthrough", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_0)) { - ZEPHIR_INIT_VAR(&conditions); - array_init(&conditions); - ZEPHIR_CALL_METHOD(&intermediateModel, relation, "getintermediatemodel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&intermediateFields, relation, "getintermediatefields", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&fields, relation, "getfields", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&fields) == IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not supported", "phalcon/Mvc/Model/Manager.zep", 1508); - return; - } - ZEPHIR_INIT_VAR(&_1$$3); - ZEPHIR_CONCAT_SVSVS(&_1$$3, "[", &intermediateModel, "].[", &intermediateFields, "] = :APR0:"); - zephir_array_append(&conditions, &_1$$3, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1511); - ZEPHIR_CALL_METHOD(&_2$$3, record, "readattribute", NULL, 0, &fields); - zephir_check_call_status(); - zephir_array_update_string(&placeholders, SL("APR0"), &_2$$3, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_VAR(&joinConditions); - array_init(&joinConditions); - ZEPHIR_CALL_METHOD(&intermediateFields, relation, "getintermediatereferencedfields", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&intermediateFields) == IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not supported", "phalcon/Mvc/Model/Manager.zep", 1522); - return; - } - ZEPHIR_CALL_METHOD(&_3$$3, relation, "getreferencedfields", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_4$$3); - ZEPHIR_CONCAT_SVSVSVSVS(&_4$$3, "[", &intermediateModel, "].[", &intermediateFields, "] = [", &referencedModel, "].[", &_3$$3, "]"); - zephir_array_append(&joinConditions, &_4$$3, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1525); - ZEPHIR_CALL_METHOD(&_5$$3, this_ptr, "_mergefindparameters", NULL, 454, &extraParameters, parameters); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&builder, this_ptr, "createbuilder", NULL, 0, &_5$$3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &builder, "from", NULL, 0, &referencedModel); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_6$$3); - zephir_fast_join_str(&_6$$3, SL(" AND "), &joinConditions); - ZEPHIR_CALL_METHOD(NULL, &builder, "innerjoin", NULL, 0, &intermediateModel, &_6$$3); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_7$$3); - zephir_fast_join_str(&_7$$3, SL(" AND "), &conditions); - ZEPHIR_CALL_METHOD(NULL, &builder, "andwhere", NULL, 0, &_7$$3, &placeholders); - zephir_check_call_status(); - if (ZEPHIR_IS_STRING(&method, "count")) { - ZEPHIR_INIT_VAR(&_8$$6); - ZVAL_STRING(&_8$$6, "COUNT(*) AS rowcount"); - ZEPHIR_CALL_METHOD(NULL, &builder, "columns", NULL, 0, &_8$$6); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_9$$6, &builder, "getquery", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&rows, &_9$$6, "execute", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&firstRow, &rows, "getfirst", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_8$$6); - ZVAL_STRING(&_8$$6, "rowcount"); - ZEPHIR_CALL_METHOD(&_10$$6, &firstRow, "readattribute", NULL, 0, &_8$$6); - zephir_check_call_status(); - RETURN_MM_LONG(zephir_get_intval(&_10$$6)); - } - ZEPHIR_CALL_METHOD(&_11$$3, &builder, "getquery", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&query, &_11$$3); - ZEPHIR_CALL_METHOD(&_11$$3, relation, "gettype", NULL, 0); - zephir_check_call_status(); - do { - if (ZEPHIR_IS_LONG(&_11$$3, 4)) { - ZEPHIR_RETURN_CALL_METHOD(&query, "execute", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); - } - if (ZEPHIR_IS_LONG(&_11$$3, 3)) { - ZVAL_BOOL(&_13$$8, 1); - ZEPHIR_CALL_METHOD(&_12$$8, &query, "setuniquerow", NULL, 0, &_13$$8); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&_12$$8, "execute", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Unknown relation type", "phalcon/Mvc/Model/Manager.zep", 1570); - return; - } while(0); - - } - ZEPHIR_INIT_NVAR(&conditions); - array_init(&conditions); - ZEPHIR_CALL_METHOD(&fields, relation, "getfields", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&referencedFields, relation, "getreferencedfields", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&fields) != IS_ARRAY) { - ZEPHIR_INIT_VAR(&_14$$10); - ZEPHIR_CONCAT_SVS(&_14$$10, "[", &referencedFields, "] = :APR0:"); - zephir_array_append(&conditions, &_14$$10, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1587); - ZEPHIR_CALL_METHOD(&_15$$10, record, "readattribute", NULL, 0, &fields); - zephir_check_call_status(); - zephir_array_update_string(&placeholders, SL("APR0"), &_15$$10, PH_COPY | PH_SEPARATE); - } else { - ZEPHIR_CALL_METHOD(&_16$$11, relation, "getfields", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&_16$$11, 0, "phalcon/Mvc/Model/Manager.zep", 1594); - if (Z_TYPE_P(&_16$$11) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_16$$11), _19$$11, _20$$11, _17$$11) - { - ZEPHIR_INIT_NVAR(&refPosition); - if (_20$$11 != NULL) { - ZVAL_STR_COPY(&refPosition, _20$$11); - } else { - ZVAL_LONG(&refPosition, _19$$11); - } - ZEPHIR_INIT_NVAR(&field); - ZVAL_COPY(&field, _17$$11); - zephir_array_fetch(&_21$$12, &referencedFields, &refPosition, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1591); - ZEPHIR_INIT_NVAR(&_22$$12); - ZEPHIR_CONCAT_SVSVS(&_22$$12, "[", &_21$$12, "] = :APR", &refPosition, ":"); - zephir_array_append(&conditions, &_22$$12, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1591); - ZEPHIR_CALL_METHOD(&_23$$12, record, "readattribute", &_24, 0, &field); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_25$$12); - ZEPHIR_CONCAT_SV(&_25$$12, "APR", &refPosition); - zephir_array_update_zval(&placeholders, &_25$$12, &_23$$12, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_16$$11, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_18$$11, &_16$$11, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_18$$11)) { - break; - } - ZEPHIR_CALL_METHOD(&refPosition, &_16$$11, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&field, &_16$$11, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_fetch(&_26$$13, &referencedFields, &refPosition, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1591); - ZEPHIR_INIT_NVAR(&_27$$13); - ZEPHIR_CONCAT_SVSVS(&_27$$13, "[", &_26$$13, "] = :APR", &refPosition, ":"); - zephir_array_append(&conditions, &_27$$13, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1591); - ZEPHIR_CALL_METHOD(&_28$$13, record, "readattribute", &_29, 0, &field); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_30$$13); - ZEPHIR_CONCAT_SV(&_30$$13, "APR", &refPosition); - zephir_array_update_zval(&placeholders, &_30$$13, &_28$$13, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &_16$$11, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&field); - ZEPHIR_INIT_NVAR(&refPosition); - } - ZEPHIR_INIT_VAR(&findParams); - zephir_create_array(&findParams, 3, 0); - ZEPHIR_INIT_VAR(&_31); - zephir_fast_join_str(&_31, SL(" AND "), &conditions); - zephir_array_fast_append(&findParams, &_31); - zephir_array_update_string(&findParams, SL("bind"), &placeholders, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_32, record, "getdi", NULL, 0); - zephir_check_call_status(); - zephir_array_update_string(&findParams, SL("di"), &_32, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&findArguments, this_ptr, "_mergefindparameters", NULL, 454, &findParams, parameters); - zephir_check_call_status(); - if (Z_TYPE_P(&extraParameters) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&findParams, this_ptr, "_mergefindparameters", NULL, 454, &extraParameters, &findArguments); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(&findParams, &findArguments); + zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&value, &_0, &key, 1))) { + RETVAL_ZVAL(defaultValue, 1, 0); + RETURN_MM(); } - if (ZEPHIR_IS_NULL(&method)) { - ZEPHIR_CALL_METHOD(&_33$$16, relation, "gettype", NULL, 0); - zephir_check_call_status(); - do { - if (ZEPHIR_IS_LONG(&_33$$16, 0) || ZEPHIR_IS_LONG(&_33$$16, 1)) { - ZEPHIR_INIT_VAR(&retrieveMethod); - ZVAL_STRING(&retrieveMethod, "findFirst"); - break; - } - if (ZEPHIR_IS_LONG(&_33$$16, 2)) { - ZEPHIR_INIT_NVAR(&retrieveMethod); - ZVAL_STRING(&retrieveMethod, "find"); - break; - } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Unknown relation type", "phalcon/Mvc/Model/Manager.zep", 1632); - return; - } while(0); - - } else { - ZEPHIR_CPY_WRT(&retrieveMethod, &method); + _1 = ZEPHIR_IS_STRING(&key, "attribute"); + if (_1) { + _1 = Z_TYPE_P(&value) == IS_ARRAY; } - ZEPHIR_CALL_METHOD(&_32, relation, "isreusable", NULL, 0); - zephir_check_call_status(); - reusable = zephir_get_boolval(&_32); - if (reusable) { - ZEPHIR_INIT_VAR(&_34$$21); - zephir_create_array(&_34$$21, 2, 0); - zephir_array_fast_append(&_34$$21, &findParams); - zephir_array_fast_append(&_34$$21, &retrieveMethod); - ZEPHIR_INIT_VAR(&uniqueKey); - zephir_unique_key(&uniqueKey, &referencedModel, &_34$$21); - ZEPHIR_CALL_METHOD(&records, this_ptr, "getreusablerecords", NULL, 0, &referencedModel, &uniqueKey); - zephir_check_call_status(); - _35$$21 = Z_TYPE_P(&records) == IS_ARRAY; - if (!(_35$$21)) { - _35$$21 = Z_TYPE_P(&records) == IS_OBJECT; - } - if (_35$$21) { - RETURN_CCTOR(&records); + if (_1) { + if (zephir_array_isset_fetch(&fieldValue, &value, &key, 1)) { + RETURN_CTOR(&fieldValue); } } - ZEPHIR_INIT_VAR(&arguments); - zephir_create_array(&arguments, 1, 0); - zephir_array_fast_append(&arguments, &findParams); - ZEPHIR_INIT_VAR(&_36); - zephir_create_array(&_36, 2, 0); - ZEPHIR_CALL_METHOD(&_32, this_ptr, "load", NULL, 0, &referencedModel); - zephir_check_call_status(); - zephir_array_fast_append(&_36, &_32); - zephir_array_fast_append(&_36, &retrieveMethod); - ZEPHIR_INIT_NVAR(&records); - ZEPHIR_CALL_USER_FUNC_ARRAY(&records, &_36, &arguments); - zephir_check_call_status(); - if (reusable) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setreusablerecords", NULL, 0, &referencedModel, &uniqueKey, &records); - zephir_check_call_status(); - } - RETURN_CCTOR(&records); + RETURN_CTOR(&value); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getReusableRecords) +static PHP_METHOD(Phalcon_Validation_AbstractValidator, hasOption) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *modelName_param = NULL, *key_param = NULL, records, _0; - zval modelName, key; + zval *key_param = NULL, _0; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&modelName); ZVAL_UNDEF(&key); - ZVAL_UNDEF(&records); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(modelName) + ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_STR(key) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &modelName_param, &key_param); - if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { - zephir_get_strval(&modelName, modelName_param); - } else { - ZEPHIR_INIT_VAR(&modelName); - } + zephir_fetch_params(1, 1, 0, &key_param); if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); @@ -142994,44 +127478,30 @@ static PHP_METHOD(Phalcon_Mvc_Model_Manager, getReusableRecords) } - zephir_read_property(&_0, this_ptr, ZEND_STRL("reusable"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&records, &_0, &key, 1))) { - RETURN_MM_NULL(); - } - RETURN_CTOR(&records); + zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + RETURN_MM_BOOL(zephir_array_isset(&_0, &key)); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, setReusableRecords) +static PHP_METHOD(Phalcon_Validation_AbstractValidator, setOption) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *modelName_param = NULL, *key_param = NULL, *records, records_sub; - zval modelName, key; + zval *key_param = NULL, *value, value_sub; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&modelName); ZVAL_UNDEF(&key); - ZVAL_UNDEF(&records_sub); + ZVAL_UNDEF(&value_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(modelName) + ZEND_PARSE_PARAMETERS_START(2, 2) Z_PARAM_STR(key) - Z_PARAM_ZVAL(records) + Z_PARAM_ZVAL(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &modelName_param, &key_param, &records); - if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { - zephir_get_strval(&modelName, modelName_param); - } else { - ZEPHIR_INIT_VAR(&modelName); - } + zephir_fetch_params(1, 2, 0, &key_param, &value); if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); @@ -143043,1224 +127513,765 @@ static PHP_METHOD(Phalcon_Mvc_Model_Manager, setReusableRecords) } - zephir_update_property_array(this_ptr, SL("reusable"), &key, records); + zephir_update_property_array(this_ptr, SL("options"), &key, value); ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, clearReusableObjects) +static PHP_METHOD(Phalcon_Validation_AbstractValidator, validate) +{ +} + +static PHP_METHOD(Phalcon_Validation_AbstractValidator, prepareCode) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *field_param = NULL, code, _0, _1$$3; + zval field; zval *this_ptr = getThis(); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&code); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(field) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &field_param); + if (UNEXPECTED(Z_TYPE_P(field_param) != IS_STRING && Z_TYPE_P(field_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'field' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(field_param) == IS_STRING)) { + zephir_get_strval(&field, field_param); + } else { + ZEPHIR_INIT_VAR(&field); + } + ZEPHIR_INIT_VAR(&_0); - array_init(&_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("reusable"), &_0); - ZEPHIR_MM_RESTORE(); + ZVAL_STRING(&_0, "code"); + ZEPHIR_CALL_METHOD(&code, this_ptr, "getoption", NULL, 0, &_0); + zephir_check_call_status(); + if (Z_TYPE_P(&code) == IS_ARRAY) { + zephir_array_fetch(&_1$$3, &code, &field, PH_NOISY | PH_READONLY, "phalcon/Validation/AbstractValidator.zep", 187); + ZEPHIR_CPY_WRT(&code, &_1$$3); + } + RETURN_CCTOR(&code); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getBelongsToRecords) +static PHP_METHOD(Phalcon_Validation_AbstractValidator, prepareLabel) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *modelName_param = NULL, *modelRelation_param = NULL, *record, record_sub, *parameters = NULL, parameters_sub, *method_param = NULL, __$null, relations, _0, _1, _2, _3, _4; - zval modelName, modelRelation, method, keyRelation; + zval field; + zval *validation, validation_sub, *field_param = NULL, label, _0, _1$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&modelRelation); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&keyRelation); - ZVAL_UNDEF(&record_sub); - ZVAL_UNDEF(¶meters_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&relations); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&label); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&field); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 5) - Z_PARAM_STR(modelName) - Z_PARAM_STR(modelRelation) - Z_PARAM_OBJECT_OF_CLASS(record, phalcon_mvc_modelinterface_ce) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(parameters) - Z_PARAM_STR_OR_NULL(method) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_STR(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 2, &modelName_param, &modelRelation_param, &record, ¶meters, &method_param); - if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { - zephir_get_strval(&modelName, modelName_param); - } else { - ZEPHIR_INIT_VAR(&modelName); - } - if (UNEXPECTED(Z_TYPE_P(modelRelation_param) != IS_STRING && Z_TYPE_P(modelRelation_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelRelation' must be of the type string")); + zephir_fetch_params(1, 2, 0, &validation, &field_param); + if (UNEXPECTED(Z_TYPE_P(field_param) != IS_STRING && Z_TYPE_P(field_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'field' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(modelRelation_param) == IS_STRING)) { - zephir_get_strval(&modelRelation, modelRelation_param); - } else { - ZEPHIR_INIT_VAR(&modelRelation); - } - if (!parameters) { - parameters = ¶meters_sub; - parameters = &__$null; - } - if (!method_param) { - ZEPHIR_INIT_VAR(&method); + if (EXPECTED(Z_TYPE_P(field_param) == IS_STRING)) { + zephir_get_strval(&field, field_param); } else { - zephir_get_strval(&method, method_param); + ZEPHIR_INIT_VAR(&field); } ZEPHIR_INIT_VAR(&_0); - zephir_fast_strtolower(&_0, &modelName); - ZEPHIR_INIT_VAR(&_1); - zephir_fast_strtolower(&_1, &modelRelation); - ZEPHIR_INIT_VAR(&_2); - ZEPHIR_CONCAT_VSV(&_2, &_0, "$", &_1); - zephir_get_strval(&keyRelation, &_2); - ZEPHIR_OBS_VAR(&relations); - zephir_read_property(&_3, this_ptr, ZEND_STRL("hasMany"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&relations, &_3, &keyRelation, 0))) { - RETURN_MM_BOOL(0); - } - zephir_array_fetch_long(&_4, &relations, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1729); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getrelationrecords", NULL, 0, &_4, record, parameters, &method); + ZVAL_STRING(&_0, "label"); + ZEPHIR_CALL_METHOD(&label, this_ptr, "getoption", NULL, 0, &_0); zephir_check_call_status(); - RETURN_MM(); + if (Z_TYPE_P(&label) == IS_ARRAY) { + zephir_array_fetch(&_1$$3, &label, &field, PH_NOISY | PH_READONLY, "phalcon/Validation/AbstractValidator.zep", 203); + ZEPHIR_CPY_WRT(&label, &_1$$3); + } + if (ZEPHIR_IS_EMPTY(&label)) { + ZEPHIR_CALL_METHOD(&label, validation, "getlabel", NULL, 0, &field); + zephir_check_call_status(); + } + RETURN_CCTOR(&label); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getHasManyRecords) +static PHP_METHOD(Phalcon_Validation_AbstractValidator, messageFactory) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *modelName_param = NULL, *modelRelation_param = NULL, *record, record_sub, *parameters = NULL, parameters_sub, *method_param = NULL, __$null, relations, _0, _1, _2, _3, _4; - zval modelName, modelRelation, method, keyRelation; + zval replacements, _1; + zval *validation, validation_sub, *field, field_sub, *replacements_param = NULL, singleField, _0, _2, _3, _4, _5; zval *this_ptr = getThis(); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&modelRelation); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&keyRelation); - ZVAL_UNDEF(&record_sub); - ZVAL_UNDEF(¶meters_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&relations); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&singleField); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&replacements); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 5) - Z_PARAM_STR(modelName) - Z_PARAM_STR(modelRelation) - Z_PARAM_OBJECT_OF_CLASS(record, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(parameters) - Z_PARAM_STR_OR_NULL(method) + Z_PARAM_ARRAY(replacements) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 2, &modelName_param, &modelRelation_param, &record, ¶meters, &method_param); - if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { - zephir_get_strval(&modelName, modelName_param); - } else { - ZEPHIR_INIT_VAR(&modelName); - } - if (UNEXPECTED(Z_TYPE_P(modelRelation_param) != IS_STRING && Z_TYPE_P(modelRelation_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelRelation' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(modelRelation_param) == IS_STRING)) { - zephir_get_strval(&modelRelation, modelRelation_param); - } else { - ZEPHIR_INIT_VAR(&modelRelation); - } - if (!parameters) { - parameters = ¶meters_sub; - parameters = &__$null; - } - if (!method_param) { - ZEPHIR_INIT_VAR(&method); + zephir_fetch_params(1, 2, 1, &validation, &field, &replacements_param); + if (!replacements_param) { + ZEPHIR_INIT_VAR(&replacements); + array_init(&replacements); } else { - zephir_get_strval(&method, method_param); + ZEPHIR_OBS_COPY_OR_DUP(&replacements, replacements_param); } + if (Z_TYPE_P(field) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&singleField); + zephir_fast_join_str(&singleField, SL(", "), field); + } else if (Z_TYPE_P(field) == IS_STRING) { + ZEPHIR_CPY_WRT(&singleField, field); + } else { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_validation_exception_ce, "The field can not be printed", "phalcon/Validation/AbstractValidator.zep", 229); + return; + } ZEPHIR_INIT_VAR(&_0); - zephir_fast_strtolower(&_0, &modelName); ZEPHIR_INIT_VAR(&_1); - zephir_fast_strtolower(&_1, &modelRelation); - ZEPHIR_INIT_VAR(&_2); - ZEPHIR_CONCAT_VSV(&_2, &_0, "$", &_1); - zephir_get_strval(&keyRelation, &_2); - ZEPHIR_OBS_VAR(&relations); - zephir_read_property(&_3, this_ptr, ZEND_STRL("hasMany"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&relations, &_3, &keyRelation, 0))) { - RETURN_MM_BOOL(0); - } - zephir_array_fetch_long(&_4, &relations, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1759); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getrelationrecords", NULL, 0, &_4, record, parameters, &method); + zephir_create_array(&_1, 1, 0); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "preparelabel", NULL, 0, validation, &singleField); + zephir_check_call_status(); + zephir_array_update_string(&_1, SL(":field"), &_2, PH_COPY | PH_SEPARATE); + zephir_fast_array_merge(&_0, &_1, &replacements); + ZEPHIR_CPY_WRT(&replacements, &_0); + object_init_ex(return_value, phalcon_messages_message_ce); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "gettemplate", NULL, 0, &singleField); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_3, "strtr", NULL, 5, &_2, &replacements); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_4); + zephir_get_class(&_4, this_ptr, 0); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "preparecode", NULL, 0, &singleField); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 6, &_3, field, &_4, &_5); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getHasOneRecords) +zend_object *zephir_init_properties_Phalcon_Validation_AbstractValidator(zend_class_entry *class_type) { + zval _0, _2, _1$$3, _3$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *modelName_param = NULL, *modelRelation_param = NULL, *record, record_sub, *parameters = NULL, parameters_sub, *method_param = NULL, __$null, relations, _0, _1, _2, _3, _4; - zval modelName, modelRelation, method, keyRelation; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&modelRelation); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&keyRelation); - ZVAL_UNDEF(&record_sub); - ZVAL_UNDEF(¶meters_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&relations); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 5) - Z_PARAM_STR(modelName) - Z_PARAM_STR(modelRelation) - Z_PARAM_OBJECT_OF_CLASS(record, phalcon_mvc_modelinterface_ce) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(parameters) - Z_PARAM_STR_OR_NULL(method) - ZEND_PARSE_PARAMETERS_END(); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("templates"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("templates"), &_3$$4); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 2, &modelName_param, &modelRelation_param, &record, ¶meters, &method_param); - if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { - zephir_get_strval(&modelName, modelName_param); - } else { - ZEPHIR_INIT_VAR(&modelName); - } - if (UNEXPECTED(Z_TYPE_P(modelRelation_param) != IS_STRING && Z_TYPE_P(modelRelation_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelRelation' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(modelRelation_param) == IS_STRING)) { - zephir_get_strval(&modelRelation, modelRelation_param); - } else { - ZEPHIR_INIT_VAR(&modelRelation); - } - if (!parameters) { - parameters = ¶meters_sub; - parameters = &__$null; - } - if (!method_param) { - ZEPHIR_INIT_VAR(&method); - } else { - zephir_get_strval(&method, method_param); - } - ZEPHIR_INIT_VAR(&_0); - zephir_fast_strtolower(&_0, &modelName); - ZEPHIR_INIT_VAR(&_1); - zephir_fast_strtolower(&_1, &modelRelation); - ZEPHIR_INIT_VAR(&_2); - ZEPHIR_CONCAT_VSV(&_2, &_0, "$", &_1); - zephir_get_strval(&keyRelation, &_2); - ZEPHIR_OBS_VAR(&relations); - zephir_read_property(&_3, this_ptr, ZEND_STRL("hasOne"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&relations, &_3, &keyRelation, 0))) { - RETURN_MM_BOOL(0); - } - zephir_array_fetch_long(&_4, &relations, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Manager.zep", 1789); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getrelationrecords", NULL, 0, &_4, record, parameters, &method); - zephir_check_call_status(); - RETURN_MM(); -} -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getBelongsTo) +ZEPHIR_INIT_CLASS(Phalcon_Validation_AbstractValidatorComposite) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *model, model_sub, relations, _0, _1; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation, AbstractValidatorComposite, phalcon, validation_abstractvalidatorcomposite, phalcon_validation_abstractvalidator_ce, phalcon_validation_abstractvalidatorcomposite_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&relations); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif + zend_declare_property_null(phalcon_validation_abstractvalidatorcomposite_ce, SL("validators"), ZEND_ACC_PROTECTED); + phalcon_validation_abstractvalidatorcomposite_ce->create_object = zephir_init_properties_Phalcon_Validation_AbstractValidatorComposite; + zend_class_implements(phalcon_validation_abstractvalidatorcomposite_ce, 1, phalcon_validation_validatorcompositeinterface_ce); + return SUCCESS; +} - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); +static PHP_METHOD(Phalcon_Validation_AbstractValidatorComposite, getValidators) +{ + zval *this_ptr = getThis(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("belongsToSingle"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - zephir_get_class(&_1, model, 1); - if (!(zephir_array_isset_fetch(&relations, &_0, &_1, 1))) { - array_init(return_value); - RETURN_MM(); - } - RETURN_CTOR(&relations); + + RETURN_MEMBER(getThis(), "validators"); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getHasMany) +static PHP_METHOD(Phalcon_Validation_AbstractValidatorComposite, validate) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *model, model_sub, relations, _0, _1; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *validation, validation_sub, *field, field_sub, validator, _0, _4, *_5, _6, _1$$3, _2$$3, _3$$3, _7$$4, _8$$6; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&relations); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&validator); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_8$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); + zephir_fetch_params(1, 2, 0, &validation, &field); - zephir_read_property(&_0, this_ptr, ZEND_STRL("hasManySingle"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - zephir_get_class(&_1, model, 1); - if (!(zephir_array_isset_fetch(&relations, &_0, &_1, 1))) { - array_init(return_value); - RETURN_MM(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getvalidators", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(zephir_fast_count_int(&_0) == 0)) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_validation_exception_ce); + ZEPHIR_INIT_VAR(&_2$$3); + zephir_get_class(&_2$$3, this_ptr, 0); + ZEPHIR_INIT_VAR(&_3$$3); + ZEPHIR_CONCAT_VS(&_3$$3, &_2$$3, " does not have any validator added"); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_3$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Validation/AbstractValidatorComposite.zep", 33); + ZEPHIR_MM_RESTORE(); + return; } - RETURN_CTOR(&relations); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "getvalidators", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&_4, 0, "phalcon/Validation/AbstractValidatorComposite.zep", 42); + if (Z_TYPE_P(&_4) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_4), _5) + { + ZEPHIR_INIT_NVAR(&validator); + ZVAL_COPY(&validator, _5); + ZEPHIR_CALL_METHOD(&_7$$4, &validator, "validate", NULL, 0, validation, field); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_7$$4)) { + RETURN_MM_BOOL(0); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_4, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_6, &_4, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_6)) { + break; + } + ZEPHIR_CALL_METHOD(&validator, &_4, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_8$$6, &validator, "validate", NULL, 0, validation, field); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_8$$6)) { + RETURN_MM_BOOL(0); + } + ZEPHIR_CALL_METHOD(NULL, &_4, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&validator); + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getHasOne) +zend_object *zephir_init_properties_Phalcon_Validation_AbstractValidatorComposite(zend_class_entry *class_type) { + zval _0, _2, _4, _1$$3, _3$$4, _5$$5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *model, model_sub, relations, _0, _1; - zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&relations); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - ZEND_PARSE_PARAMETERS_END(); + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("templates"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("templates"), &_3$$4); + } + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("validators"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_4) == IS_NULL) { + ZEPHIR_INIT_VAR(&_5$$5); + array_init(&_5$$5); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("validators"), &_5$$5); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); - zephir_read_property(&_0, this_ptr, ZEND_STRL("hasOneSingle"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - zephir_get_class(&_1, model, 1); - if (!(zephir_array_isset_fetch(&relations, &_0, &_1, 1))) { - array_init(return_value); - RETURN_MM(); - } - RETURN_CTOR(&relations); -} -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getHasOneThrough) +ZEPHIR_INIT_CLASS(Phalcon_Validation_Exception) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *model, model_sub, relations, _0, _1; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation, Exception, phalcon, validation_exception, phalcon_exception_ce, NULL, 0); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&relations); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - ZEND_PARSE_PARAMETERS_END(); + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); - zephir_read_property(&_0, this_ptr, ZEND_STRL("hasOneThroughSingle"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - zephir_get_class(&_1, model, 1); - if (!(zephir_array_isset_fetch(&relations, &_0, &_1, 1))) { - array_init(return_value); - RETURN_MM(); - } - RETURN_CTOR(&relations); + +ZEPHIR_INIT_CLASS(Phalcon_Validation_ValidationInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Validation, ValidationInterface, phalcon, validation_validationinterface, phalcon_validation_validationinterface_method_entry); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getHasManyToMany) +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidationInterface, add); +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidationInterface, appendMessage); +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidationInterface, bind); +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidationInterface, getEntity); +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidationInterface, getFilters); +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidationInterface, getLabel); +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidationInterface, getMessages); +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidationInterface, getValidators); +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidationInterface, getValue); +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidationInterface, rule); +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidationInterface, rules); +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidationInterface, setFilters); +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidationInterface, setLabels); +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidationInterface, validate); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Validation_ValidatorCompositeInterface) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *model, model_sub, relations, _0, _1; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Validation, ValidatorCompositeInterface, phalcon, validation_validatorcompositeinterface, phalcon_validation_validatorcompositeinterface_method_entry); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&relations); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - ZEND_PARSE_PARAMETERS_END(); + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidatorCompositeInterface, getValidators); +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidatorCompositeInterface, validate); + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); - zephir_read_property(&_0, this_ptr, ZEND_STRL("hasManyToManySingle"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - zephir_get_class(&_1, model, 1); - if (!(zephir_array_isset_fetch(&relations, &_0, &_1, 1))) { - array_init(return_value); - RETURN_MM(); - } - RETURN_CTOR(&relations); + +ZEPHIR_INIT_CLASS(Phalcon_Validation_ValidatorFactory) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation, ValidatorFactory, phalcon, validation_validatorfactory, phalcon_factory_abstractfactory_ce, phalcon_validation_validatorfactory_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validatorfactory_ce, SL("exception"), "Phalcon\\Validation\\Exception", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getHasOneAndHasMany) +static PHP_METHOD(Phalcon_Validation_ValidatorFactory, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, _0, _1; + zval *services_param = NULL; + zval services; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&services); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(services) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); + zephir_fetch_params(1, 0, 1, &services_param); + if (!services_param) { + ZEPHIR_INIT_VAR(&services); + array_init(&services); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&services, services_param); + } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "gethasone", NULL, 0, model); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "gethasmany", NULL, 0, model); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "init", NULL, 0, &services); zephir_check_call_status(); - zephir_fast_array_merge(return_value, &_0, &_1); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getRelations) +static PHP_METHOD(Phalcon_Validation_ValidatorFactory, newInstance) { - zval allRelations; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *modelName_param = NULL, entityName, relations, relation, _0, _3, _6, _9, _12, *_1$$3, _2$$3, *_4$$6, _5$$6, *_7$$9, _8$$9, *_10$$12, _11$$12, *_13$$15, _14$$15; - zval modelName; + zval *name_param = NULL, definition; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&entityName); - ZVAL_UNDEF(&relations); - ZVAL_UNDEF(&relation); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_8$$9); - ZVAL_UNDEF(&_11$$12); - ZVAL_UNDEF(&_14$$15); - ZVAL_UNDEF(&allRelations); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&definition); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(modelName) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &modelName_param); - if (UNEXPECTED(Z_TYPE_P(modelName_param) != IS_STRING && Z_TYPE_P(modelName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'modelName' must be of the type string")); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(modelName_param) == IS_STRING)) { - zephir_get_strval(&modelName, modelName_param); + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); } else { - ZEPHIR_INIT_VAR(&modelName); + ZEPHIR_INIT_VAR(&name); } - ZEPHIR_INIT_VAR(&entityName); - zephir_fast_strtolower(&entityName, &modelName); - ZEPHIR_INIT_VAR(&allRelations); - array_init(&allRelations); - ZEPHIR_OBS_VAR(&relations); - zephir_read_property(&_0, this_ptr, ZEND_STRL("belongsToSingle"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&relations, &_0, &entityName, 0)) { - zephir_is_iterable(&relations, 0, "phalcon/Mvc/Model/Manager.zep", 1901); - if (Z_TYPE_P(&relations) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relations), _1$$3) - { - ZEPHIR_INIT_NVAR(&relation); - ZVAL_COPY(&relation, _1$$3); - zephir_array_append(&allRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1899); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &relations, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2$$3, &relations, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&relation, &relations, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_append(&allRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1899); - ZEPHIR_CALL_METHOD(NULL, &relations, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&relation); - } - ZEPHIR_OBS_NVAR(&relations); - zephir_read_property(&_3, this_ptr, ZEND_STRL("hasManySingle"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&relations, &_3, &entityName, 0)) { - zephir_is_iterable(&relations, 0, "phalcon/Mvc/Model/Manager.zep", 1910); - if (Z_TYPE_P(&relations) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relations), _4$$6) - { - ZEPHIR_INIT_NVAR(&relation); - ZVAL_COPY(&relation, _4$$6); - zephir_array_append(&allRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1908); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &relations, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5$$6, &relations, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5$$6)) { - break; - } - ZEPHIR_CALL_METHOD(&relation, &relations, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_append(&allRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1908); - ZEPHIR_CALL_METHOD(NULL, &relations, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&relation); - } - ZEPHIR_OBS_NVAR(&relations); - zephir_read_property(&_6, this_ptr, ZEND_STRL("hasOneSingle"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&relations, &_6, &entityName, 0)) { - zephir_is_iterable(&relations, 0, "phalcon/Mvc/Model/Manager.zep", 1919); - if (Z_TYPE_P(&relations) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relations), _7$$9) - { - ZEPHIR_INIT_NVAR(&relation); - ZVAL_COPY(&relation, _7$$9); - zephir_array_append(&allRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1917); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &relations, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_8$$9, &relations, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_8$$9)) { - break; - } - ZEPHIR_CALL_METHOD(&relation, &relations, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_append(&allRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1917); - ZEPHIR_CALL_METHOD(NULL, &relations, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&relation); - } - ZEPHIR_OBS_NVAR(&relations); - zephir_read_property(&_9, this_ptr, ZEND_STRL("hasOneThroughSingle"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&relations, &_9, &entityName, 0)) { - zephir_is_iterable(&relations, 0, "phalcon/Mvc/Model/Manager.zep", 1928); - if (Z_TYPE_P(&relations) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relations), _10$$12) - { - ZEPHIR_INIT_NVAR(&relation); - ZVAL_COPY(&relation, _10$$12); - zephir_array_append(&allRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1926); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &relations, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_11$$12, &relations, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_11$$12)) { - break; - } - ZEPHIR_CALL_METHOD(&relation, &relations, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_append(&allRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1926); - ZEPHIR_CALL_METHOD(NULL, &relations, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&relation); - } - ZEPHIR_OBS_NVAR(&relations); - zephir_read_property(&_12, this_ptr, ZEND_STRL("hasManyToManySingle"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&relations, &_12, &entityName, 0)) { - zephir_is_iterable(&relations, 0, "phalcon/Mvc/Model/Manager.zep", 1937); - if (Z_TYPE_P(&relations) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relations), _13$$15) - { - ZEPHIR_INIT_NVAR(&relation); - ZVAL_COPY(&relation, _13$$15); - zephir_array_append(&allRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1935); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &relations, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_14$$15, &relations, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_14$$15)) { - break; - } - ZEPHIR_CALL_METHOD(&relation, &relations, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_append(&allRelations, &relation, PH_SEPARATE, "phalcon/Mvc/Model/Manager.zep", 1935); - ZEPHIR_CALL_METHOD(NULL, &relations, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&relation); - } - RETURN_CTOR(&allRelations); + ZEPHIR_CALL_METHOD(&definition, this_ptr, "getservice", NULL, 0, &name); + zephir_check_call_status(); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(return_value, &definition); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getRelationsBetween) +static PHP_METHOD(Phalcon_Validation_ValidatorFactory, getAdapters) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *first_param = NULL, *second_param = NULL, relations, _0, _1, _2, _3, _4, _5, _6, _7; - zval first, second, keyRelation; zval *this_ptr = getThis(); - ZVAL_UNDEF(&first); - ZVAL_UNDEF(&second); - ZVAL_UNDEF(&keyRelation); - ZVAL_UNDEF(&relations); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(first) - Z_PARAM_STR(second) - ZEND_PARSE_PARAMETERS_END(); + + + zephir_create_array(return_value, 21, 0); + add_assoc_stringl_ex(return_value, SL("alnum"), SL("Phalcon\\Validation\\Validator\\Alnum")); + add_assoc_stringl_ex(return_value, SL("alpha"), SL("Phalcon\\Validation\\Validator\\Alpha")); + add_assoc_stringl_ex(return_value, SL("between"), SL("Phalcon\\Validation\\Validator\\Between")); + add_assoc_stringl_ex(return_value, SL("callback"), SL("Phalcon\\Validation\\Validator\\Callback")); + add_assoc_stringl_ex(return_value, SL("confirmation"), SL("Phalcon\\Validation\\Validator\\Confirmation")); + add_assoc_stringl_ex(return_value, SL("creditCard"), SL("Phalcon\\Validation\\Validator\\CreditCard")); + add_assoc_stringl_ex(return_value, SL("date"), SL("Phalcon\\Validation\\Validator\\Date")); + add_assoc_stringl_ex(return_value, SL("digit"), SL("Phalcon\\Validation\\Validator\\Digit")); + add_assoc_stringl_ex(return_value, SL("email"), SL("Phalcon\\Validation\\Validator\\Email")); + add_assoc_stringl_ex(return_value, SL("exception"), SL("Phalcon\\Validation\\Validator\\Exception")); + add_assoc_stringl_ex(return_value, SL("exclusionIn"), SL("Phalcon\\Validation\\Validator\\ExclusionIn")); + add_assoc_stringl_ex(return_value, SL("file"), SL("Phalcon\\Validation\\Validator\\File")); + add_assoc_stringl_ex(return_value, SL("identical"), SL("Phalcon\\Validation\\Validator\\Identical")); + add_assoc_stringl_ex(return_value, SL("inclusionIn"), SL("Phalcon\\Validation\\Validator\\InclusionIn")); + add_assoc_stringl_ex(return_value, SL("ip"), SL("Phalcon\\Validation\\Validator\\Ip")); + add_assoc_stringl_ex(return_value, SL("numericality"), SL("Phalcon\\Validation\\Validator\\Numericality")); + add_assoc_stringl_ex(return_value, SL("presenceOf"), SL("Phalcon\\Validation\\Validator\\PresenceOf")); + add_assoc_stringl_ex(return_value, SL("regex"), SL("Phalcon\\Validation\\Validator\\Regex")); + add_assoc_stringl_ex(return_value, SL("stringLength"), SL("Phalcon\\Validation\\Validator\\StringLength")); + add_assoc_stringl_ex(return_value, SL("uniqueness"), SL("Phalcon\\Validation\\Validator\\Uniqueness")); + add_assoc_stringl_ex(return_value, SL("url"), SL("Phalcon\\Validation\\Validator\\Url")); + return; +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &first_param, &second_param); - if (UNEXPECTED(Z_TYPE_P(first_param) != IS_STRING && Z_TYPE_P(first_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'first' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(first_param) == IS_STRING)) { - zephir_get_strval(&first, first_param); - } else { - ZEPHIR_INIT_VAR(&first); - } - if (UNEXPECTED(Z_TYPE_P(second_param) != IS_STRING && Z_TYPE_P(second_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'second' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(second_param) == IS_STRING)) { - zephir_get_strval(&second, second_param); - } else { - ZEPHIR_INIT_VAR(&second); - } - ZEPHIR_INIT_VAR(&_0); - zephir_fast_strtolower(&_0, &first); - ZEPHIR_INIT_VAR(&_1); - zephir_fast_strtolower(&_1, &second); - ZEPHIR_INIT_VAR(&_2); - ZEPHIR_CONCAT_VSV(&_2, &_0, "$", &_1); - zephir_get_strval(&keyRelation, &_2); - ZEPHIR_OBS_VAR(&relations); - zephir_read_property(&_3, this_ptr, ZEND_STRL("belongsTo"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&relations, &_3, &keyRelation, 0)) { - RETURN_CCTOR(&relations); - } - ZEPHIR_OBS_NVAR(&relations); - zephir_read_property(&_4, this_ptr, ZEND_STRL("hasMany"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&relations, &_4, &keyRelation, 0)) { - RETURN_CCTOR(&relations); - } - ZEPHIR_OBS_NVAR(&relations); - zephir_read_property(&_5, this_ptr, ZEND_STRL("hasOne"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&relations, &_5, &keyRelation, 0)) { - RETURN_CCTOR(&relations); - } - ZEPHIR_OBS_NVAR(&relations); - zephir_read_property(&_6, this_ptr, ZEND_STRL("hasOneThrough"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&relations, &_6, &keyRelation, 0)) { - RETURN_CCTOR(&relations); - } - ZEPHIR_OBS_NVAR(&relations); - zephir_read_property(&_7, this_ptr, ZEND_STRL("hasManyToMany"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&relations, &_7, &keyRelation, 0)) { - RETURN_CCTOR(&relations); - } - RETURN_MM_BOOL(0); -} -static PHP_METHOD(Phalcon_Mvc_Model_Manager, createQuery) +ZEPHIR_INIT_CLASS(Phalcon_Validation_ValidatorInterface) { - zval _6; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_3 = NULL; - zval *phql_param = NULL, container, query, _0, _5, _7, _1$$3, _2$$3, _4$$3; - zval phql; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Validation, ValidatorInterface, phalcon, validation_validatorinterface, phalcon_validation_validatorinterface_method_entry); - ZVAL_UNDEF(&phql); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&query); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_6); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(phql) - ZEND_PARSE_PARAMETERS_END(); + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidatorInterface, getOption); +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidatorInterface, hasOption); +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidatorInterface, validate); +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidatorInterface, getTemplate); +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidatorInterface, getTemplates); +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidatorInterface, setTemplates); +ZEPHIR_DOC_METHOD(Phalcon_Validation_ValidatorInterface, setTemplate); + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &phql_param); - if (UNEXPECTED(Z_TYPE_P(phql_param) != IS_STRING && Z_TYPE_P(phql_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'phql' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(phql_param) == IS_STRING)) { - zephir_get_strval(&phql, phql_param); - } else { - ZEPHIR_INIT_VAR(&phql); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "the services related to the ORM"); - ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_mvc_model_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model/Manager.zep", 2004); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_VAR(&_6); - zephir_create_array(&_6, 2, 0); - zephir_array_fast_append(&_6, &phql); - zephir_array_fast_append(&_6, &container); - ZEPHIR_INIT_VAR(&_7); - ZVAL_STRING(&_7, "Phalcon\\Mvc\\Model\\Query"); - ZEPHIR_CALL_METHOD(&_5, &container, "get", NULL, 0, &_7, &_6); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&query, &_5); - zephir_update_property_zval(this_ptr, ZEND_STRL("lastQuery"), &query); - RETURN_CCTOR(&query); + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_Alnum) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator, Alnum, phalcon, validation_validator_alnum, phalcon_validation_abstractvalidator_ce, phalcon_validation_validator_alnum_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_alnum_ce, SL("template"), "Field :field must contain only letters and numbers", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, executeQuery) +static PHP_METHOD(Phalcon_Validation_Validator_Alnum, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *phql_param = NULL, *placeholders = NULL, placeholders_sub, *types = NULL, types_sub, __$null, query; - zval phql; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&phql); - ZVAL_UNDEF(&placeholders_sub); - ZVAL_UNDEF(&types_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&query); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(phql) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(placeholders) - Z_PARAM_ZVAL_OR_NULL(types) + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &phql_param, &placeholders, &types); - if (UNEXPECTED(Z_TYPE_P(phql_param) != IS_STRING && Z_TYPE_P(phql_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'phql' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(phql_param) == IS_STRING)) { - zephir_get_strval(&phql, phql_param); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); } else { - ZEPHIR_INIT_VAR(&phql); - } - if (!placeholders) { - placeholders = &placeholders_sub; - placeholders = &__$null; - } - if (!types) { - types = &types_sub; - types = &__$null; + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); } - ZEPHIR_CALL_METHOD(&query, this_ptr, "createquery", NULL, 0, &phql); - zephir_check_call_status(); - if (Z_TYPE_P(placeholders) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(NULL, &query, "setbindparams", NULL, 0, placeholders); - zephir_check_call_status(); - } - if (Z_TYPE_P(types) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(NULL, &query, "setbindtypes", NULL, 0, types); - zephir_check_call_status(); - } - ZEPHIR_RETURN_CALL_METHOD(&query, "execute", NULL, 0); + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_alnum_ce, getThis(), "__construct", &_0, 0, &options); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, createBuilder) +static PHP_METHOD(Phalcon_Validation_Validator_Alnum, validate) { - zval _6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_3 = NULL; - zval *params = NULL, params_sub, __$null, container, _0, _5, _7, _1$$3, _2$$3, _4$$3; + zval *validation, validation_sub, *field, field_sub, value, _0, _1$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(¶ms_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&container); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&value); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_7); ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(params) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, ¶ms); - if (!params) { - params = ¶ms_sub; - params = &__$null; - } + zephir_fetch_params(1, 2, 0, &validation, &field); - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "the services related to the ORM"); - ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_mvc_model_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_0, "ctype_alnum", NULL, 0, &value); + zephir_check_call_status(); + if (!(zephir_is_true(&_0))) { + ZEPHIR_CALL_METHOD(&_1$$3, this_ptr, "messagefactory", NULL, 0, validation, field); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_1$$3); zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model/Manager.zep", 2083); - ZEPHIR_MM_RESTORE(); - return; + RETURN_MM_BOOL(0); } - ZEPHIR_INIT_VAR(&_6); - zephir_create_array(&_6, 2, 0); - zephir_array_fast_append(&_6, params); - zephir_array_fast_append(&_6, &container); - ZEPHIR_INIT_VAR(&_7); - ZVAL_STRING(&_7, "Phalcon\\Mvc\\Model\\Query\\Builder"); - ZEPHIR_CALL_METHOD(&_5, &container, "get", NULL, 0, &_7, &_6); - zephir_check_call_status(); - RETURN_CCTOR(&_5); + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, getLastQuery) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "lastQuery"); +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_Alpha) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator, Alpha, phalcon, validation_validator_alpha, phalcon_validation_abstractvalidator_ce, phalcon_validation_validator_alpha_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_alpha_ce, SL("template"), "Field :field must contain only letters", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Manager, __destruct) +static PHP_METHOD(Phalcon_Validation_Validator_Alpha, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); + ZVAL_UNDEF(&options); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } - phalcon_orm_destroy_cache(); - ZEPHIR_CALL_CE_STATIC(NULL, phalcon_mvc_model_query_ce, "clean", &_0, 0); + + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_alpha_ce, getThis(), "__construct", &_0, 0, &options); zephir_check_call_status(); ZEPHIR_MM_RESTORE(); } -zend_object *zephir_init_properties_Phalcon_Mvc_Model_Manager(zend_class_entry *class_type) +static PHP_METHOD(Phalcon_Validation_Validator_Alpha, validate) { - zval _0, _2, _4, _6, _8, _10, _12, _14, _16, _18, _20, _22, _24, _26, _28, _30, _32, _34, _36, _38, _40, _42, _1$$3, _3$$4, _5$$5, _7$$6, _9$$7, _11$$8, _13$$9, _15$$10, _17$$11, _19$$12, _21$$13, _23$$14, _25$$15, _27$$16, _29$$17, _31$$18, _33$$19, _35$$20, _37$$21, _39$$22, _41$$23, _43$$24; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_16); - ZVAL_UNDEF(&_18); - ZVAL_UNDEF(&_20); - ZVAL_UNDEF(&_22); - ZVAL_UNDEF(&_24); - ZVAL_UNDEF(&_26); - ZVAL_UNDEF(&_28); - ZVAL_UNDEF(&_30); - ZVAL_UNDEF(&_32); - ZVAL_UNDEF(&_34); - ZVAL_UNDEF(&_36); - ZVAL_UNDEF(&_38); - ZVAL_UNDEF(&_40); - ZVAL_UNDEF(&_42); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_9$$7); - ZVAL_UNDEF(&_11$$8); - ZVAL_UNDEF(&_13$$9); - ZVAL_UNDEF(&_15$$10); - ZVAL_UNDEF(&_17$$11); - ZVAL_UNDEF(&_19$$12); - ZVAL_UNDEF(&_21$$13); - ZVAL_UNDEF(&_23$$14); - ZVAL_UNDEF(&_25$$15); - ZVAL_UNDEF(&_27$$16); - ZVAL_UNDEF(&_29$$17); - ZVAL_UNDEF(&_31$$18); - ZVAL_UNDEF(&_33$$19); - ZVAL_UNDEF(&_35$$20); - ZVAL_UNDEF(&_37$$21); - ZVAL_UNDEF(&_39$$22); - ZVAL_UNDEF(&_41$$23); - ZVAL_UNDEF(&_43$$24); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("reusable"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("reusable"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("writeConnectionServices"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("writeConnectionServices"), &_3$$4); - } - zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("schemas"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_4) == IS_NULL) { - ZEPHIR_INIT_VAR(&_5$$5); - array_init(&_5$$5); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("schemas"), &_5$$5); - } - zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("sources"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_6) == IS_NULL) { - ZEPHIR_INIT_VAR(&_7$$6); - array_init(&_7$$6); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("sources"), &_7$$6); - } - zephir_read_property_ex(&_8, this_ptr, ZEND_STRL("readConnectionServices"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_8) == IS_NULL) { - ZEPHIR_INIT_VAR(&_9$$7); - array_init(&_9$$7); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("readConnectionServices"), &_9$$7); - } - zephir_read_property_ex(&_10, this_ptr, ZEND_STRL("modelVisibility"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_10) == IS_NULL) { - ZEPHIR_INIT_VAR(&_11$$8); - array_init(&_11$$8); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("modelVisibility"), &_11$$8); - } - zephir_read_property_ex(&_12, this_ptr, ZEND_STRL("keepSnapshots"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_12) == IS_NULL) { - ZEPHIR_INIT_VAR(&_13$$9); - array_init(&_13$$9); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("keepSnapshots"), &_13$$9); - } - zephir_read_property_ex(&_14, this_ptr, ZEND_STRL("initialized"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_14) == IS_NULL) { - ZEPHIR_INIT_VAR(&_15$$10); - array_init(&_15$$10); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("initialized"), &_15$$10); - } - zephir_read_property_ex(&_16, this_ptr, ZEND_STRL("hasOneThroughSingle"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_16) == IS_NULL) { - ZEPHIR_INIT_VAR(&_17$$11); - array_init(&_17$$11); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("hasOneThroughSingle"), &_17$$11); - } - zephir_read_property_ex(&_18, this_ptr, ZEND_STRL("hasOneThrough"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_18) == IS_NULL) { - ZEPHIR_INIT_VAR(&_19$$12); - array_init(&_19$$12); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("hasOneThrough"), &_19$$12); - } - zephir_read_property_ex(&_20, this_ptr, ZEND_STRL("hasOneSingle"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_20) == IS_NULL) { - ZEPHIR_INIT_VAR(&_21$$13); - array_init(&_21$$13); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("hasOneSingle"), &_21$$13); - } - zephir_read_property_ex(&_22, this_ptr, ZEND_STRL("hasOne"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_22) == IS_NULL) { - ZEPHIR_INIT_VAR(&_23$$14); - array_init(&_23$$14); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("hasOne"), &_23$$14); - } - zephir_read_property_ex(&_24, this_ptr, ZEND_STRL("hasManyToManySingle"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_24) == IS_NULL) { - ZEPHIR_INIT_VAR(&_25$$15); - array_init(&_25$$15); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("hasManyToManySingle"), &_25$$15); - } - zephir_read_property_ex(&_26, this_ptr, ZEND_STRL("hasManyToMany"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_26) == IS_NULL) { - ZEPHIR_INIT_VAR(&_27$$16); - array_init(&_27$$16); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("hasManyToMany"), &_27$$16); - } - zephir_read_property_ex(&_28, this_ptr, ZEND_STRL("hasManySingle"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_28) == IS_NULL) { - ZEPHIR_INIT_VAR(&_29$$17); - array_init(&_29$$17); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("hasManySingle"), &_29$$17); - } - zephir_read_property_ex(&_30, this_ptr, ZEND_STRL("hasMany"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_30) == IS_NULL) { - ZEPHIR_INIT_VAR(&_31$$18); - array_init(&_31$$18); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("hasMany"), &_31$$18); - } - zephir_read_property_ex(&_32, this_ptr, ZEND_STRL("dynamicUpdate"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_32) == IS_NULL) { - ZEPHIR_INIT_VAR(&_33$$19); - array_init(&_33$$19); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("dynamicUpdate"), &_33$$19); - } - zephir_read_property_ex(&_34, this_ptr, ZEND_STRL("customEventsManager"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_34) == IS_NULL) { - ZEPHIR_INIT_VAR(&_35$$20); - array_init(&_35$$20); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("customEventsManager"), &_35$$20); - } - zephir_read_property_ex(&_36, this_ptr, ZEND_STRL("belongsToSingle"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_36) == IS_NULL) { - ZEPHIR_INIT_VAR(&_37$$21); - array_init(&_37$$21); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("belongsToSingle"), &_37$$21); - } - zephir_read_property_ex(&_38, this_ptr, ZEND_STRL("belongsTo"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_38) == IS_NULL) { - ZEPHIR_INIT_VAR(&_39$$22); - array_init(&_39$$22); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("belongsTo"), &_39$$22); - } - zephir_read_property_ex(&_40, this_ptr, ZEND_STRL("behaviors"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_40) == IS_NULL) { - ZEPHIR_INIT_VAR(&_41$$23); - array_init(&_41$$23); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("behaviors"), &_41$$23); - } - zephir_read_property_ex(&_42, this_ptr, ZEND_STRL("aliases"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_42) == IS_NULL) { - ZEPHIR_INIT_VAR(&_43$$24); - array_init(&_43$$24); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("aliases"), &_43$$24); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *validation, validation_sub, *field, field_sub, value, _0, _1, _2, _3, _4$$3; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &validation, &field); - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_ManagerInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model, ManagerInterface, phalcon, mvc_model_managerinterface, phalcon_mvc_model_managerinterface_method_entry); - - return SUCCESS; + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "/[^[:alpha:]]/imu"); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "/[^[:alpha:]]/imu"); + zephir_preg_match(&_2, &_3, &value, &_0, 0, 0 , 0 ); + if (zephir_is_true(&_2)) { + ZEPHIR_CALL_METHOD(&_4$$3, this_ptr, "messagefactory", NULL, 0, validation, field); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_4$$3); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + RETURN_MM_BOOL(1); } -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, addBehavior); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, addBelongsTo); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, addHasMany); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, addHasOne); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, addHasOneThrough); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, addHasManyToMany); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, createBuilder); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, createQuery); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, executeQuery); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, existsBelongsTo); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, existsHasMany); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, existsHasOne); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, existsHasOneThrough); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, existsHasManyToMany); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getBelongsTo); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getBelongsToRecords); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getHasMany); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getHasManyRecords); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getHasManyToMany); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getHasOne); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getHasOneThrough); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getHasOneAndHasMany); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getHasOneRecords); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getLastInitialized); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getLastQuery); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getModelSchema); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getModelSource); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getReadConnection); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getReadConnectionService); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getRelationByAlias); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getRelationRecords); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getRelations); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getRelationsBetween); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getWriteConnection); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, getWriteConnectionService); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, load); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, initialize); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, isInitialized); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, isKeepingSnapshots); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, isUsingDynamicUpdate); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, isVisibleModelProperty); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, keepSnapshots); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, missingMethod); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, notifyEvent); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, setConnectionService); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, setReadConnectionService); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, setModelSchema); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, setModelSource); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, setWriteConnectionService); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, useDynamicUpdate); @@ -144271,1327 +128282,2009 @@ ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ManagerInterface, useDynamicUpdate); -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_MetaData) +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_Between) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model, MetaData, phalcon, mvc_model_metadata, phalcon_mvc_model_metadata_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_null(phalcon_mvc_model_metadata_ce, SL("adapter"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_metadata_ce, SL("columnMap"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_metadata_ce, SL("container"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_metadata_ce, SL("metaData"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_metadata_ce, SL("strategy"), ZEND_ACC_PROTECTED); - phalcon_mvc_model_metadata_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_MetaData; - zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_ATTRIBUTES"), 0); - - zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_AUTOMATIC_DEFAULT_INSERT"), 10); - - zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_AUTOMATIC_DEFAULT_UPDATE"), 11); - - zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_COLUMN_MAP"), 0); - - zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_DATE_AT"), 6); - - zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_DATE_IN"), 7); - - zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_DATA_TYPES"), 4); - - zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_DATA_TYPES_BIND"), 9); - - zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_DATA_TYPES_NUMERIC"), 5); - - zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_DEFAULT_VALUES"), 12); - - zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_EMPTY_STRING_VALUES"), 13); - - zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_IDENTITY_COLUMN"), 8); - - zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_NON_PRIMARY_KEY"), 2); - - zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_NOT_NULL"), 3); - - zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_PRIMARY_KEY"), 1); - - zephir_declare_class_constant_long(phalcon_mvc_model_metadata_ce, SL("MODELS_REVERSE_COLUMN_MAP"), 1); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator, Between, phalcon, validation_validator_between, phalcon_validation_abstractvalidator_ce, phalcon_validation_validator_between_method_entry, 0); - zend_class_implements(phalcon_mvc_model_metadata_ce, 1, phalcon_di_injectionawareinterface_ce); - zend_class_implements(phalcon_mvc_model_metadata_ce, 1, phalcon_mvc_model_metadatainterface_ce); + zend_declare_property_string(phalcon_validation_validator_between_ce, SL("template"), "Field :field must be within the range of :min to :max", ZEND_ACC_PROTECTED); return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getAttributes) +static PHP_METHOD(Phalcon_Validation_Validator_Between, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, data, _0; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } - ZVAL_LONG(&_0, 0); - ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_between_ce, getThis(), "__construct", &_0, 0, &options); zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 102); - return; - } - RETURN_CCTOR(&data); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getAutomaticCreateAttributes) +static PHP_METHOD(Phalcon_Validation_Validator_Between, validate) { + zend_bool _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, data, _0; + zval *validation, validation_sub, *field, field_sub, value, minimum, maximum, replacePairs, _0, _1$$3, _2$$4, _4$$5; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&data); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&minimum); + ZVAL_UNDEF(&maximum); + ZVAL_UNDEF(&replacePairs); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_4$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); + zephir_fetch_params(1, 2, 0, &validation, &field); - ZVAL_LONG(&_0, 10); - ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 129); - return; + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "minimum"); + ZEPHIR_CALL_METHOD(&minimum, this_ptr, "getoption", NULL, 0, &_0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "maximum"); + ZEPHIR_CALL_METHOD(&maximum, this_ptr, "getoption", NULL, 0, &_0); + zephir_check_call_status(); + if (Z_TYPE_P(&minimum) == IS_ARRAY) { + zephir_array_fetch(&_1$$3, &minimum, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/Between.zep", 94); + ZEPHIR_CPY_WRT(&minimum, &_1$$3); } - RETURN_CCTOR(&data); + if (Z_TYPE_P(&maximum) == IS_ARRAY) { + zephir_array_fetch(&_2$$4, &maximum, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/Between.zep", 98); + ZEPHIR_CPY_WRT(&maximum, &_2$$4); + } + _3 = ZEPHIR_LT(&value, &minimum); + if (!(_3)) { + _3 = ZEPHIR_GT(&value, &maximum); + } + if (_3) { + ZEPHIR_INIT_VAR(&replacePairs); + zephir_create_array(&replacePairs, 2, 0); + zephir_array_update_string(&replacePairs, SL(":min"), &minimum, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&replacePairs, SL(":max"), &maximum, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_4$$5, this_ptr, "messagefactory", NULL, 0, validation, field, &replacePairs); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_4$$5); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getAutomaticUpdateAttributes) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, data, _0; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); - ZVAL_LONG(&_0, 11); - ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 156); - return; - } - RETURN_CCTOR(&data); + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_Callback) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator, Callback, phalcon, validation_validator_callback, phalcon_validation_abstractvalidator_ce, phalcon_validation_validator_callback_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_callback_ce, SL("template"), "Field :field must match the callback function", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getBindTypes) +static PHP_METHOD(Phalcon_Validation_Validator_Callback, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, data, _0; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } - ZVAL_LONG(&_0, 9); - ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_callback_ce, getThis(), "__construct", &_0, 0, &options); zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 183); - return; - } - RETURN_CCTOR(&data); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getColumnMap) +static PHP_METHOD(Phalcon_Validation_Validator_Callback, validate) { - zend_bool _1; + zend_bool _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, data, _0; + zval *validation, validation_sub, *field, field_sub, callback, returnedValue, data, _0, _2$$6; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&callback); + ZVAL_UNDEF(&returnedValue); ZVAL_UNDEF(&data); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); + zephir_fetch_params(1, 2, 0, &validation, &field); - ZVAL_LONG(&_0, 0); - ZEPHIR_CALL_METHOD(&data, this_ptr, "readcolumnmapindex", NULL, 27, model, &_0); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "callback"); + ZEPHIR_CALL_METHOD(&callback, this_ptr, "getoption", NULL, 0, &_0); zephir_check_call_status(); - _1 = Z_TYPE_P(&data) != IS_NULL; - if (_1) { - _1 = Z_TYPE_P(&data) != IS_ARRAY; - } - if (UNEXPECTED(_1)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 207); + if (zephir_is_callable(&callback)) { + ZEPHIR_CALL_METHOD(&data, validation, "getentity", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_EMPTY(&data)) { + ZEPHIR_CALL_METHOD(&data, validation, "getdata", NULL, 0); + zephir_check_call_status(); + } + ZEPHIR_CALL_FUNCTION(&returnedValue, "call_user_func", NULL, 255, &callback, &data); + zephir_check_call_status(); + _1$$3 = Z_TYPE_P(&returnedValue) == IS_OBJECT; + if (_1$$3) { + _1$$3 = zephir_instance_of_ev(&returnedValue, phalcon_validation_validatorinterface_ce); + } + if (((Z_TYPE_P(&returnedValue) == IS_TRUE || Z_TYPE_P(&returnedValue) == IS_FALSE) == 1)) { + if (!(zephir_is_true(&returnedValue))) { + ZEPHIR_CALL_METHOD(&_2$$6, this_ptr, "messagefactory", NULL, 0, validation, field); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_2$$6); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + RETURN_MM_BOOL(1); + } else if (_1$$3) { + ZEPHIR_RETURN_CALL_METHOD(&returnedValue, "validate", NULL, 0, validation, field); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_validation_validator_exception_ce, "Callback must return bool or Phalcon\\Validation\\Validator object", "phalcon/Validation/Validator/Callback.zep", 115); return; } - RETURN_CCTOR(&data); + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getDefaultValues) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, data, _0; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); - ZVAL_LONG(&_0, 12); - ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 231); - return; - } - RETURN_CCTOR(&data); + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_Confirmation) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator, Confirmation, phalcon, validation_validator_confirmation, phalcon_validation_abstractvalidator_ce, phalcon_validation_validator_confirmation_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_confirmation_ce, SL("template"), "Field :field must be the same as :with", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getDataTypes) +static PHP_METHOD(Phalcon_Validation_Validator_Confirmation, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, data, _0; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } - ZVAL_LONG(&_0, 4); - ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_confirmation_ce, getThis(), "__construct", &_0, 0, &options); zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 255); - return; - } - RETURN_CCTOR(&data); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getDataTypesNumeric) +static PHP_METHOD(Phalcon_Validation_Validator_Confirmation, validate) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, data, _0; + zval *validation, validation_sub, *field, field_sub, fieldWith, value, valueWith, labelWith, replacePairs, _0, _2, _1$$3, _3$$4, _5$$4, _4$$5; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&data); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&fieldWith); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&valueWith); + ZVAL_UNDEF(&labelWith); + ZVAL_UNDEF(&replacePairs); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_4$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); + zephir_fetch_params(1, 2, 0, &validation, &field); - ZVAL_LONG(&_0, 5); - ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "with"); + ZEPHIR_CALL_METHOD(&fieldWith, this_ptr, "getoption", NULL, 0, &_0); zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 282); - return; + if (Z_TYPE_P(&fieldWith) == IS_ARRAY) { + zephir_array_fetch(&_1$$3, &fieldWith, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/Confirmation.zep", 88); + ZEPHIR_CPY_WRT(&fieldWith, &_1$$3); } - RETURN_CCTOR(&data); + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&valueWith, validation, "getvalue", NULL, 0, &fieldWith); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "compare", NULL, 0, &value, &valueWith); + zephir_check_call_status(); + if (!(zephir_is_true(&_2))) { + ZEPHIR_INIT_VAR(&_3$$4); + ZVAL_STRING(&_3$$4, "labelWith"); + ZEPHIR_CALL_METHOD(&labelWith, this_ptr, "getoption", NULL, 0, &_3$$4); + zephir_check_call_status(); + if (Z_TYPE_P(&labelWith) == IS_ARRAY) { + zephir_array_fetch(&_4$$5, &labelWith, &fieldWith, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/Confirmation.zep", 98); + ZEPHIR_CPY_WRT(&labelWith, &_4$$5); + } + if (ZEPHIR_IS_EMPTY(&labelWith)) { + ZEPHIR_CALL_METHOD(&labelWith, validation, "getlabel", NULL, 0, &fieldWith); + zephir_check_call_status(); + } + ZEPHIR_INIT_VAR(&replacePairs); + zephir_create_array(&replacePairs, 1, 0); + zephir_array_update_string(&replacePairs, SL(":with"), &labelWith, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_5$$4, this_ptr, "messagefactory", NULL, 0, validation, field, &replacePairs); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_5$$4); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getDI) +static PHP_METHOD(Phalcon_Validation_Validator_Confirmation, compare) { - zval container, _0, _1$$3, _2$$3, _4$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_3 = NULL; + zval *a_param = NULL, *b_param = NULL, _0, _1, _2, _6, _3$$3, _4$$3, _5$$3; + zval a, b; zval *this_ptr = getThis(); - ZVAL_UNDEF(&container); + ZVAL_UNDEF(&a); + ZVAL_UNDEF(&b); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_3$$3); ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(a) + Z_PARAM_STR(b) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &a_param, &b_param); + zephir_get_strval(&a, a_param); + zephir_get_strval(&b, b_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - if (Z_TYPE_P(&container) != IS_OBJECT) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "internal services"); - ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_mvc_model_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); + + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "ignoreCase"); + ZVAL_BOOL(&_2, 0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getoption", NULL, 0, &_1, &_2); + zephir_check_call_status(); + if (zephir_is_true(&_0)) { + if (UNEXPECTED(!((zephir_function_exists_ex(ZEND_STRL("mb_strtolower")) == SUCCESS)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_validation_exception_ce, "Extension 'mbstring' is required", "phalcon/Validation/Validator/Confirmation.zep", 129); + return; + } + ZEPHIR_INIT_VAR(&_3$$3); + ZVAL_STRING(&_3$$3, "utf-8"); + ZEPHIR_CALL_FUNCTION(&_4$$3, "mb_strtolower", NULL, 25, &a, &_3$$3); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); + zephir_get_strval(&a, &_4$$3); + ZEPHIR_INIT_NVAR(&_3$$3); + ZVAL_STRING(&_3$$3, "utf-8"); + ZEPHIR_CALL_FUNCTION(&_5$$3, "mb_strtolower", NULL, 25, &b, &_3$$3); zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model/MetaData.zep", 300); - ZEPHIR_MM_RESTORE(); - return; + zephir_get_strval(&b, &_5$$3); } - RETURN_CCTOR(&container); + ZEPHIR_CALL_FUNCTION(&_6, "strcmp", NULL, 389, &a, &b); + zephir_check_call_status(); + RETURN_MM_BOOL(ZEPHIR_IS_LONG_IDENTICAL(&_6, 0)); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getEmptyStringAttributes) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, data, _0; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); - ZVAL_LONG(&_0, 13); - ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 327); - return; - } - RETURN_CCTOR(&data); + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_CreditCard) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator, CreditCard, phalcon, validation_validator_creditcard, phalcon_validation_abstractvalidator_ce, phalcon_validation_validator_creditcard_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_creditcard_ce, SL("template"), "Field :field is not valid for a credit card number", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getIdentityField) +static PHP_METHOD(Phalcon_Validation_Validator_CreditCard, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, _0; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } - ZVAL_LONG(&_0, 8); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "readmetadataindex", NULL, 26, model, &_0); + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_creditcard_ce, getThis(), "__construct", &_0, 0, &options); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getNonPrimaryKeyAttributes) +static PHP_METHOD(Phalcon_Validation_Validator_CreditCard, validate) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, data, _0; + zval *validation, validation_sub, *field, field_sub, value, valid, _0$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&valid); + ZVAL_UNDEF(&_0$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); + zephir_fetch_params(1, 2, 0, &validation, &field); - ZVAL_LONG(&_0, 2); - ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 367); - return; + ZEPHIR_CALL_METHOD(&valid, this_ptr, "verifybyluhnalgorithm", NULL, 0, &value); + zephir_check_call_status(); + if (!(zephir_is_true(&valid))) { + ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "messagefactory", NULL, 0, validation, field); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_0$$3); + zephir_check_call_status(); + RETURN_MM_BOOL(0); } - RETURN_CCTOR(&data); + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getNotNullAttributes) +static PHP_METHOD(Phalcon_Validation_Validator_CreditCard, verifyByLuhnAlgorithm) { + zend_string *_7; + zend_ulong _6; + zval digits, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, data, _0; + zval *number_param = NULL, digit, position, hash, result, _0, _2, _3, *_4, _5, _10, _8$$3, _9$$4; + zval number; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&data); + ZVAL_UNDEF(&number); + ZVAL_UNDEF(&digit); + ZVAL_UNDEF(&position); + ZVAL_UNDEF(&hash); + ZVAL_UNDEF(&result); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_8$$3); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&digits); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_STR(number) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); + zephir_fetch_params(1, 1, 0, &number_param); + zephir_get_strval(&number, number_param); - ZVAL_LONG(&_0, 3); - ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); + ZEPHIR_INIT_VAR(&hash); + ZVAL_STRING(&hash, ""); + ZEPHIR_CALL_FUNCTION(&_0, "str_split", NULL, 108, &number); zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 391); - return; + zephir_get_arrval(&_1, &_0); + ZEPHIR_CPY_WRT(&digits, &_1); + ZEPHIR_CALL_FUNCTION(&_3, "array_reverse", NULL, 0, &digits); + zephir_check_call_status(); + zephir_is_iterable(&_3, 0, "phalcon/Validation/Validator/CreditCard.zep", 106); + if (Z_TYPE_P(&_3) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_3), _6, _7, _4) + { + ZEPHIR_INIT_NVAR(&position); + if (_7 != NULL) { + ZVAL_STR_COPY(&position, _7); + } else { + ZVAL_LONG(&position, _6); + } + ZEPHIR_INIT_NVAR(&digit); + ZVAL_COPY(&digit, _4); + ZEPHIR_INIT_NVAR(&_8$$3); + if (zephir_safe_mod_zval_long(&position, 2)) { + ZEPHIR_INIT_NVAR(&_8$$3); + ZVAL_LONG(&_8$$3, (zephir_get_numberval(&digit) * 2)); + } else { + ZEPHIR_CPY_WRT(&_8$$3, &digit); + } + zephir_concat_self(&hash, &_8$$3); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_3, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_5, &_3, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_5)) { + break; + } + ZEPHIR_CALL_METHOD(&position, &_3, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&digit, &_3, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_9$$4); + if (zephir_safe_mod_zval_long(&position, 2)) { + ZEPHIR_INIT_NVAR(&_9$$4); + ZVAL_LONG(&_9$$4, (zephir_get_numberval(&digit) * 2)); + } else { + ZEPHIR_CPY_WRT(&_9$$4, &digit); + } + zephir_concat_self(&hash, &_9$$4); + ZEPHIR_CALL_METHOD(NULL, &_3, "next", NULL, 0); + zephir_check_call_status(); + } } - RETURN_CCTOR(&data); + ZEPHIR_INIT_NVAR(&digit); + ZEPHIR_INIT_NVAR(&position); + ZEPHIR_CALL_FUNCTION(&_10, "str_split", NULL, 108, &hash); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&result, "array_sum", NULL, 0, &_10); + zephir_check_call_status(); + RETURN_MM_BOOL((zephir_safe_mod_zval_long(&result, 10) == 0)); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getPrimaryKeyAttributes) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, data, _0; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); - ZVAL_LONG(&_0, 1); - ZEPHIR_CALL_METHOD(&data, this_ptr, "readmetadataindex", NULL, 26, model, &_0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&data) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 415); - return; - } - RETURN_CCTOR(&data); + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_Date) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator, Date, phalcon, validation_validator_date, phalcon_validation_abstractvalidator_ce, phalcon_validation_validator_date_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_date_ce, SL("template"), "Field :field is not a valid date", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getReverseColumnMap) +static PHP_METHOD(Phalcon_Validation_Validator_Date, __construct) { - zend_bool _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, data, _0; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } - ZVAL_LONG(&_0, 1); - ZEPHIR_CALL_METHOD(&data, this_ptr, "readcolumnmapindex", NULL, 27, model, &_0); + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_date_ce, getThis(), "__construct", &_0, 0, &options); zephir_check_call_status(); - _1 = Z_TYPE_P(&data) != IS_NULL; - if (_1) { - _1 = Z_TYPE_P(&data) != IS_ARRAY; - } - if (UNEXPECTED(_1)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The meta-data is invalid or is corrupt", "phalcon/Mvc/Model/MetaData.zep", 442); - return; - } - RETURN_CCTOR(&data); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, getStrategy) +static PHP_METHOD(Phalcon_Validation_Validator_Date, validate) { - zval _0, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *validation, validation_sub, *field, field_sub, value, format, _0, _2, _1$$3, _3$$5; zval *this_ptr = getThis(); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&format); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &validation, &field); - zephir_read_property(&_0, this_ptr, ZEND_STRL("strategy"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_mvc_model_metadata_strategy_introspection_ce); - if (zephir_has_constructor(&_1$$3)) { - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 0); - zephir_check_call_status(); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("strategy"), &_1$$3); - } - RETURN_MM_MEMBER(getThis(), "strategy"); + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "format"); + ZEPHIR_CALL_METHOD(&format, this_ptr, "getoption", NULL, 0, &_0); + zephir_check_call_status(); + if (Z_TYPE_P(&format) == IS_ARRAY) { + zephir_array_fetch(&_1$$3, &format, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/Date.zep", 87); + ZEPHIR_CPY_WRT(&format, &_1$$3); + } + if (ZEPHIR_IS_EMPTY(&format)) { + ZEPHIR_INIT_NVAR(&format); + ZVAL_STRING(&format, "Y-m-d"); + } + ZEPHIR_CALL_METHOD(&_2, this_ptr, "checkdate", NULL, 0, &value, &format); + zephir_check_call_status(); + if (!(zephir_is_true(&_2))) { + ZEPHIR_CALL_METHOD(&_3$$5, this_ptr, "messagefactory", NULL, 0, validation, field); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_3$$5); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, hasAttribute) +static PHP_METHOD(Phalcon_Validation_Validator_Date, checkDate) { + zend_bool _3; + zend_class_entry *_0, *_1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval attribute; - zval *model, model_sub, *attribute_param = NULL, columnMap, _0, _1; + zval *value, value_sub, *format, format_sub, date, errors, _2, _4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&columnMap); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&attribute); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&format_sub); + ZVAL_UNDEF(&date); + ZVAL_UNDEF(&errors); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_STR(attribute) + Z_PARAM_ZVAL(value) + Z_PARAM_ZVAL(format) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &attribute_param); - zephir_get_strval(&attribute, attribute_param); + zephir_fetch_params(1, 2, 0, &value, &format); - ZEPHIR_CALL_METHOD(&columnMap, this_ptr, "getreversecolumnmap", NULL, 0, model); - zephir_check_call_status(); - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - RETURN_MM_BOOL(zephir_array_isset(&columnMap, &attribute)); + if (!(Z_TYPE_P(value) == IS_STRING)) { + RETURN_MM_BOOL(0); } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "readmetadata", NULL, 28, model); + _0 = zephir_fetch_class_str_ex(SL("DateTime"), ZEND_FETCH_CLASS_AUTO); + ZEPHIR_CALL_CE_STATIC(&date, _0, "createfromformat", NULL, 0, format, value); zephir_check_call_status(); - zephir_array_fetch_long(&_1, &_0, 4, PH_READONLY, "phalcon/Mvc/Model/MetaData.zep", 482); - RETURN_MM_BOOL(zephir_array_isset(&_1, &attribute)); + _1 = zephir_fetch_class_str_ex(SL("DateTime"), ZEND_FETCH_CLASS_AUTO); + ZEPHIR_CALL_CE_STATIC(&errors, _1, "getlasterrors", NULL, 0); + zephir_check_call_status(); + zephir_array_fetch_string(&_2, &errors, SL("warning_count"), PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/Date.zep", 116); + _3 = ZEPHIR_IS_LONG(&_2, 0); + if (_3) { + zephir_array_fetch_string(&_4, &errors, SL("error_count"), PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/Date.zep", 116); + _3 = ZEPHIR_IS_LONG(&_4, 0); + } + RETURN_MM_BOOL(_3); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, isEmpty) -{ - zval _0; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); +#ifdef HAVE_CONFIG_H +#endif - zephir_read_property(&_0, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); - RETURN_BOOL(zephir_fast_count_int(&_0) == 0); + + + + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_Digit) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator, Digit, phalcon, validation_validator_digit, phalcon_validation_abstractvalidator_ce, phalcon_validation_validator_digit_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_digit_ce, SL("template"), "Field :field must be numeric", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, read) +static PHP_METHOD(Phalcon_Validation_Validator_Digit, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, _0; - zval key; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); } else { - ZEPHIR_INIT_VAR(&key); + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "get", NULL, 0, &key); + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_digit_ce, getThis(), "__construct", &_0, 0, &options); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, readColumnMap) +static PHP_METHOD(Phalcon_Validation_Validator_Digit, validate) { + zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, keyName, data, _0, _1$$4, _2$$4, _3$$4; + zval *validation, validation_sub, *field, field_sub, value, _1, _2; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&keyName); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); + zephir_fetch_params(1, 2, 0, &validation, &field); - if (!(ZEPHIR_GLOBAL(orm).column_renaming)) { - RETURN_MM_NULL(); - } - ZEPHIR_INIT_VAR(&keyName); - zephir_get_class(&keyName, model, 1); - ZEPHIR_OBS_VAR(&data); - zephir_read_property(&_0, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&data, &_0, &keyName, 0))) { - ZVAL_NULL(&_1$$4); - ZVAL_NULL(&_2$$4); - ZVAL_NULL(&_3$$4); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "initialize", NULL, 29, model, &_1$$4, &_2$$4, &_3$$4); + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); + zephir_check_call_status(); + _0 = Z_TYPE_P(&value) == IS_LONG; + if (!(_0)) { + ZEPHIR_CALL_FUNCTION(&_1, "ctype_digit", NULL, 0, &value); zephir_check_call_status(); - zephir_read_property(&_1$$4, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_OBS_NVAR(&data); - zephir_array_fetch(&data, &_1$$4, &keyName, PH_NOISY, "phalcon/Mvc/Model/MetaData.zep", 531); + _0 = zephir_is_true(&_1); } - RETURN_CCTOR(&data); + if (_0) { + RETURN_MM_BOOL(1); + } + ZEPHIR_CALL_METHOD(&_2, this_ptr, "messagefactory", NULL, 0, validation, field); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_2); + zephir_check_call_status(); + RETURN_MM_BOOL(0); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, readColumnMapIndex) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long index, ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, *index_param = NULL, keyName, columnMapModel, map, _0, _1$$4, _2$$4, _3$$4; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&keyName); - ZVAL_UNDEF(&columnMapModel); - ZVAL_UNDEF(&map); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_LONG(index) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &index_param); - index = zephir_get_intval(index_param); - if (!(ZEPHIR_GLOBAL(orm).column_renaming)) { - RETURN_MM_NULL(); - } - ZEPHIR_INIT_VAR(&keyName); - zephir_get_class(&keyName, model, 1); - ZEPHIR_OBS_VAR(&columnMapModel); - zephir_read_property(&_0, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&columnMapModel, &_0, &keyName, 0))) { - ZVAL_NULL(&_1$$4); - ZVAL_NULL(&_2$$4); - ZVAL_NULL(&_3$$4); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "initialize", NULL, 29, model, &_1$$4, &_2$$4, &_3$$4); - zephir_check_call_status(); - zephir_read_property(&_1$$4, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_OBS_NVAR(&columnMapModel); - zephir_array_fetch(&columnMapModel, &_1$$4, &keyName, PH_NOISY, "phalcon/Mvc/Model/MetaData.zep", 562); - } - zephir_array_isset_long_fetch(&map, &columnMapModel, index, 1); - RETURN_CTOR(&map); + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_Email) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator, Email, phalcon, validation_validator_email, phalcon_validation_abstractvalidator_ce, phalcon_validation_validator_email_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_email_ce, SL("template"), "Field :field must be an email address", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, readMetaData) +static PHP_METHOD(Phalcon_Validation_Validator_Email, __construct) { - zval key; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, source, schema, _0, _1, _2, _3, _4; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&key); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &model); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } - ZEPHIR_CALL_METHOD(&source, model, "getsource", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&schema, model, "getschema", NULL, 0); + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_email_ce, getThis(), "__construct", &_0, 0, &options); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - zephir_get_class(&_0, model, 1); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_CONCAT_VSVV(&_1, &_0, "-", &schema, &source); - zephir_get_strval(&key, &_1); - zephir_read_property(&_2, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset(&_2, &key))) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "initialize", NULL, 29, model, &key, &source, &schema); - zephir_check_call_status(); - } - zephir_read_property(&_3, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_4, &_3, &key, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/MetaData.zep", 598); - RETURN_CTOR(&_4); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, readMetaDataIndex) +static PHP_METHOD(Phalcon_Validation_Validator_Email, validate) { - zval key; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long index, ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, *index_param = NULL, source, schema, _0, _1, _2, _3, _4, _5, _6; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *validation, validation_sub, *field, field_sub, value, _0, _1, _2$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&value); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_2$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_LONG(index) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &index_param); - index = zephir_get_intval(index_param); + zephir_fetch_params(1, 2, 0, &validation, &field); - ZEPHIR_CALL_METHOD(&source, model, "getsource", NULL, 0); + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&schema, model, "getschema", NULL, 0); + ZVAL_LONG(&_0, 274); + ZEPHIR_CALL_FUNCTION(&_1, "filter_var", NULL, 237, &value, &_0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - zephir_get_class(&_0, model, 1); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_CONCAT_VSVV(&_1, &_0, "-", &schema, &source); - zephir_get_strval(&key, &_1); - zephir_read_property(&_2, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_3, &_2, &key, PH_READONLY, "phalcon/Mvc/Model/MetaData.zep", 626); - if (!(zephir_array_isset_long(&_3, index))) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "initialize", NULL, 29, model, &key, &source, &schema); + if (!(zephir_is_true(&_1))) { + ZEPHIR_CALL_METHOD(&_2$$3, this_ptr, "messagefactory", NULL, 0, validation, field); zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_2$$3); + zephir_check_call_status(); + RETURN_MM_BOOL(0); } - zephir_read_property(&_4, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_5, &_4, &key, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/MetaData.zep", 630); - zephir_array_fetch_long(&_6, &_5, index, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/MetaData.zep", 630); - RETURN_CTOR(&_6); + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, reset) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_Exception) { - zval _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator, Exception, phalcon, validation_validator_exception, phalcon_exception_ce, NULL, 0); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + return SUCCESS; +} - ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(&_0); - array_init(&_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("metaData"), &_0); - ZEPHIR_INIT_VAR(&_1); - array_init(&_1); - zephir_update_property_zval(this_ptr, ZEND_STRL("columnMap"), &_1); - ZEPHIR_MM_RESTORE(); + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_ExclusionIn) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator, ExclusionIn, phalcon, validation_validator_exclusionin, phalcon_validation_abstractvalidator_ce, phalcon_validation_validator_exclusionin_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_exclusionin_ce, SL("template"), "Field :field must not be a part of list: :domain", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, setAutomaticCreateAttributes) +static PHP_METHOD(Phalcon_Validation_Validator_ExclusionIn, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval attributes; - zval *model, model_sub, *attributes_param = NULL, _0; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &attributes_param); - zephir_get_arrval(&attributes, attributes_param); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } - ZVAL_LONG(&_0, 10); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "writemetadataindex", NULL, 30, model, &_0, &attributes); + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_exclusionin_ce, getThis(), "__construct", &_0, 0, &options); zephir_check_call_status(); ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, setAutomaticUpdateAttributes) +static PHP_METHOD(Phalcon_Validation_Validator_ExclusionIn, validate) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval attributes; - zval *model, model_sub, *attributes_param = NULL, _0; + zval *validation, validation_sub, *field, field_sub, value, domain, replacePairs, strict, fieldDomain, _0, _1, _4, _2$$6, _3$$7, _5$$9, _6$$9; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&domain); + ZVAL_UNDEF(&replacePairs); + ZVAL_UNDEF(&strict); + ZVAL_UNDEF(&fieldDomain); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_2$$6); + ZVAL_UNDEF(&_3$$7); + ZVAL_UNDEF(&_5$$9); + ZVAL_UNDEF(&_6$$9); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_ARRAY(attributes) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &attributes_param); - zephir_get_arrval(&attributes, attributes_param); + zephir_fetch_params(1, 2, 0, &validation, &field); - ZVAL_LONG(&_0, 11); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "writemetadataindex", NULL, 30, model, &_0, &attributes); + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "domain"); + ZEPHIR_CALL_METHOD(&domain, this_ptr, "getoption", NULL, 0, &_0); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&fieldDomain); + if (zephir_array_isset_fetch(&fieldDomain, &domain, field, 0)) { + if (Z_TYPE_P(&fieldDomain) == IS_ARRAY) { + ZEPHIR_CPY_WRT(&domain, &fieldDomain); + } + } + if (UNEXPECTED(Z_TYPE_P(&domain) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_validation_exception_ce, "Option 'domain' must be an array", "phalcon/Validation/Validator/ExclusionIn.zep", 104); + return; + } + ZEPHIR_INIT_VAR(&strict); + ZVAL_BOOL(&strict, 0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "strict"); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "hasoption", NULL, 0, &_0); + zephir_check_call_status(); + if (zephir_is_true(&_1)) { + ZEPHIR_INIT_VAR(&_2$$6); + ZVAL_STRING(&_2$$6, "strict"); + ZEPHIR_CALL_METHOD(&strict, this_ptr, "getoption", NULL, 0, &_2$$6); + zephir_check_call_status(); + if (Z_TYPE_P(&strict) == IS_ARRAY) { + zephir_array_fetch(&_3$$7, &strict, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/ExclusionIn.zep", 113); + ZEPHIR_CPY_WRT(&strict, &_3$$7); + } + if (UNEXPECTED(((Z_TYPE_P(&strict) == IS_TRUE || Z_TYPE_P(&strict) == IS_FALSE) != 1))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_validation_exception_ce, "Option 'strict' must be a bool", "phalcon/Validation/Validator/ExclusionIn.zep", 117); + return; + } + } + ZEPHIR_CALL_FUNCTION(&_4, "in_array", NULL, 0, &value, &domain, &strict); + zephir_check_call_status(); + if (zephir_is_true(&_4)) { + ZEPHIR_INIT_VAR(&replacePairs); + zephir_create_array(&replacePairs, 1, 0); + ZEPHIR_INIT_VAR(&_5$$9); + zephir_fast_join_str(&_5$$9, SL(", "), &domain); + zephir_array_update_string(&replacePairs, SL(":domain"), &_5$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_6$$9, this_ptr, "messagefactory", NULL, 0, validation, field, &replacePairs); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_6$$9); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, setEmptyStringAttributes) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_File) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator, File, phalcon, validation_validator_file, phalcon_validation_abstractvalidatorcomposite_ce, phalcon_validation_validator_file_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Validation_Validator_File, __construct) { + zend_string *_3; + zend_ulong _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_6 = NULL, *_13 = NULL, *_16 = NULL, *_19 = NULL, *_22 = NULL, *_25 = NULL, *_28 = NULL, *_31 = NULL, *_34 = NULL, *_57 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval attributes; - zval *model, model_sub, *attributes_param = NULL, _0; + zval *options_param = NULL, included, key, message, validator, value, *_0, _1, _4$$3, _5$$3, _7$$3, _8$$3, _9$$3, _10$$3, _11$$3, _12$$3, _14$$4, _17$$5, _20$$6, _23$$7, _26$$8, _29$$9, _32$$10, _35$$12, _36$$12, _37$$12, _38$$12, _39$$12, _40$$12, _41$$12, _42$$12, _43$$13, _45$$14, _47$$15, _49$$16, _51$$17, _53$$18, _55$$19; + zval options, _15$$4, _18$$5, _21$$6, _24$$7, _27$$8, _30$$9, _33$$10, _44$$13, _46$$14, _48$$15, _50$$16, _52$$17, _54$$18, _56$$19; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&_15$$4); + ZVAL_UNDEF(&_18$$5); + ZVAL_UNDEF(&_21$$6); + ZVAL_UNDEF(&_24$$7); + ZVAL_UNDEF(&_27$$8); + ZVAL_UNDEF(&_30$$9); + ZVAL_UNDEF(&_33$$10); + ZVAL_UNDEF(&_44$$13); + ZVAL_UNDEF(&_46$$14); + ZVAL_UNDEF(&_48$$15); + ZVAL_UNDEF(&_50$$16); + ZVAL_UNDEF(&_52$$17); + ZVAL_UNDEF(&_54$$18); + ZVAL_UNDEF(&_56$$19); + ZVAL_UNDEF(&included); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&message); + ZVAL_UNDEF(&validator); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_8$$3); + ZVAL_UNDEF(&_9$$3); + ZVAL_UNDEF(&_10$$3); + ZVAL_UNDEF(&_11$$3); + ZVAL_UNDEF(&_12$$3); + ZVAL_UNDEF(&_14$$4); + ZVAL_UNDEF(&_17$$5); + ZVAL_UNDEF(&_20$$6); + ZVAL_UNDEF(&_23$$7); + ZVAL_UNDEF(&_26$$8); + ZVAL_UNDEF(&_29$$9); + ZVAL_UNDEF(&_32$$10); + ZVAL_UNDEF(&_35$$12); + ZVAL_UNDEF(&_36$$12); + ZVAL_UNDEF(&_37$$12); + ZVAL_UNDEF(&_38$$12); + ZVAL_UNDEF(&_39$$12); + ZVAL_UNDEF(&_40$$12); + ZVAL_UNDEF(&_41$$12); + ZVAL_UNDEF(&_42$$12); + ZVAL_UNDEF(&_43$$13); + ZVAL_UNDEF(&_45$$14); + ZVAL_UNDEF(&_47$$15); + ZVAL_UNDEF(&_49$$16); + ZVAL_UNDEF(&_51$$17); + ZVAL_UNDEF(&_53$$18); + ZVAL_UNDEF(&_55$$19); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &attributes_param); - zephir_get_arrval(&attributes, attributes_param); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } - ZVAL_LONG(&_0, 13); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "writemetadataindex", NULL, 30, model, &_0, &attributes); + ZEPHIR_INIT_VAR(&included); + ZVAL_NULL(&included); + ZEPHIR_INIT_VAR(&message); + ZVAL_NULL(&message); + zephir_is_iterable(&options, 1, "phalcon/Validation/Validator/File.zep", 246); + if (Z_TYPE_P(&options) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&options), _2, _3, _0) + { + ZEPHIR_INIT_NVAR(&key); + if (_3 != NULL) { + ZVAL_STR_COPY(&key, _3); + } else { + ZVAL_LONG(&key, _2); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0); + ZEPHIR_INIT_NVAR(&_4$$3); + ZVAL_STRING(&_4$$3, "minSize"); + ZEPHIR_CALL_FUNCTION(&_5$$3, "strcasecmp", &_6, 47, &key, &_4$$3); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_4$$3); + ZVAL_STRING(&_4$$3, "maxSize"); + ZEPHIR_CALL_FUNCTION(&_7$$3, "strcasecmp", &_6, 47, &key, &_4$$3); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_4$$3); + ZVAL_STRING(&_4$$3, "equalSize"); + ZEPHIR_CALL_FUNCTION(&_8$$3, "strcasecmp", &_6, 47, &key, &_4$$3); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_4$$3); + ZVAL_STRING(&_4$$3, "allowedTypes"); + ZEPHIR_CALL_FUNCTION(&_9$$3, "strcasecmp", &_6, 47, &key, &_4$$3); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_4$$3); + ZVAL_STRING(&_4$$3, "maxResolution"); + ZEPHIR_CALL_FUNCTION(&_10$$3, "strcasecmp", &_6, 47, &key, &_4$$3); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_4$$3); + ZVAL_STRING(&_4$$3, "minResolution"); + ZEPHIR_CALL_FUNCTION(&_11$$3, "strcasecmp", &_6, 47, &key, &_4$$3); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_4$$3); + ZVAL_STRING(&_4$$3, "equalResolution"); + ZEPHIR_CALL_FUNCTION(&_12$$3, "strcasecmp", &_6, 47, &key, &_4$$3); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG_IDENTICAL(&_5$$3, 0)) { + ZEPHIR_INIT_NVAR(&_14$$4); + ZVAL_STRING(&_14$$4, "messageMinSize"); + ZEPHIR_CALL_CE_STATIC(&message, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_14$$4); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_14$$4); + ZVAL_STRING(&_14$$4, "includedMinSize"); + ZEPHIR_CALL_CE_STATIC(&included, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_14$$4); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&validator); + object_init_ex(&validator, phalcon_validation_validator_file_size_min_ce); + ZEPHIR_INIT_NVAR(&_15$$4); + zephir_create_array(&_15$$4, 3, 0); + zephir_array_update_string(&_15$$4, SL("size"), &value, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_15$$4, SL("message"), &message, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_15$$4, SL("included"), &included, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &validator, "__construct", &_16, 0, &_15$$4); + zephir_check_call_status(); + zephir_array_unset_string(&options, SL("messageMinSize"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("includedMinSize"), PH_SEPARATE); + } else if (ZEPHIR_IS_LONG_IDENTICAL(&_7$$3, 0)) { + ZEPHIR_INIT_NVAR(&_17$$5); + ZVAL_STRING(&_17$$5, "messageSize"); + ZEPHIR_CALL_CE_STATIC(&message, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_17$$5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_17$$5); + ZVAL_STRING(&_17$$5, "includedSize"); + ZEPHIR_CALL_CE_STATIC(&included, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_17$$5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&validator); + object_init_ex(&validator, phalcon_validation_validator_file_size_max_ce); + ZEPHIR_INIT_NVAR(&_18$$5); + zephir_create_array(&_18$$5, 3, 0); + zephir_array_update_string(&_18$$5, SL("size"), &value, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_18$$5, SL("message"), &message, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_18$$5, SL("included"), &included, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &validator, "__construct", &_19, 0, &_18$$5); + zephir_check_call_status(); + zephir_array_unset_string(&options, SL("maxSize"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("messageSize"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("includedSize"), PH_SEPARATE); + } else if (ZEPHIR_IS_LONG_IDENTICAL(&_8$$3, 0)) { + ZEPHIR_INIT_NVAR(&_20$$6); + ZVAL_STRING(&_20$$6, "messageEqualSize"); + ZEPHIR_CALL_CE_STATIC(&message, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_20$$6); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&validator); + object_init_ex(&validator, phalcon_validation_validator_file_size_equal_ce); + ZEPHIR_INIT_NVAR(&_21$$6); + zephir_create_array(&_21$$6, 2, 0); + zephir_array_update_string(&_21$$6, SL("size"), &value, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_21$$6, SL("message"), &message, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &validator, "__construct", &_22, 0, &_21$$6); + zephir_check_call_status(); + zephir_array_unset_string(&options, SL("equalSize"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("messageEqualSize"), PH_SEPARATE); + } else if (ZEPHIR_IS_LONG_IDENTICAL(&_9$$3, 0)) { + ZEPHIR_INIT_NVAR(&_23$$7); + ZVAL_STRING(&_23$$7, "messageType"); + ZEPHIR_CALL_CE_STATIC(&message, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_23$$7); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&validator); + object_init_ex(&validator, phalcon_validation_validator_file_mimetype_ce); + ZEPHIR_INIT_NVAR(&_24$$7); + zephir_create_array(&_24$$7, 2, 0); + zephir_array_update_string(&_24$$7, SL("types"), &value, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_24$$7, SL("message"), &message, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &validator, "__construct", &_25, 0, &_24$$7); + zephir_check_call_status(); + zephir_array_unset_string(&options, SL("allowedTypes"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("messageType"), PH_SEPARATE); + } else if (ZEPHIR_IS_LONG_IDENTICAL(&_10$$3, 0)) { + ZEPHIR_INIT_NVAR(&_26$$8); + ZVAL_STRING(&_26$$8, "messageMaxResolution"); + ZEPHIR_CALL_CE_STATIC(&message, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_26$$8); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_26$$8); + ZVAL_STRING(&_26$$8, "includedMaxResolution"); + ZEPHIR_CALL_CE_STATIC(&included, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_26$$8); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&validator); + object_init_ex(&validator, phalcon_validation_validator_file_resolution_max_ce); + ZEPHIR_INIT_NVAR(&_27$$8); + zephir_create_array(&_27$$8, 3, 0); + zephir_array_update_string(&_27$$8, SL("resolution"), &value, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_27$$8, SL("included"), &included, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_27$$8, SL("message"), &message, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &validator, "__construct", &_28, 0, &_27$$8); + zephir_check_call_status(); + zephir_array_unset_string(&options, SL("maxResolution"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("includedMaxResolution"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("messageMaxResolution"), PH_SEPARATE); + } else if (ZEPHIR_IS_LONG_IDENTICAL(&_11$$3, 0)) { + ZEPHIR_INIT_NVAR(&_29$$9); + ZVAL_STRING(&_29$$9, "messageMinResolution"); + ZEPHIR_CALL_CE_STATIC(&message, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_29$$9); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_29$$9); + ZVAL_STRING(&_29$$9, "includedMinResolution"); + ZEPHIR_CALL_CE_STATIC(&included, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_29$$9); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&validator); + object_init_ex(&validator, phalcon_validation_validator_file_resolution_min_ce); + ZEPHIR_INIT_NVAR(&_30$$9); + zephir_create_array(&_30$$9, 3, 0); + zephir_array_update_string(&_30$$9, SL("resolution"), &value, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_30$$9, SL("included"), &included, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_30$$9, SL("message"), &message, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &validator, "__construct", &_31, 0, &_30$$9); + zephir_check_call_status(); + zephir_array_unset_string(&options, SL("minResolution"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("includedMinResolution"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("messageMinResolution"), PH_SEPARATE); + } else if (ZEPHIR_IS_LONG_IDENTICAL(&_12$$3, 0)) { + ZEPHIR_INIT_NVAR(&_32$$10); + ZVAL_STRING(&_32$$10, "messageEqualResolution"); + ZEPHIR_CALL_CE_STATIC(&message, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_32$$10); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&validator); + object_init_ex(&validator, phalcon_validation_validator_file_resolution_equal_ce); + ZEPHIR_INIT_NVAR(&_33$$10); + zephir_create_array(&_33$$10, 2, 0); + zephir_array_update_string(&_33$$10, SL("resolution"), &value, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_33$$10, SL("message"), &message, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &validator, "__construct", &_34, 0, &_33$$10); + zephir_check_call_status(); + zephir_array_unset_string(&options, SL("equalResolution"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("messageEqualResolution"), PH_SEPARATE); + } else { + continue; + } + zephir_update_property_array_append(this_ptr, SL("validators"), &validator); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &options, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &options, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &options, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &options, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_35$$12); + ZVAL_STRING(&_35$$12, "minSize"); + ZEPHIR_CALL_FUNCTION(&_36$$12, "strcasecmp", &_6, 47, &key, &_35$$12); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_35$$12); + ZVAL_STRING(&_35$$12, "maxSize"); + ZEPHIR_CALL_FUNCTION(&_37$$12, "strcasecmp", &_6, 47, &key, &_35$$12); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_35$$12); + ZVAL_STRING(&_35$$12, "equalSize"); + ZEPHIR_CALL_FUNCTION(&_38$$12, "strcasecmp", &_6, 47, &key, &_35$$12); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_35$$12); + ZVAL_STRING(&_35$$12, "allowedTypes"); + ZEPHIR_CALL_FUNCTION(&_39$$12, "strcasecmp", &_6, 47, &key, &_35$$12); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_35$$12); + ZVAL_STRING(&_35$$12, "maxResolution"); + ZEPHIR_CALL_FUNCTION(&_40$$12, "strcasecmp", &_6, 47, &key, &_35$$12); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_35$$12); + ZVAL_STRING(&_35$$12, "minResolution"); + ZEPHIR_CALL_FUNCTION(&_41$$12, "strcasecmp", &_6, 47, &key, &_35$$12); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_35$$12); + ZVAL_STRING(&_35$$12, "equalResolution"); + ZEPHIR_CALL_FUNCTION(&_42$$12, "strcasecmp", &_6, 47, &key, &_35$$12); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG_IDENTICAL(&_36$$12, 0)) { + ZEPHIR_INIT_NVAR(&_43$$13); + ZVAL_STRING(&_43$$13, "messageMinSize"); + ZEPHIR_CALL_CE_STATIC(&message, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_43$$13); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_43$$13); + ZVAL_STRING(&_43$$13, "includedMinSize"); + ZEPHIR_CALL_CE_STATIC(&included, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_43$$13); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&validator); + object_init_ex(&validator, phalcon_validation_validator_file_size_min_ce); + ZEPHIR_INIT_NVAR(&_44$$13); + zephir_create_array(&_44$$13, 3, 0); + zephir_array_update_string(&_44$$13, SL("size"), &value, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_44$$13, SL("message"), &message, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_44$$13, SL("included"), &included, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &validator, "__construct", &_34, 0, &_44$$13); + zephir_check_call_status(); + zephir_array_unset_string(&options, SL("messageMinSize"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("includedMinSize"), PH_SEPARATE); + } else if (ZEPHIR_IS_LONG_IDENTICAL(&_37$$12, 0)) { + ZEPHIR_INIT_NVAR(&_45$$14); + ZVAL_STRING(&_45$$14, "messageSize"); + ZEPHIR_CALL_CE_STATIC(&message, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_45$$14); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_45$$14); + ZVAL_STRING(&_45$$14, "includedSize"); + ZEPHIR_CALL_CE_STATIC(&included, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_45$$14); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&validator); + object_init_ex(&validator, phalcon_validation_validator_file_size_max_ce); + ZEPHIR_INIT_NVAR(&_46$$14); + zephir_create_array(&_46$$14, 3, 0); + zephir_array_update_string(&_46$$14, SL("size"), &value, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_46$$14, SL("message"), &message, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_46$$14, SL("included"), &included, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &validator, "__construct", &_34, 0, &_46$$14); + zephir_check_call_status(); + zephir_array_unset_string(&options, SL("maxSize"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("messageSize"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("includedSize"), PH_SEPARATE); + } else if (ZEPHIR_IS_LONG_IDENTICAL(&_38$$12, 0)) { + ZEPHIR_INIT_NVAR(&_47$$15); + ZVAL_STRING(&_47$$15, "messageEqualSize"); + ZEPHIR_CALL_CE_STATIC(&message, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_47$$15); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&validator); + object_init_ex(&validator, phalcon_validation_validator_file_size_equal_ce); + ZEPHIR_INIT_NVAR(&_48$$15); + zephir_create_array(&_48$$15, 2, 0); + zephir_array_update_string(&_48$$15, SL("size"), &value, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_48$$15, SL("message"), &message, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &validator, "__construct", &_34, 0, &_48$$15); + zephir_check_call_status(); + zephir_array_unset_string(&options, SL("equalSize"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("messageEqualSize"), PH_SEPARATE); + } else if (ZEPHIR_IS_LONG_IDENTICAL(&_39$$12, 0)) { + ZEPHIR_INIT_NVAR(&_49$$16); + ZVAL_STRING(&_49$$16, "messageType"); + ZEPHIR_CALL_CE_STATIC(&message, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_49$$16); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&validator); + object_init_ex(&validator, phalcon_validation_validator_file_mimetype_ce); + ZEPHIR_INIT_NVAR(&_50$$16); + zephir_create_array(&_50$$16, 2, 0); + zephir_array_update_string(&_50$$16, SL("types"), &value, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_50$$16, SL("message"), &message, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &validator, "__construct", &_34, 0, &_50$$16); + zephir_check_call_status(); + zephir_array_unset_string(&options, SL("allowedTypes"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("messageType"), PH_SEPARATE); + } else if (ZEPHIR_IS_LONG_IDENTICAL(&_40$$12, 0)) { + ZEPHIR_INIT_NVAR(&_51$$17); + ZVAL_STRING(&_51$$17, "messageMaxResolution"); + ZEPHIR_CALL_CE_STATIC(&message, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_51$$17); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_51$$17); + ZVAL_STRING(&_51$$17, "includedMaxResolution"); + ZEPHIR_CALL_CE_STATIC(&included, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_51$$17); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&validator); + object_init_ex(&validator, phalcon_validation_validator_file_resolution_max_ce); + ZEPHIR_INIT_NVAR(&_52$$17); + zephir_create_array(&_52$$17, 3, 0); + zephir_array_update_string(&_52$$17, SL("resolution"), &value, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_52$$17, SL("included"), &included, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_52$$17, SL("message"), &message, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &validator, "__construct", &_34, 0, &_52$$17); + zephir_check_call_status(); + zephir_array_unset_string(&options, SL("maxResolution"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("includedMaxResolution"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("messageMaxResolution"), PH_SEPARATE); + } else if (ZEPHIR_IS_LONG_IDENTICAL(&_41$$12, 0)) { + ZEPHIR_INIT_NVAR(&_53$$18); + ZVAL_STRING(&_53$$18, "messageMinResolution"); + ZEPHIR_CALL_CE_STATIC(&message, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_53$$18); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_53$$18); + ZVAL_STRING(&_53$$18, "includedMinResolution"); + ZEPHIR_CALL_CE_STATIC(&included, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_53$$18); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&validator); + object_init_ex(&validator, phalcon_validation_validator_file_resolution_min_ce); + ZEPHIR_INIT_NVAR(&_54$$18); + zephir_create_array(&_54$$18, 3, 0); + zephir_array_update_string(&_54$$18, SL("resolution"), &value, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_54$$18, SL("included"), &included, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_54$$18, SL("message"), &message, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &validator, "__construct", &_34, 0, &_54$$18); + zephir_check_call_status(); + zephir_array_unset_string(&options, SL("minResolution"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("includedMinResolution"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("messageMinResolution"), PH_SEPARATE); + } else if (ZEPHIR_IS_LONG_IDENTICAL(&_42$$12, 0)) { + ZEPHIR_INIT_NVAR(&_55$$19); + ZVAL_STRING(&_55$$19, "messageEqualResolution"); + ZEPHIR_CALL_CE_STATIC(&message, phalcon_helper_arr_ce, "get", &_13, 16, &options, &_55$$19); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&validator); + object_init_ex(&validator, phalcon_validation_validator_file_resolution_equal_ce); + ZEPHIR_INIT_NVAR(&_56$$19); + zephir_create_array(&_56$$19, 2, 0); + zephir_array_update_string(&_56$$19, SL("resolution"), &value, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_56$$19, SL("message"), &message, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &validator, "__construct", &_34, 0, &_56$$19); + zephir_check_call_status(); + zephir_array_unset_string(&options, SL("equalResolution"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("messageEqualResolution"), PH_SEPARATE); + } else { + continue; + } + zephir_update_property_array_append(this_ptr, SL("validators"), &validator); + ZEPHIR_CALL_METHOD(NULL, &options, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_file_ce, getThis(), "__construct", &_57, 0, &options); zephir_check_call_status(); ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, setDI) -{ - zval *container, container_sub; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&container_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - zephir_fetch_params_without_memory_grow(1, 0, &container); - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_Identical) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator, Identical, phalcon, validation_validator_identical, phalcon_validation_abstractvalidator_ce, phalcon_validation_validator_identical_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_identical_ce, SL("template"), "Field :field does not have the expected value", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, setStrategy) +static PHP_METHOD(Phalcon_Validation_Validator_Identical, __construct) { - zval *strategy, strategy_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&strategy_sub); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(strategy, phalcon_mvc_model_metadata_strategy_strategyinterface_ce) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &strategy); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } - zephir_update_property_zval(this_ptr, ZEND_STRL("strategy"), strategy); + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_identical_ce, getThis(), "__construct", &_0, 0, &options); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, write) +static PHP_METHOD(Phalcon_Validation_Validator_Identical, validate) { + zend_bool valid = 0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval data; - zval *key_param = NULL, *data_param = NULL, result, option, _1, _2, _0$$3; - zval key; + zval *validation, validation_sub, *field, field_sub, value, accepted, _0, _1, _2, _3$$3, _4$$4, _5$$6, _6$$7; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&option); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&accepted); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&data); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&_6$$7); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(key) - Z_PARAM_ARRAY(data) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &key_param, &data_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } - zephir_get_arrval(&data, data_param); - - + zephir_fetch_params(1, 2, 0, &validation, &field); - /* try_start_1: */ - ZEPHIR_INIT_VAR(&option); - ZVAL_BOOL(&option, ZEPHIR_GLOBAL(orm).exception_on_failed_metadata_save); - zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&result, &_0$$3, "set", NULL, 0, &key, &data); - zephir_check_call_status_or_jump(try_end_1); - if (ZEPHIR_IS_FALSE_IDENTICAL(&result)) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "throwwriteexception", NULL, 31, &option); - zephir_check_call_status_or_jump(try_end_1); + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "accepted"); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "hasoption", NULL, 0, &_1); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "value"); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "hasoption", NULL, 0, &_1); + zephir_check_call_status(); + if (zephir_is_true(&_0)) { + ZEPHIR_INIT_VAR(&_3$$3); + ZVAL_STRING(&_3$$3, "accepted"); + ZEPHIR_CALL_METHOD(&accepted, this_ptr, "getoption", NULL, 0, &_3$$3); + zephir_check_call_status(); + } else if (zephir_is_true(&_2)) { + ZEPHIR_INIT_VAR(&_4$$4); + ZVAL_STRING(&_4$$4, "value"); + ZEPHIR_CALL_METHOD(&accepted, this_ptr, "getoption", NULL, 0, &_4$$4); + zephir_check_call_status(); + } + if (zephir_is_true(&accepted)) { + if (Z_TYPE_P(&accepted) == IS_ARRAY) { + zephir_array_fetch(&_5$$6, &accepted, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/Identical.zep", 94); + ZEPHIR_CPY_WRT(&accepted, &_5$$6); } + valid = ZEPHIR_IS_EQUAL(&value, &accepted); + } + if (!(valid)) { + ZEPHIR_CALL_METHOD(&_6$$7, this_ptr, "messagefactory", NULL, 0, validation, field); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_6$$7); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + RETURN_MM_BOOL(1); +} - try_end_1: - if (EG(exception)) { - ZEPHIR_INIT_VAR(&_1); - ZVAL_OBJ(&_1, EG(exception)); - Z_ADDREF_P(&_1); - ZEPHIR_INIT_VAR(&_2); - if (zephir_is_instance_of(&_1, SL("Exception"))) { - zend_clear_exception(); - ZEPHIR_CPY_WRT(&_2, &_1); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "throwwriteexception", NULL, 31, &option); - zephir_check_call_status(); - } - } - ZEPHIR_MM_RESTORE(); + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_InclusionIn) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator, InclusionIn, phalcon, validation_validator_inclusionin, phalcon_validation_abstractvalidator_ce, phalcon_validation_validator_inclusionin_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_inclusionin_ce, SL("template"), "Field :field must be a part of list: :domain", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, writeMetaDataIndex) +static PHP_METHOD(Phalcon_Validation_Validator_InclusionIn, __construct) { - zend_bool _0, _1; - zval key; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long index, ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, *index_param = NULL, *data, data_sub, source, schema, _2, _3, _4; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&data_sub); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&key); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_LONG(index) - Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &model, &index_param, &data); - index = zephir_get_intval(index_param); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } - _0 = Z_TYPE_P(data) != IS_ARRAY; - if (_0) { - _0 = Z_TYPE_P(data) != IS_STRING; - } - _1 = _0; - if (_1) { - _1 = ((Z_TYPE_P(data) == IS_TRUE || Z_TYPE_P(data) == IS_FALSE) != 1); - } - if (UNEXPECTED(_1)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid data for index", "phalcon/Mvc/Model/MetaData.zep", 765); - return; - } - ZEPHIR_CALL_METHOD(&source, model, "getsource", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&schema, model, "getschema", NULL, 0); + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_inclusionin_ce, getThis(), "__construct", &_0, 0, &options); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - zephir_get_class(&_2, model, 1); - ZEPHIR_INIT_VAR(&_3); - ZEPHIR_CONCAT_VSVV(&_3, &_2, "-", &schema, &source); - zephir_get_strval(&key, &_3); - zephir_read_property(&_4, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset(&_4, &key))) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "initialize", NULL, 29, model, &key, &source, &schema); - zephir_check_call_status(); - } - zephir_update_property_array_multi(this_ptr, SL("metaData"), data, SL("zl"), 2, &key, index); ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, initialize) +static PHP_METHOD(Phalcon_Validation_Validator_InclusionIn, validate) { - zval prefixKey; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, *key, key_sub, *table, table_sub, *schema, schema_sub, strategy, className, metaData, data, modelMetadata, modelColumnMap, container, keyName, _4, _5, _0$$3, _1$$4, _2$$8, _3$$8; + zval *validation, validation_sub, *field, field_sub, value, domain, replacePairs, strict, fieldDomain, _0, _1, _4, _2$$6, _3$$7, _5$$9, _6$$9; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&key_sub); - ZVAL_UNDEF(&table_sub); - ZVAL_UNDEF(&schema_sub); - ZVAL_UNDEF(&strategy); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&metaData); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&modelMetadata); - ZVAL_UNDEF(&modelColumnMap); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&keyName); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&domain); + ZVAL_UNDEF(&replacePairs); + ZVAL_UNDEF(&strict); + ZVAL_UNDEF(&fieldDomain); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$8); - ZVAL_UNDEF(&_3$$8); - ZVAL_UNDEF(&prefixKey); + ZVAL_UNDEF(&_2$$6); + ZVAL_UNDEF(&_3$$7); + ZVAL_UNDEF(&_5$$9); + ZVAL_UNDEF(&_6$$9); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(4, 4) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_ZVAL(key) - Z_PARAM_ZVAL(table) - Z_PARAM_ZVAL(schema) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 4, 0, &model, &key, &table, &schema); + zephir_fetch_params(1, 2, 0, &validation, &field); - ZEPHIR_INIT_VAR(&strategy); - ZVAL_NULL(&strategy); - ZEPHIR_INIT_VAR(&className); - zephir_get_class(&className, model, 0); - if (Z_TYPE_P(key) != IS_NULL) { - zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&metaData, &_0$$3); - if (!(zephir_array_isset(&metaData, key))) { - ZEPHIR_INIT_VAR(&_1$$4); - ZEPHIR_CONCAT_SV(&_1$$4, "meta-", key); - zephir_get_strval(&prefixKey, &_1$$4); - ZEPHIR_CALL_METHOD(&data, this_ptr, "read", NULL, 0, &prefixKey); - zephir_check_call_status(); - if (Z_TYPE_P(&data) != IS_NULL) { - zephir_update_property_array(this_ptr, SL("metaData"), key, &data); - } else { - if ((zephir_method_exists_ex(model, ZEND_STRL("metadata")) == SUCCESS)) { - ZEPHIR_CALL_METHOD(&modelMetadata, model, "metadata", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&modelMetadata) != IS_ARRAY)) { - ZEPHIR_INIT_VAR(&_2$$8); - object_init_ex(&_2$$8, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_3$$8); - ZEPHIR_CONCAT_SV(&_3$$8, "Invalid meta-data for model ", &className); - ZEPHIR_CALL_METHOD(NULL, &_2$$8, "__construct", NULL, 8, &_3$$8); - zephir_check_call_status(); - zephir_throw_exception_debug(&_2$$8, "phalcon/Mvc/Model/MetaData.zep", 817); - ZEPHIR_MM_RESTORE(); - return; - } - } else { - ZEPHIR_CALL_METHOD(&container, this_ptr, "getdi", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&strategy, this_ptr, "getstrategy", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&modelMetadata, &strategy, "getmetadata", NULL, 0, model, &container); - zephir_check_call_status(); - } - zephir_update_property_array(this_ptr, SL("metaData"), key, &modelMetadata); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "write", NULL, 0, &prefixKey, &modelMetadata); - zephir_check_call_status(); - } + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "domain"); + ZEPHIR_CALL_METHOD(&domain, this_ptr, "getoption", NULL, 0, &_0); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&fieldDomain); + if (zephir_array_isset_fetch(&fieldDomain, &domain, field, 0)) { + if (Z_TYPE_P(&fieldDomain) == IS_ARRAY) { + ZEPHIR_CPY_WRT(&domain, &fieldDomain); } } - if (!(ZEPHIR_GLOBAL(orm).column_renaming)) { - RETURN_MM_NULL(); - } - ZEPHIR_INIT_VAR(&keyName); - zephir_fast_strtolower(&keyName, &className); - zephir_read_property(&_4, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset(&_4, &keyName)) { - RETURN_MM_NULL(); + if (UNEXPECTED(Z_TYPE_P(&domain) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_validation_exception_ce, "Option 'domain' must be an array", "phalcon/Validation/Validator/InclusionIn.zep", 98); + return; } - ZEPHIR_INIT_VAR(&_5); - ZEPHIR_CONCAT_SV(&_5, "map-", &keyName); - zephir_get_strval(&prefixKey, &_5); - ZEPHIR_CALL_METHOD(&data, this_ptr, "read", NULL, 0, &prefixKey); + ZEPHIR_INIT_VAR(&strict); + ZVAL_BOOL(&strict, 0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "strict"); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "hasoption", NULL, 0, &_0); zephir_check_call_status(); - if (Z_TYPE_P(&data) != IS_NULL) { - zephir_update_property_array(this_ptr, SL("columnMap"), &keyName, &data); - RETURN_MM_NULL(); + if (zephir_is_true(&_1)) { + ZEPHIR_INIT_VAR(&_2$$6); + ZVAL_STRING(&_2$$6, "strict"); + ZEPHIR_CALL_METHOD(&strict, this_ptr, "getoption", NULL, 0, &_2$$6); + zephir_check_call_status(); + if (Z_TYPE_P(&strict) == IS_ARRAY) { + zephir_array_fetch(&_3$$7, &strict, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/InclusionIn.zep", 107); + ZEPHIR_CPY_WRT(&strict, &_3$$7); + } + if (UNEXPECTED(((Z_TYPE_P(&strict) == IS_TRUE || Z_TYPE_P(&strict) == IS_FALSE) != 1))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_validation_exception_ce, "Option 'strict' must be a bool", "phalcon/Validation/Validator/InclusionIn.zep", 111); + return; + } } - if (Z_TYPE_P(&strategy) != IS_OBJECT) { - ZEPHIR_CALL_METHOD(&container, this_ptr, "getdi", NULL, 0); + ZEPHIR_CALL_FUNCTION(&_4, "in_array", NULL, 0, &value, &domain, &strict); + zephir_check_call_status(); + if (!(zephir_is_true(&_4))) { + ZEPHIR_INIT_VAR(&replacePairs); + zephir_create_array(&replacePairs, 1, 0); + ZEPHIR_INIT_VAR(&_5$$9); + zephir_fast_join_str(&_5$$9, SL(", "), &domain); + zephir_array_update_string(&replacePairs, SL(":domain"), &_5$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_6$$9, this_ptr, "messagefactory", NULL, 0, validation, field, &replacePairs); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&strategy, this_ptr, "getstrategy", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_6$$9); zephir_check_call_status(); + RETURN_MM_BOOL(0); } - ZEPHIR_CALL_METHOD(&modelColumnMap, &strategy, "getcolumnmaps", NULL, 0, model, &container); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("columnMap"), &keyName, &modelColumnMap); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "write", NULL, 0, &prefixKey, &modelColumnMap); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData, throwWriteException) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_Ip) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator, Ip, phalcon, validation_validator_ip, phalcon_validation_abstractvalidator_ce, phalcon_validation_validator_ip_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_ip_ce, SL("template"), "Field :field must be a valid IP address", ZEND_ACC_PROTECTED); + zephir_declare_class_constant_long(phalcon_validation_validator_ip_ce, SL("VERSION_4"), 1048576); + + zephir_declare_class_constant_long(phalcon_validation_validator_ip_ce, SL("VERSION_6"), 2097152); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Validation_Validator_Ip, __construct) { - zval message; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *option, option_sub, _0$$3; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&option_sub); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&message); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(option) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &option); - - - ZEPHIR_INIT_VAR(&message); - ZVAL_STRING(&message, "Failed to store metaData to the cache adapter"); - if (zephir_is_true(option)) { - ZEPHIR_INIT_VAR(&_0$$3); - object_init_ex(&_0$$3, phalcon_mvc_model_exception_ce); - ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 8, &message); - zephir_check_call_status(); - zephir_throw_exception_debug(&_0$$3, "phalcon/Mvc/Model/MetaData.zep", 901); - ZEPHIR_MM_RESTORE(); - return; + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); } else { - ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &message); - zephir_check_call_status(); + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); } + + + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_ip_ce, getThis(), "__construct", &_0, 0, &options); + zephir_check_call_status(); ZEPHIR_MM_RESTORE(); } -zend_object *zephir_init_properties_Phalcon_Mvc_Model_MetaData(zend_class_entry *class_type) +static PHP_METHOD(Phalcon_Validation_Validator_Ip, validate) { - zval _0, _2, _1$$3, _3$$4; + zval _9; + zend_bool _8; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *validation, validation_sub, *field, field_sub, __$false, value, version, allowPrivate, allowReserved, allowEmpty, options, _0, _1, _3, _5, _10, _11, _12, _2$$3, _4$$4, _6$$5, _7$$6, _13$$8; + zval *this_ptr = getThis(); - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("metaData"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("columnMap"), &_3$$4); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&version); + ZVAL_UNDEF(&allowPrivate); + ZVAL_UNDEF(&allowReserved); + ZVAL_UNDEF(&allowEmpty); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_13$$8); + ZVAL_UNDEF(&_9); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &validation, &field); + + + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "version"); + ZVAL_LONG(&_1, (1048576 | 2097152)); + ZEPHIR_CALL_METHOD(&version, this_ptr, "getoption", NULL, 0, &_0, &_1); + zephir_check_call_status(); + if (Z_TYPE_P(&version) == IS_ARRAY) { + zephir_array_fetch(&_2$$3, &version, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/Ip.zep", 102); + ZEPHIR_CPY_WRT(&version, &_2$$3); + } + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "allowPrivate"); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getoption", NULL, 0, &_0); + zephir_check_call_status(); + if (zephir_is_true(&_3)) { + ZEPHIR_INIT_VAR(&allowPrivate); + ZVAL_LONG(&allowPrivate, 0); + } else { + ZEPHIR_INIT_NVAR(&allowPrivate); + ZVAL_LONG(&allowPrivate, 8388608); + } + if (Z_TYPE_P(&allowPrivate) == IS_ARRAY) { + zephir_array_fetch(&_4$$4, &allowPrivate, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/Ip.zep", 108); + ZEPHIR_CPY_WRT(&allowPrivate, &_4$$4); + } + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "allowReserved"); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "getoption", NULL, 0, &_0); + zephir_check_call_status(); + if (zephir_is_true(&_5)) { + ZEPHIR_INIT_VAR(&allowReserved); + ZVAL_LONG(&allowReserved, 0); + } else { + ZEPHIR_INIT_NVAR(&allowReserved); + ZVAL_LONG(&allowReserved, 4194304); + } + if (Z_TYPE_P(&allowReserved) == IS_ARRAY) { + zephir_array_fetch(&_6$$5, &allowReserved, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/Ip.zep", 114); + ZEPHIR_CPY_WRT(&allowReserved, &_6$$5); + } + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "allowEmpty"); + ZVAL_BOOL(&_1, 0); + ZEPHIR_CALL_METHOD(&allowEmpty, this_ptr, "getoption", NULL, 0, &_0, &_1); + zephir_check_call_status(); + if (Z_TYPE_P(&allowEmpty) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&_7$$6); + if (zephir_array_isset(&allowEmpty, field)) { + ZEPHIR_OBS_NVAR(&_7$$6); + zephir_array_fetch(&_7$$6, &allowEmpty, field, PH_NOISY, "phalcon/Validation/Validator/Ip.zep", 120); + } else { + ZEPHIR_INIT_NVAR(&_7$$6); + ZVAL_BOOL(&_7$$6, 0); } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); + ZEPHIR_CPY_WRT(&allowEmpty, &_7$$6); + } + _8 = zephir_is_true(&allowEmpty); + if (_8) { + _8 = ZEPHIR_IS_EMPTY(&value); + } + if (_8) { + RETURN_MM_BOOL(1); + } + ZEPHIR_INIT_VAR(&options); + zephir_create_array(&options, 2, 0); + ZEPHIR_INIT_VAR(&_9); + zephir_create_array(&_9, 1, 0); + zephir_array_update_string(&_9, SL("default"), &__$false, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&options, SL("options"), &_9, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_10); + zephir_bitwise_or_function(&_10, &version, &allowPrivate); + ZEPHIR_INIT_VAR(&_11); + zephir_bitwise_or_function(&_11, &_10, &allowReserved); + zephir_array_update_string(&options, SL("flags"), &_11, PH_COPY | PH_SEPARATE); + ZVAL_LONG(&_1, 275); + ZEPHIR_CALL_FUNCTION(&_12, "filter_var", NULL, 237, &value, &_1, &options); + zephir_check_call_status(); + if (!(zephir_is_true(&_12))) { + ZEPHIR_CALL_METHOD(&_13$$8, this_ptr, "messagefactory", NULL, 0, validation, field); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_13$$8); + zephir_check_call_status(); + RETURN_MM_BOOL(0); } + RETURN_MM_BOOL(1); } @@ -145604,8521 +130297,5030 @@ zend_object *zephir_init_properties_Phalcon_Mvc_Model_MetaData(zend_class_entry -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_MetaDataInterface) +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_Numericality) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model, MetaDataInterface, phalcon, mvc_model_metadatainterface, phalcon_mvc_model_metadatainterface_method_entry); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator, Numericality, phalcon, validation_validator_numericality, phalcon_validation_abstractvalidator_ce, phalcon_validation_validator_numericality_method_entry, 0); + zend_declare_property_string(phalcon_validation_validator_numericality_ce, SL("template"), "Field :field does not have a valid numeric format", ZEND_ACC_PROTECTED); return SUCCESS; } -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getAttributes); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getAutomaticCreateAttributes); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getAutomaticUpdateAttributes); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getBindTypes); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getColumnMap); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getDefaultValues); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getDataTypes); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getDataTypesNumeric); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getEmptyStringAttributes); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getIdentityField); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getNonPrimaryKeyAttributes); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getNotNullAttributes); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getPrimaryKeyAttributes); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getReverseColumnMap); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, getStrategy); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, hasAttribute); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, isEmpty); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, read); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, readColumnMap); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, readColumnMapIndex); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, readMetaData); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, readMetaDataIndex); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, reset); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, setAutomaticCreateAttributes); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, setAutomaticUpdateAttributes); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, setEmptyStringAttributes); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, writeMetaDataIndex); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, setStrategy); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaDataInterface, write); +static PHP_METHOD(Phalcon_Validation_Validator_Numericality, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&options); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } -#ifdef HAVE_CONFIG_H -#endif + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_numericality_ce, getThis(), "__construct", &_0, 0, &options); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} +static PHP_METHOD(Phalcon_Validation_Validator_Numericality, validate) +{ + zval pattern, _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *validation, validation_sub, *field, field_sub, value, _1, _2, _3, _4, _5$$3; + zval *this_ptr = getThis(); -#if PHP_VERSION_ID < 70000 -#else + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) + ZEND_PARSE_PARAMETERS_END(); #endif -static void phalcon_orm_destroy_cache() { - zend_phalcon_globals *phalcon_globals_ptr = ZEPHIR_VGLOBAL; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &validation, &field); - if (phalcon_globals_ptr->orm.parser_cache != NULL) { - zend_hash_destroy(phalcon_globals_ptr->orm.parser_cache); - FREE_HASHTABLE(phalcon_globals_ptr->orm.parser_cache); - phalcon_globals_ptr->orm.parser_cache = NULL; - } - if (phalcon_globals_ptr->orm.ast_cache != NULL) { - zend_hash_destroy(phalcon_globals_ptr->orm.ast_cache); - FREE_HASHTABLE(phalcon_globals_ptr->orm.ast_cache); - phalcon_globals_ptr->orm.ast_cache = NULL; + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); + zephir_check_call_status(); + zephir_cast_to_string(&_0, &value); + ZEPHIR_CPY_WRT(&value, &_0); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, " "); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, ""); + zephir_fast_str_replace(&_1, &_2, &_3, &value); + ZEPHIR_CPY_WRT(&value, &_1); + ZEPHIR_INIT_VAR(&pattern); + ZVAL_STRING(&pattern, "/((^[-]?[0-9,]+(.[0-9]+)?$)|(^[-]?[0-9.]+(,[0-9]+)?$))/"); + ZEPHIR_INIT_VAR(&_4); + ZEPHIR_INIT_NVAR(&_1); + zephir_preg_match(&_1, &pattern, &value, &_4, 0, 0 , 0 ); + if (!(zephir_is_true(&_1))) { + ZEPHIR_CALL_METHOD(&_5$$3, this_ptr, "messagefactory", NULL, 0, validation, field); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_5$$3); + zephir_check_call_status(); + RETURN_MM_BOOL(0); } + RETURN_MM_BOOL(1); } -static void phalcon_orm_singlequotes(zval *return_value, zval *str) { - int i; - smart_str escaped_str = {0}; - char *marker; - if (Z_TYPE_P(str) != IS_STRING) { - RETURN_ZVAL(str, 1, 0); - } - marker = Z_STRVAL_P(str); +#ifdef HAVE_CONFIG_H +#endif - for (i = 0; i < Z_STRLEN_P(str); i++) { - if ((*marker) == '\0') { - break; - } - if ((*marker) == '\'') { - if (i > 0) { - if (*(marker - 1) != '\\') { - smart_str_appendc(&escaped_str, '\''); - } - } else { - smart_str_appendc(&escaped_str, '\''); - } - } - smart_str_appendc(&escaped_str, (*marker)); - marker++; - } - smart_str_0(&escaped_str); -#if PHP_VERSION_ID < 70000 - if (escaped_str.len) { - RETURN_STRINGL(escaped_str.c, escaped_str.len, 0); - } -#else - if (escaped_str.s) { - RETURN_STR(escaped_str.s); - } -#endif - smart_str_free(&escaped_str); - RETURN_EMPTY_STRING(); -} +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_PresenceOf) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator, PresenceOf, phalcon, validation_validator_presenceof, phalcon_validation_abstractvalidator_ce, phalcon_validation_validator_presenceof_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_presenceof_ce, SL("template"), "Field :field is required", ZEND_ACC_PROTECTED); + return SUCCESS; +} +static PHP_METHOD(Phalcon_Validation_Validator_PresenceOf, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&options); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_presenceof_ce, getThis(), "__construct", &_0, 0, &options); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Query) +static PHP_METHOD(Phalcon_Validation_Validator_PresenceOf, validate) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model, Query, phalcon, mvc_model_query, phalcon_mvc_model_query_method_entry, 0); + zend_bool _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *validation, validation_sub, *field, field_sub, value, _1$$3; + zval *this_ptr = getThis(); - zend_declare_property_null(phalcon_mvc_model_query_ce, SL("ast"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_ce, SL("bindParams"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_ce, SL("bindTypes"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_ce, SL("cache"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_ce, SL("cacheOptions"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_ce, SL("container"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_ce, SL("enableImplicitJoins"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_ce, SL("intermediate"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_ce, SL("manager"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_ce, SL("metaData"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_ce, SL("models"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_ce, SL("modelsInstances"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_mvc_model_query_ce, SL("nestingLevel"), -1, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_ce, SL("phql"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_model_query_ce, SL("sharedLock"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_ce, SL("sqlAliases"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_ce, SL("sqlAliasesModels"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_ce, SL("sqlAliasesModelsInstances"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_ce, SL("sqlColumnAliases"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_ce, SL("sqlModelsAliases"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_ce, SL("type"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_model_query_ce, SL("uniqueRow"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_ce, SL("transaction"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_ce, SL("internalPhqlCache"), ZEND_ACC_PROTECTED|ZEND_ACC_STATIC); - phalcon_mvc_model_query_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_Query; - zephir_declare_class_constant_long(phalcon_mvc_model_query_ce, SL("TYPE_DELETE"), 303); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) + ZEND_PARSE_PARAMETERS_END(); +#endif - zephir_declare_class_constant_long(phalcon_mvc_model_query_ce, SL("TYPE_INSERT"), 306); - zephir_declare_class_constant_long(phalcon_mvc_model_query_ce, SL("TYPE_SELECT"), 309); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &validation, &field); - zephir_declare_class_constant_long(phalcon_mvc_model_query_ce, SL("TYPE_UPDATE"), 300); - zend_class_implements(phalcon_mvc_model_query_ce, 1, phalcon_mvc_model_queryinterface_ce); - zend_class_implements(phalcon_mvc_model_query_ce, 1, phalcon_di_injectionawareinterface_ce); - return SUCCESS; + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); + zephir_check_call_status(); + _0 = Z_TYPE_P(&value) == IS_NULL; + if (!(_0)) { + _0 = ZEPHIR_IS_STRING_IDENTICAL(&value, ""); + } + if (_0) { + ZEPHIR_CALL_METHOD(&_1$$3, this_ptr, "messagefactory", NULL, 0, validation, field); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_1$$3); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getTransaction) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "transaction"); +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_Regex) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator, Regex, phalcon, validation_validator_regex, phalcon_validation_abstractvalidator_ce, phalcon_validation_validator_regex_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_regex_ce, SL("template"), "Field :field does not match the required format", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Query, __construct) +static PHP_METHOD(Phalcon_Validation_Validator_Regex, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; zval options; - zval *phql_param = NULL, *container = NULL, container_sub, *options_param = NULL, __$true, __$false, __$null, enableImplicitJoins, _0, _1; - zval phql; zval *this_ptr = getThis(); - ZVAL_UNDEF(&phql); - ZVAL_UNDEF(&container_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&enableImplicitJoins); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 3) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(phql) - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(container, phalcon_di_diinterface_ce) Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 3, &phql_param, &container, &options_param); - if (!phql_param) { - ZEPHIR_INIT_VAR(&phql); - } else { - zephir_get_strval(&phql, phql_param); - } - if (!container) { - container = &container_sub; - container = &__$null; - } + zephir_fetch_params(1, 0, 1, &options_param); if (!options_param) { ZEPHIR_INIT_VAR(&options); array_init(&options); } else { - zephir_get_arrval(&options, options_param); + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); } - zephir_update_property_zval(this_ptr, ZEND_STRL("phql"), &phql); - if (Z_TYPE_P(container) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setdi", NULL, 0, container); - zephir_check_call_status(); - } - ZEPHIR_OBS_VAR(&enableImplicitJoins); - if (zephir_array_isset_string_fetch(&enableImplicitJoins, &options, SL("enable_implicit_joins"), 0)) { - if (ZEPHIR_IS_TRUE(&enableImplicitJoins)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("enableImplicitJoins"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("enableImplicitJoins"), &__$false); - } - } else { - if (ZEPHIR_GLOBAL(orm).enable_implicit_joins) { - zephir_update_property_zval(this_ptr, ZEND_STRL("enableImplicitJoins"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("enableImplicitJoins"), &__$false); - } - } - ZEPHIR_INIT_VAR(&_0); - array_init(&_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &_0); - ZEPHIR_INIT_VAR(&_1); - array_init(&_1); - zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &_1); + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_regex_ce, getThis(), "__construct", &_0, 0, &options); + zephir_check_call_status(); ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, cache) +static PHP_METHOD(Phalcon_Validation_Validator_Regex, validate) { + zend_bool failed = 0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *cacheOptions_param = NULL; - zval cacheOptions; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *validation, validation_sub, *field, field_sub, matches, value, pattern, _0, _1$$3, _2$$4, _3$$6; zval *this_ptr = getThis(); - ZVAL_UNDEF(&cacheOptions); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&matches); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(cacheOptions) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &cacheOptions_param); - zephir_get_arrval(&cacheOptions, cacheOptions_param); + zephir_fetch_params(1, 2, 0, &validation, &field); - zephir_update_property_zval(this_ptr, ZEND_STRL("cacheOptions"), &cacheOptions); - RETURN_THIS(); + ZEPHIR_INIT_VAR(&matches); + ZVAL_NULL(&matches); + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "pattern"); + ZEPHIR_CALL_METHOD(&pattern, this_ptr, "getoption", NULL, 0, &_0); + zephir_check_call_status(); + if (Z_TYPE_P(&pattern) == IS_ARRAY) { + zephir_array_fetch(&_1$$3, &pattern, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/Regex.zep", 91); + ZEPHIR_CPY_WRT(&pattern, &_1$$3); + } + ZEPHIR_INIT_NVAR(&_0); + zephir_preg_match(&_0, &pattern, &value, &matches, 0, 0 , 0 ); + if (zephir_is_true(&_0)) { + zephir_array_fetch_long(&_2$$4, &matches, 0, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/Regex.zep", 95); + failed = !ZEPHIR_IS_EQUAL(&_2$$4, &value); + } else { + failed = 1; + } + if (failed) { + ZEPHIR_CALL_METHOD(&_3$$6, this_ptr, "messagefactory", NULL, 0, validation, field); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_3$$6); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, clean) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZEPHIR_MM_GROW(); +#ifdef HAVE_CONFIG_H +#endif - ZEPHIR_INIT_VAR(&_0); - array_init(&_0); - zephir_update_static_property_ce(phalcon_mvc_model_query_ce, ZEND_STRL("internalPhqlCache"), &_0); - ZEPHIR_MM_RESTORE(); + + + + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_StringLength) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator, StringLength, phalcon, validation_validator_stringlength, phalcon_validation_abstractvalidatorcomposite_ce, phalcon_validation_validator_stringlength_method_entry, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Query, execute) +static PHP_METHOD(Phalcon_Validation_Validator_StringLength, __construct) { + zend_string *_3; + zend_ulong _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_6 = NULL, *_9 = NULL, *_11 = NULL, *_17 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL; - zval *bindParams_param = NULL, *bindTypes_param = NULL, uniqueRow, cacheOptions, key, cacheService, cache, result, preparedResult, defaultBindParams, mergedParams, defaultBindTypes, mergedTypes, type, lifetime, intermediate, _0, _2$$3, _3$$3, _4$$3, _5$$7, _6$$17, _7$$17; - zval bindParams, bindTypes; + zval *options_param = NULL, included, key, message, validator, value, *_0, _1, _4$$3, _5$$3, _7$$3, _12$$15, _13$$15, _14$$15; + zval options, _8$$4, _10$$9, _15$$16, _16$$21; zval *this_ptr = getThis(); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); - ZVAL_UNDEF(&uniqueRow); - ZVAL_UNDEF(&cacheOptions); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&_8$$4); + ZVAL_UNDEF(&_10$$9); + ZVAL_UNDEF(&_15$$16); + ZVAL_UNDEF(&_16$$21); + ZVAL_UNDEF(&included); ZVAL_UNDEF(&key); - ZVAL_UNDEF(&cacheService); - ZVAL_UNDEF(&cache); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&preparedResult); - ZVAL_UNDEF(&defaultBindParams); - ZVAL_UNDEF(&mergedParams); - ZVAL_UNDEF(&defaultBindTypes); - ZVAL_UNDEF(&mergedTypes); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&lifetime); - ZVAL_UNDEF(&intermediate); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&message); + ZVAL_UNDEF(&validator); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$7); - ZVAL_UNDEF(&_6$$17); - ZVAL_UNDEF(&_7$$17); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_12$$15); + ZVAL_UNDEF(&_13$$15); + ZVAL_UNDEF(&_14$$15); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(bindParams) - Z_PARAM_ARRAY(bindTypes) + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &bindParams_param, &bindTypes_param); - if (!bindParams_param) { - ZEPHIR_INIT_VAR(&bindParams); - array_init(&bindParams); - } else { - zephir_get_arrval(&bindParams, bindParams_param); - } - if (!bindTypes_param) { - ZEPHIR_INIT_VAR(&bindTypes); - array_init(&bindTypes); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); } else { - zephir_get_arrval(&bindTypes, bindTypes_param); + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("uniqueRow"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&uniqueRow, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("cacheOptions"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&cacheOptions, &_0); - if (Z_TYPE_P(&cacheOptions) != IS_NULL) { - if (UNEXPECTED(Z_TYPE_P(&cacheOptions) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid caching options", "phalcon/Mvc/Model/Query.zep", 276); - return; - } - ZEPHIR_OBS_VAR(&key); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&key, &cacheOptions, SL("key"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A cache key must be provided to identify the cached resultset in the cache backend", "phalcon/Mvc/Model/Query.zep", 285); - return; - } - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "lifetime"); - ZVAL_LONG(&_3$$3, 3600); - ZEPHIR_CALL_CE_STATIC(&lifetime, phalcon_helper_arr_ce, "get", &_1, 16, &cacheOptions, &_2$$3, &_3$$3); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_2$$3); - ZVAL_STRING(&_2$$3, "service"); - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "modelsCache"); - ZEPHIR_CALL_CE_STATIC(&cacheService, phalcon_helper_arr_ce, "get", &_1, 16, &cacheOptions, &_2$$3, &_4$$3); - zephir_check_call_status(); - zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&cache, &_3$$3, "getshared", NULL, 0, &cacheService); - zephir_check_call_status(); - if (UNEXPECTED(!((zephir_is_instance_of(&cache, SL("Psr\\SimpleCache\\CacheInterface")))))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Cache service must be an object implementing Psr\\SimpleCache\\CacheInterface", "phalcon/Mvc/Model/Query.zep", 296); - return; - } - ZEPHIR_CALL_METHOD(&result, &cache, "get", NULL, 0, &key); - zephir_check_call_status(); - if (!(ZEPHIR_IS_EMPTY(&result))) { - if (UNEXPECTED(Z_TYPE_P(&result) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Cache didn't return a valid resultset", "phalcon/Mvc/Model/Query.zep", 305); - return; + ZEPHIR_INIT_VAR(&included); + ZVAL_NULL(&included); + ZEPHIR_INIT_VAR(&message); + ZVAL_NULL(&message); + zephir_is_iterable(&options, 1, "phalcon/Validation/Validator/StringLength.zep", 167); + if (Z_TYPE_P(&options) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&options), _2, _3, _0) + { + ZEPHIR_INIT_NVAR(&key); + if (_3 != NULL) { + ZVAL_STR_COPY(&key, _3); + } else { + ZVAL_LONG(&key, _2); } - ZVAL_BOOL(&_5$$7, 0); - ZEPHIR_CALL_METHOD(NULL, &result, "setisfresh", NULL, 0, &_5$$7); + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0); + ZEPHIR_INIT_NVAR(&_4$$3); + ZVAL_STRING(&_4$$3, "min"); + ZEPHIR_CALL_FUNCTION(&_5$$3, "strcasecmp", &_6, 47, &key, &_4$$3); zephir_check_call_status(); - if (zephir_is_true(&uniqueRow)) { - ZEPHIR_CALL_METHOD(&preparedResult, &result, "getfirst", NULL, 0); + ZEPHIR_INIT_NVAR(&_4$$3); + ZVAL_STRING(&_4$$3, "max"); + ZEPHIR_CALL_FUNCTION(&_7$$3, "strcasecmp", &_6, 47, &key, &_4$$3); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG_IDENTICAL(&_5$$3, 0)) { + if (zephir_array_isset_string(&options, SL("message"))) { + ZEPHIR_OBS_NVAR(&message); + zephir_array_fetch_string(&message, &options, SL("message"), PH_NOISY, "phalcon/Validation/Validator/StringLength.zep", 107); + } else if (zephir_array_isset_string(&options, SL("messageMinimum"))) { + ZEPHIR_OBS_NVAR(&message); + zephir_array_fetch_string(&message, &options, SL("messageMinimum"), PH_NOISY, "phalcon/Validation/Validator/StringLength.zep", 109); + } + if (zephir_array_isset_string(&options, SL("included"))) { + ZEPHIR_OBS_NVAR(&included); + zephir_array_fetch_string(&included, &options, SL("included"), PH_NOISY, "phalcon/Validation/Validator/StringLength.zep", 114); + } else if (zephir_array_isset_string(&options, SL("includedMinimum"))) { + ZEPHIR_OBS_NVAR(&included); + zephir_array_fetch_string(&included, &options, SL("includedMinimum"), PH_NOISY, "phalcon/Validation/Validator/StringLength.zep", 116); + } + ZEPHIR_INIT_NVAR(&validator); + object_init_ex(&validator, phalcon_validation_validator_stringlength_min_ce); + ZEPHIR_INIT_NVAR(&_8$$4); + zephir_create_array(&_8$$4, 3, 0); + zephir_array_update_string(&_8$$4, SL("min"), &value, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_8$$4, SL("message"), &message, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_8$$4, SL("included"), &included, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &validator, "__construct", &_9, 0, &_8$$4); + zephir_check_call_status(); + zephir_array_unset_string(&options, SL("min"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("message"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("messageMinimum"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("included"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("includedMinimum"), PH_SEPARATE); + } else if (ZEPHIR_IS_LONG_IDENTICAL(&_7$$3, 0)) { + if (zephir_array_isset_string(&options, SL("message"))) { + ZEPHIR_OBS_NVAR(&message); + zephir_array_fetch_string(&message, &options, SL("message"), PH_NOISY, "phalcon/Validation/Validator/StringLength.zep", 135); + } else if (zephir_array_isset_string(&options, SL("messageMaximum"))) { + ZEPHIR_OBS_NVAR(&message); + zephir_array_fetch_string(&message, &options, SL("messageMaximum"), PH_NOISY, "phalcon/Validation/Validator/StringLength.zep", 137); + } + if (zephir_array_isset_string(&options, SL("included"))) { + ZEPHIR_OBS_NVAR(&included); + zephir_array_fetch_string(&included, &options, SL("included"), PH_NOISY, "phalcon/Validation/Validator/StringLength.zep", 142); + } else if (zephir_array_isset_string(&options, SL("includedMaximum"))) { + ZEPHIR_OBS_NVAR(&included); + zephir_array_fetch_string(&included, &options, SL("includedMaximum"), PH_NOISY, "phalcon/Validation/Validator/StringLength.zep", 144); + } + ZEPHIR_INIT_NVAR(&validator); + object_init_ex(&validator, phalcon_validation_validator_stringlength_max_ce); + ZEPHIR_INIT_NVAR(&_10$$9); + zephir_create_array(&_10$$9, 3, 0); + zephir_array_update_string(&_10$$9, SL("max"), &value, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_10$$9, SL("message"), &message, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_10$$9, SL("included"), &included, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &validator, "__construct", &_11, 0, &_10$$9); zephir_check_call_status(); + zephir_array_unset_string(&options, SL("max"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("message"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("messageMaximum"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("included"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("includedMaximum"), PH_SEPARATE); } else { - ZEPHIR_CPY_WRT(&preparedResult, &result); + continue; } - RETURN_CCTOR(&preparedResult); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("cache"), &cache); - } - ZEPHIR_CALL_METHOD(&intermediate, this_ptr, "parse", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&defaultBindParams); - zephir_read_property(&defaultBindParams, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(&mergedParams); - zephir_add_function(&mergedParams, &defaultBindParams, &bindParams); - ZEPHIR_OBS_VAR(&defaultBindTypes); - zephir_read_property(&defaultBindTypes, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC); - if (Z_TYPE_P(&defaultBindTypes) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&mergedTypes); - zephir_add_function(&mergedTypes, &defaultBindTypes, &bindTypes); + zephir_update_property_array_append(this_ptr, SL("validators"), &validator); + } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CPY_WRT(&mergedTypes, &bindTypes); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&type, &_0); - do { - if (ZEPHIR_IS_LONG(&type, 309)) { - ZEPHIR_CALL_METHOD(&result, this_ptr, "executeselect", NULL, 456, &intermediate, &mergedParams, &mergedTypes); + ZEPHIR_CALL_METHOD(NULL, &options, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &options, "valid", NULL, 0); zephir_check_call_status(); - break; - } - if (ZEPHIR_IS_LONG(&type, 306)) { - ZEPHIR_CALL_METHOD(&result, this_ptr, "executeinsert", NULL, 457, &intermediate, &mergedParams, &mergedTypes); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &options, "key", NULL, 0); zephir_check_call_status(); - break; - } - if (ZEPHIR_IS_LONG(&type, 300)) { - ZEPHIR_CALL_METHOD(&result, this_ptr, "executeupdate", NULL, 458, &intermediate, &mergedParams, &mergedTypes); + ZEPHIR_CALL_METHOD(&value, &options, "current", NULL, 0); zephir_check_call_status(); - break; - } - if (ZEPHIR_IS_LONG(&type, 303)) { - ZEPHIR_CALL_METHOD(&result, this_ptr, "executedelete", NULL, 459, &intermediate, &mergedParams, &mergedTypes); + ZEPHIR_INIT_NVAR(&_12$$15); + ZVAL_STRING(&_12$$15, "min"); + ZEPHIR_CALL_FUNCTION(&_13$$15, "strcasecmp", &_6, 47, &key, &_12$$15); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_12$$15); + ZVAL_STRING(&_12$$15, "max"); + ZEPHIR_CALL_FUNCTION(&_14$$15, "strcasecmp", &_6, 47, &key, &_12$$15); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG_IDENTICAL(&_13$$15, 0)) { + if (zephir_array_isset_string(&options, SL("message"))) { + ZEPHIR_OBS_NVAR(&message); + zephir_array_fetch_string(&message, &options, SL("message"), PH_NOISY, "phalcon/Validation/Validator/StringLength.zep", 107); + } else if (zephir_array_isset_string(&options, SL("messageMinimum"))) { + ZEPHIR_OBS_NVAR(&message); + zephir_array_fetch_string(&message, &options, SL("messageMinimum"), PH_NOISY, "phalcon/Validation/Validator/StringLength.zep", 109); + } + if (zephir_array_isset_string(&options, SL("included"))) { + ZEPHIR_OBS_NVAR(&included); + zephir_array_fetch_string(&included, &options, SL("included"), PH_NOISY, "phalcon/Validation/Validator/StringLength.zep", 114); + } else if (zephir_array_isset_string(&options, SL("includedMinimum"))) { + ZEPHIR_OBS_NVAR(&included); + zephir_array_fetch_string(&included, &options, SL("includedMinimum"), PH_NOISY, "phalcon/Validation/Validator/StringLength.zep", 116); + } + ZEPHIR_INIT_NVAR(&validator); + object_init_ex(&validator, phalcon_validation_validator_stringlength_min_ce); + ZEPHIR_INIT_NVAR(&_15$$16); + zephir_create_array(&_15$$16, 3, 0); + zephir_array_update_string(&_15$$16, SL("min"), &value, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_15$$16, SL("message"), &message, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_15$$16, SL("included"), &included, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &validator, "__construct", &_11, 0, &_15$$16); + zephir_check_call_status(); + zephir_array_unset_string(&options, SL("min"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("message"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("messageMinimum"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("included"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("includedMinimum"), PH_SEPARATE); + } else if (ZEPHIR_IS_LONG_IDENTICAL(&_14$$15, 0)) { + if (zephir_array_isset_string(&options, SL("message"))) { + ZEPHIR_OBS_NVAR(&message); + zephir_array_fetch_string(&message, &options, SL("message"), PH_NOISY, "phalcon/Validation/Validator/StringLength.zep", 135); + } else if (zephir_array_isset_string(&options, SL("messageMaximum"))) { + ZEPHIR_OBS_NVAR(&message); + zephir_array_fetch_string(&message, &options, SL("messageMaximum"), PH_NOISY, "phalcon/Validation/Validator/StringLength.zep", 137); + } + if (zephir_array_isset_string(&options, SL("included"))) { + ZEPHIR_OBS_NVAR(&included); + zephir_array_fetch_string(&included, &options, SL("included"), PH_NOISY, "phalcon/Validation/Validator/StringLength.zep", 142); + } else if (zephir_array_isset_string(&options, SL("includedMaximum"))) { + ZEPHIR_OBS_NVAR(&included); + zephir_array_fetch_string(&included, &options, SL("includedMaximum"), PH_NOISY, "phalcon/Validation/Validator/StringLength.zep", 144); + } + ZEPHIR_INIT_NVAR(&validator); + object_init_ex(&validator, phalcon_validation_validator_stringlength_max_ce); + ZEPHIR_INIT_NVAR(&_16$$21); + zephir_create_array(&_16$$21, 3, 0); + zephir_array_update_string(&_16$$21, SL("max"), &value, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_16$$21, SL("message"), &message, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_16$$21, SL("included"), &included, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &validator, "__construct", &_11, 0, &_16$$21); + zephir_check_call_status(); + zephir_array_unset_string(&options, SL("max"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("message"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("messageMaximum"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("included"), PH_SEPARATE); + zephir_array_unset_string(&options, SL("includedMaximum"), PH_SEPARATE); + } else { + continue; + } + zephir_update_property_array_append(this_ptr, SL("validators"), &validator); + ZEPHIR_CALL_METHOD(NULL, &options, "next", NULL, 0); zephir_check_call_status(); - break; - } - ZEPHIR_INIT_VAR(&_6$$17); - object_init_ex(&_6$$17, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_7$$17); - ZEPHIR_CONCAT_SV(&_7$$17, "Unknown statement ", &type); - ZEPHIR_CALL_METHOD(NULL, &_6$$17, "__construct", NULL, 8, &_7$$17); - zephir_check_call_status(); - zephir_throw_exception_debug(&_6$$17, "phalcon/Mvc/Model/Query.zep", 388); - ZEPHIR_MM_RESTORE(); - return; - } while(0); - - if (Z_TYPE_P(&cacheOptions) != IS_NULL) { - if (!ZEPHIR_IS_LONG(&type, 309)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Only PHQL statements that return resultsets can be cached", "phalcon/Mvc/Model/Query.zep", 401); - return; } - ZEPHIR_CALL_METHOD(NULL, &cache, "set", NULL, 0, &key, &result, &lifetime); - zephir_check_call_status(); - } - if (zephir_is_true(&uniqueRow)) { - ZEPHIR_CALL_METHOD(&preparedResult, &result, "getfirst", NULL, 0); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(&preparedResult, &result); } - RETURN_CCTOR(&preparedResult); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Query, getCache) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "cache"); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Query, getCacheOptions) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "cacheOptions"); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Query, getBindParams) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "bindParams"); + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_stringlength_ce, getThis(), "__construct", &_17, 0, &options); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getBindTypes) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "bindTypes"); -} +#ifdef HAVE_CONFIG_H +#endif -static PHP_METHOD(Phalcon_Mvc_Model_Query, getDI) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "container"); -} -static PHP_METHOD(Phalcon_Mvc_Model_Query, getIntermediate) +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_Uniqueness) { - zval *this_ptr = getThis(); - - + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator, Uniqueness, phalcon, validation_validator_uniqueness, phalcon_validation_abstractcombinedfieldsvalidator_ce, phalcon_validation_validator_uniqueness_method_entry, 0); - RETURN_MEMBER(getThis(), "intermediate"); + zend_declare_property_string(phalcon_validation_validator_uniqueness_ce, SL("template"), "Field :field must be unique", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_validation_validator_uniqueness_ce, SL("columnMap"), ZEND_ACC_PRIVATE); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getSingleResult) +static PHP_METHOD(Phalcon_Validation_Validator_Uniqueness, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *bindParams_param = NULL, *bindTypes_param = NULL, _0, _1; - zval bindParams, bindTypes; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(bindParams) - Z_PARAM_ARRAY(bindTypes) + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &bindParams_param, &bindTypes_param); - if (!bindParams_param) { - ZEPHIR_INIT_VAR(&bindParams); - array_init(&bindParams); - } else { - zephir_get_arrval(&bindParams, bindParams_param); - } - if (!bindTypes_param) { - ZEPHIR_INIT_VAR(&bindTypes); - array_init(&bindTypes); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); } else { - zephir_get_arrval(&bindTypes, bindTypes_param); + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("uniqueRow"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_0)) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &bindParams, &bindTypes); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_CALL_METHOD(&_1, this_ptr, "execute", NULL, 0, &bindParams, &bindTypes); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&_1, "getfirst", NULL, 0); + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_uniqueness_ce, getThis(), "__construct", &_0, 0, &options); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getSql) +static PHP_METHOD(Phalcon_Validation_Validator_Uniqueness, validate) { - zval intermediate, _0, _1$$3, _2$$3, _3$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *validation, validation_sub, *field, field_sub, _0, _1$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&intermediate); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(&intermediate, this_ptr, "parse", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); - if (ZEPHIR_IS_LONG(&_0, 309)) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); - ZVAL_BOOL(&_3$$3, 1); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "executeselect", NULL, 456, &intermediate, &_1$$3, &_2$$3, &_3$$3); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "This type of statement generates multiple SQL statements", "phalcon/Mvc/Model/Query.zep", 507); - return; -} - -static PHP_METHOD(Phalcon_Mvc_Model_Query, getType) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "type"); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Query, getUniqueRow) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "uniqueRow"); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Query, parse) -{ - zval intermediate, phql, ast, irPhql, uniqueId, type, _0, _2$$5, _3$$7, _4$$13, _5$$13; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&intermediate); - ZVAL_UNDEF(&phql); - ZVAL_UNDEF(&ast); - ZVAL_UNDEF(&irPhql); - ZVAL_UNDEF(&uniqueId); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2$$5); - ZVAL_UNDEF(&_3$$7); - ZVAL_UNDEF(&_4$$13); - ZVAL_UNDEF(&_5$$13); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("intermediate"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&intermediate, &_0); - if (Z_TYPE_P(&intermediate) == IS_ARRAY) { - RETURN_CCTOR(&intermediate); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&phql, &_0); - ZEPHIR_CALL_CE_STATIC(&ast, phalcon_mvc_model_query_lang_ce, "parsephql", &_1, 0, &phql); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&irPhql); - ZVAL_NULL(&irPhql); - ZEPHIR_INIT_VAR(&uniqueId); - ZVAL_NULL(&uniqueId); - if (Z_TYPE_P(&ast) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&uniqueId); - if (zephir_array_isset_string_fetch(&uniqueId, &ast, SL("id"), 0)) { - ZEPHIR_OBS_NVAR(&irPhql); - zephir_read_static_property_ce(&_2$$5, phalcon_mvc_model_query_ce, SL("internalPhqlCache"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&irPhql, &_2$$5, &uniqueId, 0)) { - if (Z_TYPE_P(&irPhql) == IS_ARRAY) { - zephir_array_fetch_string(&_3$$7, &ast, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 560); - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_3$$7); - RETURN_CCTOR(&irPhql); - } - } - } - ZEPHIR_OBS_VAR(&type); - if (zephir_array_isset_string_fetch(&type, &ast, SL("type"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("ast"), &ast); - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &type); - do { - if (ZEPHIR_IS_LONG(&type, 309)) { - ZEPHIR_CALL_METHOD(&irPhql, this_ptr, "_prepareselect", NULL, 460); - zephir_check_call_status(); - break; - } - if (ZEPHIR_IS_LONG(&type, 306)) { - ZEPHIR_CALL_METHOD(&irPhql, this_ptr, "_prepareinsert", NULL, 461); - zephir_check_call_status(); - break; - } - if (ZEPHIR_IS_LONG(&type, 300)) { - ZEPHIR_CALL_METHOD(&irPhql, this_ptr, "_prepareupdate", NULL, 462); - zephir_check_call_status(); - break; - } - if (ZEPHIR_IS_LONG(&type, 303)) { - ZEPHIR_CALL_METHOD(&irPhql, this_ptr, "_preparedelete", NULL, 463); - zephir_check_call_status(); - break; - } - ZEPHIR_INIT_VAR(&_4$$13); - object_init_ex(&_4$$13, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_5$$13); - ZEPHIR_CONCAT_SVSV(&_5$$13, "Unknown statement ", &type, ", when preparing: ", &phql); - ZEPHIR_CALL_METHOD(NULL, &_4$$13, "__construct", NULL, 8, &_5$$13); - zephir_check_call_status(); - zephir_throw_exception_debug(&_4$$13, "phalcon/Mvc/Model/Query.zep", 594); - ZEPHIR_MM_RESTORE(); - return; - } while(0); - - } - } - if (UNEXPECTED(Z_TYPE_P(&irPhql) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted AST", "phalcon/Mvc/Model/Query.zep", 600); - return; - } - if (Z_TYPE_P(&uniqueId) == IS_LONG) { - zephir_update_static_property_array_multi_ce(phalcon_mvc_model_query_ce, SL("internalPhqlCache"), &irPhql, SL("z"), 1, &uniqueId); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("intermediate"), &irPhql); - RETURN_CCTOR(&irPhql); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Query, setBindParams) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_bool merge; - zval *bindParams_param = NULL, *merge_param = NULL, currentBindParams, _0$$3; - zval bindParams; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(¤tBindParams); - ZVAL_UNDEF(&_0$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(bindParams) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(merge) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &bindParams_param, &merge_param); - ZEPHIR_OBS_COPY_OR_DUP(&bindParams, bindParams_param); - if (!merge_param) { - merge = 0; - } else { - merge = zephir_get_boolval(merge_param); - } + zephir_fetch_params(1, 2, 0, &validation, &field); - if (merge) { - zephir_read_property(¤tBindParams, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_0$$3); - zephir_add_function(&_0$$3, ¤tBindParams, &bindParams); - zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &_0$$3); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &bindParams); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "isuniqueness", NULL, 0, validation, field); + zephir_check_call_status(); + if (!(zephir_is_true(&_0))) { + ZEPHIR_CALL_METHOD(&_1$$3, this_ptr, "messagefactory", NULL, 0, validation, field); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_1$$3); + zephir_check_call_status(); + RETURN_MM_BOOL(0); } - RETURN_THIS(); + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, setBindTypes) +static PHP_METHOD(Phalcon_Validation_Validator_Uniqueness, getColumnNameReal) { + zend_bool _0, _7; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_bool merge; - zval *bindTypes_param = NULL, *merge_param = NULL, currentBindTypes, _0$$4; - zval bindTypes; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval field; + zval *record, record_sub, *field_param = NULL, _1, _6, _8, _2$$3, _3$$3, _4$$3, _5$$3, _9$$4, _10$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&bindTypes); - ZVAL_UNDEF(¤tBindTypes); - ZVAL_UNDEF(&_0$$4); + ZVAL_UNDEF(&record_sub); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&_10$$4); + ZVAL_UNDEF(&field); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(bindTypes) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(merge) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(record) + Z_PARAM_STR(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &bindTypes_param, &merge_param); - ZEPHIR_OBS_COPY_OR_DUP(&bindTypes, bindTypes_param); - if (!merge_param) { - merge = 0; - } else { - merge = zephir_get_boolval(merge_param); + zephir_fetch_params(1, 2, 0, &record, &field_param); + if (UNEXPECTED(Z_TYPE_P(field_param) != IS_STRING && Z_TYPE_P(field_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'field' must be of the type string")); + RETURN_MM_NULL(); } - - - if (UNEXPECTED(merge)) { - zephir_read_property(¤tBindTypes, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(¤tBindTypes) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&_0$$4); - zephir_add_function(&_0$$4, ¤tBindTypes, &bindTypes); - zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &_0$$4); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &bindTypes); - } + if (EXPECTED(Z_TYPE_P(field_param) == IS_STRING)) { + zephir_get_strval(&field, field_param); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &bindTypes); + ZEPHIR_INIT_VAR(&field); } - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Query, setDI) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *container, container_sub, manager, metaData, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&container_sub); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&metaData); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &container); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "modelsManager"); - ZEPHIR_CALL_METHOD(&manager, container, "getshared", NULL, 0, &_0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&manager) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Injected service 'modelsManager' is invalid", "phalcon/Mvc/Model/Query.zep", 664); - return; - } - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "modelsMetadata"); - ZEPHIR_CALL_METHOD(&metaData, container, "getshared", NULL, 0, &_0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&metaData) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Injected service 'modelsMetaData' is invalid", "phalcon/Mvc/Model/Query.zep", 670); - return; + _0 = ZEPHIR_GLOBAL(orm).column_renaming; + if (_0) { + zephir_read_property(&_1, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC | PH_READONLY); + _0 = !zephir_is_true(&_1); } - zephir_update_property_zval(this_ptr, ZEND_STRL("manager"), &manager); - zephir_update_property_zval(this_ptr, ZEND_STRL("metaData"), &metaData); - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Query, setIntermediate) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *intermediate_param = NULL; - zval intermediate; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&intermediate); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(intermediate) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &intermediate_param); - ZEPHIR_OBS_COPY_OR_DUP(&intermediate, intermediate_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("intermediate"), &intermediate); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Query, setSharedLock) -{ - zval *sharedLock_param = NULL, __$true, __$false; - zend_bool sharedLock; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(sharedLock) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(0, 1, &sharedLock_param); - if (!sharedLock_param) { - sharedLock = 0; - } else { - sharedLock = zephir_get_boolval(sharedLock_param); + if (_0) { + ZEPHIR_CALL_METHOD(&_2$$3, record, "getdi", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "modelsMetadata"); + ZEPHIR_CALL_METHOD(&_3$$3, &_2$$3, "getshared", NULL, 0, &_4$$3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_5$$3, &_3$$3, "getcolumnmap", NULL, 0, record); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("columnMap"), &_5$$3); } - - - if (sharedLock) { - zephir_update_property_zval(this_ptr, ZEND_STRL("sharedLock"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("sharedLock"), &__$false); + ZEPHIR_OBS_VAR(&_6); + zephir_read_property(&_6, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC); + _7 = Z_TYPE_P(&_6) == IS_ARRAY; + if (_7) { + zephir_read_property(&_8, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC | PH_READONLY); + _7 = zephir_array_isset(&_8, &field); } - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Query, setTransaction) -{ - zval *transaction, transaction_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&transaction_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(transaction, phalcon_mvc_model_transactioninterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &transaction); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("transaction"), transaction); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Query, setType) -{ - zval *type_param = NULL, _0; - zend_long type; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(type) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &type_param); - type = zephir_get_intval(type_param); - - - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, type); - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_0); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Query, setUniqueRow) -{ - zval *uniqueRow_param = NULL, __$true, __$false; - zend_bool uniqueRow; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(uniqueRow) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &uniqueRow_param); - uniqueRow = zephir_get_boolval(uniqueRow_param); - - - if (uniqueRow) { - zephir_update_property_zval(this_ptr, ZEND_STRL("uniqueRow"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("uniqueRow"), &__$false); + if (_7) { + zephir_read_property(&_9$$4, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_10$$4, &_9$$4, &field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/Uniqueness.zep", 147); + RETURN_CTOR(&_10$$4); } - RETURN_THISW(); + RETURN_CTOR(&field); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, executeDelete) +static PHP_METHOD(Phalcon_Validation_Validator_Uniqueness, isUniqueness) { + zend_class_entry *_9; + zend_bool isModel = 0, _7; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL, *_6 = NULL, *_8 = NULL; + zephir_fcall_cache_entry *_4 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *intermediate_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, models, modelName, model, records, connection, record, _0, _3, _9, _1$$4, _2$$5, _5$$6, _7$$7; - zval intermediate, bindParams, bindTypes; + zval *validation, validation_sub, *field = NULL, field_sub, values, convert, record, params, className, singleField, _0, *_1, _2, _8, _3$$4, _5$$5, _6$$6; zval *this_ptr = getThis(); - ZVAL_UNDEF(&intermediate); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); - ZVAL_UNDEF(&models); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&records); - ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&values); + ZVAL_UNDEF(&convert); ZVAL_UNDEF(&record); + ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&singleField); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$5); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_7$$7); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_6$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_ARRAY(intermediate) - Z_PARAM_ARRAY(bindParams) - Z_PARAM_ARRAY(bindTypes) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &intermediate_param, &bindParams_param, &bindTypes_param); - zephir_get_arrval(&intermediate, intermediate_param); - zephir_get_arrval(&bindParams, bindParams_param); - zephir_get_arrval(&bindTypes, bindTypes_param); + zephir_fetch_params(1, 2, 0, &validation, &field); + ZEPHIR_SEPARATE_PARAM(field); - ZEPHIR_OBS_VAR(&models); - zephir_array_fetch_string(&models, &intermediate, SL("models"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 738); - if (UNEXPECTED(zephir_array_isset_long(&models, 1))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Delete from several models at the same time is still not supported", "phalcon/Mvc/Model/Query.zep", 743); - return; - } - ZEPHIR_OBS_VAR(&modelName); - zephir_array_fetch_long(&modelName, &models, 0, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 746); - ZEPHIR_OBS_VAR(&model); - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&model, &_0, &modelName, 0))) { - zephir_read_property(&_1$$4, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&model, &_1$$4, "load", NULL, 0, &modelName); - zephir_check_call_status(); + if (Z_TYPE_P(field) != IS_ARRAY) { + ZEPHIR_CPY_WRT(&singleField, field); + ZEPHIR_INIT_NVAR(field); + array_init(field); + zephir_array_append(field, &singleField, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 165); } - ZEPHIR_CALL_METHOD(&records, this_ptr, "getrelatedrecords", NULL, 464, &model, &intermediate, &bindParams, &bindTypes); + ZEPHIR_INIT_VAR(&values); + array_init(&values); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "convert"); + ZEPHIR_CALL_METHOD(&convert, this_ptr, "getoption", NULL, 0, &_0); zephir_check_call_status(); - if (!(zephir_fast_count_int(&records))) { - object_init_ex(return_value, phalcon_mvc_model_query_status_ce); - ZVAL_BOOL(&_2$$5, 1); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 465, &_2$$5); + zephir_is_iterable(field, 0, "phalcon/Validation/Validator/Uniqueness.zep", 175); + if (Z_TYPE_P(field) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(field), _1) + { + ZEPHIR_INIT_NVAR(&singleField); + ZVAL_COPY(&singleField, _1); + ZEPHIR_CALL_METHOD(&_3$$4, validation, "getvalue", &_4, 0, &singleField); + zephir_check_call_status(); + zephir_array_update_zval(&values, &singleField, &_3$$4, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, field, "rewind", NULL, 0); zephir_check_call_status(); - RETURN_MM(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, field, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&singleField, field, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_5$$5, validation, "getvalue", &_4, 0, &singleField); + zephir_check_call_status(); + zephir_array_update_zval(&values, &singleField, &_5$$5, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, field, "next", NULL, 0); + zephir_check_call_status(); + } } - ZEPHIR_CALL_METHOD(&connection, this_ptr, "getwriteconnection", NULL, 0, &model, &intermediate, &bindParams, &bindTypes); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &connection, "begin", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &records, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3, &records, "valid", NULL, 0); + ZEPHIR_INIT_NVAR(&singleField); + if (Z_TYPE_P(&convert) != IS_NULL) { + ZEPHIR_CALL_ZVAL_FUNCTION(&_6$$6, &convert, NULL, 0, &values); zephir_check_call_status(); - if (!(zephir_is_true(&_3))) { - break; + ZEPHIR_CPY_WRT(&values, &_6$$6); + if (UNEXPECTED(!(Z_TYPE_P(&values) == IS_ARRAY))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_validation_exception_ce, "Value conversion must return an array", "phalcon/Validation/Validator/Uniqueness.zep", 179); + return; } - ZEPHIR_CALL_METHOD(&record, &records, "current", &_4, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_5$$6, &record, "delete", NULL, 0); + } + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "model"); + ZEPHIR_CALL_METHOD(&record, this_ptr, "getoption", NULL, 0, &_0); + zephir_check_call_status(); + _7 = ZEPHIR_IS_EMPTY(&record); + if (!(_7)) { + _7 = Z_TYPE_P(&record) != IS_OBJECT; + } + if (_7) { + ZEPHIR_CALL_METHOD(&record, validation, "getentity", NULL, 0); zephir_check_call_status(); - if (!(zephir_is_true(&_5$$6))) { - ZEPHIR_CALL_METHOD(NULL, &connection, "rollback", &_6, 0); - zephir_check_call_status(); - object_init_ex(return_value, phalcon_mvc_model_query_status_ce); - ZVAL_BOOL(&_7$$7, 0); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 465, &_7$$7, &record); - zephir_check_call_status(); - RETURN_MM(); + if (UNEXPECTED(ZEPHIR_IS_EMPTY(&record))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_validation_exception_ce, "Model of record must be set to property \"model\"", "phalcon/Validation/Validator/Uniqueness.zep", 192); + return; } - ZEPHIR_CALL_METHOD(NULL, &records, "next", &_8, 0); + } + isModel = zephir_instance_of_ev(&record, phalcon_mvc_modelinterface_ce); + if (isModel) { + ZEPHIR_CALL_METHOD(¶ms, this_ptr, "isuniquenessmodel", NULL, 0, &record, field, &values); zephir_check_call_status(); + } else { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_validation_exception_ce, "The uniqueness validator works only with Phalcon\\Mvc\\Model", "phalcon/Validation/Validator/Uniqueness.zep", 212); + return; } - ZEPHIR_CALL_METHOD(NULL, &connection, "commit", NULL, 0); - zephir_check_call_status(); - object_init_ex(return_value, phalcon_mvc_model_query_status_ce); - ZVAL_BOOL(&_9, 1); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 465, &_9); + ZEPHIR_INIT_VAR(&className); + zephir_get_class(&className, &record, 0); + _9 = zephir_fetch_class(&className); + ZEPHIR_CALL_CE_STATIC(&_8, _9, "count", NULL, 0, ¶ms); zephir_check_call_status(); - RETURN_MM(); + RETURN_MM_BOOL(ZEPHIR_IS_LONG(&_8, 0)); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, executeInsert) +static PHP_METHOD(Phalcon_Validation_Validator_Uniqueness, isUniquenessModel) { - zend_string *_5; - zend_ulong _4; - zend_bool automaticFields = 0, _18$$8, _31$$17; + zval _24$$10, _26$$11, _36$$15, _38$$16, _49$$20, _51$$21, _63$$26, _65$$27, _75$$31, _77$$32, _101$$41, _103$$42, _113$$46, _115$$47, _126$$51, _128$$52, _140$$57, _142$$58, _152$$62, _154$$63; + zend_string *_18$$7, *_95$$38; + zend_ulong _17$$7, _94$$38; + zend_bool _9$$6, _87$$37; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_7 = NULL, *_9 = NULL, *_14 = NULL, *_16 = NULL, *_17 = NULL, *_22 = NULL, *_24 = NULL, *_30 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *intermediate_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, modelName, manager, connection, metaData, attributes, fields, columnMap, dialect, insertValues, number, value, model, values, exprValue, insertValue, wildcard, fieldName, attributeName, insertModel, _0, _1, *_2, _3, _34, _6$$8, _8$$11, _10$$11, _11$$11, _12$$12, _13$$12, _15$$13, _19$$15, _20$$15, _21$$17, _23$$20, _25$$20, _26$$20, _27$$21, _28$$21, _29$$22, _32$$24, _33$$24; - zval intermediate, bindParams, bindTypes; + zephir_fcall_cache_entry *_5 = NULL, *_14 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS, index = 0; + zval field, values; + zval *record, record_sub, *field_param = NULL, *values_param = NULL, params, attribute, metaData, primaryField, singleField, fieldExcept, singleExcept, notInValues, exceptConditions, value, except, _0, *_1, _2, _159, _177, _3$$3, _4$$3, _6$$4, _7$$4, _8$$5, _10$$6, _11$$6, _12$$6, _13$$6, *_15$$7, _16$$7, _19$$8, _20$$8, *_21$$9, _22$$9, _27$$9, _28$$9, _23$$10, _25$$11, _29$$12, _30$$12, _31$$13, _32$$13, *_33$$14, _34$$14, _39$$14, _40$$14, _35$$15, _37$$16, _41$$17, _42$$17, _43$$18, _44$$18, _45$$18, *_46$$19, _47$$19, _52$$19, _53$$19, _48$$20, _50$$21, _54$$22, _55$$22, *_56$$23, _57$$23, _58$$24, _59$$24, *_60$$25, _61$$25, _66$$25, _67$$25, _62$$26, _64$$27, _68$$28, _69$$28, _70$$29, _71$$29, *_72$$30, _73$$30, _78$$30, _79$$30, _74$$31, _76$$32, _80$$33, _81$$33, _82$$34, _83$$34, _84$$35, _85$$35, _86$$36, _88$$37, _89$$37, _90$$37, _91$$37, *_92$$38, _93$$38, _96$$39, _97$$39, *_98$$40, _99$$40, _104$$40, _105$$40, _100$$41, _102$$42, _106$$43, _107$$43, _108$$44, _109$$44, *_110$$45, _111$$45, _116$$45, _117$$45, _112$$46, _114$$47, _118$$48, _119$$48, _120$$49, _121$$49, _122$$49, *_123$$50, _124$$50, _129$$50, _130$$50, _125$$51, _127$$52, _131$$53, _132$$53, *_133$$54, _134$$54, _135$$55, _136$$55, *_137$$56, _138$$56, _143$$56, _144$$56, _139$$57, _141$$58, _145$$59, _146$$59, _147$$60, _148$$60, *_149$$61, _150$$61, _155$$61, _156$$61, _151$$62, _153$$63, _157$$64, _158$$64, _160$$65, _161$$65, _162$$65, *_163$$65, _164$$65, _165$$66, _166$$66, _167$$66, _168$$66, _169$$66, _170$$67, _171$$67, _172$$67, _173$$67, _174$$67, _175$$68, _176$$68; zval *this_ptr = getThis(); - ZVAL_UNDEF(&intermediate); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&record_sub); + ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&attribute); ZVAL_UNDEF(&metaData); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&fields); - ZVAL_UNDEF(&columnMap); - ZVAL_UNDEF(&dialect); - ZVAL_UNDEF(&insertValues); - ZVAL_UNDEF(&number); + ZVAL_UNDEF(&primaryField); + ZVAL_UNDEF(&singleField); + ZVAL_UNDEF(&fieldExcept); + ZVAL_UNDEF(&singleExcept); + ZVAL_UNDEF(¬InValues); + ZVAL_UNDEF(&exceptConditions); ZVAL_UNDEF(&value); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&values); - ZVAL_UNDEF(&exprValue); - ZVAL_UNDEF(&insertValue); - ZVAL_UNDEF(&wildcard); - ZVAL_UNDEF(&fieldName); - ZVAL_UNDEF(&attributeName); - ZVAL_UNDEF(&insertModel); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_34); - ZVAL_UNDEF(&_6$$8); - ZVAL_UNDEF(&_8$$11); - ZVAL_UNDEF(&_10$$11); - ZVAL_UNDEF(&_11$$11); - ZVAL_UNDEF(&_12$$12); - ZVAL_UNDEF(&_13$$12); - ZVAL_UNDEF(&_15$$13); - ZVAL_UNDEF(&_19$$15); - ZVAL_UNDEF(&_20$$15); - ZVAL_UNDEF(&_21$$17); - ZVAL_UNDEF(&_23$$20); - ZVAL_UNDEF(&_25$$20); - ZVAL_UNDEF(&_26$$20); - ZVAL_UNDEF(&_27$$21); - ZVAL_UNDEF(&_28$$21); - ZVAL_UNDEF(&_29$$22); - ZVAL_UNDEF(&_32$$24); - ZVAL_UNDEF(&_33$$24); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_ARRAY(intermediate) - Z_PARAM_ARRAY(bindParams) - Z_PARAM_ARRAY(bindTypes) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &intermediate_param, &bindParams_param, &bindTypes_param); - zephir_get_arrval(&intermediate, intermediate_param); - zephir_get_arrval(&bindParams, bindParams_param); - zephir_get_arrval(&bindTypes, bindTypes_param); - - - ZEPHIR_OBS_VAR(&modelName); - zephir_array_fetch_string(&modelName, &intermediate, SL("model"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 827); - zephir_read_property(&_0, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&manager, &_0); - ZEPHIR_OBS_VAR(&model); - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&model, &_0, &modelName, 0))) { - ZEPHIR_CALL_METHOD(&model, &manager, "load", NULL, 0, &modelName); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(&connection, this_ptr, "getwriteconnection", NULL, 0, &model, &intermediate, &bindParams, &bindTypes); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&metaData, &_1); - ZEPHIR_CALL_METHOD(&attributes, &metaData, "getattributes", NULL, 0, &model); - zephir_check_call_status(); - automaticFields = 0; - ZEPHIR_OBS_VAR(&fields); - if (!(zephir_array_isset_string_fetch(&fields, &intermediate, SL("fields"), 0))) { - automaticFields = 1; - ZEPHIR_CPY_WRT(&fields, &attributes); - if (ZEPHIR_GLOBAL(orm).column_renaming) { - ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getcolumnmap", NULL, 0, &model); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&columnMap); - ZVAL_NULL(&columnMap); - } - } - ZEPHIR_OBS_VAR(&values); - zephir_array_fetch_string(&values, &intermediate, SL("values"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 862); - if (UNEXPECTED(zephir_fast_count_int(&fields) != zephir_fast_count_int(&values))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The column count does not match the values count", "phalcon/Mvc/Model/Query.zep", 871); - return; - } - ZEPHIR_CALL_METHOD(&dialect, &connection, "getdialect", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&insertValues); - array_init(&insertValues); - zephir_is_iterable(&values, 0, "phalcon/Mvc/Model/Query.zep", 942); - if (Z_TYPE_P(&values) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&values), _4, _5, _2) - { - ZEPHIR_INIT_NVAR(&number); - if (_5 != NULL) { - ZVAL_STR_COPY(&number, _5); - } else { - ZVAL_LONG(&number, _4); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _2); - ZEPHIR_OBS_NVAR(&exprValue); - zephir_array_fetch_string(&exprValue, &value, SL("value"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 881); - zephir_array_fetch_string(&_6$$8, &value, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 883); - do { - if (ZEPHIR_IS_LONG(&_6$$8, 260) || ZEPHIR_IS_LONG(&_6$$8, 258) || ZEPHIR_IS_LONG(&_6$$8, 259)) { - ZEPHIR_CALL_METHOD(&insertValue, &dialect, "getsqlexpression", &_7, 0, &exprValue); - zephir_check_call_status(); - break; - } - if (ZEPHIR_IS_LONG(&_6$$8, 322)) { - ZEPHIR_INIT_NVAR(&insertValue); - ZVAL_NULL(&insertValue); - break; - } - if (ZEPHIR_IS_LONG(&_6$$8, 273) || ZEPHIR_IS_LONG(&_6$$8, 274) || ZEPHIR_IS_LONG(&_6$$8, 277)) { - ZEPHIR_CALL_METHOD(&_8$$11, &dialect, "getsqlexpression", &_9, 0, &exprValue); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_10$$11); - ZVAL_STRING(&_10$$11, ":"); - ZEPHIR_INIT_NVAR(&_11$$11); - ZVAL_STRING(&_11$$11, ""); - ZEPHIR_INIT_NVAR(&wildcard); - zephir_fast_str_replace(&wildcard, &_10$$11, &_11$$11, &_8$$11); - ZEPHIR_OBS_NVAR(&insertValue); - if (UNEXPECTED(!(zephir_array_isset_fetch(&insertValue, &bindParams, &wildcard, 0)))) { - ZEPHIR_INIT_NVAR(&_12$$12); - object_init_ex(&_12$$12, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_13$$12); - ZEPHIR_CONCAT_SVS(&_13$$12, "Bound parameter '", &wildcard, "' cannot be replaced because it isn't in the placeholders list"); - ZEPHIR_CALL_METHOD(NULL, &_12$$12, "__construct", &_14, 8, &_13$$12); - zephir_check_call_status(); - zephir_throw_exception_debug(&_12$$12, "phalcon/Mvc/Model/Query.zep", 907); - ZEPHIR_MM_RESTORE(); - return; - } - break; - } - ZEPHIR_INIT_NVAR(&insertValue); - object_init_ex(&insertValue, phalcon_db_rawvalue_ce); - ZEPHIR_CALL_METHOD(&_15$$13, &dialect, "getsqlexpression", &_16, 0, &exprValue); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &insertValue, "__construct", &_17, 34, &_15$$13); - zephir_check_call_status(); - break; - } while(0); - - ZEPHIR_OBS_NVAR(&fieldName); - zephir_array_fetch(&fieldName, &fields, &number, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 920); - _18$$8 = automaticFields; - if (_18$$8) { - _18$$8 = Z_TYPE_P(&columnMap) == IS_ARRAY; - } - if (_18$$8) { - ZEPHIR_OBS_NVAR(&attributeName); - if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeName, &columnMap, &fieldName, 0)))) { - ZEPHIR_INIT_NVAR(&_19$$15); - object_init_ex(&_19$$15, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_20$$15); - ZEPHIR_CONCAT_SVS(&_20$$15, "Column '", &fieldName, "' isn't part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_19$$15, "__construct", &_14, 8, &_20$$15); - zephir_check_call_status(); - zephir_throw_exception_debug(&_19$$15, "phalcon/Mvc/Model/Query.zep", 930); - ZEPHIR_MM_RESTORE(); - return; - } - } else { - ZEPHIR_CPY_WRT(&attributeName, &fieldName); - } - zephir_array_update_zval(&insertValues, &attributeName, &insertValue, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &values, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3, &values, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3)) { - break; - } - ZEPHIR_CALL_METHOD(&number, &values, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &values, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&exprValue); - zephir_array_fetch_string(&exprValue, &value, SL("value"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 881); - zephir_array_fetch_string(&_21$$17, &value, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 883); - do { - if (ZEPHIR_IS_LONG(&_21$$17, 260) || ZEPHIR_IS_LONG(&_21$$17, 258) || ZEPHIR_IS_LONG(&_21$$17, 259)) { - ZEPHIR_CALL_METHOD(&insertValue, &dialect, "getsqlexpression", &_22, 0, &exprValue); - zephir_check_call_status(); - break; - } - if (ZEPHIR_IS_LONG(&_21$$17, 322)) { - ZEPHIR_INIT_NVAR(&insertValue); - ZVAL_NULL(&insertValue); - break; - } - if (ZEPHIR_IS_LONG(&_21$$17, 273) || ZEPHIR_IS_LONG(&_21$$17, 274) || ZEPHIR_IS_LONG(&_21$$17, 277)) { - ZEPHIR_CALL_METHOD(&_23$$20, &dialect, "getsqlexpression", &_24, 0, &exprValue); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_25$$20); - ZVAL_STRING(&_25$$20, ":"); - ZEPHIR_INIT_NVAR(&_26$$20); - ZVAL_STRING(&_26$$20, ""); - ZEPHIR_INIT_NVAR(&wildcard); - zephir_fast_str_replace(&wildcard, &_25$$20, &_26$$20, &_23$$20); - ZEPHIR_OBS_NVAR(&insertValue); - if (UNEXPECTED(!(zephir_array_isset_fetch(&insertValue, &bindParams, &wildcard, 0)))) { - ZEPHIR_INIT_NVAR(&_27$$21); - object_init_ex(&_27$$21, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_28$$21); - ZEPHIR_CONCAT_SVS(&_28$$21, "Bound parameter '", &wildcard, "' cannot be replaced because it isn't in the placeholders list"); - ZEPHIR_CALL_METHOD(NULL, &_27$$21, "__construct", &_14, 8, &_28$$21); - zephir_check_call_status(); - zephir_throw_exception_debug(&_27$$21, "phalcon/Mvc/Model/Query.zep", 907); - ZEPHIR_MM_RESTORE(); - return; - } - break; - } - ZEPHIR_INIT_NVAR(&insertValue); - object_init_ex(&insertValue, phalcon_db_rawvalue_ce); - ZEPHIR_CALL_METHOD(&_29$$22, &dialect, "getsqlexpression", &_30, 0, &exprValue); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &insertValue, "__construct", &_17, 34, &_29$$22); - zephir_check_call_status(); - break; - } while(0); - - ZEPHIR_OBS_NVAR(&fieldName); - zephir_array_fetch(&fieldName, &fields, &number, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 920); - _31$$17 = automaticFields; - if (_31$$17) { - _31$$17 = Z_TYPE_P(&columnMap) == IS_ARRAY; - } - if (_31$$17) { - ZEPHIR_OBS_NVAR(&attributeName); - if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeName, &columnMap, &fieldName, 0)))) { - ZEPHIR_INIT_NVAR(&_32$$24); - object_init_ex(&_32$$24, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_33$$24); - ZEPHIR_CONCAT_SVS(&_33$$24, "Column '", &fieldName, "' isn't part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_32$$24, "__construct", &_14, 8, &_33$$24); - zephir_check_call_status(); - zephir_throw_exception_debug(&_32$$24, "phalcon/Mvc/Model/Query.zep", 930); - ZEPHIR_MM_RESTORE(); - return; - } - } else { - ZEPHIR_CPY_WRT(&attributeName, &fieldName); - } - zephir_array_update_zval(&insertValues, &attributeName, &insertValue, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &values, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&number); - ZEPHIR_CALL_METHOD(&insertModel, &manager, "load", NULL, 0, &modelName); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &insertModel, "assign", NULL, 0, &insertValues); - zephir_check_call_status(); - object_init_ex(return_value, phalcon_mvc_model_query_status_ce); - ZEPHIR_CALL_METHOD(&_34, &insertModel, "create", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 465, &_34, &insertModel); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Query, executeSelect) -{ - zend_string *_17, *_63, *_69, *_84$$93; - zend_ulong _16, _62, _68, _83$$93; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL, *_5 = NULL, *_8 = NULL, *_20 = NULL, *_21 = NULL, *_22 = NULL, *_30 = NULL, *_41 = NULL, *_42 = NULL, *_43 = NULL, *_51 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, numberObjects = 0; - zend_bool simulate, haveObjects = 0, haveScalars = 0, isComplex = 0, isSimpleStd = 0, isKeepingSnapshots = 0, _38$$28, _59$$46, _90$$83; - zval *intermediate_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, *simulate_param = NULL, __$true, __$null, manager, modelName, models, model, connection, connectionTypes, columns, column, selectColumns, simpleColumnMap, metaData, aliasCopy, sqlColumn, attributes, instance, columnMap, attribute, columnAlias, sqlAlias, dialect, sqlSelect, bindCounts, processed, wildcard, value, processedTypes, typeWildcard, result, resultData, cache, resultObject, columns1, typesColumnMap, wildcardValue, resultsetClassName, _0, *_1, _2, *_10, _11, *_14, _15, *_60, _61, *_66, _67, _73, _3$$3, _6$$5, _7$$7, _9$$9, _12$$11, _13$$16, _18$$28, _19$$29, *_23$$31, _24$$31, _29$$31, _26$$34, _28$$35, _31$$36, *_32$$37, _33$$37, _36$$41, _37$$42, _39$$46, _40$$47, *_44$$49, _45$$49, _50$$49, _47$$52, _49$$53, _52$$54, *_53$$55, _54$$55, _57$$59, _58$$60, _64$$67, _65$$71, _70$$73, _71$$76, _72$$79, _74$$90, *_75$$90, _76$$90, _78$$91, _80$$92, *_81$$93, _82$$93, _86$$94, _88$$95, _89$$85, _98$$83, _91$$98, _92$$98, _93$$97, _94$$97, _95$$99, _96$$99; - zval intermediate, bindParams, bindTypes, _25$$34, _27$$35, _34$$38, _35$$39, _46$$52, _48$$53, _55$$56, _56$$57, _77$$91, _79$$92, _85$$94, _87$$95, _97$$97; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&intermediate); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); - ZVAL_UNDEF(&_25$$34); - ZVAL_UNDEF(&_27$$35); - ZVAL_UNDEF(&_34$$38); - ZVAL_UNDEF(&_35$$39); - ZVAL_UNDEF(&_46$$52); - ZVAL_UNDEF(&_48$$53); - ZVAL_UNDEF(&_55$$56); - ZVAL_UNDEF(&_56$$57); - ZVAL_UNDEF(&_77$$91); - ZVAL_UNDEF(&_79$$92); - ZVAL_UNDEF(&_85$$94); - ZVAL_UNDEF(&_87$$95); - ZVAL_UNDEF(&_97$$97); - ZVAL_BOOL(&__$true, 1); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&models); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&connection); - ZVAL_UNDEF(&connectionTypes); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&column); - ZVAL_UNDEF(&selectColumns); - ZVAL_UNDEF(&simpleColumnMap); - ZVAL_UNDEF(&metaData); - ZVAL_UNDEF(&aliasCopy); - ZVAL_UNDEF(&sqlColumn); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&instance); - ZVAL_UNDEF(&columnMap); - ZVAL_UNDEF(&attribute); - ZVAL_UNDEF(&columnAlias); - ZVAL_UNDEF(&sqlAlias); - ZVAL_UNDEF(&dialect); - ZVAL_UNDEF(&sqlSelect); - ZVAL_UNDEF(&bindCounts); - ZVAL_UNDEF(&processed); - ZVAL_UNDEF(&wildcard); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&processedTypes); - ZVAL_UNDEF(&typeWildcard); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&resultData); - ZVAL_UNDEF(&cache); - ZVAL_UNDEF(&resultObject); - ZVAL_UNDEF(&columns1); - ZVAL_UNDEF(&typesColumnMap); - ZVAL_UNDEF(&wildcardValue); - ZVAL_UNDEF(&resultsetClassName); + ZVAL_UNDEF(&except); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_15); - ZVAL_UNDEF(&_61); - ZVAL_UNDEF(&_67); - ZVAL_UNDEF(&_73); + ZVAL_UNDEF(&_159); + ZVAL_UNDEF(&_177); ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_7$$7); - ZVAL_UNDEF(&_9$$9); - ZVAL_UNDEF(&_12$$11); - ZVAL_UNDEF(&_13$$16); - ZVAL_UNDEF(&_18$$28); - ZVAL_UNDEF(&_19$$29); - ZVAL_UNDEF(&_24$$31); - ZVAL_UNDEF(&_29$$31); - ZVAL_UNDEF(&_26$$34); - ZVAL_UNDEF(&_28$$35); - ZVAL_UNDEF(&_31$$36); - ZVAL_UNDEF(&_33$$37); - ZVAL_UNDEF(&_36$$41); - ZVAL_UNDEF(&_37$$42); - ZVAL_UNDEF(&_39$$46); - ZVAL_UNDEF(&_40$$47); - ZVAL_UNDEF(&_45$$49); - ZVAL_UNDEF(&_50$$49); - ZVAL_UNDEF(&_47$$52); - ZVAL_UNDEF(&_49$$53); - ZVAL_UNDEF(&_52$$54); - ZVAL_UNDEF(&_54$$55); - ZVAL_UNDEF(&_57$$59); - ZVAL_UNDEF(&_58$$60); - ZVAL_UNDEF(&_64$$67); - ZVAL_UNDEF(&_65$$71); - ZVAL_UNDEF(&_70$$73); - ZVAL_UNDEF(&_71$$76); - ZVAL_UNDEF(&_72$$79); - ZVAL_UNDEF(&_74$$90); - ZVAL_UNDEF(&_76$$90); - ZVAL_UNDEF(&_78$$91); - ZVAL_UNDEF(&_80$$92); - ZVAL_UNDEF(&_82$$93); - ZVAL_UNDEF(&_86$$94); - ZVAL_UNDEF(&_88$$95); - ZVAL_UNDEF(&_89$$85); - ZVAL_UNDEF(&_98$$83); - ZVAL_UNDEF(&_91$$98); - ZVAL_UNDEF(&_92$$98); - ZVAL_UNDEF(&_93$$97); - ZVAL_UNDEF(&_94$$97); - ZVAL_UNDEF(&_95$$99); - ZVAL_UNDEF(&_96$$99); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_10$$6); + ZVAL_UNDEF(&_11$$6); + ZVAL_UNDEF(&_12$$6); + ZVAL_UNDEF(&_13$$6); + ZVAL_UNDEF(&_16$$7); + ZVAL_UNDEF(&_19$$8); + ZVAL_UNDEF(&_20$$8); + ZVAL_UNDEF(&_22$$9); + ZVAL_UNDEF(&_27$$9); + ZVAL_UNDEF(&_28$$9); + ZVAL_UNDEF(&_23$$10); + ZVAL_UNDEF(&_25$$11); + ZVAL_UNDEF(&_29$$12); + ZVAL_UNDEF(&_30$$12); + ZVAL_UNDEF(&_31$$13); + ZVAL_UNDEF(&_32$$13); + ZVAL_UNDEF(&_34$$14); + ZVAL_UNDEF(&_39$$14); + ZVAL_UNDEF(&_40$$14); + ZVAL_UNDEF(&_35$$15); + ZVAL_UNDEF(&_37$$16); + ZVAL_UNDEF(&_41$$17); + ZVAL_UNDEF(&_42$$17); + ZVAL_UNDEF(&_43$$18); + ZVAL_UNDEF(&_44$$18); + ZVAL_UNDEF(&_45$$18); + ZVAL_UNDEF(&_47$$19); + ZVAL_UNDEF(&_52$$19); + ZVAL_UNDEF(&_53$$19); + ZVAL_UNDEF(&_48$$20); + ZVAL_UNDEF(&_50$$21); + ZVAL_UNDEF(&_54$$22); + ZVAL_UNDEF(&_55$$22); + ZVAL_UNDEF(&_57$$23); + ZVAL_UNDEF(&_58$$24); + ZVAL_UNDEF(&_59$$24); + ZVAL_UNDEF(&_61$$25); + ZVAL_UNDEF(&_66$$25); + ZVAL_UNDEF(&_67$$25); + ZVAL_UNDEF(&_62$$26); + ZVAL_UNDEF(&_64$$27); + ZVAL_UNDEF(&_68$$28); + ZVAL_UNDEF(&_69$$28); + ZVAL_UNDEF(&_70$$29); + ZVAL_UNDEF(&_71$$29); + ZVAL_UNDEF(&_73$$30); + ZVAL_UNDEF(&_78$$30); + ZVAL_UNDEF(&_79$$30); + ZVAL_UNDEF(&_74$$31); + ZVAL_UNDEF(&_76$$32); + ZVAL_UNDEF(&_80$$33); + ZVAL_UNDEF(&_81$$33); + ZVAL_UNDEF(&_82$$34); + ZVAL_UNDEF(&_83$$34); + ZVAL_UNDEF(&_84$$35); + ZVAL_UNDEF(&_85$$35); + ZVAL_UNDEF(&_86$$36); + ZVAL_UNDEF(&_88$$37); + ZVAL_UNDEF(&_89$$37); + ZVAL_UNDEF(&_90$$37); + ZVAL_UNDEF(&_91$$37); + ZVAL_UNDEF(&_93$$38); + ZVAL_UNDEF(&_96$$39); + ZVAL_UNDEF(&_97$$39); + ZVAL_UNDEF(&_99$$40); + ZVAL_UNDEF(&_104$$40); + ZVAL_UNDEF(&_105$$40); + ZVAL_UNDEF(&_100$$41); + ZVAL_UNDEF(&_102$$42); + ZVAL_UNDEF(&_106$$43); + ZVAL_UNDEF(&_107$$43); + ZVAL_UNDEF(&_108$$44); + ZVAL_UNDEF(&_109$$44); + ZVAL_UNDEF(&_111$$45); + ZVAL_UNDEF(&_116$$45); + ZVAL_UNDEF(&_117$$45); + ZVAL_UNDEF(&_112$$46); + ZVAL_UNDEF(&_114$$47); + ZVAL_UNDEF(&_118$$48); + ZVAL_UNDEF(&_119$$48); + ZVAL_UNDEF(&_120$$49); + ZVAL_UNDEF(&_121$$49); + ZVAL_UNDEF(&_122$$49); + ZVAL_UNDEF(&_124$$50); + ZVAL_UNDEF(&_129$$50); + ZVAL_UNDEF(&_130$$50); + ZVAL_UNDEF(&_125$$51); + ZVAL_UNDEF(&_127$$52); + ZVAL_UNDEF(&_131$$53); + ZVAL_UNDEF(&_132$$53); + ZVAL_UNDEF(&_134$$54); + ZVAL_UNDEF(&_135$$55); + ZVAL_UNDEF(&_136$$55); + ZVAL_UNDEF(&_138$$56); + ZVAL_UNDEF(&_143$$56); + ZVAL_UNDEF(&_144$$56); + ZVAL_UNDEF(&_139$$57); + ZVAL_UNDEF(&_141$$58); + ZVAL_UNDEF(&_145$$59); + ZVAL_UNDEF(&_146$$59); + ZVAL_UNDEF(&_147$$60); + ZVAL_UNDEF(&_148$$60); + ZVAL_UNDEF(&_150$$61); + ZVAL_UNDEF(&_155$$61); + ZVAL_UNDEF(&_156$$61); + ZVAL_UNDEF(&_151$$62); + ZVAL_UNDEF(&_153$$63); + ZVAL_UNDEF(&_157$$64); + ZVAL_UNDEF(&_158$$64); + ZVAL_UNDEF(&_160$$65); + ZVAL_UNDEF(&_161$$65); + ZVAL_UNDEF(&_162$$65); + ZVAL_UNDEF(&_164$$65); + ZVAL_UNDEF(&_165$$66); + ZVAL_UNDEF(&_166$$66); + ZVAL_UNDEF(&_167$$66); + ZVAL_UNDEF(&_168$$66); + ZVAL_UNDEF(&_169$$66); + ZVAL_UNDEF(&_170$$67); + ZVAL_UNDEF(&_171$$67); + ZVAL_UNDEF(&_172$$67); + ZVAL_UNDEF(&_173$$67); + ZVAL_UNDEF(&_174$$67); + ZVAL_UNDEF(&_175$$68); + ZVAL_UNDEF(&_176$$68); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&values); + ZVAL_UNDEF(&_24$$10); + ZVAL_UNDEF(&_26$$11); + ZVAL_UNDEF(&_36$$15); + ZVAL_UNDEF(&_38$$16); + ZVAL_UNDEF(&_49$$20); + ZVAL_UNDEF(&_51$$21); + ZVAL_UNDEF(&_63$$26); + ZVAL_UNDEF(&_65$$27); + ZVAL_UNDEF(&_75$$31); + ZVAL_UNDEF(&_77$$32); + ZVAL_UNDEF(&_101$$41); + ZVAL_UNDEF(&_103$$42); + ZVAL_UNDEF(&_113$$46); + ZVAL_UNDEF(&_115$$47); + ZVAL_UNDEF(&_126$$51); + ZVAL_UNDEF(&_128$$52); + ZVAL_UNDEF(&_140$$57); + ZVAL_UNDEF(&_142$$58); + ZVAL_UNDEF(&_152$$62); + ZVAL_UNDEF(&_154$$63); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 4) - Z_PARAM_ARRAY(intermediate) - Z_PARAM_ARRAY(bindParams) - Z_PARAM_ARRAY(bindTypes) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(simulate) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_ZVAL(record) + Z_PARAM_ARRAY(field) + Z_PARAM_ARRAY(values) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 1, &intermediate_param, &bindParams_param, &bindTypes_param, &simulate_param); - zephir_get_arrval(&intermediate, intermediate_param); - zephir_get_arrval(&bindParams, bindParams_param); - zephir_get_arrval(&bindTypes, bindTypes_param); - if (!simulate_param) { - simulate = 0; - } else { - simulate = zephir_get_boolval(simulate_param); - } + zephir_fetch_params(1, 3, 0, &record, &field_param, &values_param); + zephir_get_arrval(&field, field_param); + zephir_get_arrval(&values, values_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&manager, &_0); - ZEPHIR_INIT_VAR(&connectionTypes); - array_init(&connectionTypes); - ZEPHIR_OBS_VAR(&models); - zephir_array_fetch_string(&models, &intermediate, SL("models"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 979); - zephir_is_iterable(&models, 0, "phalcon/Mvc/Model/Query.zep", 1007); - if (Z_TYPE_P(&models) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&models), _1) - { - ZEPHIR_INIT_NVAR(&modelName); - ZVAL_COPY(&modelName, _1); - ZEPHIR_OBS_NVAR(&model); - zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&model, &_3$$3, &modelName, 0))) { - ZEPHIR_CALL_METHOD(&model, &manager, "load", &_4, 0, &modelName); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("modelsInstances"), &modelName, &model); - } - ZEPHIR_CALL_METHOD(&connection, this_ptr, "getreadconnection", &_5, 0, &model, &intermediate, &bindParams, &bindTypes); - zephir_check_call_status(); - if (Z_TYPE_P(&connection) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&_6$$5, &connection, "gettype", NULL, 0); - zephir_check_call_status(); - zephir_array_update_zval(&connectionTypes, &_6$$5, &__$true, PH_COPY | PH_SEPARATE); - if (UNEXPECTED(zephir_fast_count_int(&connectionTypes) == 2)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Cannot use models of different database systems in the same query", "phalcon/Mvc/Model/Query.zep", 1002); - return; - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &models, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &models, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&modelName, &models, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&model); - zephir_read_property(&_7$$7, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&model, &_7$$7, &modelName, 0))) { - ZEPHIR_CALL_METHOD(&model, &manager, "load", &_8, 0, &modelName); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("modelsInstances"), &modelName, &model); - } - ZEPHIR_CALL_METHOD(&connection, this_ptr, "getreadconnection", &_5, 0, &model, &intermediate, &bindParams, &bindTypes); - zephir_check_call_status(); - if (Z_TYPE_P(&connection) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&_9$$9, &connection, "gettype", NULL, 0); - zephir_check_call_status(); - zephir_array_update_zval(&connectionTypes, &_9$$9, &__$true, PH_COPY | PH_SEPARATE); - if (UNEXPECTED(zephir_fast_count_int(&connectionTypes) == 2)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Cannot use models of different database systems in the same query", "phalcon/Mvc/Model/Query.zep", 1002); - return; - } - } - ZEPHIR_CALL_METHOD(NULL, &models, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&modelName); - ZEPHIR_OBS_VAR(&columns); - zephir_array_fetch_string(&columns, &intermediate, SL("columns"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1007); - haveObjects = 0; - haveScalars = 0; - isComplex = 0; - numberObjects = 0; - ZEPHIR_CPY_WRT(&columns1, &columns); - zephir_is_iterable(&columns, 0, "phalcon/Mvc/Model/Query.zep", 1035); - if (Z_TYPE_P(&columns) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&columns), _10) + ZEPHIR_INIT_VAR(&exceptConditions); + array_init(&exceptConditions); + index = 0; + ZEPHIR_INIT_VAR(¶ms); + zephir_create_array(¶ms, 2, 0); + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + zephir_array_update_string(¶ms, SL("conditions"), &_0, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_0); + array_init(&_0); + zephir_array_update_string(¶ms, SL("bind"), &_0, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "except"); + ZEPHIR_CALL_METHOD(&except, this_ptr, "getoption", NULL, 0, &_0); + zephir_check_call_status(); + zephir_is_iterable(&field, 0, "phalcon/Validation/Validator/Uniqueness.zep", 405); + if (Z_TYPE_P(&field) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&field), _1) { - ZEPHIR_INIT_NVAR(&column); - ZVAL_COPY(&column, _10); - if (UNEXPECTED(Z_TYPE_P(&column) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid column definition", "phalcon/Mvc/Model/Query.zep", 1019); - return; - } - zephir_array_fetch_string(&_12$$11, &column, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1022); - if (ZEPHIR_IS_STRING(&_12$$11, "scalar")) { - if (!(zephir_array_isset_string(&column, SL("balias")))) { - isComplex = 1; - } - haveScalars = 1; - } else { - haveObjects = 1; - numberObjects++; - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &columns, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_11, &columns, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_11)) { - break; - } - ZEPHIR_CALL_METHOD(&column, &columns, "current", NULL, 0); + ZEPHIR_INIT_NVAR(&singleField); + ZVAL_COPY(&singleField, _1); + ZEPHIR_INIT_NVAR(&fieldExcept); + ZVAL_NULL(&fieldExcept); + ZEPHIR_INIT_NVAR(¬InValues); + array_init(¬InValues); + ZEPHIR_OBS_NVAR(&value); + zephir_array_fetch(&value, &values, &singleField, PH_NOISY, "phalcon/Validation/Validator/Uniqueness.zep", 322); + ZEPHIR_INIT_NVAR(&_3$$3); + ZVAL_STRING(&_3$$3, "attribute"); + ZEPHIR_CALL_METHOD(&attribute, this_ptr, "getoption", NULL, 0, &_3$$3, &singleField); zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&column) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid column definition", "phalcon/Mvc/Model/Query.zep", 1019); - return; - } - zephir_array_fetch_string(&_13$$16, &column, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1022); - if (ZEPHIR_IS_STRING(&_13$$16, "scalar")) { - if (!(zephir_array_isset_string(&column, SL("balias")))) { - isComplex = 1; - } - haveScalars = 1; - } else { - haveObjects = 1; - numberObjects++; - } - ZEPHIR_CALL_METHOD(NULL, &columns, "next", NULL, 0); + ZEPHIR_CALL_METHOD(&_4$$3, this_ptr, "getcolumnnamereal", &_5, 0, record, &attribute); zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&column); - if (!(isComplex)) { - if (haveObjects) { - if (haveScalars) { - isComplex = 1; - } else { - if (numberObjects == 1) { - isSimpleStd = 0; - } else { - isComplex = 1; - } - } - } else { - isSimpleStd = 1; - } - } - ZEPHIR_INIT_VAR(&instance); - ZVAL_NULL(&instance); - ZEPHIR_INIT_VAR(&selectColumns); - array_init(&selectColumns); - ZEPHIR_INIT_VAR(&simpleColumnMap); - array_init(&simpleColumnMap); - zephir_read_property(&_0, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&metaData, &_0); - zephir_is_iterable(&columns, 0, "phalcon/Mvc/Model/Query.zep", 1141); - if (Z_TYPE_P(&columns) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&columns), _16, _17, _14) - { - ZEPHIR_INIT_NVAR(&aliasCopy); - if (_17 != NULL) { - ZVAL_STR_COPY(&aliasCopy, _17); + ZEPHIR_CPY_WRT(&attribute, &_4$$3); + if (Z_TYPE_P(&value) != IS_NULL) { + ZEPHIR_INIT_NVAR(&_6$$4); + ZVAL_LONG(&_6$$4, index); + ZEPHIR_INIT_NVAR(&_7$$4); + ZEPHIR_CONCAT_VSV(&_7$$4, &attribute, " = ?", &_6$$4); + zephir_array_update_multi(¶ms, &_7$$4, SL("sa"), 3, SL("conditions")); + zephir_array_update_multi(¶ms, &value, SL("sa"), 3, SL("bind")); + index++; } else { - ZVAL_LONG(&aliasCopy, _16); + ZEPHIR_INIT_NVAR(&_8$$5); + ZEPHIR_CONCAT_VS(&_8$$5, &attribute, " IS NULL"); + zephir_array_update_multi(¶ms, &_8$$5, SL("sa"), 3, SL("conditions")); } - ZEPHIR_INIT_NVAR(&column); - ZVAL_COPY(&column, _14); - ZEPHIR_OBS_NVAR(&sqlColumn); - zephir_array_fetch_string(&sqlColumn, &column, SL("column"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1058); - zephir_array_fetch_string(&_18$$28, &column, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1061); - if (ZEPHIR_IS_STRING(&_18$$28, "object")) { - ZEPHIR_OBS_NVAR(&modelName); - zephir_array_fetch_string(&modelName, &column, SL("model"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1062); - ZEPHIR_OBS_NVAR(&instance); - zephir_read_property(&_19$$29, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&instance, &_19$$29, &modelName, 0))) { - ZEPHIR_CALL_METHOD(&instance, &manager, "load", &_20, 0, &modelName); + if (zephir_is_true(&except)) { + _9$$6 = Z_TYPE_P(&except) == IS_ARRAY; + if (_9$$6) { + ZEPHIR_INIT_NVAR(&_10$$6); + zephir_array_keys(&_10$$6, &except); + ZVAL_LONG(&_11$$6, 0); + ZVAL_LONG(&_12$$6, (zephir_fast_count_int(&except) - 1)); + ZEPHIR_CALL_FUNCTION(&_13$$6, "range", &_14, 276, &_11$$6, &_12$$6); zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("modelsInstances"), &modelName, &instance); + _9$$6 = !ZEPHIR_IS_IDENTICAL(&_10$$6, &_13$$6); } - ZEPHIR_CALL_METHOD(&attributes, &metaData, "getattributes", &_21, 0, &instance); - zephir_check_call_status(); - if (isComplex) { - if (ZEPHIR_GLOBAL(orm).column_renaming) { - ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getcolumnmap", &_22, 0, &instance); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&columnMap); - ZVAL_NULL(&columnMap); - } - zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model/Query.zep", 1098); - if (Z_TYPE_P(&attributes) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _23$$31) + if (_9$$6) { + zephir_is_iterable(&except, 0, "phalcon/Validation/Validator/Uniqueness.zep", 358); + if (Z_TYPE_P(&except) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&except), _17$$7, _18$$7, _15$$7) { - ZEPHIR_INIT_NVAR(&attribute); - ZVAL_COPY(&attribute, _23$$31); - ZEPHIR_INIT_NVAR(&_25$$34); - zephir_create_array(&_25$$34, 3, 0); - zephir_array_fast_append(&_25$$34, &attribute); - zephir_array_fast_append(&_25$$34, &sqlColumn); - ZEPHIR_INIT_NVAR(&_26$$34); - ZEPHIR_CONCAT_SVSV(&_26$$34, "_", &sqlColumn, "_", &attribute); - zephir_array_fast_append(&_25$$34, &_26$$34); - zephir_array_append(&selectColumns, &_25$$34, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1091); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_24$$31, &attributes, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_24$$31)) { - break; + ZEPHIR_INIT_NVAR(&singleField); + if (_18$$7 != NULL) { + ZVAL_STR_COPY(&singleField, _18$$7); + } else { + ZVAL_LONG(&singleField, _17$$7); } - ZEPHIR_CALL_METHOD(&attribute, &attributes, "current", NULL, 0); + ZEPHIR_INIT_NVAR(&fieldExcept); + ZVAL_COPY(&fieldExcept, _15$$7); + ZEPHIR_INIT_NVAR(¬InValues); + array_init(¬InValues); + ZEPHIR_INIT_NVAR(&_20$$8); + ZVAL_STRING(&_20$$8, "attribute"); + ZEPHIR_CALL_METHOD(&_19$$8, this_ptr, "getoption", NULL, 0, &_20$$8, &singleField); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_27$$35); - zephir_create_array(&_27$$35, 3, 0); - zephir_array_fast_append(&_27$$35, &attribute); - zephir_array_fast_append(&_27$$35, &sqlColumn); - ZEPHIR_INIT_NVAR(&_28$$35); - ZEPHIR_CONCAT_SVSV(&_28$$35, "_", &sqlColumn, "_", &attribute); - zephir_array_fast_append(&_27$$35, &_28$$35); - zephir_array_append(&selectColumns, &_27$$35, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1091); - ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); + ZEPHIR_CALL_METHOD(&attribute, this_ptr, "getcolumnnamereal", &_5, 0, record, &_19$$8); zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&attribute); - zephir_array_update_multi(&columns1, &instance, SL("zs"), 3, &aliasCopy, SL("instance")); - zephir_array_update_multi(&columns1, &attributes, SL("zs"), 3, &aliasCopy, SL("attributes")); - zephir_array_update_multi(&columns1, &columnMap, SL("zs"), 3, &aliasCopy, SL("columnMap")); - ZEPHIR_CALL_METHOD(&_29$$31, &manager, "iskeepingsnapshots", &_30, 0, &instance); - zephir_check_call_status(); - isKeepingSnapshots = zephir_get_boolval(&_29$$31); - if (isKeepingSnapshots) { - ZEPHIR_INIT_NVAR(&_31$$36); - ZVAL_BOOL(&_31$$36, isKeepingSnapshots); - zephir_array_update_multi(&columns1, &_31$$36, SL("zs"), 3, &aliasCopy, SL("keepSnapshots")); - } - } else { - zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model/Query.zep", 1115); - if (Z_TYPE_P(&attributes) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _32$$37) - { - ZEPHIR_INIT_NVAR(&attribute); - ZVAL_COPY(&attribute, _32$$37); - ZEPHIR_INIT_NVAR(&_34$$38); - zephir_create_array(&_34$$38, 2, 0); - zephir_array_fast_append(&_34$$38, &attribute); - zephir_array_fast_append(&_34$$38, &sqlColumn); - zephir_array_append(&selectColumns, &_34$$38, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1113); + if (Z_TYPE_P(&fieldExcept) == IS_ARRAY) { + zephir_is_iterable(&fieldExcept, 0, "phalcon/Validation/Validator/Uniqueness.zep", 351); + if (Z_TYPE_P(&fieldExcept) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&fieldExcept), _21$$9) + { + ZEPHIR_INIT_NVAR(&singleExcept); + ZVAL_COPY(&singleExcept, _21$$9); + ZEPHIR_INIT_NVAR(&_23$$10); + ZVAL_LONG(&_23$$10, index); + ZEPHIR_INIT_NVAR(&_24$$10); + ZEPHIR_CONCAT_SV(&_24$$10, "?", &_23$$10); + zephir_array_append(¬InValues, &_24$$10, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 346); + zephir_array_update_multi(¶ms, &singleExcept, SL("sa"), 3, SL("bind")); + index++; + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &fieldExcept, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_22$$9, &fieldExcept, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_22$$9)) { + break; + } + ZEPHIR_CALL_METHOD(&singleExcept, &fieldExcept, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_25$$11); + ZVAL_LONG(&_25$$11, index); + ZEPHIR_INIT_NVAR(&_26$$11); + ZEPHIR_CONCAT_SV(&_26$$11, "?", &_25$$11); + zephir_array_append(¬InValues, &_26$$11, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 346); + zephir_array_update_multi(¶ms, &singleExcept, SL("sa"), 3, SL("bind")); + index++; + ZEPHIR_CALL_METHOD(NULL, &fieldExcept, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&singleExcept); + ZEPHIR_INIT_NVAR(&_27$$9); + zephir_fast_join_str(&_27$$9, SL(","), ¬InValues); + ZEPHIR_INIT_NVAR(&_28$$9); + ZEPHIR_CONCAT_VSVS(&_28$$9, &attribute, " NOT IN (", &_27$$9, ")"); + zephir_array_append(&exceptConditions, &_28$$9, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 351); + } else { + ZEPHIR_INIT_NVAR(&_29$$12); + ZVAL_LONG(&_29$$12, index); + ZEPHIR_INIT_NVAR(&_30$$12); + ZEPHIR_CONCAT_VSV(&_30$$12, &attribute, " <> ?", &_29$$12); + zephir_array_append(&exceptConditions, &_30$$12, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 353); + zephir_array_update_multi(¶ms, &fieldExcept, SL("sa"), 3, SL("bind")); + index++; + } } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &except, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_33$$37, &attributes, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_16$$7, &except, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_33$$37)) { + if (!zend_is_true(&_16$$7)) { break; } - ZEPHIR_CALL_METHOD(&attribute, &attributes, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&singleField, &except, "key", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_35$$39); - zephir_create_array(&_35$$39, 2, 0); - zephir_array_fast_append(&_35$$39, &attribute); - zephir_array_fast_append(&_35$$39, &sqlColumn); - zephir_array_append(&selectColumns, &_35$$39, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1113); - ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); + ZEPHIR_CALL_METHOD(&fieldExcept, &except, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(¬InValues); + array_init(¬InValues); + ZEPHIR_INIT_NVAR(&_32$$13); + ZVAL_STRING(&_32$$13, "attribute"); + ZEPHIR_CALL_METHOD(&_31$$13, this_ptr, "getoption", NULL, 0, &_32$$13, &singleField); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&attribute, this_ptr, "getcolumnnamereal", &_5, 0, record, &_31$$13); + zephir_check_call_status(); + if (Z_TYPE_P(&fieldExcept) == IS_ARRAY) { + zephir_is_iterable(&fieldExcept, 0, "phalcon/Validation/Validator/Uniqueness.zep", 351); + if (Z_TYPE_P(&fieldExcept) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&fieldExcept), _33$$14) + { + ZEPHIR_INIT_NVAR(&singleExcept); + ZVAL_COPY(&singleExcept, _33$$14); + ZEPHIR_INIT_NVAR(&_35$$15); + ZVAL_LONG(&_35$$15, index); + ZEPHIR_INIT_NVAR(&_36$$15); + ZEPHIR_CONCAT_SV(&_36$$15, "?", &_35$$15); + zephir_array_append(¬InValues, &_36$$15, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 346); + zephir_array_update_multi(¶ms, &singleExcept, SL("sa"), 3, SL("bind")); + index++; + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &fieldExcept, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_34$$14, &fieldExcept, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_34$$14)) { + break; + } + ZEPHIR_CALL_METHOD(&singleExcept, &fieldExcept, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_37$$16); + ZVAL_LONG(&_37$$16, index); + ZEPHIR_INIT_NVAR(&_38$$16); + ZEPHIR_CONCAT_SV(&_38$$16, "?", &_37$$16); + zephir_array_append(¬InValues, &_38$$16, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 346); + zephir_array_update_multi(¶ms, &singleExcept, SL("sa"), 3, SL("bind")); + index++; + ZEPHIR_CALL_METHOD(NULL, &fieldExcept, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&singleExcept); + ZEPHIR_INIT_NVAR(&_39$$14); + zephir_fast_join_str(&_39$$14, SL(","), ¬InValues); + ZEPHIR_INIT_NVAR(&_40$$14); + ZEPHIR_CONCAT_VSVS(&_40$$14, &attribute, " NOT IN (", &_39$$14, ")"); + zephir_array_append(&exceptConditions, &_40$$14, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 351); + } else { + ZEPHIR_INIT_NVAR(&_41$$17); + ZVAL_LONG(&_41$$17, index); + ZEPHIR_INIT_NVAR(&_42$$17); + ZEPHIR_CONCAT_VSV(&_42$$17, &attribute, " <> ?", &_41$$17); + zephir_array_append(&exceptConditions, &_42$$17, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 353); + zephir_array_update_multi(¶ms, &fieldExcept, SL("sa"), 3, SL("bind")); + index++; + } + ZEPHIR_CALL_METHOD(NULL, &except, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&attribute); - } - } else { - ZEPHIR_INIT_NVAR(&columnAlias); - if (Z_TYPE_P(&aliasCopy) == IS_LONG) { - ZEPHIR_INIT_NVAR(&_36$$41); - zephir_create_array(&_36$$41, 2, 0); - zephir_array_fast_append(&_36$$41, &sqlColumn); - zephir_array_fast_append(&_36$$41, &__$null); - ZEPHIR_CPY_WRT(&columnAlias, &_36$$41); - } else { - ZEPHIR_INIT_NVAR(&_37$$42); - zephir_create_array(&_37$$42, 3, 0); - zephir_array_fast_append(&_37$$42, &sqlColumn); - zephir_array_fast_append(&_37$$42, &__$null); - zephir_array_fast_append(&_37$$42, &aliasCopy); - ZEPHIR_CPY_WRT(&columnAlias, &_37$$42); - } - zephir_array_append(&selectColumns, &columnAlias, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1126); - } - _38$$28 = !isComplex; - if (_38$$28) { - _38$$28 = isSimpleStd; - } - if (_38$$28) { - ZEPHIR_OBS_NVAR(&sqlAlias); - if (zephir_array_isset_string_fetch(&sqlAlias, &column, SL("sqlAlias"), 0)) { - zephir_array_update_zval(&simpleColumnMap, &sqlAlias, &aliasCopy, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&simpleColumnMap, &aliasCopy, &aliasCopy, PH_COPY | PH_SEPARATE); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &columns, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_15, &columns, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_15)) { - break; - } - ZEPHIR_CALL_METHOD(&aliasCopy, &columns, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&column, &columns, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&sqlColumn); - zephir_array_fetch_string(&sqlColumn, &column, SL("column"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1058); - zephir_array_fetch_string(&_39$$46, &column, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1061); - if (ZEPHIR_IS_STRING(&_39$$46, "object")) { - ZEPHIR_OBS_NVAR(&modelName); - zephir_array_fetch_string(&modelName, &column, SL("model"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1062); - ZEPHIR_OBS_NVAR(&instance); - zephir_read_property(&_40$$47, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&instance, &_40$$47, &modelName, 0))) { - ZEPHIR_CALL_METHOD(&instance, &manager, "load", &_41, 0, &modelName); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("modelsInstances"), &modelName, &instance); - } - ZEPHIR_CALL_METHOD(&attributes, &metaData, "getattributes", &_42, 0, &instance); + ZEPHIR_INIT_NVAR(&fieldExcept); + ZEPHIR_INIT_NVAR(&singleField); + } else if (zephir_fast_count_int(&field) == 1) { + zephir_array_fetch_long(&_44$$18, &field, 0, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/Uniqueness.zep", 361); + ZEPHIR_INIT_NVAR(&_45$$18); + ZVAL_STRING(&_45$$18, "attribute"); + ZEPHIR_CALL_METHOD(&_43$$18, this_ptr, "getoption", NULL, 0, &_45$$18, &_44$$18); zephir_check_call_status(); - if (isComplex) { - if (ZEPHIR_GLOBAL(orm).column_renaming) { - ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getcolumnmap", &_43, 0, &instance); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&columnMap); - ZVAL_NULL(&columnMap); - } - zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model/Query.zep", 1098); - if (Z_TYPE_P(&attributes) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _44$$49) + ZEPHIR_CALL_METHOD(&attribute, this_ptr, "getcolumnnamereal", &_5, 0, record, &_43$$18); + zephir_check_call_status(); + if (Z_TYPE_P(&except) == IS_ARRAY) { + zephir_is_iterable(&except, 0, "phalcon/Validation/Validator/Uniqueness.zep", 371); + if (Z_TYPE_P(&except) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&except), _46$$19) { - ZEPHIR_INIT_NVAR(&attribute); - ZVAL_COPY(&attribute, _44$$49); - ZEPHIR_INIT_NVAR(&_46$$52); - zephir_create_array(&_46$$52, 3, 0); - zephir_array_fast_append(&_46$$52, &attribute); - zephir_array_fast_append(&_46$$52, &sqlColumn); - ZEPHIR_INIT_NVAR(&_47$$52); - ZEPHIR_CONCAT_SVSV(&_47$$52, "_", &sqlColumn, "_", &attribute); - zephir_array_fast_append(&_46$$52, &_47$$52); - zephir_array_append(&selectColumns, &_46$$52, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1091); + ZEPHIR_INIT_NVAR(&singleExcept); + ZVAL_COPY(&singleExcept, _46$$19); + ZEPHIR_INIT_NVAR(&_48$$20); + ZVAL_LONG(&_48$$20, index); + ZEPHIR_INIT_NVAR(&_49$$20); + ZEPHIR_CONCAT_SV(&_49$$20, "?", &_48$$20); + zephir_array_append(¬InValues, &_49$$20, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 366); + zephir_array_update_multi(¶ms, &singleExcept, SL("sa"), 3, SL("bind")); + index++; } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &except, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_45$$49, &attributes, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_47$$19, &except, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_45$$49)) { + if (!zend_is_true(&_47$$19)) { break; } - ZEPHIR_CALL_METHOD(&attribute, &attributes, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&singleExcept, &except, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_48$$53); - zephir_create_array(&_48$$53, 3, 0); - zephir_array_fast_append(&_48$$53, &attribute); - zephir_array_fast_append(&_48$$53, &sqlColumn); - ZEPHIR_INIT_NVAR(&_49$$53); - ZEPHIR_CONCAT_SVSV(&_49$$53, "_", &sqlColumn, "_", &attribute); - zephir_array_fast_append(&_48$$53, &_49$$53); - zephir_array_append(&selectColumns, &_48$$53, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1091); - ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); + ZEPHIR_INIT_NVAR(&_50$$21); + ZVAL_LONG(&_50$$21, index); + ZEPHIR_INIT_NVAR(&_51$$21); + ZEPHIR_CONCAT_SV(&_51$$21, "?", &_50$$21); + zephir_array_append(¬InValues, &_51$$21, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 366); + zephir_array_update_multi(¶ms, &singleExcept, SL("sa"), 3, SL("bind")); + index++; + ZEPHIR_CALL_METHOD(NULL, &except, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&attribute); - zephir_array_update_multi(&columns1, &instance, SL("zs"), 3, &aliasCopy, SL("instance")); - zephir_array_update_multi(&columns1, &attributes, SL("zs"), 3, &aliasCopy, SL("attributes")); - zephir_array_update_multi(&columns1, &columnMap, SL("zs"), 3, &aliasCopy, SL("columnMap")); - ZEPHIR_CALL_METHOD(&_50$$49, &manager, "iskeepingsnapshots", &_51, 0, &instance); - zephir_check_call_status(); - isKeepingSnapshots = zephir_get_boolval(&_50$$49); - if (isKeepingSnapshots) { - ZEPHIR_INIT_NVAR(&_52$$54); - ZVAL_BOOL(&_52$$54, isKeepingSnapshots); - zephir_array_update_multi(&columns1, &_52$$54, SL("zs"), 3, &aliasCopy, SL("keepSnapshots")); - } + ZEPHIR_INIT_NVAR(&singleExcept); + ZEPHIR_INIT_NVAR(&_52$$19); + zephir_fast_join_str(&_52$$19, SL(","), ¬InValues); + ZEPHIR_INIT_NVAR(&_53$$19); + ZEPHIR_CONCAT_VSVS(&_53$$19, &attribute, " NOT IN (", &_52$$19, ")"); + zephir_array_append(&exceptConditions, &_53$$19, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 371); } else { - zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model/Query.zep", 1115); - if (Z_TYPE_P(&attributes) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _53$$55) - { - ZEPHIR_INIT_NVAR(&attribute); - ZVAL_COPY(&attribute, _53$$55); - ZEPHIR_INIT_NVAR(&_55$$56); - zephir_create_array(&_55$$56, 2, 0); - zephir_array_fast_append(&_55$$56, &attribute); - zephir_array_fast_append(&_55$$56, &sqlColumn); - zephir_array_append(&selectColumns, &_55$$56, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1113); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); + ZEPHIR_INIT_NVAR(&_54$$22); + ZVAL_LONG(&_54$$22, index); + ZEPHIR_INIT_NVAR(&_55$$22); + ZEPHIR_CONCAT_VSV(&_55$$22, &attribute, " <> ?", &_54$$22); + zephir_array_update_multi(¶ms, &_55$$22, SL("sa"), 3, SL("conditions")); + zephir_array_update_multi(¶ms, &except, SL("sa"), 3, SL("bind")); + index++; + } + } else if (zephir_fast_count_int(&field) > 1) { + zephir_is_iterable(&field, 0, "phalcon/Validation/Validator/Uniqueness.zep", 398); + if (Z_TYPE_P(&field) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&field), _56$$23) + { + ZEPHIR_INIT_NVAR(&singleField); + ZVAL_COPY(&singleField, _56$$23); + ZEPHIR_INIT_NVAR(&_59$$24); + ZVAL_STRING(&_59$$24, "attribute"); + ZEPHIR_CALL_METHOD(&_58$$24, this_ptr, "getoption", NULL, 0, &_59$$24, &singleField); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_54$$55, &attributes, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_54$$55)) { - break; + ZEPHIR_CALL_METHOD(&attribute, this_ptr, "getcolumnnamereal", &_5, 0, record, &_58$$24); + zephir_check_call_status(); + if (Z_TYPE_P(&except) == IS_ARRAY) { + zephir_is_iterable(&except, 0, "phalcon/Validation/Validator/Uniqueness.zep", 391); + if (Z_TYPE_P(&except) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&except), _60$$25) + { + ZEPHIR_INIT_NVAR(&singleExcept); + ZVAL_COPY(&singleExcept, _60$$25); + ZEPHIR_INIT_NVAR(&_62$$26); + ZVAL_LONG(&_62$$26, index); + ZEPHIR_INIT_NVAR(&_63$$26); + ZEPHIR_CONCAT_SV(&_63$$26, "?", &_62$$26); + zephir_array_append(¬InValues, &_63$$26, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 386); + zephir_array_update_multi(¶ms, &singleExcept, SL("sa"), 3, SL("bind")); + index++; + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &except, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_61$$25, &except, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_61$$25)) { + break; + } + ZEPHIR_CALL_METHOD(&singleExcept, &except, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_64$$27); + ZVAL_LONG(&_64$$27, index); + ZEPHIR_INIT_NVAR(&_65$$27); + ZEPHIR_CONCAT_SV(&_65$$27, "?", &_64$$27); + zephir_array_append(¬InValues, &_65$$27, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 386); + zephir_array_update_multi(¶ms, &singleExcept, SL("sa"), 3, SL("bind")); + index++; + ZEPHIR_CALL_METHOD(NULL, &except, "next", NULL, 0); + zephir_check_call_status(); + } } - ZEPHIR_CALL_METHOD(&attribute, &attributes, "current", NULL, 0); + ZEPHIR_INIT_NVAR(&singleExcept); + ZEPHIR_INIT_NVAR(&_66$$25); + zephir_fast_join_str(&_66$$25, SL(","), ¬InValues); + ZEPHIR_INIT_NVAR(&_67$$25); + ZEPHIR_CONCAT_VSVS(&_67$$25, &attribute, " NOT IN (", &_66$$25, ")"); + zephir_array_append(&exceptConditions, &_67$$25, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 391); + } else { + ZEPHIR_INIT_NVAR(&_68$$28); + ZVAL_LONG(&_68$$28, index); + ZEPHIR_INIT_NVAR(&_69$$28); + ZEPHIR_CONCAT_VSV(&_69$$28, &attribute, " <> ?", &_68$$28); + zephir_array_update_multi(¶ms, &_69$$28, SL("sa"), 3, SL("conditions")); + zephir_array_update_multi(¶ms, &except, SL("sa"), 3, SL("bind")); + index++; + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &field, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_57$$23, &field, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_57$$23)) { + break; + } + ZEPHIR_CALL_METHOD(&singleField, &field, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_71$$29); + ZVAL_STRING(&_71$$29, "attribute"); + ZEPHIR_CALL_METHOD(&_70$$29, this_ptr, "getoption", NULL, 0, &_71$$29, &singleField); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_56$$57); - zephir_create_array(&_56$$57, 2, 0); - zephir_array_fast_append(&_56$$57, &attribute); - zephir_array_fast_append(&_56$$57, &sqlColumn); - zephir_array_append(&selectColumns, &_56$$57, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1113); - ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); + ZEPHIR_CALL_METHOD(&attribute, this_ptr, "getcolumnnamereal", &_5, 0, record, &_70$$29); zephir_check_call_status(); - } + if (Z_TYPE_P(&except) == IS_ARRAY) { + zephir_is_iterable(&except, 0, "phalcon/Validation/Validator/Uniqueness.zep", 391); + if (Z_TYPE_P(&except) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&except), _72$$30) + { + ZEPHIR_INIT_NVAR(&singleExcept); + ZVAL_COPY(&singleExcept, _72$$30); + ZEPHIR_INIT_NVAR(&_74$$31); + ZVAL_LONG(&_74$$31, index); + ZEPHIR_INIT_NVAR(&_75$$31); + ZEPHIR_CONCAT_SV(&_75$$31, "?", &_74$$31); + zephir_array_append(¬InValues, &_75$$31, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 386); + zephir_array_update_multi(¶ms, &singleExcept, SL("sa"), 3, SL("bind")); + index++; + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &except, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_73$$30, &except, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_73$$30)) { + break; + } + ZEPHIR_CALL_METHOD(&singleExcept, &except, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_76$$32); + ZVAL_LONG(&_76$$32, index); + ZEPHIR_INIT_NVAR(&_77$$32); + ZEPHIR_CONCAT_SV(&_77$$32, "?", &_76$$32); + zephir_array_append(¬InValues, &_77$$32, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 386); + zephir_array_update_multi(¶ms, &singleExcept, SL("sa"), 3, SL("bind")); + index++; + ZEPHIR_CALL_METHOD(NULL, &except, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&singleExcept); + ZEPHIR_INIT_NVAR(&_78$$30); + zephir_fast_join_str(&_78$$30, SL(","), ¬InValues); + ZEPHIR_INIT_NVAR(&_79$$30); + ZEPHIR_CONCAT_VSVS(&_79$$30, &attribute, " NOT IN (", &_78$$30, ")"); + zephir_array_append(&exceptConditions, &_79$$30, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 391); + } else { + ZEPHIR_INIT_NVAR(&_80$$33); + ZVAL_LONG(&_80$$33, index); + ZEPHIR_INIT_NVAR(&_81$$33); + ZEPHIR_CONCAT_VSV(&_81$$33, &attribute, " <> ?", &_80$$33); + zephir_array_update_multi(¶ms, &_81$$33, SL("sa"), 3, SL("conditions")); + zephir_array_update_multi(¶ms, &except, SL("sa"), 3, SL("bind")); + index++; + } + ZEPHIR_CALL_METHOD(NULL, &field, "next", NULL, 0); + zephir_check_call_status(); } - ZEPHIR_INIT_NVAR(&attribute); } - } else { - if (Z_TYPE_P(&aliasCopy) == IS_LONG) { - ZEPHIR_INIT_NVAR(&_57$$59); - zephir_create_array(&_57$$59, 2, 0); - zephir_array_fast_append(&_57$$59, &sqlColumn); - zephir_array_fast_append(&_57$$59, &__$null); - ZEPHIR_CPY_WRT(&columnAlias, &_57$$59); - } else { - ZEPHIR_INIT_NVAR(&_58$$60); - zephir_create_array(&_58$$60, 3, 0); - zephir_array_fast_append(&_58$$60, &sqlColumn); - zephir_array_fast_append(&_58$$60, &__$null); - zephir_array_fast_append(&_58$$60, &aliasCopy); - ZEPHIR_CPY_WRT(&columnAlias, &_58$$60); - } - zephir_array_append(&selectColumns, &columnAlias, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1126); - } - _59$$46 = !isComplex; - if (_59$$46) { - _59$$46 = isSimpleStd; - } - if (_59$$46) { - ZEPHIR_OBS_NVAR(&sqlAlias); - if (zephir_array_isset_string_fetch(&sqlAlias, &column, SL("sqlAlias"), 0)) { - zephir_array_update_zval(&simpleColumnMap, &sqlAlias, &aliasCopy, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&simpleColumnMap, &aliasCopy, &aliasCopy, PH_COPY | PH_SEPARATE); - } - } - ZEPHIR_CALL_METHOD(NULL, &columns, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&column); - ZEPHIR_INIT_NVAR(&aliasCopy); - ZEPHIR_INIT_VAR(&processed); - array_init(&processed); - ZEPHIR_INIT_VAR(&bindCounts); - array_init(&bindCounts); - zephir_array_update_string(&intermediate, SL("columns"), &selectColumns, PH_COPY | PH_SEPARATE); - zephir_is_iterable(&bindParams, 0, "phalcon/Mvc/Model/Query.zep", 1162); - if (Z_TYPE_P(&bindParams) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&bindParams), _62, _63, _60) - { - ZEPHIR_INIT_NVAR(&wildcard); - if (_63 != NULL) { - ZVAL_STR_COPY(&wildcard, _63); - } else { - ZVAL_LONG(&wildcard, _62); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _60); - if (Z_TYPE_P(&wildcard) == IS_LONG) { - ZEPHIR_INIT_NVAR(&wildcardValue); - ZEPHIR_CONCAT_SV(&wildcardValue, ":", &wildcard); - } else { - ZEPHIR_CPY_WRT(&wildcardValue, &wildcard); - } - zephir_array_update_zval(&processed, &wildcardValue, &value, PH_COPY | PH_SEPARATE); - if (Z_TYPE_P(&value) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&_64$$67); - ZVAL_LONG(&_64$$67, zephir_fast_count_int(&value)); - zephir_array_update_zval(&bindCounts, &wildcardValue, &_64$$67, PH_COPY | PH_SEPARATE); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &bindParams, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_61, &bindParams, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_61)) { - break; - } - ZEPHIR_CALL_METHOD(&wildcard, &bindParams, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &bindParams, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&wildcard) == IS_LONG) { - ZEPHIR_INIT_NVAR(&wildcardValue); - ZEPHIR_CONCAT_SV(&wildcardValue, ":", &wildcard); - } else { - ZEPHIR_CPY_WRT(&wildcardValue, &wildcard); - } - zephir_array_update_zval(&processed, &wildcardValue, &value, PH_COPY | PH_SEPARATE); - if (Z_TYPE_P(&value) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&_65$$71); - ZVAL_LONG(&_65$$71, zephir_fast_count_int(&value)); - zephir_array_update_zval(&bindCounts, &wildcardValue, &_65$$71, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&singleField); } - ZEPHIR_CALL_METHOD(NULL, &bindParams, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&wildcard); - ZEPHIR_INIT_VAR(&processedTypes); - array_init(&processedTypes); - zephir_is_iterable(&bindTypes, 0, "phalcon/Mvc/Model/Query.zep", 1175); - if (Z_TYPE_P(&bindTypes) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&bindTypes), _68, _69, _66) - { - ZEPHIR_INIT_NVAR(&typeWildcard); - if (_69 != NULL) { - ZVAL_STR_COPY(&typeWildcard, _69); - } else { - ZVAL_LONG(&typeWildcard, _68); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _66); - if (Z_TYPE_P(&typeWildcard) == IS_LONG) { - ZEPHIR_INIT_NVAR(&_70$$73); - ZEPHIR_CONCAT_SV(&_70$$73, ":", &typeWildcard); - zephir_array_update_zval(&processedTypes, &_70$$73, &value, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&processedTypes, &typeWildcard, &value, PH_COPY | PH_SEPARATE); } } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &bindTypes, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &field, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_67, &bindTypes, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_2, &field, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_67)) { + if (!zend_is_true(&_2)) { break; } - ZEPHIR_CALL_METHOD(&typeWildcard, &bindTypes, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &bindTypes, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&typeWildcard) == IS_LONG) { - ZEPHIR_INIT_NVAR(&_71$$76); - ZEPHIR_CONCAT_SV(&_71$$76, ":", &typeWildcard); - zephir_array_update_zval(&processedTypes, &_71$$76, &value, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&processedTypes, &typeWildcard, &value, PH_COPY | PH_SEPARATE); - } - ZEPHIR_CALL_METHOD(NULL, &bindTypes, "next", NULL, 0); + ZEPHIR_CALL_METHOD(&singleField, &field, "current", NULL, 0); zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&typeWildcard); - if (zephir_fast_count_int(&bindCounts)) { - zephir_array_update_string(&intermediate, SL("bindCounts"), &bindCounts, PH_COPY | PH_SEPARATE); - } - ZEPHIR_CALL_METHOD(&dialect, &connection, "getdialect", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&sqlSelect, &dialect, "select", NULL, 0, &intermediate); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("sharedLock"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_0)) { - ZEPHIR_CALL_METHOD(&_72$$79, &dialect, "sharedlock", NULL, 0, &sqlSelect); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&sqlSelect, &_72$$79); - } - if (simulate) { - zephir_create_array(return_value, 3, 0); - zephir_array_update_string(return_value, SL("sql"), &sqlSelect, PH_COPY | PH_SEPARATE); - zephir_array_update_string(return_value, SL("bind"), &processed, PH_COPY | PH_SEPARATE); - zephir_array_update_string(return_value, SL("bindTypes"), &processedTypes, PH_COPY | PH_SEPARATE); - RETURN_MM(); - } - ZEPHIR_CALL_METHOD(&result, &connection, "query", NULL, 0, &sqlSelect, &processed, &processedTypes); - zephir_check_call_status(); - if (zephir_instance_of_ev(&result, phalcon_db_resultinterface_ce)) { - ZEPHIR_CPY_WRT(&resultData, &result); - } else { - ZEPHIR_INIT_NVAR(&resultData); - ZVAL_NULL(&resultData); - } - zephir_read_property(&_73, this_ptr, ZEND_STRL("cache"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&cache, &_73); - if (!(isComplex)) { - if (isSimpleStd) { - ZEPHIR_INIT_VAR(&resultObject); - object_init_ex(&resultObject, phalcon_mvc_model_row_ce); - if (zephir_has_constructor(&resultObject)) { - ZEPHIR_CALL_METHOD(NULL, &resultObject, "__construct", NULL, 0); - zephir_check_call_status(); - } - - isKeepingSnapshots = 0; - } else { - if (Z_TYPE_P(&instance) == IS_OBJECT) { - ZEPHIR_CPY_WRT(&resultObject, &instance); - } else { - ZEPHIR_CPY_WRT(&resultObject, &model); - } - if (!(ZEPHIR_GLOBAL(orm).cast_on_hydrate)) { - ZEPHIR_CALL_METHOD(&simpleColumnMap, &metaData, "getcolumnmap", NULL, 0, &resultObject); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getcolumnmap", NULL, 0, &resultObject); + ZEPHIR_INIT_NVAR(&fieldExcept); + ZVAL_NULL(&fieldExcept); + ZEPHIR_INIT_NVAR(¬InValues); + array_init(¬InValues); + ZEPHIR_OBS_NVAR(&value); + zephir_array_fetch(&value, &values, &singleField, PH_NOISY, "phalcon/Validation/Validator/Uniqueness.zep", 322); + ZEPHIR_INIT_NVAR(&_82$$34); + ZVAL_STRING(&_82$$34, "attribute"); + ZEPHIR_CALL_METHOD(&attribute, this_ptr, "getoption", NULL, 0, &_82$$34, &singleField); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&typesColumnMap, &metaData, "getdatatypes", NULL, 0, &resultObject); + ZEPHIR_CALL_METHOD(&_83$$34, this_ptr, "getcolumnnamereal", &_5, 0, record, &attribute); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&simpleColumnMap); - if (Z_TYPE_P(&columnMap) == IS_NULL) { - array_init(&simpleColumnMap); - ZEPHIR_CALL_METHOD(&_74$$90, &metaData, "getattributes", NULL, 0, &resultObject); - zephir_check_call_status(); - zephir_is_iterable(&_74$$90, 0, "phalcon/Mvc/Model/Query.zep", 1263); - if (Z_TYPE_P(&_74$$90) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_74$$90), _75$$90) - { - ZEPHIR_INIT_NVAR(&attribute); - ZVAL_COPY(&attribute, _75$$90); - ZEPHIR_INIT_NVAR(&_77$$91); - zephir_create_array(&_77$$91, 2, 0); - zephir_array_fast_append(&_77$$91, &attribute); - ZEPHIR_OBS_NVAR(&_78$$91); - zephir_array_fetch(&_78$$91, &typesColumnMap, &attribute, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1261); - zephir_array_fast_append(&_77$$91, &_78$$91); - zephir_array_update_zval(&simpleColumnMap, &attribute, &_77$$91, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_74$$90, "rewind", NULL, 0); + ZEPHIR_CPY_WRT(&attribute, &_83$$34); + if (Z_TYPE_P(&value) != IS_NULL) { + ZEPHIR_INIT_NVAR(&_84$$35); + ZVAL_LONG(&_84$$35, index); + ZEPHIR_INIT_NVAR(&_85$$35); + ZEPHIR_CONCAT_VSV(&_85$$35, &attribute, " = ?", &_84$$35); + zephir_array_update_multi(¶ms, &_85$$35, SL("sa"), 3, SL("conditions")); + zephir_array_update_multi(¶ms, &value, SL("sa"), 3, SL("bind")); + index++; + } else { + ZEPHIR_INIT_NVAR(&_86$$36); + ZEPHIR_CONCAT_VS(&_86$$36, &attribute, " IS NULL"); + zephir_array_update_multi(¶ms, &_86$$36, SL("sa"), 3, SL("conditions")); + } + if (zephir_is_true(&except)) { + _87$$37 = Z_TYPE_P(&except) == IS_ARRAY; + if (_87$$37) { + ZEPHIR_INIT_NVAR(&_88$$37); + zephir_array_keys(&_88$$37, &except); + ZVAL_LONG(&_89$$37, 0); + ZVAL_LONG(&_90$$37, (zephir_fast_count_int(&except) - 1)); + ZEPHIR_CALL_FUNCTION(&_91$$37, "range", &_14, 276, &_89$$37, &_90$$37); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_76$$90, &_74$$90, "valid", NULL, 0); + _87$$37 = !ZEPHIR_IS_IDENTICAL(&_88$$37, &_91$$37); + } + if (_87$$37) { + zephir_is_iterable(&except, 0, "phalcon/Validation/Validator/Uniqueness.zep", 358); + if (Z_TYPE_P(&except) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&except), _94$$38, _95$$38, _92$$38) + { + ZEPHIR_INIT_NVAR(&singleField); + if (_95$$38 != NULL) { + ZVAL_STR_COPY(&singleField, _95$$38); + } else { + ZVAL_LONG(&singleField, _94$$38); + } + ZEPHIR_INIT_NVAR(&fieldExcept); + ZVAL_COPY(&fieldExcept, _92$$38); + ZEPHIR_INIT_NVAR(¬InValues); + array_init(¬InValues); + ZEPHIR_INIT_NVAR(&_97$$39); + ZVAL_STRING(&_97$$39, "attribute"); + ZEPHIR_CALL_METHOD(&_96$$39, this_ptr, "getoption", NULL, 0, &_97$$39, &singleField); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&attribute, this_ptr, "getcolumnnamereal", &_5, 0, record, &_96$$39); + zephir_check_call_status(); + if (Z_TYPE_P(&fieldExcept) == IS_ARRAY) { + zephir_is_iterable(&fieldExcept, 0, "phalcon/Validation/Validator/Uniqueness.zep", 351); + if (Z_TYPE_P(&fieldExcept) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&fieldExcept), _98$$40) + { + ZEPHIR_INIT_NVAR(&singleExcept); + ZVAL_COPY(&singleExcept, _98$$40); + ZEPHIR_INIT_NVAR(&_100$$41); + ZVAL_LONG(&_100$$41, index); + ZEPHIR_INIT_NVAR(&_101$$41); + ZEPHIR_CONCAT_SV(&_101$$41, "?", &_100$$41); + zephir_array_append(¬InValues, &_101$$41, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 346); + zephir_array_update_multi(¶ms, &singleExcept, SL("sa"), 3, SL("bind")); + index++; + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &fieldExcept, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_99$$40, &fieldExcept, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_99$$40)) { + break; + } + ZEPHIR_CALL_METHOD(&singleExcept, &fieldExcept, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_102$$42); + ZVAL_LONG(&_102$$42, index); + ZEPHIR_INIT_NVAR(&_103$$42); + ZEPHIR_CONCAT_SV(&_103$$42, "?", &_102$$42); + zephir_array_append(¬InValues, &_103$$42, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 346); + zephir_array_update_multi(¶ms, &singleExcept, SL("sa"), 3, SL("bind")); + index++; + ZEPHIR_CALL_METHOD(NULL, &fieldExcept, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&singleExcept); + ZEPHIR_INIT_NVAR(&_104$$40); + zephir_fast_join_str(&_104$$40, SL(","), ¬InValues); + ZEPHIR_INIT_NVAR(&_105$$40); + ZEPHIR_CONCAT_VSVS(&_105$$40, &attribute, " NOT IN (", &_104$$40, ")"); + zephir_array_append(&exceptConditions, &_105$$40, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 351); + } else { + ZEPHIR_INIT_NVAR(&_106$$43); + ZVAL_LONG(&_106$$43, index); + ZEPHIR_INIT_NVAR(&_107$$43); + ZEPHIR_CONCAT_VSV(&_107$$43, &attribute, " <> ?", &_106$$43); + zephir_array_append(&exceptConditions, &_107$$43, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 353); + zephir_array_update_multi(¶ms, &fieldExcept, SL("sa"), 3, SL("bind")); + index++; + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &except, "rewind", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_76$$90)) { - break; + while (1) { + ZEPHIR_CALL_METHOD(&_93$$38, &except, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_93$$38)) { + break; + } + ZEPHIR_CALL_METHOD(&singleField, &except, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&fieldExcept, &except, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(¬InValues); + array_init(¬InValues); + ZEPHIR_INIT_NVAR(&_109$$44); + ZVAL_STRING(&_109$$44, "attribute"); + ZEPHIR_CALL_METHOD(&_108$$44, this_ptr, "getoption", NULL, 0, &_109$$44, &singleField); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&attribute, this_ptr, "getcolumnnamereal", &_5, 0, record, &_108$$44); + zephir_check_call_status(); + if (Z_TYPE_P(&fieldExcept) == IS_ARRAY) { + zephir_is_iterable(&fieldExcept, 0, "phalcon/Validation/Validator/Uniqueness.zep", 351); + if (Z_TYPE_P(&fieldExcept) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&fieldExcept), _110$$45) + { + ZEPHIR_INIT_NVAR(&singleExcept); + ZVAL_COPY(&singleExcept, _110$$45); + ZEPHIR_INIT_NVAR(&_112$$46); + ZVAL_LONG(&_112$$46, index); + ZEPHIR_INIT_NVAR(&_113$$46); + ZEPHIR_CONCAT_SV(&_113$$46, "?", &_112$$46); + zephir_array_append(¬InValues, &_113$$46, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 346); + zephir_array_update_multi(¶ms, &singleExcept, SL("sa"), 3, SL("bind")); + index++; + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &fieldExcept, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_111$$45, &fieldExcept, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_111$$45)) { + break; + } + ZEPHIR_CALL_METHOD(&singleExcept, &fieldExcept, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_114$$47); + ZVAL_LONG(&_114$$47, index); + ZEPHIR_INIT_NVAR(&_115$$47); + ZEPHIR_CONCAT_SV(&_115$$47, "?", &_114$$47); + zephir_array_append(¬InValues, &_115$$47, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 346); + zephir_array_update_multi(¶ms, &singleExcept, SL("sa"), 3, SL("bind")); + index++; + ZEPHIR_CALL_METHOD(NULL, &fieldExcept, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&singleExcept); + ZEPHIR_INIT_NVAR(&_116$$45); + zephir_fast_join_str(&_116$$45, SL(","), ¬InValues); + ZEPHIR_INIT_NVAR(&_117$$45); + ZEPHIR_CONCAT_VSVS(&_117$$45, &attribute, " NOT IN (", &_116$$45, ")"); + zephir_array_append(&exceptConditions, &_117$$45, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 351); + } else { + ZEPHIR_INIT_NVAR(&_118$$48); + ZVAL_LONG(&_118$$48, index); + ZEPHIR_INIT_NVAR(&_119$$48); + ZEPHIR_CONCAT_VSV(&_119$$48, &attribute, " <> ?", &_118$$48); + zephir_array_append(&exceptConditions, &_119$$48, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 353); + zephir_array_update_multi(¶ms, &fieldExcept, SL("sa"), 3, SL("bind")); + index++; + } + ZEPHIR_CALL_METHOD(NULL, &except, "next", NULL, 0); + zephir_check_call_status(); } - ZEPHIR_CALL_METHOD(&attribute, &_74$$90, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_79$$92); - zephir_create_array(&_79$$92, 2, 0); - zephir_array_fast_append(&_79$$92, &attribute); - ZEPHIR_OBS_NVAR(&_80$$92); - zephir_array_fetch(&_80$$92, &typesColumnMap, &attribute, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1261); - zephir_array_fast_append(&_79$$92, &_80$$92); - zephir_array_update_zval(&simpleColumnMap, &attribute, &_79$$92, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &_74$$90, "next", NULL, 0); - zephir_check_call_status(); } - } - ZEPHIR_INIT_NVAR(&attribute); - } else { - array_init(&simpleColumnMap); - zephir_is_iterable(&columnMap, 0, "phalcon/Mvc/Model/Query.zep", 1272); - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&columnMap), _83$$93, _84$$93, _81$$93) - { - ZEPHIR_INIT_NVAR(&column); - if (_84$$93 != NULL) { - ZVAL_STR_COPY(&column, _84$$93); + ZEPHIR_INIT_NVAR(&fieldExcept); + ZEPHIR_INIT_NVAR(&singleField); + } else if (zephir_fast_count_int(&field) == 1) { + zephir_array_fetch_long(&_121$$49, &field, 0, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/Uniqueness.zep", 361); + ZEPHIR_INIT_NVAR(&_122$$49); + ZVAL_STRING(&_122$$49, "attribute"); + ZEPHIR_CALL_METHOD(&_120$$49, this_ptr, "getoption", NULL, 0, &_122$$49, &_121$$49); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&attribute, this_ptr, "getcolumnnamereal", &_5, 0, record, &_120$$49); + zephir_check_call_status(); + if (Z_TYPE_P(&except) == IS_ARRAY) { + zephir_is_iterable(&except, 0, "phalcon/Validation/Validator/Uniqueness.zep", 371); + if (Z_TYPE_P(&except) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&except), _123$$50) + { + ZEPHIR_INIT_NVAR(&singleExcept); + ZVAL_COPY(&singleExcept, _123$$50); + ZEPHIR_INIT_NVAR(&_125$$51); + ZVAL_LONG(&_125$$51, index); + ZEPHIR_INIT_NVAR(&_126$$51); + ZEPHIR_CONCAT_SV(&_126$$51, "?", &_125$$51); + zephir_array_append(¬InValues, &_126$$51, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 366); + zephir_array_update_multi(¶ms, &singleExcept, SL("sa"), 3, SL("bind")); + index++; + } ZEND_HASH_FOREACH_END(); } else { - ZVAL_LONG(&column, _83$$93); + ZEPHIR_CALL_METHOD(NULL, &except, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_124$$50, &except, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_124$$50)) { + break; + } + ZEPHIR_CALL_METHOD(&singleExcept, &except, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_127$$52); + ZVAL_LONG(&_127$$52, index); + ZEPHIR_INIT_NVAR(&_128$$52); + ZEPHIR_CONCAT_SV(&_128$$52, "?", &_127$$52); + zephir_array_append(¬InValues, &_128$$52, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 366); + zephir_array_update_multi(¶ms, &singleExcept, SL("sa"), 3, SL("bind")); + index++; + ZEPHIR_CALL_METHOD(NULL, &except, "next", NULL, 0); + zephir_check_call_status(); + } } - ZEPHIR_INIT_NVAR(&attribute); - ZVAL_COPY(&attribute, _81$$93); - ZEPHIR_INIT_NVAR(&_85$$94); - zephir_create_array(&_85$$94, 2, 0); - zephir_array_fast_append(&_85$$94, &attribute); - ZEPHIR_OBS_NVAR(&_86$$94); - zephir_array_fetch(&_86$$94, &typesColumnMap, &column, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1270); - zephir_array_fast_append(&_85$$94, &_86$$94); - zephir_array_update_zval(&simpleColumnMap, &column, &_85$$94, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &columnMap, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_82$$93, &columnMap, "valid", NULL, 0); + ZEPHIR_INIT_NVAR(&singleExcept); + ZEPHIR_INIT_NVAR(&_129$$50); + zephir_fast_join_str(&_129$$50, SL(","), ¬InValues); + ZEPHIR_INIT_NVAR(&_130$$50); + ZEPHIR_CONCAT_VSVS(&_130$$50, &attribute, " NOT IN (", &_129$$50, ")"); + zephir_array_append(&exceptConditions, &_130$$50, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 371); + } else { + ZEPHIR_INIT_NVAR(&_131$$53); + ZVAL_LONG(&_131$$53, index); + ZEPHIR_INIT_NVAR(&_132$$53); + ZEPHIR_CONCAT_VSV(&_132$$53, &attribute, " <> ?", &_131$$53); + zephir_array_update_multi(¶ms, &_132$$53, SL("sa"), 3, SL("conditions")); + zephir_array_update_multi(¶ms, &except, SL("sa"), 3, SL("bind")); + index++; + } + } else if (zephir_fast_count_int(&field) > 1) { + zephir_is_iterable(&field, 0, "phalcon/Validation/Validator/Uniqueness.zep", 398); + if (Z_TYPE_P(&field) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&field), _133$$54) + { + ZEPHIR_INIT_NVAR(&singleField); + ZVAL_COPY(&singleField, _133$$54); + ZEPHIR_INIT_NVAR(&_136$$55); + ZVAL_STRING(&_136$$55, "attribute"); + ZEPHIR_CALL_METHOD(&_135$$55, this_ptr, "getoption", NULL, 0, &_136$$55, &singleField); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&attribute, this_ptr, "getcolumnnamereal", &_5, 0, record, &_135$$55); + zephir_check_call_status(); + if (Z_TYPE_P(&except) == IS_ARRAY) { + zephir_is_iterable(&except, 0, "phalcon/Validation/Validator/Uniqueness.zep", 391); + if (Z_TYPE_P(&except) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&except), _137$$56) + { + ZEPHIR_INIT_NVAR(&singleExcept); + ZVAL_COPY(&singleExcept, _137$$56); + ZEPHIR_INIT_NVAR(&_139$$57); + ZVAL_LONG(&_139$$57, index); + ZEPHIR_INIT_NVAR(&_140$$57); + ZEPHIR_CONCAT_SV(&_140$$57, "?", &_139$$57); + zephir_array_append(¬InValues, &_140$$57, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 386); + zephir_array_update_multi(¶ms, &singleExcept, SL("sa"), 3, SL("bind")); + index++; + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &except, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_138$$56, &except, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_138$$56)) { + break; + } + ZEPHIR_CALL_METHOD(&singleExcept, &except, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_141$$58); + ZVAL_LONG(&_141$$58, index); + ZEPHIR_INIT_NVAR(&_142$$58); + ZEPHIR_CONCAT_SV(&_142$$58, "?", &_141$$58); + zephir_array_append(¬InValues, &_142$$58, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 386); + zephir_array_update_multi(¶ms, &singleExcept, SL("sa"), 3, SL("bind")); + index++; + ZEPHIR_CALL_METHOD(NULL, &except, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&singleExcept); + ZEPHIR_INIT_NVAR(&_143$$56); + zephir_fast_join_str(&_143$$56, SL(","), ¬InValues); + ZEPHIR_INIT_NVAR(&_144$$56); + ZEPHIR_CONCAT_VSVS(&_144$$56, &attribute, " NOT IN (", &_143$$56, ")"); + zephir_array_append(&exceptConditions, &_144$$56, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 391); + } else { + ZEPHIR_INIT_NVAR(&_145$$59); + ZVAL_LONG(&_145$$59, index); + ZEPHIR_INIT_NVAR(&_146$$59); + ZEPHIR_CONCAT_VSV(&_146$$59, &attribute, " <> ?", &_145$$59); + zephir_array_update_multi(¶ms, &_146$$59, SL("sa"), 3, SL("conditions")); + zephir_array_update_multi(¶ms, &except, SL("sa"), 3, SL("bind")); + index++; + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &field, "rewind", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_82$$93)) { - break; + while (1) { + ZEPHIR_CALL_METHOD(&_134$$54, &field, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_134$$54)) { + break; + } + ZEPHIR_CALL_METHOD(&singleField, &field, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_148$$60); + ZVAL_STRING(&_148$$60, "attribute"); + ZEPHIR_CALL_METHOD(&_147$$60, this_ptr, "getoption", NULL, 0, &_148$$60, &singleField); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&attribute, this_ptr, "getcolumnnamereal", &_5, 0, record, &_147$$60); + zephir_check_call_status(); + if (Z_TYPE_P(&except) == IS_ARRAY) { + zephir_is_iterable(&except, 0, "phalcon/Validation/Validator/Uniqueness.zep", 391); + if (Z_TYPE_P(&except) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&except), _149$$61) + { + ZEPHIR_INIT_NVAR(&singleExcept); + ZVAL_COPY(&singleExcept, _149$$61); + ZEPHIR_INIT_NVAR(&_151$$62); + ZVAL_LONG(&_151$$62, index); + ZEPHIR_INIT_NVAR(&_152$$62); + ZEPHIR_CONCAT_SV(&_152$$62, "?", &_151$$62); + zephir_array_append(¬InValues, &_152$$62, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 386); + zephir_array_update_multi(¶ms, &singleExcept, SL("sa"), 3, SL("bind")); + index++; + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &except, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_150$$61, &except, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_150$$61)) { + break; + } + ZEPHIR_CALL_METHOD(&singleExcept, &except, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_153$$63); + ZVAL_LONG(&_153$$63, index); + ZEPHIR_INIT_NVAR(&_154$$63); + ZEPHIR_CONCAT_SV(&_154$$63, "?", &_153$$63); + zephir_array_append(¬InValues, &_154$$63, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 386); + zephir_array_update_multi(¶ms, &singleExcept, SL("sa"), 3, SL("bind")); + index++; + ZEPHIR_CALL_METHOD(NULL, &except, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&singleExcept); + ZEPHIR_INIT_NVAR(&_155$$61); + zephir_fast_join_str(&_155$$61, SL(","), ¬InValues); + ZEPHIR_INIT_NVAR(&_156$$61); + ZEPHIR_CONCAT_VSVS(&_156$$61, &attribute, " NOT IN (", &_155$$61, ")"); + zephir_array_append(&exceptConditions, &_156$$61, PH_SEPARATE, "phalcon/Validation/Validator/Uniqueness.zep", 391); + } else { + ZEPHIR_INIT_NVAR(&_157$$64); + ZVAL_LONG(&_157$$64, index); + ZEPHIR_INIT_NVAR(&_158$$64); + ZEPHIR_CONCAT_VSV(&_158$$64, &attribute, " <> ?", &_157$$64); + zephir_array_update_multi(¶ms, &_158$$64, SL("sa"), 3, SL("conditions")); + zephir_array_update_multi(¶ms, &except, SL("sa"), 3, SL("bind")); + index++; + } + ZEPHIR_CALL_METHOD(NULL, &field, "next", NULL, 0); + zephir_check_call_status(); } - ZEPHIR_CALL_METHOD(&column, &columnMap, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&attribute, &columnMap, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_87$$95); - zephir_create_array(&_87$$95, 2, 0); - zephir_array_fast_append(&_87$$95, &attribute); - ZEPHIR_OBS_NVAR(&_88$$95); - zephir_array_fetch(&_88$$95, &typesColumnMap, &column, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1270); - zephir_array_fast_append(&_87$$95, &_88$$95); - zephir_array_update_zval(&simpleColumnMap, &column, &_87$$95, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &columnMap, "next", NULL, 0); - zephir_check_call_status(); } + ZEPHIR_INIT_NVAR(&singleField); } - ZEPHIR_INIT_NVAR(&attribute); - ZEPHIR_INIT_NVAR(&column); } - } - ZEPHIR_CALL_METHOD(&_89$$85, &manager, "iskeepingsnapshots", NULL, 0, &resultObject); + ZEPHIR_CALL_METHOD(NULL, &field, "next", NULL, 0); zephir_check_call_status(); - isKeepingSnapshots = zephir_get_boolval(&_89$$85); - } - _90$$83 = zephir_instance_of_ev(&resultObject, phalcon_mvc_modelinterface_ce); - if (_90$$83) { - _90$$83 = (zephir_method_exists_ex(&resultObject, ZEND_STRL("getresultsetclass")) == SUCCESS); } - if (_90$$83) { - ZEPHIR_CALL_METHOD(&resultsetClassName, &resultObject, "getresultsetclass", NULL, 0); + } + ZEPHIR_INIT_NVAR(&singleField); + ZEPHIR_CALL_METHOD(&_159, record, "getdirtystate", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&_159, 0)) { + ZEPHIR_CALL_METHOD(&_160$$65, record, "getdi", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_161$$65); + ZVAL_STRING(&_161$$65, "modelsMetadata"); + ZEPHIR_CALL_METHOD(&metaData, &_160$$65, "getshared", NULL, 0, &_161$$65); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_162$$65, &metaData, "getprimarykeyattributes", NULL, 0, record); + zephir_check_call_status(); + zephir_is_iterable(&_162$$65, 0, "phalcon/Validation/Validator/Uniqueness.zep", 417); + if (Z_TYPE_P(&_162$$65) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_162$$65), _163$$65) + { + ZEPHIR_INIT_NVAR(&primaryField); + ZVAL_COPY(&primaryField, _163$$65); + ZEPHIR_CALL_METHOD(&_165$$66, this_ptr, "getcolumnnamereal", &_5, 0, record, &primaryField); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_166$$66); + ZVAL_LONG(&_166$$66, index); + ZEPHIR_INIT_NVAR(&_167$$66); + ZEPHIR_CONCAT_VSV(&_167$$66, &_165$$66, " <> ?", &_166$$66); + zephir_array_update_multi(¶ms, &_167$$66, SL("sa"), 3, SL("conditions")); + ZEPHIR_CALL_METHOD(&_169$$66, this_ptr, "getcolumnnamereal", &_5, 0, record, &primaryField); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_168$$66, record, "readattribute", NULL, 0, &_169$$66); + zephir_check_call_status(); + zephir_array_update_multi(¶ms, &_168$$66, SL("sa"), 3, SL("bind")); + index++; + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_162$$65, "rewind", NULL, 0); zephir_check_call_status(); - if (zephir_is_true(&resultsetClassName)) { - if (UNEXPECTED(!(zephir_class_exists(&resultsetClassName, 1)))) { - ZEPHIR_INIT_VAR(&_91$$98); - object_init_ex(&_91$$98, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_92$$98); - ZEPHIR_CONCAT_SVS(&_92$$98, "Resultset class \"", &resultsetClassName, "\" not found"); - ZEPHIR_CALL_METHOD(NULL, &_91$$98, "__construct", NULL, 8, &_92$$98); - zephir_check_call_status(); - zephir_throw_exception_debug(&_91$$98, "phalcon/Mvc/Model/Query.zep", 1288); - ZEPHIR_MM_RESTORE(); - return; + while (1) { + ZEPHIR_CALL_METHOD(&_164$$65, &_162$$65, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_164$$65)) { + break; } - ZEPHIR_INIT_VAR(&_93$$97); - ZVAL_STRING(&_93$$97, "Phalcon\\Mvc\\Model\\ResultsetInterface"); - ZEPHIR_CALL_FUNCTION(&_94$$97, "is_subclass_of", NULL, 449, &resultsetClassName, &_93$$97); + ZEPHIR_CALL_METHOD(&primaryField, &_162$$65, "current", NULL, 0); zephir_check_call_status(); - if (UNEXPECTED(!zephir_is_true(&_94$$97))) { - ZEPHIR_INIT_VAR(&_95$$99); - object_init_ex(&_95$$99, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_96$$99); - ZEPHIR_CONCAT_SVS(&_96$$99, "Resultset class \"", &resultsetClassName, "\" must be an implementation of Phalcon\\Mvc\\Model\\ResultsetInterface"); - ZEPHIR_CALL_METHOD(NULL, &_95$$99, "__construct", NULL, 8, &_96$$99); + ZEPHIR_CALL_METHOD(&_170$$67, this_ptr, "getcolumnnamereal", &_5, 0, record, &primaryField); zephir_check_call_status(); - zephir_throw_exception_debug(&_95$$99, "phalcon/Mvc/Model/Query.zep", 1294); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_VAR(&_97$$97); - zephir_create_array(&_97$$97, 5, 0); - zephir_array_fast_append(&_97$$97, &simpleColumnMap); - zephir_array_fast_append(&_97$$97, &resultObject); - zephir_array_fast_append(&_97$$97, &resultData); - zephir_array_fast_append(&_97$$97, &cache); - ZEPHIR_INIT_NVAR(&_93$$97); - ZVAL_BOOL(&_93$$97, isKeepingSnapshots); - zephir_array_fast_append(&_97$$97, &_93$$97); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(return_value, &resultsetClassName, &_97$$97); + ZEPHIR_INIT_NVAR(&_171$$67); + ZVAL_LONG(&_171$$67, index); + ZEPHIR_INIT_NVAR(&_172$$67); + ZEPHIR_CONCAT_VSV(&_172$$67, &_170$$67, " <> ?", &_171$$67); + zephir_array_update_multi(¶ms, &_172$$67, SL("sa"), 3, SL("conditions")); + ZEPHIR_CALL_METHOD(&_174$$67, this_ptr, "getcolumnnamereal", &_5, 0, record, &primaryField); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_173$$67, record, "readattribute", NULL, 0, &_174$$67); + zephir_check_call_status(); + zephir_array_update_multi(¶ms, &_173$$67, SL("sa"), 3, SL("bind")); + index++; + ZEPHIR_CALL_METHOD(NULL, &_162$$65, "next", NULL, 0); zephir_check_call_status(); - RETURN_MM(); } } - object_init_ex(return_value, phalcon_mvc_model_resultset_simple_ce); - if (isKeepingSnapshots) { - ZVAL_BOOL(&_98$$83, 1); - } else { - ZVAL_BOOL(&_98$$83, 0); - } - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 466, &simpleColumnMap, &resultObject, &resultData, &cache, &_98$$83); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_NVAR(&primaryField); } - object_init_ex(return_value, phalcon_mvc_model_resultset_complex_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 467, &columns1, &resultData, &cache); - zephir_check_call_status(); - RETURN_MM(); + if (!(ZEPHIR_IS_EMPTY(&exceptConditions))) { + ZEPHIR_INIT_VAR(&_175$$68); + zephir_fast_join_str(&_175$$68, SL(" OR "), &exceptConditions); + ZEPHIR_INIT_VAR(&_176$$68); + ZEPHIR_CONCAT_SVS(&_176$$68, "(", &_175$$68, ")"); + zephir_array_update_multi(¶ms, &_176$$68, SL("sa"), 3, SL("conditions")); + } + ZEPHIR_INIT_NVAR(&_0); + zephir_array_fetch_string(&_177, ¶ms, SL("conditions"), PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/Uniqueness.zep", 426); + zephir_fast_join_str(&_0, SL(" AND "), &_177); + zephir_array_update_string(¶ms, SL("conditions"), &_0, PH_COPY | PH_SEPARATE); + RETURN_CCTOR(¶ms); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, executeUpdate) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_Url) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator, Url, phalcon, validation_validator_url, phalcon_validation_abstractvalidator_ce, phalcon_validation_validator_url_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_url_ce, SL("template"), "Field :field must be a url", ZEND_ACC_PROTECTED); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Validation_Validator_Url, __construct) { - zend_string *_5; - zend_ulong _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_7 = NULL, *_9 = NULL, *_14 = NULL, *_16 = NULL, *_17 = NULL, *_19 = NULL, *_21 = NULL, *_27 = NULL, *_30 = NULL, *_32 = NULL, *_34 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *intermediate_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, models, modelName, model, connection, dialect, fields, values, updateValues, fieldName, value, selectBindParams, selectBindTypes, number, field, records, exprValue, updateValue, wildcard, record, _0, *_2, _3, _29, _35, _1$$4, _6$$5, _8$$10, _10$$10, _11$$10, _12$$11, _13$$11, _15$$13, _18$$14, _20$$19, _22$$19, _23$$19, _24$$20, _25$$20, _26$$22, _28$$23, _31$$24, _33$$25; - zval intermediate, bindParams, bindTypes; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&intermediate); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); - ZVAL_UNDEF(&models); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&connection); - ZVAL_UNDEF(&dialect); - ZVAL_UNDEF(&fields); - ZVAL_UNDEF(&values); - ZVAL_UNDEF(&updateValues); - ZVAL_UNDEF(&fieldName); + ZVAL_UNDEF(&options); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } + + + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_url_ce, getThis(), "__construct", &_0, 0, &options); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Validation_Validator_Url, validate) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *validation, validation_sub, *field, field_sub, options, result, value, _0, _1$$3, _2$$4, _3$$5; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&result); ZVAL_UNDEF(&value); - ZVAL_UNDEF(&selectBindParams); - ZVAL_UNDEF(&selectBindTypes); - ZVAL_UNDEF(&number); - ZVAL_UNDEF(&field); - ZVAL_UNDEF(&records); - ZVAL_UNDEF(&exprValue); - ZVAL_UNDEF(&updateValue); - ZVAL_UNDEF(&wildcard); - ZVAL_UNDEF(&record); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_29); - ZVAL_UNDEF(&_35); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_8$$10); - ZVAL_UNDEF(&_10$$10); - ZVAL_UNDEF(&_11$$10); - ZVAL_UNDEF(&_12$$11); - ZVAL_UNDEF(&_13$$11); - ZVAL_UNDEF(&_15$$13); - ZVAL_UNDEF(&_18$$14); - ZVAL_UNDEF(&_20$$19); - ZVAL_UNDEF(&_22$$19); - ZVAL_UNDEF(&_23$$19); - ZVAL_UNDEF(&_24$$20); - ZVAL_UNDEF(&_25$$20); - ZVAL_UNDEF(&_26$$22); - ZVAL_UNDEF(&_28$$23); - ZVAL_UNDEF(&_31$$24); - ZVAL_UNDEF(&_33$$25); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_ARRAY(intermediate) - Z_PARAM_ARRAY(bindParams) - Z_PARAM_ARRAY(bindTypes) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &intermediate_param, &bindParams_param, &bindTypes_param); - zephir_get_arrval(&intermediate, intermediate_param); - zephir_get_arrval(&bindParams, bindParams_param); - zephir_get_arrval(&bindTypes, bindTypes_param); + zephir_fetch_params(1, 2, 0, &validation, &field); - ZEPHIR_OBS_VAR(&models); - zephir_array_fetch_string(&models, &intermediate, SL("models"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1342); - if (UNEXPECTED(zephir_array_isset_long(&models, 1))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Updating several models at the same time is still not supported", "phalcon/Mvc/Model/Query.zep", 1347); - return; + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&options); + zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_string_fetch(&options, &_0, SL("options"), 0)) { + ZVAL_LONG(&_1$$3, 273); + ZEPHIR_CALL_FUNCTION(&result, "filter_var", NULL, 237, &value, &_1$$3, &options); + zephir_check_call_status(); + } else { + ZVAL_LONG(&_2$$4, 273); + ZEPHIR_CALL_FUNCTION(&result, "filter_var", NULL, 237, &value, &_2$$4); + zephir_check_call_status(); } - ZEPHIR_OBS_VAR(&modelName); - zephir_array_fetch_long(&modelName, &models, 0, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1350); - ZEPHIR_OBS_VAR(&model); - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&model, &_0, &modelName, 0))) { - zephir_read_property(&_1$$4, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&model, &_1$$4, "load", NULL, 0, &modelName); + if (!(zephir_is_true(&result))) { + ZEPHIR_CALL_METHOD(&_3$$5, this_ptr, "messagefactory", NULL, 0, validation, field); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_3$$5); zephir_check_call_status(); + RETURN_MM_BOOL(0); } - ZEPHIR_CALL_METHOD(&connection, this_ptr, "getwriteconnection", NULL, 0, &model, &intermediate, &bindParams, &bindTypes); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&dialect, &connection, "getdialect", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&fields); - zephir_array_fetch_string(&fields, &intermediate, SL("fields"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1369); - ZEPHIR_OBS_VAR(&values); - zephir_array_fetch_string(&values, &intermediate, SL("values"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1370); - ZEPHIR_INIT_VAR(&updateValues); - array_init(&updateValues); - ZEPHIR_CPY_WRT(&selectBindParams, &bindParams); - ZEPHIR_CPY_WRT(&selectBindTypes, &bindTypes); - zephir_is_iterable(&fields, 0, "phalcon/Mvc/Model/Query.zep", 1442); - if (Z_TYPE_P(&fields) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&fields), _4, _5, _2) - { - ZEPHIR_INIT_NVAR(&number); - if (_5 != NULL) { - ZVAL_STR_COPY(&number, _5); - } else { - ZVAL_LONG(&number, _4); - } - ZEPHIR_INIT_NVAR(&field); - ZVAL_COPY(&field, _2); - ZEPHIR_OBS_NVAR(&value); - zephir_array_fetch(&value, &values, &number, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1385); - ZEPHIR_OBS_NVAR(&exprValue); - zephir_array_fetch_string(&exprValue, &value, SL("value"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1386); - if (zephir_array_isset_string(&field, SL("balias"))) { - ZEPHIR_OBS_NVAR(&fieldName); - zephir_array_fetch_string(&fieldName, &field, SL("balias"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1389); - } else { - ZEPHIR_OBS_NVAR(&fieldName); - zephir_array_fetch_string(&fieldName, &field, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1391); - } - zephir_array_fetch_string(&_6$$5, &value, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1394); - do { - if (ZEPHIR_IS_LONG(&_6$$5, 260) || ZEPHIR_IS_LONG(&_6$$5, 258) || ZEPHIR_IS_LONG(&_6$$5, 259)) { - ZEPHIR_CALL_METHOD(&updateValue, &dialect, "getsqlexpression", &_7, 0, &exprValue); - zephir_check_call_status(); - break; - } - if (ZEPHIR_IS_LONG(&_6$$5, 322)) { - ZEPHIR_INIT_NVAR(&updateValue); - ZVAL_NULL(&updateValue); - break; - } - if (ZEPHIR_IS_LONG(&_6$$5, 273) || ZEPHIR_IS_LONG(&_6$$5, 274) || ZEPHIR_IS_LONG(&_6$$5, 277)) { - ZEPHIR_CALL_METHOD(&_8$$10, &dialect, "getsqlexpression", &_9, 0, &exprValue); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_10$$10); - ZVAL_STRING(&_10$$10, ":"); - ZEPHIR_INIT_NVAR(&_11$$10); - ZVAL_STRING(&_11$$10, ""); - ZEPHIR_INIT_NVAR(&wildcard); - zephir_fast_str_replace(&wildcard, &_10$$10, &_11$$10, &_8$$10); - ZEPHIR_OBS_NVAR(&updateValue); - if (UNEXPECTED(!(zephir_array_isset_fetch(&updateValue, &bindParams, &wildcard, 0)))) { - ZEPHIR_INIT_NVAR(&_12$$11); - object_init_ex(&_12$$11, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_13$$11); - ZEPHIR_CONCAT_SVS(&_13$$11, "Bound parameter '", &wildcard, "' cannot be replaced because it's not in the placeholders list"); - ZEPHIR_CALL_METHOD(NULL, &_12$$11, "__construct", &_14, 8, &_13$$11); - zephir_check_call_status(); - zephir_throw_exception_debug(&_12$$11, "phalcon/Mvc/Model/Query.zep", 1417); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_array_unset(&selectBindParams, &wildcard, PH_SEPARATE); - zephir_array_unset(&selectBindTypes, &wildcard, PH_SEPARATE); - break; - } - if (ZEPHIR_IS_LONG(&_6$$5, 277)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not supported", "phalcon/Mvc/Model/Query.zep", 1426); - return; - } - ZEPHIR_INIT_NVAR(&updateValue); - object_init_ex(&updateValue, phalcon_db_rawvalue_ce); - ZEPHIR_CALL_METHOD(&_15$$13, &dialect, "getsqlexpression", &_16, 0, &exprValue); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &updateValue, "__construct", &_17, 34, &_15$$13); - zephir_check_call_status(); - break; - } while(0); + RETURN_MM_BOOL(1); +} - zephir_array_update_zval(&updateValues, &fieldName, &updateValue, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &fields, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3, &fields, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3)) { - break; - } - ZEPHIR_CALL_METHOD(&number, &fields, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&field, &fields, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&value); - zephir_array_fetch(&value, &values, &number, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1385); - ZEPHIR_OBS_NVAR(&exprValue); - zephir_array_fetch_string(&exprValue, &value, SL("value"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1386); - if (zephir_array_isset_string(&field, SL("balias"))) { - ZEPHIR_OBS_NVAR(&fieldName); - zephir_array_fetch_string(&fieldName, &field, SL("balias"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1389); - } else { - ZEPHIR_OBS_NVAR(&fieldName); - zephir_array_fetch_string(&fieldName, &field, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1391); - } - zephir_array_fetch_string(&_18$$14, &value, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1394); - do { - if (ZEPHIR_IS_LONG(&_18$$14, 260) || ZEPHIR_IS_LONG(&_18$$14, 258) || ZEPHIR_IS_LONG(&_18$$14, 259)) { - ZEPHIR_CALL_METHOD(&updateValue, &dialect, "getsqlexpression", &_19, 0, &exprValue); - zephir_check_call_status(); - break; - } - if (ZEPHIR_IS_LONG(&_18$$14, 322)) { - ZEPHIR_INIT_NVAR(&updateValue); - ZVAL_NULL(&updateValue); - break; - } - if (ZEPHIR_IS_LONG(&_18$$14, 273) || ZEPHIR_IS_LONG(&_18$$14, 274) || ZEPHIR_IS_LONG(&_18$$14, 277)) { - ZEPHIR_CALL_METHOD(&_20$$19, &dialect, "getsqlexpression", &_21, 0, &exprValue); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_22$$19); - ZVAL_STRING(&_22$$19, ":"); - ZEPHIR_INIT_NVAR(&_23$$19); - ZVAL_STRING(&_23$$19, ""); - ZEPHIR_INIT_NVAR(&wildcard); - zephir_fast_str_replace(&wildcard, &_22$$19, &_23$$19, &_20$$19); - ZEPHIR_OBS_NVAR(&updateValue); - if (UNEXPECTED(!(zephir_array_isset_fetch(&updateValue, &bindParams, &wildcard, 0)))) { - ZEPHIR_INIT_NVAR(&_24$$20); - object_init_ex(&_24$$20, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_25$$20); - ZEPHIR_CONCAT_SVS(&_25$$20, "Bound parameter '", &wildcard, "' cannot be replaced because it's not in the placeholders list"); - ZEPHIR_CALL_METHOD(NULL, &_24$$20, "__construct", &_14, 8, &_25$$20); - zephir_check_call_status(); - zephir_throw_exception_debug(&_24$$20, "phalcon/Mvc/Model/Query.zep", 1417); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_array_unset(&selectBindParams, &wildcard, PH_SEPARATE); - zephir_array_unset(&selectBindTypes, &wildcard, PH_SEPARATE); - break; - } - if (ZEPHIR_IS_LONG(&_18$$14, 277)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Not supported", "phalcon/Mvc/Model/Query.zep", 1426); - return; - } - ZEPHIR_INIT_NVAR(&updateValue); - object_init_ex(&updateValue, phalcon_db_rawvalue_ce); - ZEPHIR_CALL_METHOD(&_26$$22, &dialect, "getsqlexpression", &_27, 0, &exprValue); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &updateValue, "__construct", &_17, 34, &_26$$22); - zephir_check_call_status(); - break; - } while(0); - zephir_array_update_zval(&updateValues, &fieldName, &updateValue, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &fields, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&field); - ZEPHIR_INIT_NVAR(&number); - ZEPHIR_CALL_METHOD(&records, this_ptr, "getrelatedrecords", NULL, 464, &model, &intermediate, &selectBindParams, &selectBindTypes); + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_File_AbstractFile) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator\\File, AbstractFile, phalcon, validation_validator_file_abstractfile, phalcon_validation_abstractvalidator_ce, phalcon_validation_validator_file_abstractfile_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_string(phalcon_validation_validator_file_abstractfile_ce, SL("messageFileEmpty"), "Field :field must not be empty", ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_validation_validator_file_abstractfile_ce, SL("messageIniSize"), "File :field exceeds the maximum file size", ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_validation_validator_file_abstractfile_ce, SL("messageValid"), "Field :field is not valid", ZEND_ACC_PROTECTED); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Validation_Validator_File_AbstractFile, getMessageFileEmpty) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "messageFileEmpty"); +} + +static PHP_METHOD(Phalcon_Validation_Validator_File_AbstractFile, setMessageFileEmpty) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *messageFileEmpty_param = NULL; + zval messageFileEmpty; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&messageFileEmpty); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(messageFileEmpty) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &messageFileEmpty_param); + zephir_get_strval(&messageFileEmpty, messageFileEmpty_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("messageFileEmpty"), &messageFileEmpty); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Validation_Validator_File_AbstractFile, getMessageIniSize) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "messageIniSize"); +} + +static PHP_METHOD(Phalcon_Validation_Validator_File_AbstractFile, setMessageIniSize) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *messageIniSize_param = NULL; + zval messageIniSize; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&messageIniSize); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(messageIniSize) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &messageIniSize_param); + zephir_get_strval(&messageIniSize, messageIniSize_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("messageIniSize"), &messageIniSize); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Validation_Validator_File_AbstractFile, getMessageValid) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "messageValid"); +} + +static PHP_METHOD(Phalcon_Validation_Validator_File_AbstractFile, setMessageValid) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *messageValid_param = NULL; + zval messageValid; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&messageValid); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(messageValid) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &messageValid_param); + zephir_get_strval(&messageValid, messageValid_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("messageValid"), &messageValid); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Validation_Validator_File_AbstractFile, checkUpload) +{ + zend_bool _1, _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *validation, validation_sub, *field, field_sub, _0, _2, _4; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &validation, &field); + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "checkuploadmaxsize", NULL, 0, validation, field); zephir_check_call_status(); - if (!(zephir_fast_count_int(&records))) { - object_init_ex(return_value, phalcon_mvc_model_query_status_ce); - ZVAL_BOOL(&_28$$23, 1); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 465, &_28$$23); + _1 = zephir_is_true(&_0); + if (_1) { + ZEPHIR_CALL_METHOD(&_2, this_ptr, "checkuploadisempty", NULL, 0, validation, field); zephir_check_call_status(); - RETURN_MM(); + _1 = zephir_is_true(&_2); } - ZEPHIR_CALL_METHOD(&connection, this_ptr, "getwriteconnection", NULL, 0, &model, &intermediate, &bindParams, &bindTypes); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &connection, "begin", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &records, "rewind", NULL, 0); + _3 = _1; + if (_3) { + ZEPHIR_CALL_METHOD(&_4, this_ptr, "checkuploadisvalid", NULL, 0, validation, field); + zephir_check_call_status(); + _3 = zephir_is_true(&_4); + } + RETURN_MM_BOOL(_3); +} + +static PHP_METHOD(Phalcon_Validation_Validator_File_AbstractFile, checkUploadIsEmpty) +{ + zend_bool _0, _1, _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *validation, validation_sub, *field, field_sub, label, replacePairs, value, _2, _4, _5, _6$$3, _7$$3, _8$$3, _9$$3, _10$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&label); + ZVAL_UNDEF(&replacePairs); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_8$$3); + ZVAL_UNDEF(&_9$$3); + ZVAL_UNDEF(&_10$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &validation, &field); + + + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_29, &records, "valid", NULL, 0); + _0 = !(zephir_array_isset_string(&value, SL("error"))); + if (!(_0)) { + _0 = !(zephir_array_isset_string(&value, SL("tmp_name"))); + } + _1 = _0; + if (!(_1)) { + zephir_array_fetch_string(&_2, &value, SL("error"), PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/AbstractFile.zep", 109); + _1 = !ZEPHIR_IS_LONG_IDENTICAL(&_2, 0); + } + _3 = _1; + if (!(_3)) { + zephir_array_fetch_string(&_5, &value, SL("tmp_name"), PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/AbstractFile.zep", 110); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "checkisuploadedfile", NULL, 0, &_5); zephir_check_call_status(); - if (!(zephir_is_true(&_29))) { - break; - } - ZEPHIR_CALL_METHOD(&record, &records, "current", &_30, 0); + _3 = !zephir_is_true(&_4); + } + if (_3) { + ZEPHIR_CALL_METHOD(&label, this_ptr, "preparelabel", NULL, 0, validation, field); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &record, "assign", NULL, 0, &updateValues); + ZEPHIR_INIT_VAR(&replacePairs); + zephir_create_array(&replacePairs, 1, 0); + zephir_array_update_string(&replacePairs, SL(":field"), &label, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_6$$3); + object_init_ex(&_6$$3, phalcon_messages_message_ce); + ZEPHIR_CALL_METHOD(&_7$$3, this_ptr, "getmessagefileempty", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_31$$24, &record, "update", NULL, 0); + ZEPHIR_CALL_FUNCTION(&_8$$3, "strtr", NULL, 5, &_7$$3, &replacePairs); zephir_check_call_status(); - if (!(zephir_is_true(&_31$$24))) { - ZEPHIR_CALL_METHOD(NULL, &connection, "rollback", &_32, 0); - zephir_check_call_status(); - object_init_ex(return_value, phalcon_mvc_model_query_status_ce); - ZVAL_BOOL(&_33$$25, 0); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 465, &_33$$25, &record); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_CALL_METHOD(NULL, &records, "next", &_34, 0); + ZEPHIR_INIT_VAR(&_9$$3); + zephir_get_class(&_9$$3, this_ptr, 0); + ZEPHIR_CALL_METHOD(&_10$$3, this_ptr, "preparecode", NULL, 0, field); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_6$$3, "__construct", NULL, 6, &_8$$3, field, &_9$$3, &_10$$3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_6$$3); zephir_check_call_status(); + RETURN_MM_BOOL(0); } - ZEPHIR_CALL_METHOD(NULL, &connection, "commit", NULL, 0); - zephir_check_call_status(); - object_init_ex(return_value, phalcon_mvc_model_query_status_ce); - ZVAL_BOOL(&_35, 1); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 465, &_35); + RETURN_MM_BOOL(1); +} + +static PHP_METHOD(Phalcon_Validation_Validator_File_AbstractFile, checkUploadIsValid) +{ + zend_bool _0, _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *validation, validation_sub, *field, field_sub, label, replacePairs, value, _2$$3, _3$$3, _4$$3, _5$$3, _6$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&label); + ZVAL_UNDEF(&replacePairs); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &validation, &field); + + + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); zephir_check_call_status(); - RETURN_MM(); + _0 = !(zephir_array_isset_string(&value, SL("name"))); + if (!(_0)) { + _0 = !(zephir_array_isset_string(&value, SL("type"))); + } + _1 = _0; + if (!(_1)) { + _1 = !(zephir_array_isset_string(&value, SL("size"))); + } + if (_1) { + ZEPHIR_CALL_METHOD(&label, this_ptr, "preparelabel", NULL, 0, validation, field); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&replacePairs); + zephir_create_array(&replacePairs, 1, 0); + zephir_array_update_string(&replacePairs, SL(":field"), &label, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_2$$3); + object_init_ex(&_2$$3, phalcon_messages_message_ce); + ZEPHIR_CALL_METHOD(&_3$$3, this_ptr, "getmessagevalid", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_4$$3, "strtr", NULL, 5, &_3$$3, &replacePairs); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_5$$3); + zephir_get_class(&_5$$3, this_ptr, 0); + ZEPHIR_CALL_METHOD(&_6$$3, this_ptr, "preparecode", NULL, 0, field); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", NULL, 6, &_4$$3, field, &_5$$3, &_6$$3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_2$$3); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getCallArgument) +static PHP_METHOD(Phalcon_Validation_Validator_File_AbstractFile, checkUploadMaxSize) { + zend_bool _1, _2, _3, _5, _6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *argument_param = NULL, _0; - zval argument; + zval *validation, validation_sub, *field, field_sub, _SERVER, _POST, _FILES, label, replacePairs, value, _0, _4, _7, _8$$3, _9$$3, _10$$3, _11$$3, _12$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&argument); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&_SERVER); + ZVAL_UNDEF(&_POST); + ZVAL_UNDEF(&_FILES); + ZVAL_UNDEF(&label); + ZVAL_UNDEF(&replacePairs); + ZVAL_UNDEF(&value); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8$$3); + ZVAL_UNDEF(&_9$$3); + ZVAL_UNDEF(&_10$$3); + ZVAL_UNDEF(&_11$$3); + ZVAL_UNDEF(&_12$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(argument) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &argument_param); - ZEPHIR_OBS_COPY_OR_DUP(&argument, argument_param); + zephir_get_global(&_FILES, SL("_FILES")); + zephir_get_global(&_POST, SL("_POST")); + zephir_get_global(&_SERVER, SL("_SERVER")); + zephir_fetch_params(1, 2, 0, &validation, &field); - zephir_array_fetch_string(&_0, &argument, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1504); - if (ZEPHIR_IS_LONG(&_0, 352)) { - zephir_create_array(return_value, 1, 0); - add_assoc_stringl_ex(return_value, SL("type"), SL("all")); - RETURN_MM(); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getexpression", NULL, 468, &argument); + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); zephir_check_call_status(); - RETURN_MM(); + zephir_array_fetch_string(&_0, &_SERVER, SL("REQUEST_METHOD"), PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/AbstractFile.zep", 180); + _1 = ZEPHIR_IS_STRING(&_0, "POST"); + if (_1) { + _1 = ZEPHIR_IS_EMPTY(&_POST); + } + _2 = _1; + if (_2) { + _2 = ZEPHIR_IS_EMPTY(&_FILES); + } + _3 = _2; + if (_3) { + zephir_array_fetch_string(&_4, &_SERVER, SL("CONTENT_LENGTH"), PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/AbstractFile.zep", 183); + _3 = ZEPHIR_GT_LONG(&_4, 0); + } + _5 = _3; + if (!(_5)) { + _6 = zephir_array_isset_string(&value, SL("error")); + if (_6) { + zephir_array_fetch_string(&_7, &value, SL("error"), PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/AbstractFile.zep", 184); + _6 = ZEPHIR_IS_LONG_IDENTICAL(&_7, 1); + } + _5 = _6; + } + if (_5) { + ZEPHIR_CALL_METHOD(&label, this_ptr, "preparelabel", NULL, 0, validation, field); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&replacePairs); + zephir_create_array(&replacePairs, 1, 0); + zephir_array_update_string(&replacePairs, SL(":field"), &label, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_8$$3); + object_init_ex(&_8$$3, phalcon_messages_message_ce); + ZEPHIR_CALL_METHOD(&_9$$3, this_ptr, "getmessageinisize", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_10$$3, "strtr", NULL, 5, &_9$$3, &replacePairs); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_11$$3); + zephir_get_class(&_11$$3, this_ptr, 0); + ZEPHIR_CALL_METHOD(&_12$$3, this_ptr, "preparecode", NULL, 0, field); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_8$$3, "__construct", NULL, 6, &_10$$3, field, &_11$$3, &_12$$3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_8$$3); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getCaseExpression) +static PHP_METHOD(Phalcon_Validation_Validator_File_AbstractFile, getFileSizeInBytes) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_6 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *expr_param = NULL, whenClauses, whenExpr, _0, *_1, _2, _18, _19, _4$$4, _5$$4, _7$$4, _9$$5, _10$$5, _12$$7, _13$$7, _14$$7, _16$$8, _17$$8; - zval expr, _3$$4, _8$$5, _11$$7, _15$$8; + zval *size_param = NULL, byteUnits, unit, matches, _0, _1, _2, _3, _4, _5, _6, _7, _8; + zval size; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_11$$7); - ZVAL_UNDEF(&_15$$8); - ZVAL_UNDEF(&whenClauses); - ZVAL_UNDEF(&whenExpr); + ZVAL_UNDEF(&size); + ZVAL_UNDEF(&byteUnits); + ZVAL_UNDEF(&unit); + ZVAL_UNDEF(&matches); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_18); - ZVAL_UNDEF(&_19); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_10$$5); - ZVAL_UNDEF(&_12$$7); - ZVAL_UNDEF(&_13$$7); - ZVAL_UNDEF(&_14$$7); - ZVAL_UNDEF(&_16$$8); - ZVAL_UNDEF(&_17$$8); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(expr) + Z_PARAM_STR(size) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &expr_param); - ZEPHIR_OBS_COPY_OR_DUP(&expr, expr_param); + zephir_fetch_params(1, 1, 0, &size_param); + if (UNEXPECTED(Z_TYPE_P(size_param) != IS_STRING && Z_TYPE_P(size_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'size' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(size_param) == IS_STRING)) { + zephir_get_strval(&size, size_param); + } else { + ZEPHIR_INIT_VAR(&size); + } - ZEPHIR_INIT_VAR(&whenClauses); - array_init(&whenClauses); - zephir_array_fetch_string(&_0, &expr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1522); - zephir_is_iterable(&_0, 0, "phalcon/Mvc/Model/Query.zep", 1537); - if (Z_TYPE_P(&_0) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _1) - { - ZEPHIR_INIT_NVAR(&whenExpr); - ZVAL_COPY(&whenExpr, _1); - if (zephir_array_isset_string(&whenExpr, SL("right"))) { - ZEPHIR_INIT_NVAR(&_3$$4); - zephir_create_array(&_3$$4, 3, 0); - add_assoc_stringl_ex(&_3$$4, SL("type"), SL("when")); - zephir_array_fetch_string(&_5$$4, &whenExpr, SL("left"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1526); - ZEPHIR_CALL_METHOD(&_4$$4, this_ptr, "getexpression", &_6, 468, &_5$$4); - zephir_check_call_status(); - zephir_array_update_string(&_3$$4, SL("expr"), &_4$$4, PH_COPY | PH_SEPARATE); - zephir_array_fetch_string(&_7$$4, &whenExpr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1527); - ZEPHIR_CALL_METHOD(&_4$$4, this_ptr, "getexpression", &_6, 468, &_7$$4); - zephir_check_call_status(); - zephir_array_update_string(&_3$$4, SL("then"), &_4$$4, PH_COPY | PH_SEPARATE); - zephir_array_append(&whenClauses, &_3$$4, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1528); - } else { - ZEPHIR_INIT_NVAR(&_8$$5); - zephir_create_array(&_8$$5, 2, 0); - add_assoc_stringl_ex(&_8$$5, SL("type"), SL("else")); - zephir_array_fetch_string(&_10$$5, &whenExpr, SL("left"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1532); - ZEPHIR_CALL_METHOD(&_9$$5, this_ptr, "getexpression", &_6, 468, &_10$$5); - zephir_check_call_status(); - zephir_array_update_string(&_8$$5, SL("expr"), &_9$$5, PH_COPY | PH_SEPARATE); - zephir_array_append(&whenClauses, &_8$$5, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1533); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &_0, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&whenExpr, &_0, "current", NULL, 0); - zephir_check_call_status(); - if (zephir_array_isset_string(&whenExpr, SL("right"))) { - ZEPHIR_INIT_NVAR(&_11$$7); - zephir_create_array(&_11$$7, 3, 0); - add_assoc_stringl_ex(&_11$$7, SL("type"), SL("when")); - zephir_array_fetch_string(&_13$$7, &whenExpr, SL("left"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1526); - ZEPHIR_CALL_METHOD(&_12$$7, this_ptr, "getexpression", &_6, 468, &_13$$7); - zephir_check_call_status(); - zephir_array_update_string(&_11$$7, SL("expr"), &_12$$7, PH_COPY | PH_SEPARATE); - zephir_array_fetch_string(&_14$$7, &whenExpr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1527); - ZEPHIR_CALL_METHOD(&_12$$7, this_ptr, "getexpression", &_6, 468, &_14$$7); - zephir_check_call_status(); - zephir_array_update_string(&_11$$7, SL("then"), &_12$$7, PH_COPY | PH_SEPARATE); - zephir_array_append(&whenClauses, &_11$$7, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1528); - } else { - ZEPHIR_INIT_NVAR(&_15$$8); - zephir_create_array(&_15$$8, 2, 0); - add_assoc_stringl_ex(&_15$$8, SL("type"), SL("else")); - zephir_array_fetch_string(&_17$$8, &whenExpr, SL("left"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1532); - ZEPHIR_CALL_METHOD(&_16$$8, this_ptr, "getexpression", &_6, 468, &_17$$8); - zephir_check_call_status(); - zephir_array_update_string(&_15$$8, SL("expr"), &_16$$8, PH_COPY | PH_SEPARATE); - zephir_array_append(&whenClauses, &_15$$8, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 1533); - } - ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); - zephir_check_call_status(); - } + ZEPHIR_INIT_VAR(&byteUnits); + zephir_create_array(&byteUnits, 9, 0); + add_assoc_long_ex(&byteUnits, SL("B"), 0); + add_assoc_long_ex(&byteUnits, SL("K"), 10); + add_assoc_long_ex(&byteUnits, SL("M"), 20); + add_assoc_long_ex(&byteUnits, SL("G"), 30); + add_assoc_long_ex(&byteUnits, SL("T"), 40); + add_assoc_long_ex(&byteUnits, SL("KB"), 10); + add_assoc_long_ex(&byteUnits, SL("MB"), 20); + add_assoc_long_ex(&byteUnits, SL("GB"), 30); + add_assoc_long_ex(&byteUnits, SL("TB"), 40); + ZEPHIR_INIT_VAR(&unit); + ZVAL_STRING(&unit, "B"); + ZEPHIR_INIT_VAR(&matches); + ZVAL_NULL(&matches); + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_INIT_VAR(&_1); + zephir_array_keys(&_1, &byteUnits); + zephir_fast_join_str(&_0, SL("|"), &_1); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_CONCAT_SVS(&_2, "/^([0-9]+(?:\\.[0-9]+)?)(", &_0, ")?$/Di"); + ZEPHIR_INIT_VAR(&_3); + zephir_preg_match(&_3, &_2, &size, &matches, 0, 0 , 0 ); + if (zephir_array_isset_long(&matches, 2)) { + ZEPHIR_OBS_NVAR(&unit); + zephir_array_fetch_long(&unit, &matches, 2, PH_NOISY, "phalcon/Validation/Validator/File/AbstractFile.zep", 233); } - ZEPHIR_INIT_NVAR(&whenExpr); - zephir_create_array(return_value, 3, 0); - add_assoc_stringl_ex(return_value, SL("type"), SL("case")); - zephir_array_fetch_string(&_19, &expr, SL("left"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1539); - ZEPHIR_CALL_METHOD(&_18, this_ptr, "getexpression", &_6, 468, &_19); + zephir_array_fetch_long(&_4, &matches, 1, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/AbstractFile.zep", 236); + ZEPHIR_CALL_FUNCTION(&_5, "floatval", NULL, 18, &_4); zephir_check_call_status(); - zephir_array_update_string(return_value, SL("expr"), &_18, PH_COPY | PH_SEPARATE); - zephir_array_update_string(return_value, SL("when-clauses"), &whenClauses, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_6); + zephir_array_fetch(&_7, &byteUnits, &unit, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/AbstractFile.zep", 236); + ZVAL_LONG(&_8, 2); + zephir_pow_function(&_6, &_8, &_7); + mul_function(return_value, &_5, &_6); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getExpression) +static PHP_METHOD(Phalcon_Validation_Validator_File_AbstractFile, isAllowEmpty) { + zend_bool _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool quoting, tempNotQuoting = 0; - zval *expr_param = NULL, *quoting_param = NULL, exprType, exprLeft, exprRight, left, right, listItems, exprListItem, exprReturn, value, escapedValue, exprValue, valueParts, name, bindType, bind, _0$$5, _1$$6, _2$$8, _3$$9, _4$$10, _5$$11, _6$$12, _7$$13, _8$$14, _9$$16, _10$$17, _11$$18, _12$$19, _13$$20, _14$$21, _15$$22, _16$$23, _17$$24, _18$$25, _19$$25, _20$$26, _21$$27, _22$$28, _23$$33, _24$$33, _25$$33, _26$$33, _27$$33, _28$$34, _29$$34, _30$$34, _31$$37, _32$$37, _33$$37, _34$$38, _35$$38, _36$$38, _37$$39, _38$$39, _39$$39, _40$$40, _41$$40, _42$$40, _43$$41, _44$$41, _45$$41, _46$$42, _47$$42, _48$$42, _49$$43, _56$$43, _57$$43, _50$$44, _51$$44, _52$$45, _53$$45, _54$$46, _55$$46, _58$$47, _59$$47, _60$$48, _61$$48, _62$$49, _63$$50, _64$$51, _65$$52, _66$$53, _67$$54, _68$$55, _69$$56, _70$$57, _71$$58, _72$$59, _73$$60, _74$$61, _75$$62, _76$$63, _77$$64, _78$$65, _79$$66, _80$$66, _81$$69, _82$$69, _83$$69, _84$$70, _85$$70, *_86$$72, _87$$72, _88$$73, _89$$74; - zval expr; + zval field; + zval *validation, validation_sub, *field_param = NULL, value, _2; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&exprType); - ZVAL_UNDEF(&exprLeft); - ZVAL_UNDEF(&exprRight); - ZVAL_UNDEF(&left); - ZVAL_UNDEF(&right); - ZVAL_UNDEF(&listItems); - ZVAL_UNDEF(&exprListItem); - ZVAL_UNDEF(&exprReturn); + ZVAL_UNDEF(&validation_sub); ZVAL_UNDEF(&value); - ZVAL_UNDEF(&escapedValue); - ZVAL_UNDEF(&exprValue); - ZVAL_UNDEF(&valueParts); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&bindType); - ZVAL_UNDEF(&bind); - ZVAL_UNDEF(&_0$$5); - ZVAL_UNDEF(&_1$$6); - ZVAL_UNDEF(&_2$$8); - ZVAL_UNDEF(&_3$$9); - ZVAL_UNDEF(&_4$$10); - ZVAL_UNDEF(&_5$$11); - ZVAL_UNDEF(&_6$$12); - ZVAL_UNDEF(&_7$$13); - ZVAL_UNDEF(&_8$$14); - ZVAL_UNDEF(&_9$$16); - ZVAL_UNDEF(&_10$$17); - ZVAL_UNDEF(&_11$$18); - ZVAL_UNDEF(&_12$$19); - ZVAL_UNDEF(&_13$$20); - ZVAL_UNDEF(&_14$$21); - ZVAL_UNDEF(&_15$$22); - ZVAL_UNDEF(&_16$$23); - ZVAL_UNDEF(&_17$$24); - ZVAL_UNDEF(&_18$$25); - ZVAL_UNDEF(&_19$$25); - ZVAL_UNDEF(&_20$$26); - ZVAL_UNDEF(&_21$$27); - ZVAL_UNDEF(&_22$$28); - ZVAL_UNDEF(&_23$$33); - ZVAL_UNDEF(&_24$$33); - ZVAL_UNDEF(&_25$$33); - ZVAL_UNDEF(&_26$$33); - ZVAL_UNDEF(&_27$$33); - ZVAL_UNDEF(&_28$$34); - ZVAL_UNDEF(&_29$$34); - ZVAL_UNDEF(&_30$$34); - ZVAL_UNDEF(&_31$$37); - ZVAL_UNDEF(&_32$$37); - ZVAL_UNDEF(&_33$$37); - ZVAL_UNDEF(&_34$$38); - ZVAL_UNDEF(&_35$$38); - ZVAL_UNDEF(&_36$$38); - ZVAL_UNDEF(&_37$$39); - ZVAL_UNDEF(&_38$$39); - ZVAL_UNDEF(&_39$$39); - ZVAL_UNDEF(&_40$$40); - ZVAL_UNDEF(&_41$$40); - ZVAL_UNDEF(&_42$$40); - ZVAL_UNDEF(&_43$$41); - ZVAL_UNDEF(&_44$$41); - ZVAL_UNDEF(&_45$$41); - ZVAL_UNDEF(&_46$$42); - ZVAL_UNDEF(&_47$$42); - ZVAL_UNDEF(&_48$$42); - ZVAL_UNDEF(&_49$$43); - ZVAL_UNDEF(&_56$$43); - ZVAL_UNDEF(&_57$$43); - ZVAL_UNDEF(&_50$$44); - ZVAL_UNDEF(&_51$$44); - ZVAL_UNDEF(&_52$$45); - ZVAL_UNDEF(&_53$$45); - ZVAL_UNDEF(&_54$$46); - ZVAL_UNDEF(&_55$$46); - ZVAL_UNDEF(&_58$$47); - ZVAL_UNDEF(&_59$$47); - ZVAL_UNDEF(&_60$$48); - ZVAL_UNDEF(&_61$$48); - ZVAL_UNDEF(&_62$$49); - ZVAL_UNDEF(&_63$$50); - ZVAL_UNDEF(&_64$$51); - ZVAL_UNDEF(&_65$$52); - ZVAL_UNDEF(&_66$$53); - ZVAL_UNDEF(&_67$$54); - ZVAL_UNDEF(&_68$$55); - ZVAL_UNDEF(&_69$$56); - ZVAL_UNDEF(&_70$$57); - ZVAL_UNDEF(&_71$$58); - ZVAL_UNDEF(&_72$$59); - ZVAL_UNDEF(&_73$$60); - ZVAL_UNDEF(&_74$$61); - ZVAL_UNDEF(&_75$$62); - ZVAL_UNDEF(&_76$$63); - ZVAL_UNDEF(&_77$$64); - ZVAL_UNDEF(&_78$$65); - ZVAL_UNDEF(&_79$$66); - ZVAL_UNDEF(&_80$$66); - ZVAL_UNDEF(&_81$$69); - ZVAL_UNDEF(&_82$$69); - ZVAL_UNDEF(&_83$$69); - ZVAL_UNDEF(&_84$$70); - ZVAL_UNDEF(&_85$$70); - ZVAL_UNDEF(&_87$$72); - ZVAL_UNDEF(&_88$$73); - ZVAL_UNDEF(&_89$$74); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&field); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(expr) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(quoting) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_STR(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &expr_param, "ing_param); - zephir_get_arrval(&expr, expr_param); - if (!quoting_param) { - quoting = 1; + zephir_fetch_params(1, 2, 0, &validation, &field_param); + if (UNEXPECTED(Z_TYPE_P(field_param) != IS_STRING && Z_TYPE_P(field_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'field' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(field_param) == IS_STRING)) { + zephir_get_strval(&field, field_param); } else { - quoting = zephir_get_boolval(quoting_param); + ZEPHIR_INIT_VAR(&field); } - ZEPHIR_INIT_VAR(&left); - ZVAL_NULL(&left); - ZEPHIR_INIT_VAR(&right); - ZVAL_NULL(&right); - ZEPHIR_OBS_VAR(&exprType); - if (zephir_array_isset_string_fetch(&exprType, &expr, SL("type"), 0)) { - tempNotQuoting = 1; - if (!ZEPHIR_IS_LONG(&exprType, 409)) { - ZEPHIR_OBS_VAR(&exprLeft); - if (zephir_array_isset_string_fetch(&exprLeft, &expr, SL("left"), 0)) { - if (tempNotQuoting) { - ZVAL_BOOL(&_0$$5, 1); - } else { - ZVAL_BOOL(&_0$$5, 0); - } - ZEPHIR_CALL_METHOD(&left, this_ptr, "getexpression", NULL, 468, &exprLeft, &_0$$5); - zephir_check_call_status(); - } - ZEPHIR_OBS_VAR(&exprRight); - if (zephir_array_isset_string_fetch(&exprRight, &expr, SL("right"), 0)) { - if (tempNotQuoting) { - ZVAL_BOOL(&_1$$6, 1); - } else { - ZVAL_BOOL(&_1$$6, 0); - } - ZEPHIR_CALL_METHOD(&right, this_ptr, "getexpression", NULL, 468, &exprRight, &_1$$6); - zephir_check_call_status(); - } - } - do { - if (ZEPHIR_IS_LONG(&exprType, '<')) { - ZEPHIR_INIT_VAR(&exprReturn); - zephir_create_array(&exprReturn, 4, 0); - add_assoc_stringl_ex(&exprReturn, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&exprReturn, SL("op"), SL("<")); - zephir_array_update_string(&exprReturn, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&exprReturn, SL("right"), &right, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_LONG(&exprType, '=')) { - ZEPHIR_INIT_VAR(&_2$$8); - zephir_create_array(&_2$$8, 4, 0); - add_assoc_stringl_ex(&_2$$8, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_2$$8, SL("op"), SL("=")); - zephir_array_update_string(&_2$$8, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_2$$8, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_2$$8); - break; - } - if (ZEPHIR_IS_LONG(&exprType, '>')) { - ZEPHIR_INIT_VAR(&_3$$9); - zephir_create_array(&_3$$9, 4, 0); - add_assoc_stringl_ex(&_3$$9, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_3$$9, SL("op"), SL(">")); - zephir_array_update_string(&_3$$9, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_3$$9, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_3$$9); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 270)) { - ZEPHIR_INIT_VAR(&_4$$10); - zephir_create_array(&_4$$10, 4, 0); - add_assoc_stringl_ex(&_4$$10, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_4$$10, SL("op"), SL("<>")); - zephir_array_update_string(&_4$$10, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_4$$10, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_4$$10); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 271)) { - ZEPHIR_INIT_VAR(&_5$$11); - zephir_create_array(&_5$$11, 4, 0); - add_assoc_stringl_ex(&_5$$11, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_5$$11, SL("op"), SL("<=")); - zephir_array_update_string(&_5$$11, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_5$$11, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_5$$11); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 272)) { - ZEPHIR_INIT_VAR(&_6$$12); - zephir_create_array(&_6$$12, 4, 0); - add_assoc_stringl_ex(&_6$$12, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_6$$12, SL("op"), SL(">=")); - zephir_array_update_string(&_6$$12, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_6$$12, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_6$$12); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 266)) { - ZEPHIR_INIT_VAR(&_7$$13); - zephir_create_array(&_7$$13, 4, 0); - add_assoc_stringl_ex(&_7$$13, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_7$$13, SL("op"), SL("AND")); - zephir_array_update_string(&_7$$13, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_7$$13, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_7$$13); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 267)) { - ZEPHIR_INIT_VAR(&_8$$14); - zephir_create_array(&_8$$14, 4, 0); - add_assoc_stringl_ex(&_8$$14, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_8$$14, SL("op"), SL("OR")); - zephir_array_update_string(&_8$$14, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_8$$14, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_8$$14); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 355)) { - ZEPHIR_CALL_METHOD(&exprReturn, this_ptr, "getqualified", NULL, 469, &expr); - zephir_check_call_status(); - break; - } - if (ZEPHIR_IS_LONG(&exprType, '+')) { - ZEPHIR_INIT_VAR(&_9$$16); - zephir_create_array(&_9$$16, 4, 0); - add_assoc_stringl_ex(&_9$$16, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_9$$16, SL("op"), SL("+")); - zephir_array_update_string(&_9$$16, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_9$$16, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_9$$16); - break; - } - if (ZEPHIR_IS_LONG(&exprType, '-')) { - ZEPHIR_INIT_VAR(&_10$$17); - zephir_create_array(&_10$$17, 4, 0); - add_assoc_stringl_ex(&_10$$17, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_10$$17, SL("op"), SL("-")); - zephir_array_update_string(&_10$$17, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_10$$17, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_10$$17); - break; - } - if (ZEPHIR_IS_LONG(&exprType, '*')) { - ZEPHIR_INIT_VAR(&_11$$18); - zephir_create_array(&_11$$18, 4, 0); - add_assoc_stringl_ex(&_11$$18, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_11$$18, SL("op"), SL("*")); - zephir_array_update_string(&_11$$18, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_11$$18, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_11$$18); - break; - } - if (ZEPHIR_IS_LONG(&exprType, '/')) { - ZEPHIR_INIT_VAR(&_12$$19); - zephir_create_array(&_12$$19, 4, 0); - add_assoc_stringl_ex(&_12$$19, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_12$$19, SL("op"), SL("/")); - zephir_array_update_string(&_12$$19, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_12$$19, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_12$$19); - break; - } - if (ZEPHIR_IS_LONG(&exprType, '%')) { - ZEPHIR_INIT_VAR(&_13$$20); - zephir_create_array(&_13$$20, 4, 0); - add_assoc_stringl_ex(&_13$$20, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_13$$20, SL("op"), SL("%")); - zephir_array_update_string(&_13$$20, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_13$$20, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_13$$20); - break; - } - if (ZEPHIR_IS_LONG(&exprType, '&')) { - ZEPHIR_INIT_VAR(&_14$$21); - zephir_create_array(&_14$$21, 4, 0); - add_assoc_stringl_ex(&_14$$21, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_14$$21, SL("op"), SL("&")); - zephir_array_update_string(&_14$$21, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_14$$21, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_14$$21); - break; - } - if (ZEPHIR_IS_LONG(&exprType, '|')) { - ZEPHIR_INIT_VAR(&_15$$22); - zephir_create_array(&_15$$22, 4, 0); - add_assoc_stringl_ex(&_15$$22, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_15$$22, SL("op"), SL("|")); - zephir_array_update_string(&_15$$22, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_15$$22, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_15$$22); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 356) || ZEPHIR_IS_LONG(&exprType, 407)) { - ZEPHIR_INIT_VAR(&_16$$23); - zephir_create_array(&_16$$23, 2, 0); - add_assoc_stringl_ex(&_16$$23, SL("type"), SL("parentheses")); - zephir_array_update_string(&_16$$23, SL("left"), &left, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_16$$23); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 367)) { - ZEPHIR_INIT_VAR(&_17$$24); - zephir_create_array(&_17$$24, 3, 0); - add_assoc_stringl_ex(&_17$$24, SL("type"), SL("unary-op")); - add_assoc_stringl_ex(&_17$$24, SL("op"), SL("-")); - zephir_array_update_string(&_17$$24, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_17$$24); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 258) || ZEPHIR_IS_LONG(&exprType, 259) || ZEPHIR_IS_LONG(&exprType, 414)) { - ZEPHIR_INIT_VAR(&_18$$25); - zephir_create_array(&_18$$25, 2, 0); - add_assoc_stringl_ex(&_18$$25, SL("type"), SL("literal")); - ZEPHIR_OBS_VAR(&_19$$25); - zephir_array_fetch_string(&_19$$25, &expr, SL("value"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1755); - zephir_array_update_string(&_18$$25, SL("value"), &_19$$25, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_18$$25); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 334)) { - ZEPHIR_INIT_VAR(&_20$$26); - zephir_create_array(&_20$$26, 2, 0); - add_assoc_stringl_ex(&_20$$26, SL("type"), SL("literal")); - add_assoc_stringl_ex(&_20$$26, SL("value"), SL("TRUE")); - ZEPHIR_CPY_WRT(&exprReturn, &_20$$26); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 335)) { - ZEPHIR_INIT_VAR(&_21$$27); - zephir_create_array(&_21$$27, 2, 0); - add_assoc_stringl_ex(&_21$$27, SL("type"), SL("literal")); - add_assoc_stringl_ex(&_21$$27, SL("value"), SL("FALSE")); - ZEPHIR_CPY_WRT(&exprReturn, &_21$$27); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 260)) { - ZEPHIR_OBS_VAR(&value); - zephir_array_fetch_string(&value, &expr, SL("value"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1776); - if (quoting) { - if (zephir_memnstr_str(&value, SL("'"), "phalcon/Mvc/Model/Query.zep", 1783)) { - ZEPHIR_INIT_VAR(&escapedValue); - phalcon_orm_singlequotes(&escapedValue, &value); - } else { - ZEPHIR_CPY_WRT(&escapedValue, &value); - } - ZEPHIR_INIT_VAR(&exprValue); - ZEPHIR_CONCAT_SVS(&exprValue, "'", &escapedValue, "'"); - } else { - ZEPHIR_CPY_WRT(&exprValue, &value); - } - ZEPHIR_INIT_VAR(&_22$$28); - zephir_create_array(&_22$$28, 2, 0); - add_assoc_stringl_ex(&_22$$28, SL("type"), SL("literal")); - zephir_array_update_string(&_22$$28, SL("value"), &exprValue, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_22$$28); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 273)) { - ZEPHIR_INIT_VAR(&_23$$33); - zephir_create_array(&_23$$33, 2, 0); - add_assoc_stringl_ex(&_23$$33, SL("type"), SL("placeholder")); - ZEPHIR_INIT_VAR(&_24$$33); - zephir_array_fetch_string(&_25$$33, &expr, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1804); - ZEPHIR_INIT_VAR(&_26$$33); - ZVAL_STRING(&_26$$33, "?"); - ZEPHIR_INIT_VAR(&_27$$33); - ZVAL_STRING(&_27$$33, ":"); - zephir_fast_str_replace(&_24$$33, &_26$$33, &_27$$33, &_25$$33); - zephir_array_update_string(&_23$$33, SL("value"), &_24$$33, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_23$$33); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 274)) { - ZEPHIR_INIT_VAR(&_28$$34); - zephir_create_array(&_28$$34, 2, 0); - add_assoc_stringl_ex(&_28$$34, SL("type"), SL("placeholder")); - zephir_array_fetch_string(&_29$$34, &expr, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 1813); - ZEPHIR_INIT_VAR(&_30$$34); - ZEPHIR_CONCAT_SV(&_30$$34, ":", &_29$$34); - zephir_array_update_string(&_28$$34, SL("value"), &_30$$34, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_28$$34); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 277)) { - ZEPHIR_OBS_NVAR(&value); - zephir_array_fetch_string(&value, &expr, SL("value"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1818); - if (zephir_memnstr_str(&value, SL(":"), "phalcon/Mvc/Model/Query.zep", 1820)) { - ZEPHIR_INIT_VAR(&valueParts); - zephir_fast_explode_str(&valueParts, SL(":"), &value, LONG_MAX); - ZEPHIR_OBS_VAR(&name); - zephir_array_fetch_long(&name, &valueParts, 0, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1822); - ZEPHIR_OBS_VAR(&bindType); - zephir_array_fetch_long(&bindType, &valueParts, 1, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 1823); - do { - if (ZEPHIR_IS_STRING(&bindType, "str")) { - ZEPHIR_INIT_VAR(&_31$$37); - ZVAL_LONG(&_31$$37, 2); - zephir_update_property_array(this_ptr, SL("bindTypes"), &name, &_31$$37); - ZEPHIR_INIT_VAR(&_32$$37); - zephir_create_array(&_32$$37, 2, 0); - add_assoc_stringl_ex(&_32$$37, SL("type"), SL("placeholder")); - ZEPHIR_INIT_VAR(&_33$$37); - ZEPHIR_CONCAT_SV(&_33$$37, ":", &name); - zephir_array_update_string(&_32$$37, SL("value"), &_33$$37, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_32$$37); - break; - } - if (ZEPHIR_IS_STRING(&bindType, "int")) { - ZEPHIR_INIT_VAR(&_34$$38); - ZVAL_LONG(&_34$$38, 1); - zephir_update_property_array(this_ptr, SL("bindTypes"), &name, &_34$$38); - ZEPHIR_INIT_VAR(&_35$$38); - zephir_create_array(&_35$$38, 2, 0); - add_assoc_stringl_ex(&_35$$38, SL("type"), SL("placeholder")); - ZEPHIR_INIT_VAR(&_36$$38); - ZEPHIR_CONCAT_SV(&_36$$38, ":", &name); - zephir_array_update_string(&_35$$38, SL("value"), &_36$$38, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_35$$38); - break; - } - if (ZEPHIR_IS_STRING(&bindType, "double")) { - ZEPHIR_INIT_VAR(&_37$$39); - ZVAL_LONG(&_37$$39, 32); - zephir_update_property_array(this_ptr, SL("bindTypes"), &name, &_37$$39); - ZEPHIR_INIT_VAR(&_38$$39); - zephir_create_array(&_38$$39, 2, 0); - add_assoc_stringl_ex(&_38$$39, SL("type"), SL("placeholder")); - ZEPHIR_INIT_VAR(&_39$$39); - ZEPHIR_CONCAT_SV(&_39$$39, ":", &name); - zephir_array_update_string(&_38$$39, SL("value"), &_39$$39, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_38$$39); - break; - } - if (ZEPHIR_IS_STRING(&bindType, "bool")) { - ZEPHIR_INIT_VAR(&_40$$40); - ZVAL_LONG(&_40$$40, 5); - zephir_update_property_array(this_ptr, SL("bindTypes"), &name, &_40$$40); - ZEPHIR_INIT_VAR(&_41$$40); - zephir_create_array(&_41$$40, 2, 0); - add_assoc_stringl_ex(&_41$$40, SL("type"), SL("placeholder")); - ZEPHIR_INIT_VAR(&_42$$40); - ZEPHIR_CONCAT_SV(&_42$$40, ":", &name); - zephir_array_update_string(&_41$$40, SL("value"), &_42$$40, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_41$$40); - break; - } - if (ZEPHIR_IS_STRING(&bindType, "blob")) { - ZEPHIR_INIT_VAR(&_43$$41); - ZVAL_LONG(&_43$$41, 3); - zephir_update_property_array(this_ptr, SL("bindTypes"), &name, &_43$$41); - ZEPHIR_INIT_VAR(&_44$$41); - zephir_create_array(&_44$$41, 2, 0); - add_assoc_stringl_ex(&_44$$41, SL("type"), SL("placeholder")); - ZEPHIR_INIT_VAR(&_45$$41); - ZEPHIR_CONCAT_SV(&_45$$41, ":", &name); - zephir_array_update_string(&_44$$41, SL("value"), &_45$$41, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_44$$41); - break; - } - if (ZEPHIR_IS_STRING(&bindType, "null")) { - ZEPHIR_INIT_VAR(&_46$$42); - ZVAL_LONG(&_46$$42, 0); - zephir_update_property_array(this_ptr, SL("bindTypes"), &name, &_46$$42); - ZEPHIR_INIT_VAR(&_47$$42); - zephir_create_array(&_47$$42, 2, 0); - add_assoc_stringl_ex(&_47$$42, SL("type"), SL("placeholder")); - ZEPHIR_INIT_VAR(&_48$$42); - ZEPHIR_CONCAT_SV(&_48$$42, ":", &name); - zephir_array_update_string(&_47$$42, SL("value"), &_48$$42, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_47$$42); - break; - } - if (ZEPHIR_IS_STRING(&bindType, "array") || ZEPHIR_IS_STRING(&bindType, "array-str") || ZEPHIR_IS_STRING(&bindType, "array-int")) { - ZEPHIR_OBS_VAR(&bind); - zephir_read_property(&_49$$43, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(!(zephir_array_isset_fetch(&bind, &_49$$43, &name, 0)))) { - ZEPHIR_INIT_VAR(&_50$$44); - object_init_ex(&_50$$44, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_51$$44); - ZEPHIR_CONCAT_SV(&_51$$44, "Bind value is required for array type placeholder: ", &name); - ZEPHIR_CALL_METHOD(NULL, &_50$$44, "__construct", NULL, 8, &_51$$44); - zephir_check_call_status(); - zephir_throw_exception_debug(&_50$$44, "phalcon/Mvc/Model/Query.zep", 1893); - ZEPHIR_MM_RESTORE(); - return; - } - if (UNEXPECTED(Z_TYPE_P(&bind) != IS_ARRAY)) { - ZEPHIR_INIT_VAR(&_52$$45); - object_init_ex(&_52$$45, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_53$$45); - ZEPHIR_CONCAT_SV(&_53$$45, "Bind type requires an array in placeholder: ", &name); - ZEPHIR_CALL_METHOD(NULL, &_52$$45, "__construct", NULL, 8, &_53$$45); - zephir_check_call_status(); - zephir_throw_exception_debug(&_52$$45, "phalcon/Mvc/Model/Query.zep", 1899); - ZEPHIR_MM_RESTORE(); - return; - } - if (UNEXPECTED(zephir_fast_count_int(&bind) < 1)) { - ZEPHIR_INIT_VAR(&_54$$46); - object_init_ex(&_54$$46, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_55$$46); - ZEPHIR_CONCAT_SV(&_55$$46, "At least one value must be bound in placeholder: ", &name); - ZEPHIR_CALL_METHOD(NULL, &_54$$46, "__construct", NULL, 8, &_55$$46); - zephir_check_call_status(); - zephir_throw_exception_debug(&_54$$46, "phalcon/Mvc/Model/Query.zep", 1905); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_VAR(&_56$$43); - zephir_create_array(&_56$$43, 4, 0); - add_assoc_stringl_ex(&_56$$43, SL("type"), SL("placeholder")); - ZEPHIR_INIT_VAR(&_57$$43); - ZEPHIR_CONCAT_SV(&_57$$43, ":", &name); - zephir_array_update_string(&_56$$43, SL("value"), &_57$$43, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_56$$43, SL("rawValue"), &name, PH_COPY | PH_SEPARATE); - add_assoc_long_ex(&_56$$43, SL("times"), zephir_fast_count_int(&bind)); - ZEPHIR_CPY_WRT(&exprReturn, &_56$$43); - break; - } - ZEPHIR_INIT_VAR(&_58$$47); - object_init_ex(&_58$$47, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_59$$47); - ZEPHIR_CONCAT_SV(&_59$$47, "Unknown bind type: ", &bindType); - ZEPHIR_CALL_METHOD(NULL, &_58$$47, "__construct", NULL, 8, &_59$$47); - zephir_check_call_status(); - zephir_throw_exception_debug(&_58$$47, "phalcon/Mvc/Model/Query.zep", 1920); - ZEPHIR_MM_RESTORE(); - return; - } while(0); - - } else { - ZEPHIR_INIT_VAR(&_60$$48); - zephir_create_array(&_60$$48, 2, 0); - add_assoc_stringl_ex(&_60$$48, SL("type"), SL("placeholder")); - ZEPHIR_INIT_VAR(&_61$$48); - ZEPHIR_CONCAT_SV(&_61$$48, ":", &value); - zephir_array_update_string(&_60$$48, SL("value"), &_61$$48, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_60$$48); - } - break; - } - if (ZEPHIR_IS_LONG(&exprType, 322)) { - ZEPHIR_INIT_VAR(&_62$$49); - zephir_create_array(&_62$$49, 2, 0); - add_assoc_stringl_ex(&_62$$49, SL("type"), SL("literal")); - add_assoc_stringl_ex(&_62$$49, SL("value"), SL("NULL")); - ZEPHIR_CPY_WRT(&exprReturn, &_62$$49); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 268)) { - ZEPHIR_INIT_VAR(&_63$$50); - zephir_create_array(&_63$$50, 4, 0); - add_assoc_stringl_ex(&_63$$50, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_63$$50, SL("op"), SL("LIKE")); - zephir_array_update_string(&_63$$50, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_63$$50, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_63$$50); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 351)) { - ZEPHIR_INIT_VAR(&_64$$51); - zephir_create_array(&_64$$51, 4, 0); - add_assoc_stringl_ex(&_64$$51, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_64$$51, SL("op"), SL("NOT LIKE")); - zephir_array_update_string(&_64$$51, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_64$$51, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_64$$51); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 275)) { - ZEPHIR_INIT_VAR(&_65$$52); - zephir_create_array(&_65$$52, 4, 0); - add_assoc_stringl_ex(&_65$$52, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_65$$52, SL("op"), SL("ILIKE")); - zephir_array_update_string(&_65$$52, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_65$$52, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_65$$52); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 357)) { - ZEPHIR_INIT_VAR(&_66$$53); - zephir_create_array(&_66$$53, 4, 0); - add_assoc_stringl_ex(&_66$$53, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_66$$53, SL("op"), SL("NOT ILIKE")); - zephir_array_update_string(&_66$$53, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_66$$53, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_66$$53); - break; - } - if (ZEPHIR_IS_LONG(&exprType, '!')) { - ZEPHIR_INIT_VAR(&_67$$54); - zephir_create_array(&_67$$54, 3, 0); - add_assoc_stringl_ex(&_67$$54, SL("type"), SL("unary-op")); - add_assoc_stringl_ex(&_67$$54, SL("op"), SL("NOT ")); - zephir_array_update_string(&_67$$54, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_67$$54); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 365)) { - ZEPHIR_INIT_VAR(&_68$$55); - zephir_create_array(&_68$$55, 3, 0); - add_assoc_stringl_ex(&_68$$55, SL("type"), SL("unary-op")); - add_assoc_stringl_ex(&_68$$55, SL("op"), SL(" IS NULL")); - zephir_array_update_string(&_68$$55, SL("left"), &left, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_68$$55); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 366)) { - ZEPHIR_INIT_VAR(&_69$$56); - zephir_create_array(&_69$$56, 3, 0); - add_assoc_stringl_ex(&_69$$56, SL("type"), SL("unary-op")); - add_assoc_stringl_ex(&_69$$56, SL("op"), SL(" IS NOT NULL")); - zephir_array_update_string(&_69$$56, SL("left"), &left, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_69$$56); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 315)) { - ZEPHIR_INIT_VAR(&_70$$57); - zephir_create_array(&_70$$57, 4, 0); - add_assoc_stringl_ex(&_70$$57, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_70$$57, SL("op"), SL("IN")); - zephir_array_update_string(&_70$$57, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_70$$57, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_70$$57); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 323)) { - ZEPHIR_INIT_VAR(&_71$$58); - zephir_create_array(&_71$$58, 4, 0); - add_assoc_stringl_ex(&_71$$58, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_71$$58, SL("op"), SL("NOT IN")); - zephir_array_update_string(&_71$$58, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_71$$58, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_71$$58); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 408)) { - ZEPHIR_INIT_VAR(&_72$$59); - zephir_create_array(&_72$$59, 3, 0); - add_assoc_stringl_ex(&_72$$59, SL("type"), SL("unary-op")); - add_assoc_stringl_ex(&_72$$59, SL("op"), SL("EXISTS")); - zephir_array_update_string(&_72$$59, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_72$$59); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 330)) { - ZEPHIR_INIT_VAR(&_73$$60); - zephir_create_array(&_73$$60, 3, 0); - add_assoc_stringl_ex(&_73$$60, SL("type"), SL("unary-op")); - add_assoc_stringl_ex(&_73$$60, SL("op"), SL("DISTINCT ")); - zephir_array_update_string(&_73$$60, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_73$$60); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 332)) { - ZEPHIR_INIT_VAR(&_74$$61); - zephir_create_array(&_74$$61, 4, 0); - add_assoc_stringl_ex(&_74$$61, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_74$$61, SL("op"), SL("BETWEEN NOT")); - zephir_array_update_string(&_74$$61, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_74$$61, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_74$$61); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 331)) { - ZEPHIR_INIT_VAR(&_75$$62); - zephir_create_array(&_75$$62, 4, 0); - add_assoc_stringl_ex(&_75$$62, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_75$$62, SL("op"), SL("BETWEEN")); - zephir_array_update_string(&_75$$62, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_75$$62, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_75$$62); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 276)) { - ZEPHIR_INIT_VAR(&_76$$63); - zephir_create_array(&_76$$63, 4, 0); - add_assoc_stringl_ex(&_76$$63, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_76$$63, SL("op"), SL("AGAINST")); - zephir_array_update_string(&_76$$63, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_76$$63, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_76$$63); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 333)) { - ZEPHIR_INIT_VAR(&_77$$64); - zephir_create_array(&_77$$64, 3, 0); - add_assoc_stringl_ex(&_77$$64, SL("type"), SL("cast")); - zephir_array_update_string(&_77$$64, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_77$$64, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_77$$64); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 336)) { - ZEPHIR_INIT_VAR(&_78$$65); - zephir_create_array(&_78$$65, 3, 0); - add_assoc_stringl_ex(&_78$$65, SL("type"), SL("convert")); - zephir_array_update_string(&_78$$65, SL("left"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_78$$65, SL("right"), &right, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_78$$65); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 358)) { - ZEPHIR_INIT_VAR(&_79$$66); - zephir_create_array(&_79$$66, 2, 0); - add_assoc_stringl_ex(&_79$$66, SL("type"), SL("literal")); - ZEPHIR_OBS_VAR(&_80$$66); - zephir_array_fetch_string(&_80$$66, &expr, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2096); - zephir_array_update_string(&_79$$66, SL("value"), &_80$$66, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_79$$66); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 350)) { - ZEPHIR_CALL_METHOD(&exprReturn, this_ptr, "getfunctioncall", NULL, 470, &expr); - zephir_check_call_status(); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 409)) { - ZEPHIR_CALL_METHOD(&exprReturn, this_ptr, "getcaseexpression", NULL, 471, &expr); - zephir_check_call_status(); - break; - } - if (ZEPHIR_IS_LONG(&exprType, 309)) { - ZEPHIR_INIT_VAR(&_81$$69); - zephir_create_array(&_81$$69, 2, 0); - add_assoc_stringl_ex(&_81$$69, SL("type"), SL("select")); - ZVAL_BOOL(&_83$$69, 1); - ZEPHIR_CALL_METHOD(&_82$$69, this_ptr, "_prepareselect", NULL, 460, &expr, &_83$$69); - zephir_check_call_status(); - zephir_array_update_string(&_81$$69, SL("value"), &_82$$69, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&exprReturn, &_81$$69); - break; - } - ZEPHIR_INIT_VAR(&_84$$70); - object_init_ex(&_84$$70, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_85$$70); - ZEPHIR_CONCAT_SV(&_85$$70, "Unknown expression type ", &exprType); - ZEPHIR_CALL_METHOD(NULL, &_84$$70, "__construct", NULL, 8, &_85$$70); - zephir_check_call_status(); - zephir_throw_exception_debug(&_84$$70, "phalcon/Mvc/Model/Query.zep", 2119); - ZEPHIR_MM_RESTORE(); - return; - } while(0); - - RETURN_CCTOR(&exprReturn); - } - if (zephir_array_isset_string(&expr, SL("domain"))) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getqualified", NULL, 469, &expr); - zephir_check_call_status(); - RETURN_MM(); - } - if (zephir_array_isset_long(&expr, 0)) { - ZEPHIR_INIT_VAR(&listItems); - array_init(&listItems); - zephir_is_iterable(&expr, 0, "phalcon/Mvc/Model/Query.zep", 2142); - if (Z_TYPE_P(&expr) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&expr), _86$$72) - { - ZEPHIR_INIT_NVAR(&exprListItem); - ZVAL_COPY(&exprListItem, _86$$72); - ZEPHIR_CALL_METHOD(&_88$$73, this_ptr, "getexpression", NULL, 468, &exprListItem); - zephir_check_call_status(); - zephir_array_append(&listItems, &_88$$73, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2139); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &expr, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_87$$72, &expr, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_87$$72)) { - break; - } - ZEPHIR_CALL_METHOD(&exprListItem, &expr, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_89$$74, this_ptr, "getexpression", NULL, 468, &exprListItem); - zephir_check_call_status(); - zephir_array_append(&listItems, &_89$$74, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2139); - ZEPHIR_CALL_METHOD(NULL, &expr, "next", NULL, 0); - zephir_check_call_status(); - } + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, &field); + zephir_check_call_status(); + _0 = ZEPHIR_IS_EMPTY(&value); + if (!(_0)) { + _1 = zephir_array_isset_string(&value, SL("error")); + if (_1) { + zephir_array_fetch_string(&_2, &value, SL("error"), PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/AbstractFile.zep", 250); + _1 = ZEPHIR_IS_LONG_IDENTICAL(&_2, 4); } - ZEPHIR_INIT_NVAR(&exprListItem); - zephir_create_array(return_value, 2, 0); - add_assoc_stringl_ex(return_value, SL("type"), SL("list")); - zephir_array_fast_append(return_value, &listItems); - RETURN_MM(); + _0 = _1; } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Unknown expression", "phalcon/Mvc/Model/Query.zep", 2148); - return; + RETURN_MM_BOOL(_0); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getFunctionCall) +static PHP_METHOD(Phalcon_Validation_Validator_File_AbstractFile, checkIsUploadedFile) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, distinct = 0; - zval *expr_param = NULL, arguments, argument, _10, *_0$$6, _1$$6, _2$$7, _4$$8, _5$$9, _6$$9, _7$$10, _8$$10, _9$$11; - zval expr, functionArgs; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&functionArgs); - ZVAL_UNDEF(&arguments); - ZVAL_UNDEF(&argument); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_1$$6); - ZVAL_UNDEF(&_2$$7); - ZVAL_UNDEF(&_4$$8); - ZVAL_UNDEF(&_5$$9); - ZVAL_UNDEF(&_6$$9); - ZVAL_UNDEF(&_7$$10); - ZVAL_UNDEF(&_8$$10); - ZVAL_UNDEF(&_9$$11); + ZVAL_UNDEF(&name); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(expr) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &expr_param); - ZEPHIR_OBS_COPY_OR_DUP(&expr, expr_param); + zephir_fetch_params(1, 1, 0, &name_param); + zephir_get_strval(&name, name_param); - ZEPHIR_OBS_VAR(&arguments); - if (zephir_array_isset_string_fetch(&arguments, &expr, SL("arguments"), 0)) { - if (zephir_array_isset_string(&expr, SL("distinct"))) { - distinct = 1; - } else { - distinct = 0; - } - if (zephir_array_isset_long(&arguments, 0)) { - ZEPHIR_INIT_VAR(&functionArgs); - array_init(&functionArgs); - zephir_is_iterable(&arguments, 0, "phalcon/Mvc/Model/Query.zep", 2174); - if (Z_TYPE_P(&arguments) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&arguments), _0$$6) - { - ZEPHIR_INIT_NVAR(&argument); - ZVAL_COPY(&argument, _0$$6); - ZEPHIR_CALL_METHOD(&_2$$7, this_ptr, "getcallargument", &_3, 472, &argument); - zephir_check_call_status(); - zephir_array_append(&functionArgs, &_2$$7, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2172); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &arguments, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1$$6, &arguments, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1$$6)) { - break; - } - ZEPHIR_CALL_METHOD(&argument, &arguments, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_4$$8, this_ptr, "getcallargument", &_3, 472, &argument); - zephir_check_call_status(); - zephir_array_append(&functionArgs, &_4$$8, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2172); - ZEPHIR_CALL_METHOD(NULL, &arguments, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&argument); - } else { - ZEPHIR_INIT_VAR(&_5$$9); - zephir_create_array(&_5$$9, 1, 0); - ZEPHIR_CALL_METHOD(&_6$$9, this_ptr, "getcallargument", &_3, 472, &arguments); - zephir_check_call_status(); - zephir_array_fast_append(&_5$$9, &_6$$9); - ZEPHIR_CPY_WRT(&functionArgs, &_5$$9); - } - if (distinct) { - zephir_create_array(return_value, 4, 0); - add_assoc_stringl_ex(return_value, SL("type"), SL("functionCall")); - ZEPHIR_OBS_VAR(&_7$$10); - zephir_array_fetch_string(&_7$$10, &expr, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2184); - zephir_array_update_string(return_value, SL("name"), &_7$$10, PH_COPY | PH_SEPARATE); - zephir_array_update_string(return_value, SL("arguments"), &functionArgs, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_VAR(&_8$$10); - ZVAL_LONG(&_8$$10, distinct); - zephir_array_update_string(return_value, SL("distinct"), &_8$$10, PH_COPY | PH_SEPARATE); - RETURN_MM(); - } else { - zephir_create_array(return_value, 3, 0); - add_assoc_stringl_ex(return_value, SL("type"), SL("functionCall")); - ZEPHIR_OBS_VAR(&_9$$11); - zephir_array_fetch_string(&_9$$11, &expr, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2191); - zephir_array_update_string(return_value, SL("name"), &_9$$11, PH_COPY | PH_SEPARATE); - zephir_array_update_string(return_value, SL("arguments"), &functionArgs, PH_COPY | PH_SEPARATE); - RETURN_MM(); - } - } - zephir_create_array(return_value, 2, 0); - add_assoc_stringl_ex(return_value, SL("type"), SL("functionCall")); - ZEPHIR_OBS_VAR(&_10); - zephir_array_fetch_string(&_10, &expr, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2200); - zephir_array_update_string(return_value, SL("name"), &_10, PH_COPY | PH_SEPARATE); + ZEPHIR_RETURN_CALL_FUNCTION("is_uploaded_file", NULL, 19, &name); + zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getGroupClause) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *group_param = NULL, groupItem, *_0$$3, _1$$3, _2$$4, _4$$5, _5$$6, _6$$6; - zval group, groupParts; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&group); - ZVAL_UNDEF(&groupParts); - ZVAL_UNDEF(&groupItem); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_6$$6); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(group) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &group_param); - ZEPHIR_OBS_COPY_OR_DUP(&group, group_param); - if (zephir_array_isset_long(&group, 0)) { - ZEPHIR_INIT_VAR(&groupParts); - array_init(&groupParts); - zephir_is_iterable(&group, 0, "phalcon/Mvc/Model/Query.zep", 2220); - if (Z_TYPE_P(&group) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&group), _0$$3) - { - ZEPHIR_INIT_NVAR(&groupItem); - ZVAL_COPY(&groupItem, _0$$3); - ZEPHIR_CALL_METHOD(&_2$$4, this_ptr, "getexpression", &_3, 468, &groupItem); - zephir_check_call_status(); - zephir_array_append(&groupParts, &_2$$4, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2218); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &group, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1$$3, &group, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&groupItem, &group, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_4$$5, this_ptr, "getexpression", &_3, 468, &groupItem); - zephir_check_call_status(); - zephir_array_append(&groupParts, &_4$$5, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2218); - ZEPHIR_CALL_METHOD(NULL, &group, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&groupItem); - } else { - ZEPHIR_INIT_VAR(&_5$$6); - zephir_create_array(&_5$$6, 1, 0); - ZEPHIR_CALL_METHOD(&_6$$6, this_ptr, "getexpression", &_3, 468, &group); - zephir_check_call_status(); - zephir_array_fast_append(&_5$$6, &_6$$6); - ZEPHIR_CPY_WRT(&groupParts, &_5$$6); - } - RETURN_CTOR(&groupParts); + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_File_MimeType) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator\\File, MimeType, phalcon, validation_validator_file_mimetype, phalcon_validation_validator_file_abstractfile_ce, phalcon_validation_validator_file_mimetype_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_file_mimetype_ce, SL("template"), "File :field must be of type: :types", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getLimitClause) +static PHP_METHOD(Phalcon_Validation_Validator_File_MimeType, validate) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *limitClause_param = NULL, number, offset, _0$$3, _1$$4; - zval limitClause, limit; + zval *validation, validation_sub, *field, field_sub, fieldTypes, mime, replacePairs, tmp, types, value, _0, _1, _2$$6, _3$$6, _4$$8, _5$$8; zval *this_ptr = getThis(); - ZVAL_UNDEF(&limitClause); - ZVAL_UNDEF(&limit); - ZVAL_UNDEF(&number); - ZVAL_UNDEF(&offset); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&fieldTypes); + ZVAL_UNDEF(&mime); + ZVAL_UNDEF(&replacePairs); + ZVAL_UNDEF(&tmp); + ZVAL_UNDEF(&types); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$6); + ZVAL_UNDEF(&_3$$6); + ZVAL_UNDEF(&_4$$8); + ZVAL_UNDEF(&_5$$8); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(limitClause) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &limitClause_param); - ZEPHIR_OBS_COPY_OR_DUP(&limitClause, limitClause_param); + zephir_fetch_params(1, 2, 0, &validation, &field); - ZEPHIR_INIT_VAR(&limit); - array_init(&limit); - ZEPHIR_OBS_VAR(&number); - if (zephir_array_isset_string_fetch(&number, &limitClause, SL("number"), 0)) { - ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "getexpression", NULL, 468, &number); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "checkupload", NULL, 0, validation, field); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_0)) { + RETURN_MM_BOOL(0); + } + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "types"); + ZEPHIR_CALL_METHOD(&types, this_ptr, "getoption", NULL, 0, &_1); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&fieldTypes); + if (zephir_array_isset_fetch(&fieldTypes, &types, field, 0)) { + ZEPHIR_CPY_WRT(&types, &fieldTypes); + } + if (UNEXPECTED(Z_TYPE_P(&types) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_validation_exception_ce, "Option 'allowedTypes' must be an array", "phalcon/Validation/Validator/File/MimeType.zep", 96); + return; + } + if ((zephir_function_exists_ex(ZEND_STRL("finfo_open")) == SUCCESS)) { + ZVAL_LONG(&_2$$6, 16); + ZEPHIR_CALL_FUNCTION(&tmp, "finfo_open", NULL, 355, &_2$$6); zephir_check_call_status(); - zephir_array_update_string(&limit, SL("number"), &_0$$3, PH_COPY | PH_SEPARATE); + zephir_array_fetch_string(&_3$$6, &value, SL("tmp_name"), PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/MimeType.zep", 101); + ZEPHIR_CALL_FUNCTION(&mime, "finfo_file", NULL, 356, &tmp, &_3$$6); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(NULL, "finfo_close", NULL, 357, &tmp); + zephir_check_call_status(); + } else { + ZEPHIR_OBS_NVAR(&mime); + zephir_array_fetch_string(&mime, &value, SL("type"), PH_NOISY, "phalcon/Validation/Validator/File/MimeType.zep", 105); } - ZEPHIR_OBS_VAR(&offset); - if (zephir_array_isset_string_fetch(&offset, &limitClause, SL("offset"), 0)) { - ZEPHIR_CALL_METHOD(&_1$$4, this_ptr, "getexpression", NULL, 468, &offset); + if (!(zephir_fast_in_array(&mime, &types))) { + ZEPHIR_INIT_VAR(&replacePairs); + zephir_create_array(&replacePairs, 1, 0); + ZEPHIR_INIT_VAR(&_4$$8); + zephir_fast_join_str(&_4$$8, SL(", "), &types); + zephir_array_update_string(&replacePairs, SL(":types"), &_4$$8, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_5$$8, this_ptr, "messagefactory", NULL, 0, validation, field, &replacePairs); zephir_check_call_status(); - zephir_array_update_string(&limit, SL("offset"), &_1$$4, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_5$$8); + zephir_check_call_status(); + RETURN_MM_BOOL(0); } - RETURN_CTOR(&limit); + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getJoin) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval join; - zval *manager, manager_sub, *join_param = NULL, qualified, modelName, source, model, schema, _0$$3; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&manager_sub); - ZVAL_UNDEF(&qualified); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&join); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(manager, phalcon_mvc_model_managerinterface_ce) - Z_PARAM_ARRAY(join) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &manager, &join_param); - zephir_get_arrval(&join, join_param); - ZEPHIR_OBS_VAR(&qualified); - if (zephir_array_isset_string_fetch(&qualified, &join, SL("qualified"), 0)) { - zephir_array_fetch_string(&_0$$3, &qualified, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 2256); - if (ZEPHIR_IS_LONG(&_0$$3, 355)) { - ZEPHIR_OBS_VAR(&modelName); - zephir_array_fetch_string(&modelName, &qualified, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2257); - ZEPHIR_CALL_METHOD(&model, manager, "load", NULL, 0, &modelName); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&source, &model, "getsource", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&schema, &model, "getschema", NULL, 0); - zephir_check_call_status(); - zephir_create_array(return_value, 4, 0); - zephir_array_update_string(return_value, SL("schema"), &schema, PH_COPY | PH_SEPARATE); - zephir_array_update_string(return_value, SL("source"), &source, PH_COPY | PH_SEPARATE); - zephir_array_update_string(return_value, SL("modelName"), &modelName, PH_COPY | PH_SEPARATE); - zephir_array_update_string(return_value, SL("model"), &model, PH_COPY | PH_SEPARATE); - RETURN_MM(); - } - } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted SELECT AST", "phalcon/Mvc/Model/Query.zep", 2272); - return; + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_File_Resolution_Equal) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator\\File\\Resolution, Equal, phalcon, validation_validator_file_resolution_equal, phalcon_validation_validator_file_abstractfile_ce, phalcon_validation_validator_file_resolution_equal_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_file_resolution_equal_ce, SL("template"), "The resolution of the field :field has to be equal :resolution", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getJoinType) +static PHP_METHOD(Phalcon_Validation_Validator_File_Resolution_Equal, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *join_param = NULL, type, _0, _1, _2; - zval join; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&join); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(join) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &join_param); - zephir_get_arrval(&join, join_param); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } - ZEPHIR_OBS_VAR(&type); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&type, &join, SL("type"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted SELECT AST", "phalcon/Mvc/Model/Query.zep", 2283); - return; - } - do { - if (ZEPHIR_IS_LONG(&type, 360)) { - RETURN_MM_STRING("INNER"); - } - if (ZEPHIR_IS_LONG(&type, 361)) { - RETURN_MM_STRING("LEFT"); - } - if (ZEPHIR_IS_LONG(&type, 362)) { - RETURN_MM_STRING("RIGHT"); - } - if (ZEPHIR_IS_LONG(&type, 363)) { - RETURN_MM_STRING("CROSS"); - } - if (ZEPHIR_IS_LONG(&type, 364)) { - RETURN_MM_STRING("FULL OUTER"); - } - } while(0); + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_file_resolution_equal_ce, getThis(), "__construct", &_0, 0, &options); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} - ZEPHIR_INIT_VAR(&_0); - object_init_ex(&_0, phalcon_mvc_model_exception_ce); - zephir_read_property(&_1, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); +static PHP_METHOD(Phalcon_Validation_Validator_File_Resolution_Equal, validate) +{ + zend_bool _5; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *validation, validation_sub, *field, field_sub, height, equalHeight, equalWidth, resolution, resolutionArray, tmp, value, width, replacePairs, _0, _1, _2, _3$$4, _4$$5, _6$$6; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&height); + ZVAL_UNDEF(&equalHeight); + ZVAL_UNDEF(&equalWidth); + ZVAL_UNDEF(&resolution); + ZVAL_UNDEF(&resolutionArray); + ZVAL_UNDEF(&tmp); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&width); + ZVAL_UNDEF(&replacePairs); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_6$$6); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &validation, &field); + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "checkupload", NULL, 0, validation, field); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_0)) { + RETURN_MM_BOOL(0); + } + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); + zephir_check_call_status(); + zephir_array_fetch_string(&_1, &value, SL("tmp_name"), PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/Resolution/Equal.zep", 88); + ZEPHIR_CALL_FUNCTION(&tmp, "getimagesize", NULL, 363, &_1); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&width); + zephir_array_fetch_long(&width, &tmp, 0, PH_NOISY, "phalcon/Validation/Validator/File/Resolution/Equal.zep", 89); + ZEPHIR_OBS_VAR(&height); + zephir_array_fetch_long(&height, &tmp, 1, PH_NOISY, "phalcon/Validation/Validator/File/Resolution/Equal.zep", 90); ZEPHIR_INIT_VAR(&_2); - ZEPHIR_CONCAT_SVSV(&_2, "Unknown join type ", &type, ", when preparing: ", &_1); - ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 8, &_2); + ZVAL_STRING(&_2, "resolution"); + ZEPHIR_CALL_METHOD(&resolution, this_ptr, "getoption", NULL, 0, &_2); + zephir_check_call_status(); + if (Z_TYPE_P(&resolution) == IS_ARRAY) { + zephir_array_fetch(&_3$$4, &resolution, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/Resolution/Equal.zep", 95); + ZEPHIR_CPY_WRT(&resolution, &_3$$4); + } + ZEPHIR_INIT_VAR(&resolutionArray); + zephir_fast_explode_str(&resolutionArray, SL("x"), &resolution, LONG_MAX); + ZEPHIR_OBS_VAR(&equalWidth); + zephir_array_fetch_long(&equalWidth, &resolutionArray, 0, PH_NOISY, "phalcon/Validation/Validator/File/Resolution/Equal.zep", 99); + ZEPHIR_OBS_VAR(&equalHeight); + zephir_array_fetch_long(&equalHeight, &resolutionArray, 1, PH_NOISY, "phalcon/Validation/Validator/File/Resolution/Equal.zep", 100); + if (Z_TYPE_P(&resolution) == IS_ARRAY) { + zephir_array_fetch(&_4$$5, &resolution, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/Resolution/Equal.zep", 103); + ZEPHIR_CPY_WRT(&resolution, &_4$$5); + } + _5 = !ZEPHIR_IS_EQUAL(&width, &equalWidth); + if (!(_5)) { + _5 = !ZEPHIR_IS_EQUAL(&height, &equalHeight); + } + if (_5) { + ZEPHIR_INIT_VAR(&replacePairs); + zephir_create_array(&replacePairs, 1, 0); + zephir_array_update_string(&replacePairs, SL(":resolution"), &resolution, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_6$$6, this_ptr, "messagefactory", NULL, 0, validation, field, &replacePairs); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_6$$6); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + RETURN_MM_BOOL(1); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_File_Resolution_Max) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator\\File\\Resolution, Max, phalcon, validation_validator_file_resolution_max, phalcon_validation_validator_file_abstractfile_ce, phalcon_validation_validator_file_resolution_max_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_file_resolution_max_ce, SL("template"), "File :field exceeds the maximum resolution of :resolution", ZEND_ACC_PROTECTED); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Validation_Validator_File_Resolution_Max, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&options); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } + + + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_file_resolution_max_ce, getThis(), "__construct", &_0, 0, &options); zephir_check_call_status(); - zephir_throw_exception_debug(&_0, "phalcon/Mvc/Model/Query.zep", 2305); ZEPHIR_MM_RESTORE(); - return; } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getJoins) +static PHP_METHOD(Phalcon_Validation_Validator_File_Resolution_Max, validate) { - zend_string *_22, *_45, *_30$$21, *_49$$26, *_79$$55; - zend_ulong _21, _44, _29$$21, _48$$26, _78$$55; + double _5$$5, _6$$6; + zend_bool result = 0, _7$$7, _8$$8; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL, *_4 = NULL, *_8 = NULL, *_24 = NULL, *_50 = NULL, *_51 = NULL, *_56 = NULL, *_57 = NULL, *_64 = NULL, *_65 = NULL, *_80 = NULL, *_81 = NULL, *_92 = NULL, *_93 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *select_param = NULL, __$true, models, sqlAliases, sqlAliasesModels, sqlModelsAliases, sqlAliasesModelsInstances, modelsInstances, fromModels, manager, selectJoins, joinItem, joins, joinData, schema, source, model, realModelName, completeSource, joinType, aliasExpr, alias, joinAliasName, joinExpr, fromModelName, joinAlias, joinModel, joinSource, preCondition, modelNameAlias, relation, relations, modelAlias, sqlJoin, sqlJoinItem, selectTables, tables, tableItem, _0, *_1, _2, *_19, _20, *_35, _36, _41, *_42, _43, _5$$9, _6$$9, _7$$9, _9$$11, _10$$11, _11$$11, _12$$12, _13$$14, _14$$14, _15$$14, _16$$16, _17$$16, _18$$16, _23$$18, _25$$20, _26$$21, *_27$$21, _28$$21, _37$$24, _38$$24, _39$$25, _40$$25, *_46$$26, _47$$26, _52$$31, _53$$31, _54$$31, _55$$32, *_58$$35, _59$$35, _61$$39, _66$$45, _67$$45, _68$$45, _69$$46, *_70$$49, _71$$49, _73$$53, *_76$$55, _77$$55, _82$$60, _83$$60, _84$$60, _85$$61, *_86$$64, _87$$64, _89$$68, _94$$74, _95$$74, _96$$74, _97$$75, *_98$$78, _99$$78, _101$$82; - zval select, sqlJoins, joinModels, joinSources, joinTypes, joinPreCondition, joinPrepared, _31$$22, _32$$22, _33$$23, _34$$23, _60$$39, _62$$40, _63$$40, _72$$53, _74$$54, _75$$54, _88$$68, _90$$69, _91$$69, _100$$82, _102$$83, _103$$83; + zval *validation, validation_sub, *field, field_sub, height, maxHeight, maxWidth, resolution, resolutionArray, tmp, value, width, replacePairs, included, _0, _1, _2, _3$$4, _4$$5, _9$$9, _10$$10; zval *this_ptr = getThis(); - ZVAL_UNDEF(&select); - ZVAL_UNDEF(&sqlJoins); - ZVAL_UNDEF(&joinModels); - ZVAL_UNDEF(&joinSources); - ZVAL_UNDEF(&joinTypes); - ZVAL_UNDEF(&joinPreCondition); - ZVAL_UNDEF(&joinPrepared); - ZVAL_UNDEF(&_31$$22); - ZVAL_UNDEF(&_32$$22); - ZVAL_UNDEF(&_33$$23); - ZVAL_UNDEF(&_34$$23); - ZVAL_UNDEF(&_60$$39); - ZVAL_UNDEF(&_62$$40); - ZVAL_UNDEF(&_63$$40); - ZVAL_UNDEF(&_72$$53); - ZVAL_UNDEF(&_74$$54); - ZVAL_UNDEF(&_75$$54); - ZVAL_UNDEF(&_88$$68); - ZVAL_UNDEF(&_90$$69); - ZVAL_UNDEF(&_91$$69); - ZVAL_UNDEF(&_100$$82); - ZVAL_UNDEF(&_102$$83); - ZVAL_UNDEF(&_103$$83); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&models); - ZVAL_UNDEF(&sqlAliases); - ZVAL_UNDEF(&sqlAliasesModels); - ZVAL_UNDEF(&sqlModelsAliases); - ZVAL_UNDEF(&sqlAliasesModelsInstances); - ZVAL_UNDEF(&modelsInstances); - ZVAL_UNDEF(&fromModels); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&selectJoins); - ZVAL_UNDEF(&joinItem); - ZVAL_UNDEF(&joins); - ZVAL_UNDEF(&joinData); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&realModelName); - ZVAL_UNDEF(&completeSource); - ZVAL_UNDEF(&joinType); - ZVAL_UNDEF(&aliasExpr); - ZVAL_UNDEF(&alias); - ZVAL_UNDEF(&joinAliasName); - ZVAL_UNDEF(&joinExpr); - ZVAL_UNDEF(&fromModelName); - ZVAL_UNDEF(&joinAlias); - ZVAL_UNDEF(&joinModel); - ZVAL_UNDEF(&joinSource); - ZVAL_UNDEF(&preCondition); - ZVAL_UNDEF(&modelNameAlias); - ZVAL_UNDEF(&relation); - ZVAL_UNDEF(&relations); - ZVAL_UNDEF(&modelAlias); - ZVAL_UNDEF(&sqlJoin); - ZVAL_UNDEF(&sqlJoinItem); - ZVAL_UNDEF(&selectTables); - ZVAL_UNDEF(&tables); - ZVAL_UNDEF(&tableItem); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&height); + ZVAL_UNDEF(&maxHeight); + ZVAL_UNDEF(&maxWidth); + ZVAL_UNDEF(&resolution); + ZVAL_UNDEF(&resolutionArray); + ZVAL_UNDEF(&tmp); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&width); + ZVAL_UNDEF(&replacePairs); + ZVAL_UNDEF(&included); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_20); - ZVAL_UNDEF(&_36); - ZVAL_UNDEF(&_41); - ZVAL_UNDEF(&_43); - ZVAL_UNDEF(&_5$$9); - ZVAL_UNDEF(&_6$$9); - ZVAL_UNDEF(&_7$$9); - ZVAL_UNDEF(&_9$$11); - ZVAL_UNDEF(&_10$$11); - ZVAL_UNDEF(&_11$$11); - ZVAL_UNDEF(&_12$$12); - ZVAL_UNDEF(&_13$$14); - ZVAL_UNDEF(&_14$$14); - ZVAL_UNDEF(&_15$$14); - ZVAL_UNDEF(&_16$$16); - ZVAL_UNDEF(&_17$$16); - ZVAL_UNDEF(&_18$$16); - ZVAL_UNDEF(&_23$$18); - ZVAL_UNDEF(&_25$$20); - ZVAL_UNDEF(&_26$$21); - ZVAL_UNDEF(&_28$$21); - ZVAL_UNDEF(&_37$$24); - ZVAL_UNDEF(&_38$$24); - ZVAL_UNDEF(&_39$$25); - ZVAL_UNDEF(&_40$$25); - ZVAL_UNDEF(&_47$$26); - ZVAL_UNDEF(&_52$$31); - ZVAL_UNDEF(&_53$$31); - ZVAL_UNDEF(&_54$$31); - ZVAL_UNDEF(&_55$$32); - ZVAL_UNDEF(&_59$$35); - ZVAL_UNDEF(&_61$$39); - ZVAL_UNDEF(&_66$$45); - ZVAL_UNDEF(&_67$$45); - ZVAL_UNDEF(&_68$$45); - ZVAL_UNDEF(&_69$$46); - ZVAL_UNDEF(&_71$$49); - ZVAL_UNDEF(&_73$$53); - ZVAL_UNDEF(&_77$$55); - ZVAL_UNDEF(&_82$$60); - ZVAL_UNDEF(&_83$$60); - ZVAL_UNDEF(&_84$$60); - ZVAL_UNDEF(&_85$$61); - ZVAL_UNDEF(&_87$$64); - ZVAL_UNDEF(&_89$$68); - ZVAL_UNDEF(&_94$$74); - ZVAL_UNDEF(&_95$$74); - ZVAL_UNDEF(&_96$$74); - ZVAL_UNDEF(&_97$$75); - ZVAL_UNDEF(&_99$$78); - ZVAL_UNDEF(&_101$$82); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_9$$9); + ZVAL_UNDEF(&_10$$10); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(select) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &select_param); - zephir_get_arrval(&select, select_param); + zephir_fetch_params(1, 2, 0, &validation, &field); - zephir_read_property(&_0, this_ptr, ZEND_STRL("models"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&models, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("sqlAliases"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&sqlAliases, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("sqlAliasesModels"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&sqlAliasesModels, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("sqlModelsAliases"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&sqlModelsAliases, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&sqlAliasesModelsInstances, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&modelsInstances, &_0); - ZEPHIR_CPY_WRT(&fromModels, &models); - ZEPHIR_INIT_VAR(&sqlJoins); - array_init(&sqlJoins); - ZEPHIR_INIT_VAR(&joinModels); - array_init(&joinModels); - ZEPHIR_INIT_VAR(&joinSources); - array_init(&joinSources); - ZEPHIR_INIT_VAR(&joinTypes); - array_init(&joinTypes); - ZEPHIR_INIT_VAR(&joinPreCondition); - array_init(&joinPreCondition); - ZEPHIR_INIT_VAR(&joinPrepared); - array_init(&joinPrepared); - zephir_read_property(&_0, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&manager, &_0); - ZEPHIR_OBS_VAR(&tables); - zephir_array_fetch_string(&tables, &select, SL("tables"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2341); - if (!(zephir_array_isset_long(&tables, 0))) { - ZEPHIR_INIT_VAR(&selectTables); - zephir_create_array(&selectTables, 1, 0); - zephir_array_fast_append(&selectTables, &tables); - } else { - ZEPHIR_CPY_WRT(&selectTables, &tables); + ZEPHIR_INIT_VAR(&included); + ZVAL_BOOL(&included, 0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "checkupload", NULL, 0, validation, field); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_0)) { + RETURN_MM_BOOL(0); } - ZEPHIR_OBS_VAR(&joins); - zephir_array_fetch_string(&joins, &select, SL("joins"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2349); - if (!(zephir_array_isset_long(&joins, 0))) { - ZEPHIR_INIT_VAR(&selectJoins); - zephir_create_array(&selectJoins, 1, 0); - zephir_array_fast_append(&selectJoins, &joins); + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); + zephir_check_call_status(); + zephir_array_fetch_string(&_1, &value, SL("tmp_name"), PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/Resolution/Max.zep", 94); + ZEPHIR_CALL_FUNCTION(&tmp, "getimagesize", NULL, 363, &_1); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&width); + zephir_array_fetch_long(&width, &tmp, 0, PH_NOISY, "phalcon/Validation/Validator/File/Resolution/Max.zep", 95); + ZEPHIR_OBS_VAR(&height); + zephir_array_fetch_long(&height, &tmp, 1, PH_NOISY, "phalcon/Validation/Validator/File/Resolution/Max.zep", 96); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "resolution"); + ZEPHIR_CALL_METHOD(&resolution, this_ptr, "getoption", NULL, 0, &_2); + zephir_check_call_status(); + if (Z_TYPE_P(&resolution) == IS_ARRAY) { + zephir_array_fetch(&_3$$4, &resolution, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/Resolution/Max.zep", 101); + ZEPHIR_CPY_WRT(&resolution, &_3$$4); + } + ZEPHIR_INIT_VAR(&resolutionArray); + zephir_fast_explode_str(&resolutionArray, SL("x"), &resolution, LONG_MAX); + ZEPHIR_OBS_VAR(&maxWidth); + zephir_array_fetch_long(&maxWidth, &resolutionArray, 0, PH_NOISY, "phalcon/Validation/Validator/File/Resolution/Max.zep", 105); + ZEPHIR_OBS_VAR(&maxHeight); + zephir_array_fetch_long(&maxHeight, &resolutionArray, 1, PH_NOISY, "phalcon/Validation/Validator/File/Resolution/Max.zep", 106); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "included"); + ZEPHIR_CALL_METHOD(&included, this_ptr, "getoption", NULL, 0, &_2); + zephir_check_call_status(); + if (Z_TYPE_P(&included) == IS_ARRAY) { + ZEPHIR_OBS_VAR(&_4$$5); + zephir_array_fetch(&_4$$5, &included, field, PH_NOISY, "phalcon/Validation/Validator/File/Resolution/Max.zep", 111); + _5$$5 = zephir_get_boolval(&_4$$5); + ZEPHIR_INIT_NVAR(&included); + ZVAL_BOOL(&included, _5$$5); } else { - ZEPHIR_CPY_WRT(&selectJoins, &joins); + _6$$6 = zephir_get_boolval(&included); + ZEPHIR_INIT_NVAR(&included); + ZVAL_BOOL(&included, _6$$6); } - zephir_is_iterable(&selectJoins, 0, "phalcon/Mvc/Model/Query.zep", 2500); - if (Z_TYPE_P(&selectJoins) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&selectJoins), _1) - { - ZEPHIR_INIT_NVAR(&joinItem); - ZVAL_COPY(&joinItem, _1); - ZEPHIR_CALL_METHOD(&joinData, this_ptr, "getjoin", &_3, 473, &manager, &joinItem); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&source); - zephir_array_fetch_string(&source, &joinData, SL("source"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2363); - ZEPHIR_OBS_NVAR(&schema); - zephir_array_fetch_string(&schema, &joinData, SL("schema"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2364); - ZEPHIR_OBS_NVAR(&model); - zephir_array_fetch_string(&model, &joinData, SL("model"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2365); - ZEPHIR_OBS_NVAR(&realModelName); - zephir_array_fetch_string(&realModelName, &joinData, SL("modelName"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2366); - ZEPHIR_INIT_NVAR(&completeSource); - zephir_create_array(&completeSource, 2, 0); - zephir_array_fast_append(&completeSource, &source); - zephir_array_fast_append(&completeSource, &schema); - ZEPHIR_CALL_METHOD(&joinType, this_ptr, "getjointype", &_4, 474, &joinItem); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&aliasExpr); - if (zephir_array_isset_string_fetch(&aliasExpr, &joinItem, SL("alias"), 0)) { - ZEPHIR_OBS_NVAR(&alias); - zephir_array_fetch_string(&alias, &aliasExpr, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2378); - if (UNEXPECTED(zephir_array_isset(&joinModels, &alias))) { - ZEPHIR_INIT_NVAR(&_5$$9); - object_init_ex(&_5$$9, phalcon_mvc_model_exception_ce); - zephir_read_property(&_6$$9, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_7$$9); - ZEPHIR_CONCAT_SVSV(&_7$$9, "Cannot use '", &alias, "' as join alias because it was already used, when preparing: ", &_6$$9); - ZEPHIR_CALL_METHOD(NULL, &_5$$9, "__construct", &_8, 8, &_7$$9); - zephir_check_call_status(); - zephir_throw_exception_debug(&_5$$9, "phalcon/Mvc/Model/Query.zep", 2386); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_array_append(&completeSource, &alias, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2392); - zephir_array_update_zval(&joinTypes, &alias, &joinType, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliases, &alias, &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&joinModels, &alias, &realModelName, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlModelsAliases, &realModelName, &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliasesModels, &alias, &realModelName, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliasesModelsInstances, &alias, &model, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&models, &realModelName, &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&joinSources, &alias, &completeSource, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&joinPrepared, &alias, &joinItem, PH_COPY | PH_SEPARATE); - } else { - if (UNEXPECTED(zephir_array_isset(&joinModels, &realModelName))) { - ZEPHIR_INIT_NVAR(&_9$$11); - object_init_ex(&_9$$11, phalcon_mvc_model_exception_ce); - zephir_read_property(&_10$$11, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_11$$11); - ZEPHIR_CONCAT_SVSV(&_11$$11, "Cannot use '", &realModelName, "' as join alias because it was already used, when preparing: ", &_10$$11); - ZEPHIR_CALL_METHOD(NULL, &_9$$11, "__construct", &_8, 8, &_11$$11); - zephir_check_call_status(); - zephir_throw_exception_debug(&_9$$11, "phalcon/Mvc/Model/Query.zep", 2445); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_array_update_zval(&joinTypes, &realModelName, &joinType, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliases, &realModelName, &source, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&joinModels, &realModelName, &source, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlModelsAliases, &realModelName, &realModelName, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliasesModels, &realModelName, &realModelName, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliasesModelsInstances, &realModelName, &model, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&models, &realModelName, &source, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&joinSources, &realModelName, &completeSource, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&joinPrepared, &realModelName, &joinItem, PH_COPY | PH_SEPARATE); - } - zephir_array_update_zval(&modelsInstances, &realModelName, &model, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); + if (zephir_is_true(&included)) { + _7$$7 = ZEPHIR_GE(&width, &maxWidth); + if (!(_7$$7)) { + _7$$7 = ZEPHIR_GE(&height, &maxHeight); + } + result = _7$$7; } else { - ZEPHIR_CALL_METHOD(NULL, &selectJoins, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &selectJoins, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&joinItem, &selectJoins, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&joinData, this_ptr, "getjoin", &_3, 473, &manager, &joinItem); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&source); - zephir_array_fetch_string(&source, &joinData, SL("source"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2363); - ZEPHIR_OBS_NVAR(&schema); - zephir_array_fetch_string(&schema, &joinData, SL("schema"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2364); - ZEPHIR_OBS_NVAR(&model); - zephir_array_fetch_string(&model, &joinData, SL("model"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2365); - ZEPHIR_OBS_NVAR(&realModelName); - zephir_array_fetch_string(&realModelName, &joinData, SL("modelName"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2366); - ZEPHIR_INIT_NVAR(&_12$$12); - zephir_create_array(&_12$$12, 2, 0); - zephir_array_fast_append(&_12$$12, &source); - zephir_array_fast_append(&_12$$12, &schema); - ZEPHIR_CPY_WRT(&completeSource, &_12$$12); - ZEPHIR_CALL_METHOD(&joinType, this_ptr, "getjointype", &_4, 474, &joinItem); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&aliasExpr); - if (zephir_array_isset_string_fetch(&aliasExpr, &joinItem, SL("alias"), 0)) { - ZEPHIR_OBS_NVAR(&alias); - zephir_array_fetch_string(&alias, &aliasExpr, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2378); - if (UNEXPECTED(zephir_array_isset(&joinModels, &alias))) { - ZEPHIR_INIT_NVAR(&_13$$14); - object_init_ex(&_13$$14, phalcon_mvc_model_exception_ce); - zephir_read_property(&_14$$14, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_15$$14); - ZEPHIR_CONCAT_SVSV(&_15$$14, "Cannot use '", &alias, "' as join alias because it was already used, when preparing: ", &_14$$14); - ZEPHIR_CALL_METHOD(NULL, &_13$$14, "__construct", &_8, 8, &_15$$14); - zephir_check_call_status(); - zephir_throw_exception_debug(&_13$$14, "phalcon/Mvc/Model/Query.zep", 2386); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_array_append(&completeSource, &alias, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2392); - zephir_array_update_zval(&joinTypes, &alias, &joinType, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliases, &alias, &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&joinModels, &alias, &realModelName, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlModelsAliases, &realModelName, &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliasesModels, &alias, &realModelName, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliasesModelsInstances, &alias, &model, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&models, &realModelName, &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&joinSources, &alias, &completeSource, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&joinPrepared, &alias, &joinItem, PH_COPY | PH_SEPARATE); - } else { - if (UNEXPECTED(zephir_array_isset(&joinModels, &realModelName))) { - ZEPHIR_INIT_NVAR(&_16$$16); - object_init_ex(&_16$$16, phalcon_mvc_model_exception_ce); - zephir_read_property(&_17$$16, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_18$$16); - ZEPHIR_CONCAT_SVSV(&_18$$16, "Cannot use '", &realModelName, "' as join alias because it was already used, when preparing: ", &_17$$16); - ZEPHIR_CALL_METHOD(NULL, &_16$$16, "__construct", &_8, 8, &_18$$16); - zephir_check_call_status(); - zephir_throw_exception_debug(&_16$$16, "phalcon/Mvc/Model/Query.zep", 2445); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_array_update_zval(&joinTypes, &realModelName, &joinType, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliases, &realModelName, &source, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&joinModels, &realModelName, &source, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlModelsAliases, &realModelName, &realModelName, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliasesModels, &realModelName, &realModelName, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliasesModelsInstances, &realModelName, &model, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&models, &realModelName, &source, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&joinSources, &realModelName, &completeSource, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&joinPrepared, &realModelName, &joinItem, PH_COPY | PH_SEPARATE); - } - zephir_array_update_zval(&modelsInstances, &realModelName, &model, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &selectJoins, "next", NULL, 0); - zephir_check_call_status(); + _8$$8 = ZEPHIR_GT(&width, &maxWidth); + if (!(_8$$8)) { + _8$$8 = ZEPHIR_GT(&height, &maxHeight); } + result = _8$$8; } - ZEPHIR_INIT_NVAR(&joinItem); - zephir_update_property_zval(this_ptr, ZEND_STRL("models"), &models); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliases"), &sqlAliases); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliasesModels"), &sqlAliasesModels); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlModelsAliases"), &sqlModelsAliases); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), &sqlAliasesModelsInstances); - zephir_update_property_zval(this_ptr, ZEND_STRL("modelsInstances"), &modelsInstances); - zephir_is_iterable(&joinPrepared, 0, "phalcon/Mvc/Model/Query.zep", 2520); - if (Z_TYPE_P(&joinPrepared) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&joinPrepared), _21, _22, _19) - { - ZEPHIR_INIT_NVAR(&joinAliasName); - if (_22 != NULL) { - ZVAL_STR_COPY(&joinAliasName, _22); - } else { - ZVAL_LONG(&joinAliasName, _21); - } - ZEPHIR_INIT_NVAR(&joinItem); - ZVAL_COPY(&joinItem, _19); - ZEPHIR_OBS_NVAR(&joinExpr); - if (zephir_array_isset_string_fetch(&joinExpr, &joinItem, SL("conditions"), 0)) { - ZEPHIR_CALL_METHOD(&_23$$18, this_ptr, "getexpression", &_24, 468, &joinExpr); - zephir_check_call_status(); - zephir_array_update_zval(&joinPreCondition, &joinAliasName, &_23$$18, PH_COPY | PH_SEPARATE); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &joinPrepared, "rewind", NULL, 0); + if (Z_TYPE_P(&resolution) == IS_ARRAY) { + zephir_array_fetch(&_9$$9, &resolution, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/Resolution/Max.zep", 123); + ZEPHIR_CPY_WRT(&resolution, &_9$$9); + } + if (result) { + ZEPHIR_INIT_VAR(&replacePairs); + zephir_create_array(&replacePairs, 1, 0); + zephir_array_update_string(&replacePairs, SL(":resolution"), &resolution, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_10$$10, this_ptr, "messagefactory", NULL, 0, validation, field, &replacePairs); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_20, &joinPrepared, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_20)) { - break; - } - ZEPHIR_CALL_METHOD(&joinAliasName, &joinPrepared, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&joinItem, &joinPrepared, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&joinExpr); - if (zephir_array_isset_string_fetch(&joinExpr, &joinItem, SL("conditions"), 0)) { - ZEPHIR_CALL_METHOD(&_25$$20, this_ptr, "getexpression", &_24, 468, &joinExpr); - zephir_check_call_status(); - zephir_array_update_zval(&joinPreCondition, &joinAliasName, &_25$$20, PH_COPY | PH_SEPARATE); - } - ZEPHIR_CALL_METHOD(NULL, &joinPrepared, "next", NULL, 0); - zephir_check_call_status(); - } + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_10$$10); + zephir_check_call_status(); + RETURN_MM_BOOL(0); } - ZEPHIR_INIT_NVAR(&joinItem); - ZEPHIR_INIT_NVAR(&joinAliasName); - zephir_read_property(&_0, this_ptr, ZEND_STRL("enableImplicitJoins"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - ZEPHIR_INIT_VAR(&_26$$21); - zephir_is_iterable(&joinPrepared, 0, "phalcon/Mvc/Model/Query.zep", 2532); - if (Z_TYPE_P(&joinPrepared) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&joinPrepared), _29$$21, _30$$21, _27$$21) - { - ZEPHIR_INIT_NVAR(&joinAliasName); - if (_30$$21 != NULL) { - ZVAL_STR_COPY(&joinAliasName, _30$$21); - } else { - ZVAL_LONG(&joinAliasName, _29$$21); - } - ZEPHIR_INIT_NVAR(&_26$$21); - ZVAL_COPY(&_26$$21, _27$$21); - ZEPHIR_OBS_NVAR(&joinType); - zephir_array_fetch(&joinType, &joinTypes, &joinAliasName, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2522); - ZEPHIR_OBS_NVAR(&joinSource); - zephir_array_fetch(&joinSource, &joinSources, &joinAliasName, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2523); - ZEPHIR_OBS_NVAR(&preCondition); - zephir_array_fetch(&preCondition, &joinPreCondition, &joinAliasName, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2524); - ZEPHIR_INIT_NVAR(&_31$$22); - zephir_create_array(&_31$$22, 3, 0); - zephir_array_update_string(&_31$$22, SL("type"), &joinType, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_31$$22, SL("source"), &joinSource, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_32$$22); - zephir_create_array(&_32$$22, 1, 0); - zephir_array_fast_append(&_32$$22, &preCondition); - zephir_array_update_string(&_31$$22, SL("conditions"), &_32$$22, PH_COPY | PH_SEPARATE); - zephir_array_append(&sqlJoins, &_31$$22, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2529); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &joinPrepared, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_28$$21, &joinPrepared, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_28$$21)) { - break; - } - ZEPHIR_CALL_METHOD(&joinAliasName, &joinPrepared, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_26$$21, &joinPrepared, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&joinType); - zephir_array_fetch(&joinType, &joinTypes, &joinAliasName, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2522); - ZEPHIR_OBS_NVAR(&joinSource); - zephir_array_fetch(&joinSource, &joinSources, &joinAliasName, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2523); - ZEPHIR_OBS_NVAR(&preCondition); - zephir_array_fetch(&preCondition, &joinPreCondition, &joinAliasName, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2524); - ZEPHIR_INIT_NVAR(&_33$$23); - zephir_create_array(&_33$$23, 3, 0); - zephir_array_update_string(&_33$$23, SL("type"), &joinType, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_33$$23, SL("source"), &joinSource, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_34$$23); - zephir_create_array(&_34$$23, 1, 0); - zephir_array_fast_append(&_34$$23, &preCondition); - zephir_array_update_string(&_33$$23, SL("conditions"), &_34$$23, PH_COPY | PH_SEPARATE); - zephir_array_append(&sqlJoins, &_33$$23, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2529); - ZEPHIR_CALL_METHOD(NULL, &joinPrepared, "next", NULL, 0); - zephir_check_call_status(); - } + RETURN_MM_BOOL(1); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_File_Resolution_Min) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator\\File\\Resolution, Min, phalcon, validation_validator_file_resolution_min, phalcon_validation_validator_file_abstractfile_ce, phalcon_validation_validator_file_resolution_min_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_file_resolution_min_ce, SL("template"), "File :field can not have the minimum resolution of :resolution", ZEND_ACC_PROTECTED); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Validation_Validator_File_Resolution_Min, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&options); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } + + + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_file_resolution_min_ce, getThis(), "__construct", &_0, 0, &options); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Validation_Validator_File_Resolution_Min, validate) +{ + double _5$$5, _6$$6; + zend_bool result = 0, _7$$7, _8$$8; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *validation, validation_sub, *field, field_sub, height, minHeight, minWidth, resolution, resolutionArray, tmp, value, width, replacePairs, included, _0, _1, _2, _3$$4, _4$$5, _9$$9, _10$$10; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&height); + ZVAL_UNDEF(&minHeight); + ZVAL_UNDEF(&minWidth); + ZVAL_UNDEF(&resolution); + ZVAL_UNDEF(&resolutionArray); + ZVAL_UNDEF(&tmp); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&width); + ZVAL_UNDEF(&replacePairs); + ZVAL_UNDEF(&included); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_9$$9); + ZVAL_UNDEF(&_10$$10); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &validation, &field); + + + ZEPHIR_INIT_VAR(&included); + ZVAL_BOOL(&included, 0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "checkupload", NULL, 0, validation, field); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_0)) { + RETURN_MM_BOOL(0); + } + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); + zephir_check_call_status(); + zephir_array_fetch_string(&_1, &value, SL("tmp_name"), PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/Resolution/Min.zep", 94); + ZEPHIR_CALL_FUNCTION(&tmp, "getimagesize", NULL, 363, &_1); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&width); + zephir_array_fetch_long(&width, &tmp, 0, PH_NOISY, "phalcon/Validation/Validator/File/Resolution/Min.zep", 95); + ZEPHIR_OBS_VAR(&height); + zephir_array_fetch_long(&height, &tmp, 1, PH_NOISY, "phalcon/Validation/Validator/File/Resolution/Min.zep", 96); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "resolution"); + ZEPHIR_CALL_METHOD(&resolution, this_ptr, "getoption", NULL, 0, &_2); + zephir_check_call_status(); + if (Z_TYPE_P(&resolution) == IS_ARRAY) { + zephir_array_fetch(&_3$$4, &resolution, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/Resolution/Min.zep", 101); + ZEPHIR_CPY_WRT(&resolution, &_3$$4); + } + ZEPHIR_INIT_VAR(&resolutionArray); + zephir_fast_explode_str(&resolutionArray, SL("x"), &resolution, LONG_MAX); + ZEPHIR_OBS_VAR(&minWidth); + zephir_array_fetch_long(&minWidth, &resolutionArray, 0, PH_NOISY, "phalcon/Validation/Validator/File/Resolution/Min.zep", 105); + ZEPHIR_OBS_VAR(&minHeight); + zephir_array_fetch_long(&minHeight, &resolutionArray, 1, PH_NOISY, "phalcon/Validation/Validator/File/Resolution/Min.zep", 106); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "included"); + ZEPHIR_CALL_METHOD(&included, this_ptr, "getoption", NULL, 0, &_2); + zephir_check_call_status(); + if (Z_TYPE_P(&included) == IS_ARRAY) { + ZEPHIR_OBS_VAR(&_4$$5); + zephir_array_fetch(&_4$$5, &included, field, PH_NOISY, "phalcon/Validation/Validator/File/Resolution/Min.zep", 111); + _5$$5 = zephir_get_boolval(&_4$$5); + ZEPHIR_INIT_NVAR(&included); + ZVAL_BOOL(&included, _5$$5); + } else { + _6$$6 = zephir_get_boolval(&included); + ZEPHIR_INIT_NVAR(&included); + ZVAL_BOOL(&included, _6$$6); + } + if (zephir_is_true(&included)) { + _7$$7 = ZEPHIR_LE(&width, &minWidth); + if (!(_7$$7)) { + _7$$7 = ZEPHIR_LE(&height, &minHeight); } - ZEPHIR_INIT_NVAR(&_26$$21); - ZEPHIR_INIT_NVAR(&joinAliasName); - RETURN_CTOR(&sqlJoins); + result = _7$$7; + } else { + _8$$8 = ZEPHIR_LT(&width, &minWidth); + if (!(_8$$8)) { + _8$$8 = ZEPHIR_LT(&height, &minHeight); + } + result = _8$$8; } - ZEPHIR_INIT_NVAR(&fromModels); - array_init(&fromModels); - zephir_is_iterable(&selectTables, 0, "phalcon/Mvc/Model/Query.zep", 2547); - if (Z_TYPE_P(&selectTables) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&selectTables), _35) - { - ZEPHIR_INIT_NVAR(&tableItem); - ZVAL_COPY(&tableItem, _35); - zephir_array_fetch_string(&_37$$24, &tableItem, SL("qualifiedName"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 2541); - ZEPHIR_OBS_NVAR(&_38$$24); - zephir_array_fetch_string(&_38$$24, &_37$$24, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2541); - zephir_array_update_zval(&fromModels, &_38$$24, &__$true, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); + if (Z_TYPE_P(&resolution) == IS_ARRAY) { + zephir_array_fetch(&_9$$9, &resolution, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/Resolution/Min.zep", 123); + ZEPHIR_CPY_WRT(&resolution, &_9$$9); + } + if (result) { + ZEPHIR_INIT_VAR(&replacePairs); + zephir_create_array(&replacePairs, 1, 0); + zephir_array_update_string(&replacePairs, SL(":resolution"), &resolution, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_10$$10, this_ptr, "messagefactory", NULL, 0, validation, field, &replacePairs); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_10$$10); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + RETURN_MM_BOOL(1); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_File_Size_Equal) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator\\File\\Size, Equal, phalcon, validation_validator_file_size_equal, phalcon_validation_validator_file_abstractfile_ce, phalcon_validation_validator_file_size_equal_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_file_size_equal_ce, SL("template"), "File :field does not have the exact :size file size", ZEND_ACC_PROTECTED); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Validation_Validator_File_Size_Equal, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&options); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); } else { - ZEPHIR_CALL_METHOD(NULL, &selectTables, "rewind", NULL, 0); + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } + + + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_file_size_equal_ce, getThis(), "__construct", &_0, 0, &options); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Validation_Validator_File_Size_Equal, validate) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *validation, validation_sub, *field, field_sub, bytes, fileSize, replacePairs, size, value, _0, _1, _3, _4, _5, _6, _7, _2$$4, _8$$5; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&bytes); + ZVAL_UNDEF(&fileSize); + ZVAL_UNDEF(&replacePairs); + ZVAL_UNDEF(&size); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_8$$5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &validation, &field); + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "checkupload", NULL, 0, validation, field); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_0)) { + RETURN_MM_BOOL(0); + } + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "size"); + ZEPHIR_CALL_METHOD(&size, this_ptr, "getoption", NULL, 0, &_1); + zephir_check_call_status(); + if (Z_TYPE_P(&size) == IS_ARRAY) { + zephir_array_fetch(&_2$$4, &size, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/Size/Equal.zep", 95); + ZEPHIR_CPY_WRT(&size, &_2$$4); + } + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getfilesizeinbytes", NULL, 0, &size); + zephir_check_call_status(); + ZVAL_LONG(&_4, 6); + ZEPHIR_INIT_VAR(&bytes); + zephir_round(&bytes, &_3, &_4, NULL); + zephir_array_fetch_string(&_5, &value, SL("size"), PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/Size/Equal.zep", 99); + ZEPHIR_CALL_FUNCTION(&_6, "floatval", NULL, 18, &_5); + zephir_check_call_status(); + ZVAL_LONG(&_7, 6); + ZEPHIR_INIT_VAR(&fileSize); + zephir_round(&fileSize, &_6, &_7, NULL); + if (!ZEPHIR_IS_IDENTICAL(&bytes, &fileSize)) { + ZEPHIR_INIT_VAR(&replacePairs); + zephir_create_array(&replacePairs, 1, 0); + zephir_array_update_string(&replacePairs, SL(":size"), &size, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_8$$5, this_ptr, "messagefactory", NULL, 0, validation, field, &replacePairs); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_36, &selectTables, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_36)) { - break; - } - ZEPHIR_CALL_METHOD(&tableItem, &selectTables, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_fetch_string(&_39$$25, &tableItem, SL("qualifiedName"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 2541); - ZEPHIR_OBS_NVAR(&_40$$25); - zephir_array_fetch_string(&_40$$25, &_39$$25, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2541); - zephir_array_update_zval(&fromModels, &_40$$25, &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &selectTables, "next", NULL, 0); - zephir_check_call_status(); - } + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_8$$5); + zephir_check_call_status(); + RETURN_MM_BOOL(0); } - ZEPHIR_INIT_NVAR(&tableItem); - ZEPHIR_INIT_VAR(&_41); - zephir_is_iterable(&fromModels, 0, "phalcon/Mvc/Model/Query.zep", 2667); - if (Z_TYPE_P(&fromModels) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&fromModels), _44, _45, _42) - { - ZEPHIR_INIT_NVAR(&fromModelName); - if (_45 != NULL) { - ZVAL_STR_COPY(&fromModelName, _45); - } else { - ZVAL_LONG(&fromModelName, _44); - } - ZEPHIR_INIT_NVAR(&_41); - ZVAL_COPY(&_41, _42); - zephir_is_iterable(&joinModels, 0, "phalcon/Mvc/Model/Query.zep", 2665); - if (Z_TYPE_P(&joinModels) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&joinModels), _48$$26, _49$$26, _46$$26) - { - ZEPHIR_INIT_NVAR(&joinAlias); - if (_49$$26 != NULL) { - ZVAL_STR_COPY(&joinAlias, _49$$26); - } else { - ZVAL_LONG(&joinAlias, _48$$26); - } - ZEPHIR_INIT_NVAR(&joinModel); - ZVAL_COPY(&joinModel, _46$$26); - ZEPHIR_OBS_NVAR(&joinSource); - zephir_array_fetch(&joinSource, &joinSources, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2552); - ZEPHIR_OBS_NVAR(&joinType); - zephir_array_fetch(&joinType, &joinTypes, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2557); - ZEPHIR_OBS_NVAR(&preCondition); - if (!(zephir_array_isset_fetch(&preCondition, &joinPreCondition, &joinAlias, 0))) { - ZEPHIR_OBS_NVAR(&modelNameAlias); - zephir_array_fetch(&modelNameAlias, &sqlAliasesModels, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2566); - ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationbyalias", &_50, 0, &fromModelName, &modelNameAlias); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&relation)) { - ZEPHIR_CALL_METHOD(&relations, &manager, "getrelationsbetween", &_51, 0, &fromModelName, &modelNameAlias); - zephir_check_call_status(); - if (Z_TYPE_P(&relations) == IS_ARRAY) { - if (UNEXPECTED(zephir_fast_count_int(&relations) != 1)) { - ZEPHIR_INIT_NVAR(&_52$$31); - object_init_ex(&_52$$31, phalcon_mvc_model_exception_ce); - zephir_read_property(&_53$$31, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_54$$31); - ZEPHIR_CONCAT_SVSVSV(&_54$$31, "There is more than one relation between models '", &fromModelName, "' and '", &joinModel, "', the join must be done using an alias, when preparing: ", &_53$$31); - ZEPHIR_CALL_METHOD(NULL, &_52$$31, "__construct", &_8, 8, &_54$$31); - zephir_check_call_status(); - zephir_throw_exception_debug(&_52$$31, "phalcon/Mvc/Model/Query.zep", 2592); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(&relation); - zephir_array_fetch_long(&relation, &relations, 0, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2598); - } - } - if (Z_TYPE_P(&relation) == IS_OBJECT) { - ZEPHIR_OBS_NVAR(&modelAlias); - zephir_array_fetch(&modelAlias, &sqlModelsAliases, &fromModelName, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2609); - ZEPHIR_CALL_METHOD(&_55$$32, &relation, "isthrough", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_55$$32))) { - ZEPHIR_CALL_METHOD(&sqlJoin, this_ptr, "getsinglejoin", &_56, 475, &joinType, &joinSource, &modelAlias, &joinAlias, &relation); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(&sqlJoin, this_ptr, "getmultijoin", &_57, 476, &joinType, &joinSource, &modelAlias, &joinAlias, &relation); - zephir_check_call_status(); - } - if (zephir_array_isset_long(&sqlJoin, 0)) { - zephir_is_iterable(&sqlJoin, 0, "phalcon/Mvc/Model/Query.zep", 2639); - if (Z_TYPE_P(&sqlJoin) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&sqlJoin), _58$$35) - { - ZEPHIR_INIT_NVAR(&sqlJoinItem); - ZVAL_COPY(&sqlJoinItem, _58$$35); - zephir_array_append(&sqlJoins, &sqlJoinItem, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2637); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &sqlJoin, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_59$$35, &sqlJoin, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_59$$35)) { - break; - } - ZEPHIR_CALL_METHOD(&sqlJoinItem, &sqlJoin, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_append(&sqlJoins, &sqlJoinItem, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2637); - ZEPHIR_CALL_METHOD(NULL, &sqlJoin, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&sqlJoinItem); - } else { - zephir_array_append(&sqlJoins, &sqlJoin, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2640); - } - } else { - ZEPHIR_INIT_NVAR(&_60$$39); - zephir_create_array(&_60$$39, 3, 0); - zephir_array_update_string(&_60$$39, SL("type"), &joinType, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_60$$39, SL("source"), &joinSource, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_61$$39); - array_init(&_61$$39); - zephir_array_update_string(&_60$$39, SL("conditions"), &_61$$39, PH_COPY | PH_SEPARATE); - zephir_array_append(&sqlJoins, &_60$$39, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2651); - } - } else { - ZEPHIR_INIT_NVAR(&_62$$40); - zephir_create_array(&_62$$40, 3, 0); - zephir_array_update_string(&_62$$40, SL("type"), &joinType, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_62$$40, SL("source"), &joinSource, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_63$$40); - zephir_create_array(&_63$$40, 1, 0); - zephir_array_fast_append(&_63$$40, &preCondition); - zephir_array_update_string(&_62$$40, SL("conditions"), &_63$$40, PH_COPY | PH_SEPARATE); - zephir_array_append(&sqlJoins, &_62$$40, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2662); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &joinModels, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_47$$26, &joinModels, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_47$$26)) { - break; - } - ZEPHIR_CALL_METHOD(&joinAlias, &joinModels, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&joinModel, &joinModels, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&joinSource); - zephir_array_fetch(&joinSource, &joinSources, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2552); - ZEPHIR_OBS_NVAR(&joinType); - zephir_array_fetch(&joinType, &joinTypes, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2557); - ZEPHIR_OBS_NVAR(&preCondition); - if (!(zephir_array_isset_fetch(&preCondition, &joinPreCondition, &joinAlias, 0))) { - ZEPHIR_OBS_NVAR(&modelNameAlias); - zephir_array_fetch(&modelNameAlias, &sqlAliasesModels, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2566); - ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationbyalias", &_64, 0, &fromModelName, &modelNameAlias); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&relation)) { - ZEPHIR_CALL_METHOD(&relations, &manager, "getrelationsbetween", &_65, 0, &fromModelName, &modelNameAlias); - zephir_check_call_status(); - if (Z_TYPE_P(&relations) == IS_ARRAY) { - if (UNEXPECTED(zephir_fast_count_int(&relations) != 1)) { - ZEPHIR_INIT_NVAR(&_66$$45); - object_init_ex(&_66$$45, phalcon_mvc_model_exception_ce); - zephir_read_property(&_67$$45, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_68$$45); - ZEPHIR_CONCAT_SVSVSV(&_68$$45, "There is more than one relation between models '", &fromModelName, "' and '", &joinModel, "', the join must be done using an alias, when preparing: ", &_67$$45); - ZEPHIR_CALL_METHOD(NULL, &_66$$45, "__construct", &_8, 8, &_68$$45); - zephir_check_call_status(); - zephir_throw_exception_debug(&_66$$45, "phalcon/Mvc/Model/Query.zep", 2592); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(&relation); - zephir_array_fetch_long(&relation, &relations, 0, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2598); - } - } - if (Z_TYPE_P(&relation) == IS_OBJECT) { - ZEPHIR_OBS_NVAR(&modelAlias); - zephir_array_fetch(&modelAlias, &sqlModelsAliases, &fromModelName, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2609); - ZEPHIR_CALL_METHOD(&_69$$46, &relation, "isthrough", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_69$$46))) { - ZEPHIR_CALL_METHOD(&sqlJoin, this_ptr, "getsinglejoin", &_56, 475, &joinType, &joinSource, &modelAlias, &joinAlias, &relation); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(&sqlJoin, this_ptr, "getmultijoin", &_57, 476, &joinType, &joinSource, &modelAlias, &joinAlias, &relation); - zephir_check_call_status(); - } - if (zephir_array_isset_long(&sqlJoin, 0)) { - zephir_is_iterable(&sqlJoin, 0, "phalcon/Mvc/Model/Query.zep", 2639); - if (Z_TYPE_P(&sqlJoin) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&sqlJoin), _70$$49) - { - ZEPHIR_INIT_NVAR(&sqlJoinItem); - ZVAL_COPY(&sqlJoinItem, _70$$49); - zephir_array_append(&sqlJoins, &sqlJoinItem, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2637); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &sqlJoin, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_71$$49, &sqlJoin, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_71$$49)) { - break; - } - ZEPHIR_CALL_METHOD(&sqlJoinItem, &sqlJoin, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_append(&sqlJoins, &sqlJoinItem, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2637); - ZEPHIR_CALL_METHOD(NULL, &sqlJoin, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&sqlJoinItem); - } else { - zephir_array_append(&sqlJoins, &sqlJoin, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2640); - } - } else { - ZEPHIR_INIT_NVAR(&_72$$53); - zephir_create_array(&_72$$53, 3, 0); - zephir_array_update_string(&_72$$53, SL("type"), &joinType, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_72$$53, SL("source"), &joinSource, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_73$$53); - array_init(&_73$$53); - zephir_array_update_string(&_72$$53, SL("conditions"), &_73$$53, PH_COPY | PH_SEPARATE); - zephir_array_append(&sqlJoins, &_72$$53, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2651); - } - } else { - ZEPHIR_INIT_NVAR(&_74$$54); - zephir_create_array(&_74$$54, 3, 0); - zephir_array_update_string(&_74$$54, SL("type"), &joinType, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_74$$54, SL("source"), &joinSource, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_75$$54); - zephir_create_array(&_75$$54, 1, 0); - zephir_array_fast_append(&_75$$54, &preCondition); - zephir_array_update_string(&_74$$54, SL("conditions"), &_75$$54, PH_COPY | PH_SEPARATE); - zephir_array_append(&sqlJoins, &_74$$54, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2662); - } - ZEPHIR_CALL_METHOD(NULL, &joinModels, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&joinModel); - ZEPHIR_INIT_NVAR(&joinAlias); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &fromModels, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_43, &fromModels, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_43)) { - break; - } - ZEPHIR_CALL_METHOD(&fromModelName, &fromModels, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_41, &fromModels, "current", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&joinModels, 0, "phalcon/Mvc/Model/Query.zep", 2665); - if (Z_TYPE_P(&joinModels) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&joinModels), _78$$55, _79$$55, _76$$55) - { - ZEPHIR_INIT_NVAR(&joinAlias); - if (_79$$55 != NULL) { - ZVAL_STR_COPY(&joinAlias, _79$$55); - } else { - ZVAL_LONG(&joinAlias, _78$$55); - } - ZEPHIR_INIT_NVAR(&joinModel); - ZVAL_COPY(&joinModel, _76$$55); - ZEPHIR_OBS_NVAR(&joinSource); - zephir_array_fetch(&joinSource, &joinSources, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2552); - ZEPHIR_OBS_NVAR(&joinType); - zephir_array_fetch(&joinType, &joinTypes, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2557); - ZEPHIR_OBS_NVAR(&preCondition); - if (!(zephir_array_isset_fetch(&preCondition, &joinPreCondition, &joinAlias, 0))) { - ZEPHIR_OBS_NVAR(&modelNameAlias); - zephir_array_fetch(&modelNameAlias, &sqlAliasesModels, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2566); - ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationbyalias", &_80, 0, &fromModelName, &modelNameAlias); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&relation)) { - ZEPHIR_CALL_METHOD(&relations, &manager, "getrelationsbetween", &_81, 0, &fromModelName, &modelNameAlias); - zephir_check_call_status(); - if (Z_TYPE_P(&relations) == IS_ARRAY) { - if (UNEXPECTED(zephir_fast_count_int(&relations) != 1)) { - ZEPHIR_INIT_NVAR(&_82$$60); - object_init_ex(&_82$$60, phalcon_mvc_model_exception_ce); - zephir_read_property(&_83$$60, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_84$$60); - ZEPHIR_CONCAT_SVSVSV(&_84$$60, "There is more than one relation between models '", &fromModelName, "' and '", &joinModel, "', the join must be done using an alias, when preparing: ", &_83$$60); - ZEPHIR_CALL_METHOD(NULL, &_82$$60, "__construct", &_8, 8, &_84$$60); - zephir_check_call_status(); - zephir_throw_exception_debug(&_82$$60, "phalcon/Mvc/Model/Query.zep", 2592); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(&relation); - zephir_array_fetch_long(&relation, &relations, 0, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2598); - } - } - if (Z_TYPE_P(&relation) == IS_OBJECT) { - ZEPHIR_OBS_NVAR(&modelAlias); - zephir_array_fetch(&modelAlias, &sqlModelsAliases, &fromModelName, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2609); - ZEPHIR_CALL_METHOD(&_85$$61, &relation, "isthrough", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_85$$61))) { - ZEPHIR_CALL_METHOD(&sqlJoin, this_ptr, "getsinglejoin", &_56, 475, &joinType, &joinSource, &modelAlias, &joinAlias, &relation); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(&sqlJoin, this_ptr, "getmultijoin", &_57, 476, &joinType, &joinSource, &modelAlias, &joinAlias, &relation); - zephir_check_call_status(); - } - if (zephir_array_isset_long(&sqlJoin, 0)) { - zephir_is_iterable(&sqlJoin, 0, "phalcon/Mvc/Model/Query.zep", 2639); - if (Z_TYPE_P(&sqlJoin) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&sqlJoin), _86$$64) - { - ZEPHIR_INIT_NVAR(&sqlJoinItem); - ZVAL_COPY(&sqlJoinItem, _86$$64); - zephir_array_append(&sqlJoins, &sqlJoinItem, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2637); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &sqlJoin, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_87$$64, &sqlJoin, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_87$$64)) { - break; - } - ZEPHIR_CALL_METHOD(&sqlJoinItem, &sqlJoin, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_append(&sqlJoins, &sqlJoinItem, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2637); - ZEPHIR_CALL_METHOD(NULL, &sqlJoin, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&sqlJoinItem); - } else { - zephir_array_append(&sqlJoins, &sqlJoin, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2640); - } - } else { - ZEPHIR_INIT_NVAR(&_88$$68); - zephir_create_array(&_88$$68, 3, 0); - zephir_array_update_string(&_88$$68, SL("type"), &joinType, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_88$$68, SL("source"), &joinSource, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_89$$68); - array_init(&_89$$68); - zephir_array_update_string(&_88$$68, SL("conditions"), &_89$$68, PH_COPY | PH_SEPARATE); - zephir_array_append(&sqlJoins, &_88$$68, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2651); - } - } else { - ZEPHIR_INIT_NVAR(&_90$$69); - zephir_create_array(&_90$$69, 3, 0); - zephir_array_update_string(&_90$$69, SL("type"), &joinType, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_90$$69, SL("source"), &joinSource, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_91$$69); - zephir_create_array(&_91$$69, 1, 0); - zephir_array_fast_append(&_91$$69, &preCondition); - zephir_array_update_string(&_90$$69, SL("conditions"), &_91$$69, PH_COPY | PH_SEPARATE); - zephir_array_append(&sqlJoins, &_90$$69, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2662); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &joinModels, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_77$$55, &joinModels, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_77$$55)) { - break; - } - ZEPHIR_CALL_METHOD(&joinAlias, &joinModels, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&joinModel, &joinModels, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&joinSource); - zephir_array_fetch(&joinSource, &joinSources, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2552); - ZEPHIR_OBS_NVAR(&joinType); - zephir_array_fetch(&joinType, &joinTypes, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2557); - ZEPHIR_OBS_NVAR(&preCondition); - if (!(zephir_array_isset_fetch(&preCondition, &joinPreCondition, &joinAlias, 0))) { - ZEPHIR_OBS_NVAR(&modelNameAlias); - zephir_array_fetch(&modelNameAlias, &sqlAliasesModels, &joinAlias, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2566); - ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationbyalias", &_92, 0, &fromModelName, &modelNameAlias); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&relation)) { - ZEPHIR_CALL_METHOD(&relations, &manager, "getrelationsbetween", &_93, 0, &fromModelName, &modelNameAlias); - zephir_check_call_status(); - if (Z_TYPE_P(&relations) == IS_ARRAY) { - if (UNEXPECTED(zephir_fast_count_int(&relations) != 1)) { - ZEPHIR_INIT_NVAR(&_94$$74); - object_init_ex(&_94$$74, phalcon_mvc_model_exception_ce); - zephir_read_property(&_95$$74, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_96$$74); - ZEPHIR_CONCAT_SVSVSV(&_96$$74, "There is more than one relation between models '", &fromModelName, "' and '", &joinModel, "', the join must be done using an alias, when preparing: ", &_95$$74); - ZEPHIR_CALL_METHOD(NULL, &_94$$74, "__construct", &_8, 8, &_96$$74); - zephir_check_call_status(); - zephir_throw_exception_debug(&_94$$74, "phalcon/Mvc/Model/Query.zep", 2592); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(&relation); - zephir_array_fetch_long(&relation, &relations, 0, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2598); - } - } - if (Z_TYPE_P(&relation) == IS_OBJECT) { - ZEPHIR_OBS_NVAR(&modelAlias); - zephir_array_fetch(&modelAlias, &sqlModelsAliases, &fromModelName, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2609); - ZEPHIR_CALL_METHOD(&_97$$75, &relation, "isthrough", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_97$$75))) { - ZEPHIR_CALL_METHOD(&sqlJoin, this_ptr, "getsinglejoin", &_56, 475, &joinType, &joinSource, &modelAlias, &joinAlias, &relation); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(&sqlJoin, this_ptr, "getmultijoin", &_57, 476, &joinType, &joinSource, &modelAlias, &joinAlias, &relation); - zephir_check_call_status(); - } - if (zephir_array_isset_long(&sqlJoin, 0)) { - zephir_is_iterable(&sqlJoin, 0, "phalcon/Mvc/Model/Query.zep", 2639); - if (Z_TYPE_P(&sqlJoin) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&sqlJoin), _98$$78) - { - ZEPHIR_INIT_NVAR(&sqlJoinItem); - ZVAL_COPY(&sqlJoinItem, _98$$78); - zephir_array_append(&sqlJoins, &sqlJoinItem, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2637); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &sqlJoin, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_99$$78, &sqlJoin, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_99$$78)) { - break; - } - ZEPHIR_CALL_METHOD(&sqlJoinItem, &sqlJoin, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_append(&sqlJoins, &sqlJoinItem, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2637); - ZEPHIR_CALL_METHOD(NULL, &sqlJoin, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&sqlJoinItem); - } else { - zephir_array_append(&sqlJoins, &sqlJoin, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2640); - } - } else { - ZEPHIR_INIT_NVAR(&_100$$82); - zephir_create_array(&_100$$82, 3, 0); - zephir_array_update_string(&_100$$82, SL("type"), &joinType, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_100$$82, SL("source"), &joinSource, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_101$$82); - array_init(&_101$$82); - zephir_array_update_string(&_100$$82, SL("conditions"), &_101$$82, PH_COPY | PH_SEPARATE); - zephir_array_append(&sqlJoins, &_100$$82, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2651); - } - } else { - ZEPHIR_INIT_NVAR(&_102$$83); - zephir_create_array(&_102$$83, 3, 0); - zephir_array_update_string(&_102$$83, SL("type"), &joinType, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_102$$83, SL("source"), &joinSource, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_103$$83); - zephir_create_array(&_103$$83, 1, 0); - zephir_array_fast_append(&_103$$83, &preCondition); - zephir_array_update_string(&_102$$83, SL("conditions"), &_103$$83, PH_COPY | PH_SEPARATE); - zephir_array_append(&sqlJoins, &_102$$83, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2662); - } - ZEPHIR_CALL_METHOD(NULL, &joinModels, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&joinModel); - ZEPHIR_INIT_NVAR(&joinAlias); - ZEPHIR_CALL_METHOD(NULL, &fromModels, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&_41); - ZEPHIR_INIT_NVAR(&fromModelName); - RETURN_CTOR(&sqlJoins); + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getMultiJoin) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_File_Size_Max) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator\\File\\Size, Max, phalcon, validation_validator_file_size_max, phalcon_validation_validator_file_abstractfile_ce, phalcon_validation_validator_file_size_max_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_file_size_max_ce, SL("template"), "File :field exceeds the size of :size", ZEND_ACC_PROTECTED); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Validation_Validator_File_Size_Max, __construct) { - zend_string *_4$$3; - zend_ulong _3$$3; - zval sqlJoins, _10$$4, _12$$4, _18$$6, _19$$6, _21$$8, _22$$8, _23$$8, _25$$8, _26$$8, _27$$8, _28$$8; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_8 = NULL, *_11 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *joinType_param = NULL, *joinSource, joinSource_sub, *modelAlias_param = NULL, *joinAlias_param = NULL, *relation, relation_sub, fields, referencedFields, intermediateModelName, intermediateModel, intermediateSource, intermediateSchema, intermediateFields, intermediateReferencedFields, referencedModelName, manager, field, position, intermediateField, sqlEqualsJoinCondition, _0, *_1$$3, _2$$3, _5$$5, _6$$5, _7$$5, _9$$4, _13$$7, _14$$7, _15$$7, _16$$6, _17$$6, _20$$8, _24$$8; - zval joinType, modelAlias, joinAlias; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&joinType); - ZVAL_UNDEF(&modelAlias); - ZVAL_UNDEF(&joinAlias); - ZVAL_UNDEF(&joinSource_sub); - ZVAL_UNDEF(&relation_sub); - ZVAL_UNDEF(&fields); - ZVAL_UNDEF(&referencedFields); - ZVAL_UNDEF(&intermediateModelName); - ZVAL_UNDEF(&intermediateModel); - ZVAL_UNDEF(&intermediateSource); - ZVAL_UNDEF(&intermediateSchema); - ZVAL_UNDEF(&intermediateFields); - ZVAL_UNDEF(&intermediateReferencedFields); - ZVAL_UNDEF(&referencedModelName); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&field); - ZVAL_UNDEF(&position); - ZVAL_UNDEF(&intermediateField); - ZVAL_UNDEF(&sqlEqualsJoinCondition); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_7$$5); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_13$$7); - ZVAL_UNDEF(&_14$$7); - ZVAL_UNDEF(&_15$$7); - ZVAL_UNDEF(&_16$$6); - ZVAL_UNDEF(&_17$$6); - ZVAL_UNDEF(&_20$$8); - ZVAL_UNDEF(&_24$$8); - ZVAL_UNDEF(&sqlJoins); - ZVAL_UNDEF(&_10$$4); - ZVAL_UNDEF(&_12$$4); - ZVAL_UNDEF(&_18$$6); - ZVAL_UNDEF(&_19$$6); - ZVAL_UNDEF(&_21$$8); - ZVAL_UNDEF(&_22$$8); - ZVAL_UNDEF(&_23$$8); - ZVAL_UNDEF(&_25$$8); - ZVAL_UNDEF(&_26$$8); - ZVAL_UNDEF(&_27$$8); - ZVAL_UNDEF(&_28$$8); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(5, 5) - Z_PARAM_STR(joinType) - Z_PARAM_ZVAL(joinSource) - Z_PARAM_STR(modelAlias) - Z_PARAM_STR(joinAlias) - Z_PARAM_OBJECT_OF_CLASS(relation, phalcon_mvc_model_relationinterface_ce) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 5, 0, &joinType_param, &joinSource, &modelAlias_param, &joinAlias_param, &relation); - if (UNEXPECTED(Z_TYPE_P(joinType_param) != IS_STRING && Z_TYPE_P(joinType_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'joinType' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(joinType_param) == IS_STRING)) { - zephir_get_strval(&joinType, joinType_param); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); } else { - ZEPHIR_INIT_VAR(&joinType); + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); } - zephir_get_strval(&modelAlias, modelAlias_param); - zephir_get_strval(&joinAlias, joinAlias_param); - ZEPHIR_INIT_VAR(&sqlJoins); - array_init(&sqlJoins); - ZEPHIR_CALL_METHOD(&fields, relation, "getfields", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&referencedFields, relation, "getreferencedfields", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&intermediateModelName, relation, "getintermediatemodel", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&manager, &_0); - ZEPHIR_CALL_METHOD(&intermediateModel, &manager, "load", NULL, 0, &intermediateModelName); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&intermediateSource, &intermediateModel, "getsource", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&intermediateSchema, &intermediateModel, "getschema", NULL, 0); - zephir_check_call_status(); - zephir_update_property_array(this_ptr, SL("sqlAliases"), &intermediateModelName, &intermediateSource); - zephir_update_property_array(this_ptr, SL("sqlAliasesModelsInstances"), &intermediateModelName, &intermediateModel); - ZEPHIR_CALL_METHOD(&intermediateFields, relation, "getintermediatefields", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&intermediateReferencedFields, relation, "getintermediatereferencedfields", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&referencedModelName, relation, "getreferencedmodel", NULL, 0); + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_file_size_max_ce, getThis(), "__construct", &_0, 0, &options); zephir_check_call_status(); - if (Z_TYPE_P(&fields) == IS_ARRAY) { - zephir_is_iterable(&fields, 0, "phalcon/Mvc/Model/Query.zep", 2784); - if (Z_TYPE_P(&fields) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&fields), _3$$3, _4$$3, _1$$3) - { - ZEPHIR_INIT_NVAR(&field); - if (_4$$3 != NULL) { - ZVAL_STR_COPY(&field, _4$$3); - } else { - ZVAL_LONG(&field, _3$$3); - } - ZEPHIR_INIT_NVAR(&position); - ZVAL_COPY(&position, _1$$3); - if (UNEXPECTED(!(zephir_array_isset(&referencedFields, &position)))) { - ZEPHIR_INIT_NVAR(&_5$$5); - object_init_ex(&_5$$5, phalcon_mvc_model_exception_ce); - zephir_read_property(&_6$$5, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_7$$5); - ZEPHIR_CONCAT_SVSVSV(&_7$$5, "The number of fields must be equal to the number of referenced fields in join ", &modelAlias, "-", &joinAlias, ", when preparing: ", &_6$$5); - ZEPHIR_CALL_METHOD(NULL, &_5$$5, "__construct", &_8, 8, &_7$$5); - zephir_check_call_status(); - zephir_throw_exception_debug(&_5$$5, "phalcon/Mvc/Model/Query.zep", 2751); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(&intermediateField); - zephir_array_fetch(&intermediateField, &intermediateFields, &position, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2757); - ZEPHIR_INIT_NVAR(&sqlEqualsJoinCondition); - zephir_create_array(&sqlEqualsJoinCondition, 4, 0); - add_assoc_stringl_ex(&sqlEqualsJoinCondition, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&sqlEqualsJoinCondition, SL("op"), SL("=")); - ZEPHIR_INIT_NVAR(&_10$$4); - zephir_create_array(&_10$$4, 3, 0); - add_assoc_long_ex(&_10$$4, SL("type"), 355); - zephir_array_update_string(&_10$$4, SL("domain"), &modelAlias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_10$$4, SL("name"), &field, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_9$$4, this_ptr, "getqualified", &_11, 469, &_10$$4); - zephir_check_call_status(); - zephir_array_update_string(&sqlEqualsJoinCondition, SL("left"), &_9$$4, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_12$$4); - zephir_create_array(&_12$$4, 3, 0); - add_assoc_stringl_ex(&_12$$4, SL("type"), SL("qualified")); - zephir_array_update_string(&_12$$4, SL("domain"), &joinAlias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_12$$4, SL("name"), &referencedFields, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_9$$4, this_ptr, "getqualified", &_11, 469, &_12$$4); - zephir_check_call_status(); - zephir_array_update_string(&sqlEqualsJoinCondition, SL("right"), &_9$$4, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &fields, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2$$3, &fields, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&field, &fields, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&position, &fields, "current", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(!(zephir_array_isset(&referencedFields, &position)))) { - ZEPHIR_INIT_NVAR(&_13$$7); - object_init_ex(&_13$$7, phalcon_mvc_model_exception_ce); - zephir_read_property(&_14$$7, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_15$$7); - ZEPHIR_CONCAT_SVSVSV(&_15$$7, "The number of fields must be equal to the number of referenced fields in join ", &modelAlias, "-", &joinAlias, ", when preparing: ", &_14$$7); - ZEPHIR_CALL_METHOD(NULL, &_13$$7, "__construct", &_8, 8, &_15$$7); - zephir_check_call_status(); - zephir_throw_exception_debug(&_13$$7, "phalcon/Mvc/Model/Query.zep", 2751); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_NVAR(&intermediateField); - zephir_array_fetch(&intermediateField, &intermediateFields, &position, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2757); - ZEPHIR_INIT_NVAR(&_16$$6); - zephir_create_array(&_16$$6, 4, 0); - add_assoc_stringl_ex(&_16$$6, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_16$$6, SL("op"), SL("=")); - ZEPHIR_INIT_NVAR(&_18$$6); - zephir_create_array(&_18$$6, 3, 0); - add_assoc_long_ex(&_18$$6, SL("type"), 355); - zephir_array_update_string(&_18$$6, SL("domain"), &modelAlias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_18$$6, SL("name"), &field, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_17$$6, this_ptr, "getqualified", &_11, 469, &_18$$6); - zephir_check_call_status(); - zephir_array_update_string(&_16$$6, SL("left"), &_17$$6, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_19$$6); - zephir_create_array(&_19$$6, 3, 0); - add_assoc_stringl_ex(&_19$$6, SL("type"), SL("qualified")); - zephir_array_update_string(&_19$$6, SL("domain"), &joinAlias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_19$$6, SL("name"), &referencedFields, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_17$$6, this_ptr, "getqualified", &_11, 469, &_19$$6); - zephir_check_call_status(); - zephir_array_update_string(&_16$$6, SL("right"), &_17$$6, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&sqlEqualsJoinCondition, &_16$$6); - ZEPHIR_CALL_METHOD(NULL, &fields, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&position); - ZEPHIR_INIT_NVAR(&field); - } else { - ZEPHIR_INIT_VAR(&_20$$8); - zephir_create_array(&_20$$8, 2, 0); - ZEPHIR_INIT_VAR(&_21$$8); - zephir_create_array(&_21$$8, 3, 0); - zephir_array_update_string(&_21$$8, SL("type"), &joinType, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_VAR(&_22$$8); - zephir_create_array(&_22$$8, 2, 0); - zephir_array_fast_append(&_22$$8, &intermediateSource); - zephir_array_fast_append(&_22$$8, &intermediateSchema); - zephir_array_update_string(&_21$$8, SL("source"), &_22$$8, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_22$$8); - zephir_create_array(&_22$$8, 1, 0); - ZEPHIR_INIT_VAR(&_23$$8); - zephir_create_array(&_23$$8, 4, 0); - add_assoc_stringl_ex(&_23$$8, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_23$$8, SL("op"), SL("=")); - ZEPHIR_INIT_VAR(&_25$$8); - zephir_create_array(&_25$$8, 3, 0); - add_assoc_long_ex(&_25$$8, SL("type"), 355); - zephir_array_update_string(&_25$$8, SL("domain"), &modelAlias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_25$$8, SL("name"), &fields, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_24$$8, this_ptr, "getqualified", &_11, 469, &_25$$8); - zephir_check_call_status(); - zephir_array_update_string(&_23$$8, SL("left"), &_24$$8, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_VAR(&_26$$8); - zephir_create_array(&_26$$8, 3, 0); - add_assoc_stringl_ex(&_26$$8, SL("type"), SL("qualified")); - zephir_array_update_string(&_26$$8, SL("domain"), &intermediateModelName, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_26$$8, SL("name"), &intermediateFields, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_24$$8, this_ptr, "getqualified", &_11, 469, &_26$$8); - zephir_check_call_status(); - zephir_array_update_string(&_23$$8, SL("right"), &_24$$8, PH_COPY | PH_SEPARATE); - zephir_array_fast_append(&_22$$8, &_23$$8); - zephir_array_update_string(&_21$$8, SL("conditions"), &_22$$8, PH_COPY | PH_SEPARATE); - zephir_array_fast_append(&_20$$8, &_21$$8); - ZEPHIR_INIT_NVAR(&_21$$8); - zephir_create_array(&_21$$8, 3, 0); - zephir_array_update_string(&_21$$8, SL("type"), &joinType, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_21$$8, SL("source"), joinSource, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_22$$8); - zephir_create_array(&_22$$8, 1, 0); - ZEPHIR_INIT_NVAR(&_23$$8); - zephir_create_array(&_23$$8, 4, 0); - add_assoc_stringl_ex(&_23$$8, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_23$$8, SL("op"), SL("=")); - ZEPHIR_INIT_VAR(&_27$$8); - zephir_create_array(&_27$$8, 3, 0); - add_assoc_long_ex(&_27$$8, SL("type"), 355); - zephir_array_update_string(&_27$$8, SL("domain"), &intermediateModelName, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_27$$8, SL("name"), &intermediateReferencedFields, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_24$$8, this_ptr, "getqualified", &_11, 469, &_27$$8); - zephir_check_call_status(); - zephir_array_update_string(&_23$$8, SL("left"), &_24$$8, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_VAR(&_28$$8); - zephir_create_array(&_28$$8, 3, 0); - add_assoc_stringl_ex(&_28$$8, SL("type"), SL("qualified")); - zephir_array_update_string(&_28$$8, SL("domain"), &referencedModelName, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_28$$8, SL("name"), &referencedFields, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_24$$8, this_ptr, "getqualified", &_11, 469, &_28$$8); - zephir_check_call_status(); - zephir_array_update_string(&_23$$8, SL("right"), &_24$$8, PH_COPY | PH_SEPARATE); - zephir_array_fast_append(&_22$$8, &_23$$8); - zephir_array_update_string(&_21$$8, SL("conditions"), &_22$$8, PH_COPY | PH_SEPARATE); - zephir_array_fast_append(&_20$$8, &_21$$8); - ZEPHIR_CPY_WRT(&sqlJoins, &_20$$8); - } - RETURN_CTOR(&sqlJoins); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getOrderClause) +static PHP_METHOD(Phalcon_Validation_Validator_File_Size_Max, validate) { - zval orderParts, orderPartSort; + double _9$$5, _10$$6; + zend_bool result = 0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *order, order_sub, orderColumns, orderItem, orderPartExpr, orderSort, *_0, _1, _2$$5, _4$$7, _5$$8, _6$$8, _7$$9, _8$$10, _9$$12, _10$$12, _11$$13, _12$$13, _13$$14; + zval *validation, validation_sub, *field, field_sub, bytes, fileSize, included, replacePairs, size, value, _0, _1, _3, _4, _5, _6, _7, _2$$4, _8$$5, _11$$9; zval *this_ptr = getThis(); - ZVAL_UNDEF(&order_sub); - ZVAL_UNDEF(&orderColumns); - ZVAL_UNDEF(&orderItem); - ZVAL_UNDEF(&orderPartExpr); - ZVAL_UNDEF(&orderSort); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&bytes); + ZVAL_UNDEF(&fileSize); + ZVAL_UNDEF(&included); + ZVAL_UNDEF(&replacePairs); + ZVAL_UNDEF(&size); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$5); - ZVAL_UNDEF(&_4$$7); - ZVAL_UNDEF(&_5$$8); - ZVAL_UNDEF(&_6$$8); - ZVAL_UNDEF(&_7$$9); - ZVAL_UNDEF(&_8$$10); - ZVAL_UNDEF(&_9$$12); - ZVAL_UNDEF(&_10$$12); - ZVAL_UNDEF(&_11$$13); - ZVAL_UNDEF(&_12$$13); - ZVAL_UNDEF(&_13$$14); - ZVAL_UNDEF(&orderParts); - ZVAL_UNDEF(&orderPartSort); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_11$$9); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(order) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &order); + zephir_fetch_params(1, 2, 0, &validation, &field); - if (!(zephir_array_isset_long(order, 0))) { - ZEPHIR_INIT_VAR(&orderColumns); - zephir_create_array(&orderColumns, 1, 0); - zephir_array_fast_append(&orderColumns, order); + ZEPHIR_INIT_VAR(&included); + ZVAL_BOOL(&included, 0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "checkupload", NULL, 0, validation, field); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_0)) { + RETURN_MM_BOOL(0); + } + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "size"); + ZEPHIR_CALL_METHOD(&size, this_ptr, "getoption", NULL, 0, &_1); + zephir_check_call_status(); + if (Z_TYPE_P(&size) == IS_ARRAY) { + zephir_array_fetch(&_2$$4, &size, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/Size/Max.zep", 96); + ZEPHIR_CPY_WRT(&size, &_2$$4); + } + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getfilesizeinbytes", NULL, 0, &size); + zephir_check_call_status(); + ZVAL_LONG(&_4, 6); + ZEPHIR_INIT_VAR(&bytes); + zephir_round(&bytes, &_3, &_4, NULL); + zephir_array_fetch_string(&_5, &value, SL("size"), PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/Size/Max.zep", 100); + ZEPHIR_CALL_FUNCTION(&_6, "floatval", NULL, 18, &_5); + zephir_check_call_status(); + ZVAL_LONG(&_7, 6); + ZEPHIR_INIT_VAR(&fileSize); + zephir_round(&fileSize, &_6, &_7, NULL); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "included"); + ZEPHIR_CALL_METHOD(&included, this_ptr, "getoption", NULL, 0, &_1); + zephir_check_call_status(); + if (Z_TYPE_P(&included) == IS_ARRAY) { + ZEPHIR_OBS_VAR(&_8$$5); + zephir_array_fetch(&_8$$5, &included, field, PH_NOISY, "phalcon/Validation/Validator/File/Size/Max.zep", 105); + _9$$5 = zephir_get_boolval(&_8$$5); + ZEPHIR_INIT_NVAR(&included); + ZVAL_BOOL(&included, _9$$5); } else { - ZEPHIR_CPY_WRT(&orderColumns, order); + _10$$6 = zephir_get_boolval(&included); + ZEPHIR_INIT_NVAR(&included); + ZVAL_BOOL(&included, _10$$6); } - ZEPHIR_INIT_VAR(&orderParts); - array_init(&orderParts); - zephir_is_iterable(&orderColumns, 0, "phalcon/Mvc/Model/Query.zep", 2893); - if (Z_TYPE_P(&orderColumns) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&orderColumns), _0) - { - ZEPHIR_INIT_NVAR(&orderItem); - ZVAL_COPY(&orderItem, _0); - zephir_array_fetch_string(&_2$$5, &orderItem, SL("column"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 2875); - ZEPHIR_CALL_METHOD(&orderPartExpr, this_ptr, "getexpression", &_3, 468, &_2$$5); - zephir_check_call_status(); - if (zephir_array_isset_string_fetch(&orderSort, &orderItem, SL("sort"), 1)) { - if (ZEPHIR_IS_LONG(&orderSort, 327)) { - ZEPHIR_INIT_NVAR(&orderPartSort); - zephir_create_array(&orderPartSort, 2, 0); - zephir_array_fast_append(&orderPartSort, &orderPartExpr); - ZEPHIR_INIT_NVAR(&_4$$7); - ZVAL_STRING(&_4$$7, "ASC"); - zephir_array_fast_append(&orderPartSort, &_4$$7); - } else { - ZEPHIR_INIT_NVAR(&_5$$8); - zephir_create_array(&_5$$8, 2, 0); - zephir_array_fast_append(&_5$$8, &orderPartExpr); - ZEPHIR_INIT_NVAR(&_6$$8); - ZVAL_STRING(&_6$$8, "DESC"); - zephir_array_fast_append(&_5$$8, &_6$$8); - ZEPHIR_CPY_WRT(&orderPartSort, &_5$$8); - } - } else { - ZEPHIR_INIT_NVAR(&_7$$9); - zephir_create_array(&_7$$9, 1, 0); - zephir_array_fast_append(&_7$$9, &orderPartExpr); - ZEPHIR_CPY_WRT(&orderPartSort, &_7$$9); - } - zephir_array_append(&orderParts, &orderPartSort, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2890); - } ZEND_HASH_FOREACH_END(); + if (zephir_is_true(&included)) { + result = ZEPHIR_GE(&fileSize, &bytes); } else { - ZEPHIR_CALL_METHOD(NULL, &orderColumns, "rewind", NULL, 0); + result = ZEPHIR_GT(&fileSize, &bytes); + } + if (result) { + ZEPHIR_INIT_VAR(&replacePairs); + zephir_create_array(&replacePairs, 1, 0); + zephir_array_update_string(&replacePairs, SL(":size"), &size, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_11$$9, this_ptr, "messagefactory", NULL, 0, validation, field, &replacePairs); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1, &orderColumns, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1)) { - break; - } - ZEPHIR_CALL_METHOD(&orderItem, &orderColumns, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_fetch_string(&_8$$10, &orderItem, SL("column"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 2875); - ZEPHIR_CALL_METHOD(&orderPartExpr, this_ptr, "getexpression", &_3, 468, &_8$$10); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&orderSort); - if (zephir_array_isset_string_fetch(&orderSort, &orderItem, SL("sort"), 0)) { - if (ZEPHIR_IS_LONG(&orderSort, 327)) { - ZEPHIR_INIT_NVAR(&_9$$12); - zephir_create_array(&_9$$12, 2, 0); - zephir_array_fast_append(&_9$$12, &orderPartExpr); - ZEPHIR_INIT_NVAR(&_10$$12); - ZVAL_STRING(&_10$$12, "ASC"); - zephir_array_fast_append(&_9$$12, &_10$$12); - ZEPHIR_CPY_WRT(&orderPartSort, &_9$$12); - } else { - ZEPHIR_INIT_NVAR(&_11$$13); - zephir_create_array(&_11$$13, 2, 0); - zephir_array_fast_append(&_11$$13, &orderPartExpr); - ZEPHIR_INIT_NVAR(&_12$$13); - ZVAL_STRING(&_12$$13, "DESC"); - zephir_array_fast_append(&_11$$13, &_12$$13); - ZEPHIR_CPY_WRT(&orderPartSort, &_11$$13); - } - } else { - ZEPHIR_INIT_NVAR(&_13$$14); - zephir_create_array(&_13$$14, 1, 0); - zephir_array_fast_append(&_13$$14, &orderPartExpr); - ZEPHIR_CPY_WRT(&orderPartSort, &_13$$14); - } - zephir_array_append(&orderParts, &orderPartSort, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 2890); - ZEPHIR_CALL_METHOD(NULL, &orderColumns, "next", NULL, 0); - zephir_check_call_status(); - } + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_11$$9); + zephir_check_call_status(); + RETURN_MM_BOOL(0); } - ZEPHIR_INIT_NVAR(&orderItem); - RETURN_CTOR(&orderParts); + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getQualified) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_File_Size_Min) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator\\File\\Size, Min, phalcon, validation_validator_file_size_min, phalcon_validation_validator_file_abstractfile_ce, phalcon_validation_validator_file_size_min_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_file_size_min_ce, SL("template"), "File :field can not have the minimum size of :size", ZEND_ACC_PROTECTED); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Validation_Validator_File_Size_Min, __construct) { - zend_bool _3, _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_22 = NULL, *_27 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, number = 0; - zval *expr_param = NULL, columnName, nestingLevel, sqlColumnAliases, metaData, sqlAliases, source, sqlAliasesModelsInstances, realColumnName, columnDomain, model, models, columnMap, hasModel, className, _0, _5, _6, _1$$3, _2$$3, _7$$6, _8$$7, _9$$7, _10$$7, _11$$8, _12$$9, _13$$9, _14$$9, _15$$12, _16$$12, _17$$12, _18$$14, *_19$$14, _20$$14, _34$$14, _21$$15, _23$$17, _24$$17, _25$$17, _26$$18, _28$$20, _29$$20, _30$$20, _31$$21, _32$$21, _33$$21, _35$$23, _36$$23, _37$$23, _38$$27, _39$$27, _40$$27; - zval expr; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&columnName); - ZVAL_UNDEF(&nestingLevel); - ZVAL_UNDEF(&sqlColumnAliases); - ZVAL_UNDEF(&metaData); - ZVAL_UNDEF(&sqlAliases); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&sqlAliasesModelsInstances); - ZVAL_UNDEF(&realColumnName); - ZVAL_UNDEF(&columnDomain); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&models); - ZVAL_UNDEF(&columnMap); - ZVAL_UNDEF(&hasModel); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_8$$7); - ZVAL_UNDEF(&_9$$7); - ZVAL_UNDEF(&_10$$7); - ZVAL_UNDEF(&_11$$8); - ZVAL_UNDEF(&_12$$9); - ZVAL_UNDEF(&_13$$9); - ZVAL_UNDEF(&_14$$9); - ZVAL_UNDEF(&_15$$12); - ZVAL_UNDEF(&_16$$12); - ZVAL_UNDEF(&_17$$12); - ZVAL_UNDEF(&_18$$14); - ZVAL_UNDEF(&_20$$14); - ZVAL_UNDEF(&_34$$14); - ZVAL_UNDEF(&_21$$15); - ZVAL_UNDEF(&_23$$17); - ZVAL_UNDEF(&_24$$17); - ZVAL_UNDEF(&_25$$17); - ZVAL_UNDEF(&_26$$18); - ZVAL_UNDEF(&_28$$20); - ZVAL_UNDEF(&_29$$20); - ZVAL_UNDEF(&_30$$20); - ZVAL_UNDEF(&_31$$21); - ZVAL_UNDEF(&_32$$21); - ZVAL_UNDEF(&_33$$21); - ZVAL_UNDEF(&_35$$23); - ZVAL_UNDEF(&_36$$23); - ZVAL_UNDEF(&_37$$23); - ZVAL_UNDEF(&_38$$27); - ZVAL_UNDEF(&_39$$27); - ZVAL_UNDEF(&_40$$27); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(expr) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &expr_param); - ZEPHIR_OBS_COPY_OR_DUP(&expr, expr_param); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } - ZEPHIR_OBS_VAR(&columnName); - zephir_array_fetch_string(&columnName, &expr, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 2907); - zephir_read_property(&_0, this_ptr, ZEND_STRL("nestingLevel"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&nestingLevel, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("sqlColumnAliases"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset(&_0, &nestingLevel)) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("sqlColumnAliases"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch(&_2$$3, &_1$$3, &nestingLevel, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 2915); - ZEPHIR_CPY_WRT(&sqlColumnAliases, &_2$$3); - } else { - ZEPHIR_INIT_NVAR(&sqlColumnAliases); - array_init(&sqlColumnAliases); - } - _3 = zephir_array_isset(&sqlColumnAliases, &columnName); - if (_3) { - _4 = !(zephir_array_isset_string(&expr, SL("domain"))); - if (!(_4)) { - zephir_array_fetch_string(&_5, &expr, SL("domain"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 2920); - _4 = ZEPHIR_IS_EMPTY(&_5); - } - _3 = _4; - } - if (_3) { - zephir_create_array(return_value, 2, 0); - add_assoc_stringl_ex(return_value, SL("type"), SL("qualified")); - zephir_array_update_string(return_value, SL("name"), &columnName, PH_COPY | PH_SEPARATE); - RETURN_MM(); - } - zephir_read_property(&_6, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&metaData, &_6); - ZEPHIR_OBS_VAR(&columnDomain); - if (zephir_array_isset_string_fetch(&columnDomain, &expr, SL("domain"), 0)) { - zephir_read_property(&_7$$6, this_ptr, ZEND_STRL("sqlAliases"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&sqlAliases, &_7$$6); - ZEPHIR_OBS_VAR(&source); - if (UNEXPECTED(!(zephir_array_isset_fetch(&source, &sqlAliases, &columnDomain, 0)))) { - ZEPHIR_INIT_VAR(&_8$$7); - object_init_ex(&_8$$7, phalcon_mvc_model_exception_ce); - zephir_read_property(&_9$$7, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_10$$7); - ZEPHIR_CONCAT_SVSV(&_10$$7, "Unknown model or alias '", &columnDomain, "' (11), when preparing: ", &_9$$7); - ZEPHIR_CALL_METHOD(NULL, &_8$$7, "__construct", NULL, 8, &_10$$7); - zephir_check_call_status(); - zephir_throw_exception_debug(&_8$$7, "phalcon/Mvc/Model/Query.zep", 2941); - ZEPHIR_MM_RESTORE(); - return; - } - if (ZEPHIR_GLOBAL(orm).column_renaming) { - zephir_read_property(&_11$$8, this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&sqlAliasesModelsInstances, &_11$$8); - ZEPHIR_OBS_VAR(&model); - if (UNEXPECTED(!(zephir_array_isset_fetch(&model, &sqlAliasesModelsInstances, &columnDomain, 0)))) { - ZEPHIR_INIT_VAR(&_12$$9); - object_init_ex(&_12$$9, phalcon_mvc_model_exception_ce); - zephir_read_property(&_13$$9, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_14$$9); - ZEPHIR_CONCAT_SVSV(&_14$$9, "There is no model related to model or alias '", &columnDomain, "', when executing: ", &_13$$9); - ZEPHIR_CALL_METHOD(NULL, &_12$$9, "__construct", NULL, 8, &_14$$9); - zephir_check_call_status(); - zephir_throw_exception_debug(&_12$$9, "phalcon/Mvc/Model/Query.zep", 2960); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getreversecolumnmap", NULL, 0, &model); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&columnMap); - ZVAL_NULL(&columnMap); - } - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - ZEPHIR_OBS_VAR(&realColumnName); - if (UNEXPECTED(!(zephir_array_isset_fetch(&realColumnName, &columnMap, &columnName, 0)))) { - ZEPHIR_INIT_VAR(&_15$$12); - object_init_ex(&_15$$12, phalcon_mvc_model_exception_ce); - zephir_read_property(&_16$$12, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_17$$12); - ZEPHIR_CONCAT_SVSVSV(&_17$$12, "Column '", &columnName, "' doesn't belong to the model or alias '", &columnDomain, "', when executing: ", &_16$$12); - ZEPHIR_CALL_METHOD(NULL, &_15$$12, "__construct", NULL, 8, &_17$$12); - zephir_check_call_status(); - zephir_throw_exception_debug(&_15$$12, "phalcon/Mvc/Model/Query.zep", 2972); - ZEPHIR_MM_RESTORE(); - return; - } - } else { - ZEPHIR_CPY_WRT(&realColumnName, &columnName); - } - } else { - number = 0; - ZEPHIR_INIT_VAR(&hasModel); - ZVAL_BOOL(&hasModel, 0); - zephir_read_property(&_18$$14, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); - zephir_is_iterable(&_18$$14, 0, "phalcon/Mvc/Model/Query.zep", 3006); - if (Z_TYPE_P(&_18$$14) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_18$$14), _19$$14) - { - ZEPHIR_INIT_NVAR(&model); - ZVAL_COPY(&model, _19$$14); - ZEPHIR_CALL_METHOD(&_21$$15, &metaData, "hasattribute", &_22, 0, &model, &columnName); - zephir_check_call_status(); - if (zephir_is_true(&_21$$15)) { - number++; - if (UNEXPECTED(number > 1)) { - ZEPHIR_INIT_NVAR(&_23$$17); - object_init_ex(&_23$$17, phalcon_mvc_model_exception_ce); - zephir_read_property(&_24$$17, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_25$$17); - ZEPHIR_CONCAT_SVSV(&_25$$17, "The column '", &columnName, "' is ambiguous, when preparing: ", &_24$$17); - ZEPHIR_CALL_METHOD(NULL, &_23$$17, "__construct", NULL, 8, &_25$$17); - zephir_check_call_status(); - zephir_throw_exception_debug(&_23$$17, "phalcon/Mvc/Model/Query.zep", 2995); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CPY_WRT(&hasModel, &model); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_18$$14, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_20$$14, &_18$$14, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_20$$14)) { - break; - } - ZEPHIR_CALL_METHOD(&model, &_18$$14, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_26$$18, &metaData, "hasattribute", &_27, 0, &model, &columnName); - zephir_check_call_status(); - if (zephir_is_true(&_26$$18)) { - number++; - if (UNEXPECTED(number > 1)) { - ZEPHIR_INIT_NVAR(&_28$$20); - object_init_ex(&_28$$20, phalcon_mvc_model_exception_ce); - zephir_read_property(&_29$$20, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_30$$20); - ZEPHIR_CONCAT_SVSV(&_30$$20, "The column '", &columnName, "' is ambiguous, when preparing: ", &_29$$20); - ZEPHIR_CALL_METHOD(NULL, &_28$$20, "__construct", NULL, 8, &_30$$20); - zephir_check_call_status(); - zephir_throw_exception_debug(&_28$$20, "phalcon/Mvc/Model/Query.zep", 2995); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CPY_WRT(&hasModel, &model); - } - ZEPHIR_CALL_METHOD(NULL, &_18$$14, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&model); - if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&hasModel))) { - ZEPHIR_INIT_VAR(&_31$$21); - object_init_ex(&_31$$21, phalcon_mvc_model_exception_ce); - zephir_read_property(&_32$$21, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_33$$21); - ZEPHIR_CONCAT_SVSV(&_33$$21, "Column '", &columnName, "' doesn't belong to any of the selected models (1), when preparing: ", &_32$$21); - ZEPHIR_CALL_METHOD(NULL, &_31$$21, "__construct", NULL, 8, &_33$$21); - zephir_check_call_status(); - zephir_throw_exception_debug(&_31$$21, "phalcon/Mvc/Model/Query.zep", 3009); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_read_property(&_34$$14, this_ptr, ZEND_STRL("models"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&models, &_34$$14); - if (UNEXPECTED(Z_TYPE_P(&models) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The models list was not loaded correctly", "phalcon/Mvc/Model/Query.zep", 3020); - return; - } - ZEPHIR_INIT_VAR(&className); - zephir_get_class(&className, &hasModel, 0); - ZEPHIR_OBS_NVAR(&source); - if (UNEXPECTED(!(zephir_array_isset_fetch(&source, &models, &className, 0)))) { - ZEPHIR_INIT_VAR(&_35$$23); - object_init_ex(&_35$$23, phalcon_mvc_model_exception_ce); - zephir_read_property(&_36$$23, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_37$$23); - ZEPHIR_CONCAT_SVSV(&_37$$23, "Can't obtain model's source from models list: '", &className, "', when preparing: ", &_36$$23); - ZEPHIR_CALL_METHOD(NULL, &_35$$23, "__construct", NULL, 8, &_37$$23); - zephir_check_call_status(); - zephir_throw_exception_debug(&_35$$23, "phalcon/Mvc/Model/Query.zep", 3031); - ZEPHIR_MM_RESTORE(); - return; - } - if (ZEPHIR_GLOBAL(orm).column_renaming) { - ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getreversecolumnmap", NULL, 0, &hasModel); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&columnMap); - ZVAL_NULL(&columnMap); - } - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&realColumnName); - if (UNEXPECTED(!(zephir_array_isset_fetch(&realColumnName, &columnMap, &columnName, 0)))) { - ZEPHIR_INIT_VAR(&_38$$27); - object_init_ex(&_38$$27, phalcon_mvc_model_exception_ce); - zephir_read_property(&_39$$27, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_40$$27); - ZEPHIR_CONCAT_SVSV(&_40$$27, "Column '", &columnName, "' doesn't belong to any of the selected models (3), when preparing: ", &_39$$27); - ZEPHIR_CALL_METHOD(NULL, &_38$$27, "__construct", NULL, 8, &_40$$27); - zephir_check_call_status(); - zephir_throw_exception_debug(&_38$$27, "phalcon/Mvc/Model/Query.zep", 3050); - ZEPHIR_MM_RESTORE(); - return; - } - } else { - ZEPHIR_CPY_WRT(&realColumnName, &columnName); - } - } - zephir_create_array(return_value, 4, 0); - add_assoc_stringl_ex(return_value, SL("type"), SL("qualified")); - zephir_array_update_string(return_value, SL("domain"), &source, PH_COPY | PH_SEPARATE); - zephir_array_update_string(return_value, SL("name"), &realColumnName, PH_COPY | PH_SEPARATE); - zephir_array_update_string(return_value, SL("balias"), &columnName, PH_COPY | PH_SEPARATE); - RETURN_MM(); + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_file_size_min_ce, getThis(), "__construct", &_0, 0, &options); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getReadConnection) +static PHP_METHOD(Phalcon_Validation_Validator_File_Size_Min, validate) { - zend_bool _1; + double _9$$5, _10$$6; + zend_bool result = 0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval intermediate, bindParams, bindTypes; - zval *model, model_sub, *intermediate_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, connection, transaction, _0; + zval *validation, validation_sub, *field, field_sub, bytes, fileSize, included, replacePairs, size, value, _0, _1, _3, _4, _5, _6, _7, _2$$4, _8$$5, _11$$9; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&connection); - ZVAL_UNDEF(&transaction); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&bytes); + ZVAL_UNDEF(&fileSize); + ZVAL_UNDEF(&included); + ZVAL_UNDEF(&replacePairs); + ZVAL_UNDEF(&size); + ZVAL_UNDEF(&value); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&intermediate); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_11$$9); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 4) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY_OR_NULL(intermediate) - Z_PARAM_ARRAY(bindParams) - Z_PARAM_ARRAY(bindTypes) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 3, &model, &intermediate_param, &bindParams_param, &bindTypes_param); - if (!intermediate_param) { - ZEPHIR_INIT_VAR(&intermediate); - } else { - zephir_get_arrval(&intermediate, intermediate_param); + zephir_fetch_params(1, 2, 0, &validation, &field); + + + ZEPHIR_INIT_VAR(&included); + ZVAL_BOOL(&included, 0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "checkupload", NULL, 0, validation, field); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_0)) { + RETURN_MM_BOOL(0); } - if (!bindParams_param) { - ZEPHIR_INIT_VAR(&bindParams); - array_init(&bindParams); - } else { - zephir_get_arrval(&bindParams, bindParams_param); + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "size"); + ZEPHIR_CALL_METHOD(&size, this_ptr, "getoption", NULL, 0, &_1); + zephir_check_call_status(); + if (Z_TYPE_P(&size) == IS_ARRAY) { + zephir_array_fetch(&_2$$4, &size, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/Size/Min.zep", 96); + ZEPHIR_CPY_WRT(&size, &_2$$4); } - if (!bindTypes_param) { - ZEPHIR_INIT_VAR(&bindTypes); - array_init(&bindTypes); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getfilesizeinbytes", NULL, 0, &size); + zephir_check_call_status(); + ZVAL_LONG(&_4, 6); + ZEPHIR_INIT_VAR(&bytes); + zephir_round(&bytes, &_3, &_4, NULL); + zephir_array_fetch_string(&_5, &value, SL("size"), PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/File/Size/Min.zep", 100); + ZEPHIR_CALL_FUNCTION(&_6, "floatval", NULL, 18, &_5); + zephir_check_call_status(); + ZVAL_LONG(&_7, 6); + ZEPHIR_INIT_VAR(&fileSize); + zephir_round(&fileSize, &_6, &_7, NULL); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "included"); + ZEPHIR_CALL_METHOD(&included, this_ptr, "getoption", NULL, 0, &_1); + zephir_check_call_status(); + if (Z_TYPE_P(&included) == IS_ARRAY) { + ZEPHIR_OBS_VAR(&_8$$5); + zephir_array_fetch(&_8$$5, &included, field, PH_NOISY, "phalcon/Validation/Validator/File/Size/Min.zep", 105); + _9$$5 = zephir_get_boolval(&_8$$5); + ZEPHIR_INIT_NVAR(&included); + ZVAL_BOOL(&included, _9$$5); } else { - zephir_get_arrval(&bindTypes, bindTypes_param); + _10$$6 = zephir_get_boolval(&included); + ZEPHIR_INIT_NVAR(&included); + ZVAL_BOOL(&included, _10$$6); } - - - ZEPHIR_INIT_VAR(&connection); - ZVAL_NULL(&connection); - zephir_read_property(&_0, this_ptr, ZEND_STRL("transaction"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&transaction, &_0); - _1 = Z_TYPE_P(&transaction) == IS_OBJECT; - if (_1) { - _1 = zephir_instance_of_ev(&transaction, phalcon_mvc_model_transactioninterface_ce); + if (zephir_is_true(&included)) { + result = ZEPHIR_GE(&fileSize, &bytes); + } else { + result = ZEPHIR_GT(&fileSize, &bytes); } - if (_1) { - ZEPHIR_RETURN_CALL_METHOD(&transaction, "getconnection", NULL, 0); + if (result) { + ZEPHIR_INIT_VAR(&replacePairs); + zephir_create_array(&replacePairs, 1, 0); + zephir_array_update_string(&replacePairs, SL(":size"), &size, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_11$$9, this_ptr, "messagefactory", NULL, 0, validation, field, &replacePairs); zephir_check_call_status(); - RETURN_MM(); - } - if ((zephir_method_exists_ex(model, ZEND_STRL("selectreadconnection")) == SUCCESS)) { - ZEPHIR_CALL_METHOD(&connection, model, "selectreadconnection", NULL, 0, &intermediate, &bindParams, &bindTypes); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_11$$9); zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&connection) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "selectReadConnection did not return a connection", "phalcon/Mvc/Model/Query.zep", 3094); - return; - } - RETURN_CCTOR(&connection); + RETURN_MM_BOOL(0); } - ZEPHIR_RETURN_CALL_METHOD(model, "getreadconnection", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getRelatedRecords) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval intermediate, bindParams, bindTypes, _0, _1; - zval *model, model_sub, *intermediate_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, selectIr, whereConditions, limitConditions, query, _2, _3, _4, _5, _6; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&selectIr); - ZVAL_UNDEF(&whereConditions); - ZVAL_UNDEF(&limitConditions); - ZVAL_UNDEF(&query); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&intermediate); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(4, 4) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_ARRAY(intermediate) - Z_PARAM_ARRAY(bindParams) - Z_PARAM_ARRAY(bindTypes) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 4, 0, &model, &intermediate_param, &bindParams_param, &bindTypes_param); - zephir_get_arrval(&intermediate, intermediate_param); - zephir_get_arrval(&bindParams, bindParams_param); - zephir_get_arrval(&bindTypes, bindTypes_param); - ZEPHIR_INIT_VAR(&selectIr); - zephir_create_array(&selectIr, 3, 0); - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 1, 0); - ZEPHIR_INIT_VAR(&_1); - zephir_create_array(&_1, 3, 0); - add_assoc_stringl_ex(&_1, SL("type"), SL("object")); - ZEPHIR_INIT_VAR(&_2); - zephir_get_class(&_2, model, 0); - zephir_array_update_string(&_1, SL("model"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_3, model, "getsource", NULL, 0); - zephir_check_call_status(); - zephir_array_update_string(&_1, SL("column"), &_3, PH_COPY | PH_SEPARATE); - zephir_array_fast_append(&_0, &_1); - zephir_array_update_string(&selectIr, SL("columns"), &_0, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_VAR(&_4); - zephir_array_fetch_string(&_4, &intermediate, SL("models"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3124); - zephir_array_update_string(&selectIr, SL("models"), &_4, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_4); - zephir_array_fetch_string(&_4, &intermediate, SL("tables"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3126); - zephir_array_update_string(&selectIr, SL("tables"), &_4, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_VAR(&whereConditions); - if (zephir_array_isset_string_fetch(&whereConditions, &intermediate, SL("where"), 0)) { - zephir_array_update_string(&selectIr, SL("where"), &whereConditions, PH_COPY | PH_SEPARATE); - } - ZEPHIR_OBS_VAR(&limitConditions); - if (zephir_array_isset_string_fetch(&limitConditions, &intermediate, SL("limit"), 0)) { - zephir_array_update_string(&selectIr, SL("limit"), &limitConditions, PH_COPY | PH_SEPARATE); - } - ZEPHIR_INIT_VAR(&query); - object_init_ex(&query, phalcon_mvc_model_query_ce); - ZEPHIR_CALL_METHOD(NULL, &query, "__construct", NULL, 477); - zephir_check_call_status(); - zephir_read_property(&_5, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &query, "setdi", NULL, 478, &_5); - zephir_check_call_status(); - ZVAL_LONG(&_6, 309); - ZEPHIR_CALL_METHOD(NULL, &query, "settype", NULL, 479, &_6); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &query, "setintermediate", NULL, 480, &selectIr); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&query, "execute", NULL, 481, &bindParams, &bindTypes); - zephir_check_call_status(); - RETURN_MM(); + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_StringLength_Max) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator\\StringLength, Max, phalcon, validation_validator_stringlength_max, phalcon_validation_abstractvalidator_ce, phalcon_validation_validator_stringlength_max_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_stringlength_max_ce, SL("template"), "Field :field must not exceed :max characters long", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getSelectColumn) +static PHP_METHOD(Phalcon_Validation_Validator_StringLength_Max, __construct) { - zend_string *_4$$4; - zend_ulong _3$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_6 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *column_param = NULL, columnType, sqlAliases, modelName, source, columnDomain, sqlColumnAlias, preparedAlias, sqlExprColumn, sqlAliasesModels, columnData, balias, eager, _19, _20, _0$$4, *_1$$4, _2$$4, _5$$5, _7$$6, _8$$7, _9$$7, _10$$8, _11$$10, _15$$10, _12$$11, _13$$11, _14$$11, _16$$15, _17$$16, _18$$18; - zval column, sqlColumns, sqlColumn; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&column); - ZVAL_UNDEF(&sqlColumns); - ZVAL_UNDEF(&sqlColumn); - ZVAL_UNDEF(&columnType); - ZVAL_UNDEF(&sqlAliases); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&columnDomain); - ZVAL_UNDEF(&sqlColumnAlias); - ZVAL_UNDEF(&preparedAlias); - ZVAL_UNDEF(&sqlExprColumn); - ZVAL_UNDEF(&sqlAliasesModels); - ZVAL_UNDEF(&columnData); - ZVAL_UNDEF(&balias); - ZVAL_UNDEF(&eager); - ZVAL_UNDEF(&_19); - ZVAL_UNDEF(&_20); - ZVAL_UNDEF(&_0$$4); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_8$$7); - ZVAL_UNDEF(&_9$$7); - ZVAL_UNDEF(&_10$$8); - ZVAL_UNDEF(&_11$$10); - ZVAL_UNDEF(&_15$$10); - ZVAL_UNDEF(&_12$$11); - ZVAL_UNDEF(&_13$$11); - ZVAL_UNDEF(&_14$$11); - ZVAL_UNDEF(&_16$$15); - ZVAL_UNDEF(&_17$$16); - ZVAL_UNDEF(&_18$$18); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(column) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &column_param); - ZEPHIR_OBS_COPY_OR_DUP(&column, column_param); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } - ZEPHIR_OBS_VAR(&columnType); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&columnType, &column, SL("type"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted SELECT AST", "phalcon/Mvc/Model/Query.zep", 3166); - return; - } - ZEPHIR_INIT_VAR(&sqlColumns); - array_init(&sqlColumns); - ZEPHIR_OBS_VAR(&eager); - zephir_array_isset_string_fetch(&eager, &column, SL("eager"), 0); - if (ZEPHIR_IS_LONG(&columnType, 352)) { - zephir_read_property(&_0$$4, this_ptr, ZEND_STRL("models"), PH_NOISY_CC | PH_READONLY); - zephir_is_iterable(&_0$$4, 0, "phalcon/Mvc/Model/Query.zep", 3196); - if (Z_TYPE_P(&_0$$4) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_0$$4), _3$$4, _4$$4, _1$$4) - { - ZEPHIR_INIT_NVAR(&modelName); - if (_4$$4 != NULL) { - ZVAL_STR_COPY(&modelName, _4$$4); - } else { - ZVAL_LONG(&modelName, _3$$4); - } - ZEPHIR_INIT_NVAR(&source); - ZVAL_COPY(&source, _1$$4); - ZEPHIR_INIT_NVAR(&sqlColumn); - zephir_create_array(&sqlColumn, 4, 0); - add_assoc_stringl_ex(&sqlColumn, SL("type"), SL("object")); - zephir_array_update_string(&sqlColumn, SL("model"), &modelName, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&sqlColumn, SL("column"), &source, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_FUNCTION(&_5$$5, "lcfirst", &_6, 96, &modelName); - zephir_check_call_status(); - zephir_array_update_string(&sqlColumn, SL("balias"), &_5$$5, PH_COPY | PH_SEPARATE); - if (Z_TYPE_P(&eager) != IS_NULL) { - zephir_array_update_string(&sqlColumn, SL("eager"), &eager, PH_COPY | PH_SEPARATE); - zephir_array_fetch_string(&_7$$6, &column, SL("eagerType"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 3190); - zephir_array_update_string(&sqlColumn, SL("eagerType"), &_7$$6, PH_COPY | PH_SEPARATE); - } - zephir_array_append(&sqlColumns, &sqlColumn, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3193); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_0$$4, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2$$4, &_0$$4, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2$$4)) { - break; - } - ZEPHIR_CALL_METHOD(&modelName, &_0$$4, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&source, &_0$$4, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_8$$7); - zephir_create_array(&_8$$7, 4, 0); - add_assoc_stringl_ex(&_8$$7, SL("type"), SL("object")); - zephir_array_update_string(&_8$$7, SL("model"), &modelName, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_8$$7, SL("column"), &source, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_FUNCTION(&_9$$7, "lcfirst", &_6, 96, &modelName); - zephir_check_call_status(); - zephir_array_update_string(&_8$$7, SL("balias"), &_9$$7, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&sqlColumn, &_8$$7); - if (Z_TYPE_P(&eager) != IS_NULL) { - zephir_array_update_string(&sqlColumn, SL("eager"), &eager, PH_COPY | PH_SEPARATE); - zephir_array_fetch_string(&_10$$8, &column, SL("eagerType"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 3190); - zephir_array_update_string(&sqlColumn, SL("eagerType"), &_10$$8, PH_COPY | PH_SEPARATE); - } - zephir_array_append(&sqlColumns, &sqlColumn, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3193); - ZEPHIR_CALL_METHOD(NULL, &_0$$4, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&source); - ZEPHIR_INIT_NVAR(&modelName); - RETURN_CTOR(&sqlColumns); - } - if (UNEXPECTED(!(zephir_array_isset_string(&column, SL("column"))))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted SELECT AST", "phalcon/Mvc/Model/Query.zep", 3200); - return; - } - if (ZEPHIR_IS_LONG(&columnType, 353)) { - zephir_read_property(&_11$$10, this_ptr, ZEND_STRL("sqlAliases"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&sqlAliases, &_11$$10); - ZEPHIR_OBS_VAR(&columnDomain); - zephir_array_fetch_string(&columnDomain, &column, SL("column"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3212); - ZEPHIR_OBS_NVAR(&source); - if (UNEXPECTED(!(zephir_array_isset_fetch(&source, &sqlAliases, &columnDomain, 0)))) { - ZEPHIR_INIT_VAR(&_12$$11); - object_init_ex(&_12$$11, phalcon_mvc_model_exception_ce); - zephir_read_property(&_13$$11, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_14$$11); - ZEPHIR_CONCAT_SVSV(&_14$$11, "Unknown model or alias '", &columnDomain, "' (2), when preparing: ", &_13$$11); - ZEPHIR_CALL_METHOD(NULL, &_12$$11, "__construct", NULL, 8, &_14$$11); - zephir_check_call_status(); - zephir_throw_exception_debug(&_12$$11, "phalcon/Mvc/Model/Query.zep", 3217); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CPY_WRT(&sqlColumnAlias, &source); - ZEPHIR_OBS_VAR(&preparedAlias); - zephir_array_isset_string_fetch(&preparedAlias, &column, SL("balias"), 0); - zephir_read_property(&_11$$10, this_ptr, ZEND_STRL("sqlAliasesModels"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&sqlAliasesModels, &_11$$10); - ZEPHIR_OBS_NVAR(&modelName); - zephir_array_fetch(&modelName, &sqlAliasesModels, &columnDomain, PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3231); - if (Z_TYPE_P(&preparedAlias) != IS_STRING) { - if (ZEPHIR_IS_EQUAL(&columnDomain, &modelName)) { - ZEPHIR_CALL_FUNCTION(&preparedAlias, "lcfirst", &_6, 96, &modelName); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(&preparedAlias, &columnDomain); - } - } - ZEPHIR_INIT_VAR(&_15$$10); - zephir_create_array(&_15$$10, 4, 0); - add_assoc_stringl_ex(&_15$$10, SL("type"), SL("object")); - zephir_array_update_string(&_15$$10, SL("model"), &modelName, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_15$$10, SL("column"), &sqlColumnAlias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_15$$10, SL("balias"), &preparedAlias, PH_COPY | PH_SEPARATE); - ZEPHIR_CPY_WRT(&sqlColumn, &_15$$10); - if (Z_TYPE_P(&eager) != IS_NULL) { - zephir_array_update_string(&sqlColumn, SL("eager"), &eager, PH_COPY | PH_SEPARATE); - zephir_array_fetch_string(&_16$$15, &column, SL("eagerType"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 3258); - zephir_array_update_string(&sqlColumn, SL("eagerType"), &_16$$15, PH_COPY | PH_SEPARATE); - } - zephir_array_append(&sqlColumns, &sqlColumn, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3261); - RETURN_CTOR(&sqlColumns); - } - if (ZEPHIR_IS_LONG(&columnType, 354)) { - ZEPHIR_INIT_VAR(&_17$$16); - zephir_create_array(&_17$$16, 1, 0); - add_assoc_stringl_ex(&_17$$16, SL("type"), SL("scalar")); - ZEPHIR_CPY_WRT(&sqlColumn, &_17$$16); - ZEPHIR_OBS_VAR(&columnData); - zephir_array_fetch_string(&columnData, &column, SL("column"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3275); - ZEPHIR_CALL_METHOD(&sqlExprColumn, this_ptr, "getexpression", NULL, 468, &columnData); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&balias); - if (zephir_array_isset_string_fetch(&balias, &sqlExprColumn, SL("balias"), 0)) { - zephir_array_update_string(&sqlColumn, SL("balias"), &balias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&sqlColumn, SL("sqlAlias"), &balias, PH_COPY | PH_SEPARATE); - } - if (Z_TYPE_P(&eager) != IS_NULL) { - zephir_array_update_string(&sqlColumn, SL("eager"), &eager, PH_COPY | PH_SEPARATE); - zephir_array_fetch_string(&_18$$18, &column, SL("eagerType"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 3288); - zephir_array_update_string(&sqlColumn, SL("eagerType"), &_18$$18, PH_COPY | PH_SEPARATE); - } - zephir_array_update_string(&sqlColumn, SL("column"), &sqlExprColumn, PH_COPY | PH_SEPARATE); - zephir_array_append(&sqlColumns, &sqlColumn, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3292); - RETURN_CTOR(&sqlColumns); - } - ZEPHIR_INIT_VAR(&_19); - object_init_ex(&_19, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_20); - ZEPHIR_CONCAT_SV(&_20, "Unknown type of column ", &columnType); - ZEPHIR_CALL_METHOD(NULL, &_19, "__construct", NULL, 8, &_20); + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_stringlength_max_ce, getThis(), "__construct", &_0, 0, &options); zephir_check_call_status(); - zephir_throw_exception_debug(&_19, "phalcon/Mvc/Model/Query.zep", 3297); ZEPHIR_MM_RESTORE(); - return; } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getSingleJoin) +static PHP_METHOD(Phalcon_Validation_Validator_StringLength_Max, validate) { - zend_string *_8$$4; - zend_ulong _7$$4; - zval _1$$3, _3$$3, _4$$3, _13$$5, _15$$5, _16$$5, _20$$7, _22$$7, _23$$7; + double _3$$6, _4$$7; + zend_bool result = 0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_12 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *joinType_param = NULL, *joinSource, joinSource_sub, *modelAlias_param = NULL, *joinAlias_param = NULL, *relation, relation_sub, fields, referencedFields, sqlJoinConditions, sqlJoinPartialConditions, position, field, referencedField, _0$$3, _2$$3, *_5$$4, _6$$4, _9$$6, _10$$6, _11$$6, _14$$5, _17$$8, _18$$8, _19$$8, _21$$7; - zval joinType, modelAlias, joinAlias; + zval *validation, validation_sub, *field, field_sub, value, length, maximum, replacePairs, included, _0, _1$$5, _2$$6, _5$$10; zval *this_ptr = getThis(); - ZVAL_UNDEF(&joinType); - ZVAL_UNDEF(&modelAlias); - ZVAL_UNDEF(&joinAlias); - ZVAL_UNDEF(&joinSource_sub); - ZVAL_UNDEF(&relation_sub); - ZVAL_UNDEF(&fields); - ZVAL_UNDEF(&referencedFields); - ZVAL_UNDEF(&sqlJoinConditions); - ZVAL_UNDEF(&sqlJoinPartialConditions); - ZVAL_UNDEF(&position); - ZVAL_UNDEF(&field); - ZVAL_UNDEF(&referencedField); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_9$$6); - ZVAL_UNDEF(&_10$$6); - ZVAL_UNDEF(&_11$$6); - ZVAL_UNDEF(&_14$$5); - ZVAL_UNDEF(&_17$$8); - ZVAL_UNDEF(&_18$$8); - ZVAL_UNDEF(&_19$$8); - ZVAL_UNDEF(&_21$$7); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_13$$5); - ZVAL_UNDEF(&_15$$5); - ZVAL_UNDEF(&_16$$5); - ZVAL_UNDEF(&_20$$7); - ZVAL_UNDEF(&_22$$7); - ZVAL_UNDEF(&_23$$7); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&length); + ZVAL_UNDEF(&maximum); + ZVAL_UNDEF(&replacePairs); + ZVAL_UNDEF(&included); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$5); + ZVAL_UNDEF(&_2$$6); + ZVAL_UNDEF(&_5$$10); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(5, 5) - Z_PARAM_STR(joinType) - Z_PARAM_ZVAL(joinSource) - Z_PARAM_STR(modelAlias) - Z_PARAM_STR(joinAlias) - Z_PARAM_OBJECT_OF_CLASS(relation, phalcon_mvc_model_relationinterface_ce) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 5, 0, &joinType_param, &joinSource, &modelAlias_param, &joinAlias_param, &relation); - if (UNEXPECTED(Z_TYPE_P(joinType_param) != IS_STRING && Z_TYPE_P(joinType_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'joinType' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(joinType_param) == IS_STRING)) { - zephir_get_strval(&joinType, joinType_param); - } else { - ZEPHIR_INIT_VAR(&joinType); - } - zephir_get_strval(&modelAlias, modelAlias_param); - zephir_get_strval(&joinAlias, joinAlias_param); + zephir_fetch_params(1, 2, 0, &validation, &field); - ZEPHIR_INIT_VAR(&sqlJoinConditions); - ZVAL_NULL(&sqlJoinConditions); - ZEPHIR_CALL_METHOD(&fields, relation, "getfields", NULL, 0); + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&referencedFields, relation, "getreferencedfields", NULL, 0); + if ((zephir_function_exists_ex(ZEND_STRL("mb_strlen")) == SUCCESS)) { + ZEPHIR_CALL_FUNCTION(&length, "mb_strlen", NULL, 281, &value); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&length); + ZVAL_LONG(&length, zephir_fast_strlen_ev(&value)); + } + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "max"); + ZEPHIR_CALL_METHOD(&maximum, this_ptr, "getoption", NULL, 0, &_0); zephir_check_call_status(); - if (Z_TYPE_P(&fields) != IS_ARRAY) { - ZEPHIR_INIT_VAR(&_0$$3); - zephir_create_array(&_0$$3, 1, 0); - ZEPHIR_INIT_VAR(&_1$$3); - zephir_create_array(&_1$$3, 4, 0); - add_assoc_stringl_ex(&_1$$3, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_1$$3, SL("op"), SL("=")); - ZEPHIR_INIT_VAR(&_3$$3); - zephir_create_array(&_3$$3, 3, 0); - add_assoc_long_ex(&_3$$3, SL("type"), 355); - zephir_array_update_string(&_3$$3, SL("domain"), &modelAlias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_3$$3, SL("name"), &fields, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_2$$3, this_ptr, "getqualified", NULL, 469, &_3$$3); + if (Z_TYPE_P(&maximum) == IS_ARRAY) { + zephir_array_fetch(&_1$$5, &maximum, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/StringLength/Max.zep", 103); + ZEPHIR_CPY_WRT(&maximum, &_1$$5); + } + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "included"); + ZEPHIR_CALL_METHOD(&included, this_ptr, "getoption", NULL, 0, &_0); + zephir_check_call_status(); + if (Z_TYPE_P(&included) == IS_ARRAY) { + ZEPHIR_OBS_VAR(&_2$$6); + zephir_array_fetch(&_2$$6, &included, field, PH_NOISY, "phalcon/Validation/Validator/StringLength/Max.zep", 109); + _3$$6 = zephir_get_boolval(&_2$$6); + ZEPHIR_INIT_NVAR(&included); + ZVAL_BOOL(&included, _3$$6); + } else { + _4$$7 = zephir_get_boolval(&included); + ZEPHIR_INIT_NVAR(&included); + ZVAL_BOOL(&included, _4$$7); + } + if (zephir_is_true(&included)) { + result = ZEPHIR_GE(&length, &maximum); + } else { + result = ZEPHIR_GT(&length, &maximum); + } + if (result) { + ZEPHIR_INIT_VAR(&replacePairs); + zephir_create_array(&replacePairs, 1, 0); + zephir_array_update_string(&replacePairs, SL(":max"), &maximum, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_5$$10, this_ptr, "messagefactory", NULL, 0, validation, field, &replacePairs); zephir_check_call_status(); - zephir_array_update_string(&_1$$3, SL("left"), &_2$$3, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_VAR(&_4$$3); - zephir_create_array(&_4$$3, 3, 0); - add_assoc_stringl_ex(&_4$$3, SL("type"), SL("qualified")); - zephir_array_update_string(&_4$$3, SL("domain"), &joinAlias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_4$$3, SL("name"), &referencedFields, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_2$$3, this_ptr, "getqualified", NULL, 469, &_4$$3); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_5$$10); zephir_check_call_status(); - zephir_array_update_string(&_1$$3, SL("right"), &_2$$3, PH_COPY | PH_SEPARATE); - zephir_array_fast_append(&_0$$3, &_1$$3); - ZEPHIR_CPY_WRT(&sqlJoinConditions, &_0$$3); - } else { - ZEPHIR_INIT_VAR(&sqlJoinPartialConditions); - array_init(&sqlJoinPartialConditions); - zephir_is_iterable(&fields, 0, "phalcon/Mvc/Model/Query.zep", 3387); - if (Z_TYPE_P(&fields) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&fields), _7$$4, _8$$4, _5$$4) - { - ZEPHIR_INIT_NVAR(&position); - if (_8$$4 != NULL) { - ZVAL_STR_COPY(&position, _8$$4); - } else { - ZVAL_LONG(&position, _7$$4); - } - ZEPHIR_INIT_NVAR(&field); - ZVAL_COPY(&field, _5$$4); - ZEPHIR_OBS_NVAR(&referencedField); - if (UNEXPECTED(!(zephir_array_isset_fetch(&referencedField, &referencedFields, &position, 0)))) { - ZEPHIR_INIT_NVAR(&_9$$6); - object_init_ex(&_9$$6, phalcon_mvc_model_exception_ce); - zephir_read_property(&_10$$6, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_11$$6); - ZEPHIR_CONCAT_SVSVSV(&_11$$6, "The number of fields must be equal to the number of referenced fields in join ", &modelAlias, "-", &joinAlias, ", when preparing: ", &_10$$6); - ZEPHIR_CALL_METHOD(NULL, &_9$$6, "__construct", &_12, 8, &_11$$6); - zephir_check_call_status(); - zephir_throw_exception_debug(&_9$$6, "phalcon/Mvc/Model/Query.zep", 3359); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_NVAR(&_13$$5); - zephir_create_array(&_13$$5, 4, 0); - add_assoc_stringl_ex(&_13$$5, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_13$$5, SL("op"), SL("=")); - ZEPHIR_INIT_NVAR(&_15$$5); - zephir_create_array(&_15$$5, 3, 0); - add_assoc_long_ex(&_15$$5, SL("type"), 355); - zephir_array_update_string(&_15$$5, SL("domain"), &modelAlias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_15$$5, SL("name"), &field, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_14$$5, this_ptr, "getqualified", NULL, 469, &_15$$5); - zephir_check_call_status(); - zephir_array_update_string(&_13$$5, SL("left"), &_14$$5, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_16$$5); - zephir_create_array(&_16$$5, 3, 0); - add_assoc_stringl_ex(&_16$$5, SL("type"), SL("qualified")); - zephir_array_update_string(&_16$$5, SL("domain"), &joinAlias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_16$$5, SL("name"), &referencedField, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_14$$5, this_ptr, "getqualified", NULL, 469, &_16$$5); - zephir_check_call_status(); - zephir_array_update_string(&_13$$5, SL("right"), &_14$$5, PH_COPY | PH_SEPARATE); - zephir_array_append(&sqlJoinPartialConditions, &_13$$5, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3384); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &fields, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_6$$4, &fields, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_6$$4)) { - break; - } - ZEPHIR_CALL_METHOD(&position, &fields, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&field, &fields, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&referencedField); - if (UNEXPECTED(!(zephir_array_isset_fetch(&referencedField, &referencedFields, &position, 0)))) { - ZEPHIR_INIT_NVAR(&_17$$8); - object_init_ex(&_17$$8, phalcon_mvc_model_exception_ce); - zephir_read_property(&_18$$8, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_19$$8); - ZEPHIR_CONCAT_SVSVSV(&_19$$8, "The number of fields must be equal to the number of referenced fields in join ", &modelAlias, "-", &joinAlias, ", when preparing: ", &_18$$8); - ZEPHIR_CALL_METHOD(NULL, &_17$$8, "__construct", &_12, 8, &_19$$8); - zephir_check_call_status(); - zephir_throw_exception_debug(&_17$$8, "phalcon/Mvc/Model/Query.zep", 3359); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_NVAR(&_20$$7); - zephir_create_array(&_20$$7, 4, 0); - add_assoc_stringl_ex(&_20$$7, SL("type"), SL("binary-op")); - add_assoc_stringl_ex(&_20$$7, SL("op"), SL("=")); - ZEPHIR_INIT_NVAR(&_22$$7); - zephir_create_array(&_22$$7, 3, 0); - add_assoc_long_ex(&_22$$7, SL("type"), 355); - zephir_array_update_string(&_22$$7, SL("domain"), &modelAlias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_22$$7, SL("name"), &field, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_21$$7, this_ptr, "getqualified", NULL, 469, &_22$$7); - zephir_check_call_status(); - zephir_array_update_string(&_20$$7, SL("left"), &_21$$7, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_23$$7); - zephir_create_array(&_23$$7, 3, 0); - add_assoc_stringl_ex(&_23$$7, SL("type"), SL("qualified")); - zephir_array_update_string(&_23$$7, SL("domain"), &joinAlias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_23$$7, SL("name"), &referencedField, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_21$$7, this_ptr, "getqualified", NULL, 469, &_23$$7); - zephir_check_call_status(); - zephir_array_update_string(&_20$$7, SL("right"), &_21$$7, PH_COPY | PH_SEPARATE); - zephir_array_append(&sqlJoinPartialConditions, &_20$$7, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3384); - ZEPHIR_CALL_METHOD(NULL, &fields, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&field); - ZEPHIR_INIT_NVAR(&position); + RETURN_MM_BOOL(0); } - zephir_create_array(return_value, 3, 0); - zephir_array_update_string(return_value, SL("type"), &joinType, PH_COPY | PH_SEPARATE); - zephir_array_update_string(return_value, SL("source"), joinSource, PH_COPY | PH_SEPARATE); - zephir_array_update_string(return_value, SL("conditions"), &sqlJoinConditions, PH_COPY | PH_SEPARATE); - RETURN_MM(); + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getTable) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Validation_Validator_StringLength_Min) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Validation\\Validator\\StringLength, Min, phalcon, validation_validator_stringlength_min, phalcon_validation_abstractvalidator_ce, phalcon_validation_validator_stringlength_min_method_entry, 0); + + zend_declare_property_string(phalcon_validation_validator_stringlength_min_ce, SL("template"), "Field :field must be at least :min characters long", ZEND_ACC_PROTECTED); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Validation_Validator_StringLength_Min, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval qualifiedName; - zval *manager, manager_sub, *qualifiedName_param = NULL, modelName, model, source, schema; + zephir_fcall_cache_entry *_0 = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&manager_sub); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&qualifiedName); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(manager, phalcon_mvc_model_managerinterface_ce) - Z_PARAM_ARRAY(qualifiedName) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &manager, &qualifiedName_param); - zephir_get_arrval(&qualifiedName, qualifiedName_param); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } - ZEPHIR_OBS_VAR(&modelName); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&modelName, &qualifiedName, SL("name"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted SELECT AST", "phalcon/Mvc/Model/Query.zep", 3409); - return; - } - ZEPHIR_CALL_METHOD(&model, manager, "load", NULL, 0, &modelName); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&source, &model, "getsource", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&schema, &model, "getschema", NULL, 0); + ZEPHIR_CALL_PARENT(NULL, phalcon_validation_validator_stringlength_min_ce, getThis(), "__construct", &_0, 0, &options); zephir_check_call_status(); - if (zephir_is_true(&schema)) { - zephir_create_array(return_value, 2, 0); - zephir_array_fast_append(return_value, &schema); - zephir_array_fast_append(return_value, &source); - RETURN_MM(); - } - RETURN_CCTOR(&source); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, getWriteConnection) +static PHP_METHOD(Phalcon_Validation_Validator_StringLength_Min, validate) { - zend_bool _1; + double _3$$6, _4$$7; + zend_bool result = 0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval intermediate, bindParams, bindTypes; - zval *model, model_sub, *intermediate_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, connection, transaction, _0; + zval *validation, validation_sub, *field, field_sub, value, length, minimum, replacePairs, included, _0, _1$$5, _2$$6, _5$$10; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&connection); - ZVAL_UNDEF(&transaction); + ZVAL_UNDEF(&validation_sub); + ZVAL_UNDEF(&field_sub); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&length); + ZVAL_UNDEF(&minimum); + ZVAL_UNDEF(&replacePairs); + ZVAL_UNDEF(&included); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&intermediate); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&_1$$5); + ZVAL_UNDEF(&_2$$6); + ZVAL_UNDEF(&_5$$10); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 4) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY_OR_NULL(intermediate) - Z_PARAM_ARRAY(bindParams) - Z_PARAM_ARRAY(bindTypes) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(validation, phalcon_validation_ce) + Z_PARAM_ZVAL(field) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 3, &model, &intermediate_param, &bindParams_param, &bindTypes_param); - if (!intermediate_param) { - ZEPHIR_INIT_VAR(&intermediate); - } else { - zephir_get_arrval(&intermediate, intermediate_param); - } - if (!bindParams_param) { - ZEPHIR_INIT_VAR(&bindParams); - array_init(&bindParams); - } else { - zephir_get_arrval(&bindParams, bindParams_param); - } - if (!bindTypes_param) { - ZEPHIR_INIT_VAR(&bindTypes); - array_init(&bindTypes); - } else { - zephir_get_arrval(&bindTypes, bindTypes_param); - } + zephir_fetch_params(1, 2, 0, &validation, &field); - ZEPHIR_INIT_VAR(&connection); - ZVAL_NULL(&connection); - zephir_read_property(&_0, this_ptr, ZEND_STRL("transaction"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&transaction, &_0); - _1 = Z_TYPE_P(&transaction) == IS_OBJECT; - if (_1) { - _1 = zephir_instance_of_ev(&transaction, phalcon_mvc_model_transactioninterface_ce); - } - if (_1) { - ZEPHIR_RETURN_CALL_METHOD(&transaction, "getconnection", NULL, 0); + ZEPHIR_CALL_METHOD(&value, validation, "getvalue", NULL, 0, field); + zephir_check_call_status(); + if ((zephir_function_exists_ex(ZEND_STRL("mb_strlen")) == SUCCESS)) { + ZEPHIR_CALL_FUNCTION(&length, "mb_strlen", NULL, 281, &value); zephir_check_call_status(); - RETURN_MM(); + } else { + ZEPHIR_INIT_NVAR(&length); + ZVAL_LONG(&length, zephir_fast_strlen_ev(&value)); } - if ((zephir_method_exists_ex(model, ZEND_STRL("selectwriteconnection")) == SUCCESS)) { - ZEPHIR_CALL_METHOD(&connection, model, "selectwriteconnection", NULL, 0, &intermediate, &bindParams, &bindTypes); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&connection) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "selectWriteConnection did not return a connection", "phalcon/Mvc/Model/Query.zep", 3447); - return; - } - RETURN_CCTOR(&connection); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "min"); + ZEPHIR_CALL_METHOD(&minimum, this_ptr, "getoption", NULL, 0, &_0); + zephir_check_call_status(); + if (Z_TYPE_P(&minimum) == IS_ARRAY) { + zephir_array_fetch(&_1$$5, &minimum, field, PH_NOISY | PH_READONLY, "phalcon/Validation/Validator/StringLength/Min.zep", 103); + ZEPHIR_CPY_WRT(&minimum, &_1$$5); } - ZEPHIR_RETURN_CALL_METHOD(model, "getwriteconnection", NULL, 0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "included"); + ZEPHIR_CALL_METHOD(&included, this_ptr, "getoption", NULL, 0, &_0); zephir_check_call_status(); - RETURN_MM(); + if (Z_TYPE_P(&included) == IS_ARRAY) { + ZEPHIR_OBS_VAR(&_2$$6); + zephir_array_fetch(&_2$$6, &included, field, PH_NOISY, "phalcon/Validation/Validator/StringLength/Min.zep", 109); + _3$$6 = zephir_get_boolval(&_2$$6); + ZEPHIR_INIT_NVAR(&included); + ZVAL_BOOL(&included, _3$$6); + } else { + _4$$7 = zephir_get_boolval(&included); + ZEPHIR_INIT_NVAR(&included); + ZVAL_BOOL(&included, _4$$7); + } + if (zephir_is_true(&included)) { + result = ZEPHIR_LE(&length, &minimum); + } else { + result = ZEPHIR_LT(&length, &minimum); + } + if (result) { + ZEPHIR_INIT_VAR(&replacePairs); + zephir_create_array(&replacePairs, 1, 0); + zephir_array_update_string(&replacePairs, SL(":min"), &minimum, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_5$$10, this_ptr, "messagefactory", NULL, 0, validation, field, &replacePairs); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, validation, "appendmessage", NULL, 0, &_5$$10); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, _prepareDelete) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Cookie) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http, Cookie, phalcon, http_cookie, phalcon_di_abstractinjectionaware_ce, phalcon_http_cookie_method_entry, 0); + + zend_declare_property_null(phalcon_http_cookie_ce, SL("domain"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_cookie_ce, SL("expire"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_cookie_ce, SL("filter"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_cookie_ce, SL("httpOnly"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_cookie_ce, SL("name"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_cookie_ce, SL("options"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_cookie_ce, SL("path"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_http_cookie_ce, SL("read"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_http_cookie_ce, SL("restored"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_http_cookie_ce, SL("secure"), 1, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_cookie_ce, SL("signKey"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_http_cookie_ce, SL("useEncryption"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_cookie_ce, SL("value"), ZEND_ACC_PROTECTED); + phalcon_http_cookie_ce->create_object = zephir_init_properties_Phalcon_Http_Cookie; + + zend_class_implements(phalcon_http_cookie_ce, 1, phalcon_http_cookie_cookieinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Http_Cookie, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval __$null, ast, delete, tables, models, modelsInstances, sqlTables, sqlModels, sqlAliases, sqlAliasesModelsInstances, deleteTables, manager, table, qualifiedName, modelName, model, source, schema, completeSource, alias, sqlDelete, where, limit, _0, *_1, _2, _4$$8, _5$$9, _7$$13, _8$$14, _9$$17, _10$$17, _11$$18; - zephir_fcall_cache_entry *_3 = NULL, *_6 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval options; + zend_bool secure, httpOnly; + zend_long expire, ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, *value = NULL, value_sub, *expire_param = NULL, *path_param = NULL, *secure_param = NULL, *domain_param = NULL, *httpOnly_param = NULL, *options_param = NULL, __$true, __$false, __$null, _0; + zval name, path, domain; zval *this_ptr = getThis(); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&domain); + ZVAL_UNDEF(&value_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&ast); - ZVAL_UNDEF(&delete); - ZVAL_UNDEF(&tables); - ZVAL_UNDEF(&models); - ZVAL_UNDEF(&modelsInstances); - ZVAL_UNDEF(&sqlTables); - ZVAL_UNDEF(&sqlModels); - ZVAL_UNDEF(&sqlAliases); - ZVAL_UNDEF(&sqlAliasesModelsInstances); - ZVAL_UNDEF(&deleteTables); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&qualifiedName); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&completeSource); - ZVAL_UNDEF(&alias); - ZVAL_UNDEF(&sqlDelete); - ZVAL_UNDEF(&where); - ZVAL_UNDEF(&limit); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4$$8); - ZVAL_UNDEF(&_5$$9); - ZVAL_UNDEF(&_7$$13); - ZVAL_UNDEF(&_8$$14); - ZVAL_UNDEF(&_9$$17); - ZVAL_UNDEF(&_10$$17); - ZVAL_UNDEF(&_11$$18); + ZVAL_UNDEF(&options); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 8) + Z_PARAM_STR(name) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(value) + Z_PARAM_LONG(expire) + Z_PARAM_STR(path) + Z_PARAM_BOOL_OR_NULL(secure, is_null_true) + Z_PARAM_STR_OR_NULL(domain) + Z_PARAM_BOOL_OR_NULL(httpOnly, is_null_true) + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("ast"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&ast, &_0); - ZEPHIR_OBS_VAR(&delete); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&delete, &ast, SL("delete"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted DELETE AST", "phalcon/Mvc/Model/Query.zep", 3469); - return; + zephir_fetch_params(1, 1, 7, &name_param, &value, &expire_param, &path_param, &secure_param, &domain_param, &httpOnly_param, &options_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); } - ZEPHIR_OBS_VAR(&tables); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&tables, &delete, SL("tables"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted DELETE AST", "phalcon/Mvc/Model/Query.zep", 3473); - return; + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); } - ZEPHIR_INIT_VAR(&models); - array_init(&models); - ZEPHIR_INIT_VAR(&modelsInstances); - array_init(&modelsInstances); - ZEPHIR_INIT_VAR(&sqlTables); - array_init(&sqlTables); - ZEPHIR_INIT_VAR(&sqlModels); - array_init(&sqlModels); - ZEPHIR_INIT_VAR(&sqlAliases); - array_init(&sqlAliases); - ZEPHIR_INIT_VAR(&sqlAliasesModelsInstances); - array_init(&sqlAliasesModelsInstances); - if (!(zephir_array_isset_long(&tables, 0))) { - ZEPHIR_INIT_VAR(&deleteTables); - zephir_create_array(&deleteTables, 1, 0); - zephir_array_fast_append(&deleteTables, &tables); + if (!value) { + value = &value_sub; + value = &__$null; + } + if (!expire_param) { + expire = 0; } else { - ZEPHIR_CPY_WRT(&deleteTables, &tables); + expire = zephir_get_intval(expire_param); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&manager, &_0); - zephir_is_iterable(&deleteTables, 0, "phalcon/Mvc/Model/Query.zep", 3533); - if (Z_TYPE_P(&deleteTables) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&deleteTables), _1) - { - ZEPHIR_INIT_NVAR(&table); - ZVAL_COPY(&table, _1); - ZEPHIR_OBS_NVAR(&qualifiedName); - zephir_array_fetch_string(&qualifiedName, &table, SL("qualifiedName"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3497); - ZEPHIR_OBS_NVAR(&modelName); - zephir_array_fetch_string(&modelName, &qualifiedName, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3498); - ZEPHIR_CALL_METHOD(&model, &manager, "load", &_3, 0, &modelName); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&source, &model, "getsource", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&schema, &model, "getschema", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&completeSource); - if (zephir_is_true(&schema)) { - ZEPHIR_INIT_NVAR(&_4$$8); - zephir_create_array(&_4$$8, 2, 0); - zephir_array_fast_append(&_4$$8, &source); - zephir_array_fast_append(&_4$$8, &schema); - ZEPHIR_CPY_WRT(&completeSource, &_4$$8); - } else { - ZEPHIR_INIT_NVAR(&_5$$9); - zephir_create_array(&_5$$9, 2, 0); - zephir_array_fast_append(&_5$$9, &source); - zephir_array_fast_append(&_5$$9, &__$null); - ZEPHIR_CPY_WRT(&completeSource, &_5$$9); - } - ZEPHIR_OBS_NVAR(&alias); - if (zephir_array_isset_string_fetch(&alias, &table, SL("alias"), 0)) { - zephir_array_update_zval(&sqlAliases, &alias, &alias, PH_COPY | PH_SEPARATE); - zephir_array_append(&completeSource, &alias, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3515); - zephir_array_append(&sqlTables, &completeSource, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3516); - zephir_array_update_zval(&sqlAliasesModelsInstances, &alias, &model, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&models, &alias, &modelName, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&sqlAliases, &modelName, &source, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliasesModelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); - zephir_array_append(&sqlTables, &source, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3522); - zephir_array_update_zval(&models, &modelName, &source, PH_COPY | PH_SEPARATE); - } - zephir_array_append(&sqlModels, &modelName, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3526); - zephir_array_update_zval(&modelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); + if (!path_param) { + ZEPHIR_INIT_VAR(&path); + ZVAL_STRING(&path, "/"); } else { - ZEPHIR_CALL_METHOD(NULL, &deleteTables, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &deleteTables, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&table, &deleteTables, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&qualifiedName); - zephir_array_fetch_string(&qualifiedName, &table, SL("qualifiedName"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3497); - ZEPHIR_OBS_NVAR(&modelName); - zephir_array_fetch_string(&modelName, &qualifiedName, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3498); - ZEPHIR_CALL_METHOD(&model, &manager, "load", &_6, 0, &modelName); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&source, &model, "getsource", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&schema, &model, "getschema", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&schema)) { - ZEPHIR_INIT_NVAR(&_7$$13); - zephir_create_array(&_7$$13, 2, 0); - zephir_array_fast_append(&_7$$13, &source); - zephir_array_fast_append(&_7$$13, &schema); - ZEPHIR_CPY_WRT(&completeSource, &_7$$13); - } else { - ZEPHIR_INIT_NVAR(&_8$$14); - zephir_create_array(&_8$$14, 2, 0); - zephir_array_fast_append(&_8$$14, &source); - zephir_array_fast_append(&_8$$14, &__$null); - ZEPHIR_CPY_WRT(&completeSource, &_8$$14); - } - ZEPHIR_OBS_NVAR(&alias); - if (zephir_array_isset_string_fetch(&alias, &table, SL("alias"), 0)) { - zephir_array_update_zval(&sqlAliases, &alias, &alias, PH_COPY | PH_SEPARATE); - zephir_array_append(&completeSource, &alias, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3515); - zephir_array_append(&sqlTables, &completeSource, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3516); - zephir_array_update_zval(&sqlAliasesModelsInstances, &alias, &model, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&models, &alias, &modelName, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&sqlAliases, &modelName, &source, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliasesModelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); - zephir_array_append(&sqlTables, &source, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3522); - zephir_array_update_zval(&models, &modelName, &source, PH_COPY | PH_SEPARATE); - } - zephir_array_append(&sqlModels, &modelName, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3526); - zephir_array_update_zval(&modelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &deleteTables, "next", NULL, 0); - zephir_check_call_status(); - } + zephir_get_strval(&path, path_param); } - ZEPHIR_INIT_NVAR(&table); - zephir_update_property_zval(this_ptr, ZEND_STRL("models"), &models); - zephir_update_property_zval(this_ptr, ZEND_STRL("modelsInstances"), &modelsInstances); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliases"), &sqlAliases); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), &sqlAliasesModelsInstances); - ZEPHIR_INIT_VAR(&sqlDelete); - array_init(&sqlDelete); - zephir_array_update_string(&sqlDelete, SL("tables"), &sqlTables, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&sqlDelete, SL("models"), &sqlModels, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_VAR(&where); - if (zephir_array_isset_string_fetch(&where, &ast, SL("where"), 0)) { - ZVAL_BOOL(&_10$$17, 1); - ZEPHIR_CALL_METHOD(&_9$$17, this_ptr, "getexpression", NULL, 468, &where, &_10$$17); - zephir_check_call_status(); - zephir_array_update_string(&sqlDelete, SL("where"), &_9$$17, PH_COPY | PH_SEPARATE); + if (!secure_param) { + secure = 0; + } else { + secure = zephir_get_boolval(secure_param); } - ZEPHIR_OBS_VAR(&limit); - if (zephir_array_isset_string_fetch(&limit, &ast, SL("limit"), 0)) { - ZEPHIR_CALL_METHOD(&_11$$18, this_ptr, "getlimitclause", NULL, 482, &limit); + if (!domain_param) { + ZEPHIR_INIT_VAR(&domain); + } else { + zephir_get_strval(&domain, domain_param); + } + if (!httpOnly_param) { + httpOnly = 0; + } else { + httpOnly = zephir_get_boolval(httpOnly_param); + } + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + zephir_get_arrval(&options, options_param); + } + + + zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, expire); + zephir_update_property_zval(this_ptr, ZEND_STRL("expire"), &_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("path"), &path); + if (secure) { + zephir_update_property_zval(this_ptr, ZEND_STRL("secure"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("secure"), &__$false); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("domain"), &domain); + if (httpOnly) { + zephir_update_property_zval(this_ptr, ZEND_STRL("httpOnly"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("httpOnly"), &__$false); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + if (Z_TYPE_P(value) != IS_NULL) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setvalue", NULL, 0, value); zephir_check_call_status(); - zephir_array_update_string(&sqlDelete, SL("limit"), &_11$$18, PH_COPY | PH_SEPARATE); } - RETURN_CCTOR(&sqlDelete); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, _prepareInsert) +static PHP_METHOD(Phalcon_Http_Cookie, __toString) { - zval _5$$7, _10$$8; - zend_bool notQuoting = 0; - zval ast, qualifiedName, manager, modelName, model, source, schema, exprValues, exprValue, sqlInsert, metaData, fields, sqlFields, field, name, _0, _2, *_3, _4, _1$$6, _6$$7, _7$$7, _8$$7, _11$$8, _12$$8, _13$$8, *_14$$9, _15$$9, _16$$10, _18$$11, _19$$11, _20$$11, _22$$12, _24$$13, _25$$13, _26$$13; + zval _1; + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_9 = NULL, *_17 = NULL, *_21 = NULL, *_23 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&ast); - ZVAL_UNDEF(&qualifiedName); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&exprValues); - ZVAL_UNDEF(&exprValue); - ZVAL_UNDEF(&sqlInsert); - ZVAL_UNDEF(&metaData); - ZVAL_UNDEF(&fields); - ZVAL_UNDEF(&sqlFields); - ZVAL_UNDEF(&field); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getvalue", NULL, 0); + zephir_check_call_status(); + zephir_cast_to_string(&_1, &_0); + RETURN_CTOR(&_1); +} + +static PHP_METHOD(Phalcon_Http_Cookie, delete) +{ + zend_bool _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_8 = NULL; + zval __$null, container, domain, httpOnly, name, options, path, secure, session, _0, _2, _3, _7, _9, _10, _11, _12, _13, _4$$3, _5$$3, _6$$4; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&domain); + ZVAL_UNDEF(&httpOnly); ZVAL_UNDEF(&name); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&secure); + ZVAL_UNDEF(&session); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_1$$6); - ZVAL_UNDEF(&_6$$7); - ZVAL_UNDEF(&_7$$7); - ZVAL_UNDEF(&_8$$7); - ZVAL_UNDEF(&_11$$8); - ZVAL_UNDEF(&_12$$8); - ZVAL_UNDEF(&_13$$8); - ZVAL_UNDEF(&_15$$9); - ZVAL_UNDEF(&_16$$10); - ZVAL_UNDEF(&_18$$11); - ZVAL_UNDEF(&_19$$11); - ZVAL_UNDEF(&_20$$11); - ZVAL_UNDEF(&_22$$12); - ZVAL_UNDEF(&_24$$13); - ZVAL_UNDEF(&_25$$13); - ZVAL_UNDEF(&_26$$13); - ZVAL_UNDEF(&_5$$7); - ZVAL_UNDEF(&_10$$8); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_13); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$4); ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("ast"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&ast, &_0); - if (UNEXPECTED(!(zephir_array_isset_string(&ast, SL("qualifiedName"))))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted INSERT AST", "phalcon/Mvc/Model/Query.zep", 3567); - return; - } - if (UNEXPECTED(!(zephir_array_isset_string(&ast, SL("values"))))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted INSERT AST", "phalcon/Mvc/Model/Query.zep", 3571); - return; + zephir_read_property(&_0, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&name, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("domain"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&domain, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("path"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&path, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("secure"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&secure, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("httpOnly"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&httpOnly, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + _1 = Z_TYPE_P(&container) == IS_OBJECT; + if (_1) { + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "session"); + ZEPHIR_CALL_METHOD(&_2, &container, "has", NULL, 0, &_3); + zephir_check_call_status(); + _1 = zephir_is_true(&_2); } - ZEPHIR_OBS_VAR(&qualifiedName); - zephir_array_fetch_string(&qualifiedName, &ast, SL("qualifiedName"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3574); - if (UNEXPECTED(!(zephir_array_isset_string(&qualifiedName, SL("name"))))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted INSERT AST", "phalcon/Mvc/Model/Query.zep", 3578); - return; + if (_1) { + ZEPHIR_INIT_VAR(&_5$$3); + ZVAL_STRING(&_5$$3, "session"); + ZEPHIR_CALL_METHOD(&_4$$3, &container, "getshared", NULL, 0, &_5$$3); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&session, &_4$$3); + ZEPHIR_CALL_METHOD(&_4$$3, &session, "exists", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_4$$3)) { + ZEPHIR_INIT_VAR(&_6$$4); + ZEPHIR_CONCAT_SV(&_6$$4, "_PHCOOKIE_", &name); + ZEPHIR_CALL_METHOD(NULL, &session, "remove", NULL, 0, &_6$$4); + zephir_check_call_status(); + } } - zephir_read_property(&_0, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&manager, &_0); - ZEPHIR_OBS_VAR(&modelName); - zephir_array_fetch_string(&modelName, &qualifiedName, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3582); - ZEPHIR_CALL_METHOD(&model, &manager, "load", NULL, 0, &modelName); + zephir_update_property_zval(this_ptr, ZEND_STRL("value"), &__$null); + zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&options, &_0); + ZEPHIR_INIT_NVAR(&_3); + zephir_time(&_3); + ZEPHIR_INIT_VAR(&_9); + ZVAL_STRING(&_9, "expires"); + ZVAL_LONG(&_0, (zephir_get_numberval(&_3) - 691200)); + ZEPHIR_CALL_CE_STATIC(&_7, phalcon_helper_arr_ce, "get", &_8, 16, &options, &_9, &_0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&source, &model, "getsource", NULL, 0); + zephir_array_update_string(&options, SL("expires"), &_7, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_9); + ZVAL_STRING(&_9, "domain"); + ZEPHIR_CALL_CE_STATIC(&_10, phalcon_helper_arr_ce, "get", &_8, 16, &options, &_9, &domain); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&schema, &model, "getschema", NULL, 0); + zephir_array_update_string(&options, SL("domain"), &_10, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_9); + ZVAL_STRING(&_9, "path"); + ZEPHIR_CALL_CE_STATIC(&_11, phalcon_helper_arr_ce, "get", &_8, 16, &options, &_9, &path); zephir_check_call_status(); - if (zephir_is_true(&schema)) { - ZEPHIR_INIT_VAR(&_1$$6); - zephir_create_array(&_1$$6, 2, 0); - zephir_array_fast_append(&_1$$6, &schema); - zephir_array_fast_append(&_1$$6, &source); - ZEPHIR_CPY_WRT(&source, &_1$$6); + zephir_array_update_string(&options, SL("path"), &_11, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_9); + ZVAL_STRING(&_9, "secure"); + ZEPHIR_CALL_CE_STATIC(&_12, phalcon_helper_arr_ce, "get", &_8, 16, &options, &_9, &secure); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("secure"), &_12, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_9); + ZVAL_STRING(&_9, "httponly"); + ZEPHIR_CALL_CE_STATIC(&_13, phalcon_helper_arr_ce, "get", &_8, 16, &options, &_9, &httpOnly); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("httponly"), &_13, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_FUNCTION(NULL, "setcookie", NULL, 280, &name, &__$null, &options); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Http_Cookie, getDomain) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_0))) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); + zephir_check_call_status(); } - notQuoting = 0; - ZEPHIR_INIT_VAR(&exprValues); - array_init(&exprValues); - zephir_array_fetch_string(&_2, &ast, SL("values"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 3595); - zephir_is_iterable(&_2, 0, "phalcon/Mvc/Model/Query.zep", 3603); - if (Z_TYPE_P(&_2) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_2), _3) - { - ZEPHIR_INIT_NVAR(&exprValue); - ZVAL_COPY(&exprValue, _3); - ZEPHIR_INIT_NVAR(&_5$$7); - zephir_create_array(&_5$$7, 2, 0); - ZEPHIR_OBS_NVAR(&_6$$7); - zephir_array_fetch_string(&_6$$7, &exprValue, SL("type"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3598); - zephir_array_update_string(&_5$$7, SL("type"), &_6$$7, PH_COPY | PH_SEPARATE); - if (notQuoting) { - ZVAL_BOOL(&_8$$7, 1); - } else { - ZVAL_BOOL(&_8$$7, 0); - } - ZEPHIR_CALL_METHOD(&_7$$7, this_ptr, "getexpression", &_9, 468, &exprValue, &_8$$7); - zephir_check_call_status(); - zephir_array_update_string(&_5$$7, SL("value"), &_7$$7, PH_COPY | PH_SEPARATE); - zephir_array_append(&exprValues, &_5$$7, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3600); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_2, "rewind", NULL, 0); + RETURN_MM_MEMBER(getThis(), "domain"); +} + +static PHP_METHOD(Phalcon_Http_Cookie, getExpiration) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_0))) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_4, &_2, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_4)) { - break; - } - ZEPHIR_CALL_METHOD(&exprValue, &_2, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_10$$8); - zephir_create_array(&_10$$8, 2, 0); - ZEPHIR_OBS_NVAR(&_11$$8); - zephir_array_fetch_string(&_11$$8, &exprValue, SL("type"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3598); - zephir_array_update_string(&_10$$8, SL("type"), &_11$$8, PH_COPY | PH_SEPARATE); - if (notQuoting) { - ZVAL_BOOL(&_13$$8, 1); - } else { - ZVAL_BOOL(&_13$$8, 0); - } - ZEPHIR_CALL_METHOD(&_12$$8, this_ptr, "getexpression", &_9, 468, &exprValue, &_13$$8); - zephir_check_call_status(); - zephir_array_update_string(&_10$$8, SL("value"), &_12$$8, PH_COPY | PH_SEPARATE); - zephir_array_append(&exprValues, &_10$$8, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3600); - ZEPHIR_CALL_METHOD(NULL, &_2, "next", NULL, 0); - zephir_check_call_status(); - } } - ZEPHIR_INIT_NVAR(&exprValue); - ZEPHIR_INIT_VAR(&sqlInsert); - zephir_create_array(&sqlInsert, 2, 0); - zephir_array_update_string(&sqlInsert, SL("model"), &modelName, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&sqlInsert, SL("table"), &source, PH_COPY | PH_SEPARATE); - zephir_read_property(&_0, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&metaData, &_0); - ZEPHIR_OBS_VAR(&fields); - if (zephir_array_isset_string_fetch(&fields, &ast, SL("fields"), 0)) { - ZEPHIR_INIT_VAR(&sqlFields); - array_init(&sqlFields); - zephir_is_iterable(&fields, 0, "phalcon/Mvc/Model/Query.zep", 3627); - if (Z_TYPE_P(&fields) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&fields), _14$$9) - { - ZEPHIR_INIT_NVAR(&field); - ZVAL_COPY(&field, _14$$9); - ZEPHIR_OBS_NVAR(&name); - zephir_array_fetch_string(&name, &field, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3614); - ZEPHIR_CALL_METHOD(&_16$$10, &metaData, "hasattribute", &_17, 0, &model, &name); - zephir_check_call_status(); - if (UNEXPECTED(!zephir_is_true(&_16$$10))) { - ZEPHIR_INIT_NVAR(&_18$$11); - object_init_ex(&_18$$11, phalcon_mvc_model_exception_ce); - zephir_read_property(&_19$$11, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_20$$11); - ZEPHIR_CONCAT_SVSVSV(&_20$$11, "The model '", &modelName, "' doesn't have the attribute '", &name, "', when preparing: ", &_19$$11); - ZEPHIR_CALL_METHOD(NULL, &_18$$11, "__construct", &_21, 8, &_20$$11); - zephir_check_call_status(); - zephir_throw_exception_debug(&_18$$11, "phalcon/Mvc/Model/Query.zep", 3620); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_array_append(&sqlFields, &name, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3624); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &fields, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_15$$9, &fields, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_15$$9)) { - break; - } - ZEPHIR_CALL_METHOD(&field, &fields, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&name); - zephir_array_fetch_string(&name, &field, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3614); - ZEPHIR_CALL_METHOD(&_22$$12, &metaData, "hasattribute", &_23, 0, &model, &name); - zephir_check_call_status(); - if (UNEXPECTED(!zephir_is_true(&_22$$12))) { - ZEPHIR_INIT_NVAR(&_24$$13); - object_init_ex(&_24$$13, phalcon_mvc_model_exception_ce); - zephir_read_property(&_25$$13, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_26$$13); - ZEPHIR_CONCAT_SVSVSV(&_26$$13, "The model '", &modelName, "' doesn't have the attribute '", &name, "', when preparing: ", &_25$$13); - ZEPHIR_CALL_METHOD(NULL, &_24$$13, "__construct", &_21, 8, &_26$$13); - zephir_check_call_status(); - zephir_throw_exception_debug(&_24$$13, "phalcon/Mvc/Model/Query.zep", 3620); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_array_append(&sqlFields, &name, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3624); - ZEPHIR_CALL_METHOD(NULL, &fields, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&field); - zephir_array_update_string(&sqlInsert, SL("fields"), &sqlFields, PH_COPY | PH_SEPARATE); + RETURN_MM_MEMBER(getThis(), "expire"); +} + +static PHP_METHOD(Phalcon_Http_Cookie, getHttpOnly) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_0))) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); + zephir_check_call_status(); } - zephir_array_update_string(&sqlInsert, SL("values"), &exprValues, PH_COPY | PH_SEPARATE); - RETURN_CCTOR(&sqlInsert); + RETURN_MM_MEMBER(getThis(), "httpOnly"); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, _prepareSelect) +static PHP_METHOD(Phalcon_Http_Cookie, getName) { - zval _13$$24, _25$$28, _46$$43, _58$$47, _90$$66, _93$$73, _99$$81, _102$$88; - zval sqlModels, sqlTables, sqlAliases, sqlColumns, sqlAliasesModels, sqlModelsAliases, sqlAliasesModelsInstances, models, modelsInstances, _21$$24, _22$$24, _23$$24, _33$$28, _34$$28, _35$$28, _54$$43, _55$$43, _56$$43, _66$$47, _67$$47, _68$$47; + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "name"); +} + +static PHP_METHOD(Phalcon_Http_Cookie, getOptions) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "options"); +} + +static PHP_METHOD(Phalcon_Http_Cookie, getPath) +{ + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL, *_8 = NULL, *_14 = NULL, *_16 = NULL, *_26 = NULL, *_28 = NULL, *_36 = NULL, *_47 = NULL, *_49 = NULL, *_59 = NULL, *_61 = NULL, *_85 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, position = 0, number = 0; - zend_bool merge; - zval *ast = NULL, ast_sub, *merge_param = NULL, __$null, __$true, select, tables, columns, selectedModels, manager, metaData, selectedModel, qualifiedName, modelName, model, schema, source, completeSource, alias, joins, sqlJoins, selectColumns, sqlColumnAliases, column, sqlColumn, sqlSelect, distinct, having, where, groupBy, order, limit, tempModels, tempModelsInstances, tempSqlAliases, tempSqlModelsAliases, tempSqlAliasesModelsInstances, tempSqlAliasesModels, with, withs, withItem, automaticJoins, relation, joinAlias, relationModel, bestAlias, eagerType, _1, *_2, _3, *_82, _83, _103, _0$$3, _5$$17, _6$$17, _7$$17, _9$$19, *_10$$21, _11$$21, _12$$24, _15$$25, _17$$27, _18$$27, _19$$27, _20$$26, _24$$28, _27$$29, _29$$31, _30$$31, _31$$31, _32$$30, _37$$33, _38$$36, _39$$36, _40$$36, _41$$38, _42$$41, *_43$$40, _44$$40, _45$$43, _48$$44, _50$$46, _51$$46, _52$$46, _53$$45, _57$$47, _60$$48, _62$$50, _63$$50, _64$$50, _65$$49, _69$$52, _70$$52, _71$$52, _72$$52, _73$$52, _74$$52, _75$$52, _76$$52, _77$$52, _78$$52, _79$$52, _80$$52, _81$$55, _84$$60, *_86$$60, _87$$60, _88$$65, _89$$66, _91$$72, _92$$73, _94$$75, *_95$$75, _96$$75, _97$$80, _98$$81, _100$$87, _101$$88, _104$$92, _105$$93, _106$$94, _107$$95, _108$$96; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&ast_sub); + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_0))) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); + zephir_check_call_status(); + } + RETURN_MM_MEMBER(getThis(), "path"); +} + +static PHP_METHOD(Phalcon_Http_Cookie, getSecure) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_0))) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); + zephir_check_call_status(); + } + RETURN_MM_MEMBER(getThis(), "secure"); +} + +static PHP_METHOD(Phalcon_Http_Cookie, getValue) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_6 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *filters = NULL, filters_sub, *defaultValue = NULL, defaultValue_sub, _COOKIE, __$null, container, value, crypt, decryptedValue, filter, signKey, name, _0, _1, _2$$4, _3$$6, _8$$6, _9$$6, _4$$7, _5$$7, _7$$7, _10$$12, _11$$14, _12$$15, _13$$15, _14$$15, _15$$13, _16$$13; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&filters_sub); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_UNDEF(&_COOKIE); ZVAL_NULL(&__$null); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&select); - ZVAL_UNDEF(&tables); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&selectedModels); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&metaData); - ZVAL_UNDEF(&selectedModel); - ZVAL_UNDEF(&qualifiedName); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&completeSource); - ZVAL_UNDEF(&alias); - ZVAL_UNDEF(&joins); - ZVAL_UNDEF(&sqlJoins); - ZVAL_UNDEF(&selectColumns); - ZVAL_UNDEF(&sqlColumnAliases); - ZVAL_UNDEF(&column); - ZVAL_UNDEF(&sqlColumn); - ZVAL_UNDEF(&sqlSelect); - ZVAL_UNDEF(&distinct); - ZVAL_UNDEF(&having); - ZVAL_UNDEF(&where); - ZVAL_UNDEF(&groupBy); - ZVAL_UNDEF(&order); - ZVAL_UNDEF(&limit); - ZVAL_UNDEF(&tempModels); - ZVAL_UNDEF(&tempModelsInstances); - ZVAL_UNDEF(&tempSqlAliases); - ZVAL_UNDEF(&tempSqlModelsAliases); - ZVAL_UNDEF(&tempSqlAliasesModelsInstances); - ZVAL_UNDEF(&tempSqlAliasesModels); - ZVAL_UNDEF(&with); - ZVAL_UNDEF(&withs); - ZVAL_UNDEF(&withItem); - ZVAL_UNDEF(&automaticJoins); - ZVAL_UNDEF(&relation); - ZVAL_UNDEF(&joinAlias); - ZVAL_UNDEF(&relationModel); - ZVAL_UNDEF(&bestAlias); - ZVAL_UNDEF(&eagerType); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&crypt); + ZVAL_UNDEF(&decryptedValue); + ZVAL_UNDEF(&filter); + ZVAL_UNDEF(&signKey); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_83); - ZVAL_UNDEF(&_103); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_5$$17); - ZVAL_UNDEF(&_6$$17); - ZVAL_UNDEF(&_7$$17); - ZVAL_UNDEF(&_9$$19); - ZVAL_UNDEF(&_11$$21); - ZVAL_UNDEF(&_12$$24); - ZVAL_UNDEF(&_15$$25); - ZVAL_UNDEF(&_17$$27); - ZVAL_UNDEF(&_18$$27); - ZVAL_UNDEF(&_19$$27); - ZVAL_UNDEF(&_20$$26); - ZVAL_UNDEF(&_24$$28); - ZVAL_UNDEF(&_27$$29); - ZVAL_UNDEF(&_29$$31); - ZVAL_UNDEF(&_30$$31); - ZVAL_UNDEF(&_31$$31); - ZVAL_UNDEF(&_32$$30); - ZVAL_UNDEF(&_37$$33); - ZVAL_UNDEF(&_38$$36); - ZVAL_UNDEF(&_39$$36); - ZVAL_UNDEF(&_40$$36); - ZVAL_UNDEF(&_41$$38); - ZVAL_UNDEF(&_42$$41); - ZVAL_UNDEF(&_44$$40); - ZVAL_UNDEF(&_45$$43); - ZVAL_UNDEF(&_48$$44); - ZVAL_UNDEF(&_50$$46); - ZVAL_UNDEF(&_51$$46); - ZVAL_UNDEF(&_52$$46); - ZVAL_UNDEF(&_53$$45); - ZVAL_UNDEF(&_57$$47); - ZVAL_UNDEF(&_60$$48); - ZVAL_UNDEF(&_62$$50); - ZVAL_UNDEF(&_63$$50); - ZVAL_UNDEF(&_64$$50); - ZVAL_UNDEF(&_65$$49); - ZVAL_UNDEF(&_69$$52); - ZVAL_UNDEF(&_70$$52); - ZVAL_UNDEF(&_71$$52); - ZVAL_UNDEF(&_72$$52); - ZVAL_UNDEF(&_73$$52); - ZVAL_UNDEF(&_74$$52); - ZVAL_UNDEF(&_75$$52); - ZVAL_UNDEF(&_76$$52); - ZVAL_UNDEF(&_77$$52); - ZVAL_UNDEF(&_78$$52); - ZVAL_UNDEF(&_79$$52); - ZVAL_UNDEF(&_80$$52); - ZVAL_UNDEF(&_81$$55); - ZVAL_UNDEF(&_84$$60); - ZVAL_UNDEF(&_87$$60); - ZVAL_UNDEF(&_88$$65); - ZVAL_UNDEF(&_89$$66); - ZVAL_UNDEF(&_91$$72); - ZVAL_UNDEF(&_92$$73); - ZVAL_UNDEF(&_94$$75); - ZVAL_UNDEF(&_96$$75); - ZVAL_UNDEF(&_97$$80); - ZVAL_UNDEF(&_98$$81); - ZVAL_UNDEF(&_100$$87); - ZVAL_UNDEF(&_101$$88); - ZVAL_UNDEF(&_104$$92); - ZVAL_UNDEF(&_105$$93); - ZVAL_UNDEF(&_106$$94); - ZVAL_UNDEF(&_107$$95); - ZVAL_UNDEF(&_108$$96); - ZVAL_UNDEF(&sqlModels); - ZVAL_UNDEF(&sqlTables); - ZVAL_UNDEF(&sqlAliases); - ZVAL_UNDEF(&sqlColumns); - ZVAL_UNDEF(&sqlAliasesModels); - ZVAL_UNDEF(&sqlModelsAliases); - ZVAL_UNDEF(&sqlAliasesModelsInstances); - ZVAL_UNDEF(&models); - ZVAL_UNDEF(&modelsInstances); - ZVAL_UNDEF(&_21$$24); - ZVAL_UNDEF(&_22$$24); - ZVAL_UNDEF(&_23$$24); - ZVAL_UNDEF(&_33$$28); - ZVAL_UNDEF(&_34$$28); - ZVAL_UNDEF(&_35$$28); - ZVAL_UNDEF(&_54$$43); - ZVAL_UNDEF(&_55$$43); - ZVAL_UNDEF(&_56$$43); - ZVAL_UNDEF(&_66$$47); - ZVAL_UNDEF(&_67$$47); - ZVAL_UNDEF(&_68$$47); - ZVAL_UNDEF(&_13$$24); - ZVAL_UNDEF(&_25$$28); - ZVAL_UNDEF(&_46$$43); - ZVAL_UNDEF(&_58$$47); - ZVAL_UNDEF(&_90$$66); - ZVAL_UNDEF(&_93$$73); - ZVAL_UNDEF(&_99$$81); - ZVAL_UNDEF(&_102$$88); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$6); + ZVAL_UNDEF(&_8$$6); + ZVAL_UNDEF(&_9$$6); + ZVAL_UNDEF(&_4$$7); + ZVAL_UNDEF(&_5$$7); + ZVAL_UNDEF(&_7$$7); + ZVAL_UNDEF(&_10$$12); + ZVAL_UNDEF(&_11$$14); + ZVAL_UNDEF(&_12$$15); + ZVAL_UNDEF(&_13$$15); + ZVAL_UNDEF(&_14$$15); + ZVAL_UNDEF(&_15$$13); + ZVAL_UNDEF(&_16$$13); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(0, 2) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(ast) - Z_PARAM_BOOL(merge) + Z_PARAM_ZVAL_OR_NULL(filters) + Z_PARAM_ZVAL_OR_NULL(defaultValue) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &ast, &merge_param); - if (!ast) { - ast = &ast_sub; - ZEPHIR_CPY_WRT(ast, &__$null); - } else { - ZEPHIR_SEPARATE_PARAM(ast); + zephir_get_global(&_COOKIE, SL("_COOKIE")); + zephir_fetch_params(1, 0, 2, &filters, &defaultValue); + if (!filters) { + filters = &filters_sub; + filters = &__$null; } - if (!merge_param) { - merge = 0; - } else { - merge = zephir_get_boolval(merge_param); + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; } - if (ZEPHIR_IS_EMPTY(ast)) { - zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("ast"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(ast, &_0$$3); - } - ZEPHIR_OBS_VAR(&select); - if (!(zephir_array_isset_string_fetch(&select, ast, SL("select"), 0))) { - ZEPHIR_CPY_WRT(&select, ast); - } - ZEPHIR_OBS_VAR(&tables); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&tables, &select, SL("tables"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted SELECT AST", "phalcon/Mvc/Model/Query.zep", 3663); - return; - } - ZEPHIR_OBS_VAR(&columns); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&columns, &select, SL("columns"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted SELECT AST", "phalcon/Mvc/Model/Query.zep", 3667); - return; - } - RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("nestingLevel"))); - ZEPHIR_INIT_VAR(&sqlModels); - array_init(&sqlModels); - ZEPHIR_INIT_VAR(&sqlTables); - array_init(&sqlTables); - ZEPHIR_INIT_VAR(&sqlColumns); - array_init(&sqlColumns); - ZEPHIR_INIT_VAR(&sqlAliases); - array_init(&sqlAliases); - ZEPHIR_INIT_VAR(&sqlAliasesModels); - array_init(&sqlAliasesModels); - ZEPHIR_INIT_VAR(&sqlModelsAliases); - array_init(&sqlModelsAliases); - ZEPHIR_INIT_VAR(&sqlAliasesModelsInstances); - array_init(&sqlAliasesModelsInstances); - ZEPHIR_INIT_VAR(&models); - array_init(&models); - ZEPHIR_INIT_VAR(&modelsInstances); - array_init(&modelsInstances); - if (!(zephir_array_isset_long(&tables, 0))) { - ZEPHIR_INIT_VAR(&selectedModels); - zephir_create_array(&selectedModels, 1, 0); - zephir_array_fast_append(&selectedModels, &tables); - } else { - ZEPHIR_CPY_WRT(&selectedModels, &tables); - } - if (!(zephir_array_isset_long(&columns, 0))) { - ZEPHIR_INIT_VAR(&selectColumns); - zephir_create_array(&selectColumns, 1, 0); - zephir_array_fast_append(&selectColumns, &columns); - } else { - ZEPHIR_CPY_WRT(&selectColumns, &columns); + zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_0))) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); + zephir_check_call_status(); } - zephir_read_property(&_1, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&manager, &_1); - zephir_read_property(&_1, this_ptr, ZEND_STRL("metaData"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&metaData, &_1); - if (UNEXPECTED(Z_TYPE_P(&manager) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A models-manager is required to execute the query", "phalcon/Mvc/Model/Query.zep", 3734); - return; - } - if (UNEXPECTED(Z_TYPE_P(&metaData) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "A meta-data is required to execute the query", "phalcon/Mvc/Model/Query.zep", 3740); - return; - } - number = 0; - ZEPHIR_INIT_VAR(&automaticJoins); - array_init(&automaticJoins); - zephir_is_iterable(&selectedModels, 0, "phalcon/Mvc/Model/Query.zep", 3870); - if (Z_TYPE_P(&selectedModels) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&selectedModels), _2) - { - ZEPHIR_INIT_NVAR(&selectedModel); - ZVAL_COPY(&selectedModel, _2); - ZEPHIR_OBS_NVAR(&qualifiedName); - zephir_array_fetch_string(&qualifiedName, &selectedModel, SL("qualifiedName"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3748); - ZEPHIR_OBS_NVAR(&modelName); - zephir_array_fetch_string(&modelName, &qualifiedName, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3749); - ZEPHIR_CALL_METHOD(&model, &manager, "load", &_4, 0, &modelName); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&schema, &model, "getschema", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&source, &model, "getsource", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&schema)) { - ZEPHIR_INIT_NVAR(&completeSource); - zephir_create_array(&completeSource, 2, 0); - zephir_array_fast_append(&completeSource, &source); - zephir_array_fast_append(&completeSource, &schema); - } else { - ZEPHIR_CPY_WRT(&completeSource, &source); - } - ZEPHIR_OBS_NVAR(&alias); - if (zephir_array_isset_string_fetch(&alias, &selectedModel, SL("alias"), 0)) { - if (UNEXPECTED(zephir_array_isset(&sqlAliases, &alias))) { - ZEPHIR_INIT_NVAR(&_5$$17); - object_init_ex(&_5$$17, phalcon_mvc_model_exception_ce); - zephir_read_property(&_6$$17, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_7$$17); - ZEPHIR_CONCAT_SVSV(&_7$$17, "Alias '", &alias, "' is used more than once, when preparing: ", &_6$$17); - ZEPHIR_CALL_METHOD(NULL, &_5$$17, "__construct", &_8, 8, &_7$$17); - zephir_check_call_status(); - zephir_throw_exception_debug(&_5$$17, "phalcon/Mvc/Model/Query.zep", 3774); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_array_update_zval(&sqlAliases, &alias, &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliasesModels, &alias, &modelName, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlModelsAliases, &modelName, &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliasesModelsInstances, &alias, &model, PH_COPY | PH_SEPARATE); - if (Z_TYPE_P(&completeSource) == IS_ARRAY) { - zephir_array_append(&completeSource, &alias, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3786); - } else { - ZEPHIR_INIT_NVAR(&_9$$19); - zephir_create_array(&_9$$19, 3, 0); - zephir_array_fast_append(&_9$$19, &source); - zephir_array_fast_append(&_9$$19, &__$null); - zephir_array_fast_append(&_9$$19, &alias); - ZEPHIR_CPY_WRT(&completeSource, &_9$$19); - } - zephir_array_update_zval(&models, &modelName, &alias, PH_COPY | PH_SEPARATE); - } else { - ZEPHIR_CPY_WRT(&alias, &source); - zephir_array_update_zval(&sqlAliases, &modelName, &source, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliasesModels, &modelName, &modelName, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlModelsAliases, &modelName, &modelName, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliasesModelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&models, &modelName, &source, PH_COPY | PH_SEPARATE); - } - ZEPHIR_OBS_NVAR(&with); - if (zephir_array_isset_string_fetch(&with, &selectedModel, SL("with"), 0)) { - if (!(zephir_array_isset_long(&with, 0))) { - ZEPHIR_INIT_NVAR(&withs); - zephir_create_array(&withs, 1, 0); - zephir_array_fast_append(&withs, &with); - } else { - ZEPHIR_CPY_WRT(&withs, &with); - } - zephir_is_iterable(&withs, 0, "phalcon/Mvc/Model/Query.zep", 3862); - if (Z_TYPE_P(&withs) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&withs), _10$$21) - { - ZEPHIR_INIT_NVAR(&withItem); - ZVAL_COPY(&withItem, _10$$21); - ZEPHIR_INIT_NVAR(&_12$$24); - ZVAL_LONG(&_12$$24, number); - ZEPHIR_INIT_NVAR(&_13$$24); - ZEPHIR_CONCAT_SV(&_13$$24, "AA", &_12$$24); - ZEPHIR_CPY_WRT(&joinAlias, &_13$$24); - ZEPHIR_OBS_NVAR(&relationModel); - zephir_array_fetch_string(&relationModel, &withItem, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3812); - ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationbyalias", &_14, 0, &modelName, &relationModel); - zephir_check_call_status(); - if (Z_TYPE_P(&relation) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_15$$25); - ZVAL_STRING(&_15$$25, "alias"); - ZEPHIR_CALL_METHOD(&bestAlias, &relation, "getoption", NULL, 0, &_15$$25); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&relationModel, &relation, "getreferencedmodel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&eagerType, &relation, "gettype", NULL, 0); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationsbetween", &_16, 0, &modelName, &relationModel); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&relation) != IS_OBJECT)) { - ZEPHIR_INIT_NVAR(&_17$$27); - object_init_ex(&_17$$27, phalcon_mvc_model_exception_ce); - zephir_read_property(&_18$$27, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_19$$27); - ZEPHIR_CONCAT_SVSVSV(&_19$$27, "Can't find a relationship between '", &modelName, "' and '", &relationModel, "' when preparing: ", &_18$$27); - ZEPHIR_CALL_METHOD(NULL, &_17$$27, "__construct", &_8, 8, &_19$$27); - zephir_check_call_status(); - zephir_throw_exception_debug(&_17$$27, "phalcon/Mvc/Model/Query.zep", 3832); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_NVAR(&_20$$26); - ZVAL_STRING(&_20$$26, "alias"); - ZEPHIR_CALL_METHOD(&bestAlias, &relation, "getoption", NULL, 0, &_20$$26); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&relationModel, &relation, "getreferencedmodel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&eagerType, &relation, "gettype", NULL, 0); - zephir_check_call_status(); - } - ZEPHIR_INIT_NVAR(&_21$$24); - zephir_create_array(&_21$$24, 5, 0); - add_assoc_long_ex(&_21$$24, SL("type"), 353); - zephir_array_update_string(&_21$$24, SL("column"), &joinAlias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_21$$24, SL("eager"), &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_21$$24, SL("eagerType"), &eagerType, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_21$$24, SL("balias"), &bestAlias, PH_COPY | PH_SEPARATE); - zephir_array_append(&selectColumns, &_21$$24, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3846); - ZEPHIR_INIT_NVAR(&_22$$24); - zephir_create_array(&_22$$24, 3, 0); - add_assoc_long_ex(&_22$$24, SL("type"), 360); - ZEPHIR_INIT_NVAR(&_23$$24); - zephir_create_array(&_23$$24, 2, 0); - add_assoc_long_ex(&_23$$24, SL("type"), 355); - zephir_array_update_string(&_23$$24, SL("name"), &relationModel, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_22$$24, SL("qualified"), &_23$$24, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_23$$24); - zephir_create_array(&_23$$24, 2, 0); - add_assoc_long_ex(&_23$$24, SL("type"), 355); - zephir_array_update_string(&_23$$24, SL("name"), &joinAlias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_22$$24, SL("alias"), &_23$$24, PH_COPY | PH_SEPARATE); - zephir_array_append(&automaticJoins, &_22$$24, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3858); - number++; - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &withs, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_11$$21, &withs, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_11$$21)) { - break; - } - ZEPHIR_CALL_METHOD(&withItem, &withs, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_24$$28); - ZVAL_LONG(&_24$$28, number); - ZEPHIR_INIT_NVAR(&_25$$28); - ZEPHIR_CONCAT_SV(&_25$$28, "AA", &_24$$28); - ZEPHIR_CPY_WRT(&joinAlias, &_25$$28); - ZEPHIR_OBS_NVAR(&relationModel); - zephir_array_fetch_string(&relationModel, &withItem, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3812); - ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationbyalias", &_26, 0, &modelName, &relationModel); - zephir_check_call_status(); - if (Z_TYPE_P(&relation) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_27$$29); - ZVAL_STRING(&_27$$29, "alias"); - ZEPHIR_CALL_METHOD(&bestAlias, &relation, "getoption", NULL, 0, &_27$$29); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&relationModel, &relation, "getreferencedmodel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&eagerType, &relation, "gettype", NULL, 0); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationsbetween", &_28, 0, &modelName, &relationModel); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&relation) != IS_OBJECT)) { - ZEPHIR_INIT_NVAR(&_29$$31); - object_init_ex(&_29$$31, phalcon_mvc_model_exception_ce); - zephir_read_property(&_30$$31, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_31$$31); - ZEPHIR_CONCAT_SVSVSV(&_31$$31, "Can't find a relationship between '", &modelName, "' and '", &relationModel, "' when preparing: ", &_30$$31); - ZEPHIR_CALL_METHOD(NULL, &_29$$31, "__construct", &_8, 8, &_31$$31); - zephir_check_call_status(); - zephir_throw_exception_debug(&_29$$31, "phalcon/Mvc/Model/Query.zep", 3832); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_NVAR(&_32$$30); - ZVAL_STRING(&_32$$30, "alias"); - ZEPHIR_CALL_METHOD(&bestAlias, &relation, "getoption", NULL, 0, &_32$$30); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&relationModel, &relation, "getreferencedmodel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&eagerType, &relation, "gettype", NULL, 0); - zephir_check_call_status(); - } - ZEPHIR_INIT_NVAR(&_33$$28); - zephir_create_array(&_33$$28, 5, 0); - add_assoc_long_ex(&_33$$28, SL("type"), 353); - zephir_array_update_string(&_33$$28, SL("column"), &joinAlias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_33$$28, SL("eager"), &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_33$$28, SL("eagerType"), &eagerType, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_33$$28, SL("balias"), &bestAlias, PH_COPY | PH_SEPARATE); - zephir_array_append(&selectColumns, &_33$$28, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3846); - ZEPHIR_INIT_NVAR(&_34$$28); - zephir_create_array(&_34$$28, 3, 0); - add_assoc_long_ex(&_34$$28, SL("type"), 360); - ZEPHIR_INIT_NVAR(&_35$$28); - zephir_create_array(&_35$$28, 2, 0); - add_assoc_long_ex(&_35$$28, SL("type"), 355); - zephir_array_update_string(&_35$$28, SL("name"), &relationModel, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_34$$28, SL("qualified"), &_35$$28, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_35$$28); - zephir_create_array(&_35$$28, 2, 0); - add_assoc_long_ex(&_35$$28, SL("type"), 355); - zephir_array_update_string(&_35$$28, SL("name"), &joinAlias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_34$$28, SL("alias"), &_35$$28, PH_COPY | PH_SEPARATE); - zephir_array_append(&automaticJoins, &_34$$28, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3858); - number++; - ZEPHIR_CALL_METHOD(NULL, &withs, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&withItem); + ZEPHIR_INIT_VAR(&container); + ZVAL_NULL(&container); + zephir_read_property(&_1, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&name, &_1); + zephir_read_property(&_1, this_ptr, ZEND_STRL("read"), PH_NOISY_CC | PH_READONLY); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_1)) { + ZEPHIR_OBS_VAR(&value); + if (!(zephir_array_isset_fetch(&value, &_COOKIE, &name, 0))) { + RETVAL_ZVAL(defaultValue, 1, 0); + RETURN_MM(); + } + zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("useEncryption"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_2$$4)) { + zephir_read_property(&_3$$6, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_3$$6); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_4$$7); + object_init_ex(&_4$$7, phalcon_http_response_exception_ce); + ZEPHIR_INIT_VAR(&_7$$7); + ZVAL_STRING(&_7$$7, "the 'filter' and 'crypt' services"); + ZEPHIR_CALL_CE_STATIC(&_5$$7, phalcon_http_response_exception_ce, "containerservicenotfound", &_6, 0, &_7$$7); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_4$$7, "__construct", NULL, 8, &_5$$7); + zephir_check_call_status(); + zephir_throw_exception_debug(&_4$$7, "phalcon/Http/Cookie.zep", 268); + ZEPHIR_MM_RESTORE(); + return; } - zephir_array_append(&sqlModels, &modelName, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3864); - zephir_array_append(&sqlTables, &completeSource, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3865); - zephir_array_update_zval(&modelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &selectedModels, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3, &selectedModels, "valid", NULL, 0); + ZEPHIR_INIT_VAR(&_9$$6); + ZVAL_STRING(&_9$$6, "crypt"); + ZEPHIR_CALL_METHOD(&_8$$6, &container, "getshared", NULL, 0, &_9$$6); zephir_check_call_status(); - if (!zend_is_true(&_3)) { - break; + ZEPHIR_CPY_WRT(&crypt, &_8$$6); + if (UNEXPECTED(Z_TYPE_P(&crypt) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_response_exception_ce, "A dependency which implements CryptInterface is required to use encryption", "phalcon/Http/Cookie.zep", 276); + return; } - ZEPHIR_CALL_METHOD(&selectedModel, &selectedModels, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&qualifiedName); - zephir_array_fetch_string(&qualifiedName, &selectedModel, SL("qualifiedName"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3748); - ZEPHIR_OBS_NVAR(&modelName); - zephir_array_fetch_string(&modelName, &qualifiedName, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3749); - ZEPHIR_CALL_METHOD(&model, &manager, "load", &_36, 0, &modelName); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&schema, &model, "getschema", NULL, 0); + zephir_read_property(&_3$$6, this_ptr, ZEND_STRL("signKey"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&signKey, &_3$$6); + if (Z_TYPE_P(&signKey) == IS_STRING) { + ZEPHIR_CALL_METHOD(&decryptedValue, &crypt, "decryptbase64", NULL, 0, &value, &signKey); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&source, &model, "getsource", NULL, 0); + } else { + ZEPHIR_CALL_METHOD(&decryptedValue, &crypt, "decryptbase64", NULL, 0, &value); zephir_check_call_status(); - if (zephir_is_true(&schema)) { - ZEPHIR_INIT_NVAR(&_37$$33); - zephir_create_array(&_37$$33, 2, 0); - zephir_array_fast_append(&_37$$33, &source); - zephir_array_fast_append(&_37$$33, &schema); - ZEPHIR_CPY_WRT(&completeSource, &_37$$33); - } else { - ZEPHIR_CPY_WRT(&completeSource, &source); - } - ZEPHIR_OBS_NVAR(&alias); - if (zephir_array_isset_string_fetch(&alias, &selectedModel, SL("alias"), 0)) { - if (UNEXPECTED(zephir_array_isset(&sqlAliases, &alias))) { - ZEPHIR_INIT_NVAR(&_38$$36); - object_init_ex(&_38$$36, phalcon_mvc_model_exception_ce); - zephir_read_property(&_39$$36, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_40$$36); - ZEPHIR_CONCAT_SVSV(&_40$$36, "Alias '", &alias, "' is used more than once, when preparing: ", &_39$$36); - ZEPHIR_CALL_METHOD(NULL, &_38$$36, "__construct", &_8, 8, &_40$$36); + } + } else { + ZEPHIR_CPY_WRT(&decryptedValue, &value); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("value"), &decryptedValue); + if (Z_TYPE_P(filters) != IS_NULL) { + zephir_read_property(&_10$$12, this_ptr, ZEND_STRL("filter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&filter, &_10$$12); + if (Z_TYPE_P(&filter) != IS_OBJECT) { + if (Z_TYPE_P(&container) == IS_NULL) { + zephir_read_property(&_11$$14, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_11$$14); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_12$$15); + object_init_ex(&_12$$15, phalcon_http_response_exception_ce); + ZEPHIR_INIT_VAR(&_14$$15); + ZVAL_STRING(&_14$$15, "the 'filter' service"); + ZEPHIR_CALL_CE_STATIC(&_13$$15, phalcon_http_response_exception_ce, "containerservicenotfound", &_6, 0, &_14$$15); zephir_check_call_status(); - zephir_throw_exception_debug(&_38$$36, "phalcon/Mvc/Model/Query.zep", 3774); + ZEPHIR_CALL_METHOD(NULL, &_12$$15, "__construct", NULL, 8, &_13$$15); + zephir_check_call_status(); + zephir_throw_exception_debug(&_12$$15, "phalcon/Http/Cookie.zep", 319); ZEPHIR_MM_RESTORE(); return; } - zephir_array_update_zval(&sqlAliases, &alias, &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliasesModels, &alias, &modelName, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlModelsAliases, &modelName, &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliasesModelsInstances, &alias, &model, PH_COPY | PH_SEPARATE); - if (Z_TYPE_P(&completeSource) == IS_ARRAY) { - zephir_array_append(&completeSource, &alias, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3786); - } else { - ZEPHIR_INIT_NVAR(&_41$$38); - zephir_create_array(&_41$$38, 3, 0); - zephir_array_fast_append(&_41$$38, &source); - zephir_array_fast_append(&_41$$38, &__$null); - zephir_array_fast_append(&_41$$38, &alias); - ZEPHIR_CPY_WRT(&completeSource, &_41$$38); - } - zephir_array_update_zval(&models, &modelName, &alias, PH_COPY | PH_SEPARATE); - } else { - ZEPHIR_CPY_WRT(&alias, &source); - zephir_array_update_zval(&sqlAliases, &modelName, &source, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliasesModels, &modelName, &modelName, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlModelsAliases, &modelName, &modelName, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliasesModelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&models, &modelName, &source, PH_COPY | PH_SEPARATE); - } - ZEPHIR_OBS_NVAR(&with); - if (zephir_array_isset_string_fetch(&with, &selectedModel, SL("with"), 0)) { - if (!(zephir_array_isset_long(&with, 0))) { - ZEPHIR_INIT_NVAR(&_42$$41); - zephir_create_array(&_42$$41, 1, 0); - zephir_array_fast_append(&_42$$41, &with); - ZEPHIR_CPY_WRT(&withs, &_42$$41); - } else { - ZEPHIR_CPY_WRT(&withs, &with); - } - zephir_is_iterable(&withs, 0, "phalcon/Mvc/Model/Query.zep", 3862); - if (Z_TYPE_P(&withs) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&withs), _43$$40) - { - ZEPHIR_INIT_NVAR(&withItem); - ZVAL_COPY(&withItem, _43$$40); - ZEPHIR_INIT_NVAR(&_45$$43); - ZVAL_LONG(&_45$$43, number); - ZEPHIR_INIT_NVAR(&_46$$43); - ZEPHIR_CONCAT_SV(&_46$$43, "AA", &_45$$43); - ZEPHIR_CPY_WRT(&joinAlias, &_46$$43); - ZEPHIR_OBS_NVAR(&relationModel); - zephir_array_fetch_string(&relationModel, &withItem, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3812); - ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationbyalias", &_47, 0, &modelName, &relationModel); - zephir_check_call_status(); - if (Z_TYPE_P(&relation) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_48$$44); - ZVAL_STRING(&_48$$44, "alias"); - ZEPHIR_CALL_METHOD(&bestAlias, &relation, "getoption", NULL, 0, &_48$$44); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&relationModel, &relation, "getreferencedmodel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&eagerType, &relation, "gettype", NULL, 0); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationsbetween", &_49, 0, &modelName, &relationModel); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&relation) != IS_OBJECT)) { - ZEPHIR_INIT_NVAR(&_50$$46); - object_init_ex(&_50$$46, phalcon_mvc_model_exception_ce); - zephir_read_property(&_51$$46, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_52$$46); - ZEPHIR_CONCAT_SVSVSV(&_52$$46, "Can't find a relationship between '", &modelName, "' and '", &relationModel, "' when preparing: ", &_51$$46); - ZEPHIR_CALL_METHOD(NULL, &_50$$46, "__construct", &_8, 8, &_52$$46); - zephir_check_call_status(); - zephir_throw_exception_debug(&_50$$46, "phalcon/Mvc/Model/Query.zep", 3832); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_NVAR(&_53$$45); - ZVAL_STRING(&_53$$45, "alias"); - ZEPHIR_CALL_METHOD(&bestAlias, &relation, "getoption", NULL, 0, &_53$$45); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&relationModel, &relation, "getreferencedmodel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&eagerType, &relation, "gettype", NULL, 0); - zephir_check_call_status(); - } - ZEPHIR_INIT_NVAR(&_54$$43); - zephir_create_array(&_54$$43, 5, 0); - add_assoc_long_ex(&_54$$43, SL("type"), 353); - zephir_array_update_string(&_54$$43, SL("column"), &joinAlias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_54$$43, SL("eager"), &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_54$$43, SL("eagerType"), &eagerType, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_54$$43, SL("balias"), &bestAlias, PH_COPY | PH_SEPARATE); - zephir_array_append(&selectColumns, &_54$$43, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3846); - ZEPHIR_INIT_NVAR(&_55$$43); - zephir_create_array(&_55$$43, 3, 0); - add_assoc_long_ex(&_55$$43, SL("type"), 360); - ZEPHIR_INIT_NVAR(&_56$$43); - zephir_create_array(&_56$$43, 2, 0); - add_assoc_long_ex(&_56$$43, SL("type"), 355); - zephir_array_update_string(&_56$$43, SL("name"), &relationModel, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_55$$43, SL("qualified"), &_56$$43, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_56$$43); - zephir_create_array(&_56$$43, 2, 0); - add_assoc_long_ex(&_56$$43, SL("type"), 355); - zephir_array_update_string(&_56$$43, SL("name"), &joinAlias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_55$$43, SL("alias"), &_56$$43, PH_COPY | PH_SEPARATE); - zephir_array_append(&automaticJoins, &_55$$43, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3858); - number++; - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &withs, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_44$$40, &withs, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_44$$40)) { - break; - } - ZEPHIR_CALL_METHOD(&withItem, &withs, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_57$$47); - ZVAL_LONG(&_57$$47, number); - ZEPHIR_INIT_NVAR(&_58$$47); - ZEPHIR_CONCAT_SV(&_58$$47, "AA", &_57$$47); - ZEPHIR_CPY_WRT(&joinAlias, &_58$$47); - ZEPHIR_OBS_NVAR(&relationModel); - zephir_array_fetch_string(&relationModel, &withItem, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 3812); - ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationbyalias", &_59, 0, &modelName, &relationModel); - zephir_check_call_status(); - if (Z_TYPE_P(&relation) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_60$$48); - ZVAL_STRING(&_60$$48, "alias"); - ZEPHIR_CALL_METHOD(&bestAlias, &relation, "getoption", NULL, 0, &_60$$48); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&relationModel, &relation, "getreferencedmodel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&eagerType, &relation, "gettype", NULL, 0); - zephir_check_call_status(); - } else { - ZEPHIR_CALL_METHOD(&relation, &manager, "getrelationsbetween", &_61, 0, &modelName, &relationModel); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&relation) != IS_OBJECT)) { - ZEPHIR_INIT_NVAR(&_62$$50); - object_init_ex(&_62$$50, phalcon_mvc_model_exception_ce); - zephir_read_property(&_63$$50, this_ptr, ZEND_STRL("phql"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_64$$50); - ZEPHIR_CONCAT_SVSVSV(&_64$$50, "Can't find a relationship between '", &modelName, "' and '", &relationModel, "' when preparing: ", &_63$$50); - ZEPHIR_CALL_METHOD(NULL, &_62$$50, "__construct", &_8, 8, &_64$$50); - zephir_check_call_status(); - zephir_throw_exception_debug(&_62$$50, "phalcon/Mvc/Model/Query.zep", 3832); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_NVAR(&_65$$49); - ZVAL_STRING(&_65$$49, "alias"); - ZEPHIR_CALL_METHOD(&bestAlias, &relation, "getoption", NULL, 0, &_65$$49); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&relationModel, &relation, "getreferencedmodel", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&eagerType, &relation, "gettype", NULL, 0); - zephir_check_call_status(); - } - ZEPHIR_INIT_NVAR(&_66$$47); - zephir_create_array(&_66$$47, 5, 0); - add_assoc_long_ex(&_66$$47, SL("type"), 353); - zephir_array_update_string(&_66$$47, SL("column"), &joinAlias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_66$$47, SL("eager"), &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_66$$47, SL("eagerType"), &eagerType, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_66$$47, SL("balias"), &bestAlias, PH_COPY | PH_SEPARATE); - zephir_array_append(&selectColumns, &_66$$47, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3846); - ZEPHIR_INIT_NVAR(&_67$$47); - zephir_create_array(&_67$$47, 3, 0); - add_assoc_long_ex(&_67$$47, SL("type"), 360); - ZEPHIR_INIT_NVAR(&_68$$47); - zephir_create_array(&_68$$47, 2, 0); - add_assoc_long_ex(&_68$$47, SL("type"), 355); - zephir_array_update_string(&_68$$47, SL("name"), &relationModel, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_67$$47, SL("qualified"), &_68$$47, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_68$$47); - zephir_create_array(&_68$$47, 2, 0); - add_assoc_long_ex(&_68$$47, SL("type"), 355); - zephir_array_update_string(&_68$$47, SL("name"), &joinAlias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_67$$47, SL("alias"), &_68$$47, PH_COPY | PH_SEPARATE); - zephir_array_append(&automaticJoins, &_67$$47, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3858); - number++; - ZEPHIR_CALL_METHOD(NULL, &withs, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&withItem); } - zephir_array_append(&sqlModels, &modelName, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3864); - zephir_array_append(&sqlTables, &completeSource, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3865); - zephir_array_update_zval(&modelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &selectedModels, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&selectedModel); - if (!(merge)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("models"), &models); - zephir_update_property_zval(this_ptr, ZEND_STRL("modelsInstances"), &modelsInstances); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliases"), &sqlAliases); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliasesModels"), &sqlAliasesModels); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlModelsAliases"), &sqlModelsAliases); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), &sqlAliasesModelsInstances); - } else { - ZEPHIR_OBS_VAR(&tempModels); - zephir_read_property(&tempModels, this_ptr, ZEND_STRL("models"), PH_NOISY_CC); - ZEPHIR_OBS_VAR(&tempModelsInstances); - zephir_read_property(&tempModelsInstances, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC); - ZEPHIR_OBS_VAR(&tempSqlAliases); - zephir_read_property(&tempSqlAliases, this_ptr, ZEND_STRL("sqlAliases"), PH_NOISY_CC); - ZEPHIR_OBS_VAR(&tempSqlAliasesModels); - zephir_read_property(&tempSqlAliasesModels, this_ptr, ZEND_STRL("sqlAliasesModels"), PH_NOISY_CC); - ZEPHIR_OBS_VAR(&tempSqlModelsAliases); - zephir_read_property(&tempSqlModelsAliases, this_ptr, ZEND_STRL("sqlModelsAliases"), PH_NOISY_CC); - ZEPHIR_OBS_VAR(&tempSqlAliasesModelsInstances); - zephir_read_property(&tempSqlAliasesModelsInstances, this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(&_69$$52); - zephir_read_property(&_70$$52, this_ptr, ZEND_STRL("models"), PH_NOISY_CC | PH_READONLY); - zephir_fast_array_merge(&_69$$52, &_70$$52, &models); - zephir_update_property_zval(this_ptr, ZEND_STRL("models"), &_69$$52); - ZEPHIR_INIT_VAR(&_71$$52); - zephir_read_property(&_72$$52, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); - zephir_fast_array_merge(&_71$$52, &_72$$52, &modelsInstances); - zephir_update_property_zval(this_ptr, ZEND_STRL("modelsInstances"), &_71$$52); - ZEPHIR_INIT_VAR(&_73$$52); - zephir_read_property(&_74$$52, this_ptr, ZEND_STRL("sqlAliases"), PH_NOISY_CC | PH_READONLY); - zephir_fast_array_merge(&_73$$52, &_74$$52, &sqlAliases); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliases"), &_73$$52); - ZEPHIR_INIT_VAR(&_75$$52); - zephir_read_property(&_76$$52, this_ptr, ZEND_STRL("sqlAliasesModels"), PH_NOISY_CC | PH_READONLY); - zephir_fast_array_merge(&_75$$52, &_76$$52, &sqlAliasesModels); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliasesModels"), &_75$$52); - ZEPHIR_INIT_VAR(&_77$$52); - zephir_read_property(&_78$$52, this_ptr, ZEND_STRL("sqlModelsAliases"), PH_NOISY_CC | PH_READONLY); - zephir_fast_array_merge(&_77$$52, &_78$$52, &sqlModelsAliases); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlModelsAliases"), &_77$$52); - ZEPHIR_INIT_VAR(&_79$$52); - zephir_read_property(&_80$$52, this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), PH_NOISY_CC | PH_READONLY); - zephir_fast_array_merge(&_79$$52, &_80$$52, &sqlAliasesModelsInstances); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), &_79$$52); - } - ZEPHIR_OBS_VAR(&joins); - zephir_array_isset_string_fetch(&joins, &select, SL("joins"), 0); - if (zephir_fast_count_int(&joins)) { - if (zephir_fast_count_int(&automaticJoins)) { - if (zephir_array_isset_long(&joins, 0)) { - ZEPHIR_INIT_VAR(&_81$$55); - zephir_fast_array_merge(&_81$$55, &joins, &automaticJoins); - zephir_array_update_string(&select, SL("joins"), &_81$$55, PH_COPY | PH_SEPARATE); - } else { - zephir_array_append(&automaticJoins, &joins, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3901); - zephir_array_update_string(&select, SL("joins"), &automaticJoins, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_16$$13); + ZVAL_STRING(&_16$$13, "filter"); + ZEPHIR_CALL_METHOD(&_15$$13, &container, "getshared", NULL, 0, &_16$$13); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&filter, &_15$$13); + zephir_update_property_zval(this_ptr, ZEND_STRL("filter"), &filter); } - } - ZEPHIR_CALL_METHOD(&sqlJoins, this_ptr, "getjoins", NULL, 483, &select); - zephir_check_call_status(); - } else { - if (zephir_fast_count_int(&automaticJoins)) { - zephir_array_update_string(&select, SL("joins"), &automaticJoins, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&sqlJoins, this_ptr, "getjoins", NULL, 483, &select); + ZEPHIR_RETURN_CALL_METHOD(&filter, "sanitize", NULL, 0, &decryptedValue, filters); zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&sqlJoins); - array_init(&sqlJoins); + RETURN_MM(); } + RETURN_CCTOR(&decryptedValue); } - position = 0; - ZEPHIR_INIT_VAR(&sqlColumnAliases); - array_init(&sqlColumnAliases); - zephir_is_iterable(&selectColumns, 0, "phalcon/Mvc/Model/Query.zep", 3952); - if (Z_TYPE_P(&selectColumns) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&selectColumns), _82) - { - ZEPHIR_INIT_NVAR(&column); - ZVAL_COPY(&column, _82); - ZEPHIR_CALL_METHOD(&_84$$60, this_ptr, "getselectcolumn", &_85, 484, &column); + RETURN_MM_MEMBER(getThis(), "value"); +} + +static PHP_METHOD(Phalcon_Http_Cookie, isUsingEncryption) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "useEncryption"); +} + +static PHP_METHOD(Phalcon_Http_Cookie, restore) +{ + zend_bool _2$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval __$true, __$false, container, definition, domain, expire, httpOnly, options, path, secure, session, _0, _1$$3, _3$$3, _4$$3, _5$$4, _6$$4, _7$$5, _8$$5; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&domain); + ZVAL_UNDEF(&expire); + ZVAL_UNDEF(&httpOnly); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&secure); + ZVAL_UNDEF(&session); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$5); + ZVAL_UNDEF(&_8$$5); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_0))) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_1$$3); + _2$$3 = Z_TYPE_P(&container) == IS_OBJECT; + if (_2$$3) { + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "session"); + ZEPHIR_CALL_METHOD(&_3$$3, &container, "has", NULL, 0, &_4$$3); zephir_check_call_status(); - zephir_is_iterable(&_84$$60, 0, "phalcon/Mvc/Model/Query.zep", 3950); - if (Z_TYPE_P(&_84$$60) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_84$$60), _86$$60) - { - ZEPHIR_INIT_NVAR(&sqlColumn); - ZVAL_COPY(&sqlColumn, _86$$60); - ZEPHIR_OBS_NVAR(&alias); - if (zephir_array_isset_string_fetch(&alias, &column, SL("alias"), 0)) { - zephir_array_update_string(&sqlColumn, SL("balias"), &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&sqlColumn, SL("sqlAlias"), &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlColumns, &alias, &sqlColumn, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlColumnAliases, &alias, &__$true, PH_COPY | PH_SEPARATE); - } else { - ZEPHIR_OBS_NVAR(&alias); - if (zephir_array_isset_string_fetch(&alias, &sqlColumn, SL("balias"), 0)) { - zephir_array_update_zval(&sqlColumns, &alias, &sqlColumn, PH_COPY | PH_SEPARATE); - } else { - zephir_array_fetch_string(&_88$$65, &sqlColumn, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 3940); - if (ZEPHIR_IS_STRING(&_88$$65, "scalar")) { - ZEPHIR_INIT_NVAR(&_89$$66); - ZVAL_LONG(&_89$$66, position); - ZEPHIR_INIT_NVAR(&_90$$66); - ZEPHIR_CONCAT_SV(&_90$$66, "_", &_89$$66); - zephir_array_update_zval(&sqlColumns, &_90$$66, &sqlColumn, PH_COPY | PH_SEPARATE); - } else { - zephir_array_append(&sqlColumns, &sqlColumn, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3943); - } - } - } - position++; - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_84$$60, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_87$$60, &_84$$60, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_87$$60)) { - break; - } - ZEPHIR_CALL_METHOD(&sqlColumn, &_84$$60, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&alias); - if (zephir_array_isset_string_fetch(&alias, &column, SL("alias"), 0)) { - zephir_array_update_string(&sqlColumn, SL("balias"), &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&sqlColumn, SL("sqlAlias"), &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlColumns, &alias, &sqlColumn, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlColumnAliases, &alias, &__$true, PH_COPY | PH_SEPARATE); - } else { - ZEPHIR_OBS_NVAR(&alias); - if (zephir_array_isset_string_fetch(&alias, &sqlColumn, SL("balias"), 0)) { - zephir_array_update_zval(&sqlColumns, &alias, &sqlColumn, PH_COPY | PH_SEPARATE); - } else { - zephir_array_fetch_string(&_91$$72, &sqlColumn, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 3940); - if (ZEPHIR_IS_STRING(&_91$$72, "scalar")) { - ZEPHIR_INIT_NVAR(&_92$$73); - ZVAL_LONG(&_92$$73, position); - ZEPHIR_INIT_NVAR(&_93$$73); - ZEPHIR_CONCAT_SV(&_93$$73, "_", &_92$$73); - zephir_array_update_zval(&sqlColumns, &_93$$73, &sqlColumn, PH_COPY | PH_SEPARATE); - } else { - zephir_array_append(&sqlColumns, &sqlColumn, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3943); - } - } - } - position++; - ZEPHIR_CALL_METHOD(NULL, &_84$$60, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&sqlColumn); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &selectColumns, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_83, &selectColumns, "valid", NULL, 0); + _2$$3 = zephir_is_true(&_3$$3); + } + if (_2$$3) { + ZEPHIR_INIT_VAR(&_5$$4); + ZVAL_STRING(&_5$$4, "session"); + ZEPHIR_CALL_METHOD(&session, &container, "getshared", NULL, 0, &_5$$4); zephir_check_call_status(); - if (!zend_is_true(&_83)) { - break; - } - ZEPHIR_CALL_METHOD(&column, &selectColumns, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&_6$$4, &session, "exists", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_94$$75, this_ptr, "getselectcolumn", &_85, 484, &column); + if (zephir_is_true(&_6$$4)) { + zephir_read_property(&_7$$5, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_8$$5); + ZEPHIR_CONCAT_SV(&_8$$5, "_PHCOOKIE_", &_7$$5); + ZEPHIR_CALL_METHOD(&definition, &session, "get", NULL, 0, &_8$$5); zephir_check_call_status(); - zephir_is_iterable(&_94$$75, 0, "phalcon/Mvc/Model/Query.zep", 3950); - if (Z_TYPE_P(&_94$$75) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_94$$75), _95$$75) - { - ZEPHIR_INIT_NVAR(&sqlColumn); - ZVAL_COPY(&sqlColumn, _95$$75); - ZEPHIR_OBS_NVAR(&alias); - if (zephir_array_isset_string_fetch(&alias, &column, SL("alias"), 0)) { - zephir_array_update_string(&sqlColumn, SL("balias"), &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&sqlColumn, SL("sqlAlias"), &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlColumns, &alias, &sqlColumn, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlColumnAliases, &alias, &__$true, PH_COPY | PH_SEPARATE); - } else { - ZEPHIR_OBS_NVAR(&alias); - if (zephir_array_isset_string_fetch(&alias, &sqlColumn, SL("balias"), 0)) { - zephir_array_update_zval(&sqlColumns, &alias, &sqlColumn, PH_COPY | PH_SEPARATE); - } else { - zephir_array_fetch_string(&_97$$80, &sqlColumn, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 3940); - if (ZEPHIR_IS_STRING(&_97$$80, "scalar")) { - ZEPHIR_INIT_NVAR(&_98$$81); - ZVAL_LONG(&_98$$81, position); - ZEPHIR_INIT_NVAR(&_99$$81); - ZEPHIR_CONCAT_SV(&_99$$81, "_", &_98$$81); - zephir_array_update_zval(&sqlColumns, &_99$$81, &sqlColumn, PH_COPY | PH_SEPARATE); - } else { - zephir_array_append(&sqlColumns, &sqlColumn, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3943); - } - } - } - position++; - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_94$$75, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_96$$75, &_94$$75, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_96$$75)) { - break; - } - ZEPHIR_CALL_METHOD(&sqlColumn, &_94$$75, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&alias); - if (zephir_array_isset_string_fetch(&alias, &column, SL("alias"), 0)) { - zephir_array_update_string(&sqlColumn, SL("balias"), &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&sqlColumn, SL("sqlAlias"), &alias, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlColumns, &alias, &sqlColumn, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlColumnAliases, &alias, &__$true, PH_COPY | PH_SEPARATE); - } else { - ZEPHIR_OBS_NVAR(&alias); - if (zephir_array_isset_string_fetch(&alias, &sqlColumn, SL("balias"), 0)) { - zephir_array_update_zval(&sqlColumns, &alias, &sqlColumn, PH_COPY | PH_SEPARATE); - } else { - zephir_array_fetch_string(&_100$$87, &sqlColumn, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 3940); - if (ZEPHIR_IS_STRING(&_100$$87, "scalar")) { - ZEPHIR_INIT_NVAR(&_101$$88); - ZVAL_LONG(&_101$$88, position); - ZEPHIR_INIT_NVAR(&_102$$88); - ZEPHIR_CONCAT_SV(&_102$$88, "_", &_101$$88); - zephir_array_update_zval(&sqlColumns, &_102$$88, &sqlColumn, PH_COPY | PH_SEPARATE); - } else { - zephir_array_append(&sqlColumns, &sqlColumn, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 3943); - } - } - } - position++; - ZEPHIR_CALL_METHOD(NULL, &_94$$75, "next", NULL, 0); - zephir_check_call_status(); - } + if (zephir_array_isset_string_fetch(&expire, &definition, SL("expire"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("expire"), &expire); } - ZEPHIR_INIT_NVAR(&sqlColumn); - ZEPHIR_CALL_METHOD(NULL, &selectColumns, "next", NULL, 0); - zephir_check_call_status(); + if (zephir_array_isset_string_fetch(&domain, &definition, SL("domain"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("domain"), &domain); + } + if (zephir_array_isset_string_fetch(&path, &definition, SL("path"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("path"), &path); + } + if (zephir_array_isset_string_fetch(&secure, &definition, SL("secure"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("secure"), &secure); + } + if (zephir_array_isset_string_fetch(&httpOnly, &definition, SL("httpOnly"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("httpOnly"), &httpOnly); + } + if (zephir_array_isset_string_fetch(&options, &definition, SL("options"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + } + } + } + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("restored"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("restored"), &__$false); } } - ZEPHIR_INIT_NVAR(&column); - ZEPHIR_OBS_VAR(&_103); - zephir_read_property(&_103, this_ptr, ZEND_STRL("nestingLevel"), PH_NOISY_CC); - zephir_update_property_array(this_ptr, SL("sqlColumnAliases"), &_103, &sqlColumnAliases); - ZEPHIR_INIT_VAR(&sqlSelect); - zephir_create_array(&sqlSelect, 3, 0); - zephir_array_update_string(&sqlSelect, SL("models"), &sqlModels, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&sqlSelect, SL("tables"), &sqlTables, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&sqlSelect, SL("columns"), &sqlColumns, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_VAR(&distinct); - if (zephir_array_isset_string_fetch(&distinct, &select, SL("distinct"), 0)) { - zephir_array_update_string(&sqlSelect, SL("distinct"), &distinct, PH_COPY | PH_SEPARATE); - } - if (zephir_fast_count_int(&sqlJoins)) { - zephir_array_update_string(&sqlSelect, SL("joins"), &sqlJoins, PH_COPY | PH_SEPARATE); - } - ZEPHIR_OBS_VAR(&where); - if (zephir_array_isset_string_fetch(&where, ast, SL("where"), 0)) { - ZEPHIR_CALL_METHOD(&_104$$92, this_ptr, "getexpression", NULL, 468, &where); - zephir_check_call_status(); - zephir_array_update_string(&sqlSelect, SL("where"), &_104$$92, PH_COPY | PH_SEPARATE); - } - ZEPHIR_OBS_VAR(&groupBy); - if (zephir_array_isset_string_fetch(&groupBy, ast, SL("groupBy"), 0)) { - ZEPHIR_CALL_METHOD(&_105$$93, this_ptr, "getgroupclause", NULL, 485, &groupBy); - zephir_check_call_status(); - zephir_array_update_string(&sqlSelect, SL("group"), &_105$$93, PH_COPY | PH_SEPARATE); - } - ZEPHIR_OBS_VAR(&having); - if (zephir_array_isset_string_fetch(&having, ast, SL("having"), 0)) { - ZEPHIR_CALL_METHOD(&_106$$94, this_ptr, "getexpression", NULL, 468, &having); - zephir_check_call_status(); - zephir_array_update_string(&sqlSelect, SL("having"), &_106$$94, PH_COPY | PH_SEPARATE); - } - ZEPHIR_OBS_VAR(&order); - if (zephir_array_isset_string_fetch(&order, ast, SL("orderBy"), 0)) { - ZEPHIR_CALL_METHOD(&_107$$95, this_ptr, "getorderclause", NULL, 486, &order); - zephir_check_call_status(); - zephir_array_update_string(&sqlSelect, SL("order"), &_107$$95, PH_COPY | PH_SEPARATE); - } - ZEPHIR_OBS_VAR(&limit); - if (zephir_array_isset_string_fetch(&limit, ast, SL("limit"), 0)) { - ZEPHIR_CALL_METHOD(&_108$$96, this_ptr, "getlimitclause", NULL, 482, &limit); - zephir_check_call_status(); - zephir_array_update_string(&sqlSelect, SL("limit"), &_108$$96, PH_COPY | PH_SEPARATE); - } - if (zephir_array_isset_string(ast, SL("forUpdate"))) { - zephir_array_update_string(&sqlSelect, SL("forUpdate"), &__$true, PH_COPY | PH_SEPARATE); - } - if (merge) { - zephir_update_property_zval(this_ptr, ZEND_STRL("models"), &tempModels); - zephir_update_property_zval(this_ptr, ZEND_STRL("modelsInstances"), &tempModelsInstances); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliases"), &tempSqlAliases); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliasesModels"), &tempSqlAliasesModels); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlModelsAliases"), &tempSqlModelsAliases); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), &tempSqlAliasesModelsInstances); - } - RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("nestingLevel"))); - RETURN_CCTOR(&sqlSelect); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query, _prepareUpdate) +static PHP_METHOD(Phalcon_Http_Cookie, send) { - zval _15$$20, _22$$21; - zend_bool notQuoting = 0; + zval _15$$14, _16$$15; + zend_bool _1, _7; + zval container, crypt, definition, encryptValue, expire, domain, httpOnly, name, options, path, secure, session, signKey, value, _0, _2, _3, _17, _19, _20, _21, _22, _4$$9, _5$$9, _6$$10, _8$$12, _9$$12, _11$$12, _12$$11, _13$$11, _14$$11; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval __$null, ast, update, tables, values, modelsInstances, models, sqlTables, sqlAliases, sqlAliasesModelsInstances, updateTables, completeSource, sqlModels, manager, table, qualifiedName, modelName, model, source, schema, alias, sqlFields, sqlValues, updateValues, updateValue, exprColumn, sqlUpdate, where, limit, _0, *_1, _2, *_9, _10, _4$$9, _5$$10, _7$$14, _8$$15, _11$$20, _12$$20, _13$$20, _16$$20, _17$$20, _18$$20, _19$$21, _20$$21, _21$$21, _23$$21, _24$$21, _25$$21, _26$$22, _27$$22, _28$$23; - zephir_fcall_cache_entry *_3 = NULL, *_6 = NULL, *_14 = NULL; + zephir_fcall_cache_entry *_10 = NULL, *_18 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&ast); - ZVAL_UNDEF(&update); - ZVAL_UNDEF(&tables); - ZVAL_UNDEF(&values); - ZVAL_UNDEF(&modelsInstances); - ZVAL_UNDEF(&models); - ZVAL_UNDEF(&sqlTables); - ZVAL_UNDEF(&sqlAliases); - ZVAL_UNDEF(&sqlAliasesModelsInstances); - ZVAL_UNDEF(&updateTables); - ZVAL_UNDEF(&completeSource); - ZVAL_UNDEF(&sqlModels); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&qualifiedName); - ZVAL_UNDEF(&modelName); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&alias); - ZVAL_UNDEF(&sqlFields); - ZVAL_UNDEF(&sqlValues); - ZVAL_UNDEF(&updateValues); - ZVAL_UNDEF(&updateValue); - ZVAL_UNDEF(&exprColumn); - ZVAL_UNDEF(&sqlUpdate); - ZVAL_UNDEF(&where); - ZVAL_UNDEF(&limit); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&crypt); + ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&encryptValue); + ZVAL_UNDEF(&expire); + ZVAL_UNDEF(&domain); + ZVAL_UNDEF(&httpOnly); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&secure); + ZVAL_UNDEF(&session); + ZVAL_UNDEF(&signKey); + ZVAL_UNDEF(&value); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_17); + ZVAL_UNDEF(&_19); + ZVAL_UNDEF(&_20); + ZVAL_UNDEF(&_21); + ZVAL_UNDEF(&_22); ZVAL_UNDEF(&_4$$9); - ZVAL_UNDEF(&_5$$10); - ZVAL_UNDEF(&_7$$14); - ZVAL_UNDEF(&_8$$15); - ZVAL_UNDEF(&_11$$20); - ZVAL_UNDEF(&_12$$20); - ZVAL_UNDEF(&_13$$20); - ZVAL_UNDEF(&_16$$20); - ZVAL_UNDEF(&_17$$20); - ZVAL_UNDEF(&_18$$20); - ZVAL_UNDEF(&_19$$21); - ZVAL_UNDEF(&_20$$21); - ZVAL_UNDEF(&_21$$21); - ZVAL_UNDEF(&_23$$21); - ZVAL_UNDEF(&_24$$21); - ZVAL_UNDEF(&_25$$21); - ZVAL_UNDEF(&_26$$22); - ZVAL_UNDEF(&_27$$22); - ZVAL_UNDEF(&_28$$23); - ZVAL_UNDEF(&_15$$20); - ZVAL_UNDEF(&_22$$21); + ZVAL_UNDEF(&_5$$9); + ZVAL_UNDEF(&_6$$10); + ZVAL_UNDEF(&_8$$12); + ZVAL_UNDEF(&_9$$12); + ZVAL_UNDEF(&_11$$12); + ZVAL_UNDEF(&_12$$11); + ZVAL_UNDEF(&_13$$11); + ZVAL_UNDEF(&_14$$11); + ZVAL_UNDEF(&_15$$14); + ZVAL_UNDEF(&_16$$15); ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("ast"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&ast, &_0); - ZEPHIR_OBS_VAR(&update); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&update, &ast, SL("update"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted UPDATE AST", "phalcon/Mvc/Model/Query.zep", 4029); - return; - } - ZEPHIR_OBS_VAR(&tables); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&tables, &update, SL("tables"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted UPDATE AST", "phalcon/Mvc/Model/Query.zep", 4033); - return; - } - ZEPHIR_OBS_VAR(&values); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&values, &update, SL("values"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Corrupted UPDATE AST", "phalcon/Mvc/Model/Query.zep", 4037); - return; + zephir_read_property(&_0, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&name, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("value"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&value, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("expire"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&expire, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("domain"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&domain, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("path"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&path, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("secure"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&secure, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("httpOnly"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&httpOnly, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&options, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + ZEPHIR_INIT_VAR(&definition); + array_init(&definition); + if (!ZEPHIR_IS_LONG(&expire, 0)) { + zephir_array_update_string(&definition, SL("expire"), &expire, PH_COPY | PH_SEPARATE); } - ZEPHIR_INIT_VAR(&models); - array_init(&models); - ZEPHIR_INIT_VAR(&modelsInstances); - array_init(&modelsInstances); - ZEPHIR_INIT_VAR(&sqlTables); - array_init(&sqlTables); - ZEPHIR_INIT_VAR(&sqlModels); - array_init(&sqlModels); - ZEPHIR_INIT_VAR(&sqlAliases); - array_init(&sqlAliases); - ZEPHIR_INIT_VAR(&sqlAliasesModelsInstances); - array_init(&sqlAliasesModelsInstances); - if (!(zephir_array_isset_long(&tables, 0))) { - ZEPHIR_INIT_VAR(&updateTables); - zephir_create_array(&updateTables, 1, 0); - zephir_array_fast_append(&updateTables, &tables); - } else { - ZEPHIR_CPY_WRT(&updateTables, &tables); + if (!(ZEPHIR_IS_EMPTY(&path))) { + zephir_array_update_string(&definition, SL("path"), &path, PH_COPY | PH_SEPARATE); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&manager, &_0); - zephir_is_iterable(&updateTables, 0, "phalcon/Mvc/Model/Query.zep", 4103); - if (Z_TYPE_P(&updateTables) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&updateTables), _1) - { - ZEPHIR_INIT_NVAR(&table); - ZVAL_COPY(&table, _1); - ZEPHIR_OBS_NVAR(&qualifiedName); - zephir_array_fetch_string(&qualifiedName, &table, SL("qualifiedName"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 4061); - ZEPHIR_OBS_NVAR(&modelName); - zephir_array_fetch_string(&modelName, &qualifiedName, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 4062); - ZEPHIR_CALL_METHOD(&model, &manager, "load", &_3, 0, &modelName); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&source, &model, "getsource", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&schema, &model, "getschema", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&completeSource); - if (zephir_is_true(&schema)) { - ZEPHIR_INIT_NVAR(&_4$$9); - zephir_create_array(&_4$$9, 2, 0); - zephir_array_fast_append(&_4$$9, &source); - zephir_array_fast_append(&_4$$9, &schema); - ZEPHIR_CPY_WRT(&completeSource, &_4$$9); - } else { - ZEPHIR_INIT_NVAR(&_5$$10); - zephir_create_array(&_5$$10, 2, 0); - zephir_array_fast_append(&_5$$10, &source); - zephir_array_fast_append(&_5$$10, &__$null); - ZEPHIR_CPY_WRT(&completeSource, &_5$$10); - } - ZEPHIR_OBS_NVAR(&alias); - if (zephir_array_isset_string_fetch(&alias, &table, SL("alias"), 0)) { - zephir_array_update_zval(&sqlAliases, &alias, &alias, PH_COPY | PH_SEPARATE); - zephir_array_append(&completeSource, &alias, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4085); - zephir_array_append(&sqlTables, &completeSource, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4086); - zephir_array_update_zval(&sqlAliasesModelsInstances, &alias, &model, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&models, &alias, &modelName, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&sqlAliases, &modelName, &source, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliasesModelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); - zephir_array_append(&sqlTables, &source, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4092); - zephir_array_update_zval(&models, &modelName, &source, PH_COPY | PH_SEPARATE); - } - zephir_array_append(&sqlModels, &modelName, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4096); - zephir_array_update_zval(&modelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &updateTables, "rewind", NULL, 0); + if (!(ZEPHIR_IS_EMPTY(&domain))) { + zephir_array_update_string(&definition, SL("domain"), &domain, PH_COPY | PH_SEPARATE); + } + if (!(ZEPHIR_IS_EMPTY(&secure))) { + zephir_array_update_string(&definition, SL("secure"), &secure, PH_COPY | PH_SEPARATE); + } + if (!(ZEPHIR_IS_EMPTY(&httpOnly))) { + zephir_array_update_string(&definition, SL("httpOnly"), &httpOnly, PH_COPY | PH_SEPARATE); + } + if (!(ZEPHIR_IS_EMPTY(&options))) { + zephir_array_update_string(&definition, SL("options"), &options, PH_COPY | PH_SEPARATE); + } + _1 = ((zephir_fast_count_int(&definition)) ? 1 : 0); + if (_1) { + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "session"); + ZEPHIR_CALL_METHOD(&_2, &container, "has", NULL, 0, &_3); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &updateTables, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&table, &updateTables, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&qualifiedName); - zephir_array_fetch_string(&qualifiedName, &table, SL("qualifiedName"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 4061); - ZEPHIR_OBS_NVAR(&modelName); - zephir_array_fetch_string(&modelName, &qualifiedName, SL("name"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 4062); - ZEPHIR_CALL_METHOD(&model, &manager, "load", &_6, 0, &modelName); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&source, &model, "getsource", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&schema, &model, "getschema", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&schema)) { - ZEPHIR_INIT_NVAR(&_7$$14); - zephir_create_array(&_7$$14, 2, 0); - zephir_array_fast_append(&_7$$14, &source); - zephir_array_fast_append(&_7$$14, &schema); - ZEPHIR_CPY_WRT(&completeSource, &_7$$14); - } else { - ZEPHIR_INIT_NVAR(&_8$$15); - zephir_create_array(&_8$$15, 2, 0); - zephir_array_fast_append(&_8$$15, &source); - zephir_array_fast_append(&_8$$15, &__$null); - ZEPHIR_CPY_WRT(&completeSource, &_8$$15); - } - ZEPHIR_OBS_NVAR(&alias); - if (zephir_array_isset_string_fetch(&alias, &table, SL("alias"), 0)) { - zephir_array_update_zval(&sqlAliases, &alias, &alias, PH_COPY | PH_SEPARATE); - zephir_array_append(&completeSource, &alias, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4085); - zephir_array_append(&sqlTables, &completeSource, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4086); - zephir_array_update_zval(&sqlAliasesModelsInstances, &alias, &model, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&models, &alias, &modelName, PH_COPY | PH_SEPARATE); - } else { - zephir_array_update_zval(&sqlAliases, &modelName, &source, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&sqlAliasesModelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); - zephir_array_append(&sqlTables, &source, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4092); - zephir_array_update_zval(&models, &modelName, &source, PH_COPY | PH_SEPARATE); - } - zephir_array_append(&sqlModels, &modelName, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4096); - zephir_array_update_zval(&modelsInstances, &modelName, &model, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &updateTables, "next", NULL, 0); + _1 = zephir_is_true(&_2); + } + if (_1) { + ZEPHIR_INIT_VAR(&_5$$9); + ZVAL_STRING(&_5$$9, "session"); + ZEPHIR_CALL_METHOD(&_4$$9, &container, "getshared", NULL, 0, &_5$$9); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&session, &_4$$9); + ZEPHIR_CALL_METHOD(&_4$$9, &session, "exists", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_4$$9)) { + ZEPHIR_INIT_VAR(&_6$$10); + ZEPHIR_CONCAT_SV(&_6$$10, "_PHCOOKIE_", &name); + ZEPHIR_CALL_METHOD(NULL, &session, "set", NULL, 0, &_6$$10, &definition); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&table); - zephir_update_property_zval(this_ptr, ZEND_STRL("models"), &models); - zephir_update_property_zval(this_ptr, ZEND_STRL("modelsInstances"), &modelsInstances); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliases"), &sqlAliases); - zephir_update_property_zval(this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), &sqlAliasesModelsInstances); - ZEPHIR_INIT_VAR(&sqlFields); - array_init(&sqlFields); - ZEPHIR_INIT_VAR(&sqlValues); - array_init(&sqlValues); - if (!(zephir_array_isset_long(&values, 0))) { - ZEPHIR_INIT_VAR(&updateValues); - zephir_create_array(&updateValues, 1, 0); - zephir_array_fast_append(&updateValues, &values); - } else { - ZEPHIR_CPY_WRT(&updateValues, &values); + zephir_read_property(&_0, this_ptr, ZEND_STRL("useEncryption"), PH_NOISY_CC | PH_READONLY); + _7 = zephir_is_true(&_0); + if (_7) { + _7 = !(ZEPHIR_IS_EMPTY(&value)); } - notQuoting = 0; - zephir_is_iterable(&updateValues, 0, "phalcon/Mvc/Model/Query.zep", 4127); - if (Z_TYPE_P(&updateValues) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&updateValues), _9) - { - ZEPHIR_INIT_NVAR(&updateValue); - ZVAL_COPY(&updateValue, _9); - zephir_array_fetch_string(&_12$$20, &updateValue, SL("column"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 4119); - if (notQuoting) { - ZVAL_BOOL(&_13$$20, 1); - } else { - ZVAL_BOOL(&_13$$20, 0); - } - ZEPHIR_CALL_METHOD(&_11$$20, this_ptr, "getexpression", &_14, 468, &_12$$20, &_13$$20); - zephir_check_call_status(); - zephir_array_append(&sqlFields, &_11$$20, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4119); - ZEPHIR_OBS_NVAR(&exprColumn); - zephir_array_fetch_string(&exprColumn, &updateValue, SL("expr"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 4120); - ZEPHIR_INIT_NVAR(&_15$$20); - zephir_create_array(&_15$$20, 2, 0); - ZEPHIR_OBS_NVAR(&_16$$20); - zephir_array_fetch_string(&_16$$20, &exprColumn, SL("type"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 4122); - zephir_array_update_string(&_15$$20, SL("type"), &_16$$20, PH_COPY | PH_SEPARATE); - if (notQuoting) { - ZVAL_BOOL(&_18$$20, 1); - } else { - ZVAL_BOOL(&_18$$20, 0); - } - ZEPHIR_CALL_METHOD(&_17$$20, this_ptr, "getexpression", &_14, 468, &exprColumn, &_18$$20); - zephir_check_call_status(); - zephir_array_update_string(&_15$$20, SL("value"), &_17$$20, PH_COPY | PH_SEPARATE); - zephir_array_append(&sqlValues, &_15$$20, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4124); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &updateValues, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_10, &updateValues, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_10)) { - break; - } - ZEPHIR_CALL_METHOD(&updateValue, &updateValues, "current", NULL, 0); + if (_7) { + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_8$$12); + object_init_ex(&_8$$12, phalcon_http_response_exception_ce); + ZEPHIR_INIT_VAR(&_11$$12); + ZVAL_STRING(&_11$$12, "the 'filter' service"); + ZEPHIR_CALL_CE_STATIC(&_9$$12, phalcon_http_response_exception_ce, "containerservicenotfound", &_10, 0, &_11$$12); zephir_check_call_status(); - zephir_array_fetch_string(&_20$$21, &updateValue, SL("column"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query.zep", 4119); - if (notQuoting) { - ZVAL_BOOL(&_21$$21, 1); - } else { - ZVAL_BOOL(&_21$$21, 0); - } - ZEPHIR_CALL_METHOD(&_19$$21, this_ptr, "getexpression", &_14, 468, &_20$$21, &_21$$21); - zephir_check_call_status(); - zephir_array_append(&sqlFields, &_19$$21, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4119); - ZEPHIR_OBS_NVAR(&exprColumn); - zephir_array_fetch_string(&exprColumn, &updateValue, SL("expr"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 4120); - ZEPHIR_INIT_NVAR(&_22$$21); - zephir_create_array(&_22$$21, 2, 0); - ZEPHIR_OBS_NVAR(&_23$$21); - zephir_array_fetch_string(&_23$$21, &exprColumn, SL("type"), PH_NOISY, "phalcon/Mvc/Model/Query.zep", 4122); - zephir_array_update_string(&_22$$21, SL("type"), &_23$$21, PH_COPY | PH_SEPARATE); - if (notQuoting) { - ZVAL_BOOL(&_25$$21, 1); - } else { - ZVAL_BOOL(&_25$$21, 0); - } - ZEPHIR_CALL_METHOD(&_24$$21, this_ptr, "getexpression", &_14, 468, &exprColumn, &_25$$21); - zephir_check_call_status(); - zephir_array_update_string(&_22$$21, SL("value"), &_24$$21, PH_COPY | PH_SEPARATE); - zephir_array_append(&sqlValues, &_22$$21, PH_SEPARATE, "phalcon/Mvc/Model/Query.zep", 4124); - ZEPHIR_CALL_METHOD(NULL, &updateValues, "next", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &_8$$12, "__construct", NULL, 8, &_9$$12); zephir_check_call_status(); + zephir_throw_exception_debug(&_8$$12, "phalcon/Http/Cookie.zep", 469); + ZEPHIR_MM_RESTORE(); + return; } - } - ZEPHIR_INIT_NVAR(&updateValue); - ZEPHIR_INIT_VAR(&sqlUpdate); - zephir_create_array(&sqlUpdate, 4, 0); - zephir_array_update_string(&sqlUpdate, SL("tables"), &sqlTables, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&sqlUpdate, SL("models"), &sqlModels, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&sqlUpdate, SL("fields"), &sqlFields, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&sqlUpdate, SL("values"), &sqlValues, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_VAR(&where); - if (zephir_array_isset_string_fetch(&where, &ast, SL("where"), 0)) { - ZVAL_BOOL(&_27$$22, 1); - ZEPHIR_CALL_METHOD(&_26$$22, this_ptr, "getexpression", &_14, 468, &where, &_27$$22); - zephir_check_call_status(); - zephir_array_update_string(&sqlUpdate, SL("where"), &_26$$22, PH_COPY | PH_SEPARATE); - } - ZEPHIR_OBS_VAR(&limit); - if (zephir_array_isset_string_fetch(&limit, &ast, SL("limit"), 0)) { - ZEPHIR_CALL_METHOD(&_28$$23, this_ptr, "getlimitclause", NULL, 482, &limit); + ZEPHIR_INIT_VAR(&_13$$11); + ZVAL_STRING(&_13$$11, "crypt"); + ZEPHIR_CALL_METHOD(&_12$$11, &container, "getshared", NULL, 0, &_13$$11); zephir_check_call_status(); - zephir_array_update_string(&sqlUpdate, SL("limit"), &_28$$23, PH_COPY | PH_SEPARATE); - } - RETURN_CCTOR(&sqlUpdate); -} - -zend_object *zephir_init_properties_Phalcon_Mvc_Model_Query(zend_class_entry *class_type) -{ - zval _0, _2, _4, _6, _8, _10, _12, _14, _16, _1$$3, _3$$4, _5$$5, _7$$6, _9$$7, _11$$8, _13$$9, _15$$10, _17$$11; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_16); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_9$$7); - ZVAL_UNDEF(&_11$$8); - ZVAL_UNDEF(&_13$$9); - ZVAL_UNDEF(&_15$$10); - ZVAL_UNDEF(&_17$$11); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("sqlModelsAliases"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("sqlModelsAliases"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("sqlColumnAliases"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("sqlColumnAliases"), &_3$$4); - } - zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_4) == IS_NULL) { - ZEPHIR_INIT_VAR(&_5$$5); - array_init(&_5$$5); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("sqlAliasesModelsInstances"), &_5$$5); - } - zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("sqlAliasesModels"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_6) == IS_NULL) { - ZEPHIR_INIT_VAR(&_7$$6); - array_init(&_7$$6); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("sqlAliasesModels"), &_7$$6); - } - zephir_read_property_ex(&_8, this_ptr, ZEND_STRL("sqlAliases"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_8) == IS_NULL) { - ZEPHIR_INIT_VAR(&_9$$7); - array_init(&_9$$7); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("sqlAliases"), &_9$$7); - } - zephir_read_property_ex(&_10, this_ptr, ZEND_STRL("modelsInstances"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_10) == IS_NULL) { - ZEPHIR_INIT_VAR(&_11$$8); - array_init(&_11$$8); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("modelsInstances"), &_11$$8); - } - zephir_read_property_ex(&_12, this_ptr, ZEND_STRL("models"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_12) == IS_NULL) { - ZEPHIR_INIT_VAR(&_13$$9); - array_init(&_13$$9); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("models"), &_13$$9); - } - zephir_read_property_ex(&_14, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_14) == IS_NULL) { - ZEPHIR_INIT_VAR(&_15$$10); - array_init(&_15$$10); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("bindTypes"), &_15$$10); + ZEPHIR_CPY_WRT(&crypt, &_12$$11); + if (UNEXPECTED(Z_TYPE_P(&crypt) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_response_exception_ce, "A dependency which implements CryptInterface is required to use encryption", "phalcon/Http/Cookie.zep", 477); + return; } - zephir_read_property_ex(&_16, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_16) == IS_NULL) { - ZEPHIR_INIT_VAR(&_17$$11); - array_init(&_17$$11); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("bindParams"), &_17$$11); + zephir_read_property(&_14$$11, this_ptr, ZEND_STRL("signKey"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&signKey, &_14$$11); + if (Z_TYPE_P(&signKey) == IS_STRING) { + zephir_cast_to_string(&_15$$14, &value); + ZEPHIR_CALL_METHOD(&encryptValue, &crypt, "encryptbase64", NULL, 0, &_15$$14, &signKey); + zephir_check_call_status(); + } else { + zephir_cast_to_string(&_16$$15, &value); + ZEPHIR_CALL_METHOD(&encryptValue, &crypt, "encryptbase64", NULL, 0, &_16$$15); + zephir_check_call_status(); } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); + } else { + ZEPHIR_CPY_WRT(&encryptValue, &value); } + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "expires"); + ZEPHIR_CALL_CE_STATIC(&_17, phalcon_helper_arr_ce, "get", &_18, 16, &options, &_3, &expire); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("expires"), &_17, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "domain"); + ZEPHIR_CALL_CE_STATIC(&_19, phalcon_helper_arr_ce, "get", &_18, 16, &options, &_3, &domain); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("domain"), &_19, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "path"); + ZEPHIR_CALL_CE_STATIC(&_20, phalcon_helper_arr_ce, "get", &_18, 16, &options, &_3, &path); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("path"), &_20, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "secure"); + ZEPHIR_CALL_CE_STATIC(&_21, phalcon_helper_arr_ce, "get", &_18, 16, &options, &_3, &secure); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("secure"), &_21, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "httponly"); + ZEPHIR_CALL_CE_STATIC(&_22, phalcon_helper_arr_ce, "get", &_18, 16, &options, &_3, &httpOnly); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("httponly"), &_22, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_FUNCTION(NULL, "setcookie", NULL, 280, &name, &encryptValue, &options); + zephir_check_call_status(); + RETURN_THIS(); } - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_QueryInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model, QueryInterface, phalcon, mvc_model_queryinterface, phalcon_mvc_model_queryinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, cache); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, execute); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, getBindParams); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, getCacheOptions); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, getBindTypes); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, getSql); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, getSingleResult); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, getUniqueRow); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, parse); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, setBindParams); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, setBindTypes); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, setSharedLock); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_QueryInterface, setUniqueRow); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Relation) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model, Relation, phalcon, mvc_model_relation, phalcon_mvc_model_relation_method_entry, 0); - - zend_declare_property_null(phalcon_mvc_model_relation_ce, SL("fields"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_relation_ce, SL("intermediateFields"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_relation_ce, SL("intermediateModel"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_relation_ce, SL("intermediateReferencedFields"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_relation_ce, SL("options"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_relation_ce, SL("referencedFields"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_relation_ce, SL("referencedModel"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_relation_ce, SL("type"), ZEND_ACC_PROTECTED); - phalcon_mvc_model_relation_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_Relation; - zephir_declare_class_constant_long(phalcon_mvc_model_relation_ce, SL("ACTION_CASCADE"), 2); - - zephir_declare_class_constant_long(phalcon_mvc_model_relation_ce, SL("ACTION_RESTRICT"), 1); - - zephir_declare_class_constant_long(phalcon_mvc_model_relation_ce, SL("BELONGS_TO"), 0); - - zephir_declare_class_constant_long(phalcon_mvc_model_relation_ce, SL("HAS_MANY"), 2); - - zephir_declare_class_constant_long(phalcon_mvc_model_relation_ce, SL("HAS_MANY_THROUGH"), 4); - - zephir_declare_class_constant_long(phalcon_mvc_model_relation_ce, SL("HAS_ONE"), 1); - - zephir_declare_class_constant_long(phalcon_mvc_model_relation_ce, SL("HAS_ONE_THROUGH"), 3); - - zephir_declare_class_constant_long(phalcon_mvc_model_relation_ce, SL("NO_ACTION"), 0); - - zend_class_implements(phalcon_mvc_model_relation_ce, 1, phalcon_mvc_model_relationinterface_ce); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Mvc_Model_Relation, __construct) +static PHP_METHOD(Phalcon_Http_Cookie, setDomain) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval options; - zval referencedModel; - zval *type_param = NULL, *referencedModel_param = NULL, *fields, fields_sub, *referencedFields, referencedFields_sub, *options_param = NULL, _0; - zend_long type; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *domain_param = NULL, _0; + zval domain; zval *this_ptr = getThis(); - ZVAL_UNDEF(&fields_sub); - ZVAL_UNDEF(&referencedFields_sub); + ZVAL_UNDEF(&domain); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&referencedModel); - ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(4, 5) - Z_PARAM_LONG(type) - Z_PARAM_STR(referencedModel) - Z_PARAM_ZVAL(fields) - Z_PARAM_ZVAL(referencedFields) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(domain) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 4, 1, &type_param, &referencedModel_param, &fields, &referencedFields, &options_param); - type = zephir_get_intval(type_param); - if (UNEXPECTED(Z_TYPE_P(referencedModel_param) != IS_STRING && Z_TYPE_P(referencedModel_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referencedModel' must be of the type string")); + zephir_fetch_params(1, 1, 0, &domain_param); + if (UNEXPECTED(Z_TYPE_P(domain_param) != IS_STRING && Z_TYPE_P(domain_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'domain' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(referencedModel_param) == IS_STRING)) { - zephir_get_strval(&referencedModel, referencedModel_param); - } else { - ZEPHIR_INIT_VAR(&referencedModel); - } - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); + if (EXPECTED(Z_TYPE_P(domain_param) == IS_STRING)) { + zephir_get_strval(&domain, domain_param); } else { - zephir_get_arrval(&options, options_param); + ZEPHIR_INIT_VAR(&domain); } - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, type); - zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("referencedModel"), &referencedModel); - zephir_update_property_zval(this_ptr, ZEND_STRL("fields"), fields); - zephir_update_property_zval(this_ptr, ZEND_STRL("referencedFields"), referencedFields); - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Relation, getFields) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "fields"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_0))) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); + zephir_check_call_status(); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("domain"), &domain); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Relation, getForeignKey) +static PHP_METHOD(Phalcon_Http_Cookie, setExpiration) { - zval options, foreignKey, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *expire_param = NULL, _0, _1; + zend_long expire, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&foreignKey); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(expire) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &expire_param); + expire = zephir_get_intval(expire_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&options, &_0); - if (zephir_array_isset_string_fetch(&foreignKey, &options, SL("foreignKey"), 1)) { - if (zephir_is_true(&foreignKey)) { - RETURN_CTOR(&foreignKey); - } + + zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_0))) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); + zephir_check_call_status(); } - RETURN_MM_BOOL(0); + ZEPHIR_INIT_ZVAL_NREF(_1); + ZVAL_LONG(&_1, expire); + zephir_update_property_zval(this_ptr, ZEND_STRL("expire"), &_1); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Relation, getIntermediateFields) +static PHP_METHOD(Phalcon_Http_Cookie, setHttpOnly) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *httpOnly_param = NULL, __$true, __$false, _0; + zend_bool httpOnly; zval *this_ptr = getThis(); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(httpOnly) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "intermediateFields"); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Relation, getIntermediateModel) -{ - zval *this_ptr = getThis(); - + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &httpOnly_param); + httpOnly = zephir_get_boolval(httpOnly_param); - RETURN_MEMBER(getThis(), "intermediateModel"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_0))) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); + zephir_check_call_status(); + } + if (httpOnly) { + zephir_update_property_zval(this_ptr, ZEND_STRL("httpOnly"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("httpOnly"), &__$false); + } + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Relation, getIntermediateReferencedFields) +static PHP_METHOD(Phalcon_Http_Cookie, setOptions) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); + ZVAL_UNDEF(&options); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &options_param); + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); - RETURN_MEMBER(getThis(), "intermediateReferencedFields"); + + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Relation, getOption) +static PHP_METHOD(Phalcon_Http_Cookie, setPath) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, option, _0; - zval name; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *path_param = NULL, _0; + zval path; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&option); + ZVAL_UNDEF(&path); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + Z_PARAM_STR(path) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + zephir_fetch_params(1, 1, 0, &path_param); + if (UNEXPECTED(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 of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); + if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { + zephir_get_strval(&path, path_param); } else { - ZEPHIR_INIT_VAR(&name); + ZEPHIR_INIT_VAR(&path); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&option, &_0, &name, 1))) { - RETURN_MM_NULL(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_0))) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); + zephir_check_call_status(); } - RETURN_CTOR(&option); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Relation, getOptions) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "options"); + zephir_update_property_zval(this_ptr, ZEND_STRL("path"), &path); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Relation, getParams) +static PHP_METHOD(Phalcon_Http_Cookie, setSecure) { - zval options, params, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *secure_param = NULL, __$true, __$false, _0; + zend_bool secure; zval *this_ptr = getThis(); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(¶ms); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(secure) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &secure_param); + secure = zephir_get_boolval(secure_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&options, &_0); - ZEPHIR_OBS_VAR(¶ms); - if (zephir_array_isset_string_fetch(¶ms, &options, SL("params"), 0)) { - if (zephir_is_true(¶ms)) { - if (zephir_is_callable(¶ms)) { - ZEPHIR_CALL_USER_FUNC(return_value, ¶ms); - zephir_check_call_status(); - RETURN_MM(); - } - RETURN_CCTOR(¶ms); - } + + zephir_read_property(&_0, this_ptr, ZEND_STRL("restored"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_0))) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "restore", NULL, 0); + zephir_check_call_status(); } - RETURN_MM_BOOL(0); + if (secure) { + zephir_update_property_zval(this_ptr, ZEND_STRL("secure"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("secure"), &__$false); + } + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Relation, getType) +static PHP_METHOD(Phalcon_Http_Cookie, setSignKey) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *signKey_param = NULL; + zval signKey; zval *this_ptr = getThis(); + ZVAL_UNDEF(&signKey); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(signKey) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "type"); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Relation, getReferencedFields) -{ - zval *this_ptr = getThis(); - + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &signKey_param); + if (!signKey_param) { + ZEPHIR_INIT_VAR(&signKey); + } else { + zephir_get_strval(&signKey, signKey_param); + } - RETURN_MEMBER(getThis(), "referencedFields"); + if (!ZEPHIR_IS_NULL(&signKey)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "assertsignkeyislongenough", NULL, 0, &signKey); + zephir_check_call_status(); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("signKey"), &signKey); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Relation, getReferencedModel) +static PHP_METHOD(Phalcon_Http_Cookie, setValue) { + zval *value, value_sub, __$true, __$false; zval *this_ptr = getThis(); + ZVAL_UNDEF(&value_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "referencedModel"); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Relation, isForeignKey) -{ - zval foreignKey, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&foreignKey); - ZVAL_UNDEF(&_0); - + zephir_fetch_params_without_memory_grow(1, 0, &value); - zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_string_fetch(&foreignKey, &_0, SL("foreignKey"), 1))) { - RETURN_BOOL(0); + zephir_update_property_zval(this_ptr, ZEND_STRL("value"), value); + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("read"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("read"), &__$false); } - RETURN_BOOL(zephir_get_boolval(&foreignKey)); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_Model_Relation, isThrough) +static PHP_METHOD(Phalcon_Http_Cookie, useEncryption) { - zend_bool _1; - zval type, _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *useEncryption_param = NULL, __$true, __$false; + zend_bool useEncryption; zval *this_ptr = getThis(); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&type, &_0); - _1 = ZEPHIR_IS_LONG(&type, 3); - if (!(_1)) { - _1 = ZEPHIR_IS_LONG(&type, 4); - } - RETURN_MM_BOOL(_1); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Relation, isReusable) -{ - zval options, reusable, _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *this_ptr = getThis(); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(useEncryption) + ZEND_PARSE_PARAMETERS_END(); +#endif - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&reusable); - ZVAL_UNDEF(&_0); + zephir_fetch_params_without_memory_grow(1, 0, &useEncryption_param); + useEncryption = zephir_get_boolval(useEncryption_param); - ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&options, &_0); - if (!(zephir_array_isset_string_fetch(&reusable, &options, SL("reusable"), 1))) { - RETURN_MM_BOOL(0); + if (useEncryption) { + zephir_update_property_zval(this_ptr, ZEND_STRL("useEncryption"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("useEncryption"), &__$false); } - RETURN_CTOR(&reusable); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_Model_Relation, setIntermediateRelation) +static PHP_METHOD(Phalcon_Http_Cookie, assertSignKeyIsLongEnough) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval intermediateModel; - zval *intermediateFields, intermediateFields_sub, *intermediateModel_param = NULL, *intermediateReferencedFields, intermediateReferencedFields_sub; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *signKey_param = NULL, length, _0$$3, _1$$3, _2$$3; + zval signKey; zval *this_ptr = getThis(); - ZVAL_UNDEF(&intermediateFields_sub); - ZVAL_UNDEF(&intermediateReferencedFields_sub); - ZVAL_UNDEF(&intermediateModel); + ZVAL_UNDEF(&signKey); + ZVAL_UNDEF(&length); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_ZVAL(intermediateFields) - Z_PARAM_STR(intermediateModel) - Z_PARAM_ZVAL(intermediateReferencedFields) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(signKey) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &intermediateFields, &intermediateModel_param, &intermediateReferencedFields); - if (UNEXPECTED(Z_TYPE_P(intermediateModel_param) != IS_STRING && Z_TYPE_P(intermediateModel_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'intermediateModel' must be of the type string")); + zephir_fetch_params(1, 1, 0, &signKey_param); + if (UNEXPECTED(Z_TYPE_P(signKey_param) != IS_STRING && Z_TYPE_P(signKey_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'signKey' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(intermediateModel_param) == IS_STRING)) { - zephir_get_strval(&intermediateModel, intermediateModel_param); + if (EXPECTED(Z_TYPE_P(signKey_param) == IS_STRING)) { + zephir_get_strval(&signKey, signKey_param); } else { - ZEPHIR_INIT_VAR(&intermediateModel); + ZEPHIR_INIT_VAR(&signKey); } - zephir_update_property_zval(this_ptr, ZEND_STRL("intermediateFields"), intermediateFields); - zephir_update_property_zval(this_ptr, ZEND_STRL("intermediateModel"), &intermediateModel); - zephir_update_property_zval(this_ptr, ZEND_STRL("intermediateReferencedFields"), intermediateReferencedFields); + ZEPHIR_CALL_FUNCTION(&length, "mb_strlen", NULL, 281, &signKey); + zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_LT_LONG(&length, 32))) { + ZEPHIR_INIT_VAR(&_0$$3); + object_init_ex(&_0$$3, phalcon_http_cookie_exception_ce); + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, "The cookie's key should be at least 32 characters long. Current length is %d."); + ZEPHIR_CALL_FUNCTION(&_2$$3, "sprintf", NULL, 194, &_1$$3, &length); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 8, &_2$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_0$$3, "phalcon/Http/Cookie.zep", 656); + ZEPHIR_MM_RESTORE(); + return; + } ZEPHIR_MM_RESTORE(); } -zend_object *zephir_init_properties_Phalcon_Mvc_Model_Relation(zend_class_entry *class_type) +zend_object *zephir_init_properties_Phalcon_Http_Cookie(zend_class_entry *class_type) { zval _0, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; @@ -154152,348 +135354,208 @@ zend_object *zephir_init_properties_Phalcon_Mvc_Model_Relation(zend_class_entry -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_RelationInterface) +ZEPHIR_INIT_CLASS(Phalcon_Http_Request) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model, RelationInterface, phalcon, mvc_model_relationinterface, phalcon_mvc_model_relationinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getFields); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getForeignKey); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getIntermediateFields); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getIntermediateModel); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getIntermediateReferencedFields); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getOption); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getOptions); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getParams); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getReferencedFields); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getReferencedModel); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, getType); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, isForeignKey); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, isReusable); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, isThrough); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_RelationInterface, setIntermediateRelation); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http, Request, phalcon, http_request, phalcon_di_abstractinjectionaware_ce, phalcon_http_request_method_entry, 0); -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_ResultInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model, ResultInterface, phalcon, mvc_model_resultinterface, phalcon_mvc_model_resultinterface_method_entry); + zend_declare_property_null(phalcon_http_request_ce, SL("filterService"), ZEND_ACC_PRIVATE); + zend_declare_property_bool(phalcon_http_request_ce, SL("httpMethodParameterOverride"), 0, ZEND_ACC_PRIVATE); + zend_declare_property_null(phalcon_http_request_ce, SL("queryFilters"), ZEND_ACC_PRIVATE); + zend_declare_property_null(phalcon_http_request_ce, SL("putCache"), ZEND_ACC_PRIVATE); + zend_declare_property_string(phalcon_http_request_ce, SL("rawBody"), "", ZEND_ACC_PRIVATE); + zend_declare_property_bool(phalcon_http_request_ce, SL("strictHostCheck"), 0, ZEND_ACC_PRIVATE); + phalcon_http_request_ce->create_object = zephir_init_properties_Phalcon_Http_Request; + zend_class_implements(phalcon_http_request_ce, 1, phalcon_http_requestinterface_ce); + zend_class_implements(phalcon_http_request_ce, 1, phalcon_http_message_requestmethodinterface_ce); return SUCCESS; } -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultInterface, setDirtyState); - - - -#ifdef HAVE_CONFIG_H -#endif - +static PHP_METHOD(Phalcon_Http_Request, getHttpMethodParameterOverride) +{ + zval *this_ptr = getThis(); + RETURN_MEMBER(getThis(), "httpMethodParameterOverride"); +} -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset) +static PHP_METHOD(Phalcon_Http_Request, setHttpMethodParameterOverride) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model, Resultset, phalcon, mvc_model_resultset, phalcon_mvc_model_resultset_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("activeRow"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("cache"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_mvc_model_resultset_ce, SL("count"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("errorMessages"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_mvc_model_resultset_ce, SL("hydrateMode"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_model_resultset_ce, SL("isFresh"), 1, ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_mvc_model_resultset_ce, SL("pointer"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("row"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("rows"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_resultset_ce, SL("result"), ZEND_ACC_PROTECTED); - phalcon_mvc_model_resultset_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_Resultset; - zephir_declare_class_constant_long(phalcon_mvc_model_resultset_ce, SL("HYDRATE_ARRAYS"), 1); + zval *httpMethodParameterOverride_param = NULL, __$true, __$false; + zend_bool httpMethodParameterOverride; + zval *this_ptr = getThis(); - zephir_declare_class_constant_long(phalcon_mvc_model_resultset_ce, SL("HYDRATE_OBJECTS"), 2); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(httpMethodParameterOverride) + ZEND_PARSE_PARAMETERS_END(); +#endif - zephir_declare_class_constant_long(phalcon_mvc_model_resultset_ce, SL("HYDRATE_RECORDS"), 0); - zephir_declare_class_constant_long(phalcon_mvc_model_resultset_ce, SL("TYPE_RESULT_FULL"), 0); + zephir_fetch_params_without_memory_grow(1, 0, &httpMethodParameterOverride_param); + httpMethodParameterOverride = zephir_get_boolval(httpMethodParameterOverride_param); - zephir_declare_class_constant_long(phalcon_mvc_model_resultset_ce, SL("TYPE_RESULT_PARTIAL"), 1); - zend_class_implements(phalcon_mvc_model_resultset_ce, 1, phalcon_mvc_model_resultsetinterface_ce); - zend_class_implements(phalcon_mvc_model_resultset_ce, 1, zend_ce_iterator); - zend_class_implements(phalcon_mvc_model_resultset_ce, 1, spl_ce_SeekableIterator); - zend_class_implements(phalcon_mvc_model_resultset_ce, 1, zend_ce_countable); - zend_class_implements(phalcon_mvc_model_resultset_ce, 1, zend_ce_arrayaccess); - zend_class_implements(phalcon_mvc_model_resultset_ce, 1, zend_ce_serializable); - zend_class_implements(phalcon_mvc_model_resultset_ce, 1, zephir_get_internal_ce(SL("jsonserializable"))); - return SUCCESS; + if (httpMethodParameterOverride) { + zephir_update_property_zval(this_ptr, ZEND_STRL("httpMethodParameterOverride"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("httpMethodParameterOverride"), &__$false); + } + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, __construct) +static PHP_METHOD(Phalcon_Http_Request, get) { - zend_bool _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, prefetchRecords = 0; - zval *result, result_sub, *cache = NULL, cache_sub, __$null, rowCount, rows, _2, _0$$3, _1$$3, _3$$5, _5$$8; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool notAllowEmpty, noRecursive; + zval *name_param = NULL, *filters = NULL, filters_sub, *defaultValue = NULL, defaultValue_sub, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, _REQUEST, __$null, _0, _1; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&result_sub); - ZVAL_UNDEF(&cache_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&rowCount); - ZVAL_UNDEF(&rows); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_5$$8); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&filters_sub); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_UNDEF(&_REQUEST); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(result) + ZEND_PARSE_PARAMETERS_START(0, 5) Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(cache, zephir_get_internal_ce(SL("psr\\simplecache\\cacheinterface"))) + Z_PARAM_STR_OR_NULL(name) + Z_PARAM_ZVAL_OR_NULL(filters) + Z_PARAM_ZVAL_OR_NULL(defaultValue) + Z_PARAM_BOOL(notAllowEmpty) + Z_PARAM_BOOL(noRecursive) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &result, &cache); - if (!cache) { - cache = &cache_sub; - cache = &__$null; - } - - - if (Z_TYPE_P(result) != IS_OBJECT) { - ZEPHIR_INIT_ZVAL_NREF(_0$$3); - ZVAL_LONG(&_0$$3, 0); - zephir_update_property_zval(this_ptr, ZEND_STRL("count"), &_0$$3); - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval(this_ptr, ZEND_STRL("rows"), &_1$$3); + zephir_get_global(&_REQUEST, SL("_REQUEST")); + zephir_fetch_params(1, 0, 5, &name_param, &filters, &defaultValue, ¬AllowEmpty_param, &noRecursive_param); + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + } else { + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); RETURN_MM_NULL(); } - zephir_update_property_zval(this_ptr, ZEND_STRL("result"), result); - if (Z_TYPE_P(cache) != IS_NULL) { - zephir_update_property_zval(this_ptr, ZEND_STRL("cache"), cache); + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); } - ZVAL_LONG(&_2, 2); - ZEPHIR_CALL_METHOD(NULL, result, "setfetchmode", NULL, 0, &_2); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&rowCount, result, "numrows", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("count"), &rowCount); - if (ZEPHIR_IS_LONG(&rowCount, 0)) { - ZEPHIR_INIT_VAR(&_3$$5); - array_init(&_3$$5); - zephir_update_property_zval(this_ptr, ZEND_STRL("rows"), &_3$$5); - RETURN_MM_NULL(); } - prefetchRecords = ZEPHIR_GLOBAL(orm).resultset_prefetch_records; - _4 = prefetchRecords > 0; - if (_4) { - _4 = ZEPHIR_LE_LONG(&rowCount, prefetchRecords); + if (!filters) { + filters = &filters_sub; + filters = &__$null; } - if (_4) { - ZEPHIR_CALL_METHOD(&rows, result, "fetchall", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&rows) == IS_ARRAY) { - zephir_update_property_zval(this_ptr, ZEND_STRL("rows"), &rows); - } else { - ZEPHIR_INIT_VAR(&_5$$8); - array_init(&_5$$8); - zephir_update_property_zval(this_ptr, ZEND_STRL("rows"), &_5$$8); - } + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; + } + if (!notAllowEmpty_param) { + notAllowEmpty = 0; + } else { + notAllowEmpty = zephir_get_boolval(notAllowEmpty_param); + } + if (!noRecursive_param) { + noRecursive = 0; + } else { + noRecursive = zephir_get_boolval(noRecursive_param); } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, count) -{ - zval *this_ptr = getThis(); - - RETURN_MEMBER(getThis(), "count"); + if (notAllowEmpty) { + ZVAL_BOOL(&_0, 1); + } else { + ZVAL_BOOL(&_0, 0); + } + if (noRecursive) { + ZVAL_BOOL(&_1, 1); + } else { + ZVAL_BOOL(&_1, 0); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethelper", NULL, 340, &_REQUEST, &name, filters, defaultValue, &_0, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, delete) +static PHP_METHOD(Phalcon_Http_Request, getAcceptableContent) { - zval _4$$6; - zend_bool result = 0, transaction = 0; + zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_1 = NULL, *_2 = NULL, *_5 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *conditionCallback = NULL, conditionCallback_sub, __$null, record, connection, _0, _3$$6, _6$$3, _7$$8; zval *this_ptr = getThis(); - ZVAL_UNDEF(&conditionCallback_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&record); - ZVAL_UNDEF(&connection); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$8); - ZVAL_UNDEF(&_4$$6); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(conditionCallback, zend_ce_closure) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &conditionCallback); - if (!conditionCallback) { - conditionCallback = &conditionCallback_sub; - conditionCallback = &__$null; - } - - ZEPHIR_INIT_VAR(&connection); - ZVAL_NULL(&connection); - result = 1; - transaction = 0; - ZEPHIR_CALL_METHOD(NULL, this_ptr, "rewind", NULL, 111); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "HTTP_ACCEPT"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "accept"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getqualityheader", NULL, 341, &_0, &_1); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_0, this_ptr, "valid", &_1, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_0))) { - break; - } - ZEPHIR_CALL_METHOD(&record, this_ptr, "current", &_2, 0); - zephir_check_call_status(); - if (transaction == 0) { - if (UNEXPECTED(!((zephir_method_exists_ex(&record, ZEND_STRL("getwriteconnection")) == SUCCESS)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The returned record is not valid", "phalcon/Mvc/Model/Resultset.zep", 228); - return; - } - ZEPHIR_CALL_METHOD(&connection, &record, "getwriteconnection", NULL, 0); - zephir_check_call_status(); - transaction = 1; - ZEPHIR_CALL_METHOD(NULL, &connection, "begin", NULL, 0); - zephir_check_call_status(); - } - if (Z_TYPE_P(conditionCallback) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_3$$6); - ZEPHIR_INIT_NVAR(&_4$$6); - zephir_create_array(&_4$$6, 1, 0); - zephir_array_fast_append(&_4$$6, &record); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_3$$6, conditionCallback, &_4$$6); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_3$$6)) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "next", &_5, 0); - zephir_check_call_status(); - continue; - } - } - ZEPHIR_CALL_METHOD(&_6$$3, &record, "delete", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_6$$3))) { - ZEPHIR_CALL_METHOD(&_7$$8, &record, "getmessages", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("errorMessages"), &_7$$8); - ZEPHIR_CALL_METHOD(NULL, &connection, "rollback", NULL, 0); - zephir_check_call_status(); - result = 0; - transaction = 0; - break; - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "next", &_5, 0); - zephir_check_call_status(); - } - if (transaction == 1) { - ZEPHIR_CALL_METHOD(NULL, &connection, "commit", NULL, 0); - zephir_check_call_status(); - } - RETURN_MM_BOOL(result); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, filter) +static PHP_METHOD(Phalcon_Http_Request, getBasicAuth) { - zend_bool _4$$3; - zval records, _3$$3; + zend_bool _2; + zval _0, _1, _3, _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_1 = NULL, *_2 = NULL, *_5 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *filter, filter_sub, record, processedRecord, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&filter_sub); - ZVAL_UNDEF(&record); - ZVAL_UNDEF(&processedRecord); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&records); - ZVAL_UNDEF(&_3$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(filter) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &filter); - - ZEPHIR_INIT_VAR(&records); - array_init(&records); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "rewind", NULL, 111); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "PHP_AUTH_USER"); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "hasserver", NULL, 342, &_1); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_0, this_ptr, "valid", &_1, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_0))) { - break; - } - ZEPHIR_CALL_METHOD(&record, this_ptr, "current", &_2, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_3$$3); - zephir_create_array(&_3$$3, 1, 0); - zephir_array_fast_append(&_3$$3, &record); - ZEPHIR_INIT_NVAR(&processedRecord); - ZEPHIR_CALL_USER_FUNC_ARRAY(&processedRecord, filter, &_3$$3); - zephir_check_call_status(); - _4$$3 = Z_TYPE_P(&processedRecord) != IS_OBJECT; - if (_4$$3) { - _4$$3 = Z_TYPE_P(&processedRecord) != IS_ARRAY; - } - if (_4$$3) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "next", &_5, 0); - zephir_check_call_status(); - continue; - } - zephir_array_append(&records, &processedRecord, PH_SEPARATE, "phalcon/Mvc/Model/Resultset.zep", 322); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "next", &_5, 0); + _2 = !zephir_is_true(&_0); + if (!(_2)) { + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "PHP_AUTH_PW"); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "hasserver", NULL, 342, &_1); zephir_check_call_status(); + _2 = !zephir_is_true(&_3); } - RETURN_CTOR(&records); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getCache) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "cache"); + if (_2) { + RETURN_MM_NULL(); + } + zephir_create_array(return_value, 2, 0); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "PHP_AUTH_USER"); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "getserver", NULL, 0, &_1); + zephir_check_call_status(); + zephir_array_update_string(return_value, SL("username"), &_4, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "PHP_AUTH_PW"); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "getserver", NULL, 0, &_1); + zephir_check_call_status(); + zephir_array_update_string(return_value, SL("password"), &_4, PH_COPY | PH_SEPARATE); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getFirst) +static PHP_METHOD(Phalcon_Http_Request, getBestAccept) { zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; @@ -154506,66 +135568,42 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getFirst) ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("count"), PH_NOISY_CC | PH_READONLY); - if (ZEPHIR_IS_LONG(&_0, 0)) { - RETURN_MM_NULL(); - } - ZVAL_LONG(&_1, 0); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", NULL, 112, &_1); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getacceptablecontent", NULL, 0); zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", NULL, 0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "accept"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getbestquality", NULL, 343, &_0, &_1); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getHydrateMode) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "hydrateMode"); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getLast) +static PHP_METHOD(Phalcon_Http_Request, getBestCharset) { - zval count, _0; + zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&count); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("count"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&count, &_0); - if (ZEPHIR_IS_LONG(&count, 0)) { - RETURN_MM_NULL(); - } - ZVAL_LONG(&_0, (zephir_get_numberval(&count) - 1)); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", NULL, 112, &_0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getclientcharsets", NULL, 0); zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", NULL, 0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "charset"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getbestquality", NULL, 343, &_0, &_1); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getMessages) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "errorMessages"); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getType) +static PHP_METHOD(Phalcon_Http_Request, getBestLanguage) { zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); @@ -154574,94 +135612,110 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, getType) ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_OBS_VAR(&_1); - zephir_read_property(&_1, this_ptr, ZEND_STRL("rows"), PH_NOISY_CC); - if (Z_TYPE_P(&_1) == IS_ARRAY) { - ZVAL_LONG(&_0, 0); - } else { - ZVAL_LONG(&_0, 1); - } - RETURN_CCTOR(&_0); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, isFresh) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "isFresh"); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getlanguages", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "language"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getbestquality", NULL, 343, &_0, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, jsonSerialize) +static PHP_METHOD(Phalcon_Http_Request, getPreferredIsoLocaleVariant) { - zend_bool _3$$3; - zval records; - zval current, _0, _4$$4; + zval language, _0, _1, _2, _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_1 = NULL, *_2 = NULL, *_5 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(¤t); + ZVAL_UNDEF(&language); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&records); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(&records); - array_init(&records); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "rewind", NULL, 111); + ZEPHIR_CALL_METHOD(&language, this_ptr, "getbestlanguage", NULL, 0); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_0, this_ptr, "valid", &_1, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_0))) { - break; - } - ZEPHIR_CALL_METHOD(¤t, this_ptr, "current", &_2, 0); - zephir_check_call_status(); - _3$$3 = Z_TYPE_P(¤t) == IS_OBJECT; - if (_3$$3) { - _3$$3 = (zephir_method_exists_ex(¤t, ZEND_STRL("jsonserialize")) == SUCCESS); - } - if (_3$$3) { - ZEPHIR_CALL_METHOD(&_4$$4, ¤t, "jsonserialize", NULL, 0); - zephir_check_call_status(); - zephir_array_append(&records, &_4$$4, PH_SEPARATE, "phalcon/Mvc/Model/Resultset.zep", 447); - } else { - zephir_array_append(&records, ¤t, PH_SEPARATE, "phalcon/Mvc/Model/Resultset.zep", 449); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "next", &_5, 0); - zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + zephir_fast_explode_str(&_0, SL("-"), &language, LONG_MAX); + ZEPHIR_CPY_WRT(&language, &_0); + zephir_array_fetch_long(&_1, &language, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 181); + ZEPHIR_CPY_WRT(&language, &_1); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "*"); + if (ZEPHIR_IS_IDENTICAL(&_3, &language)) { + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, ""); + } else { + ZEPHIR_CPY_WRT(&_2, &language); } - RETURN_CTOR(&records); + ZEPHIR_CPY_WRT(&language, &_2); + RETURN_CCTOR(&language); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, key) +static PHP_METHOD(Phalcon_Http_Request, getClientAddress) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *trustForwardedHeader_param = NULL, address, server, _0$$7, _1$$7; + zend_bool trustForwardedHeader; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&address); + ZVAL_UNDEF(&server); + ZVAL_UNDEF(&_0$$7); + ZVAL_UNDEF(&_1$$7); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(trustForwardedHeader) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &trustForwardedHeader_param); + if (!trustForwardedHeader_param) { + trustForwardedHeader = 0; + } else { + trustForwardedHeader = zephir_get_boolval(trustForwardedHeader_param); + } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "valid", NULL, 0); + + ZEPHIR_INIT_VAR(&address); + ZVAL_NULL(&address); + ZEPHIR_CALL_METHOD(&server, this_ptr, "getserverarray", NULL, 344); zephir_check_call_status(); - if (!(zephir_is_true(&_0))) { - RETURN_MM_NULL(); + if (trustForwardedHeader) { + ZEPHIR_OBS_NVAR(&address); + zephir_array_isset_string_fetch(&address, &server, SL("HTTP_X_FORWARDED_FOR"), 0); + if (Z_TYPE_P(&address) == IS_NULL) { + ZEPHIR_OBS_NVAR(&address); + zephir_array_isset_string_fetch(&address, &server, SL("HTTP_CLIENT_IP"), 0); + } } - RETURN_MM_MEMBER(getThis(), "pointer"); + if (Z_TYPE_P(&address) == IS_NULL) { + ZEPHIR_OBS_NVAR(&address); + zephir_array_isset_string_fetch(&address, &server, SL("REMOTE_ADDR"), 0); + } + if (Z_TYPE_P(&address) != IS_STRING) { + RETURN_MM_BOOL(0); + } + if (zephir_memnstr_str(&address, SL(","), "phalcon/Http/Request.zep", 217)) { + ZEPHIR_INIT_VAR(&_0$$7); + zephir_fast_explode_str(&_0$$7, SL(","), &address, LONG_MAX); + zephir_array_fetch_long(&_1$$7, &_0$$7, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 222); + RETURN_CTOR(&_1$$7); + } + RETURN_CCTOR(&address); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, next) +static PHP_METHOD(Phalcon_Http_Request, getClientCharsets) { zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; @@ -154674,2157 +135728,3929 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset, next) ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pointer"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_1, (zephir_get_numberval(&_0) + 1)); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", NULL, 112, &_1); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "HTTP_ACCEPT_CHARSET"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "charset"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getqualityheader", NULL, 341, &_0, &_1); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetGet) +static PHP_METHOD(Phalcon_Http_Request, getContentType) { + zval contentType, server; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *index, index_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&index_sub); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(index) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&contentType); + ZVAL_UNDEF(&server); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &index); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("count"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(ZEPHIR_GE(index, &_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The index does not exist in the cursor", "phalcon/Mvc/Model/Resultset.zep", 487); - return; - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", NULL, 112, index); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&server, this_ptr, "getserverarray", NULL, 344); zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetExists) -{ - zval *index, index_sub, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&index_sub); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(index) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &index); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("count"), PH_NOISY_CC | PH_READONLY); - RETURN_BOOL(ZEPHIR_LT(index, &_0)); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetSet) -{ - zval *index, index_sub, *value, value_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&index_sub); - ZVAL_UNDEF(&value_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(index) - Z_PARAM_ZVAL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(2, 0, &index, &value); - - - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Cursor is an immutable ArrayAccess object", "phalcon/Mvc/Model/Resultset.zep", 514); - return; -} - -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, offsetUnset) -{ - zval *offset, offset_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&offset_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(offset) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &offset); - - - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Cursor is an immutable ArrayAccess object", "phalcon/Mvc/Model/Resultset.zep", 522); - return; + if (!(zephir_array_isset_string_fetch(&contentType, &server, SL("CONTENT_TYPE"), 1))) { + RETURN_MM_NULL(); + } + RETURN_CTOR(&contentType); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, rewind) +static PHP_METHOD(Phalcon_Http_Request, getDigestAuth) { - zval _0; + zval auth; + zval digest, matches, match, server, _0$$3, _1$$3, _2$$3, *_3$$5, _4$$5, _5$$6, _6$$6, _7$$7, _8$$7; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&digest); + ZVAL_UNDEF(&matches); + ZVAL_UNDEF(&match); + ZVAL_UNDEF(&server); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&_6$$6); + ZVAL_UNDEF(&_7$$7); + ZVAL_UNDEF(&_8$$7); + ZVAL_UNDEF(&auth); ZEPHIR_MM_GROW(); - ZVAL_LONG(&_0, 0); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", NULL, 112, &_0); + ZEPHIR_INIT_VAR(&auth); + array_init(&auth); + ZEPHIR_CALL_METHOD(&server, this_ptr, "getserverarray", NULL, 344); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + ZEPHIR_OBS_VAR(&digest); + if (zephir_array_isset_string_fetch(&digest, &server, SL("PHP_AUTH_DIGEST"), 0)) { + ZEPHIR_INIT_VAR(&matches); + array_init(&matches); + ZEPHIR_INIT_VAR(&_0$$3); + ZVAL_STRING(&_0$$3, "#(\\w+)=(['\"]?)([^'\" ,]+)\\2#"); + ZEPHIR_INIT_VAR(&_1$$3); + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "#(\\w+)=(['\"]?)([^'\" ,]+)\\2#"); + zephir_preg_match(&_1$$3, &_2$$3, &digest, &matches, 1, 2 , 0 ); + if (!(zephir_is_true(&_1$$3))) { + RETURN_CTOR(&auth); + } + if (Z_TYPE_P(&matches) == IS_ARRAY) { + zephir_is_iterable(&matches, 0, "phalcon/Http/Request.zep", 276); + if (Z_TYPE_P(&matches) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&matches), _3$$5) + { + ZEPHIR_INIT_NVAR(&match); + ZVAL_COPY(&match, _3$$5); + zephir_array_fetch_long(&_5$$6, &match, 3, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 274); + ZEPHIR_OBS_NVAR(&_6$$6); + zephir_array_fetch_long(&_6$$6, &match, 1, PH_NOISY, "phalcon/Http/Request.zep", 274); + zephir_array_update_zval(&auth, &_6$$6, &_5$$6, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &matches, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_4$$5, &matches, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_4$$5)) { + break; + } + ZEPHIR_CALL_METHOD(&match, &matches, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_fetch_long(&_7$$7, &match, 3, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 274); + ZEPHIR_OBS_NVAR(&_8$$7); + zephir_array_fetch_long(&_8$$7, &match, 1, PH_NOISY, "phalcon/Http/Request.zep", 274); + zephir_array_update_zval(&auth, &_8$$7, &_7$$7, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &matches, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&match); + } + } + RETURN_CTOR(&auth); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, seek) +static PHP_METHOD(Phalcon_Http_Request, getFilteredQuery) { - zend_bool _1, _6$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_13 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *position, position_sub, __$null, result, row, _0, _2, _3$$3, _5$$3, _7$$3, _9$$3, _11$$3, _4$$4, _8$$6, _10$$7, _12$$8; + zend_bool notAllowEmpty, noRecursive; + zval *name_param = NULL, *defaultValue = NULL, defaultValue_sub, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, __$null, filters, _0, _1, _2, _3; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&position_sub); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&defaultValue_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&row); + ZVAL_UNDEF(&filters); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_9$$3); - ZVAL_UNDEF(&_11$$3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_8$$6); - ZVAL_UNDEF(&_10$$7); - ZVAL_UNDEF(&_12$$8); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(position) + ZEND_PARSE_PARAMETERS_START(0, 4) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(name) + Z_PARAM_ZVAL_OR_NULL(defaultValue) + Z_PARAM_BOOL(notAllowEmpty) + Z_PARAM_BOOL(noRecursive) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &position); + zephir_fetch_params(1, 0, 4, &name_param, &defaultValue, ¬AllowEmpty_param, &noRecursive_param); + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + } else { + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + } + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; + } + if (!notAllowEmpty_param) { + notAllowEmpty = 0; + } else { + notAllowEmpty = zephir_get_boolval(notAllowEmpty_param); + } + if (!noRecursive_param) { + noRecursive = 0; + } else { + noRecursive = zephir_get_boolval(noRecursive_param); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("pointer"), PH_NOISY_CC | PH_READONLY); - _1 = !ZEPHIR_IS_EQUAL(&_0, position); - if (!(_1)) { - zephir_read_property(&_2, this_ptr, ZEND_STRL("row"), PH_NOISY_CC | PH_READONLY); - _1 = Z_TYPE_P(&_2) == IS_NULL; + ZEPHIR_OBS_VAR(&filters); + zephir_read_property(&_0, this_ptr, ZEND_STRL("queryFilters"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_1, &_0, SL("GET"), PH_READONLY, "phalcon/Http/Request.zep", 293); + if (!(zephir_array_isset_fetch(&filters, &_1, &name, 0))) { + ZEPHIR_INIT_NVAR(&filters); + array_init(&filters); } - if (_1) { - ZEPHIR_OBS_VAR(&_3$$3); - zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("rows"), PH_NOISY_CC); - if (Z_TYPE_P(&_3$$3) == IS_ARRAY) { - ZEPHIR_OBS_VAR(&row); - zephir_read_property(&_4$$4, this_ptr, ZEND_STRL("rows"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset_fetch(&row, &_4$$4, position, 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("row"), &row); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("pointer"), position); - zephir_update_property_zval(this_ptr, ZEND_STRL("activeRow"), &__$null); - RETURN_MM_NULL(); - } - zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("result"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&result, &_5$$3); - zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("row"), PH_NOISY_CC | PH_READONLY); - _6$$3 = Z_TYPE_P(&_5$$3) == IS_NULL; - if (_6$$3) { - zephir_read_property(&_7$$3, this_ptr, ZEND_STRL("pointer"), PH_NOISY_CC | PH_READONLY); - _6$$3 = ZEPHIR_IS_LONG_IDENTICAL(&_7$$3, 0); - } - if (_6$$3) { - ZEPHIR_CALL_METHOD(&_8$$6, &result, "fetch", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("row"), &_8$$6); - } - zephir_read_property(&_9$$3, this_ptr, ZEND_STRL("pointer"), PH_NOISY_CC | PH_READONLY); - if (ZEPHIR_GT(&_9$$3, position)) { - ZEPHIR_CALL_METHOD(NULL, &result, "dataseek", NULL, 0, position); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_10$$7, &result, "fetch", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("row"), &_10$$7); - zephir_update_property_zval(this_ptr, ZEND_STRL("pointer"), position); - } - while (1) { - zephir_read_property(&_11$$3, this_ptr, ZEND_STRL("pointer"), PH_NOISY_CC | PH_READONLY); - if (!(ZEPHIR_LT(&_11$$3, position))) { - break; - } - ZEPHIR_CALL_METHOD(&_12$$8, &result, "fetch", &_13, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("row"), &_12$$8); - RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("pointer"))); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("pointer"), position); - zephir_update_property_zval(this_ptr, ZEND_STRL("activeRow"), &__$null); + if (notAllowEmpty) { + ZVAL_BOOL(&_2, 1); + } else { + ZVAL_BOOL(&_2, 0); } - ZEPHIR_MM_RESTORE(); + if (noRecursive) { + ZVAL_BOOL(&_3, 1); + } else { + ZVAL_BOOL(&_3, 0); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getquery", NULL, 0, &name, &filters, defaultValue, &_2, &_3); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, setHydrateMode) +static PHP_METHOD(Phalcon_Http_Request, getFilteredPost) { - zval *hydrateMode_param = NULL, _0; - zend_long hydrateMode; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool notAllowEmpty, noRecursive; + zval *name_param = NULL, *defaultValue = NULL, defaultValue_sub, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, __$null, filters, _0, _1, _2, _3; + zval name; zval *this_ptr = getThis(); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&filters); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(hydrateMode) + ZEND_PARSE_PARAMETERS_START(0, 4) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(name) + Z_PARAM_ZVAL_OR_NULL(defaultValue) + Z_PARAM_BOOL(notAllowEmpty) + Z_PARAM_BOOL(noRecursive) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &hydrateMode_param); - hydrateMode = zephir_get_intval(hydrateMode_param); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 4, &name_param, &defaultValue, ¬AllowEmpty_param, &noRecursive_param); + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + } else { + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + } + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; + } + if (!notAllowEmpty_param) { + notAllowEmpty = 0; + } else { + notAllowEmpty = zephir_get_boolval(notAllowEmpty_param); + } + if (!noRecursive_param) { + noRecursive = 0; + } else { + noRecursive = zephir_get_boolval(noRecursive_param); + } - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, hydrateMode); - zephir_update_property_zval(this_ptr, ZEND_STRL("hydrateMode"), &_0); - RETURN_THISW(); + ZEPHIR_OBS_VAR(&filters); + zephir_read_property(&_0, this_ptr, ZEND_STRL("queryFilters"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_1, &_0, SL("POST"), PH_READONLY, "phalcon/Http/Request.zep", 317); + if (!(zephir_array_isset_fetch(&filters, &_1, &name, 0))) { + ZEPHIR_INIT_NVAR(&filters); + array_init(&filters); + } + if (notAllowEmpty) { + ZVAL_BOOL(&_2, 1); + } else { + ZVAL_BOOL(&_2, 0); + } + if (noRecursive) { + ZVAL_BOOL(&_3, 1); + } else { + ZVAL_BOOL(&_3, 0); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getpost", NULL, 0, &name, &filters, defaultValue, &_2, &_3); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, setIsFresh) +static PHP_METHOD(Phalcon_Http_Request, getFilteredPut) { - zval *isFresh_param = NULL, __$true, __$false; - zend_bool isFresh; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool notAllowEmpty, noRecursive; + zval *name_param = NULL, *defaultValue = NULL, defaultValue_sub, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, __$null, filters, _0, _1, _2, _3; + zval name; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&filters); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(isFresh) + ZEND_PARSE_PARAMETERS_START(0, 4) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(name) + Z_PARAM_ZVAL_OR_NULL(defaultValue) + Z_PARAM_BOOL(notAllowEmpty) + Z_PARAM_BOOL(noRecursive) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &isFresh_param); - isFresh = zephir_get_boolval(isFresh_param); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 4, &name_param, &defaultValue, ¬AllowEmpty_param, &noRecursive_param); + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + } else { + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + } + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; + } + if (!notAllowEmpty_param) { + notAllowEmpty = 0; + } else { + notAllowEmpty = zephir_get_boolval(notAllowEmpty_param); + } + if (!noRecursive_param) { + noRecursive = 0; + } else { + noRecursive = zephir_get_boolval(noRecursive_param); + } - if (isFresh) { - zephir_update_property_zval(this_ptr, ZEND_STRL("isFresh"), &__$true); + ZEPHIR_OBS_VAR(&filters); + zephir_read_property(&_0, this_ptr, ZEND_STRL("queryFilters"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_1, &_0, SL("PUT"), PH_READONLY, "phalcon/Http/Request.zep", 341); + if (!(zephir_array_isset_fetch(&filters, &_1, &name, 0))) { + ZEPHIR_INIT_NVAR(&filters); + array_init(&filters); + } + if (notAllowEmpty) { + ZVAL_BOOL(&_2, 1); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("isFresh"), &__$false); + ZVAL_BOOL(&_2, 0); } - RETURN_THISW(); + if (noRecursive) { + ZVAL_BOOL(&_3, 1); + } else { + ZVAL_BOOL(&_3, 0); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getput", NULL, 0, &name, &filters, defaultValue, &_2, &_3); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, update) +static PHP_METHOD(Phalcon_Http_Request, getHeader) { - zval _4$$6; - zend_bool transaction = 0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_1 = NULL, *_2 = NULL, *_5 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *data, data_sub, *conditionCallback = NULL, conditionCallback_sub, __$null, record, connection, _0, _3$$6, _6$$3, _7$$8; + zval *header_param = NULL, value, name, server, _0, _1, _2, _3; + zval header; zval *this_ptr = getThis(); - ZVAL_UNDEF(&data_sub); - ZVAL_UNDEF(&conditionCallback_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&record); - ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&header); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&server); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$8); - ZVAL_UNDEF(&_4$$6); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(data) - Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(conditionCallback, zend_ce_closure) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(header) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &data, &conditionCallback); - if (!conditionCallback) { - conditionCallback = &conditionCallback_sub; - conditionCallback = &__$null; + zephir_fetch_params(1, 1, 0, &header_param); + if (UNEXPECTED(Z_TYPE_P(header_param) != IS_STRING && Z_TYPE_P(header_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'header' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(header_param) == IS_STRING)) { + zephir_get_strval(&header, header_param); + } else { + ZEPHIR_INIT_VAR(&header); } - ZEPHIR_INIT_VAR(&connection); - ZVAL_NULL(&connection); - transaction = 0; - ZEPHIR_CALL_METHOD(NULL, this_ptr, "rewind", NULL, 111); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "-"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "_"); + ZEPHIR_CALL_FUNCTION(&_2, "strtr", NULL, 5, &header, &_0, &_1); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_0, this_ptr, "valid", &_1, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_0))) { - break; - } - ZEPHIR_CALL_METHOD(&record, this_ptr, "current", &_2, 0); - zephir_check_call_status(); - if (transaction == 0) { - if (UNEXPECTED(!((zephir_method_exists_ex(&record, ZEND_STRL("getwriteconnection")) == SUCCESS)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The returned record is not valid", "phalcon/Mvc/Model/Resultset.zep", 639); - return; - } - ZEPHIR_CALL_METHOD(&connection, &record, "getwriteconnection", NULL, 0); - zephir_check_call_status(); - transaction = 1; - ZEPHIR_CALL_METHOD(NULL, &connection, "begin", NULL, 0); - zephir_check_call_status(); - } - if (Z_TYPE_P(conditionCallback) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_3$$6); - ZEPHIR_INIT_NVAR(&_4$$6); - zephir_create_array(&_4$$6, 1, 0); - zephir_array_fast_append(&_4$$6, &record); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_3$$6, conditionCallback, &_4$$6); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_3$$6)) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "next", &_5, 0); - zephir_check_call_status(); - continue; - } - } - ZEPHIR_CALL_METHOD(NULL, &record, "assign", NULL, 0, data); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_6$$3, &record, "save", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_6$$3))) { - ZEPHIR_CALL_METHOD(&_7$$8, &record, "getmessages", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("errorMessages"), &_7$$8); - ZEPHIR_CALL_METHOD(NULL, &connection, "rollback", NULL, 0); - zephir_check_call_status(); - transaction = 0; - break; - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "next", &_5, 0); - zephir_check_call_status(); + ZEPHIR_INIT_VAR(&name); + zephir_fast_strtoupper(&name, &_2); + ZEPHIR_CALL_METHOD(&server, this_ptr, "getserverarray", NULL, 344); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&value); + if (zephir_array_isset_fetch(&value, &server, &name, 0)) { + RETURN_CCTOR(&value); } - if (transaction == 1) { - ZEPHIR_CALL_METHOD(NULL, &connection, "commit", NULL, 0); - zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&value); + ZEPHIR_INIT_VAR(&_3); + ZEPHIR_CONCAT_SV(&_3, "HTTP_", &name); + if (zephir_array_isset_fetch(&value, &server, &_3, 0)) { + RETURN_CCTOR(&value); } - RETURN_MM_BOOL(transaction); + RETURN_MM_STRING(""); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset, valid) +static PHP_METHOD(Phalcon_Http_Request, getHeaders) { - zval _0, _1; + zend_string *_3; + zend_ulong _2; + zval headers, contentHeaders; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_10 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval __$true, name, value, authHeaders, server, *_0, _1, _39, _4$$4, _5$$4, _6$$4, _7$$4, _8$$4, _9$$4, _11$$4, _12$$4, _13$$4, _14$$3, _15$$5, _16$$5, _17$$5, _18$$5, _19$$5, _20$$5, _21$$5, _22$$7, _23$$7, _24$$7, _25$$7, _26$$7, _27$$7, _28$$7, _29$$7, _30$$7, _31$$6, _32$$8, _33$$8, _34$$8, _35$$8, _36$$8, _37$$8, _38$$8; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&authHeaders); + ZVAL_UNDEF(&server); ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_39); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_8$$4); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&_11$$4); + ZVAL_UNDEF(&_12$$4); + ZVAL_UNDEF(&_13$$4); + ZVAL_UNDEF(&_14$$3); + ZVAL_UNDEF(&_15$$5); + ZVAL_UNDEF(&_16$$5); + ZVAL_UNDEF(&_17$$5); + ZVAL_UNDEF(&_18$$5); + ZVAL_UNDEF(&_19$$5); + ZVAL_UNDEF(&_20$$5); + ZVAL_UNDEF(&_21$$5); + ZVAL_UNDEF(&_22$$7); + ZVAL_UNDEF(&_23$$7); + ZVAL_UNDEF(&_24$$7); + ZVAL_UNDEF(&_25$$7); + ZVAL_UNDEF(&_26$$7); + ZVAL_UNDEF(&_27$$7); + ZVAL_UNDEF(&_28$$7); + ZVAL_UNDEF(&_29$$7); + ZVAL_UNDEF(&_30$$7); + ZVAL_UNDEF(&_31$$6); + ZVAL_UNDEF(&_32$$8); + ZVAL_UNDEF(&_33$$8); + ZVAL_UNDEF(&_34$$8); + ZVAL_UNDEF(&_35$$8); + ZVAL_UNDEF(&_36$$8); + ZVAL_UNDEF(&_37$$8); + ZVAL_UNDEF(&_38$$8); + ZVAL_UNDEF(&headers); + ZVAL_UNDEF(&contentHeaders); + ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("pointer"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_1, this_ptr, ZEND_STRL("count"), PH_NOISY_CC | PH_READONLY); - RETURN_BOOL(ZEPHIR_LT(&_0, &_1)); -} - -zend_object *zephir_init_properties_Phalcon_Mvc_Model_Resultset(zend_class_entry *class_type) -{ - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("errorMessages"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("errorMessages"), &_1$$3); + ZEPHIR_INIT_VAR(&headers); + array_init(&headers); + ZEPHIR_INIT_VAR(&contentHeaders); + zephir_create_array(&contentHeaders, 3, 0); + zephir_array_update_string(&contentHeaders, SL("CONTENT_TYPE"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&contentHeaders, SL("CONTENT_LENGTH"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&contentHeaders, SL("CONTENT_MD5"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&server, this_ptr, "getserverarray", NULL, 344); + zephir_check_call_status(); + zephir_is_iterable(&server, 0, "phalcon/Http/Request.zep", 442); + if (Z_TYPE_P(&server) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&server), _2, _3, _0) + { + ZEPHIR_INIT_NVAR(&name); + if (_3 != NULL) { + ZVAL_STR_COPY(&name, _3); + } else { + ZVAL_LONG(&name, _2); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0); + if (zephir_start_with_str(&name, SL("HTTP_"))) { + ZEPHIR_INIT_NVAR(&_4$$4); + ZEPHIR_INIT_NVAR(&_5$$4); + ZVAL_LONG(&_6$$4, 5); + ZEPHIR_INIT_NVAR(&_7$$4); + zephir_substr(&_7$$4, &name, 5 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + ZEPHIR_INIT_NVAR(&_8$$4); + ZVAL_STRING(&_8$$4, "_"); + ZEPHIR_INIT_NVAR(&_9$$4); + ZVAL_STRING(&_9$$4, " "); + zephir_fast_str_replace(&_5$$4, &_8$$4, &_9$$4, &_7$$4); + zephir_fast_strtolower(&_4$$4, &_5$$4); + ZEPHIR_CALL_FUNCTION(&name, "ucwords", &_10, 242, &_4$$4); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_11$$4); + ZEPHIR_INIT_NVAR(&_12$$4); + ZVAL_STRING(&_12$$4, " "); + ZEPHIR_INIT_NVAR(&_13$$4); + ZVAL_STRING(&_13$$4, "-"); + zephir_fast_str_replace(&_11$$4, &_12$$4, &_13$$4, &name); + ZEPHIR_CPY_WRT(&name, &_11$$4); + zephir_array_update_zval(&headers, &name, &value, PH_COPY | PH_SEPARATE); + continue; + } + ZEPHIR_INIT_NVAR(&_14$$3); + zephir_fast_strtoupper(&_14$$3, &name); + ZEPHIR_CPY_WRT(&name, &_14$$3); + if (zephir_array_isset(&contentHeaders, &name)) { + ZEPHIR_INIT_NVAR(&_15$$5); + ZEPHIR_INIT_NVAR(&_16$$5); + ZEPHIR_INIT_NVAR(&_17$$5); + ZVAL_STRING(&_17$$5, "_"); + ZEPHIR_INIT_NVAR(&_18$$5); + ZVAL_STRING(&_18$$5, " "); + zephir_fast_str_replace(&_16$$5, &_17$$5, &_18$$5, &name); + zephir_fast_strtolower(&_15$$5, &_16$$5); + ZEPHIR_CALL_FUNCTION(&name, "ucwords", &_10, 242, &_15$$5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_19$$5); + ZEPHIR_INIT_NVAR(&_20$$5); + ZVAL_STRING(&_20$$5, " "); + ZEPHIR_INIT_NVAR(&_21$$5); + ZVAL_STRING(&_21$$5, "-"); + zephir_fast_str_replace(&_19$$5, &_20$$5, &_21$$5, &name); + ZEPHIR_CPY_WRT(&name, &_19$$5); + zephir_array_update_zval(&headers, &name, &value, PH_COPY | PH_SEPARATE); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &server, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &server, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&name, &server, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &server, "current", NULL, 0); + zephir_check_call_status(); + if (zephir_start_with_str(&name, SL("HTTP_"))) { + ZEPHIR_INIT_NVAR(&_22$$7); + ZEPHIR_INIT_NVAR(&_23$$7); + ZVAL_LONG(&_24$$7, 5); + ZEPHIR_INIT_NVAR(&_25$$7); + zephir_substr(&_25$$7, &name, 5 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + ZEPHIR_INIT_NVAR(&_26$$7); + ZVAL_STRING(&_26$$7, "_"); + ZEPHIR_INIT_NVAR(&_27$$7); + ZVAL_STRING(&_27$$7, " "); + zephir_fast_str_replace(&_23$$7, &_26$$7, &_27$$7, &_25$$7); + zephir_fast_strtolower(&_22$$7, &_23$$7); + ZEPHIR_CALL_FUNCTION(&name, "ucwords", &_10, 242, &_22$$7); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_28$$7); + ZEPHIR_INIT_NVAR(&_29$$7); + ZVAL_STRING(&_29$$7, " "); + ZEPHIR_INIT_NVAR(&_30$$7); + ZVAL_STRING(&_30$$7, "-"); + zephir_fast_str_replace(&_28$$7, &_29$$7, &_30$$7, &name); + ZEPHIR_CPY_WRT(&name, &_28$$7); + zephir_array_update_zval(&headers, &name, &value, PH_COPY | PH_SEPARATE); + continue; + } + ZEPHIR_INIT_NVAR(&_31$$6); + zephir_fast_strtoupper(&_31$$6, &name); + ZEPHIR_CPY_WRT(&name, &_31$$6); + if (zephir_array_isset(&contentHeaders, &name)) { + ZEPHIR_INIT_NVAR(&_32$$8); + ZEPHIR_INIT_NVAR(&_33$$8); + ZEPHIR_INIT_NVAR(&_34$$8); + ZVAL_STRING(&_34$$8, "_"); + ZEPHIR_INIT_NVAR(&_35$$8); + ZVAL_STRING(&_35$$8, " "); + zephir_fast_str_replace(&_33$$8, &_34$$8, &_35$$8, &name); + zephir_fast_strtolower(&_32$$8, &_33$$8); + ZEPHIR_CALL_FUNCTION(&name, "ucwords", &_10, 242, &_32$$8); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_36$$8); + ZEPHIR_INIT_NVAR(&_37$$8); + ZVAL_STRING(&_37$$8, " "); + ZEPHIR_INIT_NVAR(&_38$$8); + ZVAL_STRING(&_38$$8, "-"); + zephir_fast_str_replace(&_36$$8, &_37$$8, &_38$$8, &name); + ZEPHIR_CPY_WRT(&name, &_36$$8); + zephir_array_update_zval(&headers, &name, &value, PH_COPY | PH_SEPARATE); + } + ZEPHIR_CALL_METHOD(NULL, &server, "next", NULL, 0); + zephir_check_call_status(); } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&name); + ZEPHIR_CALL_METHOD(&authHeaders, this_ptr, "resolveauthorizationheaders", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_39); + zephir_fast_array_merge(&_39, &headers, &authHeaders); + ZEPHIR_CPY_WRT(&headers, &_39); + RETURN_CTOR(&headers); } - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_ResultsetInterface) +static PHP_METHOD(Phalcon_Http_Request, getHttpHost) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model, ResultsetInterface, phalcon, mvc_model_resultsetinterface, phalcon_mvc_model_resultsetinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, delete); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, filter); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, getCache); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, getFirst); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, getHydrateMode); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, getLast); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, getMessages); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, getType); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, isFresh); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, setHydrateMode); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, setIsFresh); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, toArray); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_ResultsetInterface, update); - - - -#ifdef HAVE_CONFIG_H -#endif - - + zval _14; + zend_bool _3; + zval host, strict, cleanHost, _0, _1$$3, _2$$4, _4$$5, _8$$5, _9$$5, _10$$5, _11$$5, _5$$6, _6$$6, _7$$6, _12$$7, _13$$7; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&host); + ZVAL_UNDEF(&strict); + ZVAL_UNDEF(&cleanHost); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&_11$$5); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&_6$$6); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_12$$7); + ZVAL_UNDEF(&_13$$7); + ZVAL_UNDEF(&_14); -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Row) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model, Row, phalcon, mvc_model_row, phalcon_mvc_model_row_method_entry, 0); + ZEPHIR_MM_GROW(); - zend_class_implements(phalcon_mvc_model_row_ce, 1, phalcon_mvc_entityinterface_ce); - zend_class_implements(phalcon_mvc_model_row_ce, 1, phalcon_mvc_model_resultinterface_ce); - zend_class_implements(phalcon_mvc_model_row_ce, 1, zend_ce_arrayaccess); - zend_class_implements(phalcon_mvc_model_row_ce, 1, zephir_get_internal_ce(SL("jsonserializable"))); - return SUCCESS; + ZEPHIR_OBS_VAR(&strict); + zephir_read_property(&strict, this_ptr, ZEND_STRL("strictHostCheck"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "HTTP_HOST"); + ZEPHIR_CALL_METHOD(&host, this_ptr, "getserver", NULL, 0, &_0); + zephir_check_call_status(); + if (!(zephir_is_true(&host))) { + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, "SERVER_NAME"); + ZEPHIR_CALL_METHOD(&host, this_ptr, "getserver", NULL, 0, &_1$$3); + zephir_check_call_status(); + if (!(zephir_is_true(&host))) { + ZEPHIR_INIT_VAR(&_2$$4); + ZVAL_STRING(&_2$$4, "SERVER_ADDR"); + ZEPHIR_CALL_METHOD(&host, this_ptr, "getserver", NULL, 0, &_2$$4); + zephir_check_call_status(); + } + } + _3 = zephir_is_true(&host); + if (_3) { + _3 = zephir_is_true(&strict); + } + if (_3) { + ZEPHIR_INIT_VAR(&_4$$5); + zephir_fast_trim(&_4$$5, &host, NULL , ZEPHIR_TRIM_BOTH); + ZEPHIR_INIT_VAR(&cleanHost); + zephir_fast_strtolower(&cleanHost, &_4$$5); + if (zephir_memnstr_str(&cleanHost, SL(":"), "phalcon/Http/Request.zep", 516)) { + ZEPHIR_INIT_VAR(&_5$$6); + ZVAL_STRING(&_5$$6, "/:[[:digit:]]+$/"); + ZEPHIR_INIT_VAR(&_6$$6); + ZVAL_STRING(&_6$$6, ""); + ZEPHIR_CALL_FUNCTION(&_7$$6, "preg_replace", NULL, 50, &_5$$6, &_6$$6, &cleanHost); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&cleanHost, &_7$$6); + } + ZEPHIR_INIT_VAR(&_8$$5); + ZVAL_STRING(&_8$$5, "/[a-z0-9-]+\\.?/"); + ZEPHIR_INIT_VAR(&_9$$5); + ZVAL_STRING(&_9$$5, ""); + ZEPHIR_CALL_FUNCTION(&_10$$5, "preg_replace", NULL, 50, &_8$$5, &_9$$5, &cleanHost); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_11$$5); + ZVAL_STRING(&_11$$5, ""); + if (UNEXPECTED(!ZEPHIR_IS_IDENTICAL(&_11$$5, &_10$$5))) { + ZEPHIR_INIT_VAR(&_12$$7); + object_init_ex(&_12$$7, spl_ce_UnexpectedValueException); + ZEPHIR_INIT_VAR(&_13$$7); + ZEPHIR_CONCAT_SV(&_13$$7, "Invalid host ", &host); + ZEPHIR_CALL_METHOD(NULL, &_12$$7, "__construct", NULL, 345, &_13$$7); + zephir_check_call_status(); + zephir_throw_exception_debug(&_12$$7, "phalcon/Http/Request.zep", 526); + ZEPHIR_MM_RESTORE(); + return; + } + } else { + ZEPHIR_CPY_WRT(&cleanHost, &host); + } + zephir_cast_to_string(&_14, &cleanHost); + RETURN_CTOR(&_14); } -static PHP_METHOD(Phalcon_Mvc_Model_Row, jsonSerialize) +static PHP_METHOD(Phalcon_Http_Request, getHTTPReferer) { + zval httpReferer, server; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&httpReferer); + ZVAL_UNDEF(&server); ZEPHIR_MM_GROW(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "toarray", NULL, 0); + ZEPHIR_CALL_METHOD(&server, this_ptr, "getserverarray", NULL, 344); zephir_check_call_status(); - RETURN_MM(); + if (!(zephir_array_isset_string_fetch(&httpReferer, &server, SL("HTTP_REFERER"), 1))) { + RETURN_MM_STRING(""); + } + RETURN_CTOR(&httpReferer); } -static PHP_METHOD(Phalcon_Mvc_Model_Row, offsetGet) +static PHP_METHOD(Phalcon_Http_Request, getJsonRawBody) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *index, index_sub, value; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *associative_param = NULL, rawBody, _0; + zend_bool associative; zval *this_ptr = getThis(); - ZVAL_UNDEF(&index_sub); - ZVAL_UNDEF(&value); + ZVAL_UNDEF(&rawBody); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(index) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(associative) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &index); + zephir_fetch_params(1, 0, 1, &associative_param); + if (!associative_param) { + associative = 0; + } else { + associative = zephir_get_boolval(associative_param); + } - ZEPHIR_OBS_VAR(&value); - if (UNEXPECTED(!(zephir_fetch_property_zval(&value, this_ptr, index, PH_SILENT_CC)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The index does not exist in the row", "phalcon/Mvc/Model/Row.zep", 46); - return; + ZEPHIR_CALL_METHOD(&rawBody, this_ptr, "getrawbody", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&rawBody) != IS_STRING) { + RETURN_MM_BOOL(0); } - RETURN_CCTOR(&value); + ZVAL_BOOL(&_0, (associative ? 1 : 0)); + zephir_json_decode(return_value, &rawBody, zephir_get_intval(&_0) ); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Row, offsetExists) +static PHP_METHOD(Phalcon_Http_Request, getLanguages) { - zval *index, index_sub; + zval _0, _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&index_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(index) - ZEND_PARSE_PARAMETERS_END(); -#endif - + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); - zephir_fetch_params_without_memory_grow(1, 0, &index); + ZEPHIR_MM_GROW(); - RETURN_BOOL(zephir_isset_property_zval(this_ptr, index)); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "HTTP_ACCEPT_LANGUAGE"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "language"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getqualityheader", NULL, 341, &_0, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Row, offsetSet) +static PHP_METHOD(Phalcon_Http_Request, getMethod) { - zval *index, index_sub, *value, value_sub; + zval returnMethod; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval _REQUEST, overridedMethod, spoofedMethod, requestMethod, server, _0, _3, _1$$5, _2$$5; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&index_sub); - ZVAL_UNDEF(&value_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(index) - Z_PARAM_ZVAL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif - + ZVAL_UNDEF(&_REQUEST); + ZVAL_UNDEF(&overridedMethod); + ZVAL_UNDEF(&spoofedMethod); + ZVAL_UNDEF(&requestMethod); + ZVAL_UNDEF(&server); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_1$$5); + ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&returnMethod); - zephir_fetch_params_without_memory_grow(2, 0, &index, &value); + ZEPHIR_MM_GROW(); + zephir_get_global(&_REQUEST, SL("_REQUEST")); - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Row is an immutable ArrayAccess object", "phalcon/Mvc/Model/Row.zep", 70); - return; + ZEPHIR_INIT_VAR(&returnMethod); + ZEPHIR_CALL_METHOD(&server, this_ptr, "getserverarray", NULL, 344); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&requestMethod); + if (EXPECTED(zephir_array_isset_string_fetch(&requestMethod, &server, SL("REQUEST_METHOD"), 0))) { + ZEPHIR_INIT_NVAR(&returnMethod); + zephir_fast_strtoupper(&returnMethod, &requestMethod); + } else { + RETURN_MM_STRING("GET"); + } + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "POST"); + if (ZEPHIR_IS_IDENTICAL(&_0, &returnMethod)) { + ZEPHIR_INIT_VAR(&_1$$5); + ZVAL_STRING(&_1$$5, "X-HTTP-METHOD-OVERRIDE"); + ZEPHIR_CALL_METHOD(&overridedMethod, this_ptr, "getheader", NULL, 346, &_1$$5); + zephir_check_call_status(); + zephir_read_property(&_2$$5, this_ptr, ZEND_STRL("httpMethodParameterOverride"), PH_NOISY_CC | PH_READONLY); + if (!(ZEPHIR_IS_EMPTY(&overridedMethod))) { + ZEPHIR_INIT_NVAR(&returnMethod); + zephir_fast_strtoupper(&returnMethod, &overridedMethod); + } else if (zephir_is_true(&_2$$5)) { + ZEPHIR_OBS_VAR(&spoofedMethod); + if (zephir_array_isset_string_fetch(&spoofedMethod, &_REQUEST, SL("_method"), 0)) { + ZEPHIR_INIT_NVAR(&returnMethod); + zephir_fast_strtoupper(&returnMethod, &spoofedMethod); + } + } + } + ZEPHIR_CALL_METHOD(&_3, this_ptr, "isvalidhttpmethod", NULL, 0, &returnMethod); + zephir_check_call_status(); + if (!(zephir_is_true(&_3))) { + RETURN_MM_STRING("GET"); + } + RETURN_CTOR(&returnMethod); } -static PHP_METHOD(Phalcon_Mvc_Model_Row, offsetUnset) +static PHP_METHOD(Phalcon_Http_Request, getPort) { - zval *offset, offset_sub; + zval host, pos, _0, _6, _7, _1$$3, _2$$3, _3$$4, _4$$5, _5$$5; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&offset_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(offset) - ZEND_PARSE_PARAMETERS_END(); -#endif - + ZVAL_UNDEF(&host); + ZVAL_UNDEF(&pos); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_5$$5); - zephir_fetch_params_without_memory_grow(1, 0, &offset); + ZEPHIR_MM_GROW(); - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_mvc_model_exception_ce, "Row is an immutable ArrayAccess object", "phalcon/Mvc/Model/Row.zep", 80); - return; + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "HTTP_HOST"); + ZEPHIR_CALL_METHOD(&host, this_ptr, "getserver", NULL, 0, &_0); + zephir_check_call_status(); + if (!(zephir_is_true(&host))) { + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "SERVER_PORT"); + ZEPHIR_CALL_METHOD(&_1$$3, this_ptr, "getserver", NULL, 0, &_2$$3); + zephir_check_call_status(); + RETURN_MM_LONG(zephir_get_intval(&_1$$3)); + } + if (zephir_memnstr_str(&host, SL(":"), "phalcon/Http/Request.zep", 635)) { + ZEPHIR_INIT_VAR(&_3$$4); + ZVAL_STRING(&_3$$4, ":"); + ZEPHIR_CALL_FUNCTION(&pos, "strrpos", NULL, 116, &host, &_3$$4); + zephir_check_call_status(); + if (!ZEPHIR_IS_FALSE_IDENTICAL(&pos)) { + ZVAL_LONG(&_4$$5, (zephir_get_numberval(&pos) + 1)); + ZEPHIR_INIT_VAR(&_5$$5); + zephir_substr(&_5$$5, &host, zephir_get_intval(&_4$$5), 0, ZEPHIR_SUBSTR_NO_LENGTH); + RETURN_MM_LONG(zephir_get_intval(&_5$$5)); + } + } + ZEPHIR_INIT_NVAR(&_0); + ZEPHIR_CALL_METHOD(&_6, this_ptr, "getscheme", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_7); + ZVAL_STRING(&_7, "https"); + if (ZEPHIR_IS_IDENTICAL(&_7, &_6)) { + ZVAL_LONG(&_0, 443); + } else { + ZVAL_LONG(&_0, 80); + } + RETURN_CCTOR(&_0); } -static PHP_METHOD(Phalcon_Mvc_Model_Row, readAttribute) +static PHP_METHOD(Phalcon_Http_Request, getPost) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *attribute_param = NULL, value; - zval attribute; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool notAllowEmpty, noRecursive; + zval *name_param = NULL, *filters = NULL, filters_sub, *defaultValue = NULL, defaultValue_sub, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, _POST, __$null, _0, _1; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&attribute); - ZVAL_UNDEF(&value); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&filters_sub); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_UNDEF(&_POST); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(attribute) + ZEND_PARSE_PARAMETERS_START(0, 5) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(name) + Z_PARAM_ZVAL_OR_NULL(filters) + Z_PARAM_ZVAL_OR_NULL(defaultValue) + Z_PARAM_BOOL(notAllowEmpty) + Z_PARAM_BOOL(noRecursive) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &attribute_param); - if (UNEXPECTED(Z_TYPE_P(attribute_param) != IS_STRING && Z_TYPE_P(attribute_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'attribute' must be of the type string")); + zephir_get_global(&_POST, SL("_POST")); + zephir_fetch_params(1, 0, 5, &name_param, &filters, &defaultValue, ¬AllowEmpty_param, &noRecursive_param); + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + } else { + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(attribute_param) == IS_STRING)) { - zephir_get_strval(&attribute, attribute_param); + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); } else { - ZEPHIR_INIT_VAR(&attribute); + ZEPHIR_INIT_VAR(&name); + } + } + if (!filters) { + filters = &filters_sub; + filters = &__$null; + } + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; + } + if (!notAllowEmpty_param) { + notAllowEmpty = 0; + } else { + notAllowEmpty = zephir_get_boolval(notAllowEmpty_param); + } + if (!noRecursive_param) { + noRecursive = 0; + } else { + noRecursive = zephir_get_boolval(noRecursive_param); } - ZEPHIR_OBS_VAR(&value); - if (!(zephir_fetch_property_zval(&value, this_ptr, &attribute, PH_SILENT_CC))) { - RETURN_MM_NULL(); + if (notAllowEmpty) { + ZVAL_BOOL(&_0, 1); + } else { + ZVAL_BOOL(&_0, 0); } - RETURN_CTOR(&value); + if (noRecursive) { + ZVAL_BOOL(&_1, 1); + } else { + ZVAL_BOOL(&_1, 0); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethelper", NULL, 340, &_POST, &name, filters, defaultValue, &_0, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Row, setDirtyState) +static PHP_METHOD(Phalcon_Http_Request, getPut) { - zval *dirtyState_param = NULL; - zend_long dirtyState; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool notAllowEmpty, noRecursive, _0$$3; + zval *name_param = NULL, *filters = NULL, filters_sub, *defaultValue = NULL, defaultValue_sub, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, __$null, put, contentType, _5, _6, _1$$3, _2$$3, _3$$4, _4$$6; + zval name; zval *this_ptr = getThis(); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&filters_sub); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&put); + ZVAL_UNDEF(&contentType); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(dirtyState) + ZEND_PARSE_PARAMETERS_START(0, 5) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(name) + Z_PARAM_ZVAL_OR_NULL(filters) + Z_PARAM_ZVAL_OR_NULL(defaultValue) + Z_PARAM_BOOL(notAllowEmpty) + Z_PARAM_BOOL(noRecursive) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &dirtyState_param); - dirtyState = zephir_get_intval(dirtyState_param); - - - RETURN_BOOL(0); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Row, toArray) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - - ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 5, &name_param, &filters, &defaultValue, ¬AllowEmpty_param, &noRecursive_param); + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + } else { + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + } + if (!filters) { + filters = &filters_sub; + filters = &__$null; + } + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; + } + if (!notAllowEmpty_param) { + notAllowEmpty = 0; + } else { + notAllowEmpty = zephir_get_boolval(notAllowEmpty_param); + } + if (!noRecursive_param) { + noRecursive = 0; + } else { + noRecursive = zephir_get_boolval(noRecursive_param); + } - ZEPHIR_RETURN_CALL_FUNCTION("get_object_vars", NULL, 438, this_ptr); + + ZEPHIR_OBS_VAR(&put); + zephir_read_property(&put, this_ptr, ZEND_STRL("putCache"), PH_NOISY_CC); + if (Z_TYPE_P(&put) == IS_NULL) { + ZEPHIR_CALL_METHOD(&contentType, this_ptr, "getcontenttype", NULL, 0); + zephir_check_call_status(); + _0$$3 = Z_TYPE_P(&contentType) == IS_STRING; + if (_0$$3) { + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, "json"); + ZEPHIR_CALL_FUNCTION(&_2$$3, "stripos", NULL, 347, &contentType, &_1$$3); + zephir_check_call_status(); + _0$$3 = !ZEPHIR_IS_FALSE(&_2$$3); + } + if (_0$$3) { + ZVAL_BOOL(&_3$$4, 1); + ZEPHIR_CALL_METHOD(&put, this_ptr, "getjsonrawbody", NULL, 0, &_3$$4); + zephir_check_call_status(); + if (Z_TYPE_P(&put) != IS_ARRAY) { + ZEPHIR_INIT_NVAR(&put); + array_init(&put); + } + } else { + ZEPHIR_INIT_NVAR(&put); + array_init(&put); + ZEPHIR_CALL_METHOD(&_4$$6, this_ptr, "getrawbody", NULL, 0); + zephir_check_call_status(); + ZEPHIR_MAKE_REF(&put); + ZEPHIR_CALL_FUNCTION(NULL, "parse_str", NULL, 306, &_4$$6, &put); + ZEPHIR_UNREF(&put); + zephir_check_call_status(); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("putCache"), &put); + } + if (notAllowEmpty) { + ZVAL_BOOL(&_5, 1); + } else { + ZVAL_BOOL(&_5, 0); + } + if (noRecursive) { + ZVAL_BOOL(&_6, 1); + } else { + ZVAL_BOOL(&_6, 0); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethelper", NULL, 340, &put, &name, filters, defaultValue, &_5, &_6); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Row, writeAttribute) +static PHP_METHOD(Phalcon_Http_Request, getQuery) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *attribute_param = NULL, *value, value_sub; - zval attribute; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool notAllowEmpty, noRecursive; + zval *name_param = NULL, *filters = NULL, filters_sub, *defaultValue = NULL, defaultValue_sub, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, _GET, __$null, _0, _1; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&attribute); - ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&filters_sub); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_UNDEF(&_GET); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(attribute) - Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_START(0, 5) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(name) + Z_PARAM_ZVAL_OR_NULL(filters) + Z_PARAM_ZVAL_OR_NULL(defaultValue) + Z_PARAM_BOOL(notAllowEmpty) + Z_PARAM_BOOL(noRecursive) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &attribute_param, &value); - if (UNEXPECTED(Z_TYPE_P(attribute_param) != IS_STRING && Z_TYPE_P(attribute_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'attribute' must be of the type string")); + zephir_get_global(&_GET, SL("_GET")); + zephir_fetch_params(1, 0, 5, &name_param, &filters, &defaultValue, ¬AllowEmpty_param, &noRecursive_param); + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + } else { + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(attribute_param) == IS_STRING)) { - zephir_get_strval(&attribute, attribute_param); + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); } else { - ZEPHIR_INIT_VAR(&attribute); + ZEPHIR_INIT_VAR(&name); + } + } + if (!filters) { + filters = &filters_sub; + filters = &__$null; + } + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; + } + if (!notAllowEmpty_param) { + notAllowEmpty = 0; + } else { + notAllowEmpty = zephir_get_boolval(notAllowEmpty_param); + } + if (!noRecursive_param) { + noRecursive = 0; + } else { + noRecursive = zephir_get_boolval(noRecursive_param); } - zephir_update_property_zval_zval(this_ptr, &attribute, value); - ZEPHIR_MM_RESTORE(); + if (notAllowEmpty) { + ZVAL_BOOL(&_0, 1); + } else { + ZVAL_BOOL(&_0, 0); + } + if (noRecursive) { + ZVAL_BOOL(&_1, 1); + } else { + ZVAL_BOOL(&_1, 0); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethelper", NULL, 340, &_GET, &name, filters, defaultValue, &_0, &_1); + zephir_check_call_status(); + RETURN_MM(); } +static PHP_METHOD(Phalcon_Http_Request, getRawBody) +{ + zval rawBody, contents, _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&rawBody); + ZVAL_UNDEF(&contents); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); -#ifdef HAVE_CONFIG_H -#endif - + ZEPHIR_MM_GROW(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("rawBody"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&rawBody, &_0); + if (ZEPHIR_IS_EMPTY(&rawBody)) { + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, "php://input"); + ZEPHIR_INIT_VAR(&contents); + zephir_file_get_contents(&contents, &_1$$3); + zephir_update_property_zval(this_ptr, ZEND_STRL("rawBody"), &contents); + RETURN_CCTOR(&contents); + } + RETURN_CCTOR(&rawBody); +} +static PHP_METHOD(Phalcon_Http_Request, getScheme) +{ + zend_bool _1; + zval https, _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&https); + ZVAL_UNDEF(&_0); -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Transaction) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model, Transaction, phalcon, mvc_model_transaction, phalcon_mvc_model_transaction_method_entry, 0); - zend_declare_property_bool(phalcon_mvc_model_transaction_ce, SL("activeTransaction"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_transaction_ce, SL("connection"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_model_transaction_ce, SL("isNewTransaction"), 1, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_transaction_ce, SL("manager"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_transaction_ce, SL("messages"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_transaction_ce, SL("rollbackRecord"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_model_transaction_ce, SL("rollbackOnAbort"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_model_transaction_ce, SL("rollbackThrowException"), 0, ZEND_ACC_PROTECTED); - phalcon_mvc_model_transaction_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_Transaction; + ZEPHIR_MM_GROW(); - zend_class_implements(phalcon_mvc_model_transaction_ce, 1, phalcon_mvc_model_transactioninterface_ce); - return SUCCESS; + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "HTTPS"); + ZEPHIR_CALL_METHOD(&https, this_ptr, "getserver", NULL, 0, &_0); + zephir_check_call_status(); + _1 = zephir_is_true(&https); + if (_1) { + _1 = !ZEPHIR_IS_STRING(&https, "off"); + } + if (_1) { + RETURN_MM_STRING("https"); + } + RETURN_MM_STRING("http"); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction, __construct) +static PHP_METHOD(Phalcon_Http_Request, getServer) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval service; - zend_bool autoBegin; - zval *container, container_sub, *autoBegin_param = NULL, *service_param = NULL, connection, _0; + zval *name_param = NULL, serverValue, server; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&container_sub); - ZVAL_UNDEF(&connection); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&service); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&serverValue); + ZVAL_UNDEF(&server); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(autoBegin) - Z_PARAM_STR(service) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &container, &autoBegin_param, &service_param); - if (!autoBegin_param) { - autoBegin = 0; - } else { - autoBegin = zephir_get_boolval(autoBegin_param); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); } - if (!service_param) { - ZEPHIR_INIT_VAR(&service); - ZVAL_STRING(&service, "db"); + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); } else { - zephir_get_strval(&service, service_param); + ZEPHIR_INIT_VAR(&name); } - ZEPHIR_INIT_VAR(&_0); - array_init(&_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("messages"), &_0); - ZEPHIR_CALL_METHOD(&connection, container, "get", NULL, 0, &service); + ZEPHIR_CALL_METHOD(&server, this_ptr, "getserverarray", NULL, 344); zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("connection"), &connection); - if (autoBegin) { - ZEPHIR_CALL_METHOD(NULL, &connection, "begin", NULL, 0); - zephir_check_call_status(); + if (!(zephir_array_isset_fetch(&serverValue, &server, &name, 1))) { + RETURN_MM_NULL(); } - ZEPHIR_MM_RESTORE(); + RETURN_CTOR(&serverValue); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction, begin) +static PHP_METHOD(Phalcon_Http_Request, getServerAddress) { - zval _0; + zval serverAddr, _0, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&serverAddr); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "begin", NULL, 0); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "SERVER_ADDR"); + ZEPHIR_CALL_METHOD(&serverAddr, this_ptr, "getserver", NULL, 0, &_0); zephir_check_call_status(); - RETURN_MM(); + if (Z_TYPE_P(&serverAddr) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, "localhost"); + ZEPHIR_RETURN_CALL_FUNCTION("gethostbyname", NULL, 348, &_1$$3); + zephir_check_call_status(); + RETURN_MM(); + } + RETURN_CCTOR(&serverAddr); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction, commit) +static PHP_METHOD(Phalcon_Http_Request, getServerName) { - zval manager, _0; + zval serverName, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&manager); + ZVAL_UNDEF(&serverName); ZVAL_UNDEF(&_0); ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&manager, &_0); - if (Z_TYPE_P(&manager) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(NULL, &manager, "notifycommit", NULL, 0, this_ptr); - zephir_check_call_status(); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "commit", NULL, 0); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "SERVER_NAME"); + ZEPHIR_CALL_METHOD(&serverName, this_ptr, "getserver", NULL, 0, &_0); zephir_check_call_status(); - RETURN_MM(); + if (Z_TYPE_P(&serverName) == IS_NULL) { + RETURN_MM_STRING("localhost"); + } + RETURN_CCTOR(&serverName); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction, getConnection) +static PHP_METHOD(Phalcon_Http_Request, getUploadedFiles) { - zval _0, _1$$3, _2$$4; + zend_string *_3$$3; + zend_ulong _2$$3; + zval files; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_10 = NULL, *_18 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *onlySuccessful_param = NULL, *namedKeys_param = NULL, _FILES, superFiles, prefix, input, smoothInput, file, dataFile, *_0$$3, _1$$3, _4$$4, _5$$5, _6$$5, _7$$5, _8$$5, _9$$5, *_11$$5, _12$$5, _14$$6, _15$$7, _16$$8, _17$$8, _19$$8, _20$$9, _21$$9, _23$$10, _24$$11, _25$$11, _26$$12, _27$$12, _28$$12, _29$$13, _30$$13, _32$$14, _33$$16, _34$$17, _35$$18, _36$$19, _37$$19, _38$$19, _39$$19, _40$$19, *_41$$19, _42$$19, _44$$20, _45$$21, _46$$21, _47$$22, _48$$22, _49$$22, _50$$23, _51$$23, _53$$24, _54$$25, _55$$25, _56$$26, _57$$26, _58$$26, _59$$27, _60$$27, _62$$28, _63$$30, _64$$31; + zend_bool onlySuccessful, namedKeys, _13$$6, _22$$10, _31$$14, _43$$20, _52$$24, _61$$28; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_FILES); + ZVAL_UNDEF(&superFiles); + ZVAL_UNDEF(&prefix); + ZVAL_UNDEF(&input); + ZVAL_UNDEF(&smoothInput); + ZVAL_UNDEF(&file); + ZVAL_UNDEF(&dataFile); ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_7$$5); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_12$$5); + ZVAL_UNDEF(&_14$$6); + ZVAL_UNDEF(&_15$$7); + ZVAL_UNDEF(&_16$$8); + ZVAL_UNDEF(&_17$$8); + ZVAL_UNDEF(&_19$$8); + ZVAL_UNDEF(&_20$$9); + ZVAL_UNDEF(&_21$$9); + ZVAL_UNDEF(&_23$$10); + ZVAL_UNDEF(&_24$$11); + ZVAL_UNDEF(&_25$$11); + ZVAL_UNDEF(&_26$$12); + ZVAL_UNDEF(&_27$$12); + ZVAL_UNDEF(&_28$$12); + ZVAL_UNDEF(&_29$$13); + ZVAL_UNDEF(&_30$$13); + ZVAL_UNDEF(&_32$$14); + ZVAL_UNDEF(&_33$$16); + ZVAL_UNDEF(&_34$$17); + ZVAL_UNDEF(&_35$$18); + ZVAL_UNDEF(&_36$$19); + ZVAL_UNDEF(&_37$$19); + ZVAL_UNDEF(&_38$$19); + ZVAL_UNDEF(&_39$$19); + ZVAL_UNDEF(&_40$$19); + ZVAL_UNDEF(&_42$$19); + ZVAL_UNDEF(&_44$$20); + ZVAL_UNDEF(&_45$$21); + ZVAL_UNDEF(&_46$$21); + ZVAL_UNDEF(&_47$$22); + ZVAL_UNDEF(&_48$$22); + ZVAL_UNDEF(&_49$$22); + ZVAL_UNDEF(&_50$$23); + ZVAL_UNDEF(&_51$$23); + ZVAL_UNDEF(&_53$$24); + ZVAL_UNDEF(&_54$$25); + ZVAL_UNDEF(&_55$$25); + ZVAL_UNDEF(&_56$$26); + ZVAL_UNDEF(&_57$$26); + ZVAL_UNDEF(&_58$$26); + ZVAL_UNDEF(&_59$$27); + ZVAL_UNDEF(&_60$$27); + ZVAL_UNDEF(&_62$$28); + ZVAL_UNDEF(&_63$$30); + ZVAL_UNDEF(&_64$$31); + ZVAL_UNDEF(&files); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 2) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(onlySuccessful) + Z_PARAM_BOOL(namedKeys) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_get_global(&_FILES, SL("_FILES")); + zephir_fetch_params(1, 0, 2, &onlySuccessful_param, &namedKeys_param); + if (!onlySuccessful_param) { + onlySuccessful = 0; + } else { + onlySuccessful = zephir_get_boolval(onlySuccessful_param); + } + if (!namedKeys_param) { + namedKeys = 0; + } else { + namedKeys = zephir_get_boolval(namedKeys_param); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("rollbackOnAbort"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_0)) { - ZEPHIR_CALL_FUNCTION(&_1$$3, "connection_aborted", NULL, 490); - zephir_check_call_status(); - if (zephir_is_true(&_1$$3)) { - ZEPHIR_INIT_VAR(&_2$$4); - ZVAL_STRING(&_2$$4, "The request was aborted"); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "rollback", NULL, 0, &_2$$4); + + ZEPHIR_INIT_VAR(&files); + array_init(&files); + ZEPHIR_CPY_WRT(&superFiles, &_FILES); + if (zephir_fast_count_int(&superFiles) > 0) { + zephir_is_iterable(&superFiles, 0, "phalcon/Http/Request.zep", 901); + if (Z_TYPE_P(&superFiles) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&superFiles), _2$$3, _3$$3, _0$$3) + { + ZEPHIR_INIT_NVAR(&prefix); + if (_3$$3 != NULL) { + ZVAL_STR_COPY(&prefix, _3$$3); + } else { + ZVAL_LONG(&prefix, _2$$3); + } + ZEPHIR_INIT_NVAR(&input); + ZVAL_COPY(&input, _0$$3); + ZEPHIR_OBS_NVAR(&_4$$4); + zephir_array_fetch_string(&_4$$4, &input, SL("name"), PH_NOISY, "phalcon/Http/Request.zep", 858); + if (Z_TYPE_P(&_4$$4) == IS_ARRAY) { + zephir_array_fetch_string(&_5$$5, &input, SL("name"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 860); + zephir_array_fetch_string(&_6$$5, &input, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 861); + zephir_array_fetch_string(&_7$$5, &input, SL("tmp_name"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 862); + zephir_array_fetch_string(&_8$$5, &input, SL("size"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 863); + zephir_array_fetch_string(&_9$$5, &input, SL("error"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 864); + ZEPHIR_CALL_METHOD(&smoothInput, this_ptr, "smoothfiles", &_10, 349, &_5$$5, &_6$$5, &_7$$5, &_8$$5, &_9$$5, &prefix); + zephir_check_call_status(); + zephir_is_iterable(&smoothInput, 0, "phalcon/Http/Request.zep", 891); + if (Z_TYPE_P(&smoothInput) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&smoothInput), _11$$5) + { + ZEPHIR_INIT_NVAR(&file); + ZVAL_COPY(&file, _11$$5); + _13$$6 = onlySuccessful == 0; + if (!(_13$$6)) { + zephir_array_fetch_string(&_14$$6, &file, SL("error"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 869); + _13$$6 = ZEPHIR_IS_LONG(&_14$$6, 0); + } + if (_13$$6) { + ZEPHIR_INIT_NVAR(&dataFile); + zephir_create_array(&dataFile, 5, 0); + ZEPHIR_OBS_NVAR(&_15$$7); + zephir_array_fetch_string(&_15$$7, &file, SL("name"), PH_NOISY, "phalcon/Http/Request.zep", 871); + zephir_array_update_string(&dataFile, SL("name"), &_15$$7, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_15$$7); + zephir_array_fetch_string(&_15$$7, &file, SL("type"), PH_NOISY, "phalcon/Http/Request.zep", 872); + zephir_array_update_string(&dataFile, SL("type"), &_15$$7, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_15$$7); + zephir_array_fetch_string(&_15$$7, &file, SL("tmp_name"), PH_NOISY, "phalcon/Http/Request.zep", 873); + zephir_array_update_string(&dataFile, SL("tmp_name"), &_15$$7, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_15$$7); + zephir_array_fetch_string(&_15$$7, &file, SL("size"), PH_NOISY, "phalcon/Http/Request.zep", 874); + zephir_array_update_string(&dataFile, SL("size"), &_15$$7, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_15$$7); + zephir_array_fetch_string(&_15$$7, &file, SL("error"), PH_NOISY, "phalcon/Http/Request.zep", 876); + zephir_array_update_string(&dataFile, SL("error"), &_15$$7, PH_COPY | PH_SEPARATE); + if (namedKeys == 1) { + ZEPHIR_INIT_NVAR(&_16$$8); + object_init_ex(&_16$$8, phalcon_http_request_file_ce); + zephir_array_fetch_string(&_17$$8, &file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 882); + ZEPHIR_CALL_METHOD(NULL, &_16$$8, "__construct", &_18, 350, &dataFile, &_17$$8); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&_19$$8); + zephir_array_fetch_string(&_19$$8, &file, SL("key"), PH_NOISY, "phalcon/Http/Request.zep", 879); + zephir_array_update_zval(&files, &_19$$8, &_16$$8, PH_COPY | PH_SEPARATE); + } else { + ZEPHIR_INIT_NVAR(&_20$$9); + object_init_ex(&_20$$9, phalcon_http_request_file_ce); + zephir_array_fetch_string(&_21$$9, &file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 887); + ZEPHIR_CALL_METHOD(NULL, &_20$$9, "__construct", &_18, 350, &dataFile, &_21$$9); + zephir_check_call_status(); + zephir_array_append(&files, &_20$$9, PH_SEPARATE, "phalcon/Http/Request.zep", 887); + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &smoothInput, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_12$$5, &smoothInput, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_12$$5)) { + break; + } + ZEPHIR_CALL_METHOD(&file, &smoothInput, "current", NULL, 0); + zephir_check_call_status(); + _22$$10 = onlySuccessful == 0; + if (!(_22$$10)) { + zephir_array_fetch_string(&_23$$10, &file, SL("error"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 869); + _22$$10 = ZEPHIR_IS_LONG(&_23$$10, 0); + } + if (_22$$10) { + ZEPHIR_INIT_NVAR(&_24$$11); + zephir_create_array(&_24$$11, 5, 0); + ZEPHIR_OBS_NVAR(&_25$$11); + zephir_array_fetch_string(&_25$$11, &file, SL("name"), PH_NOISY, "phalcon/Http/Request.zep", 871); + zephir_array_update_string(&_24$$11, SL("name"), &_25$$11, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_25$$11); + zephir_array_fetch_string(&_25$$11, &file, SL("type"), PH_NOISY, "phalcon/Http/Request.zep", 872); + zephir_array_update_string(&_24$$11, SL("type"), &_25$$11, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_25$$11); + zephir_array_fetch_string(&_25$$11, &file, SL("tmp_name"), PH_NOISY, "phalcon/Http/Request.zep", 873); + zephir_array_update_string(&_24$$11, SL("tmp_name"), &_25$$11, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_25$$11); + zephir_array_fetch_string(&_25$$11, &file, SL("size"), PH_NOISY, "phalcon/Http/Request.zep", 874); + zephir_array_update_string(&_24$$11, SL("size"), &_25$$11, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_25$$11); + zephir_array_fetch_string(&_25$$11, &file, SL("error"), PH_NOISY, "phalcon/Http/Request.zep", 876); + zephir_array_update_string(&_24$$11, SL("error"), &_25$$11, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&dataFile, &_24$$11); + if (namedKeys == 1) { + ZEPHIR_INIT_NVAR(&_26$$12); + object_init_ex(&_26$$12, phalcon_http_request_file_ce); + zephir_array_fetch_string(&_27$$12, &file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 882); + ZEPHIR_CALL_METHOD(NULL, &_26$$12, "__construct", &_18, 350, &dataFile, &_27$$12); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&_28$$12); + zephir_array_fetch_string(&_28$$12, &file, SL("key"), PH_NOISY, "phalcon/Http/Request.zep", 879); + zephir_array_update_zval(&files, &_28$$12, &_26$$12, PH_COPY | PH_SEPARATE); + } else { + ZEPHIR_INIT_NVAR(&_29$$13); + object_init_ex(&_29$$13, phalcon_http_request_file_ce); + zephir_array_fetch_string(&_30$$13, &file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 887); + ZEPHIR_CALL_METHOD(NULL, &_29$$13, "__construct", &_18, 350, &dataFile, &_30$$13); + zephir_check_call_status(); + zephir_array_append(&files, &_29$$13, PH_SEPARATE, "phalcon/Http/Request.zep", 887); + } + } + ZEPHIR_CALL_METHOD(NULL, &smoothInput, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&file); + } else { + _31$$14 = onlySuccessful == 0; + if (!(_31$$14)) { + zephir_array_fetch_string(&_32$$14, &input, SL("error"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 892); + _31$$14 = ZEPHIR_IS_LONG(&_32$$14, 0); + } + if (_31$$14) { + if (namedKeys == 1) { + ZEPHIR_INIT_NVAR(&_33$$16); + object_init_ex(&_33$$16, phalcon_http_request_file_ce); + ZEPHIR_CALL_METHOD(NULL, &_33$$16, "__construct", &_18, 350, &input, &prefix); + zephir_check_call_status(); + zephir_array_update_zval(&files, &prefix, &_33$$16, PH_COPY | PH_SEPARATE); + } else { + ZEPHIR_INIT_NVAR(&_34$$17); + object_init_ex(&_34$$17, phalcon_http_request_file_ce); + ZEPHIR_CALL_METHOD(NULL, &_34$$17, "__construct", &_18, 350, &input, &prefix); + zephir_check_call_status(); + zephir_array_append(&files, &_34$$17, PH_SEPARATE, "phalcon/Http/Request.zep", 896); + } + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &superFiles, "rewind", NULL, 0); zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1$$3, &superFiles, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&prefix, &superFiles, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&input, &superFiles, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&_35$$18); + zephir_array_fetch_string(&_35$$18, &input, SL("name"), PH_NOISY, "phalcon/Http/Request.zep", 858); + if (Z_TYPE_P(&_35$$18) == IS_ARRAY) { + zephir_array_fetch_string(&_36$$19, &input, SL("name"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 860); + zephir_array_fetch_string(&_37$$19, &input, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 861); + zephir_array_fetch_string(&_38$$19, &input, SL("tmp_name"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 862); + zephir_array_fetch_string(&_39$$19, &input, SL("size"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 863); + zephir_array_fetch_string(&_40$$19, &input, SL("error"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 864); + ZEPHIR_CALL_METHOD(&smoothInput, this_ptr, "smoothfiles", &_10, 349, &_36$$19, &_37$$19, &_38$$19, &_39$$19, &_40$$19, &prefix); + zephir_check_call_status(); + zephir_is_iterable(&smoothInput, 0, "phalcon/Http/Request.zep", 891); + if (Z_TYPE_P(&smoothInput) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&smoothInput), _41$$19) + { + ZEPHIR_INIT_NVAR(&file); + ZVAL_COPY(&file, _41$$19); + _43$$20 = onlySuccessful == 0; + if (!(_43$$20)) { + zephir_array_fetch_string(&_44$$20, &file, SL("error"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 869); + _43$$20 = ZEPHIR_IS_LONG(&_44$$20, 0); + } + if (_43$$20) { + ZEPHIR_INIT_NVAR(&_45$$21); + zephir_create_array(&_45$$21, 5, 0); + ZEPHIR_OBS_NVAR(&_46$$21); + zephir_array_fetch_string(&_46$$21, &file, SL("name"), PH_NOISY, "phalcon/Http/Request.zep", 871); + zephir_array_update_string(&_45$$21, SL("name"), &_46$$21, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_46$$21); + zephir_array_fetch_string(&_46$$21, &file, SL("type"), PH_NOISY, "phalcon/Http/Request.zep", 872); + zephir_array_update_string(&_45$$21, SL("type"), &_46$$21, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_46$$21); + zephir_array_fetch_string(&_46$$21, &file, SL("tmp_name"), PH_NOISY, "phalcon/Http/Request.zep", 873); + zephir_array_update_string(&_45$$21, SL("tmp_name"), &_46$$21, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_46$$21); + zephir_array_fetch_string(&_46$$21, &file, SL("size"), PH_NOISY, "phalcon/Http/Request.zep", 874); + zephir_array_update_string(&_45$$21, SL("size"), &_46$$21, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_46$$21); + zephir_array_fetch_string(&_46$$21, &file, SL("error"), PH_NOISY, "phalcon/Http/Request.zep", 876); + zephir_array_update_string(&_45$$21, SL("error"), &_46$$21, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&dataFile, &_45$$21); + if (namedKeys == 1) { + ZEPHIR_INIT_NVAR(&_47$$22); + object_init_ex(&_47$$22, phalcon_http_request_file_ce); + zephir_array_fetch_string(&_48$$22, &file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 882); + ZEPHIR_CALL_METHOD(NULL, &_47$$22, "__construct", &_18, 350, &dataFile, &_48$$22); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&_49$$22); + zephir_array_fetch_string(&_49$$22, &file, SL("key"), PH_NOISY, "phalcon/Http/Request.zep", 879); + zephir_array_update_zval(&files, &_49$$22, &_47$$22, PH_COPY | PH_SEPARATE); + } else { + ZEPHIR_INIT_NVAR(&_50$$23); + object_init_ex(&_50$$23, phalcon_http_request_file_ce); + zephir_array_fetch_string(&_51$$23, &file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 887); + ZEPHIR_CALL_METHOD(NULL, &_50$$23, "__construct", &_18, 350, &dataFile, &_51$$23); + zephir_check_call_status(); + zephir_array_append(&files, &_50$$23, PH_SEPARATE, "phalcon/Http/Request.zep", 887); + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &smoothInput, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_42$$19, &smoothInput, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_42$$19)) { + break; + } + ZEPHIR_CALL_METHOD(&file, &smoothInput, "current", NULL, 0); + zephir_check_call_status(); + _52$$24 = onlySuccessful == 0; + if (!(_52$$24)) { + zephir_array_fetch_string(&_53$$24, &file, SL("error"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 869); + _52$$24 = ZEPHIR_IS_LONG(&_53$$24, 0); + } + if (_52$$24) { + ZEPHIR_INIT_NVAR(&_54$$25); + zephir_create_array(&_54$$25, 5, 0); + ZEPHIR_OBS_NVAR(&_55$$25); + zephir_array_fetch_string(&_55$$25, &file, SL("name"), PH_NOISY, "phalcon/Http/Request.zep", 871); + zephir_array_update_string(&_54$$25, SL("name"), &_55$$25, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_55$$25); + zephir_array_fetch_string(&_55$$25, &file, SL("type"), PH_NOISY, "phalcon/Http/Request.zep", 872); + zephir_array_update_string(&_54$$25, SL("type"), &_55$$25, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_55$$25); + zephir_array_fetch_string(&_55$$25, &file, SL("tmp_name"), PH_NOISY, "phalcon/Http/Request.zep", 873); + zephir_array_update_string(&_54$$25, SL("tmp_name"), &_55$$25, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_55$$25); + zephir_array_fetch_string(&_55$$25, &file, SL("size"), PH_NOISY, "phalcon/Http/Request.zep", 874); + zephir_array_update_string(&_54$$25, SL("size"), &_55$$25, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_55$$25); + zephir_array_fetch_string(&_55$$25, &file, SL("error"), PH_NOISY, "phalcon/Http/Request.zep", 876); + zephir_array_update_string(&_54$$25, SL("error"), &_55$$25, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&dataFile, &_54$$25); + if (namedKeys == 1) { + ZEPHIR_INIT_NVAR(&_56$$26); + object_init_ex(&_56$$26, phalcon_http_request_file_ce); + zephir_array_fetch_string(&_57$$26, &file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 882); + ZEPHIR_CALL_METHOD(NULL, &_56$$26, "__construct", &_18, 350, &dataFile, &_57$$26); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&_58$$26); + zephir_array_fetch_string(&_58$$26, &file, SL("key"), PH_NOISY, "phalcon/Http/Request.zep", 879); + zephir_array_update_zval(&files, &_58$$26, &_56$$26, PH_COPY | PH_SEPARATE); + } else { + ZEPHIR_INIT_NVAR(&_59$$27); + object_init_ex(&_59$$27, phalcon_http_request_file_ce); + zephir_array_fetch_string(&_60$$27, &file, SL("key"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 887); + ZEPHIR_CALL_METHOD(NULL, &_59$$27, "__construct", &_18, 350, &dataFile, &_60$$27); + zephir_check_call_status(); + zephir_array_append(&files, &_59$$27, PH_SEPARATE, "phalcon/Http/Request.zep", 887); + } + } + ZEPHIR_CALL_METHOD(NULL, &smoothInput, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&file); + } else { + _61$$28 = onlySuccessful == 0; + if (!(_61$$28)) { + zephir_array_fetch_string(&_62$$28, &input, SL("error"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 892); + _61$$28 = ZEPHIR_IS_LONG(&_62$$28, 0); + } + if (_61$$28) { + if (namedKeys == 1) { + ZEPHIR_INIT_NVAR(&_63$$30); + object_init_ex(&_63$$30, phalcon_http_request_file_ce); + ZEPHIR_CALL_METHOD(NULL, &_63$$30, "__construct", &_18, 350, &input, &prefix); + zephir_check_call_status(); + zephir_array_update_zval(&files, &prefix, &_63$$30, PH_COPY | PH_SEPARATE); + } else { + ZEPHIR_INIT_NVAR(&_64$$31); + object_init_ex(&_64$$31, phalcon_http_request_file_ce); + ZEPHIR_CALL_METHOD(NULL, &_64$$31, "__construct", &_18, 350, &input, &prefix); + zephir_check_call_status(); + zephir_array_append(&files, &_64$$31, PH_SEPARATE, "phalcon/Http/Request.zep", 896); + } + } + } + ZEPHIR_CALL_METHOD(NULL, &superFiles, "next", NULL, 0); + zephir_check_call_status(); + } } + ZEPHIR_INIT_NVAR(&input); + ZEPHIR_INIT_NVAR(&prefix); } - RETURN_MM_MEMBER(getThis(), "connection"); + RETURN_CTOR(&files); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction, getMessages) +static PHP_METHOD(Phalcon_Http_Request, getURI) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *onlyPath_param = NULL, requestURI, _0, _1$$4, _2$$4, _3$$4; + zend_bool onlyPath; zval *this_ptr = getThis(); + ZVAL_UNDEF(&requestURI); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(onlyPath) + ZEND_PARSE_PARAMETERS_END(); +#endif + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &onlyPath_param); + if (!onlyPath_param) { + onlyPath = 0; + } else { + onlyPath = zephir_get_boolval(onlyPath_param); + } - RETURN_MEMBER(getThis(), "messages"); + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "REQUEST_URI"); + ZEPHIR_CALL_METHOD(&requestURI, this_ptr, "getserver", NULL, 0, &_0); + zephir_check_call_status(); + if (Z_TYPE_P(&requestURI) == IS_NULL) { + RETURN_MM_STRING(""); + } + if (onlyPath) { + ZEPHIR_INIT_VAR(&_1$$4); + ZEPHIR_INIT_VAR(&_2$$4); + ZVAL_STRING(&_2$$4, "?"); + zephir_fast_explode(&_1$$4, &_2$$4, &requestURI, LONG_MAX); + zephir_array_fetch_long(&_3$$4, &_1$$4, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 930); + ZEPHIR_CPY_WRT(&requestURI, &_3$$4); + } + RETURN_CCTOR(&requestURI); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction, isManaged) +static PHP_METHOD(Phalcon_Http_Request, getUserAgent) { - zval _0; + zval userAgent, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&userAgent); ZVAL_UNDEF(&_0); ZEPHIR_MM_GROW(); - ZEPHIR_OBS_VAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC); - RETURN_MM_BOOL(Z_TYPE_P(&_0) == IS_OBJECT); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "HTTP_USER_AGENT"); + ZEPHIR_CALL_METHOD(&userAgent, this_ptr, "getserver", NULL, 0, &_0); + zephir_check_call_status(); + if (Z_TYPE_P(&userAgent) == IS_NULL) { + RETURN_MM_STRING(""); + } + RETURN_CCTOR(&userAgent); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction, isValid) +static PHP_METHOD(Phalcon_Http_Request, has) { - zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *name_param = NULL, _REQUEST; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_REQUEST); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_get_global(&_REQUEST, SL("_REQUEST")); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + + + RETURN_MM_BOOL(zephir_array_isset(&_REQUEST, &name)); +} + +static PHP_METHOD(Phalcon_Http_Request, hasFiles) +{ + zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "isundertransaction", NULL, 0); + ZVAL_BOOL(&_1, 1); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "numfiles", NULL, 0, &_1); zephir_check_call_status(); - RETURN_MM(); + RETURN_MM_BOOL(ZEPHIR_GT_LONG(&_0, 0)); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction, rollback) +static PHP_METHOD(Phalcon_Http_Request, hasHeader) { + zend_bool _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *rollbackMessage_param = NULL, *rollbackRecord = NULL, rollbackRecord_sub, __$null, manager, connection, _0, _1, _2$$4, _3$$7, _4$$7; - zval rollbackMessage; + zval *header_param = NULL, name, _0, _1, _2, _3, _5, _6; + zval header; zval *this_ptr = getThis(); - ZVAL_UNDEF(&rollbackMessage); - ZVAL_UNDEF(&rollbackRecord_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&manager); - ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&header); + ZVAL_UNDEF(&name); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$7); - ZVAL_UNDEF(&_4$$7); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(rollbackMessage) - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(rollbackRecord, phalcon_mvc_modelinterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(header) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &rollbackMessage_param, &rollbackRecord); - if (!rollbackMessage_param) { - ZEPHIR_INIT_VAR(&rollbackMessage); - } else { - zephir_get_strval(&rollbackMessage, rollbackMessage_param); + zephir_fetch_params(1, 1, 0, &header_param); + if (UNEXPECTED(Z_TYPE_P(header_param) != IS_STRING && Z_TYPE_P(header_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'header' must be of the type string")); + RETURN_MM_NULL(); } - if (!rollbackRecord) { - rollbackRecord = &rollbackRecord_sub; - rollbackRecord = &__$null; + if (EXPECTED(Z_TYPE_P(header_param) == IS_STRING)) { + zephir_get_strval(&header, header_param); + } else { + ZEPHIR_INIT_VAR(&header); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("manager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&manager, &_0); - if (Z_TYPE_P(&manager) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(NULL, &manager, "notifyrollback", NULL, 0, this_ptr); - zephir_check_call_status(); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&connection, &_0); - ZEPHIR_CALL_METHOD(&_1, &connection, "rollback", NULL, 0); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "-"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "_"); + ZEPHIR_CALL_FUNCTION(&_2, "strtr", NULL, 5, &header, &_0, &_1); zephir_check_call_status(); - if (UNEXPECTED(zephir_is_true(&_1))) { - if (!(!(ZEPHIR_IS_EMPTY(&rollbackMessage)))) { - ZEPHIR_INIT_NVAR(&rollbackMessage); - ZVAL_STRING(&rollbackMessage, "Transaction aborted"); - } - if (Z_TYPE_P(rollbackRecord) == IS_OBJECT) { - zephir_update_property_zval(this_ptr, ZEND_STRL("rollbackRecord"), rollbackRecord); - } - zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("rollbackThrowException"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_2$$4)) { - ZEPHIR_INIT_VAR(&_3$$7); - object_init_ex(&_3$$7, phalcon_mvc_model_transaction_failed_ce); - zephir_read_property(&_4$$7, this_ptr, ZEND_STRL("rollbackRecord"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_3$$7, "__construct", NULL, 491, &rollbackMessage, &_4$$7); - zephir_check_call_status(); - zephir_throw_exception_debug(&_3$$7, "phalcon/Mvc/Model/Transaction.zep", 215); - ZEPHIR_MM_RESTORE(); - return; - } + ZEPHIR_INIT_VAR(&name); + zephir_fast_strtoupper(&name, &_2); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "hasserver", NULL, 342, &name); + zephir_check_call_status(); + _4 = zephir_is_true(&_3); + if (!(_4)) { + ZEPHIR_INIT_VAR(&_6); + ZEPHIR_CONCAT_SV(&_6, "HTTP_", &name); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "hasserver", NULL, 342, &_6); + zephir_check_call_status(); + _4 = zephir_is_true(&_5); } - RETURN_MM_BOOL(1); + RETURN_MM_BOOL(_4); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction, setIsNewTransaction) +static PHP_METHOD(Phalcon_Http_Request, hasPost) { - zval *isNew_param = NULL, __$true, __$false; - zend_bool isNew; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *name_param = NULL, _POST; + zval name; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_POST); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(isNew) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &isNew_param); - isNew = zephir_get_boolval(isNew_param); - - - if (isNew) { - zephir_update_property_zval(this_ptr, ZEND_STRL("isNewTransaction"), &__$true); + ZEPHIR_MM_GROW(); + zephir_get_global(&_POST, SL("_POST")); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("isNewTransaction"), &__$false); + ZEPHIR_INIT_VAR(&name); } + + + RETURN_MM_BOOL(zephir_array_isset(&_POST, &name)); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction, setRollbackOnAbort) +static PHP_METHOD(Phalcon_Http_Request, hasPut) { - zval *rollbackOnAbort_param = NULL, __$true, __$false; - zend_bool rollbackOnAbort; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, put; + zval name; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&put); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(rollbackOnAbort) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &rollbackOnAbort_param); - rollbackOnAbort = zephir_get_boolval(rollbackOnAbort_param); - - - if (rollbackOnAbort) { - zephir_update_property_zval(this_ptr, ZEND_STRL("rollbackOnAbort"), &__$true); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("rollbackOnAbort"), &__$false); + ZEPHIR_INIT_VAR(&name); } + + + ZEPHIR_CALL_METHOD(&put, this_ptr, "getput", NULL, 0); + zephir_check_call_status(); + RETURN_MM_BOOL(zephir_array_isset(&put, &name)); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction, setRollbackedRecord) +static PHP_METHOD(Phalcon_Http_Request, hasQuery) { - zval *record, record_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *name_param = NULL, _GET; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&record_sub); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_GET); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(record, phalcon_mvc_modelinterface_ce) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &record); + ZEPHIR_MM_GROW(); + zephir_get_global(&_GET, SL("_GET")); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } - zephir_update_property_zval(this_ptr, ZEND_STRL("rollbackRecord"), record); + RETURN_MM_BOOL(zephir_array_isset(&_GET, &name)); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction, setTransactionManager) +static PHP_METHOD(Phalcon_Http_Request, hasServer) { - zval *manager, manager_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, server; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&manager_sub); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&server); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(manager, phalcon_mvc_model_transaction_managerinterface_ce) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &manager); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } - zephir_update_property_zval(this_ptr, ZEND_STRL("manager"), manager); + ZEPHIR_CALL_METHOD(&server, this_ptr, "getserverarray", NULL, 344); + zephir_check_call_status(); + RETURN_MM_BOOL(zephir_array_isset(&server, &name)); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction, throwRollbackException) +static PHP_METHOD(Phalcon_Http_Request, isAjax) { - zval *status_param = NULL, __$true, __$false; - zend_bool status; + zend_bool _2; + zval _0, _1, _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(status) - ZEND_PARSE_PARAMETERS_END(); -#endif - + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); - zephir_fetch_params_without_memory_grow(1, 0, &status_param); - status = zephir_get_boolval(status_param); + ZEPHIR_MM_GROW(); - if (status) { - zephir_update_property_zval(this_ptr, ZEND_STRL("rollbackThrowException"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("rollbackThrowException"), &__$false); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "HTTP_X_REQUESTED_WITH"); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "hasserver", NULL, 342, &_1); + zephir_check_call_status(); + _2 = zephir_is_true(&_0); + if (_2) { + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "HTTP_X_REQUESTED_WITH"); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getserver", NULL, 0, &_1); + zephir_check_call_status(); + _2 = ZEPHIR_IS_STRING_IDENTICAL(&_3, "XMLHttpRequest"); } - RETURN_THISW(); + RETURN_MM_BOOL(_2); } -zend_object *zephir_init_properties_Phalcon_Mvc_Model_Transaction(zend_class_entry *class_type) +static PHP_METHOD(Phalcon_Http_Request, isConnect) { - zval _0, _1$$3; + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("messages"), &_1$$3); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); -#ifdef HAVE_CONFIG_H -#endif + ZEPHIR_MM_GROW(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmethod", NULL, 351); + zephir_check_call_status(); + RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "CONNECT")); +} +static PHP_METHOD(Phalcon_Http_Request, isDelete) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_TransactionInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model, TransactionInterface, phalcon, mvc_model_transactioninterface, phalcon_mvc_model_transactioninterface_method_entry); + ZEPHIR_MM_GROW(); - return SUCCESS; + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmethod", NULL, 351); + zephir_check_call_status(); + RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "DELETE")); } -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, begin); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, commit); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, getConnection); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, getMessages); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, isManaged); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, isValid); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, rollback); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, setIsNewTransaction); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, setRollbackOnAbort); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, setRollbackedRecord); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, setTransactionManager); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_TransactionInterface, throwRollbackException); - +static PHP_METHOD(Phalcon_Http_Request, isGet) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); -#ifdef HAVE_CONFIG_H -#endif + ZEPHIR_MM_GROW(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmethod", NULL, 351); + zephir_check_call_status(); + RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "GET")); +} +static PHP_METHOD(Phalcon_Http_Request, isHead) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_ValidationFailed) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model, ValidationFailed, phalcon, mvc_model_validationfailed, phalcon_mvc_model_exception_ce, phalcon_mvc_model_validationfailed_method_entry, 0); - zend_declare_property_null(phalcon_mvc_model_validationfailed_ce, SL("messages"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_validationfailed_ce, SL("model"), ZEND_ACC_PROTECTED); - phalcon_mvc_model_validationfailed_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_ValidationFailed; + ZEPHIR_MM_GROW(); - return SUCCESS; + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmethod", NULL, 351); + zephir_check_call_status(); + RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "HEAD")); } -static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, __construct) +static PHP_METHOD(Phalcon_Http_Request, isMethod) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_8 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval validationMessages; - zval *model, model_sub, *validationMessages_param = NULL, messageStr, message; + zend_bool strict, _0$$3; + zval *methods, methods_sub, *strict_param = NULL, httpMethod, method, _1$$3, _2$$4, _3$$4, *_4$$5, _5$$5, _6$$6, _7$$6, _9$$8, _10$$8; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&messageStr); - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&validationMessages); + ZVAL_UNDEF(&methods_sub); + ZVAL_UNDEF(&httpMethod); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_6$$6); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_9$$8); + ZVAL_UNDEF(&_10$$8); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_ARRAY(validationMessages) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(methods) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(strict) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &validationMessages_param); - ZEPHIR_OBS_COPY_OR_DUP(&validationMessages, validationMessages_param); - - - if (zephir_fast_count_int(&validationMessages) > 0) { - ZEPHIR_OBS_VAR(&message); - zephir_array_fetch_long(&message, &validationMessages, 0, PH_NOISY, "phalcon/Mvc/Model/ValidationFailed.zep", 48); - ZEPHIR_CALL_METHOD(&messageStr, &message, "getmessage", NULL, 0); - zephir_check_call_status(); + zephir_fetch_params(1, 1, 1, &methods, &strict_param); + if (!strict_param) { + strict = 0; } else { - ZEPHIR_INIT_NVAR(&messageStr); - ZVAL_STRING(&messageStr, "Validation failed"); + strict = zephir_get_boolval(strict_param); } - zephir_update_property_zval(this_ptr, ZEND_STRL("model"), model); - zephir_update_property_zval(this_ptr, ZEND_STRL("messages"), &validationMessages); - ZEPHIR_CALL_PARENT(NULL, phalcon_mvc_model_validationfailed_ce, getThis(), "__construct", NULL, 0, &messageStr); + + + ZEPHIR_CALL_METHOD(&httpMethod, this_ptr, "getmethod", NULL, 351); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + if (Z_TYPE_P(methods) == IS_STRING) { + _0$$3 = strict; + if (_0$$3) { + ZEPHIR_CALL_METHOD(&_1$$3, this_ptr, "isvalidhttpmethod", NULL, 0, methods); + zephir_check_call_status(); + _0$$3 = !zephir_is_true(&_1$$3); + } + if (UNEXPECTED(_0$$3)) { + ZEPHIR_INIT_VAR(&_2$$4); + object_init_ex(&_2$$4, phalcon_http_request_exception_ce); + ZEPHIR_INIT_VAR(&_3$$4); + ZEPHIR_CONCAT_SV(&_3$$4, "Invalid HTTP method: ", methods); + ZEPHIR_CALL_METHOD(NULL, &_2$$4, "__construct", NULL, 8, &_3$$4); + zephir_check_call_status(); + zephir_throw_exception_debug(&_2$$4, "phalcon/Http/Request.zep", 1076); + ZEPHIR_MM_RESTORE(); + return; + } + RETURN_MM_BOOL(ZEPHIR_IS_EQUAL(methods, &httpMethod)); + } + if (Z_TYPE_P(methods) == IS_ARRAY) { + zephir_is_iterable(methods, 0, "phalcon/Http/Request.zep", 1089); + if (Z_TYPE_P(methods) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(methods), _4$$5) + { + ZEPHIR_INIT_NVAR(&method); + ZVAL_COPY(&method, _4$$5); + if (strict) { + ZVAL_BOOL(&_7$$6, 1); + } else { + ZVAL_BOOL(&_7$$6, 0); + } + ZEPHIR_CALL_METHOD(&_6$$6, this_ptr, "ismethod", &_8, 352, &method, &_7$$6); + zephir_check_call_status(); + if (zephir_is_true(&_6$$6)) { + RETURN_MM_BOOL(1); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, methods, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_5$$5, methods, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_5$$5)) { + break; + } + ZEPHIR_CALL_METHOD(&method, methods, "current", NULL, 0); + zephir_check_call_status(); + if (strict) { + ZVAL_BOOL(&_10$$8, 1); + } else { + ZVAL_BOOL(&_10$$8, 0); + } + ZEPHIR_CALL_METHOD(&_9$$8, this_ptr, "ismethod", &_8, 352, &method, &_10$$8); + zephir_check_call_status(); + if (zephir_is_true(&_9$$8)) { + RETURN_MM_BOOL(1); + } + ZEPHIR_CALL_METHOD(NULL, methods, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&method); + RETURN_MM_BOOL(0); + } + if (UNEXPECTED(strict)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_request_exception_ce, "Invalid HTTP method: non-string", "phalcon/Http/Request.zep", 1093); + return; + } + RETURN_MM_BOOL(0); } -static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, getMessages) +static PHP_METHOD(Phalcon_Http_Request, isOptions) { + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + + ZEPHIR_MM_GROW(); - RETURN_MEMBER(getThis(), "messages"); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmethod", NULL, 351); + zephir_check_call_status(); + RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "OPTIONS")); } -static PHP_METHOD(Phalcon_Mvc_Model_ValidationFailed, getModel) +static PHP_METHOD(Phalcon_Http_Request, isPatch) { + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + + ZEPHIR_MM_GROW(); - RETURN_MEMBER(getThis(), "model"); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmethod", NULL, 351); + zephir_check_call_status(); + RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "PATCH")); } -zend_object *zephir_init_properties_Phalcon_Mvc_Model_ValidationFailed(zend_class_entry *class_type) +static PHP_METHOD(Phalcon_Http_Request, isPost) { - zval _0, _1$$3; + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("messages"), &_1$$3); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); -#ifdef HAVE_CONFIG_H -#endif + ZEPHIR_MM_GROW(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmethod", NULL, 351); + zephir_check_call_status(); + RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "POST")); +} +static PHP_METHOD(Phalcon_Http_Request, isPut) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Behavior_SoftDelete) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\Behavior, SoftDelete, phalcon, mvc_model_behavior_softdelete, phalcon_mvc_model_behavior_ce, phalcon_mvc_model_behavior_softdelete_method_entry, 0); + ZEPHIR_MM_GROW(); - return SUCCESS; + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmethod", NULL, 351); + zephir_check_call_status(); + RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "PUT")); } -static PHP_METHOD(Phalcon_Mvc_Model_Behavior_SoftDelete, notify) +static PHP_METHOD(Phalcon_Http_Request, isPurge) { - zend_bool _9; + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_6 = NULL, *_7 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *type_param = NULL, *model, model_sub, options, value, field, updateModel, message, modelsManager, metaData, _0, _1, _2, _8, _3$$7, *_4$$7, _5$$7, _10$$10, _11$$10; - zval type; zval *this_ptr = getThis(); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&field); - ZVAL_UNDEF(&updateModel); - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&modelsManager); - ZVAL_UNDEF(&metaData); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_3$$7); - ZVAL_UNDEF(&_5$$7); - ZVAL_UNDEF(&_10$$10); - ZVAL_UNDEF(&_11$$10); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(type) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &type_param, &model); - if (UNEXPECTED(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(type_param) == IS_STRING)) { - zephir_get_strval(&type, type_param); - } else { - ZEPHIR_INIT_VAR(&type); - } - - if (!ZEPHIR_IS_STRING_IDENTICAL(&type, "beforeDelete")) { - RETURN_MM_NULL(); - } - ZEPHIR_CALL_METHOD(&options, this_ptr, "getoptions", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&value); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&value, &options, SL("value"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The option 'value' is required", "phalcon/Mvc/Model/Behavior/SoftDelete.zep", 42); - return; - } - ZEPHIR_OBS_VAR(&field); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&field, &options, SL("field"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The option 'field' is required", "phalcon/Mvc/Model/Behavior/SoftDelete.zep", 49); - return; - } - ZVAL_BOOL(&_0, 1); - ZEPHIR_CALL_METHOD(NULL, model, "skipoperation", NULL, 0, &_0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, model, "readattribute", NULL, 0, &field); - zephir_check_call_status(); - if (ZEPHIR_IS_IDENTICAL(&_1, &value)) { - RETURN_MM_NULL(); - } - ZEPHIR_CALL_METHOD(&modelsManager, model, "getmodelsmanager", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&updateModel); - if (zephir_clone(&updateModel, model) == FAILURE) { - RETURN_MM(); - } - ZEPHIR_CALL_METHOD(NULL, &updateModel, "writeattribute", NULL, 0, &field, &value); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2, &updateModel, "save", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_2))) { - ZEPHIR_CALL_METHOD(&_3$$7, &updateModel, "getmessages", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&_3$$7, 0, "phalcon/Mvc/Model/Behavior/SoftDelete.zep", 84); - if (Z_TYPE_P(&_3$$7) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_3$$7), _4$$7) - { - ZEPHIR_INIT_NVAR(&message); - ZVAL_COPY(&message, _4$$7); - ZEPHIR_CALL_METHOD(NULL, model, "appendmessage", &_6, 0, &message); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_3$$7, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5$$7, &_3$$7, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5$$7)) { - break; - } - ZEPHIR_CALL_METHOD(&message, &_3$$7, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, model, "appendmessage", &_7, 0, &message); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_3$$7, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&message); - RETURN_MM_BOOL(0); - } - ZEPHIR_CALL_METHOD(NULL, model, "writeattribute", NULL, 0, &field, &value); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_8, &modelsManager, "iskeepingsnapshots", NULL, 0, model); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmethod", NULL, 351); zephir_check_call_status(); - _9 = zephir_is_true(&_8); - if (_9) { - _9 = ZEPHIR_GLOBAL(orm).update_snapshot_on_save; - } - if (_9) { - ZEPHIR_CALL_METHOD(&metaData, model, "getmodelsmetadata", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_10$$10, &updateModel, "getsnapshotdata", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, model, "setsnapshotdata", NULL, 0, &_10$$10); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_11$$10, &updateModel, "getoldsnapshotdata", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, model, "setoldsnapshotdata", NULL, 0, &_11$$10); - zephir_check_call_status(); - } - ZEPHIR_MM_RESTORE(); + RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "PURGE")); } +static PHP_METHOD(Phalcon_Http_Request, isSecure) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); -#ifdef HAVE_CONFIG_H -#endif - + ZEPHIR_MM_GROW(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getscheme", NULL, 0); + zephir_check_call_status(); + RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "https")); +} +static PHP_METHOD(Phalcon_Http_Request, isStrictHostCheck) +{ + zval *this_ptr = getThis(); -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Behavior_Timestampable) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\Behavior, Timestampable, phalcon, mvc_model_behavior_timestampable, phalcon_mvc_model_behavior_ce, phalcon_mvc_model_behavior_timestampable_method_entry, 0); - return SUCCESS; + RETURN_MEMBER(getThis(), "strictHostCheck"); } -static PHP_METHOD(Phalcon_Mvc_Model_Behavior_Timestampable, notify) +static PHP_METHOD(Phalcon_Http_Request, isSoap) { + zval contentType, _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL, *_4 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *type_param = NULL, *model, model_sub, options, timestamp, singleField, field, _0, *_1$$6, _2$$6; - zval type; zval *this_ptr = getThis(); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(×tamp); - ZVAL_UNDEF(&singleField); - ZVAL_UNDEF(&field); + ZVAL_UNDEF(&contentType); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2$$6); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(type) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &type_param, &model); - if (UNEXPECTED(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(type_param) == IS_STRING)) { - zephir_get_strval(&type, type_param); - } else { - ZEPHIR_INIT_VAR(&type); - } - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "musttakeaction", NULL, 0, &type); - zephir_check_call_status(); - if (!ZEPHIR_IS_TRUE_IDENTICAL(&_0)) { - RETURN_MM_NULL(); - } - ZEPHIR_CALL_METHOD(&options, this_ptr, "getoptions", NULL, 0, &type); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "HTTP_SOAPACTION"); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "hasserver", NULL, 342, &_1); zephir_check_call_status(); - if (Z_TYPE_P(&options) != IS_ARRAY) { - RETURN_MM_NULL(); - } - ZEPHIR_OBS_VAR(&field); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&field, &options, SL("field"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The option 'field' is required", "phalcon/Mvc/Model/Behavior/Timestampable.zep", 50); - return; + if (zephir_is_true(&_0)) { + RETURN_MM_BOOL(1); } - ZEPHIR_CALL_METHOD(×tamp, this_ptr, "gettimestamp", NULL, 446, &options); + ZEPHIR_CALL_METHOD(&contentType, this_ptr, "getcontenttype", NULL, 0); zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&field) == IS_ARRAY)) { - zephir_is_iterable(&field, 0, "phalcon/Mvc/Model/Behavior/Timestampable.zep", 63); - if (Z_TYPE_P(&field) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&field), _1$$6) - { - ZEPHIR_INIT_NVAR(&singleField); - ZVAL_COPY(&singleField, _1$$6); - ZEPHIR_CALL_METHOD(NULL, model, "writeattribute", &_3, 0, &singleField, ×tamp); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &field, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2$$6, &field, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2$$6)) { - break; - } - ZEPHIR_CALL_METHOD(&singleField, &field, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, model, "writeattribute", &_4, 0, &singleField, ×tamp); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &field, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&singleField); - } else { - ZEPHIR_CALL_METHOD(NULL, model, "writeattribute", NULL, 0, &field, ×tamp); - zephir_check_call_status(); + if (ZEPHIR_IS_EMPTY(&contentType)) { + RETURN_MM_BOOL(0); } - ZEPHIR_MM_RESTORE(); + RETURN_MM_BOOL(zephir_memnstr_str(&contentType, SL("application/soap+xml"), "phalcon/Http/Request.zep", 1178)); } -static PHP_METHOD(Phalcon_Mvc_Model_Behavior_Timestampable, getTimestamp) +static PHP_METHOD(Phalcon_Http_Request, isTrace) { - zend_bool _0$$4; + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *options_param = NULL, format, generator; - zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&format); - ZVAL_UNDEF(&generator); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(options) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_0); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &options_param); - zephir_get_arrval(&options, options_param); - - ZEPHIR_OBS_VAR(&format); - if (zephir_array_isset_string_fetch(&format, &options, SL("format"), 0)) { - ZEPHIR_RETURN_CALL_FUNCTION("date", NULL, 447, &format); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_OBS_VAR(&generator); - if (zephir_array_isset_string_fetch(&generator, &options, SL("generator"), 0)) { - _0$$4 = Z_TYPE_P(&generator) == IS_OBJECT; - if (_0$$4) { - _0$$4 = zephir_is_instance_of(&generator, SL("Closure")); - } - if (_0$$4) { - ZEPHIR_CALL_USER_FUNC(return_value, &generator); - zephir_check_call_status(); - RETURN_MM(); - } - } - zephir_time(return_value); - RETURN_MM(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmethod", NULL, 351); + zephir_check_call_status(); + RETURN_MM_BOOL(ZEPHIR_IS_STRING_IDENTICAL(&_0, "TRACE")); } - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Binder_BindableInterface) +static PHP_METHOD(Phalcon_Http_Request, isValidHttpMethod) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model\\Binder, BindableInterface, phalcon, mvc_model_binder_bindableinterface, phalcon_mvc_model_binder_bindableinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Binder_BindableInterface, getModelName); - - + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *method_param = NULL, _0; + zval method; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(method) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &method_param); + zephir_get_strval(&method, method_param); + ZEPHIR_INIT_VAR(&_0); + zephir_fast_strtoupper(&_0, &method); + do { + if (ZEPHIR_IS_STRING(&_0, "CONNECT") || ZEPHIR_IS_STRING(&_0, "DELETE") || ZEPHIR_IS_STRING(&_0, "GET") || ZEPHIR_IS_STRING(&_0, "HEAD") || ZEPHIR_IS_STRING(&_0, "OPTIONS") || ZEPHIR_IS_STRING(&_0, "PATCH") || ZEPHIR_IS_STRING(&_0, "POST") || ZEPHIR_IS_STRING(&_0, "PURGE") || ZEPHIR_IS_STRING(&_0, "PUT") || ZEPHIR_IS_STRING(&_0, "TRACE")) { + RETURN_MM_BOOL(1); + } + } while(0); -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_MetaData_Apcu) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\MetaData, Apcu, phalcon, mvc_model_metadata_apcu, phalcon_mvc_model_metadata_ce, phalcon_mvc_model_metadata_apcu_method_entry, 0); - - return SUCCESS; + RETURN_MM_BOOL(0); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Apcu, __construct) +static PHP_METHOD(Phalcon_Http_Request, numFiles) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL; - zval options; - zval *factory, factory_sub, *options_param = NULL, _0, _2, _3, _4, _5, _6; + zephir_fcall_cache_entry *_5 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS, numberFiles; + zval *onlySuccessful_param = NULL, _FILES, files, file, error, *_0, _1, _3$$8, _4$$8, _7$$13, _8$$13; + zend_bool onlySuccessful, _2$$6, _6$$11; zval *this_ptr = getThis(); - ZVAL_UNDEF(&factory_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&options); + ZVAL_UNDEF(&_FILES); + ZVAL_UNDEF(&files); + ZVAL_UNDEF(&file); + ZVAL_UNDEF(&error); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3$$8); + ZVAL_UNDEF(&_4$$8); + ZVAL_UNDEF(&_7$$13); + ZVAL_UNDEF(&_8$$13); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_cache_adapterfactory_ce) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY_OR_NULL(options) + Z_PARAM_BOOL(onlySuccessful) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &factory, &options_param); - if (!options_param) { - ZEPHIR_INIT_VAR(&options); + zephir_get_global(&_FILES, SL("_FILES")); + zephir_fetch_params(1, 0, 1, &onlySuccessful_param); + if (!onlySuccessful_param) { + onlySuccessful = 0; } else { - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + onlySuccessful = zephir_get_boolval(onlySuccessful_param); } - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "prefix"); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "ph-mm-apcu-"); - ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("prefix"), &_0, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "lifetime"); - ZVAL_LONG(&_5, 172800); - ZEPHIR_CALL_CE_STATIC(&_4, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_5); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("lifetime"), &_4, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "apcu"); - ZEPHIR_CALL_METHOD(&_6, factory, "newinstance", NULL, 0, &_2, &options); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("adapter"), &_6); - ZEPHIR_MM_RESTORE(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_MetaData_Libmemcached) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\MetaData, Libmemcached, phalcon, mvc_model_metadata_libmemcached, phalcon_mvc_model_metadata_ce, phalcon_mvc_model_metadata_libmemcached_method_entry, 0); - - return SUCCESS; + numberFiles = 0; + ZEPHIR_CPY_WRT(&files, &_FILES); + if (Z_TYPE_P(&files) != IS_ARRAY) { + RETURN_MM_LONG(0); + } + zephir_is_iterable(&files, 0, "phalcon/Http/Request.zep", 1243); + if (Z_TYPE_P(&files) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&files), _0) + { + ZEPHIR_INIT_NVAR(&file); + ZVAL_COPY(&file, _0); + ZEPHIR_OBS_NVAR(&error); + if (zephir_array_isset_string_fetch(&error, &file, SL("error"), 0)) { + if (Z_TYPE_P(&error) != IS_ARRAY) { + _2$$6 = !zephir_is_true(&error); + if (!(_2$$6)) { + _2$$6 = !onlySuccessful; + } + if (_2$$6) { + numberFiles++; + } + } + if (Z_TYPE_P(&error) == IS_ARRAY) { + if (onlySuccessful) { + ZVAL_BOOL(&_4$$8, 1); + } else { + ZVAL_BOOL(&_4$$8, 0); + } + ZEPHIR_CALL_METHOD(&_3$$8, this_ptr, "hasfilehelper", &_5, 353, &error, &_4$$8); + zephir_check_call_status(); + numberFiles += zephir_get_numberval(&_3$$8); + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &files, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &files, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&file, &files, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&error); + if (zephir_array_isset_string_fetch(&error, &file, SL("error"), 0)) { + if (Z_TYPE_P(&error) != IS_ARRAY) { + _6$$11 = !zephir_is_true(&error); + if (!(_6$$11)) { + _6$$11 = !onlySuccessful; + } + if (_6$$11) { + numberFiles++; + } + } + if (Z_TYPE_P(&error) == IS_ARRAY) { + if (onlySuccessful) { + ZVAL_BOOL(&_8$$13, 1); + } else { + ZVAL_BOOL(&_8$$13, 0); + } + ZEPHIR_CALL_METHOD(&_7$$13, this_ptr, "hasfilehelper", &_5, 353, &error, &_8$$13); + zephir_check_call_status(); + numberFiles += zephir_get_numberval(&_7$$13); + } + } + ZEPHIR_CALL_METHOD(NULL, &files, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&file); + RETURN_MM_LONG(numberFiles); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Libmemcached, __construct) +static PHP_METHOD(Phalcon_Http_Request, setParameterFilters) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_5 = NULL, *_9 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL; - zval options; - zval *factory, factory_sub, *options_param = NULL, _0, _2, _3, _4, _5, _6, _7; + zval filters, scope; + zval *name_param = NULL, *filters_param = NULL, *scope_param = NULL, filterService, sanitizer, localScope, scopeMethod, *_2, _3, *_13, _14, _0$$3, _4$$4, _6$$5, _7$$5, _8$$6, _10$$7, _11$$7, _12$$8, _15$$10, _16$$11; + zval name, _1$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&factory_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&filterService); + ZVAL_UNDEF(&sanitizer); + ZVAL_UNDEF(&localScope); + ZVAL_UNDEF(&scopeMethod); ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&options); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_7$$5); + ZVAL_UNDEF(&_8$$6); + ZVAL_UNDEF(&_10$$7); + ZVAL_UNDEF(&_11$$7); + ZVAL_UNDEF(&_12$$8); + ZVAL_UNDEF(&_15$$10); + ZVAL_UNDEF(&_16$$11); + ZVAL_UNDEF(&filters); + ZVAL_UNDEF(&scope); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_cache_adapterfactory_ce) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(name) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + Z_PARAM_ARRAY(filters) + Z_PARAM_ARRAY(scope) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &factory, &options_param); - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); + zephir_fetch_params(1, 1, 2, &name_param, &filters_param, &scope_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); } else { - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + ZEPHIR_INIT_VAR(&name); + } + if (!filters_param) { + ZEPHIR_INIT_VAR(&filters); + array_init(&filters); + } else { + zephir_get_arrval(&filters, filters_param); + } + if (!scope_param) { + ZEPHIR_INIT_VAR(&scope); + array_init(&scope); + } else { + zephir_get_arrval(&scope, scope_param); } - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "persistentId"); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "ph-mm-mcid-"); - ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("persistentId"), &_0, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "prefix"); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "ph-mm-memc-"); - ZEPHIR_CALL_CE_STATIC(&_4, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("prefix"), &_4, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "lifetime"); - ZVAL_LONG(&_6, 172800); - ZEPHIR_CALL_CE_STATIC(&_5, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_6); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("lifetime"), &_5, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "libmemcached"); - ZEPHIR_CALL_METHOD(&_7, factory, "newinstance", NULL, 0, &_2, &options); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("adapter"), &_7); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Libmemcached, reset) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_1 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_0, "clear", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_PARENT(NULL, phalcon_mvc_model_metadata_libmemcached_ce, getThis(), "reset", &_1, 0); + if (UNEXPECTED(zephir_fast_count_int(&filters) < 1)) { + ZEPHIR_INIT_VAR(&_0$$3); + object_init_ex(&_0$$3, phalcon_http_request_exception_ce); + ZEPHIR_INIT_VAR(&_1$$3); + ZEPHIR_CONCAT_SVS(&_1$$3, "Filters have not been defined for '", &name, "'"); + ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 8, &_1$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_0$$3, "phalcon/Http/Request.zep", 1260); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_METHOD(&filterService, this_ptr, "getfilterservice", NULL, 354); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_MetaData_Memory) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\MetaData, Memory, phalcon, mvc_model_metadata_memory, phalcon_mvc_model_metadata_ce, phalcon_mvc_model_metadata_memory_method_entry, 0); - - return SUCCESS; + zephir_is_iterable(&filters, 0, "phalcon/Http/Request.zep", 1273); + if (Z_TYPE_P(&filters) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&filters), _2) + { + ZEPHIR_INIT_NVAR(&sanitizer); + ZVAL_COPY(&sanitizer, _2); + ZEPHIR_CALL_METHOD(&_4$$4, &filterService, "has", &_5, 0, &sanitizer); + zephir_check_call_status(); + if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&_4$$4))) { + ZEPHIR_INIT_NVAR(&_6$$5); + object_init_ex(&_6$$5, phalcon_http_request_exception_ce); + ZEPHIR_INIT_NVAR(&_7$$5); + ZEPHIR_CONCAT_SVS(&_7$$5, "Sanitizer '", &sanitizer, "' does not exist in the filter locator"); + ZEPHIR_CALL_METHOD(NULL, &_6$$5, "__construct", NULL, 8, &_7$$5); + zephir_check_call_status(); + zephir_throw_exception_debug(&_6$$5, "phalcon/Http/Request.zep", 1269); + ZEPHIR_MM_RESTORE(); + return; + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &filters, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3, &filters, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3)) { + break; + } + ZEPHIR_CALL_METHOD(&sanitizer, &filters, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_8$$6, &filterService, "has", &_9, 0, &sanitizer); + zephir_check_call_status(); + if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&_8$$6))) { + ZEPHIR_INIT_NVAR(&_10$$7); + object_init_ex(&_10$$7, phalcon_http_request_exception_ce); + ZEPHIR_INIT_NVAR(&_11$$7); + ZEPHIR_CONCAT_SVS(&_11$$7, "Sanitizer '", &sanitizer, "' does not exist in the filter locator"); + ZEPHIR_CALL_METHOD(NULL, &_10$$7, "__construct", NULL, 8, &_11$$7); + zephir_check_call_status(); + zephir_throw_exception_debug(&_10$$7, "phalcon/Http/Request.zep", 1269); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_METHOD(NULL, &filters, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&sanitizer); + if (zephir_fast_count_int(&scope) < 1) { + ZEPHIR_INIT_VAR(&localScope); + zephir_create_array(&localScope, 3, 0); + ZEPHIR_INIT_VAR(&_12$$8); + ZVAL_STRING(&_12$$8, "GET"); + zephir_array_fast_append(&localScope, &_12$$8); + ZEPHIR_INIT_NVAR(&_12$$8); + ZVAL_STRING(&_12$$8, "POST"); + zephir_array_fast_append(&localScope, &_12$$8); + ZEPHIR_INIT_NVAR(&_12$$8); + ZVAL_STRING(&_12$$8, "PUT"); + zephir_array_fast_append(&localScope, &_12$$8); + } else { + ZEPHIR_CPY_WRT(&localScope, &scope); + } + zephir_is_iterable(&localScope, 0, "phalcon/Http/Request.zep", 1287); + if (Z_TYPE_P(&localScope) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&localScope), _13) + { + ZEPHIR_INIT_NVAR(&scopeMethod); + ZVAL_COPY(&scopeMethod, _13); + ZEPHIR_INIT_NVAR(&_15$$10); + zephir_fast_strtoupper(&_15$$10, &scopeMethod); + zephir_update_property_array_multi(this_ptr, SL("queryFilters"), &filters, SL("zz"), 2, &_15$$10, &name); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &localScope, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_14, &localScope, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_14)) { + break; + } + ZEPHIR_CALL_METHOD(&scopeMethod, &localScope, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_16$$11); + zephir_fast_strtoupper(&_16$$11, &scopeMethod); + zephir_update_property_array_multi(this_ptr, SL("queryFilters"), &filters, SL("zz"), 2, &_16$$11, &name); + ZEPHIR_CALL_METHOD(NULL, &localScope, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&scopeMethod); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Memory, __construct) +static PHP_METHOD(Phalcon_Http_Request, setStrictHostCheck) { - zval *options = NULL, options_sub, __$null; + zval *flag_param = NULL, __$true, __$false; + zend_bool flag; zval *this_ptr = getThis(); - ZVAL_UNDEF(&options_sub); - ZVAL_NULL(&__$null); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(options) + Z_PARAM_BOOL(flag) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(0, 1, &options); - if (!options) { - options = &options_sub; - options = &__$null; + zephir_fetch_params_without_memory_grow(0, 1, &flag_param); + if (!flag_param) { + flag = 1; + } else { + flag = zephir_get_boolval(flag_param); } + if (flag) { + zephir_update_property_zval(this_ptr, ZEND_STRL("strictHostCheck"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("strictHostCheck"), &__$false); + } + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Memory, read) +static PHP_METHOD(Phalcon_Http_Request, getBestQuality) { + double quality = 0, acceptQuality = 0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *key_param = NULL; - zval key; + zend_long ZEPHIR_LAST_CALL_STATUS, i = 0; + zval name; + zval *qualityParts_param = NULL, *name_param = NULL, selectedName, accept, *_0, _1, _2$$4, _3$$5, _4$$8, _5$$9; + zval qualityParts; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); + ZVAL_UNDEF(&qualityParts); + ZVAL_UNDEF(&selectedName); + ZVAL_UNDEF(&accept); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_4$$8); + ZVAL_UNDEF(&_5$$9); + ZVAL_UNDEF(&name); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ARRAY(qualityParts) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + zephir_fetch_params(1, 2, 0, &qualityParts_param, &name_param); + zephir_get_arrval(&qualityParts, qualityParts_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); } else { - ZEPHIR_INIT_VAR(&key); + ZEPHIR_INIT_VAR(&name); } - RETURN_MM_NULL(); + i = 0; + quality = 0.0; + ZEPHIR_INIT_VAR(&selectedName); + ZVAL_STRING(&selectedName, ""); + zephir_is_iterable(&qualityParts, 0, "phalcon/Http/Request.zep", 1330); + if (Z_TYPE_P(&qualityParts) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&qualityParts), _0) + { + ZEPHIR_INIT_NVAR(&accept); + ZVAL_COPY(&accept, _0); + if (i == 0) { + ZEPHIR_OBS_NVAR(&_2$$4); + zephir_array_fetch_string(&_2$$4, &accept, SL("quality"), PH_NOISY, "phalcon/Http/Request.zep", 1316); + quality = zephir_get_doubleval(&_2$$4); + ZEPHIR_OBS_NVAR(&selectedName); + zephir_array_fetch(&selectedName, &accept, &name, PH_NOISY, "phalcon/Http/Request.zep", 1317); + } else { + ZEPHIR_OBS_NVAR(&_3$$5); + zephir_array_fetch_string(&_3$$5, &accept, SL("quality"), PH_NOISY, "phalcon/Http/Request.zep", 1319); + acceptQuality = zephir_get_doubleval(&_3$$5); + if (acceptQuality > quality) { + quality = acceptQuality; + ZEPHIR_OBS_NVAR(&selectedName); + zephir_array_fetch(&selectedName, &accept, &name, PH_NOISY, "phalcon/Http/Request.zep", 1323); + } + } + i++; + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &qualityParts, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &qualityParts, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&accept, &qualityParts, "current", NULL, 0); + zephir_check_call_status(); + if (i == 0) { + ZEPHIR_OBS_NVAR(&_4$$8); + zephir_array_fetch_string(&_4$$8, &accept, SL("quality"), PH_NOISY, "phalcon/Http/Request.zep", 1316); + quality = zephir_get_doubleval(&_4$$8); + ZEPHIR_OBS_NVAR(&selectedName); + zephir_array_fetch(&selectedName, &accept, &name, PH_NOISY, "phalcon/Http/Request.zep", 1317); + } else { + ZEPHIR_OBS_NVAR(&_5$$9); + zephir_array_fetch_string(&_5$$9, &accept, SL("quality"), PH_NOISY, "phalcon/Http/Request.zep", 1319); + acceptQuality = zephir_get_doubleval(&_5$$9); + if (acceptQuality > quality) { + quality = acceptQuality; + ZEPHIR_OBS_NVAR(&selectedName); + zephir_array_fetch(&selectedName, &accept, &name, PH_NOISY, "phalcon/Http/Request.zep", 1323); + } + } + i++; + ZEPHIR_CALL_METHOD(NULL, &qualityParts, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&accept); + RETURN_CCTOR(&selectedName); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Memory, write) +static PHP_METHOD(Phalcon_Http_Request, getHelper) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval data; - zval *key_param = NULL, *data_param = NULL; - zval key; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool notAllowEmpty, noRecursive, _0, _1; + zval name; + zval *source_param = NULL, *name_param = NULL, *filters = NULL, filters_sub, *defaultValue = NULL, defaultValue_sub, *notAllowEmpty_param = NULL, *noRecursive_param = NULL, __$null, value, filterService, _2$$6, _3$$6; + zval source; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&data); + ZVAL_UNDEF(&source); + ZVAL_UNDEF(&filters_sub); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&filterService); + ZVAL_UNDEF(&_2$$6); + ZVAL_UNDEF(&_3$$6); + ZVAL_UNDEF(&name); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(key) - Z_PARAM_ARRAY(data) + ZEND_PARSE_PARAMETERS_START(1, 6) + Z_PARAM_ARRAY(source) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(name) + Z_PARAM_ZVAL_OR_NULL(filters) + Z_PARAM_ZVAL_OR_NULL(defaultValue) + Z_PARAM_BOOL(notAllowEmpty) + Z_PARAM_BOOL(noRecursive) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &key_param, &data_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + zephir_fetch_params(1, 1, 5, &source_param, &name_param, &filters, &defaultValue, ¬AllowEmpty_param, &noRecursive_param); + zephir_get_arrval(&source, source_param); + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + } else { + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); } else { - ZEPHIR_INIT_VAR(&key); + ZEPHIR_INIT_VAR(&name); + } + } + if (!filters) { + filters = &filters_sub; + filters = &__$null; + } + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; + } + if (!notAllowEmpty_param) { + notAllowEmpty = 0; + } else { + notAllowEmpty = zephir_get_boolval(notAllowEmpty_param); + } + if (!noRecursive_param) { + noRecursive = 0; + } else { + noRecursive = zephir_get_boolval(noRecursive_param); } - zephir_get_arrval(&data, data_param); - - - RETURN_MM_NULL(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_MetaData_Redis) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\MetaData, Redis, phalcon, mvc_model_metadata_redis, phalcon_mvc_model_metadata_ce, phalcon_mvc_model_metadata_redis_method_entry, 0); - return SUCCESS; + if (ZEPHIR_IS_NULL(&name)) { + RETURN_CTOR(&source); + } + ZEPHIR_OBS_VAR(&value); + if (!(zephir_array_isset_fetch(&value, &source, &name, 0))) { + RETVAL_ZVAL(defaultValue, 1, 0); + RETURN_MM(); + } + _0 = !(zephir_is_numeric(&value)); + if (_0) { + _0 = ZEPHIR_IS_EMPTY(&value); + } + _1 = _0; + if (_1) { + _1 = notAllowEmpty; + } + if (_1) { + RETVAL_ZVAL(defaultValue, 1, 0); + RETURN_MM(); + } + if (Z_TYPE_P(filters) != IS_NULL) { + ZEPHIR_CALL_METHOD(&filterService, this_ptr, "getfilterservice", NULL, 354); + zephir_check_call_status(); + if (noRecursive) { + ZVAL_BOOL(&_3$$6, 1); + } else { + ZVAL_BOOL(&_3$$6, 0); + } + ZEPHIR_CALL_METHOD(&_2$$6, &filterService, "sanitize", NULL, 0, &value, filters, &_3$$6); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&value, &_2$$6); + } + RETURN_CCTOR(&value); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Redis, __construct) +static PHP_METHOD(Phalcon_Http_Request, hasFileHelper) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL; - zval options; - zval *factory, factory_sub, *options_param = NULL, _0, _2, _3, _4, _5, _6; + zephir_fcall_cache_entry *_5 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS, numberFiles; + zend_bool onlySuccessful, _2$$5, _6$$9; + zval *data, data_sub, *onlySuccessful_param = NULL, value, *_0, _1, _3$$7, _4$$7, _7$$11, _8$$11; zval *this_ptr = getThis(); - ZVAL_UNDEF(&factory_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&options); + ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3$$7); + ZVAL_UNDEF(&_4$$7); + ZVAL_UNDEF(&_7$$11); + ZVAL_UNDEF(&_8$$11); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_cache_adapterfactory_ce) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(data) + Z_PARAM_BOOL(onlySuccessful) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &factory, &options_param); - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); - } + zephir_fetch_params(1, 2, 0, &data, &onlySuccessful_param); + onlySuccessful = zephir_get_boolval(onlySuccessful_param); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "prefix"); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "ph-mm-reds-"); - ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("prefix"), &_0, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "lifetime"); - ZVAL_LONG(&_5, 172800); - ZEPHIR_CALL_CE_STATIC(&_4, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_5); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("lifetime"), &_4, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "redis"); - ZEPHIR_CALL_METHOD(&_6, factory, "newinstance", NULL, 0, &_2, &options); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("adapter"), &_6); - ZEPHIR_MM_RESTORE(); + numberFiles = 0; + if (Z_TYPE_P(data) != IS_ARRAY) { + RETURN_MM_LONG(1); + } + zephir_is_iterable(data, 0, "phalcon/Http/Request.zep", 1391); + if (Z_TYPE_P(data) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(data), _0) + { + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0); + if (Z_TYPE_P(&value) != IS_ARRAY) { + _2$$5 = !zephir_is_true(&value); + if (!(_2$$5)) { + _2$$5 = !onlySuccessful; + } + if (_2$$5) { + numberFiles++; + } + } + if (Z_TYPE_P(&value) == IS_ARRAY) { + if (onlySuccessful) { + ZVAL_BOOL(&_4$$7, 1); + } else { + ZVAL_BOOL(&_4$$7, 0); + } + ZEPHIR_CALL_METHOD(&_3$$7, this_ptr, "hasfilehelper", &_5, 353, &value, &_4$$7); + zephir_check_call_status(); + numberFiles += zephir_get_numberval(&_3$$7); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, data, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, data, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&value, data, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&value) != IS_ARRAY) { + _6$$9 = !zephir_is_true(&value); + if (!(_6$$9)) { + _6$$9 = !onlySuccessful; + } + if (_6$$9) { + numberFiles++; + } + } + if (Z_TYPE_P(&value) == IS_ARRAY) { + if (onlySuccessful) { + ZVAL_BOOL(&_8$$11, 1); + } else { + ZVAL_BOOL(&_8$$11, 0); + } + ZEPHIR_CALL_METHOD(&_7$$11, this_ptr, "hasfilehelper", &_5, 353, &value, &_8$$11); + zephir_check_call_status(); + numberFiles += zephir_get_numberval(&_7$$11); + } + ZEPHIR_CALL_METHOD(NULL, data, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + RETURN_MM_LONG(numberFiles); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Redis, reset) +static PHP_METHOD(Phalcon_Http_Request, getQualityHeader) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_1 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *serverIndex_param = NULL, *name_param = NULL, returnedParts, parts, part, headerParts, headerPart, split, _0, _1, _2, _3, *_4, _5, _6$$3, _7$$3, _8$$3, _9$$3, _10$$3, *_11$$3, _12$$3, _13$$4, _14$$4, _15$$5, _16$$6, _17$$6, _18$$7, _19$$7, _20$$8, _21$$9, _22$$9, _23$$10, _24$$11, _25$$11, _26$$12, _27$$12, _28$$13, _29$$14, _30$$14, _31$$14, _32$$14, _33$$14, *_34$$14, _35$$14, _36$$15, _37$$15, _38$$16, _39$$17, _40$$17, _41$$18, _42$$18, _43$$19, _44$$20, _45$$20, _46$$21, _47$$22, _48$$22, _49$$23, _50$$23, _51$$24; + zval serverIndex, name; zval *this_ptr = getThis(); + ZVAL_UNDEF(&serverIndex); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&returnedParts); + ZVAL_UNDEF(&parts); + ZVAL_UNDEF(&part); + ZVAL_UNDEF(&headerParts); + ZVAL_UNDEF(&headerPart); + ZVAL_UNDEF(&split); ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_0, "clear", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_PARENT(NULL, phalcon_mvc_model_metadata_redis_ce, getThis(), "reset", &_1, 0); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_MetaData_Stream) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\MetaData, Stream, phalcon, mvc_model_metadata_stream, phalcon_mvc_model_metadata_ce, phalcon_mvc_model_metadata_stream_method_entry, 0); - - zend_declare_property_string(phalcon_mvc_model_metadata_stream_ce, SL("metaDataDir"), "./", ZEND_ACC_PROTECTED); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Stream, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *options_param = NULL, metaDataDir; - zval options; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&metaDataDir); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_8$$3); + ZVAL_UNDEF(&_9$$3); + ZVAL_UNDEF(&_10$$3); + ZVAL_UNDEF(&_12$$3); + ZVAL_UNDEF(&_13$$4); + ZVAL_UNDEF(&_14$$4); + ZVAL_UNDEF(&_15$$5); + ZVAL_UNDEF(&_16$$6); + ZVAL_UNDEF(&_17$$6); + ZVAL_UNDEF(&_18$$7); + ZVAL_UNDEF(&_19$$7); + ZVAL_UNDEF(&_20$$8); + ZVAL_UNDEF(&_21$$9); + ZVAL_UNDEF(&_22$$9); + ZVAL_UNDEF(&_23$$10); + ZVAL_UNDEF(&_24$$11); + ZVAL_UNDEF(&_25$$11); + ZVAL_UNDEF(&_26$$12); + ZVAL_UNDEF(&_27$$12); + ZVAL_UNDEF(&_28$$13); + ZVAL_UNDEF(&_29$$14); + ZVAL_UNDEF(&_30$$14); + ZVAL_UNDEF(&_31$$14); + ZVAL_UNDEF(&_32$$14); + ZVAL_UNDEF(&_33$$14); + ZVAL_UNDEF(&_35$$14); + ZVAL_UNDEF(&_36$$15); + ZVAL_UNDEF(&_37$$15); + ZVAL_UNDEF(&_38$$16); + ZVAL_UNDEF(&_39$$17); + ZVAL_UNDEF(&_40$$17); + ZVAL_UNDEF(&_41$$18); + ZVAL_UNDEF(&_42$$18); + ZVAL_UNDEF(&_43$$19); + ZVAL_UNDEF(&_44$$20); + ZVAL_UNDEF(&_45$$20); + ZVAL_UNDEF(&_46$$21); + ZVAL_UNDEF(&_47$$22); + ZVAL_UNDEF(&_48$$22); + ZVAL_UNDEF(&_49$$23); + ZVAL_UNDEF(&_50$$23); + ZVAL_UNDEF(&_51$$24); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(serverIndex) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &options_param); - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); + zephir_fetch_params(1, 2, 0, &serverIndex_param, &name_param); + if (UNEXPECTED(Z_TYPE_P(serverIndex_param) != IS_STRING && Z_TYPE_P(serverIndex_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'serverIndex' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(serverIndex_param) == IS_STRING)) { + zephir_get_strval(&serverIndex, serverIndex_param); } else { - zephir_get_arrval(&options, options_param); + ZEPHIR_INIT_VAR(&serverIndex); + } + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); } - if (zephir_array_isset_string_fetch(&metaDataDir, &options, SL("metaDataDir"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("metaDataDir"), &metaDataDir); + ZEPHIR_INIT_VAR(&returnedParts); + array_init(&returnedParts); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getserver", NULL, 0, &serverIndex); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "/,\\s*/"); + ZVAL_LONG(&_2, -1); + ZVAL_LONG(&_3, 1); + ZEPHIR_CALL_FUNCTION(&parts, "preg_split", NULL, 101, &_1, &_0, &_2, &_3); + zephir_check_call_status(); + zephir_is_iterable(&parts, 0, "phalcon/Http/Request.zep", 1431); + if (Z_TYPE_P(&parts) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&parts), _4) + { + ZEPHIR_INIT_NVAR(&part); + ZVAL_COPY(&part, _4); + ZEPHIR_INIT_NVAR(&headerParts); + array_init(&headerParts); + ZEPHIR_INIT_NVAR(&_6$$3); + zephir_fast_trim(&_6$$3, &part, NULL , ZEPHIR_TRIM_BOTH); + ZEPHIR_INIT_NVAR(&_7$$3); + ZVAL_STRING(&_7$$3, "/\\s*;\\s*/"); + ZVAL_LONG(&_8$$3, -1); + ZVAL_LONG(&_9$$3, 1); + ZEPHIR_CALL_FUNCTION(&_10$$3, "preg_split", NULL, 101, &_7$$3, &_6$$3, &_8$$3, &_9$$3); + zephir_check_call_status(); + zephir_is_iterable(&_10$$3, 0, "phalcon/Http/Request.zep", 1428); + if (Z_TYPE_P(&_10$$3) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_10$$3), _11$$3) + { + ZEPHIR_INIT_NVAR(&headerPart); + ZVAL_COPY(&headerPart, _11$$3); + ZEPHIR_INIT_NVAR(&_13$$4); + ZVAL_STRING(&_13$$4, "="); + ZEPHIR_INIT_NVAR(&_14$$4); + zephir_fast_strpos(&_14$$4, &headerPart, &_13$$4, 0 ); + if (!ZEPHIR_IS_FALSE_IDENTICAL(&_14$$4)) { + ZEPHIR_INIT_NVAR(&split); + zephir_fast_explode_str(&split, SL("="), &headerPart, 2 ); + zephir_array_fetch_long(&_15$$5, &split, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1417); + if (ZEPHIR_IS_STRING_IDENTICAL(&_15$$5, "q")) { + ZEPHIR_OBS_NVAR(&_16$$6); + zephir_array_fetch_long(&_16$$6, &split, 1, PH_NOISY, "phalcon/Http/Request.zep", 1418); + ZEPHIR_INIT_NVAR(&_17$$6); + ZVAL_DOUBLE(&_17$$6, zephir_get_doubleval(&_16$$6)); + zephir_array_update_string(&headerParts, SL("quality"), &_17$$6, PH_COPY | PH_SEPARATE); + } else { + zephir_array_fetch_long(&_18$$7, &split, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1420); + ZEPHIR_OBS_NVAR(&_19$$7); + zephir_array_fetch_long(&_19$$7, &split, 0, PH_NOISY, "phalcon/Http/Request.zep", 1420); + zephir_array_update_zval(&headerParts, &_19$$7, &_18$$7, PH_COPY | PH_SEPARATE); + } + } else { + zephir_array_update_zval(&headerParts, &name, &headerPart, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_20$$8); + ZVAL_DOUBLE(&_20$$8, 1.0); + zephir_array_update_string(&headerParts, SL("quality"), &_20$$8, PH_COPY | PH_SEPARATE); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_10$$3, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_12$$3, &_10$$3, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_12$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&headerPart, &_10$$3, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_21$$9); + ZVAL_STRING(&_21$$9, "="); + ZEPHIR_INIT_NVAR(&_22$$9); + zephir_fast_strpos(&_22$$9, &headerPart, &_21$$9, 0 ); + if (!ZEPHIR_IS_FALSE_IDENTICAL(&_22$$9)) { + ZEPHIR_INIT_NVAR(&split); + zephir_fast_explode_str(&split, SL("="), &headerPart, 2 ); + zephir_array_fetch_long(&_23$$10, &split, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1417); + if (ZEPHIR_IS_STRING_IDENTICAL(&_23$$10, "q")) { + ZEPHIR_OBS_NVAR(&_24$$11); + zephir_array_fetch_long(&_24$$11, &split, 1, PH_NOISY, "phalcon/Http/Request.zep", 1418); + ZEPHIR_INIT_NVAR(&_25$$11); + ZVAL_DOUBLE(&_25$$11, zephir_get_doubleval(&_24$$11)); + zephir_array_update_string(&headerParts, SL("quality"), &_25$$11, PH_COPY | PH_SEPARATE); + } else { + zephir_array_fetch_long(&_26$$12, &split, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1420); + ZEPHIR_OBS_NVAR(&_27$$12); + zephir_array_fetch_long(&_27$$12, &split, 0, PH_NOISY, "phalcon/Http/Request.zep", 1420); + zephir_array_update_zval(&headerParts, &_27$$12, &_26$$12, PH_COPY | PH_SEPARATE); + } + } else { + zephir_array_update_zval(&headerParts, &name, &headerPart, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_28$$13); + ZVAL_DOUBLE(&_28$$13, 1.0); + zephir_array_update_string(&headerParts, SL("quality"), &_28$$13, PH_COPY | PH_SEPARATE); + } + ZEPHIR_CALL_METHOD(NULL, &_10$$3, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&headerPart); + zephir_array_append(&returnedParts, &headerParts, PH_SEPARATE, "phalcon/Http/Request.zep", 1428); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &parts, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_5, &parts, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_5)) { + break; + } + ZEPHIR_CALL_METHOD(&part, &parts, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&headerParts); + array_init(&headerParts); + ZEPHIR_INIT_NVAR(&_29$$14); + zephir_fast_trim(&_29$$14, &part, NULL , ZEPHIR_TRIM_BOTH); + ZEPHIR_INIT_NVAR(&_30$$14); + ZVAL_STRING(&_30$$14, "/\\s*;\\s*/"); + ZVAL_LONG(&_31$$14, -1); + ZVAL_LONG(&_32$$14, 1); + ZEPHIR_CALL_FUNCTION(&_33$$14, "preg_split", NULL, 101, &_30$$14, &_29$$14, &_31$$14, &_32$$14); + zephir_check_call_status(); + zephir_is_iterable(&_33$$14, 0, "phalcon/Http/Request.zep", 1428); + if (Z_TYPE_P(&_33$$14) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_33$$14), _34$$14) + { + ZEPHIR_INIT_NVAR(&headerPart); + ZVAL_COPY(&headerPart, _34$$14); + ZEPHIR_INIT_NVAR(&_36$$15); + ZVAL_STRING(&_36$$15, "="); + ZEPHIR_INIT_NVAR(&_37$$15); + zephir_fast_strpos(&_37$$15, &headerPart, &_36$$15, 0 ); + if (!ZEPHIR_IS_FALSE_IDENTICAL(&_37$$15)) { + ZEPHIR_INIT_NVAR(&split); + zephir_fast_explode_str(&split, SL("="), &headerPart, 2 ); + zephir_array_fetch_long(&_38$$16, &split, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1417); + if (ZEPHIR_IS_STRING_IDENTICAL(&_38$$16, "q")) { + ZEPHIR_OBS_NVAR(&_39$$17); + zephir_array_fetch_long(&_39$$17, &split, 1, PH_NOISY, "phalcon/Http/Request.zep", 1418); + ZEPHIR_INIT_NVAR(&_40$$17); + ZVAL_DOUBLE(&_40$$17, zephir_get_doubleval(&_39$$17)); + zephir_array_update_string(&headerParts, SL("quality"), &_40$$17, PH_COPY | PH_SEPARATE); + } else { + zephir_array_fetch_long(&_41$$18, &split, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1420); + ZEPHIR_OBS_NVAR(&_42$$18); + zephir_array_fetch_long(&_42$$18, &split, 0, PH_NOISY, "phalcon/Http/Request.zep", 1420); + zephir_array_update_zval(&headerParts, &_42$$18, &_41$$18, PH_COPY | PH_SEPARATE); + } + } else { + zephir_array_update_zval(&headerParts, &name, &headerPart, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_43$$19); + ZVAL_DOUBLE(&_43$$19, 1.0); + zephir_array_update_string(&headerParts, SL("quality"), &_43$$19, PH_COPY | PH_SEPARATE); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_33$$14, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_35$$14, &_33$$14, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_35$$14)) { + break; + } + ZEPHIR_CALL_METHOD(&headerPart, &_33$$14, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_44$$20); + ZVAL_STRING(&_44$$20, "="); + ZEPHIR_INIT_NVAR(&_45$$20); + zephir_fast_strpos(&_45$$20, &headerPart, &_44$$20, 0 ); + if (!ZEPHIR_IS_FALSE_IDENTICAL(&_45$$20)) { + ZEPHIR_INIT_NVAR(&split); + zephir_fast_explode_str(&split, SL("="), &headerPart, 2 ); + zephir_array_fetch_long(&_46$$21, &split, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1417); + if (ZEPHIR_IS_STRING_IDENTICAL(&_46$$21, "q")) { + ZEPHIR_OBS_NVAR(&_47$$22); + zephir_array_fetch_long(&_47$$22, &split, 1, PH_NOISY, "phalcon/Http/Request.zep", 1418); + ZEPHIR_INIT_NVAR(&_48$$22); + ZVAL_DOUBLE(&_48$$22, zephir_get_doubleval(&_47$$22)); + zephir_array_update_string(&headerParts, SL("quality"), &_48$$22, PH_COPY | PH_SEPARATE); + } else { + zephir_array_fetch_long(&_49$$23, &split, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1420); + ZEPHIR_OBS_NVAR(&_50$$23); + zephir_array_fetch_long(&_50$$23, &split, 0, PH_NOISY, "phalcon/Http/Request.zep", 1420); + zephir_array_update_zval(&headerParts, &_50$$23, &_49$$23, PH_COPY | PH_SEPARATE); + } + } else { + zephir_array_update_zval(&headerParts, &name, &headerPart, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_51$$24); + ZVAL_DOUBLE(&_51$$24, 1.0); + zephir_array_update_string(&headerParts, SL("quality"), &_51$$24, PH_COPY | PH_SEPARATE); + } + ZEPHIR_CALL_METHOD(NULL, &_33$$14, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&headerPart); + zephir_array_append(&returnedParts, &headerParts, PH_SEPARATE, "phalcon/Http/Request.zep", 1428); + ZEPHIR_CALL_METHOD(NULL, &parts, "next", NULL, 0); + zephir_check_call_status(); + } } - ZEPHIR_MM_RESTORE(); + ZEPHIR_INIT_NVAR(&part); + RETURN_CCTOR(&returnedParts); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Stream, read) +static PHP_METHOD(Phalcon_Http_Request, resolveAuthorizationHeaders) { + zval headers, _6$$5, _37$$19; + zend_bool hasEventsManager = 0, _5, _10, _36, _23$$11; + zval resolved, eventsManager, container, exploded, digest, authHeader, server, _0, _9, _11, _1$$3, _2$$3, _3$$4, _4$$4, _7$$5, _8$$6, _12$$7, _13$$7, _14$$7, _15$$8, _16$$8, _17$$8, _18$$9, _19$$10, _20$$11, _21$$11, _22$$11, _24$$11, _25$$11, _26$$12, _27$$12, _28$$12, _29$$13, _30$$13, _31$$17, _32$$17, _33$$17, _34$$17, _35$$17, _38$$19, _39$$20; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *key_param = NULL, path, _0, _1, _2, _3; - zval key; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&path); + ZVAL_UNDEF(&resolved); + ZVAL_UNDEF(&eventsManager); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&exploded); + ZVAL_UNDEF(&digest); + ZVAL_UNDEF(&authHeader); + ZVAL_UNDEF(&server); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_7$$5); + ZVAL_UNDEF(&_8$$6); + ZVAL_UNDEF(&_12$$7); + ZVAL_UNDEF(&_13$$7); + ZVAL_UNDEF(&_14$$7); + ZVAL_UNDEF(&_15$$8); + ZVAL_UNDEF(&_16$$8); + ZVAL_UNDEF(&_17$$8); + ZVAL_UNDEF(&_18$$9); + ZVAL_UNDEF(&_19$$10); + ZVAL_UNDEF(&_20$$11); + ZVAL_UNDEF(&_21$$11); + ZVAL_UNDEF(&_22$$11); + ZVAL_UNDEF(&_24$$11); + ZVAL_UNDEF(&_25$$11); + ZVAL_UNDEF(&_26$$12); + ZVAL_UNDEF(&_27$$12); + ZVAL_UNDEF(&_28$$12); + ZVAL_UNDEF(&_29$$13); + ZVAL_UNDEF(&_30$$13); + ZVAL_UNDEF(&_31$$17); + ZVAL_UNDEF(&_32$$17); + ZVAL_UNDEF(&_33$$17); + ZVAL_UNDEF(&_34$$17); + ZVAL_UNDEF(&_35$$17); + ZVAL_UNDEF(&_38$$19); + ZVAL_UNDEF(&_39$$20); + ZVAL_UNDEF(&headers); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_37$$19); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); + + ZEPHIR_INIT_VAR(&authHeader); + ZVAL_NULL(&authHeader); + ZEPHIR_INIT_VAR(&headers); + array_init(&headers); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getdi", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&container, &_0); + ZEPHIR_CALL_METHOD(&server, this_ptr, "getserverarray", NULL, 344); + zephir_check_call_status(); + if (Z_TYPE_P(&container) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "eventsManager"); + ZEPHIR_CALL_METHOD(&_1$$3, &container, "has", NULL, 0, &_2$$3); + zephir_check_call_status(); + hasEventsManager = zephir_get_boolval(&_1$$3); + if (hasEventsManager) { + ZEPHIR_INIT_VAR(&_4$$4); + ZVAL_STRING(&_4$$4, "eventsManager"); + ZEPHIR_CALL_METHOD(&_3$$4, &container, "getshared", NULL, 0, &_4$$4); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&eventsManager, &_3$$4); + } } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + _5 = hasEventsManager; + if (_5) { + _5 = Z_TYPE_P(&eventsManager) == IS_OBJECT; + } + if (_5) { + ZEPHIR_INIT_VAR(&_6$$5); + zephir_create_array(&_6$$5, 1, 0); + zephir_array_update_string(&_6$$5, SL("server"), &server, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_7$$5); + ZVAL_STRING(&_7$$5, "request:beforeAuthorizationResolve"); + ZEPHIR_CALL_METHOD(&resolved, &eventsManager, "fire", NULL, 0, &_7$$5, this_ptr, &_6$$5); + zephir_check_call_status(); + if (Z_TYPE_P(&resolved) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&_8$$6); + zephir_fast_array_merge(&_8$$6, &headers, &resolved); + ZEPHIR_CPY_WRT(&headers, &_8$$6); + } + } + ZEPHIR_INIT_VAR(&_9); + ZVAL_STRING(&_9, "PHP_AUTH_USER"); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "hasserver", NULL, 342, &_9); + zephir_check_call_status(); + _10 = zephir_is_true(&_0); + if (_10) { + ZEPHIR_INIT_NVAR(&_9); + ZVAL_STRING(&_9, "PHP_AUTH_PW"); + ZEPHIR_CALL_METHOD(&_11, this_ptr, "hasserver", NULL, 342, &_9); + zephir_check_call_status(); + _10 = zephir_is_true(&_11); + } + if (_10) { + ZEPHIR_INIT_VAR(&_13$$7); + ZVAL_STRING(&_13$$7, "PHP_AUTH_USER"); + ZEPHIR_CALL_METHOD(&_12$$7, this_ptr, "getserver", NULL, 0, &_13$$7); + zephir_check_call_status(); + zephir_array_update_string(&headers, SL("Php-Auth-User"), &_12$$7, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_13$$7); + ZVAL_STRING(&_13$$7, "PHP_AUTH_PW"); + ZEPHIR_CALL_METHOD(&_14$$7, this_ptr, "getserver", NULL, 0, &_13$$7); + zephir_check_call_status(); + zephir_array_update_string(&headers, SL("Php-Auth-Pw"), &_14$$7, PH_COPY | PH_SEPARATE); } else { - ZEPHIR_INIT_VAR(&key); + ZEPHIR_INIT_VAR(&_16$$8); + ZVAL_STRING(&_16$$8, "HTTP_AUTHORIZATION"); + ZEPHIR_CALL_METHOD(&_15$$8, this_ptr, "hasserver", NULL, 342, &_16$$8); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_16$$8); + ZVAL_STRING(&_16$$8, "REDIRECT_HTTP_AUTHORIZATION"); + ZEPHIR_CALL_METHOD(&_17$$8, this_ptr, "hasserver", NULL, 342, &_16$$8); + zephir_check_call_status(); + if (zephir_is_true(&_15$$8)) { + ZEPHIR_INIT_VAR(&_18$$9); + ZVAL_STRING(&_18$$9, "HTTP_AUTHORIZATION"); + ZEPHIR_CALL_METHOD(&authHeader, this_ptr, "getserver", NULL, 0, &_18$$9); + zephir_check_call_status(); + } else if (zephir_is_true(&_17$$8)) { + ZEPHIR_INIT_VAR(&_19$$10); + ZVAL_STRING(&_19$$10, "REDIRECT_HTTP_AUTHORIZATION"); + ZEPHIR_CALL_METHOD(&authHeader, this_ptr, "getserver", NULL, 0, &_19$$10); + zephir_check_call_status(); + } + if (zephir_is_true(&authHeader)) { + ZEPHIR_INIT_VAR(&_20$$11); + ZVAL_STRING(&_20$$11, "basic "); + ZEPHIR_CALL_FUNCTION(&_21$$11, "stripos", NULL, 347, &authHeader, &_20$$11); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_20$$11); + ZVAL_STRING(&_20$$11, "digest "); + ZEPHIR_CALL_FUNCTION(&_22$$11, "stripos", NULL, 347, &authHeader, &_20$$11); + zephir_check_call_status(); + _23$$11 = ZEPHIR_IS_LONG_IDENTICAL(&_22$$11, 0); + if (_23$$11) { + ZEPHIR_INIT_NVAR(&_20$$11); + ZVAL_STRING(&_20$$11, "PHP_AUTH_DIGEST"); + ZEPHIR_CALL_METHOD(&_24$$11, this_ptr, "hasserver", NULL, 342, &_20$$11); + zephir_check_call_status(); + _23$$11 = !zephir_is_true(&_24$$11); + } + ZEPHIR_INIT_NVAR(&_20$$11); + ZVAL_STRING(&_20$$11, "bearer "); + ZEPHIR_CALL_FUNCTION(&_25$$11, "stripos", NULL, 347, &authHeader, &_20$$11); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG_IDENTICAL(&_21$$11, 0)) { + ZVAL_LONG(&_26$$12, 6); + ZEPHIR_INIT_VAR(&_27$$12); + zephir_substr(&_27$$12, &authHeader, 6 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + ZEPHIR_CALL_FUNCTION(&_28$$12, "base64_decode", NULL, 188, &_27$$12); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&exploded); + zephir_fast_explode_str(&exploded, SL(":"), &_28$$12, 2 ); + if (zephir_fast_count_int(&exploded) == 2) { + zephir_array_fetch_long(&_29$$13, &exploded, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1490); + zephir_array_update_string(&headers, SL("Php-Auth-User"), &_29$$13, PH_COPY | PH_SEPARATE); + zephir_array_fetch_long(&_30$$13, &exploded, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1491); + zephir_array_update_string(&headers, SL("Php-Auth-Pw"), &_30$$13, PH_COPY | PH_SEPARATE); + } + } else if (_23$$11) { + zephir_array_update_string(&headers, SL("Php-Auth-Digest"), &authHeader, PH_COPY | PH_SEPARATE); + } else if (ZEPHIR_IS_LONG_IDENTICAL(&_25$$11, 0)) { + zephir_array_update_string(&headers, SL("Authorization"), &authHeader, PH_COPY | PH_SEPARATE); + } + } } - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("metaDataDir"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "_"); - zephir_prepare_virtual_path(&_1, &key, &_2); - ZEPHIR_INIT_VAR(&path); - ZEPHIR_CONCAT_VVS(&path, &_0, &_1, ".php"); - if (!((zephir_file_exists(&path) == SUCCESS))) { - RETURN_MM_NULL(); + if (!(zephir_array_isset_string(&headers, SL("Authorization")))) { + ZEPHIR_OBS_VAR(&digest); + if (zephir_array_isset_string(&headers, SL("Php-Auth-User"))) { + zephir_array_fetch_string(&_31$$17, &headers, SL("Php-Auth-User"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1503); + zephir_array_fetch_string(&_32$$17, &headers, SL("Php-Auth-Pw"), PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1503); + ZEPHIR_INIT_VAR(&_33$$17); + ZEPHIR_CONCAT_VSV(&_33$$17, &_31$$17, ":", &_32$$17); + ZEPHIR_CALL_FUNCTION(&_34$$17, "base64_encode", NULL, 191, &_33$$17); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_35$$17); + ZEPHIR_CONCAT_SV(&_35$$17, "Basic ", &_34$$17); + zephir_array_update_string(&headers, SL("Authorization"), &_35$$17, PH_COPY | PH_SEPARATE); + } else if (zephir_array_isset_string_fetch(&digest, &headers, SL("Php-Auth-Digest"), 0)) { + zephir_array_update_string(&headers, SL("Authorization"), &digest, PH_COPY | PH_SEPARATE); + } } - ZEPHIR_OBSERVE_OR_NULLIFY_PPZV(&_3); - if (zephir_require_zval_ret(&_3, &path) == FAILURE) { - RETURN_MM_NULL(); + _36 = hasEventsManager; + if (_36) { + _36 = Z_TYPE_P(&eventsManager) == IS_OBJECT; } - RETURN_CCTOR(&_3); + if (_36) { + ZEPHIR_INIT_VAR(&_37$$19); + zephir_create_array(&_37$$19, 2, 0); + zephir_array_update_string(&_37$$19, SL("headers"), &headers, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_37$$19, SL("server"), &server, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_38$$19); + ZVAL_STRING(&_38$$19, "request:afterAuthorizationResolve"); + ZEPHIR_CALL_METHOD(&resolved, &eventsManager, "fire", NULL, 0, &_38$$19, this_ptr, &_37$$19); + zephir_check_call_status(); + if (Z_TYPE_P(&resolved) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&_39$$20); + zephir_fast_array_merge(&_39$$20, &headers, &resolved); + ZEPHIR_CPY_WRT(&headers, &_39$$20); + } + } + RETURN_CTOR(&headers); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Stream, write) +static PHP_METHOD(Phalcon_Http_Request, smoothFiles) { + zend_string *_3; + zend_ulong _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_11 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval data; - zval *key_param = NULL, *data_param = NULL, option, path, _6, _7, _0$$3, _1$$3, _2$$3, _3$$3, _4$$3, _5$$3; - zval key; + zval prefix; + zval *names_param = NULL, *types_param = NULL, *tmp_names_param = NULL, *sizes_param = NULL, *errors_param = NULL, *prefix_param = NULL, idx, name, file, files, parentFiles, p, *_0, _1, _5$$4, _6$$5, _7$$5, _8$$5, _9$$5, _10$$5, *_12$$5, _13$$5, _15$$9, _16$$10, _17$$10, _18$$10, _19$$10, _20$$10, *_21$$10, _22$$10; + zval names, types, tmp_names, sizes, errors, _4$$4, _14$$9; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&option); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&data); + ZVAL_UNDEF(&names); + ZVAL_UNDEF(&types); + ZVAL_UNDEF(&tmp_names); + ZVAL_UNDEF(&sizes); + ZVAL_UNDEF(&errors); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_14$$9); + ZVAL_UNDEF(&idx); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&file); + ZVAL_UNDEF(&files); + ZVAL_UNDEF(&parentFiles); + ZVAL_UNDEF(&p); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_7$$5); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&_13$$5); + ZVAL_UNDEF(&_15$$9); + ZVAL_UNDEF(&_16$$10); + ZVAL_UNDEF(&_17$$10); + ZVAL_UNDEF(&_18$$10); + ZVAL_UNDEF(&_19$$10); + ZVAL_UNDEF(&_20$$10); + ZVAL_UNDEF(&_22$$10); + ZVAL_UNDEF(&prefix); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(key) - Z_PARAM_ARRAY(data) + ZEND_PARSE_PARAMETERS_START(6, 6) + Z_PARAM_ARRAY(names) + Z_PARAM_ARRAY(types) + Z_PARAM_ARRAY(tmp_names) + Z_PARAM_ARRAY(sizes) + Z_PARAM_ARRAY(errors) + Z_PARAM_STR(prefix) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &key_param, &data_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + zephir_fetch_params(1, 6, 0, &names_param, &types_param, &tmp_names_param, &sizes_param, &errors_param, &prefix_param); + ZEPHIR_OBS_COPY_OR_DUP(&names, names_param); + ZEPHIR_OBS_COPY_OR_DUP(&types, types_param); + ZEPHIR_OBS_COPY_OR_DUP(&tmp_names, tmp_names_param); + ZEPHIR_OBS_COPY_OR_DUP(&sizes, sizes_param); + ZEPHIR_OBS_COPY_OR_DUP(&errors, errors_param); + zephir_get_strval(&prefix, prefix_param); + + + ZEPHIR_INIT_VAR(&files); + array_init(&files); + zephir_is_iterable(&names, 0, "phalcon/Http/Request.zep", 1567); + if (Z_TYPE_P(&names) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&names), _2, _3, _0) + { + ZEPHIR_INIT_NVAR(&idx); + if (_3 != NULL) { + ZVAL_STR_COPY(&idx, _3); + } else { + ZVAL_LONG(&idx, _2); + } + ZEPHIR_INIT_NVAR(&name); + ZVAL_COPY(&name, _0); + ZEPHIR_INIT_NVAR(&p); + ZEPHIR_CONCAT_VSV(&p, &prefix, ".", &idx); + if (Z_TYPE_P(&name) == IS_STRING) { + ZEPHIR_INIT_NVAR(&_4$$4); + zephir_create_array(&_4$$4, 6, 0); + zephir_array_update_string(&_4$$4, SL("name"), &name, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_5$$4); + zephir_array_fetch(&_5$$4, &types, &idx, PH_NOISY, "phalcon/Http/Request.zep", 1543); + zephir_array_update_string(&_4$$4, SL("type"), &_5$$4, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_5$$4); + zephir_array_fetch(&_5$$4, &tmp_names, &idx, PH_NOISY, "phalcon/Http/Request.zep", 1544); + zephir_array_update_string(&_4$$4, SL("tmp_name"), &_5$$4, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_5$$4); + zephir_array_fetch(&_5$$4, &sizes, &idx, PH_NOISY, "phalcon/Http/Request.zep", 1545); + zephir_array_update_string(&_4$$4, SL("size"), &_5$$4, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_5$$4); + zephir_array_fetch(&_5$$4, &errors, &idx, PH_NOISY, "phalcon/Http/Request.zep", 1546); + zephir_array_update_string(&_4$$4, SL("error"), &_5$$4, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_4$$4, SL("key"), &p, PH_COPY | PH_SEPARATE); + zephir_array_append(&files, &_4$$4, PH_SEPARATE, "phalcon/Http/Request.zep", 1548); + } + if (Z_TYPE_P(&name) == IS_ARRAY) { + zephir_array_fetch(&_6$$5, &names, &idx, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1553); + zephir_array_fetch(&_7$$5, &types, &idx, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1554); + zephir_array_fetch(&_8$$5, &tmp_names, &idx, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1555); + zephir_array_fetch(&_9$$5, &sizes, &idx, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1556); + zephir_array_fetch(&_10$$5, &errors, &idx, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1557); + ZEPHIR_CALL_METHOD(&parentFiles, this_ptr, "smoothfiles", &_11, 349, &_6$$5, &_7$$5, &_8$$5, &_9$$5, &_10$$5, &p); + zephir_check_call_status(); + zephir_is_iterable(&parentFiles, 0, "phalcon/Http/Request.zep", 1564); + if (Z_TYPE_P(&parentFiles) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&parentFiles), _12$$5) + { + ZEPHIR_INIT_NVAR(&file); + ZVAL_COPY(&file, _12$$5); + zephir_array_append(&files, &file, PH_SEPARATE, "phalcon/Http/Request.zep", 1562); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &parentFiles, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_13$$5, &parentFiles, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_13$$5)) { + break; + } + ZEPHIR_CALL_METHOD(&file, &parentFiles, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_append(&files, &file, PH_SEPARATE, "phalcon/Http/Request.zep", 1562); + ZEPHIR_CALL_METHOD(NULL, &parentFiles, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&file); + } + } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_INIT_VAR(&key); + ZEPHIR_CALL_METHOD(NULL, &names, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &names, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&idx, &names, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&name, &names, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&p); + ZEPHIR_CONCAT_VSV(&p, &prefix, ".", &idx); + if (Z_TYPE_P(&name) == IS_STRING) { + ZEPHIR_INIT_NVAR(&_14$$9); + zephir_create_array(&_14$$9, 6, 0); + zephir_array_update_string(&_14$$9, SL("name"), &name, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_15$$9); + zephir_array_fetch(&_15$$9, &types, &idx, PH_NOISY, "phalcon/Http/Request.zep", 1543); + zephir_array_update_string(&_14$$9, SL("type"), &_15$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_15$$9); + zephir_array_fetch(&_15$$9, &tmp_names, &idx, PH_NOISY, "phalcon/Http/Request.zep", 1544); + zephir_array_update_string(&_14$$9, SL("tmp_name"), &_15$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_15$$9); + zephir_array_fetch(&_15$$9, &sizes, &idx, PH_NOISY, "phalcon/Http/Request.zep", 1545); + zephir_array_update_string(&_14$$9, SL("size"), &_15$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_15$$9); + zephir_array_fetch(&_15$$9, &errors, &idx, PH_NOISY, "phalcon/Http/Request.zep", 1546); + zephir_array_update_string(&_14$$9, SL("error"), &_15$$9, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_14$$9, SL("key"), &p, PH_COPY | PH_SEPARATE); + zephir_array_append(&files, &_14$$9, PH_SEPARATE, "phalcon/Http/Request.zep", 1548); + } + if (Z_TYPE_P(&name) == IS_ARRAY) { + zephir_array_fetch(&_16$$10, &names, &idx, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1553); + zephir_array_fetch(&_17$$10, &types, &idx, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1554); + zephir_array_fetch(&_18$$10, &tmp_names, &idx, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1555); + zephir_array_fetch(&_19$$10, &sizes, &idx, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1556); + zephir_array_fetch(&_20$$10, &errors, &idx, PH_NOISY | PH_READONLY, "phalcon/Http/Request.zep", 1557); + ZEPHIR_CALL_METHOD(&parentFiles, this_ptr, "smoothfiles", &_11, 349, &_16$$10, &_17$$10, &_18$$10, &_19$$10, &_20$$10, &p); + zephir_check_call_status(); + zephir_is_iterable(&parentFiles, 0, "phalcon/Http/Request.zep", 1564); + if (Z_TYPE_P(&parentFiles) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&parentFiles), _21$$10) + { + ZEPHIR_INIT_NVAR(&file); + ZVAL_COPY(&file, _21$$10); + zephir_array_append(&files, &file, PH_SEPARATE, "phalcon/Http/Request.zep", 1562); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &parentFiles, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_22$$10, &parentFiles, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_22$$10)) { + break; + } + ZEPHIR_CALL_METHOD(&file, &parentFiles, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_append(&files, &file, PH_SEPARATE, "phalcon/Http/Request.zep", 1562); + ZEPHIR_CALL_METHOD(NULL, &parentFiles, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&file); + } + ZEPHIR_CALL_METHOD(NULL, &names, "next", NULL, 0); + zephir_check_call_status(); + } } - zephir_get_arrval(&data, data_param); - + ZEPHIR_INIT_NVAR(&name); + ZEPHIR_INIT_NVAR(&idx); + RETURN_CCTOR(&files); +} +static PHP_METHOD(Phalcon_Http_Request, getFilterService) +{ + zval container, filterService, _0, _1$$3, _6$$3, _7$$3, _2$$4, _3$$4, _5$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_4 = NULL; + zval *this_ptr = getThis(); - /* try_start_1: */ + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&filterService); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$4); - zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("metaDataDir"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1$$3); - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "_"); - zephir_prepare_virtual_path(&_1$$3, &key, &_2$$3); - ZEPHIR_INIT_VAR(&path); - ZEPHIR_CONCAT_VVS(&path, &_0$$3, &_1$$3, ".php"); - ZEPHIR_INIT_VAR(&option); - ZVAL_BOOL(&option, ZEPHIR_GLOBAL(orm).exception_on_failed_metadata_save); - ZEPHIR_INIT_VAR(&_3$$3); - ZEPHIR_INIT_VAR(&_4$$3); - ZEPHIR_INIT_NVAR(&_4$$3); - zephir_var_export_ex(&_4$$3, &data); - ZEPHIR_INIT_VAR(&_5$$3); - ZEPHIR_CONCAT_SVS(&_5$$3, "= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(option) - ZEND_PARSE_PARAMETERS_END(); -#endif - + ZVAL_UNDEF(&_SERVER); - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &option); + zephir_get_global(&_SERVER, SL("_SERVER")); - if (zephir_is_true(option)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Meta-Data directory cannot be written", "phalcon/Mvc/Model/MetaData/Stream.zep", 93); + if (zephir_is_true(&_SERVER)) { + RETVAL_ZVAL(&_SERVER, 1, 0); return; } else { - ZEPHIR_INIT_VAR(&_0$$4); - ZVAL_STRING(&_0$$4, "Meta-Data directory cannot be written"); - ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_0$$4); - zephir_check_call_status(); + array_init(return_value); + return; + } +} + +zend_object *zephir_init_properties_Phalcon_Http_Request(zend_class_entry *class_type) +{ + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("queryFilters"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("queryFilters"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); } - ZEPHIR_MM_RESTORE(); } @@ -156837,4915 +139663,3641 @@ static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Stream, throwWriteException) -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_MetaData_Strategy_Annotations) +ZEPHIR_INIT_CLASS(Phalcon_Http_RequestInterface) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model\\MetaData\\Strategy, Annotations, phalcon, mvc_model_metadata_strategy_annotations, phalcon_mvc_model_metadata_strategy_annotations_method_entry, 0); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Http, RequestInterface, phalcon, http_requestinterface, phalcon_http_requestinterface_method_entry); - zend_class_implements(phalcon_mvc_model_metadata_strategy_annotations_ce, 1, phalcon_mvc_model_metadata_strategy_strategyinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Strategy_Annotations, getColumnMaps) +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, get); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getAcceptableContent); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getBasicAuth); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getBestAccept); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getBestCharset); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getBestLanguage); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getClientAddress); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getClientCharsets); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getContentType); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getDigestAuth); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getHeader); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getHeaders); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getHttpHost); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getHTTPReferer); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getJsonRawBody); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getLanguages); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getMethod); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getPort); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getURI); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getPost); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getPut); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getQuery); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getRawBody); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getScheme); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getServer); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getServerAddress); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getServerName); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getUploadedFiles); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, getUserAgent); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, has); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, hasFiles); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, hasHeader); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, hasQuery); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, hasPost); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, hasPut); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, hasServer); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isAjax); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isConnect); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isDelete); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isGet); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isHead); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isMethod); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isOptions); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isPost); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isPurge); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isPut); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isSecure); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isSoap); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, isTrace); +ZEPHIR_DOC_METHOD(Phalcon_Http_RequestInterface, numFiles); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Response) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Http, Response, phalcon, http_response, phalcon_http_response_method_entry, 0); + + zend_declare_property_null(phalcon_http_response_ce, SL("container"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_response_ce, SL("content"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_response_ce, SL("cookies"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_response_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_response_ce, SL("file"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_response_ce, SL("headers"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_http_response_ce, SL("sent"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_response_ce, SL("statusCodes"), ZEND_ACC_PROTECTED); + phalcon_http_response_ce->create_object = zephir_init_properties_Phalcon_Http_Response; + + zend_class_implements(phalcon_http_response_ce, 1, phalcon_http_responseinterface_ce); + zend_class_implements(phalcon_http_response_ce, 1, phalcon_di_injectionawareinterface_ce); + zend_class_implements(phalcon_http_response_ce, 1, phalcon_events_eventsawareinterface_ce); + zend_class_implements(phalcon_http_response_ce, 1, phalcon_http_message_responsestatuscodeinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Http_Response, __construct) { - zend_string *_8; - zend_ulong _7; - zend_bool hasReversedColumn = 0, _11$$6, _14$$10; - zval orderedColumnMap, reversedColumnMap; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, *container, container_sub, __$null, annotations, className, reflection, propertiesAnnotations, property, propAnnotations, columnAnnotation, columnName, _0, *_5, _6, _1$$4, _2$$4, _3$$5, _4$$5, _9$$6, _10$$6, _12$$10, _13$$10; + zval *content_param = NULL, *code = NULL, code_sub, *status = NULL, status_sub, __$null, _0; + zval content; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&container_sub); + ZVAL_UNDEF(&content); + ZVAL_UNDEF(&code_sub); + ZVAL_UNDEF(&status_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&annotations); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&reflection); - ZVAL_UNDEF(&propertiesAnnotations); - ZVAL_UNDEF(&property); - ZVAL_UNDEF(&propAnnotations); - ZVAL_UNDEF(&columnAnnotation); - ZVAL_UNDEF(&columnName); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_9$$6); - ZVAL_UNDEF(&_10$$6); - ZVAL_UNDEF(&_12$$10); - ZVAL_UNDEF(&_13$$10); - ZVAL_UNDEF(&orderedColumnMap); - ZVAL_UNDEF(&reversedColumnMap); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + ZEND_PARSE_PARAMETERS_START(0, 3) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(content) + Z_PARAM_ZVAL_OR_NULL(code) + Z_PARAM_ZVAL_OR_NULL(status) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &container); + zephir_fetch_params(1, 0, 3, &content_param, &code, &status); + if (!content_param) { + ZEPHIR_INIT_VAR(&content); + } else { + if (UNEXPECTED(Z_TYPE_P(content_param) != IS_STRING && Z_TYPE_P(content_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'content' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(content_param) == IS_STRING)) { + zephir_get_strval(&content, content_param); + } else { + ZEPHIR_INIT_VAR(&content); + } + } + if (!code) { + code = &code_sub; + code = &__$null; + } + if (!status) { + status = &status_sub; + status = &__$null; + } - if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The dependency injector is invalid", "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 32); - return; - } ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "annotations"); - ZEPHIR_CALL_METHOD(&annotations, container, "get", NULL, 0, &_0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&className); - zephir_get_class(&className, model, 0); - ZEPHIR_CALL_METHOD(&reflection, &annotations, "get", NULL, 0, &className); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&reflection) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_1$$4); - object_init_ex(&_1$$4, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_2$$4); - ZEPHIR_CONCAT_SV(&_2$$4, "No annotations were found in class ", &className); - ZEPHIR_CALL_METHOD(NULL, &_1$$4, "__construct", NULL, 8, &_2$$4); + object_init_ex(&_0, phalcon_http_response_headers_ce); + if (zephir_has_constructor(&_0)) { + ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 0); zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$4, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 43); - ZEPHIR_MM_RESTORE(); - return; } - ZEPHIR_CALL_METHOD(&propertiesAnnotations, &reflection, "getpropertiesannotations", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(!(zephir_fast_count_int(&propertiesAnnotations)))) { - ZEPHIR_INIT_VAR(&_3$$5); - object_init_ex(&_3$$5, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_4$$5); - ZEPHIR_CONCAT_SV(&_4$$5, "No properties with annotations were found in class ", &className); - ZEPHIR_CALL_METHOD(NULL, &_3$$5, "__construct", NULL, 8, &_4$$5); + + zephir_update_property_zval(this_ptr, ZEND_STRL("headers"), &_0); + if (!ZEPHIR_IS_NULL(&content)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setcontent", NULL, 0, &content); zephir_check_call_status(); - zephir_throw_exception_debug(&_3$$5, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 54); - ZEPHIR_MM_RESTORE(); - return; } - ZEPHIR_INIT_VAR(&orderedColumnMap); - array_init(&orderedColumnMap); - ZEPHIR_INIT_VAR(&reversedColumnMap); - array_init(&reversedColumnMap); - hasReversedColumn = 0; - zephir_is_iterable(&propertiesAnnotations, 0, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 91); - if (Z_TYPE_P(&propertiesAnnotations) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&propertiesAnnotations), _7, _8, _5) - { - ZEPHIR_INIT_NVAR(&property); - if (_8 != NULL) { - ZVAL_STR_COPY(&property, _8); - } else { - ZVAL_LONG(&property, _7); - } - ZEPHIR_INIT_NVAR(&propAnnotations); - ZVAL_COPY(&propAnnotations, _5); - ZEPHIR_INIT_NVAR(&_10$$6); - ZVAL_STRING(&_10$$6, "Column"); - ZEPHIR_CALL_METHOD(&_9$$6, &propAnnotations, "has", NULL, 0, &_10$$6); - zephir_check_call_status(); - if (!(zephir_is_true(&_9$$6))) { - continue; - } - ZEPHIR_INIT_NVAR(&_10$$6); - ZVAL_STRING(&_10$$6, "Column"); - ZEPHIR_CALL_METHOD(&columnAnnotation, &propAnnotations, "get", NULL, 0, &_10$$6); + if (Z_TYPE_P(code) != IS_NULL) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setstatuscode", NULL, 0, code, status); + zephir_check_call_status(); + } + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Http_Response, appendContent) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *content, content_sub, _0, _1; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&content_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(content) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &content); + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getcontent", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_CONCAT_VV(&_1, &_0, content); + zephir_update_property_zval(this_ptr, ZEND_STRL("content"), &_1); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Http_Response, getContent) +{ + zval _1; + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_OBS_VAR(&_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("content"), PH_NOISY_CC); + zephir_cast_to_string(&_1, &_0); + RETURN_CTOR(&_1); +} + +static PHP_METHOD(Phalcon_Http_Response, getCookies) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "cookies"); +} + +static PHP_METHOD(Phalcon_Http_Response, getDI) +{ + zval container, _0, _2$$4, _3$$4, _5$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_1 = NULL, *_4 = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$4); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + if (Z_TYPE_P(&container) != IS_OBJECT) { + ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_1, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_2$$4); + object_init_ex(&_2$$4, phalcon_http_response_exception_ce); + ZEPHIR_INIT_VAR(&_5$$4); + ZVAL_STRING(&_5$$4, "the 'url' service"); + ZEPHIR_CALL_CE_STATIC(&_3$$4, phalcon_http_response_exception_ce, "containerservicenotfound", &_4, 0, &_5$$4); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_10$$6); - ZVAL_STRING(&_10$$6, "column"); - ZEPHIR_CALL_METHOD(&columnName, &columnAnnotation, "getnamedparameter", NULL, 0, &_10$$6); + ZEPHIR_CALL_METHOD(NULL, &_2$$4, "__construct", NULL, 8, &_3$$4); zephir_check_call_status(); - if (ZEPHIR_IS_EMPTY(&columnName)) { - ZEPHIR_CPY_WRT(&columnName, &property); - } - zephir_array_update_zval(&orderedColumnMap, &columnName, &property, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&reversedColumnMap, &property, &columnName, PH_COPY | PH_SEPARATE); - _11$$6 = !hasReversedColumn; - if (_11$$6) { - _11$$6 = !ZEPHIR_IS_EQUAL(&columnName, &property); - } - if (_11$$6) { - hasReversedColumn = 1; - } - } ZEND_HASH_FOREACH_END(); + zephir_throw_exception_debug(&_2$$4, "phalcon/Http/Response.zep", 148); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), &container); + } + RETURN_CCTOR(&container); +} + +static PHP_METHOD(Phalcon_Http_Response, getEventsManager) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "eventsManager"); +} + +static PHP_METHOD(Phalcon_Http_Response, getHeaders) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "headers"); +} + +static PHP_METHOD(Phalcon_Http_Response, getReasonPhrase) +{ + zval statusReasonPhrase, _0, _1, _2, _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&statusReasonPhrase); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getheaders", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "Status"); + ZEPHIR_CALL_METHOD(&_1, &_0, "get", NULL, 0, &_2); + zephir_check_call_status(); + ZVAL_LONG(&_3, 4); + ZEPHIR_INIT_VAR(&statusReasonPhrase); + zephir_substr(&statusReasonPhrase, &_1, 4 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + ZEPHIR_INIT_NVAR(&_2); + if (zephir_is_true(&statusReasonPhrase)) { + ZEPHIR_CPY_WRT(&_2, &statusReasonPhrase); } else { - ZEPHIR_CALL_METHOD(NULL, &propertiesAnnotations, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_6, &propertiesAnnotations, "valid", NULL, 0); + ZVAL_NULL(&_2); + } + RETURN_CCTOR(&_2); +} + +static PHP_METHOD(Phalcon_Http_Response, getStatusCode) +{ + zval statusCode, _0, _1, _2, _3, _4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&statusCode); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getheaders", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "Status"); + ZEPHIR_CALL_METHOD(&_1, &_0, "get", NULL, 0, &_2); + zephir_check_call_status(); + ZVAL_LONG(&_3, 0); + ZVAL_LONG(&_4, 3); + ZEPHIR_INIT_VAR(&statusCode); + zephir_substr(&statusCode, &_1, 0 , 3 , 0); + ZEPHIR_INIT_NVAR(&_2); + if (zephir_is_true(&statusCode)) { + ZVAL_LONG(&_2, zephir_get_intval(&statusCode)); + } else { + ZVAL_NULL(&_2); + } + RETURN_CCTOR(&_2); +} + +static PHP_METHOD(Phalcon_Http_Response, hasHeader) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, headers; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&headers); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + zephir_get_strval(&name, name_param); + + + ZEPHIR_CALL_METHOD(&headers, this_ptr, "getheaders", NULL, 0); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(&headers, "has", NULL, 0, &name); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Http_Response, isSent) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "sent"); +} + +static PHP_METHOD(Phalcon_Http_Response, redirect) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long statusCode, ZEPHIR_LAST_CALL_STATUS; + zend_bool externalRedirect, _11, _0$$5; + zval *location = NULL, location_sub, *externalRedirect_param = NULL, *statusCode_param = NULL, __$null, header, url, container, matched, view, _8, _9, _12, _1$$5, _2$$5, _3$$6, _4$$6, _5$$6, _6$$10, _7$$10, _10$$11; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&location_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&header); + ZVAL_UNDEF(&url); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&matched); + ZVAL_UNDEF(&view); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_1$$5); + ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&_3$$6); + ZVAL_UNDEF(&_4$$6); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&_6$$10); + ZVAL_UNDEF(&_7$$10); + ZVAL_UNDEF(&_10$$11); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 3) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(location) + Z_PARAM_BOOL(externalRedirect) + Z_PARAM_LONG(statusCode) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 3, &location, &externalRedirect_param, &statusCode_param); + if (!location) { + location = &location_sub; + ZEPHIR_CPY_WRT(location, &__$null); + } else { + ZEPHIR_SEPARATE_PARAM(location); + } + if (!externalRedirect_param) { + externalRedirect = 0; + } else { + externalRedirect = zephir_get_boolval(externalRedirect_param); + } + if (!statusCode_param) { + statusCode = 302; + } else { + statusCode = zephir_get_intval(statusCode_param); + } + + + if (!(zephir_is_true(location))) { + ZEPHIR_INIT_NVAR(location); + ZVAL_STRING(location, ""); + } + if (externalRedirect) { + ZEPHIR_CPY_WRT(&header, location); + } else { + _0$$5 = Z_TYPE_P(location) == IS_STRING; + if (_0$$5) { + ZEPHIR_INIT_VAR(&_1$$5); + ZVAL_STRING(&_1$$5, "://"); + ZEPHIR_CALL_FUNCTION(&_2$$5, "strstr", NULL, 272, location, &_1$$5); zephir_check_call_status(); - if (!zend_is_true(&_6)) { - break; + _0$$5 = zephir_is_true(&_2$$5); + } + if (_0$$5) { + ZEPHIR_INIT_VAR(&_3$$6); + ZEPHIR_INIT_VAR(&_4$$6); + ZVAL_STRING(&_4$$6, "/^[^:\\/?#]++:/"); + ZEPHIR_INIT_VAR(&_5$$6); + ZVAL_STRING(&_5$$6, "/^[^:\\/?#]++:/"); + ZEPHIR_INIT_VAR(&matched); + zephir_preg_match(&matched, &_5$$6, location, &_3$$6, 0, 0 , 0 ); + if (zephir_is_true(&matched)) { + ZEPHIR_CPY_WRT(&header, location); + } else { + ZEPHIR_INIT_NVAR(&header); + ZVAL_NULL(&header); } - ZEPHIR_CALL_METHOD(&property, &propertiesAnnotations, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&propAnnotations, &propertiesAnnotations, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_13$$10); - ZVAL_STRING(&_13$$10, "Column"); - ZEPHIR_CALL_METHOD(&_12$$10, &propAnnotations, "has", NULL, 0, &_13$$10); - zephir_check_call_status(); - if (!(zephir_is_true(&_12$$10))) { - continue; - } - ZEPHIR_INIT_NVAR(&_13$$10); - ZVAL_STRING(&_13$$10, "Column"); - ZEPHIR_CALL_METHOD(&columnAnnotation, &propAnnotations, "get", NULL, 0, &_13$$10); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_13$$10); - ZVAL_STRING(&_13$$10, "column"); - ZEPHIR_CALL_METHOD(&columnName, &columnAnnotation, "getnamedparameter", NULL, 0, &_13$$10); - zephir_check_call_status(); - if (ZEPHIR_IS_EMPTY(&columnName)) { - ZEPHIR_CPY_WRT(&columnName, &property); - } - zephir_array_update_zval(&orderedColumnMap, &columnName, &property, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&reversedColumnMap, &property, &columnName, PH_COPY | PH_SEPARATE); - _14$$10 = !hasReversedColumn; - if (_14$$10) { - _14$$10 = !ZEPHIR_IS_EQUAL(&columnName, &property); - } - if (_14$$10) { - hasReversedColumn = 1; - } - ZEPHIR_CALL_METHOD(NULL, &propertiesAnnotations, "next", NULL, 0); + } else { + ZEPHIR_INIT_NVAR(&header); + ZVAL_NULL(&header); + } + } + ZEPHIR_CALL_METHOD(&container, this_ptr, "getdi", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&header))) { + ZEPHIR_INIT_VAR(&_7$$10); + ZVAL_STRING(&_7$$10, "url"); + ZEPHIR_CALL_METHOD(&_6$$10, &container, "getshared", NULL, 0, &_7$$10); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&url, &_6$$10); + ZEPHIR_CALL_METHOD(&header, &url, "get", NULL, 0, location); + zephir_check_call_status(); + } + ZEPHIR_INIT_VAR(&_9); + ZVAL_STRING(&_9, "view"); + ZEPHIR_CALL_METHOD(&_8, &container, "has", NULL, 0, &_9); + zephir_check_call_status(); + if (zephir_is_true(&_8)) { + ZEPHIR_INIT_VAR(&_10$$11); + ZVAL_STRING(&_10$$11, "view"); + ZEPHIR_CALL_METHOD(&view, &container, "getshared", NULL, 0, &_10$$11); + zephir_check_call_status(); + if (zephir_instance_of_ev(&view, phalcon_mvc_viewinterface_ce)) { + ZEPHIR_CALL_METHOD(NULL, &view, "disable", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&propAnnotations); - ZEPHIR_INIT_NVAR(&property); - if (!(hasReversedColumn)) { - zephir_create_array(return_value, 2, 0); - zephir_array_fast_append(return_value, &__$null); - zephir_array_fast_append(return_value, &__$null); - RETURN_MM(); + _11 = statusCode < 300; + if (!(_11)) { + _11 = statusCode > 308; } - zephir_create_array(return_value, 2, 0); - zephir_array_fast_append(return_value, &orderedColumnMap); - zephir_array_fast_append(return_value, &reversedColumnMap); - RETURN_MM(); + if (_11) { + statusCode = 302; + } + ZVAL_LONG(&_12, statusCode); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setstatuscode", NULL, 0, &_12); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_9); + ZVAL_STRING(&_9, "Location"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setheader", NULL, 0, &_9, &header); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Strategy_Annotations, getMetaData) +static PHP_METHOD(Phalcon_Http_Response, removeHeader) { - zend_bool _71$$6, _135$$44; - zend_string *_8; - zend_ulong _7; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, *container, container_sub, __$true, annotations, className, reflection, propertiesAnnotations, property, propAnnotations, columnAnnotation, columnName, feature, fieldTypes, fieldBindTypes, numericTyped, primaryKeys, nonPrimaryKeys, identityField, notNull, attributes, defaultValues, defaultValue, emptyStringValues, skipOnInsert, skipOnUpdate, _0, *_5, _6, _1$$4, _2$$4, _3$$5, _4$$5, _9$$6, _10$$6, _65$$6, _66$$6, _67$$6, _68$$6, _69$$6, _70$$6, _72$$6, _11$$9, _12$$9, _13$$10, _14$$10, _15$$11, _16$$11, _17$$12, _18$$12, _19$$13, _20$$13, _21$$14, _22$$14, _23$$15, _24$$15, _25$$16, _26$$16, _27$$17, _28$$17, _29$$18, _30$$18, _31$$19, _32$$19, _33$$20, _34$$20, _35$$21, _36$$21, _37$$22, _38$$22, _39$$23, _40$$23, _41$$24, _42$$24, _43$$25, _44$$25, _45$$26, _46$$26, _47$$27, _48$$27, _49$$28, _50$$28, _51$$29, _52$$29, _53$$30, _54$$30, _55$$31, _56$$31, _57$$32, _58$$32, _59$$33, _60$$33, _61$$34, _62$$34, _63$$35, _64$$35, _73$$44, _74$$44, _129$$44, _130$$44, _131$$44, _132$$44, _133$$44, _134$$44, _136$$44, _75$$47, _76$$47, _77$$48, _78$$48, _79$$49, _80$$49, _81$$50, _82$$50, _83$$51, _84$$51, _85$$52, _86$$52, _87$$53, _88$$53, _89$$54, _90$$54, _91$$55, _92$$55, _93$$56, _94$$56, _95$$57, _96$$57, _97$$58, _98$$58, _99$$59, _100$$59, _101$$60, _102$$60, _103$$61, _104$$61, _105$$62, _106$$62, _107$$63, _108$$63, _109$$64, _110$$64, _111$$65, _112$$65, _113$$66, _114$$66, _115$$67, _116$$67, _117$$68, _118$$68, _119$$69, _120$$69, _121$$70, _122$$70, _123$$71, _124$$71, _125$$72, _126$$72, _127$$73, _128$$73; + zval *name_param = NULL, headers; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&container_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&annotations); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&reflection); - ZVAL_UNDEF(&propertiesAnnotations); - ZVAL_UNDEF(&property); - ZVAL_UNDEF(&propAnnotations); - ZVAL_UNDEF(&columnAnnotation); - ZVAL_UNDEF(&columnName); - ZVAL_UNDEF(&feature); - ZVAL_UNDEF(&fieldTypes); - ZVAL_UNDEF(&fieldBindTypes); - ZVAL_UNDEF(&numericTyped); - ZVAL_UNDEF(&primaryKeys); - ZVAL_UNDEF(&nonPrimaryKeys); - ZVAL_UNDEF(&identityField); - ZVAL_UNDEF(¬Null); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&defaultValues); - ZVAL_UNDEF(&defaultValue); - ZVAL_UNDEF(&emptyStringValues); - ZVAL_UNDEF(&skipOnInsert); - ZVAL_UNDEF(&skipOnUpdate); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_9$$6); - ZVAL_UNDEF(&_10$$6); - ZVAL_UNDEF(&_65$$6); - ZVAL_UNDEF(&_66$$6); - ZVAL_UNDEF(&_67$$6); - ZVAL_UNDEF(&_68$$6); - ZVAL_UNDEF(&_69$$6); - ZVAL_UNDEF(&_70$$6); - ZVAL_UNDEF(&_72$$6); - ZVAL_UNDEF(&_11$$9); - ZVAL_UNDEF(&_12$$9); - ZVAL_UNDEF(&_13$$10); - ZVAL_UNDEF(&_14$$10); - ZVAL_UNDEF(&_15$$11); - ZVAL_UNDEF(&_16$$11); - ZVAL_UNDEF(&_17$$12); - ZVAL_UNDEF(&_18$$12); - ZVAL_UNDEF(&_19$$13); - ZVAL_UNDEF(&_20$$13); - ZVAL_UNDEF(&_21$$14); - ZVAL_UNDEF(&_22$$14); - ZVAL_UNDEF(&_23$$15); - ZVAL_UNDEF(&_24$$15); - ZVAL_UNDEF(&_25$$16); - ZVAL_UNDEF(&_26$$16); - ZVAL_UNDEF(&_27$$17); - ZVAL_UNDEF(&_28$$17); - ZVAL_UNDEF(&_29$$18); - ZVAL_UNDEF(&_30$$18); - ZVAL_UNDEF(&_31$$19); - ZVAL_UNDEF(&_32$$19); - ZVAL_UNDEF(&_33$$20); - ZVAL_UNDEF(&_34$$20); - ZVAL_UNDEF(&_35$$21); - ZVAL_UNDEF(&_36$$21); - ZVAL_UNDEF(&_37$$22); - ZVAL_UNDEF(&_38$$22); - ZVAL_UNDEF(&_39$$23); - ZVAL_UNDEF(&_40$$23); - ZVAL_UNDEF(&_41$$24); - ZVAL_UNDEF(&_42$$24); - ZVAL_UNDEF(&_43$$25); - ZVAL_UNDEF(&_44$$25); - ZVAL_UNDEF(&_45$$26); - ZVAL_UNDEF(&_46$$26); - ZVAL_UNDEF(&_47$$27); - ZVAL_UNDEF(&_48$$27); - ZVAL_UNDEF(&_49$$28); - ZVAL_UNDEF(&_50$$28); - ZVAL_UNDEF(&_51$$29); - ZVAL_UNDEF(&_52$$29); - ZVAL_UNDEF(&_53$$30); - ZVAL_UNDEF(&_54$$30); - ZVAL_UNDEF(&_55$$31); - ZVAL_UNDEF(&_56$$31); - ZVAL_UNDEF(&_57$$32); - ZVAL_UNDEF(&_58$$32); - ZVAL_UNDEF(&_59$$33); - ZVAL_UNDEF(&_60$$33); - ZVAL_UNDEF(&_61$$34); - ZVAL_UNDEF(&_62$$34); - ZVAL_UNDEF(&_63$$35); - ZVAL_UNDEF(&_64$$35); - ZVAL_UNDEF(&_73$$44); - ZVAL_UNDEF(&_74$$44); - ZVAL_UNDEF(&_129$$44); - ZVAL_UNDEF(&_130$$44); - ZVAL_UNDEF(&_131$$44); - ZVAL_UNDEF(&_132$$44); - ZVAL_UNDEF(&_133$$44); - ZVAL_UNDEF(&_134$$44); - ZVAL_UNDEF(&_136$$44); - ZVAL_UNDEF(&_75$$47); - ZVAL_UNDEF(&_76$$47); - ZVAL_UNDEF(&_77$$48); - ZVAL_UNDEF(&_78$$48); - ZVAL_UNDEF(&_79$$49); - ZVAL_UNDEF(&_80$$49); - ZVAL_UNDEF(&_81$$50); - ZVAL_UNDEF(&_82$$50); - ZVAL_UNDEF(&_83$$51); - ZVAL_UNDEF(&_84$$51); - ZVAL_UNDEF(&_85$$52); - ZVAL_UNDEF(&_86$$52); - ZVAL_UNDEF(&_87$$53); - ZVAL_UNDEF(&_88$$53); - ZVAL_UNDEF(&_89$$54); - ZVAL_UNDEF(&_90$$54); - ZVAL_UNDEF(&_91$$55); - ZVAL_UNDEF(&_92$$55); - ZVAL_UNDEF(&_93$$56); - ZVAL_UNDEF(&_94$$56); - ZVAL_UNDEF(&_95$$57); - ZVAL_UNDEF(&_96$$57); - ZVAL_UNDEF(&_97$$58); - ZVAL_UNDEF(&_98$$58); - ZVAL_UNDEF(&_99$$59); - ZVAL_UNDEF(&_100$$59); - ZVAL_UNDEF(&_101$$60); - ZVAL_UNDEF(&_102$$60); - ZVAL_UNDEF(&_103$$61); - ZVAL_UNDEF(&_104$$61); - ZVAL_UNDEF(&_105$$62); - ZVAL_UNDEF(&_106$$62); - ZVAL_UNDEF(&_107$$63); - ZVAL_UNDEF(&_108$$63); - ZVAL_UNDEF(&_109$$64); - ZVAL_UNDEF(&_110$$64); - ZVAL_UNDEF(&_111$$65); - ZVAL_UNDEF(&_112$$65); - ZVAL_UNDEF(&_113$$66); - ZVAL_UNDEF(&_114$$66); - ZVAL_UNDEF(&_115$$67); - ZVAL_UNDEF(&_116$$67); - ZVAL_UNDEF(&_117$$68); - ZVAL_UNDEF(&_118$$68); - ZVAL_UNDEF(&_119$$69); - ZVAL_UNDEF(&_120$$69); - ZVAL_UNDEF(&_121$$70); - ZVAL_UNDEF(&_122$$70); - ZVAL_UNDEF(&_123$$71); - ZVAL_UNDEF(&_124$$71); - ZVAL_UNDEF(&_125$$72); - ZVAL_UNDEF(&_126$$72); - ZVAL_UNDEF(&_127$$73); - ZVAL_UNDEF(&_128$$73); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&headers); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &container); + zephir_fetch_params(1, 1, 0, &name_param); + zephir_get_strval(&name, name_param); - if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The dependency injector is invalid", "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 113); + ZEPHIR_CALL_METHOD(&headers, this_ptr, "getheaders", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &headers, "remove", NULL, 0, &name); + zephir_check_call_status(); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Http_Response, resetHeaders) +{ + zval headers; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&headers); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&headers, this_ptr, "getheaders", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &headers, "reset", NULL, 0); + zephir_check_call_status(); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Http_Response, send) +{ + zend_bool _3$$5; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval __$true, __$false, content, file, _0, _1, _2$$5; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&content); + ZVAL_UNDEF(&file); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$5); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("sent"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(zephir_is_true(&_0))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_response_exception_ce, "Response was already sent", "phalcon/Http/Response.zep", 353); return; } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "annotations"); - ZEPHIR_CALL_METHOD(&annotations, container, "get", NULL, 0, &_0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "sendheaders", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&className); - zephir_get_class(&className, model, 0); - ZEPHIR_CALL_METHOD(&reflection, &annotations, "get", NULL, 0, &className); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "sendcookies", NULL, 0); zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&reflection) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_1$$4); - object_init_ex(&_1$$4, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_2$$4); - ZEPHIR_CONCAT_SV(&_2$$4, "No annotations were found in class ", &className); - ZEPHIR_CALL_METHOD(NULL, &_1$$4, "__construct", NULL, 8, &_2$$4); + zephir_read_property(&_1, this_ptr, ZEND_STRL("content"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&content, &_1); + if (Z_TYPE_P(&content) != IS_NULL) { + zend_print_zval(&content, 0); + } else { + zephir_read_property(&_2$$5, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&file, &_2$$5); + _3$$5 = Z_TYPE_P(&file) == IS_STRING; + if (_3$$5) { + _3$$5 = ((zephir_fast_strlen_ev(&file)) ? 1 : 0); + } + if (_3$$5) { + ZEPHIR_CALL_FUNCTION(NULL, "readfile", NULL, 358, &file); + zephir_check_call_status(); + } + } + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("sent"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("sent"), &__$false); + } + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Http_Response, sendCookies) +{ + zval cookies, _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&cookies); + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("cookies"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&cookies, &_0); + if (Z_TYPE_P(&cookies) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(NULL, &cookies, "send", NULL, 0); zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$4, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 124); - ZEPHIR_MM_RESTORE(); - return; } - ZEPHIR_CALL_METHOD(&propertiesAnnotations, &reflection, "getpropertiesannotations", NULL, 0); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Http_Response, sendHeaders) +{ + zend_bool _3; + zval headers, eventsManager, _0, _1$$3, _2$$3, _4$$5; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&headers); + ZVAL_UNDEF(&eventsManager); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$5); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getheaders", NULL, 0); zephir_check_call_status(); - if (UNEXPECTED(!(zephir_fast_count_int(&propertiesAnnotations)))) { - ZEPHIR_INIT_VAR(&_3$$5); - object_init_ex(&_3$$5, phalcon_mvc_model_exception_ce); + ZEPHIR_CPY_WRT(&headers, &_0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "geteventsmanager", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&eventsManager, &_0); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "response:beforeSendHeaders"); + ZEPHIR_CALL_METHOD(&_1$$3, &eventsManager, "fire", NULL, 0, &_2$$3, this_ptr); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_1$$3)) { + RETURN_MM_BOOL(0); + } + } + ZEPHIR_CALL_METHOD(&_0, &headers, "send", NULL, 0); + zephir_check_call_status(); + _3 = zephir_is_true(&_0); + if (_3) { + _3 = Z_TYPE_P(&eventsManager) == IS_OBJECT; + } + if (_3) { ZEPHIR_INIT_VAR(&_4$$5); - ZEPHIR_CONCAT_SV(&_4$$5, "No properties with annotations were found in class ", &className); - ZEPHIR_CALL_METHOD(NULL, &_3$$5, "__construct", NULL, 8, &_4$$5); + ZVAL_STRING(&_4$$5, "response:afterSendHeaders"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_4$$5, this_ptr); zephir_check_call_status(); - zephir_throw_exception_debug(&_3$$5, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 135); - ZEPHIR_MM_RESTORE(); - return; } - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - ZEPHIR_INIT_VAR(&primaryKeys); - array_init(&primaryKeys); - ZEPHIR_INIT_VAR(&nonPrimaryKeys); - array_init(&nonPrimaryKeys); - ZEPHIR_INIT_VAR(&numericTyped); - array_init(&numericTyped); - ZEPHIR_INIT_VAR(¬Null); - array_init(¬Null); - ZEPHIR_INIT_VAR(&fieldTypes); - array_init(&fieldTypes); - ZEPHIR_INIT_VAR(&fieldBindTypes); - array_init(&fieldBindTypes); - ZEPHIR_INIT_VAR(&identityField); - ZVAL_BOOL(&identityField, 0); - ZEPHIR_INIT_VAR(&skipOnInsert); - array_init(&skipOnInsert); - ZEPHIR_INIT_VAR(&skipOnUpdate); - array_init(&skipOnUpdate); - ZEPHIR_INIT_VAR(&defaultValues); - array_init(&defaultValues); - ZEPHIR_INIT_VAR(&emptyStringValues); - array_init(&emptyStringValues); - zephir_is_iterable(&propertiesAnnotations, 0, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 392); - if (Z_TYPE_P(&propertiesAnnotations) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&propertiesAnnotations), _7, _8, _5) - { - ZEPHIR_INIT_NVAR(&property); - if (_8 != NULL) { - ZVAL_STR_COPY(&property, _8); - } else { - ZVAL_LONG(&property, _7); - } - ZEPHIR_INIT_NVAR(&propAnnotations); - ZVAL_COPY(&propAnnotations, _5); - ZEPHIR_INIT_NVAR(&_10$$6); - ZVAL_STRING(&_10$$6, "Column"); - ZEPHIR_CALL_METHOD(&_9$$6, &propAnnotations, "has", NULL, 0, &_10$$6); - zephir_check_call_status(); - if (!(zephir_is_true(&_9$$6))) { - continue; - } - ZEPHIR_INIT_NVAR(&_10$$6); - ZVAL_STRING(&_10$$6, "Column"); - ZEPHIR_CALL_METHOD(&columnAnnotation, &propAnnotations, "get", NULL, 0, &_10$$6); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_10$$6); - ZVAL_STRING(&_10$$6, "column"); - ZEPHIR_CALL_METHOD(&columnName, &columnAnnotation, "getnamedparameter", NULL, 0, &_10$$6); - zephir_check_call_status(); - if (ZEPHIR_IS_EMPTY(&columnName)) { - ZEPHIR_CPY_WRT(&columnName, &property); - } - ZEPHIR_INIT_NVAR(&_10$$6); - ZVAL_STRING(&_10$$6, "type"); - ZEPHIR_CALL_METHOD(&feature, &columnAnnotation, "getnamedparameter", NULL, 0, &_10$$6); - zephir_check_call_status(); - do { - if (ZEPHIR_IS_STRING(&feature, "biginteger")) { - ZEPHIR_INIT_NVAR(&_11$$9); - ZVAL_LONG(&_11$$9, 14); - zephir_array_update_zval(&fieldTypes, &columnName, &_11$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_12$$9); - ZVAL_LONG(&_12$$9, 1); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_12$$9, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "bit")) { - ZEPHIR_INIT_NVAR(&_13$$10); - ZVAL_LONG(&_13$$10, 19); - zephir_array_update_zval(&fieldTypes, &columnName, &_13$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_14$$10); - ZVAL_LONG(&_14$$10, 1); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_14$$10, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "blob")) { - ZEPHIR_INIT_NVAR(&_15$$11); - ZVAL_LONG(&_15$$11, 11); - zephir_array_update_zval(&fieldTypes, &columnName, &_15$$11, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_16$$11); - ZVAL_LONG(&_16$$11, 3); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_16$$11, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "boolean")) { - ZEPHIR_INIT_NVAR(&_17$$12); - ZVAL_LONG(&_17$$12, 8); - zephir_array_update_zval(&fieldTypes, &columnName, &_17$$12, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_18$$12); - ZVAL_LONG(&_18$$12, 5); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_18$$12, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "char")) { - ZEPHIR_INIT_NVAR(&_19$$13); - ZVAL_LONG(&_19$$13, 5); - zephir_array_update_zval(&fieldTypes, &columnName, &_19$$13, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_20$$13); - ZVAL_LONG(&_20$$13, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_20$$13, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "date")) { - ZEPHIR_INIT_NVAR(&_21$$14); - ZVAL_LONG(&_21$$14, 1); - zephir_array_update_zval(&fieldTypes, &columnName, &_21$$14, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_22$$14); - ZVAL_LONG(&_22$$14, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_22$$14, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "datetime")) { - ZEPHIR_INIT_NVAR(&_23$$15); - ZVAL_LONG(&_23$$15, 4); - zephir_array_update_zval(&fieldTypes, &columnName, &_23$$15, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_24$$15); - ZVAL_LONG(&_24$$15, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_24$$15, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "decimal")) { - ZEPHIR_INIT_NVAR(&_25$$16); - ZVAL_LONG(&_25$$16, 3); - zephir_array_update_zval(&fieldTypes, &columnName, &_25$$16, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_26$$16); - ZVAL_LONG(&_26$$16, 32); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_26$$16, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "double")) { - ZEPHIR_INIT_NVAR(&_27$$17); - ZVAL_LONG(&_27$$17, 9); - zephir_array_update_zval(&fieldTypes, &columnName, &_27$$17, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_28$$17); - ZVAL_LONG(&_28$$17, 32); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_28$$17, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "enum")) { - ZEPHIR_INIT_NVAR(&_29$$18); - ZVAL_LONG(&_29$$18, 18); - zephir_array_update_zval(&fieldTypes, &columnName, &_29$$18, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_30$$18); - ZVAL_LONG(&_30$$18, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_30$$18, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "float")) { - ZEPHIR_INIT_NVAR(&_31$$19); - ZVAL_LONG(&_31$$19, 7); - zephir_array_update_zval(&fieldTypes, &columnName, &_31$$19, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_32$$19); - ZVAL_LONG(&_32$$19, 32); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_32$$19, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "integer")) { - ZEPHIR_INIT_NVAR(&_33$$20); - ZVAL_LONG(&_33$$20, 0); - zephir_array_update_zval(&fieldTypes, &columnName, &_33$$20, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_34$$20); - ZVAL_LONG(&_34$$20, 1); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_34$$20, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "json")) { - ZEPHIR_INIT_NVAR(&_35$$21); - ZVAL_LONG(&_35$$21, 15); - zephir_array_update_zval(&fieldTypes, &columnName, &_35$$21, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_36$$21); - ZVAL_LONG(&_36$$21, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_36$$21, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "jsonb")) { - ZEPHIR_INIT_NVAR(&_37$$22); - ZVAL_LONG(&_37$$22, 16); - zephir_array_update_zval(&fieldTypes, &columnName, &_37$$22, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_38$$22); - ZVAL_LONG(&_38$$22, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_38$$22, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "longblob")) { - ZEPHIR_INIT_NVAR(&_39$$23); - ZVAL_LONG(&_39$$23, 13); - zephir_array_update_zval(&fieldTypes, &columnName, &_39$$23, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_40$$23); - ZVAL_LONG(&_40$$23, 3); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_40$$23, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "longtext")) { - ZEPHIR_INIT_NVAR(&_41$$24); - ZVAL_LONG(&_41$$24, 24); - zephir_array_update_zval(&fieldTypes, &columnName, &_41$$24, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_42$$24); - ZVAL_LONG(&_42$$24, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_42$$24, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "mediumblob")) { - ZEPHIR_INIT_NVAR(&_43$$25); - ZVAL_LONG(&_43$$25, 12); - zephir_array_update_zval(&fieldTypes, &columnName, &_43$$25, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_44$$25); - ZVAL_LONG(&_44$$25, 3); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_44$$25, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "mediumint")) { - ZEPHIR_INIT_NVAR(&_45$$26); - ZVAL_LONG(&_45$$26, 21); - zephir_array_update_zval(&fieldTypes, &columnName, &_45$$26, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_46$$26); - ZVAL_LONG(&_46$$26, 1); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_46$$26, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "mediumtext")) { - ZEPHIR_INIT_NVAR(&_47$$27); - ZVAL_LONG(&_47$$27, 23); - zephir_array_update_zval(&fieldTypes, &columnName, &_47$$27, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_48$$27); - ZVAL_LONG(&_48$$27, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_48$$27, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "smallint")) { - ZEPHIR_INIT_NVAR(&_49$$28); - ZVAL_LONG(&_49$$28, 22); - zephir_array_update_zval(&fieldTypes, &columnName, &_49$$28, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_50$$28); - ZVAL_LONG(&_50$$28, 1); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_50$$28, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "text")) { - ZEPHIR_INIT_NVAR(&_51$$29); - ZVAL_LONG(&_51$$29, 6); - zephir_array_update_zval(&fieldTypes, &columnName, &_51$$29, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_52$$29); - ZVAL_LONG(&_52$$29, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_52$$29, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "time")) { - ZEPHIR_INIT_NVAR(&_53$$30); - ZVAL_LONG(&_53$$30, 20); - zephir_array_update_zval(&fieldTypes, &columnName, &_53$$30, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_54$$30); - ZVAL_LONG(&_54$$30, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_54$$30, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "timestamp")) { - ZEPHIR_INIT_NVAR(&_55$$31); - ZVAL_LONG(&_55$$31, 17); - zephir_array_update_zval(&fieldTypes, &columnName, &_55$$31, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_56$$31); - ZVAL_LONG(&_56$$31, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_56$$31, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "tinyblob")) { - ZEPHIR_INIT_NVAR(&_57$$32); - ZVAL_LONG(&_57$$32, 10); - zephir_array_update_zval(&fieldTypes, &columnName, &_57$$32, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_58$$32); - ZVAL_LONG(&_58$$32, 3); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_58$$32, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "tinyint")) { - ZEPHIR_INIT_NVAR(&_59$$33); - ZVAL_LONG(&_59$$33, 26); - zephir_array_update_zval(&fieldTypes, &columnName, &_59$$33, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_60$$33); - ZVAL_LONG(&_60$$33, 1); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_60$$33, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "tinytext")) { - ZEPHIR_INIT_NVAR(&_61$$34); - ZVAL_LONG(&_61$$34, 25); - zephir_array_update_zval(&fieldTypes, &columnName, &_61$$34, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_62$$34); - ZVAL_LONG(&_62$$34, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_62$$34, PH_COPY | PH_SEPARATE); - break; - } - ZEPHIR_INIT_NVAR(&_63$$35); - ZVAL_LONG(&_63$$35, 2); - zephir_array_update_zval(&fieldTypes, &columnName, &_63$$35, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_64$$35); - ZVAL_LONG(&_64$$35, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_64$$35, PH_COPY | PH_SEPARATE); - } while(0); + RETURN_THIS(); +} - ZEPHIR_INIT_NVAR(&_10$$6); - ZVAL_STRING(&_10$$6, "Primary"); - ZEPHIR_CALL_METHOD(&_65$$6, &propAnnotations, "has", NULL, 0, &_10$$6); - zephir_check_call_status(); - if (zephir_is_true(&_65$$6)) { - zephir_array_append(&primaryKeys, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 336); - } else { - zephir_array_append(&nonPrimaryKeys, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 338); - } - ZEPHIR_INIT_NVAR(&_10$$6); - ZVAL_STRING(&_10$$6, "Identity"); - ZEPHIR_CALL_METHOD(&_66$$6, &propAnnotations, "has", NULL, 0, &_10$$6); - zephir_check_call_status(); - if (zephir_is_true(&_66$$6)) { - ZEPHIR_CPY_WRT(&identityField, &columnName); - } - ZEPHIR_INIT_NVAR(&_10$$6); - ZVAL_STRING(&_10$$6, "skip_on_insert"); - ZEPHIR_CALL_METHOD(&_67$$6, &columnAnnotation, "getnamedparameter", NULL, 0, &_10$$6); - zephir_check_call_status(); - if (zephir_is_true(&_67$$6)) { - zephir_array_append(&skipOnInsert, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 353); - } - ZEPHIR_INIT_NVAR(&_10$$6); - ZVAL_STRING(&_10$$6, "skip_on_update"); - ZEPHIR_CALL_METHOD(&_68$$6, &columnAnnotation, "getnamedparameter", NULL, 0, &_10$$6); - zephir_check_call_status(); - if (zephir_is_true(&_68$$6)) { - zephir_array_append(&skipOnUpdate, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 360); - } - ZEPHIR_INIT_NVAR(&_10$$6); - ZVAL_STRING(&_10$$6, "allow_empty_string"); - ZEPHIR_CALL_METHOD(&_69$$6, &columnAnnotation, "getnamedparameter", NULL, 0, &_10$$6); - zephir_check_call_status(); - if (zephir_is_true(&_69$$6)) { - zephir_array_append(&emptyStringValues, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 367); - } - ZEPHIR_INIT_NVAR(&_10$$6); - ZVAL_STRING(&_10$$6, "nullable"); - ZEPHIR_CALL_METHOD(&_70$$6, &columnAnnotation, "getnamedparameter", NULL, 0, &_10$$6); - zephir_check_call_status(); - if (!(zephir_is_true(&_70$$6))) { - zephir_array_append(¬Null, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 374); - } - ZEPHIR_INIT_NVAR(&_10$$6); - ZVAL_STRING(&_10$$6, "default"); - ZEPHIR_CALL_METHOD(&defaultValue, &columnAnnotation, "getnamedparameter", NULL, 0, &_10$$6); - zephir_check_call_status(); - _71$$6 = Z_TYPE_P(&defaultValue) != IS_NULL; - if (!(_71$$6)) { - ZEPHIR_INIT_NVAR(&_10$$6); - ZVAL_STRING(&_10$$6, "nullable"); - ZEPHIR_CALL_METHOD(&_72$$6, &columnAnnotation, "getnamedparameter", NULL, 0, &_10$$6); - zephir_check_call_status(); - _71$$6 = zephir_is_true(&_72$$6); - } - if (_71$$6) { - zephir_array_update_zval(&defaultValues, &columnName, &defaultValue, PH_COPY | PH_SEPARATE); - } - zephir_array_append(&attributes, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 386); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &propertiesAnnotations, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_6, &propertiesAnnotations, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_6)) { - break; - } - ZEPHIR_CALL_METHOD(&property, &propertiesAnnotations, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&propAnnotations, &propertiesAnnotations, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_74$$44); - ZVAL_STRING(&_74$$44, "Column"); - ZEPHIR_CALL_METHOD(&_73$$44, &propAnnotations, "has", NULL, 0, &_74$$44); - zephir_check_call_status(); - if (!(zephir_is_true(&_73$$44))) { - continue; - } - ZEPHIR_INIT_NVAR(&_74$$44); - ZVAL_STRING(&_74$$44, "Column"); - ZEPHIR_CALL_METHOD(&columnAnnotation, &propAnnotations, "get", NULL, 0, &_74$$44); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_74$$44); - ZVAL_STRING(&_74$$44, "column"); - ZEPHIR_CALL_METHOD(&columnName, &columnAnnotation, "getnamedparameter", NULL, 0, &_74$$44); - zephir_check_call_status(); - if (ZEPHIR_IS_EMPTY(&columnName)) { - ZEPHIR_CPY_WRT(&columnName, &property); - } - ZEPHIR_INIT_NVAR(&_74$$44); - ZVAL_STRING(&_74$$44, "type"); - ZEPHIR_CALL_METHOD(&feature, &columnAnnotation, "getnamedparameter", NULL, 0, &_74$$44); - zephir_check_call_status(); - do { - if (ZEPHIR_IS_STRING(&feature, "biginteger")) { - ZEPHIR_INIT_NVAR(&_75$$47); - ZVAL_LONG(&_75$$47, 14); - zephir_array_update_zval(&fieldTypes, &columnName, &_75$$47, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_76$$47); - ZVAL_LONG(&_76$$47, 1); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_76$$47, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "bit")) { - ZEPHIR_INIT_NVAR(&_77$$48); - ZVAL_LONG(&_77$$48, 19); - zephir_array_update_zval(&fieldTypes, &columnName, &_77$$48, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_78$$48); - ZVAL_LONG(&_78$$48, 1); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_78$$48, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "blob")) { - ZEPHIR_INIT_NVAR(&_79$$49); - ZVAL_LONG(&_79$$49, 11); - zephir_array_update_zval(&fieldTypes, &columnName, &_79$$49, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_80$$49); - ZVAL_LONG(&_80$$49, 3); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_80$$49, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "boolean")) { - ZEPHIR_INIT_NVAR(&_81$$50); - ZVAL_LONG(&_81$$50, 8); - zephir_array_update_zval(&fieldTypes, &columnName, &_81$$50, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_82$$50); - ZVAL_LONG(&_82$$50, 5); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_82$$50, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "char")) { - ZEPHIR_INIT_NVAR(&_83$$51); - ZVAL_LONG(&_83$$51, 5); - zephir_array_update_zval(&fieldTypes, &columnName, &_83$$51, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_84$$51); - ZVAL_LONG(&_84$$51, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_84$$51, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "date")) { - ZEPHIR_INIT_NVAR(&_85$$52); - ZVAL_LONG(&_85$$52, 1); - zephir_array_update_zval(&fieldTypes, &columnName, &_85$$52, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_86$$52); - ZVAL_LONG(&_86$$52, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_86$$52, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "datetime")) { - ZEPHIR_INIT_NVAR(&_87$$53); - ZVAL_LONG(&_87$$53, 4); - zephir_array_update_zval(&fieldTypes, &columnName, &_87$$53, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_88$$53); - ZVAL_LONG(&_88$$53, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_88$$53, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "decimal")) { - ZEPHIR_INIT_NVAR(&_89$$54); - ZVAL_LONG(&_89$$54, 3); - zephir_array_update_zval(&fieldTypes, &columnName, &_89$$54, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_90$$54); - ZVAL_LONG(&_90$$54, 32); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_90$$54, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "double")) { - ZEPHIR_INIT_NVAR(&_91$$55); - ZVAL_LONG(&_91$$55, 9); - zephir_array_update_zval(&fieldTypes, &columnName, &_91$$55, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_92$$55); - ZVAL_LONG(&_92$$55, 32); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_92$$55, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "enum")) { - ZEPHIR_INIT_NVAR(&_93$$56); - ZVAL_LONG(&_93$$56, 18); - zephir_array_update_zval(&fieldTypes, &columnName, &_93$$56, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_94$$56); - ZVAL_LONG(&_94$$56, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_94$$56, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "float")) { - ZEPHIR_INIT_NVAR(&_95$$57); - ZVAL_LONG(&_95$$57, 7); - zephir_array_update_zval(&fieldTypes, &columnName, &_95$$57, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_96$$57); - ZVAL_LONG(&_96$$57, 32); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_96$$57, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "integer")) { - ZEPHIR_INIT_NVAR(&_97$$58); - ZVAL_LONG(&_97$$58, 0); - zephir_array_update_zval(&fieldTypes, &columnName, &_97$$58, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_98$$58); - ZVAL_LONG(&_98$$58, 1); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_98$$58, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "json")) { - ZEPHIR_INIT_NVAR(&_99$$59); - ZVAL_LONG(&_99$$59, 15); - zephir_array_update_zval(&fieldTypes, &columnName, &_99$$59, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_100$$59); - ZVAL_LONG(&_100$$59, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_100$$59, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "jsonb")) { - ZEPHIR_INIT_NVAR(&_101$$60); - ZVAL_LONG(&_101$$60, 16); - zephir_array_update_zval(&fieldTypes, &columnName, &_101$$60, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_102$$60); - ZVAL_LONG(&_102$$60, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_102$$60, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "longblob")) { - ZEPHIR_INIT_NVAR(&_103$$61); - ZVAL_LONG(&_103$$61, 13); - zephir_array_update_zval(&fieldTypes, &columnName, &_103$$61, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_104$$61); - ZVAL_LONG(&_104$$61, 3); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_104$$61, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "longtext")) { - ZEPHIR_INIT_NVAR(&_105$$62); - ZVAL_LONG(&_105$$62, 24); - zephir_array_update_zval(&fieldTypes, &columnName, &_105$$62, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_106$$62); - ZVAL_LONG(&_106$$62, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_106$$62, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "mediumblob")) { - ZEPHIR_INIT_NVAR(&_107$$63); - ZVAL_LONG(&_107$$63, 12); - zephir_array_update_zval(&fieldTypes, &columnName, &_107$$63, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_108$$63); - ZVAL_LONG(&_108$$63, 3); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_108$$63, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "mediumint")) { - ZEPHIR_INIT_NVAR(&_109$$64); - ZVAL_LONG(&_109$$64, 21); - zephir_array_update_zval(&fieldTypes, &columnName, &_109$$64, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_110$$64); - ZVAL_LONG(&_110$$64, 1); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_110$$64, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "mediumtext")) { - ZEPHIR_INIT_NVAR(&_111$$65); - ZVAL_LONG(&_111$$65, 23); - zephir_array_update_zval(&fieldTypes, &columnName, &_111$$65, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_112$$65); - ZVAL_LONG(&_112$$65, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_112$$65, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "smallint")) { - ZEPHIR_INIT_NVAR(&_113$$66); - ZVAL_LONG(&_113$$66, 22); - zephir_array_update_zval(&fieldTypes, &columnName, &_113$$66, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_114$$66); - ZVAL_LONG(&_114$$66, 1); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_114$$66, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "text")) { - ZEPHIR_INIT_NVAR(&_115$$67); - ZVAL_LONG(&_115$$67, 6); - zephir_array_update_zval(&fieldTypes, &columnName, &_115$$67, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_116$$67); - ZVAL_LONG(&_116$$67, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_116$$67, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "time")) { - ZEPHIR_INIT_NVAR(&_117$$68); - ZVAL_LONG(&_117$$68, 20); - zephir_array_update_zval(&fieldTypes, &columnName, &_117$$68, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_118$$68); - ZVAL_LONG(&_118$$68, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_118$$68, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "timestamp")) { - ZEPHIR_INIT_NVAR(&_119$$69); - ZVAL_LONG(&_119$$69, 17); - zephir_array_update_zval(&fieldTypes, &columnName, &_119$$69, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_120$$69); - ZVAL_LONG(&_120$$69, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_120$$69, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "tinyblob")) { - ZEPHIR_INIT_NVAR(&_121$$70); - ZVAL_LONG(&_121$$70, 10); - zephir_array_update_zval(&fieldTypes, &columnName, &_121$$70, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_122$$70); - ZVAL_LONG(&_122$$70, 3); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_122$$70, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "tinyint")) { - ZEPHIR_INIT_NVAR(&_123$$71); - ZVAL_LONG(&_123$$71, 26); - zephir_array_update_zval(&fieldTypes, &columnName, &_123$$71, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_124$$71); - ZVAL_LONG(&_124$$71, 1); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_124$$71, PH_COPY | PH_SEPARATE); - zephir_array_update_zval(&numericTyped, &columnName, &__$true, PH_COPY | PH_SEPARATE); - break; - } - if (ZEPHIR_IS_STRING(&feature, "tinytext")) { - ZEPHIR_INIT_NVAR(&_125$$72); - ZVAL_LONG(&_125$$72, 25); - zephir_array_update_zval(&fieldTypes, &columnName, &_125$$72, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_126$$72); - ZVAL_LONG(&_126$$72, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_126$$72, PH_COPY | PH_SEPARATE); - break; - } - ZEPHIR_INIT_NVAR(&_127$$73); - ZVAL_LONG(&_127$$73, 2); - zephir_array_update_zval(&fieldTypes, &columnName, &_127$$73, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_128$$73); - ZVAL_LONG(&_128$$73, 2); - zephir_array_update_zval(&fieldBindTypes, &columnName, &_128$$73, PH_COPY | PH_SEPARATE); - } while(0); +static PHP_METHOD(Phalcon_Http_Response, setCache) +{ + zval _1, _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *minutes_param = NULL, date, _0, _2, _4; + zend_long minutes, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); - ZEPHIR_INIT_NVAR(&_74$$44); - ZVAL_STRING(&_74$$44, "Primary"); - ZEPHIR_CALL_METHOD(&_129$$44, &propAnnotations, "has", NULL, 0, &_74$$44); - zephir_check_call_status(); - if (zephir_is_true(&_129$$44)) { - zephir_array_append(&primaryKeys, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 336); - } else { - zephir_array_append(&nonPrimaryKeys, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 338); - } - ZEPHIR_INIT_NVAR(&_74$$44); - ZVAL_STRING(&_74$$44, "Identity"); - ZEPHIR_CALL_METHOD(&_130$$44, &propAnnotations, "has", NULL, 0, &_74$$44); - zephir_check_call_status(); - if (zephir_is_true(&_130$$44)) { - ZEPHIR_CPY_WRT(&identityField, &columnName); - } - ZEPHIR_INIT_NVAR(&_74$$44); - ZVAL_STRING(&_74$$44, "skip_on_insert"); - ZEPHIR_CALL_METHOD(&_131$$44, &columnAnnotation, "getnamedparameter", NULL, 0, &_74$$44); - zephir_check_call_status(); - if (zephir_is_true(&_131$$44)) { - zephir_array_append(&skipOnInsert, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 353); - } - ZEPHIR_INIT_NVAR(&_74$$44); - ZVAL_STRING(&_74$$44, "skip_on_update"); - ZEPHIR_CALL_METHOD(&_132$$44, &columnAnnotation, "getnamedparameter", NULL, 0, &_74$$44); - zephir_check_call_status(); - if (zephir_is_true(&_132$$44)) { - zephir_array_append(&skipOnUpdate, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 360); - } - ZEPHIR_INIT_NVAR(&_74$$44); - ZVAL_STRING(&_74$$44, "allow_empty_string"); - ZEPHIR_CALL_METHOD(&_133$$44, &columnAnnotation, "getnamedparameter", NULL, 0, &_74$$44); - zephir_check_call_status(); - if (zephir_is_true(&_133$$44)) { - zephir_array_append(&emptyStringValues, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 367); - } - ZEPHIR_INIT_NVAR(&_74$$44); - ZVAL_STRING(&_74$$44, "nullable"); - ZEPHIR_CALL_METHOD(&_134$$44, &columnAnnotation, "getnamedparameter", NULL, 0, &_74$$44); - zephir_check_call_status(); - if (!(zephir_is_true(&_134$$44))) { - zephir_array_append(¬Null, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 374); - } - ZEPHIR_INIT_NVAR(&_74$$44); - ZVAL_STRING(&_74$$44, "default"); - ZEPHIR_CALL_METHOD(&defaultValue, &columnAnnotation, "getnamedparameter", NULL, 0, &_74$$44); - zephir_check_call_status(); - _135$$44 = Z_TYPE_P(&defaultValue) != IS_NULL; - if (!(_135$$44)) { - ZEPHIR_INIT_NVAR(&_74$$44); - ZVAL_STRING(&_74$$44, "nullable"); - ZEPHIR_CALL_METHOD(&_136$$44, &columnAnnotation, "getnamedparameter", NULL, 0, &_74$$44); - zephir_check_call_status(); - _135$$44 = zephir_is_true(&_136$$44); - } - if (_135$$44) { - zephir_array_update_zval(&defaultValues, &columnName, &defaultValue, PH_COPY | PH_SEPARATE); - } - zephir_array_append(&attributes, &columnName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Annotations.zep", 386); - ZEPHIR_CALL_METHOD(NULL, &propertiesAnnotations, "next", NULL, 0); - zephir_check_call_status(); - } + ZVAL_UNDEF(&date); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(minutes) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &minutes_param); + if (UNEXPECTED(Z_TYPE_P(minutes_param) != IS_LONG)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'minutes' must be of the type int")); + RETURN_MM_NULL(); } - ZEPHIR_INIT_NVAR(&propAnnotations); - ZEPHIR_INIT_NVAR(&property); - zephir_create_array(return_value, 12, 0); - zephir_array_update_long(return_value, 0, &attributes, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 1, &primaryKeys, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 2, &nonPrimaryKeys, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 3, ¬Null, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 4, &fieldTypes, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 5, &numericTyped, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 8, &identityField, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 9, &fieldBindTypes, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 10, &skipOnInsert, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 11, &skipOnUpdate, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 12, &defaultValues, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 13, &emptyStringValues, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - RETURN_MM(); -} + minutes = Z_LVAL_P(minutes_param); + ZEPHIR_INIT_VAR(&date); + object_init_ex(&date, php_date_get_date_ce()); + ZEPHIR_CALL_METHOD(NULL, &date, "__construct", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_LONG(&_0, minutes); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_CONCAT_SVS(&_1, "+", &_0, " minutes"); + ZEPHIR_CALL_METHOD(NULL, &date, "modify", NULL, 0, &_1); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setexpires", NULL, 0, &date); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + ZVAL_LONG(&_2, ((minutes * 60))); + ZEPHIR_INIT_VAR(&_3); + ZEPHIR_CONCAT_SV(&_3, "max-age=", &_2); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "Cache-Control"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setheader", NULL, 0, &_4, &_3); + zephir_check_call_status(); + RETURN_THIS(); +} +static PHP_METHOD(Phalcon_Http_Response, setContent) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *content_param = NULL; + zval content; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&content); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(content) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &content_param); + zephir_get_strval(&content, content_param); + zephir_update_property_zval(this_ptr, ZEND_STRL("content"), &content); + RETURN_THIS(); +} -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_MetaData_Strategy_Introspection) +static PHP_METHOD(Phalcon_Http_Response, setContentLength) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model\\MetaData\\Strategy, Introspection, phalcon, mvc_model_metadata_strategy_introspection, phalcon_mvc_model_metadata_strategy_introspection_method_entry, 0); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *contentLength_param = NULL, _0, _1; + zend_long contentLength, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); - zend_class_implements(phalcon_mvc_model_metadata_strategy_introspection_ce, 1, phalcon_mvc_model_metadata_strategy_strategyinterface_ce); - return SUCCESS; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(contentLength) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &contentLength_param); + contentLength = zephir_get_intval(contentLength_param); + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "Content-Length"); + ZVAL_LONG(&_1, contentLength); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setheader", NULL, 0, &_0, &_1); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Strategy_Introspection, getColumnMaps) +static PHP_METHOD(Phalcon_Http_Response, setContentType) { - zend_string *_3$$3; - zend_ulong _2$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, *container, container_sub, orderedColumnMap, userColumnMap, reversedColumnMap, name, userName, *_0$$3, _1$$3; + zval *contentType_param = NULL, *charset = NULL, charset_sub, __$null, _0$$3, _1; + zval contentType; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&container_sub); - ZVAL_UNDEF(&orderedColumnMap); - ZVAL_UNDEF(&userColumnMap); - ZVAL_UNDEF(&reversedColumnMap); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&userName); - ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&contentType); + ZVAL_UNDEF(&charset_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(contentType) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(charset) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &container); + zephir_fetch_params(1, 1, 1, &contentType_param, &charset); + zephir_get_strval(&contentType, contentType_param); + if (!charset) { + charset = &charset_sub; + charset = &__$null; + } - ZEPHIR_INIT_VAR(&orderedColumnMap); - ZVAL_NULL(&orderedColumnMap); - ZEPHIR_INIT_VAR(&reversedColumnMap); - ZVAL_NULL(&reversedColumnMap); - if ((zephir_method_exists_ex(model, ZEND_STRL("columnmap")) == SUCCESS)) { - ZEPHIR_CALL_METHOD(&userColumnMap, model, "columnmap", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&userColumnMap) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "columnMap() not returned an array", "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 44); - return; - } - ZEPHIR_INIT_NVAR(&reversedColumnMap); - array_init(&reversedColumnMap); - ZEPHIR_CPY_WRT(&orderedColumnMap, &userColumnMap); - zephir_is_iterable(&userColumnMap, 0, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 53); - if (Z_TYPE_P(&userColumnMap) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&userColumnMap), _2$$3, _3$$3, _0$$3) - { - ZEPHIR_INIT_NVAR(&name); - if (_3$$3 != NULL) { - ZVAL_STR_COPY(&name, _3$$3); - } else { - ZVAL_LONG(&name, _2$$3); - } - ZEPHIR_INIT_NVAR(&userName); - ZVAL_COPY(&userName, _0$$3); - zephir_array_update_zval(&reversedColumnMap, &userName, &name, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &userColumnMap, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1$$3, &userColumnMap, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&name, &userColumnMap, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&userName, &userColumnMap, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_update_zval(&reversedColumnMap, &userName, &name, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &userColumnMap, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&userName); - ZEPHIR_INIT_NVAR(&name); + if (Z_TYPE_P(charset) != IS_NULL) { + ZEPHIR_INIT_VAR(&_0$$3); + ZEPHIR_CONCAT_SV(&_0$$3, "; charset=", charset); + zephir_concat_self(&contentType, &_0$$3); } - zephir_create_array(return_value, 2, 0); - zephir_array_fast_append(return_value, &orderedColumnMap); - zephir_array_fast_append(return_value, &reversedColumnMap); - RETURN_MM(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "Content-Type"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setheader", NULL, 0, &_1, &contentType); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_MetaData_Strategy_Introspection, getMetaData) +static PHP_METHOD(Phalcon_Http_Response, setCookies) +{ + zval *cookies, cookies_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&cookies_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(cookies, phalcon_http_response_cookiesinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &cookies); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("cookies"), cookies); + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Http_Response, setDI) +{ + zval *container, container_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&container_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &container); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); +} + +static PHP_METHOD(Phalcon_Http_Response, setEtag) { - zend_bool _17$$9, _26$$17; - zval completeTable; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *model, model_sub, *container, container_sub, __$true, schema, table, readConnection, columns, attributes, primaryKeys, nonPrimaryKeys, numericTyped, notNull, fieldTypes, automaticDefault, identityField, fieldBindTypes, defaultValues, column, fieldName, defaultValue, emptyStringValues, _0, *_9, _10, _1$$4, _2$$3, _3$$3, _4$$3, _5$$7, _6$$6, _7$$6, _8$$6, _11$$9, _12$$9, _13$$9, _14$$9, _15$$9, _16$$9, _18$$9, _19$$15, _20$$17, _21$$17, _22$$17, _23$$17, _24$$17, _25$$17, _27$$17, _28$$23; + zval *etag_param = NULL, _0; + zval etag; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&container_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&schema); - ZVAL_UNDEF(&table); - ZVAL_UNDEF(&readConnection); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&primaryKeys); - ZVAL_UNDEF(&nonPrimaryKeys); - ZVAL_UNDEF(&numericTyped); - ZVAL_UNDEF(¬Null); - ZVAL_UNDEF(&fieldTypes); - ZVAL_UNDEF(&automaticDefault); - ZVAL_UNDEF(&identityField); - ZVAL_UNDEF(&fieldBindTypes); - ZVAL_UNDEF(&defaultValues); - ZVAL_UNDEF(&column); - ZVAL_UNDEF(&fieldName); - ZVAL_UNDEF(&defaultValue); - ZVAL_UNDEF(&emptyStringValues); + ZVAL_UNDEF(&etag); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$7); - ZVAL_UNDEF(&_6$$6); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_8$$6); - ZVAL_UNDEF(&_11$$9); - ZVAL_UNDEF(&_12$$9); - ZVAL_UNDEF(&_13$$9); - ZVAL_UNDEF(&_14$$9); - ZVAL_UNDEF(&_15$$9); - ZVAL_UNDEF(&_16$$9); - ZVAL_UNDEF(&_18$$9); - ZVAL_UNDEF(&_19$$15); - ZVAL_UNDEF(&_20$$17); - ZVAL_UNDEF(&_21$$17); - ZVAL_UNDEF(&_22$$17); - ZVAL_UNDEF(&_23$$17); - ZVAL_UNDEF(&_24$$17); - ZVAL_UNDEF(&_25$$17); - ZVAL_UNDEF(&_27$$17); - ZVAL_UNDEF(&_28$$23); - ZVAL_UNDEF(&completeTable); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(model, phalcon_mvc_modelinterface_ce) - Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(etag) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &model, &container); + zephir_fetch_params(1, 1, 0, &etag_param); + zephir_get_strval(&etag, etag_param); - ZEPHIR_CALL_METHOD(&schema, model, "getschema", NULL, 0); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "Etag"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setheader", NULL, 0, &_0, &etag); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&table, model, "getsource", NULL, 0); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Http_Response, setExpires) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *datetime, datetime_sub, date, _0, _1, _2, _3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&datetime_sub); + ZVAL_UNDEF(&date); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(datetime, php_date_get_date_ce()) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &datetime); + + + ZEPHIR_INIT_VAR(&date); + if (zephir_clone(&date, datetime) == FAILURE) { + RETURN_MM(); + } + ZEPHIR_INIT_VAR(&_0); + object_init_ex(&_0, php_date_get_timezone_ce()); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "UTC"); + ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 0, &_1); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&readConnection, model, "getreadconnection", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &date, "settimezone", NULL, 0, &_0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, &readConnection, "tableexists", NULL, 0, &table, &schema); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "D, d M Y H:i:s"); + ZEPHIR_CALL_METHOD(&_2, &date, "format", NULL, 0, &_1); zephir_check_call_status(); - if (UNEXPECTED(!zephir_is_true(&_0))) { - if (zephir_is_true(&schema)) { - ZEPHIR_INIT_VAR(&_1$$4); - ZEPHIR_CONCAT_VSV(&_1$$4, &schema, "'.'", &table); - zephir_get_strval(&completeTable, &_1$$4); - } else { - zephir_get_strval(&completeTable, &table); - } - ZEPHIR_INIT_VAR(&_2$$3); - object_init_ex(&_2$$3, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_3$$3); - zephir_get_class(&_3$$3, model, 0); - ZEPHIR_INIT_VAR(&_4$$3); - ZEPHIR_CONCAT_SVSV(&_4$$3, "Table '", &completeTable, "' doesn't exist in database when dumping meta-data for ", &_3$$3); - ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", NULL, 8, &_4$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_2$$3, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 92); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CALL_METHOD(&columns, &readConnection, "describecolumns", NULL, 0, &table, &schema); + ZEPHIR_INIT_VAR(&_3); + ZEPHIR_CONCAT_VS(&_3, &_2, " GMT"); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "Expires"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setheader", NULL, 0, &_1, &_3); zephir_check_call_status(); - if (UNEXPECTED(!(zephir_fast_count_int(&columns)))) { - if (zephir_is_true(&schema)) { - ZEPHIR_INIT_VAR(&_5$$7); - ZEPHIR_CONCAT_VSV(&_5$$7, &schema, "'.'", &table); - zephir_get_strval(&completeTable, &_5$$7); - } else { - zephir_get_strval(&completeTable, &table); - } - ZEPHIR_INIT_VAR(&_6$$6); - object_init_ex(&_6$$6, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_7$$6); - zephir_get_class(&_7$$6, model, 0); - ZEPHIR_INIT_VAR(&_8$$6); - ZEPHIR_CONCAT_SVSV(&_8$$6, "Cannot obtain table columns for the mapped source '", &completeTable, "' used in model ", &_7$$6); - ZEPHIR_CALL_METHOD(NULL, &_6$$6, "__construct", NULL, 8, &_8$$6); - zephir_check_call_status(); - zephir_throw_exception_debug(&_6$$6, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 112); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_VAR(&attributes); - array_init(&attributes); - ZEPHIR_INIT_VAR(&primaryKeys); - array_init(&primaryKeys); - ZEPHIR_INIT_VAR(&nonPrimaryKeys); - array_init(&nonPrimaryKeys); - ZEPHIR_INIT_VAR(&numericTyped); - array_init(&numericTyped); - ZEPHIR_INIT_VAR(¬Null); - array_init(¬Null); - ZEPHIR_INIT_VAR(&fieldTypes); - array_init(&fieldTypes); - ZEPHIR_INIT_VAR(&fieldBindTypes); - array_init(&fieldBindTypes); - ZEPHIR_INIT_VAR(&automaticDefault); - array_init(&automaticDefault); - ZEPHIR_INIT_VAR(&identityField); - ZVAL_BOOL(&identityField, 0); - ZEPHIR_INIT_VAR(&defaultValues); - array_init(&defaultValues); - ZEPHIR_INIT_VAR(&emptyStringValues); - array_init(&emptyStringValues); - zephir_is_iterable(&columns, 0, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 189); - if (Z_TYPE_P(&columns) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&columns), _9) - { - ZEPHIR_INIT_NVAR(&column); - ZVAL_COPY(&column, _9); - ZEPHIR_CALL_METHOD(&fieldName, &column, "getname", NULL, 0); - zephir_check_call_status(); - zephir_array_append(&attributes, &fieldName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 132); - ZEPHIR_CALL_METHOD(&_11$$9, &column, "isprimary", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_11$$9)) { - zephir_array_append(&primaryKeys, &fieldName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 138); - } else { - zephir_array_append(&nonPrimaryKeys, &fieldName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 140); - } - ZEPHIR_CALL_METHOD(&_12$$9, &column, "isnumeric", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_12$$9)) { - zephir_array_update_zval(&numericTyped, &fieldName, &__$true, PH_COPY | PH_SEPARATE); - } - ZEPHIR_CALL_METHOD(&_13$$9, &column, "isnotnull", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_13$$9)) { - zephir_array_append(¬Null, &fieldName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 154); - } - ZEPHIR_CALL_METHOD(&_14$$9, &column, "isautoincrement", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_14$$9)) { - ZEPHIR_CPY_WRT(&identityField, &fieldName); - } - ZEPHIR_CALL_METHOD(&_15$$9, &column, "gettype", NULL, 0); - zephir_check_call_status(); - zephir_array_update_zval(&fieldTypes, &fieldName, &_15$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_16$$9, &column, "getbindtype", NULL, 0); - zephir_check_call_status(); - zephir_array_update_zval(&fieldBindTypes, &fieldName, &_16$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&defaultValue, &column, "getdefault", NULL, 0); - zephir_check_call_status(); - _17$$9 = Z_TYPE_P(&defaultValue) != IS_NULL; - if (!(_17$$9)) { - ZEPHIR_CALL_METHOD(&_18$$9, &column, "isnotnull", NULL, 0); - zephir_check_call_status(); - _17$$9 = !zephir_is_true(&_18$$9); - } - if (_17$$9) { - ZEPHIR_CALL_METHOD(&_19$$15, &column, "isautoincrement", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_19$$15))) { - zephir_array_update_zval(&defaultValues, &fieldName, &defaultValue, PH_COPY | PH_SEPARATE); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &columns, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_10, &columns, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_10)) { - break; - } - ZEPHIR_CALL_METHOD(&column, &columns, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&fieldName, &column, "getname", NULL, 0); - zephir_check_call_status(); - zephir_array_append(&attributes, &fieldName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 132); - ZEPHIR_CALL_METHOD(&_20$$17, &column, "isprimary", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_20$$17)) { - zephir_array_append(&primaryKeys, &fieldName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 138); - } else { - zephir_array_append(&nonPrimaryKeys, &fieldName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 140); - } - ZEPHIR_CALL_METHOD(&_21$$17, &column, "isnumeric", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_21$$17)) { - zephir_array_update_zval(&numericTyped, &fieldName, &__$true, PH_COPY | PH_SEPARATE); - } - ZEPHIR_CALL_METHOD(&_22$$17, &column, "isnotnull", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_22$$17)) { - zephir_array_append(¬Null, &fieldName, PH_SEPARATE, "phalcon/Mvc/Model/MetaData/Strategy/Introspection.zep", 154); - } - ZEPHIR_CALL_METHOD(&_23$$17, &column, "isautoincrement", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_23$$17)) { - ZEPHIR_CPY_WRT(&identityField, &fieldName); - } - ZEPHIR_CALL_METHOD(&_24$$17, &column, "gettype", NULL, 0); - zephir_check_call_status(); - zephir_array_update_zval(&fieldTypes, &fieldName, &_24$$17, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_25$$17, &column, "getbindtype", NULL, 0); - zephir_check_call_status(); - zephir_array_update_zval(&fieldBindTypes, &fieldName, &_25$$17, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&defaultValue, &column, "getdefault", NULL, 0); - zephir_check_call_status(); - _26$$17 = Z_TYPE_P(&defaultValue) != IS_NULL; - if (!(_26$$17)) { - ZEPHIR_CALL_METHOD(&_27$$17, &column, "isnotnull", NULL, 0); - zephir_check_call_status(); - _26$$17 = !zephir_is_true(&_27$$17); - } - if (_26$$17) { - ZEPHIR_CALL_METHOD(&_28$$23, &column, "isautoincrement", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_28$$23))) { - zephir_array_update_zval(&defaultValues, &fieldName, &defaultValue, PH_COPY | PH_SEPARATE); - } - } - ZEPHIR_CALL_METHOD(NULL, &columns, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&column); - zephir_create_array(return_value, 12, 0); - zephir_array_update_long(return_value, 0, &attributes, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 1, &primaryKeys, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 2, &nonPrimaryKeys, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 3, ¬Null, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 4, &fieldTypes, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 5, &numericTyped, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 8, &identityField, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 9, &fieldBindTypes, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 10, &automaticDefault, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 11, &automaticDefault, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 12, &defaultValues, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_long(return_value, 13, &emptyStringValues, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - RETURN_MM(); + RETURN_THIS(); } - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_MetaData_Strategy_StrategyInterface) +static PHP_METHOD(Phalcon_Http_Response, setEventsManager) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model\\MetaData\\Strategy, StrategyInterface, phalcon, mvc_model_metadata_strategy_strategyinterface, phalcon_mvc_model_metadata_strategy_strategyinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaData_Strategy_StrategyInterface, getColumnMaps); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_MetaData_Strategy_StrategyInterface, getMetaData); - - + zval *eventsManager, eventsManager_sub; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&eventsManager_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) + ZEND_PARSE_PARAMETERS_END(); #endif + zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Query_Builder) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model\\Query, Builder, phalcon, mvc_model_query_builder, phalcon_mvc_model_query_builder_method_entry, 0); - - zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("bindParams"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("bindTypes"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("columns"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("conditions"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("container"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("distinct"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_model_query_builder_ce, SL("forUpdate"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("group"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("having"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_mvc_model_query_builder_ce, SL("hiddenParamNumber"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("joins"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("limit"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("models"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_mvc_model_query_builder_ce, SL("offset"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_builder_ce, SL("order"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_model_query_builder_ce, SL("sharedLock"), 0, ZEND_ACC_PROTECTED); - phalcon_mvc_model_query_builder_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_Query_Builder; - - zend_class_implements(phalcon_mvc_model_query_builder_ce, 1, phalcon_mvc_model_query_builderinterface_ce); - zend_class_implements(phalcon_mvc_model_query_builder_ce, 1, phalcon_di_injectionawareinterface_ce); - return SUCCESS; + zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, __construct) +static PHP_METHOD(Phalcon_Http_Response, setFileToSend) { - zend_bool _7$$38; - zval mergedConditions, mergedParams, mergedTypes; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *params = NULL, params_sub, *container = NULL, container_sub, __$null, conditions, columns, groupClause, havingClause, limitClause, forUpdate, sharedLock, orderClause, offsetClause, joinsClause, singleConditionArray, limit, offset, fromClause, singleCondition, singleParams, singleTypes, distinct, bind, bindTypes, *_0$$7, _1$$7, _6$$7, _2$$11, _3$$12, _4$$16, _5$$17; + zephir_fcall_cache_entry *_0 = NULL; + zval *filePath_param = NULL, *attachmentName = NULL, attachmentName_sub, *attachment = NULL, attachment_sub, __$true, __$null, basePath, basePathEncoding, _1$$6, _2$$5, _3$$7, _4$$7, _5$$7, _6$$8, _7$$8, _8$$8; + zval filePath; zval *this_ptr = getThis(); - ZVAL_UNDEF(¶ms_sub); - ZVAL_UNDEF(&container_sub); + ZVAL_UNDEF(&filePath); + ZVAL_UNDEF(&attachmentName_sub); + ZVAL_UNDEF(&attachment_sub); + ZVAL_BOOL(&__$true, 1); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&conditions); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&groupClause); - ZVAL_UNDEF(&havingClause); - ZVAL_UNDEF(&limitClause); - ZVAL_UNDEF(&forUpdate); - ZVAL_UNDEF(&sharedLock); - ZVAL_UNDEF(&orderClause); - ZVAL_UNDEF(&offsetClause); - ZVAL_UNDEF(&joinsClause); - ZVAL_UNDEF(&singleConditionArray); - ZVAL_UNDEF(&limit); - ZVAL_UNDEF(&offset); - ZVAL_UNDEF(&fromClause); - ZVAL_UNDEF(&singleCondition); - ZVAL_UNDEF(&singleParams); - ZVAL_UNDEF(&singleTypes); - ZVAL_UNDEF(&distinct); - ZVAL_UNDEF(&bind); - ZVAL_UNDEF(&bindTypes); - ZVAL_UNDEF(&_1$$7); - ZVAL_UNDEF(&_6$$7); - ZVAL_UNDEF(&_2$$11); - ZVAL_UNDEF(&_3$$12); - ZVAL_UNDEF(&_4$$16); - ZVAL_UNDEF(&_5$$17); - ZVAL_UNDEF(&mergedConditions); - ZVAL_UNDEF(&mergedParams); - ZVAL_UNDEF(&mergedTypes); + ZVAL_UNDEF(&basePath); + ZVAL_UNDEF(&basePathEncoding); + ZVAL_UNDEF(&_1$$6); + ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&_3$$7); + ZVAL_UNDEF(&_4$$7); + ZVAL_UNDEF(&_5$$7); + ZVAL_UNDEF(&_6$$8); + ZVAL_UNDEF(&_7$$8); + ZVAL_UNDEF(&_8$$8); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(filePath) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(params) - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(container, phalcon_di_diinterface_ce) + Z_PARAM_ZVAL_OR_NULL(attachmentName) + Z_PARAM_ZVAL(attachment) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, ¶ms, &container); - if (!params) { - params = ¶ms_sub; - params = &__$null; + zephir_fetch_params(1, 1, 2, &filePath_param, &attachmentName, &attachment); + zephir_get_strval(&filePath, filePath_param); + if (!attachmentName) { + attachmentName = &attachmentName_sub; + attachmentName = &__$null; } - if (!container) { - container = &container_sub; - container = &__$null; + if (!attachment) { + attachment = &attachment_sub; + attachment = &__$true; } - if (Z_TYPE_P(params) == IS_ARRAY) { - ZEPHIR_OBS_VAR(&conditions); - if (zephir_array_isset_long_fetch(&conditions, params, 0, 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("conditions"), &conditions); - } else { - ZEPHIR_OBS_NVAR(&conditions); - if (zephir_array_isset_string_fetch(&conditions, params, SL("conditions"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("conditions"), &conditions); - } - } - if (Z_TYPE_P(&conditions) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&mergedConditions); - array_init(&mergedConditions); - ZEPHIR_INIT_VAR(&mergedParams); - array_init(&mergedParams); - ZEPHIR_INIT_VAR(&mergedTypes); - array_init(&mergedTypes); - zephir_is_iterable(&conditions, 0, "phalcon/Mvc/Model/Query/Builder.zep", 190); - if (Z_TYPE_P(&conditions) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&conditions), _0$$7) - { - ZEPHIR_INIT_NVAR(&singleConditionArray); - ZVAL_COPY(&singleConditionArray, _0$$7); - if (Z_TYPE_P(&singleConditionArray) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&singleCondition); - zephir_array_isset_long_fetch(&singleCondition, &singleConditionArray, 0, 0); - ZEPHIR_OBS_NVAR(&singleParams); - zephir_array_isset_long_fetch(&singleParams, &singleConditionArray, 1, 0); - ZEPHIR_OBS_NVAR(&singleTypes); - zephir_array_isset_long_fetch(&singleTypes, &singleConditionArray, 2, 0); - if (Z_TYPE_P(&singleCondition) == IS_STRING) { - zephir_array_append(&mergedConditions, &singleCondition, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 177); - } - if (Z_TYPE_P(&singleParams) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&_2$$11); - zephir_add_function(&_2$$11, &mergedParams, &singleParams); - ZEPHIR_CPY_WRT(&mergedParams, &_2$$11); - } - if (Z_TYPE_P(&singleTypes) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&_3$$12); - zephir_add_function(&_3$$12, &mergedTypes, &singleTypes); - ZEPHIR_CPY_WRT(&mergedTypes, &_3$$12); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &conditions, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1$$7, &conditions, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1$$7)) { - break; - } - ZEPHIR_CALL_METHOD(&singleConditionArray, &conditions, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&singleConditionArray) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&singleCondition); - zephir_array_isset_long_fetch(&singleCondition, &singleConditionArray, 0, 0); - ZEPHIR_OBS_NVAR(&singleParams); - zephir_array_isset_long_fetch(&singleParams, &singleConditionArray, 1, 0); - ZEPHIR_OBS_NVAR(&singleTypes); - zephir_array_isset_long_fetch(&singleTypes, &singleConditionArray, 2, 0); - if (Z_TYPE_P(&singleCondition) == IS_STRING) { - zephir_array_append(&mergedConditions, &singleCondition, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 177); - } - if (Z_TYPE_P(&singleParams) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&_4$$16); - zephir_add_function(&_4$$16, &mergedParams, &singleParams); - ZEPHIR_CPY_WRT(&mergedParams, &_4$$16); - } - if (Z_TYPE_P(&singleTypes) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&_5$$17); - zephir_add_function(&_5$$17, &mergedTypes, &singleTypes); - ZEPHIR_CPY_WRT(&mergedTypes, &_5$$17); - } - } - ZEPHIR_CALL_METHOD(NULL, &conditions, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&singleConditionArray); - ZEPHIR_INIT_VAR(&_6$$7); - zephir_fast_join_str(&_6$$7, SL(" AND "), &mergedConditions); - zephir_update_property_zval(this_ptr, ZEND_STRL("conditions"), &_6$$7); - zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &mergedParams); - zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &mergedTypes); - } - ZEPHIR_OBS_VAR(&bind); - if (zephir_array_isset_string_fetch(&bind, params, SL("bind"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &bind); - } - ZEPHIR_OBS_VAR(&bindTypes); - if (zephir_array_isset_string_fetch(&bindTypes, params, SL("bindTypes"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &bindTypes); - } - ZEPHIR_OBS_VAR(&distinct); - if (zephir_array_isset_string_fetch(&distinct, params, SL("distinct"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("distinct"), &distinct); - } - ZEPHIR_OBS_VAR(&fromClause); - if (zephir_array_isset_string_fetch(&fromClause, params, SL("models"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("models"), &fromClause); - } - ZEPHIR_OBS_VAR(&columns); - if (zephir_array_isset_string_fetch(&columns, params, SL("columns"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("columns"), &columns); - } - ZEPHIR_OBS_VAR(&joinsClause); - if (zephir_array_isset_string_fetch(&joinsClause, params, SL("joins"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("joins"), &joinsClause); - } - ZEPHIR_OBS_VAR(&groupClause); - if (zephir_array_isset_string_fetch(&groupClause, params, SL("group"), 0)) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "groupby", NULL, 0, &groupClause); - zephir_check_call_status(); - } - ZEPHIR_OBS_VAR(&havingClause); - if (zephir_array_isset_string_fetch(&havingClause, params, SL("having"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("having"), &havingClause); - } - ZEPHIR_OBS_VAR(&orderClause); - if (zephir_array_isset_string_fetch(&orderClause, params, SL("order"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("order"), &orderClause); - } - ZEPHIR_OBS_VAR(&limitClause); - if (zephir_array_isset_string_fetch(&limitClause, params, SL("limit"), 0)) { - if (Z_TYPE_P(&limitClause) == IS_ARRAY) { - ZEPHIR_OBS_VAR(&limit); - if (zephir_array_isset_long_fetch(&limit, &limitClause, 0, 0)) { - if (Z_TYPE_P(&limit) == IS_LONG) { - zephir_update_property_zval(this_ptr, ZEND_STRL("limit"), &limit); - } - ZEPHIR_OBS_VAR(&offset); - if (zephir_array_isset_long_fetch(&offset, &limitClause, 1, 0)) { - if (Z_TYPE_P(&offset) == IS_LONG) { - zephir_update_property_zval(this_ptr, ZEND_STRL("offset"), &offset); - } - } - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("limit"), &limitClause); - } - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("limit"), &limitClause); - } - } - if (zephir_array_isset_string_fetch(&offsetClause, params, SL("offset"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("offset"), &offsetClause); - } - if (zephir_array_isset_string_fetch(&forUpdate, params, SL("for_update"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("forUpdate"), &forUpdate); - } - if (zephir_array_isset_string_fetch(&sharedLock, params, SL("shared_lock"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("sharedLock"), &sharedLock); - } + ZEPHIR_INIT_VAR(&basePathEncoding); + ZVAL_STRING(&basePathEncoding, "ASCII"); + if (Z_TYPE_P(attachmentName) != IS_STRING) { + ZEPHIR_CALL_CE_STATIC(&basePath, phalcon_helper_fs_ce, "basename", &_0, 359, &filePath); + zephir_check_call_status(); } else { - _7$$38 = Z_TYPE_P(params) == IS_STRING; - if (_7$$38) { - _7$$38 = !ZEPHIR_IS_STRING_IDENTICAL(params, ""); + ZEPHIR_CPY_WRT(&basePath, attachmentName); + } + if (zephir_is_true(attachment)) { + if ((zephir_function_exists_ex(ZEND_STRL("mb_detect_encoding")) == SUCCESS)) { + ZEPHIR_CALL_FUNCTION(&_1$$6, "mb_detect_order", NULL, 360); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&basePathEncoding, "mb_detect_encoding", NULL, 226, &basePath, &_1$$6, &__$true); + zephir_check_call_status(); } - if (_7$$38) { - zephir_update_property_zval(this_ptr, ZEND_STRL("conditions"), params); + ZEPHIR_INIT_VAR(&_2$$5); + ZVAL_STRING(&_2$$5, "Content-Description: File Transfer"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setrawheader", NULL, 0, &_2$$5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_2$$5); + ZVAL_STRING(&_2$$5, "Content-Type: application/octet-stream"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setrawheader", NULL, 0, &_2$$5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_2$$5); + ZVAL_STRING(&_2$$5, "Content-Transfer-Encoding: binary"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setrawheader", NULL, 0, &_2$$5); + zephir_check_call_status(); + if (!ZEPHIR_IS_STRING(&basePathEncoding, "ASCII")) { + ZEPHIR_CALL_FUNCTION(&_3$$7, "rawurlencode", NULL, 229, &basePath); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&basePath, &_3$$7); + ZEPHIR_INIT_VAR(&_4$$7); + zephir_fast_strtolower(&_4$$7, &basePathEncoding); + ZEPHIR_INIT_VAR(&_5$$7); + ZEPHIR_CONCAT_SVSVSV(&_5$$7, "Content-Disposition: attachment; filename=", &basePath, "; filename*=", &_4$$7, "''", &basePath); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setrawheader", NULL, 0, &_5$$7); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_VAR(&_6$$8); + ZVAL_STRING(&_6$$8, "\15\17\\\""); + ZEPHIR_CALL_FUNCTION(&_7$$8, "addcslashes", NULL, 214, &basePath, &_6$$8); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&basePath, &_7$$8); + ZEPHIR_INIT_VAR(&_8$$8); + ZEPHIR_CONCAT_SVS(&_8$$8, "Content-Disposition: attachment; filename=\"", &basePath, "\""); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setrawheader", NULL, 0, &_8$$8); + zephir_check_call_status(); } } - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); - ZEPHIR_MM_RESTORE(); + zephir_update_property_zval(this_ptr, ZEND_STRL("file"), &filePath); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, addFrom) +static PHP_METHOD(Phalcon_Http_Response, setHeader) { - zend_bool _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *model_param = NULL, *alias_param = NULL, models, currentModel, _0, _1$$4; - zval model, alias; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, *value, value_sub, headers; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&alias); - ZVAL_UNDEF(&models); - ZVAL_UNDEF(¤tModel); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&headers); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(model) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(alias) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(name) + Z_PARAM_ZVAL(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &model_param, &alias_param); - zephir_get_strval(&model, model_param); - if (!alias_param) { - ZEPHIR_INIT_VAR(&alias); - } else { - zephir_get_strval(&alias, alias_param); - } + zephir_fetch_params(1, 2, 0, &name_param, &value); + zephir_get_strval(&name, name_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("models"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&models, &_0); - if (Z_TYPE_P(&models) != IS_ARRAY) { - if (Z_TYPE_P(&models) != IS_NULL) { - ZEPHIR_CPY_WRT(¤tModel, &models); - ZEPHIR_INIT_VAR(&_1$$4); - zephir_create_array(&_1$$4, 1, 0); - zephir_array_fast_append(&_1$$4, ¤tModel); - ZEPHIR_CPY_WRT(&models, &_1$$4); - } else { - ZEPHIR_INIT_NVAR(&models); - array_init(&models); - } - } - _2 = 1 == 1; - if (_2) { - _2 = !ZEPHIR_IS_NULL(&alias); - } - if (_2) { - zephir_array_update_zval(&models, &alias, &model, PH_COPY | PH_SEPARATE); - } else { - zephir_array_append(&models, &model, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 345); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("models"), &models); + ZEPHIR_CALL_METHOD(&headers, this_ptr, "getheaders", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &headers, "set", NULL, 0, &name, value); + zephir_check_call_status(); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, andHaving) +static PHP_METHOD(Phalcon_Http_Response, setHeaders) { + zend_string *_3; + zend_ulong _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_4 = NULL, *_5 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval bindParams, bindTypes; - zval *conditions_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, currentConditions, _0$$3; - zval conditions; + zval *headers, headers_sub, data, existing, name, value, *_0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&conditions); - ZVAL_UNDEF(¤tConditions); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&headers_sub); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&existing); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(conditions) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(bindParams) - Z_PARAM_ARRAY(bindTypes) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(headers, phalcon_http_response_headersinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &conditions_param, &bindParams_param, &bindTypes_param); - if (UNEXPECTED(Z_TYPE_P(conditions_param) != IS_STRING && Z_TYPE_P(conditions_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'conditions' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(conditions_param) == IS_STRING)) { - zephir_get_strval(&conditions, conditions_param); - } else { - ZEPHIR_INIT_VAR(&conditions); - } - if (!bindParams_param) { - ZEPHIR_INIT_VAR(&bindParams); - array_init(&bindParams); - } else { - zephir_get_arrval(&bindParams, bindParams_param); - } - if (!bindTypes_param) { - ZEPHIR_INIT_VAR(&bindTypes); - array_init(&bindTypes); - } else { - zephir_get_arrval(&bindTypes, bindTypes_param); - } + zephir_fetch_params(1, 1, 0, &headers); - ZEPHIR_OBS_VAR(¤tConditions); - zephir_read_property(¤tConditions, this_ptr, ZEND_STRL("having"), PH_NOISY_CC); - if (zephir_is_true(¤tConditions)) { - ZEPHIR_INIT_VAR(&_0$$3); - ZEPHIR_CONCAT_SVSVS(&_0$$3, "(", ¤tConditions, ") AND (", &conditions, ")"); - zephir_get_strval(&conditions, &_0$$3); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "having", NULL, 0, &conditions, &bindParams, &bindTypes); + ZEPHIR_CALL_METHOD(&data, headers, "toarray", NULL, 0); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_CALL_METHOD(&existing, this_ptr, "getheaders", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&data, 0, "phalcon/Http/Response.zep", 649); + if (Z_TYPE_P(&data) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _2, _3, _0) + { + ZEPHIR_INIT_NVAR(&name); + if (_3 != NULL) { + ZVAL_STR_COPY(&name, _3); + } else { + ZVAL_LONG(&name, _2); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0); + ZEPHIR_CALL_METHOD(NULL, &existing, "set", &_4, 0, &name, &value); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &data, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &data, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&name, &data, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &data, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &existing, "set", &_5, 0, &name, &value); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &data, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&name); + zephir_update_property_zval(this_ptr, ZEND_STRL("headers"), &existing); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, andWhere) +static PHP_METHOD(Phalcon_Http_Response, setJsonContent) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval bindParams, bindTypes; - zval *conditions_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, currentConditions, _0$$3; - zval conditions; + zephir_fcall_cache_entry *_2 = NULL; + zend_long jsonOptions, depth, ZEPHIR_LAST_CALL_STATUS; + zval *content, content_sub, *jsonOptions_param = NULL, *depth_param = NULL, _0, _1, _3, _4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&conditions); - ZVAL_UNDEF(¤tConditions); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&content_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(conditions) + Z_PARAM_ZVAL(content) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(bindParams) - Z_PARAM_ARRAY(bindTypes) + Z_PARAM_LONG(jsonOptions) + Z_PARAM_LONG(depth) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &conditions_param, &bindParams_param, &bindTypes_param); - if (UNEXPECTED(Z_TYPE_P(conditions_param) != IS_STRING && Z_TYPE_P(conditions_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'conditions' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(conditions_param) == IS_STRING)) { - zephir_get_strval(&conditions, conditions_param); - } else { - ZEPHIR_INIT_VAR(&conditions); - } - if (!bindParams_param) { - ZEPHIR_INIT_VAR(&bindParams); - array_init(&bindParams); + zephir_fetch_params(1, 1, 2, &content, &jsonOptions_param, &depth_param); + if (!jsonOptions_param) { + jsonOptions = 0; } else { - zephir_get_arrval(&bindParams, bindParams_param); + jsonOptions = zephir_get_intval(jsonOptions_param); } - if (!bindTypes_param) { - ZEPHIR_INIT_VAR(&bindTypes); - array_init(&bindTypes); + if (!depth_param) { + depth = 512; } else { - zephir_get_arrval(&bindTypes, bindTypes_param); + depth = zephir_get_intval(depth_param); } - ZEPHIR_OBS_VAR(¤tConditions); - zephir_read_property(¤tConditions, this_ptr, ZEND_STRL("conditions"), PH_NOISY_CC); - if (zephir_is_true(¤tConditions)) { - ZEPHIR_INIT_VAR(&_0$$3); - ZEPHIR_CONCAT_SVSVS(&_0$$3, "(", ¤tConditions, ") AND (", &conditions, ")"); - zephir_get_strval(&conditions, &_0$$3); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "where", NULL, 0, &conditions, &bindParams, &bindTypes); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "application/json"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setcontenttype", NULL, 0, &_0); zephir_check_call_status(); - RETURN_MM(); + ZVAL_LONG(&_3, jsonOptions); + ZVAL_LONG(&_4, depth); + ZEPHIR_CALL_CE_STATIC(&_1, phalcon_helper_json_ce, "encode", &_2, 14, content, &_3, &_4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setcontent", NULL, 0, &_1); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, autoescape) +static PHP_METHOD(Phalcon_Http_Response, setLastModified) { - zend_bool _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *identifier_param = NULL; - zval identifier; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *datetime, datetime_sub, date, _0, _1, _2, _3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&identifier); + ZVAL_UNDEF(&datetime_sub); + ZVAL_UNDEF(&date); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(identifier) + Z_PARAM_OBJECT_OF_CLASS(datetime, php_date_get_date_ce()) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &identifier_param); - zephir_get_strval(&identifier, identifier_param); + zephir_fetch_params(1, 1, 0, &datetime); - _0 = zephir_memnstr_str(&identifier, SL("["), "phalcon/Mvc/Model/Query/Builder.zep", 419); - if (!(_0)) { - _0 = zephir_memnstr_str(&identifier, SL("."), "phalcon/Mvc/Model/Query/Builder.zep", 419); - } - _1 = _0; - if (!(_1)) { - _1 = zephir_is_numeric(&identifier); - } - if (_1) { - RETURN_CTOR(&identifier); + ZEPHIR_INIT_VAR(&date); + if (zephir_clone(&date, datetime) == FAILURE) { + RETURN_MM(); } - ZEPHIR_CONCAT_SVS(return_value, "[", &identifier, "]"); - RETURN_MM(); + ZEPHIR_INIT_VAR(&_0); + object_init_ex(&_0, php_date_get_timezone_ce()); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "UTC"); + ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 0, &_1); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &date, "settimezone", NULL, 0, &_0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "D, d M Y H:i:s"); + ZEPHIR_CALL_METHOD(&_2, &date, "format", NULL, 0, &_1); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_3); + ZEPHIR_CONCAT_VS(&_3, &_2, " GMT"); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "Last-Modified"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setheader", NULL, 0, &_1, &_3); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, betweenHaving) +static PHP_METHOD(Phalcon_Http_Response, setNotModified) { + zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *expr_param = NULL, *minimum, minimum_sub, *maximum, maximum_sub, *operator_param = NULL, _0; - zval expr, operator; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&operator); - ZVAL_UNDEF(&minimum_sub); - ZVAL_UNDEF(&maximum_sub); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 4) - Z_PARAM_STR(expr) - Z_PARAM_ZVAL(minimum) - Z_PARAM_ZVAL(maximum) - Z_PARAM_OPTIONAL - Z_PARAM_STR(operator) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 1, &expr_param, &minimum, &maximum, &operator_param); - if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { - zephir_get_strval(&expr, expr_param); - } else { - ZEPHIR_INIT_VAR(&expr); - } - if (!operator_param) { - ZEPHIR_INIT_VAR(&operator); - ZVAL_STRING(&operator, "and"); - } else { - if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { - zephir_get_strval(&operator, operator_param); - } else { - ZEPHIR_INIT_VAR(&operator); - } - } - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "Having"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "conditionbetween", NULL, 0, &_0, &operator, &expr, minimum, maximum); + ZVAL_LONG(&_0, 304); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "Not modified"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setstatuscode", NULL, 0, &_0, &_1); zephir_check_call_status(); - RETURN_MM(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, betweenWhere) +static PHP_METHOD(Phalcon_Http_Response, setStatusCode) { + zend_bool _5$$3, _10$$5; + zend_string *_4; + zend_ulong _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *expr_param = NULL, *minimum, minimum_sub, *maximum, maximum_sub, *operator_param = NULL, _0; - zval expr, operator; + zephir_fcall_cache_entry *_8 = NULL, *_9 = NULL, *_13 = NULL; + zval message, _15, _17; + zval *code_param = NULL, *message_param = NULL, headers, currentHeadersRaw, key, statusCodes, defaultMessage, _0, *_1, _2, _14, _16, _18, _6$$3, _7$$3, _11$$5, _12$$5; + zend_long code, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&operator); - ZVAL_UNDEF(&minimum_sub); - ZVAL_UNDEF(&maximum_sub); + ZVAL_UNDEF(&headers); + ZVAL_UNDEF(¤tHeadersRaw); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&statusCodes); + ZVAL_UNDEF(&defaultMessage); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_16); + ZVAL_UNDEF(&_18); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_11$$5); + ZVAL_UNDEF(&_12$$5); + ZVAL_UNDEF(&message); + ZVAL_UNDEF(&_15); + ZVAL_UNDEF(&_17); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 4) - Z_PARAM_STR(expr) - Z_PARAM_ZVAL(minimum) - Z_PARAM_ZVAL(maximum) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_LONG(code) Z_PARAM_OPTIONAL - Z_PARAM_STR(operator) + Z_PARAM_STR_OR_NULL(message) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 1, &expr_param, &minimum, &maximum, &operator_param); - if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { - zephir_get_strval(&expr, expr_param); - } else { - ZEPHIR_INIT_VAR(&expr); - } - if (!operator_param) { - ZEPHIR_INIT_VAR(&operator); - ZVAL_STRING(&operator, "and"); - } else { - if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { - zephir_get_strval(&operator, operator_param); + zephir_fetch_params(1, 1, 1, &code_param, &message_param); + code = zephir_get_intval(code_param); + if (!message_param) { + ZEPHIR_INIT_VAR(&message); } else { - ZEPHIR_INIT_VAR(&operator); - } + zephir_get_strval(&message, message_param); } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "Where"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "conditionbetween", NULL, 0, &_0, &operator, &expr, minimum, maximum); + ZEPHIR_CALL_METHOD(&headers, this_ptr, "getheaders", NULL, 0); zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, columns) -{ - zval *columns, columns_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&columns_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(columns) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &columns); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("columns"), columns); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, distinct) -{ - zval *distinct, distinct_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&distinct_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(distinct) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &distinct); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("distinct"), distinct); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, forUpdate) -{ - zval *forUpdate_param = NULL, __$true, __$false; - zend_bool forUpdate; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(forUpdate) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &forUpdate_param); - forUpdate = zephir_get_boolval(forUpdate_param); - - - if (forUpdate) { - zephir_update_property_zval(this_ptr, ZEND_STRL("forUpdate"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("forUpdate"), &__$false); - } - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, from) + ZEPHIR_CALL_METHOD(¤tHeadersRaw, &headers, "toarray", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + zephir_is_iterable(¤tHeadersRaw, 0, "phalcon/Http/Response.zep", 748); + if (Z_TYPE_P(¤tHeadersRaw) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(¤tHeadersRaw), _3, _4, _1) + { + ZEPHIR_INIT_NVAR(&key); + if (_4 != NULL) { + ZVAL_STR_COPY(&key, _4); + } else { + ZVAL_LONG(&key, _3); + } + ZEPHIR_INIT_NVAR(&_0); + ZVAL_COPY(&_0, _1); + _5$$3 = Z_TYPE_P(&key) == IS_STRING; + if (_5$$3) { + ZEPHIR_INIT_NVAR(&_6$$3); + ZVAL_STRING(&_6$$3, "HTTP/"); + ZEPHIR_CALL_FUNCTION(&_7$$3, "strstr", &_8, 272, &key, &_6$$3); + zephir_check_call_status(); + _5$$3 = zephir_is_true(&_7$$3); + } + if (_5$$3) { + ZEPHIR_CALL_METHOD(NULL, &headers, "remove", &_9, 0, &key); + zephir_check_call_status(); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, ¤tHeadersRaw, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, ¤tHeadersRaw, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&key, ¤tHeadersRaw, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, ¤tHeadersRaw, "current", NULL, 0); + zephir_check_call_status(); + _10$$5 = Z_TYPE_P(&key) == IS_STRING; + if (_10$$5) { + ZEPHIR_INIT_NVAR(&_11$$5); + ZVAL_STRING(&_11$$5, "HTTP/"); + ZEPHIR_CALL_FUNCTION(&_12$$5, "strstr", &_8, 272, &key, &_11$$5); + zephir_check_call_status(); + _10$$5 = zephir_is_true(&_12$$5); + } + if (_10$$5) { + ZEPHIR_CALL_METHOD(NULL, &headers, "remove", &_13, 0, &key); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, ¤tHeadersRaw, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&_0); + ZEPHIR_INIT_NVAR(&key); + if (ZEPHIR_IS_NULL(&message)) { + ZEPHIR_INIT_VAR(&statusCodes); + zephir_create_array(&statusCodes, 89, 0); + add_index_stringl(&statusCodes, 100, SL("Continue")); + add_index_stringl(&statusCodes, 101, SL("Switching Protocols")); + add_index_stringl(&statusCodes, 102, SL("Processing")); + add_index_stringl(&statusCodes, 103, SL("Early Hints")); + add_index_stringl(&statusCodes, 200, SL("OK")); + add_index_stringl(&statusCodes, 201, SL("Created")); + add_index_stringl(&statusCodes, 202, SL("Accepted")); + add_index_stringl(&statusCodes, 203, SL("Non-Authoritative Information")); + add_index_stringl(&statusCodes, 204, SL("No Content")); + add_index_stringl(&statusCodes, 205, SL("Reset Content")); + add_index_stringl(&statusCodes, 206, SL("Partial Content")); + add_index_stringl(&statusCodes, 207, SL("Multi-status")); + add_index_stringl(&statusCodes, 208, SL("Already Reported")); + add_index_stringl(&statusCodes, 226, SL("IM Used")); + add_index_stringl(&statusCodes, 300, SL("Multiple Choices")); + add_index_stringl(&statusCodes, 301, SL("Moved Permanently")); + add_index_stringl(&statusCodes, 302, SL("Found")); + add_index_stringl(&statusCodes, 303, SL("See Other")); + add_index_stringl(&statusCodes, 304, SL("Not Modified")); + add_index_stringl(&statusCodes, 305, SL("Use Proxy")); + add_index_stringl(&statusCodes, 306, SL("Switch Proxy")); + add_index_stringl(&statusCodes, 307, SL("Temporary Redirect")); + add_index_stringl(&statusCodes, 308, SL("Permanent Redirect")); + add_index_stringl(&statusCodes, 400, SL("Bad Request")); + add_index_stringl(&statusCodes, 401, SL("Unauthorized")); + add_index_stringl(&statusCodes, 402, SL("Payment Required")); + add_index_stringl(&statusCodes, 403, SL("Forbidden")); + add_index_stringl(&statusCodes, 404, SL("Not Found")); + add_index_stringl(&statusCodes, 405, SL("Method Not Allowed")); + add_index_stringl(&statusCodes, 406, SL("Not Acceptable")); + add_index_stringl(&statusCodes, 407, SL("Proxy Authentication Required")); + add_index_stringl(&statusCodes, 408, SL("Request Time-out")); + add_index_stringl(&statusCodes, 409, SL("Conflict")); + add_index_stringl(&statusCodes, 410, SL("Gone")); + add_index_stringl(&statusCodes, 411, SL("Length Required")); + add_index_stringl(&statusCodes, 412, SL("Precondition Failed")); + add_index_stringl(&statusCodes, 413, SL("Request Entity Too Large")); + add_index_stringl(&statusCodes, 414, SL("Request-URI Too Large")); + add_index_stringl(&statusCodes, 415, SL("Unsupported Media Type")); + add_index_stringl(&statusCodes, 416, SL("Requested range not satisfiable")); + add_index_stringl(&statusCodes, 417, SL("Expectation Failed")); + add_index_stringl(&statusCodes, 418, SL("I'm a teapot")); + add_index_stringl(&statusCodes, 421, SL("Misdirected Request")); + add_index_stringl(&statusCodes, 422, SL("Unprocessable Entity")); + add_index_stringl(&statusCodes, 423, SL("Locked")); + add_index_stringl(&statusCodes, 424, SL("Failed Dependency")); + add_index_stringl(&statusCodes, 425, SL("Unordered Collection")); + add_index_stringl(&statusCodes, 426, SL("Upgrade Required")); + add_index_stringl(&statusCodes, 428, SL("Precondition Required")); + add_index_stringl(&statusCodes, 429, SL("Too Many Requests")); + add_index_stringl(&statusCodes, 431, SL("Request Header Fields Too Large")); + add_index_stringl(&statusCodes, 451, SL("Unavailable For Legal Reasons")); + add_index_stringl(&statusCodes, 500, SL("Internal Server Error")); + add_index_stringl(&statusCodes, 501, SL("Not Implemented")); + add_index_stringl(&statusCodes, 502, SL("Bad Gateway")); + add_index_stringl(&statusCodes, 503, SL("Service Unavailable")); + add_index_stringl(&statusCodes, 504, SL("Gateway Time-out")); + add_index_stringl(&statusCodes, 505, SL("HTTP Version not supported")); + add_index_stringl(&statusCodes, 506, SL("Variant Also Negotiates")); + add_index_stringl(&statusCodes, 507, SL("Insufficient Storage")); + add_index_stringl(&statusCodes, 508, SL("Loop Detected")); + add_index_stringl(&statusCodes, 510, SL("Not Extended")); + add_index_stringl(&statusCodes, 511, SL("Network Authentication Required")); + add_index_stringl(&statusCodes, 218, SL("This is fine")); + add_index_stringl(&statusCodes, 419, SL("Page Expired")); + add_index_stringl(&statusCodes, 420, SL("Method Failure")); + add_index_stringl(&statusCodes, 440, SL("Login Time-out")); + add_index_stringl(&statusCodes, 444, SL("No Response")); + add_index_stringl(&statusCodes, 449, SL("Retry With")); + add_index_stringl(&statusCodes, 450, SL("Blocked by Windows Parental Controls (Microsoft)")); + add_index_stringl(&statusCodes, 494, SL("Request header too large")); + add_index_stringl(&statusCodes, 495, SL("SSL Certificate Error")); + add_index_stringl(&statusCodes, 496, SL("SSL Certificate Required")); + add_index_stringl(&statusCodes, 497, SL("HTTP Request Sent to HTTPS Port")); + add_index_stringl(&statusCodes, 498, SL("Invalid Token (Esri)")); + add_index_stringl(&statusCodes, 499, SL("Client Closed Request")); + add_index_stringl(&statusCodes, 509, SL("Bandwidth Limit Exceeded")); + add_index_stringl(&statusCodes, 520, SL("Unknown Error")); + add_index_stringl(&statusCodes, 521, SL("Web Server Is Down")); + add_index_stringl(&statusCodes, 522, SL("Connection Timed Out")); + add_index_stringl(&statusCodes, 523, SL("Origin Is Unreachable")); + add_index_stringl(&statusCodes, 524, SL("A Timeout Occurred")); + add_index_stringl(&statusCodes, 525, SL("SSL Handshake Failed")); + add_index_stringl(&statusCodes, 526, SL("Invalid SSL Certificate")); + add_index_stringl(&statusCodes, 527, SL("Railgun Error")); + add_index_stringl(&statusCodes, 530, SL("Origin DNS Error")); + add_index_stringl(&statusCodes, 598, SL("Network read timeout error")); + add_index_stringl(&statusCodes, 599, SL("Network Connect Timeout Error")); + if (UNEXPECTED(!(zephir_array_isset_long(&statusCodes, code)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_response_exception_ce, "Non-standard statuscode given without a message", "phalcon/Http/Response.zep", 855); + return; + } + ZEPHIR_OBS_VAR(&defaultMessage); + zephir_array_fetch_long(&defaultMessage, &statusCodes, code, PH_NOISY, "phalcon/Http/Response.zep", 858); + zephir_get_strval(&message, &defaultMessage); + } + ZEPHIR_INIT_VAR(&_14); + ZVAL_LONG(&_14, code); + ZEPHIR_INIT_VAR(&_15); + ZEPHIR_CONCAT_SVSV(&_15, "HTTP/1.1 ", &_14, " ", &message); + ZEPHIR_CALL_METHOD(NULL, &headers, "setraw", NULL, 0, &_15); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_16); + ZVAL_LONG(&_16, code); + ZEPHIR_INIT_VAR(&_17); + ZEPHIR_CONCAT_VSV(&_17, &_16, " ", &message); + ZEPHIR_INIT_VAR(&_18); + ZVAL_STRING(&_18, "Status"); + ZEPHIR_CALL_METHOD(NULL, &headers, "set", NULL, 0, &_18, &_17); + zephir_check_call_status(); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Http_Response, setRawHeader) { - zval *models, models_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *header_param = NULL, headers; + zval header; zval *this_ptr = getThis(); - ZVAL_UNDEF(&models_sub); + ZVAL_UNDEF(&header); + ZVAL_UNDEF(&headers); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(models) + Z_PARAM_STR(header) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &models); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &header_param); + zephir_get_strval(&header, header_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("models"), models); - RETURN_THISW(); + ZEPHIR_CALL_METHOD(&headers, this_ptr, "getheaders", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &headers, "setraw", NULL, 0, &header); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getBindParams) +zend_object *zephir_init_properties_Phalcon_Http_Response(zend_class_entry *class_type) +{ + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("statusCodes"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("statusCodes"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_ResponseInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Http, ResponseInterface, phalcon, http_responseinterface, phalcon_http_responseinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, appendContent); +ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, getContent); +ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, getStatusCode); +ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, getHeaders); +ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, hasHeader); +ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, isSent); +ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, redirect); +ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, resetHeaders); +ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setContent); +ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setContentLength); +ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setContentType); +ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setExpires); +ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setFileToSend); +ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setHeader); +ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setJsonContent); +ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setNotModified); +ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setRawHeader); +ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, setStatusCode); +ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, send); +ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, sendCookies); +ZEPHIR_DOC_METHOD(Phalcon_Http_ResponseInterface, sendHeaders); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Message_AbstractCommon) { + ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Message, AbstractCommon, phalcon, http_message_abstractcommon, phalcon_http_message_abstractcommon_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Http_Message_AbstractCommon, cloneInstance) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval property; + zval *element, element_sub, *property_param = NULL, newInstance; zval *this_ptr = getThis(); + ZVAL_UNDEF(&element_sub); + ZVAL_UNDEF(&newInstance); + ZVAL_UNDEF(&property); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(element) + Z_PARAM_STR(property) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &element, &property_param); + zephir_get_strval(&property, property_param); - RETURN_MEMBER(getThis(), "bindParams"); + ZEPHIR_INIT_VAR(&newInstance); + if (zephir_clone(&newInstance, this_ptr) == FAILURE) { + RETURN_MM(); + } + zephir_update_property_zval_zval(&newInstance, &property, element); + RETURN_CCTOR(&newInstance); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getBindTypes) +static PHP_METHOD(Phalcon_Http_Message_AbstractCommon, checkStringParameter) { + zval *element, element_sub; zval *this_ptr = getThis(); + ZVAL_UNDEF(&element_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(element) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &element); - RETURN_MEMBER(getThis(), "bindTypes"); + if (Z_TYPE_P(element) != IS_STRING) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_http_message_exception_invalidargumentexception_ce, "Method requires a string argument", "phalcon/Http/Message/AbstractCommon.zep", 52); + return; + } } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getColumns) +static PHP_METHOD(Phalcon_Http_Message_AbstractCommon, processWith) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval property; + zval *element, element_sub, *property_param = NULL; zval *this_ptr = getThis(); + ZVAL_UNDEF(&element_sub); + ZVAL_UNDEF(&property); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(element) + Z_PARAM_STR(property) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &element, &property_param); + zephir_get_strval(&property, property_param); - RETURN_MEMBER(getThis(), "columns"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkstringparameter", NULL, 20, element); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, element, &property); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getDI) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Message_AbstractMessage) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Message, AbstractMessage, phalcon, http_message_abstractmessage, phalcon_http_message_abstractcommon_ce, phalcon_http_message_abstractmessage_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_http_message_abstractmessage_ce, SL("body"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_message_abstractmessage_ce, SL("headers"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_http_message_abstractmessage_ce, SL("protocolVersion"), "1.1", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_message_abstractmessage_ce, SL("uri"), ZEND_ACC_PROTECTED); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, getBody) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "container"); + RETURN_MEMBER(getThis(), "body"); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getDistinct) +static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, getProtocolVersion) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "distinct"); + RETURN_MEMBER(getThis(), "protocolVersion"); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getFrom) +static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, getUri) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "models"); + RETURN_MEMBER(getThis(), "uri"); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getGroupBy) +static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, getHeader) { + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name = NULL, name_sub, _1, _2; zval *this_ptr = getThis(); + ZVAL_UNDEF(&name_sub); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(name) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "group"); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name); + ZEPHIR_SEPARATE_PARAM(name); + + + zephir_cast_to_string(&_0, name); + ZEPHIR_CPY_WRT(name, &_0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_2); + array_init(&_2); + ZEPHIR_RETURN_CALL_METHOD(&_1, "get", NULL, 0, name, &_2); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getHaving) +static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, getHeaderLine) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name, name_sub, header, _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&name_sub); + ZVAL_UNDEF(&header); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(name) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "having"); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name); + + + ZEPHIR_CALL_METHOD(&header, this_ptr, "getheader", NULL, 0, name); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, ","); + zephir_fast_join(return_value, &_0, &header); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getJoins) +static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, getHeaders) { + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); - RETURN_MEMBER(getThis(), "joins"); + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "toarray", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getLimit) +static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, hasHeader) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name, name_sub, _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&name_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(name) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "limit"); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "has", NULL, 0, name); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getModels) +static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, withAddedHeader) { - zend_bool _1; - zval models, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_2 = NULL; + zval *name, name_sub, *value = NULL, value_sub, existing, headers, _0, _1, _2, _3, _4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&models); + ZVAL_UNDEF(&name_sub); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&existing); + ZVAL_UNDEF(&headers); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(name) + Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &name, &value); + ZEPHIR_SEPARATE_PARAM(value); - zephir_read_property(&_0, this_ptr, ZEND_STRL("models"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&models, &_0); - _1 = Z_TYPE_P(&models) == IS_ARRAY; - if (_1) { - _1 = zephir_fast_count_int(&models) == 1; + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkheadername", NULL, 35, name); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + if (zephir_clone(&_1, &_0) == FAILURE) { + RETURN_MM(); } - if (_1) { - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_helper_arr_ce, "first", &_2, 264, &models); - zephir_check_call_status(); + ZEPHIR_CPY_WRT(&headers, &_1); + ZEPHIR_INIT_VAR(&_2); + array_init(&_2); + ZEPHIR_CALL_METHOD(&existing, &headers, "get", NULL, 0, name, &_2); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getheadervalue", NULL, 36, value); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(value, &_3); + ZEPHIR_INIT_VAR(&_4); + zephir_fast_array_merge(&_4, &existing, value); + ZEPHIR_CPY_WRT(value, &_4); + ZEPHIR_CALL_METHOD(NULL, &headers, "set", NULL, 0, name, value); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_4); + ZVAL_STRING(&_4, "headers"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, &headers, &_4); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, withBody) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *body, body_sub, newBody, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&body_sub); + ZVAL_UNDEF(&newBody); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(body, zephir_get_internal_ce(SL("psr\\http\\message\\streaminterface"))) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &body); + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "w+b"); + ZEPHIR_CALL_METHOD(&newBody, this_ptr, "processbody", NULL, 37, body, &_0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "body"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, &newBody, &_0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, withHeader) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name, name_sub, *value = NULL, value_sub, headers, _0, _1, _2, _3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name_sub); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&headers); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(name) + Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &name, &value); + ZEPHIR_SEPARATE_PARAM(value); + + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkheadername", NULL, 35, name); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + if (zephir_clone(&_1, &_0) == FAILURE) { RETURN_MM(); } - RETURN_CCTOR(&models); + ZEPHIR_CPY_WRT(&headers, &_1); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getheadervalue", NULL, 36, value); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(value, &_2); + ZEPHIR_CALL_METHOD(NULL, &headers, "set", NULL, 0, name, value); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "headers"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, &headers, &_3); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getOffset) +static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, withProtocolVersion) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *version, version_sub, _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&version_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(version) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "offset"); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &version); + + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processprotocol", NULL, 38, version); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "protocolVersion"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, version, &_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getOrderBy) +static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, withoutHeader) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name, name_sub, headers, _0, _1, _2; zval *this_ptr = getThis(); + ZVAL_UNDEF(&name_sub); + ZVAL_UNDEF(&headers); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name); - RETURN_MEMBER(getThis(), "order"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + if (zephir_clone(&_1, &_0) == FAILURE) { + RETURN_MM(); + } + ZEPHIR_CPY_WRT(&headers, &_1); + ZEPHIR_CALL_METHOD(NULL, &headers, "remove", NULL, 0, name); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "headers"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, &headers, &_2); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getPhql) +static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, checkHeaderHost) { - zend_string *_13$$26, *_22$$35, *_33$$43; - zend_ulong _12$$26, _21$$35, _32$$43; - zval _3$$8; - zend_bool noPrimary = 0, _87$$86; + zend_bool _2, _4; + zval header, _11$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval __$null, container, models, conditions, model, metaData, modelInstance, primaryKeys, firstPrimaryKey, columnMap, modelAlias, attributeField, phql, column, columns, selectedColumns, selectedColumn, selectedModel, selectedModels, columnAlias, modelColumnAlias, joins, join, joinModel, joinConditions, joinAlias, joinType, group, groupItems, groupItem, having, order, orderItems, orderItem, limit, number, offset, forUpdate, distinct, _0, _2$$8, _4$$17, _5$$17, _6$$19, _7$$13, _8$$13, _9$$13, *_10$$26, _11$$26, _18$$26, _14$$29, _15$$29, _16$$32, _17$$32, *_19$$35, _20$$35, _27$$35, _23$$37, _24$$38, _25$$40, _26$$41, _28$$42, _29$$42, *_30$$43, _31$$43, _38$$43, _39$$43, _34$$45, _35$$45, _36$$48, _37$$48, _40$$50, _41$$50, *_42$$51, _43$$51, _44$$53, _45$$53, _46$$54, _47$$54, _48$$55, _49$$55, _50$$56, _51$$58, _52$$58, _53$$59, _54$$59, _55$$60, _56$$60, _57$$61, _58$$63, *_59$$64, _60$$64, _63$$64, _64$$64, _61$$65, _62$$66, _65$$68, *_66$$70, _67$$70, _78$$70, _79$$70, itemExplode$$73, _68$$73, _69$$73, _70$$73, _71$$73, _72$$71, itemExplode$$76, _73$$76, _74$$76, _75$$76, _76$$76, _77$$74, _80$$77, _81$$83, _82$$86, _83$$86, _84$$86, _85$$86, _86$$86, _88$$87, _89$$87, _90$$87, _91$$87, _92$$87; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL; + zval *collection, collection_sub, data, host, hostArray, _0, _1, _3, _5, _6, _7, _8$$3, _10$$3, _12$$3, _9$$4; zval *this_ptr = getThis(); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&models); - ZVAL_UNDEF(&conditions); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&metaData); - ZVAL_UNDEF(&modelInstance); - ZVAL_UNDEF(&primaryKeys); - ZVAL_UNDEF(&firstPrimaryKey); - ZVAL_UNDEF(&columnMap); - ZVAL_UNDEF(&modelAlias); - ZVAL_UNDEF(&attributeField); - ZVAL_UNDEF(&phql); - ZVAL_UNDEF(&column); - ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&selectedColumns); - ZVAL_UNDEF(&selectedColumn); - ZVAL_UNDEF(&selectedModel); - ZVAL_UNDEF(&selectedModels); - ZVAL_UNDEF(&columnAlias); - ZVAL_UNDEF(&modelColumnAlias); - ZVAL_UNDEF(&joins); - ZVAL_UNDEF(&join); - ZVAL_UNDEF(&joinModel); - ZVAL_UNDEF(&joinConditions); - ZVAL_UNDEF(&joinAlias); - ZVAL_UNDEF(&joinType); - ZVAL_UNDEF(&group); - ZVAL_UNDEF(&groupItems); - ZVAL_UNDEF(&groupItem); - ZVAL_UNDEF(&having); - ZVAL_UNDEF(&order); - ZVAL_UNDEF(&orderItems); - ZVAL_UNDEF(&orderItem); - ZVAL_UNDEF(&limit); - ZVAL_UNDEF(&number); - ZVAL_UNDEF(&offset); - ZVAL_UNDEF(&forUpdate); - ZVAL_UNDEF(&distinct); + ZVAL_UNDEF(&collection_sub); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&host); + ZVAL_UNDEF(&hostArray); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2$$8); - ZVAL_UNDEF(&_4$$17); - ZVAL_UNDEF(&_5$$17); - ZVAL_UNDEF(&_6$$19); - ZVAL_UNDEF(&_7$$13); - ZVAL_UNDEF(&_8$$13); - ZVAL_UNDEF(&_9$$13); - ZVAL_UNDEF(&_11$$26); - ZVAL_UNDEF(&_18$$26); - ZVAL_UNDEF(&_14$$29); - ZVAL_UNDEF(&_15$$29); - ZVAL_UNDEF(&_16$$32); - ZVAL_UNDEF(&_17$$32); - ZVAL_UNDEF(&_20$$35); - ZVAL_UNDEF(&_27$$35); - ZVAL_UNDEF(&_23$$37); - ZVAL_UNDEF(&_24$$38); - ZVAL_UNDEF(&_25$$40); - ZVAL_UNDEF(&_26$$41); - ZVAL_UNDEF(&_28$$42); - ZVAL_UNDEF(&_29$$42); - ZVAL_UNDEF(&_31$$43); - ZVAL_UNDEF(&_38$$43); - ZVAL_UNDEF(&_39$$43); - ZVAL_UNDEF(&_34$$45); - ZVAL_UNDEF(&_35$$45); - ZVAL_UNDEF(&_36$$48); - ZVAL_UNDEF(&_37$$48); - ZVAL_UNDEF(&_40$$50); - ZVAL_UNDEF(&_41$$50); - ZVAL_UNDEF(&_43$$51); - ZVAL_UNDEF(&_44$$53); - ZVAL_UNDEF(&_45$$53); - ZVAL_UNDEF(&_46$$54); - ZVAL_UNDEF(&_47$$54); - ZVAL_UNDEF(&_48$$55); - ZVAL_UNDEF(&_49$$55); - ZVAL_UNDEF(&_50$$56); - ZVAL_UNDEF(&_51$$58); - ZVAL_UNDEF(&_52$$58); - ZVAL_UNDEF(&_53$$59); - ZVAL_UNDEF(&_54$$59); - ZVAL_UNDEF(&_55$$60); - ZVAL_UNDEF(&_56$$60); - ZVAL_UNDEF(&_57$$61); - ZVAL_UNDEF(&_58$$63); - ZVAL_UNDEF(&_60$$64); - ZVAL_UNDEF(&_63$$64); - ZVAL_UNDEF(&_64$$64); - ZVAL_UNDEF(&_61$$65); - ZVAL_UNDEF(&_62$$66); - ZVAL_UNDEF(&_65$$68); - ZVAL_UNDEF(&_67$$70); - ZVAL_UNDEF(&_78$$70); - ZVAL_UNDEF(&_79$$70); - ZVAL_UNDEF(&itemExplode$$73); - ZVAL_UNDEF(&_68$$73); - ZVAL_UNDEF(&_69$$73); - ZVAL_UNDEF(&_70$$73); - ZVAL_UNDEF(&_71$$73); - ZVAL_UNDEF(&_72$$71); - ZVAL_UNDEF(&itemExplode$$76); - ZVAL_UNDEF(&_73$$76); - ZVAL_UNDEF(&_74$$76); - ZVAL_UNDEF(&_75$$76); - ZVAL_UNDEF(&_76$$76); - ZVAL_UNDEF(&_77$$74); - ZVAL_UNDEF(&_80$$77); - ZVAL_UNDEF(&_81$$83); - ZVAL_UNDEF(&_82$$86); - ZVAL_UNDEF(&_83$$86); - ZVAL_UNDEF(&_84$$86); - ZVAL_UNDEF(&_85$$86); - ZVAL_UNDEF(&_86$$86); - ZVAL_UNDEF(&_88$$87); - ZVAL_UNDEF(&_89$$87); - ZVAL_UNDEF(&_90$$87); - ZVAL_UNDEF(&_91$$87); - ZVAL_UNDEF(&_92$$87); - ZVAL_UNDEF(&_3$$8); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8$$3); + ZVAL_UNDEF(&_10$$3); + ZVAL_UNDEF(&_12$$3); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&header); + ZVAL_UNDEF(&_11$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(collection, phalcon_collection_collectioninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &collection); - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - if (Z_TYPE_P(&container) != IS_OBJECT) { - ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_1, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), &container); + + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "host"); + ZEPHIR_CALL_METHOD(&_0, collection, "has", NULL, 0, &_1); + zephir_check_call_status(); + _2 = zephir_is_true(&_0); + if (_2) { + ZEPHIR_OBS_VAR(&_3); + zephir_read_property(&_3, this_ptr, ZEND_STRL("uri"), PH_NOISY_CC); + _2 = !(ZEPHIR_IS_EMPTY(&_3)); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("models"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&models, &_0); - if (Z_TYPE_P(&models) == IS_ARRAY) { - if (UNEXPECTED(!(zephir_fast_count_int(&models)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "At least one model is required to build the query", "phalcon/Mvc/Model/Query/Builder.zep", 680); - return; - } - } else { - if (UNEXPECTED(!zephir_is_true(&models))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "At least one model is required to build the query", "phalcon/Mvc/Model/Query/Builder.zep", 686); - return; - } + _4 = _2; + if (_4) { + zephir_read_property(&_5, this_ptr, ZEND_STRL("uri"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_6, &_5, "gethost", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_7); + ZVAL_STRING(&_7, ""); + _4 = !ZEPHIR_IS_IDENTICAL(&_7, &_6); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("conditions"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&conditions, &_0); - if (zephir_is_numeric(&conditions)) { - if (Z_TYPE_P(&models) == IS_ARRAY) { - if (UNEXPECTED(zephir_fast_count_int(&models) > 1)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Cannot build the query. Invalid condition", "phalcon/Mvc/Model/Query/Builder.zep", 701); - return; - } - ZEPHIR_OBS_VAR(&model); - zephir_array_fetch_long(&model, &models, 0, PH_NOISY, "phalcon/Mvc/Model/Query/Builder.zep", 704); - } else { - ZEPHIR_CPY_WRT(&model, &models); + if (UNEXPECTED(_4)) { + zephir_read_property(&_8$$3, this_ptr, ZEND_STRL("uri"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&host, this_ptr, "geturihost", NULL, 39, &_8$$3); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&hostArray, &host); + if (UNEXPECTED(Z_TYPE_P(&host) != IS_ARRAY)) { + ZEPHIR_INIT_VAR(&_9$$4); + zephir_create_array(&_9$$4, 1, 0); + zephir_array_fast_append(&_9$$4, &host); + ZEPHIR_CPY_WRT(&hostArray, &_9$$4); } - ZEPHIR_INIT_VAR(&_2$$8); - ZVAL_STRING(&_2$$8, "modelsMetadata"); - ZEPHIR_CALL_METHOD(&metaData, &container, "getshared", NULL, 0, &_2$$8); + ZEPHIR_INIT_VAR(&_10$$3); + ZVAL_STRING(&_10$$3, "host"); + ZEPHIR_CALL_METHOD(NULL, collection, "remove", NULL, 0, &_10$$3); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_3$$8); - zephir_create_array(&_3$$8, 2, 0); - zephir_array_fast_append(&_3$$8, &__$null); - zephir_array_fast_append(&_3$$8, &container); - ZEPHIR_INIT_VAR(&modelInstance); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(&modelInstance, &model, &_3$$8); + ZEPHIR_CALL_METHOD(&data, collection, "toarray", NULL, 0); zephir_check_call_status(); - noPrimary = 1; - ZEPHIR_CALL_METHOD(&primaryKeys, &metaData, "getprimarykeyattributes", NULL, 0, &modelInstance); + ZEPHIR_INIT_VAR(&header); + array_init(&header); + zephir_array_update_string(&header, SL("Host"), &hostArray, PH_COPY | PH_SEPARATE); + zephir_get_arrval(&_11$$3, &data); + ZEPHIR_INIT_VAR(&_12$$3); + zephir_add_function(&_12$$3, &header, &_11$$3); + ZEPHIR_CPY_WRT(&header, &_12$$3); + ZEPHIR_CALL_METHOD(NULL, collection, "clear", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, collection, "init", NULL, 0, &header); zephir_check_call_status(); - if (zephir_fast_count_int(&primaryKeys)) { - ZEPHIR_OBS_VAR(&firstPrimaryKey); - if (zephir_array_isset_long_fetch(&firstPrimaryKey, &primaryKeys, 0, 0)) { - if (ZEPHIR_GLOBAL(orm).column_renaming) { - ZEPHIR_CALL_METHOD(&columnMap, &metaData, "getcolumnmap", NULL, 0, &modelInstance); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&columnMap); - ZVAL_NULL(&columnMap); - } - if (Z_TYPE_P(&columnMap) == IS_ARRAY) { - ZEPHIR_OBS_VAR(&attributeField); - if (UNEXPECTED(!(zephir_array_isset_fetch(&attributeField, &columnMap, &firstPrimaryKey, 0)))) { - ZEPHIR_INIT_VAR(&_4$$17); - object_init_ex(&_4$$17, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_5$$17); - ZEPHIR_CONCAT_SVS(&_5$$17, "Column '", &firstPrimaryKey, "' isn't part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_4$$17, "__construct", NULL, 8, &_5$$17); - zephir_check_call_status(); - zephir_throw_exception_debug(&_4$$17, "phalcon/Mvc/Model/Query/Builder.zep", 740); - ZEPHIR_MM_RESTORE(); - return; - } - } else { - ZEPHIR_CPY_WRT(&attributeField, &firstPrimaryKey); - } - if (Z_TYPE_P(&conditions) == IS_STRING) { - ZEPHIR_INIT_VAR(&_6$$19); - ZEPHIR_CONCAT_SVS(&_6$$19, "'", &conditions, "'"); - ZEPHIR_CPY_WRT(&conditions, &_6$$19); - } - ZEPHIR_CALL_METHOD(&_7$$13, this_ptr, "autoescape", NULL, 487, &model); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_8$$13, this_ptr, "autoescape", NULL, 487, &attributeField); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_9$$13); - ZEPHIR_CONCAT_VSVSV(&_9$$13, &_7$$13, ".", &_8$$13, " = ", &conditions); - ZEPHIR_CPY_WRT(&conditions, &_9$$13); - noPrimary = 0; - } - } - if (UNEXPECTED(noPrimary)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Source related to this model does not have a primary key defined", "phalcon/Mvc/Model/Query/Builder.zep", 767); - return; - } } - zephir_read_property(&_0, this_ptr, ZEND_STRL("distinct"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&distinct, &_0); - if (((Z_TYPE_P(&distinct) == IS_TRUE || Z_TYPE_P(&distinct) == IS_FALSE) == 1)) { - ZEPHIR_INIT_VAR(&phql); - if (zephir_is_true(&distinct)) { - ZVAL_STRING(&phql, "SELECT DISTINCT "); - } else { - ZVAL_STRING(&phql, "SELECT ALL "); - } - } else { - ZEPHIR_INIT_NVAR(&phql); - ZVAL_STRING(&phql, "SELECT "); + RETVAL_ZVAL(collection, 1, 0); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, checkHeaderName) +{ + zend_bool _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name, name_sub, _1, _2, _3, _4, _5$$3, _6$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name_sub); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name); + + + _0 = Z_TYPE_P(name) != IS_STRING; + if (!(_0)) { + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "/^[a-zA-Z0-9'`#$%&*+.^_|~!-]+$/"); + ZEPHIR_INIT_VAR(&_3); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "/^[a-zA-Z0-9'`#$%&*+.^_|~!-]+$/"); + zephir_preg_match(&_3, &_4, name, &_1, 0, 0 , 0 ); + _0 = !zephir_is_true(&_3); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("columns"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&columns, &_0); - if (Z_TYPE_P(&columns) != IS_NULL) { - if (Z_TYPE_P(&columns) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&selectedColumns); - array_init(&selectedColumns); - zephir_is_iterable(&columns, 0, "phalcon/Mvc/Model/Query/Builder.zep", 800); - if (Z_TYPE_P(&columns) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&columns), _12$$26, _13$$26, _10$$26) - { - ZEPHIR_INIT_NVAR(&columnAlias); - if (_13$$26 != NULL) { - ZVAL_STR_COPY(&columnAlias, _13$$26); - } else { - ZVAL_LONG(&columnAlias, _12$$26); - } - ZEPHIR_INIT_NVAR(&column); - ZVAL_COPY(&column, _10$$26); - if (Z_TYPE_P(&columnAlias) == IS_LONG) { - zephir_array_append(&selectedColumns, &column, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 794); - } else { - ZEPHIR_CALL_METHOD(&_14$$29, this_ptr, "autoescape", NULL, 487, &columnAlias); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_15$$29); - ZEPHIR_CONCAT_VSV(&_15$$29, &column, " AS ", &_14$$29); - zephir_array_append(&selectedColumns, &_15$$29, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 796); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &columns, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_11$$26, &columns, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_11$$26)) { - break; - } - ZEPHIR_CALL_METHOD(&columnAlias, &columns, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&column, &columns, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&columnAlias) == IS_LONG) { - zephir_array_append(&selectedColumns, &column, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 794); - } else { - ZEPHIR_CALL_METHOD(&_16$$32, this_ptr, "autoescape", NULL, 487, &columnAlias); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_17$$32); - ZEPHIR_CONCAT_VSV(&_17$$32, &column, " AS ", &_16$$32); - zephir_array_append(&selectedColumns, &_17$$32, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 796); - } - ZEPHIR_CALL_METHOD(NULL, &columns, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&column); - ZEPHIR_INIT_NVAR(&columnAlias); - ZEPHIR_INIT_VAR(&_18$$26); - zephir_fast_join_str(&_18$$26, SL(", "), &selectedColumns); - zephir_concat_self(&phql, &_18$$26); - } else { - zephir_concat_self(&phql, &columns); - } - } else { - if (Z_TYPE_P(&models) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&selectedColumns); - array_init(&selectedColumns); - zephir_is_iterable(&models, 0, "phalcon/Mvc/Model/Query/Builder.zep", 821); - if (Z_TYPE_P(&models) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&models), _21$$35, _22$$35, _19$$35) - { - ZEPHIR_INIT_NVAR(&modelColumnAlias); - if (_22$$35 != NULL) { - ZVAL_STR_COPY(&modelColumnAlias, _22$$35); - } else { - ZVAL_LONG(&modelColumnAlias, _21$$35); - } - ZEPHIR_INIT_NVAR(&model); - ZVAL_COPY(&model, _19$$35); - ZEPHIR_INIT_NVAR(&selectedColumn); - if (Z_TYPE_P(&modelColumnAlias) == IS_LONG) { - ZEPHIR_CALL_METHOD(&_23$$37, this_ptr, "autoescape", NULL, 487, &model); - zephir_check_call_status(); - ZEPHIR_CONCAT_VS(&selectedColumn, &_23$$37, ".*"); - } else { - ZEPHIR_CALL_METHOD(&_24$$38, this_ptr, "autoescape", NULL, 487, &modelColumnAlias); - zephir_check_call_status(); - ZEPHIR_CONCAT_VS(&selectedColumn, &_24$$38, ".*"); - } - zephir_array_append(&selectedColumns, &selectedColumn, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 818); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &models, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_20$$35, &models, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_20$$35)) { - break; - } - ZEPHIR_CALL_METHOD(&modelColumnAlias, &models, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&model, &models, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&selectedColumn); - if (Z_TYPE_P(&modelColumnAlias) == IS_LONG) { - ZEPHIR_CALL_METHOD(&_25$$40, this_ptr, "autoescape", NULL, 487, &model); - zephir_check_call_status(); - ZEPHIR_CONCAT_VS(&selectedColumn, &_25$$40, ".*"); - } else { - ZEPHIR_CALL_METHOD(&_26$$41, this_ptr, "autoescape", NULL, 487, &modelColumnAlias); - zephir_check_call_status(); - ZEPHIR_CONCAT_VS(&selectedColumn, &_26$$41, ".*"); - } - zephir_array_append(&selectedColumns, &selectedColumn, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 818); - ZEPHIR_CALL_METHOD(NULL, &models, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&model); - ZEPHIR_INIT_NVAR(&modelColumnAlias); - ZEPHIR_INIT_VAR(&_27$$35); - zephir_fast_join_str(&_27$$35, SL(", "), &selectedColumns); - zephir_concat_self(&phql, &_27$$35); - } else { - ZEPHIR_CALL_METHOD(&_28$$42, this_ptr, "autoescape", NULL, 487, &models); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_29$$42); - ZEPHIR_CONCAT_VS(&_29$$42, &_28$$42, ".*"); - zephir_concat_self(&phql, &_29$$42); - } - } - if (Z_TYPE_P(&models) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&selectedModels); - array_init(&selectedModels); - zephir_is_iterable(&models, 0, "phalcon/Mvc/Model/Query/Builder.zep", 843); - if (Z_TYPE_P(&models) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&models), _32$$43, _33$$43, _30$$43) - { - ZEPHIR_INIT_NVAR(&modelAlias); - if (_33$$43 != NULL) { - ZVAL_STR_COPY(&modelAlias, _33$$43); - } else { - ZVAL_LONG(&modelAlias, _32$$43); - } - ZEPHIR_INIT_NVAR(&model); - ZVAL_COPY(&model, _30$$43); - if (Z_TYPE_P(&modelAlias) == IS_STRING) { - ZEPHIR_CALL_METHOD(&_34$$45, this_ptr, "autoescape", NULL, 487, &model); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_35$$45, this_ptr, "autoescape", NULL, 487, &modelAlias); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&selectedModel); - ZEPHIR_CONCAT_VSV(&selectedModel, &_34$$45, " AS ", &_35$$45); - } else { - ZEPHIR_CALL_METHOD(&selectedModel, this_ptr, "autoescape", NULL, 487, &model); - zephir_check_call_status(); - } - zephir_array_append(&selectedModels, &selectedModel, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 840); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &models, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_31$$43, &models, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_31$$43)) { - break; - } - ZEPHIR_CALL_METHOD(&modelAlias, &models, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&model, &models, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&modelAlias) == IS_STRING) { - ZEPHIR_CALL_METHOD(&_36$$48, this_ptr, "autoescape", NULL, 487, &model); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_37$$48, this_ptr, "autoescape", NULL, 487, &modelAlias); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&selectedModel); - ZEPHIR_CONCAT_VSV(&selectedModel, &_36$$48, " AS ", &_37$$48); - } else { - ZEPHIR_CALL_METHOD(&selectedModel, this_ptr, "autoescape", NULL, 487, &model); - zephir_check_call_status(); - } - zephir_array_append(&selectedModels, &selectedModel, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 840); - ZEPHIR_CALL_METHOD(NULL, &models, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&model); - ZEPHIR_INIT_NVAR(&modelAlias); - ZEPHIR_INIT_VAR(&_38$$43); - zephir_fast_join_str(&_38$$43, SL(", "), &selectedModels); - ZEPHIR_INIT_VAR(&_39$$43); - ZEPHIR_CONCAT_SV(&_39$$43, " FROM ", &_38$$43); - zephir_concat_self(&phql, &_39$$43); - } else { - ZEPHIR_CALL_METHOD(&_40$$50, this_ptr, "autoescape", NULL, 487, &models); + if (UNEXPECTED(_0)) { + ZEPHIR_INIT_VAR(&_5$$3); + object_init_ex(&_5$$3, phalcon_http_message_exception_invalidargumentexception_ce); + ZEPHIR_INIT_VAR(&_6$$3); + ZEPHIR_CONCAT_SV(&_6$$3, "Invalid header name ", name); + ZEPHIR_CALL_METHOD(NULL, &_5$$3, "__construct", NULL, 40, &_6$$3); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_41$$50); - ZEPHIR_CONCAT_SV(&_41$$50, " FROM ", &_40$$50); - zephir_concat_self(&phql, &_41$$50); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("joins"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&joins, &_0); - if (Z_TYPE_P(&joins) == IS_ARRAY) { - zephir_is_iterable(&joins, 0, "phalcon/Mvc/Model/Query/Builder.zep", 898); - if (Z_TYPE_P(&joins) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&joins), _42$$51) - { - ZEPHIR_INIT_NVAR(&join); - ZVAL_COPY(&join, _42$$51); - ZEPHIR_OBS_NVAR(&joinModel); - zephir_array_fetch_long(&joinModel, &join, 0, PH_NOISY, "phalcon/Mvc/Model/Query/Builder.zep", 858); - ZEPHIR_OBS_NVAR(&joinConditions); - zephir_array_fetch_long(&joinConditions, &join, 1, PH_NOISY, "phalcon/Mvc/Model/Query/Builder.zep", 863); - ZEPHIR_OBS_NVAR(&joinAlias); - zephir_array_fetch_long(&joinAlias, &join, 2, PH_NOISY, "phalcon/Mvc/Model/Query/Builder.zep", 868); - ZEPHIR_OBS_NVAR(&joinType); - zephir_array_fetch_long(&joinType, &join, 3, PH_NOISY, "phalcon/Mvc/Model/Query/Builder.zep", 873); - if (zephir_is_true(&joinType)) { - ZEPHIR_CALL_METHOD(&_44$$53, this_ptr, "autoescape", NULL, 487, &joinModel); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_45$$53); - ZEPHIR_CONCAT_SVSV(&_45$$53, " ", &joinType, " JOIN ", &_44$$53); - zephir_concat_self(&phql, &_45$$53); - } else { - ZEPHIR_CALL_METHOD(&_46$$54, this_ptr, "autoescape", NULL, 487, &joinModel); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_47$$54); - ZEPHIR_CONCAT_SV(&_47$$54, " JOIN ", &_46$$54); - zephir_concat_self(&phql, &_47$$54); - } - if (zephir_is_true(&joinAlias)) { - ZEPHIR_CALL_METHOD(&_48$$55, this_ptr, "autoescape", NULL, 487, &joinAlias); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_49$$55); - ZEPHIR_CONCAT_SV(&_49$$55, " AS ", &_48$$55); - zephir_concat_self(&phql, &_49$$55); - } - if (zephir_is_true(&joinConditions)) { - ZEPHIR_INIT_NVAR(&_50$$56); - ZEPHIR_CONCAT_SV(&_50$$56, " ON ", &joinConditions); - zephir_concat_self(&phql, &_50$$56); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &joins, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_43$$51, &joins, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_43$$51)) { - break; - } - ZEPHIR_CALL_METHOD(&join, &joins, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&joinModel); - zephir_array_fetch_long(&joinModel, &join, 0, PH_NOISY, "phalcon/Mvc/Model/Query/Builder.zep", 858); - ZEPHIR_OBS_NVAR(&joinConditions); - zephir_array_fetch_long(&joinConditions, &join, 1, PH_NOISY, "phalcon/Mvc/Model/Query/Builder.zep", 863); - ZEPHIR_OBS_NVAR(&joinAlias); - zephir_array_fetch_long(&joinAlias, &join, 2, PH_NOISY, "phalcon/Mvc/Model/Query/Builder.zep", 868); - ZEPHIR_OBS_NVAR(&joinType); - zephir_array_fetch_long(&joinType, &join, 3, PH_NOISY, "phalcon/Mvc/Model/Query/Builder.zep", 873); - if (zephir_is_true(&joinType)) { - ZEPHIR_CALL_METHOD(&_51$$58, this_ptr, "autoescape", NULL, 487, &joinModel); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_52$$58); - ZEPHIR_CONCAT_SVSV(&_52$$58, " ", &joinType, " JOIN ", &_51$$58); - zephir_concat_self(&phql, &_52$$58); - } else { - ZEPHIR_CALL_METHOD(&_53$$59, this_ptr, "autoescape", NULL, 487, &joinModel); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_54$$59); - ZEPHIR_CONCAT_SV(&_54$$59, " JOIN ", &_53$$59); - zephir_concat_self(&phql, &_54$$59); - } - if (zephir_is_true(&joinAlias)) { - ZEPHIR_CALL_METHOD(&_55$$60, this_ptr, "autoescape", NULL, 487, &joinAlias); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_56$$60); - ZEPHIR_CONCAT_SV(&_56$$60, " AS ", &_55$$60); - zephir_concat_self(&phql, &_56$$60); - } - if (zephir_is_true(&joinConditions)) { - ZEPHIR_INIT_NVAR(&_57$$61); - ZEPHIR_CONCAT_SV(&_57$$61, " ON ", &joinConditions); - zephir_concat_self(&phql, &_57$$61); - } - ZEPHIR_CALL_METHOD(NULL, &joins, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&join); - } - if (Z_TYPE_P(&conditions) == IS_STRING) { - if (!(ZEPHIR_IS_EMPTY(&conditions))) { - ZEPHIR_INIT_VAR(&_58$$63); - ZEPHIR_CONCAT_SV(&_58$$63, " WHERE ", &conditions); - zephir_concat_self(&phql, &_58$$63); - } - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("group"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&group, &_0); - if (!(ZEPHIR_IS_EMPTY(&group))) { - ZEPHIR_INIT_VAR(&groupItems); - array_init(&groupItems); - zephir_is_iterable(&group, 0, "phalcon/Mvc/Model/Query/Builder.zep", 918); - if (Z_TYPE_P(&group) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&group), _59$$64) - { - ZEPHIR_INIT_NVAR(&groupItem); - ZVAL_COPY(&groupItem, _59$$64); - ZEPHIR_CALL_METHOD(&_61$$65, this_ptr, "autoescape", NULL, 487, &groupItem); - zephir_check_call_status(); - zephir_array_append(&groupItems, &_61$$65, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 915); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &group, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_60$$64, &group, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_60$$64)) { - break; - } - ZEPHIR_CALL_METHOD(&groupItem, &group, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_62$$66, this_ptr, "autoescape", NULL, 487, &groupItem); - zephir_check_call_status(); - zephir_array_append(&groupItems, &_62$$66, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 915); - ZEPHIR_CALL_METHOD(NULL, &group, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&groupItem); - ZEPHIR_INIT_VAR(&_63$$64); - zephir_fast_join_str(&_63$$64, SL(", "), &groupItems); - ZEPHIR_INIT_VAR(&_64$$64); - ZEPHIR_CONCAT_SV(&_64$$64, " GROUP BY ", &_63$$64); - zephir_concat_self(&phql, &_64$$64); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("having"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&having, &_0); - if (Z_TYPE_P(&having) != IS_NULL) { - if (!(ZEPHIR_IS_EMPTY(&having))) { - ZEPHIR_INIT_VAR(&_65$$68); - ZEPHIR_CONCAT_SV(&_65$$68, " HAVING ", &having); - zephir_concat_self(&phql, &_65$$68); - } - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("order"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&order, &_0); - if (Z_TYPE_P(&order) != IS_NULL) { - if (Z_TYPE_P(&order) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&orderItems); - array_init(&orderItems); - zephir_is_iterable(&order, 0, "phalcon/Mvc/Model/Query/Builder.zep", 962); - if (Z_TYPE_P(&order) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&order), _66$$70) - { - ZEPHIR_INIT_NVAR(&orderItem); - ZVAL_COPY(&orderItem, _66$$70); - if (Z_TYPE_P(&orderItem) == IS_LONG) { - zephir_array_append(&orderItems, &orderItem, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 945); - continue; - } - if (zephir_memnstr_str(&orderItem, SL(" "), "phalcon/Mvc/Model/Query/Builder.zep", 950) != 0) { - ZEPHIR_INIT_NVAR(&itemExplode$$73); - zephir_fast_explode_str(&itemExplode$$73, SL(" "), &orderItem, LONG_MAX); - zephir_array_fetch_long(&_69$$73, &itemExplode$$73, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query/Builder.zep", 954); - ZEPHIR_CALL_METHOD(&_68$$73, this_ptr, "autoescape", NULL, 487, &_69$$73); - zephir_check_call_status(); - zephir_array_fetch_long(&_70$$73, &itemExplode$$73, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query/Builder.zep", 954); - ZEPHIR_INIT_NVAR(&_71$$73); - ZEPHIR_CONCAT_VSV(&_71$$73, &_68$$73, " ", &_70$$73); - zephir_array_append(&orderItems, &_71$$73, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 954); - continue; - } - ZEPHIR_CALL_METHOD(&_72$$71, this_ptr, "autoescape", NULL, 487, &orderItem); - zephir_check_call_status(); - zephir_array_append(&orderItems, &_72$$71, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 959); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &order, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_67$$70, &order, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_67$$70)) { - break; - } - ZEPHIR_CALL_METHOD(&orderItem, &order, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&orderItem) == IS_LONG) { - zephir_array_append(&orderItems, &orderItem, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 945); - continue; - } - if (zephir_memnstr_str(&orderItem, SL(" "), "phalcon/Mvc/Model/Query/Builder.zep", 950) != 0) { - ZEPHIR_INIT_NVAR(&itemExplode$$76); - zephir_fast_explode_str(&itemExplode$$76, SL(" "), &orderItem, LONG_MAX); - zephir_array_fetch_long(&_74$$76, &itemExplode$$76, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query/Builder.zep", 954); - ZEPHIR_CALL_METHOD(&_73$$76, this_ptr, "autoescape", NULL, 487, &_74$$76); - zephir_check_call_status(); - zephir_array_fetch_long(&_75$$76, &itemExplode$$76, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Query/Builder.zep", 954); - ZEPHIR_INIT_NVAR(&_76$$76); - ZEPHIR_CONCAT_VSV(&_76$$76, &_73$$76, " ", &_75$$76); - zephir_array_append(&orderItems, &_76$$76, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 954); - continue; - } - ZEPHIR_CALL_METHOD(&_77$$74, this_ptr, "autoescape", NULL, 487, &orderItem); - zephir_check_call_status(); - zephir_array_append(&orderItems, &_77$$74, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 959); - ZEPHIR_CALL_METHOD(NULL, &order, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&orderItem); - ZEPHIR_INIT_VAR(&_78$$70); - zephir_fast_join_str(&_78$$70, SL(", "), &orderItems); - ZEPHIR_INIT_VAR(&_79$$70); - ZEPHIR_CONCAT_SV(&_79$$70, " ORDER BY ", &_78$$70); - zephir_concat_self(&phql, &_79$$70); - } else { - ZEPHIR_INIT_VAR(&_80$$77); - ZEPHIR_CONCAT_SV(&_80$$77, " ORDER BY ", &order); - zephir_concat_self(&phql, &_80$$77); - } - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("limit"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&limit, &_0); - if (Z_TYPE_P(&limit) != IS_NULL) { - ZEPHIR_INIT_VAR(&number); - ZVAL_NULL(&number); - if (Z_TYPE_P(&limit) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&number); - zephir_array_fetch_string(&number, &limit, SL("number"), PH_NOISY, "phalcon/Mvc/Model/Query/Builder.zep", 976); - ZEPHIR_OBS_VAR(&offset); - if (zephir_array_isset_string_fetch(&offset, &limit, SL("offset"), 0)) { - if (!(zephir_is_numeric(&offset))) { - ZEPHIR_INIT_NVAR(&offset); - ZVAL_LONG(&offset, 0); - } - } - } else { - if (zephir_is_numeric(&limit)) { - ZEPHIR_CPY_WRT(&number, &limit); - zephir_read_property(&_81$$83, this_ptr, ZEND_STRL("offset"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&offset, &_81$$83); - if (Z_TYPE_P(&offset) != IS_NULL) { - if (!(zephir_is_numeric(&offset))) { - ZEPHIR_INIT_NVAR(&offset); - ZVAL_LONG(&offset, 0); - } - } - } - } - if (zephir_is_numeric(&number)) { - zephir_concat_self_str(&phql, SL(" LIMIT :APL0:")); - ZVAL_LONG(&_82$$86, 10); - ZEPHIR_CALL_FUNCTION(&_83$$86, "intval", NULL, 51, &number, &_82$$86); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_84$$86); - ZVAL_STRING(&_84$$86, "APL0"); - zephir_update_property_array(this_ptr, SL("bindParams"), &_84$$86, &_83$$86); - ZEPHIR_INIT_VAR(&_85$$86); - ZVAL_STRING(&_85$$86, "APL0"); - ZEPHIR_INIT_VAR(&_86$$86); - ZVAL_LONG(&_86$$86, 1); - zephir_update_property_array(this_ptr, SL("bindTypes"), &_85$$86, &_86$$86); - _87$$86 = zephir_is_numeric(&offset); - if (_87$$86) { - _87$$86 = !ZEPHIR_IS_LONG_IDENTICAL(&offset, 0); - } - if (_87$$86) { - zephir_concat_self_str(&phql, SL(" OFFSET :APL1:")); - ZVAL_LONG(&_88$$87, 10); - ZEPHIR_CALL_FUNCTION(&_89$$87, "intval", NULL, 51, &offset, &_88$$87); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_90$$87); - ZVAL_STRING(&_90$$87, "APL1"); - zephir_update_property_array(this_ptr, SL("bindParams"), &_90$$87, &_89$$87); - ZEPHIR_INIT_VAR(&_91$$87); - ZVAL_STRING(&_91$$87, "APL1"); - ZEPHIR_INIT_VAR(&_92$$87); - ZVAL_LONG(&_92$$87, 1); - zephir_update_property_array(this_ptr, SL("bindTypes"), &_91$$87, &_92$$87); - } - } - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("forUpdate"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&forUpdate, &_0); - if (((Z_TYPE_P(&forUpdate) == IS_TRUE || Z_TYPE_P(&forUpdate) == IS_FALSE) == 1)) { - if (zephir_is_true(&forUpdate)) { - zephir_concat_self_str(&phql, SL(" FOR UPDATE")); - } + zephir_throw_exception_debug(&_5$$3, "phalcon/Http/Message/AbstractMessage.zep", 333); + ZEPHIR_MM_RESTORE(); + return; } - RETURN_CCTOR(&phql); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, getQuery) +static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, checkHeaderValue) { - zval _6; - zval query, bindParams, bindTypes, phql, container, _0, _5, _7, _8, _1$$3, _2$$3, _4$$3, _9$$6; + zval _1; + zend_bool _0, _6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval *value = NULL, value_sub, _2, _3, _4, _5, _7, _8, _9, _10; zval *this_ptr = getThis(); - ZVAL_UNDEF(&query); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); - ZVAL_UNDEF(&phql); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); ZVAL_UNDEF(&_5); ZVAL_UNDEF(&_7); ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_9$$6); - ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &value); + ZEPHIR_SEPARATE_PARAM(value); - ZEPHIR_CALL_METHOD(&phql, this_ptr, "getphql", NULL, 488); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "the services related to the ORM"); - ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_mvc_model_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model/Query/Builder.zep", 1035); - ZEPHIR_MM_RESTORE(); - return; + + _0 = Z_TYPE_P(value) != IS_STRING; + if (_0) { + _0 = 1 != zephir_is_numeric(value); } - ZEPHIR_INIT_VAR(&_6); - zephir_create_array(&_6, 2, 0); - zephir_array_fast_append(&_6, &phql); - zephir_array_fast_append(&_6, &container); - ZEPHIR_INIT_VAR(&_7); - ZVAL_STRING(&_7, "Phalcon\\Mvc\\Model\\Query"); - ZEPHIR_CALL_METHOD(&_5, &container, "get", NULL, 0, &_7, &_6); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&query, &_5); - zephir_read_property(&_0, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&bindParams, &_0); - if (Z_TYPE_P(&bindParams) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(NULL, &query, "setbindparams", NULL, 0, &bindParams); - zephir_check_call_status(); + if (UNEXPECTED(_0)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid header value", "phalcon/Http/Message/AbstractMessage.zep", 385); + return; } - zephir_read_property(&_0, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&bindTypes, &_0); - if (Z_TYPE_P(&bindTypes) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(NULL, &query, "setbindtypes", NULL, 0, &bindTypes); - zephir_check_call_status(); + zephir_cast_to_string(&_1, value); + ZEPHIR_CPY_WRT(value, &_1); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "#(?:(?:(?= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(values) + ZEND_PARSE_PARAMETERS_END(); +#endif + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &values); - RETURN_MEMBER(getThis(), "conditions"); + + ZEPHIR_CPY_WRT(&valueArray, values); + if (UNEXPECTED(Z_TYPE_P(values) != IS_ARRAY)) { + ZEPHIR_INIT_VAR(&_0$$3); + zephir_create_array(&_0$$3, 1, 0); + zephir_array_fast_append(&_0$$3, values); + ZEPHIR_CPY_WRT(&valueArray, &_0$$3); + } + if (UNEXPECTED(ZEPHIR_IS_EMPTY(&valueArray))) { + ZEPHIR_INIT_VAR(&_1$$4); + object_init_ex(&_1$$4, phalcon_http_message_exception_invalidargumentexception_ce); + ZEPHIR_INIT_VAR(&_2$$4); + ZEPHIR_CONCAT_SS(&_2$$4, "Invalid header value: must be a string or ", "array of strings; cannot be an empty array"); + ZEPHIR_CALL_METHOD(NULL, &_1$$4, "__construct", NULL, 40, &_2$$4); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$4, "phalcon/Http/Message/AbstractMessage.zep", 412); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_VAR(&valueData); + array_init(&valueData); + zephir_is_iterable(&valueArray, 0, "phalcon/Http/Message/AbstractMessage.zep", 422); + if (Z_TYPE_P(&valueArray) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&valueArray), _3) + { + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _3); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkheadervalue", &_5, 41, &value); + zephir_check_call_status(); + zephir_cast_to_string(&_6$$5, &value); + zephir_array_append(&valueData, &_6$$5, PH_SEPARATE, "phalcon/Http/Message/AbstractMessage.zep", 419); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &valueArray, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_4, &valueArray, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_4)) { + break; + } + ZEPHIR_CALL_METHOD(&value, &valueArray, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkheadervalue", &_5, 41, &value); + zephir_check_call_status(); + zephir_cast_to_string(&_7$$6, &value); + zephir_array_append(&valueData, &_7$$6, PH_SEPARATE, "phalcon/Http/Message/AbstractMessage.zep", 419); + ZEPHIR_CALL_METHOD(NULL, &valueArray, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + RETURN_CCTOR(&valueData); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, groupBy) +static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, getUriHost) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *group = NULL, group_sub, _0$$4, _1$$4, _2$$4, _3$$3; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *uri, uri_sub, host, _0, _1$$3, _2$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&group_sub); - ZVAL_UNDEF(&_0$$4); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&uri_sub); + ZVAL_UNDEF(&host); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(group) + Z_PARAM_OBJECT_OF_CLASS(uri, zephir_get_internal_ce(SL("psr\\http\\message\\uriinterface"))) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &group); - ZEPHIR_SEPARATE_PARAM(group); + zephir_fetch_params(1, 1, 0, &uri); - if (Z_TYPE_P(group) == IS_STRING) { - if (zephir_memnstr_str(group, SL(","), "phalcon/Mvc/Model/Query/Builder.zep", 1091)) { - ZEPHIR_INIT_VAR(&_0$$4); - ZEPHIR_INIT_VAR(&_1$$4); - ZVAL_STRING(&_1$$4, " "); - ZEPHIR_INIT_VAR(&_2$$4); - ZVAL_STRING(&_2$$4, ""); - zephir_fast_str_replace(&_0$$4, &_1$$4, &_2$$4, group); - ZEPHIR_CPY_WRT(group, &_0$$4); - } - ZEPHIR_INIT_VAR(&_3$$3); - zephir_fast_explode_str(&_3$$3, SL(","), group, LONG_MAX); - ZEPHIR_CPY_WRT(group, &_3$$3); + ZEPHIR_CALL_METHOD(&host, uri, "gethost", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, uri, "getport", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&_0) != IS_NULL)) { + ZEPHIR_CALL_METHOD(&_1$$3, uri, "getport", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2$$3); + ZEPHIR_CONCAT_SV(&_2$$3, ":", &_1$$3); + zephir_concat_self(&host, &_2$$3); } - zephir_update_property_zval(this_ptr, ZEND_STRL("group"), group); - RETURN_THIS(); + RETURN_CCTOR(&host); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, having) +static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, populateHeaderCollection) { + zval _5$$3, _9$$4; + zend_string *_3; + zend_ulong _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval bindParams, bindTypes; - zval *conditions_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, currentBindParams, currentBindTypes, _0$$3, _1$$5; - zval conditions; + zephir_fcall_cache_entry *_4 = NULL, *_7 = NULL, *_8 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *headers_param = NULL, collection, name, value, *_0, _1, _6$$3, _10$$4; + zval headers; zval *this_ptr = getThis(); - ZVAL_UNDEF(&conditions); - ZVAL_UNDEF(¤tBindParams); - ZVAL_UNDEF(¤tBindTypes); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$5); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&headers); + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_10$$4); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_9$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(conditions) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(bindParams) - Z_PARAM_ARRAY(bindTypes) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(headers) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &conditions_param, &bindParams_param, &bindTypes_param); - zephir_get_strval(&conditions, conditions_param); - if (!bindParams_param) { - ZEPHIR_INIT_VAR(&bindParams); - array_init(&bindParams); - } else { - zephir_get_arrval(&bindParams, bindParams_param); - } - if (!bindTypes_param) { - ZEPHIR_INIT_VAR(&bindTypes); - array_init(&bindTypes); - } else { - zephir_get_arrval(&bindTypes, bindTypes_param); - } + zephir_fetch_params(1, 1, 0, &headers_param); + zephir_get_arrval(&headers, headers_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("having"), &conditions); - zephir_read_property(¤tBindParams, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(¤tBindParams) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&_0$$3); - zephir_add_function(&_0$$3, ¤tBindParams, &bindParams); - zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &_0$$3); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &bindParams); - } - zephir_read_property(¤tBindTypes, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(¤tBindTypes) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&_1$$5); - zephir_add_function(&_1$$5, ¤tBindTypes, &bindTypes); - zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &_1$$5); + ZEPHIR_INIT_VAR(&collection); + object_init_ex(&collection, phalcon_collection_ce); + ZEPHIR_CALL_METHOD(NULL, &collection, "__construct", NULL, 22); + zephir_check_call_status(); + zephir_is_iterable(&headers, 0, "phalcon/Http/Message/AbstractMessage.zep", 466); + if (Z_TYPE_P(&headers) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&headers), _2, _3, _0) + { + ZEPHIR_INIT_NVAR(&name); + if (_3 != NULL) { + ZVAL_STR_COPY(&name, _3); + } else { + ZVAL_LONG(&name, _2); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkheadername", &_4, 35, &name); + zephir_check_call_status(); + zephir_cast_to_string(&_5$$3, &name); + ZEPHIR_CPY_WRT(&name, &_5$$3); + ZEPHIR_CALL_METHOD(&_6$$3, this_ptr, "getheadervalue", &_7, 36, &value); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&value, &_6$$3); + ZEPHIR_CALL_METHOD(NULL, &collection, "set", &_8, 42, &name, &value); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &bindTypes); + ZEPHIR_CALL_METHOD(NULL, &headers, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &headers, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&name, &headers, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &headers, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkheadername", &_4, 35, &name); + zephir_check_call_status(); + zephir_cast_to_string(&_9$$4, &name); + ZEPHIR_CPY_WRT(&name, &_9$$4); + ZEPHIR_CALL_METHOD(&_10$$4, this_ptr, "getheadervalue", &_7, 36, &value); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&value, &_10$$4); + ZEPHIR_CALL_METHOD(NULL, &collection, "set", &_8, 42, &name, &value); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &headers, "next", NULL, 0); + zephir_check_call_status(); + } } - RETURN_THIS(); + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&name); + RETURN_CCTOR(&collection); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, inHaving) +static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, processBody) { + zend_bool _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval values; - zval *expr_param = NULL, *values_param = NULL, *operator_param = NULL, _0; - zval expr, operator; + zval mode; + zval *body = NULL, body_sub, *mode_param = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&operator); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&values); + ZVAL_UNDEF(&body_sub); + ZVAL_UNDEF(&mode); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(expr) - Z_PARAM_ARRAY(values) + ZEND_PARSE_PARAMETERS_START(0, 2) Z_PARAM_OPTIONAL - Z_PARAM_STR(operator) + Z_PARAM_ZVAL(body) + Z_PARAM_STR(mode) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &expr_param, &values_param, &operator_param); - if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { - zephir_get_strval(&expr, expr_param); - } else { - ZEPHIR_INIT_VAR(&expr); + zephir_fetch_params(1, 0, 2, &body, &mode_param); + if (!body) { + body = &body_sub; + ZEPHIR_INIT_VAR(body); + ZVAL_STRING(body, "php://memory"); } - ZEPHIR_OBS_COPY_OR_DUP(&values, values_param); - if (!operator_param) { - ZEPHIR_INIT_VAR(&operator); - ZVAL_STRING(&operator, "and"); + if (!mode_param) { + ZEPHIR_INIT_VAR(&mode); + ZVAL_STRING(&mode, "r+b"); } else { - if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); + if (UNEXPECTED(Z_TYPE_P(mode_param) != IS_STRING && Z_TYPE_P(mode_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'mode' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { - zephir_get_strval(&operator, operator_param); + if (EXPECTED(Z_TYPE_P(mode_param) == IS_STRING)) { + zephir_get_strval(&mode, mode_param); } else { - ZEPHIR_INIT_VAR(&operator); + ZEPHIR_INIT_VAR(&mode); } } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "Having"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "conditionin", NULL, 0, &_0, &operator, &expr, &values); + _0 = Z_TYPE_P(body) == IS_OBJECT; + if (_0) { + _0 = zephir_is_instance_of(body, SL("Psr\\Http\\Message\\StreamInterface")); + } + if (UNEXPECTED(_0)) { + RETVAL_ZVAL(body, 1, 0); + RETURN_MM(); + } + _1 = Z_TYPE_P(body) != IS_STRING; + if (_1) { + _1 = Z_TYPE_P(body) != IS_RESOURCE; + } + if (UNEXPECTED(_1)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid stream passed as a parameter", "phalcon/Http/Message/AbstractMessage.zep", 486); + return; + } + object_init_ex(return_value, phalcon_http_message_stream_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 43, body, &mode); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, innerJoin) +static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, processHeaders) { - zval _0; + zend_bool _1$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *model_param = NULL, *conditions_param = NULL, *alias_param = NULL, _1; - zval model, conditions, alias; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *headers, headers_sub, collection, _0$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&conditions); - ZVAL_UNDEF(&alias); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&headers_sub); + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&_0$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(model) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(conditions) - Z_PARAM_STR_OR_NULL(alias) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(headers) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &model_param, &conditions_param, &alias_param); - if (UNEXPECTED(Z_TYPE_P(model_param) != IS_STRING && Z_TYPE_P(model_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'model' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(model_param) == IS_STRING)) { - zephir_get_strval(&model, model_param); - } else { - ZEPHIR_INIT_VAR(&model); - } - if (!conditions_param) { - ZEPHIR_INIT_VAR(&conditions); - } else { - zephir_get_strval(&conditions, conditions_param); - } - if (!alias_param) { - ZEPHIR_INIT_VAR(&alias); - } else { - zephir_get_strval(&alias, alias_param); - } + zephir_fetch_params(1, 1, 0, &headers); - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 4, 0); - zephir_array_fast_append(&_0, &model); - zephir_array_fast_append(&_0, &conditions); - zephir_array_fast_append(&_0, &alias); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "INNER"); - zephir_array_fast_append(&_0, &_1); - zephir_update_property_array_append(this_ptr, SL("joins"), &_0); - RETURN_THIS(); + if (EXPECTED(Z_TYPE_P(headers) == IS_ARRAY)) { + ZEPHIR_CALL_METHOD(&collection, this_ptr, "populateheadercollection", NULL, 44, headers); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "checkheaderhost", NULL, 45, &collection); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&collection, &_0$$3); + } else { + _1$$4 = Z_TYPE_P(headers) == IS_OBJECT; + if (_1$$4) { + _1$$4 = zephir_instance_of_ev(headers, phalcon_collection_collectioninterface_ce); + } + if (UNEXPECTED(!(_1$$4))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Headers needs to be either an array or instance of Phalcon\\Collection", "phalcon/Http/Message/AbstractMessage.zep", 506); + return; + } + ZEPHIR_CPY_WRT(&collection, headers); + } + RETURN_CCTOR(&collection); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, inWhere) +static PHP_METHOD(Phalcon_Http_Message_AbstractMessage, processProtocol) { + zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval values; - zval *expr_param = NULL, *values_param = NULL, *operator_param = NULL, _0; - zval expr, operator; + zval *protocol = NULL, protocol_sub, protocols, _1$$4, _2$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&operator); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&values); + ZVAL_UNDEF(&protocol_sub); + ZVAL_UNDEF(&protocols); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(expr) - Z_PARAM_ARRAY(values) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_STR(operator) + Z_PARAM_ZVAL(protocol) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &expr_param, &values_param, &operator_param); - if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { - zephir_get_strval(&expr, expr_param); - } else { - ZEPHIR_INIT_VAR(&expr); - } - ZEPHIR_OBS_COPY_OR_DUP(&values, values_param); - if (!operator_param) { - ZEPHIR_INIT_VAR(&operator); - ZVAL_STRING(&operator, "and"); - } else { - if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { - zephir_get_strval(&operator, operator_param); - } else { - ZEPHIR_INIT_VAR(&operator); - } + zephir_fetch_params(1, 0, 1, &protocol); + if (!protocol) { + protocol = &protocol_sub; + ZEPHIR_INIT_VAR(protocol); + ZVAL_STRING(protocol, ""); } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "Where"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "conditionin", NULL, 0, &_0, &operator, &expr, &values); - zephir_check_call_status(); + ZEPHIR_INIT_VAR(&protocols); + zephir_create_array(&protocols, 4, 0); + add_assoc_long_ex(&protocols, SL("1.0"), 1); + add_assoc_long_ex(&protocols, SL("1.1"), 1); + add_assoc_long_ex(&protocols, SL("2.0"), 1); + add_assoc_long_ex(&protocols, SL("3.0"), 1); + _0 = ZEPHIR_IS_EMPTY(protocol); + if (!(_0)) { + _0 = Z_TYPE_P(protocol) != IS_STRING; + } + if (UNEXPECTED(_0)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid protocol value", "phalcon/Http/Message/AbstractMessage.zep", 534); + return; + } + if (UNEXPECTED(!(zephir_array_isset(&protocols, protocol)))) { + ZEPHIR_INIT_VAR(&_1$$4); + object_init_ex(&_1$$4, phalcon_http_message_exception_invalidargumentexception_ce); + ZEPHIR_INIT_VAR(&_2$$4); + ZEPHIR_CONCAT_SV(&_2$$4, "Unsupported protocol ", protocol); + ZEPHIR_CALL_METHOD(NULL, &_1$$4, "__construct", NULL, 40, &_2$$4); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$4, "phalcon/Http/Message/AbstractMessage.zep", 540); + ZEPHIR_MM_RESTORE(); + return; + } + RETVAL_ZVAL(protocol, 1, 0); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, join) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *model_param = NULL, *conditions_param = NULL, *alias_param = NULL, *type_param = NULL; - zval model, conditions, alias, type; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&conditions); - ZVAL_UNDEF(&alias); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 4) - Z_PARAM_STR(model) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(conditions) - Z_PARAM_STR_OR_NULL(alias) - Z_PARAM_STR_OR_NULL(type) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 3, &model_param, &conditions_param, &alias_param, &type_param); - if (UNEXPECTED(Z_TYPE_P(model_param) != IS_STRING && Z_TYPE_P(model_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'model' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(model_param) == IS_STRING)) { - zephir_get_strval(&model, model_param); - } else { - ZEPHIR_INIT_VAR(&model); - } - if (!conditions_param) { - ZEPHIR_INIT_VAR(&conditions); - } else { - zephir_get_strval(&conditions, conditions_param); - } - if (!alias_param) { - ZEPHIR_INIT_VAR(&alias); - } else { - zephir_get_strval(&alias, alias_param); - } - if (!type_param) { - ZEPHIR_INIT_VAR(&type); - } else { - zephir_get_strval(&type, type_param); - } - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 4, 0); - zephir_array_fast_append(&_0, &model); - zephir_array_fast_append(&_0, &conditions); - zephir_array_fast_append(&_0, &alias); - zephir_array_fast_append(&_0, &type); - zephir_update_property_array_append(this_ptr, SL("joins"), &_0); - RETURN_THIS(); + +ZEPHIR_INIT_CLASS(Phalcon_Http_Message_AbstractRequest) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Message, AbstractRequest, phalcon, http_message_abstractrequest, phalcon_http_message_abstractmessage_ce, phalcon_http_message_abstractrequest_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_string(phalcon_http_message_abstractrequest_ce, SL("method"), "GET", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_message_abstractrequest_ce, SL("requestTarget"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_message_abstractrequest_ce, SL("uri"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_http_message_abstractrequest_ce, 1, phalcon_http_message_requestmethodinterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, leftJoin) +static PHP_METHOD(Phalcon_Http_Message_AbstractRequest, getMethod) { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *model_param = NULL, *conditions_param = NULL, *alias_param = NULL, _1; - zval model, conditions, alias; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&conditions); - ZVAL_UNDEF(&alias); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(model) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(conditions) - Z_PARAM_STR_OR_NULL(alias) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &model_param, &conditions_param, &alias_param); - if (UNEXPECTED(Z_TYPE_P(model_param) != IS_STRING && Z_TYPE_P(model_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'model' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(model_param) == IS_STRING)) { - zephir_get_strval(&model, model_param); - } else { - ZEPHIR_INIT_VAR(&model); - } - if (!conditions_param) { - ZEPHIR_INIT_VAR(&conditions); - } else { - zephir_get_strval(&conditions, conditions_param); - } - if (!alias_param) { - ZEPHIR_INIT_VAR(&alias); - } else { - zephir_get_strval(&alias, alias_param); - } + RETURN_MEMBER(getThis(), "method"); +} +static PHP_METHOD(Phalcon_Http_Message_AbstractRequest, getUri) +{ + zval *this_ptr = getThis(); - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 4, 0); - zephir_array_fast_append(&_0, &model); - zephir_array_fast_append(&_0, &conditions); - zephir_array_fast_append(&_0, &alias); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "LEFT"); - zephir_array_fast_append(&_0, &_1); - zephir_update_property_array_append(this_ptr, SL("joins"), &_0); - RETURN_THIS(); + + + RETURN_MEMBER(getThis(), "uri"); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, limit) +static PHP_METHOD(Phalcon_Http_Message_AbstractRequest, getRequestTarget) { + zval requestTarget, _0, _1$$3, _2$$3, _3$$3, _4$$4, _5$$4, _6$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *limit_param = NULL, *offset = NULL, offset_sub, __$null, _0, _1, _2$$4, _3$$4; - zend_long limit, ZEPHIR_LAST_CALL_STATUS; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&offset_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&requestTarget); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_LONG(limit) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(offset) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$4); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &limit_param, &offset); - limit = zephir_get_intval(limit_param); - if (!offset) { - offset = &offset_sub; - offset = &__$null; - } - - ZVAL_LONG(&_0, limit); - ZEPHIR_CALL_FUNCTION(&_1, "abs", NULL, 238, &_0); - zephir_check_call_status(); - limit = zephir_get_numberval(&_1); - if (UNEXPECTED(limit == 0)) { - RETURN_THIS(); - } - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, limit); - zephir_update_property_zval(this_ptr, ZEND_STRL("limit"), &_0); - if (zephir_is_numeric(offset)) { - ZVAL_LONG(&_2$$4, zephir_get_intval(offset)); - ZEPHIR_CALL_FUNCTION(&_3$$4, "abs", NULL, 238, &_2$$4); + zephir_read_property(&_0, this_ptr, ZEND_STRL("requestTarget"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&requestTarget, &_0); + if (UNEXPECTED(Z_TYPE_P(&requestTarget) == IS_NULL)) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("uri"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&requestTarget, &_1$$3, "getpath", NULL, 0); zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("offset"), &_3$$4); + zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("uri"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_3$$3, &_2$$3, "getquery", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(!(ZEPHIR_IS_EMPTY(&_3$$3)))) { + zephir_read_property(&_4$$4, this_ptr, ZEND_STRL("uri"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_5$$4, &_4$$4, "getquery", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_6$$4); + ZEPHIR_CONCAT_SV(&_6$$4, "?", &_5$$4); + zephir_concat_self(&requestTarget, &_6$$4); + } + if (UNEXPECTED(ZEPHIR_IS_EMPTY(&requestTarget))) { + ZEPHIR_INIT_NVAR(&requestTarget); + ZVAL_STRING(&requestTarget, "/"); + } } - RETURN_THIS(); + RETURN_CCTOR(&requestTarget); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, notBetweenHaving) +static PHP_METHOD(Phalcon_Http_Message_AbstractRequest, withMethod) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *expr_param = NULL, *minimum, minimum_sub, *maximum, maximum_sub, *operator_param = NULL, _0; - zval expr, operator; + zval *method, method_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&operator); - ZVAL_UNDEF(&minimum_sub); - ZVAL_UNDEF(&maximum_sub); + ZVAL_UNDEF(&method_sub); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 4) - Z_PARAM_STR(expr) - Z_PARAM_ZVAL(minimum) - Z_PARAM_ZVAL(maximum) - Z_PARAM_OPTIONAL - Z_PARAM_STR(operator) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(method) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 1, &expr_param, &minimum, &maximum, &operator_param); - if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { - zephir_get_strval(&expr, expr_param); - } else { - ZEPHIR_INIT_VAR(&expr); - } - if (!operator_param) { - ZEPHIR_INIT_VAR(&operator); - ZVAL_STRING(&operator, "and"); - } else { - if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { - zephir_get_strval(&operator, operator_param); - } else { - ZEPHIR_INIT_VAR(&operator); - } - } + zephir_fetch_params(1, 1, 0, &method); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processmethod", NULL, 106, method); + zephir_check_call_status(); ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "Having"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "conditionnotbetween", NULL, 0, &_0, &operator, &expr, minimum, maximum); + ZVAL_STRING(&_0, "method"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, method, &_0); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, notBetweenWhere) +static PHP_METHOD(Phalcon_Http_Message_AbstractRequest, withRequestTarget) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *expr_param = NULL, *minimum, minimum_sub, *maximum, maximum_sub, *operator_param = NULL, _0; - zval expr, operator; + zval *requestTarget, requestTarget_sub, _0, _1, _2, _3, _4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&operator); - ZVAL_UNDEF(&minimum_sub); - ZVAL_UNDEF(&maximum_sub); + ZVAL_UNDEF(&requestTarget_sub); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 4) - Z_PARAM_STR(expr) - Z_PARAM_ZVAL(minimum) - Z_PARAM_ZVAL(maximum) - Z_PARAM_OPTIONAL - Z_PARAM_STR(operator) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(requestTarget) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 1, &expr_param, &minimum, &maximum, &operator_param); - if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { - zephir_get_strval(&expr, expr_param); - } else { - ZEPHIR_INIT_VAR(&expr); - } - if (!operator_param) { - ZEPHIR_INIT_VAR(&operator); - ZVAL_STRING(&operator, "and"); - } else { - if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { - zephir_get_strval(&operator, operator_param); - } else { - ZEPHIR_INIT_VAR(&operator); - } - } + zephir_fetch_params(1, 1, 0, &requestTarget); ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "Where"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "conditionnotbetween", NULL, 0, &_0, &operator, &expr, minimum, maximum); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "/\\s/"); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "/\\s/"); + zephir_preg_match(&_2, &_3, requestTarget, &_0, 0, 0 , 0 ); + if (UNEXPECTED(zephir_is_true(&_2))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid request target: cannot contain whitespace", "phalcon/Http/Message/AbstractRequest.zep", 131); + return; + } + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "requestTarget"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, requestTarget, &_4); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, notInHaving) +static PHP_METHOD(Phalcon_Http_Message_AbstractRequest, withUri) { + double _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval values; - zval *expr_param = NULL, *values_param = NULL, *operator_param = NULL, _0; - zval expr, operator; + zval *uri, uri_sub, *preserveHost = NULL, preserveHost_sub, __$false, headers, newInstance, _1, _2, _3, _4$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&operator); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&values); + ZVAL_UNDEF(&uri_sub); + ZVAL_UNDEF(&preserveHost_sub); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&headers); + ZVAL_UNDEF(&newInstance); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(expr) - Z_PARAM_ARRAY(values) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_OBJECT_OF_CLASS(uri, zephir_get_internal_ce(SL("psr\\http\\message\\uriinterface"))) Z_PARAM_OPTIONAL - Z_PARAM_STR(operator) + Z_PARAM_ZVAL(preserveHost) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &expr_param, &values_param, &operator_param); - if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { - zephir_get_strval(&expr, expr_param); - } else { - ZEPHIR_INIT_VAR(&expr); - } - ZEPHIR_OBS_COPY_OR_DUP(&values, values_param); - if (!operator_param) { - ZEPHIR_INIT_VAR(&operator); - ZVAL_STRING(&operator, "and"); - } else { - if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { - zephir_get_strval(&operator, operator_param); + zephir_fetch_params(1, 1, 1, &uri, &preserveHost); + if (!preserveHost) { + preserveHost = &preserveHost_sub; + ZEPHIR_CPY_WRT(preserveHost, &__$false); } else { - ZEPHIR_INIT_VAR(&operator); - } + ZEPHIR_SEPARATE_PARAM(preserveHost); } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "Having"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "conditionnotin", NULL, 0, &_0, &operator, &expr, &values); + _0 = zephir_get_boolval(preserveHost); + ZEPHIR_INIT_NVAR(preserveHost); + ZVAL_BOOL(preserveHost, _0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_2); + if (zephir_clone(&_2, &_1) == FAILURE) { + RETURN_MM(); + } + ZEPHIR_CPY_WRT(&headers, &_2); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "uri"); + ZEPHIR_CALL_METHOD(&newInstance, this_ptr, "cloneinstance", NULL, 21, uri, &_3); zephir_check_call_status(); - RETURN_MM(); + if (UNEXPECTED(!zephir_is_true(preserveHost))) { + ZEPHIR_CALL_METHOD(&_4$$3, this_ptr, "checkheaderhost", NULL, 45, &headers); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&headers, &_4$$3); + zephir_update_property_zval(&newInstance, ZEND_STRL("headers"), &headers); + } + RETURN_CCTOR(&newInstance); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, notInWhere) +static PHP_METHOD(Phalcon_Http_Message_AbstractRequest, processMethod) { + zend_bool _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval values; - zval *expr_param = NULL, *values_param = NULL, *operator_param = NULL, _0; - zval expr, operator; + zval *method = NULL, method_sub, methods, _2$$3, _3$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&operator); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&values); + ZVAL_UNDEF(&method_sub); + ZVAL_UNDEF(&methods); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(expr) - Z_PARAM_ARRAY(values) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_STR(operator) + Z_PARAM_ZVAL(method) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &expr_param, &values_param, &operator_param); - if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { - zephir_get_strval(&expr, expr_param); - } else { - ZEPHIR_INIT_VAR(&expr); + zephir_fetch_params(1, 0, 1, &method); + if (!method) { + method = &method_sub; + ZEPHIR_INIT_VAR(method); + ZVAL_STRING(method, ""); } - ZEPHIR_OBS_COPY_OR_DUP(&values, values_param); - if (!operator_param) { - ZEPHIR_INIT_VAR(&operator); - ZVAL_STRING(&operator, "and"); - } else { - if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); - RETURN_MM_NULL(); + + + ZEPHIR_INIT_VAR(&methods); + zephir_create_array(&methods, 10, 0); + add_assoc_long_ex(&methods, SL("CONNECT"), 1); + add_assoc_long_ex(&methods, SL("DELETE"), 1); + add_assoc_long_ex(&methods, SL("GET"), 1); + add_assoc_long_ex(&methods, SL("HEAD"), 1); + add_assoc_long_ex(&methods, SL("OPTIONS"), 1); + add_assoc_long_ex(&methods, SL("PATCH"), 1); + add_assoc_long_ex(&methods, SL("POST"), 1); + add_assoc_long_ex(&methods, SL("PURGE"), 1); + add_assoc_long_ex(&methods, SL("PUT"), 1); + add_assoc_long_ex(&methods, SL("TRACE"), 1); + _0 = !(ZEPHIR_IS_EMPTY(method)); + if (_0) { + _0 = Z_TYPE_P(method) == IS_STRING; } - if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { - zephir_get_strval(&operator, operator_param); - } else { - ZEPHIR_INIT_VAR(&operator); + _1 = _0; + if (_1) { + _1 = zephir_array_isset(&methods, method); } + if (UNEXPECTED(!(_1))) { + ZEPHIR_INIT_VAR(&_2$$3); + object_init_ex(&_2$$3, phalcon_http_message_exception_invalidargumentexception_ce); + ZEPHIR_INIT_VAR(&_3$$3); + ZEPHIR_CONCAT_SV(&_3$$3, "Invalid or unsupported method ", method); + ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", NULL, 40, &_3$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_2$$3, "phalcon/Http/Message/AbstractRequest.zep", 216); + ZEPHIR_MM_RESTORE(); + return; } - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "Where"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "conditionnotin", NULL, 0, &_0, &operator, &expr, &values); - zephir_check_call_status(); + RETVAL_ZVAL(method, 1, 0); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, offset) +static PHP_METHOD(Phalcon_Http_Message_AbstractRequest, processUri) { - zval *offset_param = NULL, _0; - zend_long offset; + zend_bool _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *uri, uri_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&uri_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(offset) + Z_PARAM_ZVAL(uri) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &offset_param); - offset = zephir_get_intval(offset_param); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &uri); - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, offset); - zephir_update_property_zval(this_ptr, ZEND_STRL("offset"), &_0); - RETURN_THISW(); + _0 = Z_TYPE_P(uri) == IS_OBJECT; + if (_0) { + _0 = zephir_is_instance_of(uri, SL("Psr\\Http\\Message\\UriInterface")); + } + if (UNEXPECTED(_0)) { + RETVAL_ZVAL(uri, 1, 0); + RETURN_MM(); + } + if (EXPECTED(Z_TYPE_P(uri) == IS_STRING)) { + object_init_ex(return_value, phalcon_http_message_uri_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 107, uri); + zephir_check_call_status(); + RETURN_MM(); + } + if (Z_TYPE_P(uri) == IS_NULL) { + object_init_ex(return_value, phalcon_http_message_uri_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 107); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid uri passed as a parameter", "phalcon/Http/Message/AbstractRequest.zep", 245); + return; } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, orderBy) -{ - zval *orderBy, orderBy_sub; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&orderBy_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(orderBy) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - zephir_fetch_params_without_memory_grow(1, 0, &orderBy); - zephir_update_property_zval(this_ptr, ZEND_STRL("order"), orderBy); - RETURN_THISW(); + +ZEPHIR_INIT_CLASS(Phalcon_Http_Message_Request) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Message, Request, phalcon, http_message_request, phalcon_http_message_abstractrequest_ce, phalcon_http_message_request_method_entry, ZEND_ACC_FINAL_CLASS); + + zend_class_implements(phalcon_http_message_request_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\requestinterface"))); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, orHaving) +static PHP_METHOD(Phalcon_Http_Message_Request, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval bindParams, bindTypes; - zval *conditions_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, currentConditions, _0$$3; - zval conditions; + zval *method_param = NULL, *uri = NULL, uri_sub, *body = NULL, body_sub, *headers = NULL, headers_sub, __$null, _0, _1, _2, _3, _4, _5; + zval method; zval *this_ptr = getThis(); - ZVAL_UNDEF(&conditions); - ZVAL_UNDEF(¤tConditions); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&uri_sub); + ZVAL_UNDEF(&body_sub); + ZVAL_UNDEF(&headers_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(conditions) + ZEND_PARSE_PARAMETERS_START(0, 4) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(bindParams) - Z_PARAM_ARRAY(bindTypes) + Z_PARAM_STR(method) + Z_PARAM_ZVAL_OR_NULL(uri) + Z_PARAM_ZVAL(body) + Z_PARAM_ZVAL(headers) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &conditions_param, &bindParams_param, &bindTypes_param); - if (UNEXPECTED(Z_TYPE_P(conditions_param) != IS_STRING && Z_TYPE_P(conditions_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'conditions' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(conditions_param) == IS_STRING)) { - zephir_get_strval(&conditions, conditions_param); + zephir_fetch_params(1, 0, 4, &method_param, &uri, &body, &headers); + if (!method_param) { + ZEPHIR_INIT_VAR(&method); + ZVAL_STRING(&method, "GET"); } else { - ZEPHIR_INIT_VAR(&conditions); + zephir_get_strval(&method, method_param); } - if (!bindParams_param) { - ZEPHIR_INIT_VAR(&bindParams); - array_init(&bindParams); - } else { - zephir_get_arrval(&bindParams, bindParams_param); + if (!uri) { + uri = &uri_sub; + uri = &__$null; } - if (!bindTypes_param) { - ZEPHIR_INIT_VAR(&bindTypes); - array_init(&bindTypes); + if (!body) { + body = &body_sub; + ZEPHIR_INIT_VAR(body); + ZVAL_STRING(body, "php://memory"); } else { - zephir_get_arrval(&bindTypes, bindTypes_param); + ZEPHIR_SEPARATE_PARAM(body); + } + if (!headers) { + headers = &headers_sub; + ZEPHIR_INIT_VAR(headers); + array_init(headers); } - ZEPHIR_OBS_VAR(¤tConditions); - zephir_read_property(¤tConditions, this_ptr, ZEND_STRL("having"), PH_NOISY_CC); - if (zephir_is_true(¤tConditions)) { - ZEPHIR_INIT_VAR(&_0$$3); - ZEPHIR_CONCAT_SVSVS(&_0$$3, "(", ¤tConditions, ") OR (", &conditions, ")"); - zephir_get_strval(&conditions, &_0$$3); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "php://input"); + if (UNEXPECTED(ZEPHIR_IS_IDENTICAL(&_0, body))) { + ZEPHIR_INIT_NVAR(body); + object_init_ex(body, phalcon_http_message_stream_input_ce); + ZEPHIR_CALL_METHOD(NULL, body, "__construct", NULL, 282); + zephir_check_call_status(); } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "having", NULL, 0, &conditions, &bindParams, &bindTypes); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "processuri", NULL, 283, uri); zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("uri"), &_1); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "processheaders", NULL, 284, headers); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("headers"), &_2); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "processmethod", NULL, 106, &method); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("method"), &_3); + ZEPHIR_INIT_VAR(&_5); + ZVAL_STRING(&_5, "w+b"); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "processbody", NULL, 37, body, &_5); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("body"), &_4); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, orWhere) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Message_RequestFactory) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Message, RequestFactory, phalcon, http_message_requestfactory, phalcon_http_message_requestfactory_method_entry, ZEND_ACC_FINAL_CLASS); + + zend_class_implements(phalcon_http_message_requestfactory_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\requestfactoryinterface"))); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Http_Message_RequestFactory, createRequest) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval bindParams, bindTypes; - zval *conditions_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, currentConditions, _0$$3; - zval conditions; + zval *method_param = NULL, *uri, uri_sub; + zval method; zval *this_ptr = getThis(); - ZVAL_UNDEF(&conditions); - ZVAL_UNDEF(¤tConditions); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&uri_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(conditions) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(bindParams) - Z_PARAM_ARRAY(bindTypes) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(method) + Z_PARAM_ZVAL(uri) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &conditions_param, &bindParams_param, &bindTypes_param); - if (UNEXPECTED(Z_TYPE_P(conditions_param) != IS_STRING && Z_TYPE_P(conditions_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'conditions' must be of the type string")); + zephir_fetch_params(1, 2, 0, &method_param, &uri); + if (UNEXPECTED(Z_TYPE_P(method_param) != IS_STRING && Z_TYPE_P(method_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'method' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(conditions_param) == IS_STRING)) { - zephir_get_strval(&conditions, conditions_param); - } else { - ZEPHIR_INIT_VAR(&conditions); - } - if (!bindParams_param) { - ZEPHIR_INIT_VAR(&bindParams); - array_init(&bindParams); - } else { - zephir_get_arrval(&bindParams, bindParams_param); - } - if (!bindTypes_param) { - ZEPHIR_INIT_VAR(&bindTypes); - array_init(&bindTypes); + if (EXPECTED(Z_TYPE_P(method_param) == IS_STRING)) { + zephir_get_strval(&method, method_param); } else { - zephir_get_arrval(&bindTypes, bindTypes_param); + ZEPHIR_INIT_VAR(&method); } - ZEPHIR_OBS_VAR(¤tConditions); - zephir_read_property(¤tConditions, this_ptr, ZEND_STRL("conditions"), PH_NOISY_CC); - if (zephir_is_true(¤tConditions)) { - ZEPHIR_INIT_VAR(&_0$$3); - ZEPHIR_CONCAT_SVSVS(&_0$$3, "(", ¤tConditions, ") OR (", &conditions, ")"); - zephir_get_strval(&conditions, &_0$$3); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "where", NULL, 0, &conditions, &bindParams, &bindTypes); + object_init_ex(return_value, phalcon_http_message_request_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 285, &method, uri); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, rightJoin) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *model_param = NULL, *conditions_param = NULL, *alias_param = NULL, _1; - zval model, conditions, alias; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&conditions); - ZVAL_UNDEF(&alias); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(model) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(conditions) - Z_PARAM_STR_OR_NULL(alias) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &model_param, &conditions_param, &alias_param); - if (UNEXPECTED(Z_TYPE_P(model_param) != IS_STRING && Z_TYPE_P(model_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'model' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(model_param) == IS_STRING)) { - zephir_get_strval(&model, model_param); - } else { - ZEPHIR_INIT_VAR(&model); - } - if (!conditions_param) { - ZEPHIR_INIT_VAR(&conditions); - } else { - zephir_get_strval(&conditions, conditions_param); - } - if (!alias_param) { - ZEPHIR_INIT_VAR(&alias); - } else { - zephir_get_strval(&alias, alias_param); - } - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 4, 0); - zephir_array_fast_append(&_0, &model); - zephir_array_fast_append(&_0, &conditions); - zephir_array_fast_append(&_0, &alias); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "RIGHT"); - zephir_array_fast_append(&_0, &_1); - zephir_update_property_array_append(this_ptr, SL("joins"), &_0); - RETURN_THIS(); -} -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, setBindParams) +ZEPHIR_INIT_CLASS(Phalcon_Http_Message_RequestMethodInterface) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_bool merge; - zval *bindParams_param = NULL, *merge_param = NULL, currentBindParams, _0$$4; - zval bindParams; - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Http\\Message, RequestMethodInterface, phalcon, http_message_requestmethodinterface, NULL); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(¤tBindParams); - ZVAL_UNDEF(&_0$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(bindParams) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(merge) - ZEND_PARSE_PARAMETERS_END(); -#endif + zephir_declare_class_constant_string(phalcon_http_message_requestmethodinterface_ce, SL("METHOD_CONNECT"), "CONNECT"); + zephir_declare_class_constant_string(phalcon_http_message_requestmethodinterface_ce, SL("METHOD_DELETE"), "DELETE"); - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &bindParams_param, &merge_param); - ZEPHIR_OBS_COPY_OR_DUP(&bindParams, bindParams_param); - if (!merge_param) { - merge = 0; - } else { - merge = zephir_get_boolval(merge_param); - } + zephir_declare_class_constant_string(phalcon_http_message_requestmethodinterface_ce, SL("METHOD_GET"), "GET"); + zephir_declare_class_constant_string(phalcon_http_message_requestmethodinterface_ce, SL("METHOD_HEAD"), "HEAD"); - if (merge) { - zephir_read_property(¤tBindParams, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(¤tBindParams) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&_0$$4); - zephir_add_function(&_0$$4, ¤tBindParams, &bindParams); - zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &_0$$4); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &bindParams); - } - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &bindParams); - } - RETURN_THIS(); + zephir_declare_class_constant_string(phalcon_http_message_requestmethodinterface_ce, SL("METHOD_OPTIONS"), "OPTIONS"); + + zephir_declare_class_constant_string(phalcon_http_message_requestmethodinterface_ce, SL("METHOD_PATCH"), "PATCH"); + + zephir_declare_class_constant_string(phalcon_http_message_requestmethodinterface_ce, SL("METHOD_POST"), "POST"); + + zephir_declare_class_constant_string(phalcon_http_message_requestmethodinterface_ce, SL("METHOD_PURGE"), "PURGE"); + + zephir_declare_class_constant_string(phalcon_http_message_requestmethodinterface_ce, SL("METHOD_PUT"), "PUT"); + + zephir_declare_class_constant_string(phalcon_http_message_requestmethodinterface_ce, SL("METHOD_TRACE"), "TRACE"); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, setBindTypes) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_bool merge; - zval *bindTypes_param = NULL, *merge_param = NULL, currentBindTypes, _0$$4; - zval bindTypes; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&bindTypes); - ZVAL_UNDEF(¤tBindTypes); - ZVAL_UNDEF(&_0$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(bindTypes) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(merge) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &bindTypes_param, &merge_param); - ZEPHIR_OBS_COPY_OR_DUP(&bindTypes, bindTypes_param); - if (!merge_param) { - merge = 0; - } else { - merge = zephir_get_boolval(merge_param); - } - if (UNEXPECTED(merge)) { - zephir_read_property(¤tBindTypes, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(¤tBindTypes) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&_0$$4); - zephir_add_function(&_0$$4, ¤tBindTypes, &bindTypes); - zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &_0$$4); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &bindTypes); - } - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &bindTypes); - } - RETURN_THIS(); + +ZEPHIR_INIT_CLASS(Phalcon_Http_Message_Response) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Message, Response, phalcon, http_message_response, phalcon_http_message_abstractmessage_ce, phalcon_http_message_response_method_entry, ZEND_ACC_FINAL_CLASS); + + zend_declare_property_string(phalcon_http_message_response_ce, SL("reasonPhrase"), "", ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_http_message_response_ce, SL("statusCode"), 200, ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_http_message_response_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\responseinterface"))); + zend_class_implements(phalcon_http_message_response_ce, 1, phalcon_http_message_responsestatuscodeinterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, setDI) +static PHP_METHOD(Phalcon_Http_Message_Response, getReasonPhrase) { - zval *container, container_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&container_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - zephir_fetch_params_without_memory_grow(1, 0, &container); + RETURN_MEMBER(getThis(), "reasonPhrase"); +} +static PHP_METHOD(Phalcon_Http_Message_Response, getStatusCode) +{ + zval *this_ptr = getThis(); - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); + + + RETURN_MEMBER(getThis(), "statusCode"); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, where) +static PHP_METHOD(Phalcon_Http_Message_Response, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval bindParams, bindTypes; - zval *conditions_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, currentBindParams, currentBindTypes, _0$$4, _1$$7; - zval conditions; + zval headers; + zend_long code, ZEPHIR_LAST_CALL_STATUS; + zval *body = NULL, body_sub, *code_param = NULL, *headers_param = NULL, _0, _1, _2, _3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&conditions); - ZVAL_UNDEF(¤tBindParams); - ZVAL_UNDEF(¤tBindTypes); - ZVAL_UNDEF(&_0$$4); - ZVAL_UNDEF(&_1$$7); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&bindTypes); + ZVAL_UNDEF(&body_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&headers); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(conditions) + ZEND_PARSE_PARAMETERS_START(0, 3) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(bindParams) - Z_PARAM_ARRAY(bindTypes) + Z_PARAM_ZVAL(body) + Z_PARAM_LONG(code) + Z_PARAM_ARRAY(headers) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &conditions_param, &bindParams_param, &bindTypes_param); - zephir_get_strval(&conditions, conditions_param); - if (!bindParams_param) { - ZEPHIR_INIT_VAR(&bindParams); - array_init(&bindParams); + zephir_fetch_params(1, 0, 3, &body, &code_param, &headers_param); + if (!body) { + body = &body_sub; + ZEPHIR_INIT_VAR(body); + ZVAL_STRING(body, "php://memory"); + } + if (!code_param) { + code = 200; } else { - zephir_get_arrval(&bindParams, bindParams_param); + code = zephir_get_intval(code_param); } - if (!bindTypes_param) { - ZEPHIR_INIT_VAR(&bindTypes); - array_init(&bindTypes); + if (!headers_param) { + ZEPHIR_INIT_VAR(&headers); + array_init(&headers); } else { - zephir_get_arrval(&bindTypes, bindTypes_param); + zephir_get_arrval(&headers, headers_param); } - zephir_update_property_zval(this_ptr, ZEND_STRL("conditions"), &conditions); - if (zephir_fast_count_int(&bindParams) > 0) { - ZEPHIR_OBS_VAR(¤tBindParams); - zephir_read_property(¤tBindParams, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC); - if (Z_TYPE_P(¤tBindParams) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&_0$$4); - zephir_add_function(&_0$$4, ¤tBindParams, &bindParams); - zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &_0$$4); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), &bindParams); - } - } - if (zephir_fast_count_int(&bindTypes) > 0) { - zephir_read_property(¤tBindTypes, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(¤tBindTypes) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&_1$$7); - zephir_add_function(&_1$$7, ¤tBindTypes, &bindTypes); - zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &_1$$7); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), &bindTypes); - } - } - RETURN_THIS(); + ZVAL_LONG(&_0, code); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processcode", NULL, 286, &_0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "processheaders", NULL, 284, &headers); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("headers"), &_1); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "w+b"); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "processbody", NULL, 37, body, &_3); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("body"), &_2); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, conditionBetween) +static PHP_METHOD(Phalcon_Http_Message_Response, withStatus) { - zval _6; - zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *clause_param = NULL, *operator_param = NULL, *expr_param = NULL, *minimum, minimum_sub, *maximum, maximum_sub, hiddenParam, nextHiddenParam, minimumKey, maximumKey, operatorMethod, _5, _1$$3, _2$$3, _3$$3; - zval clause, operator, expr, _4; + zval *code, code_sub, *reasonPhrase = NULL, reasonPhrase_sub, newInstance; zval *this_ptr = getThis(); - ZVAL_UNDEF(&clause); - ZVAL_UNDEF(&operator); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&minimum_sub); - ZVAL_UNDEF(&maximum_sub); - ZVAL_UNDEF(&hiddenParam); - ZVAL_UNDEF(&nextHiddenParam); - ZVAL_UNDEF(&minimumKey); - ZVAL_UNDEF(&maximumKey); - ZVAL_UNDEF(&operatorMethod); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&code_sub); + ZVAL_UNDEF(&reasonPhrase_sub); + ZVAL_UNDEF(&newInstance); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(5, 5) - Z_PARAM_STR(clause) - Z_PARAM_STR(operator) - Z_PARAM_STR(expr) - Z_PARAM_ZVAL(minimum) - Z_PARAM_ZVAL(maximum) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(code) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL(reasonPhrase) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 5, 0, &clause_param, &operator_param, &expr_param, &minimum, &maximum); - if (UNEXPECTED(Z_TYPE_P(clause_param) != IS_STRING && Z_TYPE_P(clause_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'clause' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(clause_param) == IS_STRING)) { - zephir_get_strval(&clause, clause_param); - } else { - ZEPHIR_INIT_VAR(&clause); - } - if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { - zephir_get_strval(&operator, operator_param); - } else { - ZEPHIR_INIT_VAR(&operator); - } - if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { - zephir_get_strval(&expr, expr_param); - } else { - ZEPHIR_INIT_VAR(&expr); + zephir_fetch_params(1, 1, 1, &code, &reasonPhrase); + if (!reasonPhrase) { + reasonPhrase = &reasonPhrase_sub; + ZEPHIR_INIT_VAR(reasonPhrase); + ZVAL_STRING(reasonPhrase, ""); } - _0 = !ZEPHIR_IS_STRING_IDENTICAL(&operator, "and"); - if (_0) { - _0 = !ZEPHIR_IS_STRING_IDENTICAL(&operator, "or"); - } - if (UNEXPECTED(_0)) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "Operator % is not available."); - ZEPHIR_CALL_FUNCTION(&_3$$3, "sprintf", NULL, 194, &_2$$3, &operator); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_3$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model/Query/Builder.zep", 1574); - ZEPHIR_MM_RESTORE(); - return; + ZEPHIR_INIT_VAR(&newInstance); + if (zephir_clone(&newInstance, this_ptr) == FAILURE) { + RETURN_MM(); } - ZEPHIR_INIT_VAR(&_4); - ZEPHIR_CONCAT_VV(&_4, &operator, &clause); - ZEPHIR_CPY_WRT(&operatorMethod, &_4); - ZEPHIR_OBS_VAR(&hiddenParam); - zephir_read_property(&hiddenParam, this_ptr, ZEND_STRL("hiddenParamNumber"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(&nextHiddenParam); - ZVAL_LONG(&nextHiddenParam, (zephir_get_numberval(&hiddenParam) + 1)); - ZEPHIR_INIT_VAR(&minimumKey); - ZEPHIR_CONCAT_SV(&minimumKey, "AP", &hiddenParam); - ZEPHIR_INIT_VAR(&maximumKey); - ZEPHIR_CONCAT_SV(&maximumKey, "AP", &nextHiddenParam); - ZEPHIR_INIT_VAR(&_5); - ZEPHIR_CONCAT_VSVSVS(&_5, &expr, " BETWEEN :", &minimumKey, ": AND :", &maximumKey, ":"); - ZEPHIR_INIT_VAR(&_6); - zephir_create_array(&_6, 2, 0); - zephir_array_update_zval(&_6, &minimumKey, minimum, PH_COPY); - zephir_array_update_zval(&_6, &maximumKey, maximum, PH_COPY); - ZEPHIR_CALL_METHOD_ZVAL(NULL, this_ptr, &operatorMethod, NULL, 0, &_5, &_6); + ZEPHIR_CALL_METHOD(NULL, &newInstance, "processcode", NULL, 0, code, reasonPhrase); zephir_check_call_status(); - ZEPHIR_SEPARATE(&nextHiddenParam); - zephir_increment(&nextHiddenParam); - zephir_update_property_zval(this_ptr, ZEND_STRL("hiddenParamNumber"), &nextHiddenParam); - RETURN_THIS(); + RETURN_CCTOR(&newInstance); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, conditionIn) +static PHP_METHOD(Phalcon_Http_Message_Response, getPhrases) { - zend_bool _0; + zval *this_ptr = getThis(); + + + + zephir_create_array(return_value, 89, 0); + add_index_stringl(return_value, 100, SL("Continue")); + add_index_stringl(return_value, 101, SL("Switching Protocols")); + add_index_stringl(return_value, 102, SL("Processing")); + add_index_stringl(return_value, 103, SL("Early Hints")); + add_index_stringl(return_value, 200, SL("OK")); + add_index_stringl(return_value, 201, SL("Created")); + add_index_stringl(return_value, 202, SL("Accepted")); + add_index_stringl(return_value, 203, SL("Non-Authoritative Information")); + add_index_stringl(return_value, 204, SL("No Content")); + add_index_stringl(return_value, 205, SL("Reset Content")); + add_index_stringl(return_value, 206, SL("Partial Content")); + add_index_stringl(return_value, 207, SL("Multi-status")); + add_index_stringl(return_value, 208, SL("Already Reported")); + add_index_stringl(return_value, 226, SL("IM Used")); + add_index_stringl(return_value, 300, SL("Multiple Choices")); + add_index_stringl(return_value, 301, SL("Moved Permanently")); + add_index_stringl(return_value, 302, SL("Found")); + add_index_stringl(return_value, 303, SL("See Other")); + add_index_stringl(return_value, 304, SL("Not Modified")); + add_index_stringl(return_value, 305, SL("Use Proxy")); + add_index_stringl(return_value, 306, SL("Switch Proxy")); + add_index_stringl(return_value, 307, SL("Temporary Redirect")); + add_index_stringl(return_value, 308, SL("Permanent Redirect")); + add_index_stringl(return_value, 400, SL("Bad Request")); + add_index_stringl(return_value, 401, SL("Unauthorized")); + add_index_stringl(return_value, 402, SL("Payment Required")); + add_index_stringl(return_value, 403, SL("Forbidden")); + add_index_stringl(return_value, 404, SL("Not Found")); + add_index_stringl(return_value, 405, SL("Method Not Allowed")); + add_index_stringl(return_value, 406, SL("Not Acceptable")); + add_index_stringl(return_value, 407, SL("Proxy Authentication Required")); + add_index_stringl(return_value, 408, SL("Request Time-out")); + add_index_stringl(return_value, 409, SL("Conflict")); + add_index_stringl(return_value, 410, SL("Gone")); + add_index_stringl(return_value, 411, SL("Length Required")); + add_index_stringl(return_value, 412, SL("Precondition Failed")); + add_index_stringl(return_value, 413, SL("Request Entity Too Large")); + add_index_stringl(return_value, 414, SL("Request-URI Too Large")); + add_index_stringl(return_value, 415, SL("Unsupported Media Type")); + add_index_stringl(return_value, 416, SL("Requested range not satisfiable")); + add_index_stringl(return_value, 417, SL("Expectation Failed")); + add_index_stringl(return_value, 418, SL("I'm a teapot")); + add_index_stringl(return_value, 421, SL("Misdirected Request")); + add_index_stringl(return_value, 422, SL("Unprocessable Entity")); + add_index_stringl(return_value, 423, SL("Locked")); + add_index_stringl(return_value, 424, SL("Failed Dependency")); + add_index_stringl(return_value, 425, SL("Unordered Collection")); + add_index_stringl(return_value, 426, SL("Upgrade Required")); + add_index_stringl(return_value, 428, SL("Precondition Required")); + add_index_stringl(return_value, 429, SL("Too Many Requests")); + add_index_stringl(return_value, 431, SL("Request Header Fields Too Large")); + add_index_stringl(return_value, 451, SL("Unavailable For Legal Reasons")); + add_index_stringl(return_value, 500, SL("Internal Server Error")); + add_index_stringl(return_value, 501, SL("Not Implemented")); + add_index_stringl(return_value, 502, SL("Bad Gateway")); + add_index_stringl(return_value, 503, SL("Service Unavailable")); + add_index_stringl(return_value, 504, SL("Gateway Time-out")); + add_index_stringl(return_value, 505, SL("HTTP Version not supported")); + add_index_stringl(return_value, 506, SL("Variant Also Negotiates")); + add_index_stringl(return_value, 507, SL("Insufficient Storage")); + add_index_stringl(return_value, 508, SL("Loop Detected")); + add_index_stringl(return_value, 510, SL("Not Extended")); + add_index_stringl(return_value, 511, SL("Network Authentication Required")); + add_index_stringl(return_value, 218, SL("This is fine")); + add_index_stringl(return_value, 419, SL("Page Expired")); + add_index_stringl(return_value, 420, SL("Method Failure")); + add_index_stringl(return_value, 440, SL("Login Time-out")); + add_index_stringl(return_value, 444, SL("No Response")); + add_index_stringl(return_value, 449, SL("Retry With")); + add_index_stringl(return_value, 450, SL("Blocked by Windows Parental Controls (Microsoft)")); + add_index_stringl(return_value, 494, SL("Request header too large")); + add_index_stringl(return_value, 495, SL("SSL Certificate Error")); + add_index_stringl(return_value, 496, SL("SSL Certificate Required")); + add_index_stringl(return_value, 497, SL("HTTP Request Sent to HTTPS Port")); + add_index_stringl(return_value, 498, SL("Invalid Token (Esri)")); + add_index_stringl(return_value, 499, SL("Client Closed Request")); + add_index_stringl(return_value, 509, SL("Bandwidth Limit Exceeded")); + add_index_stringl(return_value, 520, SL("Unknown Error")); + add_index_stringl(return_value, 521, SL("Web Server Is Down")); + add_index_stringl(return_value, 522, SL("Connection Timed Out")); + add_index_stringl(return_value, 523, SL("Origin Is Unreachable")); + add_index_stringl(return_value, 524, SL("A Timeout Occurred")); + add_index_stringl(return_value, 525, SL("SSL Handshake Failed")); + add_index_stringl(return_value, 526, SL("Invalid SSL Certificate")); + add_index_stringl(return_value, 527, SL("Railgun Error")); + add_index_stringl(return_value, 530, SL("Origin DNS Error")); + add_index_stringl(return_value, 598, SL("Network read timeout error")); + add_index_stringl(return_value, 599, SL("Network Connect Timeout Error")); + return; +} + +static PHP_METHOD(Phalcon_Http_Message_Response, processCode) +{ + zend_bool _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, hiddenParam = 0; - zval values; - zval *clause_param = NULL, *operator_param = NULL, *expr_param = NULL, *values_param = NULL, key, queryKey, value, bindKeys, bindParams, operatorMethod, _6, *_7, _8, _13, _14, _15, _1$$3, _2$$3, _3$$3, _9$$5, _11$$6; - zval clause, operator, expr, _4, _5$$4, _10$$5, _12$$6; + zend_long ZEPHIR_LAST_CALL_STATUS, _0; + zval *code = NULL, code_sub, *phrase = NULL, phrase_sub, phrases, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&clause); - ZVAL_UNDEF(&operator); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_10$$5); - ZVAL_UNDEF(&_12$$6); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&queryKey); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&bindKeys); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&operatorMethod); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_13); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_15); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_11$$6); - ZVAL_UNDEF(&values); + ZVAL_UNDEF(&code_sub); + ZVAL_UNDEF(&phrase_sub); + ZVAL_UNDEF(&phrases); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(4, 4) - Z_PARAM_STR(clause) - Z_PARAM_STR(operator) - Z_PARAM_STR(expr) - Z_PARAM_ARRAY(values) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(code) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL(phrase) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 4, 0, &clause_param, &operator_param, &expr_param, &values_param); - if (UNEXPECTED(Z_TYPE_P(clause_param) != IS_STRING && Z_TYPE_P(clause_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'clause' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(clause_param) == IS_STRING)) { - zephir_get_strval(&clause, clause_param); - } else { - ZEPHIR_INIT_VAR(&clause); - } - if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { - zephir_get_strval(&operator, operator_param); - } else { - ZEPHIR_INIT_VAR(&operator); - } - if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { - zephir_get_strval(&expr, expr_param); + zephir_fetch_params(1, 1, 1, &code, &phrase); + ZEPHIR_SEPARATE_PARAM(code); + if (!phrase) { + phrase = &phrase_sub; + ZEPHIR_INIT_VAR(phrase); + ZVAL_STRING(phrase, ""); } else { - ZEPHIR_INIT_VAR(&expr); + ZEPHIR_SEPARATE_PARAM(phrase); } - ZEPHIR_OBS_COPY_OR_DUP(&values, values_param); - _0 = !ZEPHIR_IS_STRING_IDENTICAL(&operator, "and"); - if (_0) { - _0 = !ZEPHIR_IS_STRING_IDENTICAL(&operator, "or"); - } - if (UNEXPECTED(_0)) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "Operator % is not available."); - ZEPHIR_CALL_FUNCTION(&_3$$3, "sprintf", NULL, 194, &_2$$3, &operator); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_3$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model/Query/Builder.zep", 1622); - ZEPHIR_MM_RESTORE(); + ZEPHIR_CALL_METHOD(&phrases, this_ptr, "getphrases", NULL, 287); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkcodetype", NULL, 288, code); + zephir_check_call_status(); + _0 = zephir_get_intval(code); + ZEPHIR_INIT_NVAR(code); + ZVAL_LONG(code, _0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkcodevalue", NULL, 289, code); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(phrase) != IS_STRING)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid response reason", "phalcon/Http/Message/Response.zep", 226); return; } - ZEPHIR_INIT_VAR(&_4); - ZEPHIR_CONCAT_VV(&_4, &operator, &clause); - ZEPHIR_CPY_WRT(&operatorMethod, &_4); - if (!(zephir_fast_count_int(&values))) { - ZEPHIR_INIT_VAR(&_5$$4); - ZEPHIR_CONCAT_VSV(&_5$$4, &expr, " != ", &expr); - ZEPHIR_CALL_METHOD_ZVAL(NULL, this_ptr, &operatorMethod, NULL, 0, &_5$$4); - zephir_check_call_status(); - RETURN_THIS(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, ""); + _2 = ZEPHIR_IS_IDENTICAL(&_1, phrase); + if (_2) { + _2 = zephir_array_isset(&phrases, code); } - ZEPHIR_OBS_VAR(&_6); - zephir_read_property(&_6, this_ptr, ZEND_STRL("hiddenParamNumber"), PH_NOISY_CC); - hiddenParam = zephir_get_intval(&_6); - ZEPHIR_INIT_VAR(&bindParams); - array_init(&bindParams); - ZEPHIR_INIT_VAR(&bindKeys); - array_init(&bindKeys); - zephir_is_iterable(&values, 0, "phalcon/Mvc/Model/Query/Builder.zep", 1653); - if (Z_TYPE_P(&values) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&values), _7) - { - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _7); - ZEPHIR_INIT_NVAR(&_9$$5); - ZVAL_LONG(&_9$$5, hiddenParam); - ZEPHIR_INIT_NVAR(&_10$$5); - ZEPHIR_CONCAT_SV(&_10$$5, "AP", &_9$$5); - ZEPHIR_CPY_WRT(&key, &_10$$5); - ZEPHIR_INIT_NVAR(&queryKey); - ZEPHIR_CONCAT_SVS(&queryKey, ":", &key, ":"); - zephir_array_append(&bindKeys, &queryKey, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 1644); - zephir_array_update_zval(&bindParams, &key, &value, PH_COPY | PH_SEPARATE); - hiddenParam++; - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &values, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_8, &values, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_8)) { - break; - } - ZEPHIR_CALL_METHOD(&value, &values, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_11$$6); - ZVAL_LONG(&_11$$6, hiddenParam); - ZEPHIR_INIT_NVAR(&_12$$6); - ZEPHIR_CONCAT_SV(&_12$$6, "AP", &_11$$6); - ZEPHIR_CPY_WRT(&key, &_12$$6); - ZEPHIR_INIT_NVAR(&queryKey); - ZEPHIR_CONCAT_SVS(&queryKey, ":", &key, ":"); - zephir_array_append(&bindKeys, &queryKey, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 1644); - zephir_array_update_zval(&bindParams, &key, &value, PH_COPY | PH_SEPARATE); - hiddenParam++; - ZEPHIR_CALL_METHOD(NULL, &values, "next", NULL, 0); - zephir_check_call_status(); - } + if (EXPECTED(_2)) { + ZEPHIR_OBS_NVAR(phrase); + zephir_array_fetch(phrase, &phrases, code, PH_NOISY, "phalcon/Http/Message/Response.zep", 230); } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_VAR(&_13); - zephir_fast_join_str(&_13, SL(", "), &bindKeys); - ZEPHIR_INIT_VAR(&_14); - ZEPHIR_CONCAT_VSVS(&_14, &expr, " IN (", &_13, ")"); - ZEPHIR_CALL_METHOD_ZVAL(NULL, this_ptr, &operatorMethod, NULL, 0, &_14, &bindParams); - zephir_check_call_status(); - ZEPHIR_INIT_ZVAL_NREF(_15); - ZVAL_LONG(&_15, hiddenParam); - zephir_update_property_zval(this_ptr, ZEND_STRL("hiddenParamNumber"), &_15); - RETURN_THIS(); + zephir_update_property_zval(this_ptr, ZEND_STRL("statusCode"), code); + zephir_update_property_zval(this_ptr, ZEND_STRL("reasonPhrase"), phrase); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, conditionNotBetween) +static PHP_METHOD(Phalcon_Http_Message_Response, checkCodeType) { - zval _6; zend_bool _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *clause_param = NULL, *operator_param = NULL, *expr_param = NULL, *minimum, minimum_sub, *maximum, maximum_sub, hiddenParam, nextHiddenParam, minimumKey, maximumKey, operatorMethod, _5, _1$$3, _2$$3, _3$$3; - zval clause, operator, expr, _4; + zval *code, code_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&clause); - ZVAL_UNDEF(&operator); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&minimum_sub); - ZVAL_UNDEF(&maximum_sub); - ZVAL_UNDEF(&hiddenParam); - ZVAL_UNDEF(&nextHiddenParam); - ZVAL_UNDEF(&minimumKey); - ZVAL_UNDEF(&maximumKey); - ZVAL_UNDEF(&operatorMethod); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&code_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(5, 5) - Z_PARAM_STR(clause) - Z_PARAM_STR(operator) - Z_PARAM_STR(expr) - Z_PARAM_ZVAL(minimum) - Z_PARAM_ZVAL(maximum) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(code) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 5, 0, &clause_param, &operator_param, &expr_param, &minimum, &maximum); - if (UNEXPECTED(Z_TYPE_P(clause_param) != IS_STRING && Z_TYPE_P(clause_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'clause' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(clause_param) == IS_STRING)) { - zephir_get_strval(&clause, clause_param); - } else { - ZEPHIR_INIT_VAR(&clause); - } - if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { - zephir_get_strval(&operator, operator_param); - } else { - ZEPHIR_INIT_VAR(&operator); - } - if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { - zephir_get_strval(&expr, expr_param); - } else { - ZEPHIR_INIT_VAR(&expr); - } + zephir_fetch_params_without_memory_grow(1, 0, &code); - _0 = !ZEPHIR_IS_STRING_IDENTICAL(&operator, "and"); + _0 = Z_TYPE_P(code) != IS_LONG; if (_0) { - _0 = !ZEPHIR_IS_STRING_IDENTICAL(&operator, "or"); + _0 = Z_TYPE_P(code) != IS_STRING; } if (UNEXPECTED(_0)) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "Operator % is not available."); - ZEPHIR_CALL_FUNCTION(&_3$$3, "sprintf", NULL, 194, &_2$$3, &operator); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_3$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model/Query/Builder.zep", 1676); - ZEPHIR_MM_RESTORE(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid status code; it must be an integer or string", "phalcon/Http/Message/Response.zep", 247); return; } - ZEPHIR_INIT_VAR(&_4); - ZEPHIR_CONCAT_VV(&_4, &operator, &clause); - ZEPHIR_CPY_WRT(&operatorMethod, &_4); - ZEPHIR_OBS_VAR(&hiddenParam); - zephir_read_property(&hiddenParam, this_ptr, ZEND_STRL("hiddenParamNumber"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(&nextHiddenParam); - ZVAL_LONG(&nextHiddenParam, (zephir_get_numberval(&hiddenParam) + 1)); - ZEPHIR_INIT_VAR(&minimumKey); - ZEPHIR_CONCAT_SV(&minimumKey, "AP", &hiddenParam); - ZEPHIR_INIT_VAR(&maximumKey); - ZEPHIR_CONCAT_SV(&maximumKey, "AP", &nextHiddenParam); - ZEPHIR_INIT_VAR(&_5); - ZEPHIR_CONCAT_VSVSVS(&_5, &expr, " NOT BETWEEN :", &minimumKey, ": AND :", &maximumKey, ":"); - ZEPHIR_INIT_VAR(&_6); - zephir_create_array(&_6, 2, 0); - zephir_array_update_zval(&_6, &minimumKey, minimum, PH_COPY); - zephir_array_update_zval(&_6, &maximumKey, maximum, PH_COPY); - ZEPHIR_CALL_METHOD_ZVAL(NULL, this_ptr, &operatorMethod, NULL, 0, &_5, &_6); - zephir_check_call_status(); - ZEPHIR_SEPARATE(&nextHiddenParam); - zephir_increment(&nextHiddenParam); - zephir_update_property_zval(this_ptr, ZEND_STRL("hiddenParamNumber"), &nextHiddenParam); - RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Builder, conditionNotIn) +static PHP_METHOD(Phalcon_Http_Message_Response, checkCodeValue) { - zend_bool _0; + zval _7$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, hiddenParam = 0; - zval values; - zval *clause_param = NULL, *operator_param = NULL, *expr_param = NULL, *values_param = NULL, key, queryKey, value, bindKeys, bindParams, operatorMethod, _6, *_7, _8, _13, _14, _15, _1$$3, _2$$3, _3$$3, _9$$5, _11$$6; - zval clause, operator, expr, _4, _5$$4, _10$$5, _12$$6; + zephir_fcall_cache_entry *_1 = NULL; + zval *code_param = NULL, _0, _2, _3, _4, _5$$3, _6$$3; + zend_long code, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&clause); - ZVAL_UNDEF(&operator); - ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_10$$5); - ZVAL_UNDEF(&_12$$6); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&queryKey); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&bindKeys); - ZVAL_UNDEF(&bindParams); - ZVAL_UNDEF(&operatorMethod); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_13); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_15); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_11$$6); - ZVAL_UNDEF(&values); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(4, 4) - Z_PARAM_STR(clause) - Z_PARAM_STR(operator) - Z_PARAM_STR(expr) - Z_PARAM_ARRAY(values) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(code) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 4, 0, &clause_param, &operator_param, &expr_param, &values_param); - if (UNEXPECTED(Z_TYPE_P(clause_param) != IS_STRING && Z_TYPE_P(clause_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'clause' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(clause_param) == IS_STRING)) { - zephir_get_strval(&clause, clause_param); - } else { - ZEPHIR_INIT_VAR(&clause); - } - if (UNEXPECTED(Z_TYPE_P(operator_param) != IS_STRING && Z_TYPE_P(operator_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'operator' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(operator_param) == IS_STRING)) { - zephir_get_strval(&operator, operator_param); - } else { - ZEPHIR_INIT_VAR(&operator); - } - if (UNEXPECTED(Z_TYPE_P(expr_param) != IS_STRING && Z_TYPE_P(expr_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'expr' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(expr_param) == IS_STRING)) { - zephir_get_strval(&expr, expr_param); - } else { - ZEPHIR_INIT_VAR(&expr); - } - ZEPHIR_OBS_COPY_OR_DUP(&values, values_param); + zephir_fetch_params(1, 1, 0, &code_param); + code = zephir_get_intval(code_param); - _0 = !ZEPHIR_IS_STRING_IDENTICAL(&operator, "and"); - if (_0) { - _0 = !ZEPHIR_IS_STRING_IDENTICAL(&operator, "or"); - } - if (UNEXPECTED(_0)) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "Operator % is not available."); - ZEPHIR_CALL_FUNCTION(&_3$$3, "sprintf", NULL, 194, &_2$$3, &operator); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_3$$3); + ZVAL_LONG(&_2, code); + ZVAL_LONG(&_3, 100); + ZVAL_LONG(&_4, 599); + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_number_ce, "between", &_1, 290, &_2, &_3, &_4); + zephir_check_call_status(); + if (!ZEPHIR_IS_TRUE_IDENTICAL(&_0)) { + ZEPHIR_INIT_VAR(&_5$$3); + object_init_ex(&_5$$3, phalcon_http_message_exception_invalidargumentexception_ce); + ZEPHIR_INIT_VAR(&_6$$3); + ZVAL_LONG(&_6$$3, code); + ZEPHIR_INIT_VAR(&_7$$3); + ZEPHIR_CONCAT_SVS(&_7$$3, "Invalid status code '", &_6$$3, "', (allowed values 100-599)"); + ZEPHIR_CALL_METHOD(NULL, &_5$$3, "__construct", NULL, 40, &_7$$3); zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model/Query/Builder.zep", 1723); + zephir_throw_exception_debug(&_5$$3, "phalcon/Http/Message/Response.zep", 261); ZEPHIR_MM_RESTORE(); return; } - ZEPHIR_INIT_VAR(&_4); - ZEPHIR_CONCAT_VV(&_4, &operator, &clause); - ZEPHIR_CPY_WRT(&operatorMethod, &_4); - if (!(zephir_fast_count_int(&values))) { - ZEPHIR_INIT_VAR(&_5$$4); - ZEPHIR_CONCAT_VSV(&_5$$4, &expr, " != ", &expr); - ZEPHIR_CALL_METHOD_ZVAL(NULL, this_ptr, &operatorMethod, NULL, 0, &_5$$4); - zephir_check_call_status(); - RETURN_THIS(); - } - ZEPHIR_OBS_VAR(&_6); - zephir_read_property(&_6, this_ptr, ZEND_STRL("hiddenParamNumber"), PH_NOISY_CC); - hiddenParam = zephir_get_intval(&_6); - ZEPHIR_INIT_VAR(&bindParams); - array_init(&bindParams); - ZEPHIR_INIT_VAR(&bindKeys); - array_init(&bindKeys); - zephir_is_iterable(&values, 0, "phalcon/Mvc/Model/Query/Builder.zep", 1754); - if (Z_TYPE_P(&values) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&values), _7) - { - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _7); - ZEPHIR_INIT_NVAR(&_9$$5); - ZVAL_LONG(&_9$$5, hiddenParam); - ZEPHIR_INIT_NVAR(&_10$$5); - ZEPHIR_CONCAT_SV(&_10$$5, "AP", &_9$$5); - ZEPHIR_CPY_WRT(&key, &_10$$5); - ZEPHIR_INIT_NVAR(&queryKey); - ZEPHIR_CONCAT_SVS(&queryKey, ":", &key, ":"); - zephir_array_append(&bindKeys, &queryKey, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 1745); - zephir_array_update_zval(&bindParams, &key, &value, PH_COPY | PH_SEPARATE); - hiddenParam++; - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &values, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_8, &values, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_8)) { - break; - } - ZEPHIR_CALL_METHOD(&value, &values, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_11$$6); - ZVAL_LONG(&_11$$6, hiddenParam); - ZEPHIR_INIT_NVAR(&_12$$6); - ZEPHIR_CONCAT_SV(&_12$$6, "AP", &_11$$6); - ZEPHIR_CPY_WRT(&key, &_12$$6); - ZEPHIR_INIT_NVAR(&queryKey); - ZEPHIR_CONCAT_SVS(&queryKey, ":", &key, ":"); - zephir_array_append(&bindKeys, &queryKey, PH_SEPARATE, "phalcon/Mvc/Model/Query/Builder.zep", 1745); - zephir_array_update_zval(&bindParams, &key, &value, PH_COPY | PH_SEPARATE); - hiddenParam++; - ZEPHIR_CALL_METHOD(NULL, &values, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_VAR(&_13); - zephir_fast_join_str(&_13, SL(", "), &bindKeys); - ZEPHIR_INIT_VAR(&_14); - ZEPHIR_CONCAT_VSVS(&_14, &expr, " NOT IN (", &_13, ")"); - ZEPHIR_CALL_METHOD_ZVAL(NULL, this_ptr, &operatorMethod, NULL, 0, &_14, &bindParams); - zephir_check_call_status(); - ZEPHIR_INIT_ZVAL_NREF(_15); - ZVAL_LONG(&_15, hiddenParam); - zephir_update_property_zval(this_ptr, ZEND_STRL("hiddenParamNumber"), &_15); - RETURN_THIS(); + ZEPHIR_MM_RESTORE(); } -zend_object *zephir_init_properties_Phalcon_Mvc_Model_Query_Builder(zend_class_entry *class_type) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Message_ResponseFactory) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Message, ResponseFactory, phalcon, http_message_responsefactory, phalcon_http_message_responsefactory_method_entry, ZEND_ACC_FINAL_CLASS); + + zend_class_implements(phalcon_http_message_responsefactory_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\responsefactoryinterface"))); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Http_Message_ResponseFactory, createResponse) { - zval _0, _2, _4, _6, _1$$3, _3$$4, _5$$5, _7$$6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_7$$6); - + zval reasonPhrase; + zval *code_param = NULL, *reasonPhrase_param = NULL, _0, _1; + zend_long code, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("joins"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("joins"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("group"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("group"), &_3$$4); - } - zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_4) == IS_NULL) { - ZEPHIR_INIT_VAR(&_5$$5); - array_init(&_5$$5); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("bindTypes"), &_5$$5); - } - zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_6) == IS_NULL) { - ZEPHIR_INIT_VAR(&_7$$6); - array_init(&_7$$6); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("bindParams"), &_7$$6); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&reasonPhrase); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 2) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(code) + Z_PARAM_STR(reasonPhrase) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 2, &code_param, &reasonPhrase_param); + if (!code_param) { + code = 200; + } else { + code = zephir_get_intval(code_param); + } + if (!reasonPhrase_param) { + ZEPHIR_INIT_VAR(&reasonPhrase); + ZVAL_STRING(&reasonPhrase, ""); + } else { + zephir_get_strval(&reasonPhrase, reasonPhrase_param); } + + + ZEPHIR_INIT_VAR(&_0); + object_init_ex(&_0, phalcon_http_message_response_ce); + ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 291); + zephir_check_call_status(); + ZVAL_LONG(&_1, code); + ZEPHIR_RETURN_CALL_METHOD(&_0, "withstatus", NULL, 292, &_1, &reasonPhrase); + zephir_check_call_status(); + RETURN_MM(); } @@ -161758,55 +143310,189 @@ zend_object *zephir_init_properties_Phalcon_Mvc_Model_Query_Builder(zend_class_e -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Query_BuilderInterface) +ZEPHIR_INIT_CLASS(Phalcon_Http_Message_ResponseStatusCodeInterface) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model\\Query, BuilderInterface, phalcon, mvc_model_query_builderinterface, phalcon_mvc_model_query_builderinterface_method_entry); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Http\\Message, ResponseStatusCodeInterface, phalcon, http_message_responsestatuscodeinterface, NULL); - zephir_declare_class_constant_string(phalcon_mvc_model_query_builderinterface_ce, SL("OPERATOR_AND"), "and"); + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_CONTINUE"), 100); - zephir_declare_class_constant_string(phalcon_mvc_model_query_builderinterface_ce, SL("OPERATOR_OR"), "or"); + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_SWITCHING_PROTOCOLS"), 101); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_PROCESSING"), 102); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_EARLY_HINTS"), 103); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_OK"), 200); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_CREATED"), 201); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_ACCEPTED"), 202); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NON_AUTHORITATIVE_INFORMATION"), 203); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NO_CONTENT"), 204); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_RESET_CONTENT"), 205); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_PARTIAL_CONTENT"), 206); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_MULTI_STATUS"), 207); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_ALREADY_REPORTED"), 208); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_IM_USED"), 226); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_MULTIPLE_CHOICES"), 300); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_MOVED_PERMANENTLY"), 301); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_FOUND"), 302); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_SEE_OTHER"), 303); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NOT_MODIFIED"), 304); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_USE_PROXY"), 305); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_RESERVED"), 306); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_TEMPORARY_REDIRECT"), 307); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_PERMANENT_REDIRECT"), 308); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_BAD_REQUEST"), 400); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_UNAUTHORIZED"), 401); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_PAYMENT_REQUIRED"), 402); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_FORBIDDEN"), 403); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NOT_FOUND"), 404); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_METHOD_NOT_ALLOWED"), 405); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NOT_ACCEPTABLE"), 406); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_PROXY_AUTHENTICATION_REQUIRED"), 407); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_REQUEST_TIMEOUT"), 408); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_CONFLICT"), 409); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_GONE"), 410); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_LENGTH_REQUIRED"), 411); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_PRECONDITION_FAILED"), 412); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_PAYLOAD_TOO_LARGE"), 413); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_URI_TOO_LONG"), 414); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_UNSUPPORTED_MEDIA_TYPE"), 415); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_RANGE_NOT_SATISFIABLE"), 416); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_EXPECTATION_FAILED"), 417); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_IM_A_TEAPOT"), 418); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_MISDIRECTED_REQUEST"), 421); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_UNPROCESSABLE_ENTITY"), 422); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_LOCKED"), 423); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_FAILED_DEPENDENCY"), 424); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_TOO_EARLY"), 425); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_UPGRADE_REQUIRED"), 426); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_PRECONDITION_REQUIRED"), 428); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_TOO_MANY_REQUESTS"), 429); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE"), 431); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_UNAVAILABLE_FOR_LEGAL_REASONS"), 451); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_INTERNAL_SERVER_ERROR"), 500); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NOT_IMPLEMENTED"), 501); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_BAD_GATEWAY"), 502); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_SERVICE_UNAVAILABLE"), 503); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_GATEWAY_TIMEOUT"), 504); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_VERSION_NOT_SUPPORTED"), 505); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_VARIANT_ALSO_NEGOTIATES"), 506); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_INSUFFICIENT_STORAGE"), 507); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_LOOP_DETECTED"), 508); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NOT_EXTENDED"), 510); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NETWORK_AUTHENTICATION_REQUIRED"), 511); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_THIS_IS_FINE"), 218); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_PAGE_EXPIRED"), 419); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_METHOD_FAILURE"), 420); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_LOGIN_TIMEOUT"), 440); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NO_RESPONSE"), 444); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_RETRY_WITH"), 449); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_BLOCKED_BY_WINDOWS_PARENTAL_CONTROLS"), 450); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_REQUEST_HEADER_TOO_LARGE"), 494); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_SSL_CERTIFICATE_ERROR"), 495); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_SSL_CERTIFICATE_REQUIRED"), 496); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_HTTP_REQUEST_SENT_TO_HTTPS_PORT"), 497); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_INVALID_TOKEN_ESRI"), 498); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_CLIENT_CLOSED_REQUEST"), 499); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_BANDWIDTH_LIMIT_EXCEEDED"), 509); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_UNKNOWN_ERROR"), 520); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_WEB_SERVER_IS_DOWN"), 521); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_CONNECTION_TIMEOUT"), 522); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_ORIGIN_IS_UNREACHABLE"), 523); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_TIMEOUT_OCCURRED"), 524); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_SSL_HANDSHAKE_FAILED"), 525); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_INVALID_SSL_CERTIFICATE"), 526); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_RAILGUN_ERROR"), 527); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_ORIGIN_DNS_ERROR"), 530); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NETWORK_READ_TIMEOUT_ERROR"), 598); + + zephir_declare_class_constant_long(phalcon_http_message_responsestatuscodeinterface_ce, SL("STATUS_NETWORK_CONNECT_TIMEOUT_ERROR"), 599); return SUCCESS; } -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, addFrom); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, andWhere); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, betweenWhere); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, columns); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, distinct); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, forUpdate); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, from); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getBindParams); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getBindTypes); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getColumns); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getDistinct); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getFrom); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getGroupBy); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getHaving); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getJoins); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getLimit); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getOffset); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getOrderBy); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getPhql); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getQuery); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getWhere); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, groupBy); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, having); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, innerJoin); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, inWhere); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, join); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, leftJoin); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, limit); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, getModels); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, notBetweenWhere); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, notInWhere); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, offset); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, orderBy); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, orWhere); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, rightJoin); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, setBindParams); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, setBindTypes); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, where); @@ -161817,9156 +143503,16689 @@ ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_BuilderInterface, where); -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Query_Lang) +ZEPHIR_INIT_CLASS(Phalcon_Http_Message_ServerRequest) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model\\Query, Lang, phalcon, mvc_model_query_lang, phalcon_mvc_model_query_lang_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Message, ServerRequest, phalcon, http_message_serverrequest, phalcon_http_message_abstractrequest_ce, phalcon_http_message_serverrequest_method_entry, ZEND_ACC_FINAL_CLASS); + + zend_declare_property_null(phalcon_http_message_serverrequest_ce, SL("attributes"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_message_serverrequest_ce, SL("cookieParams"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_message_serverrequest_ce, SL("parsedBody"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_message_serverrequest_ce, SL("queryParams"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_message_serverrequest_ce, SL("serverParams"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_message_serverrequest_ce, SL("uploadedFiles"), ZEND_ACC_PROTECTED); + phalcon_http_message_serverrequest_ce->create_object = zephir_init_properties_Phalcon_Http_Message_ServerRequest; + zend_class_implements(phalcon_http_message_serverrequest_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\serverrequestinterface"))); return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Lang, parsePHQL) +static PHP_METHOD(Phalcon_Http_Message_ServerRequest, getCookieParams) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *phql_param = NULL; - zval phql; zval *this_ptr = getThis(); - ZVAL_UNDEF(&phql); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(phql) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &phql_param); - if (UNEXPECTED(Z_TYPE_P(phql_param) != IS_STRING && Z_TYPE_P(phql_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'phql' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(phql_param) == IS_STRING)) { - zephir_get_strval(&phql, phql_param); - } else { - ZEPHIR_INIT_VAR(&phql); - } + RETURN_MEMBER(getThis(), "cookieParams"); +} +static PHP_METHOD(Phalcon_Http_Message_ServerRequest, getParsedBody) +{ + zval *this_ptr = getThis(); - ZEPHIR_LAST_CALL_STATUS = phql_parse_phql(return_value, &phql); - zephir_check_call_status(); - RETURN_MM(); -} + RETURN_MEMBER(getThis(), "parsedBody"); +} -/* Driver template for the LEMON parser generator. -** The author disclaims copyright to this source code. -*/ -/* First off, code is include which follows the "include" declaration -** in the input file. */ -// 30 "parser.php.lemon" - +static PHP_METHOD(Phalcon_Http_Message_ServerRequest, getQueryParams) +{ + zval *this_ptr = getThis(); -// 12 "parser.php.c" -/* Next is all token values, in a form suitable for use by makeheaders. -** This section will be null unless lemon is run with the -m switch. -*/ -/* Make sure the INTERFACE macro is defined. -*/ -#ifndef INTERFACE -# define INTERFACE 1 -#endif -/* The next thing included is series of defines which control -** various aspects of the generated parser. -** PPCODETYPE is the data type used for storing terminal -** and nonterminal numbers. "unsigned char" is -** used if there are fewer than 250 terminals -** and nonterminals. "int" is used otherwise. -** PPNOCODE is a number of type PPCODETYPE which corresponds -** to no legal terminal or nonterminal number. This -** number is used to fill in empty slots of the hash -** table. -** PPFALLBACK If defined, this indicates that one or more tokens -** have fall-back values which should be used if the -** original value of the token will not parse. -** PPACTIONTYPE is the data type used for storing terminal -** and nonterminal numbers. "unsigned char" is -** used if there are fewer than 250 rules and -** states combined. "int" is used otherwise. -** phql_TOKENTYPE is the data type used for minor tokens given -** directly to the parser from the tokenizer. -** PPMINORTYPE is the data type used for all minor tokens. -** This is typically a union of many types, one of -** which is phql_TOKENTYPE. The entry in the union -** for base tokens is called "pp0". -** PPSTACKDEPTH is the maximum depth of the parser's stack. -** phql_ARG_SDECL A static variable declaration for the %extra_argument -** phql_ARG_PDECL A parameter declaration for the %extra_argument -** phql_ARG_STORE Code to store %extra_argument into pppParser -** phql_ARG_FETCH Code to extract %extra_argument from pppParser -** PPNSTATE the combined number of states. -** PPNRULE the number of rules in the grammar -** PPERRORSYMBOL is the code number of the error symbol. If not -** defined, then do no error processing. -*/ -#define PPCODETYPE unsigned char -#define PPNOCODE 135 -#define PPACTIONTYPE unsigned short int -#define phql_TOKENTYPE phql_parser_token* -typedef union { - phql_TOKENTYPE pp0; - zval pp202; - int pp269; -} PPMINORTYPE; -#define PPSTACKDEPTH 100 -#define phql_ARG_SDECL phql_parser_status *status; -#define phql_ARG_PDECL ,phql_parser_status *status -#define phql_ARG_FETCH phql_parser_status *status = pppParser->status -#define phql_ARG_STORE pppParser->status = status -#define PPNSTATE 295 -#define PPNRULE 162 -#define PPERRORSYMBOL 80 -#define PPERRSYMDT pp269 -#define PP_NO_ACTION (PPNSTATE+PPNRULE+2) -#define PP_ACCEPT_ACTION (PPNSTATE+PPNRULE+1) -#define PP_ERROR_ACTION (PPNSTATE+PPNRULE) -/* Next are that tables used to determine what action to take based on the -** current state and lookahead token. These tables are used to implement -** functions that take a state number and lookahead value and return an -** action integer. -** -** Suppose the action integer is N. Then the action is determined as -** follows -** -** 0 <= N < PPNSTATE Shift N. That is, push the lookahead -** token onto the stack and goto state N. -** -** PPNSTATE <= N < PPNSTATE+PPNRULE Reduce by rule N-PPNSTATE. -** -** N == PPNSTATE+PPNRULE A syntax error has occurred. -** -** N == PPNSTATE+PPNRULE+1 The parser accepts its input. -** -** N == PPNSTATE+PPNRULE+2 No such action. Denotes unused -** slots in the pp_action[] table. -** -** The action table is constructed as a single large table named pp_action[]. -** Given state S and lookahead X, the action is computed as -** -** pp_action[ pp_shift_ofst[S] + X ] -** -** If the index value pp_shift_ofst[S]+X is out of range or if the value -** pp_lookahead[pp_shift_ofst[S]+X] is not equal to X or if pp_shift_ofst[S] -** is equal to PP_SHIFT_USE_DFLT, it means that the action is not in the table -** and that pp_default[S] should be used instead. -** -** The formula above is for computing the action when the lookahead is -** a terminal symbol. If the lookahead is a non-terminal (as occurs after -** a reduce action) then the pp_reduce_ofst[] array is used in place of -** the pp_shift_ofst[] array and PP_REDUCE_USE_DFLT is used in place of -** PP_SHIFT_USE_DFLT. -** -** The following are the tables generated in this section: -** -** pp_action[] A single table containing all actions. -** pp_lookahead[] A table containing the lookahead for each entry in -** pp_action. Used to detect hash collisions. -** pp_shift_ofst[] For each state, the offset into pp_action for -** shifting terminals. -** pp_reduce_ofst[] For each state, the offset into pp_action for -** shifting non-terminals after a reduce. -** pp_default[] Default action for each state. -*/ -static PPACTIONTYPE pp_action[] = { - /* 0 */ 120, 126, 128, 55, 57, 59, 61, 63, 65, 45, - /* 10 */ 47, 67, 72, 49, 51, 53, 41, 39, 43, 37, - /* 20 */ 34, 122, 74, 69, 120, 126, 128, 55, 57, 59, - /* 30 */ 61, 63, 65, 45, 47, 67, 72, 49, 51, 53, - /* 40 */ 41, 39, 43, 37, 34, 122, 74, 69, 19, 20, - /* 50 */ 21, 22, 23, 32, 33, 120, 126, 128, 55, 57, - /* 60 */ 59, 61, 63, 65, 45, 47, 67, 72, 49, 51, - /* 70 */ 53, 41, 39, 43, 37, 34, 122, 74, 69, 37, - /* 80 */ 34, 122, 74, 69, 94, 222, 81, 220, 95, 90, - /* 90 */ 111, 211, 113, 114, 213, 156, 79, 188, 89, 120, - /* 100 */ 126, 128, 55, 57, 59, 61, 63, 65, 45, 47, - /* 110 */ 67, 72, 49, 51, 53, 41, 39, 43, 37, 34, - /* 120 */ 122, 74, 69, 55, 57, 59, 61, 63, 65, 45, - /* 130 */ 47, 67, 72, 49, 51, 53, 41, 39, 43, 37, - /* 140 */ 34, 122, 74, 69, 132, 249, 120, 126, 128, 55, - /* 150 */ 57, 59, 61, 63, 65, 45, 47, 67, 72, 49, - /* 160 */ 51, 53, 41, 39, 43, 37, 34, 122, 74, 69, - /* 170 */ 41, 39, 43, 37, 34, 122, 74, 69, 142, 7, - /* 180 */ 120, 126, 128, 55, 57, 59, 61, 63, 65, 45, - /* 190 */ 47, 67, 72, 49, 51, 53, 41, 39, 43, 37, - /* 200 */ 34, 122, 74, 69, 120, 126, 128, 55, 57, 59, - /* 210 */ 61, 63, 65, 45, 47, 67, 72, 49, 51, 53, - /* 220 */ 41, 39, 43, 37, 34, 122, 74, 69, 45, 47, - /* 230 */ 67, 72, 49, 51, 53, 41, 39, 43, 37, 34, - /* 240 */ 122, 74, 69, 122, 74, 69, 154, 156, 148, 188, - /* 250 */ 120, 126, 128, 55, 57, 59, 61, 63, 65, 45, - /* 260 */ 47, 67, 72, 49, 51, 53, 41, 39, 43, 37, - /* 270 */ 34, 122, 74, 69, 170, 242, 158, 35, 95, 99, - /* 280 */ 171, 173, 8, 76, 112, 113, 114, 161, 49, 51, - /* 290 */ 53, 41, 39, 43, 37, 34, 122, 74, 69, 83, - /* 300 */ 170, 130, 295, 35, 84, 92, 171, 173, 296, 194, - /* 310 */ 210, 196, 198, 161, 202, 206, 107, 176, 177, 183, - /* 320 */ 184, 185, 135, 139, 145, 100, 151, 130, 432, 124, - /* 330 */ 17, 180, 178, 179, 181, 182, 297, 228, 236, 224, - /* 340 */ 225, 6, 6, 176, 177, 183, 184, 185, 135, 139, - /* 350 */ 145, 115, 151, 164, 164, 298, 94, 180, 178, 179, - /* 360 */ 181, 182, 215, 107, 24, 35, 70, 230, 171, 173, - /* 370 */ 98, 175, 175, 95, 104, 216, 92, 232, 76, 299, - /* 380 */ 123, 226, 234, 92, 160, 160, 119, 186, 186, 130, - /* 390 */ 193, 35, 191, 251, 171, 173, 91, 76, 278, 94, - /* 400 */ 292, 161, 240, 105, 175, 176, 177, 183, 184, 185, - /* 410 */ 135, 139, 145, 103, 151, 130, 82, 160, 9, 180, - /* 420 */ 178, 179, 181, 182, 194, 210, 196, 198, 26, 202, - /* 430 */ 206, 176, 177, 183, 184, 185, 135, 139, 145, 10, - /* 440 */ 151, 164, 31, 153, 190, 180, 178, 179, 181, 182, - /* 450 */ 170, 218, 96, 35, 85, 109, 171, 173, 137, 175, - /* 460 */ 175, 168, 6, 161, 110, 28, 239, 15, 162, 167, - /* 470 */ 168, 102, 160, 160, 165, 186, 11, 130, 217, 35, - /* 480 */ 13, 431, 171, 173, 12, 201, 121, 247, 199, 161, - /* 490 */ 227, 162, 14, 176, 177, 183, 184, 185, 135, 139, - /* 500 */ 145, 27, 151, 130, 175, 175, 16, 180, 178, 179, - /* 510 */ 181, 182, 244, 248, 281, 288, 284, 160, 160, 176, - /* 520 */ 177, 183, 184, 185, 135, 139, 145, 18, 151, 205, - /* 530 */ 254, 262, 203, 180, 178, 179, 181, 182, 67, 72, - /* 540 */ 49, 51, 53, 41, 39, 43, 37, 34, 122, 74, - /* 550 */ 69, 209, 78, 25, 207, 223, 219, 253, 258, 458, - /* 560 */ 1, 2, 3, 4, 5, 6, 133, 29, 168, 107, - /* 570 */ 6, 77, 260, 263, 175, 31, 272, 69, 257, 283, - /* 580 */ 284, 256, 131, 260, 261, 75, 127, 160, 235, 108, - /* 590 */ 175, 273, 267, 175, 86, 261, 109, 289, 94, 30, - /* 600 */ 175, 175, 164, 160, 175, 279, 160, 80, 214, 219, - /* 610 */ 84, 212, 247, 160, 160, 87, 84, 160, 88, 260, - /* 620 */ 175, 238, 107, 287, 93, 97, 36, 175, 107, 101, - /* 630 */ 175, 259, 106, 160, 110, 38, 169, 175, 246, 175, - /* 640 */ 160, 175, 286, 160, 175, 40, 42, 44, 269, 46, - /* 650 */ 160, 386, 160, 175, 160, 48, 50, 160, 116, 125, - /* 660 */ 118, 52, 117, 175, 175, 175, 160, 175, 264, 258, - /* 670 */ 54, 134, 56, 175, 175, 58, 160, 160, 160, 175, - /* 680 */ 160, 60, 62, 136, 64, 76, 160, 160, 175, 268, - /* 690 */ 175, 66, 160, 175, 138, 140, 143, 149, 144, 175, - /* 700 */ 175, 160, 175, 160, 146, 187, 160, 68, 71, 175, - /* 710 */ 276, 73, 160, 160, 129, 160, 141, 147, 150, 152, - /* 720 */ 155, 163, 160, 157, 166, 175, 175, 192, 159, 175, - /* 730 */ 195, 172, 175, 174, 175, 175, 323, 175, 160, 160, - /* 740 */ 189, 175, 160, 231, 197, 160, 175, 160, 160, 175, - /* 750 */ 160, 175, 241, 324, 160, 250, 200, 325, 175, 160, - /* 760 */ 326, 175, 160, 204, 160, 327, 328, 294, 208, 329, - /* 770 */ 175, 160, 84, 175, 160, 330, 331, 221, 229, 245, - /* 780 */ 243, 233, 255, 160, 107, 237, 160, 334, 271, 335, - /* 790 */ 252, 270, 265, 342, 266, 274, 275, 277, 385, 280, - /* 800 */ 282, 285, 290, 291, 348, 293, -}; -static PPCODETYPE pp_lookahead[] = { - /* 0 */ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - /* 10 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 20 */ 21, 22, 23, 24, 1, 2, 3, 4, 5, 6, - /* 30 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - /* 40 */ 17, 18, 19, 20, 21, 22, 23, 24, 61, 62, - /* 50 */ 63, 64, 65, 54, 55, 1, 2, 3, 4, 5, - /* 60 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - /* 70 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 20, - /* 80 */ 21, 22, 23, 24, 31, 31, 97, 33, 120, 121, - /* 90 */ 101, 102, 103, 104, 26, 72, 28, 74, 45, 1, - /* 100 */ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - /* 110 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 120 */ 22, 23, 24, 4, 5, 6, 7, 8, 9, 10, - /* 130 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 140 */ 21, 22, 23, 24, 46, 51, 1, 2, 3, 4, - /* 150 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - /* 160 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - /* 170 */ 17, 18, 19, 20, 21, 22, 23, 24, 33, 88, - /* 180 */ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - /* 190 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 200 */ 21, 22, 23, 24, 1, 2, 3, 4, 5, 6, - /* 210 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - /* 220 */ 17, 18, 19, 20, 21, 22, 23, 24, 10, 11, - /* 230 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 240 */ 22, 23, 24, 22, 23, 24, 71, 72, 69, 74, - /* 250 */ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - /* 260 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 270 */ 21, 22, 23, 24, 18, 56, 73, 21, 120, 121, - /* 280 */ 24, 25, 89, 27, 102, 103, 104, 31, 14, 15, - /* 290 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 100, - /* 300 */ 18, 45, 0, 21, 105, 26, 24, 25, 0, 34, - /* 310 */ 35, 36, 37, 31, 39, 40, 117, 61, 62, 63, - /* 320 */ 64, 65, 66, 67, 68, 46, 70, 45, 46, 24, - /* 330 */ 26, 75, 76, 77, 78, 79, 0, 83, 83, 29, - /* 340 */ 30, 87, 87, 61, 62, 63, 64, 65, 66, 67, - /* 350 */ 68, 105, 70, 99, 99, 0, 31, 75, 76, 77, - /* 360 */ 78, 79, 18, 117, 60, 21, 12, 13, 24, 25, - /* 370 */ 45, 117, 117, 120, 121, 31, 26, 23, 27, 0, - /* 380 */ 75, 127, 127, 26, 130, 130, 99, 133, 133, 45, - /* 390 */ 31, 21, 33, 42, 24, 25, 46, 27, 47, 31, - /* 400 */ 49, 31, 57, 46, 117, 61, 62, 63, 64, 65, - /* 410 */ 66, 67, 68, 45, 70, 45, 26, 130, 90, 75, - /* 420 */ 76, 77, 78, 79, 34, 35, 36, 37, 52, 39, - /* 430 */ 40, 61, 62, 63, 64, 65, 66, 67, 68, 91, - /* 440 */ 70, 99, 99, 128, 129, 75, 76, 77, 78, 79, - /* 450 */ 18, 18, 31, 21, 33, 32, 24, 25, 83, 117, - /* 460 */ 117, 26, 87, 31, 31, 122, 123, 59, 45, 127, - /* 470 */ 26, 50, 130, 130, 132, 133, 92, 45, 32, 21, - /* 480 */ 58, 46, 24, 25, 93, 35, 99, 99, 38, 31, - /* 490 */ 46, 45, 47, 61, 62, 63, 64, 65, 66, 67, - /* 500 */ 68, 53, 70, 45, 117, 117, 126, 75, 76, 77, - /* 510 */ 78, 79, 124, 125, 115, 116, 117, 130, 130, 61, - /* 520 */ 62, 63, 64, 65, 66, 67, 68, 126, 70, 35, - /* 530 */ 44, 45, 38, 75, 76, 77, 78, 79, 12, 13, - /* 540 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - /* 550 */ 24, 35, 95, 126, 38, 98, 99, 105, 26, 81, - /* 560 */ 82, 83, 84, 85, 86, 87, 83, 26, 26, 117, - /* 570 */ 87, 94, 99, 109, 117, 99, 112, 24, 46, 116, - /* 580 */ 117, 108, 99, 99, 111, 45, 99, 130, 46, 31, - /* 590 */ 117, 113, 108, 117, 31, 111, 32, 119, 31, 123, - /* 600 */ 117, 117, 99, 130, 117, 100, 130, 96, 98, 99, - /* 610 */ 105, 100, 99, 130, 130, 50, 105, 130, 120, 99, - /* 620 */ 117, 99, 117, 99, 120, 50, 99, 117, 117, 120, - /* 630 */ 117, 111, 120, 130, 31, 99, 133, 117, 125, 117, - /* 640 */ 130, 117, 118, 130, 117, 99, 99, 99, 26, 99, - /* 650 */ 130, 0, 130, 117, 130, 99, 99, 130, 106, 75, - /* 660 */ 41, 99, 107, 117, 117, 117, 130, 117, 46, 26, - /* 670 */ 99, 46, 99, 117, 117, 99, 130, 130, 130, 117, - /* 680 */ 130, 99, 99, 45, 99, 27, 130, 130, 117, 46, - /* 690 */ 117, 99, 130, 117, 46, 45, 31, 31, 46, 117, - /* 700 */ 117, 130, 117, 130, 45, 29, 130, 99, 99, 117, - /* 710 */ 59, 99, 130, 130, 99, 130, 99, 99, 46, 99, - /* 720 */ 129, 131, 130, 99, 46, 117, 117, 31, 99, 117, - /* 730 */ 35, 99, 117, 99, 117, 117, 31, 117, 130, 130, - /* 740 */ 99, 117, 130, 99, 35, 130, 117, 130, 130, 117, - /* 750 */ 130, 117, 99, 31, 130, 99, 35, 31, 117, 130, - /* 760 */ 31, 117, 130, 35, 130, 31, 31, 100, 35, 31, - /* 770 */ 117, 130, 105, 117, 130, 31, 31, 31, 46, 26, - /* 780 */ 53, 45, 45, 130, 117, 46, 130, 0, 31, 0, - /* 790 */ 43, 112, 44, 0, 45, 88, 114, 126, 0, 48, - /* 800 */ 26, 4, 88, 114, 0, 28, -}; -#define PP_SHIFT_USE_DFLT (-14) -static short pp_shift_ofst[] = { - /* 0 */ 351, 302, 308, 336, 355, 379, 94, 219, 345, 376, - /* 10 */ 408, 422, -14, 445, -14, -13, 304, -13, -14, -14, - /* 20 */ -14, -14, -14, -14, -13, -14, 448, 458, 541, 458, - /* 30 */ -14, -1, -14, -14, 458, 458, 221, 458, 221, 458, - /* 40 */ 59, 458, 59, 458, 59, 458, 526, 458, 526, 458, - /* 50 */ 153, 458, 153, 458, 153, 458, 218, 458, 218, 458, - /* 60 */ 218, 458, 218, 458, 218, 458, 218, 458, 274, 354, - /* 70 */ 458, 553, 458, 274, 540, 256, 310, 344, 68, 558, - /* 80 */ 390, -14, 558, -14, 421, 563, 565, 53, -14, 567, - /* 90 */ 350, -14, 567, -14, -14, -14, 575, 325, 567, 279, - /* 100 */ -14, -14, 368, 567, 357, -14, -14, -14, 564, 603, - /* 110 */ -14, 275, -14, -14, 558, 359, 619, -14, 458, 249, - /* 120 */ 458, 249, 305, -14, 584, -14, 458, 119, 458, 119, - /* 130 */ 370, 98, -14, 625, -14, 638, 658, 648, -14, 650, - /* 140 */ 458, 145, 665, 652, -14, 659, 458, 179, 666, 672, - /* 150 */ -14, 458, 23, 175, -14, -14, 458, 203, 458, 249, - /* 160 */ -14, 423, 676, 282, 249, 678, -14, 435, 432, -14, - /* 170 */ -14, 458, 553, 458, 553, -14, -14, -14, -14, -14, - /* 180 */ -14, -14, -14, -14, -14, -14, -14, -14, 458, 249, - /* 190 */ -14, 696, -14, -14, 695, 705, 709, 722, 450, 721, - /* 200 */ 726, 729, 494, 728, 734, 735, 516, 733, 738, 744, - /* 210 */ 745, -14, -14, 344, -14, -14, 446, 433, -14, 54, - /* 220 */ 746, -14, -14, -14, -14, -14, 444, -14, 732, -14, - /* 230 */ 458, 553, 736, 256, 542, -14, 739, -14, 221, -14, - /* 240 */ 458, 249, 727, 458, 753, 458, -14, 249, -14, 458, - /* 250 */ 249, 747, 558, 486, 737, 458, 532, 787, 458, -14, - /* 260 */ 249, -14, 757, 622, 748, 749, 458, 643, 789, 757, - /* 270 */ -14, -14, -14, 94, 651, 793, -13, 798, 558, 751, - /* 280 */ 558, 774, 558, -14, 797, 458, -14, 249, -14, 94, - /* 290 */ 651, 804, 777, 558, -14, -}; -#define PP_REDUCE_USE_DFLT (-33) -static short pp_reduce_ofst[] = { - /* 0 */ 478, -33, -33, -33, -33, -33, 91, 193, 328, 348, - /* 10 */ 384, 391, -33, -33, -33, 380, -33, 401, -33, -33, - /* 20 */ -33, -33, -33, -33, 427, -33, -33, 343, -33, 476, - /* 30 */ -33, -33, -33, -33, 522, 527, -33, 536, -33, 546, - /* 40 */ -33, 547, -33, 548, -33, 550, -33, 556, -33, 557, - /* 50 */ -33, 562, -33, 571, -33, 573, -33, 576, -33, 582, - /* 60 */ -33, 583, -33, 585, -33, 592, -33, 608, -33, -33, - /* 70 */ 609, -33, 612, -33, -33, 254, 477, 457, -33, 511, - /* 80 */ -11, -33, 199, -33, -33, -33, -33, 498, -33, -32, - /* 90 */ -33, -33, 504, -33, -33, -33, -33, 509, 158, -33, - /* 100 */ -33, -33, 512, 253, -33, -33, -33, -33, -33, -33, - /* 110 */ -33, 182, -33, -33, 246, 552, 555, -33, 287, -33, - /* 120 */ 387, -33, -33, -33, -33, -33, 487, -33, 615, -33, - /* 130 */ 483, -33, -33, -33, -33, -33, 375, -33, -33, -33, - /* 140 */ 617, -33, -33, -33, -33, -33, 618, -33, -33, -33, - /* 150 */ -33, 620, 315, 591, -33, -33, 624, -33, 629, -33, - /* 160 */ -33, -33, 590, 342, -33, -33, -33, -33, 503, -33, - /* 170 */ -33, 632, -33, 634, -33, -33, -33, -33, -33, -33, - /* 180 */ -33, -33, -33, -33, -33, -33, -33, -33, 641, -33, - /* 190 */ -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, - /* 200 */ -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, - /* 210 */ -33, -33, -33, 510, -33, -33, -33, -33, -33, -33, - /* 220 */ -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, - /* 230 */ 644, -33, -33, 255, -33, -33, -33, -33, -33, -33, - /* 240 */ 653, -33, -33, 388, -33, 513, -33, -33, -33, 656, - /* 250 */ -33, -33, 452, -33, -33, 473, -33, -33, 520, -33, - /* 260 */ -33, -33, 464, -33, -33, -33, 484, -33, -33, 679, - /* 270 */ -33, -33, -33, 707, 682, -33, 671, -33, 505, -33, - /* 280 */ 399, -33, 463, -33, -33, 524, -33, -33, -33, 714, - /* 290 */ 689, -33, -33, 667, -33, -}; -static PPACTIONTYPE pp_default[] = { - /* 0 */ 457, 457, 457, 457, 457, 457, 364, 373, 378, 366, - /* 10 */ 384, 380, 300, 457, 379, 457, 381, 457, 382, 387, - /* 20 */ 388, 389, 390, 391, 457, 383, 457, 457, 365, 457, - /* 30 */ 367, 369, 370, 371, 457, 457, 392, 457, 394, 457, - /* 40 */ 395, 457, 396, 457, 397, 457, 398, 457, 399, 457, - /* 50 */ 400, 457, 401, 457, 402, 457, 403, 457, 404, 457, - /* 60 */ 405, 457, 406, 457, 407, 457, 408, 457, 409, 457, - /* 70 */ 457, 410, 457, 411, 457, 457, 304, 457, 457, 457, - /* 80 */ 315, 301, 457, 312, 352, 457, 350, 457, 353, 457, - /* 90 */ 457, 354, 457, 359, 361, 360, 351, 457, 457, 457, - /* 100 */ 355, 356, 457, 457, 457, 357, 358, 362, 456, 457, - /* 110 */ 455, 314, 316, 318, 457, 322, 333, 319, 457, 332, - /* 120 */ 457, 419, 457, 437, 457, 438, 457, 439, 457, 440, - /* 130 */ 457, 457, 443, 457, 415, 457, 457, 457, 418, 457, - /* 140 */ 457, 457, 457, 457, 420, 457, 457, 457, 457, 457, - /* 150 */ 421, 457, 457, 457, 422, 423, 457, 457, 457, 425, - /* 160 */ 427, 456, 430, 457, 436, 457, 428, 457, 457, 433, - /* 170 */ 435, 457, 441, 457, 442, 444, 445, 446, 447, 448, - /* 180 */ 449, 450, 451, 452, 453, 454, 434, 429, 457, 426, - /* 190 */ 424, 457, 320, 321, 457, 457, 457, 457, 457, 457, - /* 200 */ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - /* 210 */ 457, 317, 313, 457, 305, 307, 456, 457, 308, 311, - /* 220 */ 457, 309, 310, 306, 302, 303, 457, 413, 457, 416, - /* 230 */ 457, 412, 457, 457, 457, 414, 457, 417, 393, 368, - /* 240 */ 457, 377, 457, 457, 372, 457, 374, 376, 375, 457, - /* 250 */ 363, 457, 457, 457, 457, 457, 457, 457, 457, 336, - /* 260 */ 338, 337, 457, 457, 457, 457, 457, 457, 457, 457, - /* 270 */ 339, 341, 340, 364, 457, 457, 457, 457, 457, 457, - /* 280 */ 457, 343, 457, 344, 457, 457, 346, 347, 345, 364, - /* 290 */ 457, 457, 457, 457, 349, -}; -#define PP_SZ_ACTTAB (sizeof(pp_action)/sizeof(pp_action[0])) -/* The next table maps tokens into fallback tokens. If a construct -** like the following: -** -** %fallback ID X Y Z. -** -** appears in the grammer, then ID becomes a fallback token for X, Y, -** and Z. Whenever one of the tokens X, Y, or Z is input to the parser -** but it does not parse, the type of the token is changed to ID and -** the parse is retried before an error is thrown. -*/ -#ifdef PPFALLBACK -static const PPCODETYPE ppFallback[] = { -}; -#endif /* PPFALLBACK */ + RETURN_MEMBER(getThis(), "queryParams"); +} -/* The following structure represents a single element of the -** parser's stack. Information stored includes: -** -** + The state number for the parser at this level of the stack. -** -** + The value of the token stored at this level of the stack. -** (In other words, the "major" token.) -** -** + The semantic value stored at this level of the stack. This is -** the information used by the action routines in the grammar. -** It is sometimes called the "minor" token. -*/ -struct ppStackEntry { - int stateno; /* The state-number */ - int major; /* The major token value. This is the code - ** number for the token at this stack level */ - PPMINORTYPE minor; /* The user-supplied minor token value. This - ** is the value of the token */ -}; -typedef struct ppStackEntry ppStackEntry; +static PHP_METHOD(Phalcon_Http_Message_ServerRequest, getServerParams) +{ + zval *this_ptr = getThis(); -/* The state of the parser is completely contained in an instance of -** the following structure */ -struct ppParser { - int ppidx; /* Index of top element in stack */ - int pperrcnt; /* Shifts left before out of the error */ - phql_ARG_SDECL /* A place to hold %extra_argument */ - ppStackEntry ppstack[PPSTACKDEPTH]; /* The parser's stack */ -}; -typedef struct ppParser ppParser; -#ifndef NDEBUG -static FILE *ppTraceFILE = 0; -static char *ppTracePrompt = 0; -#endif /* NDEBUG */ -#ifndef NDEBUG -static void phql_Trace(FILE *TraceFILE, char *zTracePrompt){ - ppTraceFILE = TraceFILE; - ppTracePrompt = zTracePrompt; - if( ppTraceFILE==0 ) ppTracePrompt = 0; - else if( ppTracePrompt==0 ) ppTraceFILE = 0; + RETURN_MEMBER(getThis(), "serverParams"); } -#endif /* NDEBUG */ -#ifndef NDEBUG -/* For tracing shifts, the names of all terminals and nonterminals -** are required. The following table supplies these names */ -static const char *ppTokenName[] = { - "$", "AGAINST", "BETWEEN", "BETWEEN_NOT", - "EQUALS", "NOTEQUALS", "LESS", "GREATER", - "GREATEREQUAL", "LESSEQUAL", "AND", "OR", - "LIKE", "ILIKE", "BITWISE_AND", "BITWISE_OR", - "BITWISE_XOR", "DIVIDE", "TIMES", "MOD", - "PLUS", "MINUS", "IS", "IN", - "NOT", "BITWISE_NOT", "COMMA", "SELECT", - "FROM", "DISTINCT", "ALL", "IDENTIFIER", - "DOT", "AS", "INNER", "JOIN", - "CROSS", "LEFT", "OUTER", "RIGHT", - "FULL", "ON", "INSERT", "INTO", - "VALUES", "PARENTHESES_OPEN", "PARENTHESES_CLOSE", "UPDATE", - "SET", "DELETE", "WITH", "WHERE", - "ORDER", "BY", "ASC", "DESC", - "GROUP", "HAVING", "FOR", "LIMIT", - "OFFSET", "INTEGER", "HINTEGER", "NPLACEHOLDER", - "SPLACEHOLDER", "BPLACEHOLDER", "EXISTS", "CAST", - "CONVERT", "USING", "CASE", "END", - "WHEN", "THEN", "ELSE", "NULL", - "STRING", "DOUBLE", "TRUE", "FALSE", - "error", "program", "query_language", "select_statement", - "insert_statement", "update_statement", "delete_statement", "select_clause", - "where_clause", "group_clause", "having_clause", "order_clause", - "select_limit_clause", "for_update_clause", "distinct_all", "column_list", - "associated_name_list", "join_list_or_null", "column_item", "expr", - "associated_name", "join_list", "join_item", "join_clause", - "join_type", "aliased_or_qualified_name", "join_associated_name", "join_conditions", - "values_list", "field_list", "value_list", "value_item", - "field_item", "update_clause", "limit_clause", "update_item_list", - "update_item", "qualified_name", "new_value", "delete_clause", - "with_item", "with_list", "order_list", "order_item", - "group_list", "group_item", "integer_or_placeholder", "argument_list", - "when_clauses", "when_clause", "function_call", "distinct_or_null", - "argument_list_or_null", "argument_item", -}; -#endif /* NDEBUG */ +static PHP_METHOD(Phalcon_Http_Message_ServerRequest, getUploadedFiles) +{ + zval *this_ptr = getThis(); -#ifndef NDEBUG -/* For tracing reduce actions, the names of all rules are required. -*/ -static const char *ppRuleName[] = { - /* 0 */ "program ::= query_language", - /* 1 */ "query_language ::= select_statement", - /* 2 */ "query_language ::= insert_statement", - /* 3 */ "query_language ::= update_statement", - /* 4 */ "query_language ::= delete_statement", - /* 5 */ "select_statement ::= select_clause where_clause group_clause having_clause order_clause select_limit_clause for_update_clause", - /* 6 */ "select_clause ::= SELECT distinct_all column_list FROM associated_name_list join_list_or_null", - /* 7 */ "distinct_all ::= DISTINCT", - /* 8 */ "distinct_all ::= ALL", - /* 9 */ "distinct_all ::=", - /* 10 */ "column_list ::= column_list COMMA column_item", - /* 11 */ "column_list ::= column_item", - /* 12 */ "column_item ::= TIMES", - /* 13 */ "column_item ::= IDENTIFIER DOT TIMES", - /* 14 */ "column_item ::= expr AS IDENTIFIER", - /* 15 */ "column_item ::= expr IDENTIFIER", - /* 16 */ "column_item ::= expr", - /* 17 */ "associated_name_list ::= associated_name_list COMMA associated_name", - /* 18 */ "associated_name_list ::= associated_name", - /* 19 */ "join_list_or_null ::= join_list", - /* 20 */ "join_list_or_null ::=", - /* 21 */ "join_list ::= join_list join_item", - /* 22 */ "join_list ::= join_item", - /* 23 */ "join_item ::= join_clause", - /* 24 */ "join_clause ::= join_type aliased_or_qualified_name join_associated_name join_conditions", - /* 25 */ "join_associated_name ::= AS IDENTIFIER", - /* 26 */ "join_associated_name ::= IDENTIFIER", - /* 27 */ "join_associated_name ::=", - /* 28 */ "join_type ::= INNER JOIN", - /* 29 */ "join_type ::= CROSS JOIN", - /* 30 */ "join_type ::= LEFT OUTER JOIN", - /* 31 */ "join_type ::= LEFT JOIN", - /* 32 */ "join_type ::= RIGHT OUTER JOIN", - /* 33 */ "join_type ::= RIGHT JOIN", - /* 34 */ "join_type ::= FULL OUTER JOIN", - /* 35 */ "join_type ::= FULL JOIN", - /* 36 */ "join_type ::= JOIN", - /* 37 */ "join_conditions ::= ON expr", - /* 38 */ "join_conditions ::=", - /* 39 */ "insert_statement ::= INSERT INTO aliased_or_qualified_name VALUES PARENTHESES_OPEN values_list PARENTHESES_CLOSE", - /* 40 */ "insert_statement ::= INSERT INTO aliased_or_qualified_name PARENTHESES_OPEN field_list PARENTHESES_CLOSE VALUES PARENTHESES_OPEN values_list PARENTHESES_CLOSE", - /* 41 */ "values_list ::= values_list COMMA value_item", - /* 42 */ "values_list ::= value_item", - /* 43 */ "value_item ::= expr", - /* 44 */ "field_list ::= field_list COMMA field_item", - /* 45 */ "field_list ::= field_item", - /* 46 */ "field_item ::= IDENTIFIER", - /* 47 */ "update_statement ::= update_clause where_clause limit_clause", - /* 48 */ "update_clause ::= UPDATE associated_name SET update_item_list", - /* 49 */ "update_item_list ::= update_item_list COMMA update_item", - /* 50 */ "update_item_list ::= update_item", - /* 51 */ "update_item ::= qualified_name EQUALS new_value", - /* 52 */ "new_value ::= expr", - /* 53 */ "delete_statement ::= delete_clause where_clause limit_clause", - /* 54 */ "delete_clause ::= DELETE FROM associated_name", - /* 55 */ "associated_name ::= aliased_or_qualified_name AS IDENTIFIER", - /* 56 */ "associated_name ::= aliased_or_qualified_name IDENTIFIER", - /* 57 */ "associated_name ::= aliased_or_qualified_name", - /* 58 */ "associated_name ::= aliased_or_qualified_name AS IDENTIFIER WITH with_item", - /* 59 */ "associated_name ::= aliased_or_qualified_name AS IDENTIFIER WITH PARENTHESES_OPEN with_list PARENTHESES_CLOSE", - /* 60 */ "associated_name ::= aliased_or_qualified_name IDENTIFIER WITH PARENTHESES_OPEN with_list PARENTHESES_CLOSE", - /* 61 */ "associated_name ::= aliased_or_qualified_name IDENTIFIER WITH with_item", - /* 62 */ "associated_name ::= aliased_or_qualified_name WITH PARENTHESES_OPEN with_list PARENTHESES_CLOSE", - /* 63 */ "associated_name ::= aliased_or_qualified_name WITH with_item", - /* 64 */ "with_list ::= with_list COMMA with_item", - /* 65 */ "with_list ::= with_item", - /* 66 */ "with_item ::= IDENTIFIER", - /* 67 */ "aliased_or_qualified_name ::= qualified_name", - /* 68 */ "where_clause ::= WHERE expr", - /* 69 */ "where_clause ::=", - /* 70 */ "order_clause ::= ORDER BY order_list", - /* 71 */ "order_clause ::=", - /* 72 */ "order_list ::= order_list COMMA order_item", - /* 73 */ "order_list ::= order_item", - /* 74 */ "order_item ::= expr", - /* 75 */ "order_item ::= expr ASC", - /* 76 */ "order_item ::= expr DESC", - /* 77 */ "group_clause ::= GROUP BY group_list", - /* 78 */ "group_clause ::=", - /* 79 */ "group_list ::= group_list COMMA group_item", - /* 80 */ "group_list ::= group_item", - /* 81 */ "group_item ::= expr", - /* 82 */ "having_clause ::= HAVING expr", - /* 83 */ "having_clause ::=", - /* 84 */ "for_update_clause ::= FOR UPDATE", - /* 85 */ "for_update_clause ::=", - /* 86 */ "select_limit_clause ::= LIMIT integer_or_placeholder", - /* 87 */ "select_limit_clause ::= LIMIT integer_or_placeholder COMMA integer_or_placeholder", - /* 88 */ "select_limit_clause ::= LIMIT integer_or_placeholder OFFSET integer_or_placeholder", - /* 89 */ "select_limit_clause ::=", - /* 90 */ "limit_clause ::= LIMIT integer_or_placeholder", - /* 91 */ "limit_clause ::=", - /* 92 */ "integer_or_placeholder ::= INTEGER", - /* 93 */ "integer_or_placeholder ::= HINTEGER", - /* 94 */ "integer_or_placeholder ::= NPLACEHOLDER", - /* 95 */ "integer_or_placeholder ::= SPLACEHOLDER", - /* 96 */ "integer_or_placeholder ::= BPLACEHOLDER", - /* 97 */ "expr ::= MINUS expr", - /* 98 */ "expr ::= expr MINUS expr", - /* 99 */ "expr ::= expr PLUS expr", - /* 100 */ "expr ::= expr TIMES expr", - /* 101 */ "expr ::= expr DIVIDE expr", - /* 102 */ "expr ::= expr MOD expr", - /* 103 */ "expr ::= expr AND expr", - /* 104 */ "expr ::= expr OR expr", - /* 105 */ "expr ::= expr BITWISE_AND expr", - /* 106 */ "expr ::= expr BITWISE_OR expr", - /* 107 */ "expr ::= expr BITWISE_XOR expr", - /* 108 */ "expr ::= expr EQUALS expr", - /* 109 */ "expr ::= expr NOTEQUALS expr", - /* 110 */ "expr ::= expr LESS expr", - /* 111 */ "expr ::= expr GREATER expr", - /* 112 */ "expr ::= expr GREATEREQUAL expr", - /* 113 */ "expr ::= expr LESSEQUAL expr", - /* 114 */ "expr ::= expr LIKE expr", - /* 115 */ "expr ::= expr NOT LIKE expr", - /* 116 */ "expr ::= expr ILIKE expr", - /* 117 */ "expr ::= expr NOT ILIKE expr", - /* 118 */ "expr ::= expr IN PARENTHESES_OPEN argument_list PARENTHESES_CLOSE", - /* 119 */ "expr ::= expr NOT IN PARENTHESES_OPEN argument_list PARENTHESES_CLOSE", - /* 120 */ "expr ::= PARENTHESES_OPEN select_statement PARENTHESES_CLOSE", - /* 121 */ "expr ::= expr IN PARENTHESES_OPEN select_statement PARENTHESES_CLOSE", - /* 122 */ "expr ::= expr NOT IN PARENTHESES_OPEN select_statement PARENTHESES_CLOSE", - /* 123 */ "expr ::= EXISTS PARENTHESES_OPEN select_statement PARENTHESES_CLOSE", - /* 124 */ "expr ::= expr AGAINST expr", - /* 125 */ "expr ::= CAST PARENTHESES_OPEN expr AS IDENTIFIER PARENTHESES_CLOSE", - /* 126 */ "expr ::= CONVERT PARENTHESES_OPEN expr USING IDENTIFIER PARENTHESES_CLOSE", - /* 127 */ "expr ::= CASE expr when_clauses END", - /* 128 */ "when_clauses ::= when_clauses when_clause", - /* 129 */ "when_clauses ::= when_clause", - /* 130 */ "when_clause ::= WHEN expr THEN expr", - /* 131 */ "when_clause ::= ELSE expr", - /* 132 */ "expr ::= function_call", - /* 133 */ "function_call ::= IDENTIFIER PARENTHESES_OPEN distinct_or_null argument_list_or_null PARENTHESES_CLOSE", - /* 134 */ "distinct_or_null ::= DISTINCT", - /* 135 */ "distinct_or_null ::=", - /* 136 */ "argument_list_or_null ::= argument_list", - /* 137 */ "argument_list_or_null ::=", - /* 138 */ "argument_list ::= argument_list COMMA argument_item", - /* 139 */ "argument_list ::= argument_item", - /* 140 */ "argument_item ::= TIMES", - /* 141 */ "argument_item ::= expr", - /* 142 */ "expr ::= expr IS NULL", - /* 143 */ "expr ::= expr IS NOT NULL", - /* 144 */ "expr ::= expr BETWEEN expr", - /* 145 */ "expr ::= expr BETWEEN_NOT expr", - /* 146 */ "expr ::= NOT expr", - /* 147 */ "expr ::= BITWISE_NOT expr", - /* 148 */ "expr ::= PARENTHESES_OPEN expr PARENTHESES_CLOSE", - /* 149 */ "expr ::= qualified_name", - /* 150 */ "expr ::= INTEGER", - /* 151 */ "expr ::= HINTEGER", - /* 152 */ "expr ::= STRING", - /* 153 */ "expr ::= DOUBLE", - /* 154 */ "expr ::= NULL", - /* 155 */ "expr ::= TRUE", - /* 156 */ "expr ::= FALSE", - /* 157 */ "expr ::= NPLACEHOLDER", - /* 158 */ "expr ::= SPLACEHOLDER", - /* 159 */ "expr ::= BPLACEHOLDER", - /* 160 */ "qualified_name ::= IDENTIFIER DOT IDENTIFIER", - /* 161 */ "qualified_name ::= IDENTIFIER", -}; -#endif /* NDEBUG */ -const char *phql_TokenName(int tokenType){ -#ifndef NDEBUG - if( tokenType>0 && tokenType<(sizeof(ppTokenName)/sizeof(ppTokenName[0])) ){ - return ppTokenName[tokenType]; - }else{ - return "Unknown"; - } -#else - return ""; -#endif -} -void *phql_Alloc(void *(*mallocProc)(size_t)){ - ppParser *pParser; - pParser = (ppParser*)(*mallocProc)( (size_t)sizeof(ppParser) ); - if( pParser ){ - pParser->ppidx = -1; - } - return pParser; + RETURN_MEMBER(getThis(), "uploadedFiles"); } -/* The following function deletes the value associated with a -** symbol. The symbol can be either a terminal or nonterminal. -** "ppmajor" is the symbol code, and "pppminor" is a pointer to -** the value. -*/ -static void pp_destructor(PPCODETYPE ppmajor, PPMINORTYPE *pppminor){ - switch( ppmajor ){ - /* Here is inserted the actions which take place when a - ** terminal or non-terminal is destroyed. This can happen - ** when the symbol is popped from the stack during a - ** reduce or during error processing or when a parser is - ** being destroyed before it is finished parsing. - ** - ** Note: during a reduce, the only symbols destroyed are those - ** which appear on the RHS of the rule, but which are not used - ** inside the C code. - */ - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 20: - case 21: - case 22: - case 23: - case 24: - case 25: - case 26: - case 27: - case 28: - case 29: - case 30: - case 31: - case 32: - case 33: - case 34: - case 35: - case 36: - case 37: - case 38: - case 39: - case 40: - case 41: - case 42: - case 43: - case 44: - case 45: - case 46: - case 47: - case 48: - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - case 58: - case 59: - case 60: - case 61: - case 62: - case 63: - case 64: - case 65: - case 66: - case 67: - case 68: - case 69: - case 70: - case 71: - case 72: - case 73: - case 74: - case 75: - case 76: - case 77: - case 78: - case 79: -// 101 "parser.php.lemon" +static PHP_METHOD(Phalcon_Http_Message_ServerRequest, __construct) { - if ((pppminor->pp0)) { - if ((pppminor->pp0)->free_flag) { - efree((pppminor->pp0)->token); - } - efree((pppminor->pp0)); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval serverParams, cookies, queryParams, uploadFiles; + zval *method_param = NULL, *uri = NULL, uri_sub, *serverParams_param = NULL, *body = NULL, body_sub, *headers = NULL, headers_sub, *cookies_param = NULL, *queryParams_param = NULL, *uploadFiles_param = NULL, *parsedBody = NULL, parsedBody_sub, *protocol_param = NULL, __$null, _0, _1, _2, _3, _4, _5, _6; + zval method, protocol; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&protocol); + ZVAL_UNDEF(&uri_sub); + ZVAL_UNDEF(&body_sub); + ZVAL_UNDEF(&headers_sub); + ZVAL_UNDEF(&parsedBody_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&serverParams); + ZVAL_UNDEF(&cookies); + ZVAL_UNDEF(&queryParams); + ZVAL_UNDEF(&uploadFiles); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 10) + Z_PARAM_OPTIONAL + Z_PARAM_STR(method) + Z_PARAM_ZVAL_OR_NULL(uri) + Z_PARAM_ARRAY(serverParams) + Z_PARAM_ZVAL(body) + Z_PARAM_ZVAL(headers) + Z_PARAM_ARRAY(cookies) + Z_PARAM_ARRAY(queryParams) + Z_PARAM_ARRAY(uploadFiles) + Z_PARAM_ZVAL_OR_NULL(parsedBody) + Z_PARAM_STR(protocol) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 10, &method_param, &uri, &serverParams_param, &body, &headers, &cookies_param, &queryParams_param, &uploadFiles_param, &parsedBody, &protocol_param); + if (!method_param) { + ZEPHIR_INIT_VAR(&method); + ZVAL_STRING(&method, "GET"); + } else { + zephir_get_strval(&method, method_param); } -} -// 826 "parser.php.c" - break; - case 82: - case 83: - case 84: - case 85: - case 86: - case 87: - case 89: - case 95: - case 96: - case 98: - case 99: - case 100: - case 101: - case 102: - case 103: - case 104: - case 105: - case 109: - case 110: - case 112: - case 113: - case 115: - case 116: - case 117: - case 119: - case 120: - case 121: - case 122: - case 123: - case 124: - case 125: - case 127: - case 130: - case 133: -// 114 "parser.php.lemon" -{ - zval_ptr_dtor(&(pppminor->pp202)); -} -// 866 "parser.php.c" - break; - case 88: - case 90: - case 91: - case 92: - case 93: - case 94: - case 106: - case 107: - case 114: - case 131: - case 132: -// 496 "parser.php.lemon" -{ - zephir_safe_zval_ptr_dtor((pppminor->pp202)); -} -// 883 "parser.php.c" - break; - default: break; /* If no destructor action specified: do nothing */ - } + if (!uri) { + uri = &uri_sub; + uri = &__$null; + } + if (!serverParams_param) { + ZEPHIR_INIT_VAR(&serverParams); + array_init(&serverParams); + } else { + zephir_get_arrval(&serverParams, serverParams_param); + } + if (!body) { + body = &body_sub; + ZEPHIR_INIT_VAR(body); + ZVAL_STRING(body, "php://input"); + } else { + ZEPHIR_SEPARATE_PARAM(body); + } + if (!headers) { + headers = &headers_sub; + ZEPHIR_INIT_VAR(headers); + array_init(headers); + } + if (!cookies_param) { + ZEPHIR_INIT_VAR(&cookies); + array_init(&cookies); + } else { + zephir_get_arrval(&cookies, cookies_param); + } + if (!queryParams_param) { + ZEPHIR_INIT_VAR(&queryParams); + array_init(&queryParams); + } else { + zephir_get_arrval(&queryParams, queryParams_param); + } + if (!uploadFiles_param) { + ZEPHIR_INIT_VAR(&uploadFiles); + array_init(&uploadFiles); + } else { + zephir_get_arrval(&uploadFiles, uploadFiles_param); + } + if (!parsedBody) { + parsedBody = &parsedBody_sub; + parsedBody = &__$null; + } + if (!protocol_param) { + ZEPHIR_INIT_VAR(&protocol); + ZVAL_STRING(&protocol, "1.1"); + } else { + zephir_get_strval(&protocol, protocol_param); + } + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "php://input"); + if (UNEXPECTED(ZEPHIR_IS_IDENTICAL(&_0, body))) { + ZEPHIR_INIT_NVAR(body); + object_init_ex(body, phalcon_http_message_stream_input_ce); + ZEPHIR_CALL_METHOD(NULL, body, "__construct", NULL, 282); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkuploadedfiles", NULL, 293, &uploadFiles); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "processprotocol", NULL, 38, &protocol); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("protocolVersion"), &_1); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "processmethod", NULL, 106, &method); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("method"), &_2); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "processheaders", NULL, 284, headers); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("headers"), &_3); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "processuri", NULL, 283, uri); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("uri"), &_4); + ZEPHIR_INIT_VAR(&_6); + ZVAL_STRING(&_6, "w+b"); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "processbody", NULL, 37, body, &_6); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("body"), &_5); + zephir_update_property_zval(this_ptr, ZEND_STRL("uploadedFiles"), &uploadFiles); + zephir_update_property_zval(this_ptr, ZEND_STRL("parsedBody"), parsedBody); + zephir_update_property_zval(this_ptr, ZEND_STRL("serverParams"), &serverParams); + zephir_update_property_zval(this_ptr, ZEND_STRL("cookieParams"), &cookies); + zephir_update_property_zval(this_ptr, ZEND_STRL("queryParams"), &queryParams); + ZEPHIR_INIT_NVAR(&_6); + object_init_ex(&_6, phalcon_collection_ce); + ZEPHIR_CALL_METHOD(NULL, &_6, "__construct", NULL, 22); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &_6); + ZEPHIR_MM_RESTORE(); } -static int pp_pop_parser_stack(ppParser *pParser){ - PPCODETYPE ppmajor; - ppStackEntry *pptos = &pParser->ppstack[pParser->ppidx]; +static PHP_METHOD(Phalcon_Http_Message_ServerRequest, getAttribute) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name, name_sub, *defaultValue = NULL, defaultValue_sub, __$null, _0; + zval *this_ptr = getThis(); - if( pParser->ppidx<0 ) return 0; -#ifndef NDEBUG - if( ppTraceFILE && pParser->ppidx>=0 ){ - fprintf(ppTraceFILE,"%sPopping %s\n", - ppTracePrompt, - ppTokenName[pptos->major]); - } + ZVAL_UNDEF(&name_sub); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(name) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(defaultValue) + ZEND_PARSE_PARAMETERS_END(); #endif - ppmajor = pptos->major; - pp_destructor( ppmajor, &pptos->minor); - pParser->ppidx--; - return ppmajor; -} -static void phql_Free( - void *p, /* The parser to be deleted */ - void (*freeProc)(void*) /* Function used to reclaim memory */ -){ - ppParser *pParser = (ppParser*)p; - if( pParser==0 ) return; - while( pParser->ppidx>=0 ) pp_pop_parser_stack(pParser); - (*freeProc)((void*)pParser); -} -static int pp_find_shift_action( - ppParser *pParser, /* The parser */ - int iLookAhead /* The look-ahead token */ -){ - int i; - int stateno = pParser->ppstack[pParser->ppidx].stateno; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &name, &defaultValue); + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; + } - /* if( pParser->ppidx<0 ) return PP_NO_ACTION; */ - i = pp_shift_ofst[stateno]; - if( i==PP_SHIFT_USE_DFLT ){ - return pp_default[stateno]; - } - if( iLookAhead==PPNOCODE ){ - return PP_NO_ACTION; - } - i += iLookAhead; - if( i<0 || i>=PP_SZ_ACTTAB || pp_lookahead[i]!=iLookAhead ){ -#ifdef PPFALLBACK - int iFallback; /* Fallback token */ - if( iLookAhead %s\n", - ppTracePrompt, ppTokenName[iLookAhead], ppTokenName[iFallback]); - } -#endif - return pp_find_shift_action(pParser, iFallback); - } -#endif - return pp_default[stateno]; - }else{ - return pp_action[i]; - } + + zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "get", NULL, 0, name, defaultValue); + zephir_check_call_status(); + RETURN_MM(); } -static int pp_find_reduce_action( - ppParser *pParser, /* The parser */ - int iLookAhead /* The look-ahead token */ -){ - int i; - int stateno = pParser->ppstack[pParser->ppidx].stateno; +static PHP_METHOD(Phalcon_Http_Message_ServerRequest, getAttributes) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); - i = pp_reduce_ofst[stateno]; - if( i==PP_REDUCE_USE_DFLT ){ - return pp_default[stateno]; - } - if( iLookAhead==PPNOCODE ){ - return PP_NO_ACTION; - } - i += iLookAhead; - if( i<0 || i>=PP_SZ_ACTTAB || pp_lookahead[i]!=iLookAhead ){ - return pp_default[stateno]; - }else{ - return pp_action[i]; - } + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "toarray", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } -static void pp_shift( - ppParser *pppParser, /* The parser to be shifted */ - int ppNewState, /* The new state to shift in */ - int ppMajor, /* The major token to shift in */ - PPMINORTYPE *pppMinor /* Pointer ot the minor token to shift in */ -){ - ppStackEntry *pptos; - pppParser->ppidx++; - if( pppParser->ppidx>=PPSTACKDEPTH ){ - phql_ARG_FETCH; - pppParser->ppidx--; -#ifndef NDEBUG - if( ppTraceFILE ){ - fprintf(ppTraceFILE,"%sStack Overflow!\n",ppTracePrompt); - } -#endif - while( pppParser->ppidx>=0 ) pp_pop_parser_stack(pppParser); - /* Here code is inserted which will execute if the parser - ** stack every overflows */ - phql_ARG_STORE; /* Suppress warning about unused %extra_argument var */ - return; - } - pptos = &pppParser->ppstack[pppParser->ppidx]; - pptos->stateno = ppNewState; - pptos->major = ppMajor; - pptos->minor = *pppMinor; -#ifndef NDEBUG - if( ppTraceFILE && pppParser->ppidx>0 ){ - int i; - fprintf(ppTraceFILE,"%sShift %d\n",ppTracePrompt,ppNewState); - fprintf(ppTraceFILE,"%sStack:",ppTracePrompt); - for(i=1; i<=pppParser->ppidx; i++) - fprintf(ppTraceFILE," %s",ppTokenName[pppParser->ppstack[i].major]); - fprintf(ppTraceFILE,"\n"); - } +static PHP_METHOD(Phalcon_Http_Message_ServerRequest, withAttribute) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name, name_sub, *value, value_sub, attributes, _0, _1, _2; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name_sub); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(name) + Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_END(); #endif -} -/* The following table contains information about every rule that -** is used during the reduce. -*/ -static struct { - PPCODETYPE lhs; /* Symbol on the left-hand side of the rule */ - unsigned char nrhs; /* Number of right-hand side symbols in the rule */ -} ppRuleInfo[] = { - { 81, 1 }, - { 82, 1 }, - { 82, 1 }, - { 82, 1 }, - { 82, 1 }, - { 83, 7 }, - { 87, 6 }, - { 94, 1 }, - { 94, 1 }, - { 94, 0 }, - { 95, 3 }, - { 95, 1 }, - { 98, 1 }, - { 98, 3 }, - { 98, 3 }, - { 98, 2 }, - { 98, 1 }, - { 96, 3 }, - { 96, 1 }, - { 97, 1 }, - { 97, 0 }, - { 101, 2 }, - { 101, 1 }, - { 102, 1 }, - { 103, 4 }, - { 106, 2 }, - { 106, 1 }, - { 106, 0 }, - { 104, 2 }, - { 104, 2 }, - { 104, 3 }, - { 104, 2 }, - { 104, 3 }, - { 104, 2 }, - { 104, 3 }, - { 104, 2 }, - { 104, 1 }, - { 107, 2 }, - { 107, 0 }, - { 84, 7 }, - { 84, 10 }, - { 108, 3 }, - { 108, 1 }, - { 111, 1 }, - { 109, 3 }, - { 109, 1 }, - { 112, 1 }, - { 85, 3 }, - { 113, 4 }, - { 115, 3 }, - { 115, 1 }, - { 116, 3 }, - { 118, 1 }, - { 86, 3 }, - { 119, 3 }, - { 100, 3 }, - { 100, 2 }, - { 100, 1 }, - { 100, 5 }, - { 100, 7 }, - { 100, 6 }, - { 100, 4 }, - { 100, 5 }, - { 100, 3 }, - { 121, 3 }, - { 121, 1 }, - { 120, 1 }, - { 105, 1 }, - { 88, 2 }, - { 88, 0 }, - { 91, 3 }, - { 91, 0 }, - { 122, 3 }, - { 122, 1 }, - { 123, 1 }, - { 123, 2 }, - { 123, 2 }, - { 89, 3 }, - { 89, 0 }, - { 124, 3 }, - { 124, 1 }, - { 125, 1 }, - { 90, 2 }, - { 90, 0 }, - { 93, 2 }, - { 93, 0 }, - { 92, 2 }, - { 92, 4 }, - { 92, 4 }, - { 92, 0 }, - { 114, 2 }, - { 114, 0 }, - { 126, 1 }, - { 126, 1 }, - { 126, 1 }, - { 126, 1 }, - { 126, 1 }, - { 99, 2 }, - { 99, 3 }, - { 99, 3 }, - { 99, 3 }, - { 99, 3 }, - { 99, 3 }, - { 99, 3 }, - { 99, 3 }, - { 99, 3 }, - { 99, 3 }, - { 99, 3 }, - { 99, 3 }, - { 99, 3 }, - { 99, 3 }, - { 99, 3 }, - { 99, 3 }, - { 99, 3 }, - { 99, 3 }, - { 99, 4 }, - { 99, 3 }, - { 99, 4 }, - { 99, 5 }, - { 99, 6 }, - { 99, 3 }, - { 99, 5 }, - { 99, 6 }, - { 99, 4 }, - { 99, 3 }, - { 99, 6 }, - { 99, 6 }, - { 99, 4 }, - { 128, 2 }, - { 128, 1 }, - { 129, 4 }, - { 129, 2 }, - { 99, 1 }, - { 130, 5 }, - { 131, 1 }, - { 131, 0 }, - { 132, 1 }, - { 132, 0 }, - { 127, 3 }, - { 127, 1 }, - { 133, 1 }, - { 133, 1 }, - { 99, 3 }, - { 99, 4 }, - { 99, 3 }, - { 99, 3 }, - { 99, 2 }, - { 99, 2 }, - { 99, 3 }, - { 99, 1 }, - { 99, 1 }, - { 99, 1 }, - { 99, 1 }, - { 99, 1 }, - { 99, 1 }, - { 99, 1 }, - { 99, 1 }, - { 99, 1 }, - { 99, 1 }, - { 99, 1 }, - { 117, 3 }, - { 117, 1 }, -}; -static void pp_accept(ppParser*); /* Forward Declaration */ + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &name, &value); -static void pp_reduce( - ppParser *pppParser, /* The parser */ - int ppruleno /* Number of the rule by which to reduce */ -){ - int ppgoto; /* The next state */ - int ppact; /* The next action */ - PPMINORTYPE ppgotominor; /* The LHS of the rule reduced */ - ppStackEntry *ppmsp; /* The top of the parser's stack */ - int ppsize; /* Amount to pop the stack */ - phql_ARG_FETCH; - ppmsp = &pppParser->ppstack[pppParser->ppidx]; -#ifndef NDEBUG - if( ppTraceFILE && ppruleno>=0 - && ppruleno - ** { ... } // User supplied code - ** // - ** break; - */ - case 0: -// 110 "parser.php.lemon" -{ - ZVAL_ZVAL(&status->ret, &ppmsp[0].minor.pp202, 1, 1); -} -// 1262 "parser.php.c" - break; - case 1: - case 2: - case 3: - case 4: - case 18: - case 19: - case 22: - case 23: - case 43: - case 50: - case 52: - case 65: - case 67: - case 73: - case 80: - case 81: - case 132: - case 136: - case 141: - case 149: -// 118 "parser.php.lemon" -{ - ppgotominor.pp202 = ppmsp[0].minor.pp202; -} -// 1288 "parser.php.c" - break; - case 5: -// 138 "parser.php.lemon" -{ - phql_ret_select_statement(&ppgotominor.pp202, &ppmsp[-6].minor.pp202, &ppmsp[-5].minor.pp202, &ppmsp[-2].minor.pp202, &ppmsp[-4].minor.pp202, &ppmsp[-3].minor.pp202, &ppmsp[-1].minor.pp202, &ppmsp[0].minor.pp202); -} -// 1295 "parser.php.c" - break; - case 6: -// 146 "parser.php.lemon" -{ - phql_ret_select_clause(&ppgotominor.pp202, &ppmsp[-4].minor.pp202, &ppmsp[-3].minor.pp202, &ppmsp[-1].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(27,&ppmsp[-5].minor); - pp_destructor(28,&ppmsp[-2].minor); -} -// 1304 "parser.php.c" - break; - case 7: -// 154 "parser.php.lemon" -{ - phql_ret_distinct_all(&ppgotominor.pp202, 1); - pp_destructor(29,&ppmsp[0].minor); -} -// 1312 "parser.php.c" - break; - case 8: -// 158 "parser.php.lemon" -{ - phql_ret_distinct_all(&ppgotominor.pp202, 0); - pp_destructor(30,&ppmsp[0].minor); + zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + if (zephir_clone(&_1, &_0) == FAILURE) { + RETURN_MM(); + } + ZEPHIR_CPY_WRT(&attributes, &_1); + ZEPHIR_CALL_METHOD(NULL, &attributes, "set", NULL, 0, name, value); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "attributes"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, &attributes, &_2); + zephir_check_call_status(); + RETURN_MM(); } -// 1320 "parser.php.c" - break; - case 9: - case 20: - case 27: - case 38: - case 69: - case 71: - case 78: - case 83: - case 85: - case 89: - case 91: - case 135: - case 137: -// 162 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequest, withCookieParams) { - ZVAL_UNDEF(&ppgotominor.pp202); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *cookies_param = NULL, _0; + zval cookies; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&cookies); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(cookies) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &cookies_param); + zephir_get_arrval(&cookies, cookies_param); + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "cookieParams"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, &cookies, &_0); + zephir_check_call_status(); + RETURN_MM(); } -// 1339 "parser.php.c" - break; - case 10: - case 17: - case 41: - case 44: - case 49: - case 64: - case 72: - case 79: - case 138: -// 170 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequest, withParsedBody) { - phql_ret_zval_list(&ppgotominor.pp202, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(26,&ppmsp[-1].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *data, data_sub, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &data); + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "parsedBody"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, data, &_0); + zephir_check_call_status(); + RETURN_MM(); } -// 1355 "parser.php.c" - break; - case 11: - case 42: - case 45: - case 129: - case 139: -// 174 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequest, withQueryParams) { - phql_ret_zval_list(&ppgotominor.pp202, &ppmsp[0].minor.pp202, NULL); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *query_param = NULL, _0; + zval query; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&query); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(query) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &query_param); + zephir_get_arrval(&query, query_param); + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "queryParams"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, &query, &_0); + zephir_check_call_status(); + RETURN_MM(); } -// 1366 "parser.php.c" - break; - case 12: - case 140: -// 182 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequest, withUploadedFiles) { - phql_ret_column_item(&ppgotominor.pp202, PHQL_T_STARALL, NULL, NULL, NULL); - pp_destructor(18,&ppmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *uploadedFiles_param = NULL, _0; + zval uploadedFiles; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&uploadedFiles); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(uploadedFiles) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &uploadedFiles_param); + zephir_get_arrval(&uploadedFiles, uploadedFiles_param); + + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkuploadedfiles", NULL, 293, &uploadedFiles); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "uploadedFiles"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, &uploadedFiles, &_0); + zephir_check_call_status(); + RETURN_MM(); } -// 1375 "parser.php.c" - break; - case 13: -// 186 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequest, withoutAttribute) { - phql_ret_column_item(&ppgotominor.pp202, PHQL_T_DOMAINALL, NULL, ppmsp[-2].minor.pp0, NULL); - pp_destructor(32,&ppmsp[-1].minor); - pp_destructor(18,&ppmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name, name_sub, attributes, _0, _1, _2; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name_sub); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + if (zephir_clone(&_1, &_0) == FAILURE) { + RETURN_MM(); + } + ZEPHIR_CPY_WRT(&attributes, &_1); + ZEPHIR_CALL_METHOD(NULL, &attributes, "remove", NULL, 0, name); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "attributes"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, &attributes, &_2); + zephir_check_call_status(); + RETURN_MM(); } -// 1384 "parser.php.c" - break; - case 14: -// 190 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequest, checkUploadedFiles) { - phql_ret_column_item(&ppgotominor.pp202, PHQL_T_EXPR, &ppmsp[-2].minor.pp202, NULL, ppmsp[0].minor.pp0); - pp_destructor(33,&ppmsp[-1].minor); + zend_bool _3$$5, _4$$9; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_2 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *files_param = NULL, file, *_0, _1; + zval files; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&files); + ZVAL_UNDEF(&file); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(files) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &files_param); + zephir_get_arrval(&files, files_param); + + + zephir_is_iterable(&files, 0, "phalcon/Http/Message/ServerRequest.zep", 354); + if (Z_TYPE_P(&files) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&files), _0) + { + ZEPHIR_INIT_NVAR(&file); + ZVAL_COPY(&file, _0); + if (UNEXPECTED(Z_TYPE_P(&file) == IS_ARRAY)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkuploadedfiles", &_2, 293, &file); + zephir_check_call_status(); + } else { + _3$$5 = Z_TYPE_P(&file) == IS_OBJECT; + if (_3$$5) { + _3$$5 = zephir_is_instance_of(&file, SL("Psr\\Http\\Message\\UploadedFileInterface")); + } + if (UNEXPECTED(!(_3$$5))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid uploaded file", "phalcon/Http/Message/ServerRequest.zep", 350); + return; + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &files, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &files, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&file, &files, "current", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&file) == IS_ARRAY)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkuploadedfiles", &_2, 293, &file); + zephir_check_call_status(); + } else { + _4$$9 = Z_TYPE_P(&file) == IS_OBJECT; + if (_4$$9) { + _4$$9 = zephir_is_instance_of(&file, SL("Psr\\Http\\Message\\UploadedFileInterface")); + } + if (UNEXPECTED(!(_4$$9))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid uploaded file", "phalcon/Http/Message/ServerRequest.zep", 350); + return; + } + } + ZEPHIR_CALL_METHOD(NULL, &files, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&file); + ZEPHIR_MM_RESTORE(); } -// 1392 "parser.php.c" - break; - case 15: -// 194 "parser.php.lemon" + +zend_object *zephir_init_properties_Phalcon_Http_Message_ServerRequest(zend_class_entry *class_type) { - phql_ret_column_item(&ppgotominor.pp202, PHQL_T_EXPR, &ppmsp[-1].minor.pp202, NULL, ppmsp[0].minor.pp0); + zval _0, _2, _4, _6, _1$$3, _3$$4, _5$$5, _7$$6; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_7$$6); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("uploadedFiles"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("uploadedFiles"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("serverParams"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("serverParams"), &_3$$4); + } + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("queryParams"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_4) == IS_NULL) { + ZEPHIR_INIT_VAR(&_5$$5); + array_init(&_5$$5); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("queryParams"), &_5$$5); + } + zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("cookieParams"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_6) == IS_NULL) { + ZEPHIR_INIT_VAR(&_7$$6); + array_init(&_7$$6); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("cookieParams"), &_7$$6); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } } -// 1399 "parser.php.c" - break; - case 16: -// 198 "parser.php.lemon" + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Message_ServerRequestFactory) { - phql_ret_column_item(&ppgotominor.pp202, PHQL_T_EXPR, &ppmsp[0].minor.pp202, NULL, NULL); + ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Message, ServerRequestFactory, phalcon, http_message_serverrequestfactory, phalcon_http_message_serverrequestfactory_method_entry, 0); + + zend_class_implements(phalcon_http_message_serverrequestfactory_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\serverrequestfactoryinterface"))); + zend_class_implements(phalcon_http_message_serverrequestfactory_ce, 1, phalcon_http_message_requestmethodinterface_ce); + return SUCCESS; } -// 1406 "parser.php.c" - break; - case 21: - case 128: -// 226 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, createServerRequest) { - phql_ret_zval_list(&ppgotominor.pp202, &ppmsp[-1].minor.pp202, &ppmsp[0].minor.pp202); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval serverParams; + zval *method_param = NULL, *uri, uri_sub, *serverParams_param = NULL; + zval method; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&uri_sub); + ZVAL_UNDEF(&serverParams); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(method) + Z_PARAM_ZVAL(uri) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(serverParams) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &method_param, &uri, &serverParams_param); + zephir_get_strval(&method, method_param); + if (!serverParams_param) { + ZEPHIR_INIT_VAR(&serverParams); + array_init(&serverParams); + } else { + zephir_get_arrval(&serverParams, serverParams_param); + } + + + object_init_ex(return_value, phalcon_http_message_serverrequest_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 294, &method, uri, &serverParams); + zephir_check_call_status(); + RETURN_MM(); } -// 1414 "parser.php.c" - break; - case 24: -// 247 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, load) { - phql_ret_join_item(&ppgotominor.pp202, &ppmsp[-3].minor.pp202, &ppmsp[-2].minor.pp202, &ppmsp[-1].minor.pp202, &ppmsp[0].minor.pp202); + zend_bool _7; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *server_param = NULL, *get_param = NULL, *post_param = NULL, *cookies_param = NULL, *files_param = NULL, _COOKIE, _FILES, _GET, _POST, _SERVER, cookiesCollection, filesCollection, headers, method, protocol, serverCollection, _0, _1, _2, _3, _4, _5, _6, _8, _11, _12, _13, _14, _9$$8, _10$$8; + zval server, get, post, cookies, files, globalCookies, globalFiles, globalGet, globalPost, globalServer; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&server); + ZVAL_UNDEF(&get); + ZVAL_UNDEF(&post); + ZVAL_UNDEF(&cookies); + ZVAL_UNDEF(&files); + ZVAL_UNDEF(&globalCookies); + ZVAL_UNDEF(&globalFiles); + ZVAL_UNDEF(&globalGet); + ZVAL_UNDEF(&globalPost); + ZVAL_UNDEF(&globalServer); + ZVAL_UNDEF(&_COOKIE); + ZVAL_UNDEF(&_FILES); + ZVAL_UNDEF(&_GET); + ZVAL_UNDEF(&_POST); + ZVAL_UNDEF(&_SERVER); + ZVAL_UNDEF(&cookiesCollection); + ZVAL_UNDEF(&filesCollection); + ZVAL_UNDEF(&headers); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&protocol); + ZVAL_UNDEF(&serverCollection); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_13); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_9$$8); + ZVAL_UNDEF(&_10$$8); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 5) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY_OR_NULL(server) + Z_PARAM_ARRAY_OR_NULL(get) + Z_PARAM_ARRAY_OR_NULL(post) + Z_PARAM_ARRAY_OR_NULL(cookies) + Z_PARAM_ARRAY_OR_NULL(files) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_get_global(&_SERVER, SL("_SERVER")); + zephir_get_global(&_POST, SL("_POST")); + zephir_get_global(&_GET, SL("_GET")); + zephir_get_global(&_FILES, SL("_FILES")); + zephir_get_global(&_COOKIE, SL("_COOKIE")); + zephir_fetch_params(1, 0, 5, &server_param, &get_param, &post_param, &cookies_param, &files_param); + if (!server_param) { + ZEPHIR_INIT_VAR(&server); + } else { + zephir_get_arrval(&server, server_param); + } + if (!get_param) { + ZEPHIR_INIT_VAR(&get); + } else { + zephir_get_arrval(&get, get_param); + } + if (!post_param) { + ZEPHIR_INIT_VAR(&post); + } else { + zephir_get_arrval(&post, post_param); + } + if (!cookies_param) { + ZEPHIR_INIT_VAR(&cookies); + } else { + zephir_get_arrval(&cookies, cookies_param); + } + if (!files_param) { + ZEPHIR_INIT_VAR(&files); + } else { + zephir_get_arrval(&files, files_param); + } + + + ZEPHIR_INIT_VAR(&globalCookies); + array_init(&globalCookies); + ZEPHIR_INIT_VAR(&globalFiles); + array_init(&globalFiles); + ZEPHIR_INIT_VAR(&globalGet); + array_init(&globalGet); + ZEPHIR_INIT_VAR(&globalPost); + array_init(&globalPost); + ZEPHIR_INIT_VAR(&globalServer); + array_init(&globalServer); + if (!(ZEPHIR_IS_EMPTY(&_COOKIE))) { + ZEPHIR_CPY_WRT(&globalCookies, &_COOKIE); + } + if (!(ZEPHIR_IS_EMPTY(&_FILES))) { + ZEPHIR_CPY_WRT(&globalFiles, &_FILES); + } + if (!(ZEPHIR_IS_EMPTY(&_GET))) { + ZEPHIR_CPY_WRT(&globalGet, &_GET); + } + if (!(ZEPHIR_IS_EMPTY(&_POST))) { + ZEPHIR_CPY_WRT(&globalPost, &_POST); + } + if (!(ZEPHIR_IS_EMPTY(&_SERVER))) { + ZEPHIR_CPY_WRT(&globalServer, &_SERVER); + } + ZEPHIR_CALL_METHOD(&_0, this_ptr, "checknullarray", NULL, 295, &server, &globalServer); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&server, &_0); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "checknullarray", NULL, 295, &files, &globalFiles); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&files, &_1); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "checknullarray", NULL, 295, &cookies, &globalCookies); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&cookies, &_2); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "checknullarray", NULL, 295, &get, &globalGet); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&get, &_3); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "checknullarray", NULL, 295, &post, &globalPost); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&post, &_4); + ZEPHIR_CALL_METHOD(&serverCollection, this_ptr, "parseserver", NULL, 296, &server); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_5); + ZVAL_STRING(&_5, "REQUEST_METHOD"); + ZEPHIR_INIT_VAR(&_6); + ZVAL_STRING(&_6, "GET"); + ZEPHIR_CALL_METHOD(&method, &serverCollection, "get", NULL, 0, &_5, &_6); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&protocol, this_ptr, "parseprotocol", NULL, 297, &serverCollection); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&headers, this_ptr, "parseheaders", NULL, 298, &serverCollection); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&filesCollection, this_ptr, "parseuploadedfiles", NULL, 299, &files); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&cookiesCollection, &cookies); + _7 = ZEPHIR_IS_EMPTY(&cookies); + if (_7) { + ZEPHIR_INIT_NVAR(&_5); + ZVAL_STRING(&_5, "cookie"); + ZEPHIR_CALL_METHOD(&_8, &headers, "has", NULL, 0, &_5); + zephir_check_call_status(); + _7 = zephir_is_true(&_8); + } + if (UNEXPECTED(_7)) { + ZEPHIR_INIT_VAR(&_10$$8); + ZVAL_STRING(&_10$$8, "cookie"); + ZEPHIR_CALL_METHOD(&_9$$8, &headers, "get", NULL, 0, &_10$$8); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&cookiesCollection, this_ptr, "parsecookieheader", NULL, 300, &_9$$8); + zephir_check_call_status(); + } + object_init_ex(return_value, phalcon_http_message_serverrequest_ce); + ZEPHIR_CALL_METHOD(&_11, this_ptr, "parseuri", NULL, 301, &serverCollection, &headers); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_12, &serverCollection, "toarray", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_13, &headers, "toarray", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_14, &filesCollection, "toarray", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_5); + ZVAL_STRING(&_5, "php://input"); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 294, &method, &_11, &_12, &_5, &_13, &cookiesCollection, &get, &_14, &post, &protocol); + zephir_check_call_status(); + RETURN_MM(); } -// 1421 "parser.php.c" - break; - case 25: -// 255 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, getHeaders) { - phql_ret_qualified_name(&ppgotominor.pp202, NULL, NULL, ppmsp[0].minor.pp0); - pp_destructor(33,&ppmsp[-1].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + + + ZEPHIR_MM_GROW(); + + if (EXPECTED((zephir_function_exists_ex(ZEND_STRL("apache_request_headers")) == SUCCESS))) { + ZEPHIR_RETURN_CALL_FUNCTION("apache_request_headers", NULL, 302); + zephir_check_call_status(); + RETURN_MM(); + } + RETURN_MM_BOOL(0); } -// 1429 "parser.php.c" - break; - case 26: - case 46: - case 66: - case 161: -// 259 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, calculateUriHost) { - phql_ret_qualified_name(&ppgotominor.pp202, NULL, NULL, ppmsp[0].minor.pp0); -} -// 1439 "parser.php.c" - break; - case 28: -// 271 "parser.php.lemon" -{ - phql_ret_join_type(&ppgotominor.pp202, PHQL_T_INNERJOIN); - pp_destructor(34,&ppmsp[-1].minor); - pp_destructor(35,&ppmsp[0].minor); -} -// 1448 "parser.php.c" - break; - case 29: -// 275 "parser.php.lemon" -{ - phql_ret_join_type(&ppgotominor.pp202, PHQL_T_CROSSJOIN); - pp_destructor(36,&ppmsp[-1].minor); - pp_destructor(35,&ppmsp[0].minor); -} -// 1457 "parser.php.c" - break; - case 30: -// 279 "parser.php.lemon" -{ - phql_ret_join_type(&ppgotominor.pp202, PHQL_T_LEFTJOIN); - pp_destructor(37,&ppmsp[-2].minor); - pp_destructor(38,&ppmsp[-1].minor); - pp_destructor(35,&ppmsp[0].minor); -} -// 1467 "parser.php.c" - break; - case 31: -// 283 "parser.php.lemon" -{ - phql_ret_join_type(&ppgotominor.pp202, PHQL_T_LEFTJOIN); - pp_destructor(37,&ppmsp[-1].minor); - pp_destructor(35,&ppmsp[0].minor); -} -// 1476 "parser.php.c" - break; - case 32: -// 287 "parser.php.lemon" -{ - phql_ret_join_type(&ppgotominor.pp202, PHQL_T_RIGHTJOIN); - pp_destructor(39,&ppmsp[-2].minor); - pp_destructor(38,&ppmsp[-1].minor); - pp_destructor(35,&ppmsp[0].minor); -} -// 1486 "parser.php.c" - break; - case 33: -// 291 "parser.php.lemon" -{ - phql_ret_join_type(&ppgotominor.pp202, PHQL_T_RIGHTJOIN); - pp_destructor(39,&ppmsp[-1].minor); - pp_destructor(35,&ppmsp[0].minor); -} -// 1495 "parser.php.c" - break; - case 34: -// 295 "parser.php.lemon" -{ - phql_ret_join_type(&ppgotominor.pp202, PHQL_T_FULLJOIN); - pp_destructor(40,&ppmsp[-2].minor); - pp_destructor(38,&ppmsp[-1].minor); - pp_destructor(35,&ppmsp[0].minor); -} -// 1505 "parser.php.c" - break; - case 35: -// 299 "parser.php.lemon" -{ - phql_ret_join_type(&ppgotominor.pp202, PHQL_T_FULLJOIN); - pp_destructor(40,&ppmsp[-1].minor); - pp_destructor(35,&ppmsp[0].minor); + zval defaults; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *server, server_sub, *headers, headers_sub, __$null, host, port, _0, _1, _2, _4, _3$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&server_sub); + ZVAL_UNDEF(&headers_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&host); + ZVAL_UNDEF(&port); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&defaults); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(server, phalcon_collection_collectioninterface_ce) + Z_PARAM_OBJECT_OF_CLASS(headers, phalcon_collection_collectioninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &server, &headers); + + + ZEPHIR_INIT_VAR(&defaults); + zephir_create_array(&defaults, 2, 0); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, ""); + zephir_array_fast_append(&defaults, &_0); + zephir_array_fast_append(&defaults, &__$null); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "host"); + ZVAL_BOOL(&_2, 0); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getheader", NULL, 303, headers, &_0, &_2); + zephir_check_call_status(); + if (UNEXPECTED(zephir_is_true(&_1))) { + ZEPHIR_INIT_VAR(&_3$$3); + ZVAL_STRING(&_3$$3, "host"); + ZEPHIR_CALL_METHOD(&host, this_ptr, "getheader", NULL, 303, headers, &_3$$3); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "calculateurihostfromheader", NULL, 304, &host); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "SERVER_NAME"); + ZEPHIR_CALL_METHOD(&_4, server, "has", NULL, 0, &_0); + zephir_check_call_status(); + if (UNEXPECTED(!zephir_is_true(&_4))) { + RETURN_CTOR(&defaults); + } + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "SERVER_NAME"); + ZEPHIR_CALL_METHOD(&host, server, "get", NULL, 0, &_0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "SERVER_PORT"); + ZVAL_NULL(&_2); + ZEPHIR_CALL_METHOD(&port, server, "get", NULL, 0, &_0, &_2); + zephir_check_call_status(); + zephir_create_array(return_value, 2, 0); + zephir_array_fast_append(return_value, &host); + zephir_array_fast_append(return_value, &port); + RETURN_MM(); } -// 1514 "parser.php.c" - break; - case 36: -// 303 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, calculateUriHostFromHeader) { - phql_ret_join_type(&ppgotominor.pp202, PHQL_T_INNERJOIN); - pp_destructor(35,&ppmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *host_param = NULL, matches, port, _0, _1, _2, _3$$3, _4$$3, _5$$3, _6$$3, _7$$3; + zval host; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&host); + ZVAL_UNDEF(&matches); + ZVAL_UNDEF(&port); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(host) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &host_param); + zephir_get_strval(&host, host_param); + + + ZEPHIR_INIT_VAR(&port); + ZVAL_NULL(&port); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "|:(\\d+)$|"); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "|:(\\d+)$|"); + zephir_preg_match(&_1, &_2, &host, &matches, 0, 0 , 0 ); + if (UNEXPECTED(zephir_is_true(&_1))) { + zephir_array_fetch_long(&_3$$3, &matches, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Message/ServerRequestFactory.zep", 200); + ZVAL_LONG(&_4$$3, 0); + ZVAL_LONG(&_5$$3, (-1 * ((zephir_fast_strlen_ev(&_3$$3) + 1)))); + ZEPHIR_INIT_VAR(&_6$$3); + zephir_substr(&_6$$3, &host, 0 , zephir_get_intval(&_5$$3), 0); + zephir_get_strval(&host, &_6$$3); + ZEPHIR_OBS_VAR(&_7$$3); + zephir_array_fetch_long(&_7$$3, &matches, 1, PH_NOISY, "phalcon/Http/Message/ServerRequestFactory.zep", 201); + ZEPHIR_INIT_NVAR(&port); + ZVAL_LONG(&port, zephir_get_intval(&_7$$3)); + } + zephir_create_array(return_value, 2, 0); + zephir_array_fast_append(return_value, &host); + zephir_array_fast_append(return_value, &port); + RETURN_MM(); } -// 1522 "parser.php.c" - break; - case 37: -// 311 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, calculateUriPath) { - ppgotominor.pp202 = ppmsp[0].minor.pp202; - pp_destructor(41,&ppmsp[-1].minor); + zend_bool _4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *server, server_sub, iisRewrite, origPathInfo, requestUri, unencodedUrl, _0, _1, _2, _3, _5$$4, _6$$4; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&server_sub); + ZVAL_UNDEF(&iisRewrite); + ZVAL_UNDEF(&origPathInfo); + ZVAL_UNDEF(&requestUri); + ZVAL_UNDEF(&unencodedUrl); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(server, phalcon_collection_collectioninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &server); + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "IIS_WasUrlRewritten"); + ZVAL_NULL(&_1); + ZEPHIR_CALL_METHOD(&iisRewrite, server, "get", NULL, 0, &_0, &_1); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "UNENCODED_URL"); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, ""); + ZEPHIR_CALL_METHOD(&unencodedUrl, server, "get", NULL, 0, &_0, &_2); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "1"); + _4 = ZEPHIR_IS_IDENTICAL(&_3, &iisRewrite); + if (_4) { + _4 = !(ZEPHIR_IS_EMPTY(&unencodedUrl)); + } + if (UNEXPECTED(_4)) { + RETURN_CCTOR(&unencodedUrl); + } + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "REQUEST_URI"); + ZVAL_NULL(&_1); + ZEPHIR_CALL_METHOD(&requestUri, server, "get", NULL, 0, &_0, &_1); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&requestUri) != IS_NULL)) { + ZEPHIR_INIT_VAR(&_5$$4); + ZVAL_STRING(&_5$$4, "#^[^/:]+://[^/]+#"); + ZEPHIR_INIT_VAR(&_6$$4); + ZVAL_STRING(&_6$$4, ""); + ZEPHIR_RETURN_CALL_FUNCTION("preg_replace", NULL, 50, &_5$$4, &_6$$4, &requestUri); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "ORIG_PATH_INFO"); + ZVAL_NULL(&_1); + ZEPHIR_CALL_METHOD(&origPathInfo, server, "get", NULL, 0, &_0, &_1); + zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_IS_EMPTY(&origPathInfo))) { + RETURN_MM_STRING("/"); + } + RETURN_CCTOR(&origPathInfo); } -// 1530 "parser.php.c" - break; - case 39: -// 324 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, calculateUriQuery) { - phql_ret_insert_statement(&ppgotominor.pp202, &ppmsp[-4].minor.pp202, NULL, &ppmsp[-1].minor.pp202); - pp_destructor(42,&ppmsp[-6].minor); - pp_destructor(43,&ppmsp[-5].minor); - pp_destructor(44,&ppmsp[-3].minor); - pp_destructor(45,&ppmsp[-2].minor); - pp_destructor(46,&ppmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *server, server_sub, _0, _1, _2; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&server_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(server, phalcon_collection_collectioninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &server); + + + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "QUERY_STRING"); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, ""); + ZEPHIR_CALL_METHOD(&_0, server, "get", NULL, 0, &_1, &_2); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "?"); + zephir_fast_trim(return_value, &_0, &_1, ZEPHIR_TRIM_LEFT); + RETURN_MM(); } -// 1542 "parser.php.c" - break; - case 40: -// 328 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, calculateUriScheme) { - phql_ret_insert_statement(&ppgotominor.pp202, &ppmsp[-7].minor.pp202, &ppmsp[-5].minor.pp202, &ppmsp[-1].minor.pp202); - pp_destructor(42,&ppmsp[-9].minor); - pp_destructor(43,&ppmsp[-8].minor); - pp_destructor(45,&ppmsp[-6].minor); - pp_destructor(46,&ppmsp[-4].minor); - pp_destructor(44,&ppmsp[-3].minor); - pp_destructor(45,&ppmsp[-2].minor); - pp_destructor(46,&ppmsp[0].minor); + double _7$$3; + zend_bool _9; + zval scheme, _5$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *server, server_sub, *headers, headers_sub, header, isHttps, _0, _1, _8, _10, _2$$3, _3$$3, _4$$3, _6$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&server_sub); + ZVAL_UNDEF(&headers_sub); + ZVAL_UNDEF(&header); + ZVAL_UNDEF(&isHttps); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&scheme); + ZVAL_UNDEF(&_5$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(server, phalcon_collection_collectioninterface_ce) + Z_PARAM_OBJECT_OF_CLASS(headers, phalcon_collection_collectioninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &server, &headers); + + + ZEPHIR_INIT_VAR(&scheme); + ZVAL_STRING(&scheme, "https"); + ZEPHIR_INIT_VAR(&isHttps); + ZVAL_BOOL(&isHttps, 1); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "HTTPS"); + ZEPHIR_CALL_METHOD(&_0, server, "has", NULL, 0, &_1); + zephir_check_call_status(); + if (UNEXPECTED(zephir_is_true(&_0))) { + ZEPHIR_INIT_VAR(&_3$$3); + ZVAL_STRING(&_3$$3, "HTTPS"); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "on"); + ZEPHIR_CALL_METHOD(&_2$$3, server, "get", NULL, 0, &_3$$3, &_4$$3); + zephir_check_call_status(); + zephir_cast_to_string(&_5$$3, &_2$$3); + ZEPHIR_CPY_WRT(&isHttps, &_5$$3); + ZEPHIR_INIT_NVAR(&_3$$3); + zephir_fast_strtolower(&_3$$3, &isHttps); + ZEPHIR_INIT_VAR(&_6$$3); + ZVAL_STRING(&_6$$3, "off"); + _7$$3 = !ZEPHIR_IS_IDENTICAL(&_6$$3, &_3$$3); + ZEPHIR_INIT_NVAR(&isHttps); + ZVAL_BOOL(&isHttps, _7$$3); + } + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "x-forwarded-proto"); + ZEPHIR_INIT_VAR(&_8); + ZVAL_STRING(&_8, "https"); + ZEPHIR_CALL_METHOD(&header, this_ptr, "getheader", NULL, 303, headers, &_1, &_8); + zephir_check_call_status(); + _9 = !zephir_is_true(&isHttps); + if (!(_9)) { + ZEPHIR_INIT_VAR(&_10); + ZVAL_STRING(&_10, "https"); + _9 = !ZEPHIR_IS_IDENTICAL(&_10, &header); + } + if (UNEXPECTED(_9)) { + ZEPHIR_INIT_NVAR(&scheme); + ZVAL_STRING(&scheme, "http"); + } + RETURN_CTOR(&scheme); } -// 1556 "parser.php.c" - break; - case 47: -// 374 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, checkNullArray) { - phql_ret_update_statement(&ppgotominor.pp202, &ppmsp[-2].minor.pp202, &ppmsp[-1].minor.pp202, &ppmsp[0].minor.pp202); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval super; + zval *source, source_sub, *super_param = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&source_sub); + ZVAL_UNDEF(&super); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(source) + Z_PARAM_ARRAY(super) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &source, &super_param); + zephir_get_arrval(&super, super_param); + + + if (UNEXPECTED(ZEPHIR_IS_EMPTY(source))) { + RETURN_CTOR(&super); + } + RETVAL_ZVAL(source, 1, 0); + RETURN_MM(); } -// 1563 "parser.php.c" - break; - case 48: -// 382 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, createUploadedFile) { - phql_ret_update_clause(&ppgotominor.pp202, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(47,&ppmsp[-3].minor); - pp_destructor(48,&ppmsp[-1].minor); + zval _3$$3; + zend_bool _0, _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *file_param = NULL, name, type, _4, _5, _6, _2$$3; + zval file; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&file); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(file) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &file_param); + zephir_get_arrval(&file, file_param); + + + _0 = !(zephir_array_isset_string(&file, SL("tmp_name"))); + if (!(_0)) { + _0 = !(zephir_array_isset_string(&file, SL("size"))); + } + _1 = _0; + if (!(_1)) { + _1 = !(zephir_array_isset_string(&file, SL("error"))); + } + if (UNEXPECTED(_1)) { + ZEPHIR_INIT_VAR(&_2$$3); + object_init_ex(&_2$$3, phalcon_http_message_exception_invalidargumentexception_ce); + ZEPHIR_INIT_VAR(&_3$$3); + ZEPHIR_CONCAT_SS(&_3$$3, "The file array must contain tmp_name, size and error; ", "one or more are missing"); + ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", NULL, 40, &_3$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_2$$3, "phalcon/Http/Message/ServerRequestFactory.zep", 319); + ZEPHIR_MM_RESTORE(); + return; + } + if (zephir_array_isset_string(&file, SL("name"))) { + ZEPHIR_OBS_VAR(&name); + zephir_array_fetch_string(&name, &file, SL("name"), PH_NOISY, "phalcon/Http/Message/ServerRequestFactory.zep", 322); + } else { + ZEPHIR_INIT_NVAR(&name); + ZVAL_NULL(&name); + } + if (zephir_array_isset_string(&file, SL("type"))) { + ZEPHIR_OBS_VAR(&type); + zephir_array_fetch_string(&type, &file, SL("type"), PH_NOISY, "phalcon/Http/Message/ServerRequestFactory.zep", 323); + } else { + ZEPHIR_INIT_NVAR(&type); + ZVAL_NULL(&type); + } + object_init_ex(return_value, phalcon_http_message_uploadedfile_ce); + zephir_array_fetch_string(&_4, &file, SL("tmp_name"), PH_NOISY | PH_READONLY, "phalcon/Http/Message/ServerRequestFactory.zep", 326); + zephir_array_fetch_string(&_5, &file, SL("size"), PH_NOISY | PH_READONLY, "phalcon/Http/Message/ServerRequestFactory.zep", 327); + zephir_array_fetch_string(&_6, &file, SL("error"), PH_NOISY | PH_READONLY, "phalcon/Http/Message/ServerRequestFactory.zep", 328); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 305, &_4, &_5, &_6, &name, &type); + zephir_check_call_status(); + RETURN_MM(); } -// 1572 "parser.php.c" - break; - case 51: -// 402 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, getHeader) { - phql_ret_update_item(&ppgotominor.pp202, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(4,&ppmsp[-1].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval name; + zval *headers, headers_sub, *name_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, value, _0$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&headers_sub); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&name); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_OBJECT_OF_CLASS(headers, phalcon_collection_collectioninterface_ce) + Z_PARAM_STR(name) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(defaultValue) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &headers, &name_param, &defaultValue); + zephir_get_strval(&name, name_param); + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; + } + + + ZEPHIR_CALL_METHOD(&value, headers, "get", NULL, 0, &name, defaultValue); + zephir_check_call_status(); + if (Z_TYPE_P(&value) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&_0$$3); + zephir_fast_join_str(&_0$$3, SL(","), &value); + ZEPHIR_CPY_WRT(&value, &_0$$3); + } + RETURN_CCTOR(&value); } -// 1580 "parser.php.c" - break; - case 53: -// 416 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, parseCookieHeader) { - phql_ret_delete_statement(&ppgotominor.pp202, &ppmsp[-2].minor.pp202, &ppmsp[-1].minor.pp202, &ppmsp[0].minor.pp202); + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *cookieHeader_param = NULL, cookies, _1; + zval cookieHeader; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&cookieHeader); + ZVAL_UNDEF(&cookies); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(cookieHeader) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &cookieHeader_param); + zephir_get_strval(&cookieHeader, cookieHeader_param); + + + ZEPHIR_INIT_VAR(&cookies); + array_init(&cookies); + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 3, 0); + add_assoc_stringl_ex(&_0, SL("&"), SL("%26")); + add_assoc_stringl_ex(&_0, SL("+"), SL("%2B")); + add_assoc_stringl_ex(&_0, SL(";"), SL("&")); + ZEPHIR_CALL_FUNCTION(&_1, "strtr", NULL, 5, &cookieHeader, &_0); + zephir_check_call_status(); + ZEPHIR_MAKE_REF(&cookies); + ZEPHIR_CALL_FUNCTION(NULL, "parse_str", NULL, 306, &_1, &cookies); + ZEPHIR_UNREF(&cookies); + zephir_check_call_status(); + RETURN_CCTOR(&cookies); } -// 1587 "parser.php.c" - break; - case 54: -// 424 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, parseHeaders) { - phql_ret_delete_clause(&ppgotominor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(49,&ppmsp[-2].minor); - pp_destructor(28,&ppmsp[-1].minor); + zend_string *_3; + zend_ulong _2; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_10 = NULL, *_18 = NULL, *_30 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *server, server_sub, headers, key, name, serverArray, value, *_0, _1, _4$$3, _5$$4, _6$$4, _11$$4, _12$$4, _19$$4, _20$$4, _7$$5, _8$$5, _9$$5, _13$$7, _14$$7, _15$$7, _16$$7, _17$$7, _21$$8, _22$$8, _23$$8, _24$$9, _25$$10, _26$$10, _31$$10, _32$$10, _38$$10, _39$$10, _27$$11, _28$$11, _29$$11, _33$$13, _34$$13, _35$$13, _36$$13, _37$$13, _40$$14, _41$$14, _42$$14; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&server_sub); + ZVAL_UNDEF(&headers); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&serverArray); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_11$$4); + ZVAL_UNDEF(&_12$$4); + ZVAL_UNDEF(&_19$$4); + ZVAL_UNDEF(&_20$$4); + ZVAL_UNDEF(&_7$$5); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_13$$7); + ZVAL_UNDEF(&_14$$7); + ZVAL_UNDEF(&_15$$7); + ZVAL_UNDEF(&_16$$7); + ZVAL_UNDEF(&_17$$7); + ZVAL_UNDEF(&_21$$8); + ZVAL_UNDEF(&_22$$8); + ZVAL_UNDEF(&_23$$8); + ZVAL_UNDEF(&_24$$9); + ZVAL_UNDEF(&_25$$10); + ZVAL_UNDEF(&_26$$10); + ZVAL_UNDEF(&_31$$10); + ZVAL_UNDEF(&_32$$10); + ZVAL_UNDEF(&_38$$10); + ZVAL_UNDEF(&_39$$10); + ZVAL_UNDEF(&_27$$11); + ZVAL_UNDEF(&_28$$11); + ZVAL_UNDEF(&_29$$11); + ZVAL_UNDEF(&_33$$13); + ZVAL_UNDEF(&_34$$13); + ZVAL_UNDEF(&_35$$13); + ZVAL_UNDEF(&_36$$13); + ZVAL_UNDEF(&_37$$13); + ZVAL_UNDEF(&_40$$14); + ZVAL_UNDEF(&_41$$14); + ZVAL_UNDEF(&_42$$14); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(server, phalcon_collection_collectioninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &server); + + + ZEPHIR_INIT_VAR(&headers); + object_init_ex(&headers, phalcon_collection_ce); + ZEPHIR_CALL_METHOD(NULL, &headers, "__construct", NULL, 22); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&serverArray, server, "toarray", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&serverArray, 0, "phalcon/Http/Message/ServerRequestFactory.zep", 438); + if (Z_TYPE_P(&serverArray) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&serverArray), _2, _3, _0) + { + ZEPHIR_INIT_NVAR(&key); + if (_3 != NULL) { + ZVAL_STR_COPY(&key, _3); + } else { + ZVAL_LONG(&key, _2); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0); + ZEPHIR_INIT_NVAR(&_4$$3); + ZVAL_STRING(&_4$$3, ""); + if (EXPECTED(!ZEPHIR_IS_IDENTICAL(&_4$$3, &value))) { + ZEPHIR_INIT_NVAR(&_5$$4); + ZVAL_STRING(&_5$$4, "REDIRECT_"); + ZEPHIR_INIT_NVAR(&_6$$4); + zephir_fast_strpos(&_6$$4, &key, &_5$$4, 0 ); + if (UNEXPECTED(ZEPHIR_IS_LONG_IDENTICAL(&_6$$4, 0))) { + ZVAL_LONG(&_7$$5, 9); + ZEPHIR_INIT_NVAR(&_8$$5); + zephir_substr(&_8$$5, &key, 9 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + ZEPHIR_CPY_WRT(&key, &_8$$5); + ZEPHIR_CALL_METHOD(&_9$$5, server, "has", &_10, 0, &key); + zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_IS_TRUE_IDENTICAL(&_9$$5))) { + continue; + } + } + ZEPHIR_INIT_NVAR(&_11$$4); + ZVAL_STRING(&_11$$4, "HTTP_"); + ZEPHIR_INIT_NVAR(&_12$$4); + zephir_fast_strpos(&_12$$4, &key, &_11$$4, 0 ); + if (EXPECTED(ZEPHIR_IS_LONG_IDENTICAL(&_12$$4, 0))) { + ZEPHIR_INIT_NVAR(&_13$$7); + ZVAL_LONG(&_14$$7, 5); + ZEPHIR_INIT_NVAR(&_15$$7); + zephir_substr(&_15$$7, &key, 5 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + zephir_fast_strtolower(&_13$$7, &_15$$7); + ZEPHIR_INIT_NVAR(&_16$$7); + ZVAL_STRING(&_16$$7, "_"); + ZEPHIR_INIT_NVAR(&_17$$7); + ZVAL_STRING(&_17$$7, "-"); + ZEPHIR_INIT_NVAR(&name); + zephir_fast_str_replace(&name, &_16$$7, &_17$$7, &_13$$7); + ZEPHIR_CALL_METHOD(NULL, &headers, "set", &_18, 42, &name, &value); + zephir_check_call_status(); + continue; + } + ZEPHIR_INIT_NVAR(&_19$$4); + ZVAL_STRING(&_19$$4, "CONTENT_"); + ZEPHIR_INIT_NVAR(&_20$$4); + zephir_fast_strpos(&_20$$4, &key, &_19$$4, 0 ); + if (UNEXPECTED(ZEPHIR_IS_LONG_IDENTICAL(&_20$$4, 0))) { + ZEPHIR_INIT_NVAR(&_21$$8); + ZVAL_LONG(&_22$$8, 8); + ZEPHIR_INIT_NVAR(&_23$$8); + zephir_substr(&_23$$8, &key, 8 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + zephir_fast_strtolower(&_21$$8, &_23$$8); + ZEPHIR_INIT_NVAR(&name); + ZEPHIR_CONCAT_SV(&name, "content-", &_21$$8); + ZEPHIR_CALL_METHOD(NULL, &headers, "set", &_18, 42, &name, &value); + zephir_check_call_status(); + continue; + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &serverArray, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &serverArray, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &serverArray, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &serverArray, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_24$$9); + ZVAL_STRING(&_24$$9, ""); + if (EXPECTED(!ZEPHIR_IS_IDENTICAL(&_24$$9, &value))) { + ZEPHIR_INIT_NVAR(&_25$$10); + ZVAL_STRING(&_25$$10, "REDIRECT_"); + ZEPHIR_INIT_NVAR(&_26$$10); + zephir_fast_strpos(&_26$$10, &key, &_25$$10, 0 ); + if (UNEXPECTED(ZEPHIR_IS_LONG_IDENTICAL(&_26$$10, 0))) { + ZVAL_LONG(&_27$$11, 9); + ZEPHIR_INIT_NVAR(&_28$$11); + zephir_substr(&_28$$11, &key, 9 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + ZEPHIR_CPY_WRT(&key, &_28$$11); + ZEPHIR_CALL_METHOD(&_29$$11, server, "has", &_30, 0, &key); + zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_IS_TRUE_IDENTICAL(&_29$$11))) { + continue; + } + } + ZEPHIR_INIT_NVAR(&_31$$10); + ZVAL_STRING(&_31$$10, "HTTP_"); + ZEPHIR_INIT_NVAR(&_32$$10); + zephir_fast_strpos(&_32$$10, &key, &_31$$10, 0 ); + if (EXPECTED(ZEPHIR_IS_LONG_IDENTICAL(&_32$$10, 0))) { + ZEPHIR_INIT_NVAR(&_33$$13); + ZVAL_LONG(&_34$$13, 5); + ZEPHIR_INIT_NVAR(&_35$$13); + zephir_substr(&_35$$13, &key, 5 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + zephir_fast_strtolower(&_33$$13, &_35$$13); + ZEPHIR_INIT_NVAR(&_36$$13); + ZVAL_STRING(&_36$$13, "_"); + ZEPHIR_INIT_NVAR(&_37$$13); + ZVAL_STRING(&_37$$13, "-"); + ZEPHIR_INIT_NVAR(&name); + zephir_fast_str_replace(&name, &_36$$13, &_37$$13, &_33$$13); + ZEPHIR_CALL_METHOD(NULL, &headers, "set", &_18, 42, &name, &value); + zephir_check_call_status(); + continue; + } + ZEPHIR_INIT_NVAR(&_38$$10); + ZVAL_STRING(&_38$$10, "CONTENT_"); + ZEPHIR_INIT_NVAR(&_39$$10); + zephir_fast_strpos(&_39$$10, &key, &_38$$10, 0 ); + if (UNEXPECTED(ZEPHIR_IS_LONG_IDENTICAL(&_39$$10, 0))) { + ZEPHIR_INIT_NVAR(&_40$$14); + ZVAL_LONG(&_41$$14, 8); + ZEPHIR_INIT_NVAR(&_42$$14); + zephir_substr(&_42$$14, &key, 8 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + zephir_fast_strtolower(&_40$$14, &_42$$14); + ZEPHIR_INIT_NVAR(&name); + ZEPHIR_CONCAT_SV(&name, "content-", &_40$$14); + ZEPHIR_CALL_METHOD(NULL, &headers, "set", &_18, 42, &name, &value); + zephir_check_call_status(); + continue; + } + } + ZEPHIR_CALL_METHOD(NULL, &serverArray, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + RETURN_CCTOR(&headers); } -// 1596 "parser.php.c" - break; - case 55: -// 432 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, parseProtocol) { - phql_ret_assoc_name(&ppgotominor.pp202, &ppmsp[-2].minor.pp202, ppmsp[0].minor.pp0, NULL); - pp_destructor(33,&ppmsp[-1].minor); + zval _4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *server, server_sub, localProtocol, protocol, protocols, _0, _1, _2, _3, _5, _6, _9, _10, _7$$4, _8$$4, _11$$5, _12$$5; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&server_sub); + ZVAL_UNDEF(&localProtocol); + ZVAL_UNDEF(&protocol); + ZVAL_UNDEF(&protocols); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_8$$4); + ZVAL_UNDEF(&_11$$5); + ZVAL_UNDEF(&_12$$5); + ZVAL_UNDEF(&_4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(server, phalcon_collection_collectioninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &server); + + + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "SERVER_PROTOCOL"); + ZEPHIR_CALL_METHOD(&_0, server, "has", NULL, 0, &_1); + zephir_check_call_status(); + if (!ZEPHIR_IS_TRUE_IDENTICAL(&_0)) { + RETURN_MM_STRING("1.1"); + } + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "SERVER_PROTOCOL"); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "HTTP/1.1"); + ZEPHIR_CALL_METHOD(&_2, server, "get", NULL, 0, &_1, &_3); + zephir_check_call_status(); + zephir_cast_to_string(&_4, &_2); + ZEPHIR_CPY_WRT(&protocol, &_4); + ZEPHIR_INIT_VAR(&localProtocol); + zephir_fast_strtolower(&localProtocol, &protocol); + ZEPHIR_INIT_VAR(&protocols); + zephir_create_array(&protocols, 4, 0); + add_assoc_long_ex(&protocols, SL("1.0"), 1); + add_assoc_long_ex(&protocols, SL("1.1"), 1); + add_assoc_long_ex(&protocols, SL("2.0"), 1); + add_assoc_long_ex(&protocols, SL("3.0"), 1); + ZVAL_LONG(&_5, 0); + ZVAL_LONG(&_6, 5); + ZEPHIR_INIT_NVAR(&_1); + zephir_substr(&_1, &localProtocol, 0 , 5 , 0); + if (!ZEPHIR_IS_STRING_IDENTICAL(&_1, "http/")) { + ZEPHIR_INIT_VAR(&_7$$4); + object_init_ex(&_7$$4, phalcon_http_message_exception_invalidargumentexception_ce); + ZEPHIR_INIT_VAR(&_8$$4); + ZEPHIR_CONCAT_SV(&_8$$4, "Incorrect protocol value ", &protocol); + ZEPHIR_CALL_METHOD(NULL, &_7$$4, "__construct", NULL, 40, &_8$$4); + zephir_check_call_status(); + zephir_throw_exception_debug(&_7$$4, "phalcon/Http/Message/ServerRequestFactory.zep", 468); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_NVAR(&_3); + ZEPHIR_INIT_VAR(&_9); + ZVAL_STRING(&_9, "http/"); + ZEPHIR_INIT_VAR(&_10); + ZVAL_STRING(&_10, ""); + zephir_fast_str_replace(&_3, &_9, &_10, &localProtocol); + ZEPHIR_CPY_WRT(&localProtocol, &_3); + if (UNEXPECTED(!(zephir_array_isset(&protocols, &localProtocol)))) { + ZEPHIR_INIT_VAR(&_11$$5); + object_init_ex(&_11$$5, phalcon_http_message_exception_invalidargumentexception_ce); + ZEPHIR_INIT_VAR(&_12$$5); + ZEPHIR_CONCAT_SV(&_12$$5, "Unsupported protocol ", &protocol); + ZEPHIR_CALL_METHOD(NULL, &_11$$5, "__construct", NULL, 40, &_12$$5); + zephir_check_call_status(); + zephir_throw_exception_debug(&_11$$5, "phalcon/Http/Message/ServerRequestFactory.zep", 476); + ZEPHIR_MM_RESTORE(); + return; + } + RETURN_CCTOR(&localProtocol); } -// 1604 "parser.php.c" - break; - case 56: -// 436 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, parseServer) { - phql_ret_assoc_name(&ppgotominor.pp202, &ppmsp[-1].minor.pp202, ppmsp[0].minor.pp0, NULL); + zend_bool _2; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *server_param = NULL, collection, headers, headersCollection, _0, _1, _3$$3, _4$$3, _5$$4, _6$$4; + zval server; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&server); + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&headers); + ZVAL_UNDEF(&headersCollection); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(server) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &server_param); + zephir_get_arrval(&server, server_param); + + + ZEPHIR_INIT_VAR(&collection); + object_init_ex(&collection, phalcon_collection_ce); + ZEPHIR_CALL_METHOD(NULL, &collection, "__construct", NULL, 22, &server); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&headers, this_ptr, "getheaders", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "HTTP_AUTHORIZATION"); + ZEPHIR_CALL_METHOD(&_0, &collection, "has", NULL, 307, &_1); + zephir_check_call_status(); + _2 = !zephir_is_true(&_0); + if (_2) { + _2 = !ZEPHIR_IS_FALSE_IDENTICAL(&headers); + } + if (UNEXPECTED(_2)) { + ZEPHIR_INIT_VAR(&headersCollection); + object_init_ex(&headersCollection, phalcon_collection_ce); + ZEPHIR_CALL_METHOD(NULL, &headersCollection, "__construct", NULL, 22, &headers); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "Authorization"); + ZEPHIR_CALL_METHOD(&_3$$3, &headersCollection, "has", NULL, 307, &_4$$3); + zephir_check_call_status(); + if (UNEXPECTED(zephir_is_true(&_3$$3))) { + ZEPHIR_INIT_VAR(&_6$$4); + ZVAL_STRING(&_6$$4, "Authorization"); + ZEPHIR_CALL_METHOD(&_5$$4, &headersCollection, "get", NULL, 308, &_6$$4); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_6$$4); + ZVAL_STRING(&_6$$4, "HTTP_AUTHORIZATION"); + ZEPHIR_CALL_METHOD(NULL, &collection, "set", NULL, 42, &_6$$4, &_5$$4); + zephir_check_call_status(); + } + } + RETURN_CCTOR(&collection); } -// 1611 "parser.php.c" - break; - case 57: -// 440 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, parseUploadedFiles) { - phql_ret_assoc_name(&ppgotominor.pp202, &ppmsp[0].minor.pp202, NULL, NULL); -} -// 1618 "parser.php.c" - break; - case 58: -// 444 "parser.php.lemon" -{ - phql_ret_assoc_name(&ppgotominor.pp202, &ppmsp[-4].minor.pp202, ppmsp[-2].minor.pp0, &ppmsp[0].minor.pp202); - pp_destructor(33,&ppmsp[-3].minor); - pp_destructor(50,&ppmsp[-1].minor); + zend_bool _5$$3, _7$$3, _13$$7, _14$$7; + zval _4$$3, _12$$7; + zend_string *_3; + zend_ulong _2; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_6 = NULL, *_9 = NULL, *_10 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *files_param = NULL, collection, data, key, file, *_0, _1, _8$$5, _11$$6, _15$$9, _16$$10; + zval files; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&files); + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&file); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_11$$6); + ZVAL_UNDEF(&_15$$9); + ZVAL_UNDEF(&_16$$10); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_12$$7); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(files) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &files_param); + zephir_get_arrval(&files, files_param); + + + ZEPHIR_INIT_VAR(&collection); + object_init_ex(&collection, phalcon_collection_ce); + ZEPHIR_CALL_METHOD(NULL, &collection, "__construct", NULL, 22); + zephir_check_call_status(); + zephir_is_iterable(&files, 0, "phalcon/Http/Message/ServerRequestFactory.zep", 559); + if (Z_TYPE_P(&files) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&files), _2, _3, _0) + { + ZEPHIR_INIT_NVAR(&key); + if (_3 != NULL) { + ZVAL_STR_COPY(&key, _3); + } else { + ZVAL_LONG(&key, _2); + } + ZEPHIR_INIT_NVAR(&file); + ZVAL_COPY(&file, _0); + zephir_cast_to_string(&_4$$3, &key); + ZEPHIR_CPY_WRT(&key, &_4$$3); + _5$$3 = Z_TYPE_P(&file) == IS_OBJECT; + if (_5$$3) { + _5$$3 = zephir_is_instance_of(&file, SL("Psr\\Http\\Message\\UploadedFileInterface")); + } + if (UNEXPECTED(_5$$3)) { + ZEPHIR_CALL_METHOD(NULL, &collection, "set", &_6, 42, &key, &file); + zephir_check_call_status(); + continue; + } + _7$$3 = Z_TYPE_P(&file) == IS_ARRAY; + if (_7$$3) { + _7$$3 = zephir_array_isset_string(&file, SL("tmp_name")); + } + if (EXPECTED(_7$$3)) { + ZEPHIR_CALL_METHOD(&_8$$5, this_ptr, "createuploadedfile", &_9, 309, &file); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &collection, "set", &_6, 42, &key, &_8$$5); + zephir_check_call_status(); + continue; + } + if (UNEXPECTED(Z_TYPE_P(&file) == IS_ARRAY)) { + ZEPHIR_CALL_METHOD(&data, this_ptr, "parseuploadedfiles", &_10, 299, &file); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_11$$6, &data, "toarray", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &collection, "set", &_6, 42, &key, &_11$$6); + zephir_check_call_status(); + continue; + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &files, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &files, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &files, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&file, &files, "current", NULL, 0); + zephir_check_call_status(); + zephir_cast_to_string(&_12$$7, &key); + ZEPHIR_CPY_WRT(&key, &_12$$7); + _13$$7 = Z_TYPE_P(&file) == IS_OBJECT; + if (_13$$7) { + _13$$7 = zephir_is_instance_of(&file, SL("Psr\\Http\\Message\\UploadedFileInterface")); + } + if (UNEXPECTED(_13$$7)) { + ZEPHIR_CALL_METHOD(NULL, &collection, "set", &_6, 42, &key, &file); + zephir_check_call_status(); + continue; + } + _14$$7 = Z_TYPE_P(&file) == IS_ARRAY; + if (_14$$7) { + _14$$7 = zephir_array_isset_string(&file, SL("tmp_name")); + } + if (EXPECTED(_14$$7)) { + ZEPHIR_CALL_METHOD(&_15$$9, this_ptr, "createuploadedfile", &_9, 309, &file); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &collection, "set", &_6, 42, &key, &_15$$9); + zephir_check_call_status(); + continue; + } + if (UNEXPECTED(Z_TYPE_P(&file) == IS_ARRAY)) { + ZEPHIR_CALL_METHOD(&data, this_ptr, "parseuploadedfiles", &_10, 299, &file); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_16$$10, &data, "toarray", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &collection, "set", &_6, 42, &key, &_16$$10); + zephir_check_call_status(); + continue; + } + ZEPHIR_CALL_METHOD(NULL, &files, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&file); + ZEPHIR_INIT_NVAR(&key); + RETURN_CCTOR(&collection); } -// 1627 "parser.php.c" - break; - case 59: -// 448 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_ServerRequestFactory, parseUri) { - phql_ret_assoc_name(&ppgotominor.pp202, &ppmsp[-6].minor.pp202, ppmsp[-4].minor.pp0, &ppmsp[-1].minor.pp202); - pp_destructor(33,&ppmsp[-5].minor); - pp_destructor(50,&ppmsp[-3].minor); - pp_destructor(45,&ppmsp[-2].minor); - pp_destructor(46,&ppmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *server, server_sub, *headers, headers_sub, path, query, scheme, split, uri, _0, _1, _7, _8, _2$$3, _3$$3, _4$$3, _5$$4, _6$$4, _9$$5, _10$$5; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&server_sub); + ZVAL_UNDEF(&headers_sub); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&query); + ZVAL_UNDEF(&scheme); + ZVAL_UNDEF(&split); + ZVAL_UNDEF(&uri); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_10$$5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(server, phalcon_collection_collectioninterface_ce) + Z_PARAM_OBJECT_OF_CLASS(headers, phalcon_collection_collectioninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &server, &headers); + + + ZEPHIR_INIT_VAR(&uri); + object_init_ex(&uri, phalcon_http_message_uri_ce); + ZEPHIR_CALL_METHOD(NULL, &uri, "__construct", NULL, 107); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&scheme, this_ptr, "calculateurischeme", NULL, 310, server, headers); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, &uri, "withscheme", NULL, 311, &scheme); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&uri, &_0); + ZEPHIR_CALL_METHOD(&split, this_ptr, "calculateurihost", NULL, 312, server, headers); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&_1); + zephir_array_fetch_long(&_1, &split, 0, PH_NOISY, "phalcon/Http/Message/ServerRequestFactory.zep", 586); + if (EXPECTED(!(ZEPHIR_IS_EMPTY(&_1)))) { + zephir_array_fetch_long(&_3$$3, &split, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Message/ServerRequestFactory.zep", 587); + ZEPHIR_CALL_METHOD(&_2$$3, &uri, "withhost", NULL, 313, &_3$$3); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&uri, &_2$$3); + ZEPHIR_OBS_VAR(&_4$$3); + zephir_array_fetch_long(&_4$$3, &split, 1, PH_NOISY, "phalcon/Http/Message/ServerRequestFactory.zep", 588); + if (UNEXPECTED(!(ZEPHIR_IS_EMPTY(&_4$$3)))) { + zephir_array_fetch_long(&_6$$4, &split, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Message/ServerRequestFactory.zep", 589); + ZEPHIR_CALL_METHOD(&_5$$4, &uri, "withport", NULL, 314, &_6$$4); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&uri, &_5$$4); + } + } + ZEPHIR_CALL_METHOD(&path, this_ptr, "calculateuripath", NULL, 315, server); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&split); + zephir_fast_explode_str(&split, SL("#"), &path, LONG_MAX); + zephir_array_fetch_long(&_7, &split, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Message/ServerRequestFactory.zep", 598); + ZEPHIR_INIT_NVAR(&path); + zephir_fast_explode_str(&path, SL("?"), &_7, LONG_MAX); + zephir_array_fetch_long(&_8, &path, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Message/ServerRequestFactory.zep", 599); + ZEPHIR_CALL_METHOD(&_0, &uri, "withpath", NULL, 316, &_8); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&uri, &_0); + if (UNEXPECTED(zephir_fast_count_int(&split) > 1)) { + zephir_array_fetch_long(&_10$$5, &split, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Message/ServerRequestFactory.zep", 602); + ZEPHIR_CALL_METHOD(&_9$$5, &uri, "withfragment", NULL, 317, &_10$$5); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&uri, &_9$$5); + } + ZEPHIR_CALL_METHOD(&query, this_ptr, "calculateuriquery", NULL, 318, server); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, &uri, "withquery", NULL, 319, &query); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&uri, &_0); + RETURN_CCTOR(&uri); } -// 1638 "parser.php.c" - break; - case 60: -// 452 "parser.php.lemon" + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Message_Stream) { - phql_ret_assoc_name(&ppgotominor.pp202, &ppmsp[-5].minor.pp202, ppmsp[-4].minor.pp0, &ppmsp[-1].minor.pp202); - pp_destructor(50,&ppmsp[-3].minor); - pp_destructor(45,&ppmsp[-2].minor); - pp_destructor(46,&ppmsp[0].minor); + ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Message, Stream, phalcon, http_message_stream, phalcon_http_message_stream_method_entry, 0); + + zend_declare_property_null(phalcon_http_message_stream_ce, SL("handle"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_message_stream_ce, SL("stream"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_http_message_stream_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\streaminterface"))); + return SUCCESS; } -// 1648 "parser.php.c" - break; - case 61: -// 456 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, __construct) { - phql_ret_assoc_name(&ppgotominor.pp202, &ppmsp[-3].minor.pp202, ppmsp[-2].minor.pp0, &ppmsp[0].minor.pp202); - pp_destructor(50,&ppmsp[-1].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval mode; + zval *stream, stream_sub, *mode_param = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&stream_sub); + ZVAL_UNDEF(&mode); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(stream) + Z_PARAM_OPTIONAL + Z_PARAM_STR(mode) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &stream, &mode_param); + if (!mode_param) { + ZEPHIR_INIT_VAR(&mode); + ZVAL_STRING(&mode, "rb"); + } else { + if (UNEXPECTED(Z_TYPE_P(mode_param) != IS_STRING && Z_TYPE_P(mode_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'mode' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(mode_param) == IS_STRING)) { + zephir_get_strval(&mode, mode_param); + } else { + ZEPHIR_INIT_VAR(&mode); + } + } + + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setstream", NULL, 0, stream, &mode); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -// 1656 "parser.php.c" - break; - case 62: -// 460 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, __destruct) { - phql_ret_assoc_name(&ppgotominor.pp202, &ppmsp[-4].minor.pp202, NULL, &ppmsp[-1].minor.pp202); - pp_destructor(50,&ppmsp[-3].minor); - pp_destructor(45,&ppmsp[-2].minor); - pp_destructor(46,&ppmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "close", NULL, 0); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -// 1666 "parser.php.c" - break; - case 63: -// 464 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, __toString) { - phql_ret_assoc_name(&ppgotominor.pp202, &ppmsp[-2].minor.pp202, NULL, &ppmsp[0].minor.pp202); - pp_destructor(50,&ppmsp[-1].minor); + zval _0$$3, _1$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$4); + + + ZEPHIR_MM_GROW(); + + + /* try_start_1: */ + + ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "isreadable", NULL, 0); + zephir_check_call_status_or_jump(try_end_1); + if (UNEXPECTED(zephir_is_true(&_0$$3))) { + ZEPHIR_CALL_METHOD(&_1$$4, this_ptr, "isseekable", NULL, 0); + zephir_check_call_status_or_jump(try_end_1); + if (UNEXPECTED(zephir_is_true(&_1$$4))) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "rewind", NULL, 0); + zephir_check_call_status_or_jump(try_end_1); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getcontents", NULL, 0); + zephir_check_call_status_or_jump(try_end_1); + RETURN_MM(); + } + + try_end_1: + + zend_clear_exception(); + RETURN_MM_STRING(""); } -// 1674 "parser.php.c" - break; - case 68: -// 500 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, close) { - ppgotominor.pp202 = ppmsp[0].minor.pp202; - pp_destructor(51,&ppmsp[-1].minor); + zval handle, _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&handle); + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); + if (EXPECTED(Z_TYPE_P(&_0) != IS_NULL)) { + ZEPHIR_CALL_METHOD(&handle, this_ptr, "detach", NULL, 0); + zephir_check_call_status(); + zephir_fclose(&handle); + } + ZEPHIR_MM_RESTORE(); } -// 1682 "parser.php.c" - break; - case 70: -// 512 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, detach) { - ppgotominor.pp202 = ppmsp[0].minor.pp202; - pp_destructor(52,&ppmsp[-2].minor); - pp_destructor(53,&ppmsp[-1].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval __$null, handle, _0; + zval *this_ptr = getThis(); + + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&handle); + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&handle, &_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("handle"), &__$null); + RETURN_CCTOR(&handle); } -// 1691 "parser.php.c" - break; - case 74: -// 536 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, eof) { - phql_ret_order_item(&ppgotominor.pp202, &ppmsp[0].minor.pp202, 0); + zval _0, _1$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(zephir_is_true(&_0))) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); + RETURN_BOOL(zephir_feof(&_1$$3)); + } + RETURN_BOOL(1); } -// 1698 "parser.php.c" - break; - case 75: -// 540 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, getContents) { - phql_ret_order_item(&ppgotominor.pp202, &ppmsp[-1].minor.pp202, PHQL_T_ASC); - pp_destructor(54,&ppmsp[0].minor); + zval data, _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkhandle", NULL, 77); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkreadable", NULL, 78); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&data, "stream_get_contents", NULL, 79, &_0); + zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&data))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_RuntimeException, "Could not read from the file/stream", "phalcon/Http/Message/Stream.zep", 140); + return; + } + RETURN_CCTOR(&data); } -// 1706 "parser.php.c" - break; - case 76: -// 544 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, getMetadata) { - phql_ret_order_item(&ppgotominor.pp202, &ppmsp[-1].minor.pp202, PHQL_T_DESC); - pp_destructor(55,&ppmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_2 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key = NULL, key_sub, __$null, metadata, _0, _1, _3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&metadata); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(key) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &key); + if (!key) { + key = &key_sub; + key = &__$null; + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(Z_TYPE_P(&_0) == IS_NULL)) { + RETURN_MM_NULL(); + } + zephir_read_property(&_1, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&metadata, "stream_get_meta_data", NULL, 80, &_1); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(key) == IS_NULL)) { + RETURN_CCTOR(&metadata); + } + ZEPHIR_INIT_VAR(&_3); + array_init(&_3); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_helper_arr_ce, "get", &_2, 16, &metadata, key, &_3); + zephir_check_call_status(); + RETURN_MM(); } -// 1714 "parser.php.c" - break; - case 77: -// 552 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, getSize) { - ppgotominor.pp202 = ppmsp[0].minor.pp202; - pp_destructor(56,&ppmsp[-2].minor); - pp_destructor(53,&ppmsp[-1].minor); + zval stats, _0, _1$$3, _3$$4, _4$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_2 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&stats); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$4); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); + if (EXPECTED(Z_TYPE_P(&_0) != IS_NULL)) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&stats, "fstat", NULL, 81, &_1$$3); + zephir_check_call_status(); + if (EXPECTED(!ZEPHIR_IS_FALSE_IDENTICAL(&stats))) { + ZEPHIR_INIT_VAR(&_3$$4); + ZVAL_STRING(&_3$$4, "size"); + ZVAL_NULL(&_4$$4); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_helper_arr_ce, "get", &_2, 16, &stats, &_3$$4, &_4$$4); + zephir_check_call_status(); + RETURN_MM(); + } + } + RETURN_MM_NULL(); } -// 1723 "parser.php.c" - break; - case 82: -// 584 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, isReadable) { - ppgotominor.pp202 = ppmsp[0].minor.pp202; - pp_destructor(57,&ppmsp[-1].minor); + zval _2; + zval mode, _0, _1, _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&mode); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_2); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "mode"); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmetadata", NULL, 0, &_1); + zephir_check_call_status(); + zephir_cast_to_string(&_2, &_0); + ZEPHIR_CPY_WRT(&mode, &_2); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "r+"); + ZEPHIR_CALL_FUNCTION(&_3, "strpbrk", NULL, 82, &mode, &_1); + zephir_check_call_status(); + RETURN_MM_BOOL(!ZEPHIR_IS_FALSE_IDENTICAL(&_3)); } -// 1731 "parser.php.c" - break; - case 84: -// 596 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, isSeekable) { - phql_ret_for_update_clause(&ppgotominor.pp202); - pp_destructor(58,&ppmsp[-1].minor); - pp_destructor(47,&ppmsp[0].minor); + zval _0, _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "seekable"); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmetadata", NULL, 0, &_1); + zephir_check_call_status(); + RETURN_MM_BOOL(zephir_get_boolval(&_0)); } -// 1740 "parser.php.c" - break; - case 86: - case 90: -// 608 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, isWritable) { - phql_ret_limit_clause(&ppgotominor.pp202, &ppmsp[0].minor.pp202, NULL); - pp_destructor(59,&ppmsp[-1].minor); + zval _2; + zval mode, _0, _1, _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&mode); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_2); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "mode"); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmetadata", NULL, 0, &_1); + zephir_check_call_status(); + zephir_cast_to_string(&_2, &_0); + ZEPHIR_CPY_WRT(&mode, &_2); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "xwca+"); + ZEPHIR_CALL_FUNCTION(&_3, "strpbrk", NULL, 82, &mode, &_1); + zephir_check_call_status(); + RETURN_MM_BOOL(!ZEPHIR_IS_FALSE_IDENTICAL(&_3)); } -// 1749 "parser.php.c" - break; - case 87: -// 612 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, read) { - phql_ret_limit_clause(&ppgotominor.pp202, &ppmsp[0].minor.pp202, &ppmsp[-2].minor.pp202); - pp_destructor(59,&ppmsp[-3].minor); - pp_destructor(26,&ppmsp[-1].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *length, length_sub, data, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&length_sub); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(length) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &length); + + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkhandle", NULL, 77); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkreadable", NULL, 78); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&data, "fread", NULL, 83, &_0, length); + zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&data))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_RuntimeException, "Could not read from the file/stream", "phalcon/Http/Message/Stream.zep", 240); + return; + } + RETURN_CCTOR(&data); } -// 1758 "parser.php.c" - break; - case 88: -// 616 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, rewind) { - phql_ret_limit_clause(&ppgotominor.pp202, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(59,&ppmsp[-3].minor); - pp_destructor(60,&ppmsp[-1].minor); + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + ZVAL_LONG(&_0, 0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "seek", NULL, 0, &_0); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -// 1767 "parser.php.c" - break; - case 92: - case 150: -// 636 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, seek) { - phql_ret_literal_zval(&ppgotominor.pp202, PHQL_T_INTEGER, ppmsp[0].minor.pp0); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *offset, offset_sub, *whence = NULL, whence_sub, seeker, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&offset_sub); + ZVAL_UNDEF(&whence_sub); + ZVAL_UNDEF(&seeker); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(offset) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL(whence) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &offset, &whence); + if (!whence) { + whence = &whence_sub; + ZEPHIR_INIT_VAR(whence); + ZVAL_LONG(whence, 0); + } + + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkhandle", NULL, 77); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkseekable", NULL, 84); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&seeker, "fseek", NULL, 85, &_0, offset, whence); + zephir_check_call_status(); + if (UNEXPECTED(!ZEPHIR_IS_LONG_IDENTICAL(&seeker, 0))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_RuntimeException, "Could not seek on the file pointer", "phalcon/Http/Message/Stream.zep", 273); + return; + } + ZEPHIR_MM_RESTORE(); } -// 1775 "parser.php.c" - break; - case 93: - case 151: -// 640 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, setStream) { - phql_ret_literal_zval(&ppgotominor.pp202, PHQL_T_HINTEGER, ppmsp[0].minor.pp0); + zend_bool _7, _8; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval mode; + zval *stream, stream_sub, *mode_param = NULL, __$false, handle, version, _9, _10, _0$$3, _1$$3, _2$$3, _3$$4, _4$$4, _5$$5, _6$$5; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&stream_sub); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&handle); + ZVAL_UNDEF(&version); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&mode); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(stream) + Z_PARAM_OPTIONAL + Z_PARAM_STR(mode) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &stream, &mode_param); + if (!mode_param) { + ZEPHIR_INIT_VAR(&mode); + ZVAL_STRING(&mode, "rb"); + } else { + if (UNEXPECTED(Z_TYPE_P(mode_param) != IS_STRING && Z_TYPE_P(mode_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'mode' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(mode_param) == IS_STRING)) { + zephir_get_strval(&mode, mode_param); + } else { + ZEPHIR_INIT_VAR(&mode); + } + } + + + ZEPHIR_CPY_WRT(&handle, stream); + ZEPHIR_CALL_FUNCTION(&version, "phpversion", NULL, 86); + zephir_check_call_status(); + ZEPHIR_GLOBAL(warning).enable = zend_is_true(&__$false); + if (EXPECTED(Z_TYPE_P(stream) == IS_STRING)) { + ZEPHIR_INIT_VAR(&_0$$3); + ZVAL_STRING(&_0$$3, "8.0"); + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, ">="); + ZEPHIR_CALL_FUNCTION(&_2$$3, "version_compare", NULL, 87, &version, &_0$$3, &_1$$3); + zephir_check_call_status(); + if (zephir_is_true(&_2$$3)) { + ZEPHIR_INIT_VAR(&_3$$4); + ZEPHIR_INIT_NVAR(&_3$$4); + zephir_create_closure_ex(&_3$$4, NULL, phalcon_0__closure_ce, SL("__invoke")); + ZVAL_LONG(&_4$$4, 2); + ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_3$$4, &_4$$4); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_VAR(&_5$$5); + ZEPHIR_INIT_NVAR(&_5$$5); + zephir_create_closure_ex(&_5$$5, NULL, phalcon_1__closure_ce, SL("__invoke")); + ZVAL_LONG(&_6$$5, 2); + ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_5$$5, &_6$$5); + zephir_check_call_status(); + } + ZEPHIR_CALL_FUNCTION(&handle, "fopen", NULL, 89, stream, &mode); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(NULL, "restore_error_handler", NULL, 90); + zephir_check_call_status(); + } + _7 = ZEPHIR_GLOBAL(warning).enable; + if (!(_7)) { + _7 = Z_TYPE_P(&handle) != IS_RESOURCE; + } + _8 = _7; + if (!(_8)) { + ZEPHIR_CALL_FUNCTION(&_9, "get_resource_type", NULL, 91, &handle); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_10); + ZVAL_STRING(&_10, "stream"); + _8 = !ZEPHIR_IS_IDENTICAL(&_10, &_9); + } + if (UNEXPECTED(_8)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_RuntimeException, "The stream provided is not valid (string/resource) or could not be opened.", "phalcon/Http/Message/Stream.zep", 321); + return; + } + zephir_update_property_zval(this_ptr, ZEND_STRL("handle"), &handle); + zephir_update_property_zval(this_ptr, ZEND_STRL("stream"), stream); + ZEPHIR_MM_RESTORE(); } -// 1783 "parser.php.c" - break; - case 94: - case 157: -// 644 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, tell) { - phql_ret_placeholder_zval(&ppgotominor.pp202, PHQL_T_NPLACEHOLDER, ppmsp[0].minor.pp0); + zval position, _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&position); + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkhandle", NULL, 77); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&position, "ftell", NULL, 92, &_0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&position) != IS_LONG)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(zend_ce_exception, "Could not retrieve the pointer position", "phalcon/Http/Message/Stream.zep", 342); + return; + } + RETURN_CCTOR(&position); } -// 1791 "parser.php.c" - break; - case 95: - case 158: -// 648 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, write) { - phql_ret_placeholder_zval(&ppgotominor.pp202, PHQL_T_SPLACEHOLDER, ppmsp[0].minor.pp0); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *data, data_sub, bytes, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&bytes); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &data); + + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkhandle", NULL, 77); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkwritable", NULL, 93); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&bytes); + zephir_fwrite(&bytes, &_0, data); + if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&bytes))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_RuntimeException, "Could not write to the file/stream", "phalcon/Http/Message/Stream.zep", 365); + return; + } + RETURN_CCTOR(&bytes); } -// 1799 "parser.php.c" - break; - case 96: - case 159: -// 652 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, checkHandle) { - phql_ret_placeholder_zval(&ppgotominor.pp202, PHQL_T_BPLACEHOLDER, ppmsp[0].minor.pp0); + zval _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(Z_TYPE_P(&_0) == IS_NULL)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(spl_ce_RuntimeException, "A valid resource is required.", "phalcon/Http/Message/Stream.zep", 377); + return; + } } -// 1807 "parser.php.c" - break; - case 97: -// 660 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, checkReadable) { - phql_ret_expr(&ppgotominor.pp202, PHQL_T_MINUS, NULL, &ppmsp[0].minor.pp202); - pp_destructor(21,&ppmsp[-1].minor); + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "isreadable", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&_0))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_RuntimeException, "The resource is not readable.", "phalcon/Http/Message/Stream.zep", 387); + return; + } + ZEPHIR_MM_RESTORE(); } -// 1815 "parser.php.c" - break; - case 98: -// 664 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, checkSeekable) { - phql_ret_expr(&ppgotominor.pp202, PHQL_T_SUB, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(21,&ppmsp[-1].minor); + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "isseekable", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&_0))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_RuntimeException, "The resource is not seekable.", "phalcon/Http/Message/Stream.zep", 397); + return; + } + ZEPHIR_MM_RESTORE(); } -// 1823 "parser.php.c" - break; - case 99: -// 668 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Http_Message_Stream, checkWritable) { - phql_ret_expr(&ppgotominor.pp202, PHQL_T_ADD, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(20,&ppmsp[-1].minor); -} -// 1831 "parser.php.c" - break; - case 100: -// 672 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_MUL, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(18,&ppmsp[-1].minor); -} -// 1839 "parser.php.c" - break; - case 101: -// 676 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_DIV, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(17,&ppmsp[-1].minor); -} -// 1847 "parser.php.c" - break; - case 102: -// 680 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_MOD, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(19,&ppmsp[-1].minor); -} -// 1855 "parser.php.c" - break; - case 103: -// 684 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_AND, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(10,&ppmsp[-1].minor); -} -// 1863 "parser.php.c" - break; - case 104: -// 688 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_OR, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(11,&ppmsp[-1].minor); -} -// 1871 "parser.php.c" - break; - case 105: -// 692 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_BITWISE_AND, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(14,&ppmsp[-1].minor); -} -// 1879 "parser.php.c" - break; - case 106: -// 696 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_BITWISE_OR, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(15,&ppmsp[-1].minor); -} -// 1887 "parser.php.c" - break; - case 107: -// 700 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_BITWISE_XOR, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(16,&ppmsp[-1].minor); -} -// 1895 "parser.php.c" - break; - case 108: -// 704 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_EQUALS, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(4,&ppmsp[-1].minor); -} -// 1903 "parser.php.c" - break; - case 109: -// 708 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_NOTEQUALS, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(5,&ppmsp[-1].minor); -} -// 1911 "parser.php.c" - break; - case 110: -// 712 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_LESS, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(6,&ppmsp[-1].minor); -} -// 1919 "parser.php.c" - break; - case 111: -// 716 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_GREATER, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(7,&ppmsp[-1].minor); -} -// 1927 "parser.php.c" - break; - case 112: -// 720 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_GREATEREQUAL, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(8,&ppmsp[-1].minor); -} -// 1935 "parser.php.c" - break; - case 113: -// 724 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_LESSEQUAL, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(9,&ppmsp[-1].minor); -} -// 1943 "parser.php.c" - break; - case 114: -// 728 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_LIKE, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(12,&ppmsp[-1].minor); -} -// 1951 "parser.php.c" - break; - case 115: -// 732 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_NLIKE, &ppmsp[-3].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(24,&ppmsp[-2].minor); - pp_destructor(12,&ppmsp[-1].minor); -} -// 1960 "parser.php.c" - break; - case 116: -// 736 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_ILIKE, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(13,&ppmsp[-1].minor); -} -// 1968 "parser.php.c" - break; - case 117: -// 740 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_NILIKE, &ppmsp[-3].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(24,&ppmsp[-2].minor); - pp_destructor(13,&ppmsp[-1].minor); -} -// 1977 "parser.php.c" - break; - case 118: - case 121: -// 744 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_IN, &ppmsp[-4].minor.pp202, &ppmsp[-1].minor.pp202); - pp_destructor(23,&ppmsp[-3].minor); - pp_destructor(45,&ppmsp[-2].minor); - pp_destructor(46,&ppmsp[0].minor); -} -// 1988 "parser.php.c" - break; - case 119: - case 122: -// 748 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_NOTIN, &ppmsp[-5].minor.pp202, &ppmsp[-1].minor.pp202); - pp_destructor(24,&ppmsp[-4].minor); - pp_destructor(23,&ppmsp[-3].minor); - pp_destructor(45,&ppmsp[-2].minor); - pp_destructor(46,&ppmsp[0].minor); -} -// 2000 "parser.php.c" - break; - case 120: -// 752 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_SUBQUERY, &ppmsp[-1].minor.pp202, NULL); - pp_destructor(45,&ppmsp[-2].minor); - pp_destructor(46,&ppmsp[0].minor); -} -// 2009 "parser.php.c" - break; - case 123: -// 764 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_EXISTS, NULL, &ppmsp[-1].minor.pp202); - pp_destructor(66,&ppmsp[-3].minor); - pp_destructor(45,&ppmsp[-2].minor); - pp_destructor(46,&ppmsp[0].minor); -} -// 2019 "parser.php.c" - break; - case 124: -// 768 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_AGAINST, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(1,&ppmsp[-1].minor); -} -// 2027 "parser.php.c" - break; - case 125: -// 772 "parser.php.lemon" -{ - { - zval qualified; - phql_ret_raw_qualified_name(&qualified, ppmsp[-1].minor.pp0, NULL); - phql_ret_expr(&ppgotominor.pp202, PHQL_T_CAST, &ppmsp[-3].minor.pp202, &qualified); - } - pp_destructor(67,&ppmsp[-5].minor); - pp_destructor(45,&ppmsp[-4].minor); - pp_destructor(33,&ppmsp[-2].minor); - pp_destructor(46,&ppmsp[0].minor); -} -// 2042 "parser.php.c" - break; - case 126: -// 780 "parser.php.lemon" -{ - { - zval qualified; - phql_ret_raw_qualified_name(&qualified, ppmsp[-1].minor.pp0, NULL); - phql_ret_expr(&ppgotominor.pp202, PHQL_T_CONVERT, &ppmsp[-3].minor.pp202, &qualified); + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "iswritable", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&_0))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_RuntimeException, "The resource is not writable.", "phalcon/Http/Message/Stream.zep", 407); + return; } - pp_destructor(68,&ppmsp[-5].minor); - pp_destructor(45,&ppmsp[-4].minor); - pp_destructor(69,&ppmsp[-2].minor); - pp_destructor(46,&ppmsp[0].minor); -} -// 2057 "parser.php.c" - break; - case 127: -// 788 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_CASE, &ppmsp[-2].minor.pp202, &ppmsp[-1].minor.pp202); - pp_destructor(70,&ppmsp[-3].minor); - pp_destructor(71,&ppmsp[0].minor); -} -// 2066 "parser.php.c" - break; - case 130: -// 800 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_WHEN, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(72,&ppmsp[-3].minor); - pp_destructor(73,&ppmsp[-1].minor); -} -// 2075 "parser.php.c" - break; - case 131: -// 804 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_ELSE, &ppmsp[0].minor.pp202, NULL); - pp_destructor(74,&ppmsp[-1].minor); -} -// 2083 "parser.php.c" - break; - case 133: -// 816 "parser.php.lemon" -{ - phql_ret_func_call(&ppgotominor.pp202, ppmsp[-4].minor.pp0, &ppmsp[-1].minor.pp202, &ppmsp[-2].minor.pp202); - pp_destructor(45,&ppmsp[-3].minor); - pp_destructor(46,&ppmsp[0].minor); -} -// 2092 "parser.php.c" - break; - case 134: -// 824 "parser.php.lemon" -{ - phql_ret_distinct(&ppgotominor.pp202); - pp_destructor(29,&ppmsp[0].minor); -} -// 2100 "parser.php.c" - break; - case 142: -// 868 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_ISNULL, &ppmsp[-2].minor.pp202, NULL); - pp_destructor(22,&ppmsp[-1].minor); - pp_destructor(75,&ppmsp[0].minor); -} -// 2109 "parser.php.c" - break; - case 143: -// 872 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_ISNOTNULL, &ppmsp[-3].minor.pp202, NULL); - pp_destructor(22,&ppmsp[-2].minor); - pp_destructor(24,&ppmsp[-1].minor); - pp_destructor(75,&ppmsp[0].minor); -} -// 2119 "parser.php.c" - break; - case 144: -// 876 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_BETWEEN, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(2,&ppmsp[-1].minor); -} -// 2127 "parser.php.c" - break; - case 145: -// 880 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_BETWEEN_NOT, &ppmsp[-2].minor.pp202, &ppmsp[0].minor.pp202); - pp_destructor(3,&ppmsp[-1].minor); -} -// 2135 "parser.php.c" - break; - case 146: -// 884 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_NOT, NULL, &ppmsp[0].minor.pp202); - pp_destructor(24,&ppmsp[-1].minor); -} -// 2143 "parser.php.c" - break; - case 147: -// 888 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_BITWISE_NOT, NULL, &ppmsp[0].minor.pp202); - pp_destructor(25,&ppmsp[-1].minor); -} -// 2151 "parser.php.c" - break; - case 148: -// 892 "parser.php.lemon" -{ - phql_ret_expr(&ppgotominor.pp202, PHQL_T_ENCLOSED, &ppmsp[-1].minor.pp202, NULL); - pp_destructor(45,&ppmsp[-2].minor); - pp_destructor(46,&ppmsp[0].minor); -} -// 2160 "parser.php.c" - break; - case 152: -// 908 "parser.php.lemon" -{ - phql_ret_literal_zval(&ppgotominor.pp202, PHQL_T_STRING, ppmsp[0].minor.pp0); -} -// 2167 "parser.php.c" - break; - case 153: -// 912 "parser.php.lemon" -{ - phql_ret_literal_zval(&ppgotominor.pp202, PHQL_T_DOUBLE, ppmsp[0].minor.pp0); -} -// 2174 "parser.php.c" - break; - case 154: -// 916 "parser.php.lemon" -{ - phql_ret_literal_zval(&ppgotominor.pp202, PHQL_T_NULL, NULL); - pp_destructor(75,&ppmsp[0].minor); -} -// 2182 "parser.php.c" - break; - case 155: -// 920 "parser.php.lemon" -{ - phql_ret_literal_zval(&ppgotominor.pp202, PHQL_T_TRUE, NULL); - pp_destructor(78,&ppmsp[0].minor); -} -// 2190 "parser.php.c" - break; - case 156: -// 924 "parser.php.lemon" -{ - phql_ret_literal_zval(&ppgotominor.pp202, PHQL_T_FALSE, NULL); - pp_destructor(79,&ppmsp[0].minor); -} -// 2198 "parser.php.c" - break; - case 160: -// 947 "parser.php.lemon" -{ - phql_ret_qualified_name(&ppgotominor.pp202, NULL, ppmsp[-2].minor.pp0, ppmsp[0].minor.pp0); - pp_destructor(32,&ppmsp[-1].minor); -} -// 2206 "parser.php.c" - break; - }; - ppgoto = ppRuleInfo[ppruleno].lhs; - ppsize = ppRuleInfo[ppruleno].nrhs; - pppParser->ppidx -= ppsize; - ppact = pp_find_reduce_action(pppParser,ppgoto); - if( ppact < PPNSTATE ){ - pp_shift(pppParser,ppact,ppgoto,&ppgotominor); - }else if( ppact == PPNSTATE + PPNRULE + 1 ){ - pp_accept(pppParser); - } + ZEPHIR_MM_RESTORE(); } -static void pp_parse_failed( - ppParser *pppParser /* The parser */ -){ - phql_ARG_FETCH; -#ifndef NDEBUG - if( ppTraceFILE ){ - fprintf(ppTraceFILE,"%sFail!\n",ppTracePrompt); - } + + + +#ifdef HAVE_CONFIG_H #endif - while( pppParser->ppidx>=0 ) pp_pop_parser_stack(pppParser); - /* Here code is inserted which will be executed whenever the - ** parser fails */ - phql_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ -} -static void pp_syntax_error( - ppParser *pppParser, /* The parser */ - int ppmajor, /* The major type of the error token */ - PPMINORTYPE ppminor /* The minor type of the error token */ -){ - phql_ARG_FETCH; -#define PPTOKEN (ppminor.pp0) -// 34 "parser.php.lemon" - if (status->scanner_state->start_length) { - { - char *token_name = NULL; - int token_found = 0; - unsigned int token_length; - const phql_token_names *tokens = phql_tokens; - int active_token = status->scanner_state->active_token; - int near_length = status->scanner_state->start_length; - if (active_token) { - do { - if (tokens->code == active_token) { - token_name = tokens->name; - token_length = tokens->length; - token_found = 1; - break; - } - ++tokens; - } while (tokens[0].code != 0); +ZEPHIR_INIT_CLASS(Phalcon_Http_Message_StreamFactory) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Message, StreamFactory, phalcon, http_message_streamfactory, phalcon_http_message_streamfactory_method_entry, ZEND_ACC_FINAL_CLASS); - } + zend_class_implements(phalcon_http_message_streamfactory_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\streamfactoryinterface"))); + return SUCCESS; +} - if (!token_name) { - token_length = strlen("UNKNOWN"); - token_name = estrndup("UNKNOWN", token_length); - token_found = 0; - } +static PHP_METHOD(Phalcon_Http_Message_StreamFactory, createStream) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *content_param = NULL, handle, _0, _1; + zval content; + zval *this_ptr = getThis(); - status->syntax_error_len = 96 + status->token->len + token_length + near_length + status->phql_length;; - status->syntax_error = emalloc(sizeof(char) * status->syntax_error_len); + ZVAL_UNDEF(&content); + ZVAL_UNDEF(&handle); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR(content) + ZEND_PARSE_PARAMETERS_END(); +#endif - if (near_length > 0) { - if (status->token->value) { - snprintf(status->syntax_error, status->syntax_error_len, "Syntax error, unexpected token %s(%s), near to '%s', when parsing: %s (%d)", token_name, status->token->value, status->scanner_state->start, status->phql, status->phql_length); - } else { - snprintf(status->syntax_error, status->syntax_error_len, "Syntax error, unexpected token %s, near to '%s', when parsing: %s (%d)", token_name, status->scanner_state->start, status->phql, status->phql_length); - } - } else { - if (active_token != PHQL_T_IGNORE) { - if (status->token->value) { - snprintf(status->syntax_error, status->syntax_error_len, "Syntax error, unexpected token %s(%s), at the end of query, when parsing: %s (%d)", token_name, status->token->value, status->phql, status->phql_length); - } else { - snprintf(status->syntax_error, status->syntax_error_len, "Syntax error, unexpected token %s, at the end of query, when parsing: %s (%d)", token_name, status->phql, status->phql_length); - } - } else { - snprintf(status->syntax_error, status->syntax_error_len, "Syntax error, unexpected EOF, at the end of query"); - } - status->syntax_error[status->syntax_error_len - 1] = '\0'; - } - if (!token_found) { - if (token_name) { - efree(token_name); - } - } - } + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &content_param); + if (!content_param) { + ZEPHIR_INIT_VAR(&content); + ZVAL_STRING(&content, ""); } else { - status->syntax_error_len = strlen("Syntax error, unexpected EOF"); - status->syntax_error = estrndup("Syntax error, unexpected EOF", status->syntax_error_len); + if (UNEXPECTED(Z_TYPE_P(content_param) != IS_STRING && Z_TYPE_P(content_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'content' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(content_param) == IS_STRING)) { + zephir_get_strval(&content, content_param); + } else { + ZEPHIR_INIT_VAR(&content); + } } - status->status = PHQL_PARSING_FAILED; -// 2315 "parser.php.c" - phql_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "php://temp"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "r+b"); + ZEPHIR_CALL_FUNCTION(&handle, "fopen", NULL, 89, &_0, &_1); + zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&handle))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Cannot write to file.", "phalcon/Http/Message/StreamFactory.zep", 41); + return; + } + zephir_fwrite(NULL, &handle, &content); + ZEPHIR_CALL_FUNCTION(NULL, "rewind", NULL, 320, &handle); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "createstreamfromresource", NULL, 321, &handle); + zephir_check_call_status(); + RETURN_MM(); } -static void pp_accept( - ppParser *pppParser /* The parser */ -){ - phql_ARG_FETCH; -#ifndef NDEBUG - if( ppTraceFILE ){ - fprintf(ppTraceFILE,"%sAccept!\n",ppTracePrompt); - } +static PHP_METHOD(Phalcon_Http_Message_StreamFactory, createStreamFromFile) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *filename_param = NULL, *mode_param = NULL; + zval filename, mode; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&filename); + ZVAL_UNDEF(&mode); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(filename) + Z_PARAM_OPTIONAL + Z_PARAM_STR(mode) + ZEND_PARSE_PARAMETERS_END(); #endif - while( pppParser->ppidx>=0 ) pp_pop_parser_stack(pppParser); - /* Here code is inserted which will be executed whenever the - ** parser accepts */ - phql_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ -} -/* The main parser program. -** The first argument is a pointer to a structure obtained from -** "phql_Alloc" which describes the current state of the parser. -** The second argument is the major token number. The third is -** the minor token. The fourth optional argument is whatever the -** user wants (and specified in the grammar) and is available for -** use by the action routines. -** -** Inputs: -**
    -**
  • A pointer to the parser (an opaque structure.) -**
  • The major token number. -**
  • The minor token number. -**
  • An option argument of a grammar-specified type. -**
-** -** Outputs: -** None. -*/ -static void phql_( - void *ppp, /* The parser */ - int ppmajor, /* The major token code number */ - phql_TOKENTYPE ppminor /* The value for the token */ - phql_ARG_PDECL /* Optional %extra_argument parameter */ -){ - PPMINORTYPE ppminorunion; - int ppact; /* The parser action. */ - int ppendofinput; /* True if we are at the end of input */ - int pperrorhit = 0; /* True if ppmajor has invoked an error */ - ppParser *pppParser; /* The parser */ - /* (re)initialize the parser, if necessary */ - pppParser = (ppParser*)ppp; - if( pppParser->ppidx<0 ){ - if( ppmajor==0 ) return; - pppParser->ppidx = 0; - pppParser->pperrcnt = -1; - pppParser->ppstack[0].stateno = 0; - pppParser->ppstack[0].major = 0; - } - ppminorunion.pp0 = ppminor; - ppendofinput = (ppmajor==0); - phql_ARG_STORE; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &filename_param, &mode_param); + if (UNEXPECTED(Z_TYPE_P(filename_param) != IS_STRING && Z_TYPE_P(filename_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'filename' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(filename_param) == IS_STRING)) { + zephir_get_strval(&filename, filename_param); + } else { + ZEPHIR_INIT_VAR(&filename); + } + if (!mode_param) { + ZEPHIR_INIT_VAR(&mode); + ZVAL_STRING(&mode, "r+b"); + } else { + if (UNEXPECTED(Z_TYPE_P(mode_param) != IS_STRING && Z_TYPE_P(mode_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'mode' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(mode_param) == IS_STRING)) { + zephir_get_strval(&mode, mode_param); + } else { + ZEPHIR_INIT_VAR(&mode); + } + } -#ifndef NDEBUG - if( ppTraceFILE ){ - fprintf(ppTraceFILE,"%sInput %s\n",ppTracePrompt,ppTokenName[ppmajor]); - } -#endif - do{ - ppact = pp_find_shift_action(pppParser,ppmajor); - if( ppactpperrcnt--; - if( ppendofinput && pppParser->ppidx>=0 ){ - ppmajor = 0; - }else{ - ppmajor = PPNOCODE; - } - }else if( ppact < PPNSTATE + PPNRULE ){ - pp_reduce(pppParser,ppact-PPNSTATE); - }else if( ppact == PP_ERROR_ACTION ){ - int ppmx; -#ifndef NDEBUG - if( ppTraceFILE ){ - fprintf(ppTraceFILE,"%sSyntax Error!\n",ppTracePrompt); - } -#endif -#ifdef PPERRORSYMBOL - /* A syntax error has occurred. - ** The response to an error depends upon whether or not the - ** grammar defines an error token "ERROR". - ** - ** This is what we do if the grammar does define ERROR: - ** - ** * Call the %syntax_error function. - ** - ** * Begin popping the stack until we enter a state where - ** it is legal to shift the error symbol, then shift - ** the error symbol. - ** - ** * Set the error count to three. - ** - ** * Begin accepting and shifting new tokens. No new error - ** processing will occur until three tokens have been - ** shifted successfully. - ** - */ - if( pppParser->pperrcnt<0 ){ - pp_syntax_error(pppParser,ppmajor,ppminorunion); - } - ppmx = pppParser->ppstack[pppParser->ppidx].major; - if( ppmx==PPERRORSYMBOL || pperrorhit ){ -#ifndef NDEBUG - if( ppTraceFILE ){ - fprintf(ppTraceFILE,"%sDiscard input token %s\n", - ppTracePrompt,ppTokenName[ppmajor]); - } -#endif - pp_destructor(ppmajor,&ppminorunion); - ppmajor = PPNOCODE; - }else{ - while( - pppParser->ppidx >= 0 && - ppmx != PPERRORSYMBOL && - (ppact = pp_find_shift_action(pppParser,PPERRORSYMBOL)) >= PPNSTATE - ){ - pp_pop_parser_stack(pppParser); - } - if( pppParser->ppidx < 0 || ppmajor==0 ){ - pp_destructor(ppmajor,&ppminorunion); - pp_parse_failed(pppParser); - ppmajor = PPNOCODE; - }else if( ppmx!=PPERRORSYMBOL ){ - PPMINORTYPE u2; - u2.PPERRSYMDT = 0; - pp_shift(pppParser,ppact,PPERRORSYMBOL,&u2); - } - } - pppParser->pperrcnt = 3; - pperrorhit = 1; -#else /* PPERRORSYMBOL is not defined */ - /* This is what we do if the grammar does not define ERROR: - ** - ** * Report an error message, and throw away the input token. - ** - ** * If the input token is $, then fail the parse. - ** - ** As before, subsequent error messages are suppressed until - ** three input tokens have been successfully shifted. - */ - if( pppParser->pperrcnt<=0 ){ - pp_syntax_error(pppParser,ppmajor,ppminorunion); - } - pppParser->pperrcnt = 3; - pp_destructor(ppmajor,&ppminorunion); - if( ppendofinput ){ - pp_parse_failed(pppParser); - } - ppmajor = PPNOCODE; -#endif - }else{ - pp_accept(pppParser); - ppmajor = PPNOCODE; - } - }while( ppmajor!=PPNOCODE && pppParser->ppidx>=0 ); - return; + object_init_ex(return_value, phalcon_http_message_stream_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 43, &filename, &mode); + zephir_check_call_status(); + RETURN_MM(); } -/* base.c - * This file is part of the Phalcon Framework. - * - * (c) Phalcon Team - * - * For the full copyright and license information, please view the - * LICENSE.txt file that was distributed with this source code. - */ -const phql_token_names phql_tokens[] = +static PHP_METHOD(Phalcon_Http_Message_StreamFactory, createStreamFromResource) { - { SL("INTEGER"), PHQL_T_INTEGER }, - { SL("DOUBLE"), PHQL_T_DOUBLE }, - { SL("STRING"), PHQL_T_STRING }, - { SL("IDENTIFIER"), PHQL_T_IDENTIFIER }, - { SL("HEXAINTEGER"), PHQL_T_HINTEGER }, - { SL("MINUS"), PHQL_T_MINUS }, - { SL("+"), PHQL_T_ADD }, - { SL("-"), PHQL_T_SUB }, - { SL("*"), PHQL_T_MUL }, - { SL("/"), PHQL_T_DIV }, - { SL("&"), PHQL_T_BITWISE_AND }, - { SL("|"), PHQL_T_BITWISE_OR }, - { SL("%%"), PHQL_T_MOD }, - { SL("AND"), PHQL_T_AND }, - { SL("OR"), PHQL_T_OR }, - { SL("LIKE"), PHQL_T_LIKE }, - { SL("ILIKE"), PHQL_T_ILIKE }, - { SL("DOT"), PHQL_T_DOT }, - { SL("COLON"), PHQL_T_COLON }, - { SL("COMMA"), PHQL_T_COMMA }, - { SL("EQUALS"), PHQL_T_EQUALS }, - { SL("NOT EQUALS"), PHQL_T_NOTEQUALS }, - { SL("NOT"), PHQL_T_NOT }, - { SL("<"), PHQL_T_LESS }, - { SL("<="), PHQL_T_LESSEQUAL }, - { SL(">"), PHQL_T_GREATER }, - { SL(">="), PHQL_T_GREATEREQUAL }, - { SL("("), PHQL_T_PARENTHESES_OPEN }, - { SL(")"), PHQL_T_PARENTHESES_CLOSE }, - { SL("NUMERIC PLACEHOLDER"), PHQL_T_NPLACEHOLDER }, - { SL("STRING PLACEHOLDER"), PHQL_T_SPLACEHOLDER }, - { SL("UPDATE"), PHQL_T_UPDATE }, - { SL("SET"), PHQL_T_SET }, - { SL("WHERE"), PHQL_T_WHERE }, - { SL("DELETE"), PHQL_T_DELETE }, - { SL("FROM"), PHQL_T_FROM }, - { SL("AS"), PHQL_T_AS }, - { SL("INSERT"), PHQL_T_INSERT }, - { SL("INTO"), PHQL_T_INTO }, - { SL("VALUES"), PHQL_T_VALUES }, - { SL("SELECT"), PHQL_T_SELECT }, - { SL("ORDER"), PHQL_T_ORDER }, - { SL("BY"), PHQL_T_BY }, - { SL("LIMIT"), PHQL_T_LIMIT }, - { SL("OFFSET"), PHQL_T_OFFSET }, - { SL("GROUP"), PHQL_T_GROUP }, - { SL("HAVING"), PHQL_T_HAVING }, - { SL("IN"), PHQL_T_IN }, - { SL("ON"), PHQL_T_ON }, - { SL("INNER"), PHQL_T_INNER }, - { SL("JOIN"), PHQL_T_JOIN }, - { SL("LEFT"), PHQL_T_LEFT }, - { SL("RIGHT"), PHQL_T_RIGHT }, - { SL("IS"), PHQL_T_IS }, - { SL("NULL"), PHQL_T_NULL }, - { SL("NOT IN"), PHQL_T_NOTIN }, - { SL("CROSS"), PHQL_T_CROSS }, - { SL("OUTER"), PHQL_T_OUTER }, - { SL("FULL"), PHQL_T_FULL }, - { SL("ASC"), PHQL_T_ASC }, - { SL("DESC"), PHQL_T_DESC }, - { SL("BETWEEN"), PHQL_T_BETWEEN }, - { SL("DISTINCT"), PHQL_T_DISTINCT }, - { SL("AGAINST"), PHQL_T_AGAINST }, - { SL("CAST"), PHQL_T_CAST }, - { SL("CONVERT"), PHQL_T_CONVERT }, - { SL("USING"), PHQL_T_USING }, - { SL("ALL"), PHQL_T_ALL }, - { SL("EXISTS"), PHQL_T_EXISTS }, - { SL("CASE"), PHQL_T_CASE }, - { SL("WHEN"), PHQL_T_WHEN }, - { SL("THEN"), PHQL_T_THEN }, - { SL("ELSE"), PHQL_T_ELSE }, - { SL("END"), PHQL_T_END }, - { SL("FOR"), PHQL_T_FOR }, - { SL("WITH"), PHQL_T_WITH }, - { NULL, 0, 0 } -}; + zend_bool _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *phpResource, phpResource_sub, _1, _2; + zval *this_ptr = getThis(); -static void *phql_wrapper_alloc(size_t bytes) -{ - return emalloc(bytes); -} + ZVAL_UNDEF(&phpResource_sub); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(phpResource) + ZEND_PARSE_PARAMETERS_END(); +#endif -static void phql_wrapper_free(void *pointer) -{ - efree(pointer); + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &phpResource); + + + _0 = Z_TYPE_P(phpResource) != IS_RESOURCE; + if (!(_0)) { + ZEPHIR_CALL_FUNCTION(&_1, "get_resource_type", NULL, 91, phpResource); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "stream"); + _0 = !ZEPHIR_IS_IDENTICAL(&_2, &_1); + } + if (UNEXPECTED(_0)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid stream provided", "phalcon/Http/Message/StreamFactory.zep", 79); + return; + } + object_init_ex(return_value, phalcon_http_message_stream_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 43, phpResource); + zephir_check_call_status(); + RETURN_MM(); } -static void phql_parse_with_token(void* phql_parser, int opcode, int parsercode, phql_scanner_token *token, phql_parser_status *parser_status) -{ - phql_parser_token *pToken; - pToken = emalloc(sizeof(phql_parser_token)); - pToken->opcode = opcode; - pToken->token = token->value; - pToken->token_len = token->len; - pToken->free_flag = 1; - phql_(phql_parser, parsercode, pToken, parser_status); - token->value = NULL; - token->len = 0; -} +#ifdef HAVE_CONFIG_H +#endif -static void phql_scanner_error_msg(phql_parser_status *parser_status, zval **error_msg) -{ - char *error = NULL, *error_part; - unsigned int length; - phql_scanner_state *state = parser_status->scanner_state; - ZVAL_UNDEF(*error_msg); - if (state->start) { - length = 64 + state->start_length + parser_status->phql_length; - error = emalloc(sizeof(char) * length); - if (state->start_length > 16) { - error_part = estrndup(state->start, 16); - snprintf(error, length, "Scanning error before '%s...' when parsing: %s (%d)", error_part, parser_status->phql, parser_status->phql_length); - efree(error_part); - } else { - snprintf(error, length, "Scanning error before '%s' when parsing: %s (%d)", state->start, parser_status->phql, parser_status->phql_length); - } - error[length - 1] = '\0'; - ZVAL_STRING(*error_msg, error); - } else { - ZVAL_STRING(*error_msg, "Scanning error near to EOF"); - } - if (error) { - efree(error); - } +ZEPHIR_INIT_CLASS(Phalcon_Http_Message_UploadedFile) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Message, UploadedFile, phalcon, http_message_uploadedfile, phalcon_http_message_uploadedfile_method_entry, ZEND_ACC_FINAL_CLASS); + + zend_declare_property_bool(phalcon_http_message_uploadedfile_ce, SL("alreadyMoved"), 0, ZEND_ACC_PRIVATE); + zend_declare_property_null(phalcon_http_message_uploadedfile_ce, SL("clientFilename"), ZEND_ACC_PRIVATE); + zend_declare_property_null(phalcon_http_message_uploadedfile_ce, SL("clientMediaType"), ZEND_ACC_PRIVATE); + zend_declare_property_long(phalcon_http_message_uploadedfile_ce, SL("error"), 0, ZEND_ACC_PRIVATE); + zend_declare_property_string(phalcon_http_message_uploadedfile_ce, SL("fileName"), "", ZEND_ACC_PRIVATE); + zend_declare_property_null(phalcon_http_message_uploadedfile_ce, SL("size"), ZEND_ACC_PRIVATE); + zend_declare_property_null(phalcon_http_message_uploadedfile_ce, SL("stream"), ZEND_ACC_PRIVATE); + zend_class_implements(phalcon_http_message_uploadedfile_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\uploadedfileinterface"))); + return SUCCESS; } -static int phql_parse_phql(zval *result, zval *phql) +static PHP_METHOD(Phalcon_Http_Message_UploadedFile, getClientFilename) { - zval err_msg, *error_msg = &err_msg; - ZVAL_UNDEF(error_msg); - ZVAL_NULL(result); + zval *this_ptr = getThis(); - if (phql_internal_parse_phql(&result, Z_STRVAL_P(phql), Z_STRLEN_P(phql), &error_msg) == FAILURE) { - ZEPHIR_THROW_EXCEPTION_STRW(phalcon_mvc_model_exception_ce, Z_STRVAL_P(error_msg)); - return FAILURE; - } - return SUCCESS; + + RETURN_MEMBER(getThis(), "clientFilename"); } -static int phql_internal_parse_phql(zval **result, char *phql, unsigned int phql_length, zval **error_msg) +static PHP_METHOD(Phalcon_Http_Message_UploadedFile, getClientMediaType) { - zend_phalcon_globals *phalcon_globals_ptr = ZEPHIR_VGLOBAL; - phql_parser_status *parser_status = NULL; - int scanner_status, status = SUCCESS, error_length, cache_level; - phql_scanner_state *state; - phql_scanner_token token; - void* phql_parser; - char *error; - unsigned long phql_key = 0; - zval *temp_ast; + zval *this_ptr = getThis(); - if (!phql) { - ZVAL_STRING(*error_msg, "PHQL statement cannot be NULL"); - return FAILURE; - } - cache_level = phalcon_globals_ptr->orm.cache_level; - if (cache_level >= 0) { - phql_key = zend_inline_hash_func(phql, phql_length + 1); - if (phalcon_globals_ptr->orm.parser_cache != NULL) { - if ((temp_ast = zend_hash_index_find(phalcon_globals_ptr->orm.parser_cache, phql_key)) != NULL) { - ZVAL_ZVAL(*result, temp_ast, 1, 0); - Z_TRY_ADDREF_P(*result); - return SUCCESS; - } - } - } - phql_parser = phql_Alloc(phql_wrapper_alloc); + RETURN_MEMBER(getThis(), "clientMediaType"); +} - parser_status = emalloc(sizeof(phql_parser_status)); - state = emalloc(sizeof(phql_scanner_state)); +static PHP_METHOD(Phalcon_Http_Message_UploadedFile, getError) +{ + zval *this_ptr = getThis(); - parser_status->status = PHQL_PARSING_OK; - parser_status->scanner_state = state; - ZVAL_UNDEF(&parser_status->ret); - parser_status->syntax_error = NULL; - parser_status->token = &token; - parser_status->enable_literals = phalcon_globals_ptr->orm.enable_literals; - parser_status->phql = phql; - parser_status->phql_length = phql_length; - state->active_token = 0; - state->start = phql; - state->start_length = 0; - state->end = state->start; + RETURN_MEMBER(getThis(), "error"); +} - token.value = NULL; - token.len = 0; +static PHP_METHOD(Phalcon_Http_Message_UploadedFile, getSize) +{ + zval *this_ptr = getThis(); - while (0 <= (scanner_status = phql_get_token(state, &token))) { - /* Calculate the 'start' length */ - state->start_length = (phql + phql_length - state->start); - state->active_token = token.opcode; + RETURN_MEMBER(getThis(), "size"); +} - /* Parse the token found */ - switch (token.opcode) { +static PHP_METHOD(Phalcon_Http_Message_UploadedFile, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval clientFilename, clientMediaType; + zend_long size, error, ZEPHIR_LAST_CALL_STATUS; + zval *stream, stream_sub, *size_param = NULL, *error_param = NULL, *clientFilename_param = NULL, *clientMediaType_param = NULL, _0; + zval *this_ptr = getThis(); - case PHQL_T_IGNORE: - break; + ZVAL_UNDEF(&stream_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&clientFilename); + ZVAL_UNDEF(&clientMediaType); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 5) + Z_PARAM_ZVAL(stream) + Z_PARAM_OPTIONAL + Z_PARAM_LONG_OR_NULL(size, is_null_true) + Z_PARAM_LONG(error) + Z_PARAM_STR_OR_NULL(clientFilename) + Z_PARAM_STR_OR_NULL(clientMediaType) + ZEND_PARSE_PARAMETERS_END(); +#endif - case PHQL_T_ADD: - phql_(phql_parser, PHQL_PLUS, NULL, parser_status); - break; - case PHQL_T_SUB: - phql_(phql_parser, PHQL_MINUS, NULL, parser_status); - break; - case PHQL_T_MUL: - phql_(phql_parser, PHQL_TIMES, NULL, parser_status); - break; - case PHQL_T_DIV: - phql_(phql_parser, PHQL_DIVIDE, NULL, parser_status); - break; - case PHQL_T_MOD: - phql_(phql_parser, PHQL_MOD, NULL, parser_status); - break; - case PHQL_T_AND: - phql_(phql_parser, PHQL_AND, NULL, parser_status); - break; - case PHQL_T_OR: - phql_(phql_parser, PHQL_OR, NULL, parser_status); - break; - case PHQL_T_EQUALS: - phql_(phql_parser, PHQL_EQUALS, NULL, parser_status); - break; - case PHQL_T_NOTEQUALS: - phql_(phql_parser, PHQL_NOTEQUALS, NULL, parser_status); - break; - case PHQL_T_LESS: - phql_(phql_parser, PHQL_LESS, NULL, parser_status); - break; - case PHQL_T_GREATER: - phql_(phql_parser, PHQL_GREATER, NULL, parser_status); - break; - case PHQL_T_GREATEREQUAL: - phql_(phql_parser, PHQL_GREATEREQUAL, NULL, parser_status); - break; - case PHQL_T_LESSEQUAL: - phql_(phql_parser, PHQL_LESSEQUAL, NULL, parser_status); - break; - case PHQL_T_IDENTIFIER: - phql_parse_with_token(phql_parser, PHQL_T_IDENTIFIER, PHQL_IDENTIFIER, &token, parser_status); - break; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 4, &stream, &size_param, &error_param, &clientFilename_param, &clientMediaType_param); + if (!size_param) { + size = 0; + } else { + size = zephir_get_intval(size_param); + } + if (!error_param) { + error = 0; + } else { + error = zephir_get_intval(error_param); + } + if (!clientFilename_param) { + ZEPHIR_INIT_VAR(&clientFilename); + } else { + zephir_get_strval(&clientFilename, clientFilename_param); + } + if (!clientMediaType_param) { + ZEPHIR_INIT_VAR(&clientMediaType); + } else { + zephir_get_strval(&clientMediaType, clientMediaType_param); + } - case PHQL_T_DOT: - phql_(phql_parser, PHQL_DOT, NULL, parser_status); - break; - case PHQL_T_COMMA: - phql_(phql_parser, PHQL_COMMA, NULL, parser_status); - break; - case PHQL_T_PARENTHESES_OPEN: - phql_(phql_parser, PHQL_PARENTHESES_OPEN, NULL, parser_status); - break; - case PHQL_T_PARENTHESES_CLOSE: - phql_(phql_parser, PHQL_PARENTHESES_CLOSE, NULL, parser_status); - break; + ZVAL_LONG(&_0, error); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkstream", NULL, 322, stream, &_0); + zephir_check_call_status(); + ZVAL_LONG(&_0, error); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkerror", NULL, 323, &_0); + zephir_check_call_status(); + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, size); + zephir_update_property_zval(this_ptr, ZEND_STRL("size"), &_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("clientFilename"), &clientFilename); + zephir_update_property_zval(this_ptr, ZEND_STRL("clientMediaType"), &clientMediaType); + ZEPHIR_MM_RESTORE(); +} - case PHQL_T_LIKE: - phql_(phql_parser, PHQL_LIKE, NULL, parser_status); - break; - case PHQL_T_ILIKE: - phql_(phql_parser, PHQL_ILIKE, NULL, parser_status); - break; - case PHQL_T_NOT: - phql_(phql_parser, PHQL_NOT, NULL, parser_status); - break; - case PHQL_T_BITWISE_AND: - phql_(phql_parser, PHQL_BITWISE_AND, NULL, parser_status); - break; - case PHQL_T_BITWISE_OR: - phql_(phql_parser, PHQL_BITWISE_OR, NULL, parser_status); - break; - case PHQL_T_BITWISE_NOT: - phql_(phql_parser, PHQL_BITWISE_NOT, NULL, parser_status); - break; - case PHQL_T_BITWISE_XOR: - phql_(phql_parser, PHQL_BITWISE_XOR, NULL, parser_status); - break; - case PHQL_T_AGAINST: - phql_(phql_parser, PHQL_AGAINST, NULL, parser_status); - break; - case PHQL_T_CASE: - phql_(phql_parser, PHQL_CASE, NULL, parser_status); - break; - case PHQL_T_WHEN: - phql_(phql_parser, PHQL_WHEN, NULL, parser_status); - break; - case PHQL_T_THEN: - phql_(phql_parser, PHQL_THEN, NULL, parser_status); - break; - case PHQL_T_END: - phql_(phql_parser, PHQL_END, NULL, parser_status); - break; - case PHQL_T_ELSE: - phql_(phql_parser, PHQL_ELSE, NULL, parser_status); - break; - case PHQL_T_FOR: - phql_(phql_parser, PHQL_FOR, NULL, parser_status); - break; - case PHQL_T_WITH: - phql_(phql_parser, PHQL_WITH, NULL, parser_status); - break; +static PHP_METHOD(Phalcon_Http_Message_UploadedFile, getStream) +{ + zval _0, _4, _5, _1$$3, _2$$3, _3$$3, _6$$5, _7$$5; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); - case PHQL_T_INTEGER: - if (parser_status->enable_literals) { - phql_parse_with_token(phql_parser, PHQL_T_INTEGER, PHQL_INTEGER, &token, parser_status); - } else { - ZVAL_STRING(*error_msg, "Literals are disabled in PHQL statements"); - parser_status->status = PHQL_PARSING_FAILED; - } - break; - case PHQL_T_DOUBLE: - if (parser_status->enable_literals) { - phql_parse_with_token(phql_parser, PHQL_T_DOUBLE, PHQL_DOUBLE, &token, parser_status); - } else { - ZVAL_STRING(*error_msg, "Literals are disabled in PHQL statements"); - parser_status->status = PHQL_PARSING_FAILED; - } - break; - case PHQL_T_STRING: - if (parser_status->enable_literals) { - phql_parse_with_token(phql_parser, PHQL_T_STRING, PHQL_STRING, &token, parser_status); - } else { - ZVAL_STRING(*error_msg, "Literals are disabled in PHQL statements"); - parser_status->status = PHQL_PARSING_FAILED; - } - break; - case PHQL_T_TRUE: - if (parser_status->enable_literals) { - phql_(phql_parser, PHQL_TRUE, NULL, parser_status); - } else { - ZVAL_STRING(*error_msg, "Literals are disabled in PHQL statements"); - parser_status->status = PHQL_PARSING_FAILED; - } - break; - case PHQL_T_FALSE: - if (parser_status->enable_literals) { - phql_(phql_parser, PHQL_FALSE, NULL, parser_status); - } else { - ZVAL_STRING(*error_msg, "Literals are disabled in PHQL statements"); - parser_status->status = PHQL_PARSING_FAILED; - } - break; - case PHQL_T_HINTEGER: - if (parser_status->enable_literals) { - phql_parse_with_token(phql_parser, PHQL_T_HINTEGER, PHQL_HINTEGER, &token, parser_status); - } else { - ZVAL_STRING(*error_msg, "Literals are disabled in PHQL statements"); - parser_status->status = PHQL_PARSING_FAILED; - } - break; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_7$$5); - case PHQL_T_NPLACEHOLDER: - phql_parse_with_token(phql_parser, PHQL_T_NPLACEHOLDER, PHQL_NPLACEHOLDER, &token, parser_status); - break; - case PHQL_T_SPLACEHOLDER: - phql_parse_with_token(phql_parser, PHQL_T_SPLACEHOLDER, PHQL_SPLACEHOLDER, &token, parser_status); - break; - case PHQL_T_BPLACEHOLDER: - phql_parse_with_token(phql_parser, PHQL_T_BPLACEHOLDER, PHQL_BPLACEHOLDER, &token, parser_status); - break; - case PHQL_T_FROM: - phql_(phql_parser, PHQL_FROM, NULL, parser_status); - break; - case PHQL_T_UPDATE: - phql_(phql_parser, PHQL_UPDATE, NULL, parser_status); - break; - case PHQL_T_SET: - phql_(phql_parser, PHQL_SET, NULL, parser_status); - break; - case PHQL_T_WHERE: - phql_(phql_parser, PHQL_WHERE, NULL, parser_status); - break; - case PHQL_T_DELETE: - phql_(phql_parser, PHQL_DELETE, NULL, parser_status); - break; - case PHQL_T_INSERT: - phql_(phql_parser, PHQL_INSERT, NULL, parser_status); - break; - case PHQL_T_INTO: - phql_(phql_parser, PHQL_INTO, NULL, parser_status); - break; - case PHQL_T_VALUES: - phql_(phql_parser, PHQL_VALUES, NULL, parser_status); - break; - case PHQL_T_SELECT: - phql_(phql_parser, PHQL_SELECT, NULL, parser_status); - break; - case PHQL_T_AS: - phql_(phql_parser, PHQL_AS, NULL, parser_status); - break; - case PHQL_T_ORDER: - phql_(phql_parser, PHQL_ORDER, NULL, parser_status); - break; - case PHQL_T_BY: - phql_(phql_parser, PHQL_BY, NULL, parser_status); - break; - case PHQL_T_LIMIT: - phql_(phql_parser, PHQL_LIMIT, NULL, parser_status); - break; - case PHQL_T_OFFSET: - phql_(phql_parser, PHQL_OFFSET, NULL, parser_status); - break; - case PHQL_T_GROUP: - phql_(phql_parser, PHQL_GROUP, NULL, parser_status); - break; - case PHQL_T_HAVING: - phql_(phql_parser, PHQL_HAVING, NULL, parser_status); - break; - case PHQL_T_ASC: - phql_(phql_parser, PHQL_ASC, NULL, parser_status); - break; - case PHQL_T_DESC: - phql_(phql_parser, PHQL_DESC, NULL, parser_status); - break; - case PHQL_T_IN: - phql_(phql_parser, PHQL_IN, NULL, parser_status); - break; - case PHQL_T_ON: - phql_(phql_parser, PHQL_ON, NULL, parser_status); - break; - case PHQL_T_INNER: - phql_(phql_parser, PHQL_INNER, NULL, parser_status); - break; - case PHQL_T_JOIN: - phql_(phql_parser, PHQL_JOIN, NULL, parser_status); - break; - case PHQL_T_LEFT: - phql_(phql_parser, PHQL_LEFT, NULL, parser_status); - break; - case PHQL_T_RIGHT: - phql_(phql_parser, PHQL_RIGHT, NULL, parser_status); - break; - case PHQL_T_CROSS: - phql_(phql_parser, PHQL_CROSS, NULL, parser_status); - break; - case PHQL_T_FULL: - phql_(phql_parser, PHQL_FULL, NULL, parser_status); - break; - case PHQL_T_OUTER: - phql_(phql_parser, PHQL_OUTER, NULL, parser_status); - break; - case PHQL_T_IS: - phql_(phql_parser, PHQL_IS, NULL, parser_status); - break; - case PHQL_T_NULL: - phql_(phql_parser, PHQL_NULL, NULL, parser_status); - break; - case PHQL_T_BETWEEN: - phql_(phql_parser, PHQL_BETWEEN, NULL, parser_status); - break; - case PHQL_T_BETWEEN_NOT: - phql_(phql_parser, PHQL_BETWEEN_NOT, NULL, parser_status); - break; - case PHQL_T_DISTINCT: - phql_(phql_parser, PHQL_DISTINCT, NULL, parser_status); - break; - case PHQL_T_ALL: - phql_(phql_parser, PHQL_ALL, NULL, parser_status); - break; - case PHQL_T_CAST: - phql_(phql_parser, PHQL_CAST, NULL, parser_status); - break; - case PHQL_T_CONVERT: - phql_(phql_parser, PHQL_CONVERT, NULL, parser_status); - break; - case PHQL_T_USING: - phql_(phql_parser, PHQL_USING, NULL, parser_status); - break; - case PHQL_T_EXISTS: - phql_(phql_parser, PHQL_EXISTS, NULL, parser_status); - break; + ZEPHIR_MM_GROW(); - default: - parser_status->status = PHQL_PARSING_FAILED; - error_length = sizeof(char) * 32; - error = emalloc(error_length); - snprintf(error, error_length, "Scanner: Unknown opcode %d", token.opcode); - error[error_length - 1] = '\0'; - ZVAL_STRING(*error_msg, error); - efree(error); - break; - } + zephir_read_property(&_0, this_ptr, ZEND_STRL("error"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(!ZEPHIR_IS_LONG_IDENTICAL(&_0, 0))) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_http_message_exception_invalidargumentexception_ce); + zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("error"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_2$$3, this_ptr, "geterrordescription", NULL, 324, &_3$$3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 40, &_2$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Http/Message/UploadedFile.zep", 159); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_read_property(&_4, this_ptr, ZEND_STRL("alreadyMoved"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(zephir_is_true(&_4))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "The file has already been moved to the target location", "phalcon/Http/Message/UploadedFile.zep", 165); + return; + } + ZEPHIR_OBS_VAR(&_5); + zephir_read_property(&_5, this_ptr, ZEND_STRL("stream"), PH_NOISY_CC); + if (UNEXPECTED(!(zephir_is_instance_of(&_5, SL("Psr\\Http\\Message\\StreamInterface"))))) { + ZEPHIR_INIT_VAR(&_6$$5); + object_init_ex(&_6$$5, phalcon_http_message_stream_ce); + zephir_read_property(&_7$$5, this_ptr, ZEND_STRL("fileName"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_6$$5, "__construct", NULL, 43, &_7$$5); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("stream"), &_6$$5); + } + RETURN_MM_MEMBER(getThis(), "stream"); +} - if (parser_status->status != PHQL_PARSING_OK) { - status = FAILURE; - break; +static PHP_METHOD(Phalcon_Http_Message_UploadedFile, moveTo) +{ + zend_bool _5, _6, _9, _13, _15, _16; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *targetPath, targetPath_sub, __$true, __$false, sapi, _0, _1, _7, _8, _10, _11, _12, _14, _2$$4, _3$$4, _4$$4, _17$$7, _18$$7; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&targetPath_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&sapi); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_17$$7); + ZVAL_UNDEF(&_18$$7); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(targetPath) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &targetPath); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("alreadyMoved"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(zephir_is_true(&_0))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "File has already been moved", "phalcon/Http/Message/UploadedFile.zep", 214); + return; + } + zephir_read_property(&_1, this_ptr, ZEND_STRL("error"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(!ZEPHIR_IS_LONG_IDENTICAL(&_1, 0))) { + ZEPHIR_INIT_VAR(&_2$$4); + object_init_ex(&_2$$4, phalcon_http_message_exception_invalidargumentexception_ce); + zephir_read_property(&_4$$4, this_ptr, ZEND_STRL("error"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_3$$4, this_ptr, "geterrordescription", NULL, 324, &_4$$4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_2$$4, "__construct", NULL, 40, &_3$$4); + zephir_check_call_status(); + zephir_throw_exception_debug(&_2$$4, "phalcon/Http/Message/UploadedFile.zep", 220); + ZEPHIR_MM_RESTORE(); + return; + } + _5 = Z_TYPE_P(targetPath) == IS_STRING; + if (_5) { + _5 = !(ZEPHIR_IS_EMPTY(targetPath)); + } + _6 = _5; + if (_6) { + ZEPHIR_CALL_FUNCTION(&_7, "dirname", NULL, 325, targetPath); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_8, "is_dir", NULL, 136, &_7); + zephir_check_call_status(); + _6 = zephir_is_true(&_8); + } + _9 = _6; + if (_9) { + ZEPHIR_CALL_FUNCTION(&_10, "dirname", NULL, 325, targetPath); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_11, "is_writable", NULL, 326, &_10); + zephir_check_call_status(); + _9 = zephir_is_true(&_11); + } + if (UNEXPECTED(!(_9))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Target folder is empty string, not a folder or not writable", "phalcon/Http/Message/UploadedFile.zep", 232); + return; + } + ZEPHIR_INIT_VAR(&_12); + ZVAL_STRING(&_12, "PHP_SAPI"); + ZEPHIR_CALL_FUNCTION(&sapi, "constant", NULL, 128, &_12); + zephir_check_call_status(); + _13 = ZEPHIR_IS_EMPTY(&sapi); + if (!(_13)) { + ZEPHIR_OBS_VAR(&_14); + zephir_read_property(&_14, this_ptr, ZEND_STRL("fileName"), PH_NOISY_CC); + _13 = !(ZEPHIR_IS_EMPTY(&_14)); + } + _15 = _13; + if (!(_15)) { + _15 = zephir_start_with_str(&sapi, SL("cli")); + } + _16 = _15; + if (!(_16)) { + _16 = zephir_start_with_str(&sapi, SL("phpdbg")); + } + if (UNEXPECTED(_16)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "storefile", NULL, 327, targetPath); + zephir_check_call_status(); + } else { + zephir_read_property(&_17$$7, this_ptr, ZEND_STRL("fileName"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&_18$$7, "move_uploaded_file", NULL, 328, &_17$$7, targetPath); + zephir_check_call_status(); + if (!ZEPHIR_IS_TRUE_IDENTICAL(&_18$$7)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "The file cannot be moved to the target folder", "phalcon/Http/Message/UploadedFile.zep", 246); + return; } + } + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("alreadyMoved"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("alreadyMoved"), &__$false); + } + ZEPHIR_MM_RESTORE(); +} - state->end = state->start; +static PHP_METHOD(Phalcon_Http_Message_UploadedFile, checkError) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_1 = NULL; + zval *error_param = NULL, _0, _2, _3, _4; + zend_long error, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(error) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &error_param); + error = zephir_get_intval(error_param); + + + ZVAL_LONG(&_2, error); + ZVAL_LONG(&_3, 0); + ZVAL_LONG(&_4, 8); + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_number_ce, "between", &_1, 290, &_2, &_3, &_4); + zephir_check_call_status(); + if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&_0))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid error. Must be one of the UPLOAD_ERR_* constants", "phalcon/Http/Message/UploadedFile.zep", 263); + return; } + ZEPHIR_INIT_ZVAL_NREF(_2); + ZVAL_LONG(&_2, error); + zephir_update_property_zval(this_ptr, ZEND_STRL("error"), &_2); + ZEPHIR_MM_RESTORE(); +} - if (status != FAILURE) { - switch (scanner_status) { +static PHP_METHOD(Phalcon_Http_Message_UploadedFile, checkStream) +{ + zend_bool _0$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long error, ZEPHIR_LAST_CALL_STATUS; + zval *stream, stream_sub, *error_param = NULL, _1$$5; + zval *this_ptr = getThis(); - case PHQL_SCANNER_RETCODE_ERR: - case PHQL_SCANNER_RETCODE_IMPOSSIBLE: - if (Z_TYPE_P(*error_msg) == IS_UNDEF) { - phql_scanner_error_msg(parser_status, error_msg); - } + ZVAL_UNDEF(&stream_sub); + ZVAL_UNDEF(&_1$$5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(stream) + Z_PARAM_LONG(error) + ZEND_PARSE_PARAMETERS_END(); +#endif - status = FAILURE; + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &stream, &error_param); + error = zephir_get_intval(error_param); + + + if (UNEXPECTED(0 == error)) { + do { + _0$$3 = 1; + if (_0$$3 == (Z_TYPE_P(stream) == IS_STRING)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("fileName"), stream); + break; + } + if (_0$$3 == (Z_TYPE_P(stream) == IS_RESOURCE)) { + ZEPHIR_INIT_VAR(&_1$$5); + object_init_ex(&_1$$5, phalcon_http_message_stream_ce); + ZEPHIR_CALL_METHOD(NULL, &_1$$5, "__construct", NULL, 43, stream); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("stream"), &_1$$5); + break; + } + if (_0$$3 == (zephir_is_instance_of(stream, SL("Psr\\Http\\Message\\StreamInterface")))) { + zephir_update_property_zval(this_ptr, ZEND_STRL("stream"), stream); break; + } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Invalid stream or file passed", "phalcon/Http/Message/UploadedFile.zep", 289); + return; + } while(0); - default: - phql_(phql_parser, 0, NULL, parser_status); - } } + ZEPHIR_MM_RESTORE(); +} - state->active_token = 0; - state->start = NULL; +static PHP_METHOD(Phalcon_Http_Message_UploadedFile, getErrorDescription) +{ + zval errors; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_0 = NULL; + zval *error_param = NULL, _1, _2; + zend_long error, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); - if (parser_status->status != PHQL_PARSING_OK) { - status = FAILURE; - if (parser_status->syntax_error) { - if (Z_TYPE_P(*error_msg) == IS_UNDEF) { - ZVAL_STRING(*error_msg, parser_status->syntax_error); - } + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&errors); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(error) + ZEND_PARSE_PARAMETERS_END(); +#endif - efree(parser_status->syntax_error); + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &error_param); + error = zephir_get_intval(error_param); + + + ZEPHIR_INIT_VAR(&errors); + zephir_create_array(&errors, 8, 0); + add_index_stringl(&errors, 0, SL("There is no error, the file uploaded with success.")); + add_index_stringl(&errors, 1, SL("The uploaded file exceeds the upload_max_filesize directive in php.ini.")); + add_index_stringl(&errors, 2, SL("The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.")); + add_index_stringl(&errors, 3, SL("The uploaded file was only partially uploaded.")); + add_index_stringl(&errors, 4, SL("No file was uploaded.")); + add_index_stringl(&errors, 6, SL("Missing a temporary folder.")); + add_index_stringl(&errors, 7, SL("Failed to write file to disk.")); + add_index_stringl(&errors, 8, SL("A PHP extension stopped the file upload.")); + ZVAL_LONG(&_1, error); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "Unknown upload error"); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_helper_arr_ce, "get", &_0, 16, &errors, &_1, &_2); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Http_Message_UploadedFile, storeFile) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_3 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *targetPath_param = NULL, data, handle, stream, _0, _1, _2$$4; + zval targetPath; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&targetPath); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&handle); + ZVAL_UNDEF(&stream); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(targetPath) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &targetPath_param); + zephir_get_strval(&targetPath, targetPath_param); + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "w+b"); + ZEPHIR_CALL_FUNCTION(&handle, "fopen", NULL, 89, &targetPath, &_0); + zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&handle))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Cannot write to file.", "phalcon/Http/Message/UploadedFile.zep", 330); + return; + } + ZEPHIR_CALL_METHOD(&stream, this_ptr, "getstream", NULL, 329); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &stream, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &stream, "eof", NULL, 0); + zephir_check_call_status(); + if (!(!ZEPHIR_IS_TRUE_IDENTICAL(&_1))) { + break; } + ZVAL_LONG(&_2$$4, 2048); + ZEPHIR_CALL_METHOD(&data, &stream, "read", &_3, 0, &_2$$4); + zephir_check_call_status(); + zephir_fwrite(NULL, &handle, &data); } + zephir_fclose(&handle); + ZEPHIR_MM_RESTORE(); +} - phql_Free(phql_parser, phql_wrapper_free); - if (status != FAILURE) { - if (parser_status->status == PHQL_PARSING_OK) { - if (Z_TYPE_P(&parser_status->ret) == IS_ARRAY) { - if (phalcon_globals_ptr->orm.cache_level >= 1) { - if (Z_TYPE_P(&parser_status->ret) == IS_ARRAY) { - add_assoc_long(&parser_status->ret, "id", phalcon_globals_ptr->orm.unique_cache_id++); - } - } - ZVAL_ZVAL(*result, &parser_status->ret, 1, 1); +#ifdef HAVE_CONFIG_H +#endif - if (cache_level >= 0) { - if (!phalcon_globals_ptr->orm.parser_cache) { - ALLOC_HASHTABLE(phalcon_globals_ptr->orm.parser_cache); - zend_hash_init(phalcon_globals_ptr->orm.parser_cache, 0, NULL, ZVAL_PTR_DTOR, 0); - } - Z_TRY_ADDREF_P(*result); - zend_hash_index_update( - phalcon_globals_ptr->orm.parser_cache, - phql_key, - *result - ); - } - } - } +ZEPHIR_INIT_CLASS(Phalcon_Http_Message_UploadedFileFactory) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Message, UploadedFileFactory, phalcon, http_message_uploadedfilefactory, phalcon_http_message_uploadedfilefactory_method_entry, ZEND_ACC_FINAL_CLASS); + + zend_class_implements(phalcon_http_message_uploadedfilefactory_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\uploadedfilefactoryinterface"))); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Http_Message_UploadedFileFactory, createUploadedFile) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval clientFilename, clientMediaType; + zend_long size, error, ZEPHIR_LAST_CALL_STATUS; + zval *stream, stream_sub, *size_param = NULL, *error_param = NULL, *clientFilename_param = NULL, *clientMediaType_param = NULL, _0, _1; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&stream_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&clientFilename); + ZVAL_UNDEF(&clientMediaType); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 5) + Z_PARAM_OBJECT_OF_CLASS(stream, zephir_get_internal_ce(SL("psr\\http\\message\\streaminterface"))) + Z_PARAM_OPTIONAL + Z_PARAM_LONG_OR_NULL(size, is_null_true) + Z_PARAM_LONG(error) + Z_PARAM_STR_OR_NULL(clientFilename) + Z_PARAM_STR_OR_NULL(clientMediaType) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 4, &stream, &size_param, &error_param, &clientFilename_param, &clientMediaType_param); + if (!size_param) { + size = 0; + } else { + size = zephir_get_intval(size_param); + } + if (!error_param) { + error = 0; + } else { + error = zephir_get_intval(error_param); + } + if (!clientFilename_param) { + ZEPHIR_INIT_VAR(&clientFilename); + } else { + zephir_get_strval(&clientFilename, clientFilename_param); + } + if (!clientMediaType_param) { + ZEPHIR_INIT_VAR(&clientMediaType); + } else { + zephir_get_strval(&clientMediaType, clientMediaType_param); } - efree(parser_status); - efree(state); - return status; + object_init_ex(return_value, phalcon_http_message_uploadedfile_ce); + ZVAL_LONG(&_0, size); + ZVAL_LONG(&_1, error); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 305, stream, &_0, &_1, &clientFilename, &clientMediaType); + zephir_check_call_status(); + RETURN_MM(); } -/* Generated by re2c 1.1.1 */ -/* scanner.re - * This file is part of the Phalcon Framework. - * - * (c) Phalcon Team - * - * For the full copyright and license information, please view the - * LICENSE.txt file that was distributed with this source code. - */ + #ifdef HAVE_CONFIG_H #endif -#define PPCTYPE unsigned char -#define PPCURSOR (s->start) -#define PPLIMIT (s->end) -#define PPMARKER q -static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { - char *q = PPCURSOR; - int status = PHQL_SCANNER_RETCODE_IMPOSSIBLE; +ZEPHIR_INIT_CLASS(Phalcon_Http_Message_Uri) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Message, Uri, phalcon, http_message_uri, phalcon_http_message_abstractcommon_ce, phalcon_http_message_uri_method_entry, ZEND_ACC_FINAL_CLASS); - - while (PHQL_SCANNER_RETCODE_IMPOSSIBLE == status) { + zend_declare_property_string(phalcon_http_message_uri_ce, SL("fragment"), "", ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_http_message_uri_ce, SL("host"), "", ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_http_message_uri_ce, SL("pass"), "", ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_http_message_uri_ce, SL("path"), "", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_message_uri_ce, SL("port"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_http_message_uri_ce, SL("query"), "", ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_http_message_uri_ce, SL("scheme"), "https", ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_http_message_uri_ce, SL("user"), "", ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_http_message_uri_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\uriinterface"))); + return SUCCESS; +} - - { - PPCTYPE ppch; - unsigned int ppaccept = 0; - ppch = *PPCURSOR; - switch (ppch) { - case 0x00: goto pp2; - case '\t': - case '\n': - case '\r': - case ' ': goto pp6; - case '!': goto pp9; - case '"': goto pp11; - case '%': goto pp12; - case '&': goto pp14; - case '\'': goto pp16; - case '(': goto pp17; - case ')': goto pp19; - case '*': goto pp21; - case '+': goto pp23; - case ',': goto pp25; - case '-': goto pp27; - case '.': goto pp29; - case '/': goto pp31; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto pp33; - case ':': goto pp36; - case '<': goto pp38; - case '=': goto pp40; - case '>': goto pp42; - case '?': goto pp44; - case '@': goto pp45; - case 'A': - case 'a': goto pp46; - case 'B': - case 'b': goto pp48; - case 'C': - case 'c': goto pp49; - case 'D': - case 'd': goto pp50; - case 'E': - case 'e': goto pp51; - case 'F': - case 'f': goto pp52; - case 'G': - case 'g': goto pp53; - case 'H': - case 'h': goto pp55; - case 'I': - case 'i': goto pp56; - case 'J': - case 'j': goto pp57; - case 'K': - case 'M': - case 'P': - case 'Q': - case 'X': - case 'Y': - case 'Z': - case '_': - case 'k': - case 'm': - case 'p': - case 'q': - case 'y': - case 'z': goto pp58; - case 'L': - case 'l': goto pp60; - case 'N': - case 'n': goto pp61; - case 'O': - case 'o': goto pp62; - case 'R': - case 'r': goto pp63; - case 'S': - case 's': goto pp64; - case 'T': - case 't': goto pp65; - case 'U': - case 'u': goto pp66; - case 'V': - case 'v': goto pp67; - case 'W': - case 'w': goto pp68; - case '[': goto pp69; - case '\\': goto pp70; - case '^': goto pp71; - case 'x': goto pp73; - case '{': goto pp75; - case '|': goto pp76; - case '~': goto pp78; - default: goto pp4; - } -pp2: - ++PPCURSOR; - { - status = PHQL_SCANNER_RETCODE_EOF; - break; +static PHP_METHOD(Phalcon_Http_Message_Uri, getFragment) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "fragment"); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, getHost) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "host"); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, getPath) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "path"); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, getPort) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "port"); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, getQuery) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "query"); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, getScheme) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "scheme"); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_3 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *uri_param = NULL, urlParts, _0, _1$$3, _2$$3, _4$$3, _5$$3, _6$$3, _7$$3, _8$$3, _9$$3, _10$$3, _11$$3, _12$$3, _13$$3, _14$$3, _15$$3, _16$$3, _17$$3, _18$$3, _19$$3, _20$$3; + zval uri; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&uri); + ZVAL_UNDEF(&urlParts); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_8$$3); + ZVAL_UNDEF(&_9$$3); + ZVAL_UNDEF(&_10$$3); + ZVAL_UNDEF(&_11$$3); + ZVAL_UNDEF(&_12$$3); + ZVAL_UNDEF(&_13$$3); + ZVAL_UNDEF(&_14$$3); + ZVAL_UNDEF(&_15$$3); + ZVAL_UNDEF(&_16$$3); + ZVAL_UNDEF(&_17$$3); + ZVAL_UNDEF(&_18$$3); + ZVAL_UNDEF(&_19$$3); + ZVAL_UNDEF(&_20$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR(uri) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &uri_param); + if (!uri_param) { + ZEPHIR_INIT_VAR(&uri); + ZVAL_STRING(&uri, ""); + } else { + if (UNEXPECTED(Z_TYPE_P(uri_param) != IS_STRING && Z_TYPE_P(uri_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'uri' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(uri_param) == IS_STRING)) { + zephir_get_strval(&uri, uri_param); + } else { + ZEPHIR_INIT_VAR(&uri); + } + } + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, ""); + if (UNEXPECTED(!ZEPHIR_IS_IDENTICAL(&_0, &uri))) { + ZEPHIR_CALL_FUNCTION(&urlParts, "parse_url", NULL, 118, &uri); + zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&urlParts))) { + ZEPHIR_INIT_NVAR(&urlParts); + array_init(&urlParts); } -pp4: - ++PPCURSOR; -pp5: - { - status = PHQL_SCANNER_RETCODE_ERR; - break; - } -pp6: - ppch = *++PPCURSOR; - switch (ppch) { - case '\t': - case '\n': - case '\r': - case ' ': goto pp6; - default: goto pp8; - } -pp8: - { - token->opcode = PHQL_T_IGNORE; - return 0; - } -pp9: - ppch = *++PPCURSOR; - switch (ppch) { - case '!': goto pp80; - case '=': goto pp82; - default: goto pp10; + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "fragment"); + ZEPHIR_INIT_VAR(&_5$$3); + ZVAL_STRING(&_5$$3, ""); + ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_helper_arr_ce, "get", &_3, 16, &urlParts, &_4$$3, &_5$$3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1$$3, this_ptr, "filterfragment", NULL, 330, &_2$$3); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("fragment"), &_1$$3); + ZEPHIR_INIT_NVAR(&_4$$3); + ZEPHIR_INIT_NVAR(&_5$$3); + ZVAL_STRING(&_5$$3, "host"); + ZEPHIR_INIT_VAR(&_7$$3); + ZVAL_STRING(&_7$$3, ""); + ZEPHIR_CALL_CE_STATIC(&_6$$3, phalcon_helper_arr_ce, "get", &_3, 16, &urlParts, &_5$$3, &_7$$3); + zephir_check_call_status(); + zephir_fast_strtolower(&_4$$3, &_6$$3); + zephir_update_property_zval(this_ptr, ZEND_STRL("host"), &_4$$3); + ZEPHIR_INIT_NVAR(&_5$$3); + ZVAL_STRING(&_5$$3, "pass"); + ZEPHIR_INIT_NVAR(&_7$$3); + ZVAL_STRING(&_7$$3, ""); + ZEPHIR_CALL_CE_STATIC(&_8$$3, phalcon_helper_arr_ce, "get", &_3, 16, &urlParts, &_5$$3, &_7$$3); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_9$$3, "rawurlencode", NULL, 229, &_8$$3); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("pass"), &_9$$3); + ZEPHIR_INIT_NVAR(&_5$$3); + ZVAL_STRING(&_5$$3, "path"); + ZEPHIR_INIT_NVAR(&_7$$3); + ZVAL_STRING(&_7$$3, ""); + ZEPHIR_CALL_CE_STATIC(&_11$$3, phalcon_helper_arr_ce, "get", &_3, 16, &urlParts, &_5$$3, &_7$$3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_10$$3, this_ptr, "filterpath", NULL, 331, &_11$$3); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("path"), &_10$$3); + ZEPHIR_INIT_NVAR(&_5$$3); + ZVAL_STRING(&_5$$3, "port"); + ZVAL_NULL(&_14$$3); + ZEPHIR_CALL_CE_STATIC(&_13$$3, phalcon_helper_arr_ce, "get", &_3, 16, &urlParts, &_5$$3, &_14$$3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_12$$3, this_ptr, "filterport", NULL, 332, &_13$$3); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("port"), &_12$$3); + ZEPHIR_INIT_NVAR(&_5$$3); + ZVAL_STRING(&_5$$3, "query"); + ZEPHIR_INIT_NVAR(&_7$$3); + ZVAL_STRING(&_7$$3, ""); + ZEPHIR_CALL_CE_STATIC(&_16$$3, phalcon_helper_arr_ce, "get", &_3, 16, &urlParts, &_5$$3, &_7$$3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_15$$3, this_ptr, "filterquery", NULL, 333, &_16$$3); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("query"), &_15$$3); + ZEPHIR_INIT_NVAR(&_5$$3); + ZVAL_STRING(&_5$$3, "scheme"); + ZEPHIR_INIT_NVAR(&_7$$3); + ZVAL_STRING(&_7$$3, ""); + ZEPHIR_CALL_CE_STATIC(&_18$$3, phalcon_helper_arr_ce, "get", &_3, 16, &urlParts, &_5$$3, &_7$$3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_17$$3, this_ptr, "filterscheme", NULL, 334, &_18$$3); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("scheme"), &_17$$3); + ZEPHIR_INIT_NVAR(&_5$$3); + ZVAL_STRING(&_5$$3, "user"); + ZEPHIR_INIT_NVAR(&_7$$3); + ZVAL_STRING(&_7$$3, ""); + ZEPHIR_CALL_CE_STATIC(&_19$$3, phalcon_helper_arr_ce, "get", &_3, 16, &urlParts, &_5$$3, &_7$$3); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_20$$3, "rawurlencode", NULL, 229, &_19$$3); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("user"), &_20$$3); + } + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, __toString) +{ + zend_bool _2, _3; + zval authority, path, uri, _0, _1, _4, _6, _7, _8, _9, _10, _11, _12, _13, _5$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&authority); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&uri); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_13); + ZVAL_UNDEF(&_5$$3); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&authority, this_ptr, "getauthority", NULL, 335); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("path"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&path, &_0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, ""); + _2 = !ZEPHIR_IS_IDENTICAL(&_1, &path); + if (_2) { + _2 = 1 != zephir_start_with_str(&path, SL("/")); + } + _3 = _2; + if (_3) { + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, ""); + _3 = !ZEPHIR_IS_IDENTICAL(&_4, &authority); + } + if (UNEXPECTED(_3)) { + ZEPHIR_INIT_VAR(&_5$$3); + ZEPHIR_CONCAT_SV(&_5$$3, "/", &path); + ZEPHIR_CPY_WRT(&path, &_5$$3); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("scheme"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_7); + ZVAL_STRING(&_7, ""); + ZEPHIR_INIT_VAR(&_8); + ZVAL_STRING(&_8, ":"); + ZEPHIR_CALL_METHOD(&_6, this_ptr, "checkvalue", NULL, 336, &_0, &_7, &_8); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_7); + ZVAL_STRING(&_7, "//"); + ZEPHIR_CALL_METHOD(&_9, this_ptr, "checkvalue", NULL, 336, &authority, &_7); + zephir_check_call_status(); + zephir_read_property(&_11, this_ptr, ZEND_STRL("query"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_7); + ZVAL_STRING(&_7, "?"); + ZEPHIR_CALL_METHOD(&_10, this_ptr, "checkvalue", NULL, 336, &_11, &_7); + zephir_check_call_status(); + zephir_read_property(&_13, this_ptr, ZEND_STRL("fragment"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_7); + ZVAL_STRING(&_7, "#"); + ZEPHIR_CALL_METHOD(&_12, this_ptr, "checkvalue", NULL, 336, &_13, &_7); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&uri); + ZEPHIR_CONCAT_VVVVV(&uri, &_6, &_9, &path, &_10, &_12); + RETURN_CCTOR(&uri); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, getAuthority) +{ + zval authority, userInfo, _0, _1, _2, _4, _3$$4, _5$$5, _6$$5; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&authority); + ZVAL_UNDEF(&userInfo); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_6$$5); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("host"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, ""); + if (UNEXPECTED(ZEPHIR_IS_IDENTICAL(&_1, &_0))) { + RETURN_MM_STRING(""); + } + ZEPHIR_OBS_VAR(&authority); + zephir_read_property(&authority, this_ptr, ZEND_STRL("host"), PH_NOISY_CC); + ZEPHIR_CALL_METHOD(&userInfo, this_ptr, "getuserinfo", NULL, 337); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, ""); + if (UNEXPECTED(!ZEPHIR_IS_IDENTICAL(&_2, &userInfo))) { + ZEPHIR_INIT_VAR(&_3$$4); + ZEPHIR_CONCAT_VSV(&_3$$4, &userInfo, "@", &authority); + ZEPHIR_CPY_WRT(&authority, &_3$$4); + } + zephir_read_property(&_4, this_ptr, ZEND_STRL("port"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(Z_TYPE_P(&_4) != IS_NULL)) { + zephir_read_property(&_5$$5, this_ptr, ZEND_STRL("port"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_6$$5); + ZEPHIR_CONCAT_SV(&_6$$5, ":", &_5$$5); + zephir_concat_self(&authority, &_6$$5); + } + RETURN_CCTOR(&authority); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, getUserInfo) +{ + zval _0, _1$$3, _2$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_OBS_VAR(&_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("pass"), PH_NOISY_CC); + if (UNEXPECTED(1 != ZEPHIR_IS_EMPTY(&_0))) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("user"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("pass"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CONCAT_VSV(return_value, &_1$$3, ":", &_2$$3); + RETURN_MM(); + } + RETURN_MM_MEMBER(getThis(), "user"); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, withFragment) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *fragment = NULL, fragment_sub, _0, _1; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&fragment_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(fragment) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &fragment); + ZEPHIR_SEPARATE_PARAM(fragment); + + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkstringparameter", NULL, 20, fragment); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "filterfragment", NULL, 330, fragment); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(fragment, &_0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "fragment"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, fragment, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, withPath) +{ + zend_bool _2; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *path = NULL, path_sub, _0, _1, _3, _4, _5, _6; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&path_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(path) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &path); + ZEPHIR_SEPARATE_PARAM(path); + + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkstringparameter", NULL, 20, path); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "?"); + ZEPHIR_INIT_VAR(&_1); + zephir_fast_strpos(&_1, path, &_0, 0 ); + _2 = !ZEPHIR_IS_FALSE_IDENTICAL(&_1); + if (!(_2)) { + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "#"); + ZEPHIR_INIT_VAR(&_4); + zephir_fast_strpos(&_4, path, &_3, 0 ); + _2 = !ZEPHIR_IS_FALSE_IDENTICAL(&_4); + } + if (UNEXPECTED(_2)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Path cannot contain a query string or fragment", "phalcon/Http/Message/Uri.zep", 290); + return; + } + ZEPHIR_CALL_METHOD(&_5, this_ptr, "filterpath", NULL, 331, path); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(path, &_5); + ZEPHIR_INIT_VAR(&_6); + ZVAL_STRING(&_6, "path"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, path, &_6); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, withPort) +{ + zend_bool _1$$3, _2$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *port = NULL, port_sub, _0$$3, _3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&port_sub); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(port) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &port); + ZEPHIR_SEPARATE_PARAM(port); + + + if (UNEXPECTED(Z_TYPE_P(port) != IS_NULL)) { + ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "filterport", NULL, 332, port); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(port, &_0$$3); + _1$$3 = Z_TYPE_P(port) != IS_NULL; + if (_1$$3) { + _2$$3 = ZEPHIR_LT_LONG(port, 1); + if (!(_2$$3)) { + _2$$3 = ZEPHIR_GT_LONG(port, 65535); } -pp10: - { - token->opcode = PHQL_T_NOT; - return 0; + _1$$3 = _2$$3; } -pp11: - ppaccept = 0; - ppch = *(PPMARKER = ++PPCURSOR); - if (ppch <= 0x00) goto pp5; - goto pp85; -pp12: - ++PPCURSOR; - { - token->opcode = PHQL_T_MOD; - return 0; + if (UNEXPECTED(_1$$3)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Method expects valid port (1-65535)", "phalcon/Http/Message/Uri.zep", 323); + return; } -pp14: - ppch = *++PPCURSOR; - switch (ppch) { - case '&': goto pp90; - default: goto pp15; + } + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "port"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, port, &_3); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, withQuery) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *query = NULL, query_sub, _0, _1, _2, _3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&query_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(query) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &query); + ZEPHIR_SEPARATE_PARAM(query); + + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkstringparameter", NULL, 20, query); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "#"); + ZEPHIR_INIT_VAR(&_1); + zephir_fast_strpos(&_1, query, &_0, 0 ); + if (UNEXPECTED(!ZEPHIR_IS_FALSE_IDENTICAL(&_1))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_http_message_exception_invalidargumentexception_ce, "Query cannot contain a query fragment", "phalcon/Http/Message/Uri.zep", 353); + return; + } + ZEPHIR_CALL_METHOD(&_2, this_ptr, "filterquery", NULL, 333, query); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(query, &_2); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "query"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "cloneinstance", NULL, 21, query, &_3); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, withScheme) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *scheme = NULL, scheme_sub, _0, _1; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&scheme_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(scheme) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &scheme); + ZEPHIR_SEPARATE_PARAM(scheme); + + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkstringparameter", NULL, 20, scheme); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "filterscheme", NULL, 334, scheme); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(scheme, &_0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "scheme"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "processwith", NULL, 338, scheme, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, withUserInfo) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *user = NULL, user_sub, *password = NULL, password_sub, __$null, newInstance, _0, _2, _1$$4; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&user_sub); + ZVAL_UNDEF(&password_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&newInstance); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(user) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(password) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &user, &password); + ZEPHIR_SEPARATE_PARAM(user); + if (!password) { + password = &password_sub; + ZEPHIR_CPY_WRT(password, &__$null); + } else { + ZEPHIR_SEPARATE_PARAM(password); + } + + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkstringparameter", NULL, 20, user); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(password) != IS_NULL)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "checkstringparameter", NULL, 20, user); + zephir_check_call_status(); + } + ZEPHIR_CALL_FUNCTION(&_0, "rawurlencode", NULL, 229, user); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(user, &_0); + if (UNEXPECTED(Z_TYPE_P(password) != IS_NULL)) { + ZEPHIR_CALL_FUNCTION(&_1$$4, "rawurlencode", NULL, 229, password); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(password, &_1$$4); + } + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "user"); + ZEPHIR_CALL_METHOD(&newInstance, this_ptr, "cloneinstance", NULL, 21, user, &_2); + zephir_check_call_status(); + zephir_update_property_zval(&newInstance, ZEND_STRL("pass"), password); + RETURN_CCTOR(&newInstance); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, withHost) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *host, host_sub, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&host_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(host) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &host); + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "host"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "processwith", NULL, 338, host, &_0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, checkValue) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *value_param = NULL, *prefix_param = NULL, *suffix_param = NULL, _0; + zval value, prefix, suffix, _1$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&prefix); + ZVAL_UNDEF(&suffix); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(value) + Z_PARAM_OPTIONAL + Z_PARAM_STR(prefix) + Z_PARAM_STR(suffix) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &value_param, &prefix_param, &suffix_param); + if (UNEXPECTED(Z_TYPE_P(value_param) != IS_STRING && Z_TYPE_P(value_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'value' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(value_param) == IS_STRING)) { + zephir_get_strval(&value, value_param); + } else { + ZEPHIR_INIT_VAR(&value); + } + if (!prefix_param) { + ZEPHIR_INIT_VAR(&prefix); + ZVAL_STRING(&prefix, ""); + } else { + if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { + zephir_get_strval(&prefix, prefix_param); + } else { + ZEPHIR_INIT_VAR(&prefix); + } + } + if (!suffix_param) { + ZEPHIR_INIT_VAR(&suffix); + ZVAL_STRING(&suffix, ""); + } else { + if (UNEXPECTED(Z_TYPE_P(suffix_param) != IS_STRING && Z_TYPE_P(suffix_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'suffix' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(suffix_param) == IS_STRING)) { + zephir_get_strval(&suffix, suffix_param); + } else { + ZEPHIR_INIT_VAR(&suffix); + } + } + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, ""); + if (UNEXPECTED(!ZEPHIR_IS_IDENTICAL(&_0, &value))) { + ZEPHIR_INIT_VAR(&_1$$3); + ZEPHIR_CONCAT_VVV(&_1$$3, &prefix, &value, &suffix); + ZEPHIR_CPY_WRT(&value, &_1$$3); + } + RETURN_CTOR(&value); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, filterFragment) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *fragment_param = NULL; + zval fragment; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&fragment); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(fragment) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &fragment_param); + if (UNEXPECTED(Z_TYPE_P(fragment_param) != IS_STRING && Z_TYPE_P(fragment_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'fragment' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(fragment_param) == IS_STRING)) { + zephir_get_strval(&fragment, fragment_param); + } else { + ZEPHIR_INIT_VAR(&fragment); + } + + + ZEPHIR_RETURN_CALL_FUNCTION("rawurlencode", NULL, 229, &fragment); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, filterPath) +{ + zend_string *_5; + zend_ulong _4; + zend_bool _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_7 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *path_param = NULL, element, key, parts, _0, *_2, _3, _9, _10, _6$$4, _8$$5; + zval path; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&element); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&parts); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_8$$5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(path) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &path_param); + if (UNEXPECTED(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 of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { + zephir_get_strval(&path, path_param); + } else { + ZEPHIR_INIT_VAR(&path); + } + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, ""); + _1 = ZEPHIR_IS_IDENTICAL(&_0, &path); + if (!(_1)) { + _1 = 1 != zephir_start_with_str(&path, SL("/")); + } + if (UNEXPECTED(_1)) { + RETURN_CTOR(&path); + } + ZEPHIR_INIT_VAR(&parts); + zephir_fast_explode_str(&parts, SL("/"), &path, LONG_MAX); + zephir_is_iterable(&parts, 1, "phalcon/Http/Message/Uri.zep", 524); + if (Z_TYPE_P(&parts) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&parts), _4, _5, _2) + { + ZEPHIR_INIT_NVAR(&key); + if (_5 != NULL) { + ZVAL_STR_COPY(&key, _5); + } else { + ZVAL_LONG(&key, _4); } -pp15: - { - token->opcode = PHQL_T_BITWISE_AND; - return 0; - } -pp16: - ppaccept = 0; - ppch = *(PPMARKER = ++PPCURSOR); - if (ppch <= 0x00) goto pp5; - goto pp93; -pp17: - ++PPCURSOR; - { - token->opcode = PHQL_T_PARENTHESES_OPEN; - return 0; - } -pp19: - ++PPCURSOR; - { - token->opcode = PHQL_T_PARENTHESES_CLOSE; - return 0; - } -pp21: - ++PPCURSOR; - { - token->opcode = PHQL_T_MUL; - return 0; - } -pp23: - ++PPCURSOR; - { - token->opcode = PHQL_T_ADD; - return 0; - } -pp25: - ++PPCURSOR; - { - token->opcode = PHQL_T_COMMA; - return 0; - } -pp27: - ++PPCURSOR; - { - token->opcode = PHQL_T_SUB; - return 0; - } -pp29: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto pp95; - default: goto pp30; + ZEPHIR_INIT_NVAR(&element); + ZVAL_COPY(&element, _2); + ZEPHIR_CALL_FUNCTION(&_6$$4, "rawurlencode", &_7, 229, &element); + zephir_check_call_status(); + zephir_array_update_zval(&parts, &key, &_6$$4, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &parts, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3, &parts, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3)) { + break; } -pp30: - { - token->opcode = PHQL_T_DOT; - return 0; + ZEPHIR_CALL_METHOD(&key, &parts, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&element, &parts, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_8$$5, "rawurlencode", &_7, 229, &element); + zephir_check_call_status(); + zephir_array_update_zval(&parts, &key, &_8$$5, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &parts, "next", NULL, 0); + zephir_check_call_status(); } -pp31: - ++PPCURSOR; - { - token->opcode = PHQL_T_DIV; - return 0; + } + ZEPHIR_INIT_NVAR(&element); + ZEPHIR_INIT_NVAR(&key); + ZEPHIR_INIT_NVAR(&path); + zephir_fast_join_str(&path, SL("/"), &parts); + ZEPHIR_INIT_VAR(&_9); + ZEPHIR_INIT_VAR(&_10); + ZVAL_STRING(&_10, "/"); + zephir_fast_trim(&_9, &path, &_10, ZEPHIR_TRIM_LEFT); + ZEPHIR_CONCAT_SV(return_value, "/", &_9); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, filterPort) +{ + zend_long _0$$3; + zval ports; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *port = NULL, port_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&port_sub); + ZVAL_UNDEF(&ports); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(port) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &port); + ZEPHIR_SEPARATE_PARAM(port); + + + ZEPHIR_INIT_VAR(&ports); + zephir_create_array(&ports, 2, 0); + add_index_long(&ports, 80, 1); + add_index_long(&ports, 443, 1); + if (UNEXPECTED(Z_TYPE_P(port) != IS_NULL)) { + _0$$3 = zephir_get_intval(port); + ZEPHIR_INIT_NVAR(port); + ZVAL_LONG(port, _0$$3); + if (UNEXPECTED(zephir_array_isset(&ports, port))) { + ZEPHIR_INIT_NVAR(port); + ZVAL_NULL(port); } -pp33: - ppch = *++PPCURSOR; - switch (ppch) { - case '.': goto pp95; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto pp33; - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'x': goto pp98; - default: goto pp35; + } + RETVAL_ZVAL(port, 1, 0); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, filterQuery) +{ + zend_string *_6; + zend_ulong _5; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_7 = NULL, *_11 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *query_param = NULL, index, part, parts, split, _0, _1, _2, *_3, _4, _8$$4, _12$$4, _13$$4, _14$$4, _15$$4, _16$$4, _9$$5, _10$$5, _17$$6, _20$$6, _21$$6, _22$$6, _23$$6, _24$$6, _18$$7, _19$$7; + zval query; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&query); + ZVAL_UNDEF(&index); + ZVAL_UNDEF(&part); + ZVAL_UNDEF(&parts); + ZVAL_UNDEF(&split); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_8$$4); + ZVAL_UNDEF(&_12$$4); + ZVAL_UNDEF(&_13$$4); + ZVAL_UNDEF(&_14$$4); + ZVAL_UNDEF(&_15$$4); + ZVAL_UNDEF(&_16$$4); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&_17$$6); + ZVAL_UNDEF(&_20$$6); + ZVAL_UNDEF(&_21$$6); + ZVAL_UNDEF(&_22$$6); + ZVAL_UNDEF(&_23$$6); + ZVAL_UNDEF(&_24$$6); + ZVAL_UNDEF(&_18$$7); + ZVAL_UNDEF(&_19$$7); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(query) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &query_param); + zephir_get_strval(&query, query_param); + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, ""); + if (UNEXPECTED(ZEPHIR_IS_IDENTICAL(&_0, &query))) { + RETURN_MM_STRING(""); + } + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "?"); + zephir_fast_trim(&_1, &query, &_2, ZEPHIR_TRIM_LEFT); + zephir_get_strval(&query, &_1); + ZEPHIR_INIT_VAR(&parts); + zephir_fast_explode_str(&parts, SL("&"), &query, LONG_MAX); + zephir_is_iterable(&parts, 1, "phalcon/Http/Message/Uri.zep", 597); + if (Z_TYPE_P(&parts) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&parts), _5, _6, _3) + { + ZEPHIR_INIT_NVAR(&index); + if (_6 != NULL) { + ZVAL_STR_COPY(&index, _6); + } else { + ZVAL_LONG(&index, _5); } -pp35: - { - token->opcode = PHQL_T_INTEGER; - token->value = estrndup(q, PPCURSOR - q); - token->len = PPCURSOR - q; - q = PPCURSOR; - return 0; - } -pp36: - ppaccept = 1; - ppch = *(PPMARKER = ++PPCURSOR); - switch (ppch) { - case '-': - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp100; - default: goto pp37; - } -pp37: - { - token->opcode = PHQL_T_COLON; - return 0; - } -pp38: - ppch = *++PPCURSOR; - switch (ppch) { - case '=': goto pp102; - case '>': goto pp104; - default: goto pp39; - } -pp39: - { - token->opcode = PHQL_T_LESS; - return 0; - } -pp40: - ++PPCURSOR; - { - token->opcode = PHQL_T_EQUALS; - return 0; - } -pp42: - ppch = *++PPCURSOR; - switch (ppch) { - case '=': goto pp106; - default: goto pp43; - } -pp43: - { - token->opcode = PHQL_T_GREATER; - return 0; - } -pp44: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto pp108; - default: goto pp5; - } -pp45: - ppch = *++PPCURSOR; - switch (ppch) { - case '>': goto pp111; - case '@': goto pp113; - default: goto pp5; + ZEPHIR_INIT_NVAR(&part); + ZVAL_COPY(&part, _3); + ZEPHIR_CALL_METHOD(&split, this_ptr, "splitqueryvalue", &_7, 339, &part); + zephir_check_call_status(); + zephir_array_fetch_long(&_8$$4, &split, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Message/Uri.zep", 589); + if (UNEXPECTED(Z_TYPE_P(&_8$$4) == IS_NULL)) { + zephir_array_fetch_long(&_9$$5, &split, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Message/Uri.zep", 590); + ZEPHIR_CALL_FUNCTION(&_10$$5, "rawurlencode", &_11, 229, &_9$$5); + zephir_check_call_status(); + zephir_array_update_zval(&parts, &index, &_10$$5, PH_COPY | PH_SEPARATE); + continue; } -pp46: - ppch = *++PPCURSOR; - switch (ppch) { - case 'G': - case 'g': goto pp115; - case 'L': - case 'l': goto pp116; - case 'N': - case 'n': goto pp117; - case 'S': - case 's': goto pp118; - default: goto pp74; + zephir_array_fetch_long(&_12$$4, &split, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Message/Uri.zep", 594); + ZEPHIR_CALL_FUNCTION(&_13$$4, "rawurlencode", &_11, 229, &_12$$4); + zephir_check_call_status(); + zephir_array_fetch_long(&_14$$4, &split, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Message/Uri.zep", 594); + ZEPHIR_CALL_FUNCTION(&_15$$4, "rawurlencode", &_11, 229, &_14$$4); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_16$$4); + ZEPHIR_CONCAT_VSV(&_16$$4, &_13$$4, "=", &_15$$4); + zephir_array_update_zval(&parts, &index, &_16$$4, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &parts, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_4, &parts, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_4)) { + break; } -pp47: - { - token->value = estrndup(q, PPCURSOR - q); - token->len = PPCURSOR - q; - if (token->len > 2 && !memcmp(token->value, "0x", 2)) { - token->opcode = PHQL_T_HINTEGER; - } else { - int i, alpha = 0; - for (i = 0; i < token->len; i++) { - unsigned char ch = token->value[i]; - if (!((ch >= '0') && (ch <= '9'))) { - alpha = 1; - break; - } - } - if (alpha) { - token->opcode = PHQL_T_IDENTIFIER; - } else { - token->opcode = PHQL_T_INTEGER; + ZEPHIR_CALL_METHOD(&index, &parts, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&part, &parts, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&split, this_ptr, "splitqueryvalue", &_7, 339, &part); + zephir_check_call_status(); + zephir_array_fetch_long(&_17$$6, &split, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Message/Uri.zep", 589); + if (UNEXPECTED(Z_TYPE_P(&_17$$6) == IS_NULL)) { + zephir_array_fetch_long(&_18$$7, &split, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Message/Uri.zep", 590); + ZEPHIR_CALL_FUNCTION(&_19$$7, "rawurlencode", &_11, 229, &_18$$7); + zephir_check_call_status(); + zephir_array_update_zval(&parts, &index, &_19$$7, PH_COPY | PH_SEPARATE); + continue; } - } - q = PPCURSOR; - return 0; + zephir_array_fetch_long(&_20$$6, &split, 0, PH_NOISY | PH_READONLY, "phalcon/Http/Message/Uri.zep", 594); + ZEPHIR_CALL_FUNCTION(&_21$$6, "rawurlencode", &_11, 229, &_20$$6); + zephir_check_call_status(); + zephir_array_fetch_long(&_22$$6, &split, 1, PH_NOISY | PH_READONLY, "phalcon/Http/Message/Uri.zep", 594); + ZEPHIR_CALL_FUNCTION(&_23$$6, "rawurlencode", &_11, 229, &_22$$6); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_24$$6); + ZEPHIR_CONCAT_VSV(&_24$$6, &_21$$6, "=", &_23$$6); + zephir_array_update_zval(&parts, &index, &_24$$6, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &parts, "next", NULL, 0); + zephir_check_call_status(); } -pp48: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp120; - case 'Y': - case 'y': goto pp121; - default: goto pp74; - } -pp49: - ppch = *++PPCURSOR; - switch (ppch) { - case 'A': - case 'a': goto pp123; - case 'O': - case 'o': goto pp124; - case 'R': - case 'r': goto pp125; - default: goto pp74; - } -pp50: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp126; - case 'I': - case 'i': goto pp127; - default: goto pp74; - } -pp51: - ppch = *++PPCURSOR; - switch (ppch) { - case 'L': - case 'l': goto pp128; - case 'N': - case 'n': goto pp129; - case 'X': goto pp130; - case 'x': goto pp131; - default: goto pp74; - } -pp52: - ppch = *++PPCURSOR; - switch (ppch) { - case 'A': - case 'a': goto pp132; - case 'O': - case 'o': goto pp133; - case 'R': - case 'r': goto pp134; - case 'U': - case 'u': goto pp135; - default: goto pp74; - } -pp53: - ppch = *++PPCURSOR; - switch (ppch) { - case 'R': - case 'r': goto pp136; - default: goto pp59; - } -pp54: - { - token->opcode = PHQL_T_IDENTIFIER; - if ((PPCURSOR - q) > 1) { - if (q[0] == '\\') { - token->value = estrndup(q + 1, PPCURSOR - q - 1); - token->len = PPCURSOR - q - 1; - } else { - token->value = estrndup(q, PPCURSOR - q); - token->len = PPCURSOR - q; - } - } else { - token->value = estrndup(q, PPCURSOR - q); - token->len = PPCURSOR - q; - } - q = PPCURSOR; - return 0; + } + ZEPHIR_INIT_NVAR(&part); + ZEPHIR_INIT_NVAR(&index); + zephir_fast_join_str(return_value, SL("&"), &parts); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, filterScheme) +{ + zval schemes; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *scheme_param = NULL, filtered, _0, _1, _2, _3, _4$$4, _5$$4, _6$$4, _7$$4; + zval scheme; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&scheme); + ZVAL_UNDEF(&filtered); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&schemes); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(scheme) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &scheme_param); + if (UNEXPECTED(Z_TYPE_P(scheme_param) != IS_STRING && Z_TYPE_P(scheme_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'scheme' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(scheme_param) == IS_STRING)) { + zephir_get_strval(&scheme, scheme_param); + } else { + ZEPHIR_INIT_VAR(&scheme); + } + + + ZEPHIR_CALL_FUNCTION(&_0, "mb_strtolower", NULL, 25, &scheme); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "#:(//)?$#"); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, ""); + ZEPHIR_CALL_FUNCTION(&filtered, "preg_replace", NULL, 50, &_1, &_2, &_0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&schemes); + zephir_create_array(&schemes, 2, 0); + add_assoc_long_ex(&schemes, SL("http"), 1); + add_assoc_long_ex(&schemes, SL("https"), 1); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, ""); + if (UNEXPECTED(ZEPHIR_IS_IDENTICAL(&_3, &filtered))) { + RETURN_MM_STRING(""); + } + if (UNEXPECTED(!(zephir_array_isset(&schemes, &filtered)))) { + ZEPHIR_INIT_VAR(&_4$$4); + object_init_ex(&_4$$4, phalcon_http_message_exception_invalidargumentexception_ce); + ZEPHIR_INIT_VAR(&_5$$4); + ZEPHIR_INIT_VAR(&_6$$4); + zephir_array_keys(&_6$$4, &schemes); + zephir_fast_join_str(&_5$$4, SL(", "), &_6$$4); + ZEPHIR_INIT_VAR(&_7$$4); + ZEPHIR_CONCAT_SVSSVS(&_7$$4, "Unsupported scheme [", &filtered, "]. ", "Scheme must be one of [", &_5$$4, "]"); + ZEPHIR_CALL_METHOD(NULL, &_4$$4, "__construct", NULL, 40, &_7$$4); + zephir_check_call_status(); + zephir_throw_exception_debug(&_4$$4, "phalcon/Http/Message/Uri.zep", 627); + ZEPHIR_MM_RESTORE(); + return; + } + RETURN_CTOR(&scheme); +} + +static PHP_METHOD(Phalcon_Http_Message_Uri, splitQueryValue) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *element_param = NULL, __$null, data; + zval element; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&element); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&data); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(element) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &element_param); + zephir_get_strval(&element, element_param); + + + ZEPHIR_INIT_VAR(&data); + zephir_fast_explode_str(&data, SL("="), &element, 2 ); + if (UNEXPECTED(!(zephir_array_isset_long(&data, 1)))) { + zephir_array_append(&data, &__$null, PH_SEPARATE, "phalcon/Http/Message/Uri.zep", 644); + } + RETURN_CCTOR(&data); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Message_UriFactory) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Message, UriFactory, phalcon, http_message_urifactory, phalcon_http_message_urifactory_method_entry, ZEND_ACC_FINAL_CLASS); + + zend_class_implements(phalcon_http_message_urifactory_ce, 1, zephir_get_internal_ce(SL("psr\\http\\message\\urifactoryinterface"))); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Http_Message_UriFactory, createUri) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *uri_param = NULL; + zval uri; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&uri); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR(uri) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &uri_param); + if (!uri_param) { + ZEPHIR_INIT_VAR(&uri); + ZVAL_STRING(&uri, ""); + } else { + if (UNEXPECTED(Z_TYPE_P(uri_param) != IS_STRING && Z_TYPE_P(uri_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'uri' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(uri_param) == IS_STRING)) { + zephir_get_strval(&uri, uri_param); + } else { + ZEPHIR_INIT_VAR(&uri); + } + } + + + object_init_ex(return_value, phalcon_http_message_uri_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 107, &uri); + zephir_check_call_status(); + RETURN_MM(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Message_Exception_InvalidArgumentException) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Message\\Exception, InvalidArgumentException, phalcon, http_message_exception_invalidargumentexception, spl_ce_InvalidArgumentException, NULL, 0); + + zend_class_implements(phalcon_http_message_exception_invalidargumentexception_ce, 1, zend_ce_throwable); + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Message_Stream_Input) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Message\\Stream, Input, phalcon, http_message_stream_input, phalcon_http_message_stream_ce, phalcon_http_message_stream_input_method_entry, 0); + + zend_declare_property_string(phalcon_http_message_stream_input_ce, SL("data"), "", ZEND_ACC_PRIVATE); + zend_declare_property_bool(phalcon_http_message_stream_input_ce, SL("eof"), 0, ZEND_ACC_PRIVATE); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Http_Message_Stream_Input, __construct) +{ + zval _1, _2; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "php://input"); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "rb"); + ZEPHIR_CALL_PARENT(NULL, phalcon_http_message_stream_input_ce, getThis(), "__construct", &_0, 0, &_1, &_2); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Http_Message_Stream_Input, __toString) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("eof"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(zephir_is_true(&_0))) { + RETURN_MM_MEMBER(getThis(), "data"); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "getcontents", NULL, 0); + zephir_check_call_status(); + RETURN_MM_MEMBER(getThis(), "data"); +} + +static PHP_METHOD(Phalcon_Http_Message_Stream_Input, getContents) +{ + zend_bool _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *length_param = NULL, __$true, __$false, data, _0, _1, _2, _4; + zend_long length, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(length) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &length_param); + if (!length_param) { + length = -1; + } else { + length = zephir_get_intval(length_param); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("eof"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(zephir_is_true(&_0))) { + RETURN_MM_MEMBER(getThis(), "data"); + } + zephir_read_property(&_1, this_ptr, ZEND_STRL("handle"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_2, length); + ZEPHIR_CALL_FUNCTION(&data, "stream_get_contents", NULL, 79, &_1, &_2); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &data); + _3 = -1 == length; + if (!(_3)) { + ZEPHIR_CALL_METHOD(&_4, this_ptr, "eof", NULL, 0); + zephir_check_call_status(); + _3 = zephir_is_true(&_4); + } + if (UNEXPECTED(_3)) { + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("eof"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("eof"), &__$false); } -pp55: - ppch = *++PPCURSOR; - switch (ppch) { - case 'A': - case 'a': goto pp137; - default: goto pp59; - } -pp56: - ppch = *++PPCURSOR; - switch (ppch) { - case 'L': - case 'l': goto pp138; - case 'N': - case 'n': goto pp139; - case 'S': - case 's': goto pp141; - default: goto pp59; - } -pp57: - ppch = *++PPCURSOR; - switch (ppch) { - case 'O': - case 'o': goto pp143; - default: goto pp59; - } -pp58: - ppch = *++PPCURSOR; -pp59: - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp54; - } -pp60: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp144; - case 'I': - case 'i': goto pp145; - default: goto pp59; - } -pp61: - ppch = *++PPCURSOR; - switch (ppch) { - case 'O': - case 'o': goto pp146; - case 'U': - case 'u': goto pp147; - default: goto pp59; - } -pp62: - ppch = *++PPCURSOR; - switch (ppch) { - case 'F': - case 'f': goto pp148; - case 'N': - case 'n': goto pp149; - case 'R': - case 'r': goto pp151; - case 'U': - case 'u': goto pp153; - default: goto pp59; - } -pp63: - ppch = *++PPCURSOR; - switch (ppch) { - case 'I': - case 'i': goto pp154; - default: goto pp59; - } -pp64: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp155; - default: goto pp59; - } -pp65: - ppch = *++PPCURSOR; - switch (ppch) { - case 'H': - case 'h': goto pp156; - case 'R': - case 'r': goto pp157; - default: goto pp59; - } -pp66: - ppch = *++PPCURSOR; - switch (ppch) { - case 'P': - case 'p': goto pp158; - case 'S': - case 's': goto pp159; - default: goto pp59; - } -pp67: - ppch = *++PPCURSOR; - switch (ppch) { - case 'A': - case 'a': goto pp160; - default: goto pp59; - } -pp68: - ppch = *++PPCURSOR; - switch (ppch) { - case 'H': - case 'h': goto pp161; - case 'I': - case 'i': goto pp162; - default: goto pp59; - } -pp69: - ppaccept = 0; - ppch = *(PPMARKER = ++PPCURSOR); - switch (ppch) { - case 0x00: - case 0x01: - case 0x02: - case 0x03: - case 0x04: - case 0x05: - case 0x06: - case 0x07: - case 0x08: - case '\t': - case '\n': - case '\v': - case '\f': - case '\r': - case 0x0E: - case 0x0F: - case 0x10: - case 0x11: - case 0x12: - case 0x13: - case 0x14: - case 0x15: - case 0x16: - case 0x17: - case 0x18: - case 0x19: - case 0x1A: - case 0x1B: - case 0x1C: - case 0x1D: - case 0x1E: - case 0x1F: - case '[': - case 0x7F: goto pp5; - default: goto pp164; - } -pp70: - ppch = *++PPCURSOR; - switch (ppch) { - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp5; - } -pp71: - ++PPCURSOR; - { - token->opcode = PHQL_T_BITWISE_XOR; - return 0; + } + RETURN_MM_MEMBER(getThis(), "data"); +} + +static PHP_METHOD(Phalcon_Http_Message_Stream_Input, isWritable) +{ + zval *this_ptr = getThis(); + + + + RETURN_BOOL(0); +} + +static PHP_METHOD(Phalcon_Http_Message_Stream_Input, read) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *length, length_sub, __$true, __$false, data, _1, _2; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&length_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(length) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &length); + + + ZEPHIR_CALL_PARENT(&data, phalcon_http_message_stream_input_ce, getThis(), "read", &_0, 0, length); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("eof"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&_1))) { + zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &data); + } + ZEPHIR_CALL_METHOD(&_2, this_ptr, "eof", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(zephir_is_true(&_2))) { + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("eof"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("eof"), &__$false); } -pp73: - ppch = *++PPCURSOR; -pp74: - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'x': goto pp73; - case ':': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'y': - case 'z': goto pp58; - default: goto pp47; - } -pp75: - ppaccept = 0; - ppch = *(PPMARKER = ++PPCURSOR); - switch (ppch) { - case '-': - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp169; - default: goto pp5; - } -pp76: - ppch = *++PPCURSOR; - switch (ppch) { - case '|': goto pp171; - default: goto pp77; - } -pp77: - { - token->opcode = PHQL_T_BITWISE_OR; - return 0; - } -pp78: - ++PPCURSOR; - { - token->opcode = PHQL_T_BITWISE_NOT; - return 0; - } -pp80: - ++PPCURSOR; - { - token->opcode = PHQL_T_TS_NEGATE; - return 0; + } + RETURN_CCTOR(&data); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Message_Stream_Memory) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Message\\Stream, Memory, phalcon, http_message_stream_memory, phalcon_http_message_stream_ce, phalcon_http_message_stream_memory_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Http_Message_Stream_Memory, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *mode = NULL, mode_sub, _1; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&mode_sub); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL(mode) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &mode); + if (!mode) { + mode = &mode_sub; + ZEPHIR_INIT_VAR(mode); + ZVAL_STRING(mode, "rb"); + } + + + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "php://memory"); + ZEPHIR_CALL_PARENT(NULL, phalcon_http_message_stream_memory_ce, getThis(), "__construct", &_0, 0, &_1, mode); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Message_Stream_Temp) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Message\\Stream, Temp, phalcon, http_message_stream_temp, phalcon_http_message_stream_ce, phalcon_http_message_stream_temp_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Http_Message_Stream_Temp, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *mode = NULL, mode_sub, _1; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&mode_sub); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL(mode) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &mode); + if (!mode) { + mode = &mode_sub; + ZEPHIR_INIT_VAR(mode); + ZVAL_STRING(mode, "rb"); + } + + + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "php://temp"); + ZEPHIR_CALL_PARENT(NULL, phalcon_http_message_stream_temp_ce, getThis(), "__construct", &_0, 0, &_1, mode); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Request_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Request, Exception, phalcon, http_request_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Request_File) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Request, File, phalcon, http_request_file, phalcon_http_request_file_method_entry, 0); + + zend_declare_property_null(phalcon_http_request_file_ce, SL("error"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_request_file_ce, SL("extension"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_request_file_ce, SL("key"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_request_file_ce, SL("name"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_request_file_ce, SL("realType"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_http_request_file_ce, SL("size"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_request_file_ce, SL("tmp"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_request_file_ce, SL("type"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_http_request_file_ce, 1, phalcon_http_request_fileinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Http_Request_File, getError) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "error"); +} + +static PHP_METHOD(Phalcon_Http_Request_File, getExtension) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "extension"); +} + +static PHP_METHOD(Phalcon_Http_Request_File, getKey) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "key"); +} + +static PHP_METHOD(Phalcon_Http_Request_File, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_5 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *file_param = NULL, *key = NULL, key_sub, __$null, name, _4, _6, _7, _8, _9, _0$$3, _1$$3, _2$$4, _3$$4; + zval file; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&file); + ZVAL_UNDEF(&key_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(file) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(key) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &file_param, &key); + ZEPHIR_OBS_COPY_OR_DUP(&file, file_param); + if (!key) { + key = &key_sub; + key = &__$null; + } + + + ZEPHIR_OBS_VAR(&name); + if (zephir_array_isset_string_fetch(&name, &file, SL("name"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); + ZEPHIR_INIT_VAR(&_0$$3); + ZVAL_STRING(&_0$$3, "PATHINFO_EXTENSION"); + ZEPHIR_CALL_FUNCTION(&_1$$3, "defined", NULL, 127, &_0$$3); + zephir_check_call_status(); + if (zephir_is_true(&_1$$3)) { + ZVAL_LONG(&_2$$4, 4); + ZEPHIR_CALL_FUNCTION(&_3$$4, "pathinfo", NULL, 109, &name, &_2$$4); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("extension"), &_3$$4); } -pp82: - ++PPCURSOR; - { - token->opcode = PHQL_T_NOTEQUALS; - return 0; + } + ZEPHIR_INIT_VAR(&_6); + ZVAL_STRING(&_6, "tmp_name"); + ZEPHIR_CALL_CE_STATIC(&_4, phalcon_helper_arr_ce, "get", &_5, 16, &file, &_6); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("tmp"), &_4); + ZEPHIR_INIT_NVAR(&_6); + ZVAL_STRING(&_6, "size"); + ZEPHIR_CALL_CE_STATIC(&_7, phalcon_helper_arr_ce, "get", &_5, 16, &file, &_6); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("size"), &_7); + ZEPHIR_INIT_NVAR(&_6); + ZVAL_STRING(&_6, "type"); + ZEPHIR_CALL_CE_STATIC(&_8, phalcon_helper_arr_ce, "get", &_5, 16, &file, &_6); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_8); + ZEPHIR_INIT_NVAR(&_6); + ZVAL_STRING(&_6, "error"); + ZEPHIR_CALL_CE_STATIC(&_9, phalcon_helper_arr_ce, "get", &_5, 16, &file, &_6); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("error"), &_9); + if (zephir_is_true(key)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("key"), key); + } + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Http_Request_File, getName) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "name"); +} + +static PHP_METHOD(Phalcon_Http_Request_File, getRealType) +{ + zval finfo, mime, _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&finfo); + ZVAL_UNDEF(&mime); + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + ZVAL_LONG(&_0, 16); + ZEPHIR_CALL_FUNCTION(&finfo, "finfo_open", NULL, 355, &_0); + zephir_check_call_status(); + if (Z_TYPE_P(&finfo) != IS_RESOURCE) { + RETURN_MM_STRING(""); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("tmp"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&mime, "finfo_file", NULL, 356, &finfo, &_0); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(NULL, "finfo_close", NULL, 357, &finfo); + zephir_check_call_status(); + RETURN_CCTOR(&mime); +} + +static PHP_METHOD(Phalcon_Http_Request_File, getSize) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "size"); +} + +static PHP_METHOD(Phalcon_Http_Request_File, getTempName) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "tmp"); +} + +static PHP_METHOD(Phalcon_Http_Request_File, getType) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "type"); +} + +static PHP_METHOD(Phalcon_Http_Request_File, isUploadedFile) +{ + zend_bool _0; + zval tmp, _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&tmp); + ZVAL_UNDEF(&_1); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&tmp, this_ptr, "gettempname", NULL, 0); + zephir_check_call_status(); + _0 = Z_TYPE_P(&tmp) == IS_STRING; + if (_0) { + ZEPHIR_CALL_FUNCTION(&_1, "is_uploaded_file", NULL, 19, &tmp); + zephir_check_call_status(); + _0 = zephir_is_true(&_1); + } + RETURN_MM_BOOL(_0); +} + +static PHP_METHOD(Phalcon_Http_Request_File, moveTo) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *destination_param = NULL, _0; + zval destination; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&destination); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(destination) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &destination_param); + if (UNEXPECTED(Z_TYPE_P(destination_param) != IS_STRING && Z_TYPE_P(destination_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'destination' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(destination_param) == IS_STRING)) { + zephir_get_strval(&destination, destination_param); + } else { + ZEPHIR_INIT_VAR(&destination); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("tmp"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_FUNCTION("move_uploaded_file", NULL, 328, &_0, &destination); + zephir_check_call_status(); + RETURN_MM(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Request_FileInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Http\\Request, FileInterface, phalcon, http_request_fileinterface, phalcon_http_request_fileinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Http_Request_FileInterface, getError); +ZEPHIR_DOC_METHOD(Phalcon_Http_Request_FileInterface, getName); +ZEPHIR_DOC_METHOD(Phalcon_Http_Request_FileInterface, getRealType); +ZEPHIR_DOC_METHOD(Phalcon_Http_Request_FileInterface, getSize); +ZEPHIR_DOC_METHOD(Phalcon_Http_Request_FileInterface, getTempName); +ZEPHIR_DOC_METHOD(Phalcon_Http_Request_FileInterface, getType); +ZEPHIR_DOC_METHOD(Phalcon_Http_Request_FileInterface, moveTo); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Cookie_CookieInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Http\\Cookie, CookieInterface, phalcon, http_cookie_cookieinterface, phalcon_http_cookie_cookieinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, delete); +ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, getDomain); +ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, getExpiration); +ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, getHttpOnly); +ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, getName); +ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, getOptions); +ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, getPath); +ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, getSecure); +ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, getValue); +ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, isUsingEncryption); +ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, send); +ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, setDomain); +ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, setExpiration); +ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, setHttpOnly); +ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, setOptions); +ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, setPath); +ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, setSecure); +ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, setValue); +ZEPHIR_DOC_METHOD(Phalcon_Http_Cookie_CookieInterface, useEncryption); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Cookie_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Cookie, Exception, phalcon, http_cookie_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Response_Cookies) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Response, Cookies, phalcon, http_response_cookies, phalcon_di_abstractinjectionaware_ce, phalcon_http_response_cookies_method_entry, 0); + + zend_declare_property_null(phalcon_http_response_cookies_ce, SL("cookies"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_http_response_cookies_ce, SL("isSent"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_http_response_cookies_ce, SL("registered"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_http_response_cookies_ce, SL("signKey"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_http_response_cookies_ce, SL("useEncryption"), 1, ZEND_ACC_PROTECTED); + phalcon_http_response_cookies_ce->create_object = zephir_init_properties_Phalcon_Http_Response_Cookies; + + zend_class_implements(phalcon_http_response_cookies_ce, 1, phalcon_http_response_cookiesinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Http_Response_Cookies, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval signKey; + zval *useEncryption_param = NULL, *signKey_param = NULL, __$true, __$false; + zend_bool useEncryption; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&signKey); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 2) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(useEncryption) + Z_PARAM_STR_OR_NULL(signKey) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 2, &useEncryption_param, &signKey_param); + if (!useEncryption_param) { + useEncryption = 1; + } else { + useEncryption = zephir_get_boolval(useEncryption_param); + } + if (!signKey_param) { + ZEPHIR_INIT_VAR(&signKey); + } else { + zephir_get_strval(&signKey, signKey_param); + } + + + if (useEncryption) { + zephir_update_property_zval(this_ptr, ZEND_STRL("useEncryption"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("useEncryption"), &__$false); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setsignkey", NULL, 0, &signKey); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Http_Response_Cookies, delete) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, cookie, _0; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&cookie); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + + + ZEPHIR_OBS_VAR(&cookie); + zephir_read_property(&_0, this_ptr, ZEND_STRL("cookies"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&cookie, &_0, &name, 0))) { + RETURN_MM_BOOL(0); + } + ZEPHIR_CALL_METHOD(NULL, &cookie, "delete", NULL, 0); + zephir_check_call_status(); + RETURN_MM_BOOL(1); +} + +static PHP_METHOD(Phalcon_Http_Response_Cookies, get) +{ + zval _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, container, encryption, cookie, _0, _1, _2, _4, _5, _6$$5; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&encryption); + ZVAL_UNDEF(&cookie); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + + + ZEPHIR_OBS_VAR(&cookie); + zephir_read_property(&_0, this_ptr, ZEND_STRL("cookies"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_fetch(&cookie, &_0, &name, 0)) { + RETURN_CCTOR(&cookie); + } + zephir_read_property(&_1, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_3); + zephir_create_array(&_3, 1, 0); + zephir_array_fast_append(&_3, &name); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "Phalcon\\Http\\Cookie"); + ZEPHIR_CALL_METHOD(&_2, &_1, "get", NULL, 0, &_4, &_3); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&cookie, &_2); + zephir_read_property(&_5, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_5); + if (Z_TYPE_P(&container) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(NULL, &cookie, "setdi", NULL, 0, &container); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&encryption); + zephir_read_property(&encryption, this_ptr, ZEND_STRL("useEncryption"), PH_NOISY_CC); + if (zephir_is_true(&encryption)) { + ZEPHIR_CALL_METHOD(NULL, &cookie, "useencryption", NULL, 0, &encryption); + zephir_check_call_status(); + zephir_read_property(&_6$$5, this_ptr, ZEND_STRL("signKey"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &cookie, "setsignkey", NULL, 0, &_6$$5); + zephir_check_call_status(); } -pp84: - ppch = *++PPCURSOR; -pp85: - switch (ppch) { - case 0x00: goto pp86; - case '"': goto pp87; - case '\\': goto pp89; - default: goto pp84; - } -pp86: - PPCURSOR = PPMARKER; - switch (ppaccept) { - case 0: goto pp5; - case 1: goto pp37; - case 2: goto pp209; - default: goto pp168; + } + RETURN_CCTOR(&cookie); +} + +static PHP_METHOD(Phalcon_Http_Response_Cookies, getCookies) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "cookies"); +} + +static PHP_METHOD(Phalcon_Http_Response_Cookies, has) +{ + zend_bool _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *name_param = NULL, _COOKIE, _0; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_COOKIE); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_get_global(&_COOKIE, SL("_COOKIE")); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("cookies"), PH_NOISY_CC | PH_READONLY); + _1 = zephir_array_isset(&_0, &name); + if (!(_1)) { + _1 = zephir_array_isset(&_COOKIE, &name); + } + RETURN_MM_BOOL(_1); +} + +static PHP_METHOD(Phalcon_Http_Response_Cookies, isSent) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "isSent"); +} + +static PHP_METHOD(Phalcon_Http_Response_Cookies, isUsingEncryption) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "useEncryption"); +} + +static PHP_METHOD(Phalcon_Http_Response_Cookies, reset) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("cookies"), &_0); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Http_Response_Cookies, send) +{ + zend_bool _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval __$true, __$false, cookie, _0, _2, _3, *_4, _5; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&cookie); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_FUNCTION(&_0, "headers_sent", NULL, 361); + zephir_check_call_status(); + _1 = ZEPHIR_IS_TRUE_IDENTICAL(&_0); + if (!(_1)) { + ZEPHIR_CALL_METHOD(&_2, this_ptr, "issent", NULL, 0); + zephir_check_call_status(); + _1 = ZEPHIR_IS_TRUE_IDENTICAL(&_2); + } + if (_1) { + RETURN_MM_BOOL(0); + } + zephir_read_property(&_3, this_ptr, ZEND_STRL("cookies"), PH_NOISY_CC | PH_READONLY); + zephir_is_iterable(&_3, 0, "phalcon/Http/Response/Cookies.zep", 225); + if (Z_TYPE_P(&_3) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_3), _4) + { + ZEPHIR_INIT_NVAR(&cookie); + ZVAL_COPY(&cookie, _4); + ZEPHIR_CALL_METHOD(NULL, &cookie, "send", NULL, 0); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_3, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_5, &_3, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_5)) { + break; } -pp87: - ++PPCURSOR; - { - token->opcode = PHQL_T_STRING; - token->value = estrndup(q, PPCURSOR - q - 1); - token->len = PPCURSOR - q - 1; - q = PPCURSOR; - return 0; + ZEPHIR_CALL_METHOD(&cookie, &_3, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &cookie, "send", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_3, "next", NULL, 0); + zephir_check_call_status(); } -pp89: - ppch = *++PPCURSOR; - switch (ppch) { - case '\n': goto pp86; - default: goto pp84; - } -pp90: - ++PPCURSOR; - { - token->opcode = PHQL_T_TS_AND; - return 0; + } + ZEPHIR_INIT_NVAR(&cookie); + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("isSent"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("isSent"), &__$false); + } + RETURN_MM_BOOL(1); +} + +static PHP_METHOD(Phalcon_Http_Response_Cookies, set) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_14 = NULL; + zval options, _3$$3; + zend_bool secure, httpOnly; + zend_long expire, ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, *value = NULL, value_sub, *expire_param = NULL, *path_param = NULL, *secure_param = NULL, *domain_param = NULL, *httpOnly_param = NULL, *options_param = NULL, __$true, __$false, __$null, cookie, encryption, container, response, _0, _10, _1$$3, _2$$3, _4$$3, _5$$3, _6$$4, _7$$5, _8$$5, _9$$5, _11$$6, _16$$6, _12$$7, _13$$7, _15$$7; + zval name, path, domain; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&domain); + ZVAL_UNDEF(&value_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&cookie); + ZVAL_UNDEF(&encryption); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&response); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$5); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_11$$6); + ZVAL_UNDEF(&_16$$6); + ZVAL_UNDEF(&_12$$7); + ZVAL_UNDEF(&_13$$7); + ZVAL_UNDEF(&_15$$7); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&_3$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 8) + Z_PARAM_STR(name) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(value) + Z_PARAM_LONG(expire) + Z_PARAM_STR(path) + Z_PARAM_BOOL_OR_NULL(secure, is_null_true) + Z_PARAM_STR_OR_NULL(domain) + Z_PARAM_BOOL_OR_NULL(httpOnly, is_null_true) + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 7, &name_param, &value, &expire_param, &path_param, &secure_param, &domain_param, &httpOnly_param, &options_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + if (!value) { + value = &value_sub; + value = &__$null; + } + if (!expire_param) { + expire = 0; + } else { + expire = zephir_get_intval(expire_param); + } + if (!path_param) { + ZEPHIR_INIT_VAR(&path); + ZVAL_STRING(&path, "/"); + } else { + zephir_get_strval(&path, path_param); + } + if (!secure_param) { + secure = 0; + } else { + secure = zephir_get_boolval(secure_param); + } + if (!domain_param) { + ZEPHIR_INIT_VAR(&domain); + } else { + if (UNEXPECTED(Z_TYPE_P(domain_param) != IS_STRING && Z_TYPE_P(domain_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'domain' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(domain_param) == IS_STRING)) { + zephir_get_strval(&domain, domain_param); + } else { + ZEPHIR_INIT_VAR(&domain); + } + } + if (!httpOnly_param) { + httpOnly = 0; + } else { + httpOnly = zephir_get_boolval(httpOnly_param); + } + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + zephir_get_arrval(&options, options_param); + } + + + ZEPHIR_OBS_VAR(&encryption); + zephir_read_property(&encryption, this_ptr, ZEND_STRL("useEncryption"), PH_NOISY_CC); + ZEPHIR_OBS_VAR(&cookie); + zephir_read_property(&_0, this_ptr, ZEND_STRL("cookies"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&cookie, &_0, &name, 0))) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_3$$3); + zephir_create_array(&_3$$3, 8, 0); + zephir_array_fast_append(&_3$$3, &name); + zephir_array_fast_append(&_3$$3, value); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_LONG(&_4$$3, expire); + zephir_array_fast_append(&_3$$3, &_4$$3); + zephir_array_fast_append(&_3$$3, &path); + ZEPHIR_INIT_NVAR(&_4$$3); + ZVAL_BOOL(&_4$$3, secure); + zephir_array_fast_append(&_3$$3, &_4$$3); + zephir_array_fast_append(&_3$$3, &domain); + ZEPHIR_INIT_NVAR(&_4$$3); + ZVAL_BOOL(&_4$$3, httpOnly); + zephir_array_fast_append(&_3$$3, &_4$$3); + zephir_array_fast_append(&_3$$3, &options); + ZEPHIR_INIT_NVAR(&_4$$3); + ZVAL_STRING(&_4$$3, "Phalcon\\Http\\Cookie"); + ZEPHIR_CALL_METHOD(&_2$$3, &_1$$3, "get", NULL, 0, &_4$$3, &_3$$3); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&cookie, &_2$$3); + zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &cookie, "setdi", NULL, 0, &_5$$3); + zephir_check_call_status(); + if (zephir_is_true(&encryption)) { + ZEPHIR_CALL_METHOD(NULL, &cookie, "useencryption", NULL, 0, &encryption); + zephir_check_call_status(); + zephir_read_property(&_6$$4, this_ptr, ZEND_STRL("signKey"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &cookie, "setsignkey", NULL, 0, &_6$$4); + zephir_check_call_status(); } -pp92: - ppch = *++PPCURSOR; -pp93: - switch (ppch) { - case 0x00: goto pp86; - case '\'': goto pp87; - case '\\': goto pp94; - default: goto pp92; - } -pp94: - ppch = *++PPCURSOR; - switch (ppch) { - case '\n': goto pp86; - default: goto pp92; - } -pp95: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto pp95; - default: goto pp97; - } -pp97: - { - token->opcode = PHQL_T_DOUBLE; - token->value = estrndup(q, PPCURSOR - q); - token->len = PPCURSOR - q; - q = PPCURSOR; - return 0; - } -pp98: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'x': goto pp98; - default: goto pp47; - } -pp100: - ppch = *++PPCURSOR; - switch (ppch) { - case '-': - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp100; - case ':': goto pp173; - default: goto pp86; - } -pp102: - ++PPCURSOR; - { - token->opcode = PHQL_T_LESSEQUAL; - return 0; - } -pp104: - ++PPCURSOR; - { - token->opcode = PHQL_T_NOTEQUALS; - return 0; + zephir_update_property_array(this_ptr, SL("cookies"), &name, &cookie); + } else { + ZEPHIR_CALL_METHOD(NULL, &cookie, "setvalue", NULL, 0, value); + zephir_check_call_status(); + ZVAL_LONG(&_7$$5, expire); + ZEPHIR_CALL_METHOD(NULL, &cookie, "setexpiration", NULL, 0, &_7$$5); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &cookie, "setpath", NULL, 0, &path); + zephir_check_call_status(); + if (secure) { + ZVAL_BOOL(&_7$$5, 1); + } else { + ZVAL_BOOL(&_7$$5, 0); } -pp106: - ++PPCURSOR; - { - token->opcode = PHQL_T_GREATEREQUAL; - return 0; + ZEPHIR_CALL_METHOD(NULL, &cookie, "setsecure", NULL, 0, &_7$$5); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &cookie, "setdomain", NULL, 0, &domain); + zephir_check_call_status(); + if (httpOnly) { + ZVAL_BOOL(&_8$$5, 1); + } else { + ZVAL_BOOL(&_8$$5, 0); } -pp108: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto pp108; - default: goto pp110; - } -pp110: - { - token->opcode = PHQL_T_NPLACEHOLDER; - token->value = estrndup(q, PPCURSOR - q); - token->len = PPCURSOR - q; - q = PPCURSOR; - return 0; + ZEPHIR_CALL_METHOD(NULL, &cookie, "sethttponly", NULL, 0, &_8$$5); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &cookie, "setoptions", NULL, 0, &options); + zephir_check_call_status(); + zephir_read_property(&_9$$5, this_ptr, ZEND_STRL("signKey"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &cookie, "setsignkey", NULL, 0, &_9$$5); + zephir_check_call_status(); + } + zephir_read_property(&_10, this_ptr, ZEND_STRL("registered"), PH_NOISY_CC | PH_READONLY); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_10)) { + zephir_read_property(&_11$$6, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_11$$6); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_12$$7); + object_init_ex(&_12$$7, phalcon_http_cookie_exception_ce); + ZEPHIR_INIT_VAR(&_15$$7); + ZVAL_STRING(&_15$$7, "the 'response' service"); + ZEPHIR_CALL_CE_STATIC(&_13$$7, phalcon_http_cookie_exception_ce, "containerservicenotfound", &_14, 0, &_15$$7); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_12$$7, "__construct", NULL, 8, &_13$$7); + zephir_check_call_status(); + zephir_throw_exception_debug(&_12$$7, "phalcon/Http/Response/Cookies.zep", 313); + ZEPHIR_MM_RESTORE(); + return; } -pp111: - ++PPCURSOR; - { - token->opcode = PHQL_T_TS_CONTAINS_ANOTHER; - return 0; + ZEPHIR_INIT_VAR(&_16$$6); + ZVAL_STRING(&_16$$6, "response"); + ZEPHIR_CALL_METHOD(&response, &container, "getshared", NULL, 0, &_16$$6); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &response, "setcookies", NULL, 0, this_ptr); + zephir_check_call_status(); + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("registered"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("registered"), &__$false); } -pp113: - ++PPCURSOR; - { - token->opcode = PHQL_T_TS_MATCHES; - return 0; + } + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Http_Response_Cookies, setSignKey) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *signKey_param = NULL; + zval signKey; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&signKey); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(signKey) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &signKey_param); + if (!signKey_param) { + ZEPHIR_INIT_VAR(&signKey); + } else { + zephir_get_strval(&signKey, signKey_param); + } + + + zephir_update_property_zval(this_ptr, ZEND_STRL("signKey"), &signKey); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Http_Response_Cookies, useEncryption) +{ + zval *useEncryption_param = NULL, __$true, __$false; + zend_bool useEncryption; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(useEncryption) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &useEncryption_param); + useEncryption = zephir_get_boolval(useEncryption_param); + + + if (useEncryption) { + zephir_update_property_zval(this_ptr, ZEND_STRL("useEncryption"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("useEncryption"), &__$false); + } + RETURN_THISW(); +} + +zend_object *zephir_init_properties_Phalcon_Http_Response_Cookies(zend_class_entry *class_type) +{ + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("cookies"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("cookies"), &_1$$3); } -pp115: - ppch = *++PPCURSOR; - switch (ppch) { - case 'A': - case 'a': goto pp175; - default: goto pp59; - } -pp116: - ppch = *++PPCURSOR; - switch (ppch) { - case 'L': - case 'l': goto pp176; - default: goto pp59; + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Response_CookiesInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Http\\Response, CookiesInterface, phalcon, http_response_cookiesinterface, phalcon_http_response_cookiesinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Http_Response_CookiesInterface, delete); +ZEPHIR_DOC_METHOD(Phalcon_Http_Response_CookiesInterface, get); +ZEPHIR_DOC_METHOD(Phalcon_Http_Response_CookiesInterface, has); +ZEPHIR_DOC_METHOD(Phalcon_Http_Response_CookiesInterface, isUsingEncryption); +ZEPHIR_DOC_METHOD(Phalcon_Http_Response_CookiesInterface, reset); +ZEPHIR_DOC_METHOD(Phalcon_Http_Response_CookiesInterface, send); +ZEPHIR_DOC_METHOD(Phalcon_Http_Response_CookiesInterface, set); +ZEPHIR_DOC_METHOD(Phalcon_Http_Response_CookiesInterface, useEncryption); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Response_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Http\\Response, Exception, phalcon, http_response_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Response_Headers) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Response, Headers, phalcon, http_response_headers, phalcon_http_response_headers_method_entry, 0); + + zend_declare_property_null(phalcon_http_response_headers_ce, SL("headers"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_http_response_headers_ce, SL("isSent"), 0, ZEND_ACC_PROTECTED); + phalcon_http_response_headers_ce->create_object = zephir_init_properties_Phalcon_Http_Response_Headers; + + zend_class_implements(phalcon_http_response_headers_ce, 1, phalcon_http_response_headersinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Http_Response_Headers, get) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *name_param = NULL, headers, headerValue, _0; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&headers); + ZVAL_UNDEF(&headerValue); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + zephir_get_strval(&name, name_param); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&headers, &_0); + if (!(zephir_array_isset_fetch(&headerValue, &headers, &name, 1))) { + RETURN_MM_BOOL(0); + } + RETURN_CTOR(&headerValue); +} + +static PHP_METHOD(Phalcon_Http_Response_Headers, has) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *name_param = NULL, _0; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + zephir_get_strval(&name, name_param); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); + RETURN_MM_BOOL(zephir_array_isset(&_0, &name)); +} + +static PHP_METHOD(Phalcon_Http_Response_Headers, isSent) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "isSent"); +} + +static PHP_METHOD(Phalcon_Http_Response_Headers, remove) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *header_param = NULL, headers, _0; + zval header; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&header); + ZVAL_UNDEF(&headers); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(header) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &header_param); + zephir_get_strval(&header, header_param); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&headers, &_0); + zephir_array_unset(&headers, &header, PH_SEPARATE); + zephir_update_property_zval(this_ptr, ZEND_STRL("headers"), &headers); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Http_Response_Headers, reset) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("headers"), &_0); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Http_Response_Headers, send) +{ + zend_string *_7; + zend_ulong _6; + zend_bool _1, _10$$6, _16$$11; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_9 = NULL; + zval __$true, __$false, header, value, _0, _2, _3, *_4, _5, _8$$5, _11$$6, _12$$6, _13$$6, _14$$8, _15$$10, _17$$11, _18$$11, _19$$11, _20$$13; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&header); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_11$$6); + ZVAL_UNDEF(&_12$$6); + ZVAL_UNDEF(&_13$$6); + ZVAL_UNDEF(&_14$$8); + ZVAL_UNDEF(&_15$$10); + ZVAL_UNDEF(&_17$$11); + ZVAL_UNDEF(&_18$$11); + ZVAL_UNDEF(&_19$$11); + ZVAL_UNDEF(&_20$$13); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_FUNCTION(&_0, "headers_sent", NULL, 361); + zephir_check_call_status(); + _1 = ZEPHIR_IS_TRUE_IDENTICAL(&_0); + if (!(_1)) { + ZEPHIR_CALL_METHOD(&_2, this_ptr, "issent", NULL, 0); + zephir_check_call_status(); + _1 = ZEPHIR_IS_TRUE_IDENTICAL(&_2); + } + if (_1) { + RETURN_MM_BOOL(0); + } + zephir_read_property(&_3, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); + zephir_is_iterable(&_3, 0, "phalcon/Http/Response/Headers.zep", 116); + if (Z_TYPE_P(&_3) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_3), _6, _7, _4) + { + ZEPHIR_INIT_NVAR(&header); + if (_7 != NULL) { + ZVAL_STR_COPY(&header, _7); + } else { + ZVAL_LONG(&header, _6); } -pp117: - ppch = *++PPCURSOR; - switch (ppch) { - case 'D': - case 'd': goto pp178; - default: goto pp59; + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _4); + if (Z_TYPE_P(&value) != IS_NULL) { + ZEPHIR_INIT_NVAR(&_8$$5); + ZEPHIR_CONCAT_VSV(&_8$$5, &header, ": ", &value); + ZEPHIR_CALL_FUNCTION(NULL, "header", &_9, 362, &_8$$5, &__$true); + zephir_check_call_status(); + } else { + _10$$6 = zephir_memnstr_str(&header, SL(":"), "phalcon/Http/Response/Headers.zep", 102); + if (!(_10$$6)) { + ZVAL_LONG(&_11$$6, 0); + ZVAL_LONG(&_12$$6, 5); + ZEPHIR_INIT_NVAR(&_13$$6); + zephir_substr(&_13$$6, &header, 0 , 5 , 0); + _10$$6 = ZEPHIR_IS_STRING(&_13$$6, "HTTP/"); + } + if (_10$$6) { + ZEPHIR_CALL_FUNCTION(NULL, "header", &_9, 362, &header, &__$true); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&_14$$8); + ZEPHIR_CONCAT_VS(&_14$$8, &header, ": "); + ZEPHIR_CALL_FUNCTION(NULL, "header", &_9, 362, &_14$$8, &__$true); + zephir_check_call_status(); + } } -pp118: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - case 'C': - case 'c': goto pp180; - default: goto pp119; + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_3, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_5, &_3, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_5)) { + break; } -pp119: - { - token->opcode = PHQL_T_AS; - return 0; + ZEPHIR_CALL_METHOD(&header, &_3, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &_3, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&value) != IS_NULL) { + ZEPHIR_INIT_NVAR(&_15$$10); + ZEPHIR_CONCAT_VSV(&_15$$10, &header, ": ", &value); + ZEPHIR_CALL_FUNCTION(NULL, "header", &_9, 362, &_15$$10, &__$true); + zephir_check_call_status(); + } else { + _16$$11 = zephir_memnstr_str(&header, SL(":"), "phalcon/Http/Response/Headers.zep", 102); + if (!(_16$$11)) { + ZVAL_LONG(&_17$$11, 0); + ZVAL_LONG(&_18$$11, 5); + ZEPHIR_INIT_NVAR(&_19$$11); + zephir_substr(&_19$$11, &header, 0 , 5 , 0); + _16$$11 = ZEPHIR_IS_STRING(&_19$$11, "HTTP/"); + } + if (_16$$11) { + ZEPHIR_CALL_FUNCTION(NULL, "header", &_9, 362, &header, &__$true); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&_20$$13); + ZEPHIR_CONCAT_VS(&_20$$13, &header, ": "); + ZEPHIR_CALL_FUNCTION(NULL, "header", &_9, 362, &_20$$13, &__$true); + zephir_check_call_status(); + } + } + ZEPHIR_CALL_METHOD(NULL, &_3, "next", NULL, 0); + zephir_check_call_status(); } -pp120: - ppch = *++PPCURSOR; - switch (ppch) { - case 'T': - case 't': goto pp182; - default: goto pp74; - } -pp121: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp122; - } -pp122: - { - token->opcode = PHQL_T_BY; - return 0; + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&header); + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("isSent"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("isSent"), &__$false); + } + RETURN_MM_BOOL(1); +} + +static PHP_METHOD(Phalcon_Http_Response_Headers, set) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *name_param = NULL, *value_param = NULL; + zval name, value; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&value); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(name) + Z_PARAM_STR(value) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &name_param, &value_param); + zephir_get_strval(&name, name_param); + zephir_get_strval(&value, value_param); + + + zephir_update_property_array(this_ptr, SL("headers"), &name, &value); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Http_Response_Headers, setRaw) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *header_param = NULL, __$null; + zval header; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&header); + ZVAL_NULL(&__$null); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(header) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &header_param); + zephir_get_strval(&header, header_param); + + + zephir_update_property_array(this_ptr, SL("headers"), &header, &__$null); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Http_Response_Headers, toArray) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "headers"); +} + +zend_object *zephir_init_properties_Phalcon_Http_Response_Headers(zend_class_entry *class_type) +{ + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("headers"), &_1$$3); } -pp123: - ppch = *++PPCURSOR; - switch (ppch) { - case 'S': - case 's': goto pp183; - default: goto pp74; - } -pp124: - ppch = *++PPCURSOR; - switch (ppch) { - case 'N': - case 'n': goto pp184; - default: goto pp59; - } -pp125: - ppch = *++PPCURSOR; - switch (ppch) { - case 'O': - case 'o': goto pp185; - default: goto pp59; - } -pp126: - ppch = *++PPCURSOR; - switch (ppch) { - case 'L': - case 'l': goto pp186; - case 'S': - case 's': goto pp187; - default: goto pp74; - } -pp127: - ppch = *++PPCURSOR; - switch (ppch) { - case 'S': - case 's': goto pp188; - default: goto pp59; - } -pp128: - ppch = *++PPCURSOR; - switch (ppch) { - case 'S': - case 's': goto pp189; - default: goto pp59; - } -pp129: - ppch = *++PPCURSOR; - switch (ppch) { - case 'D': - case 'd': goto pp190; - default: goto pp59; - } -pp130: - ppch = *++PPCURSOR; - switch (ppch) { - case 'I': - case 'i': goto pp192; - default: goto pp59; - } -pp131: - ppch = *++PPCURSOR; - switch (ppch) { - case 'I': - case 'i': goto pp192; - default: goto pp74; - } -pp132: - ppch = *++PPCURSOR; - switch (ppch) { - case 'L': - case 'l': goto pp193; - default: goto pp74; - } -pp133: - ppch = *++PPCURSOR; - switch (ppch) { - case 'R': - case 'r': goto pp194; - default: goto pp59; - } -pp134: - ppch = *++PPCURSOR; - switch (ppch) { - case 'O': - case 'o': goto pp196; - default: goto pp59; - } -pp135: - ppch = *++PPCURSOR; - switch (ppch) { - case 'L': - case 'l': goto pp197; - default: goto pp59; - } -pp136: - ppch = *++PPCURSOR; - switch (ppch) { - case 'O': - case 'o': goto pp198; - default: goto pp59; - } -pp137: - ppch = *++PPCURSOR; - switch (ppch) { - case 'V': - case 'v': goto pp199; - default: goto pp59; - } -pp138: - ppch = *++PPCURSOR; - switch (ppch) { - case 'I': - case 'i': goto pp200; - default: goto pp59; - } -pp139: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'o': - case 'p': - case 'q': - case 'r': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - case 'N': - case 'n': goto pp201; - case 'S': - case 's': goto pp202; - case 'T': - case 't': goto pp203; - default: goto pp140; - } -pp140: - { - token->opcode = PHQL_T_IN; - return 0; - } -pp141: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp142; + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Response_HeadersInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Http\\Response, HeadersInterface, phalcon, http_response_headersinterface, phalcon_http_response_headersinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Http_Response_HeadersInterface, get); +ZEPHIR_DOC_METHOD(Phalcon_Http_Response_HeadersInterface, has); +ZEPHIR_DOC_METHOD(Phalcon_Http_Response_HeadersInterface, reset); +ZEPHIR_DOC_METHOD(Phalcon_Http_Response_HeadersInterface, send); +ZEPHIR_DOC_METHOD(Phalcon_Http_Response_HeadersInterface, set); +ZEPHIR_DOC_METHOD(Phalcon_Http_Response_HeadersInterface, setRaw); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Server_AbstractMiddleware) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Server, AbstractMiddleware, phalcon, http_server_abstractmiddleware, phalcon_http_server_abstractmiddleware_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_class_implements(phalcon_http_server_abstractmiddleware_ce, 1, zephir_get_internal_ce(SL("psr\\http\\server\\middlewareinterface"))); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Http_Server_AbstractMiddleware, process) +{ +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Http_Server_AbstractRequestHandler) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Http\\Server, AbstractRequestHandler, phalcon, http_server_abstractrequesthandler, phalcon_http_server_abstractrequesthandler_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_class_implements(phalcon_http_server_abstractrequesthandler_ce, 1, zephir_get_internal_ce(SL("psr\\http\\server\\requesthandlerinterface"))); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Http_Server_AbstractRequestHandler, handle) +{ +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Dispatcher_AbstractDispatcher) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Dispatcher, AbstractDispatcher, phalcon, dispatcher_abstractdispatcher, phalcon_di_abstractinjectionaware_ce, phalcon_dispatcher_abstractdispatcher_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("activeHandler"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("activeMethodMap"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("actionName"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_dispatcher_abstractdispatcher_ce, SL("actionSuffix"), "Action", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("camelCaseMap"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_dispatcher_abstractdispatcher_ce, SL("defaultAction"), "", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("defaultNamespace"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("defaultHandler"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("handlerHashes"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("handlerName"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_dispatcher_abstractdispatcher_ce, SL("handlerSuffix"), "", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_dispatcher_abstractdispatcher_ce, SL("finished"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_dispatcher_abstractdispatcher_ce, SL("forwarded"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_dispatcher_abstractdispatcher_ce, SL("isControllerInitialize"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("lastHandler"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("modelBinder"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_dispatcher_abstractdispatcher_ce, SL("modelBinding"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("moduleName"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("namespaceName"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("params"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("previousActionName"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("previousHandlerName"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("previousNamespaceName"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_dispatcher_abstractdispatcher_ce, SL("returnedValue"), ZEND_ACC_PROTECTED); + phalcon_dispatcher_abstractdispatcher_ce->create_object = zephir_init_properties_Phalcon_Dispatcher_AbstractDispatcher; + + zend_class_implements(phalcon_dispatcher_abstractdispatcher_ce, 1, phalcon_dispatcher_dispatcherinterface_ce); + zend_class_implements(phalcon_dispatcher_abstractdispatcher_ce, 1, phalcon_events_eventsawareinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, callActionMethod) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval params, _0; + zval actionMethod; + zval *handler, handler_sub, *actionMethod_param = NULL, *params_param = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&handler_sub); + ZVAL_UNDEF(&actionMethod); + ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_ZVAL(handler) + Z_PARAM_STR(actionMethod) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(params) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &handler, &actionMethod_param, ¶ms_param); + zephir_get_strval(&actionMethod, actionMethod_param); + if (!params_param) { + ZEPHIR_INIT_VAR(¶ms); + array_init(¶ms); + } else { + ZEPHIR_OBS_COPY_OR_DUP(¶ms, params_param); + } + + + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 2, 0); + zephir_array_fast_append(&_0, handler); + zephir_array_fast_append(&_0, &actionMethod); + ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, &_0, ¶ms); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, dispatch) +{ + zval _45$$10; + zend_bool hasService = 0, hasEventsManager = 0, isNewHandler = 0, _7$$5, _18$$13, _23$$15, _31$$18, _36$$20, _43$$23, _53$$25, _57$$31, _63$$33, _67$$36, _73$$38, _79$$43, _84$$46, _89$$48, _105$$59, _110$$62, _115$$64, _118$$67, _123$$69, _130$$73; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval __$true, __$false, value, handler, container, namespaceName, handlerName, actionName, params, eventsManager, handlerClass, status, actionMethod, modelBinder, bindCacheKey, handlerHash, e, _0, _1$$3, _3$$3, _4$$3, _5$$5, _6$$5, _8$$5, _9$$4, _10$$7, _11$$11, _12$$11, _15$$13, _16$$13, _19$$13, _20$$12, _21$$15, _24$$15, _26$$10, _38$$10, _39$$10, _102$$10, _28$$18, _29$$18, _33$$20, _34$$20, _40$$23, _41$$23, _46$$26, _47$$26, _49$$26, _50$$25, _51$$25, _54$$31, _55$$31, _58$$31, _60$$30, _61$$33, _64$$33, _66$$36, _68$$36, _70$$35, _71$$38, _74$$38, _76$$41, _77$$43, _80$$43, _81$$46, _82$$46, _85$$46, _86$$45, _87$$48, _90$$48, _91$$50, _92$$50, _93$$51, _94$$51, _96$$51, _97$$54, _98$$54, _99$$57, _101$$57, _103$$59, _106$$59, _107$$62, _108$$62, _111$$62, _112$$61, _113$$64, _116$$64, _117$$67, _119$$67, _120$$66, _121$$69, _124$$69, _125$$72, _127$$71, _128$$73, _131$$73, _132$$76, _133$$75, _134$$77; + zend_long ZEPHIR_LAST_CALL_STATUS, numberDispatches = 0; + zephir_fcall_cache_entry *_2 = NULL, *_13 = NULL, *_14 = NULL, *_17 = NULL, *_22 = NULL, *_25 = NULL, *_27 = NULL, *_30 = NULL, *_32 = NULL, *_35 = NULL, *_37 = NULL, *_42 = NULL, *_44 = NULL, *_48 = NULL, *_52 = NULL, *_56 = NULL, *_59 = NULL, *_62 = NULL, *_65 = NULL, *_69 = NULL, *_72 = NULL, *_75 = NULL, *_78 = NULL, *_83 = NULL, *_88 = NULL, *_95 = NULL, *_100 = NULL, *_104 = NULL, *_109 = NULL, *_114 = NULL, *_122 = NULL, *_126 = NULL, *_129 = NULL; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&handler); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&namespaceName); + ZVAL_UNDEF(&handlerName); + ZVAL_UNDEF(&actionName); + ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&eventsManager); + ZVAL_UNDEF(&handlerClass); + ZVAL_UNDEF(&status); + ZVAL_UNDEF(&actionMethod); + ZVAL_UNDEF(&modelBinder); + ZVAL_UNDEF(&bindCacheKey); + ZVAL_UNDEF(&handlerHash); + ZVAL_UNDEF(&e); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&_10$$7); + ZVAL_UNDEF(&_11$$11); + ZVAL_UNDEF(&_12$$11); + ZVAL_UNDEF(&_15$$13); + ZVAL_UNDEF(&_16$$13); + ZVAL_UNDEF(&_19$$13); + ZVAL_UNDEF(&_20$$12); + ZVAL_UNDEF(&_21$$15); + ZVAL_UNDEF(&_24$$15); + ZVAL_UNDEF(&_26$$10); + ZVAL_UNDEF(&_38$$10); + ZVAL_UNDEF(&_39$$10); + ZVAL_UNDEF(&_102$$10); + ZVAL_UNDEF(&_28$$18); + ZVAL_UNDEF(&_29$$18); + ZVAL_UNDEF(&_33$$20); + ZVAL_UNDEF(&_34$$20); + ZVAL_UNDEF(&_40$$23); + ZVAL_UNDEF(&_41$$23); + ZVAL_UNDEF(&_46$$26); + ZVAL_UNDEF(&_47$$26); + ZVAL_UNDEF(&_49$$26); + ZVAL_UNDEF(&_50$$25); + ZVAL_UNDEF(&_51$$25); + ZVAL_UNDEF(&_54$$31); + ZVAL_UNDEF(&_55$$31); + ZVAL_UNDEF(&_58$$31); + ZVAL_UNDEF(&_60$$30); + ZVAL_UNDEF(&_61$$33); + ZVAL_UNDEF(&_64$$33); + ZVAL_UNDEF(&_66$$36); + ZVAL_UNDEF(&_68$$36); + ZVAL_UNDEF(&_70$$35); + ZVAL_UNDEF(&_71$$38); + ZVAL_UNDEF(&_74$$38); + ZVAL_UNDEF(&_76$$41); + ZVAL_UNDEF(&_77$$43); + ZVAL_UNDEF(&_80$$43); + ZVAL_UNDEF(&_81$$46); + ZVAL_UNDEF(&_82$$46); + ZVAL_UNDEF(&_85$$46); + ZVAL_UNDEF(&_86$$45); + ZVAL_UNDEF(&_87$$48); + ZVAL_UNDEF(&_90$$48); + ZVAL_UNDEF(&_91$$50); + ZVAL_UNDEF(&_92$$50); + ZVAL_UNDEF(&_93$$51); + ZVAL_UNDEF(&_94$$51); + ZVAL_UNDEF(&_96$$51); + ZVAL_UNDEF(&_97$$54); + ZVAL_UNDEF(&_98$$54); + ZVAL_UNDEF(&_99$$57); + ZVAL_UNDEF(&_101$$57); + ZVAL_UNDEF(&_103$$59); + ZVAL_UNDEF(&_106$$59); + ZVAL_UNDEF(&_107$$62); + ZVAL_UNDEF(&_108$$62); + ZVAL_UNDEF(&_111$$62); + ZVAL_UNDEF(&_112$$61); + ZVAL_UNDEF(&_113$$64); + ZVAL_UNDEF(&_116$$64); + ZVAL_UNDEF(&_117$$67); + ZVAL_UNDEF(&_119$$67); + ZVAL_UNDEF(&_120$$66); + ZVAL_UNDEF(&_121$$69); + ZVAL_UNDEF(&_124$$69); + ZVAL_UNDEF(&_125$$72); + ZVAL_UNDEF(&_127$$71); + ZVAL_UNDEF(&_128$$73); + ZVAL_UNDEF(&_131$$73); + ZVAL_UNDEF(&_132$$76); + ZVAL_UNDEF(&_133$$75); + ZVAL_UNDEF(&_134$$77); + ZVAL_UNDEF(&_45$$10); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + if (Z_TYPE_P(&container) != IS_OBJECT) { + ZEPHIR_INIT_VAR(&_3$$3); + ZVAL_STRING(&_3$$3, "related dispatching services"); + ZEPHIR_CALL_CE_STATIC(&_1$$3, phalcon_dispatcher_exception_ce, "containerservicenotfound", &_2, 0, &_3$$3); + zephir_check_call_status(); + ZVAL_LONG(&_4$$3, 0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "throwdispatchexception", NULL, 0, &_1$$3, &_4$$3); + zephir_check_call_status(); + RETURN_MM_BOOL(0); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_0); + hasEventsManager = Z_TYPE_P(&eventsManager) == IS_OBJECT; + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("finished"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("finished"), &__$false); + } + if (hasEventsManager) { + + /* try_start_1: */ + + ZEPHIR_INIT_VAR(&_6$$5); + ZVAL_STRING(&_6$$5, "dispatch:beforeDispatchLoop"); + ZEPHIR_CALL_METHOD(&_5$$5, &eventsManager, "fire", NULL, 0, &_6$$5, this_ptr); + zephir_check_call_status_or_jump(try_end_1); + _7$$5 = ZEPHIR_IS_FALSE_IDENTICAL(&_5$$5); + if (_7$$5) { + zephir_read_property(&_8$$5, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + _7$$5 = !ZEPHIR_IS_FALSE_IDENTICAL(&_8$$5); } -pp142: - { - token->opcode = PHQL_T_IS; - return 0; - } -pp143: - ppch = *++PPCURSOR; - switch (ppch) { - case 'I': - case 'i': goto pp204; - default: goto pp59; + if (_7$$5) { + RETURN_MM_BOOL(0); } -pp144: - ppch = *++PPCURSOR; - switch (ppch) { - case 'F': - case 'f': goto pp205; - default: goto pp59; + + try_end_1: + + if (EG(exception)) { + ZEPHIR_INIT_VAR(&_9$$4); + ZVAL_OBJ(&_9$$4, EG(exception)); + Z_ADDREF_P(&_9$$4); + if (zephir_is_instance_of(&_9$$4, SL("Exception"))) { + zend_clear_exception(); + ZEPHIR_CPY_WRT(&e, &_9$$4); + ZEPHIR_CALL_METHOD(&status, this_ptr, "handleexception", NULL, 0, &e); + zephir_check_call_status(); + zephir_read_property(&_10$$7, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + if (!ZEPHIR_IS_FALSE_IDENTICAL(&_10$$7)) { + if (ZEPHIR_IS_FALSE_IDENTICAL(&status)) { + RETURN_MM_BOOL(0); + } + zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 231); + ZEPHIR_MM_RESTORE(); + return; + } } -pp145: - ppch = *++PPCURSOR; - switch (ppch) { - case 'K': - case 'k': goto pp206; - case 'M': - case 'm': goto pp207; - default: goto pp59; + } + } + ZEPHIR_INIT_VAR(&value); + ZVAL_NULL(&value); + ZEPHIR_INIT_VAR(&handler); + ZVAL_NULL(&handler); + numberDispatches = 0; + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("finished"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("finished"), &__$false); + } + while (1) { + zephir_read_property(&_0, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + if (!(!(zephir_is_true(&_0)))) { + break; + } + numberDispatches++; + if (UNEXPECTED(numberDispatches == 256)) { + ZEPHIR_INIT_NVAR(&_11$$11); + ZVAL_STRING(&_11$$11, "Dispatcher has detected a cyclic routing causing stability problems"); + ZVAL_LONG(&_12$$11, 1); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "throwdispatchexception", &_13, 0, &_11$$11, &_12$$11); + zephir_check_call_status(); + break; + } + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("finished"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("finished"), &__$false); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "resolveemptyproperties", &_14, 0); + zephir_check_call_status(); + if (hasEventsManager) { + + /* try_start_2: */ + + ZEPHIR_INIT_NVAR(&_16$$13); + ZVAL_STRING(&_16$$13, "dispatch:beforeDispatch"); + ZEPHIR_CALL_METHOD(&_15$$13, &eventsManager, "fire", &_17, 0, &_16$$13, this_ptr); + zephir_check_call_status_or_jump(try_end_2); + _18$$13 = ZEPHIR_IS_FALSE_IDENTICAL(&_15$$13); + if (!(_18$$13)) { + zephir_read_property(&_19$$13, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + _18$$13 = ZEPHIR_IS_FALSE_IDENTICAL(&_19$$13); + } + if (_18$$13) { + continue; + } + + try_end_2: + + if (EG(exception)) { + ZEPHIR_INIT_NVAR(&_20$$12); + ZVAL_OBJ(&_20$$12, EG(exception)); + Z_ADDREF_P(&_20$$12); + if (zephir_is_instance_of(&_20$$12, SL("Exception"))) { + zend_clear_exception(); + ZEPHIR_CPY_WRT(&e, &_20$$12); + ZEPHIR_CALL_METHOD(&_21$$15, this_ptr, "handleexception", &_22, 0, &e); + zephir_check_call_status(); + _23$$15 = ZEPHIR_IS_FALSE_IDENTICAL(&_21$$15); + if (!(_23$$15)) { + zephir_read_property(&_24$$15, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + _23$$15 = ZEPHIR_IS_FALSE_IDENTICAL(&_24$$15); + } + if (_23$$15) { + continue; + } + zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 271); + ZEPHIR_MM_RESTORE(); + return; + } } -pp146: - ppch = *++PPCURSOR; - switch (ppch) { - case 'T': - case 't': goto pp208; - default: goto pp59; + } + ZEPHIR_CALL_METHOD(&handlerClass, this_ptr, "gethandlerclass", &_25, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_26$$10, &container, "has", &_27, 0, &handlerClass); + zephir_check_call_status(); + hasService = zephir_get_boolval(&_26$$10); + if (!(hasService)) { + hasService = zephir_class_exists(&handlerClass, 1); + } + if (!(hasService)) { + ZEPHIR_INIT_NVAR(&_28$$18); + ZEPHIR_CONCAT_VS(&_28$$18, &handlerClass, " handler class cannot be loaded"); + ZVAL_LONG(&_29$$18, 2); + ZEPHIR_CALL_METHOD(&status, this_ptr, "throwdispatchexception", &_30, 0, &_28$$18, &_29$$18); + zephir_check_call_status(); + _31$$18 = ZEPHIR_IS_FALSE_IDENTICAL(&status); + if (_31$$18) { + zephir_read_property(&_29$$18, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + _31$$18 = ZEPHIR_IS_FALSE_IDENTICAL(&_29$$18); } -pp147: - ppch = *++PPCURSOR; - switch (ppch) { - case 'L': - case 'l': goto pp210; - default: goto pp59; + if (_31$$18) { + continue; } -pp148: - ppch = *++PPCURSOR; - switch (ppch) { - case 'F': - case 'f': goto pp211; - default: goto pp59; + break; + } + ZEPHIR_CALL_METHOD(&handler, &container, "getshared", &_32, 0, &handlerClass); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&handler) != IS_OBJECT)) { + ZEPHIR_INIT_NVAR(&_33$$20); + ZVAL_STRING(&_33$$20, "Invalid handler returned from the services container"); + ZVAL_LONG(&_34$$20, 3); + ZEPHIR_CALL_METHOD(&status, this_ptr, "throwdispatchexception", &_35, 0, &_33$$20, &_34$$20); + zephir_check_call_status(); + _36$$20 = ZEPHIR_IS_FALSE_IDENTICAL(&status); + if (_36$$20) { + zephir_read_property(&_34$$20, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + _36$$20 = ZEPHIR_IS_FALSE_IDENTICAL(&_34$$20); } -pp149: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp150; + if (_36$$20) { + continue; } -pp150: - { - token->opcode = PHQL_T_ON; - return 0; + break; } -pp151: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - case 'D': - case 'd': goto pp212; - default: goto pp152; - } -pp152: - { - token->opcode = PHQL_T_OR; - return 0; + ZEPHIR_CALL_FUNCTION(&handlerHash, "spl_object_hash", &_37, 100, &handler); + zephir_check_call_status(); + zephir_read_property(&_38$$10, this_ptr, ZEND_STRL("handlerHashes"), PH_NOISY_CC | PH_READONLY); + isNewHandler = !((zephir_array_isset(&_38$$10, &handlerHash))); + if (isNewHandler) { + zephir_update_property_array(this_ptr, SL("handlerHashes"), &handlerHash, &__$true); } -pp153: - ppch = *++PPCURSOR; - switch (ppch) { - case 'T': - case 't': goto pp213; - default: goto pp59; - } -pp154: - ppch = *++PPCURSOR; - switch (ppch) { - case 'G': - case 'g': goto pp214; - default: goto pp59; + zephir_update_property_zval(this_ptr, ZEND_STRL("activeHandler"), &handler); + zephir_read_property(&_39$$10, this_ptr, ZEND_STRL("namespaceName"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&namespaceName, &_39$$10); + zephir_read_property(&_39$$10, this_ptr, ZEND_STRL("handlerName"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&handlerName, &_39$$10); + zephir_read_property(&_39$$10, this_ptr, ZEND_STRL("actionName"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&actionName, &_39$$10); + zephir_read_property(&_39$$10, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(¶ms, &_39$$10); + if (UNEXPECTED(Z_TYPE_P(¶ms) != IS_ARRAY)) { + ZEPHIR_INIT_NVAR(&_40$$23); + ZVAL_STRING(&_40$$23, "Action parameters must be an Array"); + ZVAL_LONG(&_41$$23, 4); + ZEPHIR_CALL_METHOD(&status, this_ptr, "throwdispatchexception", &_42, 0, &_40$$23, &_41$$23); + zephir_check_call_status(); + _43$$23 = ZEPHIR_IS_FALSE_IDENTICAL(&status); + if (_43$$23) { + zephir_read_property(&_41$$23, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + _43$$23 = ZEPHIR_IS_FALSE_IDENTICAL(&_41$$23); } -pp155: - ppch = *++PPCURSOR; - switch (ppch) { - case 'L': - case 'l': goto pp215; - case 'T': - case 't': goto pp216; - default: goto pp59; + if (_43$$23) { + continue; } -pp156: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp218; - default: goto pp59; + break; + } + ZEPHIR_CALL_METHOD(&actionMethod, this_ptr, "getactivemethod", &_44, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_45$$10); + zephir_create_array(&_45$$10, 2, 0); + zephir_array_fast_append(&_45$$10, &handler); + zephir_array_fast_append(&_45$$10, &actionMethod); + if (UNEXPECTED(!(zephir_is_callable(&_45$$10)))) { + if (hasEventsManager) { + ZEPHIR_INIT_NVAR(&_47$$26); + ZVAL_STRING(&_47$$26, "dispatch:beforeNotFoundAction"); + ZEPHIR_CALL_METHOD(&_46$$26, &eventsManager, "fire", &_48, 0, &_47$$26, this_ptr); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_46$$26)) { + continue; + } + zephir_read_property(&_49$$26, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_49$$26)) { + continue; + } } -pp157: - ppch = *++PPCURSOR; - switch (ppch) { - case 'U': - case 'u': goto pp219; - default: goto pp59; + ZEPHIR_INIT_NVAR(&_50$$25); + ZEPHIR_CONCAT_SVSVS(&_50$$25, "Action '", &actionName, "' was not found on handler '", &handlerName, "'"); + ZVAL_LONG(&_51$$25, 5); + ZEPHIR_CALL_METHOD(&status, this_ptr, "throwdispatchexception", &_52, 0, &_50$$25, &_51$$25); + zephir_check_call_status(); + _53$$25 = ZEPHIR_IS_FALSE_IDENTICAL(&status); + if (_53$$25) { + zephir_read_property(&_51$$25, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + _53$$25 = ZEPHIR_IS_FALSE_IDENTICAL(&_51$$25); } -pp158: - ppch = *++PPCURSOR; - switch (ppch) { - case 'D': - case 'd': goto pp220; - default: goto pp59; + if (_53$$25) { + continue; } -pp159: - ppch = *++PPCURSOR; - switch (ppch) { - case 'I': - case 'i': goto pp221; - default: goto pp59; + break; + } + if (hasEventsManager) { + + /* try_start_3: */ + + ZEPHIR_INIT_NVAR(&_55$$31); + ZVAL_STRING(&_55$$31, "dispatch:beforeExecuteRoute"); + ZEPHIR_CALL_METHOD(&_54$$31, &eventsManager, "fire", &_56, 0, &_55$$31, this_ptr); + zephir_check_call_status_or_jump(try_end_3); + _57$$31 = ZEPHIR_IS_FALSE_IDENTICAL(&_54$$31); + if (!(_57$$31)) { + zephir_read_property(&_58$$31, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + _57$$31 = ZEPHIR_IS_FALSE_IDENTICAL(&_58$$31); + } + if (_57$$31) { + ZEPHIR_CALL_METHOD(NULL, &container, "remove", &_59, 0, &handlerClass); + zephir_check_call_status_or_jump(try_end_3); + continue; + } + + try_end_3: + + if (EG(exception)) { + ZEPHIR_INIT_NVAR(&_60$$30); + ZVAL_OBJ(&_60$$30, EG(exception)); + Z_ADDREF_P(&_60$$30); + if (zephir_is_instance_of(&_60$$30, SL("Exception"))) { + zend_clear_exception(); + ZEPHIR_CPY_WRT(&e, &_60$$30); + ZEPHIR_CALL_METHOD(&_61$$33, this_ptr, "handleexception", &_62, 0, &e); + zephir_check_call_status(); + _63$$33 = ZEPHIR_IS_FALSE_IDENTICAL(&_61$$33); + if (!(_63$$33)) { + zephir_read_property(&_64$$33, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + _63$$33 = ZEPHIR_IS_FALSE_IDENTICAL(&_64$$33); + } + if (_63$$33) { + ZEPHIR_CALL_METHOD(NULL, &container, "remove", &_65, 0, &handlerClass); + zephir_check_call_status(); + continue; + } + zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 412); + ZEPHIR_MM_RESTORE(); + return; + } } -pp160: - ppch = *++PPCURSOR; - switch (ppch) { - case 'L': - case 'l': goto pp222; - default: goto pp59; + } + if ((zephir_method_exists_ex(&handler, ZEND_STRL("beforeexecuteroute")) == SUCCESS)) { + + /* try_start_4: */ + + ZEPHIR_CALL_METHOD(&_66$$36, &handler, "beforeexecuteroute", NULL, 0, this_ptr); + zephir_check_call_status_or_jump(try_end_4); + _67$$36 = ZEPHIR_IS_FALSE_IDENTICAL(&_66$$36); + if (!(_67$$36)) { + zephir_read_property(&_68$$36, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + _67$$36 = ZEPHIR_IS_FALSE_IDENTICAL(&_68$$36); + } + if (_67$$36) { + ZEPHIR_CALL_METHOD(NULL, &container, "remove", &_69, 0, &handlerClass); + zephir_check_call_status_or_jump(try_end_4); + continue; + } + + try_end_4: + + if (EG(exception)) { + ZEPHIR_INIT_NVAR(&_70$$35); + ZVAL_OBJ(&_70$$35, EG(exception)); + Z_ADDREF_P(&_70$$35); + if (zephir_is_instance_of(&_70$$35, SL("Exception"))) { + zend_clear_exception(); + ZEPHIR_CPY_WRT(&e, &_70$$35); + ZEPHIR_CALL_METHOD(&_71$$38, this_ptr, "handleexception", &_72, 0, &e); + zephir_check_call_status(); + _73$$38 = ZEPHIR_IS_FALSE_IDENTICAL(&_71$$38); + if (!(_73$$38)) { + zephir_read_property(&_74$$38, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + _73$$38 = ZEPHIR_IS_FALSE_IDENTICAL(&_74$$38); + } + if (_73$$38) { + ZEPHIR_CALL_METHOD(NULL, &container, "remove", &_75, 0, &handlerClass); + zephir_check_call_status(); + continue; + } + zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 431); + ZEPHIR_MM_RESTORE(); + return; + } } -pp161: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp223; - default: goto pp59; + } + if (isNewHandler) { + if ((zephir_method_exists_ex(&handler, ZEND_STRL("initialize")) == SUCCESS)) { + + /* try_start_5: */ + + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("isControllerInitialize"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("isControllerInitialize"), &__$false); + } + ZEPHIR_CALL_METHOD(NULL, &handler, "initialize", NULL, 0); + zephir_check_call_status_or_jump(try_end_5); + + try_end_5: + + if (EG(exception)) { + ZEPHIR_INIT_NVAR(&_76$$41); + ZVAL_OBJ(&_76$$41, EG(exception)); + Z_ADDREF_P(&_76$$41); + if (zephir_is_instance_of(&_76$$41, SL("Exception"))) { + zend_clear_exception(); + ZEPHIR_CPY_WRT(&e, &_76$$41); + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("isControllerInitialize"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("isControllerInitialize"), &__$false); + } + ZEPHIR_CALL_METHOD(&_77$$43, this_ptr, "handleexception", &_78, 0, &e); + zephir_check_call_status(); + _79$$43 = ZEPHIR_IS_FALSE_IDENTICAL(&_77$$43); + if (!(_79$$43)) { + zephir_read_property(&_80$$43, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + _79$$43 = ZEPHIR_IS_FALSE_IDENTICAL(&_80$$43); + } + if (_79$$43) { + continue; + } + zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 473); + ZEPHIR_MM_RESTORE(); + return; + } + } } -pp162: - ppch = *++PPCURSOR; - switch (ppch) { - case 'T': - case 't': goto pp224; - default: goto pp59; + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("isControllerInitialize"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("isControllerInitialize"), &__$false); } -pp163: - ppch = *++PPCURSOR; -pp164: - switch (ppch) { - case 0x00: - case 0x01: - case 0x02: - case 0x03: - case 0x04: - case 0x05: - case 0x06: - case 0x07: - case 0x08: - case '\t': - case '\n': - case '\v': - case '\f': - case '\r': - case 0x0E: - case 0x0F: - case 0x10: - case 0x11: - case 0x12: - case 0x13: - case 0x14: - case 0x15: - case 0x16: - case 0x17: - case 0x18: - case 0x19: - case 0x1A: - case 0x1B: - case 0x1C: - case 0x1D: - case 0x1E: - case 0x1F: - case '[': - case 0x7F: goto pp86; - case '\\': goto pp165; - case ']': goto pp167; - default: goto pp163; - } -pp165: - ppch = *++PPCURSOR; - switch (ppch) { - case 0x00: - case 0x01: - case 0x02: - case 0x03: - case 0x04: - case 0x05: - case 0x06: - case 0x07: - case 0x08: - case '\t': - case '\n': - case '\v': - case '\f': - case '\r': - case 0x0E: - case 0x0F: - case 0x10: - case 0x11: - case 0x12: - case 0x13: - case 0x14: - case 0x15: - case 0x16: - case 0x17: - case 0x18: - case 0x19: - case 0x1A: - case 0x1B: - case 0x1C: - case 0x1D: - case 0x1E: - case 0x1F: - case 0x7F: goto pp86; - case '\\': goto pp165; - case ']': goto pp225; - default: goto pp163; - } -pp167: - ++PPCURSOR; -pp168: - { - token->opcode = PHQL_T_IDENTIFIER; - token->value = estrndup(q, PPCURSOR - q - 1); - token->len = PPCURSOR - q - 1; - q = PPCURSOR; - return 0; - } -pp169: - ppch = *++PPCURSOR; - switch (ppch) { - case '-': - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp169; - case '}': goto pp226; - default: goto pp86; + if (zephir_is_true(&eventsManager)) { + + /* try_start_6: */ + + ZEPHIR_INIT_NVAR(&_82$$46); + ZVAL_STRING(&_82$$46, "dispatch:afterInitialize"); + ZEPHIR_CALL_METHOD(&_81$$46, &eventsManager, "fire", &_83, 0, &_82$$46, this_ptr); + zephir_check_call_status_or_jump(try_end_6); + _84$$46 = ZEPHIR_IS_FALSE_IDENTICAL(&_81$$46); + if (!(_84$$46)) { + zephir_read_property(&_85$$46, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + _84$$46 = ZEPHIR_IS_FALSE_IDENTICAL(&_85$$46); + } + if (_84$$46) { + continue; + } + + try_end_6: + + if (EG(exception)) { + ZEPHIR_INIT_NVAR(&_86$$45); + ZVAL_OBJ(&_86$$45, EG(exception)); + Z_ADDREF_P(&_86$$45); + if (zephir_is_instance_of(&_86$$45, SL("Exception"))) { + zend_clear_exception(); + ZEPHIR_CPY_WRT(&e, &_86$$45); + ZEPHIR_CALL_METHOD(&_87$$48, this_ptr, "handleexception", &_88, 0, &e); + zephir_check_call_status(); + _89$$48 = ZEPHIR_IS_FALSE_IDENTICAL(&_87$$48); + if (!(_89$$48)) { + zephir_read_property(&_90$$48, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + _89$$48 = ZEPHIR_IS_FALSE_IDENTICAL(&_90$$48); + } + if (_89$$48) { + continue; + } + zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 492); + ZEPHIR_MM_RESTORE(); + return; + } + } } -pp171: - ++PPCURSOR; - { - token->opcode = PHQL_T_TS_OR; - return 0; } -pp173: - ++PPCURSOR; - { - token->opcode = PHQL_T_SPLACEHOLDER; - token->value = estrndup(q, PPCURSOR - q - 1); - token->len = PPCURSOR - q - 1; - q = PPCURSOR; - return 0; + zephir_read_property(&_39$$10, this_ptr, ZEND_STRL("modelBinding"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_39$$10)) { + zephir_read_property(&_91$$50, this_ptr, ZEND_STRL("modelBinder"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&modelBinder, &_91$$50); + ZEPHIR_INIT_NVAR(&bindCacheKey); + ZEPHIR_CONCAT_SVSV(&bindCacheKey, "_PHMB_", &handlerClass, "_", &actionMethod); + ZEPHIR_CALL_METHOD(&_92$$50, &modelBinder, "bindtohandler", NULL, 0, &handler, ¶ms, &bindCacheKey, &actionMethod); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(¶ms, &_92$$50); } -pp175: - ppch = *++PPCURSOR; - switch (ppch) { - case 'I': - case 'i': goto pp228; - default: goto pp59; + if (hasEventsManager) { + ZEPHIR_INIT_NVAR(&_94$$51); + ZVAL_STRING(&_94$$51, "dispatch:afterBinding"); + ZEPHIR_CALL_METHOD(&_93$$51, &eventsManager, "fire", &_95, 0, &_94$$51, this_ptr); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_93$$51)) { + continue; } -pp176: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp177; + zephir_read_property(&_96$$51, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_96$$51)) { + continue; } -pp177: - { - token->opcode = PHQL_T_ALL; - return 0; } -pp178: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp179; + if ((zephir_method_exists_ex(&handler, ZEND_STRL("afterbinding")) == SUCCESS)) { + ZEPHIR_CALL_METHOD(&_97$$54, &handler, "afterbinding", NULL, 0, this_ptr); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_97$$54)) { + continue; } -pp179: - { - token->opcode = PHQL_T_AND; - return 0; - } -pp180: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp181; + zephir_read_property(&_98$$54, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_98$$54)) { + continue; } -pp181: - { - token->opcode = PHQL_T_ASC; - return 0; } -pp182: - ppch = *++PPCURSOR; - switch (ppch) { - case 'W': - case 'w': goto pp229; - default: goto pp59; - } -pp183: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp230; - case 'T': - case 't': goto pp232; - default: goto pp59; - } -pp184: - ppch = *++PPCURSOR; - switch (ppch) { - case 'V': - case 'v': goto pp234; - default: goto pp59; - } -pp185: - ppch = *++PPCURSOR; - switch (ppch) { - case 'S': - case 's': goto pp235; - default: goto pp59; - } -pp186: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp236; - default: goto pp59; - } -pp187: - ppch = *++PPCURSOR; - switch (ppch) { - case 'C': - case 'c': goto pp237; - default: goto pp59; - } -pp188: - ppch = *++PPCURSOR; - switch (ppch) { - case 'T': - case 't': goto pp239; - default: goto pp59; - } -pp189: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp240; - default: goto pp59; + zephir_update_property_zval(this_ptr, ZEND_STRL("lastHandler"), &handler); + + /* try_start_7: */ + + ZEPHIR_CALL_METHOD(&_99$$57, this_ptr, "callactionmethod", &_100, 0, &handler, &actionMethod, ¶ms); + zephir_check_call_status_or_jump(try_end_7); + zephir_update_property_zval(this_ptr, ZEND_STRL("returnedValue"), &_99$$57); + zephir_read_property(&_101$$57, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_101$$57)) { + continue; } -pp190: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp191; + + try_end_7: + + if (EG(exception)) { + ZEPHIR_INIT_NVAR(&_102$$10); + ZVAL_OBJ(&_102$$10, EG(exception)); + Z_ADDREF_P(&_102$$10); + if (zephir_is_instance_of(&_102$$10, SL("Exception"))) { + zend_clear_exception(); + ZEPHIR_CPY_WRT(&e, &_102$$10); + ZEPHIR_CALL_METHOD(&_103$$59, this_ptr, "handleexception", &_104, 0, &e); + zephir_check_call_status(); + _105$$59 = ZEPHIR_IS_FALSE_IDENTICAL(&_103$$59); + if (!(_105$$59)) { + zephir_read_property(&_106$$59, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + _105$$59 = ZEPHIR_IS_FALSE_IDENTICAL(&_106$$59); + } + if (_105$$59) { + continue; + } + zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 564); + ZEPHIR_MM_RESTORE(); + return; } -pp191: - { - token->opcode = PHQL_T_END; - return 0; } -pp192: - ppch = *++PPCURSOR; - switch (ppch) { - case 'S': - case 's': goto pp242; - default: goto pp59; - } -pp193: - ppch = *++PPCURSOR; - switch (ppch) { - case 'S': - case 's': goto pp243; - default: goto pp59; - } -pp194: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp195; + if (hasEventsManager) { + + /* try_start_8: */ + + ZEPHIR_INIT_NVAR(&_108$$62); + ZVAL_STRING(&_108$$62, "dispatch:afterExecuteRoute"); + ZEPHIR_CALL_METHOD(&_107$$62, &eventsManager, "fire", &_109, 0, &_108$$62, this_ptr, &value); + zephir_check_call_status_or_jump(try_end_8); + _110$$62 = ZEPHIR_IS_FALSE_IDENTICAL(&_107$$62); + if (!(_110$$62)) { + zephir_read_property(&_111$$62, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + _110$$62 = ZEPHIR_IS_FALSE_IDENTICAL(&_111$$62); + } + if (_110$$62) { + continue; + } + + try_end_8: + + if (EG(exception)) { + ZEPHIR_INIT_NVAR(&_112$$61); + ZVAL_OBJ(&_112$$61, EG(exception)); + Z_ADDREF_P(&_112$$61); + if (zephir_is_instance_of(&_112$$61, SL("Exception"))) { + zend_clear_exception(); + ZEPHIR_CPY_WRT(&e, &_112$$61); + ZEPHIR_CALL_METHOD(&_113$$64, this_ptr, "handleexception", &_114, 0, &e); + zephir_check_call_status(); + _115$$64 = ZEPHIR_IS_FALSE_IDENTICAL(&_113$$64); + if (!(_115$$64)) { + zephir_read_property(&_116$$64, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + _115$$64 = ZEPHIR_IS_FALSE_IDENTICAL(&_116$$64); + } + if (_115$$64) { + continue; + } + zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 580); + ZEPHIR_MM_RESTORE(); + return; + } } -pp195: - { - token->opcode = PHQL_T_FOR; - return 0; } -pp196: - ppch = *++PPCURSOR; - switch (ppch) { - case 'M': - case 'm': goto pp244; - default: goto pp59; - } -pp197: - ppch = *++PPCURSOR; - switch (ppch) { - case 'L': - case 'l': goto pp246; - default: goto pp59; - } -pp198: - ppch = *++PPCURSOR; - switch (ppch) { - case 'U': - case 'u': goto pp248; - default: goto pp59; - } -pp199: - ppch = *++PPCURSOR; - switch (ppch) { - case 'I': - case 'i': goto pp249; - default: goto pp59; - } -pp200: - ppch = *++PPCURSOR; - switch (ppch) { - case 'K': - case 'k': goto pp250; - default: goto pp59; - } -pp201: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp251; - default: goto pp59; - } -pp202: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp252; - default: goto pp59; - } -pp203: - ppch = *++PPCURSOR; - switch (ppch) { - case 'O': - case 'o': goto pp253; - default: goto pp59; - } -pp204: - ppch = *++PPCURSOR; - switch (ppch) { - case 'N': - case 'n': goto pp255; - default: goto pp59; - } -pp205: - ppch = *++PPCURSOR; - switch (ppch) { - case 'T': - case 't': goto pp257; - default: goto pp59; - } -pp206: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp259; - default: goto pp59; - } -pp207: - ppch = *++PPCURSOR; - switch (ppch) { - case 'I': - case 'i': goto pp261; - default: goto pp59; - } -pp208: - ppaccept = 2; - ppch = *(PPMARKER = ++PPCURSOR); - switch (ppch) { - case ' ': goto pp262; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp209; + if ((zephir_method_exists_ex(&handler, ZEND_STRL("afterexecuteroute")) == SUCCESS)) { + + /* try_start_9: */ + + ZEPHIR_CALL_METHOD(&_117$$67, &handler, "afterexecuteroute", NULL, 0, this_ptr, &value); + zephir_check_call_status_or_jump(try_end_9); + _118$$67 = ZEPHIR_IS_FALSE_IDENTICAL(&_117$$67); + if (!(_118$$67)) { + zephir_read_property(&_119$$67, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + _118$$67 = ZEPHIR_IS_FALSE_IDENTICAL(&_119$$67); + } + if (_118$$67) { + continue; + } + + try_end_9: + + if (EG(exception)) { + ZEPHIR_INIT_NVAR(&_120$$66); + ZVAL_OBJ(&_120$$66, EG(exception)); + Z_ADDREF_P(&_120$$66); + if (zephir_is_instance_of(&_120$$66, SL("Exception"))) { + zend_clear_exception(); + ZEPHIR_CPY_WRT(&e, &_120$$66); + ZEPHIR_CALL_METHOD(&_121$$69, this_ptr, "handleexception", &_122, 0, &e); + zephir_check_call_status(); + _123$$69 = ZEPHIR_IS_FALSE_IDENTICAL(&_121$$69); + if (!(_123$$69)) { + zephir_read_property(&_124$$69, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + _123$$69 = ZEPHIR_IS_FALSE_IDENTICAL(&_124$$69); + } + if (_123$$69) { + continue; + } + zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 597); + ZEPHIR_MM_RESTORE(); + return; + } } -pp209: - { - token->opcode = PHQL_T_NOT; - return 0; } -pp210: - ppch = *++PPCURSOR; - switch (ppch) { - case 'L': - case 'l': goto pp263; - default: goto pp59; - } -pp211: - ppch = *++PPCURSOR; - switch (ppch) { - case 'S': - case 's': goto pp265; - default: goto pp59; - } -pp212: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp266; - default: goto pp59; - } -pp213: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp267; - default: goto pp59; + if (hasEventsManager) { + + /* try_start_10: */ + + ZEPHIR_INIT_NVAR(&_125$$72); + ZVAL_STRING(&_125$$72, "dispatch:afterDispatch"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_126, 0, &_125$$72, this_ptr, &value); + zephir_check_call_status_or_jump(try_end_10); + + try_end_10: + + if (EG(exception)) { + ZEPHIR_INIT_NVAR(&_127$$71); + ZVAL_OBJ(&_127$$71, EG(exception)); + Z_ADDREF_P(&_127$$71); + if (zephir_is_instance_of(&_127$$71, SL("Exception"))) { + zend_clear_exception(); + ZEPHIR_CPY_WRT(&e, &_127$$71); + ZEPHIR_CALL_METHOD(&_128$$73, this_ptr, "handleexception", &_129, 0, &e); + zephir_check_call_status(); + _130$$73 = ZEPHIR_IS_FALSE_IDENTICAL(&_128$$73); + if (!(_130$$73)) { + zephir_read_property(&_131$$73, this_ptr, ZEND_STRL("finished"), PH_NOISY_CC | PH_READONLY); + _130$$73 = ZEPHIR_IS_FALSE_IDENTICAL(&_131$$73); + } + if (_130$$73) { + continue; + } + zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 614); + ZEPHIR_MM_RESTORE(); + return; + } } -pp214: - ppch = *++PPCURSOR; - switch (ppch) { - case 'H': - case 'h': goto pp268; - default: goto pp59; + } + } + if (hasEventsManager) { + + /* try_start_11: */ + + ZEPHIR_INIT_VAR(&_132$$76); + ZVAL_STRING(&_132$$76, "dispatch:afterDispatchLoop"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_132$$76, this_ptr); + zephir_check_call_status_or_jump(try_end_11); + + try_end_11: + + if (EG(exception)) { + ZEPHIR_INIT_VAR(&_133$$75); + ZVAL_OBJ(&_133$$75, EG(exception)); + Z_ADDREF_P(&_133$$75); + if (zephir_is_instance_of(&_133$$75, SL("Exception"))) { + zend_clear_exception(); + ZEPHIR_CPY_WRT(&e, &_133$$75); + ZEPHIR_CALL_METHOD(&_134$$77, this_ptr, "handleexception", NULL, 0, &e); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_134$$77)) { + RETURN_MM_BOOL(0); + } + zephir_throw_exception_debug(&e, "phalcon/Dispatcher/AbstractDispatcher.zep", 631); + ZEPHIR_MM_RESTORE(); + return; } -pp215: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp269; - default: goto pp59; - } -pp216: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp217; - } -pp217: - { - token->opcode = PHQL_T_SET; - return 0; - } -pp218: - ppch = *++PPCURSOR; - switch (ppch) { - case 'N': - case 'n': goto pp270; - default: goto pp59; - } -pp219: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp272; - default: goto pp59; - } -pp220: - ppch = *++PPCURSOR; - switch (ppch) { - case 'A': - case 'a': goto pp274; - default: goto pp59; - } -pp221: - ppch = *++PPCURSOR; - switch (ppch) { - case 'N': - case 'n': goto pp275; - default: goto pp59; - } -pp222: - ppch = *++PPCURSOR; - switch (ppch) { - case 'U': - case 'u': goto pp276; - default: goto pp59; - } -pp223: - ppch = *++PPCURSOR; - switch (ppch) { - case 'N': - case 'n': goto pp277; - case 'R': - case 'r': goto pp279; - default: goto pp59; - } -pp224: - ppch = *++PPCURSOR; - switch (ppch) { - case 'H': - case 'h': goto pp280; - default: goto pp59; - } -pp225: - ppaccept = 3; - ppch = *(PPMARKER = ++PPCURSOR); - switch (ppch) { - case 0x00: - case 0x01: - case 0x02: - case 0x03: - case 0x04: - case 0x05: - case 0x06: - case 0x07: - case 0x08: - case '\t': - case '\n': - case '\v': - case '\f': - case '\r': - case 0x0E: - case 0x0F: - case 0x10: - case 0x11: - case 0x12: - case 0x13: - case 0x14: - case 0x15: - case 0x16: - case 0x17: - case 0x18: - case 0x19: - case 0x1A: - case 0x1B: - case 0x1C: - case 0x1D: - case 0x1E: - case 0x1F: - case '[': - case 0x7F: goto pp168; - case '\\': goto pp165; - case ']': goto pp167; - default: goto pp163; - } -pp226: - ++PPCURSOR; - { - token->opcode = PHQL_T_BPLACEHOLDER; - token->value = estrndup(q, PPCURSOR - q - 1); - token->len = PPCURSOR - q - 1; - q = PPCURSOR; - return 0; - } -pp228: - ppch = *++PPCURSOR; - switch (ppch) { - case 'N': - case 'n': goto pp282; - default: goto pp59; - } -pp229: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp283; - default: goto pp59; - } -pp230: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp231; - } -pp231: - { - token->opcode = PHQL_T_CASE; - return 0; - } -pp232: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp233; - } -pp233: - { - token->opcode = PHQL_T_CAST; - return 0; - } -pp234: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp284; - default: goto pp59; - } -pp235: - ppch = *++PPCURSOR; - switch (ppch) { - case 'S': - case 's': goto pp285; - default: goto pp59; - } -pp236: - ppch = *++PPCURSOR; - switch (ppch) { - case 'T': - case 't': goto pp287; - default: goto pp59; - } -pp237: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp238; - } -pp238: - { - token->opcode = PHQL_T_DESC; - return 0; } -pp239: - ppch = *++PPCURSOR; - switch (ppch) { - case 'I': - case 'i': goto pp288; - default: goto pp59; - } -pp240: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp241; - } -pp241: - { - token->opcode = PHQL_T_ELSE; - return 0; + } + RETURN_CCTOR(&handler); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, forward) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *forward_param = NULL, __$true, __$false, namespaceName, controllerName, params, actionName, taskName, _0, _1, _2, _3; + zval forward; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&forward); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&namespaceName); + ZVAL_UNDEF(&controllerName); + ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&actionName); + ZVAL_UNDEF(&taskName); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(forward) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &forward_param); + zephir_get_arrval(&forward, forward_param); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("isControllerInitialize"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(ZEPHIR_IS_TRUE_IDENTICAL(&_0))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_dispatcher_exception_ce, "Forwarding inside a controller's initialize() method is forbidden", "phalcon/Dispatcher/AbstractDispatcher.zep", 665); + return; + } + zephir_read_property(&_1, this_ptr, ZEND_STRL("namespaceName"), PH_NOISY_CC | PH_READONLY); + zephir_update_property_zval(this_ptr, ZEND_STRL("previousNamespaceName"), &_1); + zephir_read_property(&_2, this_ptr, ZEND_STRL("handlerName"), PH_NOISY_CC | PH_READONLY); + zephir_update_property_zval(this_ptr, ZEND_STRL("previousHandlerName"), &_2); + zephir_read_property(&_3, this_ptr, ZEND_STRL("actionName"), PH_NOISY_CC | PH_READONLY); + zephir_update_property_zval(this_ptr, ZEND_STRL("previousActionName"), &_3); + if (zephir_array_isset_string_fetch(&namespaceName, &forward, SL("namespace"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("namespaceName"), &namespaceName); + } + ZEPHIR_OBS_VAR(&taskName); + if (zephir_array_isset_string_fetch(&controllerName, &forward, SL("controller"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("handlerName"), &controllerName); + } else if (zephir_array_isset_string_fetch(&taskName, &forward, SL("task"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("handlerName"), &taskName); + } + if (zephir_array_isset_string_fetch(&actionName, &forward, SL("action"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("actionName"), &actionName); + } + if (zephir_array_isset_string_fetch(¶ms, &forward, SL("params"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("params"), ¶ms); + } + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("finished"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("finished"), &__$false); + } + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("forwarded"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("forwarded"), &__$false); + } + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getActionName) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "actionName"); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getActionSuffix) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "actionSuffix"); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getActiveMethod) +{ + zval activeMethodName, _0, _1, _5, _2$$3, _3$$3, _4$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&activeMethodName); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_OBS_VAR(&activeMethodName); + zephir_read_property(&_0, this_ptr, ZEND_STRL("activeMethodMap"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_1, this_ptr, ZEND_STRL("actionName"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&activeMethodName, &_0, &_1, 0))) { + zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("actionName"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_2$$3, this_ptr, "tocamelcase", NULL, 0, &_3$$3); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&activeMethodName, "lcfirst", NULL, 96, &_2$$3); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&_4$$3); + zephir_read_property(&_4$$3, this_ptr, ZEND_STRL("actionName"), PH_NOISY_CC); + zephir_update_property_array(this_ptr, SL("activeMethodMap"), &_4$$3, &activeMethodName); + } + zephir_read_property(&_5, this_ptr, ZEND_STRL("actionSuffix"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CONCAT_VV(return_value, &activeMethodName, &_5); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getBoundModels) +{ + zval modelBinder, _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&modelBinder); + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("modelBinder"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&modelBinder, &_0); + if (Z_TYPE_P(&modelBinder) == IS_NULL) { + array_init(return_value); + RETURN_MM(); + } + ZEPHIR_RETURN_CALL_METHOD(&modelBinder, "getboundmodels", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getDefaultNamespace) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "defaultNamespace"); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getEventsManager) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "eventsManager"); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getHandlerSuffix) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "handlerSuffix"); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getModelBinder) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "modelBinder"); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getModuleName) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "moduleName"); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getNamespaceName) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "namespaceName"); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getParam) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_2 = NULL; + zval *param, param_sub, *filters = NULL, filters_sub, *defaultValue = NULL, defaultValue_sub, __$null, params, filter, paramValue, container, _0, _5, _6, _1$$5, _3$$5, _4$$5; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(¶m_sub); + ZVAL_UNDEF(&filters_sub); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&filter); + ZVAL_UNDEF(¶mValue); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_1$$5); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_4$$5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ZVAL(param) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(filters) + Z_PARAM_ZVAL_OR_NULL(defaultValue) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, ¶m, &filters, &defaultValue); + if (!filters) { + filters = &filters_sub; + filters = &__$null; + } + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(¶ms, &_0); + ZEPHIR_OBS_VAR(¶mValue); + if (!(zephir_array_isset_fetch(¶mValue, ¶ms, param, 0))) { + RETVAL_ZVAL(defaultValue, 1, 0); + RETURN_MM(); + } + if (Z_TYPE_P(filters) == IS_NULL) { + RETURN_CCTOR(¶mValue); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0); + if (Z_TYPE_P(&container) != IS_OBJECT) { + ZEPHIR_INIT_VAR(&_3$$5); + ZVAL_STRING(&_3$$5, "the 'filter' service"); + ZEPHIR_CALL_CE_STATIC(&_1$$5, phalcon_dispatcher_exception_ce, "containerservicenotfound", &_2, 0, &_3$$5); + zephir_check_call_status(); + ZVAL_LONG(&_4$$5, 0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "throwdispatchexception", NULL, 0, &_1$$5, &_4$$5); + zephir_check_call_status(); + } + ZEPHIR_INIT_VAR(&_6); + ZVAL_STRING(&_6, "filter"); + ZEPHIR_CALL_METHOD(&_5, &container, "getshared", NULL, 0, &_6); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&filter, &_5); + ZEPHIR_RETURN_CALL_METHOD(&filter, "sanitize", NULL, 0, ¶mValue, filters); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getParams) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "params"); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, hasParam) +{ + zval *param, param_sub, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(¶m_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(param) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, ¶m); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + RETURN_BOOL(zephir_array_isset(&_0, param)); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, isFinished) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "finished"); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setActionName) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *actionName_param = NULL; + zval actionName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&actionName); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(actionName) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &actionName_param); + zephir_get_strval(&actionName, actionName_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("actionName"), &actionName); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setDefaultAction) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *actionName_param = NULL; + zval actionName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&actionName); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(actionName) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &actionName_param); + zephir_get_strval(&actionName, actionName_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultAction"), &actionName); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setDefaultNamespace) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *defaultNamespace_param = NULL; + zval defaultNamespace; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&defaultNamespace); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(defaultNamespace) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &defaultNamespace_param); + zephir_get_strval(&defaultNamespace, defaultNamespace_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultNamespace"), &defaultNamespace); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getHandlerClass) +{ + zval handlerSuffix, handlerName, namespaceName, camelizedClass, handlerClass, _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&handlerSuffix); + ZVAL_UNDEF(&handlerName); + ZVAL_UNDEF(&namespaceName); + ZVAL_UNDEF(&camelizedClass); + ZVAL_UNDEF(&handlerClass); + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "resolveemptyproperties", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("handlerSuffix"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&handlerSuffix, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("handlerName"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&handlerName, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("namespaceName"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&namespaceName, &_0); + if (!(zephir_memnstr_str(&handlerName, SL("\\"), "phalcon/Dispatcher/AbstractDispatcher.zep", 916))) { + ZEPHIR_CALL_METHOD(&camelizedClass, this_ptr, "tocamelcase", NULL, 0, &handlerName); + zephir_check_call_status(); + } else { + ZEPHIR_CPY_WRT(&camelizedClass, &handlerName); + } + ZEPHIR_INIT_VAR(&handlerClass); + if (zephir_is_true(&namespaceName)) { + if (!(zephir_end_with_str(&namespaceName, SL("\\")))) { + zephir_concat_self_str(&namespaceName, SL("\\")); } -pp242: - ppch = *++PPCURSOR; - switch (ppch) { - case 'T': - case 't': goto pp289; - default: goto pp59; - } -pp243: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp290; - default: goto pp59; - } -pp244: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp245; - } -pp245: - { - token->opcode = PHQL_T_FROM; - return 0; - } -pp246: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp247; - } -pp247: - { - token->opcode = PHQL_T_FULL; - return 0; - } -pp248: - ppch = *++PPCURSOR; - switch (ppch) { - case 'P': - case 'p': goto pp292; - default: goto pp59; - } -pp249: - ppch = *++PPCURSOR; - switch (ppch) { - case 'N': - case 'n': goto pp294; - default: goto pp59; - } -pp250: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp295; - default: goto pp59; - } -pp251: - ppch = *++PPCURSOR; - switch (ppch) { - case 'R': - case 'r': goto pp297; - default: goto pp59; - } -pp252: - ppch = *++PPCURSOR; - switch (ppch) { - case 'R': - case 'r': goto pp299; - default: goto pp59; - } -pp253: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp254; - } -pp254: - { - token->opcode = PHQL_T_INTO; - return 0; - } -pp255: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp256; - } -pp256: - { - token->opcode = PHQL_T_JOIN; - return 0; - } -pp257: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp258; - } -pp258: - { - token->opcode = PHQL_T_LEFT; - return 0; + ZEPHIR_CONCAT_VVV(&handlerClass, &namespaceName, &camelizedClass, &handlerSuffix); + } else { + ZEPHIR_CONCAT_VV(&handlerClass, &camelizedClass, &handlerSuffix); + } + RETURN_CCTOR(&handlerClass); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setParam) +{ + zval *param, param_sub, *value, value_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(¶m_sub); + ZVAL_UNDEF(&value_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(param) + Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(2, 0, ¶m, &value); + + + zephir_update_property_array(this_ptr, SL("params"), param, value); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setParams) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *params_param = NULL; + zval params; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(¶ms); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(params) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, ¶ms_param); + zephir_get_arrval(¶ms, params_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("params"), ¶ms); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setReturnedValue) +{ + zval *value, value_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&value_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &value); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("returnedValue"), value); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setActionSuffix) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *actionSuffix_param = NULL; + zval actionSuffix; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&actionSuffix); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(actionSuffix) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &actionSuffix_param); + zephir_get_strval(&actionSuffix, actionSuffix_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("actionSuffix"), &actionSuffix); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setEventsManager) +{ + zval *eventsManager, eventsManager_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&eventsManager_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setHandlerSuffix) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *handlerSuffix_param = NULL; + zval handlerSuffix; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&handlerSuffix); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(handlerSuffix) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &handlerSuffix_param); + zephir_get_strval(&handlerSuffix, handlerSuffix_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("handlerSuffix"), &handlerSuffix); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setModelBinder) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *modelBinder, modelBinder_sub, *cache = NULL, cache_sub, __$true, __$false, __$null, container, _0$$3, _1$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&modelBinder_sub); + ZVAL_UNDEF(&cache_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_OBJECT_OF_CLASS(modelBinder, phalcon_mvc_model_binderinterface_ce) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(cache) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &modelBinder, &cache); + if (!cache) { + cache = &cache_sub; + ZEPHIR_CPY_WRT(cache, &__$null); + } else { + ZEPHIR_SEPARATE_PARAM(cache); + } + + + if (Z_TYPE_P(cache) == IS_STRING) { + zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_0$$3); + ZEPHIR_CALL_METHOD(&_1$$3, &container, "get", NULL, 0, cache); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(cache, &_1$$3); + } + if (Z_TYPE_P(cache) != IS_NULL) { + ZEPHIR_CALL_METHOD(NULL, modelBinder, "setcache", NULL, 0, cache); + zephir_check_call_status(); + } + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("modelBinding"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("modelBinding"), &__$false); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("modelBinder"), modelBinder); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setModuleName) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *moduleName_param = NULL; + zval moduleName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&moduleName); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(moduleName) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &moduleName_param); + zephir_get_strval(&moduleName, moduleName_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("moduleName"), &moduleName); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, setNamespaceName) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *namespaceName_param = NULL; + zval namespaceName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&namespaceName); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(namespaceName) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &namespaceName_param); + zephir_get_strval(&namespaceName, namespaceName_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("namespaceName"), &namespaceName); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, getReturnedValue) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "returnedValue"); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, wasForwarded) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "forwarded"); +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, resolveEmptyProperties) +{ + zval _0, _2, _4, _1$$3, _3$$4, _5$$5; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("namespaceName"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_0))) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("defaultNamespace"), PH_NOISY_CC | PH_READONLY); + zephir_update_property_zval(this_ptr, ZEND_STRL("namespaceName"), &_1$$3); + } + zephir_read_property(&_2, this_ptr, ZEND_STRL("handlerName"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_2))) { + zephir_read_property(&_3$$4, this_ptr, ZEND_STRL("defaultHandler"), PH_NOISY_CC | PH_READONLY); + zephir_update_property_zval(this_ptr, ZEND_STRL("handlerName"), &_3$$4); + } + zephir_read_property(&_4, this_ptr, ZEND_STRL("actionName"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_4))) { + zephir_read_property(&_5$$5, this_ptr, ZEND_STRL("defaultAction"), PH_NOISY_CC | PH_READONLY); + zephir_update_property_zval(this_ptr, ZEND_STRL("actionName"), &_5$$5); + } +} + +static PHP_METHOD(Phalcon_Dispatcher_AbstractDispatcher, toCamelCase) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *input_param = NULL, camelCaseInput, _0, _1$$3, _2$$3, _3$$3; + zval input; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&input); + ZVAL_UNDEF(&camelCaseInput); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(input) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &input_param); + zephir_get_strval(&input, input_param); + + + ZEPHIR_OBS_VAR(&camelCaseInput); + zephir_read_property(&_0, this_ptr, ZEND_STRL("camelCaseMap"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&camelCaseInput, &_0, &input, 0))) { + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, "/[_-]+/"); + ZEPHIR_CALL_FUNCTION(&_2$$3, "preg_split", NULL, 101, &_1$$3, &input); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_1$$3); + ZVAL_STRING(&_1$$3, "ucfirst"); + ZEPHIR_CALL_FUNCTION(&_3$$3, "array_map", NULL, 102, &_1$$3, &_2$$3); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&camelCaseInput); + zephir_fast_join_str(&camelCaseInput, SL(""), &_3$$3); + zephir_update_property_array(this_ptr, SL("camelCaseMap"), &input, &camelCaseInput); + } + RETURN_CCTOR(&camelCaseInput); +} + +zend_object *zephir_init_properties_Phalcon_Dispatcher_AbstractDispatcher(zend_class_entry *class_type) +{ + zval _0, _2, _4, _6, _1$$3, _3$$4, _5$$5, _7$$6; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_7$$6); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("params"), &_1$$3); } -pp259: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp260; - } -pp260: - { - token->opcode = PHQL_T_LIKE; - return 0; + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("handlerHashes"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("handlerHashes"), &_3$$4); } -pp261: - ppch = *++PPCURSOR; - switch (ppch) { - case 'T': - case 't': goto pp300; - default: goto pp59; - } -pp262: - ppch = *++PPCURSOR; - switch (ppch) { - case 'B': - case 'b': goto pp302; - default: goto pp86; - } -pp263: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp264; - } -pp264: - { - token->opcode = PHQL_T_NULL; - return 0; + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("camelCaseMap"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_4) == IS_NULL) { + ZEPHIR_INIT_VAR(&_5$$5); + array_init(&_5$$5); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("camelCaseMap"), &_5$$5); } -pp265: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp303; - default: goto pp59; - } -pp266: - ppch = *++PPCURSOR; - switch (ppch) { - case 'R': - case 'r': goto pp304; - default: goto pp59; - } -pp267: - ppch = *++PPCURSOR; - switch (ppch) { - case 'R': - case 'r': goto pp306; - default: goto pp59; - } -pp268: - ppch = *++PPCURSOR; - switch (ppch) { - case 'T': - case 't': goto pp308; - default: goto pp59; - } -pp269: - ppch = *++PPCURSOR; - switch (ppch) { - case 'C': - case 'c': goto pp310; - default: goto pp59; - } -pp270: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp271; - } -pp271: - { - token->opcode = PHQL_T_THEN; - return 0; + zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("activeMethodMap"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_6) == IS_NULL) { + ZEPHIR_INIT_VAR(&_7$$6); + array_init(&_7$$6); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("activeMethodMap"), &_7$$6); } -pp272: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp273; - } -pp273: - { - token->opcode = PHQL_T_TRUE; - return 0; + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Dispatcher_DispatcherInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Dispatcher, DispatcherInterface, phalcon, dispatcher_dispatcherinterface, phalcon_dispatcher_dispatcherinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, dispatch); +ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, forward); +ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, getActionName); +ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, getActionSuffix); +ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, getHandlerSuffix); +ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, getParam); +ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, getParams); +ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, getReturnedValue); +ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, hasParam); +ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, isFinished); +ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, setActionName); +ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, setActionSuffix); +ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, setDefaultAction); +ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, setDefaultNamespace); +ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, setHandlerSuffix); +ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, setModuleName); +ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, setNamespaceName); +ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, setParam); +ZEPHIR_DOC_METHOD(Phalcon_Dispatcher_DispatcherInterface, setParams); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Dispatcher_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Dispatcher, Exception, phalcon, dispatcher_exception, phalcon_exception_ce, NULL, 0); + + zephir_declare_class_constant_long(phalcon_dispatcher_exception_ce, SL("EXCEPTION_ACTION_NOT_FOUND"), 5); + + zephir_declare_class_constant_long(phalcon_dispatcher_exception_ce, SL("EXCEPTION_CYCLIC_ROUTING"), 1); + + zephir_declare_class_constant_long(phalcon_dispatcher_exception_ce, SL("EXCEPTION_HANDLER_NOT_FOUND"), 2); + + zephir_declare_class_constant_long(phalcon_dispatcher_exception_ce, SL("EXCEPTION_INVALID_HANDLER"), 3); + + zephir_declare_class_constant_long(phalcon_dispatcher_exception_ce, SL("EXCEPTION_INVALID_PARAMS"), 4); + + zephir_declare_class_constant_long(phalcon_dispatcher_exception_ce, SL("EXCEPTION_NO_DI"), 0); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Session_Bag) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Session, Bag, phalcon, session_bag, phalcon_collection_ce, phalcon_session_bag_method_entry, 0); + + zend_declare_property_null(phalcon_session_bag_ce, SL("container"), ZEND_ACC_PRIVATE); + zend_declare_property_null(phalcon_session_bag_ce, SL("name"), ZEND_ACC_PRIVATE); + zend_declare_property_null(phalcon_session_bag_ce, SL("session"), ZEND_ACC_PRIVATE); + zend_class_implements(phalcon_session_bag_ce, 1, phalcon_di_injectionawareinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Session_Bag, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL, *_3 = NULL, *_7 = NULL; + zval *name_param = NULL, container, data, session, _5, _6, _1$$3, _2$$3, _4$$3; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&session); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + + + zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); + ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_0, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_session_exception_ce); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "the 'session' service"); + ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_session_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Session/Bag.zep", 66); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_VAR(&_5); + ZVAL_STRING(&_5, "session"); + ZEPHIR_CALL_METHOD(&session, &container, "getshared", NULL, 0, &_5); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), &container); + zephir_update_property_zval(this_ptr, ZEND_STRL("session"), &session); + zephir_read_property(&_6, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&data, &session, "get", NULL, 0, &_6); + zephir_check_call_status(); + if (Z_TYPE_P(&data) != IS_ARRAY) { + ZEPHIR_INIT_NVAR(&data); + array_init(&data); + } + ZEPHIR_CALL_PARENT(NULL, phalcon_session_bag_ce, getThis(), "__construct", &_7, 0, &data); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Session_Bag, clear) +{ + zval _1, _2; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_PARENT(NULL, phalcon_session_bag_ce, getThis(), "clear", &_0, 0); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("session"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_2, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_1, "remove", NULL, 0, &_2); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Session_Bag, getDI) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "container"); +} + +static PHP_METHOD(Phalcon_Session_Bag, init) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *data_param = NULL; + zval data; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&data); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(data) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &data_param); + if (!data_param) { + ZEPHIR_INIT_VAR(&data); + array_init(&data); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&data, data_param); + } + + + ZEPHIR_CALL_PARENT(NULL, phalcon_session_bag_ce, getThis(), "init", &_0, 0, &data); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Session_Bag, remove) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *element_param = NULL, _1, _2, _3; + zval element; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&element); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(element) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &element_param); + if (UNEXPECTED(Z_TYPE_P(element_param) != IS_STRING && Z_TYPE_P(element_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'element' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(element_param) == IS_STRING)) { + zephir_get_strval(&element, element_param); + } else { + ZEPHIR_INIT_VAR(&element); + } + + + ZEPHIR_CALL_PARENT(NULL, phalcon_session_bag_ce, getThis(), "remove", &_0, 0, &element); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("session"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_2, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_3, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_1, "set", NULL, 0, &_2, &_3); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Session_Bag, set) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *element_param = NULL, *value, value_sub, _1, _2, _3; + zval element; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&element); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(element) + Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &element_param, &value); + if (UNEXPECTED(Z_TYPE_P(element_param) != IS_STRING && Z_TYPE_P(element_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'element' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(element_param) == IS_STRING)) { + zephir_get_strval(&element, element_param); + } else { + ZEPHIR_INIT_VAR(&element); + } + + + ZEPHIR_CALL_PARENT(NULL, phalcon_session_bag_ce, getThis(), "set", &_0, 0, &element, value); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("session"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_2, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_3, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_1, "set", NULL, 0, &_2, &_3); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Session_Bag, setDI) +{ + zval *container, container_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&container_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &container); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Session_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Session, Exception, phalcon, session_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Session_Manager) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Session, Manager, phalcon, session_manager, phalcon_di_abstractinjectionaware_ce, phalcon_session_manager_method_entry, 0); + + zend_declare_property_null(phalcon_session_manager_ce, SL("adapter"), ZEND_ACC_PRIVATE); + zend_declare_property_string(phalcon_session_manager_ce, SL("name"), "", ZEND_ACC_PRIVATE); + zend_declare_property_null(phalcon_session_manager_ce, SL("options"), ZEND_ACC_PRIVATE); + zend_declare_property_string(phalcon_session_manager_ce, SL("uniqueId"), "", ZEND_ACC_PRIVATE); + phalcon_session_manager_ce->create_object = zephir_init_properties_Phalcon_Session_Manager; + + zend_class_implements(phalcon_session_manager_ce, 1, phalcon_session_managerinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Session_Manager, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *options_param = NULL; + zval options; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&options); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + zephir_get_arrval(&options, options_param); + } + + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setoptions", NULL, 0, &options); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Session_Manager, __get) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL; + zval key; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &key_param); + zephir_get_strval(&key, key_param); + + + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "get", NULL, 0, &key); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Session_Manager, __isset) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL; + zval key; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &key_param); + zephir_get_strval(&key, key_param); + + + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "has", NULL, 0, &key); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Session_Manager, __set) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, *value, value_sub; + zval key; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(key) + Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &key_param, &value); + zephir_get_strval(&key, key_param); + + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "set", NULL, 0, &key, value); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Session_Manager, __unset) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL; + zval key; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &key_param); + zephir_get_strval(&key, key_param); + + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "remove", NULL, 0, &key); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Session_Manager, destroy) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval _SESSION, _0; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_SESSION); + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + zephir_get_global(&_SESSION, SL("_SESSION")); + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "exists", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_TRUE_IDENTICAL(&_0)) { + ZEPHIR_CALL_FUNCTION(NULL, "session_destroy", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_SESSION); + array_init(&_SESSION); + } + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Session_Manager, exists) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_FUNCTION(&_0, "session_status", NULL, 0); + zephir_check_call_status(); + RETURN_MM_BOOL(ZEPHIR_IS_LONG_IDENTICAL(&_0, 2)); +} + +static PHP_METHOD(Phalcon_Session_Manager, get) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_1 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool remove; + zval *key_param = NULL, *defaultValue = NULL, defaultValue_sub, *remove_param = NULL, _SESSION, __$null, uniqueKey, value, _0; + zval key; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_UNDEF(&_SESSION); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&uniqueKey); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(key) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(defaultValue) + Z_PARAM_BOOL(remove) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_get_global(&_SESSION, SL("_SESSION")); + zephir_fetch_params(1, 1, 2, &key_param, &defaultValue, &remove_param); + zephir_get_strval(&key, key_param); + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; + } + if (!remove_param) { + remove = 0; + } else { + remove = zephir_get_boolval(remove_param); + } + + + ZEPHIR_INIT_VAR(&value); + ZVAL_NULL(&value); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "exists", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_0)) { + RETURN_CCTOR(&value); + } + ZEPHIR_CALL_METHOD(&uniqueKey, this_ptr, "getuniquekey", NULL, 0, &key); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&value, phalcon_helper_arr_ce, "get", &_1, 16, &_SESSION, &uniqueKey, defaultValue); + zephir_check_call_status(); + if (remove) { + zephir_array_unset(&_SESSION, &uniqueKey, PH_SEPARATE); + } + RETURN_CCTOR(&value); +} + +static PHP_METHOD(Phalcon_Session_Manager, getAdapter) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "adapter"); +} + +static PHP_METHOD(Phalcon_Session_Manager, getId) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + + + ZEPHIR_MM_GROW(); + + ZEPHIR_RETURN_CALL_FUNCTION("session_id", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Session_Manager, getName) +{ + zval _0, _1, _2$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$3); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, ""); + if (ZEPHIR_IS_IDENTICAL(&_1, &_0)) { + ZEPHIR_CALL_FUNCTION(&_2$$3, "session_name", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &_2$$3); + } + RETURN_MM_MEMBER(getThis(), "name"); +} + +static PHP_METHOD(Phalcon_Session_Manager, has) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, _SESSION, uniqueKey, _0; + zval key; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_SESSION); + ZVAL_UNDEF(&uniqueKey); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_get_global(&_SESSION, SL("_SESSION")); + zephir_fetch_params(1, 1, 0, &key_param); + zephir_get_strval(&key, key_param); + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "exists", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_0)) { + RETURN_MM_BOOL(0); + } + ZEPHIR_CALL_METHOD(&uniqueKey, this_ptr, "getuniquekey", NULL, 0, &key); + zephir_check_call_status(); + RETURN_MM_BOOL(zephir_array_isset(&_SESSION, &uniqueKey)); +} + +static PHP_METHOD(Phalcon_Session_Manager, getOptions) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "options"); +} + +static PHP_METHOD(Phalcon_Session_Manager, regenerateId) +{ + zend_bool delete = 0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *deleteOldSession = NULL, deleteOldSession_sub, __$true, _0, _1$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&deleteOldSession_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL(deleteOldSession) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &deleteOldSession); + if (!deleteOldSession) { + deleteOldSession = &deleteOldSession_sub; + deleteOldSession = &__$true; + } + + + delete = zephir_get_boolval(deleteOldSession); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "exists", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_TRUE_IDENTICAL(&_0)) { + ZVAL_BOOL(&_1$$3, (delete ? 1 : 0)); + ZEPHIR_CALL_FUNCTION(NULL, "session_regenerate_id", NULL, 0, &_1$$3); + zephir_check_call_status(); + } + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Session_Manager, remove) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, _SESSION, _0, uniqueKey; + zval key; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_SESSION); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&uniqueKey); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_get_global(&_SESSION, SL("_SESSION")); + zephir_fetch_params(1, 1, 0, &key_param); + zephir_get_strval(&key, key_param); + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "exists", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_0)) { + RETURN_MM_NULL(); + } + ZEPHIR_CALL_METHOD(&uniqueKey, this_ptr, "getuniquekey", NULL, 0, &key); + zephir_check_call_status(); + zephir_array_unset(&_SESSION, &uniqueKey, PH_SEPARATE); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Session_Manager, set) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, *value, value_sub, _SESSION, uniqueKey, _0; + zval key; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&_SESSION); + ZVAL_UNDEF(&uniqueKey); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(key) + Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_get_global(&_SESSION, SL("_SESSION")); + zephir_fetch_params(1, 2, 0, &key_param, &value); + zephir_get_strval(&key, key_param); + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "exists", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_0)) { + RETURN_MM_NULL(); + } + ZEPHIR_CALL_METHOD(&uniqueKey, this_ptr, "getuniquekey", NULL, 0, &key); + zephir_check_call_status(); + zephir_array_update_zval(&_SESSION, &uniqueKey, value, PH_COPY | PH_SEPARATE); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Session_Manager, setAdapter) +{ + zval *adapter, adapter_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&adapter_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(adapter, php_session_iface_entry) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &adapter); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("adapter"), adapter); + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Session_Manager, setId) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *id_param = NULL, _0, _1$$3; + zval id, _2$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&id); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(id) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &id_param); + zephir_get_strval(&id, id_param); + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "exists", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_IS_TRUE_IDENTICAL(&_0))) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, spl_ce_RuntimeException); + ZEPHIR_INIT_VAR(&_2$$3); + ZEPHIR_CONCAT_SS(&_2$$3, "The session has already been started. ", "To change the id, use regenerateId()"); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 270, &_2$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Session/Manager.zep", 254); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_FUNCTION(NULL, "session_id", NULL, 0, &id); + zephir_check_call_status(); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Session_Manager, setName) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, _0, _1, _2, _3, _4; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + zephir_get_strval(&name, name_param); + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "exists", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(zephir_is_true(&_0))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_InvalidArgumentException, "Cannot set session name after a session has started", "phalcon/Session/Manager.zep", 277); + return; + } + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "/^[\\p{L}\\p{N}_-]+$/u"); + ZEPHIR_INIT_VAR(&_3); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "/^[\\p{L}\\p{N}_-]+$/u"); + zephir_preg_match(&_3, &_4, &name, &_1, 0, 0 , 0 ); + if (UNEXPECTED(!zephir_is_true(&_3))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_InvalidArgumentException, "The name contains non alphanum characters", "phalcon/Session/Manager.zep", 283); + return; + } + zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); + ZEPHIR_CALL_FUNCTION(NULL, "session_name", NULL, 0, &name); + zephir_check_call_status(); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Session_Manager, setOptions) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_1 = NULL; + zval *options_param = NULL, _0, _2, _3; + zval options; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &options_param); + zephir_get_arrval(&options, options_param); + + + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "uniqueId"); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, ""); + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("uniqueId"), &_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Session_Manager, start) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval _COOKIE, name, value, _0, _1, _2, _7, _3$$6, _4$$6, _5$$6, _6$$6; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_COOKIE); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_3$$6); + ZVAL_UNDEF(&_4$$6); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&_6$$6); + + + ZEPHIR_MM_GROW(); + zephir_get_global(&_COOKIE, SL("_COOKIE")); + + ZEPHIR_CALL_METHOD(&name, this_ptr, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "exists", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_TRUE_IDENTICAL(&_0)) { + RETURN_MM_BOOL(1); + } + ZEPHIR_CALL_FUNCTION(&_1, "headers_sent", NULL, 361); + zephir_check_call_status(); + if (ZEPHIR_IS_TRUE_IDENTICAL(&_1)) { + RETURN_MM_BOOL(0); + } + ZEPHIR_OBS_VAR(&_2); + zephir_read_property(&_2, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC); + if (UNEXPECTED(!(zephir_is_instance_of(&_2, SL("SessionHandlerInterface"))))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_session_exception_ce, "The session adapter is not valid", "phalcon/Session/Manager.zep", 327); + return; + } + ZEPHIR_OBS_VAR(&value); + if (zephir_array_isset_fetch(&value, &_COOKIE, &name, 0)) { + ZEPHIR_INIT_VAR(&_3$$6); + ZEPHIR_INIT_VAR(&_4$$6); + ZVAL_STRING(&_4$$6, "/^[a-z0-9]+$/iD"); + ZEPHIR_INIT_VAR(&_5$$6); + ZEPHIR_INIT_VAR(&_6$$6); + ZVAL_STRING(&_6$$6, "/^[a-z0-9]+$/iD"); + zephir_preg_match(&_5$$6, &_6$$6, &value, &_3$$6, 0, 0 , 0 ); + if (!(zephir_is_true(&_5$$6))) { + zephir_array_unset(&_COOKIE, &name, PH_SEPARATE); } -pp274: - ppch = *++PPCURSOR; - switch (ppch) { - case 'T': - case 't': goto pp311; - default: goto pp59; - } -pp275: - ppch = *++PPCURSOR; - switch (ppch) { - case 'G': - case 'g': goto pp312; - default: goto pp59; - } -pp276: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp314; - default: goto pp59; - } -pp277: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp278; - } -pp278: - { - token->opcode = PHQL_T_WHEN; - return 0; + } + zephir_read_property(&_7, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(NULL, "session_set_save_handler", NULL, 0, &_7); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_FUNCTION("session_start", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Session_Manager, status) +{ + zval status; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&status); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_FUNCTION(&status, "session_status", NULL, 0); + zephir_check_call_status(); + do { + if (ZEPHIR_IS_LONG(&status, 0)) { + RETURN_MM_LONG(0); } -pp279: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp315; - default: goto pp59; - } -pp280: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp281; - } -pp281: - { - token->opcode = PHQL_T_WITH; - return 0; + if (ZEPHIR_IS_LONG(&status, 2)) { + RETURN_MM_LONG(2); } -pp282: - ppch = *++PPCURSOR; - switch (ppch) { - case 'S': - case 's': goto pp317; - default: goto pp59; - } -pp283: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp318; - default: goto pp59; - } -pp284: - ppch = *++PPCURSOR; - switch (ppch) { - case 'R': - case 'r': goto pp319; - default: goto pp59; - } -pp285: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp286; - } -pp286: - { - token->opcode = PHQL_T_CROSS; - return 0; + } while(0); + + RETURN_MM_LONG(1); +} + +static PHP_METHOD(Phalcon_Session_Manager, getUniqueKey) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *key_param = NULL, uniqueId, _0, _1$$3; + zval key; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&uniqueId); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &key_param); + zephir_get_strval(&key, key_param); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("uniqueId"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&uniqueId, &_0); + if (!(ZEPHIR_IS_EMPTY(&uniqueId))) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("uniqueId"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CONCAT_VSV(return_value, &_1$$3, "#", &key); + RETURN_MM(); + } else { + RETURN_CTOR(&key); + } +} + +zend_object *zephir_init_properties_Phalcon_Session_Manager(zend_class_entry *class_type) +{ + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); } -pp287: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp320; - default: goto pp59; + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Session_ManagerInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Session, ManagerInterface, phalcon, session_managerinterface, phalcon_session_managerinterface_method_entry); + + zephir_declare_class_constant_long(phalcon_session_managerinterface_ce, SL("SESSION_ACTIVE"), 2); + + zephir_declare_class_constant_long(phalcon_session_managerinterface_ce, SL("SESSION_DISABLED"), 0); + + zephir_declare_class_constant_long(phalcon_session_managerinterface_ce, SL("SESSION_NONE"), 1); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, __get); +ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, __isset); +ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, __set); +ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, __unset); +ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, exists); +ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, destroy); +ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, get); +ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, getId); +ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, getAdapter); +ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, getName); +ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, getOptions); +ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, has); +ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, remove); +ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, set); +ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, setAdapter); +ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, setId); +ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, setName); +ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, setOptions); +ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, status); +ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, start); +ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, regenerateId); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Session_Adapter_AbstractAdapter) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Session\\Adapter, AbstractAdapter, phalcon, session_adapter_abstractadapter, phalcon_session_adapter_abstractadapter_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_session_adapter_abstractadapter_ce, SL("adapter"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_session_adapter_abstractadapter_ce, 1, php_session_iface_entry); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Session_Adapter_AbstractAdapter, close) +{ + zval *this_ptr = getThis(); + + + + RETURN_BOOL(1); +} + +static PHP_METHOD(Phalcon_Session_Adapter_AbstractAdapter, destroy) +{ + zend_bool _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *id, id_sub, _1, _2, _3$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&id_sub); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(id) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &id); + + + _0 = !(ZEPHIR_IS_EMPTY(id)); + if (_0) { + zephir_read_property(&_1, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_2, &_1, "has", NULL, 0, id); + zephir_check_call_status(); + _0 = zephir_is_true(&_2); + } + if (_0) { + zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_3$$3, "delete", NULL, 0, id); + zephir_check_call_status(); + RETURN_MM(); + } + RETURN_MM_BOOL(1); +} + +static PHP_METHOD(Phalcon_Session_Adapter_AbstractAdapter, gc) +{ + zval *maxlifetime, maxlifetime_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&maxlifetime_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(maxlifetime) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &maxlifetime); + + + RETURN_BOOL(1); +} + +static PHP_METHOD(Phalcon_Session_Adapter_AbstractAdapter, read) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *id, id_sub, data, _0, _1; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&id_sub); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(id) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &id); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&data, &_0, "get", NULL, 0, id); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + if (Z_TYPE_P(&data) == IS_NULL) { + ZVAL_STRING(&_1, ""); + } else { + ZEPHIR_CPY_WRT(&_1, &data); + } + RETURN_CCTOR(&_1); +} + +static PHP_METHOD(Phalcon_Session_Adapter_AbstractAdapter, open) +{ + zval *savePath, savePath_sub, *sessionName, sessionName_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&savePath_sub); + ZVAL_UNDEF(&sessionName_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(savePath) + Z_PARAM_ZVAL(sessionName) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(2, 0, &savePath, &sessionName); + + + RETURN_BOOL(1); +} + +static PHP_METHOD(Phalcon_Session_Adapter_AbstractAdapter, write) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *id, id_sub, *data, data_sub, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&id_sub); + ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(id) + Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &id, &data); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "set", NULL, 0, id, data); + zephir_check_call_status(); + RETURN_MM(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Session_Adapter_Libmemcached) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Session\\Adapter, Libmemcached, phalcon, session_adapter_libmemcached, phalcon_session_adapter_abstractadapter_ce, phalcon_session_adapter_libmemcached_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Session_Adapter_Libmemcached, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_1 = NULL; + zval options; + zval *factory, factory_sub, *options_param = NULL, _0, _2, _3, _4; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&factory_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&options); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_storage_adapterfactory_ce) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &factory, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } + + + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "prefix"); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "sess-memc-"); + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("prefix"), &_0, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "libmemcached"); + ZEPHIR_CALL_METHOD(&_4, factory, "newinstance", NULL, 0, &_2, &options); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("adapter"), &_4); + ZEPHIR_MM_RESTORE(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Session_Adapter_Noop) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Session\\Adapter, Noop, phalcon, session_adapter_noop, phalcon_session_adapter_noop_method_entry, 0); + + zend_declare_property_null(phalcon_session_adapter_noop_ce, SL("connection"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_session_adapter_noop_ce, SL("options"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_session_adapter_noop_ce, SL("prefix"), "", ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_session_adapter_noop_ce, SL("ttl"), 8600, ZEND_ACC_PROTECTED); + phalcon_session_adapter_noop_ce->create_object = zephir_init_properties_Phalcon_Session_Adapter_Noop; + + zend_class_implements(phalcon_session_adapter_noop_ce, 1, php_session_iface_entry); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Session_Adapter_Noop, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *options_param = NULL, prefix; + zval options; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&prefix); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } + + + ZEPHIR_OBS_VAR(&prefix); + if (!(zephir_array_isset_string_fetch(&prefix, &options, SL("prefix"), 0))) { + ZEPHIR_INIT_NVAR(&prefix); + ZVAL_STRING(&prefix, ""); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &prefix); + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Session_Adapter_Noop, close) +{ + zval *this_ptr = getThis(); + + + + RETURN_BOOL(1); +} + +static PHP_METHOD(Phalcon_Session_Adapter_Noop, destroy) +{ + zval *id, id_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&id_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(id) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &id); + + + RETURN_BOOL(1); +} + +static PHP_METHOD(Phalcon_Session_Adapter_Noop, gc) +{ + zval *maxlifetime, maxlifetime_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&maxlifetime_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(maxlifetime) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &maxlifetime); + + + RETURN_BOOL(1); +} + +static PHP_METHOD(Phalcon_Session_Adapter_Noop, read) +{ + zval *id, id_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&id_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(id) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &id); + + + RETURN_STRING(""); +} + +static PHP_METHOD(Phalcon_Session_Adapter_Noop, open) +{ + zval *savePath, savePath_sub, *sessionName, sessionName_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&savePath_sub); + ZVAL_UNDEF(&sessionName_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(savePath) + Z_PARAM_ZVAL(sessionName) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(2, 0, &savePath, &sessionName); + + + RETURN_BOOL(1); +} + +static PHP_METHOD(Phalcon_Session_Adapter_Noop, write) +{ + zval *id, id_sub, *data, data_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&id_sub); + ZVAL_UNDEF(&data_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(id) + Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(2, 0, &id, &data); + + + RETURN_BOOL(1); +} + +static PHP_METHOD(Phalcon_Session_Adapter_Noop, getPrefixedName) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *name = NULL, name_sub, _1; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name_sub); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name); + ZEPHIR_SEPARATE_PARAM(name); + + + zephir_cast_to_string(&_0, name); + ZEPHIR_CPY_WRT(name, &_0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CONCAT_VV(return_value, &_1, name); + RETURN_MM(); +} + +zend_object *zephir_init_properties_Phalcon_Session_Adapter_Noop(zend_class_entry *class_type) +{ + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Session_Adapter_Redis) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Session\\Adapter, Redis, phalcon, session_adapter_redis, phalcon_session_adapter_abstractadapter_ce, phalcon_session_adapter_redis_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Session_Adapter_Redis, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_1 = NULL; + zval options; + zval *factory, factory_sub, *options_param = NULL, _0, _2, _3, _4; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&factory_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&options); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_storage_adapterfactory_ce) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &factory, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } + + + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "prefix"); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "sess-reds-"); + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("prefix"), &_0, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "redis"); + ZEPHIR_CALL_METHOD(&_4, factory, "newinstance", NULL, 0, &_2, &options); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("adapter"), &_4); + ZEPHIR_MM_RESTORE(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Session_Adapter_Stream) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Session\\Adapter, Stream, phalcon, session_adapter_stream, phalcon_session_adapter_noop_ce, phalcon_session_adapter_stream_method_entry, 0); + + zend_declare_property_string(phalcon_session_adapter_stream_ce, SL("path"), "", ZEND_ACC_PRIVATE); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Session_Adapter_Stream, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL, *_7 = NULL; + zval options, *options_param = NULL, path, _1, _3, _6, _2$$3, _4$$4, _5$$4; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } + + + ZEPHIR_CALL_PARENT(NULL, phalcon_session_adapter_stream_ce, getThis(), "__construct", &_0, 0, &options); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&options, &_1); + ZEPHIR_OBS_VAR(&path); + if (!(zephir_array_isset_string_fetch(&path, &options, SL("savePath"), 0))) { + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "session.save_path"); + ZEPHIR_CALL_FUNCTION(&path, "ini_get", NULL, 0, &_2$$3); + zephir_check_call_status(); + } + ZEPHIR_CALL_FUNCTION(&_3, "is_writable", NULL, 326, &path); + zephir_check_call_status(); + if (UNEXPECTED(!zephir_is_true(&_3))) { + ZEPHIR_INIT_VAR(&_4$$4); + object_init_ex(&_4$$4, phalcon_session_exception_ce); + ZEPHIR_INIT_VAR(&_5$$4); + ZEPHIR_CONCAT_SVS(&_5$$4, "The session save path [", &path, "] is not writable"); + ZEPHIR_CALL_METHOD(NULL, &_4$$4, "__construct", NULL, 8, &_5$$4); + zephir_check_call_status(); + zephir_throw_exception_debug(&_4$$4, "phalcon/Session/Adapter/Stream.zep", 68); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_CE_STATIC(&_6, phalcon_helper_str_ce, "dirseparator", &_7, 129, &path); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("path"), &_6); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Session_Adapter_Stream, destroy) +{ + zend_bool _2; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *id, id_sub, file, _0, _1, _3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&id_sub); + ZVAL_UNDEF(&file); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(id) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &id); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("path"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getprefixedname", NULL, 0, id); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&file); + ZEPHIR_CONCAT_VV(&file, &_0, &_1); + _2 = (zephir_file_exists(&file) == SUCCESS); + if (_2) { + ZEPHIR_CALL_FUNCTION(&_3, "is_file", NULL, 0, &file); + zephir_check_call_status(); + _2 = zephir_is_true(&_3); + } + if (_2) { + ZEPHIR_CALL_FUNCTION(NULL, "unlink", NULL, 131, &file); + zephir_check_call_status(); + } + RETURN_MM_BOOL(1); +} + +static PHP_METHOD(Phalcon_Session_Adapter_Stream, gc) +{ + zend_bool _6$$3, _9$$3, _12$$5, _14$$5; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_8 = NULL, *_11 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *maxlifetime, maxlifetime_sub, file, pattern, time, _0, _1, _2, _3, *_4, _5, _7$$3, _10$$3, _13$$5, _15$$5; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&maxlifetime_sub); + ZVAL_UNDEF(&file); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&time); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_10$$3); + ZVAL_UNDEF(&_13$$5); + ZVAL_UNDEF(&_15$$5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(maxlifetime) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &maxlifetime); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("path"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_1, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&pattern); + ZEPHIR_CONCAT_VVS(&pattern, &_0, &_1, "*"); + ZEPHIR_INIT_VAR(&_2); + zephir_time(&_2); + ZEPHIR_INIT_VAR(&time); + zephir_sub_function(&time, &_2, maxlifetime); + ZEPHIR_CALL_FUNCTION(&_3, "glob", NULL, 0, &pattern); + zephir_check_call_status(); + zephir_is_iterable(&_3, 0, "phalcon/Session/Adapter/Stream.zep", 105); + if (Z_TYPE_P(&_3) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_3), _4) + { + ZEPHIR_INIT_NVAR(&file); + ZVAL_COPY(&file, _4); + _6$$3 = (zephir_file_exists(&file) == SUCCESS); + if (_6$$3) { + ZEPHIR_CALL_FUNCTION(&_7$$3, "is_file", &_8, 0, &file); + zephir_check_call_status(); + _6$$3 = zephir_is_true(&_7$$3); } -pp288: - ppch = *++PPCURSOR; - switch (ppch) { - case 'N': - case 'n': goto pp322; - default: goto pp59; + _9$$3 = _6$$3; + if (_9$$3) { + ZEPHIR_INIT_NVAR(&_10$$3); + zephir_filemtime(&_10$$3, &file); + _9$$3 = ZEPHIR_LT(&_10$$3, &time); } -pp289: - ppch = *++PPCURSOR; - switch (ppch) { - case 'S': - case 's': goto pp323; - default: goto pp59; + if (_9$$3) { + ZEPHIR_CALL_FUNCTION(NULL, "unlink", &_11, 131, &file); + zephir_check_call_status(); } -pp290: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp291; + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_3, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_5, &_3, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_5)) { + break; } -pp291: - { - token->opcode = PHQL_T_FALSE; - return 0; + ZEPHIR_CALL_METHOD(&file, &_3, "current", NULL, 0); + zephir_check_call_status(); + _12$$5 = (zephir_file_exists(&file) == SUCCESS); + if (_12$$5) { + ZEPHIR_CALL_FUNCTION(&_13$$5, "is_file", &_8, 0, &file); + zephir_check_call_status(); + _12$$5 = zephir_is_true(&_13$$5); + } + _14$$5 = _12$$5; + if (_14$$5) { + ZEPHIR_INIT_NVAR(&_15$$5); + zephir_filemtime(&_15$$5, &file); + _14$$5 = ZEPHIR_LT(&_15$$5, &time); + } + if (_14$$5) { + ZEPHIR_CALL_FUNCTION(NULL, "unlink", &_11, 131, &file); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, &_3, "next", NULL, 0); + zephir_check_call_status(); } -pp292: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp293; - } -pp293: - { - token->opcode = PHQL_T_GROUP; - return 0; + } + ZEPHIR_INIT_NVAR(&file); + RETURN_MM_BOOL(1); +} + +static PHP_METHOD(Phalcon_Session_Adapter_Stream, open) +{ + zval *savePath, savePath_sub, *sessionName, sessionName_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&savePath_sub); + ZVAL_UNDEF(&sessionName_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(savePath) + Z_PARAM_ZVAL(sessionName) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(2, 0, &savePath, &sessionName); + + + RETURN_BOOL(1); +} + +static PHP_METHOD(Phalcon_Session_Adapter_Stream, read) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *id, id_sub, data, name, pointer, _0, _1, _2$$3, _3$$3, _4$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&id_sub); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&pointer); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(id) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &id); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("path"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getprefixedname", NULL, 0, id); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&name); + ZEPHIR_CONCAT_VV(&name, &_0, &_1); + ZEPHIR_INIT_VAR(&data); + ZVAL_STRING(&data, ""); + if ((zephir_file_exists(&name) == SUCCESS)) { + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "r"); + ZEPHIR_CALL_FUNCTION(&pointer, "fopen", NULL, 89, &name, &_2$$3); + zephir_check_call_status(); + ZVAL_LONG(&_3$$3, 1); + ZEPHIR_CALL_FUNCTION(&_4$$3, "flock", NULL, 143, &pointer, &_3$$3); + zephir_check_call_status(); + if (zephir_is_true(&_4$$3)) { + ZEPHIR_INIT_NVAR(&data); + zephir_file_get_contents(&data, &name); } -pp294: - ppch = *++PPCURSOR; - switch (ppch) { - case 'G': - case 'g': goto pp325; - default: goto pp59; + zephir_fclose(&pointer); + if (ZEPHIR_IS_FALSE_IDENTICAL(&data)) { + RETURN_MM_STRING(""); + } + } + RETURN_CCTOR(&data); +} + +static PHP_METHOD(Phalcon_Session_Adapter_Stream, write) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *id, id_sub, *data, data_sub, name, _0, _1, _2, _3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&id_sub); + ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(id) + Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &id, &data); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("path"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getprefixedname", NULL, 0, id); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&name); + ZEPHIR_CONCAT_VV(&name, &_0, &_1); + ZVAL_LONG(&_2, 2); + ZEPHIR_CALL_FUNCTION(&_3, "file_put_contents", NULL, 138, &name, data, &_2); + zephir_check_call_status(); + RETURN_MM_BOOL(!ZEPHIR_IS_FALSE_IDENTICAL(&_3)); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Security_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Security, Exception, phalcon, security_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Security_Random) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Security, Random, phalcon, security_random, phalcon_security_random_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Security_Random, base58) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *len_param = NULL, _0, _1, _2; + zend_long len, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_LONG_OR_NULL(len, is_null_true) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &len_param); + if (!len_param) { + len = 0; + } else { + len = zephir_get_intval(len_param); + } + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"); + ZVAL_LONG(&_1, 58); + ZVAL_LONG(&_2, len); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "base", NULL, 0, &_0, &_1, &_2); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_Random, base62) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *len_param = NULL, _0, _1, _2; + zend_long len, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_LONG_OR_NULL(len, is_null_true) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &len_param); + if (!len_param) { + len = 0; + } else { + len = zephir_get_intval(len_param); + } + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"); + ZVAL_LONG(&_1, 62); + ZVAL_LONG(&_2, len); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "base", NULL, 0, &_0, &_1, &_2); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_Random, base64) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *len_param = NULL, _0, _1; + zend_long len, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_LONG_OR_NULL(len, is_null_true) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &len_param); + if (!len_param) { + len = 0; + } else { + len = zephir_get_intval(len_param); + } + + + ZVAL_LONG(&_1, len); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "bytes", NULL, 0, &_1); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_FUNCTION("base64_encode", NULL, 191, &_0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_Random, base64Safe) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_bool padding; + zval *len_param = NULL, *padding_param = NULL, s, _0, _1, _2, _3, _4, _5, _6$$3; + zend_long len, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&s); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 2) + Z_PARAM_OPTIONAL + Z_PARAM_LONG_OR_NULL(len, is_null_true) + Z_PARAM_BOOL(padding) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 2, &len_param, &padding_param); + if (!len_param) { + len = 0; + } else { + len = zephir_get_intval(len_param); + } + if (!padding_param) { + padding = 0; + } else { + padding = zephir_get_boolval(padding_param); + } + + + ZVAL_LONG(&_1, len); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "base64", NULL, 0, &_1); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_2, "base64_encode", NULL, 191, &_0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "+/"); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "-_"); + ZEPHIR_CALL_FUNCTION(&s, "strtr", NULL, 5, &_2, &_3, &_4); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "#[^a-z0-9_=-]+#i"); + ZEPHIR_INIT_NVAR(&_4); + ZVAL_STRING(&_4, ""); + ZEPHIR_CALL_FUNCTION(&_5, "preg_replace", NULL, 50, &_3, &_4, &s); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&s, &_5); + if (!(padding)) { + ZEPHIR_INIT_VAR(&_6$$3); + ZVAL_STRING(&_6$$3, "="); + zephir_fast_trim(return_value, &s, &_6$$3, ZEPHIR_TRIM_RIGHT); + RETURN_MM(); + } + RETURN_CCTOR(&s); +} + +static PHP_METHOD(Phalcon_Security_Random, bytes) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *len_param = NULL, _0; + zend_long len, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(len) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &len_param); + if (!len_param) { + len = 16; + } else { + len = zephir_get_intval(len_param); + } + + + if (len <= 0) { + len = 16; + } + ZVAL_LONG(&_0, len); + ZEPHIR_RETURN_CALL_FUNCTION("random_bytes", NULL, 0, &_0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_Random, hex) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *len_param = NULL, _0, _1, _2, _3; + zend_long len, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_LONG_OR_NULL(len, is_null_true) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &len_param); + if (!len_param) { + len = 0; + } else { + len = zephir_get_intval(len_param); + } + + + ZVAL_LONG(&_1, len); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "bytes", NULL, 0, &_1); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "H*"); + ZEPHIR_CALL_FUNCTION(&_3, "unpack", NULL, 0, &_2, &_0); + zephir_check_call_status(); + ZEPHIR_MAKE_REF(&_3); + ZEPHIR_RETURN_CALL_FUNCTION("array_shift", NULL, 24, &_3); + ZEPHIR_UNREF(&_3); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_Random, number) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *len_param = NULL, _0, _1; + zend_long len, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(len) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &len_param); + len = zephir_get_intval(len_param); + + + if (UNEXPECTED(len <= 0)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_exception_ce, "Require a positive integer > 0", "phalcon/Security/Random.zep", 271); + return; + } + ZVAL_LONG(&_0, 0); + ZVAL_LONG(&_1, len); + ZEPHIR_RETURN_CALL_FUNCTION("random_int", NULL, 0, &_0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_Random, uuid) +{ + zval ary, _0, _1, _2, _3, _4, _5, _6, _7; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&ary); + 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(); + + ZVAL_LONG(&_1, 16); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "bytes", NULL, 0, &_1); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "N1a/n1b/n1c/n1d/n1e/N1f"); + ZEPHIR_CALL_FUNCTION(&_3, "unpack", NULL, 0, &_2, &_0); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&ary, "array_values", NULL, 12, &_3); + zephir_check_call_status(); + zephir_array_fetch_long(&_4, &ary, 2, PH_NOISY | PH_READONLY, "phalcon/Security/Random.zep", 310); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_LONG(&_2, ((((int) (zephir_get_numberval(&_4)) & 0x0fff)) | 0x4000)); + zephir_array_update_long(&ary, 2, &_2, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_fetch_long(&_5, &ary, 3, PH_NOISY | PH_READONLY, "phalcon/Security/Random.zep", 311); + ZEPHIR_INIT_VAR(&_6); + ZVAL_LONG(&_6, ((((int) (zephir_get_numberval(&_5)) & 0x3fff)) | 0x8000)); + zephir_array_update_long(&ary, 3, &_6, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + ZEPHIR_INIT_VAR(&_7); + ZVAL_STRING(&_7, "%08x-%04x-%04x-%04x-%04x%08x"); + ZEPHIR_MAKE_REF(&ary); + ZEPHIR_CALL_FUNCTION(NULL, "array_unshift", NULL, 0, &ary, &_7); + ZEPHIR_UNREF(&ary); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_7); + ZVAL_STRING(&_7, "sprintf"); + ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, &_7, &ary); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_Random, base) +{ + unsigned char _7$$3, _10$$5; + double _4$$3, _8$$5; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_6 = NULL; + zend_long base, ZEPHIR_LAST_CALL_STATUS; + zval *alphabet_param = NULL, *base_param = NULL, *n = NULL, n_sub, __$null, bytes, idx, _0, _1, *_2, _3, _5$$4, _9$$6; + zval alphabet, byteString; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&alphabet); + ZVAL_UNDEF(&byteString); + ZVAL_UNDEF(&n_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&bytes); + ZVAL_UNDEF(&idx); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_9$$6); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(alphabet) + Z_PARAM_LONG(base) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(n) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &alphabet_param, &base_param, &n); + zephir_get_strval(&alphabet, alphabet_param); + base = zephir_get_intval(base_param); + if (!n) { + n = &n_sub; + n = &__$null; + } + + + ZEPHIR_INIT_VAR(&byteString); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "bytes", NULL, 0, n); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "C*"); + ZEPHIR_CALL_FUNCTION(&bytes, "unpack", NULL, 0, &_1, &_0); + zephir_check_call_status(); + zephir_is_iterable(&bytes, 0, "phalcon/Security/Random.zep", 350); + if (Z_TYPE_P(&bytes) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&bytes), _2) + { + ZEPHIR_INIT_NVAR(&idx); + ZVAL_COPY(&idx, _2); + _4$$3 = zephir_safe_mod_zval_long(&idx, 64); + ZEPHIR_INIT_NVAR(&idx); + ZVAL_DOUBLE(&idx, _4$$3); + if (ZEPHIR_GE_LONG(&idx, base)) { + ZVAL_LONG(&_5$$4, (base - 1)); + ZEPHIR_CALL_METHOD(&idx, this_ptr, "number", &_6, 0, &_5$$4); + zephir_check_call_status(); } -pp295: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp296; + _7$$3 = ZEPHIR_STRING_OFFSET(&alphabet, zephir_get_intval(&idx)); + zephir_concat_self_char(&byteString, _7$$3); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &bytes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3, &bytes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3)) { + break; } -pp296: - { - token->opcode = PHQL_T_ILIKE; - return 0; + ZEPHIR_CALL_METHOD(&idx, &bytes, "current", NULL, 0); + zephir_check_call_status(); + _8$$5 = zephir_safe_mod_zval_long(&idx, 64); + ZEPHIR_INIT_NVAR(&idx); + ZVAL_DOUBLE(&idx, _8$$5); + if (ZEPHIR_GE_LONG(&idx, base)) { + ZVAL_LONG(&_9$$6, (base - 1)); + ZEPHIR_CALL_METHOD(&idx, this_ptr, "number", &_6, 0, &_9$$6); + zephir_check_call_status(); + } + _10$$5 = ZEPHIR_STRING_OFFSET(&alphabet, zephir_get_intval(&idx)); + zephir_concat_self_char(&byteString, _10$$5); + ZEPHIR_CALL_METHOD(NULL, &bytes, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&idx); + RETURN_CTOR(&byteString); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Builder) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Security\\JWT, Builder, phalcon, security_jwt_builder, phalcon_security_jwt_builder_method_entry, 0); + + zend_declare_property_null(phalcon_security_jwt_builder_ce, SL("claims"), ZEND_ACC_PRIVATE); + zend_declare_property_null(phalcon_security_jwt_builder_ce, SL("jose"), ZEND_ACC_PRIVATE); + zend_declare_property_null(phalcon_security_jwt_builder_ce, SL("passphrase"), ZEND_ACC_PRIVATE); + zend_declare_property_null(phalcon_security_jwt_builder_ce, SL("signer"), ZEND_ACC_PRIVATE); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *signer, signer_sub, _0, _1, _2, _3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&signer_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(signer, phalcon_security_jwt_signer_signerinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &signer); + + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "init", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("signer"), signer); + zephir_read_property(&_0, this_ptr, ZEND_STRL("jose"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_1, this_ptr, ZEND_STRL("signer"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_2, &_1, "getalgheader", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "alg"); + ZEPHIR_CALL_METHOD(NULL, &_0, "set", NULL, 0, &_3, &_2); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, init) +{ + zval _2; + zval _0, _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, ""); + zephir_update_property_zval(this_ptr, ZEND_STRL("passphrase"), &_0); + ZEPHIR_INIT_NVAR(&_0); + object_init_ex(&_0, phalcon_collection_ce); + ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 22); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("claims"), &_0); + ZEPHIR_INIT_VAR(&_1); + object_init_ex(&_1, phalcon_collection_ce); + ZEPHIR_INIT_VAR(&_2); + zephir_create_array(&_2, 2, 0); + add_assoc_stringl_ex(&_2, SL("typ"), SL("JWT")); + add_assoc_stringl_ex(&_2, SL("alg"), SL("none")); + ZEPHIR_CALL_METHOD(NULL, &_1, "__construct", NULL, 22, &_2); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("jose"), &_1); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, addClaim) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, *value, value_sub, _0; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(name) + Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &name_param, &value); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("claims"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "set", NULL, 0, &name, value); + zephir_check_call_status(); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, getAudience) +{ + zval _0, _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("claims"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "aud"); + ZEPHIR_RETURN_CALL_METHOD(&_0, "get", NULL, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, getClaims) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("claims"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "toarray", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, getContentType) +{ + zval _0, _1, _2, _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("jose"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "cty"); + ZVAL_NULL(&_2); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "string"); + ZEPHIR_RETURN_CALL_METHOD(&_0, "get", NULL, 0, &_1, &_2, &_3); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, getExpirationTime) +{ + zval _0, _1, _2, _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("claims"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "exp"); + ZVAL_NULL(&_2); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "int"); + ZEPHIR_RETURN_CALL_METHOD(&_0, "get", NULL, 0, &_1, &_2, &_3); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, getHeaders) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("jose"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "toarray", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, getId) +{ + zval _0, _1, _2, _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("claims"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "jti"); + ZVAL_NULL(&_2); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "string"); + ZEPHIR_RETURN_CALL_METHOD(&_0, "get", NULL, 0, &_1, &_2, &_3); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, getIssuedAt) +{ + zval _0, _1, _2, _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("claims"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "iat"); + ZVAL_NULL(&_2); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "int"); + ZEPHIR_RETURN_CALL_METHOD(&_0, "get", NULL, 0, &_1, &_2, &_3); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, getIssuer) +{ + zval _0, _1, _2, _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("claims"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "iss"); + ZVAL_NULL(&_2); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "string"); + ZEPHIR_RETURN_CALL_METHOD(&_0, "get", NULL, 0, &_1, &_2, &_3); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, getNotBefore) +{ + zval _0, _1, _2, _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("claims"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "nbf"); + ZVAL_NULL(&_2); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "int"); + ZEPHIR_RETURN_CALL_METHOD(&_0, "get", NULL, 0, &_1, &_2, &_3); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, getSubject) +{ + zval _0, _1, _2, _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("claims"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "sub"); + ZVAL_NULL(&_2); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "string"); + ZEPHIR_RETURN_CALL_METHOD(&_0, "get", NULL, 0, &_1, &_2, &_3); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, getToken) +{ + zval claims, encodedClaims, encodedHeaders, encodedSignature, headers, signature, signatureHash, _0, _2, _4, _5, _6, _7, _8, _9, _10, _11; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_1 = NULL, *_3 = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&claims); + ZVAL_UNDEF(&encodedClaims); + ZVAL_UNDEF(&encodedHeaders); + ZVAL_UNDEF(&encodedSignature); + ZVAL_UNDEF(&headers); + ZVAL_UNDEF(&signature); + ZVAL_UNDEF(&signatureHash); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("passphrase"), PH_NOISY_CC | PH_READONLY); + if (ZEPHIR_IS_EMPTY(&_0)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Invalid passphrase (empty)", "phalcon/Security/JWT/Builder.zep", 198); + return; + } + ZEPHIR_CALL_METHOD(&_4, this_ptr, "getclaims", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_2, phalcon_helper_json_ce, "encode", &_3, 14, &_4); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&encodedClaims, phalcon_helper_base64_ce, "encodeurl", &_1, 0, &_2); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&claims); + object_init_ex(&claims, phalcon_security_jwt_token_item_ce); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "getclaims", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &claims, "__construct", NULL, 0, &_5, &encodedClaims); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_7, this_ptr, "getheaders", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_6, phalcon_helper_json_ce, "encode", &_3, 14, &_7); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&encodedHeaders, phalcon_helper_base64_ce, "encodeurl", &_1, 0, &_6); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&headers); + object_init_ex(&headers, phalcon_security_jwt_token_item_ce); + ZEPHIR_CALL_METHOD(&_8, this_ptr, "getheaders", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &headers, "__construct", NULL, 0, &_8, &encodedHeaders); + zephir_check_call_status(); + zephir_read_property(&_9, this_ptr, ZEND_STRL("signer"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_10); + ZEPHIR_CONCAT_VSV(&_10, &encodedHeaders, ".", &encodedClaims); + zephir_read_property(&_11, this_ptr, ZEND_STRL("passphrase"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&signatureHash, &_9, "sign", NULL, 0, &_10, &_11); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&encodedSignature, phalcon_helper_base64_ce, "encodeurl", &_1, 0, &signatureHash); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&signature); + object_init_ex(&signature, phalcon_security_jwt_token_signature_ce); + ZEPHIR_CALL_METHOD(NULL, &signature, "__construct", NULL, 0, &signatureHash, &encodedSignature); + zephir_check_call_status(); + object_init_ex(return_value, phalcon_security_jwt_token_token_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 0, &headers, &claims, &signature); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, getPassphrase) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "passphrase"); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, setAudience) +{ + zend_bool _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *audience, audience_sub, aud, _1; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&audience_sub); + ZVAL_UNDEF(&aud); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(audience) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &audience); + + + _0 = Z_TYPE_P(audience) != IS_STRING; + if (_0) { + _0 = Z_TYPE_P(audience) != IS_ARRAY; + } + if (_0) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Invalid Audience", "phalcon/Security/JWT/Builder.zep", 248); + return; + } + if (Z_TYPE_P(audience) == IS_STRING) { + ZEPHIR_INIT_VAR(&aud); + zephir_create_array(&aud, 1, 0); + zephir_array_fast_append(&aud, audience); + } else { + ZEPHIR_CPY_WRT(&aud, audience); + } + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "aud"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "setclaim", NULL, 0, &_1, &aud); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, setContentType) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *contentType_param = NULL, _0, _1; + zval contentType; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&contentType); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(contentType) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &contentType_param); + zephir_get_strval(&contentType, contentType_param); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("jose"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "cty"); + ZEPHIR_CALL_METHOD(NULL, &_0, "set", NULL, 0, &_1, &contentType); + zephir_check_call_status(); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, setExpirationTime) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *timestamp_param = NULL, _0, _1, _2; + zend_long timestamp, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(timestamp) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, ×tamp_param); + timestamp = zephir_get_intval(timestamp_param); + + + ZEPHIR_INIT_VAR(&_0); + zephir_time(&_0); + if (ZEPHIR_GT_LONG(&_0, timestamp)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Invalid Expiration Time", "phalcon/Security/JWT/Builder.zep", 293); + return; + } + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "exp"); + ZVAL_LONG(&_2, timestamp); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "setclaim", NULL, 0, &_1, &_2); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, setId) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *id_param = NULL, _0; + zval id; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&id); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(id) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &id_param); + if (UNEXPECTED(Z_TYPE_P(id_param) != IS_STRING && Z_TYPE_P(id_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'id' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(id_param) == IS_STRING)) { + zephir_get_strval(&id, id_param); + } else { + ZEPHIR_INIT_VAR(&id); + } + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "jti"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "setclaim", NULL, 0, &_0, &id); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, setIssuedAt) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *timestamp_param = NULL, _0, _1; + zend_long timestamp, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(timestamp) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, ×tamp_param); + if (UNEXPECTED(Z_TYPE_P(timestamp_param) != IS_LONG)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'timestamp' must be of the type int")); + RETURN_MM_NULL(); + } + timestamp = Z_LVAL_P(timestamp_param); + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "iat"); + ZVAL_LONG(&_1, timestamp); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "setclaim", NULL, 0, &_0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, setIssuer) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *issuer_param = NULL, _0; + zval issuer; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&issuer); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(issuer) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &issuer_param); + if (UNEXPECTED(Z_TYPE_P(issuer_param) != IS_STRING && Z_TYPE_P(issuer_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'issuer' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(issuer_param) == IS_STRING)) { + zephir_get_strval(&issuer, issuer_param); + } else { + ZEPHIR_INIT_VAR(&issuer); + } + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "iss"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "setclaim", NULL, 0, &_0, &issuer); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, setNotBefore) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *timestamp_param = NULL, _0, _1, _2; + zend_long timestamp, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(timestamp) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, ×tamp_param); + if (UNEXPECTED(Z_TYPE_P(timestamp_param) != IS_LONG)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'timestamp' must be of the type int")); + RETURN_MM_NULL(); + } + timestamp = Z_LVAL_P(timestamp_param); + + + ZEPHIR_INIT_VAR(&_0); + zephir_time(&_0); + if (ZEPHIR_LT_LONG(&_0, timestamp)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Invalid Not Before", "phalcon/Security/JWT/Builder.zep", 367); + return; + } + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "nbf"); + ZVAL_LONG(&_2, timestamp); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "setclaim", NULL, 0, &_1, &_2); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, setSubject) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *subject_param = NULL, _0; + zval subject; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&subject); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(subject) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &subject_param); + if (UNEXPECTED(Z_TYPE_P(subject_param) != IS_STRING && Z_TYPE_P(subject_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'subject' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(subject_param) == IS_STRING)) { + zephir_get_strval(&subject, subject_param); + } else { + ZEPHIR_INIT_VAR(&subject); + } + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "sub"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "setclaim", NULL, 0, &_0, &subject); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, setPassphrase) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *passphrase_param = NULL, _0, _1, _2, _3; + zval passphrase; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&passphrase); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(passphrase) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &passphrase_param); + if (UNEXPECTED(Z_TYPE_P(passphrase_param) != IS_STRING && Z_TYPE_P(passphrase_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'passphrase' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(passphrase_param) == IS_STRING)) { + zephir_get_strval(&passphrase, passphrase_param); + } else { + ZEPHIR_INIT_VAR(&passphrase); + } + + + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "/(?=^.{16,}$)((?=.*\\d)|(?=.*\\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$/"); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "/(?=^.{16,}$)((?=.*\\d)|(?=.*\\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$/"); + zephir_preg_match(&_2, &_3, &passphrase, &_0, 0, 0 , 0 ); + if (!(zephir_is_true(&_2))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Invalid passphrase (too weak)", "phalcon/Security/JWT/Builder.zep", 405); + return; + } + zephir_update_property_zval(this_ptr, ZEND_STRL("passphrase"), &passphrase); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Builder, setClaim) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, *value, value_sub, _0; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(name) + Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &name_param, &value); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("claims"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "set", NULL, 0, &name, value); + zephir_check_call_status(); + RETURN_THIS(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Validator) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Security\\JWT, Validator, phalcon, security_jwt_validator, phalcon_security_jwt_validator_method_entry, 0); + + zend_declare_property_long(phalcon_security_jwt_validator_ce, SL("timeShift"), 0, ZEND_ACC_PRIVATE); + zend_declare_property_null(phalcon_security_jwt_validator_ce, SL("token"), ZEND_ACC_PRIVATE); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Security_JWT_Validator, __construct) +{ + zend_long timeShift; + zval *token, token_sub, *timeShift_param = NULL, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&token_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_OBJECT_OF_CLASS(token, phalcon_security_jwt_token_token_ce) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(timeShift) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 1, &token, &timeShift_param); + if (!timeShift_param) { + timeShift = 0; + } else { + timeShift = zephir_get_intval(timeShift_param); + } + + + zephir_update_property_zval(this_ptr, ZEND_STRL("token"), token); + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, timeShift); + zephir_update_property_zval(this_ptr, ZEND_STRL("timeShift"), &_0); +} + +static PHP_METHOD(Phalcon_Security_JWT_Validator, setToken) +{ + zval *token, token_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&token_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(token, phalcon_security_jwt_token_token_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &token); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("token"), token); + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Validator, validateAudience) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *audience_param = NULL, _0, _1, _2, _3, _4; + zval audience; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&audience); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(audience) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &audience_param); + if (UNEXPECTED(Z_TYPE_P(audience_param) != IS_STRING && Z_TYPE_P(audience_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'audience' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(audience_param) == IS_STRING)) { + zephir_get_strval(&audience, audience_param); + } else { + ZEPHIR_INIT_VAR(&audience); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("token"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "getclaims", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_3); + array_init(&_3); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "aud"); + ZEPHIR_CALL_METHOD(&_2, &_1, "get", NULL, 0, &_4, &_3); + zephir_check_call_status(); + if (!(zephir_fast_in_array(&audience, &_2))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Validation: audience not allowed", "phalcon/Security/JWT/Validator.zep", 71); + return; + } + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Validator, validateExpiration) +{ + zend_bool _4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *timestamp_param = NULL, _0, _1, _2, _3, _5, _6, _7, _8; + zend_long timestamp, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(timestamp) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, ×tamp_param); + timestamp = zephir_get_intval(timestamp_param); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("token"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "getclaims", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "exp"); + ZEPHIR_CALL_METHOD(&_2, &_1, "has", NULL, 0, &_3); + zephir_check_call_status(); + _4 = zephir_is_true(&_2); + if (_4) { + ZVAL_LONG(&_6, timestamp); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "gettimestamp", NULL, 0, &_6); + zephir_check_call_status(); + zephir_read_property(&_6, this_ptr, ZEND_STRL("token"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_7, &_6, "getclaims", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "exp"); + ZEPHIR_CALL_METHOD(&_8, &_7, "get", NULL, 0, &_3); + zephir_check_call_status(); + _4 = ZEPHIR_GE_LONG(&_5, zephir_get_intval(&_8)); + } + if (_4) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Validation: the token has expired", "phalcon/Security/JWT/Validator.zep", 91); + return; + } + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Validator, validateId) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *id_param = NULL, _0, _1, _2, _3; + zval id, _4; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&id); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(id) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &id_param); + if (UNEXPECTED(Z_TYPE_P(id_param) != IS_STRING && Z_TYPE_P(id_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'id' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(id_param) == IS_STRING)) { + zephir_get_strval(&id, id_param); + } else { + ZEPHIR_INIT_VAR(&id); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("token"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "getclaims", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "jti"); + ZEPHIR_CALL_METHOD(&_2, &_1, "get", NULL, 0, &_3); + zephir_check_call_status(); + zephir_cast_to_string(&_4, &_2); + if (!ZEPHIR_IS_IDENTICAL(&id, &_4)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Validation: incorrect Id", "phalcon/Security/JWT/Validator.zep", 108); + return; + } + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Validator, validateIssuedAt) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *timestamp_param = NULL, _0, _1, _2, _3, _4; + zend_long timestamp, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(timestamp) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, ×tamp_param); + timestamp = zephir_get_intval(timestamp_param); + + + ZVAL_LONG(&_1, timestamp); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "gettimestamp", NULL, 0, &_1); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("token"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_2, &_1, "getclaims", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "iat"); + ZEPHIR_CALL_METHOD(&_3, &_2, "get", NULL, 0, &_4); + zephir_check_call_status(); + if (ZEPHIR_LE_LONG(&_0, zephir_get_intval(&_3))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Validation: the token cannot be used yet (future)", "phalcon/Security/JWT/Validator.zep", 125); + return; + } + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Validator, validateIssuer) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *issuer_param = NULL, _0, _1, _2, _3; + zval issuer, _4; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&issuer); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(issuer) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &issuer_param); + if (UNEXPECTED(Z_TYPE_P(issuer_param) != IS_STRING && Z_TYPE_P(issuer_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'issuer' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(issuer_param) == IS_STRING)) { + zephir_get_strval(&issuer, issuer_param); + } else { + ZEPHIR_INIT_VAR(&issuer); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("token"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "getclaims", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "iss"); + ZEPHIR_CALL_METHOD(&_2, &_1, "get", NULL, 0, &_3); + zephir_check_call_status(); + zephir_cast_to_string(&_4, &_2); + if (!ZEPHIR_IS_IDENTICAL(&issuer, &_4)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Validation: incorrect issuer", "phalcon/Security/JWT/Validator.zep", 142); + return; + } + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Validator, validateNotBefore) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *timestamp_param = NULL, _0, _1, _2, _3, _4; + zend_long timestamp, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(timestamp) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, ×tamp_param); + timestamp = zephir_get_intval(timestamp_param); + + + ZVAL_LONG(&_1, timestamp); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "gettimestamp", NULL, 0, &_1); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("token"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_2, &_1, "getclaims", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "nbf"); + ZEPHIR_CALL_METHOD(&_3, &_2, "get", NULL, 0, &_4); + zephir_check_call_status(); + if (ZEPHIR_LE_LONG(&_0, zephir_get_intval(&_3))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Validation: the token cannot be used yet (not before)", "phalcon/Security/JWT/Validator.zep", 159); + return; + } + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Validator, validateSignature) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval passphrase; + zval *signer, signer_sub, *passphrase_param = NULL, _0, _1, _2, _3, _4, _5; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&signer_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&passphrase); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(signer, phalcon_security_jwt_signer_signerinterface_ce) + Z_PARAM_STR(passphrase) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &signer, &passphrase_param); + zephir_get_strval(&passphrase, passphrase_param); + + + zephir_read_property(&_1, this_ptr, ZEND_STRL("token"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_2, &_1, "getsignature", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_3, &_2, "gethash", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_4, this_ptr, ZEND_STRL("token"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_5, &_4, "getpayload", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, signer, "verify", NULL, 0, &_3, &_5, &passphrase); + zephir_check_call_status(); + if (!zephir_is_true(&_0)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Validation: the signature does not match", "phalcon/Security/JWT/Validator.zep", 183); + return; + } + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Validator, getTimestamp) +{ + zval *timestamp_param = NULL, _0; + zend_long timestamp; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(timestamp) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, ×tamp_param); + timestamp = zephir_get_intval(timestamp_param); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("timeShift"), PH_NOISY_CC | PH_READONLY); + RETURN_LONG((timestamp + zephir_get_numberval(&_0))); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Token_AbstractItem) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Security\\JWT\\Token, AbstractItem, phalcon, security_jwt_token_abstractitem, phalcon_security_jwt_token_abstractitem_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_security_jwt_token_abstractitem_ce, SL("data"), ZEND_ACC_PROTECTED); + phalcon_security_jwt_token_abstractitem_ce->create_object = zephir_init_properties_Phalcon_Security_JWT_Token_AbstractItem; + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Security_JWT_Token_AbstractItem, getEncoded) +{ + zval _0, _1; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_1, &_0, SL("encoded"), PH_NOISY | PH_READONLY, "phalcon/Security/JWT/Token/AbstractItem.zep", 30); + RETURN_CTORW(&_1); +} + +zend_object *zephir_init_properties_Phalcon_Security_JWT_Token_AbstractItem(zend_class_entry *class_type) +{ + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("data"), &_1$$3); } -pp297: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp298; - } -pp298: - { - token->opcode = PHQL_T_INNER; - return 0; + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Token_Enum) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Security\\JWT\\Token, Enum, phalcon, security_jwt_token_enum, NULL, 0); + + zephir_declare_class_constant_string(phalcon_security_jwt_token_enum_ce, SL("TYPE"), "typ"); + + zephir_declare_class_constant_string(phalcon_security_jwt_token_enum_ce, SL("ALGO"), "alg"); + + zephir_declare_class_constant_string(phalcon_security_jwt_token_enum_ce, SL("CONTENT_TYPE"), "cty"); + + zephir_declare_class_constant_string(phalcon_security_jwt_token_enum_ce, SL("AUDIENCE"), "aud"); + + zephir_declare_class_constant_string(phalcon_security_jwt_token_enum_ce, SL("EXPIRATION_TIME"), "exp"); + + zephir_declare_class_constant_string(phalcon_security_jwt_token_enum_ce, SL("ID"), "jti"); + + zephir_declare_class_constant_string(phalcon_security_jwt_token_enum_ce, SL("ISSUED_AT"), "iat"); + + zephir_declare_class_constant_string(phalcon_security_jwt_token_enum_ce, SL("ISSUER"), "iss"); + + zephir_declare_class_constant_string(phalcon_security_jwt_token_enum_ce, SL("NOT_BEFORE"), "nbf"); + + zephir_declare_class_constant_string(phalcon_security_jwt_token_enum_ce, SL("SUBJECT"), "sub"); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Token_Item) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Security\\JWT\\Token, Item, phalcon, security_jwt_token_item, phalcon_security_jwt_token_abstractitem_ce, phalcon_security_jwt_token_item_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Security_JWT_Token_Item, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval encoded; + zval *payload_param = NULL, *encoded_param = NULL, _0, _1; + zval payload; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&payload); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&encoded); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ARRAY(payload) + Z_PARAM_STR(encoded) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &payload_param, &encoded_param); + ZEPHIR_OBS_COPY_OR_DUP(&payload, payload_param); + if (UNEXPECTED(Z_TYPE_P(encoded_param) != IS_STRING && Z_TYPE_P(encoded_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'encoded' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(encoded_param) == IS_STRING)) { + zephir_get_strval(&encoded, encoded_param); + } else { + ZEPHIR_INIT_VAR(&encoded); + } + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "encoded"); + zephir_update_property_array(this_ptr, SL("data"), &_0, &encoded); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "payload"); + zephir_update_property_array(this_ptr, SL("data"), &_1, &payload); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Token_Item, get) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, _0, _1, _2, _3; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(name) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(defaultValue) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &name_param, &defaultValue); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; + } + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, &name); + zephir_check_call_status(); + if (!(zephir_is_true(&_0))) { + RETVAL_ZVAL(defaultValue, 1, 0); + RETURN_MM(); + } + zephir_read_property(&_1, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_2, &_1, SL("payload"), PH_NOISY | PH_READONLY, "phalcon/Security/JWT/Token/Item.zep", 42); + zephir_array_fetch(&_3, &_2, &name, PH_NOISY | PH_READONLY, "phalcon/Security/JWT/Token/Item.zep", 42); + RETURN_CTOR(&_3); +} + +static PHP_METHOD(Phalcon_Security_JWT_Token_Item, getPayload) +{ + zval _0, _1; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_1, &_0, SL("payload"), PH_NOISY | PH_READONLY, "phalcon/Security/JWT/Token/Item.zep", 50); + RETURN_CTORW(&_1); +} + +static PHP_METHOD(Phalcon_Security_JWT_Token_Item, has) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *name_param = NULL, _0, _1; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_1, &_0, SL("payload"), PH_READONLY, "phalcon/Security/JWT/Token/Item.zep", 60); + RETURN_MM_BOOL(zephir_array_isset(&_1, &name)); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Token_Parser) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Security\\JWT\\Token, Parser, phalcon, security_jwt_token_parser, phalcon_security_jwt_token_parser_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Security_JWT_Token_Parser, parse) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *token_param = NULL, claims, encodedClaims, encodedHeaders, encodedSignature, headers, results, signature; + zval token; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&token); + ZVAL_UNDEF(&claims); + ZVAL_UNDEF(&encodedClaims); + ZVAL_UNDEF(&encodedHeaders); + ZVAL_UNDEF(&encodedSignature); + ZVAL_UNDEF(&headers); + ZVAL_UNDEF(&results); + ZVAL_UNDEF(&signature); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(token) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &token_param); + if (UNEXPECTED(Z_TYPE_P(token_param) != IS_STRING && Z_TYPE_P(token_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'token' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(token_param) == IS_STRING)) { + zephir_get_strval(&token, token_param); + } else { + ZEPHIR_INIT_VAR(&token); + } + + + ZEPHIR_CALL_METHOD(&results, this_ptr, "parsetoken", NULL, 0, &token); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&encodedHeaders); + zephir_array_fetch_long(&encodedHeaders, &results, 0, PH_NOISY, "phalcon/Security/JWT/Token/Parser.zep", 36); + ZEPHIR_OBS_VAR(&encodedClaims); + zephir_array_fetch_long(&encodedClaims, &results, 1, PH_NOISY, "phalcon/Security/JWT/Token/Parser.zep", 37); + ZEPHIR_OBS_VAR(&encodedSignature); + zephir_array_fetch_long(&encodedSignature, &results, 2, PH_NOISY, "phalcon/Security/JWT/Token/Parser.zep", 38); + ZEPHIR_CALL_METHOD(&headers, this_ptr, "decodeheaders", NULL, 0, &encodedHeaders); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&claims, this_ptr, "decodeclaims", NULL, 0, &encodedClaims); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&signature, this_ptr, "decodesignature", NULL, 0, &headers, &encodedSignature); + zephir_check_call_status(); + object_init_ex(return_value, phalcon_security_jwt_token_token_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 0, &headers, &claims, &signature); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Token_Parser, decodeClaims) +{ + zval _6$$4; + zend_bool _4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL, *_2 = NULL; + zval *claims_param = NULL, decoded, _1, _3, _5, _7$$4; + zval claims; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&claims); + ZVAL_UNDEF(&decoded); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_6$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(claims) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &claims_param); + zephir_get_strval(&claims, claims_param); + + + ZEPHIR_CALL_CE_STATIC(&_1, phalcon_helper_base64_ce, "decodeurl", &_2, 0, &claims); + zephir_check_call_status(); + ZVAL_BOOL(&_3, 1); + ZEPHIR_CALL_CE_STATIC(&decoded, phalcon_helper_json_ce, "decode", &_0, 180, &_1, &_3); + zephir_check_call_status(); + if (Z_TYPE_P(&decoded) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_InvalidArgumentException, "Invalid Claims (not an array)", "phalcon/Security/JWT/Token/Parser.zep", 62); + return; + } + _4 = zephir_array_isset_string(&decoded, SL("aud")); + if (_4) { + ZEPHIR_OBS_VAR(&_5); + zephir_array_fetch_string(&_5, &decoded, SL("aud"), PH_NOISY, "phalcon/Security/JWT/Token/Parser.zep", 68); + _4 = Z_TYPE_P(&_5) != IS_ARRAY; + } + if (_4) { + ZEPHIR_INIT_VAR(&_6$$4); + zephir_create_array(&_6$$4, 1, 0); + ZEPHIR_OBS_VAR(&_7$$4); + zephir_array_fetch_string(&_7$$4, &decoded, SL("aud"), PH_NOISY, "phalcon/Security/JWT/Token/Parser.zep", 69); + zephir_array_fast_append(&_6$$4, &_7$$4); + zephir_array_update_string(&decoded, SL("aud"), &_6$$4, PH_COPY | PH_SEPARATE); + } + object_init_ex(return_value, phalcon_security_jwt_token_item_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 0, &decoded, &claims); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Token_Parser, decodeHeaders) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL, *_2 = NULL; + zval *headers_param = NULL, decoded, _1, _3; + zval headers; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&headers); + ZVAL_UNDEF(&decoded); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(headers) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &headers_param); + zephir_get_strval(&headers, headers_param); + + + ZEPHIR_CALL_CE_STATIC(&_1, phalcon_helper_base64_ce, "decodeurl", &_2, 0, &headers); + zephir_check_call_status(); + ZVAL_BOOL(&_3, 1); + ZEPHIR_CALL_CE_STATIC(&decoded, phalcon_helper_json_ce, "decode", &_0, 180, &_1, &_3); + zephir_check_call_status(); + if (Z_TYPE_P(&decoded) != IS_ARRAY) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_InvalidArgumentException, "Invalid Header (not an array)", "phalcon/Security/JWT/Token/Parser.zep", 91); + return; + } + if (!(zephir_array_isset_string(&decoded, SL("typ")))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_InvalidArgumentException, "Invalid Header (missing 'typ' element)", "phalcon/Security/JWT/Token/Parser.zep", 97); + return; + } + object_init_ex(return_value, phalcon_security_jwt_token_item_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 0, &decoded, &headers); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Token_Parser, decodeSignature) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_3 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval signature; + zval *headers, headers_sub, *signature_param = NULL, algo, decoded, _0, _1, _2; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&headers_sub); + ZVAL_UNDEF(&algo); + ZVAL_UNDEF(&decoded); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&signature); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(headers, phalcon_security_jwt_token_item_ce) + Z_PARAM_STR(signature) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &headers, &signature_param); + zephir_get_strval(&signature, signature_param); + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "alg"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "none"); + ZEPHIR_CALL_METHOD(&algo, headers, "get", NULL, 0, &_0, &_1); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "none"); + if (ZEPHIR_IS_IDENTICAL(&_2, &algo)) { + ZEPHIR_INIT_VAR(&decoded); + ZVAL_STRING(&decoded, ""); + ZEPHIR_INIT_NVAR(&signature); + } else { + ZEPHIR_CALL_CE_STATIC(&decoded, phalcon_helper_base64_ce, "decodeurl", &_3, 0, &signature); + zephir_check_call_status(); + } + object_init_ex(return_value, phalcon_security_jwt_token_signature_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 0, &decoded, &signature); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Token_Parser, parseToken) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *token_param = NULL, parts; + zval token; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&token); + ZVAL_UNDEF(&parts); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(token) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &token_param); + if (UNEXPECTED(Z_TYPE_P(token_param) != IS_STRING && Z_TYPE_P(token_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'token' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(token_param) == IS_STRING)) { + zephir_get_strval(&token, token_param); + } else { + ZEPHIR_INIT_VAR(&token); + } + + + ZEPHIR_INIT_VAR(&parts); + zephir_fast_explode_str(&parts, SL("."), &token, LONG_MAX); + if (zephir_fast_count_int(&parts) != 3) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_InvalidArgumentException, "Invalid JWT string (dots misalignment)", "phalcon/Security/JWT/Token/Parser.zep", 143); + return; + } + RETURN_CCTOR(&parts); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Token_Signature) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Security\\JWT\\Token, Signature, phalcon, security_jwt_token_signature, phalcon_security_jwt_token_abstractitem_ce, phalcon_security_jwt_token_signature_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Security_JWT_Token_Signature, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *hash_param = NULL, *encoded_param = NULL, _0, _1; + zval hash, encoded; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&hash); + ZVAL_UNDEF(&encoded); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 2) + Z_PARAM_OPTIONAL + Z_PARAM_STR(hash) + Z_PARAM_STR(encoded) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 2, &hash_param, &encoded_param); + if (!hash_param) { + ZEPHIR_INIT_VAR(&hash); + ZVAL_STRING(&hash, ""); + } else { + if (UNEXPECTED(Z_TYPE_P(hash_param) != IS_STRING && Z_TYPE_P(hash_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'hash' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(hash_param) == IS_STRING)) { + zephir_get_strval(&hash, hash_param); + } else { + ZEPHIR_INIT_VAR(&hash); + } + } + if (!encoded_param) { + ZEPHIR_INIT_VAR(&encoded); + ZVAL_STRING(&encoded, ""); + } else { + if (UNEXPECTED(Z_TYPE_P(encoded_param) != IS_STRING && Z_TYPE_P(encoded_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'encoded' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(encoded_param) == IS_STRING)) { + zephir_get_strval(&encoded, encoded_param); + } else { + ZEPHIR_INIT_VAR(&encoded); + } + } + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "encoded"); + zephir_update_property_array(this_ptr, SL("data"), &_0, &encoded); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "hash"); + zephir_update_property_array(this_ptr, SL("data"), &_1, &hash); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Token_Signature, getHash) +{ + zval _0, _1; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_string(&_1, &_0, SL("hash"), PH_NOISY | PH_READONLY, "phalcon/Security/JWT/Token/Signature.zep", 35); + RETURN_CTORW(&_1); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Token_Token) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Security\\JWT\\Token, Token, phalcon, security_jwt_token_token, phalcon_security_jwt_token_token_method_entry, 0); + + zend_declare_property_null(phalcon_security_jwt_token_token_ce, SL("claims"), ZEND_ACC_PRIVATE); + zend_declare_property_null(phalcon_security_jwt_token_token_ce, SL("headers"), ZEND_ACC_PRIVATE); + zend_declare_property_null(phalcon_security_jwt_token_token_ce, SL("signature"), ZEND_ACC_PRIVATE); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Security_JWT_Token_Token, getClaims) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "claims"); +} + +static PHP_METHOD(Phalcon_Security_JWT_Token_Token, getHeaders) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "headers"); +} + +static PHP_METHOD(Phalcon_Security_JWT_Token_Token, getSignature) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "signature"); +} + +static PHP_METHOD(Phalcon_Security_JWT_Token_Token, __construct) +{ + zval *headers, headers_sub, *claims, claims_sub, *signature, signature_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&headers_sub); + ZVAL_UNDEF(&claims_sub); + ZVAL_UNDEF(&signature_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_OBJECT_OF_CLASS(headers, phalcon_security_jwt_token_item_ce) + Z_PARAM_OBJECT_OF_CLASS(claims, phalcon_security_jwt_token_item_ce) + Z_PARAM_OBJECT_OF_CLASS(signature, phalcon_security_jwt_token_signature_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(3, 0, &headers, &claims, &signature); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("headers"), headers); + zephir_update_property_zval(this_ptr, ZEND_STRL("claims"), claims); + zephir_update_property_zval(this_ptr, ZEND_STRL("signature"), signature); +} + +static PHP_METHOD(Phalcon_Security_JWT_Token_Token, getPayload) +{ + zval _0, _1, _2, _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "getencoded", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_2, this_ptr, ZEND_STRL("claims"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_3, &_2, "getencoded", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CONCAT_VSV(return_value, &_1, ".", &_3); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Token_Token, getToken) +{ + zval _0, _1, _2; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getpayload", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getsignature", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_2, &_1, "getencoded", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CONCAT_VSV(return_value, &_0, ".", &_2); + RETURN_MM(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Signer_AbstractSigner) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Security\\JWT\\Signer, AbstractSigner, phalcon, security_jwt_signer_abstractsigner, phalcon_security_jwt_signer_abstractsigner_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_security_jwt_signer_abstractsigner_ce, SL("algorithm"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_security_jwt_signer_abstractsigner_ce, 1, phalcon_security_jwt_signer_signerinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Security_JWT_Signer_AbstractSigner, getAlgorithm) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "algorithm"); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Signer_Hmac) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Security\\JWT\\Signer, Hmac, phalcon, security_jwt_signer_hmac, phalcon_security_jwt_signer_abstractsigner_ce, phalcon_security_jwt_signer_hmac_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Security_JWT_Signer_Hmac, __construct) +{ + zval supported; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *algo_param = NULL; + zval algo; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&algo); + ZVAL_UNDEF(&supported); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR(algo) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &algo_param); + if (!algo_param) { + ZEPHIR_INIT_VAR(&algo); + ZVAL_STRING(&algo, "sha512"); + } else { + if (UNEXPECTED(Z_TYPE_P(algo_param) != IS_STRING && Z_TYPE_P(algo_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'algo' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(algo_param) == IS_STRING)) { + zephir_get_strval(&algo, algo_param); + } else { + ZEPHIR_INIT_VAR(&algo); + } + } + + + ZEPHIR_INIT_VAR(&supported); + zephir_create_array(&supported, 3, 0); + add_assoc_long_ex(&supported, SL("sha512"), 1); + add_assoc_long_ex(&supported, SL("sha384"), 1); + add_assoc_long_ex(&supported, SL("sha256"), 1); + if (!(zephir_array_isset(&supported, &algo))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_unsupportedalgorithmexception_ce, "Unsupported HMAC algorithm", "phalcon/Security/JWT/Signer/Hmac.zep", 40); + return; + } + zephir_update_property_zval(this_ptr, ZEND_STRL("algorithm"), &algo); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Signer_Hmac, getAlgHeader) +{ + zval _0, _1, _2, _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&_0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("algorithm"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "sha"); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, ""); + zephir_fast_str_replace(&_0, &_2, &_3, &_1); + ZEPHIR_CONCAT_SV(return_value, "HS", &_0); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Signer_Hmac, sign) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *payload_param = NULL, *passphrase_param = NULL; + zval payload, passphrase; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&payload); + ZVAL_UNDEF(&passphrase); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(payload) + Z_PARAM_STR(passphrase) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &payload_param, &passphrase_param); + if (UNEXPECTED(Z_TYPE_P(payload_param) != IS_STRING && Z_TYPE_P(payload_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'payload' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(payload_param) == IS_STRING)) { + zephir_get_strval(&payload, payload_param); + } else { + ZEPHIR_INIT_VAR(&payload); + } + if (UNEXPECTED(Z_TYPE_P(passphrase_param) != IS_STRING && Z_TYPE_P(passphrase_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'passphrase' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(passphrase_param) == IS_STRING)) { + zephir_get_strval(&passphrase, passphrase_param); + } else { + ZEPHIR_INIT_VAR(&passphrase); + } + + + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethash", NULL, 0, &payload, &passphrase); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Security_JWT_Signer_Hmac, verify) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *source_param = NULL, *payload_param = NULL, *passphrase_param = NULL, _0; + zval source, payload, passphrase; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&source); + ZVAL_UNDEF(&payload); + ZVAL_UNDEF(&passphrase); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(source) + Z_PARAM_STR(payload) + Z_PARAM_STR(passphrase) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &source_param, &payload_param, &passphrase_param); + if (UNEXPECTED(Z_TYPE_P(source_param) != IS_STRING && Z_TYPE_P(source_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'source' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(source_param) == IS_STRING)) { + zephir_get_strval(&source, source_param); + } else { + ZEPHIR_INIT_VAR(&source); + } + if (UNEXPECTED(Z_TYPE_P(payload_param) != IS_STRING && Z_TYPE_P(payload_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'payload' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(payload_param) == IS_STRING)) { + zephir_get_strval(&payload, payload_param); + } else { + ZEPHIR_INIT_VAR(&payload); + } + if (UNEXPECTED(Z_TYPE_P(passphrase_param) != IS_STRING && Z_TYPE_P(passphrase_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'passphrase' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(passphrase_param) == IS_STRING)) { + zephir_get_strval(&passphrase, passphrase_param); + } else { + ZEPHIR_INIT_VAR(&passphrase); + } + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "gethash", NULL, 0, &payload, &passphrase); + zephir_check_call_status(); + RETURN_MM_BOOL(zephir_hash_equals(&source, &_0)); +} + +static PHP_METHOD(Phalcon_Security_JWT_Signer_Hmac, getHash) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *payload_param = NULL, *passphrase_param = NULL, __$true, _0; + zval payload, passphrase; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&payload); + ZVAL_UNDEF(&passphrase); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(payload) + Z_PARAM_STR(passphrase) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &payload_param, &passphrase_param); + if (UNEXPECTED(Z_TYPE_P(payload_param) != IS_STRING && Z_TYPE_P(payload_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'payload' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(payload_param) == IS_STRING)) { + zephir_get_strval(&payload, payload_param); + } else { + ZEPHIR_INIT_VAR(&payload); + } + if (UNEXPECTED(Z_TYPE_P(passphrase_param) != IS_STRING && Z_TYPE_P(passphrase_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'passphrase' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(passphrase_param) == IS_STRING)) { + zephir_get_strval(&passphrase, passphrase_param); + } else { + ZEPHIR_INIT_VAR(&passphrase); + } + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getalgorithm", NULL, 0); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_FUNCTION("hash_hmac", NULL, 187, &_0, &payload, &passphrase, &__$true); + zephir_check_call_status(); + RETURN_MM(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Signer_None) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Security\\JWT\\Signer, None, phalcon, security_jwt_signer_none, phalcon_security_jwt_signer_none_method_entry, 0); + + zend_class_implements(phalcon_security_jwt_signer_none_ce, 1, phalcon_security_jwt_signer_signerinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Security_JWT_Signer_None, getAlgHeader) +{ + zval *this_ptr = getThis(); + + + + RETURN_STRING("none"); +} + +static PHP_METHOD(Phalcon_Security_JWT_Signer_None, getAlgorithm) +{ + zval *this_ptr = getThis(); + + + + RETURN_STRING("None"); +} + +static PHP_METHOD(Phalcon_Security_JWT_Signer_None, sign) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *payload_param = NULL, *passphrase_param = NULL; + zval payload, passphrase; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&payload); + ZVAL_UNDEF(&passphrase); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(payload) + Z_PARAM_STR(passphrase) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &payload_param, &passphrase_param); + if (UNEXPECTED(Z_TYPE_P(payload_param) != IS_STRING && Z_TYPE_P(payload_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'payload' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(payload_param) == IS_STRING)) { + zephir_get_strval(&payload, payload_param); + } else { + ZEPHIR_INIT_VAR(&payload); + } + zephir_get_strval(&passphrase, passphrase_param); + + + RETURN_MM_STRING(""); +} + +static PHP_METHOD(Phalcon_Security_JWT_Signer_None, verify) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *source_param = NULL, *payload_param = NULL, *passphrase_param = NULL, _0; + zval source, payload, passphrase; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&source); + ZVAL_UNDEF(&payload); + ZVAL_UNDEF(&passphrase); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(source) + Z_PARAM_STR(payload) + Z_PARAM_STR(passphrase) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &source_param, &payload_param, &passphrase_param); + if (UNEXPECTED(Z_TYPE_P(source_param) != IS_STRING && Z_TYPE_P(source_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'source' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(source_param) == IS_STRING)) { + zephir_get_strval(&source, source_param); + } else { + ZEPHIR_INIT_VAR(&source); + } + if (UNEXPECTED(Z_TYPE_P(payload_param) != IS_STRING && Z_TYPE_P(payload_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'payload' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(payload_param) == IS_STRING)) { + zephir_get_strval(&payload, payload_param); + } else { + ZEPHIR_INIT_VAR(&payload); + } + if (UNEXPECTED(Z_TYPE_P(passphrase_param) != IS_STRING && Z_TYPE_P(passphrase_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'passphrase' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(passphrase_param) == IS_STRING)) { + zephir_get_strval(&passphrase, passphrase_param); + } else { + ZEPHIR_INIT_VAR(&passphrase); + } + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, ""); + RETURN_MM_BOOL(ZEPHIR_IS_IDENTICAL(&_0, &source)); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Signer_SignerInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Security\\JWT\\Signer, SignerInterface, phalcon, security_jwt_signer_signerinterface, phalcon_security_jwt_signer_signerinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Security_JWT_Signer_SignerInterface, getAlgHeader); +ZEPHIR_DOC_METHOD(Phalcon_Security_JWT_Signer_SignerInterface, getAlgorithm); +ZEPHIR_DOC_METHOD(Phalcon_Security_JWT_Signer_SignerInterface, sign); +ZEPHIR_DOC_METHOD(Phalcon_Security_JWT_Signer_SignerInterface, verify); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Exceptions_UnsupportedAlgorithmException) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Security\\JWT\\Exceptions, UnsupportedAlgorithmException, phalcon, security_jwt_exceptions_unsupportedalgorithmexception, zend_ce_exception, NULL, 0); + + zend_class_implements(phalcon_security_jwt_exceptions_unsupportedalgorithmexception_ce, 1, zend_ce_throwable); + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Exceptions_ValidatorException) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Security\\JWT\\Exceptions, ValidatorException, phalcon, security_jwt_exceptions_validatorexception, zend_ce_exception, NULL, 0); + + zend_class_implements(phalcon_security_jwt_exceptions_validatorexception_ce, 1, zend_ce_throwable); + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Support_Debug) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Support, Debug, phalcon, support_debug, phalcon_support_debug_method_entry, 0); + + zend_declare_property_null(phalcon_support_debug_ce, SL("blacklist"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_support_debug_ce, SL("data"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_support_debug_ce, SL("hideDocumentRoot"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_support_debug_ce, SL("isActive"), 0, ZEND_ACC_PROTECTED|ZEND_ACC_STATIC); + zend_declare_property_bool(phalcon_support_debug_ce, SL("showBackTrace"), 1, ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_support_debug_ce, SL("showFileFragment"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_support_debug_ce, SL("showFiles"), 1, ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_support_debug_ce, SL("uri"), "https://assets.phalcon.io/debug/5.0.x/", ZEND_ACC_PROTECTED); + phalcon_support_debug_ce->create_object = zephir_init_properties_Phalcon_Support_Debug; + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Support_Debug, clearVars) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &_0); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Support_Debug, debugVar) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval key; + zval *varz, varz_sub, *key_param = NULL, _1, _2; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&varz_sub); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(varz) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(key) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &varz, &key_param); + if (!key_param) { + ZEPHIR_INIT_VAR(&key); + } else { + zephir_get_strval(&key, key_param); + } + + + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 3, 0); + zephir_array_fast_append(&_0, varz); + ZEPHIR_CALL_FUNCTION(&_1, "debug_backtrace", NULL, 0); + zephir_check_call_status(); + zephir_array_fast_append(&_0, &_1); + ZEPHIR_INIT_VAR(&_2); + zephir_time(&_2); + zephir_array_fast_append(&_0, &_2); + zephir_update_property_array_append(this_ptr, SL("data"), &_0); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Support_Debug, getCssSources) +{ + zval uri, sources, _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&uri); + ZVAL_UNDEF(&sources); + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("uri"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&uri, &_0); + ZEPHIR_INIT_VAR(&sources); + ZEPHIR_CONCAT_SVSSVSSVS(&sources, "", "", ""); + RETURN_CCTOR(&sources); +} + +static PHP_METHOD(Phalcon_Support_Debug, getJsSources) +{ + zval uri, sources, _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&uri); + ZVAL_UNDEF(&sources); + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("uri"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&uri, &_0); + ZEPHIR_INIT_VAR(&sources); + ZEPHIR_CONCAT_SVSSVSSVSSVSSVS(&sources, "", "", "", "", ""); + RETURN_CCTOR(&sources); +} + +static PHP_METHOD(Phalcon_Support_Debug, getVersion) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_5 = NULL; + zval __$false, link, version, _0, _1, _2, _3, _4; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&link); + ZVAL_UNDEF(&version); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&version); + object_init_ex(&version, phalcon_support_version_ce); + if (zephir_has_constructor(&version)) { + ZEPHIR_CALL_METHOD(NULL, &version, "__construct", NULL, 0); + zephir_check_call_status(); + } + + ZEPHIR_INIT_VAR(&link); + zephir_create_array(&link, 4, 0); + ZVAL_LONG(&_1, 0); + ZEPHIR_CALL_METHOD(&_0, &version, "getpart", NULL, 0, &_1); + zephir_check_call_status(); + ZVAL_LONG(&_1, 1); + ZEPHIR_CALL_METHOD(&_2, &version, "getpart", NULL, 0, &_1); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_3); + ZEPHIR_CONCAT_SVSVS(&_3, "https://docs.phalcon.io/", &_0, ".", &_2, "/en/"); + zephir_array_update_string(&link, SL("action"), &_3, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_4, &version, "get", NULL, 0); + zephir_check_call_status(); + zephir_array_update_string(&link, SL("text"), &_4, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&link, SL("local"), &__$false, PH_COPY | PH_SEPARATE); + add_assoc_stringl_ex(&link, SL("target"), SL("_new")); + ZEPHIR_CALL_CE_STATIC(&_4, phalcon_tag_ce, "linkto", &_5, 0, &link); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "
Phalcon Framework ", &_4, "
"); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Support_Debug, halt) +{ + zval *this_ptr = getThis(); + + + + ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_support_exception_ce, "Halted request", "phalcon/Support/Debug.zep", 153); + return; +} + +static PHP_METHOD(Phalcon_Support_Debug, listen) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *exceptions_param = NULL, *lowSeverity_param = NULL; + zend_bool exceptions, lowSeverity; + zval *this_ptr = getThis(); + +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 2) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(exceptions) + Z_PARAM_BOOL(lowSeverity) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 2, &exceptions_param, &lowSeverity_param); + if (!exceptions_param) { + exceptions = 1; + } else { + exceptions = zephir_get_boolval(exceptions_param); + } + if (!lowSeverity_param) { + lowSeverity = 0; + } else { + lowSeverity = zephir_get_boolval(lowSeverity_param); + } + + + if (exceptions) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "listenexceptions", NULL, 0); + zephir_check_call_status(); + } + if (lowSeverity) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "listenlowseverity", NULL, 0); + zephir_check_call_status(); + } + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Support_Debug, listenExceptions) +{ + zval _1; + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 2, 0); + zephir_array_fast_append(&_0, this_ptr); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "onUncaughtException"); + zephir_array_fast_append(&_0, &_1); + ZEPHIR_CALL_FUNCTION(NULL, "set_exception_handler", NULL, 0, &_0); + zephir_check_call_status(); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Support_Debug, listenLowSeverity) +{ + zval _1; + zval _0, _2; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 2, 0); + zephir_array_fast_append(&_0, this_ptr); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "onUncaughtLowSeverity"); + zephir_array_fast_append(&_0, &_1); + ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + zephir_create_array(&_2, 2, 0); + zephir_array_fast_append(&_2, this_ptr); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "onUncaughtException"); + zephir_array_fast_append(&_2, &_1); + ZEPHIR_CALL_FUNCTION(NULL, "set_exception_handler", NULL, 0, &_2); + zephir_check_call_status(); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Support_Debug, onUncaughtException) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *exception, exception_sub, __$true, __$false, obLevel, _0, _2, _1$$4; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&exception_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&obLevel); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(exception, zend_ce_throwable) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &exception); + + + ZEPHIR_CALL_FUNCTION(&obLevel, "ob_get_level", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_GT_LONG(&obLevel, 0)) { + ZEPHIR_CALL_FUNCTION(NULL, "ob_end_clean", NULL, 497); + zephir_check_call_status(); + } + zephir_read_static_property_ce(&_0, phalcon_support_debug_ce, SL("isActive"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_0)) { + ZEPHIR_CALL_METHOD(&_1$$4, exception, "getmessage", NULL, 0); + zephir_check_call_status(); + zend_print_zval(&_1$$4, 0); + RETURN_MM_NULL(); + } + zephir_update_static_property_ce(phalcon_support_debug_ce, ZEND_STRL("isActive"), &__$true); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "renderhtml", NULL, 0, exception); + zephir_check_call_status(); + zend_print_zval(&_2, 0); + zephir_update_static_property_ce(phalcon_support_debug_ce, ZEND_STRL("isActive"), &__$false); + RETURN_MM_BOOL(1); +} + +static PHP_METHOD(Phalcon_Support_Debug, onUncaughtLowSeverity) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *severity, severity_sub, *message, message_sub, *file, file_sub, *line, line_sub, *context, context_sub, _0, _1, _2$$3, _3$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&severity_sub); + ZVAL_UNDEF(&message_sub); + ZVAL_UNDEF(&file_sub); + ZVAL_UNDEF(&line_sub); + ZVAL_UNDEF(&context_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(5, 5) + Z_PARAM_ZVAL(severity) + Z_PARAM_ZVAL(message) + Z_PARAM_ZVAL(file) + Z_PARAM_ZVAL(line) + Z_PARAM_ZVAL(context) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 5, 0, &severity, &message, &file, &line, &context); + + + ZEPHIR_CALL_FUNCTION(&_0, "error_reporting", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + zephir_bitwise_and_function(&_1, &_0, severity); + if (UNEXPECTED(zephir_is_true(&_1))) { + ZEPHIR_INIT_VAR(&_2$$3); + object_init_ex(&_2$$3, zend_ce_error_exception); + ZVAL_LONG(&_3$$3, 0); + ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", NULL, 0, message, &_3$$3, severity, file, line); + zephir_check_call_status(); + zephir_throw_exception_debug(&_2$$3, "phalcon/Support/Debug.zep", 249); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Support_Debug, renderHtml) +{ + zend_string *_12$$3, *_24$$3, *_40$$3, *_53$$3, *_62$$21; + zend_ulong _11$$3, _23$$3, _39$$3, _52$$3, _61$$21; + zval _7$$3, _16$$3, _34$$3, _48$$3, _58$$21; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_14 = NULL, *_17 = NULL, *_28 = NULL, *_43 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *exception, exception_sub, _REQUEST, __$true, _SERVER, blacklist, className, dataVar, dataVars, escapedMessage, html, keyFile, keyRequest, keyServer, keyVar, n, showBackTrace, traceItem, value, _0, _1, _2, _3, _4, _5, _6, _69, _70, _8$$3, *_9$$3, _10$$3, _18$$3, _19$$3, _20$$3, *_21$$3, _22$$3, _35$$3, _36$$3, *_37$$3, _38$$3, _49$$3, *_50$$3, _51$$3, _56$$3, _57$$3, _13$$5, _15$$6, _25$$7, _26$$9, _27$$10, _29$$10, _30$$11, _31$$13, _32$$14, _33$$14, _41$$15, _42$$16, _44$$16, _45$$17, _46$$18, _47$$18, _54$$19, _55$$20, *_59$$21, _60$$21, _63$$22, _64$$22, _65$$22, _66$$23, _67$$23, _68$$23; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&exception_sub); + ZVAL_UNDEF(&_REQUEST); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&_SERVER); + ZVAL_UNDEF(&blacklist); + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&dataVar); + ZVAL_UNDEF(&dataVars); + ZVAL_UNDEF(&escapedMessage); + ZVAL_UNDEF(&html); + ZVAL_UNDEF(&keyFile); + ZVAL_UNDEF(&keyRequest); + ZVAL_UNDEF(&keyServer); + ZVAL_UNDEF(&keyVar); + ZVAL_UNDEF(&n); + ZVAL_UNDEF(&showBackTrace); + ZVAL_UNDEF(&traceItem); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_69); + ZVAL_UNDEF(&_70); + ZVAL_UNDEF(&_8$$3); + ZVAL_UNDEF(&_10$$3); + ZVAL_UNDEF(&_18$$3); + ZVAL_UNDEF(&_19$$3); + ZVAL_UNDEF(&_20$$3); + ZVAL_UNDEF(&_22$$3); + ZVAL_UNDEF(&_35$$3); + ZVAL_UNDEF(&_36$$3); + ZVAL_UNDEF(&_38$$3); + ZVAL_UNDEF(&_49$$3); + ZVAL_UNDEF(&_51$$3); + ZVAL_UNDEF(&_56$$3); + ZVAL_UNDEF(&_57$$3); + ZVAL_UNDEF(&_13$$5); + ZVAL_UNDEF(&_15$$6); + ZVAL_UNDEF(&_25$$7); + ZVAL_UNDEF(&_26$$9); + ZVAL_UNDEF(&_27$$10); + ZVAL_UNDEF(&_29$$10); + ZVAL_UNDEF(&_30$$11); + ZVAL_UNDEF(&_31$$13); + ZVAL_UNDEF(&_32$$14); + ZVAL_UNDEF(&_33$$14); + ZVAL_UNDEF(&_41$$15); + ZVAL_UNDEF(&_42$$16); + ZVAL_UNDEF(&_44$$16); + ZVAL_UNDEF(&_45$$17); + ZVAL_UNDEF(&_46$$18); + ZVAL_UNDEF(&_47$$18); + ZVAL_UNDEF(&_54$$19); + ZVAL_UNDEF(&_55$$20); + ZVAL_UNDEF(&_60$$21); + ZVAL_UNDEF(&_63$$22); + ZVAL_UNDEF(&_64$$22); + ZVAL_UNDEF(&_65$$22); + ZVAL_UNDEF(&_66$$23); + ZVAL_UNDEF(&_67$$23); + ZVAL_UNDEF(&_68$$23); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_16$$3); + ZVAL_UNDEF(&_34$$3); + ZVAL_UNDEF(&_48$$3); + ZVAL_UNDEF(&_58$$21); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(exception, zend_ce_throwable) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_get_global(&_SERVER, SL("_SERVER")); + zephir_get_global(&_REQUEST, SL("_REQUEST")); + zephir_fetch_params(1, 1, 0, &exception); + + + ZEPHIR_INIT_VAR(&className); + zephir_get_class(&className, exception, 0); + ZEPHIR_CALL_METHOD(&_0, exception, "getmessage", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&escapedMessage, this_ptr, "escapestring", NULL, 0, &_0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getcsssources", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&html); + ZEPHIR_CONCAT_SSVSVSVS(&html, "", "", &className, ": ", &escapedMessage, "", &_1, ""); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getversion", NULL, 0); + zephir_check_call_status(); + zephir_concat_self(&html, &_2); + ZEPHIR_CALL_METHOD(&_3, exception, "getfile", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_4, exception, "getline", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_5); + ZEPHIR_CONCAT_SSSVSVSSVSVSS(&_5, "
", "
", "

", &className, ": ", &escapedMessage, "

", "", &_3, " (", &_4, ")", "
"); + zephir_concat_self(&html, &_5); + zephir_read_property(&_6, this_ptr, ZEND_STRL("showBackTrace"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&showBackTrace, &_6); + if (zephir_is_true(&showBackTrace)) { + ZEPHIR_OBS_VAR(&dataVars); + zephir_read_property(&dataVars, this_ptr, ZEND_STRL("data"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(&_7$$3); + ZEPHIR_CONCAT_SSSSSS(&_7$$3, "
    ", "
  • Backtrace
  • ", "
  • Request
  • ", "
  • Server
  • ", "
  • Included Files
  • ", "
  • Memory
  • "); + zephir_concat_self(&html, &_7$$3); + if (!(ZEPHIR_IS_EMPTY(&dataVars))) { + zephir_concat_self_str(&html, SL("
  • Variables
  • ")); } -pp299: - ppch = *++PPCURSOR; - switch (ppch) { - case 'T': - case 't': goto pp327; - default: goto pp59; - } -pp300: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp301; - } -pp301: + zephir_concat_self_str(&html, SL("
")); + zephir_concat_self_str(&html, SL("
")); + ZEPHIR_CALL_METHOD(&_8$$3, exception, "gettrace", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&_8$$3, 0, "phalcon/Support/Debug.zep", 330); + if (Z_TYPE_P(&_8$$3) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_8$$3), _11$$3, _12$$3, _9$$3) { - token->opcode = PHQL_T_LIMIT; - return 0; - } -pp302: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp329; - default: goto pp86; - } -pp303: - ppch = *++PPCURSOR; - switch (ppch) { - case 'T': - case 't': goto pp330; - default: goto pp59; - } -pp304: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp305; + ZEPHIR_INIT_NVAR(&n); + if (_12$$3 != NULL) { + ZVAL_STR_COPY(&n, _12$$3); + } else { + ZVAL_LONG(&n, _11$$3); + } + ZEPHIR_INIT_NVAR(&traceItem); + ZVAL_COPY(&traceItem, _9$$3); + ZEPHIR_CALL_METHOD(&_13$$5, this_ptr, "showtraceitem", &_14, 0, &n, &traceItem); + zephir_check_call_status(); + zephir_concat_self(&html, &_13$$5); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_8$$3, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_10$$3, &_8$$3, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_10$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&n, &_8$$3, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&traceItem, &_8$$3, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_15$$6, this_ptr, "showtraceitem", &_14, 0, &n, &traceItem); + zephir_check_call_status(); + zephir_concat_self(&html, &_15$$6); + ZEPHIR_CALL_METHOD(NULL, &_8$$3, "next", NULL, 0); + zephir_check_call_status(); } -pp305: - { - token->opcode = PHQL_T_ORDER; - return 0; } -pp306: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp307; - } -pp307: + ZEPHIR_INIT_NVAR(&traceItem); + ZEPHIR_INIT_NVAR(&n); + zephir_concat_self_str(&html, SL("
")); + ZEPHIR_INIT_VAR(&_16$$3); + ZEPHIR_CONCAT_SSS(&_16$$3, "
", "", ""); + zephir_concat_self(&html, &_16$$3); + zephir_read_property(&_18$$3, this_ptr, ZEND_STRL("blacklist"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_19$$3); + array_init(&_19$$3); + ZEPHIR_INIT_VAR(&_20$$3); + ZVAL_STRING(&_20$$3, "request"); + ZEPHIR_CALL_CE_STATIC(&blacklist, phalcon_helper_arr_ce, "get", &_17, 16, &_18$$3, &_20$$3, &_19$$3); + zephir_check_call_status(); + zephir_is_iterable(&_REQUEST, 0, "phalcon/Support/Debug.zep", 350); + if (Z_TYPE_P(&_REQUEST) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_REQUEST), _23$$3, _24$$3, _21$$3) { - token->opcode = PHQL_T_OUTER; - return 0; - } -pp308: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp309; + ZEPHIR_INIT_NVAR(&keyRequest); + if (_24$$3 != NULL) { + ZVAL_STR_COPY(&keyRequest, _24$$3); + } else { + ZVAL_LONG(&keyRequest, _23$$3); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _21$$3); + ZEPHIR_INIT_NVAR(&_25$$7); + zephir_fast_strtolower(&_25$$7, &keyRequest); + if (1 != zephir_array_isset(&blacklist, &_25$$7)) { + if (Z_TYPE_P(&value) != IS_ARRAY) { + ZEPHIR_INIT_NVAR(&_26$$9); + ZEPHIR_CONCAT_SVSVS(&_26$$9, ""); + zephir_concat_self(&html, &_26$$9); + } else { + ZEPHIR_CALL_FUNCTION(&_27$$10, "print_r", &_28, 0, &value, &__$true); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_29$$10); + ZEPHIR_CONCAT_SVSVS(&_29$$10, ""); + zephir_concat_self(&html, &_29$$10); + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_REQUEST, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_22$$3, &_REQUEST, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_22$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&keyRequest, &_REQUEST, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &_REQUEST, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_30$$11); + zephir_fast_strtolower(&_30$$11, &keyRequest); + if (1 != zephir_array_isset(&blacklist, &_30$$11)) { + if (Z_TYPE_P(&value) != IS_ARRAY) { + ZEPHIR_INIT_NVAR(&_31$$13); + ZEPHIR_CONCAT_SVSVS(&_31$$13, ""); + zephir_concat_self(&html, &_31$$13); + } else { + ZEPHIR_CALL_FUNCTION(&_32$$14, "print_r", &_28, 0, &value, &__$true); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_33$$14); + ZEPHIR_CONCAT_SVSVS(&_33$$14, ""); + zephir_concat_self(&html, &_33$$14); + } + } + ZEPHIR_CALL_METHOD(NULL, &_REQUEST, "next", NULL, 0); + zephir_check_call_status(); } -pp309: - { - token->opcode = PHQL_T_RIGHT; - return 0; } -pp310: - ppch = *++PPCURSOR; - switch (ppch) { - case 'T': - case 't': goto pp332; - default: goto pp59; + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&keyRequest); + zephir_concat_self_str(&html, SL("
KeyValue
", &keyRequest, "", &value, "
", &keyRequest, "", &_27$$10, "
", &keyRequest, "", &value, "
", &keyRequest, "", &_32$$14, "
")); + ZEPHIR_INIT_VAR(&_34$$3); + ZEPHIR_CONCAT_SSS(&_34$$3, "
", "", ""); + zephir_concat_self(&html, &_34$$3); + zephir_read_property(&_35$$3, this_ptr, ZEND_STRL("blacklist"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_20$$3); + array_init(&_20$$3); + ZEPHIR_INIT_VAR(&_36$$3); + ZVAL_STRING(&_36$$3, "server"); + ZEPHIR_CALL_CE_STATIC(&blacklist, phalcon_helper_arr_ce, "get", &_17, 16, &_35$$3, &_36$$3, &_20$$3); + zephir_check_call_status(); + zephir_is_iterable(&_SERVER, 0, "phalcon/Support/Debug.zep", 366); + if (Z_TYPE_P(&_SERVER) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_SERVER), _39$$3, _40$$3, _37$$3) + { + ZEPHIR_INIT_NVAR(&keyServer); + if (_40$$3 != NULL) { + ZVAL_STR_COPY(&keyServer, _40$$3); + } else { + ZVAL_LONG(&keyServer, _39$$3); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _37$$3); + ZEPHIR_INIT_NVAR(&_41$$15); + zephir_fast_strtolower(&_41$$15, &keyServer); + if (1 != zephir_array_isset(&blacklist, &_41$$15)) { + ZEPHIR_CALL_METHOD(&_42$$16, this_ptr, "getvardump", &_43, 0, &value); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_44$$16); + ZEPHIR_CONCAT_SVSVS(&_44$$16, ""); + zephir_concat_self(&html, &_44$$16); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_SERVER, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_38$$3, &_SERVER, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_38$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&keyServer, &_SERVER, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &_SERVER, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_45$$17); + zephir_fast_strtolower(&_45$$17, &keyServer); + if (1 != zephir_array_isset(&blacklist, &_45$$17)) { + ZEPHIR_CALL_METHOD(&_46$$18, this_ptr, "getvardump", &_43, 0, &value); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_47$$18); + ZEPHIR_CONCAT_SVSVS(&_47$$18, ""); + zephir_concat_self(&html, &_47$$18); + } + ZEPHIR_CALL_METHOD(NULL, &_SERVER, "next", NULL, 0); + zephir_check_call_status(); } -pp311: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp334; - default: goto pp59; + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&keyServer); + zephir_concat_self_str(&html, SL("
KeyValue
", &keyServer, "", &_42$$16, "
", &keyServer, "", &_46$$18, "
")); + ZEPHIR_INIT_VAR(&_48$$3); + ZEPHIR_CONCAT_SSS(&_48$$3, "
", "", ""); + zephir_concat_self(&html, &_48$$3); + ZEPHIR_CALL_FUNCTION(&_49$$3, "get_included_files", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&_49$$3, 0, "phalcon/Support/Debug.zep", 379); + if (Z_TYPE_P(&_49$$3) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_49$$3), _52$$3, _53$$3, _50$$3) + { + ZEPHIR_INIT_NVAR(&keyFile); + if (_53$$3 != NULL) { + ZVAL_STR_COPY(&keyFile, _53$$3); + } else { + ZVAL_LONG(&keyFile, _52$$3); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _50$$3); + ZEPHIR_INIT_NVAR(&_54$$19); + ZEPHIR_CONCAT_SVSVS(&_54$$19, ""); + zephir_concat_self(&html, &_54$$19); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_49$$3, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_51$$3, &_49$$3, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_51$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&keyFile, &_49$$3, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &_49$$3, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_55$$20); + ZEPHIR_CONCAT_SVSVS(&_55$$20, ""); + zephir_concat_self(&html, &_55$$20); + ZEPHIR_CALL_METHOD(NULL, &_49$$3, "next", NULL, 0); + zephir_check_call_status(); } -pp312: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp313; + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&keyFile); + zephir_concat_self_str(&html, SL("
#Path
", &keyFile, "", &value, "
", &keyFile, "", &value, "
")); + ZEPHIR_CALL_FUNCTION(&_56$$3, "memory_get_usage", NULL, 0, &__$true); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_57$$3); + ZEPHIR_CONCAT_SSSVSS(&_57$$3, "
", "", "", "
Memory
Usage", &_56$$3, "
"); + zephir_concat_self(&html, &_57$$3); + if (!(ZEPHIR_IS_EMPTY(&dataVars))) { + ZEPHIR_INIT_VAR(&_58$$21); + ZEPHIR_CONCAT_SSS(&_58$$21, "
", "", ""); + zephir_concat_self(&html, &_58$$21); + zephir_is_iterable(&dataVars, 0, "phalcon/Support/Debug.zep", 401); + if (Z_TYPE_P(&dataVars) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&dataVars), _61$$21, _62$$21, _59$$21) + { + ZEPHIR_INIT_NVAR(&keyVar); + if (_62$$21 != NULL) { + ZVAL_STR_COPY(&keyVar, _62$$21); + } else { + ZVAL_LONG(&keyVar, _61$$21); + } + ZEPHIR_INIT_NVAR(&dataVar); + ZVAL_COPY(&dataVar, _59$$21); + zephir_array_fetch_long(&_64$$22, &dataVar, 0, PH_NOISY | PH_READONLY, "phalcon/Support/Debug.zep", 398); + ZEPHIR_CALL_METHOD(&_63$$22, this_ptr, "getvardump", &_43, 0, &_64$$22); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_65$$22); + ZEPHIR_CONCAT_SVSVS(&_65$$22, ""); + zephir_concat_self(&html, &_65$$22); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &dataVars, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_60$$21, &dataVars, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_60$$21)) { + break; + } + ZEPHIR_CALL_METHOD(&keyVar, &dataVars, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&dataVar, &dataVars, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_fetch_long(&_67$$23, &dataVar, 0, PH_NOISY | PH_READONLY, "phalcon/Support/Debug.zep", 398); + ZEPHIR_CALL_METHOD(&_66$$23, this_ptr, "getvardump", &_43, 0, &_67$$23); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_68$$23); + ZEPHIR_CONCAT_SVSVS(&_68$$23, ""); + zephir_concat_self(&html, &_68$$23); + ZEPHIR_CALL_METHOD(NULL, &dataVars, "next", NULL, 0); + zephir_check_call_status(); + } } -pp313: - { - token->opcode = PHQL_T_USING; - return 0; + ZEPHIR_INIT_NVAR(&dataVar); + ZEPHIR_INIT_NVAR(&keyVar); + zephir_concat_self_str(&html, SL("
KeyValue
", &keyVar, "", &_63$$22, "
", &keyVar, "", &_66$$23, "
")); } -pp314: - ppch = *++PPCURSOR; - switch (ppch) { - case 'S': - case 's': goto pp336; - default: goto pp59; + zephir_concat_self_str(&html, SL("
")); + } + ZEPHIR_CALL_METHOD(&_69, this_ptr, "getjssources", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_70); + ZEPHIR_CONCAT_VS(&_70, &_69, "
"); + zephir_concat_self(&html, &_70); + RETURN_CCTOR(&html); +} + +static PHP_METHOD(Phalcon_Support_Debug, setBlacklist) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *blacklist_param = NULL, area, result, subArray, value, _1, _2, *_3, _4, _7, *_8, _9, _5$$3, _6$$4, _10$$5, _11$$6; + zval blacklist; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&blacklist); + ZVAL_UNDEF(&area); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&subArray); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&_11$$6); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(blacklist) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &blacklist_param); + zephir_get_arrval(&blacklist, blacklist_param); + + + ZEPHIR_INIT_VAR(&_1); + array_init(&_1); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "request"); + ZEPHIR_CALL_CE_STATIC(&area, phalcon_helper_arr_ce, "get", &_0, 16, &blacklist, &_2, &_1); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&subArray); + array_init(&subArray); + ZEPHIR_INIT_VAR(&result); + array_init(&result); + zephir_is_iterable(&area, 0, "phalcon/Support/Debug.zep", 431); + if (Z_TYPE_P(&area) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&area), _3) + { + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _3); + ZEPHIR_INIT_NVAR(&_5$$3); + zephir_fast_strtolower(&_5$$3, &value); + ZEPHIR_CPY_WRT(&value, &_5$$3); + ZEPHIR_INIT_NVAR(&_5$$3); + ZVAL_LONG(&_5$$3, 1); + zephir_array_update_zval(&subArray, &value, &_5$$3, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &area, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_4, &area, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_4)) { + break; } -pp315: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp316; + ZEPHIR_CALL_METHOD(&value, &area, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_6$$4); + zephir_fast_strtolower(&_6$$4, &value); + ZEPHIR_CPY_WRT(&value, &_6$$4); + ZEPHIR_INIT_NVAR(&_6$$4); + ZVAL_LONG(&_6$$4, 1); + zephir_array_update_zval(&subArray, &value, &_6$$4, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &area, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + zephir_array_update_string(&result, SL("request"), &subArray, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + array_init(&_2); + ZEPHIR_INIT_VAR(&_7); + ZVAL_STRING(&_7, "server"); + ZEPHIR_CALL_CE_STATIC(&area, phalcon_helper_arr_ce, "get", &_0, 16, &blacklist, &_7, &_2); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&subArray); + array_init(&subArray); + zephir_is_iterable(&area, 0, "phalcon/Support/Debug.zep", 440); + if (Z_TYPE_P(&area) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&area), _8) + { + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _8); + ZEPHIR_INIT_NVAR(&_10$$5); + zephir_fast_strtolower(&_10$$5, &value); + ZEPHIR_CPY_WRT(&value, &_10$$5); + ZEPHIR_INIT_NVAR(&_10$$5); + ZVAL_LONG(&_10$$5, 1); + zephir_array_update_zval(&subArray, &value, &_10$$5, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &area, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_9, &area, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_9)) { + break; } -pp316: - { - token->opcode = PHQL_T_WHERE; - return 0; + ZEPHIR_CALL_METHOD(&value, &area, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_11$$6); + zephir_fast_strtolower(&_11$$6, &value); + ZEPHIR_CPY_WRT(&value, &_11$$6); + ZEPHIR_INIT_NVAR(&_11$$6); + ZVAL_LONG(&_11$$6, 1); + zephir_array_update_zval(&subArray, &value, &_11$$6, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &area, "next", NULL, 0); + zephir_check_call_status(); } -pp317: - ppch = *++PPCURSOR; - switch (ppch) { - case 'T': - case 't': goto pp338; - default: goto pp59; + } + ZEPHIR_INIT_NVAR(&value); + zephir_array_update_string(&result, SL("server"), &subArray, PH_COPY | PH_SEPARATE); + zephir_update_property_zval(this_ptr, ZEND_STRL("blacklist"), &result); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Support_Debug, setShowBackTrace) +{ + zval *showBackTrace_param = NULL, __$true, __$false; + zend_bool showBackTrace; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(showBackTrace) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &showBackTrace_param); + showBackTrace = zephir_get_boolval(showBackTrace_param); + + + if (showBackTrace) { + zephir_update_property_zval(this_ptr, ZEND_STRL("showBackTrace"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("showBackTrace"), &__$false); + } + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Support_Debug, setShowFileFragment) +{ + zval *showFileFragment_param = NULL, __$true, __$false; + zend_bool showFileFragment; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(showFileFragment) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &showFileFragment_param); + showFileFragment = zephir_get_boolval(showFileFragment_param); + + + if (showFileFragment) { + zephir_update_property_zval(this_ptr, ZEND_STRL("showFileFragment"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("showFileFragment"), &__$false); + } + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Support_Debug, setShowFiles) +{ + zval *showFiles_param = NULL, __$true, __$false; + zend_bool showFiles; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(showFiles) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &showFiles_param); + showFiles = zephir_get_boolval(showFiles_param); + + + if (showFiles) { + zephir_update_property_zval(this_ptr, ZEND_STRL("showFiles"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("showFiles"), &__$false); + } + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Support_Debug, setUri) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *uri_param = NULL; + zval uri; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&uri); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(uri) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &uri_param); + if (UNEXPECTED(Z_TYPE_P(uri_param) != IS_STRING && Z_TYPE_P(uri_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'uri' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(uri_param) == IS_STRING)) { + zephir_get_strval(&uri, uri_param); + } else { + ZEPHIR_INIT_VAR(&uri); + } + + + zephir_update_property_zval(this_ptr, ZEND_STRL("uri"), &uri); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Support_Debug, escapeString) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *value, value_sub, _0$$3, _1$$3, _2$$3, _3$$3, _4$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &value); + + + if (Z_TYPE_P(value) == IS_STRING) { + ZEPHIR_INIT_VAR(&_0$$3); + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, "\n"); + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "\\n"); + zephir_fast_str_replace(&_0$$3, &_1$$3, &_2$$3, value); + ZVAL_LONG(&_3$$3, 2); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "utf-8"); + ZEPHIR_RETURN_CALL_FUNCTION("htmlentities", NULL, 0, &_0$$3, &_3$$3, &_4$$3); + zephir_check_call_status(); + RETURN_MM(); + } + RETVAL_ZVAL(value, 1, 0); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Support_Debug, getArrayDump) +{ + zend_string *_4; + zend_ulong _3; + zend_bool _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_5 = NULL, *_8 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *argument_param = NULL, *n = NULL, n_sub, numberArguments, dump, varDump, k, v, *_1, _2, _6$$8, _7$$8, _9$$9, _10$$5, _11$$15, _12$$15, _13$$16, _14$$12; + zval argument; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&argument); + ZVAL_UNDEF(&n_sub); + ZVAL_UNDEF(&numberArguments); + ZVAL_UNDEF(&dump); + ZVAL_UNDEF(&varDump); + ZVAL_UNDEF(&k); + ZVAL_UNDEF(&v); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_6$$8); + ZVAL_UNDEF(&_7$$8); + ZVAL_UNDEF(&_9$$9); + ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&_11$$15); + ZVAL_UNDEF(&_12$$15); + ZVAL_UNDEF(&_13$$16); + ZVAL_UNDEF(&_14$$12); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(argument) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL(n) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &argument_param, &n); + ZEPHIR_OBS_COPY_OR_DUP(&argument, argument_param); + if (!n) { + n = &n_sub; + ZEPHIR_INIT_VAR(n); + ZVAL_LONG(n, 0); + } + + + ZEPHIR_INIT_VAR(&numberArguments); + ZVAL_LONG(&numberArguments, zephir_fast_count_int(&argument)); + _0 = ZEPHIR_GE_LONG(n, 3); + if (!(_0)) { + _0 = ZEPHIR_IS_LONG(&numberArguments, 0); + } + if (_0) { + RETURN_MM_NULL(); + } + if (ZEPHIR_GE_LONG(&numberArguments, 10)) { + RETURN_CCTOR(&numberArguments); + } + ZEPHIR_INIT_VAR(&dump); + array_init(&dump); + zephir_is_iterable(&argument, 0, "phalcon/Support/Debug.zep", 540); + if (Z_TYPE_P(&argument) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&argument), _3, _4, _1) + { + ZEPHIR_INIT_NVAR(&k); + if (_4 != NULL) { + ZVAL_STR_COPY(&k, _4); + } else { + ZVAL_LONG(&k, _3); } -pp318: - ppch = *++PPCURSOR; - switch (ppch) { - case 'N': - case 'n': goto pp340; - default: goto pp59; + ZEPHIR_INIT_NVAR(&v); + ZVAL_COPY(&v, _1); + if (ZEPHIR_IS_STRING(&v, "")) { + ZEPHIR_INIT_NVAR(&varDump); + ZVAL_STRING(&varDump, "(empty string)"); + } else if (zephir_is_scalar(&v)) { + ZEPHIR_CALL_METHOD(&varDump, this_ptr, "escapestring", &_5, 0, &v); + zephir_check_call_status(); + } else if (Z_TYPE_P(&v) == IS_ARRAY) { + ZVAL_LONG(&_7$$8, (zephir_get_numberval(n) + 1)); + ZEPHIR_CALL_METHOD(&_6$$8, this_ptr, "getarraydump", &_8, 0, &v, &_7$$8); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&varDump); + ZEPHIR_CONCAT_SVS(&varDump, "Array(", &_6$$8, ")"); + } else if (Z_TYPE_P(&v) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_9$$9); + zephir_get_class(&_9$$9, &v, 0); + ZEPHIR_INIT_NVAR(&varDump); + ZEPHIR_CONCAT_SVS(&varDump, "Object(", &_9$$9, ")"); + } else if (Z_TYPE_P(&v) == IS_NULL) { + ZEPHIR_INIT_NVAR(&varDump); + ZVAL_STRING(&varDump, "null"); + } else { + ZEPHIR_CPY_WRT(&varDump, &v); } -pp319: - ppch = *++PPCURSOR; - switch (ppch) { - case 'T': - case 't': goto pp342; - default: goto pp59; + ZEPHIR_INIT_NVAR(&_10$$5); + ZEPHIR_CONCAT_SVSV(&_10$$5, "[", &k, "] => ", &varDump); + zephir_array_append(&dump, &_10$$5, PH_SEPARATE, "phalcon/Support/Debug.zep", 537); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &argument, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &argument, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; } -pp320: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp321; + ZEPHIR_CALL_METHOD(&k, &argument, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&v, &argument, "current", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_STRING(&v, "")) { + ZEPHIR_INIT_NVAR(&varDump); + ZVAL_STRING(&varDump, "(empty string)"); + } else if (zephir_is_scalar(&v)) { + ZEPHIR_CALL_METHOD(&varDump, this_ptr, "escapestring", &_5, 0, &v); + zephir_check_call_status(); + } else if (Z_TYPE_P(&v) == IS_ARRAY) { + ZVAL_LONG(&_12$$15, (zephir_get_numberval(n) + 1)); + ZEPHIR_CALL_METHOD(&_11$$15, this_ptr, "getarraydump", &_8, 0, &v, &_12$$15); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&varDump); + ZEPHIR_CONCAT_SVS(&varDump, "Array(", &_11$$15, ")"); + } else if (Z_TYPE_P(&v) == IS_OBJECT) { + ZEPHIR_INIT_NVAR(&_13$$16); + zephir_get_class(&_13$$16, &v, 0); + ZEPHIR_INIT_NVAR(&varDump); + ZEPHIR_CONCAT_SVS(&varDump, "Object(", &_13$$16, ")"); + } else if (Z_TYPE_P(&v) == IS_NULL) { + ZEPHIR_INIT_NVAR(&varDump); + ZVAL_STRING(&varDump, "null"); + } else { + ZEPHIR_CPY_WRT(&varDump, &v); + } + ZEPHIR_INIT_NVAR(&_14$$12); + ZEPHIR_CONCAT_SVSV(&_14$$12, "[", &k, "] => ", &varDump); + zephir_array_append(&dump, &_14$$12, PH_SEPARATE, "phalcon/Support/Debug.zep", 537); + ZEPHIR_CALL_METHOD(NULL, &argument, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&v); + ZEPHIR_INIT_NVAR(&k); + zephir_fast_join_str(return_value, SL(", "), &dump); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Support_Debug, getVarDump) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *variable, variable_sub, className, dumpedObject, _0$$8, _1$$10; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&variable_sub); + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&dumpedObject); + ZVAL_UNDEF(&_0$$8); + ZVAL_UNDEF(&_1$$10); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(variable) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &variable); + + + if (ZEPHIR_IS_TRUE_IDENTICAL(variable)) { + RETURN_MM_STRING("true"); + } + if (ZEPHIR_IS_FALSE_IDENTICAL(variable)) { + RETURN_MM_STRING("false"); + } + if (Z_TYPE_P(variable) == IS_STRING) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "escapestring", NULL, 0, variable); + zephir_check_call_status(); + RETURN_MM(); + } + if (zephir_is_scalar(variable)) { + RETVAL_ZVAL(variable, 1, 0); + RETURN_MM(); + } + if (Z_TYPE_P(variable) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&className); + zephir_get_class(&className, variable, 0); + if ((zephir_method_exists_ex(variable, ZEND_STRL("dump")) == SUCCESS)) { + ZEPHIR_CALL_METHOD(&dumpedObject, variable, "dump", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0$$8, this_ptr, "getarraydump", NULL, 0, &dumpedObject); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "Object(", &className, ": ", &_0$$8, ")"); + RETURN_MM(); + } else { + ZEPHIR_CONCAT_SVS(return_value, "Object(", &className, ")"); + RETURN_MM(); + } + } + if (Z_TYPE_P(variable) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&_1$$10, this_ptr, "getarraydump", NULL, 0, variable); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "Array(", &_1$$10, ")"); + RETURN_MM(); + } + if (Z_TYPE_P(variable) == IS_NULL) { + RETURN_MM_STRING("null"); + } + zephir_gettype(return_value, variable); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Support_Debug, showTraceItem) +{ + zend_bool _42$$25; + zval _1, _28$$17; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_21 = NULL, *_49 = NULL; + zval trace; + zval *n_param = NULL, *trace_param = NULL, className, prepareInternalClass, preparedFunctionName, html, classReflection, prepareUriClass, functionName, functionReflection, traceArgs, arguments, argument, filez, line, showFiles, lines, numberLines, showFileFragment, firstLine, lastLine, linePosition, currentLine, classNameWithLink, functionNameWithLink, parts, _0, _17, _2$$3, _3$$3, _4$$3, _5$$3, _12$$3, _13$$3, _6$$4, _7$$4, _8$$5, _9$$6, _10$$6, _11$$6, _14$$10, _15$$11, _16$$11, *_18$$14, _19$$14, _25$$14, _26$$14, _20$$15, _22$$15, _23$$16, _24$$16, _27$$17, _29$$17, _30$$17, _31$$18, _32$$19, _33$$24, _34$$27, _35$$27, _36$$27, _37$$27, _38$$27, _39$$28, _40$$28, _41$$28, _43$$30, _44$$30, _45$$30, _46$$30, _47$$30, _48$$30; + zend_long n, ZEPHIR_LAST_CALL_STATUS, i = 0, beforeLine$$19, afterLine$$19; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&prepareInternalClass); + ZVAL_UNDEF(&preparedFunctionName); + ZVAL_UNDEF(&html); + ZVAL_UNDEF(&classReflection); + ZVAL_UNDEF(&prepareUriClass); + ZVAL_UNDEF(&functionName); + ZVAL_UNDEF(&functionReflection); + ZVAL_UNDEF(&traceArgs); + ZVAL_UNDEF(&arguments); + ZVAL_UNDEF(&argument); + ZVAL_UNDEF(&filez); + ZVAL_UNDEF(&line); + ZVAL_UNDEF(&showFiles); + ZVAL_UNDEF(&lines); + ZVAL_UNDEF(&numberLines); + ZVAL_UNDEF(&showFileFragment); + ZVAL_UNDEF(&firstLine); + ZVAL_UNDEF(&lastLine); + ZVAL_UNDEF(&linePosition); + ZVAL_UNDEF(¤tLine); + ZVAL_UNDEF(&classNameWithLink); + ZVAL_UNDEF(&functionNameWithLink); + ZVAL_UNDEF(&parts); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_17); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_12$$3); + ZVAL_UNDEF(&_13$$3); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$6); + ZVAL_UNDEF(&_10$$6); + ZVAL_UNDEF(&_11$$6); + ZVAL_UNDEF(&_14$$10); + ZVAL_UNDEF(&_15$$11); + ZVAL_UNDEF(&_16$$11); + ZVAL_UNDEF(&_19$$14); + ZVAL_UNDEF(&_25$$14); + ZVAL_UNDEF(&_26$$14); + ZVAL_UNDEF(&_20$$15); + ZVAL_UNDEF(&_22$$15); + ZVAL_UNDEF(&_23$$16); + ZVAL_UNDEF(&_24$$16); + ZVAL_UNDEF(&_27$$17); + ZVAL_UNDEF(&_29$$17); + ZVAL_UNDEF(&_30$$17); + ZVAL_UNDEF(&_31$$18); + ZVAL_UNDEF(&_32$$19); + ZVAL_UNDEF(&_33$$24); + ZVAL_UNDEF(&_34$$27); + ZVAL_UNDEF(&_35$$27); + ZVAL_UNDEF(&_36$$27); + ZVAL_UNDEF(&_37$$27); + ZVAL_UNDEF(&_38$$27); + ZVAL_UNDEF(&_39$$28); + ZVAL_UNDEF(&_40$$28); + ZVAL_UNDEF(&_41$$28); + ZVAL_UNDEF(&_43$$30); + ZVAL_UNDEF(&_44$$30); + ZVAL_UNDEF(&_45$$30); + ZVAL_UNDEF(&_46$$30); + ZVAL_UNDEF(&_47$$30); + ZVAL_UNDEF(&_48$$30); + ZVAL_UNDEF(&trace); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_28$$17); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_LONG(n) + Z_PARAM_ARRAY(trace) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &n_param, &trace_param); + n = zephir_get_intval(n_param); + ZEPHIR_OBS_COPY_OR_DUP(&trace, trace_param); + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_LONG(&_0, n); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_CONCAT_SVS(&_1, "#", &_0, ""); + ZEPHIR_CPY_WRT(&html, &_1); + ZEPHIR_OBS_VAR(&className); + if (zephir_array_isset_string_fetch(&className, &trace, SL("class"), 0)) { + ZEPHIR_INIT_VAR(&_2$$3); + ZEPHIR_INIT_VAR(&_3$$3); + ZVAL_STRING(&_3$$3, "/^Phalcon/"); + ZEPHIR_INIT_VAR(&_4$$3); + ZEPHIR_INIT_VAR(&_5$$3); + ZVAL_STRING(&_5$$3, "/^Phalcon/"); + zephir_preg_match(&_4$$3, &_5$$3, &className, &_2$$3, 0, 0 , 0 ); + if (zephir_is_true(&_4$$3)) { + ZEPHIR_INIT_VAR(&parts); + zephir_fast_explode_str(&parts, SL("\\"), &className, LONG_MAX); + zephir_array_fetch_long(&_6$$4, &parts, 0, PH_NOISY | PH_READONLY, "phalcon/Support/Debug.zep", 645); + zephir_array_fetch_long(&_7$$4, &parts, 1, PH_NOISY | PH_READONLY, "phalcon/Support/Debug.zep", 645); + ZEPHIR_INIT_VAR(&prepareUriClass); + ZEPHIR_CONCAT_VSV(&prepareUriClass, &_6$$4, "_", &_7$$4); + ZEPHIR_INIT_VAR(&classNameWithLink); + ZEPHIR_CONCAT_SVSVS(&classNameWithLink, "", &className, ""); + } else { + ZEPHIR_INIT_VAR(&classReflection); + object_init_ex(&classReflection, zephir_get_internal_ce(SL("reflectionclass"))); + ZEPHIR_CALL_METHOD(NULL, &classReflection, "__construct", NULL, 156, &className); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_8$$5, &classReflection, "isinternal", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_8$$5)) { + ZEPHIR_INIT_VAR(&_9$$6); + zephir_fast_strtolower(&_9$$6, &className); + ZEPHIR_INIT_VAR(&_10$$6); + ZVAL_STRING(&_10$$6, "_"); + ZEPHIR_INIT_VAR(&_11$$6); + ZVAL_STRING(&_11$$6, "-"); + ZEPHIR_INIT_VAR(&prepareInternalClass); + zephir_fast_str_replace(&prepareInternalClass, &_10$$6, &_11$$6, &_9$$6); + ZEPHIR_INIT_NVAR(&classNameWithLink); + ZEPHIR_CONCAT_SVSVS(&classNameWithLink, "", &className, ""); + } else { + ZEPHIR_CPY_WRT(&classNameWithLink, &className); } -pp321: - { - token->opcode = PHQL_T_DELETE; - return 0; } -pp322: - ppch = *++PPCURSOR; - switch (ppch) { - case 'C': - case 'c': goto pp344; - default: goto pp59; - } -pp323: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp324; + ZEPHIR_INIT_VAR(&_12$$3); + ZEPHIR_CONCAT_SVS(&_12$$3, "", &classNameWithLink, ""); + zephir_concat_self(&html, &_12$$3); + zephir_array_fetch_string(&_13$$3, &trace, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Support/Debug.zep", 678); + zephir_concat_self(&html, &_13$$3); + } + ZEPHIR_OBS_VAR(&functionName); + zephir_array_fetch_string(&functionName, &trace, SL("function"), PH_NOISY, "phalcon/Support/Debug.zep", 684); + if (zephir_array_isset_string(&trace, SL("class"))) { + ZEPHIR_CPY_WRT(&functionNameWithLink, &functionName); + } else { + if ((zephir_function_exists(&functionName) == SUCCESS)) { + ZEPHIR_INIT_VAR(&functionReflection); + object_init_ex(&functionReflection, zephir_get_internal_ce(SL("reflectionfunction"))); + ZEPHIR_CALL_METHOD(NULL, &functionReflection, "__construct", NULL, 151, &functionName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_14$$10, &functionReflection, "isinternal", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_14$$10)) { + ZEPHIR_INIT_VAR(&_15$$11); + ZVAL_STRING(&_15$$11, "_"); + ZEPHIR_INIT_VAR(&_16$$11); + ZVAL_STRING(&_16$$11, "-"); + ZEPHIR_INIT_VAR(&preparedFunctionName); + zephir_fast_str_replace(&preparedFunctionName, &_15$$11, &_16$$11, &functionName); + ZEPHIR_INIT_NVAR(&functionNameWithLink); + ZEPHIR_CONCAT_SVSVS(&functionNameWithLink, "", &functionName, ""); + } else { + ZEPHIR_CPY_WRT(&functionNameWithLink, &functionName); } -pp324: - { - token->opcode = PHQL_T_EXISTS; - return 0; + } else { + ZEPHIR_CPY_WRT(&functionNameWithLink, &functionName); } -pp325: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp326; - } -pp326: + } + ZEPHIR_INIT_VAR(&_17); + ZEPHIR_CONCAT_SVS(&_17, "", &functionNameWithLink, ""); + zephir_concat_self(&html, &_17); + ZEPHIR_OBS_VAR(&traceArgs); + if (zephir_array_isset_string_fetch(&traceArgs, &trace, SL("args"), 0)) { + ZEPHIR_INIT_VAR(&arguments); + array_init(&arguments); + zephir_is_iterable(&traceArgs, 0, "phalcon/Support/Debug.zep", 736); + if (Z_TYPE_P(&traceArgs) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&traceArgs), _18$$14) { - token->opcode = PHQL_T_HAVING; - return 0; - } -pp327: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp328; + ZEPHIR_INIT_NVAR(&argument); + ZVAL_COPY(&argument, _18$$14); + ZEPHIR_CALL_METHOD(&_20$$15, this_ptr, "getvardump", &_21, 0, &argument); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_22$$15); + ZEPHIR_CONCAT_SVS(&_22$$15, "", &_20$$15, ""); + zephir_array_append(&arguments, &_22$$15, PH_SEPARATE, "phalcon/Support/Debug.zep", 730); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &traceArgs, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_19$$14, &traceArgs, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_19$$14)) { + break; + } + ZEPHIR_CALL_METHOD(&argument, &traceArgs, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_23$$16, this_ptr, "getvardump", &_21, 0, &argument); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_24$$16); + ZEPHIR_CONCAT_SVS(&_24$$16, "", &_23$$16, ""); + zephir_array_append(&arguments, &_24$$16, PH_SEPARATE, "phalcon/Support/Debug.zep", 730); + ZEPHIR_CALL_METHOD(NULL, &traceArgs, "next", NULL, 0); + zephir_check_call_status(); } -pp328: - { - token->opcode = PHQL_T_INSERT; - return 0; } -pp329: - ppch = *++PPCURSOR; - switch (ppch) { - case 'T': - case 't': goto pp345; - default: goto pp86; + ZEPHIR_INIT_NVAR(&argument); + ZEPHIR_INIT_VAR(&_25$$14); + zephir_fast_join_str(&_25$$14, SL(", "), &arguments); + ZEPHIR_INIT_VAR(&_26$$14); + ZEPHIR_CONCAT_SVS(&_26$$14, "(", &_25$$14, ")"); + zephir_concat_self(&html, &_26$$14); + } + ZEPHIR_OBS_VAR(&filez); + if (zephir_array_isset_string_fetch(&filez, &trace, SL("file"), 0)) { + ZEPHIR_OBS_VAR(&_27$$17); + zephir_array_fetch_string(&_27$$17, &trace, SL("line"), PH_NOISY, "phalcon/Support/Debug.zep", 744); + zephir_cast_to_string(&_28$$17, &_27$$17); + ZEPHIR_CPY_WRT(&line, &_28$$17); + ZEPHIR_INIT_VAR(&_29$$17); + ZEPHIR_CONCAT_SVSVS(&_29$$17, "
", &filez, " (", &line, ")
"); + zephir_concat_self(&html, &_29$$17); + zephir_read_property(&_30$$17, this_ptr, ZEND_STRL("showFiles"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&showFiles, &_30$$17); + if (zephir_is_true(&showFiles)) { + ZEPHIR_CALL_FUNCTION(&lines, "file", NULL, 0, &filez); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&numberLines); + ZVAL_LONG(&numberLines, zephir_fast_count_int(&lines)); + zephir_read_property(&_31$$18, this_ptr, ZEND_STRL("showFileFragment"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&showFileFragment, &_31$$18); + if (zephir_is_true(&showFileFragment)) { + beforeLine$$19 = (zephir_get_numberval(&line) - 7); + if (beforeLine$$19 < 1) { + ZEPHIR_INIT_VAR(&firstLine); + ZVAL_LONG(&firstLine, 1); + } else { + ZEPHIR_INIT_NVAR(&firstLine); + ZVAL_LONG(&firstLine, beforeLine$$19); + } + afterLine$$19 = (zephir_get_numberval(&line) + 5); + if (ZEPHIR_LT_LONG(&numberLines, afterLine$$19)) { + ZEPHIR_CPY_WRT(&lastLine, &numberLines); + } else { + ZEPHIR_INIT_NVAR(&lastLine); + ZVAL_LONG(&lastLine, afterLine$$19); + } + ZEPHIR_INIT_VAR(&_32$$19); + ZEPHIR_CONCAT_SVSVSVS(&_32$$19, "
");
+				zephir_concat_self(&html, &_32$$19);
+			} else {
+				ZEPHIR_INIT_NVAR(&firstLine);
+				ZVAL_LONG(&firstLine, 1);
+				ZEPHIR_CPY_WRT(&lastLine, &numberLines);
+				ZEPHIR_INIT_VAR(&_33$$24);
+				ZEPHIR_CONCAT_SVSVS(&_33$$24, "
");
+				zephir_concat_self(&html, &_33$$24);
 			}
-pp330:
-			ppch = *++PPCURSOR;
-			switch (ppch) {
-			case '0':
-			case '1':
-			case '2':
-			case '3':
-			case '4':
-			case '5':
-			case '6':
-			case '7':
-			case '8':
-			case '9':
-			case ':':
-			case 'A':
-			case 'B':
-			case 'C':
-			case 'D':
-			case 'E':
-			case 'F':
-			case 'G':
-			case 'H':
-			case 'I':
-			case 'J':
-			case 'K':
-			case 'L':
-			case 'M':
-			case 'N':
-			case 'O':
-			case 'P':
-			case 'Q':
-			case 'R':
-			case 'S':
-			case 'T':
-			case 'U':
-			case 'V':
-			case 'W':
-			case 'X':
-			case 'Y':
-			case 'Z':
-			case '\\':
-			case '_':
-			case 'a':
-			case 'b':
-			case 'c':
-			case 'd':
-			case 'e':
-			case 'f':
-			case 'g':
-			case 'h':
-			case 'i':
-			case 'j':
-			case 'k':
-			case 'l':
-			case 'm':
-			case 'n':
-			case 'o':
-			case 'p':
-			case 'q':
-			case 'r':
-			case 's':
-			case 't':
-			case 'u':
-			case 'v':
-			case 'w':
-			case 'x':
-			case 'y':
-			case 'z':	goto pp58;
-			default:	goto pp331;
+			i = zephir_get_numberval(&firstLine);
+			while (1) {
+				if (!(ZEPHIR_GE_LONG(&lastLine, i))) {
+					break;
+				}
+				ZEPHIR_INIT_NVAR(&linePosition);
+				ZVAL_LONG(&linePosition, (i - 1));
+				ZEPHIR_OBS_NVAR(¤tLine);
+				zephir_array_fetch(¤tLine, &lines, &linePosition, PH_NOISY, "phalcon/Support/Debug.zep", 817);
+				if (zephir_is_true(&showFileFragment)) {
+					if (ZEPHIR_IS_LONG(&firstLine, i)) {
+						ZEPHIR_INIT_NVAR(&_34$$27);
+						ZEPHIR_INIT_NVAR(&_35$$27);
+						zephir_fast_trim(&_35$$27, ¤tLine, NULL , ZEPHIR_TRIM_RIGHT);
+						ZEPHIR_INIT_NVAR(&_36$$27);
+						ZVAL_STRING(&_36$$27, "#\\*\\/#");
+						ZEPHIR_INIT_NVAR(&_37$$27);
+						ZEPHIR_INIT_NVAR(&_38$$27);
+						ZVAL_STRING(&_38$$27, "#\\*\\/#");
+						zephir_preg_match(&_37$$27, &_38$$27, &_35$$27, &_34$$27, 0, 0 , 0 );
+						if (zephir_is_true(&_37$$27)) {
+							ZEPHIR_INIT_NVAR(&_39$$28);
+							ZEPHIR_INIT_NVAR(&_40$$28);
+							ZVAL_STRING(&_40$$28, "* /");
+							ZEPHIR_INIT_NVAR(&_41$$28);
+							ZVAL_STRING(&_41$$28, " ");
+							zephir_fast_str_replace(&_39$$28, &_40$$28, &_41$$28, ¤tLine);
+							ZEPHIR_CPY_WRT(¤tLine, &_39$$28);
+						}
+					}
+				}
+				_42$$25 = ZEPHIR_IS_STRING(¤tLine, "\n");
+				if (!(_42$$25)) {
+					_42$$25 = ZEPHIR_IS_STRING(¤tLine, "\r\n");
+				}
+				if (_42$$25) {
+					zephir_concat_self_str(&html, SL(" \n"));
+				} else {
+					ZEPHIR_INIT_NVAR(&_43$$30);
+					ZEPHIR_INIT_NVAR(&_44$$30);
+					ZVAL_STRING(&_44$$30, "\t");
+					ZEPHIR_INIT_NVAR(&_45$$30);
+					ZVAL_STRING(&_45$$30, "  ");
+					zephir_fast_str_replace(&_43$$30, &_44$$30, &_45$$30, ¤tLine);
+					ZVAL_LONG(&_46$$30, 2);
+					ZEPHIR_INIT_NVAR(&_47$$30);
+					ZVAL_STRING(&_47$$30, "UTF-8");
+					ZEPHIR_CALL_FUNCTION(&_48$$30, "htmlentities", &_49, 0, &_43$$30, &_46$$30, &_47$$30);
+					zephir_check_call_status();
+					zephir_concat_self(&html, &_48$$30);
+				}
+				i++;
 			}
-pp331:
+			zephir_concat_self_str(&html, SL("
")); + } + } + zephir_concat_self_str(&html, SL("")); + RETURN_CCTOR(&html); +} + +zend_object *zephir_init_properties_Phalcon_Support_Debug(zend_class_entry *class_type) +{ + zval _3$$4; + zval _0, _2, _1$$3, _4$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_3$$4); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("data"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("blacklist"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + zephir_create_array(&_3$$4, 2, 0); + ZEPHIR_INIT_VAR(&_4$$4); + array_init(&_4$$4); + zephir_array_update_string(&_3$$4, SL("request"), &_4$$4, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_4$$4); + array_init(&_4$$4); + zephir_array_update_string(&_3$$4, SL("server"), &_4$$4, PH_COPY | PH_SEPARATE); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("blacklist"), &_3$$4); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Support_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Support, Exception, phalcon, support_exception, zend_ce_exception, NULL, 0); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Support_HelperFactory) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Support, HelperFactory, phalcon, support_helperfactory, phalcon_factory_abstractfactory_ce, phalcon_support_helperfactory_method_entry, 0); + + zend_declare_property_string(phalcon_support_helperfactory_ce, SL("exception"), "Phalcon\\Support\\Exception", ZEND_ACC_PROTECTED); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Support_HelperFactory, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *services_param = NULL; + zval services; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&services); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(services) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &services_param); + if (!services_param) { + ZEPHIR_INIT_VAR(&services); + array_init(&services); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&services, services_param); + } + + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "init", NULL, 0, &services); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Support_HelperFactory, __call) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval arguments, _0; + zval *name_param = NULL, *arguments_param = NULL, helper, _1; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&helper); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&arguments); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(name) + Z_PARAM_ARRAY(arguments) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &name_param, &arguments_param); + zephir_get_strval(&name, name_param); + zephir_get_arrval(&arguments, arguments_param); + + + ZEPHIR_CALL_METHOD(&helper, this_ptr, "newinstance", NULL, 0, &name); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 2, 0); + zephir_array_fast_append(&_0, &helper); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "__invoke"); + zephir_array_fast_append(&_0, &_1); + ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, &_0, &arguments); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Support_HelperFactory, newInstance) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, _0; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + zephir_get_strval(&name, name_param); + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getservice", NULL, 0, &name); + zephir_check_call_status(); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(return_value, &_0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Support_HelperFactory, getAdapters) +{ + zval *this_ptr = getThis(); + + + + zephir_create_array(return_value, 1, 0); + add_assoc_stringl_ex(return_value, SL("interpolate"), SL("Phalcon\\Support\\Helper\\Str\\Interpolate")); + return; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Support_Version) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Support, Version, phalcon, support_version, phalcon_support_version_method_entry, 0); + + zephir_declare_class_constant_long(phalcon_support_version_ce, SL("VERSION_MAJOR"), 0); + + zephir_declare_class_constant_long(phalcon_support_version_ce, SL("VERSION_MEDIUM"), 1); + + zephir_declare_class_constant_long(phalcon_support_version_ce, SL("VERSION_MINOR"), 2); + + zephir_declare_class_constant_long(phalcon_support_version_ce, SL("VERSION_SPECIAL"), 3); + + zephir_declare_class_constant_long(phalcon_support_version_ce, SL("VERSION_SPECIAL_NUMBER"), 4); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Support_Version, getVersion) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + zephir_create_array(return_value, 5, 0); + ZEPHIR_INIT_VAR(&_0); + ZVAL_LONG(&_0, 5); + zephir_array_fast_append(return_value, &_0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_LONG(&_0, 0); + zephir_array_fast_append(return_value, &_0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_LONG(&_0, 0); + zephir_array_fast_append(return_value, &_0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_LONG(&_0, 1); + zephir_array_fast_append(return_value, &_0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_LONG(&_0, 6); + zephir_array_fast_append(return_value, &_0); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Support_Version, getSpecial) +{ + zval suffix; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *special_param = NULL; + zend_long special; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&suffix); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(special) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &special_param); + special = zephir_get_intval(special_param); + + + ZEPHIR_INIT_VAR(&suffix); + do { + if (special == 1) { + ZEPHIR_INIT_NVAR(&suffix); + ZVAL_STRING(&suffix, "alpha"); + break; + } + if (special == 2) { + ZEPHIR_INIT_NVAR(&suffix); + ZVAL_STRING(&suffix, "beta"); + break; + } + if (special == 3) { + ZEPHIR_INIT_NVAR(&suffix); + ZVAL_STRING(&suffix, "RC"); + break; + } + } while(0); + + RETURN_CTOR(&suffix); +} + +static PHP_METHOD(Phalcon_Support_Version, get) +{ + zval result; + zval version, major, medium, minor, special, specialNumber, suffix, _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&version); + ZVAL_UNDEF(&major); + ZVAL_UNDEF(&medium); + ZVAL_UNDEF(&minor); + ZVAL_UNDEF(&special); + ZVAL_UNDEF(&specialNumber); + ZVAL_UNDEF(&suffix); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&result); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&version, this_ptr, "getversion", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&major); + zephir_array_fetch_long(&major, &version, 0, PH_NOISY, "phalcon/Support/Version.zep", 119); + ZEPHIR_OBS_VAR(&medium); + zephir_array_fetch_long(&medium, &version, 1, PH_NOISY, "phalcon/Support/Version.zep", 120); + ZEPHIR_OBS_VAR(&minor); + zephir_array_fetch_long(&minor, &version, 2, PH_NOISY, "phalcon/Support/Version.zep", 121); + ZEPHIR_OBS_VAR(&special); + zephir_array_fetch_long(&special, &version, 3, PH_NOISY, "phalcon/Support/Version.zep", 122); + ZEPHIR_OBS_VAR(&specialNumber); + zephir_array_fetch_long(&specialNumber, &version, 4, PH_NOISY, "phalcon/Support/Version.zep", 123); + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_CONCAT_VSVSV(&_0, &major, ".", &medium, ".", &minor); + zephir_get_strval(&result, &_0); + ZEPHIR_CALL_METHOD(&suffix, this_ptr, "getspecial", NULL, 0, &special); + zephir_check_call_status(); + if (!ZEPHIR_IS_STRING(&suffix, "")) { + zephir_concat_self(&result, &suffix); + if (!ZEPHIR_IS_LONG(&specialNumber, 0)) { + zephir_concat_self(&result, &specialNumber); + } + } + RETURN_CTOR(&result); +} + +static PHP_METHOD(Phalcon_Support_Version, getId) +{ + zval version, major, medium, minor, special, specialNumber, _0, _1, _2; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&version); + ZVAL_UNDEF(&major); + ZVAL_UNDEF(&medium); + ZVAL_UNDEF(&minor); + ZVAL_UNDEF(&special); + ZVAL_UNDEF(&specialNumber); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&version, this_ptr, "getversion", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&major); + zephir_array_fetch_long(&major, &version, 0, PH_NOISY, "phalcon/Support/Version.zep", 157); + ZEPHIR_OBS_VAR(&medium); + zephir_array_fetch_long(&medium, &version, 1, PH_NOISY, "phalcon/Support/Version.zep", 158); + ZEPHIR_OBS_VAR(&minor); + zephir_array_fetch_long(&minor, &version, 2, PH_NOISY, "phalcon/Support/Version.zep", 159); + ZEPHIR_OBS_VAR(&special); + zephir_array_fetch_long(&special, &version, 3, PH_NOISY, "phalcon/Support/Version.zep", 160); + ZEPHIR_OBS_VAR(&specialNumber); + zephir_array_fetch_long(&specialNumber, &version, 4, PH_NOISY, "phalcon/Support/Version.zep", 161); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "%02s"); + ZEPHIR_CALL_FUNCTION(&_1, "sprintf", NULL, 194, &_0, &medium); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "%02s"); + ZEPHIR_CALL_FUNCTION(&_2, "sprintf", NULL, 194, &_0, &minor); + zephir_check_call_status(); + ZEPHIR_CONCAT_VVVVV(return_value, &major, &_1, &_2, &special, &specialNumber); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Support_Version, getPart) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *part_param = NULL, version, _0$$3, _1$$4; + zend_long part, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&version); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(part) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &part_param); + part = zephir_get_intval(part_param); + + + ZEPHIR_CALL_METHOD(&version, this_ptr, "getversion", NULL, 0); + zephir_check_call_status(); + do { + if (part == 0 || part == 1 || part == 2 || part == 4) { + zephir_array_fetch_long(&_0$$3, &version, part, PH_NOISY | PH_READONLY, "phalcon/Support/Version.zep", 189); + RETURN_CTOR(&_0$$3); + } + if (part == 3) { + zephir_array_fetch_long(&_1$$4, &version, 3, PH_NOISY | PH_READONLY, "phalcon/Support/Version.zep", 192); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getspecial", NULL, 0, &_1$$4); + zephir_check_call_status(); + RETURN_MM(); + } + } while(0); + + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "get", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Support_Helper_Str_Interpolate) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Support\\Helper\\Str, Interpolate, phalcon, support_helper_str_interpolate, phalcon_support_helper_str_interpolate_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Support_Helper_Str_Interpolate, __invoke) +{ + zend_string *_3$$3; + zend_ulong _2$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval context, replace; + zval *message_param = NULL, *context_param = NULL, *leftToken_param = NULL, *rightToken_param = NULL, key, value, *_0$$3, _1$$3, _4$$4, _5$$5; + zval message, leftToken, rightToken; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&message); + ZVAL_UNDEF(&leftToken); + ZVAL_UNDEF(&rightToken); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&context); + ZVAL_UNDEF(&replace); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 4) + Z_PARAM_STR(message) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(context) + Z_PARAM_STR(leftToken) + Z_PARAM_STR(rightToken) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 3, &message_param, &context_param, &leftToken_param, &rightToken_param); + zephir_get_strval(&message, message_param); + if (!context_param) { + ZEPHIR_INIT_VAR(&context); + array_init(&context); + } else { + zephir_get_arrval(&context, context_param); + } + if (!leftToken_param) { + ZEPHIR_INIT_VAR(&leftToken); + ZVAL_STRING(&leftToken, "%"); + } else { + zephir_get_strval(&leftToken, leftToken_param); + } + if (!rightToken_param) { + ZEPHIR_INIT_VAR(&rightToken); + ZVAL_STRING(&rightToken, "%"); + } else { + zephir_get_strval(&rightToken, rightToken_param); + } + + + if (!(ZEPHIR_IS_EMPTY(&context))) { + ZEPHIR_INIT_VAR(&replace); + array_init(&replace); + zephir_is_iterable(&context, 0, "phalcon/Support/Helper/Str/Interpolate.zep", 39); + if (Z_TYPE_P(&context) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&context), _2$$3, _3$$3, _0$$3) { - token->opcode = PHQL_T_OFFSET; - return 0; - } -pp332: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp333; + ZEPHIR_INIT_NVAR(&key); + if (_3$$3 != NULL) { + ZVAL_STR_COPY(&key, _3$$3); + } else { + ZVAL_LONG(&key, _2$$3); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0$$3); + ZEPHIR_INIT_NVAR(&_4$$4); + ZEPHIR_CONCAT_VVV(&_4$$4, &leftToken, &key, &rightToken); + zephir_array_update_zval(&replace, &_4$$4, &value, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &context, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1$$3, &context, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &context, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &context, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_5$$5); + ZEPHIR_CONCAT_VVV(&_5$$5, &leftToken, &key, &rightToken); + zephir_array_update_zval(&replace, &_5$$5, &value, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &context, "next", NULL, 0); + zephir_check_call_status(); } -pp333: - { - token->opcode = PHQL_T_SELECT; - return 0; } -pp334: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp335; + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", NULL, 5, &message, &replace); + zephir_check_call_status(); + RETURN_MM(); + } + RETURN_CTOR(&message); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Support_Debug_Dump) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Support\\Debug, Dump, phalcon, support_debug_dump, phalcon_support_debug_dump_method_entry, 0); + + zend_declare_property_bool(phalcon_support_debug_dump_ce, SL("detailed"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_support_debug_dump_ce, SL("methods"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_support_debug_dump_ce, SL("styles"), ZEND_ACC_PROTECTED); + phalcon_support_debug_dump_ce->create_object = zephir_init_properties_Phalcon_Support_Debug_Dump; + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Support_Debug_Dump, getDetailed) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "detailed"); +} + +static PHP_METHOD(Phalcon_Support_Debug_Dump, setDetailed) +{ + zval *detailed_param = NULL, __$true, __$false; + zend_bool detailed; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(detailed) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &detailed_param); + detailed = zephir_get_boolval(detailed_param); + + + if (detailed) { + zephir_update_property_zval(this_ptr, ZEND_STRL("detailed"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("detailed"), &__$false); + } + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Support_Debug_Dump, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool detailed; + zval *styles_param = NULL, *detailed_param = NULL, __$true, __$false; + zval styles; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&styles); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 2) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(styles) + Z_PARAM_BOOL(detailed) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 2, &styles_param, &detailed_param); + if (!styles_param) { + ZEPHIR_INIT_VAR(&styles); + array_init(&styles); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&styles, styles_param); + } + if (!detailed_param) { + detailed = 0; + } else { + detailed = zephir_get_boolval(detailed_param); + } + + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setstyles", NULL, 0, &styles); + zephir_check_call_status(); + if (detailed) { + zephir_update_property_zval(this_ptr, ZEND_STRL("detailed"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("detailed"), &__$false); + } + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Support_Debug_Dump, all) +{ + zval _1; + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 2, 0); + zephir_array_fast_append(&_0, this_ptr); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "variables"); + zephir_array_fast_append(&_0, &_1); + ZEPHIR_INIT_NVAR(&_1); + zephir_get_args(&_1); + ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, &_0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Support_Debug_Dump, one) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval name; + zval *variable, variable_sub, *name_param = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&variable_sub); + ZVAL_UNDEF(&name); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(variable) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &variable, &name_param); + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + } else { + zephir_get_strval(&name, name_param); + } + + + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "variable", NULL, 0, variable, &name); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Support_Debug_Dump, setStyles) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *styles_param = NULL, defaultStyles, _0; + zval styles; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&styles); + ZVAL_UNDEF(&defaultStyles); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(styles) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &styles_param); + if (!styles_param) { + ZEPHIR_INIT_VAR(&styles); + array_init(&styles); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&styles, styles_param); + } + + + ZEPHIR_INIT_VAR(&defaultStyles); + zephir_create_array(&defaultStyles, 11, 0); + add_assoc_stringl_ex(&defaultStyles, SL("pre"), SL("background-color:#f3f3f3; font-size:11px; padding:10px; border:1px solid #ccc; text-align:left; color:#333")); + add_assoc_stringl_ex(&defaultStyles, SL("arr"), SL("color:red")); + add_assoc_stringl_ex(&defaultStyles, SL("bool"), SL("color:green")); + add_assoc_stringl_ex(&defaultStyles, SL("float"), SL("color:fuchsia")); + add_assoc_stringl_ex(&defaultStyles, SL("int"), SL("color:blue")); + add_assoc_stringl_ex(&defaultStyles, SL("null"), SL("color:black")); + add_assoc_stringl_ex(&defaultStyles, SL("num"), SL("color:navy")); + add_assoc_stringl_ex(&defaultStyles, SL("obj"), SL("color:purple")); + add_assoc_stringl_ex(&defaultStyles, SL("other"), SL("color:maroon")); + add_assoc_stringl_ex(&defaultStyles, SL("res"), SL("color:lime")); + add_assoc_stringl_ex(&defaultStyles, SL("str"), SL("color:teal")); + ZEPHIR_INIT_VAR(&_0); + zephir_fast_array_merge(&_0, &defaultStyles, &styles); + zephir_update_property_zval(this_ptr, ZEND_STRL("styles"), &_0); + RETURN_MM_MEMBER(getThis(), "styles"); +} + +static PHP_METHOD(Phalcon_Support_Debug_Dump, toJson) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *variable, variable_sub, _1; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&variable_sub); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(variable) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &variable); + + + ZVAL_LONG(&_1, ((128 | 64) | 256)); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_helper_json_ce, "encode", &_0, 14, variable, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Support_Debug_Dump, variable) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval name; + zval *variable, variable_sub, *name_param = NULL, _1, _2; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&variable_sub); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(variable) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &variable, &name_param); + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + } else { + zephir_get_strval(&name, name_param); + } + + + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 2, 0); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "pre"); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getstyle", NULL, 0, &_2); + zephir_check_call_status(); + zephir_array_update_string(&_0, SL(":style"), &_1, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "output", NULL, 0, variable, &name); + zephir_check_call_status(); + zephir_array_update_string(&_0, SL(":output"), &_1, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "
:output
"); + ZEPHIR_RETURN_CALL_FUNCTION("strtr", NULL, 5, &_2, &_0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Support_Debug_Dump, variables) +{ + zend_string *_4; + zend_ulong _3; + zval output; + zval key, value, _0, *_1, _2, _5$$3, _6$$3, _8$$4, _9$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_7 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_8$$4); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&output); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&output); + ZEPHIR_INIT_VAR(&_0); + zephir_get_args(&_0); + zephir_is_iterable(&_0, 0, "phalcon/Support/Debug/Dump.zep", 181); + if (Z_TYPE_P(&_0) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_0), _3, _4, _1) + { + ZEPHIR_INIT_NVAR(&key); + if (_4 != NULL) { + ZVAL_STR_COPY(&key, _4); + } else { + ZVAL_LONG(&key, _3); } -pp335: - { - token->opcode = PHQL_T_UPDATE; - return 0; - } -pp336: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp337; + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _1); + ZEPHIR_INIT_NVAR(&_6$$3); + ZEPHIR_CONCAT_SV(&_6$$3, "var ", &key); + ZEPHIR_CALL_METHOD(&_5$$3, this_ptr, "one", &_7, 0, &value, &_6$$3); + zephir_check_call_status(); + zephir_concat_self(&output, &_5$$3); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &_0, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; } -pp337: - { - token->opcode = PHQL_T_VALUES; - return 0; + ZEPHIR_CALL_METHOD(&key, &_0, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &_0, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_9$$4); + ZEPHIR_CONCAT_SV(&_9$$4, "var ", &key); + ZEPHIR_CALL_METHOD(&_8$$4, this_ptr, "one", &_7, 0, &value, &_9$$4); + zephir_check_call_status(); + zephir_concat_self(&output, &_8$$4); + ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); + zephir_check_call_status(); } -pp338: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp339; + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + RETURN_CTOR(&output); +} + +static PHP_METHOD(Phalcon_Support_Debug_Dump, getStyle) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *type_param = NULL, style, _0; + zval type; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&style); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(type) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &type_param); + if (UNEXPECTED(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(type_param) == IS_STRING)) { + zephir_get_strval(&type, type_param); + } else { + ZEPHIR_INIT_VAR(&type); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("styles"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&style, &_0, &type, 1))) { + RETURN_MM_STRING("color:gray"); + } + RETURN_CTOR(&style); +} + +static PHP_METHOD(Phalcon_Support_Debug_Dump, output) +{ + zend_class_entry *_74$$16, *_91$$17; + zend_bool _15$$5, _16$$5, _17$$5, _27$$7, _28$$7, _29$$7, _42$$9; + zend_string *_7$$4, *_50$$12; + zend_ulong _6$$4, _49$$12; + zval _166, _1$$4, _11$$5, _23$$7, _34$$9, _105$$9, _38$$10, _53$$13, _61$$14, _79$$16, _95$$17, _116$$21, _122$$22, _129$$24, _135$$25, _144$$26, _148$$27, _151$$28, _154$$29, _159$$30, _163$$31; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_10 = NULL, *_19 = NULL, *_71 = NULL, *_72 = NULL, *_75 = NULL, *_77 = NULL, *_85 = NULL, *_88 = NULL, *_89 = NULL, *_93 = NULL, *_101 = NULL; + zend_long tab, ZEPHIR_LAST_CALL_STATUS; + zval name, _0$$3; + zval *variable, variable_sub, *name_param = NULL, *tab_param = NULL, key, value, output, space, type, attr, _147, _167, _168, _2$$4, _3$$4, *_4$$4, _5$$4, _32$$4, _33$$4, _8$$5, _9$$5, _12$$5, _13$$5, _14$$5, _18$$5, _20$$5, _21$$7, _22$$7, _24$$7, _25$$7, _26$$7, _30$$7, _31$$7, _35$$9, _36$$9, _37$$9, _41$$9, _103$$9, _104$$9, _106$$9, _107$$9, _142$$9, _143$$9, _39$$10, _40$$10, _43$$11, _44$$11, _45$$11, _46$$12, *_47$$12, _48$$12, _51$$13, _52$$13, _54$$13, _55$$13, _56$$13, _57$$13, _58$$13, _59$$14, _60$$14, _62$$14, _63$$14, _64$$14, _65$$14, _66$$14, reflect$$15, props$$15, property$$15, _67$$15, *_68$$15, _69$$15, _70$$16, _73$$16, _76$$16, _78$$16, _80$$16, _81$$16, _82$$16, _83$$16, _84$$16, _86$$16, _87$$17, _90$$17, _92$$17, _94$$17, _96$$17, _97$$17, _98$$17, _99$$17, _100$$17, _102$$17, _108$$18, _109$$18, _110$$18, *_111$$19, _112$$19, _139$$19, _140$$19, _141$$19, _113$$20, _114$$21, _115$$21, _117$$21, _118$$21, _119$$21, _120$$22, _121$$22, _123$$22, _124$$22, _125$$22, _126$$23, _127$$24, _128$$24, _130$$24, _131$$24, _132$$24, _133$$25, _134$$25, _136$$25, _137$$25, _138$$25, _145$$26, _146$$26, _149$$27, _150$$27, _152$$28, _153$$28, _155$$29, _156$$29, _157$$29, _158$$29, _160$$30, _161$$30, _162$$30, _164$$31, _165$$31; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&variable_sub); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&output); + ZVAL_UNDEF(&space); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&attr); + ZVAL_UNDEF(&_147); + ZVAL_UNDEF(&_167); + ZVAL_UNDEF(&_168); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_32$$4); + ZVAL_UNDEF(&_33$$4); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_12$$5); + ZVAL_UNDEF(&_13$$5); + ZVAL_UNDEF(&_14$$5); + ZVAL_UNDEF(&_18$$5); + ZVAL_UNDEF(&_20$$5); + ZVAL_UNDEF(&_21$$7); + ZVAL_UNDEF(&_22$$7); + ZVAL_UNDEF(&_24$$7); + ZVAL_UNDEF(&_25$$7); + ZVAL_UNDEF(&_26$$7); + ZVAL_UNDEF(&_30$$7); + ZVAL_UNDEF(&_31$$7); + ZVAL_UNDEF(&_35$$9); + ZVAL_UNDEF(&_36$$9); + ZVAL_UNDEF(&_37$$9); + ZVAL_UNDEF(&_41$$9); + ZVAL_UNDEF(&_103$$9); + ZVAL_UNDEF(&_104$$9); + ZVAL_UNDEF(&_106$$9); + ZVAL_UNDEF(&_107$$9); + ZVAL_UNDEF(&_142$$9); + ZVAL_UNDEF(&_143$$9); + ZVAL_UNDEF(&_39$$10); + ZVAL_UNDEF(&_40$$10); + ZVAL_UNDEF(&_43$$11); + ZVAL_UNDEF(&_44$$11); + ZVAL_UNDEF(&_45$$11); + ZVAL_UNDEF(&_46$$12); + ZVAL_UNDEF(&_48$$12); + ZVAL_UNDEF(&_51$$13); + ZVAL_UNDEF(&_52$$13); + ZVAL_UNDEF(&_54$$13); + ZVAL_UNDEF(&_55$$13); + ZVAL_UNDEF(&_56$$13); + ZVAL_UNDEF(&_57$$13); + ZVAL_UNDEF(&_58$$13); + ZVAL_UNDEF(&_59$$14); + ZVAL_UNDEF(&_60$$14); + ZVAL_UNDEF(&_62$$14); + ZVAL_UNDEF(&_63$$14); + ZVAL_UNDEF(&_64$$14); + ZVAL_UNDEF(&_65$$14); + ZVAL_UNDEF(&_66$$14); + ZVAL_UNDEF(&reflect$$15); + ZVAL_UNDEF(&props$$15); + ZVAL_UNDEF(&property$$15); + ZVAL_UNDEF(&_67$$15); + ZVAL_UNDEF(&_69$$15); + ZVAL_UNDEF(&_70$$16); + ZVAL_UNDEF(&_73$$16); + ZVAL_UNDEF(&_76$$16); + ZVAL_UNDEF(&_78$$16); + ZVAL_UNDEF(&_80$$16); + ZVAL_UNDEF(&_81$$16); + ZVAL_UNDEF(&_82$$16); + ZVAL_UNDEF(&_83$$16); + ZVAL_UNDEF(&_84$$16); + ZVAL_UNDEF(&_86$$16); + ZVAL_UNDEF(&_87$$17); + ZVAL_UNDEF(&_90$$17); + ZVAL_UNDEF(&_92$$17); + ZVAL_UNDEF(&_94$$17); + ZVAL_UNDEF(&_96$$17); + ZVAL_UNDEF(&_97$$17); + ZVAL_UNDEF(&_98$$17); + ZVAL_UNDEF(&_99$$17); + ZVAL_UNDEF(&_100$$17); + ZVAL_UNDEF(&_102$$17); + ZVAL_UNDEF(&_108$$18); + ZVAL_UNDEF(&_109$$18); + ZVAL_UNDEF(&_110$$18); + ZVAL_UNDEF(&_112$$19); + ZVAL_UNDEF(&_139$$19); + ZVAL_UNDEF(&_140$$19); + ZVAL_UNDEF(&_141$$19); + ZVAL_UNDEF(&_113$$20); + ZVAL_UNDEF(&_114$$21); + ZVAL_UNDEF(&_115$$21); + ZVAL_UNDEF(&_117$$21); + ZVAL_UNDEF(&_118$$21); + ZVAL_UNDEF(&_119$$21); + ZVAL_UNDEF(&_120$$22); + ZVAL_UNDEF(&_121$$22); + ZVAL_UNDEF(&_123$$22); + ZVAL_UNDEF(&_124$$22); + ZVAL_UNDEF(&_125$$22); + ZVAL_UNDEF(&_126$$23); + ZVAL_UNDEF(&_127$$24); + ZVAL_UNDEF(&_128$$24); + ZVAL_UNDEF(&_130$$24); + ZVAL_UNDEF(&_131$$24); + ZVAL_UNDEF(&_132$$24); + ZVAL_UNDEF(&_133$$25); + ZVAL_UNDEF(&_134$$25); + ZVAL_UNDEF(&_136$$25); + ZVAL_UNDEF(&_137$$25); + ZVAL_UNDEF(&_138$$25); + ZVAL_UNDEF(&_145$$26); + ZVAL_UNDEF(&_146$$26); + ZVAL_UNDEF(&_149$$27); + ZVAL_UNDEF(&_150$$27); + ZVAL_UNDEF(&_152$$28); + ZVAL_UNDEF(&_153$$28); + ZVAL_UNDEF(&_155$$29); + ZVAL_UNDEF(&_156$$29); + ZVAL_UNDEF(&_157$$29); + ZVAL_UNDEF(&_158$$29); + ZVAL_UNDEF(&_160$$30); + ZVAL_UNDEF(&_161$$30); + ZVAL_UNDEF(&_162$$30); + ZVAL_UNDEF(&_164$$31); + ZVAL_UNDEF(&_165$$31); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_166); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_11$$5); + ZVAL_UNDEF(&_23$$7); + ZVAL_UNDEF(&_34$$9); + ZVAL_UNDEF(&_105$$9); + ZVAL_UNDEF(&_38$$10); + ZVAL_UNDEF(&_53$$13); + ZVAL_UNDEF(&_61$$14); + ZVAL_UNDEF(&_79$$16); + ZVAL_UNDEF(&_95$$17); + ZVAL_UNDEF(&_116$$21); + ZVAL_UNDEF(&_122$$22); + ZVAL_UNDEF(&_129$$24); + ZVAL_UNDEF(&_135$$25); + ZVAL_UNDEF(&_144$$26); + ZVAL_UNDEF(&_148$$27); + ZVAL_UNDEF(&_151$$28); + ZVAL_UNDEF(&_154$$29); + ZVAL_UNDEF(&_159$$30); + ZVAL_UNDEF(&_163$$31); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ZVAL(variable) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(name) + Z_PARAM_LONG(tab) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &variable, &name_param, &tab_param); + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + } else { + zephir_get_strval(&name, name_param); + } + if (!tab_param) { + tab = 1; + } else { + tab = zephir_get_intval(tab_param); + } + + + ZEPHIR_INIT_VAR(&space); + ZVAL_STRING(&space, " "); + ZEPHIR_INIT_VAR(&output); + ZVAL_STRING(&output, ""); + if (!(ZEPHIR_IS_EMPTY(&name))) { + ZEPHIR_INIT_VAR(&_0$$3); + ZEPHIR_CONCAT_VS(&_0$$3, &name, " "); + ZEPHIR_CPY_WRT(&output, &_0$$3); + } + if (Z_TYPE_P(variable) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&_1$$4); + zephir_create_array(&_1$$4, 2, 0); + ZEPHIR_INIT_VAR(&_3$$4); + ZVAL_STRING(&_3$$4, "arr"); + ZEPHIR_CALL_METHOD(&_2$$4, this_ptr, "getstyle", NULL, 0, &_3$$4); + zephir_check_call_status(); + zephir_array_update_string(&_1$$4, SL(":style"), &_2$$4, PH_COPY | PH_SEPARATE); + add_assoc_long_ex(&_1$$4, SL(":count"), zephir_fast_count_int(variable)); + ZEPHIR_INIT_NVAR(&_3$$4); + ZVAL_STRING(&_3$$4, "Array (:count) (\n"); + ZEPHIR_CALL_FUNCTION(&_2$$4, "strtr", NULL, 5, &_3$$4, &_1$$4); + zephir_check_call_status(); + zephir_concat_self(&output, &_2$$4); + zephir_is_iterable(variable, 0, "phalcon/Support/Debug/Dump.zep", 231); + if (Z_TYPE_P(variable) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(variable), _6$$4, _7$$4, _4$$4) + { + ZEPHIR_INIT_NVAR(&key); + if (_7$$4 != NULL) { + ZVAL_STR_COPY(&key, _7$$4); + } else { + ZVAL_LONG(&key, _6$$4); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _4$$4); + ZVAL_LONG(&_8$$5, tab); + ZEPHIR_CALL_FUNCTION(&_9$$5, "str_repeat", &_10, 1, &space, &_8$$5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_11$$5); + zephir_create_array(&_11$$5, 2, 0); + ZEPHIR_INIT_NVAR(&_13$$5); + ZVAL_STRING(&_13$$5, "arr"); + ZEPHIR_CALL_METHOD(&_12$$5, this_ptr, "getstyle", NULL, 0, &_13$$5); + zephir_check_call_status(); + zephir_array_update_string(&_11$$5, SL(":style"), &_12$$5, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_11$$5, SL(":key"), &key, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_13$$5); + ZVAL_STRING(&_13$$5, "[:key] => "); + ZEPHIR_CALL_FUNCTION(&_12$$5, "strtr", NULL, 5, &_13$$5, &_11$$5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_14$$5); + ZEPHIR_CONCAT_VV(&_14$$5, &_9$$5, &_12$$5); + zephir_concat_self(&output, &_14$$5); + _15$$5 = tab == 1; + if (_15$$5) { + _15$$5 = !ZEPHIR_IS_STRING(&name, ""); + } + _16$$5 = _15$$5; + if (_16$$5) { + _16$$5 = !(Z_TYPE_P(&key) == IS_LONG); + } + _17$$5 = _16$$5; + if (_17$$5) { + _17$$5 = ZEPHIR_IS_EQUAL(&name, &key); + } + if (_17$$5) { + continue; + } + ZEPHIR_INIT_NVAR(&_13$$5); + ZVAL_STRING(&_13$$5, ""); + ZVAL_LONG(&_8$$5, (tab + 1)); + ZEPHIR_CALL_METHOD(&_18$$5, this_ptr, "output", &_19, 0, &value, &_13$$5, &_8$$5); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_20$$5); + ZEPHIR_CONCAT_VS(&_20$$5, &_18$$5, "\n"); + zephir_concat_self(&output, &_20$$5); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, variable, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_5$$4, variable, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_5$$4)) { + break; + } + ZEPHIR_CALL_METHOD(&key, variable, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, variable, "current", NULL, 0); + zephir_check_call_status(); + ZVAL_LONG(&_21$$7, tab); + ZEPHIR_CALL_FUNCTION(&_22$$7, "str_repeat", &_10, 1, &space, &_21$$7); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_23$$7); + zephir_create_array(&_23$$7, 2, 0); + ZEPHIR_INIT_NVAR(&_25$$7); + ZVAL_STRING(&_25$$7, "arr"); + ZEPHIR_CALL_METHOD(&_24$$7, this_ptr, "getstyle", NULL, 0, &_25$$7); + zephir_check_call_status(); + zephir_array_update_string(&_23$$7, SL(":style"), &_24$$7, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_23$$7, SL(":key"), &key, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_25$$7); + ZVAL_STRING(&_25$$7, "[:key] => "); + ZEPHIR_CALL_FUNCTION(&_24$$7, "strtr", NULL, 5, &_25$$7, &_23$$7); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_26$$7); + ZEPHIR_CONCAT_VV(&_26$$7, &_22$$7, &_24$$7); + zephir_concat_self(&output, &_26$$7); + _27$$7 = tab == 1; + if (_27$$7) { + _27$$7 = !ZEPHIR_IS_STRING(&name, ""); + } + _28$$7 = _27$$7; + if (_28$$7) { + _28$$7 = !(Z_TYPE_P(&key) == IS_LONG); + } + _29$$7 = _28$$7; + if (_29$$7) { + _29$$7 = ZEPHIR_IS_EQUAL(&name, &key); + } + if (_29$$7) { + continue; + } + ZEPHIR_INIT_NVAR(&_25$$7); + ZVAL_STRING(&_25$$7, ""); + ZVAL_LONG(&_21$$7, (tab + 1)); + ZEPHIR_CALL_METHOD(&_30$$7, this_ptr, "output", &_19, 0, &value, &_25$$7, &_21$$7); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_31$$7); + ZEPHIR_CONCAT_VS(&_31$$7, &_30$$7, "\n"); + zephir_concat_self(&output, &_31$$7); + ZEPHIR_CALL_METHOD(NULL, variable, "next", NULL, 0); + zephir_check_call_status(); } -pp339: - { - token->opcode = PHQL_T_AGAINST; - return 0; } -pp340: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp341; - } -pp341: - { - token->opcode = PHQL_T_BETWEEN; - return 0; + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + ZVAL_LONG(&_32$$4, (tab - 1)); + ZEPHIR_CALL_FUNCTION(&_33$$4, "str_repeat", &_10, 1, &space, &_32$$4); + zephir_check_call_status(); + ZEPHIR_CONCAT_VVS(return_value, &output, &_33$$4, ")"); + RETURN_MM(); + } + if (Z_TYPE_P(variable) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_34$$9); + zephir_create_array(&_34$$9, 2, 0); + ZEPHIR_INIT_VAR(&_36$$9); + ZVAL_STRING(&_36$$9, "obj"); + ZEPHIR_CALL_METHOD(&_35$$9, this_ptr, "getstyle", NULL, 0, &_36$$9); + zephir_check_call_status(); + zephir_array_update_string(&_34$$9, SL(":style"), &_35$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_36$$9); + zephir_get_class(&_36$$9, variable, 0); + zephir_array_update_string(&_34$$9, SL(":class"), &_36$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_36$$9); + ZVAL_STRING(&_36$$9, "Object :class"); + ZEPHIR_CALL_FUNCTION(&_35$$9, "strtr", NULL, 5, &_36$$9, &_34$$9); + zephir_check_call_status(); + zephir_concat_self(&output, &_35$$9); + ZEPHIR_CALL_FUNCTION(&_37$$9, "get_parent_class", NULL, 0, variable); + zephir_check_call_status(); + if (zephir_is_true(&_37$$9)) { + ZEPHIR_INIT_VAR(&_38$$10); + zephir_create_array(&_38$$10, 2, 0); + ZEPHIR_INIT_VAR(&_40$$10); + ZVAL_STRING(&_40$$10, "obj"); + ZEPHIR_CALL_METHOD(&_39$$10, this_ptr, "getstyle", NULL, 0, &_40$$10); + zephir_check_call_status(); + zephir_array_update_string(&_38$$10, SL(":style"), &_39$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_FUNCTION(&_39$$10, "get_parent_class", NULL, 0, variable); + zephir_check_call_status(); + zephir_array_update_string(&_38$$10, SL(":parent"), &_39$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_40$$10); + ZVAL_STRING(&_40$$10, " extends :parent"); + ZEPHIR_CALL_FUNCTION(&_39$$10, "strtr", NULL, 5, &_40$$10, &_38$$10); + zephir_check_call_status(); + zephir_concat_self(&output, &_39$$10); } -pp342: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp343; - } -pp343: - { - token->opcode = PHQL_T_CONVERT; - return 0; + zephir_concat_self_str(&output, SL(" (\n")); + zephir_read_property(&_41$$9, this_ptr, ZEND_STRL("detailed"), PH_NOISY_CC | PH_READONLY); + _42$$9 = !zephir_is_true(&_41$$9); + if (!(_42$$9)) { + _42$$9 = zephir_is_instance_of(variable, SL("stdClass")); } -pp344: - ppch = *++PPCURSOR; - switch (ppch) { - case 'T': - case 't': goto pp346; - default: goto pp59; - } -pp345: - ppch = *++PPCURSOR; - switch (ppch) { - case 'W': - case 'w': goto pp348; - default: goto pp86; + if (zephir_instance_of_ev(variable, phalcon_di_ce)) { + ZVAL_LONG(&_43$$11, tab); + ZEPHIR_CALL_FUNCTION(&_44$$11, "str_repeat", &_10, 1, &space, &_43$$11); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_45$$11); + ZEPHIR_CONCAT_VS(&_45$$11, &_44$$11, "[skipped]\n"); + zephir_concat_self(&output, &_45$$11); + } else if (_42$$9) { + ZEPHIR_CALL_FUNCTION(&_46$$12, "get_object_vars", NULL, 438, variable); + zephir_check_call_status(); + zephir_is_iterable(&_46$$12, 0, "phalcon/Support/Debug/Dump.zep", 263); + if (Z_TYPE_P(&_46$$12) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_46$$12), _49$$12, _50$$12, _47$$12) + { + ZEPHIR_INIT_NVAR(&key); + if (_50$$12 != NULL) { + ZVAL_STR_COPY(&key, _50$$12); + } else { + ZVAL_LONG(&key, _49$$12); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _47$$12); + ZVAL_LONG(&_51$$13, tab); + ZEPHIR_CALL_FUNCTION(&_52$$13, "str_repeat", &_10, 1, &space, &_51$$13); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_53$$13); + zephir_create_array(&_53$$13, 3, 0); + ZEPHIR_INIT_NVAR(&_55$$13); + ZVAL_STRING(&_55$$13, "obj"); + ZEPHIR_CALL_METHOD(&_54$$13, this_ptr, "getstyle", NULL, 0, &_55$$13); + zephir_check_call_status(); + zephir_array_update_string(&_53$$13, SL(":style"), &_54$$13, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_53$$13, SL(":key"), &key, PH_COPY | PH_SEPARATE); + add_assoc_stringl_ex(&_53$$13, SL(":type"), SL("public")); + ZEPHIR_INIT_NVAR(&_55$$13); + ZVAL_STRING(&_55$$13, "->:key (:type) = "); + ZEPHIR_CALL_FUNCTION(&_54$$13, "strtr", NULL, 5, &_55$$13, &_53$$13); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_56$$13); + ZEPHIR_CONCAT_VV(&_56$$13, &_52$$13, &_54$$13); + zephir_concat_self(&output, &_56$$13); + ZEPHIR_INIT_NVAR(&_55$$13); + ZVAL_STRING(&_55$$13, ""); + ZVAL_LONG(&_51$$13, (tab + 1)); + ZEPHIR_CALL_METHOD(&_57$$13, this_ptr, "output", &_19, 0, &value, &_55$$13, &_51$$13); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_58$$13); + ZEPHIR_CONCAT_VS(&_58$$13, &_57$$13, "\n"); + zephir_concat_self(&output, &_58$$13); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_46$$12, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_48$$12, &_46$$12, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_48$$12)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &_46$$12, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &_46$$12, "current", NULL, 0); + zephir_check_call_status(); + ZVAL_LONG(&_59$$14, tab); + ZEPHIR_CALL_FUNCTION(&_60$$14, "str_repeat", &_10, 1, &space, &_59$$14); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_61$$14); + zephir_create_array(&_61$$14, 3, 0); + ZEPHIR_INIT_NVAR(&_63$$14); + ZVAL_STRING(&_63$$14, "obj"); + ZEPHIR_CALL_METHOD(&_62$$14, this_ptr, "getstyle", NULL, 0, &_63$$14); + zephir_check_call_status(); + zephir_array_update_string(&_61$$14, SL(":style"), &_62$$14, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_61$$14, SL(":key"), &key, PH_COPY | PH_SEPARATE); + add_assoc_stringl_ex(&_61$$14, SL(":type"), SL("public")); + ZEPHIR_INIT_NVAR(&_63$$14); + ZVAL_STRING(&_63$$14, "->:key (:type) = "); + ZEPHIR_CALL_FUNCTION(&_62$$14, "strtr", NULL, 5, &_63$$14, &_61$$14); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_64$$14); + ZEPHIR_CONCAT_VV(&_64$$14, &_60$$14, &_62$$14); + zephir_concat_self(&output, &_64$$14); + ZEPHIR_INIT_NVAR(&_63$$14); + ZVAL_STRING(&_63$$14, ""); + ZVAL_LONG(&_59$$14, (tab + 1)); + ZEPHIR_CALL_METHOD(&_65$$14, this_ptr, "output", &_19, 0, &value, &_63$$14, &_59$$14); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_66$$14); + ZEPHIR_CONCAT_VS(&_66$$14, &_65$$14, "\n"); + zephir_concat_self(&output, &_66$$14); + ZEPHIR_CALL_METHOD(NULL, &_46$$12, "next", NULL, 0); + zephir_check_call_status(); + } } -pp346: - ppch = *++PPCURSOR; - switch (ppch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto pp58; - default: goto pp347; + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + } else { + ZEPHIR_INIT_VAR(&reflect$$15); + object_init_ex(&reflect$$15, zephir_get_internal_ce(SL("reflectionclass"))); + ZEPHIR_CALL_METHOD(NULL, &reflect$$15, "__construct", NULL, 156, variable); + zephir_check_call_status(); + ZVAL_LONG(&_67$$15, ((1 | 2) | 4)); + ZEPHIR_CALL_METHOD(&props$$15, &reflect$$15, "getproperties", NULL, 160, &_67$$15); + zephir_check_call_status(); + zephir_is_iterable(&props$$15, 0, "phalcon/Support/Debug/Dump.zep", 289); + if (Z_TYPE_P(&props$$15) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&props$$15), _68$$15) + { + ZEPHIR_INIT_NVAR(&property$$15); + ZVAL_COPY(&property$$15, _68$$15); + ZVAL_BOOL(&_70$$16, 1); + ZEPHIR_CALL_METHOD(NULL, &property$$15, "setaccessible", &_71, 0, &_70$$16); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&key, &property$$15, "getname", &_72, 0); + zephir_check_call_status(); + _74$$16 = zephir_fetch_class_str_ex(SL("Reflection"), ZEND_FETCH_CLASS_AUTO); + ZEPHIR_CALL_METHOD(&_76$$16, &property$$15, "getmodifiers", &_77, 0); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_73$$16, _74$$16, "getmodifiernames", &_75, 0, &_76$$16); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&type); + zephir_fast_join_str(&type, SL(" "), &_73$$16); + ZVAL_LONG(&_70$$16, tab); + ZEPHIR_CALL_FUNCTION(&_78$$16, "str_repeat", &_10, 1, &space, &_70$$16); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_79$$16); + zephir_create_array(&_79$$16, 3, 0); + ZEPHIR_INIT_NVAR(&_81$$16); + ZVAL_STRING(&_81$$16, "obj"); + ZEPHIR_CALL_METHOD(&_80$$16, this_ptr, "getstyle", NULL, 0, &_81$$16); + zephir_check_call_status(); + zephir_array_update_string(&_79$$16, SL(":style"), &_80$$16, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_79$$16, SL(":key"), &key, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_79$$16, SL(":type"), &type, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_81$$16); + ZVAL_STRING(&_81$$16, "->:key (:type) = "); + ZEPHIR_CALL_FUNCTION(&_80$$16, "strtr", NULL, 5, &_81$$16, &_79$$16); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_82$$16); + ZEPHIR_CONCAT_VV(&_82$$16, &_78$$16, &_80$$16); + zephir_concat_self(&output, &_82$$16); + ZEPHIR_CALL_METHOD(&_84$$16, &property$$15, "getvalue", &_85, 0, variable); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_81$$16); + ZVAL_STRING(&_81$$16, ""); + ZVAL_LONG(&_70$$16, (tab + 1)); + ZEPHIR_CALL_METHOD(&_83$$16, this_ptr, "output", &_19, 0, &_84$$16, &_81$$16, &_70$$16); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_86$$16); + ZEPHIR_CONCAT_VS(&_86$$16, &_83$$16, "\n"); + zephir_concat_self(&output, &_86$$16); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &props$$15, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_69$$15, &props$$15, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_69$$15)) { + break; + } + ZEPHIR_CALL_METHOD(&property$$15, &props$$15, "current", NULL, 0); + zephir_check_call_status(); + ZVAL_BOOL(&_87$$17, 1); + ZEPHIR_CALL_METHOD(NULL, &property$$15, "setaccessible", &_88, 0, &_87$$17); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&key, &property$$15, "getname", &_89, 0); + zephir_check_call_status(); + _91$$17 = zephir_fetch_class_str_ex(SL("Reflection"), ZEND_FETCH_CLASS_AUTO); + ZEPHIR_CALL_METHOD(&_92$$17, &property$$15, "getmodifiers", &_93, 0); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_90$$17, _91$$17, "getmodifiernames", &_75, 0, &_92$$17); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&type); + zephir_fast_join_str(&type, SL(" "), &_90$$17); + ZVAL_LONG(&_87$$17, tab); + ZEPHIR_CALL_FUNCTION(&_94$$17, "str_repeat", &_10, 1, &space, &_87$$17); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_95$$17); + zephir_create_array(&_95$$17, 3, 0); + ZEPHIR_INIT_NVAR(&_97$$17); + ZVAL_STRING(&_97$$17, "obj"); + ZEPHIR_CALL_METHOD(&_96$$17, this_ptr, "getstyle", NULL, 0, &_97$$17); + zephir_check_call_status(); + zephir_array_update_string(&_95$$17, SL(":style"), &_96$$17, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_95$$17, SL(":key"), &key, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_95$$17, SL(":type"), &type, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_97$$17); + ZVAL_STRING(&_97$$17, "->:key (:type) = "); + ZEPHIR_CALL_FUNCTION(&_96$$17, "strtr", NULL, 5, &_97$$17, &_95$$17); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_98$$17); + ZEPHIR_CONCAT_VV(&_98$$17, &_94$$17, &_96$$17); + zephir_concat_self(&output, &_98$$17); + ZEPHIR_CALL_METHOD(&_100$$17, &property$$15, "getvalue", &_101, 0, variable); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_97$$17); + ZVAL_STRING(&_97$$17, ""); + ZVAL_LONG(&_87$$17, (tab + 1)); + ZEPHIR_CALL_METHOD(&_99$$17, this_ptr, "output", &_19, 0, &_100$$17, &_97$$17, &_87$$17); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_102$$17); + ZEPHIR_CONCAT_VS(&_102$$17, &_99$$17, "\n"); + zephir_concat_self(&output, &_102$$17); + ZEPHIR_CALL_METHOD(NULL, &props$$15, "next", NULL, 0); + zephir_check_call_status(); + } } -pp347: - { - token->opcode = PHQL_T_DISTINCT; - return 0; + ZEPHIR_INIT_NVAR(&property$$15); } -pp348: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp349; - default: goto pp86; - } -pp349: - ppch = *++PPCURSOR; - switch (ppch) { - case 'E': - case 'e': goto pp350; - default: goto pp86; - } -pp350: - ppch = *++PPCURSOR; - switch (ppch) { - case 'N': - case 'n': goto pp351; - default: goto pp86; + ZEPHIR_CALL_FUNCTION(&attr, "get_class_methods", NULL, 0, variable); + zephir_check_call_status(); + ZVAL_LONG(&_103$$9, tab); + ZEPHIR_CALL_FUNCTION(&_104$$9, "str_repeat", &_10, 1, &space, &_103$$9); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_105$$9); + zephir_create_array(&_105$$9, 3, 0); + ZEPHIR_INIT_NVAR(&_36$$9); + ZVAL_STRING(&_36$$9, "obj"); + ZEPHIR_CALL_METHOD(&_106$$9, this_ptr, "getstyle", NULL, 0, &_36$$9); + zephir_check_call_status(); + zephir_array_update_string(&_105$$9, SL(":style"), &_106$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_36$$9); + zephir_get_class(&_36$$9, variable, 0); + zephir_array_update_string(&_105$$9, SL(":class"), &_36$$9, PH_COPY | PH_SEPARATE); + add_assoc_long_ex(&_105$$9, SL(":count"), zephir_fast_count_int(&attr)); + ZEPHIR_INIT_NVAR(&_36$$9); + ZVAL_STRING(&_36$$9, ":class methods: (:count) (\n"); + ZEPHIR_CALL_FUNCTION(&_106$$9, "strtr", NULL, 5, &_36$$9, &_105$$9); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_107$$9); + ZEPHIR_CONCAT_VV(&_107$$9, &_104$$9, &_106$$9); + zephir_concat_self(&output, &_107$$9); + ZEPHIR_INIT_NVAR(&_36$$9); + zephir_get_class(&_36$$9, variable, 0); + zephir_read_property(&_103$$9, this_ptr, ZEND_STRL("methods"), PH_NOISY_CC | PH_READONLY); + if (zephir_fast_in_array(&_36$$9, &_103$$9)) { + ZVAL_LONG(&_108$$18, tab); + ZEPHIR_CALL_FUNCTION(&_109$$18, "str_repeat", &_10, 1, &space, &_108$$18); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_110$$18); + ZEPHIR_CONCAT_VS(&_110$$18, &_109$$18, "[already listed]\n"); + zephir_concat_self(&output, &_110$$18); + } else { + zephir_is_iterable(&attr, 0, "phalcon/Support/Debug/Dump.zep", 307); + if (Z_TYPE_P(&attr) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attr), _111$$19) + { + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _111$$19); + ZEPHIR_INIT_NVAR(&_113$$20); + zephir_get_class(&_113$$20, variable, 0); + zephir_update_property_array_append(this_ptr, SL("methods"), &_113$$20); + if (ZEPHIR_IS_STRING(&value, "__construct")) { + ZVAL_LONG(&_114$$21, (tab + 1)); + ZEPHIR_CALL_FUNCTION(&_115$$21, "str_repeat", &_10, 1, &space, &_114$$21); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_116$$21); + zephir_create_array(&_116$$21, 2, 0); + ZEPHIR_INIT_NVAR(&_118$$21); + ZVAL_STRING(&_118$$21, "obj"); + ZEPHIR_CALL_METHOD(&_117$$21, this_ptr, "getstyle", NULL, 0, &_118$$21); + zephir_check_call_status(); + zephir_array_update_string(&_116$$21, SL(":style"), &_117$$21, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_116$$21, SL(":method"), &value, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_118$$21); + ZVAL_STRING(&_118$$21, "->:method(); [constructor]\n"); + ZEPHIR_CALL_FUNCTION(&_117$$21, "strtr", NULL, 5, &_118$$21, &_116$$21); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_119$$21); + ZEPHIR_CONCAT_VV(&_119$$21, &_115$$21, &_117$$21); + zephir_concat_self(&output, &_119$$21); + } else { + ZVAL_LONG(&_120$$22, (tab + 1)); + ZEPHIR_CALL_FUNCTION(&_121$$22, "str_repeat", &_10, 1, &space, &_120$$22); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_122$$22); + zephir_create_array(&_122$$22, 2, 0); + ZEPHIR_INIT_NVAR(&_124$$22); + ZVAL_STRING(&_124$$22, "obj"); + ZEPHIR_CALL_METHOD(&_123$$22, this_ptr, "getstyle", NULL, 0, &_124$$22); + zephir_check_call_status(); + zephir_array_update_string(&_122$$22, SL(":style"), &_123$$22, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_122$$22, SL(":method"), &value, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_124$$22); + ZVAL_STRING(&_124$$22, "->:method();\n"); + ZEPHIR_CALL_FUNCTION(&_123$$22, "strtr", NULL, 5, &_124$$22, &_122$$22); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_125$$22); + ZEPHIR_CONCAT_VV(&_125$$22, &_121$$22, &_123$$22); + zephir_concat_self(&output, &_125$$22); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &attr, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_112$$19, &attr, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_112$$19)) { + break; + } + ZEPHIR_CALL_METHOD(&value, &attr, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_126$$23); + zephir_get_class(&_126$$23, variable, 0); + zephir_update_property_array_append(this_ptr, SL("methods"), &_126$$23); + if (ZEPHIR_IS_STRING(&value, "__construct")) { + ZVAL_LONG(&_127$$24, (tab + 1)); + ZEPHIR_CALL_FUNCTION(&_128$$24, "str_repeat", &_10, 1, &space, &_127$$24); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_129$$24); + zephir_create_array(&_129$$24, 2, 0); + ZEPHIR_INIT_NVAR(&_131$$24); + ZVAL_STRING(&_131$$24, "obj"); + ZEPHIR_CALL_METHOD(&_130$$24, this_ptr, "getstyle", NULL, 0, &_131$$24); + zephir_check_call_status(); + zephir_array_update_string(&_129$$24, SL(":style"), &_130$$24, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_129$$24, SL(":method"), &value, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_131$$24); + ZVAL_STRING(&_131$$24, "->:method(); [constructor]\n"); + ZEPHIR_CALL_FUNCTION(&_130$$24, "strtr", NULL, 5, &_131$$24, &_129$$24); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_132$$24); + ZEPHIR_CONCAT_VV(&_132$$24, &_128$$24, &_130$$24); + zephir_concat_self(&output, &_132$$24); + } else { + ZVAL_LONG(&_133$$25, (tab + 1)); + ZEPHIR_CALL_FUNCTION(&_134$$25, "str_repeat", &_10, 1, &space, &_133$$25); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_135$$25); + zephir_create_array(&_135$$25, 2, 0); + ZEPHIR_INIT_NVAR(&_137$$25); + ZVAL_STRING(&_137$$25, "obj"); + ZEPHIR_CALL_METHOD(&_136$$25, this_ptr, "getstyle", NULL, 0, &_137$$25); + zephir_check_call_status(); + zephir_array_update_string(&_135$$25, SL(":style"), &_136$$25, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_135$$25, SL(":method"), &value, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_137$$25); + ZVAL_STRING(&_137$$25, "->:method();\n"); + ZEPHIR_CALL_FUNCTION(&_136$$25, "strtr", NULL, 5, &_137$$25, &_135$$25); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_138$$25); + ZEPHIR_CONCAT_VV(&_138$$25, &_134$$25, &_136$$25); + zephir_concat_self(&output, &_138$$25); + } + ZEPHIR_CALL_METHOD(NULL, &attr, "next", NULL, 0); + zephir_check_call_status(); + } } -pp351: - ++PPCURSOR; - { - token->opcode = PHQL_T_BETWEEN_NOT; - return 0; + ZEPHIR_INIT_NVAR(&value); + ZVAL_LONG(&_139$$19, tab); + ZEPHIR_CALL_FUNCTION(&_140$$19, "str_repeat", &_10, 1, &space, &_139$$19); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_141$$19); + ZEPHIR_CONCAT_VS(&_141$$19, &_140$$19, ")\n"); + zephir_concat_self(&output, &_141$$19); + } + ZVAL_LONG(&_142$$9, (tab - 1)); + ZEPHIR_CALL_FUNCTION(&_143$$9, "str_repeat", &_10, 1, &space, &_142$$9); + zephir_check_call_status(); + ZEPHIR_CONCAT_VVS(return_value, &output, &_143$$9, ")"); + RETURN_MM(); + } + if (Z_TYPE_P(variable) == IS_LONG) { + ZEPHIR_INIT_VAR(&_144$$26); + zephir_create_array(&_144$$26, 2, 0); + ZEPHIR_INIT_VAR(&_146$$26); + ZVAL_STRING(&_146$$26, "int"); + ZEPHIR_CALL_METHOD(&_145$$26, this_ptr, "getstyle", NULL, 0, &_146$$26); + zephir_check_call_status(); + zephir_array_update_string(&_144$$26, SL(":style"), &_145$$26, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_144$$26, SL(":var"), variable, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_146$$26); + ZVAL_STRING(&_146$$26, "Integer (:var)"); + ZEPHIR_CALL_FUNCTION(&_145$$26, "strtr", NULL, 5, &_146$$26, &_144$$26); + zephir_check_call_status(); + ZEPHIR_CONCAT_VV(return_value, &output, &_145$$26); + RETURN_MM(); + } + ZEPHIR_CALL_FUNCTION(&_147, "is_float", NULL, 213, variable); + zephir_check_call_status(); + if (zephir_is_true(&_147)) { + ZEPHIR_INIT_VAR(&_148$$27); + zephir_create_array(&_148$$27, 2, 0); + ZEPHIR_INIT_VAR(&_150$$27); + ZVAL_STRING(&_150$$27, "float"); + ZEPHIR_CALL_METHOD(&_149$$27, this_ptr, "getstyle", NULL, 0, &_150$$27); + zephir_check_call_status(); + zephir_array_update_string(&_148$$27, SL(":style"), &_149$$27, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_148$$27, SL(":var"), variable, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_150$$27); + ZVAL_STRING(&_150$$27, "Float (:var)"); + ZEPHIR_CALL_FUNCTION(&_149$$27, "strtr", NULL, 5, &_150$$27, &_148$$27); + zephir_check_call_status(); + ZEPHIR_CONCAT_VV(return_value, &output, &_149$$27); + RETURN_MM(); + } + if (zephir_is_numeric(variable)) { + ZEPHIR_INIT_VAR(&_151$$28); + zephir_create_array(&_151$$28, 3, 0); + ZEPHIR_INIT_VAR(&_153$$28); + ZVAL_STRING(&_153$$28, "num"); + ZEPHIR_CALL_METHOD(&_152$$28, this_ptr, "getstyle", NULL, 0, &_153$$28); + zephir_check_call_status(); + zephir_array_update_string(&_151$$28, SL(":style"), &_152$$28, PH_COPY | PH_SEPARATE); + add_assoc_long_ex(&_151$$28, SL(":length"), zephir_fast_strlen_ev(variable)); + zephir_array_update_string(&_151$$28, SL(":var"), variable, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_153$$28); + ZVAL_STRING(&_153$$28, "Numeric string (:length) \":var\""); + ZEPHIR_CALL_FUNCTION(&_152$$28, "strtr", NULL, 5, &_153$$28, &_151$$28); + zephir_check_call_status(); + ZEPHIR_CONCAT_VV(return_value, &output, &_152$$28); + RETURN_MM(); + } + if (Z_TYPE_P(variable) == IS_STRING) { + ZEPHIR_INIT_VAR(&_154$$29); + zephir_create_array(&_154$$29, 3, 0); + ZEPHIR_INIT_VAR(&_156$$29); + ZVAL_STRING(&_156$$29, "str"); + ZEPHIR_CALL_METHOD(&_155$$29, this_ptr, "getstyle", NULL, 0, &_156$$29); + zephir_check_call_status(); + zephir_array_update_string(&_154$$29, SL(":style"), &_155$$29, PH_COPY | PH_SEPARATE); + add_assoc_long_ex(&_154$$29, SL(":length"), zephir_fast_strlen_ev(variable)); + ZVAL_LONG(&_157$$29, 4); + ZEPHIR_INIT_NVAR(&_156$$29); + ZVAL_STRING(&_156$$29, "utf-8"); + ZEPHIR_CALL_FUNCTION(&_155$$29, "htmlentities", NULL, 0, variable, &_157$$29, &_156$$29); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_158$$29, "nl2br", NULL, 0, &_155$$29); + zephir_check_call_status(); + zephir_array_update_string(&_154$$29, SL(":var"), &_158$$29, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_156$$29); + ZVAL_STRING(&_156$$29, "String (:length) \":var\""); + ZEPHIR_CALL_FUNCTION(&_158$$29, "strtr", NULL, 5, &_156$$29, &_154$$29); + zephir_check_call_status(); + ZEPHIR_CONCAT_VV(return_value, &output, &_158$$29); + RETURN_MM(); + } + if ((Z_TYPE_P(variable) == IS_TRUE || Z_TYPE_P(variable) == IS_FALSE)) { + ZEPHIR_INIT_VAR(&_159$$30); + zephir_create_array(&_159$$30, 2, 0); + ZEPHIR_INIT_VAR(&_161$$30); + ZVAL_STRING(&_161$$30, "bool"); + ZEPHIR_CALL_METHOD(&_160$$30, this_ptr, "getstyle", NULL, 0, &_161$$30); + zephir_check_call_status(); + zephir_array_update_string(&_159$$30, SL(":style"), &_160$$30, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_VAR(&_162$$30); + if (zephir_is_true(variable)) { + ZEPHIR_INIT_NVAR(&_162$$30); + ZVAL_STRING(&_162$$30, "TRUE"); + } else { + ZEPHIR_INIT_NVAR(&_162$$30); + ZVAL_STRING(&_162$$30, "FALSE"); + } + zephir_array_update_string(&_159$$30, SL(":var"), &_162$$30, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_161$$30); + ZVAL_STRING(&_161$$30, "Boolean (:var)"); + ZEPHIR_CALL_FUNCTION(&_160$$30, "strtr", NULL, 5, &_161$$30, &_159$$30); + zephir_check_call_status(); + ZEPHIR_CONCAT_VV(return_value, &output, &_160$$30); + RETURN_MM(); + } + if (Z_TYPE_P(variable) == IS_NULL) { + ZEPHIR_INIT_VAR(&_163$$31); + zephir_create_array(&_163$$31, 1, 0); + ZEPHIR_INIT_VAR(&_165$$31); + ZVAL_STRING(&_165$$31, "null"); + ZEPHIR_CALL_METHOD(&_164$$31, this_ptr, "getstyle", NULL, 0, &_165$$31); + zephir_check_call_status(); + zephir_array_update_string(&_163$$31, SL(":style"), &_164$$31, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_165$$31); + ZVAL_STRING(&_165$$31, "NULL"); + ZEPHIR_CALL_FUNCTION(&_164$$31, "strtr", NULL, 5, &_165$$31, &_163$$31); + zephir_check_call_status(); + ZEPHIR_CONCAT_VV(return_value, &output, &_164$$31); + RETURN_MM(); + } + ZEPHIR_INIT_VAR(&_166); + zephir_create_array(&_166, 2, 0); + ZEPHIR_INIT_VAR(&_168); + ZVAL_STRING(&_168, "other"); + ZEPHIR_CALL_METHOD(&_167, this_ptr, "getstyle", NULL, 0, &_168); + zephir_check_call_status(); + zephir_array_update_string(&_166, SL(":style"), &_167, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_166, SL(":var"), variable, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_168); + ZVAL_STRING(&_168, "(:var)"); + ZEPHIR_CALL_FUNCTION(&_167, "strtr", NULL, 5, &_168, &_166); + zephir_check_call_status(); + ZEPHIR_CONCAT_VV(return_value, &output, &_167); + RETURN_MM(); +} + +zend_object *zephir_init_properties_Phalcon_Support_Debug_Dump(zend_class_entry *class_type) +{ + zval _0, _2, _1$$3, _3$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("styles"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("styles"), &_1$$3); } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("methods"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("methods"), &_3$$4); } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Support_Debug_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Support\\Debug, Exception, phalcon, support_debug_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Storage_AdapterFactory) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage, AdapterFactory, phalcon, storage_adapterfactory, phalcon_factory_abstractfactory_ce, phalcon_storage_adapterfactory_method_entry, 0); + + zend_declare_property_string(phalcon_storage_adapterfactory_ce, SL("exception"), "Phalcon\\Storage\\Exception", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_storage_adapterfactory_ce, SL("serializerFactory"), ZEND_ACC_PRIVATE); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Storage_AdapterFactory, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval services; + zval *factory, factory_sub, *services_param = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&factory_sub); + ZVAL_UNDEF(&services); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_storage_serializerfactory_ce) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(services) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &factory, &services_param); + if (!services_param) { + ZEPHIR_INIT_VAR(&services); + array_init(&services); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&services, services_param); + } + + + zephir_update_property_zval(this_ptr, ZEND_STRL("serializerFactory"), factory); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "init", NULL, 0, &services); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Storage_AdapterFactory, newInstance) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval options, _0; + zval *name_param = NULL, *options_param = NULL, definition, _1; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(name) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &name_param, &options_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } + + + ZEPHIR_CALL_METHOD(&definition, this_ptr, "getservice", NULL, 0, &name); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 2, 0); + ZEPHIR_OBS_VAR(&_1); + zephir_read_property(&_1, this_ptr, ZEND_STRL("serializerFactory"), PH_NOISY_CC); + zephir_array_fast_append(&_0, &_1); + zephir_array_fast_append(&_0, &options); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(return_value, &definition, &_0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Storage_AdapterFactory, getAdapters) +{ + zval *this_ptr = getThis(); + + + + zephir_create_array(return_value, 5, 0); + add_assoc_stringl_ex(return_value, SL("apcu"), SL("Phalcon\\Storage\\Adapter\\Apcu")); + add_assoc_stringl_ex(return_value, SL("libmemcached"), SL("Phalcon\\Storage\\Adapter\\Libmemcached")); + add_assoc_stringl_ex(return_value, SL("memory"), SL("Phalcon\\Storage\\Adapter\\Memory")); + add_assoc_stringl_ex(return_value, SL("redis"), SL("Phalcon\\Storage\\Adapter\\Redis")); + add_assoc_stringl_ex(return_value, SL("stream"), SL("Phalcon\\Storage\\Adapter\\Stream")); + return; +} - } - return status; + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Storage_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage, Exception, phalcon, storage_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; } + #ifdef HAVE_CONFIG_H #endif @@ -170974,92 +160193,202 @@ static int phql_get_token(phql_scanner_state *s, phql_scanner_token *token) { -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Query_Status) +ZEPHIR_INIT_CLASS(Phalcon_Storage_SerializerFactory) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model\\Query, Status, phalcon, mvc_model_query_status, phalcon_mvc_model_query_status_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage, SerializerFactory, phalcon, storage_serializerfactory, phalcon_factory_abstractfactory_ce, phalcon_storage_serializerfactory_method_entry, 0); - zend_declare_property_null(phalcon_mvc_model_query_status_ce, SL("model"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_query_status_ce, SL("success"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_mvc_model_query_status_ce, 1, phalcon_mvc_model_query_statusinterface_ce); + zend_declare_property_string(phalcon_storage_serializerfactory_ce, SL("exception"), "Phalcon\\Storage\\Exception", ZEND_ACC_PROTECTED); return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Status, __construct) +static PHP_METHOD(Phalcon_Storage_SerializerFactory, __construct) { - zval *success_param = NULL, *model = NULL, model_sub, __$true, __$false, __$null; - zend_bool success; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *services_param = NULL; + zval services; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&services); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_BOOL(success) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(model, phalcon_mvc_modelinterface_ce) + Z_PARAM_ARRAY(services) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 1, &success_param, &model); - success = zephir_get_boolval(success_param); - if (!model) { - model = &model_sub; - model = &__$null; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &services_param); + if (!services_param) { + ZEPHIR_INIT_VAR(&services); + array_init(&services); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&services, services_param); } - if (success) { - zephir_update_property_zval(this_ptr, ZEND_STRL("success"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("success"), &__$false); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("model"), model); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "init", NULL, 0, &services); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Status, getMessages) +static PHP_METHOD(Phalcon_Storage_SerializerFactory, newInstance) { - zval model, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, definition; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&definition); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("model"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&model, &_0); - if (Z_TYPE_P(&model) != IS_OBJECT) { - array_init(return_value); - RETURN_MM(); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); } - ZEPHIR_RETURN_CALL_METHOD(&model, "getmessages", NULL, 0); + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + + + ZEPHIR_CALL_METHOD(&definition, this_ptr, "getservice", NULL, 0, &name); + zephir_check_call_status(); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(return_value, &definition); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Status, getModel) +static PHP_METHOD(Phalcon_Storage_SerializerFactory, getAdapters) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "model"); + zephir_create_array(return_value, 6, 0); + add_assoc_stringl_ex(return_value, SL("base64"), SL("Phalcon\\Storage\\Serializer\\Base64")); + add_assoc_stringl_ex(return_value, SL("igbinary"), SL("Phalcon\\Storage\\Serializer\\Igbinary")); + add_assoc_stringl_ex(return_value, SL("json"), SL("Phalcon\\Storage\\Serializer\\Json")); + add_assoc_stringl_ex(return_value, SL("msgpack"), SL("Phalcon\\Storage\\Serializer\\Msgpack")); + add_assoc_stringl_ex(return_value, SL("none"), SL("Phalcon\\Storage\\Serializer\\None")); + add_assoc_stringl_ex(return_value, SL("php"), SL("Phalcon\\Storage\\Serializer\\Php")); + return; } -static PHP_METHOD(Phalcon_Mvc_Model_Query_Status, success) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Storage_Serializer_AbstractSerializer) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Storage\\Serializer, AbstractSerializer, phalcon, storage_serializer_abstractserializer, phalcon_storage_serializer_abstractserializer_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_storage_serializer_abstractserializer_ce, SL("data"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_storage_serializer_abstractserializer_ce, 1, phalcon_storage_serializer_serializerinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Storage_Serializer_AbstractSerializer, __construct) { + zval *data = NULL, data_sub, __$null; zval *this_ptr = getThis(); + ZVAL_UNDEF(&data_sub); + ZVAL_NULL(&__$null); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(data) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(0, 1, &data); + if (!data) { + data = &data_sub; + data = &__$null; + } + + zephir_update_property_zval(this_ptr, ZEND_STRL("data"), data); +} - RETURN_MEMBER(getThis(), "success"); +static PHP_METHOD(Phalcon_Storage_Serializer_AbstractSerializer, isSerializable) +{ + zend_bool _0, _1; + zval *data, data_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&data_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &data); + + + _0 = ZEPHIR_IS_EMPTY(data); + if (!(_0)) { + _0 = ((Z_TYPE_P(data) == IS_TRUE || Z_TYPE_P(data) == IS_FALSE) == 1); + } + _1 = _0; + if (!(_1)) { + _1 = zephir_is_numeric(data); + } + RETURN_BOOL(!(_1)); +} + +static PHP_METHOD(Phalcon_Storage_Serializer_AbstractSerializer, getData) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "data"); +} + +static PHP_METHOD(Phalcon_Storage_Serializer_AbstractSerializer, setData) +{ + zval *data, data_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&data_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &data); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("data"), data); } @@ -171072,16 +160401,69 @@ static PHP_METHOD(Phalcon_Mvc_Model_Query_Status, success) -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Query_StatusInterface) +ZEPHIR_INIT_CLASS(Phalcon_Storage_Serializer_Base64) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model\\Query, StatusInterface, phalcon, mvc_model_query_statusinterface, phalcon_mvc_model_query_statusinterface_method_entry); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Serializer, Base64, phalcon, storage_serializer_base64, phalcon_storage_serializer_abstractserializer_ce, phalcon_storage_serializer_base64_method_entry, 0); return SUCCESS; } -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_StatusInterface, getMessages); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_StatusInterface, getModel); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_StatusInterface, success); +static PHP_METHOD(Phalcon_Storage_Serializer_Base64, serialize) +{ + zval _0, _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_OBS_VAR(&_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC); + if (Z_TYPE_P(&_0) != IS_STRING) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_InvalidArgumentException, "Data for the serializer must of type string", "phalcon/Storage/Serializer/Base64.zep", 25); + return; + } + zephir_read_property(&_1, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_FUNCTION("base64_encode", NULL, 191, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Storage_Serializer_Base64, unserialize) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *data, data_sub, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &data); + + + if (Z_TYPE_P(data) != IS_STRING) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_InvalidArgumentException, "Data for the unserializer must of type string", "phalcon/Storage/Serializer/Base64.zep", 39); + return; + } + ZEPHIR_CALL_FUNCTION(&_0, "base64_decode", NULL, 188, data); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &_0); + ZEPHIR_MM_RESTORE(); +} + @@ -171092,564 +160474,412 @@ ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Query_StatusInterface, success); -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset_Complex) +ZEPHIR_INIT_CLASS(Phalcon_Storage_Serializer_Igbinary) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\Resultset, Complex, phalcon, mvc_model_resultset_complex, phalcon_mvc_model_resultset_ce, phalcon_mvc_model_resultset_complex_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Serializer, Igbinary, phalcon, storage_serializer_igbinary, phalcon_storage_serializer_abstractserializer_ce, phalcon_storage_serializer_igbinary_method_entry, 0); - zend_declare_property_null(phalcon_mvc_model_resultset_complex_ce, SL("columnTypes"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_model_resultset_complex_ce, SL("disableHydration"), 0, ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_mvc_model_resultset_complex_ce, 1, phalcon_mvc_model_resultsetinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, __construct) +static PHP_METHOD(Phalcon_Storage_Serializer_Igbinary, serialize) { + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *columnTypes, columnTypes_sub, *result = NULL, result_sub, *cache = NULL, cache_sub, __$null; zval *this_ptr = getThis(); - ZVAL_UNDEF(&columnTypes_sub); - ZVAL_UNDEF(&result_sub); - ZVAL_UNDEF(&cache_sub); + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_FUNCTION("igbinary_serialize", NULL, 0, &_0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Storage_Serializer_Igbinary, unserialize) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *data, data_sub, __$false, __$null, version, _0, _1, _2, _7, _3$$3, _4$$3, _5$$4, _6$$4; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&data_sub); + ZVAL_BOOL(&__$false, 0); ZVAL_NULL(&__$null); + ZVAL_UNDEF(&version); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ZVAL(columnTypes) - Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(result, phalcon_db_resultinterface_ce) - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(cache, zephir_get_internal_ce(SL("psr\\simplecache\\cacheinterface"))) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(data) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &columnTypes, &result, &cache); - if (!result) { - result = &result_sub; - result = &__$null; - } - if (!cache) { - cache = &cache_sub; - cache = &__$null; - } + zephir_fetch_params(1, 1, 0, &data); - zephir_update_property_zval(this_ptr, ZEND_STRL("columnTypes"), columnTypes); - ZEPHIR_CALL_PARENT(NULL, phalcon_mvc_model_resultset_complex_ce, getThis(), "__construct", &_0, 0, result, cache); + ZEPHIR_CALL_FUNCTION(&version, "phpversion", NULL, 86); + zephir_check_call_status(); + ZEPHIR_GLOBAL(warning).enable = zend_is_true(&__$false); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "8.0"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, ">="); + ZEPHIR_CALL_FUNCTION(&_2, "version_compare", NULL, 87, &version, &_0, &_1); + zephir_check_call_status(); + if (zephir_is_true(&_2)) { + ZEPHIR_INIT_VAR(&_3$$3); + ZEPHIR_INIT_NVAR(&_3$$3); + zephir_create_closure_ex(&_3$$3, NULL, phalcon_10__closure_ce, SL("__invoke")); + ZVAL_LONG(&_4$$3, 2); + ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_3$$3, &_4$$3); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_VAR(&_5$$4); + ZEPHIR_INIT_NVAR(&_5$$4); + zephir_create_closure_ex(&_5$$4, NULL, phalcon_11__closure_ce, SL("__invoke")); + ZVAL_LONG(&_6$$4, 2); + ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_5$$4, &_6$$4); + zephir_check_call_status(); + } + ZEPHIR_CALL_FUNCTION(&_7, "igbinary_unserialize", NULL, 0, data); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &_7); + ZEPHIR_CALL_FUNCTION(NULL, "restore_error_handler", NULL, 90); zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_GLOBAL(warning).enable)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &__$null); + } ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, current) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Storage_Serializer_Json) { - zend_class_entry *_14$$16, *_29$$36; - zend_string *_5; - zend_ulong _4; + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Serializer, Json, phalcon, storage_serializer_json, phalcon_storage_serializer_abstractserializer_ce, phalcon_storage_serializer_json_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Storage_Serializer_Json, serialize) +{ + zval _4$$3; + zend_bool _1; + zval _0, _2, _5, _6, _8, _3$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_15 = NULL, *_18 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, dirtyState = 0; - zval __$true, __$false, row, hydrateMode, eager, alias, activeRow, type, column, columnValue, value, attribute, source, attributes, columnMap, rowModel, keepSnapshots, sqlAlias, modelName, _0, _1, *_2, _3, *_6$$11, _7$$11, _8$$12, _9$$13, _10$$16, _12$$16, _13$$16, _11$$17, _16$$19, _17$$19, _19$$25, _20$$25, *_21$$31, _22$$31, _23$$32, _24$$33, _25$$36, _27$$36, _28$$36, _26$$37, _30$$39, _31$$39, _32$$45, _33$$45; + zephir_fcall_cache_entry *_7 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&row); - ZVAL_UNDEF(&hydrateMode); - ZVAL_UNDEF(&eager); - ZVAL_UNDEF(&alias); - ZVAL_UNDEF(&activeRow); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&column); - ZVAL_UNDEF(&columnValue); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&attribute); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&columnMap); - ZVAL_UNDEF(&rowModel); - ZVAL_UNDEF(&keepSnapshots); - ZVAL_UNDEF(&sqlAlias); - ZVAL_UNDEF(&modelName); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_7$$11); - ZVAL_UNDEF(&_8$$12); - ZVAL_UNDEF(&_9$$13); - ZVAL_UNDEF(&_10$$16); - ZVAL_UNDEF(&_12$$16); - ZVAL_UNDEF(&_13$$16); - ZVAL_UNDEF(&_11$$17); - ZVAL_UNDEF(&_16$$19); - ZVAL_UNDEF(&_17$$19); - ZVAL_UNDEF(&_19$$25); - ZVAL_UNDEF(&_20$$25); - ZVAL_UNDEF(&_22$$31); - ZVAL_UNDEF(&_23$$32); - ZVAL_UNDEF(&_24$$33); - ZVAL_UNDEF(&_25$$36); - ZVAL_UNDEF(&_27$$36); - ZVAL_UNDEF(&_28$$36); - ZVAL_UNDEF(&_26$$37); - ZVAL_UNDEF(&_30$$39); - ZVAL_UNDEF(&_31$$39); - ZVAL_UNDEF(&_32$$45); - ZVAL_UNDEF(&_33$$45); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("activeRow"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&activeRow, &_0); - if (Z_TYPE_P(&activeRow) != IS_NULL) { - RETURN_CCTOR(&activeRow); + ZEPHIR_OBS_VAR(&_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC); + _1 = Z_TYPE_P(&_0) == IS_OBJECT; + if (_1) { + ZEPHIR_OBS_VAR(&_2); + zephir_read_property(&_2, this_ptr, ZEND_STRL("data"), PH_NOISY_CC); + _1 = !(zephir_is_instance_of(&_2, SL("JsonSerializable"))); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("row"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&row, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("disableHydration"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("activeRow"), &row); - RETURN_CCTOR(&row); + if (_1) { + ZEPHIR_INIT_VAR(&_3$$3); + object_init_ex(&_3$$3, spl_ce_InvalidArgumentException); + ZEPHIR_INIT_VAR(&_4$$3); + ZEPHIR_CONCAT_SS(&_4$$3, "Data for the JSON serializer cannot be of type 'object' ", "without implementing 'JsonSerializable'"); + ZEPHIR_CALL_METHOD(NULL, &_3$$3, "__construct", NULL, 40, &_4$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_3$$3, "phalcon/Storage/Serializer/Json.zep", 28); + ZEPHIR_MM_RESTORE(); + return; } - if (Z_TYPE_P(&row) != IS_ARRAY) { - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("activeRow"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("activeRow"), &__$false); - } - RETURN_MM_BOOL(0); + zephir_read_property(&_6, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "isserializable", NULL, 0, &_6); + zephir_check_call_status(); + if (!(zephir_is_true(&_5))) { + RETURN_MM_MEMBER(getThis(), "data"); } - zephir_read_property(&_1, this_ptr, ZEND_STRL("hydrateMode"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&hydrateMode, &_1); - do { - if (ZEPHIR_IS_LONG(&hydrateMode, 0)) { - ZEPHIR_INIT_NVAR(&activeRow); - object_init_ex(&activeRow, phalcon_mvc_model_row_ce); - if (zephir_has_constructor(&activeRow)) { - ZEPHIR_CALL_METHOD(NULL, &activeRow, "__construct", NULL, 0); - zephir_check_call_status(); - } + zephir_read_property(&_8, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_helper_json_ce, "encode", &_7, 14, &_8); + zephir_check_call_status(); + RETURN_MM(); +} - break; - } - if (ZEPHIR_IS_LONG(&hydrateMode, 1)) { - ZEPHIR_INIT_NVAR(&activeRow); - array_init(&activeRow); - break; - } - ZEPHIR_INIT_NVAR(&activeRow); - object_init(&activeRow); - break; - } while(0); +static PHP_METHOD(Phalcon_Storage_Serializer_Json, unserialize) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_1 = NULL; + zval *data, data_sub, _0; + zval *this_ptr = getThis(); - dirtyState = 0; - zephir_read_property(&_1, this_ptr, ZEND_STRL("columnTypes"), PH_NOISY_CC | PH_READONLY); - zephir_is_iterable(&_1, 0, "phalcon/Mvc/Model/Resultset/Complex.zep", 267); - if (Z_TYPE_P(&_1) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_1), _4, _5, _2) - { - ZEPHIR_INIT_NVAR(&alias); - if (_5 != NULL) { - ZVAL_STR_COPY(&alias, _5); - } else { - ZVAL_LONG(&alias, _4); - } - ZEPHIR_INIT_NVAR(&column); - ZVAL_COPY(&column, _2); - if (UNEXPECTED(Z_TYPE_P(&column) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Column type is corrupt", "phalcon/Mvc/Model/Resultset/Complex.zep", 139); - return; - } - ZEPHIR_OBS_NVAR(&type); - zephir_array_fetch_string(&type, &column, SL("type"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 142); - if (ZEPHIR_IS_STRING(&type, "object")) { - ZEPHIR_OBS_NVAR(&source); - zephir_array_fetch_string(&source, &column, SL("column"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 148); - ZEPHIR_OBS_NVAR(&attributes); - zephir_array_fetch_string(&attributes, &column, SL("attributes"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 149); - ZEPHIR_OBS_NVAR(&columnMap); - zephir_array_fetch_string(&columnMap, &column, SL("columnMap"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 150); - ZEPHIR_INIT_NVAR(&rowModel); - array_init(&rowModel); - zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model/Resultset/Complex.zep", 168); - if (Z_TYPE_P(&attributes) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _6$$11) - { - ZEPHIR_INIT_NVAR(&attribute); - ZVAL_COPY(&attribute, _6$$11); - ZEPHIR_OBS_NVAR(&columnValue); - ZEPHIR_INIT_NVAR(&_8$$12); - ZEPHIR_CONCAT_SVSV(&_8$$12, "_", &source, "_", &attribute); - zephir_array_fetch(&columnValue, &row, &_8$$12, PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 161); - zephir_array_update_zval(&rowModel, &attribute, &columnValue, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_7$$11, &attributes, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_7$$11)) { - break; - } - ZEPHIR_CALL_METHOD(&attribute, &attributes, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&columnValue); - ZEPHIR_INIT_NVAR(&_9$$13); - ZEPHIR_CONCAT_SVSV(&_9$$13, "_", &source, "_", &attribute); - zephir_array_fetch(&columnValue, &row, &_9$$13, PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 161); - zephir_array_update_zval(&rowModel, &attribute, &columnValue, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&attribute); - do { - if (ZEPHIR_IS_LONG(&hydrateMode, 0)) { - ZEPHIR_OBS_NVAR(&keepSnapshots); - if (!(zephir_array_isset_string_fetch(&keepSnapshots, &column, SL("keepSnapshots"), 0))) { - ZEPHIR_INIT_NVAR(&keepSnapshots); - ZVAL_BOOL(&keepSnapshots, 0); - } - if (ZEPHIR_GLOBAL(orm).late_state_binding) { - ZEPHIR_OBS_NVAR(&_10$$16); - zephir_array_fetch_string(&_10$$16, &column, SL("instance"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 178); - if (zephir_instance_of_ev(&_10$$16, phalcon_mvc_model_ce)) { - zephir_array_fetch_string(&_11$$17, &column, SL("instance"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 179); - ZEPHIR_INIT_NVAR(&modelName); - zephir_get_class(&modelName, &_11$$17, 0); - } else { - ZEPHIR_INIT_NVAR(&modelName); - ZVAL_STRING(&modelName, "Phalcon\\Mvc\\Model"); - } - zephir_array_fetch_string(&_12$$16, &column, SL("instance"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 185); - ZVAL_LONG(&_13$$16, dirtyState); - _14$$16 = zephir_fetch_class(&modelName); - ZEPHIR_CALL_CE_STATIC(&value, _14$$16, "cloneresultmap", NULL, 0, &_12$$16, &rowModel, &columnMap, &_13$$16, &keepSnapshots); - zephir_check_call_status(); - } else { - zephir_array_fetch_string(&_16$$19, &column, SL("instance"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 199); - ZVAL_LONG(&_17$$19, dirtyState); - ZEPHIR_CALL_CE_STATIC(&value, phalcon_mvc_model_ce, "cloneresultmap", &_15, 0, &_16$$19, &rowModel, &columnMap, &_17$$19, &keepSnapshots); - zephir_check_call_status(); - } - break; - } - ZEPHIR_CALL_CE_STATIC(&value, phalcon_mvc_model_ce, "cloneresultmaphydrate", &_18, 0, &rowModel, &columnMap, &hydrateMode); - zephir_check_call_status(); - break; - } while(0); + ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_END(); +#endif - ZEPHIR_OBS_NVAR(&attribute); - zephir_array_fetch_string(&attribute, &column, SL("balias"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 223); - } else { - ZEPHIR_OBS_NVAR(&sqlAlias); - if (zephir_array_isset_string_fetch(&sqlAlias, &column, SL("sqlAlias"), 0)) { - ZEPHIR_OBS_NVAR(&value); - zephir_array_fetch(&value, &row, &sqlAlias, PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 231); - } else { - ZEPHIR_OBS_NVAR(&value); - zephir_array_isset_fetch(&value, &row, &alias, 0); - } - if (zephir_array_isset_string(&column, SL("balias"))) { - ZEPHIR_CPY_WRT(&attribute, &alias); - } else { - ZEPHIR_INIT_NVAR(&_19$$25); - ZVAL_STRING(&_19$$25, "_"); - ZEPHIR_INIT_NVAR(&_20$$25); - ZVAL_STRING(&_20$$25, ""); - ZEPHIR_INIT_NVAR(&attribute); - zephir_fast_str_replace(&attribute, &_19$$25, &_20$$25, &alias); - } - } - if (!(zephir_array_isset_string_fetch(&eager, &column, SL("eager"), 1))) { - do { - if (ZEPHIR_IS_LONG(&hydrateMode, 1)) { - zephir_array_update_zval(&activeRow, &attribute, &value, PH_COPY | PH_SEPARATE); - break; - } - zephir_update_property_zval_zval(&activeRow, &attribute, &value); - break; - } while(0); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_1, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3, &_1, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3)) { - break; - } - ZEPHIR_CALL_METHOD(&alias, &_1, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&column, &_1, "current", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&column) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Column type is corrupt", "phalcon/Mvc/Model/Resultset/Complex.zep", 139); - return; - } - ZEPHIR_OBS_NVAR(&type); - zephir_array_fetch_string(&type, &column, SL("type"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 142); - if (ZEPHIR_IS_STRING(&type, "object")) { - ZEPHIR_OBS_NVAR(&source); - zephir_array_fetch_string(&source, &column, SL("column"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 148); - ZEPHIR_OBS_NVAR(&attributes); - zephir_array_fetch_string(&attributes, &column, SL("attributes"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 149); - ZEPHIR_OBS_NVAR(&columnMap); - zephir_array_fetch_string(&columnMap, &column, SL("columnMap"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 150); - ZEPHIR_INIT_NVAR(&rowModel); - array_init(&rowModel); - zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model/Resultset/Complex.zep", 168); - if (Z_TYPE_P(&attributes) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _21$$31) - { - ZEPHIR_INIT_NVAR(&attribute); - ZVAL_COPY(&attribute, _21$$31); - ZEPHIR_OBS_NVAR(&columnValue); - ZEPHIR_INIT_NVAR(&_23$$32); - ZEPHIR_CONCAT_SVSV(&_23$$32, "_", &source, "_", &attribute); - zephir_array_fetch(&columnValue, &row, &_23$$32, PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 161); - zephir_array_update_zval(&rowModel, &attribute, &columnValue, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &attributes, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_22$$31, &attributes, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_22$$31)) { - break; - } - ZEPHIR_CALL_METHOD(&attribute, &attributes, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&columnValue); - ZEPHIR_INIT_NVAR(&_24$$33); - ZEPHIR_CONCAT_SVSV(&_24$$33, "_", &source, "_", &attribute); - zephir_array_fetch(&columnValue, &row, &_24$$33, PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 161); - zephir_array_update_zval(&rowModel, &attribute, &columnValue, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &attributes, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&attribute); - do { - if (ZEPHIR_IS_LONG(&hydrateMode, 0)) { - ZEPHIR_OBS_NVAR(&keepSnapshots); - if (!(zephir_array_isset_string_fetch(&keepSnapshots, &column, SL("keepSnapshots"), 0))) { - ZEPHIR_INIT_NVAR(&keepSnapshots); - ZVAL_BOOL(&keepSnapshots, 0); - } - if (ZEPHIR_GLOBAL(orm).late_state_binding) { - ZEPHIR_OBS_NVAR(&_25$$36); - zephir_array_fetch_string(&_25$$36, &column, SL("instance"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 178); - if (zephir_instance_of_ev(&_25$$36, phalcon_mvc_model_ce)) { - zephir_array_fetch_string(&_26$$37, &column, SL("instance"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 179); - ZEPHIR_INIT_NVAR(&modelName); - zephir_get_class(&modelName, &_26$$37, 0); - } else { - ZEPHIR_INIT_NVAR(&modelName); - ZVAL_STRING(&modelName, "Phalcon\\Mvc\\Model"); - } - zephir_array_fetch_string(&_27$$36, &column, SL("instance"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 185); - ZVAL_LONG(&_28$$36, dirtyState); - _29$$36 = zephir_fetch_class(&modelName); - ZEPHIR_CALL_CE_STATIC(&value, _29$$36, "cloneresultmap", NULL, 0, &_27$$36, &rowModel, &columnMap, &_28$$36, &keepSnapshots); - zephir_check_call_status(); - } else { - zephir_array_fetch_string(&_30$$39, &column, SL("instance"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 199); - ZVAL_LONG(&_31$$39, dirtyState); - ZEPHIR_CALL_CE_STATIC(&value, phalcon_mvc_model_ce, "cloneresultmap", &_15, 0, &_30$$39, &rowModel, &columnMap, &_31$$39, &keepSnapshots); - zephir_check_call_status(); - } - break; - } - ZEPHIR_CALL_CE_STATIC(&value, phalcon_mvc_model_ce, "cloneresultmaphydrate", &_18, 0, &rowModel, &columnMap, &hydrateMode); - zephir_check_call_status(); - break; - } while(0); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &data); - ZEPHIR_OBS_NVAR(&attribute); - zephir_array_fetch_string(&attribute, &column, SL("balias"), PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 223); - } else { - ZEPHIR_OBS_NVAR(&sqlAlias); - if (zephir_array_isset_string_fetch(&sqlAlias, &column, SL("sqlAlias"), 0)) { - ZEPHIR_OBS_NVAR(&value); - zephir_array_fetch(&value, &row, &sqlAlias, PH_NOISY, "phalcon/Mvc/Model/Resultset/Complex.zep", 231); - } else { - ZEPHIR_OBS_NVAR(&value); - zephir_array_isset_fetch(&value, &row, &alias, 0); - } - if (zephir_array_isset_string(&column, SL("balias"))) { - ZEPHIR_CPY_WRT(&attribute, &alias); - } else { - ZEPHIR_INIT_NVAR(&_32$$45); - ZVAL_STRING(&_32$$45, "_"); - ZEPHIR_INIT_NVAR(&_33$$45); - ZVAL_STRING(&_33$$45, ""); - ZEPHIR_INIT_NVAR(&attribute); - zephir_fast_str_replace(&attribute, &_32$$45, &_33$$45, &alias); - } - } - ZEPHIR_OBS_NVAR(&eager); - if (!(zephir_array_isset_string_fetch(&eager, &column, SL("eager"), 0))) { - do { - if (ZEPHIR_IS_LONG(&hydrateMode, 1)) { - zephir_array_update_zval(&activeRow, &attribute, &value, PH_COPY | PH_SEPARATE); - break; - } - zephir_update_property_zval_zval(&activeRow, &attribute, &value); - break; - } while(0); - } - ZEPHIR_CALL_METHOD(NULL, &_1, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&column); - ZEPHIR_INIT_NVAR(&alias); - zephir_update_property_zval(this_ptr, ZEND_STRL("activeRow"), &activeRow); - RETURN_CCTOR(&activeRow); + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_json_ce, "decode", &_1, 180, data); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &_0); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, toArray) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Storage_Serializer_Msgpack) { - zval records; - zval current, _0; + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Serializer, Msgpack, phalcon, storage_serializer_msgpack, phalcon_storage_serializer_abstractserializer_ce, phalcon_storage_serializer_msgpack_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Storage_Serializer_Msgpack, serialize) +{ + zval _0, _1, _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_1 = NULL, *_2 = NULL, *_3 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(¤t); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&records); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(&records); - array_init(&records); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "rewind", NULL, 111); + zephir_read_property(&_1, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "isserializable", NULL, 0, &_1); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_0, this_ptr, "valid", &_1, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_0))) { - break; - } - ZEPHIR_CALL_METHOD(¤t, this_ptr, "current", &_2, 489); - zephir_check_call_status(); - zephir_array_append(&records, ¤t, PH_SEPARATE, "phalcon/Mvc/Model/Resultset/Complex.zep", 287); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "next", &_3, 0); - zephir_check_call_status(); + if (!(zephir_is_true(&_0))) { + RETURN_MM_MEMBER(getThis(), "data"); } - RETURN_CTOR(&records); + zephir_read_property(&_2, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_FUNCTION("msgpack_pack", NULL, 0, &_2); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, serialize) +static PHP_METHOD(Phalcon_Storage_Serializer_Msgpack, unserialize) { - zval _7, _6$$4; - zval records, cache, columnTypes, hydrateMode, container, serializer, _0, _2, _3, _4$$4, _5$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_1 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *data, data_sub, __$false, __$null, version, _0, _1, _2, _7, _3$$3, _4$$3, _5$$4, _6$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&records); - ZVAL_UNDEF(&cache); - ZVAL_UNDEF(&columnTypes); - ZVAL_UNDEF(&hydrateMode); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&serializer); + ZVAL_UNDEF(&data_sub); + ZVAL_BOOL(&__$false, 0); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&version); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$4); ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$4); ZVAL_UNDEF(&_6$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &data); - ZEPHIR_CALL_METHOD(&records, this_ptr, "toarray", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("cache"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&cache, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("columnTypes"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&columnTypes, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("hydrateMode"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&hydrateMode, &_0); - ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_1, 0); + + ZEPHIR_CALL_FUNCTION(&version, "phpversion", NULL, 86); zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The dependency injector container is not valid", "phalcon/Mvc/Model/Resultset/Complex.zep", 316); - return; - } - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "serializer"); - ZEPHIR_CALL_METHOD(&_2, &container, "has", NULL, 0, &_3); + ZEPHIR_GLOBAL(warning).enable = zend_is_true(&__$false); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "8.0"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, ">="); + ZEPHIR_CALL_FUNCTION(&_2, "version_compare", NULL, 87, &version, &_0, &_1); zephir_check_call_status(); if (zephir_is_true(&_2)) { - ZEPHIR_INIT_VAR(&_5$$4); - ZVAL_STRING(&_5$$4, "serializer"); - ZEPHIR_CALL_METHOD(&_4$$4, &container, "getshared", NULL, 0, &_5$$4); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&serializer, &_4$$4); - ZEPHIR_INIT_VAR(&_6$$4); - zephir_create_array(&_6$$4, 4, 0); - zephir_array_update_string(&_6$$4, SL("cache"), &cache, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_6$$4, SL("rows"), &records, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_6$$4, SL("columnTypes"), &columnTypes, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_6$$4, SL("hydrateMode"), &hydrateMode, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &serializer, "setdata", NULL, 0, &_6$$4); + ZEPHIR_INIT_VAR(&_3$$3); + ZEPHIR_INIT_NVAR(&_3$$3); + zephir_create_closure_ex(&_3$$3, NULL, phalcon_12__closure_ce, SL("__invoke")); + ZVAL_LONG(&_4$$3, 2); + ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_3$$3, &_4$$3); zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&serializer, "serialize", NULL, 0); + } else { + ZEPHIR_INIT_VAR(&_5$$4); + ZEPHIR_INIT_NVAR(&_5$$4); + zephir_create_closure_ex(&_5$$4, NULL, phalcon_13__closure_ce, SL("__invoke")); + ZVAL_LONG(&_6$$4, 2); + ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_5$$4, &_6$$4); zephir_check_call_status(); - RETURN_MM(); } - ZEPHIR_INIT_VAR(&_7); - zephir_create_array(&_7, 4, 0); - zephir_array_update_string(&_7, SL("cache"), &cache, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_7, SL("rows"), &records, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_7, SL("columnTypes"), &columnTypes, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_7, SL("hydrateMode"), &hydrateMode, PH_COPY | PH_SEPARATE); - ZEPHIR_RETURN_CALL_FUNCTION("serialize", NULL, 13, &_7); + ZEPHIR_CALL_FUNCTION(&_7, "msgpack_unpack", NULL, 0, data); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &_7); + ZEPHIR_CALL_FUNCTION(NULL, "restore_error_handler", NULL, 90); + zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_GLOBAL(warning).enable)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &__$null); + } + ZEPHIR_MM_RESTORE(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Storage_Serializer_None) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Serializer, None, phalcon, storage_serializer_none, phalcon_storage_serializer_abstractserializer_ce, phalcon_storage_serializer_none_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Storage_Serializer_None, serialize) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "data"); +} + +static PHP_METHOD(Phalcon_Storage_Serializer_None, unserialize) +{ + zval *data, data_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&data_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &data); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("data"), data); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Storage_Serializer_Php) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Serializer, Php, phalcon, storage_serializer_php, phalcon_storage_serializer_abstractserializer_ce, phalcon_storage_serializer_php_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Storage_Serializer_Php, serialize) +{ + zval _0, _1, _2; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_1, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "isserializable", NULL, 0, &_1); + zephir_check_call_status(); + if (!(zephir_is_true(&_0))) { + RETURN_MM_MEMBER(getThis(), "data"); + } + zephir_read_property(&_2, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_FUNCTION("serialize", NULL, 13, &_2); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, unserialize) +static PHP_METHOD(Phalcon_Storage_Serializer_Php, unserialize) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *data, data_sub, __$true, __$false, resultset, container, serializer, _1, _2, _5, _6, _7, _8, _9, _10, _3$$4, _4$$4; + zval *data, data_sub, __$false, __$null, version, _0, _1$$4, _2$$4, _3$$4, _8$$4, _4$$6, _5$$6, _6$$7, _7$$7; zval *this_ptr = getThis(); ZVAL_UNDEF(&data_sub); - ZVAL_BOOL(&__$true, 1); ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&resultset); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&serializer); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&version); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_8$$4); + ZVAL_UNDEF(&_4$$6); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&_6$$7); + ZVAL_UNDEF(&_7$$7); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) @@ -171662,51 +160892,48 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, unserialize) zephir_fetch_params(1, 1, 0, &data); - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("disableHydration"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("disableHydration"), &__$false); - } - ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_0, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The dependency injector container is not valid", "phalcon/Mvc/Model/Resultset/Complex.zep", 361); - return; - } - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "serializer"); - ZEPHIR_CALL_METHOD(&_1, &container, "has", NULL, 0, &_2); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "isserializable", NULL, 0, data); zephir_check_call_status(); - if (zephir_is_true(&_1)) { - ZEPHIR_INIT_VAR(&_4$$4); - ZVAL_STRING(&_4$$4, "serializer"); - ZEPHIR_CALL_METHOD(&_3$$4, &container, "getshared", NULL, 0, &_4$$4); + if (!(zephir_is_true(&_0))) { + zephir_update_property_zval(this_ptr, ZEND_STRL("data"), data); + } else { + if (Z_TYPE_P(data) != IS_STRING) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_InvalidArgumentException, "Data for the unserializer must of type string", "phalcon/Storage/Serializer/Php.zep", 43); + return; + } + ZEPHIR_CALL_FUNCTION(&version, "phpversion", NULL, 86); zephir_check_call_status(); - ZEPHIR_CPY_WRT(&serializer, &_3$$4); - ZEPHIR_CALL_METHOD(NULL, &serializer, "unserialize", NULL, 0, data); + ZEPHIR_GLOBAL(warning).enable = zend_is_true(&__$false); + ZEPHIR_INIT_VAR(&_1$$4); + ZVAL_STRING(&_1$$4, "8.0"); + ZEPHIR_INIT_VAR(&_2$$4); + ZVAL_STRING(&_2$$4, ">="); + ZEPHIR_CALL_FUNCTION(&_3$$4, "version_compare", NULL, 87, &version, &_1$$4, &_2$$4); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&resultset, &serializer, "getdata", NULL, 0); + if (zephir_is_true(&_3$$4)) { + ZEPHIR_INIT_VAR(&_4$$6); + ZEPHIR_INIT_NVAR(&_4$$6); + zephir_create_closure_ex(&_4$$6, NULL, phalcon_14__closure_ce, SL("__invoke")); + ZVAL_LONG(&_5$$6, 8); + ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_4$$6, &_5$$6); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_VAR(&_6$$7); + ZEPHIR_INIT_NVAR(&_6$$7); + zephir_create_closure_ex(&_6$$7, NULL, phalcon_15__closure_ce, SL("__invoke")); + ZVAL_LONG(&_7$$7, 8); + ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_6$$7, &_7$$7); + zephir_check_call_status(); + } + ZEPHIR_CALL_FUNCTION(&_8$$4, "unserialize", NULL, 15, data); zephir_check_call_status(); - } else { - ZEPHIR_CALL_FUNCTION(&resultset, "unserialize", NULL, 15, data); + zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &_8$$4); + ZEPHIR_CALL_FUNCTION(NULL, "restore_error_handler", NULL, 90); zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_GLOBAL(warning).enable)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &__$null); + } } - if (UNEXPECTED(Z_TYPE_P(&resultset) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid serialization data", "phalcon/Mvc/Model/Resultset/Complex.zep", 374); - return; - } - zephir_array_fetch_string(&_5, &resultset, SL("rows"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 377); - zephir_update_property_zval(this_ptr, ZEND_STRL("rows"), &_5); - zephir_array_fetch_string(&_6, &resultset, SL("rows"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 378); - ZEPHIR_INIT_ZVAL_NREF(_7); - ZVAL_LONG(&_7, zephir_fast_count_int(&_6)); - zephir_update_property_zval(this_ptr, ZEND_STRL("count"), &_7); - zephir_array_fetch_string(&_8, &resultset, SL("cache"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 379); - zephir_update_property_zval(this_ptr, ZEND_STRL("cache"), &_8); - zephir_array_fetch_string(&_9, &resultset, SL("columnTypes"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 380); - zephir_update_property_zval(this_ptr, ZEND_STRL("columnTypes"), &_9); - zephir_array_fetch_string(&_10, &resultset, SL("hydrateMode"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Complex.zep", 381); - zephir_update_property_zval(this_ptr, ZEND_STRL("hydrateMode"), &_10); ZEPHIR_MM_RESTORE(); } @@ -171720,604 +160947,457 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Complex, unserialize) -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Resultset_Simple) +ZEPHIR_INIT_CLASS(Phalcon_Storage_Serializer_SerializerInterface) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\Resultset, Simple, phalcon, mvc_model_resultset_simple, phalcon_mvc_model_resultset_ce, phalcon_mvc_model_resultset_simple_method_entry, 0); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Storage\\Serializer, SerializerInterface, phalcon, storage_serializer_serializerinterface, phalcon_storage_serializer_serializerinterface_method_entry); - zend_declare_property_null(phalcon_mvc_model_resultset_simple_ce, SL("columnMap"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_resultset_simple_ce, SL("model"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_model_resultset_simple_ce, SL("keepSnapshots"), 0, ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_storage_serializer_serializerinterface_ce, 1, zend_ce_serializable); return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, __construct) +ZEPHIR_DOC_METHOD(Phalcon_Storage_Serializer_SerializerInterface, getData); +ZEPHIR_DOC_METHOD(Phalcon_Storage_Serializer_SerializerInterface, setData); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Storage_Adapter_AbstractAdapter) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Storage\\Adapter, AbstractAdapter, phalcon, storage_adapter_abstractadapter, phalcon_storage_adapter_abstractadapter_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_storage_adapter_abstractadapter_ce, SL("adapter"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_storage_adapter_abstractadapter_ce, SL("defaultSerializer"), "Php", ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_storage_adapter_abstractadapter_ce, SL("lifetime"), 3600, ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_storage_adapter_abstractadapter_ce, SL("prefix"), "", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_storage_adapter_abstractadapter_ce, SL("serializer"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_storage_adapter_abstractadapter_ce, SL("serializerFactory"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_storage_adapter_abstractadapter_ce, 1, phalcon_storage_adapter_adapterinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, getDefaultSerializer) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "defaultSerializer"); +} + +static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, setDefaultSerializer) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zend_bool keepSnapshots; - zval *columnMap, columnMap_sub, *model, model_sub, *result, result_sub, *cache = NULL, cache_sub, *keepSnapshots_param = NULL, __$true, __$false, __$null; + zval *defaultSerializer_param = NULL; + zval defaultSerializer; zval *this_ptr = getThis(); - ZVAL_UNDEF(&columnMap_sub); - ZVAL_UNDEF(&model_sub); - ZVAL_UNDEF(&result_sub); - ZVAL_UNDEF(&cache_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&defaultSerializer); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 5) - Z_PARAM_ZVAL(columnMap) - Z_PARAM_ZVAL(model) - Z_PARAM_ZVAL(result) - Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(cache, zephir_get_internal_ce(SL("psr\\simplecache\\cacheinterface"))) - Z_PARAM_BOOL(keepSnapshots) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(defaultSerializer) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 2, &columnMap, &model, &result, &cache, &keepSnapshots_param); - if (!cache) { - cache = &cache_sub; - cache = &__$null; - } - if (!keepSnapshots_param) { - keepSnapshots = 0; - } else { - keepSnapshots = zephir_get_boolval(keepSnapshots_param); - } + zephir_fetch_params(1, 1, 0, &defaultSerializer_param); + zephir_get_strval(&defaultSerializer, defaultSerializer_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("model"), model); - zephir_update_property_zval(this_ptr, ZEND_STRL("columnMap"), columnMap); - if (keepSnapshots) { - zephir_update_property_zval(this_ptr, ZEND_STRL("keepSnapshots"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("keepSnapshots"), &__$false); - } - ZEPHIR_CALL_PARENT(NULL, phalcon_mvc_model_resultset_simple_ce, getThis(), "__construct", &_0, 0, result, cache); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultSerializer"), &defaultSerializer); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, current) +static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, getPrefix) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "prefix"); +} + +static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, __construct) { - zend_class_entry *_6$$6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_7 = NULL, *_11 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval __$true, __$false, row, hydrateMode, columnMap, activeRow, modelName, _0, _1$$6, _3$$6, _4$$6, _5$$6, _2$$7, _8$$9, _9$$9, _10$$9; + zephir_fcall_cache_entry *_1 = NULL; + zval options; + zval *factory, factory_sub, *options_param = NULL, _0, _2, _3, _4, _5, _6$$3; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&row); - ZVAL_UNDEF(&hydrateMode); - ZVAL_UNDEF(&columnMap); - ZVAL_UNDEF(&activeRow); - ZVAL_UNDEF(&modelName); + ZVAL_UNDEF(&factory_sub); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$6); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&_4$$6); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_2$$7); - ZVAL_UNDEF(&_8$$9); - ZVAL_UNDEF(&_9$$9); - ZVAL_UNDEF(&_10$$9); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&options); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_storage_serializerfactory_ce) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("activeRow"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&activeRow, &_0); - if (Z_TYPE_P(&activeRow) != IS_NULL) { - RETURN_CCTOR(&activeRow); + zephir_fetch_params(1, 1, 1, &factory, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("row"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&row, &_0); - if (Z_TYPE_P(&row) != IS_ARRAY) { - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("activeRow"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("activeRow"), &__$false); - } - RETURN_MM_NULL(); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("serializerFactory"), factory); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "defaultSerializer"); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "Php"); + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultSerializer"), &_0); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "lifetime"); + ZVAL_LONG(&_5, 3600); + ZEPHIR_CALL_CE_STATIC(&_4, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_5); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("lifetime"), &_4); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "prefix"); + if (zephir_array_key_exists(&options, &_2)) { + zephir_array_fetch_string(&_6$$3, &options, SL("prefix"), PH_NOISY | PH_READONLY, "phalcon/Storage/Adapter/AbstractAdapter.zep", 81); + zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &_6$$3); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("hydrateMode"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&hydrateMode, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&columnMap, &_0); - do { - if (ZEPHIR_IS_LONG(&hydrateMode, 0)) { - if (ZEPHIR_GLOBAL(orm).late_state_binding) { - ZEPHIR_OBS_VAR(&_1$$6); - zephir_read_property(&_1$$6, this_ptr, ZEND_STRL("model"), PH_NOISY_CC); - if (zephir_instance_of_ev(&_1$$6, phalcon_mvc_model_ce)) { - zephir_read_property(&_2$$7, this_ptr, ZEND_STRL("model"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&modelName); - zephir_get_class(&modelName, &_2$$7, 0); - } else { - ZEPHIR_INIT_NVAR(&modelName); - ZVAL_STRING(&modelName, "Phalcon\\Mvc\\Model"); - } - zephir_read_property(&_3$$6, this_ptr, ZEND_STRL("model"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_4$$6, this_ptr, ZEND_STRL("keepSnapshots"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_5$$6, 0); - _6$$6 = zephir_fetch_class(&modelName); - ZEPHIR_CALL_CE_STATIC(&activeRow, _6$$6, "cloneresultmap", NULL, 0, &_3$$6, &row, &columnMap, &_5$$6, &_4$$6); - zephir_check_call_status(); - } else { - zephir_read_property(&_8$$9, this_ptr, ZEND_STRL("model"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_9$$9, this_ptr, ZEND_STRL("keepSnapshots"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_10$$9, 0); - ZEPHIR_CALL_CE_STATIC(&activeRow, phalcon_mvc_model_ce, "cloneresultmap", &_7, 0, &_8$$9, &row, &columnMap, &_10$$9, &_9$$9); - zephir_check_call_status(); - } - break; - } - ZEPHIR_CALL_CE_STATIC(&activeRow, phalcon_mvc_model_ce, "cloneresultmaphydrate", &_11, 0, &row, &columnMap, &hydrateMode); - zephir_check_call_status(); - break; - } while(0); + ZEPHIR_MM_RESTORE(); +} - zephir_update_property_zval(this_ptr, ZEND_STRL("activeRow"), &activeRow); - RETURN_CCTOR(&activeRow); +static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, clear) +{ } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, toArray) +static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, decrement) { - zend_string *_9$$8, *_22$$17; - zend_ulong _8$$8, _21$$17; - zval renamedRecords, renamed; +} + +static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, delete) +{ +} + +static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, get) +{ +} + +static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, getAdapter) +{ +} + +static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, getKeys) +{ +} + +static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, has) +{ +} + +static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, increment) +{ +} + +static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, set) +{ +} + +static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, getFilteredKeys) +{ + zval results; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_12 = NULL; + zephir_fcall_cache_entry *_5 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *renameColumns_param = NULL, __$null, result, records, record, renamedKey, key, value, columnMap, _2, _0$$3, _3$$5, *_4$$7, _5$$7, *_6$$8, _7$$8, _10$$10, _11$$10, _13$$12, _14$$12, _15$$14, _16$$14, _17$$16, _18$$16, *_19$$17, _20$$17, _23$$19, _24$$19, _25$$21, _26$$21, _27$$23, _28$$23, _29$$25, _30$$25; - zend_bool renameColumns, _1; + zval prefix; + zval *keys = NULL, keys_sub, *prefix_param = NULL, key, pattern, _0, _1, *_2, _3, _4$$3, _6$$5; zval *this_ptr = getThis(); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&records); - ZVAL_UNDEF(&record); - ZVAL_UNDEF(&renamedKey); + ZVAL_UNDEF(&keys_sub); ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&columnMap); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_5$$7); - ZVAL_UNDEF(&_7$$8); - ZVAL_UNDEF(&_10$$10); - ZVAL_UNDEF(&_11$$10); - ZVAL_UNDEF(&_13$$12); - ZVAL_UNDEF(&_14$$12); - ZVAL_UNDEF(&_15$$14); - ZVAL_UNDEF(&_16$$14); - ZVAL_UNDEF(&_17$$16); - ZVAL_UNDEF(&_18$$16); - ZVAL_UNDEF(&_20$$17); - ZVAL_UNDEF(&_23$$19); - ZVAL_UNDEF(&_24$$19); - ZVAL_UNDEF(&_25$$21); - ZVAL_UNDEF(&_26$$21); - ZVAL_UNDEF(&_27$$23); - ZVAL_UNDEF(&_28$$23); - ZVAL_UNDEF(&_29$$25); - ZVAL_UNDEF(&_30$$25); - ZVAL_UNDEF(&renamedRecords); - ZVAL_UNDEF(&renamed); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&prefix); + ZVAL_UNDEF(&results); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(renameColumns) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(keys) + Z_PARAM_STR(prefix) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &renameColumns_param); - if (!renameColumns_param) { - renameColumns = 1; + zephir_fetch_params(1, 2, 0, &keys, &prefix_param); + ZEPHIR_SEPARATE_PARAM(keys); + if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { + zephir_get_strval(&prefix, prefix_param); } else { - renameColumns = zephir_get_boolval(renameColumns_param); + ZEPHIR_INIT_VAR(&prefix); } - ZEPHIR_OBS_VAR(&records); - zephir_read_property(&records, this_ptr, ZEND_STRL("rows"), PH_NOISY_CC); - if (Z_TYPE_P(&records) != IS_ARRAY) { - zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("result"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&result, &_0$$3); - zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("row"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0$$3) != IS_NULL) { - ZEPHIR_CALL_METHOD(NULL, &result, "execute", NULL, 0); + ZEPHIR_INIT_VAR(&results); + array_init(&results); + zephir_read_property(&_0, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&pattern); + ZEPHIR_CONCAT_VV(&pattern, &_0, &prefix); + ZEPHIR_INIT_VAR(&_1); + if (!(zephir_is_true(keys))) { + ZEPHIR_INIT_NVAR(&_1); + array_init(&_1); + } else { + ZEPHIR_CPY_WRT(&_1, keys); + } + ZEPHIR_CPY_WRT(keys, &_1); + zephir_is_iterable(keys, 0, "phalcon/Storage/Adapter/AbstractAdapter.zep", 162); + if (Z_TYPE_P(keys) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(keys), _2) + { + ZEPHIR_INIT_NVAR(&key); + ZVAL_COPY(&key, _2); + ZEPHIR_CALL_CE_STATIC(&_4$$3, phalcon_helper_str_ce, "startswith", &_5, 17, &key, &pattern); zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(&records, &result, "fetchall", NULL, 0); + if (zephir_is_true(&_4$$3)) { + zephir_array_append(&results, &key, PH_SEPARATE, "phalcon/Storage/Adapter/AbstractAdapter.zep", 158); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, keys, "rewind", NULL, 0); zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("row"), &__$null); - zephir_update_property_zval(this_ptr, ZEND_STRL("rows"), &records); - } - _1 = renameColumns; - if (_1) { - ZEPHIR_OBS_VAR(&_2); - zephir_read_property(&_2, this_ptr, ZEND_STRL("model"), PH_NOISY_CC); - _1 = !(zephir_instance_of_ev(&_2, phalcon_mvc_model_row_ce)); - } - if (_1) { - zephir_read_property(&_3$$5, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&columnMap, &_3$$5); - if (Z_TYPE_P(&columnMap) != IS_ARRAY) { - RETURN_CCTOR(&records); - } - ZEPHIR_INIT_VAR(&renamedRecords); - array_init(&renamedRecords); - if (Z_TYPE_P(&records) == IS_ARRAY) { - zephir_is_iterable(&records, 0, "phalcon/Mvc/Model/Resultset/Simple.zep", 241); - if (Z_TYPE_P(&records) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&records), _4$$7) - { - ZEPHIR_INIT_NVAR(&record); - ZVAL_COPY(&record, _4$$7); - ZEPHIR_INIT_NVAR(&renamed); - array_init(&renamed); - zephir_is_iterable(&record, 0, "phalcon/Mvc/Model/Resultset/Simple.zep", 239); - if (Z_TYPE_P(&record) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&record), _8$$8, _9$$8, _6$$8) - { - ZEPHIR_INIT_NVAR(&key); - if (_9$$8 != NULL) { - ZVAL_STR_COPY(&key, _9$$8); - } else { - ZVAL_LONG(&key, _8$$8); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _6$$8); - ZEPHIR_OBS_NVAR(&renamedKey); - if (UNEXPECTED(!(zephir_array_isset_fetch(&renamedKey, &columnMap, &key, 0)))) { - ZEPHIR_INIT_NVAR(&_10$$10); - object_init_ex(&_10$$10, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_11$$10); - ZEPHIR_CONCAT_SVS(&_11$$10, "Column '", &key, "' is not part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_10$$10, "__construct", &_12, 8, &_11$$10); - zephir_check_call_status(); - zephir_throw_exception_debug(&_10$$10, "phalcon/Mvc/Model/Resultset/Simple.zep", 222); - ZEPHIR_MM_RESTORE(); - return; - } - if (Z_TYPE_P(&renamedKey) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&renamedKey); - if (UNEXPECTED(!(zephir_array_isset_long_fetch(&renamedKey, &renamedKey, 0, 0)))) { - ZEPHIR_INIT_NVAR(&_13$$12); - object_init_ex(&_13$$12, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_14$$12); - ZEPHIR_CONCAT_SVS(&_14$$12, "Column '", &key, "' is not part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_13$$12, "__construct", &_12, 8, &_14$$12); - zephir_check_call_status(); - zephir_throw_exception_debug(&_13$$12, "phalcon/Mvc/Model/Resultset/Simple.zep", 229); - ZEPHIR_MM_RESTORE(); - return; - } - } - zephir_array_update_zval(&renamed, &renamedKey, &value, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &record, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_7$$8, &record, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_7$$8)) { - break; - } - ZEPHIR_CALL_METHOD(&key, &record, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &record, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&renamedKey); - if (UNEXPECTED(!(zephir_array_isset_fetch(&renamedKey, &columnMap, &key, 0)))) { - ZEPHIR_INIT_NVAR(&_15$$14); - object_init_ex(&_15$$14, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_16$$14); - ZEPHIR_CONCAT_SVS(&_16$$14, "Column '", &key, "' is not part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_15$$14, "__construct", &_12, 8, &_16$$14); - zephir_check_call_status(); - zephir_throw_exception_debug(&_15$$14, "phalcon/Mvc/Model/Resultset/Simple.zep", 222); - ZEPHIR_MM_RESTORE(); - return; - } - if (Z_TYPE_P(&renamedKey) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&renamedKey); - if (UNEXPECTED(!(zephir_array_isset_long_fetch(&renamedKey, &renamedKey, 0, 0)))) { - ZEPHIR_INIT_NVAR(&_17$$16); - object_init_ex(&_17$$16, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_18$$16); - ZEPHIR_CONCAT_SVS(&_18$$16, "Column '", &key, "' is not part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_17$$16, "__construct", &_12, 8, &_18$$16); - zephir_check_call_status(); - zephir_throw_exception_debug(&_17$$16, "phalcon/Mvc/Model/Resultset/Simple.zep", 229); - ZEPHIR_MM_RESTORE(); - return; - } - } - zephir_array_update_zval(&renamed, &renamedKey, &value, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &record, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - zephir_array_append(&renamedRecords, &renamed, PH_SEPARATE, "phalcon/Mvc/Model/Resultset/Simple.zep", 239); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &records, "rewind", NULL, 0); + while (1) { + ZEPHIR_CALL_METHOD(&_3, keys, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3)) { + break; + } + ZEPHIR_CALL_METHOD(&key, keys, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_6$$5, phalcon_helper_str_ce, "startswith", &_5, 17, &key, &pattern); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5$$7, &records, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5$$7)) { - break; - } - ZEPHIR_CALL_METHOD(&record, &records, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&renamed); - array_init(&renamed); - zephir_is_iterable(&record, 0, "phalcon/Mvc/Model/Resultset/Simple.zep", 239); - if (Z_TYPE_P(&record) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&record), _21$$17, _22$$17, _19$$17) - { - ZEPHIR_INIT_NVAR(&key); - if (_22$$17 != NULL) { - ZVAL_STR_COPY(&key, _22$$17); - } else { - ZVAL_LONG(&key, _21$$17); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _19$$17); - ZEPHIR_OBS_NVAR(&renamedKey); - if (UNEXPECTED(!(zephir_array_isset_fetch(&renamedKey, &columnMap, &key, 0)))) { - ZEPHIR_INIT_NVAR(&_23$$19); - object_init_ex(&_23$$19, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_24$$19); - ZEPHIR_CONCAT_SVS(&_24$$19, "Column '", &key, "' is not part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_23$$19, "__construct", &_12, 8, &_24$$19); - zephir_check_call_status(); - zephir_throw_exception_debug(&_23$$19, "phalcon/Mvc/Model/Resultset/Simple.zep", 222); - ZEPHIR_MM_RESTORE(); - return; - } - if (Z_TYPE_P(&renamedKey) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&renamedKey); - if (UNEXPECTED(!(zephir_array_isset_long_fetch(&renamedKey, &renamedKey, 0, 0)))) { - ZEPHIR_INIT_NVAR(&_25$$21); - object_init_ex(&_25$$21, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_26$$21); - ZEPHIR_CONCAT_SVS(&_26$$21, "Column '", &key, "' is not part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_25$$21, "__construct", &_12, 8, &_26$$21); - zephir_check_call_status(); - zephir_throw_exception_debug(&_25$$21, "phalcon/Mvc/Model/Resultset/Simple.zep", 229); - ZEPHIR_MM_RESTORE(); - return; - } - } - zephir_array_update_zval(&renamed, &renamedKey, &value, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &record, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_20$$17, &record, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_20$$17)) { - break; - } - ZEPHIR_CALL_METHOD(&key, &record, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &record, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&renamedKey); - if (UNEXPECTED(!(zephir_array_isset_fetch(&renamedKey, &columnMap, &key, 0)))) { - ZEPHIR_INIT_NVAR(&_27$$23); - object_init_ex(&_27$$23, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_28$$23); - ZEPHIR_CONCAT_SVS(&_28$$23, "Column '", &key, "' is not part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_27$$23, "__construct", &_12, 8, &_28$$23); - zephir_check_call_status(); - zephir_throw_exception_debug(&_27$$23, "phalcon/Mvc/Model/Resultset/Simple.zep", 222); - ZEPHIR_MM_RESTORE(); - return; - } - if (Z_TYPE_P(&renamedKey) == IS_ARRAY) { - ZEPHIR_OBS_NVAR(&renamedKey); - if (UNEXPECTED(!(zephir_array_isset_long_fetch(&renamedKey, &renamedKey, 0, 0)))) { - ZEPHIR_INIT_NVAR(&_29$$25); - object_init_ex(&_29$$25, phalcon_mvc_model_exception_ce); - ZEPHIR_INIT_NVAR(&_30$$25); - ZEPHIR_CONCAT_SVS(&_30$$25, "Column '", &key, "' is not part of the column map"); - ZEPHIR_CALL_METHOD(NULL, &_29$$25, "__construct", &_12, 8, &_30$$25); - zephir_check_call_status(); - zephir_throw_exception_debug(&_29$$25, "phalcon/Mvc/Model/Resultset/Simple.zep", 229); - ZEPHIR_MM_RESTORE(); - return; - } - } - zephir_array_update_zval(&renamed, &renamedKey, &value, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &record, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - zephir_array_append(&renamedRecords, &renamed, PH_SEPARATE, "phalcon/Mvc/Model/Resultset/Simple.zep", 239); - ZEPHIR_CALL_METHOD(NULL, &records, "next", NULL, 0); - zephir_check_call_status(); + if (zephir_is_true(&_6$$5)) { + zephir_array_append(&results, &key, PH_SEPARATE, "phalcon/Storage/Adapter/AbstractAdapter.zep", 158); } - } - ZEPHIR_INIT_NVAR(&record); + ZEPHIR_CALL_METHOD(NULL, keys, "next", NULL, 0); + zephir_check_call_status(); } - RETURN_CTOR(&renamedRecords); } - RETURN_CCTOR(&records); + ZEPHIR_INIT_NVAR(&key); + RETURN_CTOR(&results); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, serialize) +static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, getPrefixedKey) { - zval data; - zval container, serializer, _1, _2, _3, _4, _5$$4, _6$$4; + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; + zval *key = NULL, key_sub, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&serializer); + ZVAL_UNDEF(&key_sub); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&data); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(key) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &key); + ZEPHIR_SEPARATE_PARAM(key); - ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_0, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The dependency injector container is not valid", "phalcon/Mvc/Model/Resultset/Simple.zep", 262); - return; - } - ZEPHIR_INIT_VAR(&data); - zephir_create_array(&data, 6, 0); - ZEPHIR_OBS_VAR(&_1); - zephir_read_property(&_1, this_ptr, ZEND_STRL("model"), PH_NOISY_CC); - zephir_array_update_string(&data, SL("model"), &_1, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_1); - zephir_read_property(&_1, this_ptr, ZEND_STRL("cache"), PH_NOISY_CC); - zephir_array_update_string(&data, SL("cache"), &_1, PH_COPY | PH_SEPARATE); - ZVAL_BOOL(&_3, 0); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "toarray", NULL, 0, &_3); - zephir_check_call_status(); - zephir_array_update_string(&data, SL("rows"), &_2, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_1); - zephir_read_property(&_1, this_ptr, ZEND_STRL("columnMap"), PH_NOISY_CC); - zephir_array_update_string(&data, SL("columnMap"), &_1, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_1); - zephir_read_property(&_1, this_ptr, ZEND_STRL("hydrateMode"), PH_NOISY_CC); - zephir_array_update_string(&data, SL("hydrateMode"), &_1, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_NVAR(&_1); - zephir_read_property(&_1, this_ptr, ZEND_STRL("keepSnapshots"), PH_NOISY_CC); - zephir_array_update_string(&data, SL("keepSnapshots"), &_1, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "serializer"); - ZEPHIR_CALL_METHOD(&_2, &container, "has", NULL, 0, &_4); - zephir_check_call_status(); - if (zephir_is_true(&_2)) { - ZEPHIR_INIT_VAR(&_6$$4); - ZVAL_STRING(&_6$$4, "serializer"); - ZEPHIR_CALL_METHOD(&_5$$4, &container, "getshared", NULL, 0, &_6$$4); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&serializer, &_5$$4); - ZEPHIR_CALL_METHOD(NULL, &serializer, "setdata", NULL, 0, &data); + + zephir_cast_to_string(&_0, key); + ZEPHIR_CPY_WRT(key, &_0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CONCAT_VV(return_value, &_1, key); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, getSerializedData) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *content = NULL, content_sub, _0, _1$$3, _2$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&content_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(content) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &content); + ZEPHIR_SEPARATE_PARAM(content); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("defaultSerializer"), PH_NOISY_CC | PH_READONLY); + if (!ZEPHIR_IS_STRING_IDENTICAL(&_0, "")) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("serializer"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "setdata", NULL, 0, content); zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&serializer, "serialize", NULL, 0); + zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("serializer"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(content, &_2$$3, "serialize", NULL, 0); zephir_check_call_status(); - RETURN_MM(); } - ZEPHIR_RETURN_CALL_FUNCTION("serialize", NULL, 13, &data); - zephir_check_call_status(); + RETVAL_ZVAL(content, 1, 0); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, unserialize) +static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, getTtl) { + zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *data, data_sub, resultset, keepSnapshots, container, serializer, _1, _2, _5, _6, _7, _8, _9, _10, _11, _3$$4, _4$$4; + zval *ttl, ttl_sub, dateTime, _1$$4, _2$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&data_sub); - ZVAL_UNDEF(&resultset); - ZVAL_UNDEF(&keepSnapshots); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&serializer); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&ttl_sub); + ZVAL_UNDEF(&dateTime); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(data) + Z_PARAM_ZVAL(ttl) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &data); + zephir_fetch_params(1, 1, 0, &ttl); - ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_0, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The dependency injector container is not valid", "phalcon/Mvc/Model/Resultset/Simple.zep", 300); - return; + if (Z_TYPE_P(ttl) == IS_NULL) { + RETURN_MM_MEMBER(getThis(), "lifetime"); } - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "serializer"); - ZEPHIR_CALL_METHOD(&_1, &container, "has", NULL, 0, &_2); - zephir_check_call_status(); - if (zephir_is_true(&_1)) { - ZEPHIR_INIT_VAR(&_4$$4); - ZVAL_STRING(&_4$$4, "serializer"); - ZEPHIR_CALL_METHOD(&_3$$4, &container, "getshared", NULL, 0, &_4$$4); + _0 = Z_TYPE_P(ttl) == IS_OBJECT; + if (_0) { + _0 = zephir_is_instance_of(ttl, SL("DateInterval")); + } + if (_0) { + ZEPHIR_INIT_VAR(&dateTime); + object_init_ex(&dateTime, php_date_get_date_ce()); + ZEPHIR_INIT_VAR(&_1$$4); + ZVAL_STRING(&_1$$4, "@0"); + ZEPHIR_CALL_METHOD(NULL, &dateTime, "__construct", NULL, 0, &_1$$4); zephir_check_call_status(); - ZEPHIR_CPY_WRT(&serializer, &_3$$4); - ZEPHIR_CALL_METHOD(NULL, &serializer, "unserialize", NULL, 0, data); + ZEPHIR_CALL_METHOD(&_2$$4, &dateTime, "add", NULL, 0, ttl); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&resultset, &serializer, "getdata", NULL, 0); + ZEPHIR_RETURN_CALL_METHOD(&_2$$4, "gettimestamp", NULL, 0); zephir_check_call_status(); - } else { - ZEPHIR_CALL_FUNCTION(&resultset, "unserialize", NULL, 15, data); + RETURN_MM(); + } + RETURN_MM_LONG(zephir_get_intval(ttl)); +} + +static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, getUnserializedData) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *content = NULL, content_sub, _0, _1$$3, _2$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&content_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(content) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &content); + ZEPHIR_SEPARATE_PARAM(content); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("defaultSerializer"), PH_NOISY_CC | PH_READONLY); + if (!ZEPHIR_IS_STRING_IDENTICAL(&_0, "")) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("serializer"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "unserialize", NULL, 0, content); + zephir_check_call_status(); + zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("serializer"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(content, &_2$$3, "getdata", NULL, 0); zephir_check_call_status(); } - if (UNEXPECTED(Z_TYPE_P(&resultset) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "Invalid serialization data", "phalcon/Mvc/Model/Resultset/Simple.zep", 313); - return; + RETVAL_ZVAL(content, 1, 0); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, initSerializer) +{ + zend_bool _1; + zval _0, _2, _3$$3, _4$$3, _5$$3; + zval className; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_OBS_VAR(&_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("serializer"), PH_NOISY_CC); + _1 = Z_TYPE_P(&_0) == IS_OBJECT; + if (_1) { + ZEPHIR_OBS_VAR(&_2); + zephir_read_property(&_2, this_ptr, ZEND_STRL("serializer"), PH_NOISY_CC); + _1 = zephir_instance_of_ev(&_2, phalcon_storage_serializer_serializerinterface_ce); } - zephir_array_fetch_string(&_5, &resultset, SL("model"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Simple.zep", 316); - zephir_update_property_zval(this_ptr, ZEND_STRL("model"), &_5); - zephir_array_fetch_string(&_6, &resultset, SL("rows"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Simple.zep", 317); - zephir_update_property_zval(this_ptr, ZEND_STRL("rows"), &_6); - zephir_array_fetch_string(&_7, &resultset, SL("rows"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Simple.zep", 318); - ZEPHIR_INIT_ZVAL_NREF(_8); - ZVAL_LONG(&_8, zephir_fast_count_int(&_7)); - zephir_update_property_zval(this_ptr, ZEND_STRL("count"), &_8); - zephir_array_fetch_string(&_9, &resultset, SL("cache"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Simple.zep", 319); - zephir_update_property_zval(this_ptr, ZEND_STRL("cache"), &_9); - zephir_array_fetch_string(&_10, &resultset, SL("columnMap"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Simple.zep", 320); - zephir_update_property_zval(this_ptr, ZEND_STRL("columnMap"), &_10); - zephir_array_fetch_string(&_11, &resultset, SL("hydrateMode"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model/Resultset/Simple.zep", 321); - zephir_update_property_zval(this_ptr, ZEND_STRL("hydrateMode"), &_11); - if (zephir_array_isset_string_fetch(&keepSnapshots, &resultset, SL("keepSnapshots"), 1)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("keepSnapshots"), &keepSnapshots); + if (!(_1)) { + zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("defaultSerializer"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&className); + zephir_fast_strtolower(&className, &_3$$3); + zephir_read_property(&_4$$3, this_ptr, ZEND_STRL("serializerFactory"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_5$$3, &_4$$3, "newinstance", NULL, 0, &className); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("serializer"), &_5$$3); } ZEPHIR_MM_RESTORE(); } @@ -172332,818 +161412,1119 @@ static PHP_METHOD(Phalcon_Mvc_Model_Resultset_Simple, unserialize) -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Transaction_Exception) +ZEPHIR_INIT_CLASS(Phalcon_Storage_Adapter_AdapterInterface) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\Transaction, Exception, phalcon, mvc_model_transaction_exception, phalcon_mvc_model_exception_ce, NULL, 0); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Storage\\Adapter, AdapterInterface, phalcon, storage_adapter_adapterinterface, phalcon_storage_adapter_adapterinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Storage_Adapter_AdapterInterface, clear); +ZEPHIR_DOC_METHOD(Phalcon_Storage_Adapter_AdapterInterface, decrement); +ZEPHIR_DOC_METHOD(Phalcon_Storage_Adapter_AdapterInterface, delete); +ZEPHIR_DOC_METHOD(Phalcon_Storage_Adapter_AdapterInterface, get); +ZEPHIR_DOC_METHOD(Phalcon_Storage_Adapter_AdapterInterface, getAdapter); +ZEPHIR_DOC_METHOD(Phalcon_Storage_Adapter_AdapterInterface, getKeys); +ZEPHIR_DOC_METHOD(Phalcon_Storage_Adapter_AdapterInterface, getPrefix); +ZEPHIR_DOC_METHOD(Phalcon_Storage_Adapter_AdapterInterface, has); +ZEPHIR_DOC_METHOD(Phalcon_Storage_Adapter_AdapterInterface, increment); +ZEPHIR_DOC_METHOD(Phalcon_Storage_Adapter_AdapterInterface, set); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Storage_Adapter_Apcu) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Adapter, Apcu, phalcon, storage_adapter_apcu, phalcon_storage_adapter_abstractadapter_ce, phalcon_storage_adapter_apcu_method_entry, 0); + + zend_declare_property_null(phalcon_storage_adapter_apcu_ce, SL("options"), ZEND_ACC_PROTECTED); + phalcon_storage_adapter_apcu_ce->create_object = zephir_init_properties_Phalcon_Storage_Adapter_Apcu; return SUCCESS; } +static PHP_METHOD(Phalcon_Storage_Adapter_Apcu, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_1 = NULL; + zval options; + zval *factory, factory_sub, *options_param = NULL, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&factory_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&options); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_storage_serializerfactory_ce) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &factory, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } -#ifdef HAVE_CONFIG_H -#endif + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "ph-apcu-"); + zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + ZEPHIR_CALL_PARENT(NULL, phalcon_storage_adapter_apcu_ce, getThis(), "__construct", &_1, 0, factory, &options); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "initserializer", NULL, 0); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} +static PHP_METHOD(Phalcon_Storage_Adapter_Apcu, clear) +{ + zend_object_iterator *_1; + zend_bool result = 0; + zval item, pattern, apc, _0, _2$$4, _3$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_4 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&item); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&apc); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Transaction_Failed) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Model\\Transaction, Failed, phalcon, mvc_model_transaction_failed, phalcon_mvc_model_transaction_exception_ce, phalcon_mvc_model_transaction_failed_method_entry, 0); + ZEPHIR_MM_GROW(); - zend_declare_property_null(phalcon_mvc_model_transaction_failed_ce, SL("record"), ZEND_ACC_PROTECTED); - return SUCCESS; + ZEPHIR_INIT_VAR(&apc); + ZVAL_NULL(&apc); + zephir_read_property(&_0, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&pattern); + ZEPHIR_CONCAT_SVS(&pattern, "/^", &_0, "/"); + ZEPHIR_INIT_NVAR(&apc); + object_init_ex(&apc, zephir_get_internal_ce(SL("apcuiterator"))); + ZEPHIR_CALL_METHOD(NULL, &apc, "__construct", NULL, 0, &pattern); + zephir_check_call_status(); + result = 1; + if (Z_TYPE_P(&apc) != IS_OBJECT) { + RETURN_MM_BOOL(0); + } + _1 = zephir_get_iterator(&apc); + _1->funcs->rewind(_1); + for (;_1->funcs->valid(_1) == SUCCESS && !EG(exception); _1->funcs->move_forward(_1)) { + { + ZEPHIR_ITERATOR_COPY(&item, _1); + } + zephir_array_fetch_string(&_2$$4, &item, SL("key"), PH_NOISY | PH_READONLY, "phalcon/Storage/Adapter/Apcu.zep", 69); + ZEPHIR_CALL_FUNCTION(&_3$$4, "apcu_delete", &_4, 119, &_2$$4); + zephir_check_call_status(); + if (!(zephir_is_true(&_3$$4))) { + result = 0; + } + } + zend_iterator_dtor(_1); + RETURN_MM_BOOL(result); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Failed, __construct) +static PHP_METHOD(Phalcon_Storage_Adapter_Apcu, decrement) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *message_param = NULL, *record = NULL, record_sub, __$null; - zval message; + zend_long value, ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, *value_param = NULL, _0, _1; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&record_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(message) + Z_PARAM_STR(key) Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(record, phalcon_mvc_modelinterface_ce) + Z_PARAM_LONG(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &message_param, &record); - if (UNEXPECTED(Z_TYPE_P(message_param) != IS_STRING && Z_TYPE_P(message_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'message' must be of the type string")); + zephir_fetch_params(1, 1, 1, &key_param, &value_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(message_param) == IS_STRING)) { - zephir_get_strval(&message, message_param); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_INIT_VAR(&message); + ZEPHIR_INIT_VAR(&key); } - if (!record) { - record = &record_sub; - record = &__$null; + if (!value_param) { + value = 1; + } else { + value = zephir_get_intval(value_param); } - zephir_update_property_zval(this_ptr, ZEND_STRL("record"), record); - ZEPHIR_CALL_PARENT(NULL, phalcon_mvc_model_transaction_failed_ce, getThis(), "__construct", NULL, 0, &message); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getprefixedkey", NULL, 0, &key); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + ZVAL_LONG(&_1, value); + ZEPHIR_RETURN_CALL_FUNCTION("apcu_dec", NULL, 120, &_0, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Failed, getRecord) +static PHP_METHOD(Phalcon_Storage_Adapter_Apcu, delete) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, _0; + zval key; zval *this_ptr = getThis(); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_END(); +#endif + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &key_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } - RETURN_MEMBER(getThis(), "record"); + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getprefixedkey", NULL, 0, &key); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_FUNCTION("apcu_delete", NULL, 119, &_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Failed, getRecordMessages) +static PHP_METHOD(Phalcon_Storage_Adapter_Apcu, get) { - zval record, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, content, _0, _1; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&record); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&content); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(key) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(defaultValue) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &key_param, &defaultValue); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("record"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&record, &_0); - if (Z_TYPE_P(&record) != IS_NULL) { - ZEPHIR_RETURN_CALL_METHOD(&record, "getmessages", NULL, 0); - zephir_check_call_status(); + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, &key); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE(&_0)) { + RETVAL_ZVAL(defaultValue, 1, 0); RETURN_MM(); } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getmessage", NULL, 0); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getprefixedkey", NULL, 0, &key); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&content, "apcu_fetch", NULL, 121, &_1); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getunserializeddata", NULL, 0, &content); zephir_check_call_status(); RETURN_MM(); } - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Transaction_Manager) +static PHP_METHOD(Phalcon_Storage_Adapter_Apcu, getAdapter) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Model\\Transaction, Manager, phalcon, mvc_model_transaction_manager, phalcon_mvc_model_transaction_manager_method_entry, 0); + zval *this_ptr = getThis(); - zend_declare_property_null(phalcon_mvc_model_transaction_manager_ce, SL("container"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_model_transaction_manager_ce, SL("initialized"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_mvc_model_transaction_manager_ce, SL("number"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_model_transaction_manager_ce, SL("rollbackPendent"), 1, ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_mvc_model_transaction_manager_ce, SL("service"), "db", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_model_transaction_manager_ce, SL("transactions"), ZEND_ACC_PROTECTED); - phalcon_mvc_model_transaction_manager_ce->create_object = zephir_init_properties_Phalcon_Mvc_Model_Transaction_Manager; - zend_class_implements(phalcon_mvc_model_transaction_manager_ce, 1, phalcon_mvc_model_transaction_managerinterface_ce); - zend_class_implements(phalcon_mvc_model_transaction_manager_ce, 1, phalcon_di_injectionawareinterface_ce); - return SUCCESS; + + RETURN_MEMBER(getThis(), "adapter"); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, __construct) +static PHP_METHOD(Phalcon_Storage_Adapter_Apcu, getKeys) { + zend_object_iterator *_1; + zval results; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL, *_3 = NULL; - zval *container = NULL, container_sub, __$null, _1$$4, _2$$4, _4$$4; + zval *prefix_param = NULL, item, pattern, apc, _0, _2$$4; + zval prefix; zval *this_ptr = getThis(); - ZVAL_UNDEF(&container_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&prefix); + ZVAL_UNDEF(&item); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&apc); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&results); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(container, phalcon_di_diinterface_ce) + Z_PARAM_STR(prefix) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &container); - if (!container) { - container = &container_sub; - ZEPHIR_CPY_WRT(container, &__$null); + zephir_fetch_params(1, 0, 1, &prefix_param); + if (!prefix_param) { + ZEPHIR_INIT_VAR(&prefix); + ZVAL_STRING(&prefix, ""); } else { - ZEPHIR_SEPARATE_PARAM(container); + if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { + zephir_get_strval(&prefix, prefix_param); + } else { + ZEPHIR_INIT_VAR(&prefix); + } } - if (!(zephir_is_true(container))) { - ZEPHIR_CALL_CE_STATIC(container, phalcon_di_ce, "getdefault", &_0, 0); - zephir_check_call_status(); + ZEPHIR_INIT_VAR(&apc); + ZVAL_NULL(&apc); + zephir_read_property(&_0, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&pattern); + ZEPHIR_CONCAT_SVVS(&pattern, "/^", &_0, &prefix, "/"); + ZEPHIR_INIT_NVAR(&apc); + object_init_ex(&apc, zephir_get_internal_ce(SL("apcuiterator"))); + ZEPHIR_CALL_METHOD(NULL, &apc, "__construct", NULL, 0, &pattern); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&results); + array_init(&results); + if (Z_TYPE_P(&apc) != IS_OBJECT) { + RETURN_CTOR(&results); } - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); - if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_1$$4); - object_init_ex(&_1$$4, phalcon_mvc_model_transaction_exception_ce); - ZEPHIR_INIT_VAR(&_4$$4); - ZVAL_STRING(&_4$$4, "the services related to the ORM"); - ZEPHIR_CALL_CE_STATIC(&_2$$4, phalcon_mvc_model_transaction_exception_ce, "containerservicenotfound", &_3, 0, &_4$$4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_1$$4, "__construct", NULL, 8, &_2$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$4, "phalcon/Mvc/Model/Transaction/Manager.zep", 116); - ZEPHIR_MM_RESTORE(); - return; + _1 = zephir_get_iterator(&apc); + _1->funcs->rewind(_1); + for (;_1->funcs->valid(_1) == SUCCESS && !EG(exception); _1->funcs->move_forward(_1)) { + { + ZEPHIR_ITERATOR_COPY(&item, _1); + } + zephir_array_fetch_string(&_2$$4, &item, SL("key"), PH_NOISY | PH_READONLY, "phalcon/Storage/Adapter/Apcu.zep", 152); + zephir_array_append(&results, &_2$$4, PH_SEPARATE, "phalcon/Storage/Adapter/Apcu.zep", 152); } - ZEPHIR_MM_RESTORE(); + zend_iterator_dtor(_1); + RETURN_CTOR(&results); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, collectTransactions) +static PHP_METHOD(Phalcon_Storage_Adapter_Apcu, has) { - zval transactions, _0, _1, *_2, _3, _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, _0; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&transactions); + ZVAL_UNDEF(&key); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("transactions"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&transactions, &_0); - ZEPHIR_INIT_VAR(&_1); - zephir_is_iterable(&transactions, 0, "phalcon/Mvc/Model/Transaction/Manager.zep", 133); - if (Z_TYPE_P(&transactions) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&transactions), _2) - { - ZEPHIR_INIT_NVAR(&_1); - ZVAL_COPY(&_1, _2); - RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("number"))); - } ZEND_HASH_FOREACH_END(); + zephir_fetch_params(1, 1, 0, &key_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_CALL_METHOD(NULL, &transactions, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3, &transactions, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3)) { - break; - } - ZEPHIR_CALL_METHOD(&_1, &transactions, "current", NULL, 0); - zephir_check_call_status(); - RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("number"))); - ZEPHIR_CALL_METHOD(NULL, &transactions, "next", NULL, 0); - zephir_check_call_status(); - } + ZEPHIR_INIT_VAR(&key); } - ZEPHIR_INIT_NVAR(&_1); - ZEPHIR_INIT_VAR(&_4); - array_init(&_4); - zephir_update_property_zval(this_ptr, ZEND_STRL("transactions"), &_4); - ZEPHIR_MM_RESTORE(); + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getprefixedkey", NULL, 0, &key); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_FUNCTION("apcu_exists", NULL, 122, &_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, commit) +static PHP_METHOD(Phalcon_Storage_Adapter_Apcu, increment) { - zval transactions, transaction, connection, _0, *_1, _2, _3$$3, _4$$5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zend_long value, ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, *value_param = NULL, _0, _1; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&transactions); - ZVAL_UNDEF(&transaction); - ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&key); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(key) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(value) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("transactions"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&transactions, &_0); - zephir_is_iterable(&transactions, 0, "phalcon/Mvc/Model/Transaction/Manager.zep", 152); - if (Z_TYPE_P(&transactions) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&transactions), _1) - { - ZEPHIR_INIT_NVAR(&transaction); - ZVAL_COPY(&transaction, _1); - ZEPHIR_CALL_METHOD(&connection, &transaction, "getconnection", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_3$$3, &connection, "isundertransaction", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_3$$3)) { - ZEPHIR_CALL_METHOD(NULL, &connection, "commit", NULL, 0); - zephir_check_call_status(); - } - } ZEND_HASH_FOREACH_END(); + zephir_fetch_params(1, 1, 1, &key_param, &value_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_CALL_METHOD(NULL, &transactions, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &transactions, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&transaction, &transactions, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&connection, &transaction, "getconnection", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_4$$5, &connection, "isundertransaction", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_4$$5)) { - ZEPHIR_CALL_METHOD(NULL, &connection, "commit", NULL, 0); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, &transactions, "next", NULL, 0); - zephir_check_call_status(); - } + ZEPHIR_INIT_VAR(&key); } - ZEPHIR_INIT_NVAR(&transaction); - ZEPHIR_MM_RESTORE(); + if (!value_param) { + value = 1; + } else { + value = zephir_get_intval(value_param); + } + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getprefixedkey", NULL, 0, &key); + zephir_check_call_status(); + ZVAL_LONG(&_1, value); + ZEPHIR_RETURN_CALL_FUNCTION("apcu_inc", NULL, 123, &_0, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, get) +static PHP_METHOD(Phalcon_Storage_Adapter_Apcu, set) { - zval _2$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *autoBegin_param = NULL, __$true, __$false, _0, _4, _1$$3, _3$$4; - zend_bool autoBegin; + zval *key_param = NULL, *value, value_sub, *ttl = NULL, ttl_sub, __$null, _0, _1, _2; + zval key; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&ttl_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(key) + Z_PARAM_ZVAL(value) Z_PARAM_OPTIONAL - Z_PARAM_BOOL(autoBegin) + Z_PARAM_ZVAL_OR_NULL(ttl) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &autoBegin_param); - if (!autoBegin_param) { - autoBegin = 1; + zephir_fetch_params(1, 2, 1, &key_param, &value, &ttl); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - autoBegin = zephir_get_boolval(autoBegin_param); + ZEPHIR_INIT_VAR(&key); + } + if (!ttl) { + ttl = &ttl_sub; + ttl = &__$null; } - zephir_read_property(&_0, this_ptr, ZEND_STRL("initialized"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("rollbackPendent"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_1$$3)) { - ZEPHIR_INIT_VAR(&_2$$4); - zephir_create_array(&_2$$4, 2, 0); - zephir_array_fast_append(&_2$$4, this_ptr); - ZEPHIR_INIT_VAR(&_3$$4); - ZVAL_STRING(&_3$$4, "rollbackPendent"); - zephir_array_fast_append(&_2$$4, &_3$$4); - ZEPHIR_CALL_FUNCTION(NULL, "register_shutdown_function", NULL, 492, &_2$$4); - zephir_check_call_status(); - } - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("initialized"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("initialized"), &__$false); - } - } - if (autoBegin) { - ZVAL_BOOL(&_4, 1); - } else { - ZVAL_BOOL(&_4, 0); - } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getorcreatetransaction", NULL, 0, &_4); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getprefixedkey", NULL, 0, &key); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getserializeddata", NULL, 0, value); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getttl", NULL, 0, ttl); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_FUNCTION("apcu_store", NULL, 124, &_0, &_1, &_2); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, getDbService) +zend_object *zephir_init_properties_Phalcon_Storage_Adapter_Apcu(zend_class_entry *class_type) { - zval *this_ptr = getThis(); + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} - RETURN_MEMBER(getThis(), "service"); -} -static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, getDI) -{ - zval *this_ptr = getThis(); +#ifdef HAVE_CONFIG_H +#endif - RETURN_MEMBER(getThis(), "container"); + + +ZEPHIR_INIT_CLASS(Phalcon_Storage_Adapter_Libmemcached) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Adapter, Libmemcached, phalcon, storage_adapter_libmemcached, phalcon_storage_adapter_abstractadapter_ce, phalcon_storage_adapter_libmemcached_method_entry, 0); + + zend_declare_property_null(phalcon_storage_adapter_libmemcached_ce, SL("options"), ZEND_ACC_PROTECTED); + phalcon_storage_adapter_libmemcached_ce->create_object = zephir_init_properties_Phalcon_Storage_Adapter_Libmemcached; + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, getOrCreateTransaction) +static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_3 = NULL; - zval *autoBegin_param = NULL, container, transaction, transactions, _0, _10, _11, _1$$3, _2$$3, _4$$3, _5$$4, *_6$$4, _7$$4, _8$$6, _9$$8; - zend_bool autoBegin; + zval options, _0$$3, _1$$3; + zval *factory, factory_sub, *options_param = NULL, _2; zval *this_ptr = getThis(); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&transaction); - ZVAL_UNDEF(&transactions); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&factory_sub); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&_0$$3); ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_8$$6); - ZVAL_UNDEF(&_9$$8); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_storage_serializerfactory_ce) Z_PARAM_OPTIONAL - Z_PARAM_BOOL(autoBegin) + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &autoBegin_param); - if (!autoBegin_param) { - autoBegin = 1; + zephir_fetch_params(1, 1, 1, &factory, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); } else { - autoBegin = zephir_get_boolval(autoBegin_param); + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + if (!(zephir_array_isset_string(&options, SL("servers")))) { + ZEPHIR_INIT_VAR(&_0$$3); + zephir_create_array(&_0$$3, 1, 0); ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_mvc_model_transaction_exception_ce); - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "the services related to the ORM"); - ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_mvc_model_transaction_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model/Transaction/Manager.zep", 214); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("number"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_0)) { - zephir_read_property(&_5$$4, this_ptr, ZEND_STRL("transactions"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&transactions, &_5$$4); - zephir_is_iterable(&transactions, 0, "phalcon/Mvc/Model/Transaction/Manager.zep", 227); - if (Z_TYPE_P(&transactions) == IS_ARRAY) { - ZEND_HASH_REVERSE_FOREACH_VAL(Z_ARRVAL_P(&transactions), _6$$4) - { - ZEPHIR_INIT_NVAR(&transaction); - ZVAL_COPY(&transaction, _6$$4); - if (Z_TYPE_P(&transaction) == IS_OBJECT) { - ZVAL_BOOL(&_8$$6, 0); - ZEPHIR_CALL_METHOD(NULL, &transaction, "setisnewtransaction", NULL, 0, &_8$$6); - zephir_check_call_status(); - RETURN_CCTOR(&transaction); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &transactions, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_7$$4, &transactions, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_7$$4)) { - break; - } - ZEPHIR_CALL_METHOD(&transaction, &transactions, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&transaction) == IS_OBJECT) { - ZVAL_BOOL(&_9$$8, 0); - ZEPHIR_CALL_METHOD(NULL, &transaction, "setisnewtransaction", NULL, 0, &_9$$8); - zephir_check_call_status(); - RETURN_CCTOR(&transaction); - } - ZEPHIR_CALL_METHOD(NULL, &transactions, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&transaction); - } - ZEPHIR_INIT_NVAR(&transaction); - object_init_ex(&transaction, phalcon_mvc_model_transaction_ce); - zephir_read_property(&_10, this_ptr, ZEND_STRL("service"), PH_NOISY_CC | PH_READONLY); - if (autoBegin) { - ZVAL_BOOL(&_11, 1); - } else { - ZVAL_BOOL(&_11, 0); + zephir_create_array(&_1$$3, 3, 0); + add_assoc_stringl_ex(&_1$$3, SL("host"), SL("127.0.0.1")); + add_assoc_long_ex(&_1$$3, SL("port"), 11211); + add_assoc_long_ex(&_1$$3, SL("weight"), 1); + zephir_array_update_long(&_0$$3, 0, &_1$$3, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + zephir_array_update_string(&options, SL("servers"), &_0$$3, PH_COPY | PH_SEPARATE); } - ZEPHIR_CALL_METHOD(NULL, &transaction, "__construct", NULL, 493, &container, &_11, &_10); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &transaction, "settransactionmanager", NULL, 494, this_ptr); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "ph-memc-"); + zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &_2); + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + ZEPHIR_CALL_PARENT(NULL, phalcon_storage_adapter_libmemcached_ce, getThis(), "__construct", &_3, 0, factory, &options); zephir_check_call_status(); - zephir_update_property_array_append(this_ptr, SL("transactions"), &transaction); - RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("number"))); - RETURN_CCTOR(&transaction); -} - -static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, getRollbackPendent) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "rollbackPendent"); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, has) +static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, clear) { zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); + ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("number"), PH_NOISY_CC | PH_READONLY); - RETURN_BOOL(ZEPHIR_GT_LONG(&_0, 0)); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(&_0, "flush", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, notifyCommit) +static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, decrement) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *transaction, transaction_sub; + zend_long value, ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, *value_param = NULL, _0, _1; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&transaction_sub); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(transaction, phalcon_mvc_model_transactioninterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(key) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &transaction); + zephir_fetch_params(1, 1, 1, &key_param, &value_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } + if (!value_param) { + value = 1; + } else { + value = zephir_get_intval(value_param); + } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "collecttransaction", NULL, 0, transaction); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + ZVAL_LONG(&_1, value); + ZEPHIR_RETURN_CALL_METHOD(&_0, "decrement", NULL, 0, &key, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, notifyRollback) +static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, delete) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *transaction, transaction_sub; + zval *key_param = NULL, _0, _1; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&transaction_sub); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(transaction, phalcon_mvc_model_transactioninterface_ce) + Z_PARAM_STR(key) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &transaction); + zephir_fetch_params(1, 1, 0, &key_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "collecttransaction", NULL, 0, transaction); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + ZVAL_LONG(&_1, 0); + ZEPHIR_RETURN_CALL_METHOD(&_0, "delete", NULL, 0, &key, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, rollback) +static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, get) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *collect_param = NULL, transactions, transaction, connection, _0, *_1, _2, _3$$3, _5$$6; - zend_bool collect; + zval *key_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, _0, _1, _2; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&transactions); - ZVAL_UNDEF(&transaction); - ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_5$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(key) Z_PARAM_OPTIONAL - Z_PARAM_BOOL(collect) + Z_PARAM_ZVAL_OR_NULL(defaultValue) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &collect_param); - if (!collect_param) { - collect = 1; + zephir_fetch_params(1, 1, 1, &key_param, &defaultValue); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - collect = zephir_get_boolval(collect_param); + ZEPHIR_INIT_VAR(&key); + } + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; } - zephir_read_property(&_0, this_ptr, ZEND_STRL("transactions"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&transactions, &_0); - zephir_is_iterable(&transactions, 0, "phalcon/Mvc/Model/Transaction/Manager.zep", 298); - if (Z_TYPE_P(&transactions) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&transactions), _1) - { - ZEPHIR_INIT_NVAR(&transaction); - ZVAL_COPY(&transaction, _1); - ZEPHIR_CALL_METHOD(&connection, &transaction, "getconnection", NULL, 0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, &key); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE(&_0)) { + RETVAL_ZVAL(defaultValue, 1, 0); + RETURN_MM(); + } + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getadapter", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_2, &_1, "get", NULL, 0, &key); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getunserializeddata", NULL, 0, &_2); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, getAdapter) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval __$true, client, connection, failover, options, persistentId, sasl, saslPass, saslUser, servers, serverList, _0, _1$$3, _3$$3, _4$$3, _5$$3, _6$$4, _7$$4, _8$$4, _9$$4, _10$$4, _11$$4; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_2 = NULL; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&client); + ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&failover); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&persistentId); + ZVAL_UNDEF(&sasl); + ZVAL_UNDEF(&saslPass); + ZVAL_UNDEF(&saslUser); + ZVAL_UNDEF(&servers); + ZVAL_UNDEF(&serverList); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_8$$4); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&_10$$4); + ZVAL_UNDEF(&_11$$4); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&options, &_1$$3); + ZEPHIR_INIT_VAR(&_3$$3); + ZVAL_STRING(&_3$$3, "persistentId"); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "ph-mcid-"); + ZEPHIR_CALL_CE_STATIC(&persistentId, phalcon_helper_arr_ce, "get", &_2, 16, &options, &_3$$3, &_4$$3); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_3$$3); + array_init(&_3$$3); + ZEPHIR_INIT_NVAR(&_4$$3); + ZVAL_STRING(&_4$$3, "saslAuthData"); + ZEPHIR_CALL_CE_STATIC(&sasl, phalcon_helper_arr_ce, "get", &_2, 16, &options, &_4$$3, &_3$$3); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&connection); + object_init_ex(&connection, zephir_get_internal_ce(SL("memcached"))); + ZEPHIR_CALL_METHOD(NULL, &connection, "__construct", NULL, 0, &persistentId); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&serverList, &connection, "getserverlist", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_5$$3, -1002); + ZEPHIR_CALL_METHOD(NULL, &connection, "setoption", NULL, 0, &_5$$3, &_1$$3); + zephir_check_call_status(); + if (zephir_fast_count_int(&serverList) < 1) { + ZEPHIR_INIT_VAR(&_6$$4); + array_init(&_6$$4); + ZEPHIR_INIT_VAR(&_7$$4); + ZVAL_STRING(&_7$$4, "servers"); + ZEPHIR_CALL_CE_STATIC(&servers, phalcon_helper_arr_ce, "get", &_2, 16, &options, &_7$$4, &_6$$4); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_3$$3, &connection, "isundertransaction", NULL, 0); + ZEPHIR_INIT_NVAR(&_7$$4); + array_init(&_7$$4); + ZEPHIR_INIT_VAR(&_8$$4); + ZVAL_STRING(&_8$$4, "client"); + ZEPHIR_CALL_CE_STATIC(&client, phalcon_helper_arr_ce, "get", &_2, 16, &options, &_8$$4, &_7$$4); zephir_check_call_status(); - if (zephir_is_true(&_3$$3)) { - ZEPHIR_CALL_METHOD(NULL, &connection, "rollback", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &connection, "close", NULL, 0); - zephir_check_call_status(); - } - if (collect) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "collecttransaction", &_4, 0, &transaction); - zephir_check_call_status(); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &transactions, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &transactions, "valid", NULL, 0); + ZEPHIR_INIT_NVAR(&_8$$4); + ZVAL_STRING(&_8$$4, "user"); + ZEPHIR_INIT_VAR(&_9$$4); + ZVAL_STRING(&_9$$4, ""); + ZEPHIR_CALL_CE_STATIC(&saslUser, phalcon_helper_arr_ce, "get", &_2, 16, &sasl, &_8$$4, &_9$$4); zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; + ZEPHIR_INIT_NVAR(&_8$$4); + ZVAL_STRING(&_8$$4, "pass"); + ZEPHIR_INIT_NVAR(&_9$$4); + ZVAL_STRING(&_9$$4, ""); + ZEPHIR_CALL_CE_STATIC(&saslPass, phalcon_helper_arr_ce, "get", &_2, 16, &sasl, &_8$$4, &_9$$4); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&failover); + zephir_create_array(&failover, 5, 0); + add_index_long(&failover, 14, 10); + add_index_long(&failover, 9, 1); + add_index_long(&failover, 21, 2); + zephir_array_update_long(&failover, 35, &__$true, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); + add_index_long(&failover, 15, 1); + ZEPHIR_INIT_NVAR(&_8$$4); + zephir_fast_array_merge(&_8$$4, &failover, &client); + ZEPHIR_CPY_WRT(&client, &_8$$4); + ZEPHIR_CALL_METHOD(&_10$$4, &connection, "setoptions", NULL, 0, &client); + zephir_check_call_status(); + if (!(zephir_is_true(&_10$$4))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_storage_exception_ce, "Cannot set Memcached client options", "phalcon/Storage/Adapter/Libmemcached.zep", 150); + return; } - ZEPHIR_CALL_METHOD(&transaction, &transactions, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&_11$$4, &connection, "addservers", NULL, 0, &servers); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&connection, &transaction, "getconnection", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_5$$6, &connection, "isundertransaction", NULL, 0); + if (!(zephir_is_true(&_11$$4))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_storage_exception_ce, "Cannot connect to the Memcached server(s)", "phalcon/Storage/Adapter/Libmemcached.zep", 154); + return; + } + if (!(ZEPHIR_IS_EMPTY(&saslUser))) { + ZEPHIR_CALL_METHOD(NULL, &connection, "setsaslauthdata", NULL, 0, &saslUser, &saslPass); zephir_check_call_status(); - if (zephir_is_true(&_5$$6)) { - ZEPHIR_CALL_METHOD(NULL, &connection, "rollback", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &connection, "close", NULL, 0); - zephir_check_call_status(); - } - if (collect) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "collecttransaction", &_4, 0, &transaction); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, &transactions, "next", NULL, 0); - zephir_check_call_status(); + } } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setserializer", NULL, 125, &connection); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("adapter"), &connection); } - ZEPHIR_INIT_NVAR(&transaction); - ZEPHIR_MM_RESTORE(); + RETURN_MM_MEMBER(getThis(), "adapter"); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, rollbackPendent) +static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, getKeys) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *prefix_param = NULL, _0, _1; + zval prefix; zval *this_ptr = getThis(); + ZVAL_UNDEF(&prefix); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR(prefix) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &prefix_param); + if (!prefix_param) { + ZEPHIR_INIT_VAR(&prefix); + ZVAL_STRING(&prefix, ""); + } else { + if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { + zephir_get_strval(&prefix, prefix_param); + } else { + ZEPHIR_INIT_VAR(&prefix); + } + } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "rollback", NULL, 0); + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + ZEPHIR_CALL_METHOD(&_1, &_0, "getallkeys", NULL, 0); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getfilteredkeys", NULL, 0, &_1, &prefix); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, setDbService) +static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, has) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *service_param = NULL; - zval service; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, connection, result, _0; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&service); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(service) + Z_PARAM_STR(key) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &service_param); - if (UNEXPECTED(Z_TYPE_P(service_param) != IS_STRING && Z_TYPE_P(service_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'service' must be of the type string")); + zephir_fetch_params(1, 1, 0, &key_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(service_param) == IS_STRING)) { - zephir_get_strval(&service, service_param); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_INIT_VAR(&service); + ZEPHIR_INIT_VAR(&key); } - zephir_update_property_zval(this_ptr, ZEND_STRL("service"), &service); - RETURN_THIS(); + ZEPHIR_CALL_METHOD(&connection, this_ptr, "getadapter", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&result, &connection, "get", NULL, 0, &key); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, &connection, "getresultcode", NULL, 0); + zephir_check_call_status(); + RETURN_MM_BOOL(!ZEPHIR_IS_LONG_IDENTICAL(&_0, 16)); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, setDI) +static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, increment) { - zval *container, container_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long value, ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, *value_param = NULL, _0, _1; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&container_sub); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(key) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(value) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &container); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &key_param, &value_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } + if (!value_param) { + value = 1; + } else { + value = zephir_get_intval(value_param); + } - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); + zephir_check_call_status(); + ZVAL_LONG(&_1, value); + ZEPHIR_RETURN_CALL_METHOD(&_0, "increment", NULL, 0, &key, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, setRollbackPendent) +static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, set) { - zval *rollbackPendent_param = NULL, __$true, __$false; - zend_bool rollbackPendent; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, *value, value_sub, *ttl = NULL, ttl_sub, __$null, _0, _1, _2; + zval key; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&ttl_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(rollbackPendent) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(key) + Z_PARAM_ZVAL(value) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(ttl) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &rollbackPendent_param); - rollbackPendent = zephir_get_boolval(rollbackPendent_param); - - - if (rollbackPendent) { - zephir_update_property_zval(this_ptr, ZEND_STRL("rollbackPendent"), &__$true); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &key_param, &value, &ttl); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("rollbackPendent"), &__$false); + ZEPHIR_INIT_VAR(&key); } - RETURN_THISW(); + if (!ttl) { + ttl = &ttl_sub; + ttl = &__$null; + } + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getserializeddata", NULL, 0, value); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getttl", NULL, 0, ttl); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(&_0, "set", NULL, 0, &key, &_1, &_2); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, collectTransaction) +static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, setSerializer) { - zval newTransactions; + zval map; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *transaction, transaction_sub, managedTransaction, _0, *_1, _2; + zval *connection, connection_sub, serializer, _0, _1$$3, _2$$3, _3$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&transaction_sub); - ZVAL_UNDEF(&managedTransaction); + ZVAL_UNDEF(&connection_sub); + ZVAL_UNDEF(&serializer); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&newTransactions); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&map); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(transaction, phalcon_mvc_model_transactioninterface_ce) + Z_PARAM_OBJECT_OF_CLASS(connection, zephir_get_internal_ce(SL("memcached"))) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &transaction); + zephir_fetch_params(1, 1, 0, &connection); - ZEPHIR_INIT_VAR(&newTransactions); - array_init(&newTransactions); - zephir_read_property(&_0, this_ptr, ZEND_STRL("transactions"), PH_NOISY_CC | PH_READONLY); - zephir_is_iterable(&_0, 0, "phalcon/Mvc/Model/Transaction/Manager.zep", 363); - if (Z_TYPE_P(&_0) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _1) - { - ZEPHIR_INIT_NVAR(&managedTransaction); - ZVAL_COPY(&managedTransaction, _1); - if (!ZEPHIR_IS_EQUAL(&managedTransaction, transaction)) { - zephir_array_append(&newTransactions, transaction, PH_SEPARATE, "phalcon/Mvc/Model/Transaction/Manager.zep", 357); - } else { - RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("number"))); - } - } ZEND_HASH_FOREACH_END(); + ZEPHIR_INIT_VAR(&map); + zephir_create_array(&map, 3, 0); + add_assoc_long_ex(&map, SL("php"), 1); + add_assoc_long_ex(&map, SL("json"), 3); + add_assoc_long_ex(&map, SL("igbinary"), 2); + zephir_read_property(&_0, this_ptr, ZEND_STRL("defaultSerializer"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&serializer); + zephir_fast_strtolower(&serializer, &_0); + if (zephir_array_isset(&map, &serializer)) { + ZEPHIR_INIT_VAR(&_1$$3); + ZEPHIR_INIT_NVAR(&_1$$3); + ZVAL_STRING(&_1$$3, ""); + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultSerializer"), &_1$$3); + zephir_array_fetch(&_2$$3, &map, &serializer, PH_NOISY | PH_READONLY, "phalcon/Storage/Adapter/Libmemcached.zep", 255); + ZVAL_LONG(&_3$$3, -1003); + ZEPHIR_CALL_METHOD(NULL, connection, "setoption", NULL, 0, &_3$$3, &_2$$3); + zephir_check_call_status(); } else { - ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "initserializer", NULL, 0); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &_0, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&managedTransaction, &_0, "current", NULL, 0); - zephir_check_call_status(); - if (!ZEPHIR_IS_EQUAL(&managedTransaction, transaction)) { - zephir_array_append(&newTransactions, transaction, PH_SEPARATE, "phalcon/Mvc/Model/Transaction/Manager.zep", 357); - } else { - RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("number"))); - } - ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); - zephir_check_call_status(); - } } - ZEPHIR_INIT_NVAR(&managedTransaction); - zephir_update_property_zval(this_ptr, ZEND_STRL("transactions"), &newTransactions); ZEPHIR_MM_RESTORE(); } -zend_object *zephir_init_properties_Phalcon_Mvc_Model_Transaction_Manager(zend_class_entry *class_type) +zend_object *zephir_init_properties_Phalcon_Storage_Adapter_Libmemcached(zend_class_entry *class_type) { zval _0, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; @@ -173156,11 +162537,11 @@ zend_object *zephir_init_properties_Phalcon_Mvc_Model_Transaction_Manager(zend_c { zval local_this_ptr, *this_ptr = &local_this_ptr; ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("transactions"), PH_NOISY_CC | PH_READONLY); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); if (Z_TYPE_P(&_0) == IS_NULL) { ZEPHIR_INIT_VAR(&_1$$3); array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("transactions"), &_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); } ZEPHIR_MM_RESTORE(); return Z_OBJ_P(this_ptr); @@ -173177,1173 +162558,1181 @@ zend_object *zephir_init_properties_Phalcon_Mvc_Model_Transaction_Manager(zend_c -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Model_Transaction_ManagerInterface) +ZEPHIR_INIT_CLASS(Phalcon_Storage_Adapter_Memory) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Model\\Transaction, ManagerInterface, phalcon, mvc_model_transaction_managerinterface, phalcon_mvc_model_transaction_managerinterface_method_entry); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Adapter, Memory, phalcon, storage_adapter_memory, phalcon_storage_adapter_abstractadapter_ce, phalcon_storage_adapter_memory_method_entry, 0); + + zend_declare_property_null(phalcon_storage_adapter_memory_ce, SL("data"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_storage_adapter_memory_ce, SL("options"), ZEND_ACC_PROTECTED); + phalcon_storage_adapter_memory_ce->create_object = zephir_init_properties_Phalcon_Storage_Adapter_Memory; return SUCCESS; } -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, collectTransactions); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, commit); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, get); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, getDbService); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, getRollbackPendent); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, has); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, notifyCommit); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, notifyRollback); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, rollback); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, rollbackPendent); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, setDbService); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Model_Transaction_ManagerInterface, setRollbackPendent); - - +static PHP_METHOD(Phalcon_Storage_Adapter_Memory, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_1 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval options; + zval *factory, factory_sub, *options_param = NULL, _0; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&factory_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&options); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_storage_serializerfactory_ce) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &factory, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "ph-memo-"); + zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + ZEPHIR_INIT_NVAR(&_0); + object_init_ex(&_0, phalcon_collection_ce); + ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 22); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &_0); + ZEPHIR_CALL_PARENT(NULL, phalcon_storage_adapter_memory_ce, getThis(), "__construct", &_1, 0, factory, &options); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "initserializer", NULL, 0); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Router_Annotations) +static PHP_METHOD(Phalcon_Storage_Adapter_Memory, clear) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Router, Annotations, phalcon, mvc_router_annotations, phalcon_mvc_router_ce, phalcon_mvc_router_annotations_method_entry, 0); + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); - zend_declare_property_string(phalcon_mvc_router_annotations_ce, SL("actionSuffix"), "Action", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_annotations_ce, SL("actionPreformatCallback"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_mvc_router_annotations_ce, SL("controllerSuffix"), "Controller", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_annotations_ce, SL("handlers"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_mvc_router_annotations_ce, SL("routePrefix"), "", ZEND_ACC_PROTECTED); - phalcon_mvc_router_annotations_ce->create_object = zephir_init_properties_Phalcon_Mvc_Router_Annotations; + ZVAL_UNDEF(&_0); - return SUCCESS; + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "clear", NULL, 0); + zephir_check_call_status(); + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Mvc_Router_Annotations, addModuleResource) +static PHP_METHOD(Phalcon_Storage_Adapter_Memory, decrement) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *module_param = NULL, *handler_param = NULL, *prefix_param = NULL; - zval module, handler, prefix; + zend_long value, ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, *value_param = NULL, current, newValue, prefixedKey, result, _0, _1$$3, _2$$3; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&module); - ZVAL_UNDEF(&handler); - ZVAL_UNDEF(&prefix); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(¤t); + ZVAL_UNDEF(&newValue); + ZVAL_UNDEF(&prefixedKey); + ZVAL_UNDEF(&result); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(module) - Z_PARAM_STR(handler) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(key) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(prefix) + Z_PARAM_LONG(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &module_param, &handler_param, &prefix_param); - if (UNEXPECTED(Z_TYPE_P(module_param) != IS_STRING && Z_TYPE_P(module_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'module' must be of the type string")); + zephir_fetch_params(1, 1, 1, &key_param, &value_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(module_param) == IS_STRING)) { - zephir_get_strval(&module, module_param); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_INIT_VAR(&module); - } - if (UNEXPECTED(Z_TYPE_P(handler_param) != IS_STRING && Z_TYPE_P(handler_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'handler' must be of the type string")); - RETURN_MM_NULL(); + ZEPHIR_INIT_VAR(&key); } - if (EXPECTED(Z_TYPE_P(handler_param) == IS_STRING)) { - zephir_get_strval(&handler, handler_param); + if (!value_param) { + value = 1; } else { - ZEPHIR_INIT_VAR(&handler); + value = zephir_get_intval(value_param); } - if (!prefix_param) { - ZEPHIR_INIT_VAR(&prefix); - } else { - if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); + + + ZEPHIR_CALL_METHOD(&prefixedKey, this_ptr, "getprefixedkey", NULL, 0, &key); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&result, &_0, "has", NULL, 0, &prefixedKey); + zephir_check_call_status(); + if (zephir_is_true(&result)) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(¤t, &_1$$3, "get", NULL, 0, &prefixedKey); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&newValue); + ZVAL_LONG(&newValue, (zephir_get_intval(¤t) - value)); + ZEPHIR_CPY_WRT(&result, &newValue); + zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_2$$3, "set", NULL, 0, &prefixedKey, &newValue); + zephir_check_call_status(); + } + RETURN_CCTOR(&result); +} + +static PHP_METHOD(Phalcon_Storage_Adapter_Memory, delete) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, exists, prefixedKey, _0, _1; + zval key; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&exists); + ZVAL_UNDEF(&prefixedKey); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &key_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { - zephir_get_strval(&prefix, prefix_param); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_INIT_VAR(&prefix); - } + ZEPHIR_INIT_VAR(&key); } - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 3, 0); - zephir_array_fast_append(&_0, &prefix); - zephir_array_fast_append(&_0, &handler); - zephir_array_fast_append(&_0, &module); - zephir_update_property_array_append(this_ptr, SL("handlers"), &_0); - RETURN_THIS(); + ZEPHIR_CALL_METHOD(&prefixedKey, this_ptr, "getprefixedkey", NULL, 0, &key); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&exists, &_0, "has", NULL, 0, &prefixedKey); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_1, "remove", NULL, 0, &prefixedKey); + zephir_check_call_status(); + RETURN_CCTOR(&exists); } -static PHP_METHOD(Phalcon_Mvc_Router_Annotations, addResource) +static PHP_METHOD(Phalcon_Storage_Adapter_Memory, get) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *handler_param = NULL, *prefix_param = NULL; - zval handler, prefix; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, content, prefixedKey, _0, _1; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&handler); - ZVAL_UNDEF(&prefix); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&content); + ZVAL_UNDEF(&prefixedKey); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(handler) + Z_PARAM_STR(key) Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(prefix) + Z_PARAM_ZVAL_OR_NULL(defaultValue) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &handler_param, &prefix_param); - if (UNEXPECTED(Z_TYPE_P(handler_param) != IS_STRING && Z_TYPE_P(handler_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'handler' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(handler_param) == IS_STRING)) { - zephir_get_strval(&handler, handler_param); - } else { - ZEPHIR_INIT_VAR(&handler); - } - if (!prefix_param) { - ZEPHIR_INIT_VAR(&prefix); - } else { - if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); + zephir_fetch_params(1, 1, 1, &key_param, &defaultValue); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { - zephir_get_strval(&prefix, prefix_param); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_INIT_VAR(&prefix); + ZEPHIR_INIT_VAR(&key); } + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; } - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 2, 0); - zephir_array_fast_append(&_0, &prefix); - zephir_array_fast_append(&_0, &handler); - zephir_update_property_array_append(this_ptr, SL("handlers"), &_0); - RETURN_THIS(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, &key); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE(&_0)) { + RETVAL_ZVAL(defaultValue, 1, 0); + RETURN_MM(); + } + ZEPHIR_CALL_METHOD(&prefixedKey, this_ptr, "getprefixedkey", NULL, 0, &key); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&content, &_1, "get", NULL, 0, &prefixedKey); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getunserializeddata", NULL, 0, &content); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Router_Annotations, getResources) +static PHP_METHOD(Phalcon_Storage_Adapter_Memory, getAdapter) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "handlers"); + RETURN_MEMBER(getThis(), "adapter"); } -static PHP_METHOD(Phalcon_Mvc_Router_Annotations, handle) +static PHP_METHOD(Phalcon_Storage_Adapter_Memory, getKeys) { - zend_string *_24$$18, *_45$$41; - zend_ulong _23$$18, _44$$41; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_3 = NULL, *_8 = NULL, *_10 = NULL, *_17 = NULL, *_20 = NULL, *_28 = NULL, *_39 = NULL, *_52 = NULL; - zval *uri_param = NULL, __$null, annotationsService, handlers, controllerSuffix, scope, prefix, route, compiledPattern, container, handler, controllerName, lowerControllerName, namespaceName, moduleName, handlerAnnotations, classAnnotations, annotations, annotation, methodAnnotations, method, collection, _0, _5, *_6, _7, _1$$3, _2$$3, _4$$3, _9$$6, _11$$6, _12$$6, _13$$7, _14$$7, _15$$4, _16$$12, *_18$$15, _19$$15, *_21$$18, _22$$18, _25$$19, *_26$$19, _27$$19, _29$$23, *_30$$23, _31$$23, _32$$29, _33$$29, _34$$29, _35$$30, _36$$30, _37$$27, _38$$35, *_40$$38, _41$$38, *_42$$41, _43$$41, _46$$42, *_47$$42, _48$$42, _49$$46, *_50$$46, _51$$46; - zval uri, sufixed; + zval *prefix_param = NULL, _0, _1; + zval prefix; zval *this_ptr = getThis(); - ZVAL_UNDEF(&uri); - ZVAL_UNDEF(&sufixed); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&annotationsService); - ZVAL_UNDEF(&handlers); - ZVAL_UNDEF(&controllerSuffix); - ZVAL_UNDEF(&scope); ZVAL_UNDEF(&prefix); - ZVAL_UNDEF(&route); - ZVAL_UNDEF(&compiledPattern); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&handler); - ZVAL_UNDEF(&controllerName); - ZVAL_UNDEF(&lowerControllerName); - ZVAL_UNDEF(&namespaceName); - ZVAL_UNDEF(&moduleName); - ZVAL_UNDEF(&handlerAnnotations); - ZVAL_UNDEF(&classAnnotations); - ZVAL_UNDEF(&annotations); - ZVAL_UNDEF(&annotation); - ZVAL_UNDEF(&methodAnnotations); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&collection); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_9$$6); - ZVAL_UNDEF(&_11$$6); - ZVAL_UNDEF(&_12$$6); - ZVAL_UNDEF(&_13$$7); - ZVAL_UNDEF(&_14$$7); - ZVAL_UNDEF(&_15$$4); - ZVAL_UNDEF(&_16$$12); - ZVAL_UNDEF(&_19$$15); - ZVAL_UNDEF(&_22$$18); - ZVAL_UNDEF(&_25$$19); - ZVAL_UNDEF(&_27$$19); - ZVAL_UNDEF(&_29$$23); - ZVAL_UNDEF(&_31$$23); - ZVAL_UNDEF(&_32$$29); - ZVAL_UNDEF(&_33$$29); - ZVAL_UNDEF(&_34$$29); - ZVAL_UNDEF(&_35$$30); - ZVAL_UNDEF(&_36$$30); - ZVAL_UNDEF(&_37$$27); - ZVAL_UNDEF(&_38$$35); - ZVAL_UNDEF(&_41$$38); - ZVAL_UNDEF(&_43$$41); - ZVAL_UNDEF(&_46$$42); - ZVAL_UNDEF(&_48$$42); - ZVAL_UNDEF(&_49$$46); - ZVAL_UNDEF(&_51$$46); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(uri) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR(prefix) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &uri_param); - if (UNEXPECTED(Z_TYPE_P(uri_param) != IS_STRING && Z_TYPE_P(uri_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'uri' must be of the type string")); + zephir_fetch_params(1, 0, 1, &prefix_param); + if (!prefix_param) { + ZEPHIR_INIT_VAR(&prefix); + ZVAL_STRING(&prefix, ""); + } else { + if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(uri_param) == IS_STRING)) { - zephir_get_strval(&uri, uri_param); + if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { + zephir_get_strval(&prefix, prefix_param); } else { - ZEPHIR_INIT_VAR(&uri); + ZEPHIR_INIT_VAR(&prefix); + } } - zephir_read_property(&_0, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_0); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_mvc_router_exception_ce); - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "the 'annotations' service"); - ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_mvc_router_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Router/Annotations.zep", 114); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("handlers"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&handlers, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("controllerSuffix"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&controllerSuffix, &_0); - ZEPHIR_INIT_VAR(&_5); - ZVAL_STRING(&_5, "annotations"); - ZEPHIR_CALL_METHOD(&annotationsService, &container, "getshared", NULL, 0, &_5); + zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "getkeys", NULL, 0); zephir_check_call_status(); - zephir_is_iterable(&handlers, 0, "phalcon/Mvc/Router/Annotations.zep", 249); - if (Z_TYPE_P(&handlers) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&handlers), _6) - { - ZEPHIR_INIT_NVAR(&scope); - ZVAL_COPY(&scope, _6); - if (Z_TYPE_P(&scope) != IS_ARRAY) { - continue; - } - ZEPHIR_OBS_NVAR(&prefix); - zephir_array_fetch_long(&prefix, &scope, 0, PH_NOISY, "phalcon/Mvc/Router/Annotations.zep", 129); - if (!(ZEPHIR_IS_EMPTY(&prefix))) { - ZEPHIR_INIT_NVAR(&route); - object_init_ex(&route, phalcon_mvc_router_route_ce); - ZEPHIR_CALL_METHOD(NULL, &route, "__construct", &_8, 117, &prefix); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_9$$6, &route, "getcompiledpattern", &_10, 495); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_11$$6); - ZVAL_STRING(&_11$$6, "$#"); - ZEPHIR_INIT_NVAR(&_12$$6); - ZVAL_STRING(&_12$$6, "#"); - ZEPHIR_INIT_NVAR(&compiledPattern); - zephir_fast_str_replace(&compiledPattern, &_11$$6, &_12$$6, &_9$$6); - if (zephir_memnstr_str(&compiledPattern, SL("^"), "phalcon/Mvc/Router/Annotations.zep", 146)) { - ZEPHIR_INIT_NVAR(&_13$$7); - ZEPHIR_INIT_NVAR(&_14$$7); - zephir_preg_match(&_14$$7, &compiledPattern, &uri, &_13$$7, 0, 0 , 0 ); - if (!(zephir_is_true(&_14$$7))) { - continue; - } - } else if (!(zephir_start_with(&uri, &prefix, NULL))) { - continue; - } - } - ZEPHIR_OBS_NVAR(&handler); - zephir_array_fetch_long(&handler, &scope, 1, PH_NOISY, "phalcon/Mvc/Router/Annotations.zep", 161); - if (zephir_memnstr_str(&handler, SL("\\"), "phalcon/Mvc/Router/Annotations.zep", 163)) { - ZEPHIR_INIT_NVAR(&controllerName); - zephir_get_class_ns(&controllerName, &handler, 0); - ZEPHIR_INIT_NVAR(&namespaceName); - zephir_get_ns_class(&namespaceName, &handler, 0); - } else { - ZEPHIR_CPY_WRT(&controllerName, &handler); - ZEPHIR_OBS_NVAR(&namespaceName); - zephir_fetch_property(&namespaceName, this_ptr, SL("defaultNamespace"), PH_SILENT_CC); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("routePrefix"), &__$null); - ZEPHIR_OBS_NVAR(&moduleName); - zephir_array_isset_long_fetch(&moduleName, &scope, 2, 0); - ZEPHIR_INIT_NVAR(&_15$$4); - ZEPHIR_CONCAT_VV(&_15$$4, &controllerName, &controllerSuffix); - zephir_get_strval(&sufixed, &_15$$4); - if (Z_TYPE_P(&namespaceName) != IS_NULL) { - ZEPHIR_INIT_NVAR(&_16$$12); - ZEPHIR_CONCAT_VSV(&_16$$12, &namespaceName, "\\", &sufixed); - zephir_get_strval(&sufixed, &_16$$12); - } - ZEPHIR_CALL_METHOD(&handlerAnnotations, &annotationsService, "get", &_17, 0, &sufixed); - zephir_check_call_status(); - if (Z_TYPE_P(&handlerAnnotations) != IS_OBJECT) { - continue; - } - ZEPHIR_CALL_METHOD(&classAnnotations, &handlerAnnotations, "getclassannotations", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&classAnnotations) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&annotations, &classAnnotations, "getannotations", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&annotations) == IS_ARRAY) { - zephir_is_iterable(&annotations, 0, "phalcon/Mvc/Router/Annotations.zep", 217); - if (Z_TYPE_P(&annotations) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&annotations), _18$$15) - { - ZEPHIR_INIT_NVAR(&annotation); - ZVAL_COPY(&annotation, _18$$15); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processcontrollerannotation", &_20, 0, &controllerName, &annotation); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &annotations, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_19$$15, &annotations, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_19$$15)) { - break; - } - ZEPHIR_CALL_METHOD(&annotation, &annotations, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processcontrollerannotation", &_20, 0, &controllerName, &annotation); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &annotations, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&annotation); - } - } - ZEPHIR_CALL_METHOD(&methodAnnotations, &handlerAnnotations, "getmethodsannotations", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&methodAnnotations) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&lowerControllerName); - zephir_uncamelize(&lowerControllerName, &controllerName, NULL ); - zephir_is_iterable(&methodAnnotations, 0, "phalcon/Mvc/Router/Annotations.zep", 243); - if (Z_TYPE_P(&methodAnnotations) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&methodAnnotations), _23$$18, _24$$18, _21$$18) - { - ZEPHIR_INIT_NVAR(&method); - if (_24$$18 != NULL) { - ZVAL_STR_COPY(&method, _24$$18); - } else { - ZVAL_LONG(&method, _23$$18); - } - ZEPHIR_INIT_NVAR(&collection); - ZVAL_COPY(&collection, _21$$18); - if (Z_TYPE_P(&collection) != IS_OBJECT) { - continue; - } - ZEPHIR_CALL_METHOD(&_25$$19, &collection, "getannotations", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&_25$$19, 0, "phalcon/Mvc/Router/Annotations.zep", 242); - if (Z_TYPE_P(&_25$$19) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_25$$19), _26$$19) - { - ZEPHIR_INIT_NVAR(&annotation); - ZVAL_COPY(&annotation, _26$$19); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processactionannotation", &_28, 0, &moduleName, &namespaceName, &lowerControllerName, &method, &annotation); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_25$$19, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_27$$19, &_25$$19, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_27$$19)) { - break; - } - ZEPHIR_CALL_METHOD(&annotation, &_25$$19, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processactionannotation", &_28, 0, &moduleName, &namespaceName, &lowerControllerName, &method, &annotation); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_25$$19, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&annotation); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &methodAnnotations, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_22$$18, &methodAnnotations, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_22$$18)) { - break; - } - ZEPHIR_CALL_METHOD(&method, &methodAnnotations, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&collection, &methodAnnotations, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&collection) != IS_OBJECT) { - continue; - } - ZEPHIR_CALL_METHOD(&_29$$23, &collection, "getannotations", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&_29$$23, 0, "phalcon/Mvc/Router/Annotations.zep", 242); - if (Z_TYPE_P(&_29$$23) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_29$$23), _30$$23) - { - ZEPHIR_INIT_NVAR(&annotation); - ZVAL_COPY(&annotation, _30$$23); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processactionannotation", &_28, 0, &moduleName, &namespaceName, &lowerControllerName, &method, &annotation); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_29$$23, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_31$$23, &_29$$23, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_31$$23)) { - break; - } - ZEPHIR_CALL_METHOD(&annotation, &_29$$23, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processactionannotation", &_28, 0, &moduleName, &namespaceName, &lowerControllerName, &method, &annotation); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_29$$23, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&annotation); - ZEPHIR_CALL_METHOD(NULL, &methodAnnotations, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&collection); - ZEPHIR_INIT_NVAR(&method); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &handlers, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_7, &handlers, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_7)) { - break; - } - ZEPHIR_CALL_METHOD(&scope, &handlers, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&scope) != IS_ARRAY) { - continue; - } - ZEPHIR_OBS_NVAR(&prefix); - zephir_array_fetch_long(&prefix, &scope, 0, PH_NOISY, "phalcon/Mvc/Router/Annotations.zep", 129); - if (!(ZEPHIR_IS_EMPTY(&prefix))) { - ZEPHIR_INIT_NVAR(&route); - object_init_ex(&route, phalcon_mvc_router_route_ce); - ZEPHIR_CALL_METHOD(NULL, &route, "__construct", &_8, 117, &prefix); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_32$$29, &route, "getcompiledpattern", &_10, 495); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_33$$29); - ZVAL_STRING(&_33$$29, "$#"); - ZEPHIR_INIT_NVAR(&_34$$29); - ZVAL_STRING(&_34$$29, "#"); - ZEPHIR_INIT_NVAR(&compiledPattern); - zephir_fast_str_replace(&compiledPattern, &_33$$29, &_34$$29, &_32$$29); - if (zephir_memnstr_str(&compiledPattern, SL("^"), "phalcon/Mvc/Router/Annotations.zep", 146)) { - ZEPHIR_INIT_NVAR(&_35$$30); - ZEPHIR_INIT_NVAR(&_36$$30); - zephir_preg_match(&_36$$30, &compiledPattern, &uri, &_35$$30, 0, 0 , 0 ); - if (!(zephir_is_true(&_36$$30))) { - continue; - } - } else if (!(zephir_start_with(&uri, &prefix, NULL))) { - continue; - } - } - ZEPHIR_OBS_NVAR(&handler); - zephir_array_fetch_long(&handler, &scope, 1, PH_NOISY, "phalcon/Mvc/Router/Annotations.zep", 161); - if (zephir_memnstr_str(&handler, SL("\\"), "phalcon/Mvc/Router/Annotations.zep", 163)) { - ZEPHIR_INIT_NVAR(&controllerName); - zephir_get_class_ns(&controllerName, &handler, 0); - ZEPHIR_INIT_NVAR(&namespaceName); - zephir_get_ns_class(&namespaceName, &handler, 0); - } else { - ZEPHIR_CPY_WRT(&controllerName, &handler); - ZEPHIR_OBS_NVAR(&namespaceName); - zephir_fetch_property(&namespaceName, this_ptr, SL("defaultNamespace"), PH_SILENT_CC); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("routePrefix"), &__$null); - ZEPHIR_OBS_NVAR(&moduleName); - zephir_array_isset_long_fetch(&moduleName, &scope, 2, 0); - ZEPHIR_INIT_NVAR(&_37$$27); - ZEPHIR_CONCAT_VV(&_37$$27, &controllerName, &controllerSuffix); - zephir_get_strval(&sufixed, &_37$$27); - if (Z_TYPE_P(&namespaceName) != IS_NULL) { - ZEPHIR_INIT_NVAR(&_38$$35); - ZEPHIR_CONCAT_VSV(&_38$$35, &namespaceName, "\\", &sufixed); - zephir_get_strval(&sufixed, &_38$$35); - } - ZEPHIR_CALL_METHOD(&handlerAnnotations, &annotationsService, "get", &_39, 0, &sufixed); - zephir_check_call_status(); - if (Z_TYPE_P(&handlerAnnotations) != IS_OBJECT) { - continue; - } - ZEPHIR_CALL_METHOD(&classAnnotations, &handlerAnnotations, "getclassannotations", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&classAnnotations) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&annotations, &classAnnotations, "getannotations", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&annotations) == IS_ARRAY) { - zephir_is_iterable(&annotations, 0, "phalcon/Mvc/Router/Annotations.zep", 217); - if (Z_TYPE_P(&annotations) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&annotations), _40$$38) - { - ZEPHIR_INIT_NVAR(&annotation); - ZVAL_COPY(&annotation, _40$$38); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processcontrollerannotation", &_20, 0, &controllerName, &annotation); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &annotations, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_41$$38, &annotations, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_41$$38)) { - break; - } - ZEPHIR_CALL_METHOD(&annotation, &annotations, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processcontrollerannotation", &_20, 0, &controllerName, &annotation); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &annotations, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&annotation); - } - } - ZEPHIR_CALL_METHOD(&methodAnnotations, &handlerAnnotations, "getmethodsannotations", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&methodAnnotations) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&lowerControllerName); - zephir_uncamelize(&lowerControllerName, &controllerName, NULL ); - zephir_is_iterable(&methodAnnotations, 0, "phalcon/Mvc/Router/Annotations.zep", 243); - if (Z_TYPE_P(&methodAnnotations) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&methodAnnotations), _44$$41, _45$$41, _42$$41) - { - ZEPHIR_INIT_NVAR(&method); - if (_45$$41 != NULL) { - ZVAL_STR_COPY(&method, _45$$41); - } else { - ZVAL_LONG(&method, _44$$41); - } - ZEPHIR_INIT_NVAR(&collection); - ZVAL_COPY(&collection, _42$$41); - if (Z_TYPE_P(&collection) != IS_OBJECT) { - continue; - } - ZEPHIR_CALL_METHOD(&_46$$42, &collection, "getannotations", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&_46$$42, 0, "phalcon/Mvc/Router/Annotations.zep", 242); - if (Z_TYPE_P(&_46$$42) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_46$$42), _47$$42) - { - ZEPHIR_INIT_NVAR(&annotation); - ZVAL_COPY(&annotation, _47$$42); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processactionannotation", &_28, 0, &moduleName, &namespaceName, &lowerControllerName, &method, &annotation); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_46$$42, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_48$$42, &_46$$42, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_48$$42)) { - break; - } - ZEPHIR_CALL_METHOD(&annotation, &_46$$42, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processactionannotation", &_28, 0, &moduleName, &namespaceName, &lowerControllerName, &method, &annotation); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_46$$42, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&annotation); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &methodAnnotations, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_43$$41, &methodAnnotations, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_43$$41)) { - break; - } - ZEPHIR_CALL_METHOD(&method, &methodAnnotations, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&collection, &methodAnnotations, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&collection) != IS_OBJECT) { - continue; - } - ZEPHIR_CALL_METHOD(&_49$$46, &collection, "getannotations", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&_49$$46, 0, "phalcon/Mvc/Router/Annotations.zep", 242); - if (Z_TYPE_P(&_49$$46) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_49$$46), _50$$46) - { - ZEPHIR_INIT_NVAR(&annotation); - ZVAL_COPY(&annotation, _50$$46); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processactionannotation", &_28, 0, &moduleName, &namespaceName, &lowerControllerName, &method, &annotation); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_49$$46, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_51$$46, &_49$$46, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_51$$46)) { - break; - } - ZEPHIR_CALL_METHOD(&annotation, &_49$$46, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "processactionannotation", &_28, 0, &moduleName, &namespaceName, &lowerControllerName, &method, &annotation); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_49$$46, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&annotation); - ZEPHIR_CALL_METHOD(NULL, &methodAnnotations, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&collection); - ZEPHIR_INIT_NVAR(&method); - } - ZEPHIR_CALL_METHOD(NULL, &handlers, "next", NULL, 0); - zephir_check_call_status(); - } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getfilteredkeys", NULL, 0, &_1, &prefix); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Storage_Adapter_Memory, has) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, prefixedKey, _0; + zval key; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&prefixedKey); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &key_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); } - ZEPHIR_INIT_NVAR(&scope); - ZEPHIR_CALL_PARENT(NULL, phalcon_mvc_router_annotations_ce, getThis(), "handle", &_52, 0, &uri); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } + + + ZEPHIR_CALL_METHOD(&prefixedKey, this_ptr, "getprefixedkey", NULL, 0, &key); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "has", NULL, 0, &prefixedKey); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Router_Annotations, processActionAnnotation) +static PHP_METHOD(Phalcon_Storage_Adapter_Memory, increment) { - zend_string *_12$$18, *_18$$21; - zend_ulong _11$$18, _17$$21; - zend_bool isRoute = 0, _8, _21; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_13 = NULL, *_14 = NULL, *_19 = NULL, *_20 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *module_param = NULL, *namespaceName_param = NULL, *controller_param = NULL, *action_param = NULL, *annotation, annotation_sub, name, proxyActionName, actionName, routePrefix, paths, value, uri, route, methods, converts, param, convert, converterParam, routeName, beforeMatch, _0, _1, _2, _5, _6, _3$$6, _4$$6, _7$$16, *_9$$18, _10$$18, *_15$$21, _16$$21; - zval module, namespaceName, controller, action; + zend_long value, ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, *value_param = NULL, current, newValue, prefixedKey, result, _0, _1$$3, _2$$3; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&module); - ZVAL_UNDEF(&namespaceName); - ZVAL_UNDEF(&controller); - ZVAL_UNDEF(&action); - ZVAL_UNDEF(&annotation_sub); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&proxyActionName); - ZVAL_UNDEF(&actionName); - ZVAL_UNDEF(&routePrefix); - ZVAL_UNDEF(&paths); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&uri); - ZVAL_UNDEF(&route); - ZVAL_UNDEF(&methods); - ZVAL_UNDEF(&converts); - ZVAL_UNDEF(¶m); - ZVAL_UNDEF(&convert); - ZVAL_UNDEF(&converterParam); - ZVAL_UNDEF(&routeName); - ZVAL_UNDEF(&beforeMatch); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(¤t); + ZVAL_UNDEF(&newValue); + ZVAL_UNDEF(&prefixedKey); + ZVAL_UNDEF(&result); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&_4$$6); - ZVAL_UNDEF(&_7$$16); - ZVAL_UNDEF(&_10$$18); - ZVAL_UNDEF(&_16$$21); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(5, 5) - Z_PARAM_STR(module) - Z_PARAM_STR(namespaceName) - Z_PARAM_STR(controller) - Z_PARAM_STR(action) - Z_PARAM_OBJECT_OF_CLASS(annotation, phalcon_annotations_annotation_ce) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(key) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 5, 0, &module_param, &namespaceName_param, &controller_param, &action_param, &annotation); - if (UNEXPECTED(Z_TYPE_P(module_param) != IS_STRING && Z_TYPE_P(module_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'module' must be of the type string")); + zephir_fetch_params(1, 1, 1, &key_param, &value_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(module_param) == IS_STRING)) { - zephir_get_strval(&module, module_param); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_INIT_VAR(&module); + ZEPHIR_INIT_VAR(&key); } - if (UNEXPECTED(Z_TYPE_P(namespaceName_param) != IS_STRING && Z_TYPE_P(namespaceName_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'namespaceName' must be of the type string")); + if (!value_param) { + value = 1; + } else { + value = zephir_get_intval(value_param); + } + + + ZEPHIR_CALL_METHOD(&prefixedKey, this_ptr, "getprefixedkey", NULL, 0, &key); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&result, &_0, "has", NULL, 0, &prefixedKey); + zephir_check_call_status(); + if (zephir_is_true(&result)) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(¤t, &_1$$3, "get", NULL, 0, &prefixedKey); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&newValue); + ZVAL_LONG(&newValue, (zephir_get_intval(¤t) + value)); + ZEPHIR_CPY_WRT(&result, &newValue); + zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_2$$3, "set", NULL, 0, &prefixedKey, &newValue); + zephir_check_call_status(); + } + RETURN_CCTOR(&result); +} + +static PHP_METHOD(Phalcon_Storage_Adapter_Memory, set) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, *value, value_sub, *ttl = NULL, ttl_sub, __$null, content, lifetime, prefixedKey, _0; + zval key; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&ttl_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&content); + ZVAL_UNDEF(&lifetime); + ZVAL_UNDEF(&prefixedKey); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(key) + Z_PARAM_ZVAL(value) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(ttl) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &key_param, &value, &ttl); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(namespaceName_param) == IS_STRING)) { - zephir_get_strval(&namespaceName, namespaceName_param); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_INIT_VAR(&namespaceName); + ZEPHIR_INIT_VAR(&key); } - if (UNEXPECTED(Z_TYPE_P(controller_param) != IS_STRING && Z_TYPE_P(controller_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'controller' must be of the type string")); - RETURN_MM_NULL(); + if (!ttl) { + ttl = &ttl_sub; + ttl = &__$null; } - if (EXPECTED(Z_TYPE_P(controller_param) == IS_STRING)) { - zephir_get_strval(&controller, controller_param); + + + ZEPHIR_CALL_METHOD(&content, this_ptr, "getserializeddata", NULL, 0, value); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&lifetime, this_ptr, "getttl", NULL, 0, ttl); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&prefixedKey, this_ptr, "getprefixedkey", NULL, 0, &key); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "set", NULL, 0, &prefixedKey, &content); + zephir_check_call_status(); + RETURN_MM_BOOL(1); +} + +zend_object *zephir_init_properties_Phalcon_Storage_Adapter_Memory(zend_class_entry *class_type) +{ + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Storage_Adapter_Redis) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Adapter, Redis, phalcon, storage_adapter_redis, phalcon_storage_adapter_abstractadapter_ce, phalcon_storage_adapter_redis_method_entry, 0); + + zend_declare_property_null(phalcon_storage_adapter_redis_ce, SL("options"), ZEND_ACC_PROTECTED); + phalcon_storage_adapter_redis_ce->create_object = zephir_init_properties_Phalcon_Storage_Adapter_Redis; + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Storage_Adapter_Redis, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_1 = NULL, *_14 = NULL; + zval options; + zval *factory, factory_sub, *options_param = NULL, _0, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&factory_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_13); + ZVAL_UNDEF(&options); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_storage_serializerfactory_ce) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &factory, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); } else { - ZEPHIR_INIT_VAR(&controller); + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); } - if (UNEXPECTED(Z_TYPE_P(action_param) != IS_STRING && Z_TYPE_P(action_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'action' must be of the type string")); + + + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "host"); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "127.0.0.1"); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "string"); + ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("host"), &_0, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "port"); + ZVAL_LONG(&_6, 6379); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "int"); + ZEPHIR_CALL_CE_STATIC(&_5, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_6, &_3); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("port"), &_5, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "index"); + ZVAL_LONG(&_6, 0); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "int"); + ZEPHIR_CALL_CE_STATIC(&_7, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_6, &_3); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("index"), &_7, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "persistent"); + ZVAL_BOOL(&_6, 0); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "bool"); + ZEPHIR_CALL_CE_STATIC(&_8, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_6, &_3); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("persistent"), &_8, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "auth"); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, ""); + ZEPHIR_INIT_NVAR(&_4); + ZVAL_STRING(&_4, "string"); + ZEPHIR_CALL_CE_STATIC(&_9, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("auth"), &_9, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "socket"); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, ""); + ZEPHIR_INIT_NVAR(&_4); + ZVAL_STRING(&_4, "string"); + ZEPHIR_CALL_CE_STATIC(&_10, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3, &_4); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("socket"), &_10, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "connectionTimeout"); + ZVAL_LONG(&_6, 0); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "int"); + ZEPHIR_CALL_CE_STATIC(&_11, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_6, &_3); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("connectionTimeout"), &_11, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "retryInterval"); + ZVAL_NULL(&_6); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "int"); + ZEPHIR_CALL_CE_STATIC(&_12, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_6, &_3); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("retryInterval"), &_12, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "readTimeout"); + ZVAL_LONG(&_6, 0); + ZEPHIR_INIT_NVAR(&_3); + ZVAL_STRING(&_3, "int"); + ZEPHIR_CALL_CE_STATIC(&_13, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_6, &_3); + zephir_check_call_status(); + zephir_array_update_string(&options, SL("readTimeout"), &_13, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "ph-reds-"); + zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &_2); + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + ZEPHIR_CALL_PARENT(NULL, phalcon_storage_adapter_redis_ce, getThis(), "__construct", &_14, 0, factory, &options); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Storage_Adapter_Redis, clear) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(&_0, "flushdb", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Storage_Adapter_Redis, decrement) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long value, ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, *value_param = NULL, _0, _1; + zval key; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(key) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(value) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &key_param, &value_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(action_param) == IS_STRING)) { - zephir_get_strval(&action, action_param); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_INIT_VAR(&action); + ZEPHIR_INIT_VAR(&key); + } + if (!value_param) { + value = 1; + } else { + value = zephir_get_intval(value_param); } - isRoute = 0; - ZEPHIR_INIT_VAR(&methods); - ZVAL_NULL(&methods); - ZEPHIR_CALL_METHOD(&name, annotation, "getname", NULL, 0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); zephir_check_call_status(); - do { - if (ZEPHIR_IS_STRING(&name, "Route")) { - isRoute = 1; - break; - } - if (ZEPHIR_IS_STRING(&name, "Get") || ZEPHIR_IS_STRING(&name, "Post") || ZEPHIR_IS_STRING(&name, "Put") || ZEPHIR_IS_STRING(&name, "Patch") || ZEPHIR_IS_STRING(&name, "Delete") || ZEPHIR_IS_STRING(&name, "Options")) { - isRoute = 1; - ZEPHIR_INIT_NVAR(&methods); - zephir_fast_strtoupper(&methods, &name); - break; - } - } while(0); + ZVAL_LONG(&_1, value); + ZEPHIR_RETURN_CALL_METHOD(&_0, "decrby", NULL, 0, &key, &_1); + zephir_check_call_status(); + RETURN_MM(); +} - if (!(isRoute)) { +static PHP_METHOD(Phalcon_Storage_Adapter_Redis, delete) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, _0, _1; + zval key; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &key_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("actionSuffix"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, ""); - ZEPHIR_INIT_VAR(&proxyActionName); - zephir_fast_str_replace(&proxyActionName, &_0, &_1, &action); - zephir_read_property(&_2, this_ptr, ZEND_STRL("routePrefix"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&routePrefix, &_2); - zephir_read_property(&_2, this_ptr, ZEND_STRL("actionPreformatCallback"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) != IS_NULL) { - zephir_read_property(&_3$$6, this_ptr, ZEND_STRL("actionPreformatCallback"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&_4$$6, "call_user_func", NULL, 255, &_3$$6, &proxyActionName); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&proxyActionName, &_4$$6); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); } - ZEPHIR_INIT_VAR(&actionName); - zephir_fast_strtolower(&actionName, &proxyActionName); - ZEPHIR_INIT_VAR(&_5); - ZVAL_STRING(&_5, "paths"); - ZEPHIR_CALL_METHOD(&paths, annotation, "getnamedargument", NULL, 0, &_5); + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); zephir_check_call_status(); - if (Z_TYPE_P(&paths) != IS_ARRAY) { - ZEPHIR_INIT_NVAR(&paths); - array_init(&paths); + ZEPHIR_CALL_METHOD(&_1, &_0, "del", NULL, 0, &key); + zephir_check_call_status(); + RETURN_MM_BOOL(zephir_get_boolval(&_1)); +} + +static PHP_METHOD(Phalcon_Storage_Adapter_Redis, get) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, _0, _1, _2; + zval key; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(key) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(defaultValue) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &key_param, &defaultValue); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); } - if (!(ZEPHIR_IS_EMPTY(&module))) { - zephir_array_update_string(&paths, SL("module"), &module, PH_COPY | PH_SEPARATE); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); } - if (!(ZEPHIR_IS_EMPTY(&namespaceName))) { - zephir_array_update_string(&paths, SL("namespace"), &namespaceName, PH_COPY | PH_SEPARATE); + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; } - zephir_array_update_string(&paths, SL("controller"), &controller, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&paths, SL("action"), &actionName, PH_COPY | PH_SEPARATE); - ZVAL_LONG(&_6, 0); - ZEPHIR_CALL_METHOD(&value, annotation, "getargument", NULL, 0, &_6); + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, &key); zephir_check_call_status(); - if (Z_TYPE_P(&value) != IS_NULL) { - if (!ZEPHIR_IS_STRING(&value, "/")) { - ZEPHIR_INIT_VAR(&uri); - ZEPHIR_CONCAT_VV(&uri, &routePrefix, &value); - } else { - if (Z_TYPE_P(&routePrefix) != IS_NULL) { - ZEPHIR_CPY_WRT(&uri, &routePrefix); - } else { - ZEPHIR_CPY_WRT(&uri, &value); - } - } - } else { - ZEPHIR_INIT_NVAR(&uri); - ZEPHIR_CONCAT_VV(&uri, &routePrefix, &actionName); + if (ZEPHIR_IS_FALSE(&_0)) { + RETVAL_ZVAL(defaultValue, 1, 0); + RETURN_MM(); } - ZEPHIR_CALL_METHOD(&route, this_ptr, "add", NULL, 0, &uri, &paths); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getadapter", NULL, 0); zephir_check_call_status(); - if (Z_TYPE_P(&methods) == IS_NULL) { - ZEPHIR_INIT_VAR(&_7$$16); - ZVAL_STRING(&_7$$16, "methods"); - ZEPHIR_CALL_METHOD(&methods, annotation, "getnamedargument", NULL, 0, &_7$$16); - zephir_check_call_status(); - } - _8 = Z_TYPE_P(&methods) == IS_ARRAY; - if (!(_8)) { - _8 = Z_TYPE_P(&methods) == IS_STRING; - } - if (_8) { - ZEPHIR_CALL_METHOD(NULL, &route, "via", NULL, 0, &methods); - zephir_check_call_status(); - } - ZEPHIR_INIT_NVAR(&_5); - ZVAL_STRING(&_5, "converts"); - ZEPHIR_CALL_METHOD(&converts, annotation, "getnamedargument", NULL, 0, &_5); + ZEPHIR_CALL_METHOD(&_2, &_1, "get", NULL, 0, &key); zephir_check_call_status(); - if (Z_TYPE_P(&converts) == IS_ARRAY) { - zephir_is_iterable(&converts, 0, "phalcon/Mvc/Router/Annotations.zep", 372); - if (Z_TYPE_P(&converts) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&converts), _11$$18, _12$$18, _9$$18) - { - ZEPHIR_INIT_NVAR(¶m); - if (_12$$18 != NULL) { - ZVAL_STR_COPY(¶m, _12$$18); - } else { - ZVAL_LONG(¶m, _11$$18); - } - ZEPHIR_INIT_NVAR(&convert); - ZVAL_COPY(&convert, _9$$18); - ZEPHIR_CALL_METHOD(NULL, &route, "convert", &_13, 0, ¶m, &convert); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getunserializeddata", NULL, 0, &_2); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Storage_Adapter_Redis, getAdapter) +{ + zend_bool _4$$3, _6$$3; + zval auth, connection, connectionTimeout, host, index, options, port, readTimeout, reserved, result, retryInterval, persistent, persistentid, _0, _1$$3, _5$$3, _7$$3, _8$$3, _2$$6, _3$$6; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&auth); + ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&connectionTimeout); + ZVAL_UNDEF(&host); + ZVAL_UNDEF(&index); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&port); + ZVAL_UNDEF(&readTimeout); + ZVAL_UNDEF(&reserved); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&retryInterval); + ZVAL_UNDEF(&persistent); + ZVAL_UNDEF(&persistentid); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_8$$3); + ZVAL_UNDEF(&_2$$6); + ZVAL_UNDEF(&_3$$6); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&options, &_1$$3); + ZEPHIR_INIT_VAR(&connection); + object_init_ex(&connection, zephir_get_internal_ce(SL("redis"))); + ZEPHIR_CALL_METHOD(NULL, &connection, "__construct", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&auth); + zephir_array_fetch_string(&auth, &options, SL("auth"), PH_NOISY, "phalcon/Storage/Adapter/Redis.zep", 140); + ZEPHIR_OBS_VAR(&index); + zephir_array_fetch_string(&index, &options, SL("index"), PH_NOISY, "phalcon/Storage/Adapter/Redis.zep", 141); + ZEPHIR_OBS_VAR(&persistent); + zephir_array_fetch_string(&persistent, &options, SL("persistent"), PH_NOISY, "phalcon/Storage/Adapter/Redis.zep", 142); + ZEPHIR_OBS_VAR(&host); + zephir_array_fetch_string(&host, &options, SL("host"), PH_NOISY, "phalcon/Storage/Adapter/Redis.zep", 143); + ZEPHIR_OBS_VAR(&port); + zephir_array_fetch_string(&port, &options, SL("port"), PH_NOISY, "phalcon/Storage/Adapter/Redis.zep", 144); + ZEPHIR_OBS_VAR(&connectionTimeout); + zephir_array_fetch_string(&connectionTimeout, &options, SL("connectionTimeout"), PH_NOISY, "phalcon/Storage/Adapter/Redis.zep", 145); + ZEPHIR_OBS_VAR(&retryInterval); + zephir_array_fetch_string(&retryInterval, &options, SL("retryInterval"), PH_NOISY, "phalcon/Storage/Adapter/Redis.zep", 146); + ZEPHIR_OBS_VAR(&readTimeout); + zephir_array_fetch_string(&readTimeout, &options, SL("readTimeout"), PH_NOISY, "phalcon/Storage/Adapter/Redis.zep", 147); + ZEPHIR_INIT_VAR(&reserved); + ZVAL_NULL(&reserved); + if (!(zephir_is_true(&persistent))) { + ZEPHIR_CALL_METHOD(&result, &connection, "connect", NULL, 0, &host, &port, &connectionTimeout, &reserved, &retryInterval, &readTimeout); + zephir_check_call_status(); } else { - ZEPHIR_CALL_METHOD(NULL, &converts, "rewind", NULL, 0); + ZEPHIR_INIT_VAR(&persistentid); + ZEPHIR_CONCAT_SV(&persistentid, "persistentid_", &index); + ZEPHIR_CALL_METHOD(&result, &connection, "pconnect", NULL, 0, &host, &port, &connectionTimeout, &persistentid, &retryInterval, &readTimeout); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_10$$18, &converts, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_10$$18)) { - break; - } - ZEPHIR_CALL_METHOD(¶m, &converts, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&convert, &converts, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &route, "convert", &_14, 0, ¶m, &convert); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &converts, "next", NULL, 0); - zephir_check_call_status(); - } } - ZEPHIR_INIT_NVAR(&convert); - ZEPHIR_INIT_NVAR(¶m); - } - ZEPHIR_INIT_NVAR(&_5); - ZVAL_STRING(&_5, "converters"); - ZEPHIR_CALL_METHOD(&converts, annotation, "getnamedargument", NULL, 0, &_5); - zephir_check_call_status(); - if (Z_TYPE_P(&converts) == IS_ARRAY) { - zephir_is_iterable(&converts, 0, "phalcon/Mvc/Router/Annotations.zep", 383); - if (Z_TYPE_P(&converts) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&converts), _17$$21, _18$$21, _15$$21) - { - ZEPHIR_INIT_NVAR(&converterParam); - if (_18$$21 != NULL) { - ZVAL_STR_COPY(&converterParam, _18$$21); - } else { - ZVAL_LONG(&converterParam, _17$$21); - } - ZEPHIR_INIT_NVAR(&convert); - ZVAL_COPY(&convert, _15$$21); - ZEPHIR_CALL_METHOD(NULL, &route, "convert", &_19, 0, &converterParam, &convert); - zephir_check_call_status(); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &converts, "rewind", NULL, 0); + if (!(zephir_is_true(&result))) { + ZEPHIR_INIT_VAR(&_2$$6); + object_init_ex(&_2$$6, phalcon_storage_exception_ce); + ZEPHIR_INIT_VAR(&_3$$6); + ZEPHIR_CONCAT_SVSVS(&_3$$6, "Could not connect to the Redisd server [", &host, ":", &port, "]"); + ZEPHIR_CALL_METHOD(NULL, &_2$$6, "__construct", NULL, 8, &_3$$6); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_16$$21, &converts, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_16$$21)) { - break; - } - ZEPHIR_CALL_METHOD(&converterParam, &converts, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&convert, &converts, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &route, "convert", &_20, 0, &converterParam, &convert); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &converts, "next", NULL, 0); - zephir_check_call_status(); - } + zephir_throw_exception_debug(&_2$$6, "phalcon/Storage/Adapter/Redis.zep", 175); + ZEPHIR_MM_RESTORE(); + return; } - ZEPHIR_INIT_NVAR(&convert); - ZEPHIR_INIT_NVAR(&converterParam); - } - ZEPHIR_INIT_NVAR(&_5); - ZVAL_STRING(&_5, "beforeMatch"); - ZEPHIR_CALL_METHOD(&beforeMatch, annotation, "getnamedargument", NULL, 0, &_5); - zephir_check_call_status(); - _21 = Z_TYPE_P(&beforeMatch) == IS_ARRAY; - if (!(_21)) { - _21 = Z_TYPE_P(&beforeMatch) == IS_STRING; - } - if (_21) { - ZEPHIR_CALL_METHOD(NULL, &route, "beforematch", NULL, 0, &beforeMatch); + _4$$3 = !(ZEPHIR_IS_EMPTY(&auth)); + if (_4$$3) { + ZEPHIR_CALL_METHOD(&_5$$3, &connection, "auth", NULL, 0, &auth); + zephir_check_call_status(); + _4$$3 = !zephir_is_true(&_5$$3); + } + if (_4$$3) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_storage_exception_ce, "Failed to authenticate with the Redis server", "phalcon/Storage/Adapter/Redis.zep", 179); + return; + } + _6$$3 = ZEPHIR_GT_LONG(&index, 0); + if (_6$$3) { + ZEPHIR_CALL_METHOD(&_7$$3, &connection, "select", NULL, 0, &index); + zephir_check_call_status(); + _6$$3 = !zephir_is_true(&_7$$3); + } + if (_6$$3) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_storage_exception_ce, "Redis server selected database failed", "phalcon/Storage/Adapter/Redis.zep", 183); + return; + } + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_8$$3, 2); + ZEPHIR_CALL_METHOD(NULL, &connection, "setoption", NULL, 0, &_8$$3, &_1$$3); zephir_check_call_status(); - } - ZEPHIR_INIT_NVAR(&_5); - ZVAL_STRING(&_5, "name"); - ZEPHIR_CALL_METHOD(&routeName, annotation, "getnamedargument", NULL, 0, &_5); - zephir_check_call_status(); - if (Z_TYPE_P(&routeName) == IS_STRING) { - ZEPHIR_CALL_METHOD(NULL, &route, "setname", NULL, 0, &routeName); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setserializer", NULL, 126, &connection); zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("adapter"), &connection); } - ZEPHIR_MM_RESTORE(); + RETURN_MM_MEMBER(getThis(), "adapter"); } -static PHP_METHOD(Phalcon_Mvc_Router_Annotations, processControllerAnnotation) +static PHP_METHOD(Phalcon_Storage_Adapter_Redis, getKeys) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *handler_param = NULL, *annotation, annotation_sub, _0, _1$$3, _2$$3; - zval handler; + zval *prefix_param = NULL, _0, _1, _2; + zval prefix; zval *this_ptr = getThis(); - ZVAL_UNDEF(&handler); - ZVAL_UNDEF(&annotation_sub); + ZVAL_UNDEF(&prefix); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(handler) - Z_PARAM_OBJECT_OF_CLASS(annotation, phalcon_annotations_annotation_ce) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR(prefix) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &handler_param, &annotation); - if (UNEXPECTED(Z_TYPE_P(handler_param) != IS_STRING && Z_TYPE_P(handler_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'handler' must be of the type string")); + zephir_fetch_params(1, 0, 1, &prefix_param); + if (!prefix_param) { + ZEPHIR_INIT_VAR(&prefix); + ZVAL_STRING(&prefix, ""); + } else { + if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(handler_param) == IS_STRING)) { - zephir_get_strval(&handler, handler_param); + if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { + zephir_get_strval(&prefix, prefix_param); } else { - ZEPHIR_INIT_VAR(&handler); + ZEPHIR_INIT_VAR(&prefix); + } } - ZEPHIR_CALL_METHOD(&_0, annotation, "getname", NULL, 0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); zephir_check_call_status(); - if (ZEPHIR_IS_STRING(&_0, "RoutePrefix")) { - ZVAL_LONG(&_2$$3, 0); - ZEPHIR_CALL_METHOD(&_1$$3, annotation, "getargument", NULL, 0, &_2$$3); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("routePrefix"), &_1$$3); - } - ZEPHIR_MM_RESTORE(); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "*"); + ZEPHIR_CALL_METHOD(&_1, &_0, "keys", NULL, 0, &_2); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getfilteredkeys", NULL, 0, &_1, &prefix); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Router_Annotations, setActionSuffix) +static PHP_METHOD(Phalcon_Storage_Adapter_Redis, has) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *actionSuffix_param = NULL; - zval actionSuffix; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, _0, _1; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&actionSuffix); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(actionSuffix) + Z_PARAM_STR(key) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &actionSuffix_param); - if (UNEXPECTED(Z_TYPE_P(actionSuffix_param) != IS_STRING && Z_TYPE_P(actionSuffix_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'actionSuffix' must be of the type string")); + zephir_fetch_params(1, 1, 0, &key_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(actionSuffix_param) == IS_STRING)) { - zephir_get_strval(&actionSuffix, actionSuffix_param); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_INIT_VAR(&actionSuffix); + ZEPHIR_INIT_VAR(&key); } - zephir_update_property_zval(this_ptr, ZEND_STRL("actionSuffix"), &actionSuffix); - ZEPHIR_MM_RESTORE(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1, &_0, "exists", NULL, 0, &key); + zephir_check_call_status(); + RETURN_MM_BOOL(zephir_get_boolval(&_1)); } -static PHP_METHOD(Phalcon_Mvc_Router_Annotations, setActionPreformatCallback) +static PHP_METHOD(Phalcon_Storage_Adapter_Redis, increment) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *callback = NULL, callback_sub, __$null, _0$$4; + zend_long value, ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, *value_param = NULL, _0, _1; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&callback_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0$$4); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(key) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(callback) + Z_PARAM_LONG(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &callback); - if (!callback) { - callback = &callback_sub; - callback = &__$null; + zephir_fetch_params(1, 1, 1, &key_param, &value_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); } - - - if (EXPECTED(zephir_is_callable(callback))) { - zephir_update_property_zval(this_ptr, ZEND_STRL("actionPreformatCallback"), callback); - } else if (Z_TYPE_P(callback) == IS_NULL) { - ZEPHIR_INIT_VAR(&_0$$4); - ZEPHIR_INIT_NVAR(&_0$$4); - zephir_create_closure_ex(&_0$$4, NULL, phalcon_9__closure_ce, SL("__invoke")); - zephir_update_property_zval(this_ptr, ZEND_STRL("actionPreformatCallback"), &_0$$4); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_router_exception_ce, "The 'callback' parameter must be either a callable or NULL.", "phalcon/Mvc/Router/Annotations.zep", 455); - return; + ZEPHIR_INIT_VAR(&key); } - ZEPHIR_MM_RESTORE(); + if (!value_param) { + value = 1; + } else { + value = zephir_get_intval(value_param); + } + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); + zephir_check_call_status(); + ZVAL_LONG(&_1, value); + ZEPHIR_RETURN_CALL_METHOD(&_0, "incrby", NULL, 0, &key, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Router_Annotations, getActionPreformatCallback) +static PHP_METHOD(Phalcon_Storage_Adapter_Redis, set) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, *value, value_sub, *ttl = NULL, ttl_sub, __$null, _0, _1, _2; + zval key; zval *this_ptr = getThis(); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&ttl_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(key) + Z_PARAM_ZVAL(value) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(ttl) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "actionPreformatCallback"); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &key_param, &value, &ttl); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } + if (!ttl) { + ttl = &ttl_sub; + ttl = &__$null; + } + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getserializeddata", NULL, 0, value); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getttl", NULL, 0, ttl); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(&_0, "set", NULL, 0, &key, &_1, &_2); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Router_Annotations, setControllerSuffix) +static PHP_METHOD(Phalcon_Storage_Adapter_Redis, setSerializer) { + zval map; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *controllerSuffix_param = NULL; - zval controllerSuffix; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *connection, connection_sub, serializer, _0, _1, _4, _7, _2$$3, _3$$3, _5$$4, _6$$4, _8$$5, _9$$5, _10$$5; zval *this_ptr = getThis(); - ZVAL_UNDEF(&controllerSuffix); + ZVAL_UNDEF(&connection_sub); + ZVAL_UNDEF(&serializer); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&map); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(controllerSuffix) + Z_PARAM_OBJECT_OF_CLASS(connection, zephir_get_internal_ce(SL("redis"))) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &controllerSuffix_param); - if (UNEXPECTED(Z_TYPE_P(controllerSuffix_param) != IS_STRING && Z_TYPE_P(controllerSuffix_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'controllerSuffix' must be of the type string")); - RETURN_MM_NULL(); + zephir_fetch_params(1, 1, 0, &connection); + + + ZEPHIR_INIT_VAR(&map); + zephir_create_array(&map, 2, 0); + add_assoc_long_ex(&map, SL("none"), 0); + add_assoc_long_ex(&map, SL("php"), 1); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "\\Redis::SERIALIZER_IGBINARY"); + ZEPHIR_CALL_FUNCTION(&_1, "defined", NULL, 127, &_0); + zephir_check_call_status(); + if (zephir_is_true(&_1)) { + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "\\Redis::SERIALIZER_IGBINARY"); + ZEPHIR_CALL_FUNCTION(&_3$$3, "constant", NULL, 128, &_2$$3); + zephir_check_call_status(); + zephir_array_update_string(&map, SL("igbinary"), &_3$$3, PH_COPY | PH_SEPARATE); } - if (EXPECTED(Z_TYPE_P(controllerSuffix_param) == IS_STRING)) { - zephir_get_strval(&controllerSuffix, controllerSuffix_param); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "\\Redis::SERIALIZER_MSGPACK"); + ZEPHIR_CALL_FUNCTION(&_4, "defined", NULL, 127, &_0); + zephir_check_call_status(); + if (zephir_is_true(&_4)) { + ZEPHIR_INIT_VAR(&_5$$4); + ZVAL_STRING(&_5$$4, "\\Redis::SERIALIZER_MSGPACK"); + ZEPHIR_CALL_FUNCTION(&_6$$4, "constant", NULL, 128, &_5$$4); + zephir_check_call_status(); + zephir_array_update_string(&map, SL("msgpack"), &_6$$4, PH_COPY | PH_SEPARATE); + } + zephir_read_property(&_7, this_ptr, ZEND_STRL("defaultSerializer"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&serializer); + zephir_fast_strtolower(&serializer, &_7); + if (zephir_array_isset(&map, &serializer)) { + ZEPHIR_INIT_VAR(&_8$$5); + ZEPHIR_INIT_NVAR(&_8$$5); + ZVAL_STRING(&_8$$5, ""); + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultSerializer"), &_8$$5); + zephir_array_fetch(&_9$$5, &map, &serializer, PH_NOISY | PH_READONLY, "phalcon/Storage/Adapter/Redis.zep", 288); + ZVAL_LONG(&_10$$5, 1); + ZEPHIR_CALL_METHOD(NULL, connection, "setoption", NULL, 0, &_10$$5, &_9$$5); + zephir_check_call_status(); } else { - ZEPHIR_INIT_VAR(&controllerSuffix); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "initserializer", NULL, 0); + zephir_check_call_status(); } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("controllerSuffix"), &controllerSuffix); ZEPHIR_MM_RESTORE(); } -zend_object *zephir_init_properties_Phalcon_Mvc_Router_Annotations(zend_class_entry *class_type) +zend_object *zephir_init_properties_Phalcon_Storage_Adapter_Redis(zend_class_entry *class_type) { - zval _0, _2, _4, _6, _8, _10, _12, _1$$3, _3$$4, _5$$5, _7$$6, _9$$7, _11$$8, _13$$9; + zval _0, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_12); ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_9$$7); - ZVAL_UNDEF(&_11$$8); - ZVAL_UNDEF(&_13$$9); ZEPHIR_MM_GROW(); @@ -174351,47 +163740,11 @@ zend_object *zephir_init_properties_Phalcon_Mvc_Router_Annotations(zend_class_en { zval local_this_ptr, *this_ptr = &local_this_ptr; ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); if (Z_TYPE_P(&_0) == IS_NULL) { ZEPHIR_INIT_VAR(&_1$$3); array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("routes"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("params"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("params"), &_3$$4); - } - zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("matches"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_4) == IS_NULL) { - ZEPHIR_INIT_VAR(&_5$$5); - array_init(&_5$$5); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("matches"), &_5$$5); - } - zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("keyRouteIds"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_6) == IS_NULL) { - ZEPHIR_INIT_VAR(&_7$$6); - array_init(&_7$$6); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("keyRouteIds"), &_7$$6); - } - zephir_read_property_ex(&_8, this_ptr, ZEND_STRL("keyRouteNames"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_8) == IS_NULL) { - ZEPHIR_INIT_VAR(&_9$$7); - array_init(&_9$$7); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("keyRouteNames"), &_9$$7); - } - zephir_read_property_ex(&_10, this_ptr, ZEND_STRL("defaultParams"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_10) == IS_NULL) { - ZEPHIR_INIT_VAR(&_11$$8); - array_init(&_11$$8); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("defaultParams"), &_11$$8); - } - zephir_read_property_ex(&_12, this_ptr, ZEND_STRL("handlers"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_12) == IS_NULL) { - ZEPHIR_INIT_VAR(&_13$$9); - array_init(&_13$$9); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("handlers"), &_13$$9); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); } ZEPHIR_MM_RESTORE(); return Z_OBJ_P(this_ptr); @@ -174408,2933 +163761,2794 @@ zend_object *zephir_init_properties_Phalcon_Mvc_Router_Annotations(zend_class_en -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Router_Exception) +ZEPHIR_INIT_CLASS(Phalcon_Storage_Adapter_Stream) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\Router, Exception, phalcon, mvc_router_exception, phalcon_exception_ce, NULL, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Adapter, Stream, phalcon, storage_adapter_stream, phalcon_storage_adapter_abstractadapter_ce, phalcon_storage_adapter_stream_method_entry, 0); + + zend_declare_property_string(phalcon_storage_adapter_stream_ce, SL("storageDir"), "", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_storage_adapter_stream_ce, SL("options"), ZEND_ACC_PROTECTED); + phalcon_storage_adapter_stream_ce->create_object = zephir_init_properties_Phalcon_Storage_Adapter_Stream; return SUCCESS; } +static PHP_METHOD(Phalcon_Storage_Adapter_Stream, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL, *_4 = NULL, *_5 = NULL; + zval options; + zval *factory, factory_sub, *options_param = NULL, storageDir, _1, _2, _3; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&factory_sub); + ZVAL_UNDEF(&storageDir); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&options); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_storage_serializerfactory_ce) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &factory, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "storageDir"); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, ""); + ZEPHIR_CALL_CE_STATIC(&storageDir, phalcon_helper_arr_ce, "get", &_0, 16, &options, &_1, &_2); + zephir_check_call_status(); + if (ZEPHIR_IS_EMPTY(&storageDir)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_storage_exception_ce, "The 'storageDir' must be specified in the options", "phalcon/Storage/Adapter/Stream.zep", 57); + return; + } + ZEPHIR_CALL_CE_STATIC(&_3, phalcon_helper_str_ce, "dirseparator", &_4, 129, &storageDir); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("storageDir"), &_3); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "ph-strm"); + zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &_1); + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + ZEPHIR_CALL_PARENT(NULL, phalcon_storage_adapter_stream_ce, getThis(), "__construct", &_5, 0, factory, &options); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "initserializer", NULL, 0); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Router_Group) +static PHP_METHOD(Phalcon_Storage_Adapter_Stream, clear) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Router, Group, phalcon, mvc_router_group, phalcon_mvc_router_group_method_entry, 0); + zend_bool result = 0, _5$$3, _10$$5; + zval directory, iterator, file, _1, *_2, _3, _4$$3, _6$$3, _7$$3, _9$$5, _11$$5, _12$$5; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL, *_8 = NULL; + zval *this_ptr = getThis(); - zend_declare_property_null(phalcon_mvc_router_group_ce, SL("beforeMatch"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_group_ce, SL("hostname"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_group_ce, SL("paths"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_group_ce, SL("prefix"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_group_ce, SL("routes"), ZEND_ACC_PROTECTED); - phalcon_mvc_router_group_ce->create_object = zephir_init_properties_Phalcon_Mvc_Router_Group; + ZVAL_UNDEF(&directory); + ZVAL_UNDEF(&iterator); + ZVAL_UNDEF(&file); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_11$$5); + ZVAL_UNDEF(&_12$$5); - zend_class_implements(phalcon_mvc_router_group_ce, 1, phalcon_mvc_router_groupinterface_ce); - return SUCCESS; + + ZEPHIR_MM_GROW(); + + result = 1; + zephir_read_property(&_1, this_ptr, ZEND_STRL("storageDir"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_CE_STATIC(&directory, phalcon_helper_str_ce, "dirseparator", &_0, 129, &_1); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&iterator, this_ptr, "getiterator", NULL, 130, &directory); + zephir_check_call_status(); + zephir_is_iterable(&iterator, 0, "phalcon/Storage/Adapter/Stream.zep", 90); + if (Z_TYPE_P(&iterator) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&iterator), _2) + { + ZEPHIR_INIT_NVAR(&file); + ZVAL_COPY(&file, _2); + ZEPHIR_CALL_METHOD(&_4$$3, &file, "isfile", NULL, 0); + zephir_check_call_status(); + _5$$3 = zephir_is_true(&_4$$3); + if (_5$$3) { + ZEPHIR_CALL_METHOD(&_6$$3, &file, "getpathname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_7$$3, "unlink", &_8, 131, &_6$$3); + zephir_check_call_status(); + _5$$3 = !zephir_is_true(&_7$$3); + } + if (_5$$3) { + result = 0; + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &iterator, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3, &iterator, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3)) { + break; + } + ZEPHIR_CALL_METHOD(&file, &iterator, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_9$$5, &file, "isfile", NULL, 0); + zephir_check_call_status(); + _10$$5 = zephir_is_true(&_9$$5); + if (_10$$5) { + ZEPHIR_CALL_METHOD(&_11$$5, &file, "getpathname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_12$$5, "unlink", &_8, 131, &_11$$5); + zephir_check_call_status(); + _10$$5 = !zephir_is_true(&_12$$5); + } + if (_10$$5) { + result = 0; + } + ZEPHIR_CALL_METHOD(NULL, &iterator, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&file); + RETURN_MM_BOOL(result); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, __construct) +static PHP_METHOD(Phalcon_Storage_Adapter_Stream, decrement) { - zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *paths = NULL, paths_sub, __$null; + zend_long value, ZEPHIR_LAST_CALL_STATUS, _1; + zval *key_param = NULL, *value_param = NULL, data, _0; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&paths_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(key) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_LONG(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &paths); - if (!paths) { - paths = &paths_sub; - paths = &__$null; + zephir_fetch_params(1, 1, 1, &key_param, &value_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); } - - - _0 = Z_TYPE_P(paths) == IS_ARRAY; - if (!(_0)) { - _0 = Z_TYPE_P(paths) == IS_STRING; + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); } - if (_0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("paths"), paths); + if (!value_param) { + value = 1; + } else { + value = zephir_get_intval(value_param); } - if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("initialize")) == SUCCESS)) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "initialize", NULL, 0, paths); - zephir_check_call_status(); + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, &key); + zephir_check_call_status(); + if (!(zephir_is_true(&_0))) { + RETURN_MM_BOOL(0); } - ZEPHIR_MM_RESTORE(); + ZEPHIR_CALL_METHOD(&data, this_ptr, "get", NULL, 0, &key); + zephir_check_call_status(); + _1 = (zephir_get_intval(&data) - value); + ZEPHIR_INIT_NVAR(&data); + ZVAL_LONG(&data, _1); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "set", NULL, 0, &key, &data); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, add) +static PHP_METHOD(Phalcon_Storage_Adapter_Stream, delete) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, *httpMethods = NULL, httpMethods_sub, __$null; - zval pattern; + zval *key_param = NULL, filepath, _0; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_UNDEF(&httpMethods_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&filepath); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(pattern) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) - Z_PARAM_ZVAL_OR_NULL(httpMethods) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(key) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &httpMethods); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + zephir_fetch_params(1, 1, 0, &key_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_INIT_VAR(&pattern); - } - if (!paths) { - paths = &paths_sub; - paths = &__$null; - } - if (!httpMethods) { - httpMethods = &httpMethods_sub; - httpMethods = &__$null; + ZEPHIR_INIT_VAR(&key); } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, httpMethods); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, &key); + zephir_check_call_status(); + if (!(zephir_is_true(&_0))) { + RETURN_MM_BOOL(0); + } + ZEPHIR_CALL_METHOD(&filepath, this_ptr, "getfilepath", NULL, 132, &key); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_FUNCTION("unlink", NULL, 131, &filepath); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, addConnect) +static PHP_METHOD(Phalcon_Storage_Adapter_Stream, get) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_2 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, _0; - zval pattern; + zval *key_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, content, filepath, payload, _0, _1, _3, _4; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&defaultValue_sub); ZVAL_NULL(&__$null); + ZVAL_UNDEF(&content); + ZVAL_UNDEF(&filepath); + ZVAL_UNDEF(&payload); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(pattern) + Z_PARAM_STR(key) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_ZVAL_OR_NULL(defaultValue) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &pattern_param, &paths); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + zephir_fetch_params(1, 1, 1, &key_param, &defaultValue); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_INIT_VAR(&pattern); + ZEPHIR_INIT_VAR(&key); } - if (!paths) { - paths = &paths_sub; - paths = &__$null; + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "CONNECT"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, &_0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, &key); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE(&_0)) { + RETVAL_ZVAL(defaultValue, 1, 0); + RETURN_MM(); + } + ZEPHIR_CALL_METHOD(&filepath, this_ptr, "getfilepath", NULL, 132, &key); + zephir_check_call_status(); + if (!((zephir_file_exists(&filepath) == SUCCESS))) { + RETVAL_ZVAL(defaultValue, 1, 0); + RETURN_MM(); + } + ZEPHIR_CALL_METHOD(&payload, this_ptr, "getpayload", NULL, 133, &filepath); + zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_IS_EMPTY(&payload))) { + RETVAL_ZVAL(defaultValue, 1, 0); + RETURN_MM(); + } + ZEPHIR_CALL_METHOD(&_1, this_ptr, "isexpired", NULL, 134, &payload); + zephir_check_call_status(); + if (zephir_is_true(&_1)) { + RETVAL_ZVAL(defaultValue, 1, 0); + RETURN_MM(); + } + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "content"); + ZVAL_NULL(&_4); + ZEPHIR_CALL_CE_STATIC(&content, phalcon_helper_arr_ce, "get", &_2, 16, &payload, &_3, &_4); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getunserializeddata", NULL, 0, &content); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, addDelete) +static PHP_METHOD(Phalcon_Storage_Adapter_Stream, getAdapter) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "adapter"); +} + +static PHP_METHOD(Phalcon_Storage_Adapter_Stream, getKeys) { + zval files; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, _0; - zval pattern; + zval *prefix_param = NULL, directory, file, iterator, *_0, _1, _2$$4, _3$$5, _4$$5, _5$$5, _6$$6, _7$$7, _8$$7, _9$$7; + zval prefix; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&prefix); + ZVAL_UNDEF(&directory); + ZVAL_UNDEF(&file); + ZVAL_UNDEF(&iterator); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_6$$6); + ZVAL_UNDEF(&_7$$7); + ZVAL_UNDEF(&_8$$7); + ZVAL_UNDEF(&_9$$7); + ZVAL_UNDEF(&files); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(pattern) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_STR(prefix) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &pattern_param, &paths); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + zephir_fetch_params(1, 0, 1, &prefix_param); + if (!prefix_param) { + ZEPHIR_INIT_VAR(&prefix); + ZVAL_STRING(&prefix, ""); + } else { + if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); + if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { + zephir_get_strval(&prefix, prefix_param); } else { - ZEPHIR_INIT_VAR(&pattern); + ZEPHIR_INIT_VAR(&prefix); } - if (!paths) { - paths = &paths_sub; - paths = &__$null; } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "DELETE"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, &_0); + ZEPHIR_INIT_VAR(&files); + array_init(&files); + ZEPHIR_CALL_METHOD(&directory, this_ptr, "getdir", NULL, 135); + zephir_check_call_status(); + if (!((zephir_file_exists(&directory) == SUCCESS))) { + array_init(return_value); + RETURN_MM(); + } + ZEPHIR_CALL_METHOD(&iterator, this_ptr, "getiterator", NULL, 130, &directory); + zephir_check_call_status(); + zephir_is_iterable(&iterator, 0, "phalcon/Storage/Adapter/Stream.zep", 206); + if (Z_TYPE_P(&iterator) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&iterator), _0) + { + ZEPHIR_INIT_NVAR(&file); + ZVAL_COPY(&file, _0); + ZEPHIR_CALL_METHOD(&_2$$4, &file, "isfile", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_2$$4)) { + zephir_read_property(&_3$$5, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_4$$5, &file, "getfilename", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_5$$5); + ZEPHIR_CONCAT_VV(&_5$$5, &_3$$5, &_4$$5); + zephir_array_append(&files, &_5$$5, PH_SEPARATE, "phalcon/Storage/Adapter/Stream.zep", 202); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &iterator, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &iterator, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&file, &iterator, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_6$$6, &file, "isfile", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_6$$6)) { + zephir_read_property(&_7$$7, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_8$$7, &file, "getfilename", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_9$$7); + ZEPHIR_CONCAT_VV(&_9$$7, &_7$$7, &_8$$7); + zephir_array_append(&files, &_9$$7, PH_SEPARATE, "phalcon/Storage/Adapter/Stream.zep", 202); + } + ZEPHIR_CALL_METHOD(NULL, &iterator, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&file); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getfilteredkeys", NULL, 0, &files, &prefix); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, addGet) +static PHP_METHOD(Phalcon_Storage_Adapter_Stream, has) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, _0; - zval pattern; + zval *key_param = NULL, payload, filepath, _0; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&payload); + ZVAL_UNDEF(&filepath); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(pattern) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(key) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &pattern_param, &paths); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + zephir_fetch_params(1, 1, 0, &key_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_INIT_VAR(&pattern); - } - if (!paths) { - paths = &paths_sub; - paths = &__$null; + ZEPHIR_INIT_VAR(&key); } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "GET"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, &_0); + ZEPHIR_CALL_METHOD(&filepath, this_ptr, "getfilepath", NULL, 132, &key); zephir_check_call_status(); - RETURN_MM(); + if (!((zephir_file_exists(&filepath) == SUCCESS))) { + RETURN_MM_BOOL(0); + } + ZEPHIR_CALL_METHOD(&payload, this_ptr, "getpayload", NULL, 133, &filepath); + zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_IS_EMPTY(&payload))) { + RETURN_MM_BOOL(0); + } + ZEPHIR_CALL_METHOD(&_0, this_ptr, "isexpired", NULL, 134, &payload); + zephir_check_call_status(); + RETURN_MM_BOOL(!zephir_is_true(&_0)); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, addHead) +static PHP_METHOD(Phalcon_Storage_Adapter_Stream, increment) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, _0; - zval pattern; + zend_long value, ZEPHIR_LAST_CALL_STATUS, _1; + zval *key_param = NULL, *value_param = NULL, data, _0; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&data); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(pattern) + Z_PARAM_STR(key) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_LONG(value) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &pattern_param, &paths); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + zephir_fetch_params(1, 1, 1, &key_param, &value_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_INIT_VAR(&pattern); + ZEPHIR_INIT_VAR(&key); } - if (!paths) { - paths = &paths_sub; - paths = &__$null; + if (!value_param) { + value = 1; + } else { + value = zephir_get_intval(value_param); } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "HEAD"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, &_0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, &key); + zephir_check_call_status(); + if (!(zephir_is_true(&_0))) { + RETURN_MM_BOOL(0); + } + ZEPHIR_CALL_METHOD(&data, this_ptr, "get", NULL, 0, &key); + zephir_check_call_status(); + _1 = (zephir_get_intval(&data) + value); + ZEPHIR_INIT_NVAR(&data); + ZVAL_LONG(&data, _1); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "set", NULL, 0, &key, &data); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, addOptions) +static PHP_METHOD(Phalcon_Storage_Adapter_Stream, set) { + zval payload; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, _0; - zval pattern; + zval *key_param = NULL, *value, value_sub, *ttl = NULL, ttl_sub, __$true, __$null, directory, _0, _1, _2, _4, _5, _6, _3$$3; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&ttl_sub); + ZVAL_BOOL(&__$true, 1); ZVAL_NULL(&__$null); + ZVAL_UNDEF(&directory); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&payload); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(pattern) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(key) + Z_PARAM_ZVAL(value) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_ZVAL_OR_NULL(ttl) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &pattern_param, &paths); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + zephir_fetch_params(1, 2, 1, &key_param, &value, &ttl); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_INIT_VAR(&pattern); + ZEPHIR_INIT_VAR(&key); } - if (!paths) { - paths = &paths_sub; - paths = &__$null; + if (!ttl) { + ttl = &ttl_sub; + ttl = &__$null; } + ZEPHIR_INIT_VAR(&payload); + zephir_create_array(&payload, 3, 0); ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "OPTIONS"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, &_0); + zephir_time(&_0); + zephir_array_update_string(&payload, SL("created"), &_0, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getttl", NULL, 0, ttl); zephir_check_call_status(); - RETURN_MM(); + zephir_array_update_string(&payload, SL("ttl"), &_1, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getserializeddata", NULL, 0, value); + zephir_check_call_status(); + zephir_array_update_string(&payload, SL("content"), &_1, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_FUNCTION(&_1, "serialize", NULL, 13, &payload); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&payload, &_1); + ZEPHIR_CALL_METHOD(&directory, this_ptr, "getdir", NULL, 135, &key); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_2, "is_dir", NULL, 136, &directory); + zephir_check_call_status(); + if (!(zephir_is_true(&_2))) { + ZVAL_LONG(&_3$$3, 0777); + ZEPHIR_CALL_FUNCTION(NULL, "mkdir", NULL, 137, &directory, &_3$$3, &__$true); + zephir_check_call_status(); + } + ZEPHIR_INIT_VAR(&_4); + ZEPHIR_CONCAT_VV(&_4, &directory, &key); + ZVAL_LONG(&_5, 2); + ZEPHIR_CALL_FUNCTION(&_6, "file_put_contents", NULL, 138, &_4, &payload, &_5); + zephir_check_call_status(); + RETURN_MM_BOOL(!ZEPHIR_IS_FALSE_IDENTICAL(&_6)); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, addPatch) +static PHP_METHOD(Phalcon_Storage_Adapter_Stream, getDir) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, _0; - zval pattern; + zephir_fcall_cache_entry *_0 = NULL, *_4 = NULL; + zval *key_param = NULL, dirFromFile, dirPrefix, _1, _2, _3, _5, _6, _7, _8; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&dirFromFile); + ZVAL_UNDEF(&dirPrefix); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(pattern) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) + Z_PARAM_STR(key) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &pattern_param, &paths); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + zephir_fetch_params(1, 0, 1, &key_param); + if (!key_param) { + ZEPHIR_INIT_VAR(&key); + ZVAL_STRING(&key, ""); + } else { + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_INIT_VAR(&pattern); + ZEPHIR_INIT_VAR(&key); } - if (!paths) { - paths = &paths_sub; - paths = &__$null; } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "PATCH"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, &_0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("storageDir"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_2, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_3); + ZEPHIR_CONCAT_VV(&_3, &_1, &_2); + ZEPHIR_CALL_CE_STATIC(&dirPrefix, phalcon_helper_str_ce, "dirseparator", &_0, 129, &_3); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_5); + zephir_read_property(&_6, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_7); + ZVAL_STRING(&_7, ""); + zephir_fast_str_replace(&_5, &_6, &_7, &key); + ZEPHIR_CALL_CE_STATIC(&dirFromFile, phalcon_helper_str_ce, "dirfromfile", &_4, 139, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_8); + ZEPHIR_CONCAT_VV(&_8, &dirPrefix, &dirFromFile); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_helper_str_ce, "dirseparator", &_0, 129, &_8); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, addPost) +static PHP_METHOD(Phalcon_Storage_Adapter_Stream, getFilepath) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, _0; - zval pattern; + zval *key_param = NULL, _0, _1, _2, _3, _4; + zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&key); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(pattern) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(key) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &pattern_param, &paths); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + zephir_fetch_params(1, 1, 0, &key_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); } else { - ZEPHIR_INIT_VAR(&pattern); - } - if (!paths) { - paths = &paths_sub; - paths = &__$null; + ZEPHIR_INIT_VAR(&key); } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "POST"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, &_0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getdir", NULL, 135, &key); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, ""); + ZVAL_LONG(&_3, 1); + ZEPHIR_MAKE_REF(&_3); + ZEPHIR_CALL_FUNCTION(&_4, "str_replace", NULL, 140, &_1, &_2, &key, &_3); + ZEPHIR_UNREF(&_3); zephir_check_call_status(); + ZEPHIR_CONCAT_VV(return_value, &_0, &_4); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, addPurge) +static PHP_METHOD(Phalcon_Storage_Adapter_Stream, getIterator) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, _0; - zval pattern; + zval *dir_param = NULL, _0, _1; + zval dir; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&dir); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(pattern) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(dir) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &pattern_param, &paths); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); + zephir_fetch_params(1, 1, 0, &dir_param); + if (UNEXPECTED(Z_TYPE_P(dir_param) != IS_STRING && Z_TYPE_P(dir_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'dir' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); + if (EXPECTED(Z_TYPE_P(dir_param) == IS_STRING)) { + zephir_get_strval(&dir, dir_param); } else { - ZEPHIR_INIT_VAR(&pattern); - } - if (!paths) { - paths = &paths_sub; - paths = &__$null; + ZEPHIR_INIT_VAR(&dir); } + object_init_ex(return_value, spl_ce_RecursiveIteratorIterator); ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "PURGE"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, &_0); + object_init_ex(&_0, spl_ce_RecursiveDirectoryIterator); + ZVAL_LONG(&_1, 4096); + ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 141, &dir, &_1); + zephir_check_call_status(); + ZVAL_LONG(&_1, 2); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 142, &_0, &_1); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, addPut) +static PHP_METHOD(Phalcon_Storage_Adapter_Stream, getPayload) { + zend_bool _10; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, _0; - zval pattern; + zval *filepath_param = NULL, __$false, payload, pointer, version, _0, _1, _2, _3, _4, _9, _5$$5, _6$$5, _7$$6, _8$$6; + zval filepath; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&filepath); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&payload); + ZVAL_UNDEF(&pointer); + ZVAL_UNDEF(&version); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_8$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(pattern) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(filepath) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &pattern_param, &paths); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); - RETURN_MM_NULL(); + zephir_fetch_params(1, 1, 0, &filepath_param); + zephir_get_strval(&filepath, filepath_param); + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "r"); + ZEPHIR_CALL_FUNCTION(&pointer, "fopen", NULL, 89, &filepath, &_0); + zephir_check_call_status(); + ZVAL_LONG(&_1, 1); + ZEPHIR_CALL_FUNCTION(&_2, "flock", NULL, 143, &pointer, &_1); + zephir_check_call_status(); + if (zephir_is_true(&_2)) { + ZEPHIR_INIT_VAR(&payload); + zephir_file_get_contents(&payload, &filepath); } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); + zephir_fclose(&pointer); + if (ZEPHIR_IS_FALSE_IDENTICAL(&payload)) { + array_init(return_value); + RETURN_MM(); + } + ZEPHIR_CALL_FUNCTION(&version, "phpversion", NULL, 86); + zephir_check_call_status(); + ZEPHIR_GLOBAL(warning).enable = zend_is_true(&__$false); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "8.0"); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, ">="); + ZEPHIR_CALL_FUNCTION(&_4, "version_compare", NULL, 87, &version, &_0, &_3); + zephir_check_call_status(); + if (zephir_is_true(&_4)) { + ZEPHIR_INIT_VAR(&_5$$5); + ZEPHIR_INIT_NVAR(&_5$$5); + zephir_create_closure_ex(&_5$$5, NULL, phalcon_2__closure_ce, SL("__invoke")); + ZVAL_LONG(&_6$$5, 8); + ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_5$$5, &_6$$5); + zephir_check_call_status(); } else { - ZEPHIR_INIT_VAR(&pattern); + ZEPHIR_INIT_VAR(&_7$$6); + ZEPHIR_INIT_NVAR(&_7$$6); + zephir_create_closure_ex(&_7$$6, NULL, phalcon_3__closure_ce, SL("__invoke")); + ZVAL_LONG(&_8$$6, 8); + ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_7$$6, &_8$$6); + zephir_check_call_status(); } - if (!paths) { - paths = &paths_sub; - paths = &__$null; + ZEPHIR_CALL_FUNCTION(&_9, "unserialize", NULL, 15, &payload); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&payload, &_9); + ZEPHIR_CALL_FUNCTION(NULL, "restore_error_handler", NULL, 90); + zephir_check_call_status(); + _10 = ZEPHIR_GLOBAL(warning).enable; + if (!(_10)) { + _10 = Z_TYPE_P(&payload) != IS_ARRAY; + } + if (UNEXPECTED(_10)) { + array_init(return_value); + RETURN_MM(); + } + RETURN_CCTOR(&payload); +} + +static PHP_METHOD(Phalcon_Storage_Adapter_Stream, isExpired) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *payload_param = NULL, created, ttl, _1, _2, _3, _4; + zval payload; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&payload); + ZVAL_UNDEF(&created); + ZVAL_UNDEF(&ttl); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(payload) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &payload_param); + ZEPHIR_OBS_COPY_OR_DUP(&payload, payload_param); + + + ZEPHIR_INIT_VAR(&_1); + zephir_time(&_1); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "created"); + ZEPHIR_CALL_CE_STATIC(&created, phalcon_helper_arr_ce, "get", &_0, 16, &payload, &_2, &_1); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "ttl"); + ZVAL_LONG(&_3, 3600); + ZEPHIR_CALL_CE_STATIC(&ttl, phalcon_helper_arr_ce, "get", &_0, 16, &payload, &_2, &_3); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_4); + zephir_add_function(&_4, &created, &ttl); + ZEPHIR_INIT_NVAR(&_2); + zephir_time(&_2); + RETURN_MM_BOOL(ZEPHIR_LT(&_4, &_2)); +} + +zend_object *zephir_init_properties_Phalcon_Storage_Adapter_Stream(zend_class_entry *class_type) +{ + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Assets_Asset) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Assets, Asset, phalcon, assets_asset, phalcon_assets_asset_method_entry, 0); + + zend_declare_property_null(phalcon_assets_asset_ce, SL("attributes"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_assets_asset_ce, SL("autoVersion"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_assets_asset_ce, SL("filter"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_assets_asset_ce, SL("local"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_assets_asset_ce, SL("path"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_assets_asset_ce, SL("sourcePath"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_assets_asset_ce, SL("targetPath"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_assets_asset_ce, SL("targetUri"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_assets_asset_ce, SL("type"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_assets_asset_ce, SL("version"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_assets_asset_ce, 1, phalcon_assets_assetinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Assets_Asset, getAttributes) +{ + zval *this_ptr = getThis(); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "PUT"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, &_0); - zephir_check_call_status(); - RETURN_MM(); + + RETURN_MEMBER(getThis(), "attributes"); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, addTrace) +static PHP_METHOD(Phalcon_Assets_Asset, setAutoVersion) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, _0; - zval pattern; + zval *autoVersion_param = NULL, __$true, __$false; + zend_bool autoVersion; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(pattern) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(autoVersion) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &pattern_param, &paths); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); - } else { - ZEPHIR_INIT_VAR(&pattern); - } - if (!paths) { - paths = &paths_sub; - paths = &__$null; - } + zephir_fetch_params_without_memory_grow(1, 0, &autoVersion_param); + autoVersion = zephir_get_boolval(autoVersion_param); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "TRACE"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addroute", NULL, 0, &pattern, paths, &_0); - zephir_check_call_status(); - RETURN_MM(); + if (autoVersion) { + zephir_update_property_zval(this_ptr, ZEND_STRL("autoVersion"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("autoVersion"), &__$false); + } + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, beforeMatch) +static PHP_METHOD(Phalcon_Assets_Asset, getFilter) { - zval *beforeMatch, beforeMatch_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&beforeMatch_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(beforeMatch) - ZEND_PARSE_PARAMETERS_END(); -#endif - zephir_fetch_params_without_memory_grow(1, 0, &beforeMatch); + RETURN_MEMBER(getThis(), "filter"); +} + +static PHP_METHOD(Phalcon_Assets_Asset, getLocal) +{ + zval *this_ptr = getThis(); - zephir_update_property_zval(this_ptr, ZEND_STRL("beforeMatch"), beforeMatch); - RETURN_THISW(); + + RETURN_MEMBER(getThis(), "local"); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, clear) +static PHP_METHOD(Phalcon_Assets_Asset, getPath) { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - - ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(&_0); - array_init(&_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("routes"), &_0); - ZEPHIR_MM_RESTORE(); + RETURN_MEMBER(getThis(), "path"); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, getBeforeMatch) +static PHP_METHOD(Phalcon_Assets_Asset, getSourcePath) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "beforeMatch"); + RETURN_MEMBER(getThis(), "sourcePath"); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, getHostname) +static PHP_METHOD(Phalcon_Assets_Asset, getTargetPath) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "hostname"); + RETURN_MEMBER(getThis(), "targetPath"); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, getPaths) +static PHP_METHOD(Phalcon_Assets_Asset, getTargetUri) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "paths"); + RETURN_MEMBER(getThis(), "targetUri"); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, getPrefix) +static PHP_METHOD(Phalcon_Assets_Asset, getType) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "prefix"); + RETURN_MEMBER(getThis(), "type"); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, getRoutes) +static PHP_METHOD(Phalcon_Assets_Asset, getVersion) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "routes"); + RETURN_MEMBER(getThis(), "version"); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, setHostname) +static PHP_METHOD(Phalcon_Assets_Asset, setVersion) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *hostname_param = NULL; - zval hostname; + zval *version_param = NULL; + zval version; zval *this_ptr = getThis(); - ZVAL_UNDEF(&hostname); + ZVAL_UNDEF(&version); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(hostname) + Z_PARAM_STR(version) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &hostname_param); - zephir_get_strval(&hostname, hostname_param); + zephir_fetch_params(1, 1, 0, &version_param); + zephir_get_strval(&version, version_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("hostname"), &hostname); + zephir_update_property_zval(this_ptr, ZEND_STRL("version"), &version); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, setPaths) +static PHP_METHOD(Phalcon_Assets_Asset, __construct) { - zval *paths, paths_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval attributes; + zend_bool local, filter, autoVersion; + zval *type_param = NULL, *path_param = NULL, *local_param = NULL, *filter_param = NULL, *attributes_param = NULL, *version_param = NULL, *autoVersion_param = NULL, __$true, __$false; + zval type, path, version; zval *this_ptr = getThis(); - ZVAL_UNDEF(&paths_sub); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&version); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(paths) + ZEND_PARSE_PARAMETERS_START(2, 7) + Z_PARAM_STR(type) + Z_PARAM_STR(path) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(local) + Z_PARAM_BOOL(filter) + Z_PARAM_ARRAY(attributes) + Z_PARAM_STR_OR_NULL(version) + Z_PARAM_BOOL(autoVersion) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &paths); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 5, &type_param, &path_param, &local_param, &filter_param, &attributes_param, &version_param, &autoVersion_param); + zephir_get_strval(&type, type_param); + zephir_get_strval(&path, path_param); + if (!local_param) { + local = 1; + } else { + local = zephir_get_boolval(local_param); + } + if (!filter_param) { + filter = 1; + } else { + filter = zephir_get_boolval(filter_param); + } + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); + } + if (!version_param) { + ZEPHIR_INIT_VAR(&version); + } else { + zephir_get_strval(&version, version_param); + } + if (!autoVersion_param) { + autoVersion = 0; + } else { + autoVersion = zephir_get_boolval(autoVersion_param); + } - zephir_update_property_zval(this_ptr, ZEND_STRL("paths"), paths); - RETURN_THISW(); + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &type); + zephir_update_property_zval(this_ptr, ZEND_STRL("path"), &path); + if (local) { + zephir_update_property_zval(this_ptr, ZEND_STRL("local"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("local"), &__$false); + } + if (filter) { + zephir_update_property_zval(this_ptr, ZEND_STRL("filter"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("filter"), &__$false); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &attributes); + zephir_update_property_zval(this_ptr, ZEND_STRL("version"), &version); + if (autoVersion) { + zephir_update_property_zval(this_ptr, ZEND_STRL("autoVersion"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("autoVersion"), &__$false); + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, setPrefix) +static PHP_METHOD(Phalcon_Assets_Asset, getAssetKey) { + zval key, _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *prefix_param = NULL; - zval prefix; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&prefix); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(prefix) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &prefix_param); - zephir_get_strval(&prefix, prefix_param); - - zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &prefix); - RETURN_THIS(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "gettype", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getpath", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&key); + ZEPHIR_CONCAT_VSV(&key, &_0, ":", &_1); + zephir_md5(return_value, &key); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_Router_Group, addRoute) +static PHP_METHOD(Phalcon_Assets_Asset, getContent) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *pattern_param = NULL, *paths = NULL, paths_sub, *httpMethods = NULL, httpMethods_sub, __$null, mergedPaths, route, defaultPaths, processedPaths, _1, _2; - zval pattern; + zval *basePath_param = NULL, sourcePath, completePath, content, _0, _1$$5, _2$$5, _3$$6, _4$$6; + zval basePath; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_UNDEF(&httpMethods_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&mergedPaths); - ZVAL_UNDEF(&route); - ZVAL_UNDEF(&defaultPaths); - ZVAL_UNDEF(&processedPaths); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&basePath); + ZVAL_UNDEF(&sourcePath); + ZVAL_UNDEF(&completePath); + ZVAL_UNDEF(&content); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$5); + ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&_3$$6); + ZVAL_UNDEF(&_4$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(pattern) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) - Z_PARAM_ZVAL_OR_NULL(httpMethods) + Z_PARAM_STR_OR_NULL(basePath) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &httpMethods); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); + zephir_fetch_params(1, 0, 1, &basePath_param); + if (!basePath_param) { + ZEPHIR_INIT_VAR(&basePath); } else { - ZEPHIR_INIT_VAR(&pattern); - } - if (!paths) { - paths = &paths_sub; - paths = &__$null; - } - if (!httpMethods) { - httpMethods = &httpMethods_sub; - httpMethods = &__$null; + zephir_get_strval(&basePath, basePath_param); } - ZEPHIR_OBS_VAR(&defaultPaths); - zephir_read_property(&defaultPaths, this_ptr, ZEND_STRL("paths"), PH_NOISY_CC); - if (Z_TYPE_P(&defaultPaths) == IS_ARRAY) { - if (Z_TYPE_P(paths) == IS_STRING) { - ZEPHIR_CALL_CE_STATIC(&processedPaths, phalcon_mvc_router_route_ce, "getroutepaths", &_0, 0, paths); + zephir_read_property(&_0, this_ptr, ZEND_STRL("sourcePath"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&sourcePath, &_0); + if (ZEPHIR_IS_EMPTY(&sourcePath)) { + ZEPHIR_OBS_NVAR(&sourcePath); + zephir_read_property(&sourcePath, this_ptr, ZEND_STRL("path"), PH_NOISY_CC); + } + ZEPHIR_INIT_VAR(&completePath); + ZEPHIR_CONCAT_VV(&completePath, &basePath, &sourcePath); + zephir_read_property(&_0, this_ptr, ZEND_STRL("local"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_0)) { + if (UNEXPECTED(!((zephir_file_exists(&completePath) == SUCCESS)))) { + ZEPHIR_INIT_VAR(&_1$$5); + object_init_ex(&_1$$5, phalcon_assets_exception_ce); + ZEPHIR_INIT_VAR(&_2$$5); + ZEPHIR_CONCAT_SVS(&_2$$5, "Asset's content for '", &completePath, "' cannot be read"); + ZEPHIR_CALL_METHOD(NULL, &_1$$5, "__construct", NULL, 8, &_2$$5); zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(&processedPaths, paths); - } - if (Z_TYPE_P(&processedPaths) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&mergedPaths); - zephir_fast_array_merge(&mergedPaths, &defaultPaths, &processedPaths); - } else { - ZEPHIR_CPY_WRT(&mergedPaths, &defaultPaths); + zephir_throw_exception_debug(&_1$$5, "phalcon/Assets/Asset.zep", 135); + ZEPHIR_MM_RESTORE(); + return; } - } else { - ZEPHIR_CPY_WRT(&mergedPaths, paths); } - ZEPHIR_INIT_VAR(&route); - object_init_ex(&route, phalcon_mvc_router_route_ce); - zephir_read_property(&_1, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_2); - ZEPHIR_CONCAT_VV(&_2, &_1, &pattern); - ZEPHIR_CALL_METHOD(NULL, &route, "__construct", NULL, 117, &_2, &mergedPaths, httpMethods); - zephir_check_call_status(); - zephir_update_property_array_append(this_ptr, SL("routes"), &route); - ZEPHIR_CALL_METHOD(NULL, &route, "setgroup", NULL, 496, this_ptr); - zephir_check_call_status(); - RETURN_CCTOR(&route); -} - -zend_object *zephir_init_properties_Phalcon_Mvc_Router_Group(zend_class_entry *class_type) -{ - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("routes"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("routes"), &_1$$3); - } + ZEPHIR_INIT_VAR(&content); + zephir_file_get_contents(&content, &completePath); + if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&content))) { + ZEPHIR_INIT_VAR(&_3$$6); + object_init_ex(&_3$$6, phalcon_assets_exception_ce); + ZEPHIR_INIT_VAR(&_4$$6); + ZEPHIR_CONCAT_SVS(&_4$$6, "Asset's content for '", &completePath, "' cannot be read"); + ZEPHIR_CALL_METHOD(NULL, &_3$$6, "__construct", NULL, 8, &_4$$6); + zephir_check_call_status(); + zephir_throw_exception_debug(&_3$$6, "phalcon/Assets/Asset.zep", 148); ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); + return; } + RETURN_CCTOR(&content); } +static PHP_METHOD(Phalcon_Assets_Asset, getRealSourcePath) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *basePath_param = NULL, sourcePath, _0, _1$$4; + zval basePath; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&basePath); + ZVAL_UNDEF(&sourcePath); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(basePath) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &basePath_param); + if (!basePath_param) { + ZEPHIR_INIT_VAR(&basePath); + } else { + zephir_get_strval(&basePath, basePath_param); + } - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Router_GroupInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Router, GroupInterface, phalcon, mvc_router_groupinterface, phalcon_mvc_router_groupinterface_method_entry); - - return SUCCESS; + zephir_read_property(&_0, this_ptr, ZEND_STRL("sourcePath"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&sourcePath, &_0); + if (ZEPHIR_IS_EMPTY(&sourcePath)) { + ZEPHIR_OBS_NVAR(&sourcePath); + zephir_read_property(&sourcePath, this_ptr, ZEND_STRL("path"), PH_NOISY_CC); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("local"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_0)) { + ZEPHIR_INIT_VAR(&_1$$4); + ZEPHIR_CONCAT_VV(&_1$$4, &basePath, &sourcePath); + ZEPHIR_RETURN_CALL_FUNCTION("realpath", NULL, 94, &_1$$4); + zephir_check_call_status(); + RETURN_MM(); + } + RETURN_CCTOR(&sourcePath); } -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, add); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, addConnect); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, addDelete); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, addGet); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, addHead); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, addOptions); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, addPatch); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, addPost); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, addPurge); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, addPut); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, addTrace); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, beforeMatch); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, clear); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, getBeforeMatch); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, getHostname); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, getPaths); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, getPrefix); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, getRoutes); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, setHostname); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, setPaths); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_GroupInterface, setPrefix); - - +static PHP_METHOD(Phalcon_Assets_Asset, getRealTargetPath) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *basePath_param = NULL, targetPath, completePath, _0; + zval basePath; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&basePath); + ZVAL_UNDEF(&targetPath); + ZVAL_UNDEF(&completePath); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(basePath) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &basePath_param); + if (!basePath_param) { + ZEPHIR_INIT_VAR(&basePath); + } else { + zephir_get_strval(&basePath, basePath_param); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("targetPath"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&targetPath, &_0); + if (ZEPHIR_IS_EMPTY(&targetPath)) { + ZEPHIR_OBS_NVAR(&targetPath); + zephir_read_property(&targetPath, this_ptr, ZEND_STRL("path"), PH_NOISY_CC); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("local"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_0)) { + ZEPHIR_INIT_VAR(&completePath); + ZEPHIR_CONCAT_VV(&completePath, &basePath, &targetPath); + if ((zephir_file_exists(&completePath) == SUCCESS)) { + ZEPHIR_RETURN_CALL_FUNCTION("realpath", NULL, 94, &completePath); + zephir_check_call_status(); + RETURN_MM(); + } + RETURN_CCTOR(&completePath); + } + RETURN_CCTOR(&targetPath); +} -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Router_Route) +static PHP_METHOD(Phalcon_Assets_Asset, getRealTargetUri) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\Router, Route, phalcon, mvc_router_route, phalcon_mvc_router_route_method_entry, 0); + zend_bool _1; + zval modificationTime, targetUri, version, _0, _2, _3$$4, _4$$4, _5$$5; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); - zend_declare_property_null(phalcon_mvc_router_route_ce, SL("beforeMatch"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_route_ce, SL("compiledPattern"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_route_ce, SL("converters"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_route_ce, SL("group"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_route_ce, SL("hostname"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_route_ce, SL("id"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_route_ce, SL("methods"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_route_ce, SL("match"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_route_ce, SL("name"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_route_ce, SL("paths"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_router_route_ce, SL("pattern"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_mvc_router_route_ce, SL("uniqueId"), 0, ZEND_ACC_PROTECTED|ZEND_ACC_STATIC); - phalcon_mvc_router_route_ce->create_object = zephir_init_properties_Phalcon_Mvc_Router_Route; + ZVAL_UNDEF(&modificationTime); + ZVAL_UNDEF(&targetUri); + ZVAL_UNDEF(&version); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$5); - zend_class_implements(phalcon_mvc_router_route_ce, 1, phalcon_mvc_router_routeinterface_ce); - return SUCCESS; + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("targetUri"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&targetUri, &_0); + if (ZEPHIR_IS_EMPTY(&targetUri)) { + ZEPHIR_OBS_NVAR(&targetUri); + zephir_read_property(&targetUri, this_ptr, ZEND_STRL("path"), PH_NOISY_CC); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("version"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&version, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("autoVersion"), PH_NOISY_CC | PH_READONLY); + _1 = zephir_is_true(&_0); + if (_1) { + zephir_read_property(&_2, this_ptr, ZEND_STRL("local"), PH_NOISY_CC | PH_READONLY); + _1 = zephir_is_true(&_2); + } + if (_1) { + ZEPHIR_CALL_METHOD(&_3$$4, this_ptr, "getrealsourcepath", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&modificationTime); + zephir_filemtime(&modificationTime, &_3$$4); + ZEPHIR_INIT_VAR(&_4$$4); + if (zephir_is_true(&version)) { + ZEPHIR_INIT_NVAR(&_4$$4); + ZEPHIR_CONCAT_VSV(&_4$$4, &version, ".", &modificationTime); + } else { + ZEPHIR_CPY_WRT(&_4$$4, &modificationTime); + } + ZEPHIR_CPY_WRT(&version, &_4$$4); + } + if (zephir_is_true(&version)) { + ZEPHIR_INIT_VAR(&_5$$5); + ZEPHIR_CONCAT_VSV(&_5$$5, &targetUri, "?ver=", &version); + ZEPHIR_CPY_WRT(&targetUri, &_5$$5); + } + RETURN_CCTOR(&targetUri); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, getId) +static PHP_METHOD(Phalcon_Assets_Asset, isAutoVersion) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "id"); + RETURN_MEMBER(getThis(), "autoVersion"); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, __construct) +static PHP_METHOD(Phalcon_Assets_Asset, setAttributes) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, *httpMethods = NULL, httpMethods_sub, __$null, routeId, uniqueId, _0; - zval pattern; + zval *attributes_param = NULL; + zval attributes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_UNDEF(&httpMethods_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&routeId); - ZVAL_UNDEF(&uniqueId); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(pattern) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) - Z_PARAM_ZVAL_OR_NULL(httpMethods) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &pattern_param, &paths, &httpMethods); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); - } else { - ZEPHIR_INIT_VAR(&pattern); - } - if (!paths) { - paths = &paths_sub; - paths = &__$null; - } - if (!httpMethods) { - httpMethods = &httpMethods_sub; - httpMethods = &__$null; - } + zephir_fetch_params(1, 1, 0, &attributes_param); + zephir_get_arrval(&attributes, attributes_param); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "reconfigure", NULL, 0, &pattern, paths); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "via", NULL, 0, httpMethods); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&_0); - zephir_read_static_property_ce(&_0, phalcon_mvc_router_route_ce, SL("uniqueId"), PH_NOISY_CC); - ZEPHIR_CPY_WRT(&uniqueId, &_0); - ZEPHIR_CPY_WRT(&routeId, &uniqueId); - zephir_update_property_zval(this_ptr, ZEND_STRL("id"), &routeId); - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, (zephir_get_numberval(&uniqueId) + 1)); - zephir_update_static_property_ce(phalcon_mvc_router_route_ce, ZEND_STRL("uniqueId"), &_0); - ZEPHIR_MM_RESTORE(); + zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &attributes); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, beforeMatch) +static PHP_METHOD(Phalcon_Assets_Asset, setFilter) { - zval *callback, callback_sub; + zval *filter_param = NULL, __$true, __$false; + zend_bool filter; zval *this_ptr = getThis(); - ZVAL_UNDEF(&callback_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(callback) + Z_PARAM_BOOL(filter) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &callback); + zephir_fetch_params_without_memory_grow(1, 0, &filter_param); + filter = zephir_get_boolval(filter_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("beforeMatch"), callback); + if (filter) { + zephir_update_property_zval(this_ptr, ZEND_STRL("filter"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("filter"), &__$false); + } RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, compilePattern) +static PHP_METHOD(Phalcon_Assets_Asset, setLocal) { - zend_bool _14; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *pattern_param = NULL, _0$$4, _1$$4, _2$$5, _3$$5, _4$$6, _5$$6, _6$$7, _7$$7, _8$$8, _9$$8, _10$$8, _11$$9, _12$$9, _13$$9; - zval pattern, idPattern; + zval *local_param = NULL, __$true, __$false; + zend_bool local; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&idPattern); - ZVAL_UNDEF(&_0$$4); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$5); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_4$$6); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_6$$7); - ZVAL_UNDEF(&_7$$7); - ZVAL_UNDEF(&_8$$8); - ZVAL_UNDEF(&_9$$8); - ZVAL_UNDEF(&_10$$8); - ZVAL_UNDEF(&_11$$9); - ZVAL_UNDEF(&_12$$9); - ZVAL_UNDEF(&_13$$9); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(pattern) + Z_PARAM_BOOL(local) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &pattern_param); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); - } else { - ZEPHIR_INIT_VAR(&pattern); - } + zephir_fetch_params_without_memory_grow(1, 0, &local_param); + local = zephir_get_boolval(local_param); - if (zephir_memnstr_str(&pattern, SL(":"), "phalcon/Mvc/Router/Route.zep", 141)) { - ZEPHIR_INIT_VAR(&idPattern); - ZVAL_STRING(&idPattern, "/([\\w0-9\\_\\-]+)"); - if (zephir_memnstr_str(&pattern, SL("/:module"), "phalcon/Mvc/Router/Route.zep", 146)) { - ZEPHIR_INIT_VAR(&_0$$4); - ZEPHIR_INIT_VAR(&_1$$4); - ZVAL_STRING(&_1$$4, "/:module"); - zephir_fast_str_replace(&_0$$4, &_1$$4, &idPattern, &pattern); - zephir_get_strval(&pattern, &_0$$4); - } - if (zephir_memnstr_str(&pattern, SL("/:controller"), "phalcon/Mvc/Router/Route.zep", 151)) { - ZEPHIR_INIT_VAR(&_2$$5); - ZEPHIR_INIT_VAR(&_3$$5); - ZVAL_STRING(&_3$$5, "/:controller"); - zephir_fast_str_replace(&_2$$5, &_3$$5, &idPattern, &pattern); - zephir_get_strval(&pattern, &_2$$5); - } - if (zephir_memnstr_str(&pattern, SL("/:namespace"), "phalcon/Mvc/Router/Route.zep", 156)) { - ZEPHIR_INIT_VAR(&_4$$6); - ZEPHIR_INIT_VAR(&_5$$6); - ZVAL_STRING(&_5$$6, "/:namespace"); - zephir_fast_str_replace(&_4$$6, &_5$$6, &idPattern, &pattern); - zephir_get_strval(&pattern, &_4$$6); - } - if (zephir_memnstr_str(&pattern, SL("/:action"), "phalcon/Mvc/Router/Route.zep", 161)) { - ZEPHIR_INIT_VAR(&_6$$7); - ZEPHIR_INIT_VAR(&_7$$7); - ZVAL_STRING(&_7$$7, "/:action"); - zephir_fast_str_replace(&_6$$7, &_7$$7, &idPattern, &pattern); - zephir_get_strval(&pattern, &_6$$7); - } - if (zephir_memnstr_str(&pattern, SL("/:params"), "phalcon/Mvc/Router/Route.zep", 166)) { - ZEPHIR_INIT_VAR(&_8$$8); - ZEPHIR_INIT_VAR(&_9$$8); - ZVAL_STRING(&_9$$8, "/:params"); - ZEPHIR_INIT_VAR(&_10$$8); - ZVAL_STRING(&_10$$8, "(/.*)*"); - zephir_fast_str_replace(&_8$$8, &_9$$8, &_10$$8, &pattern); - zephir_get_strval(&pattern, &_8$$8); - } - if (zephir_memnstr_str(&pattern, SL("/:int"), "phalcon/Mvc/Router/Route.zep", 171)) { - ZEPHIR_INIT_VAR(&_11$$9); - ZEPHIR_INIT_VAR(&_12$$9); - ZVAL_STRING(&_12$$9, "/:int"); - ZEPHIR_INIT_VAR(&_13$$9); - ZVAL_STRING(&_13$$9, "/([0-9]+)"); - zephir_fast_str_replace(&_11$$9, &_12$$9, &_13$$9, &pattern); - zephir_get_strval(&pattern, &_11$$9); - } - } - _14 = zephir_memnstr_str(&pattern, SL("("), "phalcon/Mvc/Router/Route.zep", 182); - if (!(_14)) { - _14 = zephir_memnstr_str(&pattern, SL("["), "phalcon/Mvc/Router/Route.zep", 182); - } - if (_14) { - ZEPHIR_CONCAT_SVS(return_value, "#^", &pattern, "$#u"); - RETURN_MM(); + if (local) { + zephir_update_property_zval(this_ptr, ZEND_STRL("local"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("local"), &__$false); } - RETURN_CTOR(&pattern); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, convert) +static PHP_METHOD(Phalcon_Assets_Asset, setSourcePath) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, *converter, converter_sub; - zval name; + zval *sourcePath_param = NULL; + zval sourcePath; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&converter_sub); + ZVAL_UNDEF(&sourcePath); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(name) - Z_PARAM_ZVAL(converter) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(sourcePath) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &name_param, &converter); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } + zephir_fetch_params(1, 1, 0, &sourcePath_param); + zephir_get_strval(&sourcePath, sourcePath_param); - zephir_update_property_array(this_ptr, SL("converters"), &name, converter); + zephir_update_property_zval(this_ptr, ZEND_STRL("sourcePath"), &sourcePath); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, extractNamedParams) +static PHP_METHOD(Phalcon_Assets_Asset, setTargetPath) { - long _0, _5$$10, _26$$18; - zend_long cursor = 0, cursorVar = 0, marker = 0, bracketCount, parenthesesCount, foundPattern, intermediate, numberMatches; - zend_bool notValid = 0, _6$$11, _7$$11, _8$$11, _9$$11, _10$$11, _11$$11, _12$$11, _13$$11, _14$$11, _15$$11, _16$$11, _17$$11, _25$$17, _29$$34, _30$$35, _31$$35, _32$$35; - char ch = 0, prevCh; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *pattern_param = NULL, tmp, matches, _1$$10, _2$$10, _3$$10, _18$$15, _19$$15, _20$$15, _22$$15, _23$$15; - zval pattern, route, item, variable, regexp, _4$$10, _21$$15, _24$$15, _27$$25, _28$$28; + zval *targetPath_param = NULL; + zval targetPath; zval *this_ptr = getThis(); - - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&route); - ZVAL_UNDEF(&item); - ZVAL_UNDEF(&variable); - ZVAL_UNDEF(®exp); - ZVAL_UNDEF(&_4$$10); - ZVAL_UNDEF(&_21$$15); - ZVAL_UNDEF(&_24$$15); - ZVAL_UNDEF(&_27$$25); - ZVAL_UNDEF(&_28$$28); - ZVAL_UNDEF(&tmp); - ZVAL_UNDEF(&matches); - ZVAL_UNDEF(&_1$$10); - ZVAL_UNDEF(&_2$$10); - ZVAL_UNDEF(&_3$$10); - ZVAL_UNDEF(&_18$$15); - ZVAL_UNDEF(&_19$$15); - ZVAL_UNDEF(&_20$$15); - ZVAL_UNDEF(&_22$$15); - ZVAL_UNDEF(&_23$$15); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(pattern) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &pattern_param); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); - } else { - ZEPHIR_INIT_VAR(&pattern); - } - - - prevCh = '\0'; - bracketCount = 0; - parenthesesCount = 0; - foundPattern = 0; - intermediate = 0; - numberMatches = 0; - if (zephir_fast_strlen_ev(&pattern) == 0) { - RETURN_MM_BOOL(0); - } - ZEPHIR_INIT_VAR(&matches); - array_init(&matches); - ZEPHIR_INIT_VAR(&route); - for (_0 = 0; _0 < Z_STRLEN_P(&pattern); _0++) { - cursor = _0; - ch = ZEPHIR_STRING_OFFSET(&pattern, _0); - if (parenthesesCount == 0) { - if (ch == '{') { - if (bracketCount == 0) { - marker = (cursor + 1); - intermediate = 0; - notValid = 0; - } - bracketCount++; - } else if (ch == '}') { - bracketCount--; - if (intermediate > 0) { - if (bracketCount == 0) { - numberMatches++; - ZEPHIR_INIT_NVAR(&variable); - ZEPHIR_INIT_NVAR(®exp); - ZVAL_LONG(&_1$$10, marker); - ZVAL_LONG(&_2$$10, (cursor - marker)); - ZEPHIR_INIT_NVAR(&_3$$10); - zephir_substr(&_3$$10, &pattern, zephir_get_intval(&_1$$10), zephir_get_intval(&_2$$10), 0); - zephir_cast_to_string(&_4$$10, &_3$$10); - ZEPHIR_CPY_WRT(&item, &_4$$10); - for (_5$$10 = 0; _5$$10 < Z_STRLEN_P(&item); _5$$10++) { - cursorVar = _5$$10; - ch = ZEPHIR_STRING_OFFSET(&item, _5$$10); - if (ch == '\0') { - break; - } - _6$$11 = cursorVar == 0; - if (_6$$11) { - _7$$11 = ch >= 'a'; - if (_7$$11) { - _7$$11 = ch <= 'z'; - } - _8$$11 = _7$$11; - if (!(_8$$11)) { - _9$$11 = ch >= 'A'; - if (_9$$11) { - _9$$11 = ch <= 'Z'; - } - _8$$11 = _9$$11; - } - _6$$11 = !(_8$$11); - } - if (_6$$11) { - notValid = 1; - break; - } - _10$$11 = ch >= 'a'; - if (_10$$11) { - _10$$11 = ch <= 'z'; - } - _11$$11 = _10$$11; - if (!(_11$$11)) { - _12$$11 = ch >= 'A'; - if (_12$$11) { - _12$$11 = ch <= 'Z'; - } - _11$$11 = _12$$11; - } - _13$$11 = _11$$11; - if (!(_13$$11)) { - _14$$11 = ch >= '0'; - if (_14$$11) { - _14$$11 = ch <= '9'; - } - _13$$11 = _14$$11; - } - _15$$11 = _13$$11; - if (!(_15$$11)) { - _15$$11 = ch == '-'; - } - _16$$11 = _15$$11; - if (!(_16$$11)) { - _16$$11 = ch == '_'; - } - _17$$11 = _16$$11; - if (!(_17$$11)) { - _17$$11 = ch == ':'; - } - if (_17$$11) { - if (ch == ':') { - ZVAL_LONG(&_18$$15, 0); - ZVAL_LONG(&_19$$15, cursorVar); - ZEPHIR_INIT_NVAR(&_20$$15); - zephir_substr(&_20$$15, &item, 0 , zephir_get_intval(&_19$$15), 0); - zephir_cast_to_string(&_21$$15, &_20$$15); - ZEPHIR_CPY_WRT(&variable, &_21$$15); - ZVAL_LONG(&_22$$15, (cursorVar + 1)); - ZEPHIR_INIT_NVAR(&_23$$15); - zephir_substr(&_23$$15, &item, zephir_get_intval(&_22$$15), 0, ZEPHIR_SUBSTR_NO_LENGTH); - zephir_cast_to_string(&_24$$15, &_23$$15); - ZEPHIR_CPY_WRT(®exp, &_24$$15); - break; - } - } else { - notValid = 1; - break; - } - } - if (!(notValid)) { - ZEPHIR_INIT_NVAR(&tmp); - ZVAL_LONG(&tmp, numberMatches); - _25$$17 = zephir_is_true(&variable); - if (_25$$17) { - _25$$17 = zephir_is_true(®exp); - } - if (_25$$17) { - foundPattern = 0; - for (_26$$18 = 0; _26$$18 < Z_STRLEN_P(®exp); _26$$18++) { - ch = ZEPHIR_STRING_OFFSET(®exp, _26$$18); - if (ch == '\0') { - break; - } - if (!(foundPattern)) { - if (ch == '(') { - foundPattern = 1; - } - } else { - if (ch == ')') { - foundPattern = 2; - break; - } - } - } - if (foundPattern != 2) { - ZEPHIR_INIT_NVAR(&_27$$25); - ZEPHIR_CONCAT_SVS(&_27$$25, "(", ®exp, ")"); - zephir_concat_self(&route, &_27$$25); - } else { - zephir_concat_self(&route, ®exp); - } - zephir_array_update_zval(&matches, &variable, &tmp, PH_COPY | PH_SEPARATE); - } else { - zephir_concat_self_str(&route, "([^/]*)", sizeof("([^/]*)") - 1); - zephir_array_update_zval(&matches, &item, &tmp, PH_COPY | PH_SEPARATE); - } - } else { - ZEPHIR_INIT_NVAR(&_28$$28); - ZEPHIR_CONCAT_SVS(&_28$$28, "{", &item, "}"); - zephir_concat_self(&route, &_28$$28); - } - continue; - } - } - } - } - if (bracketCount == 0) { - if (ch == '(') { - parenthesesCount++; - } else if (ch == ')') { - parenthesesCount--; - if (parenthesesCount == 0) { - numberMatches++; - } - } - } - if (bracketCount > 0) { - intermediate++; - } else { - _29$$34 = parenthesesCount == 0; - if (_29$$34) { - _29$$34 = prevCh != '\\'; - } - if (_29$$34) { - _30$$35 = ch == '.'; - if (!(_30$$35)) { - _30$$35 = ch == '+'; - } - _31$$35 = _30$$35; - if (!(_31$$35)) { - _31$$35 = ch == '|'; - } - _32$$35 = _31$$35; - if (!(_32$$35)) { - _32$$35 = ch == '#'; - } - if (_32$$35) { - zephir_concat_self_str(&route, "\\", sizeof("\\") - 1); - } - } - zephir_concat_self_char(&route, ch); - prevCh = ch; - } - } - zephir_create_array(return_value, 2, 0); - zephir_array_fast_append(return_value, &route); - zephir_array_fast_append(return_value, &matches); - RETURN_MM(); + + ZVAL_UNDEF(&targetPath); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(targetPath) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &targetPath_param); + zephir_get_strval(&targetPath, targetPath_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("targetPath"), &targetPath); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, getBeforeMatch) +static PHP_METHOD(Phalcon_Assets_Asset, setTargetUri) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *targetUri_param = NULL; + zval targetUri; zval *this_ptr = getThis(); + ZVAL_UNDEF(&targetUri); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(targetUri) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "beforeMatch"); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &targetUri_param); + zephir_get_strval(&targetUri, targetUri_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("targetUri"), &targetUri); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, getCompiledPattern) +static PHP_METHOD(Phalcon_Assets_Asset, setType) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *type_param = NULL; + zval type; zval *this_ptr = getThis(); + ZVAL_UNDEF(&type); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(type) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &type_param); + zephir_get_strval(&type, type_param); - RETURN_MEMBER(getThis(), "compiledPattern"); + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &type); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, getConverters) +static PHP_METHOD(Phalcon_Assets_Asset, setPath) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *path_param = NULL; + zval path; zval *this_ptr = getThis(); + ZVAL_UNDEF(&path); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(path) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &path_param); + zephir_get_strval(&path, path_param); - RETURN_MEMBER(getThis(), "converters"); + zephir_update_property_zval(this_ptr, ZEND_STRL("path"), &path); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, getGroup) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Assets_AssetInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Assets, AssetInterface, phalcon, assets_assetinterface, phalcon_assets_assetinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Assets_AssetInterface, getAssetKey); +ZEPHIR_DOC_METHOD(Phalcon_Assets_AssetInterface, getAttributes); +ZEPHIR_DOC_METHOD(Phalcon_Assets_AssetInterface, getFilter); +ZEPHIR_DOC_METHOD(Phalcon_Assets_AssetInterface, getType); +ZEPHIR_DOC_METHOD(Phalcon_Assets_AssetInterface, setAttributes); +ZEPHIR_DOC_METHOD(Phalcon_Assets_AssetInterface, setFilter); +ZEPHIR_DOC_METHOD(Phalcon_Assets_AssetInterface, setType); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Assets_Collection) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Assets, Collection, phalcon, assets_collection, phalcon_assets_collection_method_entry, 0); + + zend_declare_property_null(phalcon_assets_collection_ce, SL("assets"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_assets_collection_ce, SL("attributes"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_assets_collection_ce, SL("autoVersion"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_assets_collection_ce, SL("codes"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_assets_collection_ce, SL("filters"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_assets_collection_ce, SL("includedAssets"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_assets_collection_ce, SL("join"), 1, ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_assets_collection_ce, SL("local"), 1, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_assets_collection_ce, SL("prefix"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_assets_collection_ce, SL("position"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_assets_collection_ce, SL("sourcePath"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_assets_collection_ce, SL("targetLocal"), 1, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_assets_collection_ce, SL("targetPath"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_assets_collection_ce, SL("targetUri"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_assets_collection_ce, SL("version"), ZEND_ACC_PROTECTED); + phalcon_assets_collection_ce->create_object = zephir_init_properties_Phalcon_Assets_Collection; + + zend_class_implements(phalcon_assets_collection_ce, 1, zend_ce_countable); + zend_class_implements(phalcon_assets_collection_ce, 1, zend_ce_iterator); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Assets_Collection, getAssets) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "group"); + RETURN_MEMBER(getThis(), "assets"); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, getHttpMethods) +static PHP_METHOD(Phalcon_Assets_Collection, getAttributes) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "methods"); + RETURN_MEMBER(getThis(), "attributes"); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, getHostname) +static PHP_METHOD(Phalcon_Assets_Collection, setAutoVersion) { + zval *autoVersion_param = NULL, __$true, __$false; + zend_bool autoVersion; zval *this_ptr = getThis(); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(autoVersion) + ZEND_PARSE_PARAMETERS_END(); +#endif - RETURN_MEMBER(getThis(), "hostname"); + zephir_fetch_params_without_memory_grow(1, 0, &autoVersion_param); + autoVersion = zephir_get_boolval(autoVersion_param); + + + if (autoVersion) { + zephir_update_property_zval(this_ptr, ZEND_STRL("autoVersion"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("autoVersion"), &__$false); + } + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, getMatch) +static PHP_METHOD(Phalcon_Assets_Collection, getCodes) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "match"); + RETURN_MEMBER(getThis(), "codes"); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, getName) +static PHP_METHOD(Phalcon_Assets_Collection, getFilters) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "name"); + RETURN_MEMBER(getThis(), "filters"); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, getPaths) +static PHP_METHOD(Phalcon_Assets_Collection, getJoin) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "paths"); + RETURN_MEMBER(getThis(), "join"); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, getPattern) +static PHP_METHOD(Phalcon_Assets_Collection, getLocal) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "pattern"); + RETURN_MEMBER(getThis(), "local"); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, getReversedPaths) +static PHP_METHOD(Phalcon_Assets_Collection, getPrefix) { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZEPHIR_MM_GROW(); + RETURN_MEMBER(getThis(), "prefix"); +} - zephir_read_property(&_0, this_ptr, ZEND_STRL("paths"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_FUNCTION("array_flip", NULL, 174, &_0); - zephir_check_call_status(); - RETURN_MM(); +static PHP_METHOD(Phalcon_Assets_Collection, getPosition) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "position"); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, getRouteId) +static PHP_METHOD(Phalcon_Assets_Collection, getSourcePath) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "id"); + RETURN_MEMBER(getThis(), "sourcePath"); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, getRoutePaths) +static PHP_METHOD(Phalcon_Assets_Collection, getTargetLocal) { - zend_long _0$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *paths = NULL, paths_sub, __$null, moduleName, controllerName, actionName, parts, routePaths, realClassName, namespaceName, _1$$9; zval *this_ptr = getThis(); - ZVAL_UNDEF(&paths_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&moduleName); - ZVAL_UNDEF(&controllerName); - ZVAL_UNDEF(&actionName); - ZVAL_UNDEF(&parts); - ZVAL_UNDEF(&routePaths); - ZVAL_UNDEF(&realClassName); - ZVAL_UNDEF(&namespaceName); - ZVAL_UNDEF(&_1$$9); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &paths); - if (!paths) { - paths = &paths_sub; - ZEPHIR_CPY_WRT(paths, &__$null); - } else { - ZEPHIR_SEPARATE_PARAM(paths); - } + RETURN_MEMBER(getThis(), "targetLocal"); +} +static PHP_METHOD(Phalcon_Assets_Collection, getTargetPath) +{ + zval *this_ptr = getThis(); - if (Z_TYPE_P(paths) == IS_NULL) { - ZEPHIR_INIT_NVAR(paths); - array_init(paths); - } - if (Z_TYPE_P(paths) == IS_STRING) { - ZEPHIR_INIT_VAR(&moduleName); - ZVAL_NULL(&moduleName); - ZEPHIR_INIT_VAR(&controllerName); - ZVAL_NULL(&controllerName); - ZEPHIR_INIT_VAR(&actionName); - ZVAL_NULL(&actionName); - ZEPHIR_INIT_VAR(&parts); - zephir_fast_explode_str(&parts, SL("::"), paths, LONG_MAX); - do { - _0$$4 = zephir_fast_count_int(&parts); - if (_0$$4 == 3) { - ZEPHIR_OBS_NVAR(&moduleName); - zephir_array_fetch_long(&moduleName, &parts, 0, PH_NOISY, "phalcon/Mvc/Router/Route.zep", 459); - ZEPHIR_OBS_NVAR(&controllerName); - zephir_array_fetch_long(&controllerName, &parts, 1, PH_NOISY, "phalcon/Mvc/Router/Route.zep", 460); - ZEPHIR_OBS_NVAR(&actionName); - zephir_array_fetch_long(&actionName, &parts, 2, PH_NOISY, "phalcon/Mvc/Router/Route.zep", 461); - break; - } - if (_0$$4 == 2) { - ZEPHIR_OBS_NVAR(&controllerName); - zephir_array_fetch_long(&controllerName, &parts, 0, PH_NOISY, "phalcon/Mvc/Router/Route.zep", 465); - ZEPHIR_OBS_NVAR(&actionName); - zephir_array_fetch_long(&actionName, &parts, 1, PH_NOISY, "phalcon/Mvc/Router/Route.zep", 466); - break; - } - if (_0$$4 == 1) { - ZEPHIR_OBS_NVAR(&controllerName); - zephir_array_fetch_long(&controllerName, &parts, 0, PH_NOISY, "phalcon/Mvc/Router/Route.zep", 470); - break; - } - } while(0); - ZEPHIR_INIT_VAR(&routePaths); - array_init(&routePaths); - if (Z_TYPE_P(&moduleName) != IS_NULL) { - zephir_array_update_string(&routePaths, SL("module"), &moduleName, PH_COPY | PH_SEPARATE); - } - if (Z_TYPE_P(&controllerName) != IS_NULL) { - if (zephir_memnstr_str(&controllerName, SL("\\"), "phalcon/Mvc/Router/Route.zep", 484)) { - ZEPHIR_INIT_VAR(&realClassName); - zephir_get_class_ns(&realClassName, &controllerName, 0); - ZEPHIR_INIT_VAR(&namespaceName); - zephir_get_ns_class(&namespaceName, &controllerName, 0); - if (zephir_is_true(&namespaceName)) { - zephir_array_update_string(&routePaths, SL("namespace"), &namespaceName, PH_COPY | PH_SEPARATE); - } - } else { - ZEPHIR_CPY_WRT(&realClassName, &controllerName); - } - ZEPHIR_INIT_VAR(&_1$$9); - zephir_uncamelize(&_1$$9, &realClassName, NULL ); - zephir_array_update_string(&routePaths, SL("controller"), &_1$$9, PH_COPY | PH_SEPARATE); - } - if (Z_TYPE_P(&actionName) != IS_NULL) { - zephir_array_update_string(&routePaths, SL("action"), &actionName, PH_COPY | PH_SEPARATE); - } - } else { - ZEPHIR_CPY_WRT(&routePaths, paths); - } - if (UNEXPECTED(Z_TYPE_P(&routePaths) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_router_exception_ce, "The route contains invalid paths", "phalcon/Mvc/Router/Route.zep", 512); - return; - } - RETURN_CCTOR(&routePaths); + + RETURN_MEMBER(getThis(), "targetPath"); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, match) +static PHP_METHOD(Phalcon_Assets_Collection, getTargetUri) { - zval *callback, callback_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&callback_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(callback) - ZEND_PARSE_PARAMETERS_END(); -#endif - zephir_fetch_params_without_memory_grow(1, 0, &callback); + RETURN_MEMBER(getThis(), "targetUri"); +} + +static PHP_METHOD(Phalcon_Assets_Collection, getVersion) +{ + zval *this_ptr = getThis(); - zephir_update_property_zval(this_ptr, ZEND_STRL("match"), callback); - RETURN_THISW(); + + RETURN_MEMBER(getThis(), "version"); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, reConfigure) +static PHP_METHOD(Phalcon_Assets_Collection, setVersion) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *pattern_param = NULL, *paths = NULL, paths_sub, __$null, routePaths, pcrePattern, compiledPattern, extracted, _0$$4, _1$$4; - zval pattern; + zval *version_param = NULL; + zval version; zval *this_ptr = getThis(); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&paths_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&routePaths); - ZVAL_UNDEF(&pcrePattern); - ZVAL_UNDEF(&compiledPattern); - ZVAL_UNDEF(&extracted); - ZVAL_UNDEF(&_0$$4); - ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&version); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(pattern) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(paths) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(version) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &pattern_param, &paths); - if (UNEXPECTED(Z_TYPE_P(pattern_param) != IS_STRING && Z_TYPE_P(pattern_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'pattern' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(pattern_param) == IS_STRING)) { - zephir_get_strval(&pattern, pattern_param); - } else { - ZEPHIR_INIT_VAR(&pattern); - } - if (!paths) { - paths = &paths_sub; - paths = &__$null; - } + zephir_fetch_params(1, 1, 0, &version_param); + zephir_get_strval(&version, version_param); - ZEPHIR_CALL_SELF(&routePaths, "getroutepaths", NULL, 0, paths); - zephir_check_call_status(); - if (!(zephir_start_with_str(&pattern, SL("#")))) { - if (zephir_memnstr_str(&pattern, SL("{"), "phalcon/Mvc/Router/Route.zep", 552)) { - ZEPHIR_CALL_METHOD(&extracted, this_ptr, "extractnamedparams", NULL, 0, &pattern); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&pcrePattern); - zephir_array_fetch_long(&pcrePattern, &extracted, 0, PH_NOISY, "phalcon/Mvc/Router/Route.zep", 557); - ZEPHIR_INIT_VAR(&_0$$4); - zephir_array_fetch_long(&_1$$4, &extracted, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Router/Route.zep", 558); - zephir_fast_array_merge(&_0$$4, &routePaths, &_1$$4); - ZEPHIR_CPY_WRT(&routePaths, &_0$$4); - } else { - ZEPHIR_CPY_WRT(&pcrePattern, &pattern); - } - ZEPHIR_CALL_METHOD(&compiledPattern, this_ptr, "compilepattern", NULL, 0, &pcrePattern); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(&compiledPattern, &pattern); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("pattern"), &pattern); - zephir_update_property_zval(this_ptr, ZEND_STRL("compiledPattern"), &compiledPattern); - zephir_update_property_zval(this_ptr, ZEND_STRL("paths"), &routePaths); - ZEPHIR_MM_RESTORE(); + zephir_update_property_zval(this_ptr, ZEND_STRL("version"), &version); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, reset) +static PHP_METHOD(Phalcon_Assets_Collection, __construct) { zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); + ZEPHIR_MM_GROW(); - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, 0); - zephir_update_static_property_ce(phalcon_mvc_router_route_ce, ZEND_STRL("uniqueId"), &_0); + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("includedAssets"), &_0); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, setGroup) +static PHP_METHOD(Phalcon_Assets_Collection, add) { - zval *group, group_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *asset, asset_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&group_sub); + ZVAL_UNDEF(&asset_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(group, phalcon_mvc_router_groupinterface_ce) + Z_PARAM_OBJECT_OF_CLASS(asset, phalcon_assets_assetinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &group); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &asset); - zephir_update_property_zval(this_ptr, ZEND_STRL("group"), group); - RETURN_THISW(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addasset", NULL, 162, asset); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, setHttpMethods) +static PHP_METHOD(Phalcon_Assets_Collection, addCss) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *httpMethods, httpMethods_sub; + zend_bool filter, autoVersion; + zval *path_param = NULL, *local = NULL, local_sub, *filter_param = NULL, *attributes = NULL, attributes_sub, *version_param = NULL, *autoVersion_param = NULL, __$null, collectionLocal, collectionAttributes, _0, _1, _2; + zval path, version; zval *this_ptr = getThis(); - ZVAL_UNDEF(&httpMethods_sub); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&version); + ZVAL_UNDEF(&local_sub); + ZVAL_UNDEF(&attributes_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&collectionLocal); + ZVAL_UNDEF(&collectionAttributes); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(httpMethods) + ZEND_PARSE_PARAMETERS_START(1, 6) + Z_PARAM_STR(path) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(local) + Z_PARAM_BOOL(filter) + Z_PARAM_ZVAL_OR_NULL(attributes) + Z_PARAM_STR_OR_NULL(version) + Z_PARAM_BOOL(autoVersion) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &httpMethods); + zephir_fetch_params(1, 1, 5, &path_param, &local, &filter_param, &attributes, &version_param, &autoVersion_param); + if (UNEXPECTED(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 of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { + zephir_get_strval(&path, path_param); + } else { + ZEPHIR_INIT_VAR(&path); + } + if (!local) { + local = &local_sub; + local = &__$null; + } + if (!filter_param) { + filter = 1; + } else { + filter = zephir_get_boolval(filter_param); + } + if (!attributes) { + attributes = &attributes_sub; + attributes = &__$null; + } + if (!version_param) { + ZEPHIR_INIT_VAR(&version); + } else { + zephir_get_strval(&version, version_param); + } + if (!autoVersion_param) { + autoVersion = 0; + } else { + autoVersion = zephir_get_boolval(autoVersion_param); + } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "via", NULL, 0, httpMethods); + if (((Z_TYPE_P(local) == IS_TRUE || Z_TYPE_P(local) == IS_FALSE) == 1)) { + ZEPHIR_CPY_WRT(&collectionLocal, local); + } else { + ZEPHIR_OBS_NVAR(&collectionLocal); + zephir_read_property(&collectionLocal, this_ptr, ZEND_STRL("local"), PH_NOISY_CC); + } + if (Z_TYPE_P(attributes) == IS_ARRAY) { + ZEPHIR_CPY_WRT(&collectionAttributes, attributes); + } else { + ZEPHIR_OBS_NVAR(&collectionAttributes); + zephir_read_property(&collectionAttributes, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC); + } + ZEPHIR_INIT_VAR(&_0); + object_init_ex(&_0, phalcon_assets_asset_css_ce); + if (filter) { + ZVAL_BOOL(&_1, 1); + } else { + ZVAL_BOOL(&_1, 0); + } + if (autoVersion) { + ZVAL_BOOL(&_2, 1); + } else { + ZVAL_BOOL(&_2, 0); + } + ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 163, &path, &collectionLocal, &_1, &collectionAttributes, &version, &_2); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "add", NULL, 0, &_0); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, setHostname) +static PHP_METHOD(Phalcon_Assets_Collection, addFilter) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *hostname_param = NULL; - zval hostname; + zval *filter, filter_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&hostname); + ZVAL_UNDEF(&filter_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(hostname) + Z_PARAM_OBJECT_OF_CLASS(filter, phalcon_assets_filterinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &hostname_param); - if (UNEXPECTED(Z_TYPE_P(hostname_param) != IS_STRING && Z_TYPE_P(hostname_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'hostname' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(hostname_param) == IS_STRING)) { - zephir_get_strval(&hostname, hostname_param); - } else { - ZEPHIR_INIT_VAR(&hostname); - } + zephir_fetch_params_without_memory_grow(1, 0, &filter); - zephir_update_property_zval(this_ptr, ZEND_STRL("hostname"), &hostname); - RETURN_THIS(); + zephir_update_property_array_append(this_ptr, SL("filters"), filter); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, setName) +static PHP_METHOD(Phalcon_Assets_Collection, addInline) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL; - zval name; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *code, code_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); + ZVAL_UNDEF(&code_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + Z_PARAM_OBJECT_OF_CLASS(code, phalcon_assets_inline_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - zephir_get_strval(&name, name_param); + zephir_fetch_params(1, 1, 0, &code); - zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addasset", NULL, 162, code); + zephir_check_call_status(); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_Router_Route, via) +static PHP_METHOD(Phalcon_Assets_Collection, addInlineCss) { - zval *httpMethods, httpMethods_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool filter; + zval *content_param = NULL, *filter_param = NULL, *attributes = NULL, attributes_sub, __$null, collectionAttributes, _0, _1; + zval content; zval *this_ptr = getThis(); - ZVAL_UNDEF(&httpMethods_sub); + ZVAL_UNDEF(&content); + ZVAL_UNDEF(&attributes_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&collectionAttributes); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(httpMethods) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(content) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(filter) + Z_PARAM_ZVAL_OR_NULL(attributes) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &httpMethods); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &content_param, &filter_param, &attributes); + zephir_get_strval(&content, content_param); + if (!filter_param) { + filter = 1; + } else { + filter = zephir_get_boolval(filter_param); + } + if (!attributes) { + attributes = &attributes_sub; + attributes = &__$null; + } - zephir_update_property_zval(this_ptr, ZEND_STRL("methods"), httpMethods); - RETURN_THISW(); + if (Z_TYPE_P(attributes) == IS_ARRAY) { + ZEPHIR_CPY_WRT(&collectionAttributes, attributes); + } else { + ZEPHIR_OBS_NVAR(&collectionAttributes); + zephir_read_property(&collectionAttributes, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC); + } + ZEPHIR_INIT_VAR(&_0); + object_init_ex(&_0, phalcon_assets_inline_css_ce); + if (filter) { + ZVAL_BOOL(&_1, 1); + } else { + ZVAL_BOOL(&_1, 0); + } + ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 164, &content, &_1, &collectionAttributes); + zephir_check_call_status(); + zephir_update_property_array_append(this_ptr, SL("codes"), &_0); + RETURN_THIS(); } -zend_object *zephir_init_properties_Phalcon_Mvc_Router_Route(zend_class_entry *class_type) +static PHP_METHOD(Phalcon_Assets_Collection, addInlineJs) { - zval _0, _2, _4, _1$$3, _3$$4, _5$$5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("paths"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("paths"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("methods"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("methods"), &_3$$4); - } - zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("converters"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_4) == IS_NULL) { - ZEPHIR_INIT_VAR(&_5$$5); - array_init(&_5$$5); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("converters"), &_5$$5); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool filter; + zval *content_param = NULL, *filter_param = NULL, *attributes = NULL, attributes_sub, __$null, collectionAttributes, _0, _1; + zval content; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&content); + ZVAL_UNDEF(&attributes_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&collectionAttributes); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(content) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(filter) + Z_PARAM_ZVAL_OR_NULL(attributes) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &content_param, &filter_param, &attributes); + zephir_get_strval(&content, content_param); + if (!filter_param) { + filter = 1; + } else { + filter = zephir_get_boolval(filter_param); + } + if (!attributes) { + attributes = &attributes_sub; + attributes = &__$null; + } - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_Router_RouteInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\Router, RouteInterface, phalcon, mvc_router_routeinterface, phalcon_mvc_router_routeinterface_method_entry); - - return SUCCESS; + if (Z_TYPE_P(attributes) == IS_ARRAY) { + ZEPHIR_CPY_WRT(&collectionAttributes, attributes); + } else { + ZEPHIR_OBS_NVAR(&collectionAttributes); + zephir_read_property(&collectionAttributes, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC); + } + ZEPHIR_INIT_VAR(&_0); + object_init_ex(&_0, phalcon_assets_inline_js_ce); + if (filter) { + ZVAL_BOOL(&_1, 1); + } else { + ZVAL_BOOL(&_1, 0); + } + ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 165, &content, &_1, &collectionAttributes); + zephir_check_call_status(); + zephir_update_property_array_append(this_ptr, SL("codes"), &_0); + RETURN_THIS(); } -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, compilePattern); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, convert); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, getCompiledPattern); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, getHostname); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, getHttpMethods); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, getName); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, getPaths); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, getPattern); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, getReversedPaths); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, getRouteId); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, setHostname); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, setHttpMethods); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, setName); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, reConfigure); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, reset); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_Router_RouteInterface, via); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_View_Exception) +static PHP_METHOD(Phalcon_Assets_Collection, addJs) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\View, Exception, phalcon, mvc_view_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; -} - - - + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool filter, autoVersion; + zval *path_param = NULL, *local = NULL, local_sub, *filter_param = NULL, *attributes = NULL, attributes_sub, *version_param = NULL, *autoVersion_param = NULL, __$null, collectionLocal, collectionAttributes, _0, _1, _2; + zval path, version; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&version); + ZVAL_UNDEF(&local_sub); + ZVAL_UNDEF(&attributes_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&collectionLocal); + ZVAL_UNDEF(&collectionAttributes); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 6) + Z_PARAM_STR(path) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(local) + Z_PARAM_BOOL(filter) + Z_PARAM_ZVAL_OR_NULL(attributes) + Z_PARAM_STR_OR_NULL(version) + Z_PARAM_BOOL(autoVersion) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 5, &path_param, &local, &filter_param, &attributes, &version_param, &autoVersion_param); + if (UNEXPECTED(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 of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { + zephir_get_strval(&path, path_param); + } else { + ZEPHIR_INIT_VAR(&path); + } + if (!local) { + local = &local_sub; + local = &__$null; + } + if (!filter_param) { + filter = 1; + } else { + filter = zephir_get_boolval(filter_param); + } + if (!attributes) { + attributes = &attributes_sub; + attributes = &__$null; + } + if (!version_param) { + ZEPHIR_INIT_VAR(&version); + } else { + zephir_get_strval(&version, version_param); + } + if (!autoVersion_param) { + autoVersion = 0; + } else { + autoVersion = zephir_get_boolval(autoVersion_param); + } - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_View_Simple) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\View, Simple, phalcon, mvc_view_simple, phalcon_di_injectable_ce, phalcon_mvc_view_simple_method_entry, 0); - - zend_declare_property_null(phalcon_mvc_view_simple_ce, SL("activeRenderPath"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_simple_ce, SL("content"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_view_simple_ce, SL("engines"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_simple_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_simple_ce, SL("options"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_simple_ce, SL("registeredEngines"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_simple_ce, SL("viewsDir"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_simple_ce, SL("viewParams"), ZEND_ACC_PROTECTED); - phalcon_mvc_view_simple_ce->create_object = zephir_init_properties_Phalcon_Mvc_View_Simple; - - zend_class_implements(phalcon_mvc_view_simple_ce, 1, phalcon_mvc_viewbaseinterface_ce); - zend_class_implements(phalcon_mvc_view_simple_ce, 1, phalcon_events_eventsawareinterface_ce); - return SUCCESS; + if (((Z_TYPE_P(local) == IS_TRUE || Z_TYPE_P(local) == IS_FALSE) == 1)) { + ZEPHIR_CPY_WRT(&collectionLocal, local); + } else { + ZEPHIR_OBS_NVAR(&collectionLocal); + zephir_read_property(&collectionLocal, this_ptr, ZEND_STRL("local"), PH_NOISY_CC); + } + if (Z_TYPE_P(attributes) == IS_ARRAY) { + ZEPHIR_CPY_WRT(&collectionAttributes, attributes); + } else { + ZEPHIR_OBS_NVAR(&collectionAttributes); + zephir_read_property(&collectionAttributes, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC); + } + ZEPHIR_INIT_VAR(&_0); + object_init_ex(&_0, phalcon_assets_asset_js_ce); + if (filter) { + ZVAL_BOOL(&_1, 1); + } else { + ZVAL_BOOL(&_1, 0); + } + if (autoVersion) { + ZVAL_BOOL(&_2, 1); + } else { + ZVAL_BOOL(&_2, 0); + } + ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 166, &path, &collectionLocal, &_1, &collectionAttributes, &version, &_2); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "add", NULL, 0, &_0); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View_Simple, getRegisteredEngines) +static PHP_METHOD(Phalcon_Assets_Collection, count) { + zval _0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + - RETURN_MEMBER(getThis(), "registeredEngines"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("assets"), PH_NOISY_CC | PH_READONLY); + RETURN_LONG(zephir_fast_count_int(&_0)); } -static PHP_METHOD(Phalcon_Mvc_View_Simple, __construct) +static PHP_METHOD(Phalcon_Assets_Collection, current) { + zval _0, _1, _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *options_param = NULL; - zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&options); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &options_param); - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); - } else { - zephir_get_arrval(&options, options_param); - } - - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); - ZEPHIR_MM_RESTORE(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("assets"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_OBS_VAR(&_2); + zephir_read_property(&_2, this_ptr, ZEND_STRL("position"), PH_NOISY_CC); + zephir_array_fetch(&_1, &_0, &_2, PH_NOISY | PH_READONLY, "phalcon/Assets/Collection.zep", 261); + RETURN_CTOR(&_1); } -static PHP_METHOD(Phalcon_Mvc_View_Simple, __get) +static PHP_METHOD(Phalcon_Assets_Collection, getRealTargetPath) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *key_param = NULL, value, _0; - zval key; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *basePath_param = NULL, targetPath, completePath, _0; + zval basePath; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); + ZVAL_UNDEF(&basePath); + ZVAL_UNDEF(&targetPath); + ZVAL_UNDEF(&completePath); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + Z_PARAM_STR(basePath) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + zephir_fetch_params(1, 1, 0, &basePath_param); + if (UNEXPECTED(Z_TYPE_P(basePath_param) != IS_STRING && Z_TYPE_P(basePath_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'basePath' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + if (EXPECTED(Z_TYPE_P(basePath_param) == IS_STRING)) { + zephir_get_strval(&basePath, basePath_param); } else { - ZEPHIR_INIT_VAR(&key); + ZEPHIR_INIT_VAR(&basePath); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&value, &_0, &key, 1))) { - RETURN_MM_NULL(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("targetPath"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&targetPath, &_0); + ZEPHIR_INIT_VAR(&completePath); + ZEPHIR_CONCAT_VV(&completePath, &basePath, &targetPath); + if ((zephir_file_exists(&completePath) == SUCCESS)) { + ZEPHIR_RETURN_CALL_FUNCTION("realpath", NULL, 94, &completePath); + zephir_check_call_status(); + RETURN_MM(); } - RETURN_CTOR(&value); + RETURN_CCTOR(&completePath); } -static PHP_METHOD(Phalcon_Mvc_View_Simple, __set) +static PHP_METHOD(Phalcon_Assets_Collection, has) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *key_param = NULL, *value, value_sub; - zval key; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *asset, asset_sub, key, assets; zval *this_ptr = getThis(); + ZVAL_UNDEF(&asset_sub); ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&assets); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(key) - Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(asset, phalcon_assets_assetinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &key_param, &value); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } - - - zephir_update_property_array(this_ptr, SL("viewParams"), &key, value); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Mvc_View_Simple, getActiveRenderPath) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "activeRenderPath"); -} - -static PHP_METHOD(Phalcon_Mvc_View_Simple, getContent) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "content"); -} - -static PHP_METHOD(Phalcon_Mvc_View_Simple, getEventsManager) -{ - zval *this_ptr = getThis(); - + zephir_fetch_params(1, 1, 0, &asset); - RETURN_MEMBER(getThis(), "eventsManager"); + ZEPHIR_CALL_METHOD(&key, asset, "getassetkey", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_VAR(&assets); + zephir_read_property(&assets, this_ptr, ZEND_STRL("includedAssets"), PH_NOISY_CC); + RETURN_MM_BOOL(zephir_fast_in_array(&key, &assets)); } -static PHP_METHOD(Phalcon_Mvc_View_Simple, getParamsToView) +static PHP_METHOD(Phalcon_Assets_Collection, isAutoVersion) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "viewParams"); + RETURN_MEMBER(getThis(), "autoVersion"); } -static PHP_METHOD(Phalcon_Mvc_View_Simple, getVar) +static PHP_METHOD(Phalcon_Assets_Collection, join) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *key_param = NULL, value, _0; - zval key; + zval *join_param = NULL, __$true, __$false; + zend_bool join; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_0); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + Z_PARAM_BOOL(join) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } + zephir_fetch_params_without_memory_grow(1, 0, &join_param); + join = zephir_get_boolval(join_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&value, &_0, &key, 1))) { - RETURN_MM_NULL(); + if (join) { + zephir_update_property_zval(this_ptr, ZEND_STRL("join"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("join"), &__$false); } - RETURN_CTOR(&value); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_View_Simple, getViewsDir) +static PHP_METHOD(Phalcon_Assets_Collection, key) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "viewsDir"); + RETURN_MEMBER(getThis(), "position"); } -static PHP_METHOD(Phalcon_Mvc_View_Simple, partial) +static PHP_METHOD(Phalcon_Assets_Collection, next) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *partialPath_param = NULL, *params = NULL, params_sub, __$null, viewParams, mergedParams, _2, _0$$3, _1$$3; - zval partialPath; zval *this_ptr = getThis(); - ZVAL_UNDEF(&partialPath); - ZVAL_UNDEF(¶ms_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&viewParams); - ZVAL_UNDEF(&mergedParams); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(partialPath) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(params) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &partialPath_param, ¶ms); - if (UNEXPECTED(Z_TYPE_P(partialPath_param) != IS_STRING && Z_TYPE_P(partialPath_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'partialPath' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(partialPath_param) == IS_STRING)) { - zephir_get_strval(&partialPath, partialPath_param); - } else { - ZEPHIR_INIT_VAR(&partialPath); - } - if (!params) { - params = ¶ms_sub; - params = &__$null; - } + RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("position"))); +} +static PHP_METHOD(Phalcon_Assets_Collection, rewind) +{ + zval _0; + zval *this_ptr = getThis(); - ZEPHIR_CALL_FUNCTION(NULL, "ob_start", NULL, 388); - zephir_check_call_status(); - if (Z_TYPE_P(params) == IS_ARRAY) { - zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&viewParams, &_0$$3); - ZEPHIR_INIT_VAR(&mergedParams); - zephir_fast_array_merge(&mergedParams, &viewParams, params); - ZEPHIR_INIT_VAR(&_1$$3); - ZEPHIR_CREATE_SYMBOL_TABLE(); - - } else { - ZEPHIR_CPY_WRT(&mergedParams, params); - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "internalrender", NULL, 0, &partialPath, &mergedParams); - zephir_check_call_status(); - if (Z_TYPE_P(params) == IS_ARRAY) { - zephir_update_property_zval(this_ptr, ZEND_STRL("viewParams"), &viewParams); - } - ZEPHIR_CALL_FUNCTION(NULL, "ob_end_clean", NULL, 497); - zephir_check_call_status(); - zephir_read_property(&_2, this_ptr, ZEND_STRL("content"), PH_NOISY_CC | PH_READONLY); - zend_print_zval(&_2, 0); - ZEPHIR_MM_RESTORE(); + ZVAL_UNDEF(&_0); + + + + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, 0); + zephir_update_property_zval(this_ptr, ZEND_STRL("position"), &_0); } -static PHP_METHOD(Phalcon_Mvc_View_Simple, registerEngines) +static PHP_METHOD(Phalcon_Assets_Collection, setAttributes) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *engines_param = NULL; - zval engines; + zval *attributes_param = NULL; + zval attributes; zval *this_ptr = getThis(); - ZVAL_UNDEF(&engines); + ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(engines) + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &engines_param); - ZEPHIR_OBS_COPY_OR_DUP(&engines, engines_param); + zephir_fetch_params(1, 1, 0, &attributes_param); + ZEPHIR_OBS_COPY_OR_DUP(&attributes, attributes_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("registeredEngines"), &engines); - ZEPHIR_MM_RESTORE(); + zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &attributes); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View_Simple, render) +static PHP_METHOD(Phalcon_Assets_Collection, setFilters) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval params; - zval *path_param = NULL, *params_param = NULL, mergedParams, viewParams, _0, _1; - zval path; + zval *filters_param = NULL; + zval filters; zval *this_ptr = getThis(); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&mergedParams); - ZVAL_UNDEF(&viewParams); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&filters); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(path) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(params) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(filters) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &path_param, ¶ms_param); - if (UNEXPECTED(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 of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { - zephir_get_strval(&path, path_param); - } else { - ZEPHIR_INIT_VAR(&path); - } - if (!params_param) { - ZEPHIR_INIT_VAR(¶ms); - array_init(¶ms); - } else { - zephir_get_arrval(¶ms, params_param); - } + zephir_fetch_params(1, 1, 0, &filters_param); + ZEPHIR_OBS_COPY_OR_DUP(&filters, filters_param); - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_CREATE_SYMBOL_TABLE(); - - ZEPHIR_CALL_FUNCTION(NULL, "ob_start", NULL, 388); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&viewParams, &_1); - ZEPHIR_INIT_VAR(&mergedParams); - zephir_fast_array_merge(&mergedParams, &viewParams, ¶ms); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "internalrender", NULL, 0, &path, &mergedParams); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(NULL, "ob_end_clean", NULL, 497); - zephir_check_call_status(); - RETURN_MM_MEMBER(getThis(), "content"); + zephir_update_property_zval(this_ptr, ZEND_STRL("filters"), &filters); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View_Simple, setContent) +static PHP_METHOD(Phalcon_Assets_Collection, setLocal) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *content_param = NULL; - zval content; + zval *local_param = NULL, __$true, __$false; + zend_bool local; zval *this_ptr = getThis(); - ZVAL_UNDEF(&content); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(content) + Z_PARAM_BOOL(local) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &content_param); - if (UNEXPECTED(Z_TYPE_P(content_param) != IS_STRING && Z_TYPE_P(content_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'content' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(content_param) == IS_STRING)) { - zephir_get_strval(&content, content_param); - } else { - ZEPHIR_INIT_VAR(&content); + zephir_fetch_params_without_memory_grow(1, 0, &local_param); + if (UNEXPECTED(Z_TYPE_P(local_param) != IS_TRUE && Z_TYPE_P(local_param) != IS_FALSE)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'local' must be of the type bool")); + RETURN_NULL(); } + local = (Z_TYPE_P(local_param) == IS_TRUE); - zephir_update_property_zval(this_ptr, ZEND_STRL("content"), &content); - RETURN_THIS(); + if (local) { + zephir_update_property_zval(this_ptr, ZEND_STRL("local"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("local"), &__$false); + } + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_View_Simple, setEventsManager) +static PHP_METHOD(Phalcon_Assets_Collection, setPrefix) { - zval *eventsManager, eventsManager_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *prefix_param = NULL; + zval prefix; zval *this_ptr = getThis(); - ZVAL_UNDEF(&eventsManager_sub); + ZVAL_UNDEF(&prefix); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) + Z_PARAM_STR(prefix) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &prefix_param); + if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { + zephir_get_strval(&prefix, prefix_param); + } else { + ZEPHIR_INIT_VAR(&prefix); + } - zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); + zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &prefix); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View_Simple, setParamToView) +static PHP_METHOD(Phalcon_Assets_Collection, setTargetLocal) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *value, value_sub; - zval key; + zval *targetLocal_param = NULL, __$true, __$false; + zend_bool targetLocal; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(key) - Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(targetLocal) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &key_param, &value); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); + zephir_fetch_params_without_memory_grow(1, 0, &targetLocal_param); + if (UNEXPECTED(Z_TYPE_P(targetLocal_param) != IS_TRUE && Z_TYPE_P(targetLocal_param) != IS_FALSE)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'targetLocal' must be of the type bool")); + RETURN_NULL(); } + targetLocal = (Z_TYPE_P(targetLocal_param) == IS_TRUE); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "setvar", NULL, 0, &key, value); - zephir_check_call_status(); - RETURN_MM(); + if (targetLocal) { + zephir_update_property_zval(this_ptr, ZEND_STRL("targetLocal"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("targetLocal"), &__$false); + } + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_View_Simple, setVar) +static PHP_METHOD(Phalcon_Assets_Collection, setTargetPath) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *key_param = NULL, *value, value_sub; - zval key; + zval *targetPath_param = NULL; + zval targetPath; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&targetPath); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(key) - Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(targetPath) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &key_param, &value); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + zephir_fetch_params(1, 1, 0, &targetPath_param); + if (UNEXPECTED(Z_TYPE_P(targetPath_param) != IS_STRING && Z_TYPE_P(targetPath_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'targetPath' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + if (EXPECTED(Z_TYPE_P(targetPath_param) == IS_STRING)) { + zephir_get_strval(&targetPath, targetPath_param); } else { - ZEPHIR_INIT_VAR(&key); + ZEPHIR_INIT_VAR(&targetPath); } - zephir_update_property_array(this_ptr, SL("viewParams"), &key, value); + zephir_update_property_zval(this_ptr, ZEND_STRL("targetPath"), &targetPath); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View_Simple, setVars) +static PHP_METHOD(Phalcon_Assets_Collection, setTargetUri) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_bool merge; - zval *params_param = NULL, *merge_param = NULL, _0$$3, _1$$3; - zval params; + zval *targetUri_param = NULL; + zval targetUri; zval *this_ptr = getThis(); - ZVAL_UNDEF(¶ms); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&targetUri); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(params) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(merge) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(targetUri) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, ¶ms_param, &merge_param); - ZEPHIR_OBS_COPY_OR_DUP(¶ms, params_param); - if (!merge_param) { - merge = 1; + zephir_fetch_params(1, 1, 0, &targetUri_param); + if (UNEXPECTED(Z_TYPE_P(targetUri_param) != IS_STRING && Z_TYPE_P(targetUri_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'targetUri' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(targetUri_param) == IS_STRING)) { + zephir_get_strval(&targetUri, targetUri_param); } else { - merge = zephir_get_boolval(merge_param); + ZEPHIR_INIT_VAR(&targetUri); } - if (merge) { - ZEPHIR_INIT_VAR(&_0$$3); - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); - zephir_fast_array_merge(&_0$$3, &_1$$3, ¶ms); - ZEPHIR_CPY_WRT(¶ms, &_0$$3); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("viewParams"), ¶ms); + zephir_update_property_zval(this_ptr, ZEND_STRL("targetUri"), &targetUri); RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View_Simple, setViewsDir) +static PHP_METHOD(Phalcon_Assets_Collection, setSourcePath) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL; - zval *viewsDir_param = NULL, _0; - zval viewsDir; + zval *sourcePath_param = NULL; + zval sourcePath; zval *this_ptr = getThis(); - ZVAL_UNDEF(&viewsDir); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&sourcePath); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(viewsDir) + Z_PARAM_STR(sourcePath) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &viewsDir_param); - if (UNEXPECTED(Z_TYPE_P(viewsDir_param) != IS_STRING && Z_TYPE_P(viewsDir_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewsDir' must be of the type string")); + zephir_fetch_params(1, 1, 0, &sourcePath_param); + if (UNEXPECTED(Z_TYPE_P(sourcePath_param) != IS_STRING && Z_TYPE_P(sourcePath_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sourcePath' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(viewsDir_param) == IS_STRING)) { - zephir_get_strval(&viewsDir, viewsDir_param); + if (EXPECTED(Z_TYPE_P(sourcePath_param) == IS_STRING)) { + zephir_get_strval(&sourcePath, sourcePath_param); } else { - ZEPHIR_INIT_VAR(&viewsDir); + ZEPHIR_INIT_VAR(&sourcePath); } - ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_str_ce, "dirseparator", &_1, 129, &viewsDir); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("viewsDir"), &_0); - ZEPHIR_MM_RESTORE(); + zephir_update_property_zval(this_ptr, ZEND_STRL("sourcePath"), &sourcePath); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View_Simple, loadTemplateEngines) +static PHP_METHOD(Phalcon_Assets_Collection, valid) { - zval _15$$11, _20$$17; - zend_class_entry *_12$$9, *_19$$15; - zend_string *_10$$5; - zend_ulong _9$$5; - zval engines, di, registeredEngines, extension, engineService, engineObject, _0, _1$$3, _2$$4, _3$$6, _4$$6, _6$$6, *_7$$5, _8$$5, _11$$9, _16$$12, _17$$12, _18$$15, _21$$18, _22$$18, _23$$19; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL, *_13 = NULL, *_14 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&engines); - ZVAL_UNDEF(&di); - ZVAL_UNDEF(®isteredEngines); - ZVAL_UNDEF(&extension); - ZVAL_UNDEF(&engineService); - ZVAL_UNDEF(&engineObject); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&_4$$6); - ZVAL_UNDEF(&_6$$6); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_11$$9); - ZVAL_UNDEF(&_16$$12); - ZVAL_UNDEF(&_17$$12); - ZVAL_UNDEF(&_18$$15); - ZVAL_UNDEF(&_21$$18); - ZVAL_UNDEF(&_22$$18); - ZVAL_UNDEF(&_23$$19); - ZVAL_UNDEF(&_15$$11); - ZVAL_UNDEF(&_20$$17); + ZVAL_UNDEF(&_1); - ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("engines"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&engines, &_0); - if (ZEPHIR_IS_FALSE_IDENTICAL(&engines)) { - ZEPHIR_OBS_VAR(&di); - zephir_read_property(&di, this_ptr, ZEND_STRL("container"), PH_NOISY_CC); - ZEPHIR_INIT_NVAR(&engines); - array_init(&engines); - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("registeredEngines"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(®isteredEngines, &_1$$3); - if (Z_TYPE_P(®isteredEngines) != IS_ARRAY) { - ZEPHIR_INIT_VAR(&_2$$4); - object_init_ex(&_2$$4, phalcon_mvc_view_engine_php_ce); - ZEPHIR_CALL_METHOD(NULL, &_2$$4, "__construct", NULL, 499, this_ptr, &di); - zephir_check_call_status(); - zephir_array_update_string(&engines, SL(".phtml"), &_2$$4, PH_COPY | PH_SEPARATE); - } else { - if (Z_TYPE_P(&di) != IS_OBJECT) { - ZEPHIR_INIT_VAR(&_3$$6); - object_init_ex(&_3$$6, phalcon_mvc_view_exception_ce); - ZEPHIR_INIT_VAR(&_6$$6); - ZVAL_STRING(&_6$$6, "the application services"); - ZEPHIR_CALL_CE_STATIC(&_4$$6, phalcon_mvc_view_exception_ce, "containerservicenotfound", &_5, 0, &_6$$6); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_3$$6, "__construct", NULL, 8, &_4$$6); - zephir_check_call_status(); - zephir_throw_exception_debug(&_3$$6, "phalcon/Mvc/View/Simple.zep", 453); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_is_iterable(®isteredEngines, 0, "phalcon/Mvc/View/Simple.zep", 486); - if (Z_TYPE_P(®isteredEngines) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(®isteredEngines), _9$$5, _10$$5, _7$$5) - { - ZEPHIR_INIT_NVAR(&extension); - if (_10$$5 != NULL) { - ZVAL_STR_COPY(&extension, _10$$5); - } else { - ZVAL_LONG(&extension, _9$$5); - } - ZEPHIR_INIT_NVAR(&engineService); - ZVAL_COPY(&engineService, _7$$5); - if (Z_TYPE_P(&engineService) == IS_OBJECT) { - if (zephir_is_instance_of(&engineService, SL("Closure"))) { - _12$$9 = zephir_fetch_class_str_ex(SL("Closure"), ZEND_FETCH_CLASS_AUTO); - ZEPHIR_CALL_CE_STATIC(&_11$$9, _12$$9, "bind", &_13, 0, &engineService, &di); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&engineService, &_11$$9); - ZEPHIR_CALL_FUNCTION(&engineObject, "call_user_func", &_14, 255, &engineService, this_ptr); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(&engineObject, &engineService); - } - } else if (Z_TYPE_P(&engineService) == IS_STRING) { - ZEPHIR_INIT_NVAR(&_15$$11); - zephir_create_array(&_15$$11, 1, 0); - zephir_array_fast_append(&_15$$11, this_ptr); - ZEPHIR_CALL_METHOD(&engineObject, &di, "getshared", NULL, 0, &engineService, &_15$$11); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&_16$$12); - object_init_ex(&_16$$12, phalcon_mvc_view_exception_ce); - ZEPHIR_INIT_NVAR(&_17$$12); - ZEPHIR_CONCAT_SV(&_17$$12, "Invalid template engine registration for extension: ", &extension); - ZEPHIR_CALL_METHOD(NULL, &_16$$12, "__construct", NULL, 8, &_17$$12); - zephir_check_call_status(); - zephir_throw_exception_debug(&_16$$12, "phalcon/Mvc/View/Simple.zep", 481); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_array_update_zval(&engines, &extension, &engineObject, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, ®isteredEngines, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_8$$5, ®isteredEngines, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_8$$5)) { - break; - } - ZEPHIR_CALL_METHOD(&extension, ®isteredEngines, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&engineService, ®isteredEngines, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&engineService) == IS_OBJECT) { - if (zephir_is_instance_of(&engineService, SL("Closure"))) { - _19$$15 = zephir_fetch_class_str_ex(SL("Closure"), ZEND_FETCH_CLASS_AUTO); - ZEPHIR_CALL_CE_STATIC(&_18$$15, _19$$15, "bind", &_13, 0, &engineService, &di); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&engineService, &_18$$15); - ZEPHIR_CALL_FUNCTION(&engineObject, "call_user_func", &_14, 255, &engineService, this_ptr); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(&engineObject, &engineService); - } - } else if (Z_TYPE_P(&engineService) == IS_STRING) { - ZEPHIR_INIT_NVAR(&_20$$17); - zephir_create_array(&_20$$17, 1, 0); - zephir_array_fast_append(&_20$$17, this_ptr); - ZEPHIR_CALL_METHOD(&engineObject, &di, "getshared", NULL, 0, &engineService, &_20$$17); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&_21$$18); - object_init_ex(&_21$$18, phalcon_mvc_view_exception_ce); - ZEPHIR_INIT_NVAR(&_22$$18); - ZEPHIR_CONCAT_SV(&_22$$18, "Invalid template engine registration for extension: ", &extension); - ZEPHIR_CALL_METHOD(NULL, &_21$$18, "__construct", NULL, 8, &_22$$18); - zephir_check_call_status(); - zephir_throw_exception_debug(&_21$$18, "phalcon/Mvc/View/Simple.zep", 481); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_array_update_zval(&engines, &extension, &engineObject, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, ®isteredEngines, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&engineService); - ZEPHIR_INIT_NVAR(&extension); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("engines"), &engines); - } else { - zephir_read_property(&_23$$19, this_ptr, ZEND_STRL("engines"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&engines, &_23$$19); - } - RETURN_CCTOR(&engines); + zephir_read_property(&_0, this_ptr, ZEND_STRL("assets"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_1, this_ptr, ZEND_STRL("position"), PH_NOISY_CC | PH_READONLY); + RETURN_BOOL(zephir_array_isset(&_0, &_1)); } -static PHP_METHOD(Phalcon_Mvc_View_Simple, internalRender) +static PHP_METHOD(Phalcon_Assets_Collection, addAsset) { - zend_string *_7; - zend_ulong _6; - zend_bool notExists = 0, mustClean = 0, _11$$6, _22$$13; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_15 = NULL, *_18 = NULL, *_26 = NULL, *_29 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *path_param = NULL, *params, params_sub, eventsManager, engines, extension, engine, _0, _3, *_4, _5, _1$$4, _2$$4, _8$$6, _9$$6, _10$$6, _16$$6, _12$$7, _13$$10, _14$$10, _17$$12, _19$$13, _20$$13, _21$$13, _27$$13, _23$$14, _24$$17, _25$$17, _28$$19, _30$$20, _32$$21; - zval path, viewEnginePath, viewsDirPath, _31$$20; + zval *asset, asset_sub, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&viewEnginePath); - ZVAL_UNDEF(&viewsDirPath); - ZVAL_UNDEF(&_31$$20); - ZVAL_UNDEF(¶ms_sub); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&engines); - ZVAL_UNDEF(&extension); - ZVAL_UNDEF(&engine); + ZVAL_UNDEF(&asset_sub); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_8$$6); - ZVAL_UNDEF(&_9$$6); - ZVAL_UNDEF(&_10$$6); - ZVAL_UNDEF(&_16$$6); - ZVAL_UNDEF(&_12$$7); - ZVAL_UNDEF(&_13$$10); - ZVAL_UNDEF(&_14$$10); - ZVAL_UNDEF(&_17$$12); - ZVAL_UNDEF(&_19$$13); - ZVAL_UNDEF(&_20$$13); - ZVAL_UNDEF(&_21$$13); - ZVAL_UNDEF(&_27$$13); - ZVAL_UNDEF(&_23$$14); - ZVAL_UNDEF(&_24$$17); - ZVAL_UNDEF(&_25$$17); - ZVAL_UNDEF(&_28$$19); - ZVAL_UNDEF(&_30$$20); - ZVAL_UNDEF(&_32$$21); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(path) - Z_PARAM_ZVAL(params) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(asset, phalcon_assets_assetinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &path_param, ¶ms); - if (UNEXPECTED(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 of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { - zephir_get_strval(&path, path_param); - } else { - ZEPHIR_INIT_VAR(&path); - } + zephir_fetch_params(1, 1, 0, &asset); - zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_0); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - zephir_update_property_zval(this_ptr, ZEND_STRL("activeRenderPath"), &path); - } - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_2$$4); - ZVAL_STRING(&_2$$4, "view:beforeRender"); - ZEPHIR_CALL_METHOD(&_1$$4, &eventsManager, "fire", NULL, 0, &_2$$4, this_ptr); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_1$$4)) { - RETURN_MM_NULL(); - } - } - notExists = 1; - mustClean = 1; - zephir_read_property(&_0, this_ptr, ZEND_STRL("viewsDir"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_3); - ZEPHIR_CONCAT_VV(&_3, &_0, &path); - zephir_get_strval(&viewsDirPath, &_3); - ZEPHIR_CALL_METHOD(&engines, this_ptr, "loadtemplateengines", NULL, 0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, asset); zephir_check_call_status(); - zephir_is_iterable(&engines, 0, "phalcon/Mvc/View/Simple.zep", 577); - if (Z_TYPE_P(&engines) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&engines), _6, _7, _4) - { - ZEPHIR_INIT_NVAR(&extension); - if (_7 != NULL) { - ZVAL_STR_COPY(&extension, _7); - } else { - ZVAL_LONG(&extension, _6); - } - ZEPHIR_INIT_NVAR(&engine); - ZVAL_COPY(&engine, _4); - ZEPHIR_INIT_NVAR(&_8$$6); - ZEPHIR_CONCAT_VV(&_8$$6, &viewsDirPath, &extension); - ZVAL_LONG(&_9$$6, -zephir_fast_strlen_ev(&extension)); - ZEPHIR_INIT_NVAR(&_10$$6); - zephir_substr(&_10$$6, &viewsDirPath, zephir_get_intval(&_9$$6), 0, ZEPHIR_SUBSTR_NO_LENGTH); - _11$$6 = ZEPHIR_IS_EQUAL(&_10$$6, &extension); - if (_11$$6) { - _11$$6 = (zephir_file_exists(&viewsDirPath) == SUCCESS); - } - if ((zephir_file_exists(&_8$$6) == SUCCESS)) { - ZEPHIR_INIT_NVAR(&_12$$7); - ZEPHIR_CONCAT_VV(&_12$$7, &viewsDirPath, &extension); - zephir_get_strval(&viewEnginePath, &_12$$7); - } else if (_11$$6) { - ZEPHIR_CPY_WRT(&viewEnginePath, &viewsDirPath); - } else { - continue; - } - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_14$$10); - ZVAL_STRING(&_14$$10, "view:beforeRenderView"); - ZEPHIR_CALL_METHOD(&_13$$10, &eventsManager, "fire", &_15, 0, &_14$$10, this_ptr, &viewEnginePath); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_13$$10)) { - continue; - } - } - if (mustClean) { - ZVAL_BOOL(&_16$$6, 1); - } else { - ZVAL_BOOL(&_16$$6, 0); - } - ZEPHIR_CALL_METHOD(NULL, &engine, "render", NULL, 0, &viewEnginePath, params, &_16$$6); - zephir_check_call_status(); - notExists = 0; - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_17$$12); - ZVAL_STRING(&_17$$12, "view:afterRenderView"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_18, 0, &_17$$12, this_ptr); - zephir_check_call_status(); - } - break; - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &engines, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5, &engines, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5)) { - break; - } - ZEPHIR_CALL_METHOD(&extension, &engines, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&engine, &engines, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_19$$13); - ZEPHIR_CONCAT_VV(&_19$$13, &viewsDirPath, &extension); - ZVAL_LONG(&_20$$13, -zephir_fast_strlen_ev(&extension)); - ZEPHIR_INIT_NVAR(&_21$$13); - zephir_substr(&_21$$13, &viewsDirPath, zephir_get_intval(&_20$$13), 0, ZEPHIR_SUBSTR_NO_LENGTH); - _22$$13 = ZEPHIR_IS_EQUAL(&_21$$13, &extension); - if (_22$$13) { - _22$$13 = (zephir_file_exists(&viewsDirPath) == SUCCESS); - } - if ((zephir_file_exists(&_19$$13) == SUCCESS)) { - ZEPHIR_INIT_NVAR(&_23$$14); - ZEPHIR_CONCAT_VV(&_23$$14, &viewsDirPath, &extension); - zephir_get_strval(&viewEnginePath, &_23$$14); - } else if (_22$$13) { - ZEPHIR_CPY_WRT(&viewEnginePath, &viewsDirPath); - } else { - continue; - } - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_25$$17); - ZVAL_STRING(&_25$$17, "view:beforeRenderView"); - ZEPHIR_CALL_METHOD(&_24$$17, &eventsManager, "fire", &_26, 0, &_25$$17, this_ptr, &viewEnginePath); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_24$$17)) { - continue; - } - } - if (mustClean) { - ZVAL_BOOL(&_27$$13, 1); - } else { - ZVAL_BOOL(&_27$$13, 0); - } - ZEPHIR_CALL_METHOD(NULL, &engine, "render", NULL, 0, &viewEnginePath, params, &_27$$13); - zephir_check_call_status(); - notExists = 0; - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_28$$19); - ZVAL_STRING(&_28$$19, "view:afterRenderView"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", &_29, 0, &_28$$19, this_ptr); - zephir_check_call_status(); - } - break; - ZEPHIR_CALL_METHOD(NULL, &engines, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&engine); - ZEPHIR_INIT_NVAR(&extension); - if (notExists) { - ZEPHIR_INIT_VAR(&_30$$20); - object_init_ex(&_30$$20, phalcon_mvc_view_exception_ce); - ZEPHIR_INIT_VAR(&_31$$20); - ZEPHIR_CONCAT_SVS(&_31$$20, "View '", &viewsDirPath, "' was not found in the views directory"); - ZEPHIR_CALL_METHOD(NULL, &_30$$20, "__construct", NULL, 8, &_31$$20); - zephir_check_call_status(); - zephir_throw_exception_debug(&_30$$20, "phalcon/Mvc/View/Simple.zep", 580); - ZEPHIR_MM_RESTORE(); - return; + if (zephir_is_true(&_0)) { + RETURN_MM_BOOL(0); } - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_32$$21); - ZVAL_STRING(&_32$$21, "view:afterRender"); - ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_32$$21, this_ptr); - zephir_check_call_status(); + if (zephir_instance_of_ev(asset, phalcon_assets_asset_ce)) { + zephir_update_property_array_append(this_ptr, SL("assets"), asset); + } else { + zephir_update_property_array_append(this_ptr, SL("codes"), asset); } - ZEPHIR_MM_RESTORE(); + ZEPHIR_CALL_METHOD(&_1, asset, "getassetkey", NULL, 0); + zephir_check_call_status(); + zephir_update_property_array_append(this_ptr, SL("includedAssets"), &_1); + RETURN_MM_BOOL(1); } -zend_object *zephir_init_properties_Phalcon_Mvc_View_Simple(zend_class_entry *class_type) +zend_object *zephir_init_properties_Phalcon_Assets_Collection(zend_class_entry *class_type) { - zval _0, _2, _1$$3, _3$$4; + zval _0, _2, _4, _6, _1$$3, _3$$4, _5$$5, _7$$6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6); ZVAL_UNDEF(&_1$$3); ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_7$$6); ZEPHIR_MM_GROW(); @@ -177342,17 +166556,29 @@ zend_object *zephir_init_properties_Phalcon_Mvc_View_Simple(zend_class_entry *cl { zval local_this_ptr, *this_ptr = &local_this_ptr; ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("viewParams"), PH_NOISY_CC | PH_READONLY); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("filters"), PH_NOISY_CC | PH_READONLY); if (Z_TYPE_P(&_0) == IS_NULL) { ZEPHIR_INIT_VAR(&_1$$3); array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("viewParams"), &_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("filters"), &_1$$3); } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("codes"), PH_NOISY_CC | PH_READONLY); if (Z_TYPE_P(&_2) == IS_NULL) { ZEPHIR_INIT_VAR(&_3$$4); array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("codes"), &_3$$4); + } + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("attributes"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_4) == IS_NULL) { + ZEPHIR_INIT_VAR(&_5$$5); + array_init(&_5$$5); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("attributes"), &_5$$5); + } + zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("assets"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_6) == IS_NULL) { + ZEPHIR_INIT_VAR(&_7$$6); + array_init(&_7$$6); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("assets"), &_7$$6); } ZEPHIR_MM_RESTORE(); return Z_OBJ_P(this_ptr); @@ -177369,597 +166595,409 @@ zend_object *zephir_init_properties_Phalcon_Mvc_View_Simple(zend_class_entry *cl -ZEPHIR_INIT_CLASS(Phalcon_Mvc_View_Engine_AbstractEngine) +ZEPHIR_INIT_CLASS(Phalcon_Assets_Exception) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\View\\Engine, AbstractEngine, phalcon, mvc_view_engine_abstractengine, phalcon_di_injectable_ce, phalcon_mvc_view_engine_abstractengine_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Assets, Exception, phalcon, assets_exception, phalcon_exception_ce, NULL, 0); - zend_declare_property_null(phalcon_mvc_view_engine_abstractengine_ce, SL("view"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_mvc_view_engine_abstractengine_ce, 1, phalcon_mvc_view_engine_engineinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_View_Engine_AbstractEngine, __construct) -{ - zval *view, view_sub, *container = NULL, container_sub, __$null; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&view_sub); - ZVAL_UNDEF(&container_sub); - ZVAL_NULL(&__$null); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_OBJECT_OF_CLASS(view, phalcon_mvc_viewbaseinterface_ce) - Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(container, phalcon_di_diinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 1, &view, &container); - if (!container) { - container = &container_sub; - container = &__$null; - } - zephir_update_property_zval(this_ptr, ZEND_STRL("view"), view); - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); -} -static PHP_METHOD(Phalcon_Mvc_View_Engine_AbstractEngine, getContent) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); +#ifdef HAVE_CONFIG_H +#endif - ZVAL_UNDEF(&_0); - ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("view"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "getcontent", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); -} -static PHP_METHOD(Phalcon_Mvc_View_Engine_AbstractEngine, getView) +ZEPHIR_INIT_CLASS(Phalcon_Assets_FilterInterface) { - zval *this_ptr = getThis(); - - + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Assets, FilterInterface, phalcon, assets_filterinterface, phalcon_assets_filterinterface_method_entry); - RETURN_MEMBER(getThis(), "view"); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_View_Engine_AbstractEngine, partial) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *partialPath_param = NULL, *params = NULL, params_sub, __$null, _0; - zval partialPath; - zval *this_ptr = getThis(); +ZEPHIR_DOC_METHOD(Phalcon_Assets_FilterInterface, filter); - ZVAL_UNDEF(&partialPath); - ZVAL_UNDEF(¶ms_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(partialPath) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(params) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &partialPath_param, ¶ms); - if (UNEXPECTED(Z_TYPE_P(partialPath_param) != IS_STRING && Z_TYPE_P(partialPath_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'partialPath' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(partialPath_param) == IS_STRING)) { - zephir_get_strval(&partialPath, partialPath_param); - } else { - ZEPHIR_INIT_VAR(&partialPath); - } - if (!params) { - params = ¶ms_sub; - params = &__$null; - } +#ifdef HAVE_CONFIG_H +#endif - zephir_read_property(&_0, this_ptr, ZEND_STRL("view"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_0, "partial", NULL, 0, &partialPath, params); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} +ZEPHIR_INIT_CLASS(Phalcon_Assets_Inline) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Assets, Inline, phalcon, assets_inline, phalcon_assets_inline_method_entry, 0); -#ifdef HAVE_CONFIG_H -#endif + zend_declare_property_null(phalcon_assets_inline_ce, SL("attributes"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_assets_inline_ce, SL("content"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_assets_inline_ce, SL("filter"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_assets_inline_ce, SL("type"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_assets_inline_ce, 1, phalcon_assets_assetinterface_ce); + return SUCCESS; +} +static PHP_METHOD(Phalcon_Assets_Inline, getAttributes) +{ + zval *this_ptr = getThis(); + RETURN_MEMBER(getThis(), "attributes"); +} -ZEPHIR_INIT_CLASS(Phalcon_Mvc_View_Engine_EngineInterface) +static PHP_METHOD(Phalcon_Assets_Inline, getContent) { - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Mvc\\View\\Engine, EngineInterface, phalcon, mvc_view_engine_engineinterface, phalcon_mvc_view_engine_engineinterface_method_entry); + zval *this_ptr = getThis(); - return SUCCESS; -} -ZEPHIR_DOC_METHOD(Phalcon_Mvc_View_Engine_EngineInterface, getContent); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_View_Engine_EngineInterface, partial); -ZEPHIR_DOC_METHOD(Phalcon_Mvc_View_Engine_EngineInterface, render); + RETURN_MEMBER(getThis(), "content"); +} +static PHP_METHOD(Phalcon_Assets_Inline, getFilter) +{ + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H -#endif + RETURN_MEMBER(getThis(), "filter"); +} +static PHP_METHOD(Phalcon_Assets_Inline, getType) +{ + zval *this_ptr = getThis(); -ZEPHIR_INIT_CLASS(Phalcon_Mvc_View_Engine_Php) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\View\\Engine, Php, phalcon, mvc_view_engine_php, phalcon_mvc_view_engine_abstractengine_ce, phalcon_mvc_view_engine_php_method_entry, 0); - return SUCCESS; + RETURN_MEMBER(getThis(), "type"); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Php, render) +static PHP_METHOD(Phalcon_Assets_Inline, __construct) { - zend_string *_3$$4; - zend_ulong _2$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool mustClean; - zval *path_param = NULL, *params, params_sub, *mustClean_param = NULL, key, value, *_0$$4, _1$$4, _4$$5, _5$$6, _6$$7, _7$$7; - zval path; + zval attributes; + zend_bool filter; + zval *type_param = NULL, *content_param = NULL, *filter_param = NULL, *attributes_param = NULL, __$true, __$false; + zval type, content; zval *this_ptr = getThis(); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(¶ms_sub); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_6$$7); - ZVAL_UNDEF(&_7$$7); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&content); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(path) - Z_PARAM_ZVAL(params) + ZEND_PARSE_PARAMETERS_START(2, 4) + Z_PARAM_STR(type) + Z_PARAM_STR(content) Z_PARAM_OPTIONAL - Z_PARAM_BOOL(mustClean) + Z_PARAM_BOOL(filter) + Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &path_param, ¶ms, &mustClean_param); - if (UNEXPECTED(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 of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { - zephir_get_strval(&path, path_param); - } else { - ZEPHIR_INIT_VAR(&path); - } - if (!mustClean_param) { - mustClean = 0; + zephir_fetch_params(1, 2, 2, &type_param, &content_param, &filter_param, &attributes_param); + zephir_get_strval(&type, type_param); + zephir_get_strval(&content, content_param); + if (!filter_param) { + filter = 1; } else { - mustClean = zephir_get_boolval(mustClean_param); - } - - - if (mustClean) { - ZEPHIR_CALL_FUNCTION(NULL, "ob_clean", NULL, 501); - zephir_check_call_status(); - } - if (Z_TYPE_P(params) == IS_ARRAY) { - zephir_is_iterable(params, 0, "phalcon/Mvc/View/Engine/Php.zep", 36); - if (Z_TYPE_P(params) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(params), _2$$4, _3$$4, _0$$4) - { - ZEPHIR_INIT_NVAR(&key); - if (_3$$4 != NULL) { - ZVAL_STR_COPY(&key, _3$$4); - } else { - ZVAL_LONG(&key, _2$$4); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0$$4); - ZEPHIR_CPY_WRT(&_4$$5, &value); - if (zephir_set_symbol(&key, &_4$$5) == FAILURE) { - return; - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, params, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1$$4, params, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1$$4)) { - break; - } - ZEPHIR_CALL_METHOD(&key, params, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, params, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&_5$$6, &value); - if (zephir_set_symbol(&key, &_5$$6) == FAILURE) { - return; - } - ZEPHIR_CALL_METHOD(NULL, params, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - } - if (zephir_require_zval(&path) == FAILURE) { - RETURN_MM_NULL(); + filter = zephir_get_boolval(filter_param); } - if (mustClean) { - zephir_read_property(&_6$$7, this_ptr, ZEND_STRL("view"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&_7$$7, "ob_get_contents", NULL, 500); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_6$$7, "setcontent", NULL, 0, &_7$$7); - zephir_check_call_status(); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); + } + + + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &type); + zephir_update_property_zval(this_ptr, ZEND_STRL("content"), &content); + if (filter) { + zephir_update_property_zval(this_ptr, ZEND_STRL("filter"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("filter"), &__$false); } + zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &attributes); ZEPHIR_MM_RESTORE(); } +static PHP_METHOD(Phalcon_Assets_Inline, getAssetKey) +{ + zval key, _0, _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); -#ifdef HAVE_CONFIG_H -#endif + ZEPHIR_MM_GROW(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "gettype", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getcontent", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&key); + ZEPHIR_CONCAT_VSV(&key, &_0, ":", &_1); + zephir_md5(return_value, &key); + RETURN_MM(); +} +static PHP_METHOD(Phalcon_Assets_Inline, setAttributes) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *attributes_param = NULL; + zval attributes; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&attributes); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(attributes) + ZEND_PARSE_PARAMETERS_END(); +#endif -ZEPHIR_INIT_CLASS(Phalcon_Mvc_View_Engine_Volt) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\View\\Engine, Volt, phalcon, mvc_view_engine_volt, phalcon_mvc_view_engine_abstractengine_ce, phalcon_mvc_view_engine_volt_method_entry, 0); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &attributes_param); + zephir_get_arrval(&attributes, attributes_param); - zend_declare_property_null(phalcon_mvc_view_engine_volt_ce, SL("compiler"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_engine_volt_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_engine_volt_ce, SL("macros"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_engine_volt_ce, SL("options"), ZEND_ACC_PROTECTED); - phalcon_mvc_view_engine_volt_ce->create_object = zephir_init_properties_Phalcon_Mvc_View_Engine_Volt; - zend_class_implements(phalcon_mvc_view_engine_volt_ce, 1, phalcon_events_eventsawareinterface_ce); - return SUCCESS; + zephir_update_property_zval(this_ptr, ZEND_STRL("attributes"), &attributes); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, callMacro) +static PHP_METHOD(Phalcon_Assets_Inline, setFilter) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval arguments; - zval *name_param = NULL, *arguments_param = NULL, macro, _0, _1$$3; - zval name, _2$$3; + zval *filter_param = NULL, __$true, __$false; + zend_bool filter; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(¯o); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&arguments); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(arguments) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(filter) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &name_param, &arguments_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - if (!arguments_param) { - ZEPHIR_INIT_VAR(&arguments); - array_init(&arguments); - } else { - zephir_get_arrval(&arguments, arguments_param); - } + zephir_fetch_params_without_memory_grow(1, 0, &filter_param); + filter = zephir_get_boolval(filter_param); - ZEPHIR_OBS_VAR(¯o); - zephir_read_property(&_0, this_ptr, ZEND_STRL("macros"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(!(zephir_array_isset_fetch(¯o, &_0, &name, 0)))) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_mvc_view_exception_ce); - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_CONCAT_SVS(&_2$$3, "Macro '", &name, "' does not exist"); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/View/Engine/Volt.zep", 57); - ZEPHIR_MM_RESTORE(); - return; + if (filter) { + zephir_update_property_zval(this_ptr, ZEND_STRL("filter"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("filter"), &__$false); } - ZEPHIR_RETURN_CALL_FUNCTION("call_user_func", NULL, 255, ¯o, &arguments); - zephir_check_call_status(); - RETURN_MM(); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, convertEncoding) +static PHP_METHOD(Phalcon_Assets_Inline, setType) { - zend_bool _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *text_param = NULL, *from_param = NULL, *to_param = NULL; - zval text, from, to; + zval *type_param = NULL; + zval type; zval *this_ptr = getThis(); - ZVAL_UNDEF(&text); - ZVAL_UNDEF(&from); - ZVAL_UNDEF(&to); + ZVAL_UNDEF(&type); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(text) - Z_PARAM_STR(from) - Z_PARAM_STR(to) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(type) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &text_param, &from_param, &to_param); - zephir_get_strval(&text, text_param); - if (UNEXPECTED(Z_TYPE_P(from_param) != IS_STRING && Z_TYPE_P(from_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'from' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(from_param) == IS_STRING)) { - zephir_get_strval(&from, from_param); - } else { - ZEPHIR_INIT_VAR(&from); - } - if (UNEXPECTED(Z_TYPE_P(to_param) != IS_STRING && Z_TYPE_P(to_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'to' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(to_param) == IS_STRING)) { - zephir_get_strval(&to, to_param); - } else { - ZEPHIR_INIT_VAR(&to); - } + zephir_fetch_params(1, 1, 0, &type_param); + zephir_get_strval(&type, type_param); - _0 = ZEPHIR_IS_STRING_IDENTICAL(&from, "latin1"); - if (!(_0)) { - _0 = ZEPHIR_IS_STRING_IDENTICAL(&to, "utf8"); - } - if (_0) { - ZEPHIR_RETURN_CALL_FUNCTION("utf8_encode", NULL, 502, &text); - zephir_check_call_status(); - RETURN_MM(); - } - _1 = ZEPHIR_IS_STRING_IDENTICAL(&to, "latin1"); - if (!(_1)) { - _1 = ZEPHIR_IS_STRING_IDENTICAL(&from, "utf8"); - } - if (_1) { - ZEPHIR_RETURN_CALL_FUNCTION("utf8_decode", NULL, 240, &text); - zephir_check_call_status(); - RETURN_MM(); - } - if ((zephir_function_exists_ex(ZEND_STRL("mb_convert_encoding")) == SUCCESS)) { - ZEPHIR_RETURN_CALL_FUNCTION("mb_convert_encoding", NULL, 228, &text, &from, &to); - zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "'mbstring' is required to perform the charset conversion", "phalcon/Mvc/View/Engine/Volt.zep", 96); - return; + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &type); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, getCompiler) -{ - zval compiler, container, options, _0, _1$$3, _2$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&compiler); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZEPHIR_MM_GROW(); +#ifdef HAVE_CONFIG_H +#endif - zephir_read_property(&_0, this_ptr, ZEND_STRL("compiler"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&compiler, &_0); - if (Z_TYPE_P(&compiler) != IS_OBJECT) { - ZEPHIR_INIT_NVAR(&compiler); - object_init_ex(&compiler, phalcon_mvc_view_engine_volt_compiler_ce); - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("view"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &compiler, "__construct", NULL, 503, &_1$$3); - zephir_check_call_status(); - zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&container, &_2$$3); - if (Z_TYPE_P(&container) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(NULL, &compiler, "setdi", NULL, 504, &container); - zephir_check_call_status(); - } - zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&options, &_2$$3); - if (Z_TYPE_P(&options) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(NULL, &compiler, "setoptions", NULL, 505, &options); - zephir_check_call_status(); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("compiler"), &compiler); - } - RETURN_CCTOR(&compiler); -} -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, getEventsManager) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "eventsManager"); +ZEPHIR_INIT_CLASS(Phalcon_Assets_Manager) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Assets, Manager, phalcon, assets_manager, phalcon_di_abstractinjectionaware_ce, phalcon_assets_manager_method_entry, 0); + + zend_declare_property_null(phalcon_assets_manager_ce, SL("collections"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_assets_manager_ce, SL("options"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_assets_manager_ce, SL("implicitOutput"), 1, ZEND_ACC_PROTECTED); + phalcon_assets_manager_ce->create_object = zephir_init_properties_Phalcon_Assets_Manager; + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, getOptions) +static PHP_METHOD(Phalcon_Assets_Manager, __construct) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); + ZVAL_UNDEF(&options); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + zephir_get_arrval(&options, options_param); + } - RETURN_MEMBER(getThis(), "options"); + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, isIncluded) +static PHP_METHOD(Phalcon_Assets_Manager, addAsset) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *needle, needle_sub, *haystack, haystack_sub, _0$$5, _1$$4; + zval *asset, asset_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&needle_sub); - ZVAL_UNDEF(&haystack_sub); - ZVAL_UNDEF(&_0$$5); - ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&asset_sub); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(needle) - Z_PARAM_ZVAL(haystack) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(asset, phalcon_assets_asset_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &needle, &haystack); + zephir_fetch_params(1, 1, 0, &asset); - if (Z_TYPE_P(haystack) == IS_ARRAY) { - RETURN_MM_BOOL(zephir_fast_in_array(needle, haystack)); - } - if (Z_TYPE_P(haystack) == IS_STRING) { - if ((zephir_function_exists_ex(ZEND_STRL("mb_strpos")) == SUCCESS)) { - ZEPHIR_CALL_FUNCTION(&_0$$5, "mb_strpos", NULL, 273, haystack, needle); - zephir_check_call_status(); - RETURN_MM_BOOL(!ZEPHIR_IS_FALSE_IDENTICAL(&_0$$5)); - } - ZEPHIR_INIT_VAR(&_1$$4); - zephir_fast_strpos(&_1$$4, haystack, needle, 0 ); - RETURN_MM_BOOL(!ZEPHIR_IS_FALSE_IDENTICAL(&_1$$4)); - } - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_exception_ce, "Invalid haystack", "phalcon/Mvc/View/Engine/Volt.zep", 179); - return; + ZEPHIR_CALL_METHOD(&_0, asset, "gettype", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addassetbytype", NULL, 0, &_0, asset); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, length) +static PHP_METHOD(Phalcon_Assets_Manager, addAssetByType) { - zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *item, item_sub; + zval *type_param = NULL, *asset, asset_sub, collection, _0; + zval type; zval *this_ptr = getThis(); - ZVAL_UNDEF(&item_sub); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&asset_sub); + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(item) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(type) + Z_PARAM_OBJECT_OF_CLASS(asset, phalcon_assets_asset_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &item); - - - _0 = Z_TYPE_P(item) == IS_OBJECT; - if (!(_0)) { - _0 = Z_TYPE_P(item) == IS_ARRAY; + zephir_fetch_params(1, 2, 0, &type_param, &asset); + if (UNEXPECTED(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be of the type string")); + RETURN_MM_NULL(); } - if (_0) { - RETURN_MM_LONG(zephir_fast_count_int(item)); + if (EXPECTED(Z_TYPE_P(type_param) == IS_STRING)) { + zephir_get_strval(&type, type_param); + } else { + ZEPHIR_INIT_VAR(&type); } - if ((zephir_function_exists_ex(ZEND_STRL("mb_strlen")) == SUCCESS)) { - ZEPHIR_RETURN_CALL_FUNCTION("mb_strlen", NULL, 281, item); + + + ZEPHIR_OBS_VAR(&collection); + zephir_read_property(&_0, this_ptr, ZEND_STRL("collections"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&collection, &_0, &type, 0))) { + ZEPHIR_INIT_NVAR(&collection); + object_init_ex(&collection, phalcon_assets_collection_ce); + ZEPHIR_CALL_METHOD(NULL, &collection, "__construct", NULL, 167); zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_array(this_ptr, SL("collections"), &type, &collection); } - RETURN_MM_LONG(zephir_fast_strlen_ev(item)); + ZEPHIR_CALL_METHOD(NULL, &collection, "add", NULL, 168, asset); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, render) +static PHP_METHOD(Phalcon_Assets_Manager, addCss) { - zend_string *_8$$8; - zend_ulong _7$$8; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool mustClean; - zval *path_param = NULL, *params, params_sub, *mustClean_param = NULL, compiler, compiledTemplatePath, eventsManager, key, value, _0, _1$$4, _2$$4, _3$$6, _4$$6, *_5$$8, _6$$8, _9$$9, _10$$10, _11$$11, _12$$11; - zval path; + zval attributes; + zend_bool filter, autoVersion; + zval *path_param = NULL, *local = NULL, local_sub, *filter_param = NULL, *attributes_param = NULL, *version_param = NULL, *autoVersion_param = NULL, __$true, _0, _1, _2, _3; + zval path, version; zval *this_ptr = getThis(); ZVAL_UNDEF(&path); - ZVAL_UNDEF(¶ms_sub); - ZVAL_UNDEF(&compiler); - ZVAL_UNDEF(&compiledTemplatePath); - ZVAL_UNDEF(&eventsManager); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); + ZVAL_UNDEF(&version); + ZVAL_UNDEF(&local_sub); + ZVAL_BOOL(&__$true, 1); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&_4$$6); - ZVAL_UNDEF(&_6$$8); - ZVAL_UNDEF(&_9$$9); - ZVAL_UNDEF(&_10$$10); - ZVAL_UNDEF(&_11$$11); - ZVAL_UNDEF(&_12$$11); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) + ZEND_PARSE_PARAMETERS_START(1, 6) Z_PARAM_STR(path) - Z_PARAM_ZVAL(params) Z_PARAM_OPTIONAL - Z_PARAM_BOOL(mustClean) + Z_PARAM_ZVAL(local) + Z_PARAM_BOOL(filter) + Z_PARAM_ARRAY(attributes) + Z_PARAM_STR_OR_NULL(version) + Z_PARAM_BOOL(autoVersion) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &path_param, ¶ms, &mustClean_param); + zephir_fetch_params(1, 1, 5, &path_param, &local, &filter_param, &attributes_param, &version_param, &autoVersion_param); if (UNEXPECTED(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 of the type string")); RETURN_MM_NULL(); @@ -177969,4850 +167007,3543 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, render) } else { ZEPHIR_INIT_VAR(&path); } - if (!mustClean_param) { - mustClean = 0; + if (!local) { + local = &local_sub; + local = &__$true; + } + if (!filter_param) { + filter = 1; } else { - mustClean = zephir_get_boolval(mustClean_param); + filter = zephir_get_boolval(filter_param); + } + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); + } + if (!version_param) { + ZEPHIR_INIT_VAR(&version); + } else { + zephir_get_strval(&version, version_param); + } + if (!autoVersion_param) { + autoVersion = 0; + } else { + autoVersion = zephir_get_boolval(autoVersion_param); } - if (mustClean) { - ZEPHIR_CALL_FUNCTION(NULL, "ob_clean", NULL, 501); - zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + object_init_ex(&_0, phalcon_assets_asset_css_ce); + if (filter) { + ZVAL_BOOL(&_1, 1); + } else { + ZVAL_BOOL(&_1, 0); } - ZEPHIR_CALL_METHOD(&compiler, this_ptr, "getcompiler", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&eventsManager, &_0); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_2$$4); - ZVAL_STRING(&_2$$4, "view:beforeCompile"); - ZEPHIR_CALL_METHOD(&_1$$4, &eventsManager, "fire", NULL, 0, &_2$$4, this_ptr); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_1$$4)) { - RETURN_MM_NULL(); - } + if (autoVersion) { + ZVAL_BOOL(&_2, 1); + } else { + ZVAL_BOOL(&_2, 0); } - ZEPHIR_CALL_METHOD(NULL, &compiler, "compile", NULL, 0, &path); + ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 163, &path, local, &_1, &attributes, &version, &_2); zephir_check_call_status(); - if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_4$$6); - ZVAL_STRING(&_4$$6, "view:afterCompile"); - ZEPHIR_CALL_METHOD(&_3$$6, &eventsManager, "fire", NULL, 0, &_4$$6, this_ptr); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_3$$6)) { - RETURN_MM_NULL(); - } - } - ZEPHIR_CALL_METHOD(&compiledTemplatePath, &compiler, "getcompiledtemplatepath", NULL, 0); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "css"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addassetbytype", NULL, 0, &_3, &_0); zephir_check_call_status(); - if (Z_TYPE_P(params) == IS_ARRAY) { - zephir_is_iterable(params, 0, "phalcon/Mvc/View/Engine/Volt.zep", 248); - if (Z_TYPE_P(params) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(params), _7$$8, _8$$8, _5$$8) - { - ZEPHIR_INIT_NVAR(&key); - if (_8$$8 != NULL) { - ZVAL_STR_COPY(&key, _8$$8); - } else { - ZVAL_LONG(&key, _7$$8); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _5$$8); - ZEPHIR_CPY_WRT(&_9$$9, &value); - if (zephir_set_symbol(&key, &_9$$9) == FAILURE) { - return; - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, params, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_6$$8, params, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_6$$8)) { - break; - } - ZEPHIR_CALL_METHOD(&key, params, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, params, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&_10$$10, &value); - if (zephir_set_symbol(&key, &_10$$10) == FAILURE) { - return; - } - ZEPHIR_CALL_METHOD(NULL, params, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - } - if (zephir_require_zval(&compiledTemplatePath) == FAILURE) { - RETURN_MM_NULL(); - } - if (mustClean) { - zephir_read_property(&_11$$11, this_ptr, ZEND_STRL("view"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(&_12$$11, "ob_get_contents", NULL, 500); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_11$$11, "setcontent", NULL, 0, &_12$$11); - zephir_check_call_status(); - } - ZEPHIR_MM_RESTORE(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, setEventsManager) +static PHP_METHOD(Phalcon_Assets_Manager, addInlineCode) { - zval *eventsManager, eventsManager_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *code, code_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&eventsManager_sub); + ZVAL_UNDEF(&code_sub); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) + Z_PARAM_OBJECT_OF_CLASS(code, phalcon_assets_inline_ce) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &code); - zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); + ZEPHIR_CALL_METHOD(&_0, code, "gettype", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addinlinecodebytype", NULL, 0, &_0, code); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, setOptions) +static PHP_METHOD(Phalcon_Assets_Manager, addInlineCodeByType) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *options_param = NULL; - zval options; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *type_param = NULL, *code, code_sub, collection, _0; + zval type; zval *this_ptr = getThis(); - ZVAL_UNDEF(&options); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&code_sub); + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(type) + Z_PARAM_OBJECT_OF_CLASS(code, phalcon_assets_inline_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &options_param); - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + zephir_fetch_params(1, 2, 0, &type_param, &code); + if (UNEXPECTED(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(type_param) == IS_STRING)) { + zephir_get_strval(&type, type_param); + } else { + ZEPHIR_INIT_VAR(&type); + } - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); - ZEPHIR_MM_RESTORE(); + ZEPHIR_OBS_VAR(&collection); + zephir_read_property(&_0, this_ptr, ZEND_STRL("collections"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&collection, &_0, &type, 0))) { + ZEPHIR_INIT_NVAR(&collection); + object_init_ex(&collection, phalcon_assets_collection_ce); + ZEPHIR_CALL_METHOD(NULL, &collection, "__construct", NULL, 167); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("collections"), &type, &collection); + } + ZEPHIR_CALL_METHOD(NULL, &collection, "addinline", NULL, 169, code); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, slice) +static PHP_METHOD(Phalcon_Assets_Manager, addInlineCss) { - zend_bool _1$$5; - zval slice; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL, *_4 = NULL; - zend_long start, ZEPHIR_LAST_CALL_STATUS, position = 0; - zval *value, value_sub, *start_param = NULL, *end = NULL, end_sub, __$null, length, _9, _0$$3, _2$$6, _5$$9, _6$$11, _7$$10, _8$$12; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *content_param = NULL, *filter = NULL, filter_sub, *attributes = NULL, attributes_sub, __$true, __$null, _0, _1; + zval content; zval *this_ptr = getThis(); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&end_sub); + ZVAL_UNDEF(&content); + ZVAL_UNDEF(&filter_sub); + ZVAL_UNDEF(&attributes_sub); + ZVAL_BOOL(&__$true, 1); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&length); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_2$$6); - ZVAL_UNDEF(&_5$$9); - ZVAL_UNDEF(&_6$$11); - ZVAL_UNDEF(&_7$$10); - ZVAL_UNDEF(&_8$$12); - ZVAL_UNDEF(&slice); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ZVAL(value) + Z_PARAM_STR(content) Z_PARAM_OPTIONAL - Z_PARAM_LONG(start) - Z_PARAM_ZVAL_OR_NULL(end) + Z_PARAM_ZVAL(filter) + Z_PARAM_ZVAL_OR_NULL(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &value, &start_param, &end); - if (!start_param) { - start = 0; - } else { - start = zephir_get_intval(start_param); + zephir_fetch_params(1, 1, 2, &content_param, &filter, &attributes); + zephir_get_strval(&content, content_param); + if (!filter) { + filter = &filter_sub; + filter = &__$true; } - if (!end) { - end = &end_sub; - ZEPHIR_CPY_WRT(end, &__$null); - } else { - ZEPHIR_SEPARATE_PARAM(end); + if (!attributes) { + attributes = &attributes_sub; + attributes = &__$null; } - if (Z_TYPE_P(value) == IS_OBJECT) { - if (Z_TYPE_P(end) == IS_NULL) { - ZEPHIR_INIT_NVAR(end); - ZVAL_LONG(end, (zephir_fast_count_int(value) - 1)); - } - position = 0; - ZEPHIR_INIT_VAR(&slice); - array_init(&slice); - ZEPHIR_CALL_METHOD(NULL, value, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_0$$3, value, "valid", NULL, 0); - zephir_check_call_status(); - if (!(zephir_is_true(&_0$$3))) { - break; - } - _1$$5 = position >= start; - if (_1$$5) { - _1$$5 = ZEPHIR_GE_LONG(end, position); - } - if (_1$$5) { - ZEPHIR_CALL_METHOD(&_2$$6, value, "current", &_3, 0); - zephir_check_call_status(); - zephir_array_append(&slice, &_2$$6, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt.zep", 305); - } - ZEPHIR_CALL_METHOD(NULL, value, "next", &_4, 0); - zephir_check_call_status(); - position++; - } - RETURN_CTOR(&slice); - } - ZEPHIR_INIT_VAR(&length); - if (Z_TYPE_P(end) != IS_NULL) { - ZVAL_LONG(&length, (((zephir_get_numberval(end) - start)) + 1)); - } else { - ZVAL_NULL(&length); - } - if (Z_TYPE_P(value) == IS_ARRAY) { - ZVAL_LONG(&_5$$9, start); - ZEPHIR_RETURN_CALL_FUNCTION("array_slice", NULL, 260, value, &_5$$9, &length); - zephir_check_call_status(); - RETURN_MM(); - } - if ((zephir_function_exists_ex(ZEND_STRL("mb_substr")) == SUCCESS)) { - if (Z_TYPE_P(&length) != IS_NULL) { - ZVAL_LONG(&_6$$11, start); - ZEPHIR_RETURN_CALL_FUNCTION("mb_substr", NULL, 184, value, &_6$$11, &length); - zephir_check_call_status(); - RETURN_MM(); - } - ZVAL_LONG(&_7$$10, start); - ZEPHIR_RETURN_CALL_FUNCTION("mb_substr", NULL, 184, value, &_7$$10); - zephir_check_call_status(); - RETURN_MM(); - } - if (Z_TYPE_P(&length) != IS_NULL) { - ZVAL_LONG(&_8$$12, start); - zephir_substr(return_value, value, zephir_get_intval(&_8$$12), zephir_get_intval(&length), 0); - RETURN_MM(); - } - ZVAL_LONG(&_9, start); - zephir_substr(return_value, value, zephir_get_intval(&_9), 0, ZEPHIR_SUBSTR_NO_LENGTH); - RETURN_MM(); + ZEPHIR_INIT_VAR(&_0); + object_init_ex(&_0, phalcon_assets_inline_css_ce); + ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 164, &content, filter, attributes); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "css"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addinlinecodebytype", NULL, 0, &_1, &_0); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt, sort) +static PHP_METHOD(Phalcon_Assets_Manager, addInlineJs) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *value_param = NULL; - zval value; + zval *content_param = NULL, *filter = NULL, filter_sub, *attributes = NULL, attributes_sub, __$true, __$null, _0, _1; + zval content; zval *this_ptr = getThis(); - ZVAL_UNDEF(&value); + ZVAL_UNDEF(&content); + ZVAL_UNDEF(&filter_sub); + ZVAL_UNDEF(&attributes_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(value) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(content) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL(filter) + Z_PARAM_ZVAL_OR_NULL(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &value_param); - zephir_get_arrval(&value, value_param); + zephir_fetch_params(1, 1, 2, &content_param, &filter, &attributes); + zephir_get_strval(&content, content_param); + if (!filter) { + filter = &filter_sub; + filter = &__$true; + } + if (!attributes) { + attributes = &attributes_sub; + attributes = &__$null; + } - ZEPHIR_MAKE_REF(&value); - ZEPHIR_CALL_FUNCTION(NULL, "asort", NULL, 506, &value); - ZEPHIR_UNREF(&value); + ZEPHIR_INIT_VAR(&_0); + object_init_ex(&_0, phalcon_assets_inline_js_ce); + ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 165, &content, filter, attributes); zephir_check_call_status(); - RETURN_CTOR(&value); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "js"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addinlinecodebytype", NULL, 0, &_1, &_0); + zephir_check_call_status(); + RETURN_THIS(); } -zend_object *zephir_init_properties_Phalcon_Mvc_View_Engine_Volt(zend_class_entry *class_type) +static PHP_METHOD(Phalcon_Assets_Manager, addJs) { - zval _0, _2, _1$$3, _3$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("macros"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("macros"), &_3$$4); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - - - + zend_long ZEPHIR_LAST_CALL_STATUS; + zval attributes; + zend_bool filter, autoVersion; + zval *path_param = NULL, *local = NULL, local_sub, *filter_param = NULL, *attributes_param = NULL, *version_param = NULL, *autoVersion_param = NULL, __$true, _0, _1, _2, _3; + zval path, version; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&version); + ZVAL_UNDEF(&local_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&attributes); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 6) + Z_PARAM_STR(path) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL(local) + Z_PARAM_BOOL(filter) + Z_PARAM_ARRAY(attributes) + Z_PARAM_STR_OR_NULL(version) + Z_PARAM_BOOL(autoVersion) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 5, &path_param, &local, &filter_param, &attributes_param, &version_param, &autoVersion_param); + if (UNEXPECTED(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 of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { + zephir_get_strval(&path, path_param); + } else { + ZEPHIR_INIT_VAR(&path); + } + if (!local) { + local = &local_sub; + local = &__$true; + } + if (!filter_param) { + filter = 1; + } else { + filter = zephir_get_boolval(filter_param); + } + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); + } + if (!version_param) { + ZEPHIR_INIT_VAR(&version); + } else { + zephir_get_strval(&version, version_param); + } + if (!autoVersion_param) { + autoVersion = 0; + } else { + autoVersion = zephir_get_boolval(autoVersion_param); + } - -ZEPHIR_INIT_CLASS(Phalcon_Mvc_View_Engine_Volt_Compiler) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Mvc\\View\\Engine\\Volt, Compiler, phalcon, mvc_view_engine_volt_compiler, phalcon_mvc_view_engine_volt_compiler_method_entry, 0); - - zend_declare_property_bool(phalcon_mvc_view_engine_volt_compiler_ce, SL("autoescape"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_mvc_view_engine_volt_compiler_ce, SL("blockLevel"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("blocks"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("container"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("compiledTemplatePath"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("currentBlock"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("currentPath"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_mvc_view_engine_volt_compiler_ce, SL("exprLevel"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_mvc_view_engine_volt_compiler_ce, SL("extended"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("extensions"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("extendedBlocks"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("filters"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_mvc_view_engine_volt_compiler_ce, SL("foreachLevel"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("forElsePointers"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("functions"), ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_mvc_view_engine_volt_compiler_ce, SL("level"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("loopPointers"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("macros"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("options"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_mvc_view_engine_volt_compiler_ce, SL("prefix"), "", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_mvc_view_engine_volt_compiler_ce, SL("view"), ZEND_ACC_PROTECTED); - phalcon_mvc_view_engine_volt_compiler_ce->create_object = zephir_init_properties_Phalcon_Mvc_View_Engine_Volt_Compiler; - - zend_class_implements(phalcon_mvc_view_engine_volt_compiler_ce, 1, phalcon_di_injectionawareinterface_ce); - return SUCCESS; + ZEPHIR_INIT_VAR(&_0); + object_init_ex(&_0, phalcon_assets_asset_js_ce); + if (filter) { + ZVAL_BOOL(&_1, 1); + } else { + ZVAL_BOOL(&_1, 0); + } + if (autoVersion) { + ZVAL_BOOL(&_2, 1); + } else { + ZVAL_BOOL(&_2, 0); + } + ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 166, &path, local, &_1, &attributes, &version, &_2); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "js"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "addassetbytype", NULL, 0, &_3, &_0); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, __construct) +static PHP_METHOD(Phalcon_Assets_Manager, collection) { - zval *view = NULL, view_sub, __$null; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, collection, _0; + zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&view_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(view, phalcon_mvc_viewbaseinterface_ce) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(0, 1, &view); - if (!view) { - view = &view_sub; - view = &__$null; - } + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + zephir_get_strval(&name, name_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("view"), view); + ZEPHIR_OBS_VAR(&collection); + zephir_read_property(&_0, this_ptr, ZEND_STRL("collections"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&collection, &_0, &name, 0))) { + ZEPHIR_INIT_NVAR(&collection); + object_init_ex(&collection, phalcon_assets_collection_ce); + ZEPHIR_CALL_METHOD(NULL, &collection, "__construct", NULL, 167); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("collections"), &name, &collection); + } + RETURN_CCTOR(&collection); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, addExtension) +static PHP_METHOD(Phalcon_Assets_Manager, collectionAssetsByType) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *extension, extension_sub; + zval type; + zval *assets_param = NULL, *type_param = NULL, asset, *_0, _1, _2$$3, _3$$5; + zval assets, filtered; zval *this_ptr = getThis(); - ZVAL_UNDEF(&extension_sub); + ZVAL_UNDEF(&assets); + ZVAL_UNDEF(&filtered); + ZVAL_UNDEF(&asset); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&type); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(extension) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ARRAY(assets) + Z_PARAM_STR(type) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &extension); + zephir_fetch_params(1, 2, 0, &assets_param, &type_param); + zephir_get_arrval(&assets, assets_param); + zephir_get_strval(&type, type_param); - if (UNEXPECTED(Z_TYPE_P(extension) != IS_OBJECT)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "The extension is not valid", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 160); - return; - } - if ((zephir_method_exists_ex(extension, ZEND_STRL("initialize")) == SUCCESS)) { - ZEPHIR_CALL_METHOD(NULL, extension, "initialize", NULL, 0, this_ptr); + ZEPHIR_INIT_VAR(&filtered); + array_init(&filtered); + zephir_is_iterable(&assets, 0, "phalcon/Assets/Manager.zep", 240); + if (Z_TYPE_P(&assets) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&assets), _0) + { + ZEPHIR_INIT_NVAR(&asset); + ZVAL_COPY(&asset, _0); + ZEPHIR_CALL_METHOD(&_2$$3, &asset, "gettype", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_EQUAL(&_2$$3, &type)) { + zephir_array_append(&filtered, &asset, PH_SEPARATE, "phalcon/Assets/Manager.zep", 236); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &assets, "rewind", NULL, 0); zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &assets, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&asset, &assets, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_3$$5, &asset, "gettype", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_EQUAL(&_3$$5, &type)) { + zephir_array_append(&filtered, &asset, PH_SEPARATE, "phalcon/Assets/Manager.zep", 236); + } + ZEPHIR_CALL_METHOD(NULL, &assets, "next", NULL, 0); + zephir_check_call_status(); + } } - zephir_update_property_array_append(this_ptr, SL("extensions"), extension); - RETURN_THIS(); + ZEPHIR_INIT_NVAR(&asset); + RETURN_CTOR(&filtered); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, addFilter) +static PHP_METHOD(Phalcon_Assets_Manager, exists) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, *definition, definition_sub; - zval name; + zval *id_param = NULL, _0; + zval id; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&definition_sub); + ZVAL_UNDEF(&id); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(name) - Z_PARAM_ZVAL(definition) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(id) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &name_param, &definition); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + zephir_fetch_params(1, 1, 0, &id_param); + if (UNEXPECTED(Z_TYPE_P(id_param) != IS_STRING && Z_TYPE_P(id_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'id' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); + if (EXPECTED(Z_TYPE_P(id_param) == IS_STRING)) { + zephir_get_strval(&id, id_param); } else { - ZEPHIR_INIT_VAR(&name); + ZEPHIR_INIT_VAR(&id); } - zephir_update_property_array(this_ptr, SL("filters"), &name, definition); - RETURN_THIS(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("collections"), PH_NOISY_CC | PH_READONLY); + RETURN_MM_BOOL(zephir_array_isset(&_0, &id)); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, addFunction) +static PHP_METHOD(Phalcon_Assets_Manager, get) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, *definition, definition_sub; - zval name; + zval *id_param = NULL, collection, _0; + zval id; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&definition_sub); + ZVAL_UNDEF(&id); + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(name) - Z_PARAM_ZVAL(definition) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(id) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &name_param, &definition); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + zephir_fetch_params(1, 1, 0, &id_param); + if (UNEXPECTED(Z_TYPE_P(id_param) != IS_STRING && Z_TYPE_P(id_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'id' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); + if (EXPECTED(Z_TYPE_P(id_param) == IS_STRING)) { + zephir_get_strval(&id, id_param); } else { - ZEPHIR_INIT_VAR(&name); + ZEPHIR_INIT_VAR(&id); } - zephir_update_property_array(this_ptr, SL("functions"), &name, definition); - RETURN_THIS(); + ZEPHIR_OBS_VAR(&collection); + zephir_read_property(&_0, this_ptr, ZEND_STRL("collections"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(!(zephir_array_isset_fetch(&collection, &_0, &id, 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_assets_exception_ce, "The collection does not exist in the manager", "phalcon/Assets/Manager.zep", 270); + return; + } + RETURN_CCTOR(&collection); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, attributeReader) +static PHP_METHOD(Phalcon_Assets_Manager, getCollections) { - zend_bool _4$$5, _9$$8; - zval exprCode; + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "collections"); +} + +static PHP_METHOD(Phalcon_Assets_Manager, getCss) +{ + zval collection, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *expr_param = NULL, left, leftType, variable, level, leftCode, right, _0, _10, _1$$4, _2$$4, _3$$5, _5$$5, _6$$5, _7$$6, _8$$7, _11$$11, _12$$12; - zval expr; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&left); - ZVAL_UNDEF(&leftType); - ZVAL_UNDEF(&variable); - ZVAL_UNDEF(&level); - ZVAL_UNDEF(&leftCode); - ZVAL_UNDEF(&right); + ZVAL_UNDEF(&collection); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_8$$7); - ZVAL_UNDEF(&_11$$11); - ZVAL_UNDEF(&_12$$12); - ZVAL_UNDEF(&exprCode); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(expr) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &expr_param); - ZEPHIR_OBS_COPY_OR_DUP(&expr, expr_param); - - ZEPHIR_INIT_VAR(&exprCode); - ZEPHIR_OBS_VAR(&left); - zephir_array_fetch_string(&left, &expr, SL("left"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 219); - zephir_array_fetch_string(&_0, &left, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 221); - if (ZEPHIR_IS_LONG(&_0, 265)) { - ZEPHIR_OBS_VAR(&variable); - zephir_array_fetch_string(&variable, &left, SL("value"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 222); - if (ZEPHIR_IS_STRING(&variable, "loop")) { - ZEPHIR_OBS_VAR(&level); - zephir_read_property(&level, this_ptr, ZEND_STRL("foreachLevel"), PH_NOISY_CC); - ZEPHIR_CALL_METHOD(&_1$$4, this_ptr, "getuniqueprefix", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2$$4); - ZEPHIR_CONCAT_SVVS(&_2$$4, "$", &_1$$4, &level, "loop"); - zephir_concat_self(&exprCode, &_2$$4); - zephir_update_property_array(this_ptr, SL("loopPointers"), &level, &level); - } else { - ZEPHIR_OBS_VAR(&_3$$5); - zephir_read_property(&_3$$5, this_ptr, ZEND_STRL("container"), PH_NOISY_CC); - _4$$5 = Z_TYPE_P(&_3$$5) == IS_OBJECT; - if (_4$$5) { - zephir_read_property(&_5$$5, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_6$$5, &_5$$5, "has", NULL, 0, &variable); - zephir_check_call_status(); - _4$$5 = zephir_is_true(&_6$$5); - } - if (_4$$5) { - ZEPHIR_INIT_VAR(&_7$$6); - ZEPHIR_CONCAT_SV(&_7$$6, "$this->", &variable); - zephir_concat_self(&exprCode, &_7$$6); - } else { - ZEPHIR_INIT_VAR(&_8$$7); - ZEPHIR_CONCAT_SV(&_8$$7, "$", &variable); - zephir_concat_self(&exprCode, &_8$$7); - } - } - } else { - ZEPHIR_CALL_METHOD(&leftCode, this_ptr, "expression", NULL, 507, &left); + zephir_read_property(&_0, this_ptr, ZEND_STRL("collections"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_string_fetch(&collection, &_0, SL("css"), 1))) { + object_init_ex(return_value, phalcon_assets_collection_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 167); zephir_check_call_status(); - ZEPHIR_OBS_VAR(&leftType); - zephir_array_fetch_string(&leftType, &left, SL("type"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 243); - _9$$8 = !ZEPHIR_IS_LONG(&leftType, '.'); - if (_9$$8) { - _9$$8 = !ZEPHIR_IS_LONG(&leftType, 350); - } - if (_9$$8) { - zephir_concat_self(&exprCode, &leftCode); - } else { - zephir_concat_self(&exprCode, &leftCode); - } + RETURN_MM(); } - zephir_concat_self_str(&exprCode, "->", sizeof("->") - 1); - ZEPHIR_OBS_VAR(&right); - zephir_array_fetch_string(&right, &expr, SL("right"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 254); - zephir_array_fetch_string(&_10, &right, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 256); - if (ZEPHIR_IS_LONG(&_10, 265)) { - zephir_array_fetch_string(&_11$$11, &right, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 257); - zephir_concat_self(&exprCode, &_11$$11); - } else { - ZEPHIR_CALL_METHOD(&_12$$12, this_ptr, "expression", NULL, 507, &right); + RETURN_CTOR(&collection); +} + +static PHP_METHOD(Phalcon_Assets_Manager, getJs) +{ + zval collection, _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("collections"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_string_fetch(&collection, &_0, SL("js"), 1))) { + object_init_ex(return_value, phalcon_assets_collection_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 167); zephir_check_call_status(); - zephir_concat_self(&exprCode, &_12$$12); + RETURN_MM(); } - RETURN_CTOR(&exprCode); + RETURN_CTOR(&collection); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compile) +static PHP_METHOD(Phalcon_Assets_Manager, getOptions) { - zval _11$$26; + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "options"); +} + +static PHP_METHOD(Phalcon_Assets_Manager, output) +{ + zend_bool filterNeeded = 0, _18$$23, _22$$24, _32$$44, _34$$45, _48$$63, _50$$64, _60$$84, _62$$85, _68$$93; + zval output; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_16 = NULL, *_20 = NULL, *_21 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool extendsMode, _9, _13; - zval *templatePath_param = NULL, *extendsMode_param = NULL, __$true, __$false, __$null, blocksCode, compilation, compileAlways, compiledExtension, compiledPath, compiledSeparator, compiledTemplatePath, options, prefix, stat, templateSepPath, _0, _1$$4, _2$$4, _3$$10, _4$$10, _5$$13, _6$$13, _7$$17, _8$$17, _10$$22, _12$$26, _14$$29, _15$$31, _16$$32, _17$$35, _18$$35; - zval templatePath; + zval *collection, collection_sub, *callback, callback_sub, *type = NULL, type_sub, asset, assets, attributes, autoVersion, collectionSourcePath, collectionTargetPath, completeSourcePath, completeTargetPath, content, filter, filters, filteredContent, filteredJoinedContent, html, join, local, modificationTime, mustFilter, options, parameters, path, prefixedPath, sourceBasePath, sourcePath, targetBasePath, targetPath, targetUri, typeCss, useImplicitOutput, version, _0, *_7, _8, _1$$3, _2$$10, _3$$10, _4$$9, _5$$11, _6$$11, _9$$15, _10$$15, _11$$17, _12$$17, _13$$19, _14$$19, _15$$20, _17$$23, _19$$23, _23$$25, _24$$25, _25$$26, _26$$27, _27$$28, *_28$$32, _29$$32, _30$$39, _31$$44, _33$$44, _35$$46, _36$$46, _37$$47, _38$$48, _39$$49, _40$$55, _41$$55, _42$$57, _43$$57, _44$$59, _45$$59, _46$$60, _47$$63, _49$$63, _51$$65, _52$$65, _53$$66, _54$$67, _55$$68, *_56$$72, _57$$72, _58$$79, _59$$84, _61$$84, _63$$86, _64$$86, _65$$87, _66$$88, _67$$89, _69$$94, _70$$95, _71$$96, _72$$97; zval *this_ptr = getThis(); - ZVAL_UNDEF(&templatePath); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&blocksCode); - ZVAL_UNDEF(&compilation); - ZVAL_UNDEF(&compileAlways); - ZVAL_UNDEF(&compiledExtension); - ZVAL_UNDEF(&compiledPath); - ZVAL_UNDEF(&compiledSeparator); - ZVAL_UNDEF(&compiledTemplatePath); + ZVAL_UNDEF(&collection_sub); + ZVAL_UNDEF(&callback_sub); + ZVAL_UNDEF(&type_sub); + ZVAL_UNDEF(&asset); + ZVAL_UNDEF(&assets); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&autoVersion); + ZVAL_UNDEF(&collectionSourcePath); + ZVAL_UNDEF(&collectionTargetPath); + ZVAL_UNDEF(&completeSourcePath); + ZVAL_UNDEF(&completeTargetPath); + ZVAL_UNDEF(&content); + ZVAL_UNDEF(&filter); + ZVAL_UNDEF(&filters); + ZVAL_UNDEF(&filteredContent); + ZVAL_UNDEF(&filteredJoinedContent); + ZVAL_UNDEF(&html); + ZVAL_UNDEF(&join); + ZVAL_UNDEF(&local); + ZVAL_UNDEF(&modificationTime); + ZVAL_UNDEF(&mustFilter); ZVAL_UNDEF(&options); - ZVAL_UNDEF(&prefix); - ZVAL_UNDEF(&stat); - ZVAL_UNDEF(&templateSepPath); + ZVAL_UNDEF(¶meters); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&prefixedPath); + ZVAL_UNDEF(&sourceBasePath); + ZVAL_UNDEF(&sourcePath); + ZVAL_UNDEF(&targetBasePath); + ZVAL_UNDEF(&targetPath); + ZVAL_UNDEF(&targetUri); + ZVAL_UNDEF(&typeCss); + ZVAL_UNDEF(&useImplicitOutput); + ZVAL_UNDEF(&version); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$10); ZVAL_UNDEF(&_3$$10); - ZVAL_UNDEF(&_4$$10); - ZVAL_UNDEF(&_5$$13); - ZVAL_UNDEF(&_6$$13); - ZVAL_UNDEF(&_7$$17); - ZVAL_UNDEF(&_8$$17); - ZVAL_UNDEF(&_10$$22); - ZVAL_UNDEF(&_12$$26); - ZVAL_UNDEF(&_14$$29); - ZVAL_UNDEF(&_15$$31); - ZVAL_UNDEF(&_16$$32); - ZVAL_UNDEF(&_17$$35); - ZVAL_UNDEF(&_18$$35); - ZVAL_UNDEF(&_11$$26); + ZVAL_UNDEF(&_4$$9); + ZVAL_UNDEF(&_5$$11); + ZVAL_UNDEF(&_6$$11); + ZVAL_UNDEF(&_9$$15); + ZVAL_UNDEF(&_10$$15); + ZVAL_UNDEF(&_11$$17); + ZVAL_UNDEF(&_12$$17); + ZVAL_UNDEF(&_13$$19); + ZVAL_UNDEF(&_14$$19); + ZVAL_UNDEF(&_15$$20); + ZVAL_UNDEF(&_17$$23); + ZVAL_UNDEF(&_19$$23); + ZVAL_UNDEF(&_23$$25); + ZVAL_UNDEF(&_24$$25); + ZVAL_UNDEF(&_25$$26); + ZVAL_UNDEF(&_26$$27); + ZVAL_UNDEF(&_27$$28); + ZVAL_UNDEF(&_29$$32); + ZVAL_UNDEF(&_30$$39); + ZVAL_UNDEF(&_31$$44); + ZVAL_UNDEF(&_33$$44); + ZVAL_UNDEF(&_35$$46); + ZVAL_UNDEF(&_36$$46); + ZVAL_UNDEF(&_37$$47); + ZVAL_UNDEF(&_38$$48); + ZVAL_UNDEF(&_39$$49); + ZVAL_UNDEF(&_40$$55); + ZVAL_UNDEF(&_41$$55); + ZVAL_UNDEF(&_42$$57); + ZVAL_UNDEF(&_43$$57); + ZVAL_UNDEF(&_44$$59); + ZVAL_UNDEF(&_45$$59); + ZVAL_UNDEF(&_46$$60); + ZVAL_UNDEF(&_47$$63); + ZVAL_UNDEF(&_49$$63); + ZVAL_UNDEF(&_51$$65); + ZVAL_UNDEF(&_52$$65); + ZVAL_UNDEF(&_53$$66); + ZVAL_UNDEF(&_54$$67); + ZVAL_UNDEF(&_55$$68); + ZVAL_UNDEF(&_57$$72); + ZVAL_UNDEF(&_58$$79); + ZVAL_UNDEF(&_59$$84); + ZVAL_UNDEF(&_61$$84); + ZVAL_UNDEF(&_63$$86); + ZVAL_UNDEF(&_64$$86); + ZVAL_UNDEF(&_65$$87); + ZVAL_UNDEF(&_66$$88); + ZVAL_UNDEF(&_67$$89); + ZVAL_UNDEF(&_69$$94); + ZVAL_UNDEF(&_70$$95); + ZVAL_UNDEF(&_71$$96); + ZVAL_UNDEF(&_72$$97); + ZVAL_UNDEF(&output); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(templatePath) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(extendsMode) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_OBJECT_OF_CLASS(collection, phalcon_assets_collection_ce) + Z_PARAM_ZVAL(callback) + Z_PARAM_ZVAL(type) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &templatePath_param, &extendsMode_param); - if (UNEXPECTED(Z_TYPE_P(templatePath_param) != IS_STRING && Z_TYPE_P(templatePath_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'templatePath' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(templatePath_param) == IS_STRING)) { - zephir_get_strval(&templatePath, templatePath_param); - } else { - ZEPHIR_INIT_VAR(&templatePath); - } - if (!extendsMode_param) { - extendsMode = 0; - } else { - extendsMode = zephir_get_boolval(extendsMode_param); - } + zephir_fetch_params(1, 3, 0, &collection, &callback, &type); + ZEPHIR_SEPARATE_PARAM(type); - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("extended"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("extended"), &__$false); - } - if (0) { - zephir_update_property_zval(this_ptr, ZEND_STRL("extendedBlocks"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("extendedBlocks"), &__$false); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("blocks"), &__$null); - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, 0); - zephir_update_property_zval(this_ptr, ZEND_STRL("level"), &_0); - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, 0); - zephir_update_property_zval(this_ptr, ZEND_STRL("foreachLevel"), &_0); - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, 0); - zephir_update_property_zval(this_ptr, ZEND_STRL("blockLevel"), &_0); - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, 0); - zephir_update_property_zval(this_ptr, ZEND_STRL("exprLevel"), &_0); - ZEPHIR_INIT_VAR(&compilation); - ZVAL_NULL(&compilation); - zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&options, &_0); - ZEPHIR_OBS_VAR(&compileAlways); - if (!(zephir_array_isset_string_fetch(&compileAlways, &options, SL("always"), 0))) { - ZEPHIR_OBS_NVAR(&compileAlways); - if (zephir_array_isset_string_fetch(&compileAlways, &options, SL("compileAlways"), 0)) { - ZEPHIR_INIT_VAR(&_1$$4); - ZVAL_STRING(&_1$$4, "The 'compileAlways' option is deprecated. Use 'always' instead."); - ZVAL_LONG(&_2$$4, 16384); - ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_1$$4, &_2$$4); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&compileAlways); - ZVAL_BOOL(&compileAlways, 0); + ZEPHIR_INIT_VAR(&sourceBasePath); + ZVAL_NULL(&sourceBasePath); + ZEPHIR_INIT_VAR(&targetBasePath); + ZVAL_NULL(&targetBasePath); + ZEPHIR_OBS_VAR(&useImplicitOutput); + zephir_read_property(&useImplicitOutput, this_ptr, ZEND_STRL("implicitOutput"), PH_NOISY_CC); + ZEPHIR_INIT_VAR(&output); + ZEPHIR_CALL_METHOD(&_0, collection, "getassets", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&assets, this_ptr, "collectionassetsbytype", NULL, 0, &_0, type); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&filters, collection, "getfilters", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&typeCss); + ZVAL_STRING(&typeCss, "css"); + if (zephir_fast_count_int(&filters)) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&options, &_1$$3); + if (Z_TYPE_P(&options) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&sourceBasePath); + zephir_array_isset_string_fetch(&sourceBasePath, &options, SL("sourceBasePath"), 0); + ZEPHIR_OBS_NVAR(&targetBasePath); + zephir_array_isset_string_fetch(&targetBasePath, &options, SL("targetBasePath"), 0); } - } - if (UNEXPECTED(((Z_TYPE_P(&compileAlways) == IS_TRUE || Z_TYPE_P(&compileAlways) == IS_FALSE) != 1))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "'always' must be a bool value", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 318); - return; - } - ZEPHIR_OBS_VAR(&prefix); - if (!(zephir_array_isset_string_fetch(&prefix, &options, SL("prefix"), 0))) { - ZEPHIR_INIT_NVAR(&prefix); - ZVAL_STRING(&prefix, ""); - } - if (UNEXPECTED(Z_TYPE_P(&prefix) != IS_STRING)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "'prefix' must be a string", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 329); - return; - } - ZEPHIR_OBS_VAR(&compiledPath); - if (!(zephir_array_isset_string_fetch(&compiledPath, &options, SL("path"), 0))) { - ZEPHIR_OBS_NVAR(&compiledPath); - if (zephir_array_isset_string_fetch(&compiledPath, &options, SL("compiledPath"), 0)) { - ZEPHIR_INIT_VAR(&_3$$10); - ZVAL_STRING(&_3$$10, "The 'compiledPath' option is deprecated. Use 'path' instead."); - ZVAL_LONG(&_4$$10, 16384); - ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_3$$10, &_4$$10); - zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&collectionSourcePath, collection, "getsourcepath", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&collectionSourcePath)) { + ZEPHIR_INIT_VAR(&completeSourcePath); + ZEPHIR_CONCAT_VV(&completeSourcePath, &sourceBasePath, &collectionSourcePath); } else { - ZEPHIR_INIT_NVAR(&compiledPath); - ZVAL_STRING(&compiledPath, ""); + ZEPHIR_CPY_WRT(&completeSourcePath, &sourceBasePath); } - } - ZEPHIR_OBS_VAR(&compiledSeparator); - if (!(zephir_array_isset_string_fetch(&compiledSeparator, &options, SL("separator"), 0))) { - ZEPHIR_OBS_NVAR(&compiledSeparator); - if (zephir_array_isset_string_fetch(&compiledSeparator, &options, SL("compiledSeparator"), 0)) { - ZEPHIR_INIT_VAR(&_5$$13); - ZVAL_STRING(&_5$$13, "The 'compiledSeparator' option is deprecated. Use 'separator' instead."); - ZVAL_LONG(&_6$$13, 16384); - ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_5$$13, &_6$$13); - zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&collectionTargetPath, collection, "gettargetpath", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&collectionTargetPath)) { + ZEPHIR_INIT_VAR(&completeTargetPath); + ZEPHIR_CONCAT_VV(&completeTargetPath, &targetBasePath, &collectionTargetPath); } else { - ZEPHIR_INIT_NVAR(&compiledSeparator); - ZVAL_STRING(&compiledSeparator, "%%"); + ZEPHIR_CPY_WRT(&completeTargetPath, &targetBasePath); } - } - if (UNEXPECTED(Z_TYPE_P(&compiledSeparator) != IS_STRING)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "'separator' must be a string", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 362); - return; - } - ZEPHIR_OBS_VAR(&compiledExtension); - if (!(zephir_array_isset_string_fetch(&compiledExtension, &options, SL("extension"), 0))) { - ZEPHIR_OBS_NVAR(&compiledExtension); - if (zephir_array_isset_string_fetch(&compiledExtension, &options, SL("compiledExtension"), 0)) { - ZEPHIR_INIT_VAR(&_7$$17); - ZVAL_STRING(&_7$$17, "The 'compiledExtension' option is deprecated. Use 'extension' instead."); - ZVAL_LONG(&_8$$17, 16384); - ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_7$$17, &_8$$17); + ZEPHIR_INIT_VAR(&filteredJoinedContent); + ZVAL_STRING(&filteredJoinedContent, ""); + ZEPHIR_CALL_METHOD(&join, collection, "getjoin", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&join)) { + if (UNEXPECTED(!zephir_is_true(&completeTargetPath))) { + ZEPHIR_INIT_VAR(&_2$$10); + object_init_ex(&_2$$10, phalcon_assets_exception_ce); + ZEPHIR_INIT_VAR(&_3$$10); + ZEPHIR_CONCAT_SVS(&_3$$10, "Path '", &completeTargetPath, "' is not a valid target path (1)"); + ZEPHIR_CALL_METHOD(NULL, &_2$$10, "__construct", NULL, 8, &_3$$10); + zephir_check_call_status(); + zephir_throw_exception_debug(&_2$$10, "phalcon/Assets/Manager.zep", 433); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_FUNCTION(&_4$$9, "is_dir", NULL, 136, &completeTargetPath); zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&compiledExtension); - ZVAL_STRING(&compiledExtension, ".php"); + if (UNEXPECTED(zephir_is_true(&_4$$9))) { + ZEPHIR_INIT_VAR(&_5$$11); + object_init_ex(&_5$$11, phalcon_assets_exception_ce); + ZEPHIR_INIT_VAR(&_6$$11); + ZEPHIR_CONCAT_SVS(&_6$$11, "Path '", &completeTargetPath, "' is not a valid target path (2), is dir."); + ZEPHIR_CALL_METHOD(NULL, &_5$$11, "__construct", NULL, 8, &_6$$11); + zephir_check_call_status(); + zephir_throw_exception_debug(&_5$$11, "phalcon/Assets/Manager.zep", 439); + ZEPHIR_MM_RESTORE(); + return; + } } } - if (UNEXPECTED(Z_TYPE_P(&compiledExtension) != IS_STRING)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "'extension' must be a string", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 380); - return; - } - ZEPHIR_OBS_VAR(&stat); - if (!(zephir_array_isset_string_fetch(&stat, &options, SL("stat"), 0))) { - ZEPHIR_INIT_NVAR(&stat); - ZVAL_BOOL(&stat, 1); - } - _9 = Z_TYPE_P(&compiledPath) == IS_OBJECT; - if (_9) { - _9 = zephir_is_instance_of(&compiledPath, SL("Closure")); - } - if (Z_TYPE_P(&compiledPath) == IS_STRING) { - if (!(ZEPHIR_IS_EMPTY(&compiledPath))) { - ZEPHIR_CALL_FUNCTION(&_10$$22, "realpath", NULL, 94, &templatePath); + zephir_is_iterable(&assets, 0, "phalcon/Assets/Manager.zep", 697); + if (Z_TYPE_P(&assets) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&assets), _7) + { + ZEPHIR_INIT_NVAR(&asset); + ZVAL_COPY(&asset, _7); + filterNeeded = 0; + ZEPHIR_CALL_METHOD(type, &asset, "gettype", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&templateSepPath); - zephir_prepare_virtual_path(&templateSepPath, &_10$$22, &compiledSeparator); - } else { - ZEPHIR_CPY_WRT(&templateSepPath, &templatePath); - } - ZEPHIR_INIT_VAR(&compiledTemplatePath); - if (extendsMode) { - ZEPHIR_CONCAT_VVVVSVV(&compiledTemplatePath, &compiledPath, &prefix, &templateSepPath, &compiledSeparator, "e", &compiledSeparator, &compiledExtension); - } else { - ZEPHIR_CONCAT_VVVV(&compiledTemplatePath, &compiledPath, &prefix, &templateSepPath, &compiledExtension); - } - } else if (_9) { - ZEPHIR_INIT_VAR(&_11$$26); - zephir_create_array(&_11$$26, 3, 0); - zephir_array_fast_append(&_11$$26, &templatePath); - zephir_array_fast_append(&_11$$26, &options); - ZEPHIR_INIT_VAR(&_12$$26); - ZVAL_BOOL(&_12$$26, extendsMode); - zephir_array_fast_append(&_11$$26, &_12$$26); - ZEPHIR_INIT_NVAR(&compiledTemplatePath); - ZEPHIR_CALL_USER_FUNC_ARRAY(&compiledTemplatePath, &compiledPath, &_11$$26); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&compiledTemplatePath) != IS_STRING)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "'path' closure didn't return a valid string", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 433); - return; - } - } else { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "'path' must be a string or a closure", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 438); - return; - } - _13 = !((zephir_file_exists(&compiledTemplatePath) == SUCCESS)); - if (!(_13)) { - _13 = zephir_is_true(&compileAlways); - } - if (_13) { - if (extendsMode) { - ZVAL_BOOL(&_14$$29, 1); - } else { - ZVAL_BOOL(&_14$$29, 0); - } - ZEPHIR_CALL_METHOD(&compilation, this_ptr, "compilefile", NULL, 0, &templatePath, &compiledTemplatePath, &_14$$29); - zephir_check_call_status(); - } else { - if (ZEPHIR_IS_TRUE_IDENTICAL(&stat)) { - ZEPHIR_INIT_VAR(&_15$$31); - if (zephir_compare_mtime(&templatePath, &compiledTemplatePath)) { - if (extendsMode) { - ZVAL_BOOL(&_16$$32, 1); + ZEPHIR_CALL_METHOD(&local, &asset, "getlocal", NULL, 0); + zephir_check_call_status(); + if (zephir_fast_count_int(&filters)) { + if (zephir_is_true(&local)) { + ZEPHIR_CALL_METHOD(&sourcePath, &asset, "getrealsourcepath", NULL, 0, &completeSourcePath); + zephir_check_call_status(); + if (UNEXPECTED(!zephir_is_true(&sourcePath))) { + ZEPHIR_CALL_METHOD(&sourcePath, &asset, "getpath", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_9$$15); + object_init_ex(&_9$$15, phalcon_assets_exception_ce); + ZEPHIR_INIT_NVAR(&_10$$15); + ZEPHIR_CONCAT_SVS(&_10$$15, "Asset '", &sourcePath, "' does not have a valid source path"); + ZEPHIR_CALL_METHOD(NULL, &_9$$15, "__construct", NULL, 8, &_10$$15); + zephir_check_call_status(); + zephir_throw_exception_debug(&_9$$15, "phalcon/Assets/Manager.zep", 477); + ZEPHIR_MM_RESTORE(); + return; + } } else { - ZVAL_BOOL(&_16$$32, 0); + ZEPHIR_CALL_METHOD(&sourcePath, &asset, "getpath", NULL, 0); + zephir_check_call_status(); + filterNeeded = 1; } - ZEPHIR_CALL_METHOD(&compilation, this_ptr, "compilefile", NULL, 0, &templatePath, &compiledTemplatePath, &_16$$32); + ZEPHIR_CALL_METHOD(&targetPath, &asset, "getrealtargetpath", NULL, 0, &completeTargetPath); zephir_check_call_status(); + if (UNEXPECTED(!zephir_is_true(&targetPath))) { + ZEPHIR_INIT_NVAR(&_11$$17); + object_init_ex(&_11$$17, phalcon_assets_exception_ce); + ZEPHIR_INIT_NVAR(&_12$$17); + ZEPHIR_CONCAT_SVS(&_12$$17, "Asset '", &sourcePath, "' does not have a valid target path"); + ZEPHIR_CALL_METHOD(NULL, &_11$$17, "__construct", NULL, 8, &_12$$17); + zephir_check_call_status(); + zephir_throw_exception_debug(&_11$$17, "phalcon/Assets/Manager.zep", 503); + ZEPHIR_MM_RESTORE(); + return; + } + if (zephir_is_true(&local)) { + if (UNEXPECTED(ZEPHIR_IS_EQUAL(&targetPath, &sourcePath))) { + ZEPHIR_INIT_NVAR(&_13$$19); + object_init_ex(&_13$$19, phalcon_assets_exception_ce); + ZEPHIR_INIT_NVAR(&_14$$19); + ZEPHIR_CONCAT_SVS(&_14$$19, "Asset '", &targetPath, "' have the same source and target paths"); + ZEPHIR_CALL_METHOD(NULL, &_13$$19, "__construct", NULL, 8, &_14$$19); + zephir_check_call_status(); + zephir_throw_exception_debug(&_13$$19, "phalcon/Assets/Manager.zep", 513); + ZEPHIR_MM_RESTORE(); + return; + } + if ((zephir_file_exists(&targetPath) == SUCCESS)) { + ZEPHIR_INIT_NVAR(&_15$$20); + if (zephir_compare_mtime(&targetPath, &sourcePath)) { + filterNeeded = 1; + } + } else { + filterNeeded = 1; + } + } } else { - if (extendsMode) { - ZEPHIR_INIT_VAR(&blocksCode); - zephir_file_get_contents(&blocksCode, &compiledTemplatePath); - if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&blocksCode))) { - ZEPHIR_INIT_VAR(&_17$$35); - object_init_ex(&_17$$35, phalcon_mvc_view_engine_volt_exception_ce); - ZEPHIR_INIT_VAR(&_18$$35); - ZEPHIR_CONCAT_SVS(&_18$$35, "Extends compilation file ", &compiledTemplatePath, " could not be opened"); - ZEPHIR_CALL_METHOD(NULL, &_17$$35, "__construct", NULL, 508, &_18$$35); + ZEPHIR_CALL_METHOD(&path, &asset, "getrealtargeturi", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&prefixedPath, this_ptr, "getprefixedpath", &_16, 170, collection, &path); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_17$$23, &asset, "getversion", NULL, 0); + zephir_check_call_status(); + _18$$23 = Z_TYPE_P(&_17$$23) == IS_NULL; + if (_18$$23) { + ZEPHIR_CALL_METHOD(&_19$$23, &asset, "isautoversion", NULL, 0); + zephir_check_call_status(); + _18$$23 = zephir_is_true(&_19$$23); + } + if (_18$$23) { + ZEPHIR_CALL_METHOD(&version, collection, "getversion", &_20, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&autoVersion, collection, "isautoversion", &_21, 0); + zephir_check_call_status(); + _22$$24 = zephir_is_true(&autoVersion); + if (_22$$24) { + _22$$24 = zephir_is_true(&local); + } + if (_22$$24) { + ZEPHIR_CALL_METHOD(&_23$$25, &asset, "getrealsourcepath", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&modificationTime); + zephir_filemtime(&modificationTime, &_23$$25); + ZEPHIR_INIT_NVAR(&_24$$25); + if (zephir_is_true(&version)) { + ZEPHIR_INIT_NVAR(&_24$$25); + ZEPHIR_CONCAT_VSV(&_24$$25, &version, ".", &modificationTime); + } else { + ZEPHIR_CPY_WRT(&_24$$25, &modificationTime); + } + ZEPHIR_CPY_WRT(&version, &_24$$25); + } + if (zephir_is_true(&version)) { + ZEPHIR_INIT_NVAR(&_25$$26); + ZEPHIR_CONCAT_VSV(&_25$$26, &prefixedPath, "?ver=", &version); + ZEPHIR_CPY_WRT(&prefixedPath, &_25$$26); + } + } + ZEPHIR_CALL_METHOD(&attributes, &asset, "getattributes", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(¶meters); + if (Z_TYPE_P(&attributes) == IS_ARRAY) { + zephir_array_update_long(&attributes, 0, &prefixedPath, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + ZEPHIR_INIT_NVAR(&_26$$27); + zephir_create_array(&_26$$27, 1, 0); + zephir_array_fast_append(&_26$$27, &attributes); + ZEPHIR_CPY_WRT(¶meters, &_26$$27); + } else { + ZEPHIR_INIT_NVAR(&_27$$28); + zephir_create_array(&_27$$28, 1, 0); + zephir_array_fast_append(&_27$$28, &prefixedPath); + ZEPHIR_CPY_WRT(¶meters, &_27$$28); + } + zephir_array_append(¶meters, &local, PH_SEPARATE, "phalcon/Assets/Manager.zep", 559); + ZEPHIR_INIT_NVAR(&html); + ZEPHIR_CALL_USER_FUNC_ARRAY(&html, callback, ¶meters); + zephir_check_call_status(); + if (ZEPHIR_IS_TRUE(&useImplicitOutput)) { + zend_print_zval(&html, 0); + } else { + zephir_concat_self(&output, &html); + } + continue; + } + if (filterNeeded == 1) { + ZEPHIR_CALL_METHOD(&content, &asset, "getcontent", NULL, 0, &completeSourcePath); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&mustFilter, &asset, "getfilter", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_TRUE(&mustFilter)) { + zephir_is_iterable(&filters, 0, "phalcon/Assets/Manager.zep", 612); + if (Z_TYPE_P(&filters) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&filters), _28$$32) + { + ZEPHIR_INIT_NVAR(&filter); + ZVAL_COPY(&filter, _28$$32); + if (UNEXPECTED(Z_TYPE_P(&filter) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_assets_exception_ce, "Filter is invalid", "phalcon/Assets/Manager.zep", 598); + return; + } + ZEPHIR_CALL_METHOD(&filteredContent, &filter, "filter", NULL, 0, &content); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&content, &filteredContent); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &filters, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_29$$32, &filters, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_29$$32)) { + break; + } + ZEPHIR_CALL_METHOD(&filter, &filters, "current", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&filter) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_assets_exception_ce, "Filter is invalid", "phalcon/Assets/Manager.zep", 598); + return; + } + ZEPHIR_CALL_METHOD(&filteredContent, &filter, "filter", NULL, 0, &content); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&content, &filteredContent); + ZEPHIR_CALL_METHOD(NULL, &filters, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&filter); + if (ZEPHIR_IS_TRUE(&join)) { + if (ZEPHIR_IS_EQUAL(type, &typeCss)) { + zephir_concat_self(&filteredJoinedContent, &filteredContent); + } else { + ZEPHIR_INIT_NVAR(&_30$$39); + ZEPHIR_CONCAT_VS(&_30$$39, &filteredContent, ";"); + zephir_concat_self(&filteredJoinedContent, &_30$$39); + } + } + } else { + if (ZEPHIR_IS_TRUE(&join)) { + zephir_concat_self(&filteredJoinedContent, &content); + } else { + ZEPHIR_CPY_WRT(&filteredContent, &content); + } + } + if (!(zephir_is_true(&join))) { + zephir_file_put_contents(NULL, &targetPath, &filteredContent); + } + } + if (!(zephir_is_true(&join))) { + ZEPHIR_CALL_METHOD(&path, &asset, "getrealtargeturi", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&prefixedPath, this_ptr, "getprefixedpath", &_16, 170, collection, &path); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_31$$44, &asset, "getversion", NULL, 0); + zephir_check_call_status(); + _32$$44 = Z_TYPE_P(&_31$$44) == IS_NULL; + if (_32$$44) { + ZEPHIR_CALL_METHOD(&_33$$44, &asset, "isautoversion", NULL, 0); + zephir_check_call_status(); + _32$$44 = zephir_is_true(&_33$$44); + } + if (_32$$44) { + ZEPHIR_CALL_METHOD(&version, collection, "getversion", &_20, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&autoVersion, collection, "isautoversion", &_21, 0); + zephir_check_call_status(); + _34$$45 = zephir_is_true(&autoVersion); + if (_34$$45) { + _34$$45 = zephir_is_true(&local); + } + if (_34$$45) { + ZEPHIR_CALL_METHOD(&_35$$46, &asset, "getrealsourcepath", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&modificationTime); + zephir_filemtime(&modificationTime, &_35$$46); + ZEPHIR_INIT_NVAR(&_36$$46); + if (zephir_is_true(&version)) { + ZEPHIR_INIT_NVAR(&_36$$46); + ZEPHIR_CONCAT_VSV(&_36$$46, &version, ".", &modificationTime); + } else { + ZEPHIR_CPY_WRT(&_36$$46, &modificationTime); + } + ZEPHIR_CPY_WRT(&version, &_36$$46); + } + if (zephir_is_true(&version)) { + ZEPHIR_INIT_NVAR(&_37$$47); + ZEPHIR_CONCAT_VSV(&_37$$47, &prefixedPath, "?ver=", &version); + ZEPHIR_CPY_WRT(&prefixedPath, &_37$$47); + } + } + ZEPHIR_CALL_METHOD(&attributes, &asset, "getattributes", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&local); + ZVAL_BOOL(&local, 1); + if (Z_TYPE_P(&attributes) == IS_ARRAY) { + zephir_array_update_long(&attributes, 0, &prefixedPath, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + ZEPHIR_INIT_NVAR(&_38$$48); + zephir_create_array(&_38$$48, 1, 0); + zephir_array_fast_append(&_38$$48, &attributes); + ZEPHIR_CPY_WRT(¶meters, &_38$$48); + } else { + ZEPHIR_INIT_NVAR(&_39$$49); + zephir_create_array(&_39$$49, 1, 0); + zephir_array_fast_append(&_39$$49, &prefixedPath); + ZEPHIR_CPY_WRT(¶meters, &_39$$49); + } + zephir_array_append(¶meters, &local, PH_SEPARATE, "phalcon/Assets/Manager.zep", 679); + ZEPHIR_INIT_NVAR(&html); + ZEPHIR_CALL_USER_FUNC_ARRAY(&html, callback, ¶meters); + zephir_check_call_status(); + if (ZEPHIR_IS_TRUE(&useImplicitOutput)) { + zend_print_zval(&html, 0); + } else { + zephir_concat_self(&output, &html); + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &assets, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_8, &assets, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_8)) { + break; + } + ZEPHIR_CALL_METHOD(&asset, &assets, "current", NULL, 0); + zephir_check_call_status(); + filterNeeded = 0; + ZEPHIR_CALL_METHOD(type, &asset, "gettype", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&local, &asset, "getlocal", NULL, 0); + zephir_check_call_status(); + if (zephir_fast_count_int(&filters)) { + if (zephir_is_true(&local)) { + ZEPHIR_CALL_METHOD(&sourcePath, &asset, "getrealsourcepath", NULL, 0, &completeSourcePath); + zephir_check_call_status(); + if (UNEXPECTED(!zephir_is_true(&sourcePath))) { + ZEPHIR_CALL_METHOD(&sourcePath, &asset, "getpath", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_40$$55); + object_init_ex(&_40$$55, phalcon_assets_exception_ce); + ZEPHIR_INIT_NVAR(&_41$$55); + ZEPHIR_CONCAT_SVS(&_41$$55, "Asset '", &sourcePath, "' does not have a valid source path"); + ZEPHIR_CALL_METHOD(NULL, &_40$$55, "__construct", NULL, 8, &_41$$55); + zephir_check_call_status(); + zephir_throw_exception_debug(&_40$$55, "phalcon/Assets/Manager.zep", 477); + ZEPHIR_MM_RESTORE(); + return; + } + } else { + ZEPHIR_CALL_METHOD(&sourcePath, &asset, "getpath", NULL, 0); + zephir_check_call_status(); + filterNeeded = 1; + } + ZEPHIR_CALL_METHOD(&targetPath, &asset, "getrealtargetpath", NULL, 0, &completeTargetPath); + zephir_check_call_status(); + if (UNEXPECTED(!zephir_is_true(&targetPath))) { + ZEPHIR_INIT_NVAR(&_42$$57); + object_init_ex(&_42$$57, phalcon_assets_exception_ce); + ZEPHIR_INIT_NVAR(&_43$$57); + ZEPHIR_CONCAT_SVS(&_43$$57, "Asset '", &sourcePath, "' does not have a valid target path"); + ZEPHIR_CALL_METHOD(NULL, &_42$$57, "__construct", NULL, 8, &_43$$57); + zephir_check_call_status(); + zephir_throw_exception_debug(&_42$$57, "phalcon/Assets/Manager.zep", 503); + ZEPHIR_MM_RESTORE(); + return; + } + if (zephir_is_true(&local)) { + if (UNEXPECTED(ZEPHIR_IS_EQUAL(&targetPath, &sourcePath))) { + ZEPHIR_INIT_NVAR(&_44$$59); + object_init_ex(&_44$$59, phalcon_assets_exception_ce); + ZEPHIR_INIT_NVAR(&_45$$59); + ZEPHIR_CONCAT_SVS(&_45$$59, "Asset '", &targetPath, "' have the same source and target paths"); + ZEPHIR_CALL_METHOD(NULL, &_44$$59, "__construct", NULL, 8, &_45$$59); + zephir_check_call_status(); + zephir_throw_exception_debug(&_44$$59, "phalcon/Assets/Manager.zep", 513); + ZEPHIR_MM_RESTORE(); + return; + } + if ((zephir_file_exists(&targetPath) == SUCCESS)) { + ZEPHIR_INIT_NVAR(&_46$$60); + if (zephir_compare_mtime(&targetPath, &sourcePath)) { + filterNeeded = 1; + } + } else { + filterNeeded = 1; + } + } + } else { + ZEPHIR_CALL_METHOD(&path, &asset, "getrealtargeturi", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&prefixedPath, this_ptr, "getprefixedpath", &_16, 170, collection, &path); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_47$$63, &asset, "getversion", NULL, 0); + zephir_check_call_status(); + _48$$63 = Z_TYPE_P(&_47$$63) == IS_NULL; + if (_48$$63) { + ZEPHIR_CALL_METHOD(&_49$$63, &asset, "isautoversion", NULL, 0); + zephir_check_call_status(); + _48$$63 = zephir_is_true(&_49$$63); + } + if (_48$$63) { + ZEPHIR_CALL_METHOD(&version, collection, "getversion", &_20, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&autoVersion, collection, "isautoversion", &_21, 0); + zephir_check_call_status(); + _50$$64 = zephir_is_true(&autoVersion); + if (_50$$64) { + _50$$64 = zephir_is_true(&local); + } + if (_50$$64) { + ZEPHIR_CALL_METHOD(&_51$$65, &asset, "getrealsourcepath", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&modificationTime); + zephir_filemtime(&modificationTime, &_51$$65); + ZEPHIR_INIT_NVAR(&_52$$65); + if (zephir_is_true(&version)) { + ZEPHIR_INIT_NVAR(&_52$$65); + ZEPHIR_CONCAT_VSV(&_52$$65, &version, ".", &modificationTime); + } else { + ZEPHIR_CPY_WRT(&_52$$65, &modificationTime); + } + ZEPHIR_CPY_WRT(&version, &_52$$65); + } + if (zephir_is_true(&version)) { + ZEPHIR_INIT_NVAR(&_53$$66); + ZEPHIR_CONCAT_VSV(&_53$$66, &prefixedPath, "?ver=", &version); + ZEPHIR_CPY_WRT(&prefixedPath, &_53$$66); + } + } + ZEPHIR_CALL_METHOD(&attributes, &asset, "getattributes", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&attributes) == IS_ARRAY) { + zephir_array_update_long(&attributes, 0, &prefixedPath, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + ZEPHIR_INIT_NVAR(&_54$$67); + zephir_create_array(&_54$$67, 1, 0); + zephir_array_fast_append(&_54$$67, &attributes); + ZEPHIR_CPY_WRT(¶meters, &_54$$67); + } else { + ZEPHIR_INIT_NVAR(&_55$$68); + zephir_create_array(&_55$$68, 1, 0); + zephir_array_fast_append(&_55$$68, &prefixedPath); + ZEPHIR_CPY_WRT(¶meters, &_55$$68); + } + zephir_array_append(¶meters, &local, PH_SEPARATE, "phalcon/Assets/Manager.zep", 559); + ZEPHIR_INIT_NVAR(&html); + ZEPHIR_CALL_USER_FUNC_ARRAY(&html, callback, ¶meters); + zephir_check_call_status(); + if (ZEPHIR_IS_TRUE(&useImplicitOutput)) { + zend_print_zval(&html, 0); + } else { + zephir_concat_self(&output, &html); + } + continue; + } + if (filterNeeded == 1) { + ZEPHIR_CALL_METHOD(&content, &asset, "getcontent", NULL, 0, &completeSourcePath); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&mustFilter, &asset, "getfilter", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_TRUE(&mustFilter)) { + zephir_is_iterable(&filters, 0, "phalcon/Assets/Manager.zep", 612); + if (Z_TYPE_P(&filters) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&filters), _56$$72) + { + ZEPHIR_INIT_NVAR(&filter); + ZVAL_COPY(&filter, _56$$72); + if (UNEXPECTED(Z_TYPE_P(&filter) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_assets_exception_ce, "Filter is invalid", "phalcon/Assets/Manager.zep", 598); + return; + } + ZEPHIR_CALL_METHOD(&filteredContent, &filter, "filter", NULL, 0, &content); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&content, &filteredContent); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &filters, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_57$$72, &filters, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_57$$72)) { + break; + } + ZEPHIR_CALL_METHOD(&filter, &filters, "current", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&filter) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_assets_exception_ce, "Filter is invalid", "phalcon/Assets/Manager.zep", 598); + return; + } + ZEPHIR_CALL_METHOD(&filteredContent, &filter, "filter", NULL, 0, &content); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&content, &filteredContent); + ZEPHIR_CALL_METHOD(NULL, &filters, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&filter); + if (ZEPHIR_IS_TRUE(&join)) { + if (ZEPHIR_IS_EQUAL(type, &typeCss)) { + zephir_concat_self(&filteredJoinedContent, &filteredContent); + } else { + ZEPHIR_INIT_NVAR(&_58$$79); + ZEPHIR_CONCAT_VS(&_58$$79, &filteredContent, ";"); + zephir_concat_self(&filteredJoinedContent, &_58$$79); + } + } + } else { + if (ZEPHIR_IS_TRUE(&join)) { + zephir_concat_self(&filteredJoinedContent, &content); + } else { + ZEPHIR_CPY_WRT(&filteredContent, &content); + } + } + if (!(zephir_is_true(&join))) { + zephir_file_put_contents(NULL, &targetPath, &filteredContent); + } + } + if (!(zephir_is_true(&join))) { + ZEPHIR_CALL_METHOD(&path, &asset, "getrealtargeturi", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&prefixedPath, this_ptr, "getprefixedpath", &_16, 170, collection, &path); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_59$$84, &asset, "getversion", NULL, 0); + zephir_check_call_status(); + _60$$84 = Z_TYPE_P(&_59$$84) == IS_NULL; + if (_60$$84) { + ZEPHIR_CALL_METHOD(&_61$$84, &asset, "isautoversion", NULL, 0); zephir_check_call_status(); - zephir_throw_exception_debug(&_17$$35, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 477); - ZEPHIR_MM_RESTORE(); - return; + _60$$84 = zephir_is_true(&_61$$84); } - if (zephir_is_true(&blocksCode)) { - ZEPHIR_CALL_FUNCTION(&compilation, "unserialize", NULL, 15, &blocksCode); + if (_60$$84) { + ZEPHIR_CALL_METHOD(&version, collection, "getversion", &_20, 0); zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&autoVersion, collection, "isautoversion", &_21, 0); + zephir_check_call_status(); + _62$$85 = zephir_is_true(&autoVersion); + if (_62$$85) { + _62$$85 = zephir_is_true(&local); + } + if (_62$$85) { + ZEPHIR_CALL_METHOD(&_63$$86, &asset, "getrealsourcepath", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&modificationTime); + zephir_filemtime(&modificationTime, &_63$$86); + ZEPHIR_INIT_NVAR(&_64$$86); + if (zephir_is_true(&version)) { + ZEPHIR_INIT_NVAR(&_64$$86); + ZEPHIR_CONCAT_VSV(&_64$$86, &version, ".", &modificationTime); + } else { + ZEPHIR_CPY_WRT(&_64$$86, &modificationTime); + } + ZEPHIR_CPY_WRT(&version, &_64$$86); + } + if (zephir_is_true(&version)) { + ZEPHIR_INIT_NVAR(&_65$$87); + ZEPHIR_CONCAT_VSV(&_65$$87, &prefixedPath, "?ver=", &version); + ZEPHIR_CPY_WRT(&prefixedPath, &_65$$87); + } + } + ZEPHIR_CALL_METHOD(&attributes, &asset, "getattributes", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&local); + ZVAL_BOOL(&local, 1); + if (Z_TYPE_P(&attributes) == IS_ARRAY) { + zephir_array_update_long(&attributes, 0, &prefixedPath, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + ZEPHIR_INIT_NVAR(&_66$$88); + zephir_create_array(&_66$$88, 1, 0); + zephir_array_fast_append(&_66$$88, &attributes); + ZEPHIR_CPY_WRT(¶meters, &_66$$88); } else { - ZEPHIR_INIT_NVAR(&compilation); - array_init(&compilation); + ZEPHIR_INIT_NVAR(&_67$$89); + zephir_create_array(&_67$$89, 1, 0); + zephir_array_fast_append(&_67$$89, &prefixedPath); + ZEPHIR_CPY_WRT(¶meters, &_67$$89); + } + zephir_array_append(¶meters, &local, PH_SEPARATE, "phalcon/Assets/Manager.zep", 679); + ZEPHIR_INIT_NVAR(&html); + ZEPHIR_CALL_USER_FUNC_ARRAY(&html, callback, ¶meters); + zephir_check_call_status(); + if (ZEPHIR_IS_TRUE(&useImplicitOutput)) { + zend_print_zval(&html, 0); + } else { + zephir_concat_self(&output, &html); } } + ZEPHIR_CALL_METHOD(NULL, &assets, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&asset); + if (zephir_fast_count_int(&filters)) { + if (ZEPHIR_IS_TRUE(&join)) { + zephir_file_put_contents(NULL, &completeTargetPath, &filteredJoinedContent); + ZEPHIR_CALL_METHOD(&targetUri, collection, "gettargeturi", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&prefixedPath, this_ptr, "getprefixedpath", &_16, 170, collection, &targetUri); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&version, collection, "getversion", &_20, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&autoVersion, collection, "isautoversion", &_21, 0); + zephir_check_call_status(); + _68$$93 = zephir_is_true(&autoVersion); + if (_68$$93) { + _68$$93 = zephir_is_true(&local); + } + if (_68$$93) { + ZEPHIR_INIT_NVAR(&modificationTime); + zephir_filemtime(&modificationTime, &completeTargetPath); + ZEPHIR_INIT_VAR(&_69$$94); + if (zephir_is_true(&version)) { + ZEPHIR_INIT_NVAR(&_69$$94); + ZEPHIR_CONCAT_VSV(&_69$$94, &version, ".", &modificationTime); + } else { + ZEPHIR_CPY_WRT(&_69$$94, &modificationTime); + } + ZEPHIR_CPY_WRT(&version, &_69$$94); + } + if (zephir_is_true(&version)) { + ZEPHIR_INIT_VAR(&_70$$95); + ZEPHIR_CONCAT_VSV(&_70$$95, &prefixedPath, "?ver=", &version); + ZEPHIR_CPY_WRT(&prefixedPath, &_70$$95); + } + ZEPHIR_CALL_METHOD(&attributes, collection, "getattributes", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&local, collection, "gettargetlocal", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&attributes) == IS_ARRAY) { + zephir_array_update_long(&attributes, 0, &prefixedPath, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + ZEPHIR_INIT_VAR(&_71$$96); + zephir_create_array(&_71$$96, 1, 0); + zephir_array_fast_append(&_71$$96, &attributes); + ZEPHIR_CPY_WRT(¶meters, &_71$$96); + } else { + ZEPHIR_INIT_VAR(&_72$$97); + zephir_create_array(&_72$$97, 1, 0); + zephir_array_fast_append(&_72$$97, &prefixedPath); + ZEPHIR_CPY_WRT(¶meters, &_72$$97); + } + zephir_array_append(¶meters, &local, PH_SEPARATE, "phalcon/Assets/Manager.zep", 741); + ZEPHIR_INIT_NVAR(&html); + ZEPHIR_CALL_USER_FUNC_ARRAY(&html, callback, ¶meters); + zephir_check_call_status(); + if (ZEPHIR_IS_TRUE(&useImplicitOutput)) { + zend_print_zval(&html, 0); + } else { + zephir_concat_self(&output, &html); } } } - zephir_update_property_zval(this_ptr, ZEND_STRL("compiledTemplatePath"), &compiledTemplatePath); - RETURN_CCTOR(&compilation); + RETURN_CTOR(&output); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileAutoEscape) +static PHP_METHOD(Phalcon_Assets_Manager, outputCss) { + zend_bool _2; + zval callback; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool extendsMode; - zval *statement_param = NULL, *extendsMode_param = NULL, autoescape, oldAutoescape, compilation, _0, _1; - zval statement; + zval *collectionName_param = NULL, collection, container, tag, _0, _1, _3, _4$$5, _5$$5; + zval collectionName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&autoescape); - ZVAL_UNDEF(&oldAutoescape); - ZVAL_UNDEF(&compilation); + ZVAL_UNDEF(&collectionName); + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&tag); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&callback); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ARRAY(statement) - Z_PARAM_BOOL(extendsMode) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(collectionName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &statement_param, &extendsMode_param); - ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); - extendsMode = zephir_get_boolval(extendsMode_param); + zephir_fetch_params(1, 0, 1, &collectionName_param); + if (!collectionName_param) { + ZEPHIR_INIT_VAR(&collectionName); + } else { + zephir_get_strval(&collectionName, collectionName_param); + } - ZEPHIR_OBS_VAR(&autoescape); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&autoescape, &statement, SL("enable"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 514); - return; - } - ZEPHIR_OBS_VAR(&oldAutoescape); - zephir_read_property(&oldAutoescape, this_ptr, ZEND_STRL("autoescape"), PH_NOISY_CC); - zephir_update_property_zval(this_ptr, ZEND_STRL("autoescape"), &autoescape); - zephir_array_fetch_string(&_0, &statement, SL("block_statements"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 524); - if (extendsMode) { - ZVAL_BOOL(&_1, 1); + if (!(!(ZEPHIR_IS_EMPTY(&collectionName)))) { + ZEPHIR_CALL_METHOD(&collection, this_ptr, "getcss", NULL, 0); + zephir_check_call_status(); } else { - ZVAL_BOOL(&_1, 0); + ZEPHIR_CALL_METHOD(&collection, this_ptr, "get", NULL, 0, &collectionName); + zephir_check_call_status(); } - ZEPHIR_CALL_METHOD(&compilation, this_ptr, "statementlist", NULL, 509, &_0, &_1); + ZEPHIR_INIT_VAR(&callback); + zephir_create_array(&callback, 2, 0); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "Phalcon\\Tag"); + zephir_array_fast_append(&callback, &_0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "stylesheetLink"); + zephir_array_fast_append(&callback, &_0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_1); + _2 = Z_TYPE_P(&container) == IS_OBJECT; + if (_2) { + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "tag"); + ZEPHIR_CALL_METHOD(&_3, &container, "has", NULL, 0, &_0); + zephir_check_call_status(); + _2 = zephir_is_true(&_3); + } + if (_2) { + ZEPHIR_INIT_VAR(&_4$$5); + ZVAL_STRING(&_4$$5, "tag"); + ZEPHIR_CALL_METHOD(&tag, &container, "getshared", NULL, 0, &_4$$5); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_5$$5); + zephir_create_array(&_5$$5, 2, 0); + zephir_array_fast_append(&_5$$5, &tag); + ZEPHIR_INIT_NVAR(&_4$$5); + ZVAL_STRING(&_4$$5, "stylesheetLink"); + zephir_array_fast_append(&_5$$5, &_4$$5); + ZEPHIR_CPY_WRT(&callback, &_5$$5); + } + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "css"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "output", NULL, 0, &collection, &callback, &_0); zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("autoescape"), &oldAutoescape); - RETURN_CCTOR(&compilation); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileCall) +static PHP_METHOD(Phalcon_Assets_Manager, outputInline) { + zval html, joinedContent, output; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_bool extendsMode; - zval *statement_param = NULL, *extendsMode_param = NULL; - zval statement; + zephir_fcall_cache_entry *_7 = NULL, *_11 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *collection, collection_sub, *type, type_sub, attributes, code, codes, content, filter, filters, join, *_0$$3, _1$$3, _27$$3, *_2$$4, _3$$4, _4$$5, _5$$7, _6$$10, _8$$10, _9$$10, _10$$10, _12$$10, *_13$$11, _14$$11, _15$$12, _16$$14, _17$$17, _18$$17, _19$$17, _20$$17, _21$$17, _22$$18, _23$$18, _24$$18, _25$$18, _26$$18; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&collection_sub); + ZVAL_UNDEF(&type_sub); + ZVAL_UNDEF(&attributes); + ZVAL_UNDEF(&code); + ZVAL_UNDEF(&codes); + ZVAL_UNDEF(&content); + ZVAL_UNDEF(&filter); + ZVAL_UNDEF(&filters); + ZVAL_UNDEF(&join); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_27$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_5$$7); + ZVAL_UNDEF(&_6$$10); + ZVAL_UNDEF(&_8$$10); + ZVAL_UNDEF(&_9$$10); + ZVAL_UNDEF(&_10$$10); + ZVAL_UNDEF(&_12$$10); + ZVAL_UNDEF(&_14$$11); + ZVAL_UNDEF(&_15$$12); + ZVAL_UNDEF(&_16$$14); + ZVAL_UNDEF(&_17$$17); + ZVAL_UNDEF(&_18$$17); + ZVAL_UNDEF(&_19$$17); + ZVAL_UNDEF(&_20$$17); + ZVAL_UNDEF(&_21$$17); + ZVAL_UNDEF(&_22$$18); + ZVAL_UNDEF(&_23$$18); + ZVAL_UNDEF(&_24$$18); + ZVAL_UNDEF(&_25$$18); + ZVAL_UNDEF(&_26$$18); + ZVAL_UNDEF(&html); + ZVAL_UNDEF(&joinedContent); + ZVAL_UNDEF(&output); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ARRAY(statement) - Z_PARAM_BOOL(extendsMode) + Z_PARAM_OBJECT_OF_CLASS(collection, phalcon_assets_collection_ce) + Z_PARAM_ZVAL(type) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &statement_param, &extendsMode_param); - ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); - extendsMode = zephir_get_boolval(extendsMode_param); + zephir_fetch_params(1, 2, 0, &collection, &type); + ZEPHIR_INIT_VAR(&output); + ZEPHIR_INIT_VAR(&html); + ZEPHIR_INIT_VAR(&joinedContent); + ZEPHIR_CALL_METHOD(&codes, collection, "getcodes", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&filters, collection, "getfilters", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&join, collection, "getjoin", NULL, 0); + zephir_check_call_status(); + if (zephir_fast_count_int(&codes)) { + zephir_is_iterable(&codes, 0, "phalcon/Assets/Manager.zep", 833); + if (Z_TYPE_P(&codes) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&codes), _0$$3) + { + ZEPHIR_INIT_NVAR(&code); + ZVAL_COPY(&code, _0$$3); + ZEPHIR_CALL_METHOD(&attributes, &code, "getattributes", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&content, &code, "getcontent", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&filters, 0, "phalcon/Assets/Manager.zep", 824); + if (Z_TYPE_P(&filters) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&filters), _2$$4) + { + ZEPHIR_INIT_NVAR(&filter); + ZVAL_COPY(&filter, _2$$4); + if (UNEXPECTED(Z_TYPE_P(&filter) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_assets_exception_ce, "Filter is invalid", "phalcon/Assets/Manager.zep", 814); + return; + } + ZEPHIR_CALL_METHOD(&_4$$5, &filter, "filter", NULL, 0, &content); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&content, &_4$$5); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &filters, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3$$4, &filters, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3$$4)) { + break; + } + ZEPHIR_CALL_METHOD(&filter, &filters, "current", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&filter) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_assets_exception_ce, "Filter is invalid", "phalcon/Assets/Manager.zep", 814); + return; + } + ZEPHIR_CALL_METHOD(&_5$$7, &filter, "filter", NULL, 0, &content); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&content, &_5$$7); + ZEPHIR_CALL_METHOD(NULL, &filters, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&filter); + if (zephir_is_true(&join)) { + zephir_concat_self(&joinedContent, &content); + } else { + ZVAL_BOOL(&_8$$10, 0); + ZVAL_BOOL(&_9$$10, 1); + ZEPHIR_CALL_CE_STATIC(&_6$$10, phalcon_tag_ce, "taghtml", &_7, 0, type, &attributes, &_8$$10, &_9$$10); + zephir_check_call_status(); + ZVAL_BOOL(&_8$$10, 1); + ZEPHIR_CALL_CE_STATIC(&_10$$10, phalcon_tag_ce, "taghtmlclose", &_11, 0, type, &_8$$10); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_12$$10); + ZEPHIR_CONCAT_VVV(&_12$$10, &_6$$10, &content, &_10$$10); + zephir_concat_self(&html, &_12$$10); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &codes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1$$3, &codes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&code, &codes, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&attributes, &code, "getattributes", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&content, &code, "getcontent", NULL, 0); + zephir_check_call_status(); + zephir_is_iterable(&filters, 0, "phalcon/Assets/Manager.zep", 824); + if (Z_TYPE_P(&filters) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&filters), _13$$11) + { + ZEPHIR_INIT_NVAR(&filter); + ZVAL_COPY(&filter, _13$$11); + if (UNEXPECTED(Z_TYPE_P(&filter) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_assets_exception_ce, "Filter is invalid", "phalcon/Assets/Manager.zep", 814); + return; + } + ZEPHIR_CALL_METHOD(&_15$$12, &filter, "filter", NULL, 0, &content); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&content, &_15$$12); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &filters, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_14$$11, &filters, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_14$$11)) { + break; + } + ZEPHIR_CALL_METHOD(&filter, &filters, "current", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&filter) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_assets_exception_ce, "Filter is invalid", "phalcon/Assets/Manager.zep", 814); + return; + } + ZEPHIR_CALL_METHOD(&_16$$14, &filter, "filter", NULL, 0, &content); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&content, &_16$$14); + ZEPHIR_CALL_METHOD(NULL, &filters, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&filter); + if (zephir_is_true(&join)) { + zephir_concat_self(&joinedContent, &content); + } else { + ZVAL_BOOL(&_18$$17, 0); + ZVAL_BOOL(&_19$$17, 1); + ZEPHIR_CALL_CE_STATIC(&_17$$17, phalcon_tag_ce, "taghtml", &_7, 0, type, &attributes, &_18$$17, &_19$$17); + zephir_check_call_status(); + ZVAL_BOOL(&_18$$17, 1); + ZEPHIR_CALL_CE_STATIC(&_20$$17, phalcon_tag_ce, "taghtmlclose", &_11, 0, type, &_18$$17); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_21$$17); + ZEPHIR_CONCAT_VVV(&_21$$17, &_17$$17, &content, &_20$$17); + zephir_concat_self(&html, &_21$$17); + } + ZEPHIR_CALL_METHOD(NULL, &codes, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&code); + if (zephir_is_true(&join)) { + ZVAL_BOOL(&_23$$18, 0); + ZVAL_BOOL(&_24$$18, 1); + ZEPHIR_CALL_CE_STATIC(&_22$$18, phalcon_tag_ce, "taghtml", &_7, 0, type, &attributes, &_23$$18, &_24$$18); + zephir_check_call_status(); + ZVAL_BOOL(&_23$$18, 1); + ZEPHIR_CALL_CE_STATIC(&_25$$18, phalcon_tag_ce, "taghtmlclose", &_11, 0, type, &_23$$18); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_26$$18); + ZEPHIR_CONCAT_VVV(&_26$$18, &_22$$18, &joinedContent, &_25$$18); + zephir_concat_self(&html, &_26$$18); + } + zephir_read_property(&_27$$3, this_ptr, ZEND_STRL("implicitOutput"), PH_NOISY_CC | PH_READONLY); + if (ZEPHIR_IS_TRUE(&_27$$3)) { + zend_print_zval(&html, 0); + } else { + zephir_concat_self(&output, &html); + } + } + RETURN_CTOR(&output); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileCase) +static PHP_METHOD(Phalcon_Assets_Manager, outputInlineCss) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool caseClause; - zval *statement_param = NULL, *caseClause_param = NULL, expr, _2, _0$$4, _1$$4; - zval statement; + zval *collectionName_param = NULL, collection, _0; + zval collectionName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_0$$4); - ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&collectionName); + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(statement) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_BOOL(caseClause) + Z_PARAM_STR_OR_NULL(collectionName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &statement_param, &caseClause_param); - ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); - if (!caseClause_param) { - caseClause = 1; + zephir_fetch_params(1, 0, 1, &collectionName_param); + if (!collectionName_param) { + ZEPHIR_INIT_VAR(&collectionName); } else { - caseClause = zephir_get_boolval(caseClause_param); + zephir_get_strval(&collectionName, collectionName_param); } - if (UNEXPECTED(caseClause == 0)) { - RETURN_MM_STRING(""); - } - ZEPHIR_OBS_VAR(&expr); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&expr, &statement, SL("expr"), 0)))) { - ZEPHIR_INIT_VAR(&_0$$4); - object_init_ex(&_0$$4, phalcon_mvc_view_engine_volt_exception_ce); - ZEPHIR_INIT_VAR(&_1$$4); - ZVAL_STRING(&_1$$4, "Corrupt statement"); - ZEPHIR_CALL_METHOD(NULL, &_0$$4, "__construct", NULL, 508, &_1$$4, &statement); + if (!(!(ZEPHIR_IS_EMPTY(&collectionName)))) { + ZEPHIR_CALL_METHOD(&collection, this_ptr, "getcss", NULL, 0); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(&collection, this_ptr, "get", NULL, 0, &collectionName); zephir_check_call_status(); - zephir_throw_exception_debug(&_0$$4, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 567); - ZEPHIR_MM_RESTORE(); - return; } - ZEPHIR_CALL_METHOD(&_2, this_ptr, "expression", NULL, 507, &expr); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "style"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "outputinline", NULL, 0, &collection, &_0); zephir_check_call_status(); - ZEPHIR_CONCAT_SVS(return_value, ""); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileDo) +static PHP_METHOD(Phalcon_Assets_Manager, outputInlineJs) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *statement_param = NULL, expr, _0; - zval statement; + zval *collectionName_param = NULL, collection, _0; + zval collectionName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&collectionName); + ZVAL_UNDEF(&collection); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(statement) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(collectionName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &statement_param); - ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); + zephir_fetch_params(1, 0, 1, &collectionName_param); + if (!collectionName_param) { + ZEPHIR_INIT_VAR(&collectionName); + } else { + zephir_get_strval(&collectionName, collectionName_param); + } - ZEPHIR_OBS_VAR(&expr); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&expr, &statement, SL("expr"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 591); - return; + if (!(!(ZEPHIR_IS_EMPTY(&collectionName)))) { + ZEPHIR_CALL_METHOD(&collection, this_ptr, "getjs", NULL, 0); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(&collection, this_ptr, "get", NULL, 0, &collectionName); + zephir_check_call_status(); } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "expression", NULL, 507, &expr); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "script"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "outputinline", NULL, 0, &collection, &_0); zephir_check_call_status(); - ZEPHIR_CONCAT_SVS(return_value, ""); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileEcho) +static PHP_METHOD(Phalcon_Assets_Manager, outputJs) { + zend_bool _2; + zval callback; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *statement_param = NULL, expr, exprCode, name, _2, _5, _0$$3, _1$$3, _3$$4, _4$$5; - zval statement; + zval *collectionName_param = NULL, collection, container, tag, _0, _1, _3, _4$$5, _5$$5; + zval collectionName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&exprCode); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&collectionName); + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&container); + ZVAL_UNDEF(&tag); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&callback); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(statement) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(collectionName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &statement_param); - ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); + zephir_fetch_params(1, 0, 1, &collectionName_param); + if (!collectionName_param) { + ZEPHIR_INIT_VAR(&collectionName); + } else { + zephir_get_strval(&collectionName, collectionName_param); + } - ZEPHIR_OBS_VAR(&expr); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&expr, &statement, SL("expr"), 0)))) { - ZEPHIR_INIT_VAR(&_0$$3); - object_init_ex(&_0$$3, phalcon_mvc_view_engine_volt_exception_ce); - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "Corrupt statement"); - ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 508, &_1$$3, &statement); + if (!(!(ZEPHIR_IS_EMPTY(&collectionName)))) { + ZEPHIR_CALL_METHOD(&collection, this_ptr, "getjs", NULL, 0); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(&collection, this_ptr, "get", NULL, 0, &collectionName); zephir_check_call_status(); - zephir_throw_exception_debug(&_0$$3, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 615); - ZEPHIR_MM_RESTORE(); - return; } - ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "expression", NULL, 507, &expr); - zephir_check_call_status(); - zephir_array_fetch_string(&_2, &expr, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 623); - if (ZEPHIR_IS_LONG(&_2, 350)) { - zephir_array_fetch_string(&name, &expr, SL("name"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 624); - zephir_array_fetch_string(&_3$$4, &name, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 626); - if (ZEPHIR_IS_LONG(&_3$$4, 265)) { - zephir_array_fetch_string(&_4$$5, &name, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 631); - if (ZEPHIR_IS_STRING(&_4$$5, "super")) { - RETURN_CCTOR(&exprCode); - } - } + ZEPHIR_INIT_VAR(&callback); + zephir_create_array(&callback, 2, 0); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "Phalcon\\Tag"); + zephir_array_fast_append(&callback, &_0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "javascriptInclude"); + zephir_array_fast_append(&callback, &_0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_1); + _2 = Z_TYPE_P(&container) == IS_OBJECT; + if (_2) { + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "tag"); + ZEPHIR_CALL_METHOD(&_3, &container, "has", NULL, 0, &_0); + zephir_check_call_status(); + _2 = zephir_is_true(&_3); } - zephir_read_property(&_5, this_ptr, ZEND_STRL("autoescape"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_5)) { - ZEPHIR_CONCAT_SVS(return_value, "escaper->escapeHtml(", &exprCode, ") ?>"); - RETURN_MM(); + if (_2) { + ZEPHIR_INIT_VAR(&_4$$5); + ZVAL_STRING(&_4$$5, "tag"); + ZEPHIR_CALL_METHOD(&tag, &container, "getshared", NULL, 0, &_4$$5); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_5$$5); + zephir_create_array(&_5$$5, 2, 0); + zephir_array_fast_append(&_5$$5, &tag); + ZEPHIR_INIT_NVAR(&_4$$5); + ZVAL_STRING(&_4$$5, "javascriptInclude"); + zephir_array_fast_append(&_5$$5, &_4$$5); + ZEPHIR_CPY_WRT(&callback, &_5$$5); } - ZEPHIR_CONCAT_SVS(return_value, ""); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "js"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "output", NULL, 0, &collection, &callback, &_0); + zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileElseIf) +static PHP_METHOD(Phalcon_Assets_Manager, set) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *statement_param = NULL, expr, _2, _0$$3, _1$$3; - zval statement; + zval *id_param = NULL, *collection, collection_sub; + zval id; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&id); + ZVAL_UNDEF(&collection_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(statement) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(id) + Z_PARAM_OBJECT_OF_CLASS(collection, phalcon_assets_collection_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &statement_param); - ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); + zephir_fetch_params(1, 2, 0, &id_param, &collection); + if (UNEXPECTED(Z_TYPE_P(id_param) != IS_STRING && Z_TYPE_P(id_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'id' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(id_param) == IS_STRING)) { + zephir_get_strval(&id, id_param); + } else { + ZEPHIR_INIT_VAR(&id); + } - ZEPHIR_OBS_VAR(&expr); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&expr, &statement, SL("expr"), 0)))) { - ZEPHIR_INIT_VAR(&_0$$3); - object_init_ex(&_0$$3, phalcon_mvc_view_engine_volt_exception_ce); - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "Corrupt statement"); - ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 508, &_1$$3, &statement); - zephir_check_call_status(); - zephir_throw_exception_debug(&_0$$3, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 662); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_CALL_METHOD(&_2, this_ptr, "expression", NULL, 507, &expr); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVS(return_value, ""); - RETURN_MM(); + zephir_update_property_array(this_ptr, SL("collections"), &id, collection); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileFile) +static PHP_METHOD(Phalcon_Assets_Manager, setOptions) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool extendsMode; - zval *path_param = NULL, *compiledPath_param = NULL, *extendsMode_param = NULL, viewCode, compilation, finalCompilation, _4, _5, _0$$4, _2$$5; - zval path, compiledPath, _1$$4, _3$$5; + zval *options_param = NULL; + zval options; zval *this_ptr = getThis(); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&compiledPath); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&viewCode); - ZVAL_UNDEF(&compilation); - ZVAL_UNDEF(&finalCompilation); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_0$$4); - ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(path) - Z_PARAM_STR(compiledPath) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(extendsMode) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(options) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &path_param, &compiledPath_param, &extendsMode_param); - if (UNEXPECTED(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 of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { - zephir_get_strval(&path, path_param); - } else { - ZEPHIR_INIT_VAR(&path); - } - if (UNEXPECTED(Z_TYPE_P(compiledPath_param) != IS_STRING && Z_TYPE_P(compiledPath_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'compiledPath' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(compiledPath_param) == IS_STRING)) { - zephir_get_strval(&compiledPath, compiledPath_param); - } else { - ZEPHIR_INIT_VAR(&compiledPath); - } - if (!extendsMode_param) { - extendsMode = 0; - } else { - extendsMode = zephir_get_boolval(extendsMode_param); - } + zephir_fetch_params(1, 1, 0, &options_param); + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); - if (UNEXPECTED(ZEPHIR_IS_EQUAL(&path, &compiledPath))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Template path and compilation template path cannot be the same", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 695); - return; - } - if (UNEXPECTED(!((zephir_file_exists(&path) == SUCCESS)))) { - ZEPHIR_INIT_VAR(&_0$$4); - object_init_ex(&_0$$4, phalcon_mvc_view_engine_volt_exception_ce); - ZEPHIR_INIT_VAR(&_1$$4); - ZEPHIR_CONCAT_SVS(&_1$$4, "Template file ", &path, " does not exist"); - ZEPHIR_CALL_METHOD(NULL, &_0$$4, "__construct", NULL, 508, &_1$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_0$$4, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 702); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_VAR(&viewCode); - zephir_file_get_contents(&viewCode, &path); - if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&viewCode))) { - ZEPHIR_INIT_VAR(&_2$$5); - object_init_ex(&_2$$5, phalcon_mvc_view_engine_volt_exception_ce); - ZEPHIR_INIT_VAR(&_3$$5); - ZEPHIR_CONCAT_SVS(&_3$$5, "Template file ", &path, " could not be opened"); - ZEPHIR_CALL_METHOD(NULL, &_2$$5, "__construct", NULL, 508, &_3$$5); - zephir_check_call_status(); - zephir_throw_exception_debug(&_2$$5, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 714); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_update_property_zval(this_ptr, ZEND_STRL("currentPath"), &path); - if (extendsMode) { - ZVAL_BOOL(&_4, 1); - } else { - ZVAL_BOOL(&_4, 0); - } - ZEPHIR_CALL_METHOD(&compilation, this_ptr, "compilesource", NULL, 0, &viewCode, &_4); - zephir_check_call_status(); - if (Z_TYPE_P(&compilation) == IS_ARRAY) { - ZEPHIR_CALL_FUNCTION(&finalCompilation, "serialize", NULL, 13, &compilation); - zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Assets_Manager, useImplicitOutput) +{ + zval *implicitOutput_param = NULL, __$true, __$false; + zend_bool implicitOutput; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(implicitOutput) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &implicitOutput_param); + implicitOutput = zephir_get_boolval(implicitOutput_param); + + + if (implicitOutput) { + zephir_update_property_zval(this_ptr, ZEND_STRL("implicitOutput"), &__$true); } else { - ZEPHIR_CPY_WRT(&finalCompilation, &compilation); - } - ZEPHIR_INIT_VAR(&_5); - zephir_file_put_contents(&_5, &compiledPath, &finalCompilation); - if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&_5))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Volt directory can't be written", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 735); - return; + zephir_update_property_zval(this_ptr, ZEND_STRL("implicitOutput"), &__$false); } - RETURN_CCTOR(&compilation); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileForeach) +static PHP_METHOD(Phalcon_Assets_Manager, getPrefixedPath) { - zval compilation; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool extendsMode; - zval *statement_param = NULL, *extendsMode_param = NULL, prefix, level, prefixLevel, expr, exprCode, bstatement, type, blockStatements, forElse, code, loopContext, iterator, key, ifExpr, variable, _4, *_0$$4, _1$$4, _2$$7, _3$$10, _5$$11, _6$$11, _7$$11, _8$$11, _9$$11, _10$$11, _11$$11, _12$$11, _13$$11, _14$$13, _15$$14, _16$$15, _17$$15, _18$$17, _19$$17, _20$$17, _21$$17, _22$$17, _23$$17, _24$$18, _25$$22; - zval statement; + zval path; + zval *collection, collection_sub, *path_param = NULL, prefix; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&collection_sub); ZVAL_UNDEF(&prefix); - ZVAL_UNDEF(&level); - ZVAL_UNDEF(&prefixLevel); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&exprCode); - ZVAL_UNDEF(&bstatement); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&blockStatements); - ZVAL_UNDEF(&forElse); - ZVAL_UNDEF(&code); - ZVAL_UNDEF(&loopContext); - ZVAL_UNDEF(&iterator); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&ifExpr); - ZVAL_UNDEF(&variable); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$7); - ZVAL_UNDEF(&_3$$10); - ZVAL_UNDEF(&_5$$11); - ZVAL_UNDEF(&_6$$11); - ZVAL_UNDEF(&_7$$11); - ZVAL_UNDEF(&_8$$11); - ZVAL_UNDEF(&_9$$11); - ZVAL_UNDEF(&_10$$11); - ZVAL_UNDEF(&_11$$11); - ZVAL_UNDEF(&_12$$11); - ZVAL_UNDEF(&_13$$11); - ZVAL_UNDEF(&_14$$13); - ZVAL_UNDEF(&_15$$14); - ZVAL_UNDEF(&_16$$15); - ZVAL_UNDEF(&_17$$15); - ZVAL_UNDEF(&_18$$17); - ZVAL_UNDEF(&_19$$17); - ZVAL_UNDEF(&_20$$17); - ZVAL_UNDEF(&_21$$17); - ZVAL_UNDEF(&_22$$17); - ZVAL_UNDEF(&_23$$17); - ZVAL_UNDEF(&_24$$18); - ZVAL_UNDEF(&_25$$22); - ZVAL_UNDEF(&compilation); + ZVAL_UNDEF(&path); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(statement) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(extendsMode) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_OBJECT_OF_CLASS(collection, phalcon_assets_collection_ce) + Z_PARAM_STR(path) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &statement_param, &extendsMode_param); - ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); - if (!extendsMode_param) { - extendsMode = 0; - } else { - extendsMode = zephir_get_boolval(extendsMode_param); - } + zephir_fetch_params(1, 2, 0, &collection, &path_param); + zephir_get_strval(&path, path_param); - if (UNEXPECTED(!(zephir_array_isset_string(&statement, SL("expr"))))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 760); - return; - } - ZEPHIR_INIT_VAR(&compilation); - ZEPHIR_INIT_VAR(&forElse); - ZVAL_NULL(&forElse); - RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("foreachLevel"))); - ZEPHIR_CALL_METHOD(&prefix, this_ptr, "getuniqueprefix", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&level); - zephir_read_property(&level, this_ptr, ZEND_STRL("foreachLevel"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(&prefixLevel); - ZEPHIR_CONCAT_VV(&prefixLevel, &prefix, &level); - ZEPHIR_OBS_VAR(&expr); - zephir_array_fetch_string(&expr, &statement, SL("expr"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 780); - ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "expression", NULL, 507, &expr); + ZEPHIR_CALL_METHOD(&prefix, collection, "getprefix", NULL, 0); zephir_check_call_status(); - ZEPHIR_OBS_VAR(&blockStatements); - zephir_array_fetch_string(&blockStatements, &statement, SL("block_statements"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 787); - ZEPHIR_INIT_NVAR(&forElse); - ZVAL_BOOL(&forElse, 0); - if (Z_TYPE_P(&blockStatements) == IS_ARRAY) { - zephir_is_iterable(&blockStatements, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 808); - if (Z_TYPE_P(&blockStatements) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&blockStatements), _0$$4) - { - ZEPHIR_INIT_NVAR(&bstatement); - ZVAL_COPY(&bstatement, _0$$4); - ZEPHIR_OBS_NVAR(&type); - if (!(zephir_array_isset_string_fetch(&type, &bstatement, SL("type"), 0))) { - break; - } - if (ZEPHIR_IS_LONG(&type, 321)) { - ZEPHIR_INIT_NVAR(&_2$$7); - ZEPHIR_CONCAT_SVS(&_2$$7, ""); - zephir_concat_self(&compilation, &_2$$7); - ZEPHIR_CPY_WRT(&forElse, &prefixLevel); - zephir_update_property_array(this_ptr, SL("forElsePointers"), &level, &forElse); - break; - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &blockStatements, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1$$4, &blockStatements, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1$$4)) { - break; - } - ZEPHIR_CALL_METHOD(&bstatement, &blockStatements, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&type); - if (!(zephir_array_isset_string_fetch(&type, &bstatement, SL("type"), 0))) { - break; - } - if (ZEPHIR_IS_LONG(&type, 321)) { - ZEPHIR_INIT_NVAR(&_3$$10); - ZEPHIR_CONCAT_SVS(&_3$$10, ""); - zephir_concat_self(&compilation, &_3$$10); - ZEPHIR_CPY_WRT(&forElse, &prefixLevel); - zephir_update_property_array(this_ptr, SL("forElsePointers"), &level, &forElse); - break; - } - ZEPHIR_CALL_METHOD(NULL, &blockStatements, "next", NULL, 0); - zephir_check_call_status(); - } + if (!(zephir_is_true(&prefix))) { + RETURN_CTOR(&path); + } + ZEPHIR_CONCAT_VV(return_value, &prefix, &path); + RETURN_MM(); +} + +zend_object *zephir_init_properties_Phalcon_Assets_Manager(zend_class_entry *class_type) +{ + zval _0, _2, _1$$3, _3$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); } - ZEPHIR_INIT_NVAR(&bstatement); + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("collections"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("collections"), &_3$$4); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Assets_Asset_Css) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Assets\\Asset, Css, phalcon, assets_asset_css, phalcon_assets_asset_ce, phalcon_assets_asset_css_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Assets_Asset_Css, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval attributes; + zend_bool local, filter, autoVersion; + zval *path_param = NULL, *local_param = NULL, *filter_param = NULL, *attributes_param = NULL, *version_param = NULL, *autoVersion_param = NULL, _1, _2, _3, _4; + zval path, version; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&version); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&attributes); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 6) + Z_PARAM_STR(path) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(local) + Z_PARAM_BOOL(filter) + Z_PARAM_ARRAY(attributes) + Z_PARAM_STR_OR_NULL(version) + Z_PARAM_BOOL(autoVersion) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 5, &path_param, &local_param, &filter_param, &attributes_param, &version_param, &autoVersion_param); + if (UNEXPECTED(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 of the type string")); + RETURN_MM_NULL(); } - if (extendsMode) { - ZVAL_BOOL(&_4, 1); + if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { + zephir_get_strval(&path, path_param); } else { - ZVAL_BOOL(&_4, 0); + ZEPHIR_INIT_VAR(&path); } - ZEPHIR_CALL_METHOD(&code, this_ptr, "statementlist", NULL, 509, &blockStatements, &_4); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&loopContext); - zephir_read_property(&loopContext, this_ptr, ZEND_STRL("loopPointers"), PH_NOISY_CC); - if (zephir_array_isset(&loopContext, &level)) { - ZEPHIR_INIT_VAR(&_5$$11); - ZEPHIR_CONCAT_SVSVS(&_5$$11, "self = &$", &prefixLevel, "loop; "); - zephir_concat_self(&compilation, &_8$$11); - ZEPHIR_INIT_VAR(&_9$$11); - ZEPHIR_CONCAT_SVSVS(&_9$$11, "$", &prefixLevel, "loop->length = count($", &prefixLevel, "iterator); "); - zephir_concat_self(&compilation, &_9$$11); - ZEPHIR_INIT_VAR(&_10$$11); - ZEPHIR_CONCAT_SVS(&_10$$11, "$", &prefixLevel, "loop->index = 1; "); - zephir_concat_self(&compilation, &_10$$11); - ZEPHIR_INIT_VAR(&_11$$11); - ZEPHIR_CONCAT_SVS(&_11$$11, "$", &prefixLevel, "loop->index0 = 1; "); - zephir_concat_self(&compilation, &_11$$11); - ZEPHIR_INIT_VAR(&_12$$11); - ZEPHIR_CONCAT_SVSVS(&_12$$11, "$", &prefixLevel, "loop->revindex = $", &prefixLevel, "loop->length; "); - zephir_concat_self(&compilation, &_12$$11); - ZEPHIR_INIT_VAR(&_13$$11); - ZEPHIR_CONCAT_SVSVS(&_13$$11, "$", &prefixLevel, "loop->revindex0 = $", &prefixLevel, "loop->length - 1; ?>"); - zephir_concat_self(&compilation, &_13$$11); - ZEPHIR_INIT_VAR(&iterator); - ZEPHIR_CONCAT_SVS(&iterator, "$", &prefixLevel, "iterator"); + if (!local_param) { + local = 1; } else { - ZEPHIR_CPY_WRT(&iterator, &exprCode); + local = zephir_get_boolval(local_param); } - ZEPHIR_OBS_VAR(&variable); - zephir_array_fetch_string(&variable, &statement, SL("variable"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 839); - ZEPHIR_OBS_VAR(&key); - if (zephir_array_isset_string_fetch(&key, &statement, SL("key"), 0)) { - ZEPHIR_INIT_VAR(&_14$$13); - ZEPHIR_CONCAT_SVSVSVS(&_14$$13, " $", &variable, ") { "); - zephir_concat_self(&compilation, &_14$$13); + if (!filter_param) { + filter = 1; } else { - ZEPHIR_INIT_VAR(&_15$$14); - ZEPHIR_CONCAT_SVSVS(&_15$$14, ""); - zephir_concat_self(&compilation, &_17$$15); + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); } else { - zephir_concat_self_str(&compilation, "?>", sizeof("?>") - 1); + zephir_get_arrval(&attributes, attributes_param); } - if (zephir_array_isset(&loopContext, &level)) { - ZEPHIR_INIT_VAR(&_18$$17); - ZEPHIR_CONCAT_SVSVS(&_18$$17, "first = ($", &prefixLevel, "incr == 0); "); - zephir_concat_self(&compilation, &_18$$17); - ZEPHIR_INIT_VAR(&_19$$17); - ZEPHIR_CONCAT_SVSVS(&_19$$17, "$", &prefixLevel, "loop->index = $", &prefixLevel, "incr + 1; "); - zephir_concat_self(&compilation, &_19$$17); - ZEPHIR_INIT_VAR(&_20$$17); - ZEPHIR_CONCAT_SVSVS(&_20$$17, "$", &prefixLevel, "loop->index0 = $", &prefixLevel, "incr; "); - zephir_concat_self(&compilation, &_20$$17); - ZEPHIR_INIT_VAR(&_21$$17); - ZEPHIR_CONCAT_SVSVSVS(&_21$$17, "$", &prefixLevel, "loop->revindex = $", &prefixLevel, "loop->length - $", &prefixLevel, "incr; "); - zephir_concat_self(&compilation, &_21$$17); - ZEPHIR_INIT_VAR(&_22$$17); - ZEPHIR_CONCAT_SVSVSVS(&_22$$17, "$", &prefixLevel, "loop->revindex0 = $", &prefixLevel, "loop->length - ($", &prefixLevel, "incr + 1); "); - zephir_concat_self(&compilation, &_22$$17); - ZEPHIR_INIT_VAR(&_23$$17); - ZEPHIR_CONCAT_SVSVSVS(&_23$$17, "$", &prefixLevel, "loop->last = ($", &prefixLevel, "incr == ($", &prefixLevel, "loop->length - 1)); ?>"); - zephir_concat_self(&compilation, &_23$$17); + if (!version_param) { + ZEPHIR_INIT_VAR(&version); + } else { + zephir_get_strval(&version, version_param); } - if (Z_TYPE_P(&forElse) == IS_STRING) { - ZEPHIR_INIT_VAR(&_24$$18); - ZEPHIR_CONCAT_SVS(&_24$$18, ""); - zephir_concat_self(&compilation, &_24$$18); + if (!autoVersion_param) { + autoVersion = 0; + } else { + autoVersion = zephir_get_boolval(autoVersion_param); } - zephir_concat_self(&compilation, &code); - if (zephir_array_isset_string(&statement, SL("if_expr"))) { - zephir_concat_self_str(&compilation, "", sizeof("") - 1); + + + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "css"); + if (local) { + ZVAL_BOOL(&_2, 1); + } else { + ZVAL_BOOL(&_2, 0); } - if (Z_TYPE_P(&forElse) == IS_STRING) { - zephir_concat_self_str(&compilation, "", sizeof("") - 1); + if (filter) { + ZVAL_BOOL(&_3, 1); } else { - if (zephir_array_isset(&loopContext, &level)) { - ZEPHIR_INIT_VAR(&_25$$22); - ZEPHIR_CONCAT_SVS(&_25$$22, ""); - zephir_concat_self(&compilation, &_25$$22); - } else { - zephir_concat_self_str(&compilation, "", sizeof("") - 1); - } + ZVAL_BOOL(&_3, 0); } - RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("foreachLevel"))); - RETURN_CTOR(&compilation); + if (autoVersion) { + ZVAL_BOOL(&_4, 1); + } else { + ZVAL_BOOL(&_4, 0); + } + ZEPHIR_CALL_PARENT(NULL, phalcon_assets_asset_css_ce, getThis(), "__construct", &_0, 0, &_1, &path, &_2, &_3, &attributes, &version, &_4); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileForElse) -{ - zval level, prefix, _0, _1; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&level); - ZVAL_UNDEF(&prefix); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + + +#ifdef HAVE_CONFIG_H +#endif - zephir_read_property(&level, this_ptr, ZEND_STRL("foreachLevel"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_0, this_ptr, ZEND_STRL("forElsePointers"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&prefix, &_0, &level, 1))) { - RETURN_STRING(""); - } - zephir_read_property(&_1, this_ptr, ZEND_STRL("loopPointers"), PH_NOISY_CC | PH_READONLY); - if (zephir_array_isset(&_1, &level)) { - ZEPHIR_CONCAT_SVSVS(return_value, ""); - return; - } - ZEPHIR_CONCAT_SVS(return_value, ""); - return; + + +ZEPHIR_INIT_CLASS(Phalcon_Assets_Asset_Js) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Assets\\Asset, Js, phalcon, assets_asset_js, phalcon_assets_asset_ce, phalcon_assets_asset_js_method_entry, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileIf) +static PHP_METHOD(Phalcon_Assets_Asset_Js, __construct) { - zval compilation; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool extendsMode; - zval *statement_param = NULL, *extendsMode_param = NULL, blockStatements, expr, _2, _3, _4, _5, _6, _0$$3, _1$$3, _7$$4, _8$$4, _9$$4; - zval statement; + zephir_fcall_cache_entry *_0 = NULL; + zval attributes; + zend_bool local, filter, autoVersion; + zval *path_param = NULL, *local_param = NULL, *filter_param = NULL, *attributes_param = NULL, *version_param = NULL, *autoVersion_param = NULL, _1, _2, _3, _4; + zval path, version; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&blockStatements); - ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&version); + ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_8$$4); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&compilation); + ZVAL_UNDEF(&attributes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(statement) + ZEND_PARSE_PARAMETERS_START(1, 6) + Z_PARAM_STR(path) Z_PARAM_OPTIONAL - Z_PARAM_BOOL(extendsMode) + Z_PARAM_BOOL(local) + Z_PARAM_BOOL(filter) + Z_PARAM_ARRAY(attributes) + Z_PARAM_STR_OR_NULL(version) + Z_PARAM_BOOL(autoVersion) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &statement_param, &extendsMode_param); - ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); - if (!extendsMode_param) { - extendsMode = 0; + zephir_fetch_params(1, 1, 5, &path_param, &local_param, &filter_param, &attributes_param, &version_param, &autoVersion_param); + if (UNEXPECTED(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 of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(path_param) == IS_STRING)) { + zephir_get_strval(&path, path_param); } else { - extendsMode = zephir_get_boolval(extendsMode_param); + ZEPHIR_INIT_VAR(&path); + } + if (!local_param) { + local = 1; + } else { + local = zephir_get_boolval(local_param); + } + if (!filter_param) { + filter = 1; + } else { + filter = zephir_get_boolval(filter_param); + } + if (!attributes_param) { + ZEPHIR_INIT_VAR(&attributes); + array_init(&attributes); + } else { + zephir_get_arrval(&attributes, attributes_param); + } + if (!version_param) { + ZEPHIR_INIT_VAR(&version); + } else { + zephir_get_strval(&version, version_param); + } + if (!autoVersion_param) { + autoVersion = 0; + } else { + autoVersion = zephir_get_boolval(autoVersion_param); } - ZEPHIR_OBS_VAR(&expr); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&expr, &statement, SL("expr"), 0)))) { - ZEPHIR_INIT_VAR(&_0$$3); - object_init_ex(&_0$$3, phalcon_mvc_view_engine_volt_exception_ce); - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "Corrupt statement"); - ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 508, &_1$$3, &statement); - zephir_check_call_status(); - zephir_throw_exception_debug(&_0$$3, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 942); - ZEPHIR_MM_RESTORE(); - return; + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "js"); + if (local) { + ZVAL_BOOL(&_2, 1); + } else { + ZVAL_BOOL(&_2, 0); } - ZEPHIR_CALL_METHOD(&_2, this_ptr, "expression", NULL, 507, &expr); - zephir_check_call_status(); - zephir_array_fetch_string(&_4, &statement, SL("true_statements"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 948); - if (extendsMode) { - ZVAL_BOOL(&_5, 1); + if (filter) { + ZVAL_BOOL(&_3, 1); } else { - ZVAL_BOOL(&_5, 0); + ZVAL_BOOL(&_3, 0); } - ZEPHIR_CALL_METHOD(&_3, this_ptr, "statementlist", NULL, 509, &_4, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_6); - ZEPHIR_CONCAT_SVSV(&_6, "", &_3); - zephir_get_strval(&compilation, &_6); - ZEPHIR_OBS_VAR(&blockStatements); - if (zephir_array_isset_string_fetch(&blockStatements, &statement, SL("false_statements"), 0)) { - if (extendsMode) { - ZVAL_BOOL(&_8$$4, 1); - } else { - ZVAL_BOOL(&_8$$4, 0); - } - ZEPHIR_CALL_METHOD(&_7$$4, this_ptr, "statementlist", NULL, 509, &blockStatements, &_8$$4); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_9$$4); - ZEPHIR_CONCAT_SV(&_9$$4, "", &_7$$4); - zephir_concat_self(&compilation, &_9$$4); + if (autoVersion) { + ZVAL_BOOL(&_4, 1); + } else { + ZVAL_BOOL(&_4, 0); } - zephir_concat_self_str(&compilation, "", sizeof("") - 1); - RETURN_CTOR(&compilation); + ZEPHIR_CALL_PARENT(NULL, phalcon_assets_asset_js_ce, getThis(), "__construct", &_0, 0, &_1, &path, &_2, &_3, &attributes, &version, &_4); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileInclude) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Assets_Filters_Cssmin) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Assets\\Filters, Cssmin, phalcon, assets_filters_cssmin, phalcon_assets_filters_cssmin_method_entry, 0); + + zend_class_implements(phalcon_assets_filters_cssmin_ce, 1, phalcon_assets_filterinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Assets_Filters_Cssmin, filter) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *statement_param = NULL, pathExpr, path, subCompiler, finalPath, compilation, params, _0, _3, _1$$5, _2$$6; - zval statement; + zval *content_param = NULL; + zval content; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&pathExpr); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&subCompiler); - ZVAL_UNDEF(&finalPath); - ZVAL_UNDEF(&compilation); - ZVAL_UNDEF(¶ms); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_1$$5); - ZVAL_UNDEF(&_2$$6); + ZVAL_UNDEF(&content); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(statement) + Z_PARAM_STR(content) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &statement_param); - ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); - - - ZEPHIR_OBS_VAR(&pathExpr); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&pathExpr, &statement, SL("path"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 982); - return; - } - zephir_array_fetch_string(&_0, &pathExpr, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 989); - if (ZEPHIR_IS_LONG(&_0, 260)) { - if (!(zephir_array_isset_string(&statement, SL("params")))) { - ZEPHIR_OBS_VAR(&path); - zephir_array_fetch_string(&path, &pathExpr, SL("value"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 998); - ZEPHIR_CALL_METHOD(&finalPath, this_ptr, "getfinalpath", NULL, 0, &path); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&subCompiler); - if (zephir_clone(&subCompiler, this_ptr) == FAILURE) { - RETURN_MM(); - } - ZVAL_BOOL(&_1$$5, 0); - ZEPHIR_CALL_METHOD(&compilation, &subCompiler, "compile", NULL, 0, &finalPath, &_1$$5); - zephir_check_call_status(); - if (Z_TYPE_P(&compilation) == IS_NULL) { - ZEPHIR_CALL_METHOD(&_2$$6, &subCompiler, "getcompiledtemplatepath", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&compilation); - zephir_file_get_contents(&compilation, &_2$$6); - } - RETURN_CCTOR(&compilation); - } + zephir_fetch_params(1, 1, 0, &content_param); + if (UNEXPECTED(Z_TYPE_P(content_param) != IS_STRING && Z_TYPE_P(content_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'content' must be of the type string")); + RETURN_MM_NULL(); } - ZEPHIR_CALL_METHOD(&path, this_ptr, "expression", NULL, 507, &pathExpr); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(¶ms); - if (!(zephir_array_isset_string_fetch(¶ms, &statement, SL("params"), 0))) { - ZEPHIR_CONCAT_SVS(return_value, "partial(", &path, "); ?>"); - RETURN_MM(); + if (EXPECTED(Z_TYPE_P(content_param) == IS_STRING)) { + zephir_get_strval(&content, content_param); + } else { + ZEPHIR_INIT_VAR(&content); } - ZEPHIR_CALL_METHOD(&_3, this_ptr, "expression", NULL, 507, ¶ms); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVS(return_value, "partial(", &path, ", ", &_3, "); ?>"); - RETURN_MM(); + + + RETURN_CTOR(&content); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileMacro) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Assets_Filters_Jsmin) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Assets\\Filters, Jsmin, phalcon, assets_filters_jsmin, phalcon_assets_filters_jsmin_method_entry, 0); + + zend_class_implements(phalcon_assets_filters_jsmin_ce, 1, phalcon_assets_filterinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Assets_Filters_Jsmin, filter) { - zend_string *_9$$6; - zend_ulong _8$$6; - zval code, macroName, _28, _4$$5, _5$$6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_15 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool extendsMode; - zval *statement_param = NULL, *extendsMode_param = NULL, name, defaultValue, parameters, position, parameter, variableName, blockStatements, _0, _3, _1$$4, _2$$4, *_6$$6, _7$$6, _10$$7, _11$$7, _12$$7, _13$$7, _14$$8, _16$$8, _17$$9, _18$$10, _19$$10, _20$$10, _21$$10, _22$$11, _23$$11, _24$$12, _25$$13, _26$$13, _27$$13; - zval statement; + zval *content_param = NULL; + zval content; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&defaultValue); - ZVAL_UNDEF(¶meters); - ZVAL_UNDEF(&position); - ZVAL_UNDEF(¶meter); - ZVAL_UNDEF(&variableName); - ZVAL_UNDEF(&blockStatements); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_10$$7); - ZVAL_UNDEF(&_11$$7); - ZVAL_UNDEF(&_12$$7); - ZVAL_UNDEF(&_13$$7); - ZVAL_UNDEF(&_14$$8); - ZVAL_UNDEF(&_16$$8); - ZVAL_UNDEF(&_17$$9); - ZVAL_UNDEF(&_18$$10); - ZVAL_UNDEF(&_19$$10); - ZVAL_UNDEF(&_20$$10); - ZVAL_UNDEF(&_21$$10); - ZVAL_UNDEF(&_22$$11); - ZVAL_UNDEF(&_23$$11); - ZVAL_UNDEF(&_24$$12); - ZVAL_UNDEF(&_25$$13); - ZVAL_UNDEF(&_26$$13); - ZVAL_UNDEF(&_27$$13); - ZVAL_UNDEF(&code); - ZVAL_UNDEF(¯oName); - ZVAL_UNDEF(&_28); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&content); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ARRAY(statement) - Z_PARAM_BOOL(extendsMode) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(content) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &statement_param, &extendsMode_param); - ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); - extendsMode = zephir_get_boolval(extendsMode_param); - - - ZEPHIR_OBS_VAR(&name); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&name, &statement, SL("name"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1057); - return; - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("macros"), PH_NOISY_CC | PH_READONLY); - if (UNEXPECTED(zephir_array_isset(&_0, &name))) { - ZEPHIR_INIT_VAR(&_1$$4); - object_init_ex(&_1$$4, phalcon_mvc_view_engine_volt_exception_ce); - ZEPHIR_INIT_VAR(&_2$$4); - ZEPHIR_CONCAT_SVS(&_2$$4, "Macro '", &name, "' is already defined"); - ZEPHIR_CALL_METHOD(NULL, &_1$$4, "__construct", NULL, 508, &_2$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$4, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1064); - ZEPHIR_MM_RESTORE(); - return; - } - zephir_update_property_array(this_ptr, SL("macros"), &name, &name); - ZEPHIR_INIT_VAR(&_3); - ZEPHIR_CONCAT_SVS(&_3, "$this->macros['", &name, "']"); - zephir_get_strval(¯oName, &_3); - ZEPHIR_INIT_VAR(&code); - ZVAL_STRING(&code, ""); - zephir_concat_self(&code, &_4$$5); - } else { - ZEPHIR_INIT_VAR(&_5$$6); - ZEPHIR_CONCAT_VS(&_5$$6, ¯oName, " = function($__p = null) { "); - zephir_concat_self(&code, &_5$$6); - zephir_is_iterable(¶meters, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1103); - if (Z_TYPE_P(¶meters) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(¶meters), _8$$6, _9$$6, _6$$6) - { - ZEPHIR_INIT_NVAR(&position); - if (_9$$6 != NULL) { - ZVAL_STR_COPY(&position, _9$$6); - } else { - ZVAL_LONG(&position, _8$$6); - } - ZEPHIR_INIT_NVAR(¶meter); - ZVAL_COPY(¶meter, _6$$6); - ZEPHIR_OBS_NVAR(&variableName); - zephir_array_fetch_string(&variableName, ¶meter, SL("variable"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1085); - ZEPHIR_INIT_NVAR(&_10$$7); - ZEPHIR_CONCAT_SVS(&_10$$7, "if (isset($__p[", &position, "])) { "); - zephir_concat_self(&code, &_10$$7); - ZEPHIR_INIT_NVAR(&_11$$7); - ZEPHIR_CONCAT_SVSVS(&_11$$7, "$", &variableName, " = $__p[", &position, "];"); - zephir_concat_self(&code, &_11$$7); - zephir_concat_self_str(&code, " } else { ", sizeof(" } else { ") - 1); - ZEPHIR_INIT_NVAR(&_12$$7); - ZEPHIR_CONCAT_SVS(&_12$$7, "if (array_key_exists(\"", &variableName, "\", $__p)) { "); - zephir_concat_self(&code, &_12$$7); - ZEPHIR_INIT_NVAR(&_13$$7); - ZEPHIR_CONCAT_SVSVS(&_13$$7, "$", &variableName, " = $__p[\"", &variableName, "\"];"); - zephir_concat_self(&code, &_13$$7); - zephir_concat_self_str(&code, " } else { ", sizeof(" } else { ") - 1); - ZEPHIR_OBS_NVAR(&defaultValue); - if (EXPECTED(zephir_array_isset_string_fetch(&defaultValue, ¶meter, SL("default"), 0))) { - ZEPHIR_CALL_METHOD(&_14$$8, this_ptr, "expression", &_15, 507, &defaultValue); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_16$$8); - ZEPHIR_CONCAT_SVSVS(&_16$$8, "$", &variableName, " = ", &_14$$8, ";"); - zephir_concat_self(&code, &_16$$8); - } else { - ZEPHIR_INIT_NVAR(&_17$$9); - ZEPHIR_CONCAT_SVSVS(&_17$$9, " throw new \\Phalcon\\Mvc\\View\\Exception(\"Macro '", &name, "' was called without parameter: ", &variableName, "\"); "); - zephir_concat_self(&code, &_17$$9); - } - zephir_concat_self_str(&code, " } } ", sizeof(" } } ") - 1); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, ¶meters, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_7$$6, ¶meters, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_7$$6)) { - break; - } - ZEPHIR_CALL_METHOD(&position, ¶meters, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(¶meter, ¶meters, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&variableName); - zephir_array_fetch_string(&variableName, ¶meter, SL("variable"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1085); - ZEPHIR_INIT_NVAR(&_18$$10); - ZEPHIR_CONCAT_SVS(&_18$$10, "if (isset($__p[", &position, "])) { "); - zephir_concat_self(&code, &_18$$10); - ZEPHIR_INIT_NVAR(&_19$$10); - ZEPHIR_CONCAT_SVSVS(&_19$$10, "$", &variableName, " = $__p[", &position, "];"); - zephir_concat_self(&code, &_19$$10); - zephir_concat_self_str(&code, " } else { ", sizeof(" } else { ") - 1); - ZEPHIR_INIT_NVAR(&_20$$10); - ZEPHIR_CONCAT_SVS(&_20$$10, "if (array_key_exists(\"", &variableName, "\", $__p)) { "); - zephir_concat_self(&code, &_20$$10); - ZEPHIR_INIT_NVAR(&_21$$10); - ZEPHIR_CONCAT_SVSVS(&_21$$10, "$", &variableName, " = $__p[\"", &variableName, "\"];"); - zephir_concat_self(&code, &_21$$10); - zephir_concat_self_str(&code, " } else { ", sizeof(" } else { ") - 1); - ZEPHIR_OBS_NVAR(&defaultValue); - if (EXPECTED(zephir_array_isset_string_fetch(&defaultValue, ¶meter, SL("default"), 0))) { - ZEPHIR_CALL_METHOD(&_22$$11, this_ptr, "expression", &_15, 507, &defaultValue); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_23$$11); - ZEPHIR_CONCAT_SVSVS(&_23$$11, "$", &variableName, " = ", &_22$$11, ";"); - zephir_concat_self(&code, &_23$$11); - } else { - ZEPHIR_INIT_NVAR(&_24$$12); - ZEPHIR_CONCAT_SVSVS(&_24$$12, " throw new \\Phalcon\\Mvc\\View\\Exception(\"Macro '", &name, "' was called without parameter: ", &variableName, "\"); "); - zephir_concat_self(&code, &_24$$12); - } - zephir_concat_self_str(&code, " } } ", sizeof(" } } ") - 1); - ZEPHIR_CALL_METHOD(NULL, ¶meters, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(¶meter); - ZEPHIR_INIT_NVAR(&position); - zephir_concat_self_str(&code, " ?>", sizeof(" ?>") - 1); + zephir_fetch_params(1, 1, 0, &content_param); + if (UNEXPECTED(Z_TYPE_P(content_param) != IS_STRING && Z_TYPE_P(content_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'content' must be of the type string")); + RETURN_MM_NULL(); } - ZEPHIR_OBS_VAR(&blockStatements); - if (zephir_array_isset_string_fetch(&blockStatements, &statement, SL("block_statements"), 0)) { - if (extendsMode) { - ZVAL_BOOL(&_26$$13, 1); - } else { - ZVAL_BOOL(&_26$$13, 0); - } - ZEPHIR_CALL_METHOD(&_25$$13, this_ptr, "statementlist", NULL, 509, &blockStatements, &_26$$13); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_27$$13); - ZEPHIR_CONCAT_VS(&_27$$13, &_25$$13, ""); - zephir_concat_self(&code, &_28); - RETURN_CTOR(&code); + + + RETURN_CTOR(&content); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileReturn) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Assets_Filters_None) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Assets\\Filters, None, phalcon, assets_filters_none, phalcon_assets_filters_none_method_entry, 0); + + zend_class_implements(phalcon_assets_filters_none_ce, 1, phalcon_assets_filterinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Assets_Filters_None, filter) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *statement_param = NULL, expr, _0; - zval statement; + zval *content_param = NULL; + zval content; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&content); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(statement) + Z_PARAM_STR(content) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &statement_param); - ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); + zephir_fetch_params(1, 1, 0, &content_param); + if (UNEXPECTED(Z_TYPE_P(content_param) != IS_STRING && Z_TYPE_P(content_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'content' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(content_param) == IS_STRING)) { + zephir_get_strval(&content, content_param); + } else { + ZEPHIR_INIT_VAR(&content); + } - ZEPHIR_OBS_VAR(&expr); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&expr, &statement, SL("expr"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1140); - return; - } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "expression", NULL, 507, &expr); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVS(return_value, ""); - RETURN_MM(); + RETURN_CTOR(&content); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileSet) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Assets_Inline_Css) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Assets\\Inline, Css, phalcon, assets_inline_css, phalcon_assets_inline_ce, phalcon_assets_inline_css_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Assets_Inline_Css, __construct) { - zval compilation; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *statement_param = NULL, assignments, assignment, exprCode, target, *_0, _1, _2$$4, _4$$4, _5$$4, _6$$5, _7$$6, _8$$7, _9$$8, _10$$9, _11$$10, _12$$10, _13$$10, _14$$11, _15$$12, _16$$13, _17$$14, _18$$15; - zval statement; + zephir_fcall_cache_entry *_1 = NULL; + zend_bool filter; + zval *content_param = NULL, *filter_param = NULL, *attributes = NULL, attributes_sub, __$null, _0$$3, _2, _3; + zval content; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&assignments); - ZVAL_UNDEF(&assignment); - ZVAL_UNDEF(&exprCode); - ZVAL_UNDEF(&target); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_8$$7); - ZVAL_UNDEF(&_9$$8); - ZVAL_UNDEF(&_10$$9); - ZVAL_UNDEF(&_11$$10); - ZVAL_UNDEF(&_12$$10); - ZVAL_UNDEF(&_13$$10); - ZVAL_UNDEF(&_14$$11); - ZVAL_UNDEF(&_15$$12); - ZVAL_UNDEF(&_16$$13); - ZVAL_UNDEF(&_17$$14); - ZVAL_UNDEF(&_18$$15); - ZVAL_UNDEF(&compilation); + ZVAL_UNDEF(&content); + ZVAL_UNDEF(&attributes_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(statement) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(content) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(filter) + Z_PARAM_ZVAL_OR_NULL(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &statement_param); - ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); + zephir_fetch_params(1, 1, 2, &content_param, &filter_param, &attributes); + zephir_get_strval(&content, content_param); + if (!filter_param) { + filter = 1; + } else { + filter = zephir_get_boolval(filter_param); + } + if (!attributes) { + attributes = &attributes_sub; + ZEPHIR_CPY_WRT(attributes, &__$null); + } else { + ZEPHIR_SEPARATE_PARAM(attributes); + } - ZEPHIR_OBS_VAR(&assignments); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&assignments, &statement, SL("assignments"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1166); - return; + if (Z_TYPE_P(attributes) == IS_NULL) { + ZEPHIR_INIT_VAR(&_0$$3); + zephir_create_array(&_0$$3, 1, 0); + add_assoc_stringl_ex(&_0$$3, SL("type"), SL("text/css")); + ZEPHIR_CPY_WRT(attributes, &_0$$3); } - ZEPHIR_INIT_VAR(&compilation); - ZVAL_STRING(&compilation, "", sizeof(" ?>") - 1); - RETURN_CTOR(&compilation); + ZEPHIR_CALL_PARENT(NULL, phalcon_assets_inline_css_ce, getThis(), "__construct", &_1, 0, &_2, &content, &_3, attributes); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileString) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Assets_Inline_Js) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Assets\\Inline, Js, phalcon, assets_inline_js, phalcon_assets_inline_ce, phalcon_assets_inline_js_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Assets_Inline_Js, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool extendsMode; - zval *viewCode_param = NULL, *extendsMode_param = NULL, _0, _1; - zval viewCode; + zephir_fcall_cache_entry *_1 = NULL; + zend_bool filter; + zval *content_param = NULL, *filter_param = NULL, *attributes = NULL, attributes_sub, __$null, _0$$3, _2, _3; + zval content; zval *this_ptr = getThis(); - ZVAL_UNDEF(&viewCode); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&content); + ZVAL_UNDEF(&attributes_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(viewCode) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(content) Z_PARAM_OPTIONAL - Z_PARAM_BOOL(extendsMode) + Z_PARAM_BOOL(filter) + Z_PARAM_ZVAL_OR_NULL(attributes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &viewCode_param, &extendsMode_param); - if (UNEXPECTED(Z_TYPE_P(viewCode_param) != IS_STRING && Z_TYPE_P(viewCode_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewCode' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(viewCode_param) == IS_STRING)) { - zephir_get_strval(&viewCode, viewCode_param); + zephir_fetch_params(1, 1, 2, &content_param, &filter_param, &attributes); + zephir_get_strval(&content, content_param); + if (!filter_param) { + filter = 1; } else { - ZEPHIR_INIT_VAR(&viewCode); + filter = zephir_get_boolval(filter_param); } - if (!extendsMode_param) { - extendsMode = 0; + if (!attributes) { + attributes = &attributes_sub; + ZEPHIR_CPY_WRT(attributes, &__$null); } else { - extendsMode = zephir_get_boolval(extendsMode_param); + ZEPHIR_SEPARATE_PARAM(attributes); } - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "eval code"); - zephir_update_property_zval(this_ptr, ZEND_STRL("currentPath"), &_0); - if (extendsMode) { - ZVAL_BOOL(&_1, 1); + if (Z_TYPE_P(attributes) == IS_NULL) { + ZEPHIR_INIT_VAR(&_0$$3); + zephir_create_array(&_0$$3, 1, 0); + add_assoc_stringl_ex(&_0$$3, SL("type"), SL("text/javascript")); + ZEPHIR_CPY_WRT(attributes, &_0$$3); + } + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "js"); + if (filter) { + ZVAL_BOOL(&_3, 1); } else { - ZVAL_BOOL(&_1, 0); + ZVAL_BOOL(&_3, 0); } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "compilesource", NULL, 0, &viewCode, &_1); + ZEPHIR_CALL_PARENT(NULL, phalcon_assets_inline_js_ce, getThis(), "__construct", &_1, 0, &_2, &content, &_3, attributes); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Application_AbstractApplication) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Application, AbstractApplication, phalcon, application_abstractapplication, phalcon_di_injectable_ce, phalcon_application_abstractapplication_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_application_abstractapplication_ce, SL("container"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_application_abstractapplication_ce, SL("defaultModule"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_application_abstractapplication_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_application_abstractapplication_ce, SL("modules"), ZEND_ACC_PROTECTED); + phalcon_application_abstractapplication_ce->create_object = zephir_init_properties_Phalcon_Application_AbstractApplication; + + zend_class_implements(phalcon_application_abstractapplication_ce, 1, phalcon_events_eventsawareinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Application_AbstractApplication, __construct) +{ + zval *container = NULL, container_sub, __$null; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&container_sub); + ZVAL_NULL(&__$null); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(container, phalcon_di_diinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(0, 1, &container); + if (!container) { + container = &container_sub; + container = &__$null; + } + + + if (Z_TYPE_P(container) == IS_OBJECT) { + zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); + } +} + +static PHP_METHOD(Phalcon_Application_AbstractApplication, getDefaultModule) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "defaultModule"); +} + +static PHP_METHOD(Phalcon_Application_AbstractApplication, getEventsManager) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "eventsManager"); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileSwitch) +static PHP_METHOD(Phalcon_Application_AbstractApplication, getModule) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool extendsMode; - zval *statement_param = NULL, *extendsMode_param = NULL, compilation, caseClauses, expr, lines, _2, _0$$3, _1$$3, _3$$4, _4$$5, _5$$5, _6$$5; - zval statement; + zval *name_param = NULL, module, _0, _1$$3; + zval name, _2$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&compilation); - ZVAL_UNDEF(&caseClauses); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&lines); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&module); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_6$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(statement) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(extendsMode) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &statement_param, &extendsMode_param); - ZEPHIR_OBS_COPY_OR_DUP(&statement, statement_param); - if (!extendsMode_param) { - extendsMode = 0; + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); } else { - extendsMode = zephir_get_boolval(extendsMode_param); + ZEPHIR_INIT_VAR(&name); } - ZEPHIR_OBS_VAR(&expr); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&expr, &statement, SL("expr"), 0)))) { - ZEPHIR_INIT_VAR(&_0$$3); - object_init_ex(&_0$$3, phalcon_mvc_view_engine_volt_exception_ce); + ZEPHIR_OBS_VAR(&module); + zephir_read_property(&_0, this_ptr, ZEND_STRL("modules"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(!(zephir_array_isset_fetch(&module, &_0, &name, 0)))) { ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "Corrupt statement"); - ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 508, &_1$$3, &statement); + object_init_ex(&_1$$3, phalcon_application_exception_ce); + ZEPHIR_INIT_VAR(&_2$$3); + ZEPHIR_CONCAT_SVS(&_2$$3, "Module '", &name, "' isn't registered in the application container"); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); zephir_check_call_status(); - zephir_throw_exception_debug(&_0$$3, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1256); + zephir_throw_exception_debug(&_1$$3, "phalcon/Application/AbstractApplication.zep", 83); ZEPHIR_MM_RESTORE(); return; } - ZEPHIR_CALL_METHOD(&_2, this_ptr, "expression", NULL, 507, &expr); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&compilation); - ZEPHIR_CONCAT_SVS(&compilation, ""); - ZEPHIR_OBS_VAR(&caseClauses); - if (zephir_array_isset_string_fetch(&caseClauses, &statement, SL("case_clauses"), 0)) { - if (extendsMode) { - ZVAL_BOOL(&_3$$4, 1); - } else { - ZVAL_BOOL(&_3$$4, 0); - } - ZEPHIR_CALL_METHOD(&lines, this_ptr, "statementlist", NULL, 509, &caseClauses, &_3$$4); - zephir_check_call_status(); - if (zephir_fast_strlen_ev(&lines) != 0) { - ZEPHIR_INIT_VAR(&_4$$5); - ZVAL_STRING(&_4$$5, "/(*ANYCRLF)^\\h+|\\h+$|(\\h){2,}/mu"); - ZEPHIR_INIT_VAR(&_5$$5); - ZVAL_STRING(&_5$$5, ""); - ZEPHIR_CALL_FUNCTION(&_6$$5, "preg_replace", NULL, 50, &_4$$5, &_5$$5, &lines); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&lines, &_6$$5); - } - zephir_concat_self(&compilation, &lines); - } - zephir_concat_self_str(&compilation, SL("")); - RETURN_CCTOR(&compilation); + RETURN_CCTOR(&module); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, expression) +static PHP_METHOD(Phalcon_Application_AbstractApplication, getModules) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "modules"); +} + +static PHP_METHOD(Phalcon_Application_AbstractApplication, registerModules) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL, *_7 = NULL, *_11 = NULL, *_13 = NULL, *_15 = NULL, *_21 = NULL, *_28 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *expr_param = NULL, exprCode, extensions, items, singleExpr, singleExprCode, name, left, leftCode, right, rightCode, type, startCode, endCode, start, end, _0, _2$$4, *_4$$6, _5$$6, _6$$7, _8$$8, _9$$10, _10$$11, _12$$15, _14$$16, _16$$34, _17$$34, _18$$34, _19$$34, _20$$38, _22$$72, _23$$72, _24$$76, _25$$76, _26$$76, _27$$76; - zval expr, _1$$4; + zend_bool merge; + zval *modules_param = NULL, *merge_param = NULL, _0$$3, _1$$3; + zval modules; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&exprCode); - ZVAL_UNDEF(&extensions); - ZVAL_UNDEF(&items); - ZVAL_UNDEF(&singleExpr); - ZVAL_UNDEF(&singleExprCode); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&left); - ZVAL_UNDEF(&leftCode); - ZVAL_UNDEF(&right); - ZVAL_UNDEF(&rightCode); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&startCode); - ZVAL_UNDEF(&endCode); - ZVAL_UNDEF(&start); - ZVAL_UNDEF(&end); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_6$$7); - ZVAL_UNDEF(&_8$$8); - ZVAL_UNDEF(&_9$$10); - ZVAL_UNDEF(&_10$$11); - ZVAL_UNDEF(&_12$$15); - ZVAL_UNDEF(&_14$$16); - ZVAL_UNDEF(&_16$$34); - ZVAL_UNDEF(&_17$$34); - ZVAL_UNDEF(&_18$$34); - ZVAL_UNDEF(&_19$$34); - ZVAL_UNDEF(&_20$$38); - ZVAL_UNDEF(&_22$$72); - ZVAL_UNDEF(&_23$$72); - ZVAL_UNDEF(&_24$$76); - ZVAL_UNDEF(&_25$$76); - ZVAL_UNDEF(&_26$$76); - ZVAL_UNDEF(&_27$$76); + ZVAL_UNDEF(&modules); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(expr) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(modules) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(merge) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &expr_param); - ZEPHIR_OBS_COPY_OR_DUP(&expr, expr_param); - + zephir_fetch_params(1, 1, 1, &modules_param, &merge_param); + zephir_get_arrval(&modules, modules_param); + if (!merge_param) { + merge = 0; + } else { + merge = zephir_get_boolval(merge_param); + } - ZEPHIR_INIT_VAR(&exprCode); - ZVAL_NULL(&exprCode); - RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("exprLevel"))); - zephir_read_property(&_0, this_ptr, ZEND_STRL("extensions"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&extensions, &_0); - while (1) { - if (Z_TYPE_P(&extensions) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&_1$$4); - zephir_create_array(&_1$$4, 1, 0); - zephir_array_fast_append(&_1$$4, &expr); - ZEPHIR_INIT_NVAR(&_2$$4); - ZVAL_STRING(&_2$$4, "resolveExpression"); - ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "fireextensionevent", &_3, 510, &_2$$4, &_1$$4); - zephir_check_call_status(); - if (Z_TYPE_P(&exprCode) == IS_STRING) { - break; - } - } - ZEPHIR_OBS_NVAR(&type); - if (!(zephir_array_isset_string_fetch(&type, &expr, SL("type"), 0))) { - ZEPHIR_INIT_NVAR(&items); - array_init(&items); - zephir_is_iterable(&expr, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1353); - if (Z_TYPE_P(&expr) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&expr), _4$$6) - { - ZEPHIR_INIT_NVAR(&singleExpr); - ZVAL_COPY(&singleExpr, _4$$6); - zephir_array_fetch_string(&_6$$7, &singleExpr, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1344); - ZEPHIR_CALL_METHOD(&singleExprCode, this_ptr, "expression", &_7, 507, &_6$$7); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&name); - if (zephir_array_isset_string_fetch(&name, &singleExpr, SL("name"), 0)) { - ZEPHIR_INIT_NVAR(&_8$$8); - ZEPHIR_CONCAT_SVSV(&_8$$8, "'", &name, "' => ", &singleExprCode); - zephir_array_append(&items, &_8$$8, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1347); - } else { - zephir_array_append(&items, &singleExprCode, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1349); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &expr, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5$$6, &expr, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5$$6)) { - break; - } - ZEPHIR_CALL_METHOD(&singleExpr, &expr, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_fetch_string(&_9$$10, &singleExpr, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1344); - ZEPHIR_CALL_METHOD(&singleExprCode, this_ptr, "expression", &_7, 507, &_9$$10); - zephir_check_call_status(); - ZEPHIR_OBS_NVAR(&name); - if (zephir_array_isset_string_fetch(&name, &singleExpr, SL("name"), 0)) { - ZEPHIR_INIT_NVAR(&_10$$11); - ZEPHIR_CONCAT_SVSV(&_10$$11, "'", &name, "' => ", &singleExprCode); - zephir_array_append(&items, &_10$$11, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1347); - } else { - zephir_array_append(&items, &singleExprCode, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1349); - } - ZEPHIR_CALL_METHOD(NULL, &expr, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&singleExpr); - ZEPHIR_INIT_NVAR(&exprCode); - zephir_fast_join_str(&exprCode, SL(", "), &items); - break; - } - if (ZEPHIR_IS_LONG(&type, '.')) { - ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "attributereader", &_11, 0, &expr); - zephir_check_call_status(); - break; - } - ZEPHIR_OBS_NVAR(&left); - if (zephir_array_isset_string_fetch(&left, &expr, SL("left"), 0)) { - ZEPHIR_CALL_METHOD(&leftCode, this_ptr, "expression", &_7, 507, &left); - zephir_check_call_status(); - } - if (ZEPHIR_IS_LONG(&type, 311)) { - zephir_array_fetch_string(&_12$$15, &expr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1379); - ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "resolvetest", &_13, 0, &_12$$15, &leftCode); - zephir_check_call_status(); - break; - } - if (ZEPHIR_IS_LONG(&type, 124)) { - zephir_array_fetch_string(&_14$$16, &expr, SL("right"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1391); - ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "resolvefilter", &_15, 511, &_14$$16, &leftCode); - zephir_check_call_status(); - break; - } - ZEPHIR_OBS_NVAR(&right); - if (zephir_array_isset_string_fetch(&right, &expr, SL("right"), 0)) { - ZEPHIR_CALL_METHOD(&rightCode, this_ptr, "expression", &_7, 507, &right); - zephir_check_call_status(); - } - ZEPHIR_INIT_NVAR(&exprCode); - ZVAL_NULL(&exprCode); - do { - if (ZEPHIR_IS_LONG(&type, '!')) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SV(&exprCode, "!", &rightCode); - break; - } - if (ZEPHIR_IS_LONG(&type, '*')) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " * ", &rightCode); - break; - } - if (ZEPHIR_IS_LONG(&type, '+')) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " + ", &rightCode); - break; - } - if (ZEPHIR_IS_LONG(&type, '-')) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " - ", &rightCode); - break; - } - if (ZEPHIR_IS_LONG(&type, '/')) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " / ", &rightCode); - break; - } - if (ZEPHIR_IS_LONG(&type, 37)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " % ", &rightCode); - break; - } - if (ZEPHIR_IS_LONG(&type, '<')) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " < ", &rightCode); - break; - } - if (ZEPHIR_IS_LONG(&type, 61)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " > ", &rightCode); - break; - } - if (ZEPHIR_IS_LONG(&type, 62)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " > ", &rightCode); - break; - } - if (ZEPHIR_IS_LONG(&type, 126)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " . ", &rightCode); - break; - } - if (ZEPHIR_IS_LONG(&type, 278)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVSVS(&exprCode, "pow(", &leftCode, ", ", &rightCode, ")"); - break; - } - if (ZEPHIR_IS_LONG(&type, 360)) { - ZEPHIR_INIT_NVAR(&exprCode); - if (zephir_array_isset_string(&expr, SL("left"))) { - ZEPHIR_CONCAT_SVS(&exprCode, "[", &leftCode, "]"); - } else { - ZVAL_STRING(&exprCode, "[]"); - } - break; - } - if (ZEPHIR_IS_LONG(&type, 258)) { - ZEPHIR_OBS_NVAR(&exprCode); - zephir_array_fetch_string(&exprCode, &expr, SL("value"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1462); - break; - } - if (ZEPHIR_IS_LONG(&type, 259)) { - ZEPHIR_OBS_NVAR(&exprCode); - zephir_array_fetch_string(&exprCode, &expr, SL("value"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1466); - break; - } - if (ZEPHIR_IS_LONG(&type, 260)) { - ZEPHIR_INIT_NVAR(&_16$$34); - zephir_array_fetch_string(&_17$$34, &expr, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1470); - ZEPHIR_INIT_NVAR(&_18$$34); - ZVAL_STRING(&_18$$34, "'"); - ZEPHIR_INIT_NVAR(&_19$$34); - ZVAL_STRING(&_19$$34, "\\'"); - zephir_fast_str_replace(&_16$$34, &_18$$34, &_19$$34, &_17$$34); - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVS(&exprCode, "'", &_16$$34, "'"); - break; - } - if (ZEPHIR_IS_LONG(&type, 261)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZVAL_STRING(&exprCode, "null"); - break; - } - if (ZEPHIR_IS_LONG(&type, 262)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZVAL_STRING(&exprCode, "false"); - break; - } - if (ZEPHIR_IS_LONG(&type, 263)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZVAL_STRING(&exprCode, "true"); - break; - } - if (ZEPHIR_IS_LONG(&type, 265)) { - zephir_array_fetch_string(&_20$$38, &expr, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1486); - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SV(&exprCode, "$", &_20$$38); - break; - } - if (ZEPHIR_IS_LONG(&type, 266)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " && ", &rightCode); - break; - } - if (ZEPHIR_IS_LONG(&type, 267)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " || ", &rightCode); - break; - } - if (ZEPHIR_IS_LONG(&type, 270)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " <= ", &rightCode); - break; - } - if (ZEPHIR_IS_LONG(&type, 271)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " >= ", &rightCode); - break; - } - if (ZEPHIR_IS_LONG(&type, 272)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " == ", &rightCode); - break; - } - if (ZEPHIR_IS_LONG(&type, 273)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " != ", &rightCode); - break; - } - if (ZEPHIR_IS_LONG(&type, 274)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " === ", &rightCode); - break; - } - if (ZEPHIR_IS_LONG(&type, 275)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_VSV(&exprCode, &leftCode, " !== ", &rightCode); - break; - } - if (ZEPHIR_IS_LONG(&type, 276)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVSVS(&exprCode, "range(", &leftCode, ", ", &rightCode, ")"); - break; - } - if (ZEPHIR_IS_LONG(&type, 350)) { - ZEPHIR_CALL_METHOD(&exprCode, this_ptr, "functioncall", &_21, 0, &expr); - zephir_check_call_status(); - break; - } - if (ZEPHIR_IS_LONG(&type, 356)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVS(&exprCode, "(", &leftCode, ")"); - break; - } - if (ZEPHIR_IS_LONG(&type, 361)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_VSVS(&exprCode, &leftCode, "[", &rightCode, "]"); - break; - } - if (ZEPHIR_IS_LONG(&type, 365)) { - ZEPHIR_OBS_NVAR(&start); - if (zephir_array_isset_string_fetch(&start, &expr, SL("start"), 0)) { - ZEPHIR_CALL_METHOD(&startCode, this_ptr, "expression", &_7, 507, &start); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&startCode); - ZVAL_STRING(&startCode, "null"); - } - ZEPHIR_OBS_NVAR(&end); - if (zephir_array_isset_string_fetch(&end, &expr, SL("end"), 0)) { - ZEPHIR_CALL_METHOD(&endCode, this_ptr, "expression", &_7, 507, &end); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&endCode); - ZVAL_STRING(&endCode, "null"); - } - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVSVSVS(&exprCode, "$this->slice(", &leftCode, ", ", &startCode, ", ", &endCode, ")"); - break; - } - if (ZEPHIR_IS_LONG(&type, 362)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVS(&exprCode, "!isset(", &leftCode, ")"); - break; - } - if (ZEPHIR_IS_LONG(&type, 363)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVS(&exprCode, "isset(", &leftCode, ")"); - break; - } - if (ZEPHIR_IS_LONG(&type, 392)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVS(&exprCode, "!empty(", &leftCode, ")"); - break; - } - if (ZEPHIR_IS_LONG(&type, 386)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVS(&exprCode, "empty(", &leftCode, ")"); - break; - } - if (ZEPHIR_IS_LONG(&type, 393)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVS(&exprCode, "!(((", &leftCode, ") % 2) == 0)"); - break; - } - if (ZEPHIR_IS_LONG(&type, 387)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVS(&exprCode, "(((", &leftCode, ") % 2) == 0)"); - break; - } - if (ZEPHIR_IS_LONG(&type, 394)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVS(&exprCode, "!(((", &leftCode, ") % 2) != 0)"); - break; - } - if (ZEPHIR_IS_LONG(&type, 388)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVS(&exprCode, "(((", &leftCode, ") % 2) != 0)"); - break; - } - if (ZEPHIR_IS_LONG(&type, 395)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVS(&exprCode, "!is_numeric(", &leftCode, ")"); - break; - } - if (ZEPHIR_IS_LONG(&type, 389)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVS(&exprCode, "is_numeric(", &leftCode, ")"); - break; - } - if (ZEPHIR_IS_LONG(&type, 396)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVS(&exprCode, "!is_scalar(", &leftCode, ")"); - break; - } - if (ZEPHIR_IS_LONG(&type, 390)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVS(&exprCode, "is_scalar(", &leftCode, ")"); - break; - } - if (ZEPHIR_IS_LONG(&type, 397)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVSVS(&exprCode, "!(is_array(", &leftCode, ") || (", &leftCode, ") instanceof Traversable)"); - break; - } - if (ZEPHIR_IS_LONG(&type, 391)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVSVS(&exprCode, "(is_array(", &leftCode, ") || (", &leftCode, ") instanceof Traversable)"); - break; - } - if (ZEPHIR_IS_LONG(&type, 309)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVSVS(&exprCode, "$this->isIncluded(", &leftCode, ", ", &rightCode, ")"); - break; - } - if (ZEPHIR_IS_LONG(&type, 367)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVSVS(&exprCode, "!$this->isIncluded(", &leftCode, ", ", &rightCode, ")"); - break; - } - if (ZEPHIR_IS_LONG(&type, 366)) { - zephir_array_fetch_string(&_23$$72, &expr, SL("ternary"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1625); - ZEPHIR_CALL_METHOD(&_22$$72, this_ptr, "expression", &_7, 507, &_23$$72); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SVSVSVS(&exprCode, "(", &_22$$72, " ? ", &leftCode, " : ", &rightCode, ")"); - break; - } - if (ZEPHIR_IS_LONG(&type, 368)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SV(&exprCode, "-", &rightCode); - break; - } - if (ZEPHIR_IS_LONG(&type, 369)) { - ZEPHIR_INIT_NVAR(&exprCode); - ZEPHIR_CONCAT_SV(&exprCode, "+", &rightCode); - break; - } - if (ZEPHIR_IS_LONG(&type, 364)) { - ZEPHIR_OBS_NVAR(&exprCode); - zephir_array_fetch_string(&exprCode, &expr, SL("value"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1637); - break; - } - ZEPHIR_INIT_NVAR(&_24$$76); - object_init_ex(&_24$$76, phalcon_mvc_view_engine_volt_exception_ce); - zephir_array_fetch_string(&_25$$76, &expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1642); - zephir_array_fetch_string(&_26$$76, &expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1643); - ZEPHIR_INIT_NVAR(&_27$$76); - ZEPHIR_CONCAT_SVSVSV(&_27$$76, "Unknown expression ", &type, " in ", &_25$$76, " on line ", &_26$$76); - ZEPHIR_CALL_METHOD(NULL, &_24$$76, "__construct", &_28, 508, &_27$$76); - zephir_check_call_status(); - zephir_throw_exception_debug(&_24$$76, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1643); - ZEPHIR_MM_RESTORE(); - return; - } while(0); - break; + if (merge) { + ZEPHIR_INIT_VAR(&_0$$3); + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("modules"), PH_NOISY_CC | PH_READONLY); + zephir_fast_array_merge(&_0$$3, &_1$$3, &modules); + zephir_update_property_zval(this_ptr, ZEND_STRL("modules"), &_0$$3); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("modules"), &modules); } - RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("exprLevel"))); - RETURN_CCTOR(&exprCode); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, fireExtensionEvent) +static PHP_METHOD(Phalcon_Application_AbstractApplication, setDefaultModule) { - zval _3$$6, _4$$7, _5$$11, _6$$12; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, *arguments = NULL, arguments_sub, __$null, extensions, extension, status, _0, *_1$$3, _2$$3; - zval name; + zval *defaultModule_param = NULL; + zval defaultModule; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&arguments_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&extensions); - ZVAL_UNDEF(&extension); - ZVAL_UNDEF(&status); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&_4$$7); - ZVAL_UNDEF(&_5$$11); - ZVAL_UNDEF(&_6$$12); + ZVAL_UNDEF(&defaultModule); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(arguments) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(defaultModule) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &name_param, &arguments); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + zephir_fetch_params(1, 1, 0, &defaultModule_param); + if (UNEXPECTED(Z_TYPE_P(defaultModule_param) != IS_STRING && Z_TYPE_P(defaultModule_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'defaultModule' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); + if (EXPECTED(Z_TYPE_P(defaultModule_param) == IS_STRING)) { + zephir_get_strval(&defaultModule, defaultModule_param); } else { - ZEPHIR_INIT_VAR(&name); - } - if (!arguments) { - arguments = &arguments_sub; - arguments = &__$null; + ZEPHIR_INIT_VAR(&defaultModule); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("extensions"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&extensions, &_0); - if (Z_TYPE_P(&extensions) == IS_ARRAY) { - zephir_is_iterable(&extensions, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1692); - if (Z_TYPE_P(&extensions) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&extensions), _1$$3) - { - ZEPHIR_INIT_NVAR(&extension); - ZVAL_COPY(&extension, _1$$3); - if ((zephir_method_exists(&extension, &name) == SUCCESS)) { - if (Z_TYPE_P(arguments) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&_3$$6); - zephir_create_array(&_3$$6, 2, 0); - zephir_array_fast_append(&_3$$6, &extension); - zephir_array_fast_append(&_3$$6, &name); - ZEPHIR_INIT_NVAR(&status); - ZEPHIR_CALL_USER_FUNC_ARRAY(&status, &_3$$6, arguments); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&_4$$7); - zephir_create_array(&_4$$7, 2, 0); - zephir_array_fast_append(&_4$$7, &extension); - zephir_array_fast_append(&_4$$7, &name); - ZEPHIR_INIT_NVAR(&status); - ZEPHIR_CALL_USER_FUNC(&status, &_4$$7); - zephir_check_call_status(); - } - if (Z_TYPE_P(&status) == IS_STRING) { - RETURN_CCTOR(&status); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &extensions, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2$$3, &extensions, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&extension, &extensions, "current", NULL, 0); - zephir_check_call_status(); - if ((zephir_method_exists(&extension, &name) == SUCCESS)) { - if (Z_TYPE_P(arguments) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&_5$$11); - zephir_create_array(&_5$$11, 2, 0); - zephir_array_fast_append(&_5$$11, &extension); - zephir_array_fast_append(&_5$$11, &name); - ZEPHIR_INIT_NVAR(&status); - ZEPHIR_CALL_USER_FUNC_ARRAY(&status, &_5$$11, arguments); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&_6$$12); - zephir_create_array(&_6$$12, 2, 0); - zephir_array_fast_append(&_6$$12, &extension); - zephir_array_fast_append(&_6$$12, &name); - ZEPHIR_INIT_NVAR(&status); - ZEPHIR_CALL_USER_FUNC(&status, &_6$$12); - zephir_check_call_status(); - } - if (Z_TYPE_P(&status) == IS_STRING) { - RETURN_CCTOR(&status); - } - } - ZEPHIR_CALL_METHOD(NULL, &extensions, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&extension); - } - ZEPHIR_MM_RESTORE(); + zephir_update_property_zval(this_ptr, ZEND_STRL("defaultModule"), &defaultModule); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, functionCall) +static PHP_METHOD(Phalcon_Application_AbstractApplication, setEventsManager) { - zend_bool _8$$5; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *expr_param = NULL, __$true, code, funcArguments, arguments, nameExpr, nameType, name, extensions, functions, definition, extendedBlocks, block, currentBlock, exprLevel, escapedCode, method, arrayHelpers, _14, _0$$5, _12$$5, _13$$5, _2$$6, _4$$9, _5$$9, _6$$9, _7$$9, _9$$15, _10$$16, _11$$17; - zval expr, _1$$6, _3$$12; + zval *eventsManager, eventsManager_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&expr); - ZVAL_UNDEF(&_1$$6); - ZVAL_UNDEF(&_3$$12); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&code); - ZVAL_UNDEF(&funcArguments); - ZVAL_UNDEF(&arguments); - ZVAL_UNDEF(&nameExpr); - ZVAL_UNDEF(&nameType); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&extensions); - ZVAL_UNDEF(&functions); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&extendedBlocks); - ZVAL_UNDEF(&block); - ZVAL_UNDEF(¤tBlock); - ZVAL_UNDEF(&exprLevel); - ZVAL_UNDEF(&escapedCode); - ZVAL_UNDEF(&method); - ZVAL_UNDEF(&arrayHelpers); - ZVAL_UNDEF(&_14); - ZVAL_UNDEF(&_0$$5); - ZVAL_UNDEF(&_12$$5); - ZVAL_UNDEF(&_13$$5); - ZVAL_UNDEF(&_2$$6); - ZVAL_UNDEF(&_4$$9); - ZVAL_UNDEF(&_5$$9); - ZVAL_UNDEF(&_6$$9); - ZVAL_UNDEF(&_7$$9); - ZVAL_UNDEF(&_9$$15); - ZVAL_UNDEF(&_10$$16); - ZVAL_UNDEF(&_11$$17); + ZVAL_UNDEF(&eventsManager_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(expr) + Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &expr_param); - ZEPHIR_OBS_COPY_OR_DUP(&expr, expr_param); + zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); - ZEPHIR_INIT_VAR(&code); - ZVAL_NULL(&code); - ZEPHIR_INIT_VAR(&funcArguments); - ZVAL_NULL(&funcArguments); - ZEPHIR_OBS_NVAR(&funcArguments); - if (zephir_array_isset_string_fetch(&funcArguments, &expr, SL("arguments"), 0)) { - ZEPHIR_CALL_METHOD(&arguments, this_ptr, "expression", NULL, 507, &funcArguments); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_NVAR(&arguments); - ZVAL_STRING(&arguments, ""); - } - ZEPHIR_OBS_VAR(&nameExpr); - zephir_array_fetch_string(&nameExpr, &expr, SL("name"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1718); - ZEPHIR_OBS_VAR(&nameType); - zephir_array_fetch_string(&nameType, &nameExpr, SL("type"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1719); - if (ZEPHIR_IS_LONG(&nameType, 265)) { - ZEPHIR_OBS_VAR(&name); - zephir_array_fetch_string(&name, &nameExpr, SL("value"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1725); - zephir_read_property(&_0$$5, this_ptr, ZEND_STRL("extensions"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&extensions, &_0$$5); - if (Z_TYPE_P(&extensions) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&_1$$6); - zephir_create_array(&_1$$6, 3, 0); - zephir_array_fast_append(&_1$$6, &name); - zephir_array_fast_append(&_1$$6, &arguments); - zephir_array_fast_append(&_1$$6, &funcArguments); - ZEPHIR_INIT_VAR(&_2$$6); - ZVAL_STRING(&_2$$6, "compileFunction"); - ZEPHIR_CALL_METHOD(&code, this_ptr, "fireextensionevent", NULL, 510, &_2$$6, &_1$$6); - zephir_check_call_status(); - if (Z_TYPE_P(&code) == IS_STRING) { - RETURN_CCTOR(&code); - } - } - zephir_read_property(&_0$$5, this_ptr, ZEND_STRL("functions"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&functions, &_0$$5); - if (Z_TYPE_P(&functions) == IS_ARRAY) { - ZEPHIR_OBS_VAR(&definition); - if (zephir_array_isset_fetch(&definition, &functions, &name, 0)) { - if (Z_TYPE_P(&definition) == IS_STRING) { - ZEPHIR_CONCAT_VSVS(return_value, &definition, "(", &arguments, ")"); - RETURN_MM(); - } - if (Z_TYPE_P(&definition) == IS_OBJECT) { - if (zephir_is_instance_of(&definition, SL("Closure"))) { - ZEPHIR_INIT_VAR(&_3$$12); - zephir_create_array(&_3$$12, 2, 0); - zephir_array_fast_append(&_3$$12, &arguments); - zephir_array_fast_append(&_3$$12, &funcArguments); - ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, &definition, &_3$$12); - zephir_check_call_status(); - RETURN_MM(); - } - } - ZEPHIR_INIT_VAR(&_4$$9); - object_init_ex(&_4$$9, phalcon_mvc_view_engine_volt_exception_ce); - zephir_array_fetch_string(&_5$$9, &expr, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1775); - zephir_array_fetch_string(&_6$$9, &expr, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1776); - ZEPHIR_INIT_VAR(&_7$$9); - ZEPHIR_CONCAT_SVSVSV(&_7$$9, "Invalid definition for user function '", &name, "' in ", &_5$$9, " on line ", &_6$$9); - ZEPHIR_CALL_METHOD(NULL, &_4$$9, "__construct", NULL, 508, &_7$$9); - zephir_check_call_status(); - zephir_throw_exception_debug(&_4$$9, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 1776); - ZEPHIR_MM_RESTORE(); - return; - } - } - _8$$5 = ZEPHIR_IS_STRING(&name, "get_content"); - if (!(_8$$5)) { - _8$$5 = ZEPHIR_IS_STRING(&name, "content"); - } - if (_8$$5) { - RETURN_MM_STRING("$this->getContent()"); - } - if (ZEPHIR_IS_STRING(&name, "partial")) { - ZEPHIR_CONCAT_SVS(return_value, "$this->partial(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "super")) { - zephir_read_property(&_9$$15, this_ptr, ZEND_STRL("extendedBlocks"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&extendedBlocks, &_9$$15); - if (Z_TYPE_P(&extendedBlocks) == IS_ARRAY) { - zephir_read_property(&_10$$16, this_ptr, ZEND_STRL("currentBlock"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(¤tBlock, &_10$$16); - ZEPHIR_OBS_VAR(&block); - if (zephir_array_isset_fetch(&block, &extendedBlocks, ¤tBlock, 0)) { - zephir_read_property(&_11$$17, this_ptr, ZEND_STRL("exprLevel"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&exprLevel, &_11$$17); - if (Z_TYPE_P(&block) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&code, this_ptr, "statementlistorextends", NULL, 0, &block); - zephir_check_call_status(); - if (ZEPHIR_IS_LONG(&exprLevel, 1)) { - ZEPHIR_CPY_WRT(&escapedCode, &code); - } else { - ZEPHIR_INIT_NVAR(&escapedCode); - zephir_addslashes(&escapedCode, &code); - } - } else { - if (ZEPHIR_IS_LONG(&exprLevel, 1)) { - ZEPHIR_CPY_WRT(&escapedCode, &block); - } else { - ZEPHIR_INIT_NVAR(&escapedCode); - zephir_addslashes(&escapedCode, &block); - } - } - if (ZEPHIR_IS_LONG(&exprLevel, 1)) { - RETURN_CCTOR(&escapedCode); - } - ZEPHIR_CONCAT_SVS(return_value, "'", &escapedCode, "'"); - RETURN_MM(); - } - } - RETURN_MM_STRING("''"); - } - ZEPHIR_INIT_VAR(&_12$$5); - zephir_camelize(&_12$$5, &name, NULL ); - ZEPHIR_CALL_FUNCTION(&method, "lcfirst", NULL, 96, &_12$$5); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&arrayHelpers); - zephir_create_array(&arrayHelpers, 16, 0); - zephir_array_update_string(&arrayHelpers, SL("link_to"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&arrayHelpers, SL("image"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&arrayHelpers, SL("form"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&arrayHelpers, SL("submit_button"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&arrayHelpers, SL("radio_field"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&arrayHelpers, SL("check_field"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&arrayHelpers, SL("file_field"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&arrayHelpers, SL("hidden_field"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&arrayHelpers, SL("password_field"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&arrayHelpers, SL("text_area"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&arrayHelpers, SL("text_field"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&arrayHelpers, SL("email_field"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&arrayHelpers, SL("date_field"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&arrayHelpers, SL("tel_field"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&arrayHelpers, SL("numeric_field"), &__$true, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&arrayHelpers, SL("image_input"), &__$true, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_VAR(&_13$$5); - ZVAL_STRING(&_13$$5, "Phalcon\\Tag"); - if ((zephir_method_exists(&_13$$5, &method) == SUCCESS)) { - if (zephir_array_isset(&arrayHelpers, &name)) { - ZEPHIR_CONCAT_SVSVS(return_value, "$this->tag->", &method, "([", &arguments, "])"); - RETURN_MM(); - } - ZEPHIR_CONCAT_SVSVS(return_value, "$this->tag->", &method, "(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "url")) { - ZEPHIR_CONCAT_SVS(return_value, "$this->url->get(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "static_url")) { - ZEPHIR_CONCAT_SVS(return_value, "$this->url->getStatic(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "date")) { - ZEPHIR_CONCAT_SVS(return_value, "date(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "time")) { - RETURN_MM_STRING("time()"); - } - if (ZEPHIR_IS_STRING(&name, "dump")) { - ZEPHIR_CONCAT_SVS(return_value, "var_dump(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "version")) { - RETURN_MM_STRING("(new Phalcon\\Support\\Version)->get()"); - } - if (ZEPHIR_IS_STRING(&name, "version_id")) { - RETURN_MM_STRING("(new Phalcon\\Support\\Version)->getId()"); - } - if (ZEPHIR_IS_STRING(&name, "preload")) { - ZEPHIR_CONCAT_SVS(return_value, "$this->tag->preload(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "constant")) { - ZEPHIR_CONCAT_SVS(return_value, "constant(", &arguments, ")"); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); +} + +zend_object *zephir_init_properties_Phalcon_Application_AbstractApplication(zend_class_entry *class_type) +{ + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("modules"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("modules"), &_1$$3); } - ZEPHIR_CONCAT_SVSVS(return_value, "$this->callMacro('", &name, "', [", &arguments, "])"); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); } - ZEPHIR_CALL_METHOD(&_14, this_ptr, "expression", NULL, 507, &nameExpr); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Application_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Application, Exception, phalcon, application_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Filter_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Filter, Exception, phalcon, filter_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Filter_FilterFactory) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter, FilterFactory, phalcon, filter_filterfactory, phalcon_filter_filterfactory_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Filter_FilterFactory, newInstance) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + object_init_ex(return_value, phalcon_filter_ce); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapters", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 236, &_0); zephir_check_call_status(); - ZEPHIR_CONCAT_VSVS(return_value, &_14, "(", &arguments, ")"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getCompiledTemplatePath) -{ - zval *this_ptr = getThis(); +static PHP_METHOD(Phalcon_Filter_FilterFactory, getAdapters) +{ + zval *this_ptr = getThis(); + + + + zephir_create_array(return_value, 21, 0); + add_assoc_stringl_ex(return_value, SL("absint"), SL("Phalcon\\Filter\\Sanitize\\AbsInt")); + add_assoc_stringl_ex(return_value, SL("alnum"), SL("Phalcon\\Filter\\Sanitize\\Alnum")); + add_assoc_stringl_ex(return_value, SL("alpha"), SL("Phalcon\\Filter\\Sanitize\\Alpha")); + add_assoc_stringl_ex(return_value, SL("bool"), SL("Phalcon\\Filter\\Sanitize\\BoolVal")); + add_assoc_stringl_ex(return_value, SL("email"), SL("Phalcon\\Filter\\Sanitize\\Email")); + add_assoc_stringl_ex(return_value, SL("float"), SL("Phalcon\\Filter\\Sanitize\\FloatVal")); + add_assoc_stringl_ex(return_value, SL("int"), SL("Phalcon\\Filter\\Sanitize\\IntVal")); + add_assoc_stringl_ex(return_value, SL("lower"), SL("Phalcon\\Filter\\Sanitize\\Lower")); + add_assoc_stringl_ex(return_value, SL("lowerFirst"), SL("Phalcon\\Filter\\Sanitize\\LowerFirst")); + add_assoc_stringl_ex(return_value, SL("regex"), SL("Phalcon\\Filter\\Sanitize\\Regex")); + add_assoc_stringl_ex(return_value, SL("remove"), SL("Phalcon\\Filter\\Sanitize\\Remove")); + add_assoc_stringl_ex(return_value, SL("replace"), SL("Phalcon\\Filter\\Sanitize\\Replace")); + add_assoc_stringl_ex(return_value, SL("special"), SL("Phalcon\\Filter\\Sanitize\\Special")); + add_assoc_stringl_ex(return_value, SL("specialFull"), SL("Phalcon\\Filter\\Sanitize\\SpecialFull")); + add_assoc_stringl_ex(return_value, SL("string"), SL("Phalcon\\Filter\\Sanitize\\StringVal")); + add_assoc_stringl_ex(return_value, SL("striptags"), SL("Phalcon\\Filter\\Sanitize\\Striptags")); + add_assoc_stringl_ex(return_value, SL("trim"), SL("Phalcon\\Filter\\Sanitize\\Trim")); + add_assoc_stringl_ex(return_value, SL("upper"), SL("Phalcon\\Filter\\Sanitize\\Upper")); + add_assoc_stringl_ex(return_value, SL("upperFirst"), SL("Phalcon\\Filter\\Sanitize\\UpperFirst")); + add_assoc_stringl_ex(return_value, SL("upperWords"), SL("Phalcon\\Filter\\Sanitize\\UpperWords")); + add_assoc_stringl_ex(return_value, SL("url"), SL("Phalcon\\Filter\\Sanitize\\Url")); + return; +} + - RETURN_MEMBER(getThis(), "compiledTemplatePath"); -} +#ifdef HAVE_CONFIG_H +#endif -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getDI) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "container"); -} -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getExtensions) +ZEPHIR_INIT_CLASS(Phalcon_Filter_FilterInterface) { - zval *this_ptr = getThis(); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Filter, FilterInterface, phalcon, filter_filterinterface, phalcon_filter_filterinterface_method_entry); + return SUCCESS; +} +ZEPHIR_DOC_METHOD(Phalcon_Filter_FilterInterface, sanitize); - RETURN_MEMBER(getThis(), "extensions"); -} -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getFilters) -{ - zval *this_ptr = getThis(); +#ifdef HAVE_CONFIG_H +#endif - RETURN_MEMBER(getThis(), "filters"); -} -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getFunctions) -{ - zval *this_ptr = getThis(); +ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_AbsInt) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, AbsInt, phalcon, filter_sanitize_absint, phalcon_filter_sanitize_absint_method_entry, 0); - RETURN_MEMBER(getThis(), "functions"); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getOption) +static PHP_METHOD(Phalcon_Filter_Sanitize_AbsInt, __invoke) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *option_param = NULL, value, _0; - zval option; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *input, input_sub, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&option); - ZVAL_UNDEF(&value); + ZVAL_UNDEF(&input_sub); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(option) + Z_PARAM_ZVAL(input) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &option_param); - if (UNEXPECTED(Z_TYPE_P(option_param) != IS_STRING && Z_TYPE_P(option_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'option' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(option_param) == IS_STRING)) { - zephir_get_strval(&option, option_param); - } else { - ZEPHIR_INIT_VAR(&option); - } + zephir_fetch_params(1, 1, 0, &input); - zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&value, &_0, &option, 1))) { - RETURN_MM_NULL(); - } - RETURN_CTOR(&value); + ZVAL_LONG(&_0, 519); + ZEPHIR_CALL_FUNCTION(&_1, "filter_var", NULL, 237, input, &_0); + zephir_check_call_status(); + ZVAL_LONG(&_0, zephir_get_intval(&_1)); + ZEPHIR_RETURN_CALL_FUNCTION("abs", NULL, 238, &_0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getOptions) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "options"); -} +#ifdef HAVE_CONFIG_H +#endif -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getTemplatePath) -{ - zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "currentPath"); -} -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getUniquePrefix) +ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Alnum) { - zval _7$$5; - zval _0, _3, _8, _1$$3, _2$$3, _4$$4, _5$$5, _6$$5; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_7$$5); - - - ZEPHIR_MM_GROW(); + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Alnum, phalcon, filter_sanitize_alnum, phalcon_filter_sanitize_alnum_method_entry, 0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_is_true(&_0))) { - ZEPHIR_INIT_VAR(&_1$$3); - zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("currentPath"), PH_NOISY_CC | PH_READONLY); - zephir_unique_path_key(&_1$$3, &_2$$3); - zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &_1$$3); - } - ZEPHIR_OBS_VAR(&_3); - zephir_read_property(&_3, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC); - if (Z_TYPE_P(&_3) == IS_OBJECT) { - ZEPHIR_OBS_VAR(&_4$$4); - zephir_read_property(&_4$$4, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC); - if (zephir_is_instance_of(&_4$$4, SL("Closure"))) { - ZEPHIR_INIT_VAR(&_5$$5); - zephir_read_property(&_6$$5, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_7$$5); - zephir_create_array(&_7$$5, 1, 0); - zephir_array_fast_append(&_7$$5, this_ptr); - ZEPHIR_CALL_USER_FUNC_ARRAY(&_5$$5, &_6$$5, &_7$$5); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &_5$$5); - } - } - ZEPHIR_OBS_VAR(&_8); - zephir_read_property(&_8, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC); - if (UNEXPECTED(Z_TYPE_P(&_8) != IS_STRING)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "The unique compilation prefix is invalid", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2097); - return; - } - RETURN_MM_MEMBER(getThis(), "prefix"); + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, parse) +static PHP_METHOD(Phalcon_Filter_Sanitize_Alnum, __invoke) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *viewCode_param = NULL, currentPath; - zval viewCode; + zval *input, input_sub, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&viewCode); - ZVAL_UNDEF(¤tPath); + ZVAL_UNDEF(&input_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(viewCode) + Z_PARAM_ZVAL(input) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &viewCode_param); - if (UNEXPECTED(Z_TYPE_P(viewCode_param) != IS_STRING && Z_TYPE_P(viewCode_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewCode' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(viewCode_param) == IS_STRING)) { - zephir_get_strval(&viewCode, viewCode_param); - } else { - ZEPHIR_INIT_VAR(&viewCode); - } + zephir_fetch_params(1, 1, 0, &input); - ZEPHIR_INIT_VAR(¤tPath); - ZVAL_STRING(¤tPath, "eval code"); - ZEPHIR_LAST_CALL_STATUS = phvolt_parse_view(return_value, &viewCode, ¤tPath); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "/[^A-Za-z0-9]/"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, ""); + ZEPHIR_RETURN_CALL_FUNCTION("preg_replace", NULL, 50, &_0, &_1, input); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveTest) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Alpha) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Alpha, phalcon, filter_sanitize_alpha, phalcon_filter_sanitize_alpha_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Filter_Sanitize_Alpha, __invoke) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval left; - zval *test_param = NULL, *left_param = NULL, type, name, testName, _6, _0$$12, _1$$12, _2$$13, _3$$13, _4$$14, _5$$14; - zval test; + zval *input, input_sub, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&test); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&testName); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_0$$12); - ZVAL_UNDEF(&_1$$12); - ZVAL_UNDEF(&_2$$13); - ZVAL_UNDEF(&_3$$13); - ZVAL_UNDEF(&_4$$14); - ZVAL_UNDEF(&_5$$14); - ZVAL_UNDEF(&left); + ZVAL_UNDEF(&input_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ARRAY(test) - Z_PARAM_STR(left) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(input) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &test_param, &left_param); - ZEPHIR_OBS_COPY_OR_DUP(&test, test_param); - zephir_get_strval(&left, left_param); + zephir_fetch_params(1, 1, 0, &input); - ZEPHIR_OBS_VAR(&type); - zephir_array_fetch_string(&type, &test, SL("type"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2131); - if (ZEPHIR_IS_LONG(&type, 265)) { - ZEPHIR_OBS_VAR(&name); - zephir_array_fetch_string(&name, &test, SL("value"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2137); - if (ZEPHIR_IS_STRING(&name, "empty")) { - ZEPHIR_CONCAT_SVS(return_value, "empty(", &left, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "even")) { - ZEPHIR_CONCAT_SVS(return_value, "(((", &left, ") % 2) == 0)"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "odd")) { - ZEPHIR_CONCAT_SVS(return_value, "(((", &left, ") % 2) != 0)"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "numeric")) { - ZEPHIR_CONCAT_SVS(return_value, "is_numeric(", &left, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "scalar")) { - ZEPHIR_CONCAT_SVS(return_value, "is_scalar(", &left, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "iterable")) { - ZEPHIR_CONCAT_SVSVS(return_value, "(is_array(", &left, ") || (", &left, ") instanceof Traversable)"); - RETURN_MM(); - } - } - if (ZEPHIR_IS_LONG(&type, 350)) { - ZEPHIR_OBS_VAR(&testName); - zephir_array_fetch_string(&testName, &test, SL("name"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2187); - ZEPHIR_OBS_NVAR(&name); - if (zephir_array_isset_string_fetch(&name, &testName, SL("value"), 0)) { - if (ZEPHIR_IS_STRING(&name, "divisibleby")) { - zephir_array_fetch_string(&_1$$12, &test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2191); - ZEPHIR_CALL_METHOD(&_0$$12, this_ptr, "expression", NULL, 507, &_1$$12); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVS(return_value, "(((", &left, ") % (", &_0$$12, ")) == 0)"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "sameas")) { - zephir_array_fetch_string(&_3$$13, &test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2198); - ZEPHIR_CALL_METHOD(&_2$$13, this_ptr, "expression", NULL, 507, &_3$$13); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVS(return_value, "(", &left, ") === (", &_2$$13, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "type")) { - zephir_array_fetch_string(&_5$$14, &test, SL("arguments"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2205); - ZEPHIR_CALL_METHOD(&_4$$14, this_ptr, "expression", NULL, 507, &_5$$14); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVS(return_value, "gettype(", &left, ") === (", &_4$$14, ")"); - RETURN_MM(); - } - } - } - ZEPHIR_CALL_METHOD(&_6, this_ptr, "expression", NULL, 507, &test); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "/[^A-Za-z]/"); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, ""); + ZEPHIR_RETURN_CALL_FUNCTION("preg_replace", NULL, 50, &_0, &_1, input); zephir_check_call_status(); - ZEPHIR_CONCAT_VSV(return_value, &left, " == ", &_6); RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, setDI) -{ - zval *container, container_sub; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&container_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - zephir_fetch_params_without_memory_grow(1, 0, &container); - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); + +ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_BoolVal) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, BoolVal, phalcon, filter_sanitize_boolval, phalcon_filter_sanitize_boolval_method_entry, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, setOption) +static PHP_METHOD(Phalcon_Filter_Sanitize_BoolVal, __invoke) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *option_param = NULL, *value, value_sub; - zval option; + zval *input, input_sub, falseArray, trueArray, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&option); - ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&input_sub); + ZVAL_UNDEF(&falseArray); + ZVAL_UNDEF(&trueArray); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(option) - Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(input) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &option_param, &value); - if (UNEXPECTED(Z_TYPE_P(option_param) != IS_STRING && Z_TYPE_P(option_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'option' must be of the type string")); - RETURN_MM_NULL(); + zephir_fetch_params(1, 1, 0, &input); + + + ZEPHIR_INIT_VAR(&trueArray); + zephir_create_array(&trueArray, 5, 0); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "true"); + zephir_array_fast_append(&trueArray, &_0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "on"); + zephir_array_fast_append(&trueArray, &_0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "yes"); + zephir_array_fast_append(&trueArray, &_0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "y"); + zephir_array_fast_append(&trueArray, &_0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "1"); + zephir_array_fast_append(&trueArray, &_0); + ZEPHIR_INIT_VAR(&falseArray); + zephir_create_array(&falseArray, 5, 0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "false"); + zephir_array_fast_append(&falseArray, &_0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "off"); + zephir_array_fast_append(&falseArray, &_0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "no"); + zephir_array_fast_append(&falseArray, &_0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "n"); + zephir_array_fast_append(&falseArray, &_0); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "0"); + zephir_array_fast_append(&falseArray, &_0); + if (1 == zephir_fast_in_array(input, &trueArray)) { + RETURN_MM_BOOL(1); } - if (EXPECTED(Z_TYPE_P(option_param) == IS_STRING)) { - zephir_get_strval(&option, option_param); - } else { - ZEPHIR_INIT_VAR(&option); + if (1 == zephir_fast_in_array(input, &falseArray)) { + RETURN_MM_BOOL(0); } + RETURN_MM_BOOL(zephir_get_boolval(input)); +} - zephir_update_property_array(this_ptr, SL("options"), &option, value); - ZEPHIR_MM_RESTORE(); + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Email) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Email, phalcon, filter_sanitize_email, phalcon_filter_sanitize_email_method_entry, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, setOptions) +static PHP_METHOD(Phalcon_Filter_Sanitize_Email, __invoke) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *options_param = NULL; - zval options; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *input, input_sub, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&options); + ZVAL_UNDEF(&input_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(options) + Z_PARAM_ZVAL(input) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &options_param); - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + zephir_fetch_params(1, 1, 0, &input); - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); - ZEPHIR_MM_RESTORE(); + ZVAL_LONG(&_0, 517); + ZVAL_LONG(&_1, 1048576); + ZEPHIR_RETURN_CALL_FUNCTION("filter_var", NULL, 237, input, &_0, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, setUniquePrefix) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *prefix_param = NULL; - zval prefix; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&prefix); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(prefix) - ZEND_PARSE_PARAMETERS_END(); + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &prefix_param); - if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { - zephir_get_strval(&prefix, prefix_param); - } else { - ZEPHIR_INIT_VAR(&prefix); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &prefix); - RETURN_THIS(); + +ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_FloatVal) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, FloatVal, phalcon, filter_sanitize_floatval, phalcon_filter_sanitize_floatval_method_entry, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, compileSource) +static PHP_METHOD(Phalcon_Filter_Sanitize_FloatVal, __invoke) { - zend_string *_6$$7; - zend_ulong _5$$7; + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool extendsMode; - zval *viewCode_param = NULL, *extendsMode_param = NULL, currentPath, intermediate, extended, finalCompilation, blocks, extendedBlocks, name, block, blockCompilation, localBlock, compilation, options, autoescape, _0, _1, _2$$7, *_3$$7, _4$$7; - zval viewCode; + zval *input, input_sub, _1, _2; zval *this_ptr = getThis(); - ZVAL_UNDEF(&viewCode); - ZVAL_UNDEF(¤tPath); - ZVAL_UNDEF(&intermediate); - ZVAL_UNDEF(&extended); - ZVAL_UNDEF(&finalCompilation); - ZVAL_UNDEF(&blocks); - ZVAL_UNDEF(&extendedBlocks); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&block); - ZVAL_UNDEF(&blockCompilation); - ZVAL_UNDEF(&localBlock); - ZVAL_UNDEF(&compilation); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&autoescape); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&input_sub); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$7); - ZVAL_UNDEF(&_4$$7); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(viewCode) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(extendsMode) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(input) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &viewCode_param, &extendsMode_param); - if (UNEXPECTED(Z_TYPE_P(viewCode_param) != IS_STRING && Z_TYPE_P(viewCode_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewCode' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(viewCode_param) == IS_STRING)) { - zephir_get_strval(&viewCode, viewCode_param); - } else { - ZEPHIR_INIT_VAR(&viewCode); - } - if (!extendsMode_param) { - extendsMode = 0; - } else { - extendsMode = zephir_get_boolval(extendsMode_param); - } + zephir_fetch_params(1, 1, 0, &input); - zephir_read_property(&_0, this_ptr, ZEND_STRL("currentPath"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(¤tPath, &_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&options, &_0); - if (Z_TYPE_P(&options) == IS_ARRAY) { - ZEPHIR_OBS_VAR(&autoescape); - if (zephir_array_isset_string_fetch(&autoescape, &options, SL("autoescape"), 0)) { - if (UNEXPECTED(((Z_TYPE_P(&autoescape) == IS_TRUE || Z_TYPE_P(&autoescape) == IS_FALSE) != 1))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "'autoescape' must be bool", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2274); - return; - } - zephir_update_property_zval(this_ptr, ZEND_STRL("autoescape"), &autoescape); - } - } - ZEPHIR_INIT_VAR(&intermediate); - ZEPHIR_LAST_CALL_STATUS = phvolt_parse_view(&intermediate, &viewCode, ¤tPath); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&intermediate) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Invalid intermediate representation", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2287); - return; - } - if (extendsMode) { - ZVAL_BOOL(&_0, 1); - } else { - ZVAL_BOOL(&_0, 0); - } - ZEPHIR_CALL_METHOD(&compilation, this_ptr, "statementlist", NULL, 509, &intermediate, &_0); + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 1, 0); + add_assoc_long_ex(&_0, SL("flags"), 4096); + ZVAL_LONG(&_1, 520); + ZEPHIR_CALL_FUNCTION(&_2, "filter_var", NULL, 237, input, &_1, &_0); zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("extended"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&extended, &_1); - if (ZEPHIR_IS_TRUE_IDENTICAL(&extended)) { - ZEPHIR_INIT_VAR(&finalCompilation); - if (extendsMode == 1) { - array_init(&finalCompilation); - } else { - ZVAL_NULL(&finalCompilation); - } - zephir_read_property(&_2$$7, this_ptr, ZEND_STRL("blocks"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&blocks, &_2$$7); - zephir_read_property(&_2$$7, this_ptr, ZEND_STRL("extendedBlocks"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&extendedBlocks, &_2$$7); - zephir_is_iterable(&extendedBlocks, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2359); - if (Z_TYPE_P(&extendedBlocks) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&extendedBlocks), _5$$7, _6$$7, _3$$7) - { - ZEPHIR_INIT_NVAR(&name); - if (_6$$7 != NULL) { - ZVAL_STR_COPY(&name, _6$$7); - } else { - ZVAL_LONG(&name, _5$$7); - } - ZEPHIR_INIT_NVAR(&block); - ZVAL_COPY(&block, _3$$7); - if (Z_TYPE_P(&name) == IS_STRING) { - if (zephir_array_isset(&blocks, &name)) { - ZEPHIR_OBS_NVAR(&localBlock); - zephir_array_fetch(&localBlock, &blocks, &name, PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2319); - zephir_update_property_zval(this_ptr, ZEND_STRL("currentBlock"), &name); - if (Z_TYPE_P(&localBlock) == IS_NULL) { - ZEPHIR_INIT_NVAR(&localBlock); - array_init(&localBlock); - } - ZEPHIR_CALL_METHOD(&blockCompilation, this_ptr, "statementlist", NULL, 509, &localBlock); - zephir_check_call_status(); - } else { - if (Z_TYPE_P(&block) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&blockCompilation, this_ptr, "statementlist", NULL, 509, &block); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(&blockCompilation, &block); - } - } - if (extendsMode) { - zephir_array_update_zval(&finalCompilation, &name, &blockCompilation, PH_COPY | PH_SEPARATE); - } else { - zephir_concat_self(&finalCompilation, &blockCompilation); - } - } else { - if (extendsMode) { - zephir_array_append(&finalCompilation, &block, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2352); - } else { - zephir_concat_self(&finalCompilation, &block); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &extendedBlocks, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_4$$7, &extendedBlocks, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_4$$7)) { - break; - } - ZEPHIR_CALL_METHOD(&name, &extendedBlocks, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&block, &extendedBlocks, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&name) == IS_STRING) { - if (zephir_array_isset(&blocks, &name)) { - ZEPHIR_OBS_NVAR(&localBlock); - zephir_array_fetch(&localBlock, &blocks, &name, PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2319); - zephir_update_property_zval(this_ptr, ZEND_STRL("currentBlock"), &name); - if (Z_TYPE_P(&localBlock) == IS_NULL) { - ZEPHIR_INIT_NVAR(&localBlock); - array_init(&localBlock); - } - ZEPHIR_CALL_METHOD(&blockCompilation, this_ptr, "statementlist", NULL, 509, &localBlock); - zephir_check_call_status(); - } else { - if (Z_TYPE_P(&block) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&blockCompilation, this_ptr, "statementlist", NULL, 509, &block); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(&blockCompilation, &block); - } - } - if (extendsMode) { - zephir_array_update_zval(&finalCompilation, &name, &blockCompilation, PH_COPY | PH_SEPARATE); - } else { - zephir_concat_self(&finalCompilation, &blockCompilation); - } - } else { - if (extendsMode) { - zephir_array_append(&finalCompilation, &block, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2352); - } else { - zephir_concat_self(&finalCompilation, &block); - } - } - ZEPHIR_CALL_METHOD(NULL, &extendedBlocks, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&block); - ZEPHIR_INIT_NVAR(&name); - RETURN_CCTOR(&finalCompilation); - } - if (extendsMode) { - RETURN_MM_MEMBER(getThis(), "blocks"); - } - RETURN_CCTOR(&compilation); + RETURN_MM_DOUBLE(zephir_get_doubleval(&_2)); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getFinalPath) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_IntVal) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, IntVal, phalcon, filter_sanitize_intval, phalcon_filter_sanitize_intval_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Filter_Sanitize_IntVal, __invoke) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *path_param = NULL, view, viewsDirs, viewsDir, _0, *_1$$4, _2$$4, _3$$5, _4$$7; - zval path; + zval *input, input_sub, _0, _1; zval *this_ptr = getThis(); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&view); - ZVAL_UNDEF(&viewsDirs); - ZVAL_UNDEF(&viewsDir); + ZVAL_UNDEF(&input_sub); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_4$$7); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(path) + Z_PARAM_ZVAL(input) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &path_param); - zephir_get_strval(&path, path_param); + zephir_fetch_params(1, 1, 0, &input); - zephir_read_property(&_0, this_ptr, ZEND_STRL("view"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&view, &_0); - if (Z_TYPE_P(&view) == IS_OBJECT) { - ZEPHIR_CALL_METHOD(&viewsDirs, &view, "getviewsdir", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&viewsDirs) == IS_ARRAY) { - zephir_is_iterable(&viewsDirs, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2393); - if (Z_TYPE_P(&viewsDirs) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&viewsDirs), _1$$4) - { - ZEPHIR_INIT_NVAR(&viewsDir); - ZVAL_COPY(&viewsDir, _1$$4); - ZEPHIR_INIT_NVAR(&_3$$5); - ZEPHIR_CONCAT_VV(&_3$$5, &viewsDir, &path); - if ((zephir_file_exists(&_3$$5) == SUCCESS)) { - ZEPHIR_CONCAT_VV(return_value, &viewsDir, &path); - RETURN_MM(); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &viewsDirs, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2$$4, &viewsDirs, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2$$4)) { - break; - } - ZEPHIR_CALL_METHOD(&viewsDir, &viewsDirs, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_4$$7); - ZEPHIR_CONCAT_VV(&_4$$7, &viewsDir, &path); - if ((zephir_file_exists(&_4$$7) == SUCCESS)) { - ZEPHIR_CONCAT_VV(return_value, &viewsDir, &path); - RETURN_MM(); - } - ZEPHIR_CALL_METHOD(NULL, &viewsDirs, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&viewsDir); - ZEPHIR_CONCAT_VV(return_value, &viewsDir, &path); - RETURN_MM(); - } else { - ZEPHIR_CONCAT_VV(return_value, &viewsDirs, &path); - RETURN_MM(); - } - } - RETURN_CTOR(&path); + ZVAL_LONG(&_0, 519); + ZEPHIR_CALL_FUNCTION(&_1, "filter_var", NULL, 237, input, &_0); + zephir_check_call_status(); + RETURN_MM_LONG(zephir_get_intval(&_1)); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter) -{ - zend_bool _14, _21, _22; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval left; - zval *filter_param = NULL, *left_param = NULL, code, type, functionName, name, file, line, extensions, filters, funcArguments, arguments, definition, _6, _23, _24, _25, _26, _0$$5, _1$$5, _2$$5, _3$$5, _8$$9, _10$$11, _11$$11, _12$$11, _13$$11, _15$$29, _16$$29, _17$$29, _18$$29, _19$$29, _20$$29; - zval filter, _4$$7, _5$$7, _7$$9, _9$$14; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&filter); - ZVAL_UNDEF(&_4$$7); - ZVAL_UNDEF(&_5$$7); - ZVAL_UNDEF(&_7$$9); - ZVAL_UNDEF(&_9$$14); - ZVAL_UNDEF(&code); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&functionName); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&file); - ZVAL_UNDEF(&line); - ZVAL_UNDEF(&extensions); - ZVAL_UNDEF(&filters); - ZVAL_UNDEF(&funcArguments); - ZVAL_UNDEF(&arguments); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_23); - ZVAL_UNDEF(&_24); - ZVAL_UNDEF(&_25); - ZVAL_UNDEF(&_26); - ZVAL_UNDEF(&_0$$5); - ZVAL_UNDEF(&_1$$5); - ZVAL_UNDEF(&_2$$5); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_8$$9); - ZVAL_UNDEF(&_10$$11); - ZVAL_UNDEF(&_11$$11); - ZVAL_UNDEF(&_12$$11); - ZVAL_UNDEF(&_13$$11); - ZVAL_UNDEF(&_15$$29); - ZVAL_UNDEF(&_16$$29); - ZVAL_UNDEF(&_17$$29); - ZVAL_UNDEF(&_18$$29); - ZVAL_UNDEF(&_19$$29); - ZVAL_UNDEF(&_20$$29); - ZVAL_UNDEF(&left); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ARRAY(filter) - Z_PARAM_STR(left) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &filter_param, &left_param); - ZEPHIR_OBS_COPY_OR_DUP(&filter, filter_param); - zephir_get_strval(&left, left_param); +#ifdef HAVE_CONFIG_H +#endif - ZEPHIR_INIT_VAR(&code); - ZVAL_NULL(&code); - ZEPHIR_OBS_VAR(&type); - zephir_array_fetch_string(&type, &filter, SL("type"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2411); - if (ZEPHIR_IS_LONG(&type, 265)) { - ZEPHIR_OBS_VAR(&name); - zephir_array_fetch_string(&name, &filter, SL("value"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2417); - } else { - if (UNEXPECTED(!ZEPHIR_IS_LONG(&type, 350))) { - ZEPHIR_INIT_VAR(&_0$$5); - object_init_ex(&_0$$5, phalcon_mvc_view_engine_volt_exception_ce); - zephir_array_fetch_string(&_1$$5, &filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2424); - zephir_array_fetch_string(&_2$$5, &filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2425); - ZEPHIR_INIT_VAR(&_3$$5); - ZEPHIR_CONCAT_SVSV(&_3$$5, "Unknown filter type in ", &_1$$5, " on line ", &_2$$5); - ZEPHIR_CALL_METHOD(NULL, &_0$$5, "__construct", NULL, 508, &_3$$5); - zephir_check_call_status(); - zephir_throw_exception_debug(&_0$$5, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2425); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_OBS_VAR(&functionName); - zephir_array_fetch_string(&functionName, &filter, SL("name"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2428); - ZEPHIR_OBS_NVAR(&name); - zephir_array_fetch_string(&name, &functionName, SL("value"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2429); - } - ZEPHIR_INIT_VAR(&funcArguments); - ZVAL_NULL(&funcArguments); - ZEPHIR_INIT_VAR(&arguments); - ZVAL_NULL(&arguments); - ZEPHIR_OBS_NVAR(&funcArguments); - if (zephir_array_isset_string_fetch(&funcArguments, &filter, SL("arguments"), 0)) { - if (!ZEPHIR_IS_STRING(&name, "default")) { - ZEPHIR_OBS_VAR(&file); - zephir_array_fetch_string(&file, &filter, SL("file"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2443); - ZEPHIR_OBS_VAR(&line); - zephir_array_fetch_string(&line, &filter, SL("line"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2444); - ZEPHIR_INIT_VAR(&_4$$7); - zephir_create_array(&_4$$7, 3, 0); - ZEPHIR_INIT_VAR(&_5$$7); - zephir_create_array(&_5$$7, 4, 0); - add_assoc_long_ex(&_5$$7, SL("type"), 364); - zephir_array_update_string(&_5$$7, SL("value"), &left, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_5$$7, SL("file"), &file, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_5$$7, SL("line"), &line, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_4$$7, SL("expr"), &_5$$7, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_4$$7, SL("file"), &file, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_4$$7, SL("line"), &line, PH_COPY | PH_SEPARATE); - ZEPHIR_MAKE_REF(&funcArguments); - ZEPHIR_CALL_FUNCTION(NULL, "array_unshift", NULL, 0, &funcArguments, &_4$$7); - ZEPHIR_UNREF(&funcArguments); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(&arguments, this_ptr, "expression", NULL, 507, &funcArguments); - zephir_check_call_status(); - } else { - ZEPHIR_CPY_WRT(&arguments, &left); - } - zephir_read_property(&_6, this_ptr, ZEND_STRL("extensions"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&extensions, &_6); - if (Z_TYPE_P(&extensions) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&_7$$9); - zephir_create_array(&_7$$9, 3, 0); - zephir_array_fast_append(&_7$$9, &name); - zephir_array_fast_append(&_7$$9, &arguments); - zephir_array_fast_append(&_7$$9, &funcArguments); - ZEPHIR_INIT_VAR(&_8$$9); - ZVAL_STRING(&_8$$9, "compileFilter"); - ZEPHIR_CALL_METHOD(&code, this_ptr, "fireextensionevent", NULL, 510, &_8$$9, &_7$$9); - zephir_check_call_status(); - if (Z_TYPE_P(&code) == IS_STRING) { - RETURN_CCTOR(&code); - } - } - zephir_read_property(&_6, this_ptr, ZEND_STRL("filters"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&filters, &_6); - ZEPHIR_OBS_VAR(&definition); - if (zephir_array_isset_fetch(&definition, &filters, &name, 0)) { - if (Z_TYPE_P(&definition) == IS_STRING) { - ZEPHIR_CONCAT_VSVS(return_value, &definition, "(", &arguments, ")"); - RETURN_MM(); - } - if (Z_TYPE_P(&definition) == IS_OBJECT) { - if (zephir_is_instance_of(&definition, SL("Closure"))) { - ZEPHIR_INIT_VAR(&_9$$14); - zephir_create_array(&_9$$14, 2, 0); - zephir_array_fast_append(&_9$$14, &arguments); - zephir_array_fast_append(&_9$$14, &funcArguments); - ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, &definition, &_9$$14); - zephir_check_call_status(); - RETURN_MM(); - } - } - ZEPHIR_INIT_VAR(&_10$$11); - object_init_ex(&_10$$11, phalcon_mvc_view_engine_volt_exception_ce); - zephir_array_fetch_string(&_11$$11, &filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2518); - zephir_array_fetch_string(&_12$$11, &filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2519); - ZEPHIR_INIT_VAR(&_13$$11); - ZEPHIR_CONCAT_SVSVSV(&_13$$11, "Invalid definition for user filter '", &name, "' in ", &_11$$11, " on line ", &_12$$11); - ZEPHIR_CALL_METHOD(NULL, &_10$$11, "__construct", NULL, 508, &_13$$11); - zephir_check_call_status(); - zephir_throw_exception_debug(&_10$$11, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2519); - ZEPHIR_MM_RESTORE(); - return; - } - if (ZEPHIR_IS_STRING(&name, "length")) { - ZEPHIR_CONCAT_SVS(return_value, "$this->length(", &arguments, ")"); - RETURN_MM(); - } - _14 = ZEPHIR_IS_STRING(&name, "e"); - if (!(_14)) { - _14 = ZEPHIR_IS_STRING(&name, "escape"); - } - if (_14) { - ZEPHIR_CONCAT_SVS(return_value, "$this->escaper->escapeHtml(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "escape_css")) { - ZEPHIR_CONCAT_SVS(return_value, "$this->escaper->escapeCss(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "escape_js")) { - ZEPHIR_CONCAT_SVS(return_value, "$this->escaper->escapeJs(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "escape_attr")) { - ZEPHIR_CONCAT_SVS(return_value, "$this->escaper->escapeHtmlAttr(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "trim")) { - ZEPHIR_CONCAT_SVS(return_value, "trim(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "left_trim")) { - ZEPHIR_CONCAT_SVS(return_value, "ltrim(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "right_trim")) { - ZEPHIR_CONCAT_SVS(return_value, "rtrim(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "striptags")) { - ZEPHIR_CONCAT_SVS(return_value, "strip_tags(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "url_encode")) { - ZEPHIR_CONCAT_SVS(return_value, "urlencode(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "slashes")) { - ZEPHIR_CONCAT_SVS(return_value, "addslashes(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "stripslashes")) { - ZEPHIR_CONCAT_SVS(return_value, "stripslashes(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "nl2br")) { - ZEPHIR_CONCAT_SVS(return_value, "nl2br(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "keys")) { - ZEPHIR_CONCAT_SVS(return_value, "array_keys(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "join")) { - zephir_array_fetch_long(&_15$$29, &funcArguments, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2625); - zephir_array_fetch_string(&_16$$29, &_15$$29, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2625); - zephir_array_fetch_string(&_17$$29, &_16$$29, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2625); - zephir_array_fetch_long(&_18$$29, &funcArguments, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2625); - zephir_array_fetch_string(&_19$$29, &_18$$29, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2625); - zephir_array_fetch_string(&_20$$29, &_19$$29, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2625); - ZEPHIR_CONCAT_SVSVS(return_value, "join('", &_17$$29, "', ", &_20$$29, ")"); - RETURN_MM(); - } - _21 = ZEPHIR_IS_STRING(&name, "lower"); - if (!(_21)) { - _21 = ZEPHIR_IS_STRING(&name, "lowercase"); - } - if (_21) { - ZEPHIR_CONCAT_SVS(return_value, "Phalcon\\Text::lower(", &arguments, ")"); - RETURN_MM(); - } - _22 = ZEPHIR_IS_STRING(&name, "upper"); - if (!(_22)) { - _22 = ZEPHIR_IS_STRING(&name, "uppercase"); - } - if (_22) { - ZEPHIR_CONCAT_SVS(return_value, "Phalcon\\Text::upper(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "capitalize")) { - ZEPHIR_CONCAT_SVS(return_value, "ucwords(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "sort")) { - ZEPHIR_CONCAT_SVS(return_value, "$this->sort(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "json_encode")) { - ZEPHIR_CONCAT_SVS(return_value, "json_encode(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "json_decode")) { - ZEPHIR_CONCAT_SVS(return_value, "json_decode(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "format")) { - ZEPHIR_CONCAT_SVS(return_value, "sprintf(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "abs")) { - ZEPHIR_CONCAT_SVS(return_value, "abs(", &arguments, ")"); - RETURN_MM(); - } - if (ZEPHIR_IS_STRING(&name, "slice")) { - ZEPHIR_CONCAT_SVS(return_value, "$this->slice(", &arguments, ")"); - RETURN_MM(); + + + +ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Lower) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Lower, phalcon, filter_sanitize_lower, phalcon_filter_sanitize_lower_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Filter_Sanitize_Lower, __invoke) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *input_param = NULL, _0$$3, _1$$3, _2; + zval input; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&input); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(input) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &input_param); + if (UNEXPECTED(Z_TYPE_P(input_param) != IS_STRING && Z_TYPE_P(input_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'input' must be of the type string")); + RETURN_MM_NULL(); } - if (ZEPHIR_IS_STRING(&name, "default")) { - ZEPHIR_CONCAT_SVSVSVS(return_value, "(empty(", &left, ") ? (", &arguments, ") : (", &left, "))"); - RETURN_MM(); + if (EXPECTED(Z_TYPE_P(input_param) == IS_STRING)) { + zephir_get_strval(&input, input_param); + } else { + ZEPHIR_INIT_VAR(&input); } - if (ZEPHIR_IS_STRING(&name, "convert_encoding")) { - ZEPHIR_CONCAT_SVS(return_value, "$this->convertEncoding(", &arguments, ")"); + + + if (1 == (zephir_function_exists_ex(ZEND_STRL("mb_convert_case")) == SUCCESS)) { + ZVAL_LONG(&_0$$3, 1); + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, "UTF-8"); + ZEPHIR_RETURN_CALL_FUNCTION("mb_convert_case", NULL, 239, &input, &_0$$3, &_1$$3); + zephir_check_call_status(); RETURN_MM(); } - ZEPHIR_INIT_VAR(&_23); - object_init_ex(&_23, phalcon_mvc_view_engine_volt_exception_ce); - zephir_array_fetch_string(&_24, &filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2712); - zephir_array_fetch_string(&_25, &filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2713); - ZEPHIR_INIT_VAR(&_26); - ZEPHIR_CONCAT_SVSVSV(&_26, "Unknown filter \"", &name, "\" in ", &_24, " on line ", &_25); - ZEPHIR_CALL_METHOD(NULL, &_23, "__construct", NULL, 508, &_26); + ZEPHIR_CALL_FUNCTION(&_2, "utf8_decode", NULL, 240, &input); zephir_check_call_status(); - zephir_throw_exception_debug(&_23, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2713); - ZEPHIR_MM_RESTORE(); - return; + zephir_fast_strtolower(return_value, &_2); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_LowerFirst) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, LowerFirst, phalcon, filter_sanitize_lowerfirst, phalcon_filter_sanitize_lowerfirst_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Filter_Sanitize_LowerFirst, __invoke) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_8 = NULL, *_11 = NULL, *_15 = NULL, *_17 = NULL, *_20 = NULL, *_22 = NULL, *_27 = NULL, *_29 = NULL, *_31 = NULL, *_35 = NULL, *_37 = NULL, *_40 = NULL, *_42 = NULL, *_44 = NULL, *_47 = NULL, *_49 = NULL, *_52 = NULL, *_55 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool extendsMode, _1; - zval *statements_param = NULL, *extendsMode_param = NULL, __$true, __$false, extended, blockMode, compilation, extensions, statement, tempCompilation, type, blockName, blockStatements, blocks, path, finalPath, subCompiler, level, _0, *_2, _3, _4$$7, _5$$7, _6$$7, _7$$7, _10$$8, _12$$10, _13$$11, _14$$11, _16$$12, _18$$13, _19$$13, _21$$14, _23$$15, _24$$15, _25$$16, _26$$16, _28$$17, _30$$18, _32$$19, _33$$24, _34$$24, _36$$25, _38$$26, _39$$27, _41$$28, _43$$29, _45$$30, _46$$30, _48$$33, _50$$34, _51$$34, _53$$35, _54$$35, _56$$37, _57$$37, _58$$37, _59$$37, _60$$40, _61$$40, _62$$40, _63$$40, _65$$41, _66$$43, _67$$44, _68$$44, _69$$45, _70$$46, _71$$46, _72$$47, _73$$48, _74$$48, _75$$49, _76$$49, _77$$50, _78$$51, _79$$52, _80$$57, _81$$57, _82$$58, _83$$59, _84$$60, _85$$61, _86$$62, _87$$63, _88$$63, _89$$66, _90$$67, _91$$67, _92$$68, _93$$68, _94$$70, _95$$70, _96$$70, _97$$70; - zval statements, _9$$8, _64$$41; + zval *input_param = NULL; + zval input; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statements); - ZVAL_UNDEF(&_9$$8); - ZVAL_UNDEF(&_64$$41); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&extended); - ZVAL_UNDEF(&blockMode); - ZVAL_UNDEF(&compilation); - ZVAL_UNDEF(&extensions); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&tempCompilation); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&blockName); - ZVAL_UNDEF(&blockStatements); - ZVAL_UNDEF(&blocks); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&finalPath); - ZVAL_UNDEF(&subCompiler); - ZVAL_UNDEF(&level); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4$$7); - ZVAL_UNDEF(&_5$$7); - ZVAL_UNDEF(&_6$$7); - ZVAL_UNDEF(&_7$$7); - ZVAL_UNDEF(&_10$$8); - ZVAL_UNDEF(&_12$$10); - ZVAL_UNDEF(&_13$$11); - ZVAL_UNDEF(&_14$$11); - ZVAL_UNDEF(&_16$$12); - ZVAL_UNDEF(&_18$$13); - ZVAL_UNDEF(&_19$$13); - ZVAL_UNDEF(&_21$$14); - ZVAL_UNDEF(&_23$$15); - ZVAL_UNDEF(&_24$$15); - ZVAL_UNDEF(&_25$$16); - ZVAL_UNDEF(&_26$$16); - ZVAL_UNDEF(&_28$$17); - ZVAL_UNDEF(&_30$$18); - ZVAL_UNDEF(&_32$$19); - ZVAL_UNDEF(&_33$$24); - ZVAL_UNDEF(&_34$$24); - ZVAL_UNDEF(&_36$$25); - ZVAL_UNDEF(&_38$$26); - ZVAL_UNDEF(&_39$$27); - ZVAL_UNDEF(&_41$$28); - ZVAL_UNDEF(&_43$$29); - ZVAL_UNDEF(&_45$$30); - ZVAL_UNDEF(&_46$$30); - ZVAL_UNDEF(&_48$$33); - ZVAL_UNDEF(&_50$$34); - ZVAL_UNDEF(&_51$$34); - ZVAL_UNDEF(&_53$$35); - ZVAL_UNDEF(&_54$$35); - ZVAL_UNDEF(&_56$$37); - ZVAL_UNDEF(&_57$$37); - ZVAL_UNDEF(&_58$$37); - ZVAL_UNDEF(&_59$$37); - ZVAL_UNDEF(&_60$$40); - ZVAL_UNDEF(&_61$$40); - ZVAL_UNDEF(&_62$$40); - ZVAL_UNDEF(&_63$$40); - ZVAL_UNDEF(&_65$$41); - ZVAL_UNDEF(&_66$$43); - ZVAL_UNDEF(&_67$$44); - ZVAL_UNDEF(&_68$$44); - ZVAL_UNDEF(&_69$$45); - ZVAL_UNDEF(&_70$$46); - ZVAL_UNDEF(&_71$$46); - ZVAL_UNDEF(&_72$$47); - ZVAL_UNDEF(&_73$$48); - ZVAL_UNDEF(&_74$$48); - ZVAL_UNDEF(&_75$$49); - ZVAL_UNDEF(&_76$$49); - ZVAL_UNDEF(&_77$$50); - ZVAL_UNDEF(&_78$$51); - ZVAL_UNDEF(&_79$$52); - ZVAL_UNDEF(&_80$$57); - ZVAL_UNDEF(&_81$$57); - ZVAL_UNDEF(&_82$$58); - ZVAL_UNDEF(&_83$$59); - ZVAL_UNDEF(&_84$$60); - ZVAL_UNDEF(&_85$$61); - ZVAL_UNDEF(&_86$$62); - ZVAL_UNDEF(&_87$$63); - ZVAL_UNDEF(&_88$$63); - ZVAL_UNDEF(&_89$$66); - ZVAL_UNDEF(&_90$$67); - ZVAL_UNDEF(&_91$$67); - ZVAL_UNDEF(&_92$$68); - ZVAL_UNDEF(&_93$$68); - ZVAL_UNDEF(&_94$$70); - ZVAL_UNDEF(&_95$$70); - ZVAL_UNDEF(&_96$$70); - ZVAL_UNDEF(&_97$$70); + ZVAL_UNDEF(&input); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(statements) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(extendsMode) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(input) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &statements_param, &extendsMode_param); - ZEPHIR_OBS_COPY_OR_DUP(&statements, statements_param); - if (!extendsMode_param) { - extendsMode = 0; + zephir_fetch_params(1, 1, 0, &input_param); + if (UNEXPECTED(Z_TYPE_P(input_param) != IS_STRING && Z_TYPE_P(input_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'input' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(input_param) == IS_STRING)) { + zephir_get_strval(&input, input_param); } else { - extendsMode = zephir_get_boolval(extendsMode_param); + ZEPHIR_INIT_VAR(&input); } - if (!(zephir_fast_count_int(&statements))) { - RETURN_MM_STRING(""); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("extended"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&extended, &_0); - _1 = zephir_is_true(&extended); - if (!(_1)) { - _1 = extendsMode; - } - ZEPHIR_INIT_VAR(&blockMode); - ZVAL_BOOL(&blockMode, _1); - if (ZEPHIR_IS_TRUE_IDENTICAL(&blockMode)) { - RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("blockLevel"))); - } - RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("level"))); - ZEPHIR_INIT_VAR(&compilation); - ZVAL_NULL(&compilation); - zephir_read_property(&_0, this_ptr, ZEND_STRL("extensions"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&extensions, &_0); - zephir_is_iterable(&statements, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 3001); - if (Z_TYPE_P(&statements) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&statements), _2) - { - ZEPHIR_INIT_NVAR(&statement); - ZVAL_COPY(&statement, _2); - if (UNEXPECTED(Z_TYPE_P(&statement) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2753); - return; - } - if (UNEXPECTED(!(zephir_array_isset_string(&statement, SL("type"))))) { - ZEPHIR_INIT_NVAR(&_4$$7); - object_init_ex(&_4$$7, phalcon_mvc_view_engine_volt_exception_ce); - zephir_array_fetch_string(&_5$$7, &statement, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2761); - zephir_array_fetch_string(&_6$$7, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2761); - ZEPHIR_INIT_NVAR(&_7$$7); - ZEPHIR_CONCAT_SVSV(&_7$$7, "Invalid statement in ", &_5$$7, " on line ", &_6$$7); - ZEPHIR_CALL_METHOD(NULL, &_4$$7, "__construct", &_8, 508, &_7$$7, &statement); - zephir_check_call_status(); - zephir_throw_exception_debug(&_4$$7, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2763); - ZEPHIR_MM_RESTORE(); - return; - } - if (Z_TYPE_P(&extensions) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&_9$$8); - zephir_create_array(&_9$$8, 1, 0); - zephir_array_fast_append(&_9$$8, &statement); - ZEPHIR_INIT_NVAR(&_10$$8); - ZVAL_STRING(&_10$$8, "compileStatement"); - ZEPHIR_CALL_METHOD(&tempCompilation, this_ptr, "fireextensionevent", &_11, 510, &_10$$8, &_9$$8); - zephir_check_call_status(); - if (Z_TYPE_P(&tempCompilation) == IS_STRING) { - zephir_concat_self(&compilation, &tempCompilation); - continue; - } - } - ZEPHIR_OBS_NVAR(&type); - zephir_array_fetch_string(&type, &statement, SL("type"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2789); - do { - if (ZEPHIR_IS_LONG(&type, 357)) { - zephir_array_fetch_string(&_12$$10, &statement, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2797); - zephir_concat_self(&compilation, &_12$$10); - break; - } - if (ZEPHIR_IS_LONG(&type, 300)) { - if (extendsMode) { - ZVAL_BOOL(&_14$$11, 1); - } else { - ZVAL_BOOL(&_14$$11, 0); - } - ZEPHIR_CALL_METHOD(&_13$$11, this_ptr, "compileif", &_15, 0, &statement, &_14$$11); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_13$$11); - break; - } - if (ZEPHIR_IS_LONG(&type, 302)) { - ZEPHIR_CALL_METHOD(&_16$$12, this_ptr, "compileelseif", &_17, 0, &statement); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_16$$12); - break; - } - if (ZEPHIR_IS_LONG(&type, 411)) { - if (extendsMode) { - ZVAL_BOOL(&_19$$13, 1); - } else { - ZVAL_BOOL(&_19$$13, 0); - } - ZEPHIR_CALL_METHOD(&_18$$13, this_ptr, "compileswitch", &_20, 0, &statement, &_19$$13); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_18$$13); - break; - } - if (ZEPHIR_IS_LONG(&type, 412)) { - ZEPHIR_CALL_METHOD(&_21$$14, this_ptr, "compilecase", &_22, 0, &statement); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_21$$14); - break; - } - if (ZEPHIR_IS_LONG(&type, 413)) { - ZVAL_BOOL(&_24$$15, 0); - ZEPHIR_CALL_METHOD(&_23$$15, this_ptr, "compilecase", &_22, 0, &statement, &_24$$15); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_23$$15); - break; - } - if (ZEPHIR_IS_LONG(&type, 304)) { - if (extendsMode) { - ZVAL_BOOL(&_26$$16, 1); - } else { - ZVAL_BOOL(&_26$$16, 0); - } - ZEPHIR_CALL_METHOD(&_25$$16, this_ptr, "compileforeach", &_27, 0, &statement, &_26$$16); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_25$$16); - break; - } - if (ZEPHIR_IS_LONG(&type, 306)) { - ZEPHIR_CALL_METHOD(&_28$$17, this_ptr, "compileset", &_29, 0, &statement); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_28$$17); - break; - } - if (ZEPHIR_IS_LONG(&type, 359)) { - ZEPHIR_CALL_METHOD(&_30$$18, this_ptr, "compileecho", &_31, 0, &statement); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_30$$18); - break; - } - if (ZEPHIR_IS_LONG(&type, 307)) { - ZEPHIR_OBS_NVAR(&blockName); - zephir_array_fetch_string(&blockName, &statement, SL("name"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2845); - ZEPHIR_OBS_NVAR(&blockStatements); - zephir_array_isset_string_fetch(&blockStatements, &statement, SL("block_statements"), 0); - zephir_read_property(&_32$$19, this_ptr, ZEND_STRL("blocks"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&blocks, &_32$$19); - if (zephir_is_true(&blockMode)) { - if (Z_TYPE_P(&blocks) != IS_ARRAY) { - ZEPHIR_INIT_NVAR(&blocks); - array_init(&blocks); - } - if (Z_TYPE_P(&compilation) != IS_NULL) { - zephir_array_append(&blocks, &compilation, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2860); - ZEPHIR_INIT_NVAR(&compilation); - ZVAL_NULL(&compilation); - } - zephir_array_update_zval(&blocks, &blockName, &blockStatements, PH_COPY | PH_SEPARATE); - zephir_update_property_zval(this_ptr, ZEND_STRL("blocks"), &blocks); - } else { - if (Z_TYPE_P(&blockStatements) == IS_ARRAY) { - if (extendsMode) { - ZVAL_BOOL(&_34$$24, 1); - } else { - ZVAL_BOOL(&_34$$24, 0); - } - ZEPHIR_CALL_METHOD(&_33$$24, this_ptr, "statementlist", &_35, 509, &blockStatements, &_34$$24); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_33$$24); - } - } - break; - } - if (ZEPHIR_IS_LONG(&type, 310)) { - ZEPHIR_OBS_NVAR(&path); - zephir_array_fetch_string(&path, &statement, SL("path"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2886); - zephir_array_fetch_string(&_36$$25, &path, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2890); - ZEPHIR_CALL_METHOD(&finalPath, this_ptr, "getfinalpath", &_37, 0, &_36$$25); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&extended); - ZVAL_BOOL(&extended, 1); - ZEPHIR_INIT_NVAR(&subCompiler); - if (zephir_clone(&subCompiler, this_ptr) == FAILURE) { - RETURN_MM(); - } - ZEPHIR_CALL_METHOD(&tempCompilation, &subCompiler, "compile", NULL, 0, &finalPath, &extended); - zephir_check_call_status(); - if (Z_TYPE_P(&tempCompilation) == IS_NULL) { - ZEPHIR_CALL_METHOD(&_38$$26, &subCompiler, "getcompiledtemplatepath", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&tempCompilation); - zephir_file_get_contents(&tempCompilation, &_38$$26); - } - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("extended"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("extended"), &__$false); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("extendedBlocks"), &tempCompilation); - ZEPHIR_CPY_WRT(&blockMode, &extended); - break; - } - if (ZEPHIR_IS_LONG(&type, 313)) { - ZEPHIR_CALL_METHOD(&_39$$27, this_ptr, "compileinclude", &_40, 0, &statement); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_39$$27); - break; - } - if (ZEPHIR_IS_LONG(&type, 316)) { - ZEPHIR_CALL_METHOD(&_41$$28, this_ptr, "compiledo", &_42, 0, &statement); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_41$$28); - break; - } - if (ZEPHIR_IS_LONG(&type, 327)) { - ZEPHIR_CALL_METHOD(&_43$$29, this_ptr, "compilereturn", &_44, 0, &statement); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_43$$29); - break; - } - if (ZEPHIR_IS_LONG(&type, 317)) { - if (extendsMode) { - ZVAL_BOOL(&_46$$30, 1); - } else { - ZVAL_BOOL(&_46$$30, 0); - } - ZEPHIR_CALL_METHOD(&_45$$30, this_ptr, "compileautoescape", &_47, 0, &statement, &_46$$30); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_45$$30); - break; - } - if (ZEPHIR_IS_LONG(&type, 319)) { - zephir_concat_self_str(&compilation, SL("")); - break; - } - if (ZEPHIR_IS_LONG(&type, 320)) { - zephir_concat_self_str(&compilation, SL("")); - break; - } - if (ZEPHIR_IS_LONG(&type, 321)) { - ZEPHIR_CALL_METHOD(&_48$$33, this_ptr, "compileforelse", &_49, 0); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_48$$33); - break; - } - if (ZEPHIR_IS_LONG(&type, 322)) { - if (extendsMode) { - ZVAL_BOOL(&_51$$34, 1); - } else { - ZVAL_BOOL(&_51$$34, 0); - } - ZEPHIR_CALL_METHOD(&_50$$34, this_ptr, "compilemacro", &_52, 0, &statement, &_51$$34); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_50$$34); - break; - } - if (ZEPHIR_IS_LONG(&type, 325)) { - if (extendsMode) { - ZVAL_BOOL(&_54$$35, 1); - } else { - ZVAL_BOOL(&_54$$35, 0); - } - ZEPHIR_CALL_METHOD(&_53$$35, this_ptr, "compilecall", &_55, 0, &statement, &_54$$35); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_53$$35); - break; - } - if (ZEPHIR_IS_LONG(&type, 358)) { - break; - } - ZEPHIR_INIT_NVAR(&_56$$37); - object_init_ex(&_56$$37, phalcon_mvc_view_engine_volt_exception_ce); - zephir_array_fetch_string(&_57$$37, &statement, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2992); - zephir_array_fetch_string(&_58$$37, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2993); - ZEPHIR_INIT_NVAR(&_59$$37); - ZEPHIR_CONCAT_SVSVSV(&_59$$37, "Unknown statement ", &type, " in ", &_57$$37, " on line ", &_58$$37); - ZEPHIR_CALL_METHOD(NULL, &_56$$37, "__construct", &_8, 508, &_59$$37); - zephir_check_call_status(); - zephir_throw_exception_debug(&_56$$37, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2993); - ZEPHIR_MM_RESTORE(); - return; - } while(0); + ZEPHIR_RETURN_CALL_FUNCTION("lcfirst", NULL, 96, &input); + zephir_check_call_status(); + RETURN_MM(); +} - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &statements, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_3, &statements, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_3)) { - break; - } - ZEPHIR_CALL_METHOD(&statement, &statements, "current", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&statement) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2753); - return; - } - if (UNEXPECTED(!(zephir_array_isset_string(&statement, SL("type"))))) { - ZEPHIR_INIT_NVAR(&_60$$40); - object_init_ex(&_60$$40, phalcon_mvc_view_engine_volt_exception_ce); - zephir_array_fetch_string(&_61$$40, &statement, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2761); - zephir_array_fetch_string(&_62$$40, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2761); - ZEPHIR_INIT_NVAR(&_63$$40); - ZEPHIR_CONCAT_SVSV(&_63$$40, "Invalid statement in ", &_61$$40, " on line ", &_62$$40); - ZEPHIR_CALL_METHOD(NULL, &_60$$40, "__construct", &_8, 508, &_63$$40, &statement); - zephir_check_call_status(); - zephir_throw_exception_debug(&_60$$40, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2763); - ZEPHIR_MM_RESTORE(); - return; - } - if (Z_TYPE_P(&extensions) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&_64$$41); - zephir_create_array(&_64$$41, 1, 0); - zephir_array_fast_append(&_64$$41, &statement); - ZEPHIR_INIT_NVAR(&_65$$41); - ZVAL_STRING(&_65$$41, "compileStatement"); - ZEPHIR_CALL_METHOD(&tempCompilation, this_ptr, "fireextensionevent", &_11, 510, &_65$$41, &_64$$41); - zephir_check_call_status(); - if (Z_TYPE_P(&tempCompilation) == IS_STRING) { - zephir_concat_self(&compilation, &tempCompilation); - continue; - } - } - ZEPHIR_OBS_NVAR(&type); - zephir_array_fetch_string(&type, &statement, SL("type"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2789); - do { - if (ZEPHIR_IS_LONG(&type, 357)) { - zephir_array_fetch_string(&_66$$43, &statement, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2797); - zephir_concat_self(&compilation, &_66$$43); - break; - } - if (ZEPHIR_IS_LONG(&type, 300)) { - if (extendsMode) { - ZVAL_BOOL(&_68$$44, 1); - } else { - ZVAL_BOOL(&_68$$44, 0); - } - ZEPHIR_CALL_METHOD(&_67$$44, this_ptr, "compileif", &_15, 0, &statement, &_68$$44); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_67$$44); - break; - } - if (ZEPHIR_IS_LONG(&type, 302)) { - ZEPHIR_CALL_METHOD(&_69$$45, this_ptr, "compileelseif", &_17, 0, &statement); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_69$$45); - break; - } - if (ZEPHIR_IS_LONG(&type, 411)) { - if (extendsMode) { - ZVAL_BOOL(&_71$$46, 1); - } else { - ZVAL_BOOL(&_71$$46, 0); - } - ZEPHIR_CALL_METHOD(&_70$$46, this_ptr, "compileswitch", &_20, 0, &statement, &_71$$46); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_70$$46); - break; - } - if (ZEPHIR_IS_LONG(&type, 412)) { - ZEPHIR_CALL_METHOD(&_72$$47, this_ptr, "compilecase", &_22, 0, &statement); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_72$$47); - break; - } - if (ZEPHIR_IS_LONG(&type, 413)) { - ZVAL_BOOL(&_74$$48, 0); - ZEPHIR_CALL_METHOD(&_73$$48, this_ptr, "compilecase", &_22, 0, &statement, &_74$$48); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_73$$48); - break; - } - if (ZEPHIR_IS_LONG(&type, 304)) { - if (extendsMode) { - ZVAL_BOOL(&_76$$49, 1); - } else { - ZVAL_BOOL(&_76$$49, 0); - } - ZEPHIR_CALL_METHOD(&_75$$49, this_ptr, "compileforeach", &_27, 0, &statement, &_76$$49); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_75$$49); - break; - } - if (ZEPHIR_IS_LONG(&type, 306)) { - ZEPHIR_CALL_METHOD(&_77$$50, this_ptr, "compileset", &_29, 0, &statement); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_77$$50); - break; - } - if (ZEPHIR_IS_LONG(&type, 359)) { - ZEPHIR_CALL_METHOD(&_78$$51, this_ptr, "compileecho", &_31, 0, &statement); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_78$$51); - break; - } - if (ZEPHIR_IS_LONG(&type, 307)) { - ZEPHIR_OBS_NVAR(&blockName); - zephir_array_fetch_string(&blockName, &statement, SL("name"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2845); - ZEPHIR_OBS_NVAR(&blockStatements); - zephir_array_isset_string_fetch(&blockStatements, &statement, SL("block_statements"), 0); - zephir_read_property(&_79$$52, this_ptr, ZEND_STRL("blocks"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&blocks, &_79$$52); - if (zephir_is_true(&blockMode)) { - if (Z_TYPE_P(&blocks) != IS_ARRAY) { - ZEPHIR_INIT_NVAR(&blocks); - array_init(&blocks); - } - if (Z_TYPE_P(&compilation) != IS_NULL) { - zephir_array_append(&blocks, &compilation, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2860); - ZEPHIR_INIT_NVAR(&compilation); - ZVAL_NULL(&compilation); - } - zephir_array_update_zval(&blocks, &blockName, &blockStatements, PH_COPY | PH_SEPARATE); - zephir_update_property_zval(this_ptr, ZEND_STRL("blocks"), &blocks); - } else { - if (Z_TYPE_P(&blockStatements) == IS_ARRAY) { - if (extendsMode) { - ZVAL_BOOL(&_81$$57, 1); - } else { - ZVAL_BOOL(&_81$$57, 0); - } - ZEPHIR_CALL_METHOD(&_80$$57, this_ptr, "statementlist", &_35, 509, &blockStatements, &_81$$57); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_80$$57); - } - } - break; - } - if (ZEPHIR_IS_LONG(&type, 310)) { - ZEPHIR_OBS_NVAR(&path); - zephir_array_fetch_string(&path, &statement, SL("path"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2886); - zephir_array_fetch_string(&_82$$58, &path, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2890); - ZEPHIR_CALL_METHOD(&finalPath, this_ptr, "getfinalpath", &_37, 0, &_82$$58); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&extended); - ZVAL_BOOL(&extended, 1); - ZEPHIR_INIT_NVAR(&subCompiler); - if (zephir_clone(&subCompiler, this_ptr) == FAILURE) { - RETURN_MM(); - } - ZEPHIR_CALL_METHOD(&tempCompilation, &subCompiler, "compile", NULL, 0, &finalPath, &extended); - zephir_check_call_status(); - if (Z_TYPE_P(&tempCompilation) == IS_NULL) { - ZEPHIR_CALL_METHOD(&_83$$59, &subCompiler, "getcompiledtemplatepath", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&tempCompilation); - zephir_file_get_contents(&tempCompilation, &_83$$59); - } - if (1) { - zephir_update_property_zval(this_ptr, ZEND_STRL("extended"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("extended"), &__$false); - } - zephir_update_property_zval(this_ptr, ZEND_STRL("extendedBlocks"), &tempCompilation); - ZEPHIR_CPY_WRT(&blockMode, &extended); - break; - } - if (ZEPHIR_IS_LONG(&type, 313)) { - ZEPHIR_CALL_METHOD(&_84$$60, this_ptr, "compileinclude", &_40, 0, &statement); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_84$$60); - break; - } - if (ZEPHIR_IS_LONG(&type, 316)) { - ZEPHIR_CALL_METHOD(&_85$$61, this_ptr, "compiledo", &_42, 0, &statement); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_85$$61); - break; - } - if (ZEPHIR_IS_LONG(&type, 327)) { - ZEPHIR_CALL_METHOD(&_86$$62, this_ptr, "compilereturn", &_44, 0, &statement); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_86$$62); - break; - } - if (ZEPHIR_IS_LONG(&type, 317)) { - if (extendsMode) { - ZVAL_BOOL(&_88$$63, 1); - } else { - ZVAL_BOOL(&_88$$63, 0); - } - ZEPHIR_CALL_METHOD(&_87$$63, this_ptr, "compileautoescape", &_47, 0, &statement, &_88$$63); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_87$$63); - break; - } - if (ZEPHIR_IS_LONG(&type, 319)) { - zephir_concat_self_str(&compilation, SL("")); - break; - } - if (ZEPHIR_IS_LONG(&type, 320)) { - zephir_concat_self_str(&compilation, SL("")); - break; - } - if (ZEPHIR_IS_LONG(&type, 321)) { - ZEPHIR_CALL_METHOD(&_89$$66, this_ptr, "compileforelse", &_49, 0); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_89$$66); - break; - } - if (ZEPHIR_IS_LONG(&type, 322)) { - if (extendsMode) { - ZVAL_BOOL(&_91$$67, 1); - } else { - ZVAL_BOOL(&_91$$67, 0); - } - ZEPHIR_CALL_METHOD(&_90$$67, this_ptr, "compilemacro", &_52, 0, &statement, &_91$$67); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_90$$67); - break; - } - if (ZEPHIR_IS_LONG(&type, 325)) { - if (extendsMode) { - ZVAL_BOOL(&_93$$68, 1); - } else { - ZVAL_BOOL(&_93$$68, 0); - } - ZEPHIR_CALL_METHOD(&_92$$68, this_ptr, "compilecall", &_55, 0, &statement, &_93$$68); - zephir_check_call_status(); - zephir_concat_self(&compilation, &_92$$68); - break; - } - if (ZEPHIR_IS_LONG(&type, 358)) { - break; - } - ZEPHIR_INIT_NVAR(&_94$$70); - object_init_ex(&_94$$70, phalcon_mvc_view_engine_volt_exception_ce); - zephir_array_fetch_string(&_95$$70, &statement, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2992); - zephir_array_fetch_string(&_96$$70, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2993); - ZEPHIR_INIT_NVAR(&_97$$70); - ZEPHIR_CONCAT_SVSVSV(&_97$$70, "Unknown statement ", &type, " in ", &_95$$70, " on line ", &_96$$70); - ZEPHIR_CALL_METHOD(NULL, &_94$$70, "__construct", &_8, 508, &_97$$70); - zephir_check_call_status(); - zephir_throw_exception_debug(&_94$$70, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2993); - ZEPHIR_MM_RESTORE(); - return; - } while(0); - ZEPHIR_CALL_METHOD(NULL, &statements, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&statement); - if (ZEPHIR_IS_TRUE_IDENTICAL(&blockMode)) { - zephir_read_property(&level, this_ptr, ZEND_STRL("blockLevel"), PH_NOISY_CC | PH_READONLY); - if (ZEPHIR_IS_LONG(&level, 1)) { - if (Z_TYPE_P(&compilation) != IS_NULL) { - zephir_update_property_array_append(this_ptr, SL("blocks"), &compilation); - } - } - RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("blockLevel"))); - } - RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("level"))); - RETURN_CCTOR(&compilation); + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Regex) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Regex, phalcon, filter_sanitize_regex, phalcon_filter_sanitize_regex_method_entry, 0); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementListOrExtends) +static PHP_METHOD(Phalcon_Filter_Sanitize_Regex, __invoke) { - zend_bool isStatementList = 0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *statements, statements_sub, statement, *_0$$4, _1$$4; + zval *input, input_sub, *pattern, pattern_sub, *replace, replace_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statements_sub); - ZVAL_UNDEF(&statement); - ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&input_sub); + ZVAL_UNDEF(&pattern_sub); + ZVAL_UNDEF(&replace_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(statements) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_ZVAL(input) + Z_PARAM_ZVAL(pattern) + Z_PARAM_ZVAL(replace) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &statements); + zephir_fetch_params(1, 3, 0, &input, &pattern, &replace); - if (Z_TYPE_P(statements) != IS_ARRAY) { - RETVAL_ZVAL(statements, 1, 0); - RETURN_MM(); - } - isStatementList = 1; - if (!(zephir_array_isset_string(statements, SL("type")))) { - zephir_is_iterable(statements, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 3050); - if (Z_TYPE_P(statements) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(statements), _0$$4) - { - ZEPHIR_INIT_NVAR(&statement); - ZVAL_COPY(&statement, _0$$4); - if (Z_TYPE_P(&statement) != IS_ARRAY) { - isStatementList = 0; - break; - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, statements, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1$$4, statements, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1$$4)) { - break; - } - ZEPHIR_CALL_METHOD(&statement, statements, "current", NULL, 0); - zephir_check_call_status(); - if (Z_TYPE_P(&statement) != IS_ARRAY) { - isStatementList = 0; - break; - } - ZEPHIR_CALL_METHOD(NULL, statements, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&statement); - } - if (isStatementList) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "statementlist", NULL, 509, statements); - zephir_check_call_status(); - RETURN_MM(); - } - RETVAL_ZVAL(statements, 1, 0); + ZEPHIR_RETURN_CALL_FUNCTION("preg_replace", NULL, 50, pattern, replace, input); + zephir_check_call_status(); RETURN_MM(); } -zend_object *zephir_init_properties_Phalcon_Mvc_View_Engine_Volt_Compiler(zend_class_entry *class_type) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Remove) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Remove, phalcon, filter_sanitize_remove, phalcon_filter_sanitize_remove_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Filter_Sanitize_Remove, __invoke) { - zval _0, _2, _4, _6, _8, _10, _12, _1$$3, _3$$4, _5$$5, _7$$6, _9$$7, _11$$8, _13$$9; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_9$$7); - ZVAL_UNDEF(&_11$$8); - ZVAL_UNDEF(&_13$$9); - + zval *input, input_sub, *replace, replace_sub, _0, _1; + zval *this_ptr = getThis(); - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("macros"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("macros"), &_3$$4); - } - zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("loopPointers"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_4) == IS_NULL) { - ZEPHIR_INIT_VAR(&_5$$5); - array_init(&_5$$5); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("loopPointers"), &_5$$5); - } - zephir_read_property_ex(&_6, this_ptr, ZEND_STRL("functions"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_6) == IS_NULL) { - ZEPHIR_INIT_VAR(&_7$$6); - array_init(&_7$$6); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("functions"), &_7$$6); - } - zephir_read_property_ex(&_8, this_ptr, ZEND_STRL("forElsePointers"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_8) == IS_NULL) { - ZEPHIR_INIT_VAR(&_9$$7); - array_init(&_9$$7); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("forElsePointers"), &_9$$7); - } - zephir_read_property_ex(&_10, this_ptr, ZEND_STRL("filters"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_10) == IS_NULL) { - ZEPHIR_INIT_VAR(&_11$$8); - array_init(&_11$$8); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("filters"), &_11$$8); - } - zephir_read_property_ex(&_12, this_ptr, ZEND_STRL("extensions"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_12) == IS_NULL) { - ZEPHIR_INIT_VAR(&_13$$9); - array_init(&_13$$9); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("extensions"), &_13$$9); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } + ZVAL_UNDEF(&input_sub); + ZVAL_UNDEF(&replace_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(input) + Z_PARAM_ZVAL(replace) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &input, &replace); + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, ""); + ZEPHIR_INIT_VAR(&_1); + zephir_fast_str_replace(&_1, replace, &_0, input); + RETURN_CCTOR(&_1); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Replace) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Replace, phalcon, filter_sanitize_replace, phalcon_filter_sanitize_replace_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Filter_Sanitize_Replace, __invoke) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *input, input_sub, *from, from_sub, *to, to_sub, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&input_sub); + ZVAL_UNDEF(&from_sub); + ZVAL_UNDEF(&to_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_ZVAL(input) + Z_PARAM_ZVAL(from) + Z_PARAM_ZVAL(to) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &input, &from, &to); + + + ZEPHIR_INIT_VAR(&_0); + zephir_fast_str_replace(&_0, from, to, input); + RETURN_CCTOR(&_0); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Special) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Special, phalcon, filter_sanitize_special, phalcon_filter_sanitize_special_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Filter_Sanitize_Special, __invoke) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *input, input_sub, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&input_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(input) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &input); + + + ZVAL_LONG(&_0, 515); + ZEPHIR_RETURN_CALL_FUNCTION("filter_var", NULL, 237, input, &_0); + zephir_check_call_status(); + RETURN_MM(); } @@ -182825,2983 +170556,5995 @@ zend_object *zephir_init_properties_Phalcon_Mvc_View_Engine_Volt_Compiler(zend_c -ZEPHIR_INIT_CLASS(Phalcon_Mvc_View_Engine_Volt_Exception) +ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_SpecialFull) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Mvc\\View\\Engine\\Volt, Exception, phalcon, mvc_view_engine_volt_exception, phalcon_mvc_view_exception_ce, phalcon_mvc_view_engine_volt_exception_method_entry, 0); - - zend_declare_property_null(phalcon_mvc_view_engine_volt_exception_ce, SL("statement"), ZEND_ACC_PROTECTED); - phalcon_mvc_view_engine_volt_exception_ce->create_object = zephir_init_properties_Phalcon_Mvc_View_Engine_Volt_Exception; + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, SpecialFull, phalcon, filter_sanitize_specialfull, phalcon_filter_sanitize_specialfull_method_entry, 0); return SUCCESS; } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Exception, __construct) +static PHP_METHOD(Phalcon_Filter_Sanitize_SpecialFull, __invoke) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long code, ZEPHIR_LAST_CALL_STATUS; - zval statement; - zval *message_param = NULL, *statement_param = NULL, *code_param = NULL, *previous = NULL, previous_sub, __$null, _0; - zval message; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *input, input_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&previous_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&input_sub); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&statement); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 4) - Z_PARAM_OPTIONAL - Z_PARAM_STR(message) - Z_PARAM_ARRAY(statement) - Z_PARAM_LONG(code) - Z_PARAM_OBJECT_OF_CLASS_OR_NULL(previous, zend_ce_exception) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(input) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 4, &message_param, &statement_param, &code_param, &previous); - if (!message_param) { - ZEPHIR_INIT_VAR(&message); - ZVAL_STRING(&message, ""); - } else { - zephir_get_strval(&message, message_param); - } - if (!statement_param) { - ZEPHIR_INIT_VAR(&statement); - array_init(&statement); - } else { - zephir_get_arrval(&statement, statement_param); - } - if (!code_param) { - code = 0; - } else { - code = zephir_get_intval(code_param); - } - if (!previous) { - previous = &previous_sub; - previous = &__$null; - } + zephir_fetch_params(1, 1, 0, &input); - zephir_update_property_zval(this_ptr, ZEND_STRL("statement"), &statement); - ZVAL_LONG(&_0, code); - ZEPHIR_CALL_PARENT(NULL, phalcon_mvc_view_engine_volt_exception_ce, getThis(), "__construct", NULL, 0, &message, &_0, previous); + ZVAL_LONG(&_0, 522); + ZEPHIR_RETURN_CALL_FUNCTION("filter_var", NULL, 237, input, &_0); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Exception, getStatement) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_StringVal) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, StringVal, phalcon, filter_sanitize_stringval, phalcon_filter_sanitize_stringval_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Filter_Sanitize_StringVal, __invoke) { - zval statement, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *input, input_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&input_sub); ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(input) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &input); - zephir_read_property(&_0, this_ptr, ZEND_STRL("statement"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&statement, &_0); - if (Z_TYPE_P(&statement) != IS_ARRAY) { - ZEPHIR_INIT_NVAR(&statement); - array_init(&statement); - } - RETURN_CCTOR(&statement); + + ZVAL_LONG(&_0, 513); + ZEPHIR_RETURN_CALL_FUNCTION("filter_var", NULL, 237, input, &_0); + zephir_check_call_status(); + RETURN_MM(); } -zend_object *zephir_init_properties_Phalcon_Mvc_View_Engine_Volt_Exception(zend_class_entry *class_type) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Striptags) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Striptags, phalcon, filter_sanitize_striptags, phalcon_filter_sanitize_striptags_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Filter_Sanitize_Striptags, __invoke) { - zval _0, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *input_param = NULL; + zval input; + zval *this_ptr = getThis(); - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("statement"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("statement"), &_1$$3); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); + ZVAL_UNDEF(&input); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(input) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &input_param); + if (UNEXPECTED(Z_TYPE_P(input_param) != IS_STRING && Z_TYPE_P(input_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'input' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(input_param) == IS_STRING)) { + zephir_get_strval(&input, input_param); + } else { + ZEPHIR_INIT_VAR(&input); } + + + ZEPHIR_RETURN_CALL_FUNCTION("strip_tags", NULL, 241, &input); + zephir_check_call_status(); + RETURN_MM(); } -/* Driver template for the LEMON parser generator. -** The author disclaims copyright to this source code. -*/ -/* First off, code is include which follows the "include" declaration -** in the input file. */ -// 38 "parser.php.lemon" + +#ifdef HAVE_CONFIG_H +#endif -/* Change next line to "#if 1" - * to enable parser tracing. */ -#if 0 -# ifdef NDEBUG -# undef NDEBUG -# endif -#else -# ifndef NDEBUG -# define NDEBUG 1 -# endif + + + +ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Trim) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Trim, phalcon, filter_sanitize_trim, phalcon_filter_sanitize_trim_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Filter_Sanitize_Trim, __invoke) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *input_param = NULL; + zval input; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&input); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(input) + ZEND_PARSE_PARAMETERS_END(); #endif -// 24 "parser.php.c" -/* Next is all token values, in a form suitable for use by makeheaders. -** This section will be null unless lemon is run with the -m switch. -*/ -/* Make sure the INTERFACE macro is defined. -*/ -#ifndef INTERFACE -# define INTERFACE 1 + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &input_param); + if (UNEXPECTED(Z_TYPE_P(input_param) != IS_STRING && Z_TYPE_P(input_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'input' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(input_param) == IS_STRING)) { + zephir_get_strval(&input, input_param); + } else { + ZEPHIR_INIT_VAR(&input); + } + + + zephir_fast_trim(return_value, &input, NULL , ZEPHIR_TRIM_BOTH); + RETURN_MM(); +} + + + + +#ifdef HAVE_CONFIG_H #endif -/* The next thing included is series of defines which control -** various aspects of the generated parser. -** VVCODETYPE is the data type used for storing terminal -** and nonterminal numbers. "unsigned char" is -** used if there are fewer than 250 terminals -** and nonterminals. "int" is used otherwise. -** VVNOCODE is a number of type VVCODETYPE which corresponds -** to no legal terminal or nonterminal number. This -** number is used to fill in empty slots of the hash -** table. -** VVFALLBACK If defined, this indicates that one or more tokens -** have fall-back values which should be used if the -** original value of the token will not parse. -** VVACTIONTYPE is the data type used for storing terminal -** and nonterminal numbers. "unsigned char" is -** used if there are fewer than 250 rules and -** states combined. "int" is used otherwise. -** phvolt_TOKENTYPE is the data type used for minor tokens given -** directly to the parser from the tokenizer. -** VVMINORTYPE is the data type used for all minor tokens. -** This is typically a union of many types, one of -** which is phvolt_TOKENTYPE. The entry in the union -** for base tokens is called "vv0". -** VVSTACKDEPTH is the maximum depth of the parser's stack. -** phvolt_ARG_SDECL A static variable declaration for the %extra_argument -** phvolt_ARG_PDECL A parameter declaration for the %extra_argument -** phvolt_ARG_STORE Code to store %extra_argument into vvpParser -** phvolt_ARG_FETCH Code to extract %extra_argument from vvpParser -** VVNSTATE the combined number of states. -** VVNRULE the number of rules in the grammar -** VVERRORSYMBOL is the code number of the error symbol. If not -** defined, then do no error processing. -*/ -#define VVCODETYPE unsigned char -#define VVNOCODE 131 -#define VVACTIONTYPE unsigned short int -#define phvolt_TOKENTYPE phvolt_parser_token* -typedef union { - phvolt_TOKENTYPE vv0; - zval vv186; - int vv261; -} VVMINORTYPE; -#define VVSTACKDEPTH 100 -#define phvolt_ARG_SDECL phvolt_parser_status *status; -#define phvolt_ARG_PDECL ,phvolt_parser_status *status -#define phvolt_ARG_FETCH phvolt_parser_status *status = vvpParser->status -#define phvolt_ARG_STORE vvpParser->status = status -#define VVNSTATE 365 -#define VVNRULE 158 -#define VVERRORSYMBOL 89 -#define VVERRSYMDT vv261 -#define VV_NO_ACTION (VVNSTATE+VVNRULE+2) -#define VV_ACCEPT_ACTION (VVNSTATE+VVNRULE+1) -#define VV_ERROR_ACTION (VVNSTATE+VVNRULE) -/* Next are that tables used to determine what action to take based on the -** current state and lookahead token. These tables are used to implement -** functions that take a state number and lookahead value and return an -** action integer. -** -** Suppose the action integer is N. Then the action is determined as -** follows -** -** 0 <= N < VVNSTATE Shift N. That is, push the lookahead -** token onto the stack and goto state N. -** -** VVNSTATE <= N < VVNSTATE+VVNRULE Reduce by rule N-VVNSTATE. -** -** N == VVNSTATE+VVNRULE A syntax error has occurred. -** -** N == VVNSTATE+VVNRULE+1 The parser accepts its input. -** -** N == VVNSTATE+VVNRULE+2 No such action. Denotes unused -** slots in the vv_action[] table. -** -** The action table is constructed as a single large table named vv_action[]. -** Given state S and lookahead X, the action is computed as -** -** vv_action[ vv_shift_ofst[S] + X ] -** -** If the index value vv_shift_ofst[S]+X is out of range or if the value -** vv_lookahead[vv_shift_ofst[S]+X] is not equal to X or if vv_shift_ofst[S] -** is equal to VV_SHIFT_USE_DFLT, it means that the action is not in the table -** and that vv_default[S] should be used instead. -** -** The formula above is for computing the action when the lookahead is -** a terminal symbol. If the lookahead is a non-terminal (as occurs after -** a reduce action) then the vv_reduce_ofst[] array is used in place of -** the vv_shift_ofst[] array and VV_REDUCE_USE_DFLT is used in place of -** VV_SHIFT_USE_DFLT. -** -** The following are the tables generated in this section: -** -** vv_action[] A single table containing all actions. -** vv_lookahead[] A table containing the lookahead for each entry in -** vv_action. Used to detect hash collisions. -** vv_shift_ofst[] For each state, the offset into vv_action for -** shifting terminals. -** vv_reduce_ofst[] For each state, the offset into vv_action for -** shifting non-terminals after a reduce. -** vv_default[] Default action for each state. -*/ -static VVACTIONTYPE vv_action[] = { - /* 0 */ 95, 111, 63, 55, 57, 85, 69, 65, 67, 75, - /* 10 */ 77, 79, 81, 71, 73, 51, 49, 53, 46, 43, - /* 20 */ 59, 92, 61, 87, 90, 91, 99, 83, 365, 245, - /* 30 */ 87, 90, 91, 99, 83, 300, 51, 49, 53, 46, - /* 40 */ 43, 59, 92, 61, 87, 90, 91, 99, 83, 110, - /* 50 */ 338, 299, 194, 215, 198, 95, 174, 63, 55, 57, - /* 60 */ 85, 69, 65, 67, 75, 77, 79, 81, 71, 73, - /* 70 */ 51, 49, 53, 46, 43, 59, 92, 61, 87, 90, - /* 80 */ 91, 99, 83, 331, 176, 95, 33, 63, 55, 57, - /* 90 */ 85, 69, 65, 67, 75, 77, 79, 81, 71, 73, - /* 100 */ 51, 49, 53, 46, 43, 59, 92, 61, 87, 90, - /* 110 */ 91, 99, 83, 95, 265, 63, 55, 57, 85, 69, - /* 120 */ 65, 67, 75, 77, 79, 81, 71, 73, 51, 49, - /* 130 */ 53, 46, 43, 59, 92, 61, 87, 90, 91, 99, - /* 140 */ 83, 347, 342, 46, 43, 59, 92, 61, 87, 90, - /* 150 */ 91, 99, 83, 35, 266, 197, 198, 39, 95, 88, - /* 160 */ 63, 55, 57, 85, 69, 65, 67, 75, 77, 79, - /* 170 */ 81, 71, 73, 51, 49, 53, 46, 43, 59, 92, - /* 180 */ 61, 87, 90, 91, 99, 83, 95, 29, 63, 55, - /* 190 */ 57, 85, 69, 65, 67, 75, 77, 79, 81, 71, - /* 200 */ 73, 51, 49, 53, 46, 43, 59, 92, 61, 87, - /* 210 */ 90, 91, 99, 83, 95, 42, 63, 55, 57, 85, - /* 220 */ 69, 65, 67, 75, 77, 79, 81, 71, 73, 51, - /* 230 */ 49, 53, 46, 43, 59, 92, 61, 87, 90, 91, - /* 240 */ 99, 83, 92, 61, 87, 90, 91, 99, 83, 321, - /* 250 */ 322, 323, 324, 325, 326, 309, 327, 276, 287, 118, - /* 260 */ 134, 94, 139, 140, 503, 95, 97, 63, 55, 57, - /* 270 */ 85, 69, 65, 67, 75, 77, 79, 81, 71, 73, - /* 280 */ 51, 49, 53, 46, 43, 59, 92, 61, 87, 90, - /* 290 */ 91, 99, 83, 95, 504, 63, 55, 57, 85, 69, - /* 300 */ 65, 67, 75, 77, 79, 81, 71, 73, 51, 49, - /* 310 */ 53, 46, 43, 59, 92, 61, 87, 90, 91, 99, - /* 320 */ 83, 100, 146, 142, 142, 144, 107, 147, 129, 503, - /* 330 */ 504, 318, 107, 120, 137, 109, 145, 116, 120, 141, - /* 340 */ 141, 114, 105, 116, 120, 219, 95, 171, 63, 55, - /* 350 */ 57, 85, 69, 65, 67, 75, 77, 79, 81, 71, - /* 360 */ 73, 51, 49, 53, 46, 43, 59, 92, 61, 87, - /* 370 */ 90, 91, 99, 83, 95, 183, 63, 55, 57, 85, - /* 380 */ 69, 65, 67, 75, 77, 79, 81, 71, 73, 51, - /* 390 */ 49, 53, 46, 43, 59, 92, 61, 87, 90, 91, - /* 400 */ 99, 83, 95, 190, 63, 55, 57, 85, 69, 65, - /* 410 */ 67, 75, 77, 79, 81, 71, 73, 51, 49, 53, - /* 420 */ 46, 43, 59, 92, 61, 87, 90, 91, 99, 83, - /* 430 */ 100, 173, 131, 28, 93, 180, 107, 228, 100, 187, - /* 440 */ 165, 192, 120, 137, 143, 120, 120, 128, 120, 211, - /* 450 */ 120, 132, 120, 95, 213, 63, 55, 57, 85, 69, - /* 460 */ 65, 67, 75, 77, 79, 81, 71, 73, 51, 49, - /* 470 */ 53, 46, 43, 59, 92, 61, 87, 90, 91, 99, - /* 480 */ 83, 95, 130, 63, 55, 57, 85, 69, 65, 67, - /* 490 */ 75, 77, 79, 81, 71, 73, 51, 49, 53, 46, - /* 500 */ 43, 59, 92, 61, 87, 90, 91, 99, 83, 214, - /* 510 */ 262, 217, 95, 254, 63, 55, 57, 85, 69, 65, - /* 520 */ 67, 75, 77, 79, 81, 71, 73, 51, 49, 53, - /* 530 */ 46, 43, 59, 92, 61, 87, 90, 91, 99, 83, - /* 540 */ 95, 268, 63, 55, 57, 85, 69, 65, 67, 75, - /* 550 */ 77, 79, 81, 71, 73, 51, 49, 53, 46, 43, - /* 560 */ 59, 92, 61, 87, 90, 91, 99, 83, 95, 271, - /* 570 */ 63, 55, 57, 85, 69, 65, 67, 75, 77, 79, - /* 580 */ 81, 71, 73, 51, 49, 53, 46, 43, 59, 92, - /* 590 */ 61, 87, 90, 91, 99, 83, 95, 274, 63, 55, - /* 600 */ 57, 85, 69, 65, 67, 75, 77, 79, 81, 71, - /* 610 */ 73, 51, 49, 53, 46, 43, 59, 92, 61, 87, - /* 620 */ 90, 91, 99, 83, 95, 333, 63, 55, 57, 85, - /* 630 */ 69, 65, 67, 75, 77, 79, 81, 71, 73, 51, - /* 640 */ 49, 53, 46, 43, 59, 92, 61, 87, 90, 91, - /* 650 */ 99, 83, 95, 349, 63, 55, 57, 85, 69, 65, - /* 660 */ 67, 75, 77, 79, 81, 71, 73, 51, 49, 53, - /* 670 */ 46, 43, 59, 92, 61, 87, 90, 91, 99, 83, - /* 680 */ 95, 218, 63, 55, 57, 85, 69, 65, 67, 75, - /* 690 */ 77, 79, 81, 71, 73, 51, 49, 53, 46, 43, - /* 700 */ 59, 92, 61, 87, 90, 91, 227, 83, 524, 1, - /* 710 */ 2, 286, 4, 5, 6, 7, 8, 9, 10, 11, - /* 720 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 730 */ 22, 23, 24, 25, 63, 55, 57, 85, 69, 65, - /* 740 */ 67, 75, 77, 79, 81, 71, 73, 51, 49, 53, - /* 750 */ 46, 43, 59, 92, 61, 87, 90, 91, 99, 83, - /* 760 */ 55, 57, 85, 69, 65, 67, 75, 77, 79, 81, - /* 770 */ 71, 73, 51, 49, 53, 46, 43, 59, 92, 61, - /* 780 */ 87, 90, 91, 99, 83, 30, 286, 4, 5, 6, - /* 790 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - /* 800 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 36, - /* 810 */ 286, 4, 5, 6, 7, 8, 9, 10, 11, 12, - /* 820 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 830 */ 23, 24, 25, 177, 286, 4, 5, 6, 7, 8, - /* 840 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - /* 850 */ 19, 20, 21, 22, 23, 24, 25, 184, 286, 4, - /* 860 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - /* 870 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - /* 880 */ 25, 221, 286, 4, 5, 6, 7, 8, 9, 10, - /* 890 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 900 */ 21, 22, 23, 24, 25, 231, 286, 4, 5, 6, - /* 910 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - /* 920 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 239, - /* 930 */ 286, 4, 5, 6, 7, 8, 9, 10, 11, 12, - /* 940 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 950 */ 23, 24, 25, 246, 286, 4, 5, 6, 7, 8, - /* 960 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - /* 970 */ 19, 20, 21, 22, 23, 24, 25, 278, 286, 4, - /* 980 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - /* 990 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - /* 1000 */ 25, 289, 286, 4, 5, 6, 7, 8, 9, 10, - /* 1010 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 1020 */ 21, 22, 23, 24, 25, 295, 286, 4, 5, 6, - /* 1030 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - /* 1040 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 312, - /* 1050 */ 286, 4, 5, 6, 7, 8, 9, 10, 11, 12, - /* 1060 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 1070 */ 23, 24, 25, 334, 286, 4, 5, 6, 7, 8, - /* 1080 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - /* 1090 */ 19, 20, 21, 22, 23, 24, 25, 343, 286, 4, - /* 1100 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - /* 1110 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - /* 1120 */ 25, 350, 286, 4, 5, 6, 7, 8, 9, 10, - /* 1130 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 1140 */ 21, 22, 23, 24, 25, 3, 4, 5, 6, 7, - /* 1150 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - /* 1160 */ 18, 19, 20, 21, 22, 23, 24, 25, 27, 235, - /* 1170 */ 32, 34, 40, 170, 172, 41, 196, 181, 169, 188, - /* 1180 */ 191, 193, 45, 168, 48, 220, 50, 120, 216, 224, - /* 1190 */ 120, 230, 52, 111, 120, 120, 120, 225, 120, 234, - /* 1200 */ 256, 236, 293, 243, 120, 250, 195, 260, 263, 237, - /* 1210 */ 269, 272, 275, 238, 282, 284, 85, 69, 65, 67, - /* 1220 */ 75, 77, 79, 81, 71, 73, 51, 49, 53, 46, - /* 1230 */ 43, 59, 92, 61, 87, 90, 91, 99, 83, 255, - /* 1240 */ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - /* 1250 */ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - /* 1260 */ 24, 25, 27, 235, 358, 360, 40, 170, 172, 366, - /* 1270 */ 26, 181, 26, 188, 191, 193, 54, 357, 56, 115, - /* 1280 */ 58, 60, 216, 242, 62, 249, 64, 131, 120, 316, - /* 1290 */ 120, 225, 120, 120, 251, 236, 120, 243, 120, 250, - /* 1300 */ 66, 260, 263, 257, 269, 272, 275, 258, 282, 284, - /* 1310 */ 119, 277, 120, 281, 27, 235, 38, 306, 40, 170, - /* 1320 */ 172, 283, 120, 181, 285, 188, 191, 193, 288, 68, - /* 1330 */ 292, 252, 294, 252, 216, 31, 298, 229, 252, 310, - /* 1340 */ 354, 120, 37, 225, 178, 437, 328, 236, 259, 243, - /* 1350 */ 259, 250, 438, 260, 263, 259, 269, 272, 275, 303, - /* 1360 */ 282, 284, 305, 69, 65, 67, 75, 77, 79, 81, - /* 1370 */ 71, 73, 51, 49, 53, 46, 43, 59, 92, 61, - /* 1380 */ 87, 90, 91, 99, 83, 307, 27, 235, 70, 308, - /* 1390 */ 40, 170, 172, 311, 179, 181, 252, 188, 191, 193, - /* 1400 */ 120, 252, 315, 252, 244, 252, 216, 252, 319, 185, - /* 1410 */ 318, 222, 317, 259, 330, 225, 120, 320, 259, 236, - /* 1420 */ 259, 243, 259, 250, 259, 260, 263, 232, 269, 272, - /* 1430 */ 275, 301, 282, 284, 337, 339, 340, 346, 27, 235, - /* 1440 */ 209, 353, 40, 170, 172, 356, 212, 181, 186, 188, - /* 1450 */ 191, 193, 359, 240, 253, 361, 332, 362, 216, 290, - /* 1460 */ 363, 199, 201, 203, 205, 207, 120, 225, 120, 364, - /* 1470 */ 252, 236, 252, 243, 247, 250, 290, 260, 263, 279, - /* 1480 */ 269, 272, 275, 290, 282, 284, 290, 259, 252, 259, - /* 1490 */ 27, 235, 252, 290, 40, 170, 172, 290, 296, 181, - /* 1500 */ 290, 188, 191, 193, 72, 259, 290, 290, 74, 259, - /* 1510 */ 216, 290, 223, 290, 252, 290, 120, 290, 290, 225, - /* 1520 */ 120, 290, 290, 236, 290, 243, 290, 250, 290, 260, - /* 1530 */ 263, 259, 269, 272, 275, 252, 282, 284, 76, 290, - /* 1540 */ 252, 290, 27, 235, 252, 290, 40, 170, 172, 290, - /* 1550 */ 120, 181, 259, 188, 191, 193, 78, 259, 290, 252, - /* 1560 */ 290, 259, 216, 290, 290, 290, 290, 290, 120, 290, - /* 1570 */ 290, 225, 233, 290, 290, 236, 259, 243, 313, 250, - /* 1580 */ 80, 260, 263, 335, 269, 272, 275, 344, 282, 284, - /* 1590 */ 290, 290, 120, 290, 27, 235, 82, 84, 40, 170, - /* 1600 */ 172, 86, 351, 181, 89, 188, 191, 193, 120, 120, - /* 1610 */ 290, 290, 96, 120, 216, 290, 120, 290, 98, 290, - /* 1620 */ 102, 290, 290, 225, 120, 290, 290, 236, 241, 243, - /* 1630 */ 120, 250, 120, 260, 263, 290, 269, 272, 275, 252, - /* 1640 */ 282, 284, 104, 290, 252, 290, 27, 235, 252, 290, - /* 1650 */ 40, 170, 172, 290, 120, 181, 259, 188, 191, 193, - /* 1660 */ 135, 259, 290, 252, 167, 259, 216, 290, 290, 290, - /* 1670 */ 290, 290, 120, 290, 290, 225, 120, 290, 290, 236, - /* 1680 */ 259, 243, 248, 250, 290, 260, 263, 290, 269, 272, - /* 1690 */ 275, 290, 282, 284, 175, 290, 182, 290, 27, 235, - /* 1700 */ 189, 200, 40, 170, 172, 202, 120, 181, 120, 188, - /* 1710 */ 191, 193, 120, 120, 204, 290, 206, 120, 216, 290, - /* 1720 */ 208, 290, 210, 290, 226, 290, 120, 225, 120, 290, - /* 1730 */ 290, 236, 120, 243, 120, 250, 120, 260, 263, 290, - /* 1740 */ 269, 272, 275, 280, 282, 284, 261, 290, 264, 290, - /* 1750 */ 27, 235, 290, 267, 40, 170, 172, 270, 120, 181, - /* 1760 */ 120, 188, 191, 193, 273, 120, 290, 290, 341, 120, - /* 1770 */ 216, 290, 348, 290, 290, 290, 120, 290, 290, 225, - /* 1780 */ 120, 290, 290, 236, 120, 243, 290, 250, 290, 260, - /* 1790 */ 263, 290, 269, 272, 275, 291, 282, 284, 290, 290, - /* 1800 */ 290, 290, 27, 235, 290, 290, 40, 170, 172, 290, - /* 1810 */ 290, 181, 290, 188, 191, 193, 290, 290, 290, 290, - /* 1820 */ 290, 290, 216, 290, 290, 290, 290, 290, 290, 290, - /* 1830 */ 290, 225, 290, 290, 290, 236, 290, 243, 297, 250, - /* 1840 */ 290, 260, 263, 290, 269, 272, 275, 290, 282, 284, - /* 1850 */ 290, 290, 290, 290, 27, 235, 290, 290, 40, 170, - /* 1860 */ 172, 290, 290, 181, 290, 188, 191, 193, 290, 290, - /* 1870 */ 290, 290, 290, 290, 216, 290, 290, 290, 290, 290, - /* 1880 */ 290, 290, 290, 225, 290, 290, 290, 236, 302, 243, - /* 1890 */ 290, 250, 290, 260, 263, 290, 269, 272, 275, 290, - /* 1900 */ 282, 284, 290, 290, 290, 290, 27, 235, 290, 290, - /* 1910 */ 40, 170, 172, 290, 290, 181, 290, 188, 191, 193, - /* 1920 */ 290, 290, 290, 290, 290, 290, 216, 290, 314, 290, - /* 1930 */ 290, 290, 290, 290, 290, 225, 290, 290, 290, 236, - /* 1940 */ 290, 243, 290, 250, 290, 260, 263, 290, 269, 272, - /* 1950 */ 275, 290, 282, 284, 290, 290, 290, 290, 27, 235, - /* 1960 */ 290, 290, 40, 170, 172, 290, 290, 181, 329, 188, - /* 1970 */ 191, 193, 290, 290, 290, 290, 290, 290, 216, 290, - /* 1980 */ 290, 290, 290, 290, 290, 290, 290, 225, 290, 290, - /* 1990 */ 290, 236, 290, 243, 290, 250, 290, 260, 263, 290, - /* 2000 */ 269, 272, 275, 290, 282, 284, 290, 290, 290, 290, - /* 2010 */ 27, 235, 290, 290, 40, 170, 172, 290, 336, 181, - /* 2020 */ 290, 188, 191, 193, 290, 290, 290, 290, 290, 290, - /* 2030 */ 216, 290, 290, 290, 290, 290, 290, 290, 290, 225, - /* 2040 */ 290, 290, 290, 236, 290, 243, 290, 250, 290, 260, - /* 2050 */ 263, 290, 269, 272, 275, 290, 282, 284, 290, 290, - /* 2060 */ 290, 290, 27, 235, 290, 290, 40, 170, 172, 290, - /* 2070 */ 345, 181, 290, 188, 191, 193, 290, 290, 290, 290, - /* 2080 */ 290, 290, 216, 290, 290, 290, 290, 290, 290, 290, - /* 2090 */ 290, 225, 290, 290, 290, 236, 290, 243, 290, 250, - /* 2100 */ 290, 260, 263, 290, 269, 272, 275, 290, 282, 284, - /* 2110 */ 290, 290, 290, 290, 27, 235, 290, 290, 40, 170, - /* 2120 */ 172, 290, 352, 181, 290, 188, 191, 193, 290, 290, - /* 2130 */ 290, 290, 290, 290, 216, 290, 290, 290, 290, 290, - /* 2140 */ 290, 290, 290, 225, 290, 290, 290, 236, 290, 243, - /* 2150 */ 290, 250, 290, 260, 263, 290, 269, 272, 275, 290, - /* 2160 */ 282, 284, 290, 290, 290, 290, 27, 235, 355, 290, - /* 2170 */ 40, 170, 172, 290, 290, 181, 290, 188, 191, 193, - /* 2180 */ 290, 290, 290, 290, 290, 290, 216, 290, 290, 290, - /* 2190 */ 290, 290, 290, 290, 290, 225, 290, 290, 290, 236, - /* 2200 */ 290, 243, 290, 250, 290, 260, 263, 290, 269, 272, - /* 2210 */ 275, 290, 282, 284, 290, 290, 290, 290, 27, 235, - /* 2220 */ 290, 290, 40, 170, 172, 290, 290, 181, 290, 188, - /* 2230 */ 191, 193, 290, 290, 290, 290, 290, 290, 216, 290, - /* 2240 */ 290, 290, 290, 290, 290, 290, 290, 225, 290, 290, - /* 2250 */ 290, 236, 290, 243, 290, 250, 290, 260, 263, 290, - /* 2260 */ 269, 272, 275, 290, 282, 284, 290, 290, 290, 47, - /* 2270 */ 44, 290, 106, 290, 101, 290, 290, 103, 290, 47, - /* 2280 */ 44, 290, 106, 290, 101, 290, 121, 103, 290, 290, - /* 2290 */ 290, 290, 290, 290, 290, 290, 121, 290, 290, 290, - /* 2300 */ 290, 290, 122, 123, 124, 125, 126, 127, 290, 290, - /* 2310 */ 290, 290, 122, 123, 124, 125, 126, 127, 290, 290, - /* 2320 */ 290, 290, 290, 290, 290, 290, 290, 290, 157, 158, - /* 2330 */ 159, 160, 161, 162, 163, 112, 290, 290, 150, 151, - /* 2340 */ 152, 153, 154, 155, 156, 112, 290, 290, 166, 290, - /* 2350 */ 47, 44, 290, 106, 290, 101, 138, 164, 103, 290, - /* 2360 */ 47, 44, 290, 106, 290, 101, 290, 121, 103, 290, - /* 2370 */ 290, 290, 290, 47, 44, 290, 106, 121, 101, 290, - /* 2380 */ 290, 103, 290, 122, 123, 124, 125, 126, 127, 290, - /* 2390 */ 149, 290, 290, 122, 123, 124, 125, 126, 127, 290, - /* 2400 */ 290, 290, 290, 290, 290, 290, 148, 123, 124, 125, - /* 2410 */ 126, 127, 47, 44, 290, 106, 112, 101, 290, 290, - /* 2420 */ 103, 290, 290, 290, 290, 290, 112, 290, 290, 121, - /* 2430 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 112, - /* 2440 */ 290, 290, 290, 136, 290, 122, 133, 124, 125, 126, - /* 2450 */ 127, 47, 44, 290, 106, 290, 101, 290, 290, 103, - /* 2460 */ 290, 290, 290, 290, 290, 290, 290, 290, 121, 290, - /* 2470 */ 290, 290, 290, 290, 47, 44, 290, 106, 112, 101, - /* 2480 */ 108, 290, 103, 290, 122, 117, 124, 125, 126, 127, - /* 2490 */ 290, 121, 290, 290, 290, 290, 47, 44, 290, 106, - /* 2500 */ 290, 101, 290, 290, 103, 290, 290, 122, 117, 124, - /* 2510 */ 125, 126, 127, 121, 290, 290, 290, 112, 47, 44, - /* 2520 */ 290, 106, 290, 101, 290, 290, 103, 304, 290, 122, - /* 2530 */ 133, 124, 125, 126, 127, 121, 290, 290, 290, 290, - /* 2540 */ 112, 113, 290, 290, 290, 290, 290, 290, 290, 290, - /* 2550 */ 290, 122, 123, 124, 125, 126, 127, 290, 290, 290, - /* 2560 */ 290, 290, 112, 47, 44, 290, 106, 290, 101, 290, - /* 2570 */ 290, 103, 290, 47, 44, 290, 106, 290, 101, 290, - /* 2580 */ 121, 103, 290, 290, 112, 290, 290, 290, 290, 290, - /* 2590 */ 121, 290, 290, 290, 290, 290, 122, 117, 124, 125, - /* 2600 */ 126, 127, 290, 290, 290, 290, 122, 133, 124, 125, - /* 2610 */ 126, 127, 290, 290, 290, 290, 290, 290, 290, 290, - /* 2620 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 112, - /* 2630 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 112, -}; -static VVCODETYPE vv_lookahead[] = { - /* 0 */ 3, 2, 5, 6, 7, 8, 9, 10, 11, 12, - /* 10 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 20 */ 23, 24, 25, 26, 27, 28, 29, 30, 0, 32, - /* 30 */ 26, 27, 28, 29, 30, 38, 18, 19, 20, 21, - /* 40 */ 22, 23, 24, 25, 26, 27, 28, 29, 30, 50, - /* 50 */ 2, 54, 117, 118, 119, 3, 8, 5, 6, 7, - /* 60 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - /* 70 */ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - /* 80 */ 28, 29, 30, 31, 32, 3, 32, 5, 6, 7, - /* 90 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - /* 100 */ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - /* 110 */ 28, 29, 30, 3, 32, 5, 6, 7, 8, 9, - /* 120 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - /* 130 */ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - /* 140 */ 30, 31, 32, 21, 22, 23, 24, 25, 26, 27, - /* 150 */ 28, 29, 30, 32, 72, 118, 119, 32, 3, 8, - /* 160 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - /* 170 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - /* 180 */ 25, 26, 27, 28, 29, 30, 3, 32, 5, 6, - /* 190 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - /* 200 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - /* 210 */ 27, 28, 29, 30, 3, 32, 5, 6, 7, 8, - /* 220 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - /* 230 */ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - /* 240 */ 29, 30, 24, 25, 26, 27, 28, 29, 30, 54, - /* 250 */ 55, 56, 57, 58, 59, 120, 121, 58, 59, 4, - /* 260 */ 4, 50, 126, 50, 50, 3, 4, 5, 6, 7, - /* 270 */ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - /* 280 */ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - /* 290 */ 28, 29, 30, 3, 50, 5, 6, 7, 8, 9, - /* 300 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - /* 310 */ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - /* 320 */ 30, 116, 126, 38, 38, 4, 116, 50, 123, 4, - /* 330 */ 4, 38, 116, 128, 129, 125, 50, 127, 128, 54, - /* 340 */ 54, 125, 52, 127, 128, 52, 3, 32, 5, 6, - /* 350 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - /* 360 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - /* 370 */ 27, 28, 29, 30, 3, 32, 5, 6, 7, 8, - /* 380 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - /* 390 */ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - /* 400 */ 29, 30, 3, 32, 5, 6, 7, 8, 9, 10, - /* 410 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 420 */ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - /* 430 */ 116, 38, 2, 116, 116, 32, 116, 123, 116, 32, - /* 440 */ 116, 32, 128, 129, 126, 128, 128, 127, 128, 50, - /* 450 */ 128, 129, 128, 3, 38, 5, 6, 7, 8, 9, - /* 460 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - /* 470 */ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - /* 480 */ 30, 3, 52, 5, 6, 7, 8, 9, 10, 11, - /* 490 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 500 */ 22, 23, 24, 25, 26, 27, 28, 29, 30, 119, - /* 510 */ 32, 38, 3, 63, 5, 6, 7, 8, 9, 10, - /* 520 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 530 */ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - /* 540 */ 3, 32, 5, 6, 7, 8, 9, 10, 11, 12, - /* 550 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 560 */ 23, 24, 25, 26, 27, 28, 29, 30, 3, 32, - /* 570 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - /* 580 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - /* 590 */ 25, 26, 27, 28, 29, 30, 3, 32, 5, 6, - /* 600 */ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - /* 610 */ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - /* 620 */ 27, 28, 29, 30, 3, 32, 5, 6, 7, 8, - /* 630 */ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - /* 640 */ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - /* 650 */ 29, 30, 3, 32, 5, 6, 7, 8, 9, 10, - /* 660 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 670 */ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - /* 680 */ 3, 29, 5, 6, 7, 8, 9, 10, 11, 12, - /* 690 */ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - /* 700 */ 23, 24, 25, 26, 27, 28, 29, 30, 90, 91, - /* 710 */ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - /* 720 */ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - /* 730 */ 112, 113, 114, 115, 5, 6, 7, 8, 9, 10, - /* 740 */ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - /* 750 */ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - /* 760 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - /* 770 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - /* 780 */ 26, 27, 28, 29, 30, 92, 93, 94, 95, 96, - /* 790 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - /* 800 */ 107, 108, 109, 110, 111, 112, 113, 114, 115, 92, - /* 810 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - /* 820 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - /* 830 */ 113, 114, 115, 92, 93, 94, 95, 96, 97, 98, - /* 840 */ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - /* 850 */ 109, 110, 111, 112, 113, 114, 115, 92, 93, 94, - /* 860 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - /* 870 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - /* 880 */ 115, 92, 93, 94, 95, 96, 97, 98, 99, 100, - /* 890 */ 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - /* 900 */ 111, 112, 113, 114, 115, 92, 93, 94, 95, 96, - /* 910 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - /* 920 */ 107, 108, 109, 110, 111, 112, 113, 114, 115, 92, - /* 930 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - /* 940 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - /* 950 */ 113, 114, 115, 92, 93, 94, 95, 96, 97, 98, - /* 960 */ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - /* 970 */ 109, 110, 111, 112, 113, 114, 115, 92, 93, 94, - /* 980 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - /* 990 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - /* 1000 */ 115, 92, 93, 94, 95, 96, 97, 98, 99, 100, - /* 1010 */ 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - /* 1020 */ 111, 112, 113, 114, 115, 92, 93, 94, 95, 96, - /* 1030 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - /* 1040 */ 107, 108, 109, 110, 111, 112, 113, 114, 115, 92, - /* 1050 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - /* 1060 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - /* 1070 */ 113, 114, 115, 92, 93, 94, 95, 96, 97, 98, - /* 1080 */ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - /* 1090 */ 109, 110, 111, 112, 113, 114, 115, 92, 93, 94, - /* 1100 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - /* 1110 */ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - /* 1120 */ 115, 92, 93, 94, 95, 96, 97, 98, 99, 100, - /* 1130 */ 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - /* 1140 */ 111, 112, 113, 114, 115, 93, 94, 95, 96, 97, - /* 1150 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - /* 1160 */ 108, 109, 110, 111, 112, 113, 114, 115, 31, 32, - /* 1170 */ 33, 34, 35, 36, 37, 116, 2, 40, 116, 42, - /* 1180 */ 43, 44, 116, 116, 116, 32, 116, 128, 51, 32, - /* 1190 */ 128, 32, 116, 2, 128, 128, 128, 60, 128, 32, - /* 1200 */ 1, 64, 124, 66, 128, 68, 32, 70, 71, 38, - /* 1210 */ 73, 74, 75, 32, 77, 78, 8, 9, 10, 11, - /* 1220 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - /* 1230 */ 22, 23, 24, 25, 26, 27, 28, 29, 30, 93, - /* 1240 */ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - /* 1250 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - /* 1260 */ 114, 115, 31, 32, 33, 34, 35, 36, 37, 0, - /* 1270 */ 1, 40, 1, 42, 43, 44, 116, 1, 116, 88, - /* 1280 */ 116, 116, 51, 32, 116, 32, 116, 2, 128, 2, - /* 1290 */ 128, 60, 128, 128, 32, 64, 128, 66, 128, 68, - /* 1300 */ 116, 70, 71, 69, 73, 74, 75, 32, 77, 78, - /* 1310 */ 116, 32, 128, 32, 31, 32, 33, 1, 35, 36, - /* 1320 */ 37, 32, 128, 40, 32, 42, 43, 44, 32, 116, - /* 1330 */ 32, 62, 32, 62, 51, 1, 32, 52, 62, 52, - /* 1340 */ 1, 128, 1, 60, 1, 32, 1, 64, 79, 66, - /* 1350 */ 79, 68, 32, 70, 71, 79, 73, 74, 75, 32, - /* 1360 */ 77, 78, 32, 9, 10, 11, 12, 13, 14, 15, - /* 1370 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - /* 1380 */ 26, 27, 28, 29, 30, 61, 31, 32, 116, 32, - /* 1390 */ 35, 36, 37, 32, 39, 40, 62, 42, 43, 44, - /* 1400 */ 128, 62, 32, 62, 116, 62, 51, 62, 45, 1, - /* 1410 */ 38, 1, 121, 79, 32, 60, 128, 122, 79, 64, - /* 1420 */ 79, 66, 79, 68, 79, 70, 71, 1, 73, 74, - /* 1430 */ 75, 1, 77, 78, 32, 38, 8, 32, 31, 32, - /* 1440 */ 24, 32, 35, 36, 37, 32, 30, 40, 41, 42, - /* 1450 */ 43, 44, 32, 1, 116, 32, 116, 1, 51, 130, - /* 1460 */ 33, 45, 46, 47, 48, 49, 128, 60, 128, 32, - /* 1470 */ 62, 64, 62, 66, 1, 68, 130, 70, 71, 1, - /* 1480 */ 73, 74, 75, 1, 77, 78, 130, 79, 62, 79, - /* 1490 */ 31, 32, 62, 130, 35, 36, 37, 130, 1, 40, - /* 1500 */ 130, 42, 43, 44, 116, 79, 130, 130, 116, 79, - /* 1510 */ 51, 130, 53, 130, 62, 130, 128, 130, 130, 60, - /* 1520 */ 128, 130, 130, 64, 130, 66, 130, 68, 130, 70, - /* 1530 */ 71, 79, 73, 74, 75, 62, 77, 78, 116, 130, - /* 1540 */ 62, 130, 31, 32, 62, 130, 35, 36, 37, 130, - /* 1550 */ 128, 40, 79, 42, 43, 44, 116, 79, 130, 62, - /* 1560 */ 130, 79, 51, 130, 130, 130, 130, 130, 128, 130, - /* 1570 */ 130, 60, 61, 130, 130, 64, 79, 66, 1, 68, - /* 1580 */ 116, 70, 71, 1, 73, 74, 75, 1, 77, 78, - /* 1590 */ 130, 130, 128, 130, 31, 32, 116, 116, 35, 36, - /* 1600 */ 37, 116, 1, 40, 116, 42, 43, 44, 128, 128, - /* 1610 */ 130, 130, 116, 128, 51, 130, 128, 130, 116, 130, - /* 1620 */ 116, 130, 130, 60, 128, 130, 130, 64, 65, 66, - /* 1630 */ 128, 68, 128, 70, 71, 130, 73, 74, 75, 62, - /* 1640 */ 77, 78, 116, 130, 62, 130, 31, 32, 62, 130, - /* 1650 */ 35, 36, 37, 130, 128, 40, 79, 42, 43, 44, - /* 1660 */ 116, 79, 130, 62, 116, 79, 51, 130, 130, 130, - /* 1670 */ 130, 130, 128, 130, 130, 60, 128, 130, 130, 64, - /* 1680 */ 79, 66, 67, 68, 130, 70, 71, 130, 73, 74, - /* 1690 */ 75, 130, 77, 78, 116, 130, 116, 130, 31, 32, - /* 1700 */ 116, 116, 35, 36, 37, 116, 128, 40, 128, 42, - /* 1710 */ 43, 44, 128, 128, 116, 130, 116, 128, 51, 130, - /* 1720 */ 116, 130, 116, 130, 116, 130, 128, 60, 128, 130, - /* 1730 */ 130, 64, 128, 66, 128, 68, 128, 70, 71, 130, - /* 1740 */ 73, 74, 75, 76, 77, 78, 116, 130, 116, 130, - /* 1750 */ 31, 32, 130, 116, 35, 36, 37, 116, 128, 40, - /* 1760 */ 128, 42, 43, 44, 116, 128, 130, 130, 116, 128, - /* 1770 */ 51, 130, 116, 130, 130, 130, 128, 130, 130, 60, - /* 1780 */ 128, 130, 130, 64, 128, 66, 130, 68, 130, 70, - /* 1790 */ 71, 130, 73, 74, 75, 76, 77, 78, 130, 130, - /* 1800 */ 130, 130, 31, 32, 130, 130, 35, 36, 37, 130, - /* 1810 */ 130, 40, 130, 42, 43, 44, 130, 130, 130, 130, - /* 1820 */ 130, 130, 51, 130, 130, 130, 130, 130, 130, 130, - /* 1830 */ 130, 60, 130, 130, 130, 64, 130, 66, 67, 68, - /* 1840 */ 130, 70, 71, 130, 73, 74, 75, 130, 77, 78, - /* 1850 */ 130, 130, 130, 130, 31, 32, 130, 130, 35, 36, - /* 1860 */ 37, 130, 130, 40, 130, 42, 43, 44, 130, 130, - /* 1870 */ 130, 130, 130, 130, 51, 130, 130, 130, 130, 130, - /* 1880 */ 130, 130, 130, 60, 130, 130, 130, 64, 65, 66, - /* 1890 */ 130, 68, 130, 70, 71, 130, 73, 74, 75, 130, - /* 1900 */ 77, 78, 130, 130, 130, 130, 31, 32, 130, 130, - /* 1910 */ 35, 36, 37, 130, 130, 40, 130, 42, 43, 44, - /* 1920 */ 130, 130, 130, 130, 130, 130, 51, 130, 53, 130, - /* 1930 */ 130, 130, 130, 130, 130, 60, 130, 130, 130, 64, - /* 1940 */ 130, 66, 130, 68, 130, 70, 71, 130, 73, 74, - /* 1950 */ 75, 130, 77, 78, 130, 130, 130, 130, 31, 32, - /* 1960 */ 130, 130, 35, 36, 37, 130, 130, 40, 41, 42, - /* 1970 */ 43, 44, 130, 130, 130, 130, 130, 130, 51, 130, - /* 1980 */ 130, 130, 130, 130, 130, 130, 130, 60, 130, 130, - /* 1990 */ 130, 64, 130, 66, 130, 68, 130, 70, 71, 130, - /* 2000 */ 73, 74, 75, 130, 77, 78, 130, 130, 130, 130, - /* 2010 */ 31, 32, 130, 130, 35, 36, 37, 130, 39, 40, - /* 2020 */ 130, 42, 43, 44, 130, 130, 130, 130, 130, 130, - /* 2030 */ 51, 130, 130, 130, 130, 130, 130, 130, 130, 60, - /* 2040 */ 130, 130, 130, 64, 130, 66, 130, 68, 130, 70, - /* 2050 */ 71, 130, 73, 74, 75, 130, 77, 78, 130, 130, - /* 2060 */ 130, 130, 31, 32, 130, 130, 35, 36, 37, 130, - /* 2070 */ 39, 40, 130, 42, 43, 44, 130, 130, 130, 130, - /* 2080 */ 130, 130, 51, 130, 130, 130, 130, 130, 130, 130, - /* 2090 */ 130, 60, 130, 130, 130, 64, 130, 66, 130, 68, - /* 2100 */ 130, 70, 71, 130, 73, 74, 75, 130, 77, 78, - /* 2110 */ 130, 130, 130, 130, 31, 32, 130, 130, 35, 36, - /* 2120 */ 37, 130, 39, 40, 130, 42, 43, 44, 130, 130, - /* 2130 */ 130, 130, 130, 130, 51, 130, 130, 130, 130, 130, - /* 2140 */ 130, 130, 130, 60, 130, 130, 130, 64, 130, 66, - /* 2150 */ 130, 68, 130, 70, 71, 130, 73, 74, 75, 130, - /* 2160 */ 77, 78, 130, 130, 130, 130, 31, 32, 33, 130, - /* 2170 */ 35, 36, 37, 130, 130, 40, 130, 42, 43, 44, - /* 2180 */ 130, 130, 130, 130, 130, 130, 51, 130, 130, 130, - /* 2190 */ 130, 130, 130, 130, 130, 60, 130, 130, 130, 64, - /* 2200 */ 130, 66, 130, 68, 130, 70, 71, 130, 73, 74, - /* 2210 */ 75, 130, 77, 78, 130, 130, 130, 130, 31, 32, - /* 2220 */ 130, 130, 35, 36, 37, 130, 130, 40, 130, 42, - /* 2230 */ 43, 44, 130, 130, 130, 130, 130, 130, 51, 130, - /* 2240 */ 130, 130, 130, 130, 130, 130, 130, 60, 130, 130, - /* 2250 */ 130, 64, 130, 66, 130, 68, 130, 70, 71, 130, - /* 2260 */ 73, 74, 75, 130, 77, 78, 130, 130, 130, 21, - /* 2270 */ 22, 130, 24, 130, 26, 130, 130, 29, 130, 21, - /* 2280 */ 22, 130, 24, 130, 26, 130, 38, 29, 130, 130, - /* 2290 */ 130, 130, 130, 130, 130, 130, 38, 130, 130, 130, - /* 2300 */ 130, 130, 54, 55, 56, 57, 58, 59, 130, 130, - /* 2310 */ 130, 130, 54, 55, 56, 57, 58, 59, 130, 130, - /* 2320 */ 130, 130, 130, 130, 130, 130, 130, 130, 80, 81, - /* 2330 */ 82, 83, 84, 85, 86, 87, 130, 130, 80, 81, - /* 2340 */ 82, 83, 84, 85, 86, 87, 130, 130, 19, 130, - /* 2350 */ 21, 22, 130, 24, 130, 26, 4, 18, 29, 130, - /* 2360 */ 21, 22, 130, 24, 130, 26, 130, 38, 29, 130, - /* 2370 */ 130, 130, 130, 21, 22, 130, 24, 38, 26, 130, - /* 2380 */ 130, 29, 130, 54, 55, 56, 57, 58, 59, 130, - /* 2390 */ 38, 130, 130, 54, 55, 56, 57, 58, 59, 130, - /* 2400 */ 130, 130, 130, 130, 130, 130, 54, 55, 56, 57, - /* 2410 */ 58, 59, 21, 22, 130, 24, 87, 26, 130, 130, - /* 2420 */ 29, 130, 130, 130, 130, 130, 87, 130, 130, 38, - /* 2430 */ 130, 130, 130, 130, 130, 130, 130, 130, 130, 87, - /* 2440 */ 130, 130, 130, 52, 130, 54, 55, 56, 57, 58, - /* 2450 */ 59, 21, 22, 130, 24, 130, 26, 130, 130, 29, - /* 2460 */ 130, 130, 130, 130, 130, 130, 130, 130, 38, 130, - /* 2470 */ 130, 130, 130, 130, 21, 22, 130, 24, 87, 26, - /* 2480 */ 50, 130, 29, 130, 54, 55, 56, 57, 58, 59, - /* 2490 */ 130, 38, 130, 130, 130, 130, 21, 22, 130, 24, - /* 2500 */ 130, 26, 130, 130, 29, 130, 130, 54, 55, 56, - /* 2510 */ 57, 58, 59, 38, 130, 130, 130, 87, 21, 22, - /* 2520 */ 130, 24, 130, 26, 130, 130, 29, 52, 130, 54, - /* 2530 */ 55, 56, 57, 58, 59, 38, 130, 130, 130, 130, - /* 2540 */ 87, 88, 130, 130, 130, 130, 130, 130, 130, 130, - /* 2550 */ 130, 54, 55, 56, 57, 58, 59, 130, 130, 130, - /* 2560 */ 130, 130, 87, 21, 22, 130, 24, 130, 26, 130, - /* 2570 */ 130, 29, 130, 21, 22, 130, 24, 130, 26, 130, - /* 2580 */ 38, 29, 130, 130, 87, 130, 130, 130, 130, 130, - /* 2590 */ 38, 130, 130, 130, 130, 130, 54, 55, 56, 57, - /* 2600 */ 58, 59, 130, 130, 130, 130, 54, 55, 56, 57, - /* 2610 */ 58, 59, 130, 130, 130, 130, 130, 130, 130, 130, - /* 2620 */ 130, 130, 130, 130, 130, 130, 130, 130, 130, 87, - /* 2630 */ 130, 130, 130, 130, 130, 130, 130, 130, 130, 87, -}; -#define VV_SHIFT_USE_DFLT (-4) -static short vv_shift_ofst[] = { - /* 0 */ 1271, 28, 1269, -4, -4, -4, -4, -4, -4, -4, - /* 10 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - /* 20 */ -4, -4, -4, -4, -4, -4, 2187, 2497, 155, 1276, - /* 30 */ 1334, 1137, 54, -4, 121, 1339, 1341, 1283, 125, -4, - /* 40 */ 2497, 183, -4, 2497, 2497, 218, 2497, 2497, 218, 2329, - /* 50 */ 122, 2339, 122, 2497, 122, 2497, 1208, 2497, 1208, 2497, - /* 60 */ 218, 2497, 4, 2497, 754, 2497, 18, 2248, 18, 2258, - /* 70 */ 18, 2497, 18, 2497, 18, 2497, 18, 2497, 18, 2497, - /* 80 */ 18, 2497, 18, 2497, -4, 2497, 1354, 151, 2497, 4, - /* 90 */ -4, -4, 2352, 211, -4, 2497, 262, 2497, 729, 2391, - /* 100 */ 649, 2497, 4, 2497, 290, -4, 2430, 649, -4, -1, - /* 110 */ -4, 2542, 2453, -4, 1191, -4, -4, 255, 2497, 649, - /* 120 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, 430, - /* 130 */ -4, 2552, -4, 256, 2497, 649, -4, -4, 285, 213, - /* 140 */ -4, 214, 244, 321, 286, -4, 277, -4, 325, 326, - /* 150 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - /* 160 */ -4, -4, -4, -4, 2497, 122, 2497, 122, 218, 218, - /* 170 */ 315, -4, 393, 48, 2497, 52, 1271, 1343, 1355, 403, - /* 180 */ -4, 2497, 343, 1345, 1408, 1407, 407, -4, 2497, 371, - /* 190 */ -4, 409, -4, 416, 1174, -4, 416, -4, 1416, 2497, - /* 200 */ 649, 2497, 649, 2497, 649, 2497, 649, 2497, 649, 2497, - /* 210 */ 399, -4, 416, -4, -4, -4, 473, 652, 293, 1153, - /* 220 */ 1271, 1410, 1459, 1157, -4, 2497, 677, 2475, 1285, 1159, - /* 230 */ 1271, 1426, 1511, 1167, -4, -4, 1171, 1181, 1430, 1452, - /* 240 */ 1563, 1251, -4, 2497, -3, 1271, 1473, 1615, 1253, -4, - /* 250 */ 1262, 1271, 2497, 450, -4, 1199, 1234, 1275, -4, -4, - /* 260 */ 2497, 478, -4, 2497, 82, -4, 2497, 509, -4, 2497, - /* 270 */ 537, -4, 2497, 565, -4, 199, 1279, 1271, 1478, 1667, - /* 280 */ 1281, -4, 1289, -4, 1292, -4, -4, 1296, 1271, 1482, - /* 290 */ 1719, 1298, -4, 1300, 1271, 1497, 1771, 1304, -4, 1313, - /* 300 */ 1320, 1823, 1327, -4, 1330, 1316, 1324, 1357, -4, 1287, - /* 310 */ 1361, 1271, 1577, 1875, 1370, -4, 1372, -4, 1363, 195, - /* 320 */ -4, -4, -4, -4, -4, -4, -4, -4, 1927, 1382, - /* 330 */ -4, 2497, 593, 1271, 1582, 1979, 1402, -4, 1397, 1428, - /* 340 */ 2497, 110, 1271, 1586, 2031, 1405, -4, 2497, 621, 1271, - /* 350 */ 1601, 2083, 1409, -4, 2135, 1413, -4, 1231, 1420, -4, - /* 360 */ 1423, 1456, 1427, 1437, -4, -}; -#define VV_REDUCE_USE_DFLT (-66) -static short vv_reduce_ofst[] = { - /* 0 */ 618, -66, 1052, -66, -66, -66, -66, -66, -66, -66, - /* 10 */ -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, - /* 20 */ -66, -66, -66, -66, -66, -66, -66, 317, -66, 693, - /* 30 */ 1052, -66, -66, -66, -66, 717, 1052, -66, -66, -66, - /* 40 */ 1059, -66, -66, 1062, 1066, -66, 1067, 1068, -66, 1070, - /* 50 */ -66, 1076, -66, 1160, -66, 1162, -66, 1164, -66, 1165, - /* 60 */ -66, 1168, -66, 1170, -66, 1184, -66, 1213, -66, 1272, - /* 70 */ -66, 1388, -66, 1392, -66, 1422, -66, 1440, -66, 1464, - /* 80 */ -66, 1480, -66, 1481, -66, 1485, -66, -66, 1488, -66, - /* 90 */ -66, -66, 318, -66, -66, 1496, -66, 1502, -66, 205, - /* 100 */ -66, 1504, -66, 1526, -66, -66, 210, -66, -66, -66, - /* 110 */ -66, 320, 216, -66, -66, -66, -66, -66, 1194, -66, - /* 120 */ -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, - /* 130 */ -66, 322, -66, -66, 1544, -66, -66, -66, 136, -66, - /* 140 */ -66, -66, -66, -66, 196, -66, -66, -66, -66, -66, - /* 150 */ -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, - /* 160 */ -66, -66, -66, -66, 324, -66, 1548, -66, -66, -66, - /* 170 */ -66, -66, -66, -66, 1578, -66, 741, 1052, -66, -66, - /* 180 */ -66, 1580, -66, 765, 1052, -66, -66, -66, 1584, -66, - /* 190 */ -66, -66, -66, -65, -66, -66, 37, -66, -66, 1585, - /* 200 */ -66, 1589, -66, 1598, -66, 1600, -66, 1604, -66, 1606, - /* 210 */ -66, -66, 390, -66, -66, -66, -66, -66, 135, -66, - /* 220 */ 789, 1052, -66, -66, -66, 1608, -66, 314, -66, -66, - /* 230 */ 813, 1052, -66, -66, -66, -66, -66, -66, 837, 1052, - /* 240 */ -66, -66, -66, 1288, 1078, 861, 1052, -66, -66, -66, - /* 250 */ -66, 1146, 1338, -66, -66, -66, -66, -66, -66, -66, - /* 260 */ 1630, -66, -66, 1632, -66, -66, 1637, -66, -66, 1641, - /* 270 */ -66, -66, 1648, -66, -66, -66, -66, 885, 1052, -66, - /* 280 */ -66, -66, -66, -66, -66, -66, -66, -66, 909, 1052, - /* 290 */ -66, -66, -66, -66, 933, 1052, -66, -66, -66, -66, - /* 300 */ -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, - /* 310 */ -66, 957, 1052, -66, -66, -66, 1291, -66, -66, 1295, - /* 320 */ -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, - /* 330 */ -66, 1340, -66, 981, 1052, -66, -66, -66, -66, -66, - /* 340 */ 1652, -66, 1005, 1052, -66, -66, -66, 1656, -66, 1029, - /* 350 */ 1052, -66, -66, -66, -66, -66, -66, -66, -66, -66, - /* 360 */ -66, -66, -66, -66, -66, -}; -static VVACTIONTYPE vv_default[] = { - /* 0 */ 523, 523, 523, 367, 369, 370, 371, 372, 373, 374, - /* 10 */ 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - /* 20 */ 385, 386, 387, 388, 389, 390, 523, 523, 523, 523, - /* 30 */ 523, 523, 523, 391, 523, 523, 523, 523, 523, 393, - /* 40 */ 523, 523, 396, 523, 523, 450, 523, 523, 451, 523, - /* 50 */ 454, 523, 456, 523, 458, 523, 459, 523, 460, 523, - /* 60 */ 461, 523, 462, 523, 463, 523, 464, 523, 480, 523, - /* 70 */ 479, 523, 481, 523, 482, 523, 483, 523, 484, 523, - /* 80 */ 485, 523, 486, 523, 487, 523, 488, 523, 523, 489, - /* 90 */ 491, 492, 523, 523, 498, 523, 523, 523, 499, 523, - /* 100 */ 514, 523, 490, 523, 523, 493, 523, 508, 494, 523, - /* 110 */ 495, 523, 523, 496, 523, 497, 506, 518, 523, 507, - /* 120 */ 509, 516, 517, 518, 519, 520, 521, 522, 505, 523, - /* 130 */ 510, 523, 512, 518, 523, 515, 511, 513, 523, 523, - /* 140 */ 500, 523, 523, 523, 523, 501, 523, 502, 517, 516, - /* 150 */ 466, 468, 470, 472, 474, 476, 478, 465, 467, 469, - /* 160 */ 471, 473, 475, 477, 523, 457, 523, 455, 453, 452, - /* 170 */ 523, 397, 523, 523, 523, 523, 523, 523, 523, 523, - /* 180 */ 398, 523, 523, 523, 523, 523, 523, 402, 523, 523, - /* 190 */ 404, 523, 405, 523, 523, 406, 523, 407, 523, 523, - /* 200 */ 409, 523, 410, 523, 411, 523, 412, 523, 413, 523, - /* 210 */ 523, 415, 523, 414, 416, 408, 523, 523, 523, 523, - /* 220 */ 523, 523, 523, 523, 417, 523, 523, 523, 523, 510, - /* 230 */ 523, 523, 523, 523, 429, 431, 523, 523, 523, 523, - /* 240 */ 523, 523, 433, 523, 523, 523, 523, 523, 523, 435, - /* 250 */ 523, 523, 523, 523, 432, 523, 523, 523, 439, 449, - /* 260 */ 523, 523, 440, 523, 523, 441, 523, 523, 442, 523, - /* 270 */ 523, 443, 523, 523, 444, 523, 523, 523, 523, 523, - /* 280 */ 523, 445, 523, 447, 523, 448, 368, 523, 523, 523, - /* 290 */ 523, 523, 446, 523, 523, 523, 523, 523, 436, 523, - /* 300 */ 523, 523, 523, 434, 511, 523, 523, 523, 430, 523, - /* 310 */ 523, 523, 523, 523, 523, 418, 523, 419, 421, 523, - /* 320 */ 422, 423, 424, 425, 426, 427, 428, 420, 523, 523, - /* 330 */ 403, 523, 523, 523, 523, 523, 523, 399, 523, 523, - /* 340 */ 523, 523, 523, 523, 523, 523, 400, 523, 523, 523, - /* 350 */ 523, 523, 523, 401, 523, 523, 394, 523, 523, 392, - /* 360 */ 523, 523, 523, 523, 395, -}; -#define VV_SZ_ACTTAB (sizeof(vv_action)/sizeof(vv_action[0])) -/* The next table maps tokens into fallback tokens. If a construct -** like the following: -** -** %fallback ID X Y Z. -** -** appears in the grammer, then ID becomes a fallback token for X, Y, -** and Z. Whenever one of the tokens X, Y, or Z is input to the parser -** but it does not parse, the type of the token is changed to ID and -** the parse is retried before an error is thrown. -*/ -#ifdef VVFALLBACK -static const VVCODETYPE vvFallback[] = { -}; -#endif /* VVFALLBACK */ -/* The following structure represents a single element of the -** parser's stack. Information stored includes: -** -** + The state number for the parser at this level of the stack. -** -** + The value of the token stored at this level of the stack. -** (In other words, the "major" token.) -** -** + The semantic value stored at this level of the stack. This is -** the information used by the action routines in the grammar. -** It is sometimes called the "minor" token. -*/ -struct vvStackEntry { - int stateno; /* The state-number */ - int major; /* The major token value. This is the code - ** number for the token at this stack level */ - VVMINORTYPE minor; /* The user-supplied minor token value. This - ** is the value of the token */ -}; -typedef struct vvStackEntry vvStackEntry; -/* The state of the parser is completely contained in an instance of -** the following structure */ -struct vvParser { - int vvidx; /* Index of top element in stack */ - int vverrcnt; /* Shifts left before out of the error */ - phvolt_ARG_SDECL /* A place to hold %extra_argument */ - vvStackEntry vvstack[VVSTACKDEPTH]; /* The parser's stack */ -}; -typedef struct vvParser vvParser; -#ifndef NDEBUG -static FILE *vvTraceFILE = 0; -static char *vvTracePrompt = 0; -#endif /* NDEBUG */ +ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Upper) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Upper, phalcon, filter_sanitize_upper, phalcon_filter_sanitize_upper_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Filter_Sanitize_Upper, __invoke) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *input_param = NULL, _0$$3, _1$$3, _2; + zval input; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&input); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(input) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &input_param); + if (UNEXPECTED(Z_TYPE_P(input_param) != IS_STRING && Z_TYPE_P(input_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'input' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(input_param) == IS_STRING)) { + zephir_get_strval(&input, input_param); + } else { + ZEPHIR_INIT_VAR(&input); + } -#ifndef NDEBUG -static void phvolt_Trace(FILE *TraceFILE, char *zTracePrompt){ - vvTraceFILE = TraceFILE; - vvTracePrompt = zTracePrompt; - if( vvTraceFILE==0 ) vvTracePrompt = 0; - else if( vvTracePrompt==0 ) vvTraceFILE = 0; + + if (1 == (zephir_function_exists_ex(ZEND_STRL("mb_convert_case")) == SUCCESS)) { + ZVAL_LONG(&_0$$3, 0); + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, "UTF-8"); + ZEPHIR_RETURN_CALL_FUNCTION("mb_convert_case", NULL, 239, &input, &_0$$3, &_1$$3); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_CALL_FUNCTION(&_2, "utf8_decode", NULL, 240, &input); + zephir_check_call_status(); + zephir_fast_strtoupper(return_value, &_2); + RETURN_MM(); } -#endif /* NDEBUG */ -#ifndef NDEBUG -/* For tracing shifts, the names of all terminals and nonterminals -** are required. The following table supplies these names */ -static const char *vvTokenName[] = { - "$", "OPEN_DELIMITER", "COMMA", "QUESTION", - "COLON", "RANGE", "AND", "OR", - "IN", "IS", "EQUALS", "NOTEQUALS", - "LESS", "GREATER", "GREATEREQUAL", "LESSEQUAL", - "IDENTICAL", "NOTIDENTICAL", "DIVIDE", "TIMES", - "MOD", "PLUS", "MINUS", "CONCAT", - "SBRACKET_OPEN", "PIPE", "NOT", "INCR", - "DECR", "PARENTHESES_OPEN", "DOT", "IF", - "CLOSE_DELIMITER", "ENDIF", "ELSE", "ELSEIF", - "ELSEFOR", "FOR", "IDENTIFIER", "ENDFOR", - "SWITCH", "ENDSWITCH", "CASE", "DEFAULT", - "SET", "ASSIGN", "ADD_ASSIGN", "SUB_ASSIGN", - "MUL_ASSIGN", "DIV_ASSIGN", "SBRACKET_CLOSE", "MACRO", - "PARENTHESES_CLOSE", "ENDMACRO", "INTEGER", "STRING", - "DOUBLE", "NULL", "FALSE", "TRUE", - "CALL", "ENDCALL", "OPEN_EDELIMITER", "CLOSE_EDELIMITER", - "BLOCK", "ENDBLOCK", "CACHE", "ENDCACHE", - "RAW", "ENDRAW", "EXTENDS", "INCLUDE", - "WITH", "DO", "RETURN", "AUTOESCAPE", - "ENDAUTOESCAPE", "BREAK", "CONTINUE", "RAW_FRAGMENT", - "DEFINED", "EMPTY", "EVEN", "ODD", - "NUMERIC", "SCALAR", "ITERABLE", "CBRACKET_OPEN", - "CBRACKET_CLOSE", "error", "program", "volt_language", - "statement_list", "statement", "raw_fragment", "if_statement", - "elseif_statement", "elsefor_statement", "for_statement", "switch_statement", - "case_clause", "set_statement", "echo_statement", "block_statement", - "cache_statement", "extends_statement", "include_statement", "do_statement", - "return_statement", "autoescape_statement", "raw_statement", "break_statement", - "continue_statement", "macro_statement", "empty_statement", "macro_call_statement", - "expr", "set_assignments", "set_assignment", "assignable_expr", - "macro_parameters", "macro_parameter", "macro_parameter_default", "argument_list", - "cache_lifetime", "array_list", "slice_offset", "array_item", - "function_call", "argument_item", -}; -#endif /* NDEBUG */ -#ifndef NDEBUG -/* For tracing reduce actions, the names of all rules are required. -*/ -static const char *vvRuleName[] = { - /* 0 */ "program ::= volt_language", - /* 1 */ "volt_language ::= statement_list", - /* 2 */ "statement_list ::= statement_list statement", - /* 3 */ "statement_list ::= statement", - /* 4 */ "statement ::= raw_fragment", - /* 5 */ "statement ::= if_statement", - /* 6 */ "statement ::= elseif_statement", - /* 7 */ "statement ::= elsefor_statement", - /* 8 */ "statement ::= for_statement", - /* 9 */ "statement ::= switch_statement", - /* 10 */ "statement ::= case_clause", - /* 11 */ "statement ::= set_statement", - /* 12 */ "statement ::= echo_statement", - /* 13 */ "statement ::= block_statement", - /* 14 */ "statement ::= cache_statement", - /* 15 */ "statement ::= extends_statement", - /* 16 */ "statement ::= include_statement", - /* 17 */ "statement ::= do_statement", - /* 18 */ "statement ::= return_statement", - /* 19 */ "statement ::= autoescape_statement", - /* 20 */ "statement ::= raw_statement", - /* 21 */ "statement ::= break_statement", - /* 22 */ "statement ::= continue_statement", - /* 23 */ "statement ::= macro_statement", - /* 24 */ "statement ::= empty_statement", - /* 25 */ "statement ::= macro_call_statement", - /* 26 */ "if_statement ::= OPEN_DELIMITER IF expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDIF CLOSE_DELIMITER", - /* 27 */ "if_statement ::= OPEN_DELIMITER IF expr CLOSE_DELIMITER OPEN_DELIMITER ENDIF CLOSE_DELIMITER", - /* 28 */ "if_statement ::= OPEN_DELIMITER IF expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ELSE CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDIF CLOSE_DELIMITER", - /* 29 */ "if_statement ::= OPEN_DELIMITER IF expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ELSE CLOSE_DELIMITER OPEN_DELIMITER ENDIF CLOSE_DELIMITER", - /* 30 */ "if_statement ::= OPEN_DELIMITER IF expr CLOSE_DELIMITER OPEN_DELIMITER ELSE CLOSE_DELIMITER OPEN_DELIMITER ENDIF CLOSE_DELIMITER", - /* 31 */ "elseif_statement ::= OPEN_DELIMITER ELSEIF expr CLOSE_DELIMITER", - /* 32 */ "elsefor_statement ::= OPEN_DELIMITER ELSEFOR CLOSE_DELIMITER", - /* 33 */ "for_statement ::= OPEN_DELIMITER FOR IDENTIFIER IN expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDFOR CLOSE_DELIMITER", - /* 34 */ "for_statement ::= OPEN_DELIMITER FOR IDENTIFIER IN expr IF expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDFOR CLOSE_DELIMITER", - /* 35 */ "for_statement ::= OPEN_DELIMITER FOR IDENTIFIER COMMA IDENTIFIER IN expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDFOR CLOSE_DELIMITER", - /* 36 */ "for_statement ::= OPEN_DELIMITER FOR IDENTIFIER COMMA IDENTIFIER IN expr IF expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDFOR CLOSE_DELIMITER", - /* 37 */ "switch_statement ::= OPEN_DELIMITER SWITCH expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDSWITCH CLOSE_DELIMITER", - /* 38 */ "switch_statement ::= OPEN_DELIMITER SWITCH expr CLOSE_DELIMITER OPEN_DELIMITER ENDSWITCH CLOSE_DELIMITER", - /* 39 */ "case_clause ::= OPEN_DELIMITER CASE expr CLOSE_DELIMITER", - /* 40 */ "case_clause ::= OPEN_DELIMITER DEFAULT CLOSE_DELIMITER", - /* 41 */ "set_statement ::= OPEN_DELIMITER SET set_assignments CLOSE_DELIMITER", - /* 42 */ "set_assignments ::= set_assignments COMMA set_assignment", - /* 43 */ "set_assignments ::= set_assignment", - /* 44 */ "set_assignment ::= assignable_expr ASSIGN expr", - /* 45 */ "set_assignment ::= assignable_expr ADD_ASSIGN expr", - /* 46 */ "set_assignment ::= assignable_expr SUB_ASSIGN expr", - /* 47 */ "set_assignment ::= assignable_expr MUL_ASSIGN expr", - /* 48 */ "set_assignment ::= assignable_expr DIV_ASSIGN expr", - /* 49 */ "assignable_expr ::= IDENTIFIER", - /* 50 */ "assignable_expr ::= assignable_expr SBRACKET_OPEN expr SBRACKET_CLOSE", - /* 51 */ "assignable_expr ::= assignable_expr DOT assignable_expr", - /* 52 */ "macro_statement ::= OPEN_DELIMITER MACRO IDENTIFIER PARENTHESES_OPEN PARENTHESES_CLOSE CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDMACRO CLOSE_DELIMITER", - /* 53 */ "macro_statement ::= OPEN_DELIMITER MACRO IDENTIFIER PARENTHESES_OPEN macro_parameters PARENTHESES_CLOSE CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDMACRO CLOSE_DELIMITER", - /* 54 */ "macro_parameters ::= macro_parameters COMMA macro_parameter", - /* 55 */ "macro_parameters ::= macro_parameter", - /* 56 */ "macro_parameter ::= IDENTIFIER", - /* 57 */ "macro_parameter ::= IDENTIFIER ASSIGN macro_parameter_default", - /* 58 */ "macro_parameter_default ::= INTEGER", - /* 59 */ "macro_parameter_default ::= STRING", - /* 60 */ "macro_parameter_default ::= DOUBLE", - /* 61 */ "macro_parameter_default ::= NULL", - /* 62 */ "macro_parameter_default ::= FALSE", - /* 63 */ "macro_parameter_default ::= TRUE", - /* 64 */ "macro_call_statement ::= OPEN_DELIMITER CALL expr PARENTHESES_OPEN argument_list PARENTHESES_CLOSE CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDCALL CLOSE_DELIMITER", - /* 65 */ "macro_call_statement ::= OPEN_DELIMITER CALL expr PARENTHESES_OPEN PARENTHESES_CLOSE CLOSE_DELIMITER OPEN_DELIMITER ENDCALL CLOSE_DELIMITER", - /* 66 */ "empty_statement ::= OPEN_DELIMITER CLOSE_DELIMITER", - /* 67 */ "echo_statement ::= OPEN_EDELIMITER expr CLOSE_EDELIMITER", - /* 68 */ "block_statement ::= OPEN_DELIMITER BLOCK IDENTIFIER CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDBLOCK CLOSE_DELIMITER", - /* 69 */ "block_statement ::= OPEN_DELIMITER BLOCK IDENTIFIER CLOSE_DELIMITER OPEN_DELIMITER ENDBLOCK CLOSE_DELIMITER", - /* 70 */ "cache_statement ::= OPEN_DELIMITER CACHE expr CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDCACHE CLOSE_DELIMITER", - /* 71 */ "cache_statement ::= OPEN_DELIMITER CACHE expr cache_lifetime CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDCACHE CLOSE_DELIMITER", - /* 72 */ "cache_lifetime ::= INTEGER", - /* 73 */ "cache_lifetime ::= IDENTIFIER", - /* 74 */ "raw_statement ::= OPEN_DELIMITER RAW CLOSE_DELIMITER statement OPEN_DELIMITER ENDRAW CLOSE_DELIMITER", - /* 75 */ "extends_statement ::= OPEN_DELIMITER EXTENDS expr CLOSE_DELIMITER", - /* 76 */ "include_statement ::= OPEN_DELIMITER INCLUDE expr CLOSE_DELIMITER", - /* 77 */ "include_statement ::= OPEN_DELIMITER INCLUDE expr WITH expr CLOSE_DELIMITER", - /* 78 */ "do_statement ::= OPEN_DELIMITER DO expr CLOSE_DELIMITER", - /* 79 */ "return_statement ::= OPEN_DELIMITER RETURN expr CLOSE_DELIMITER", - /* 80 */ "autoescape_statement ::= OPEN_DELIMITER AUTOESCAPE FALSE CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDAUTOESCAPE CLOSE_DELIMITER", - /* 81 */ "autoescape_statement ::= OPEN_DELIMITER AUTOESCAPE TRUE CLOSE_DELIMITER statement_list OPEN_DELIMITER ENDAUTOESCAPE CLOSE_DELIMITER", - /* 82 */ "break_statement ::= OPEN_DELIMITER BREAK CLOSE_DELIMITER", - /* 83 */ "continue_statement ::= OPEN_DELIMITER CONTINUE CLOSE_DELIMITER", - /* 84 */ "raw_fragment ::= RAW_FRAGMENT", - /* 85 */ "expr ::= MINUS expr", - /* 86 */ "expr ::= PLUS expr", - /* 87 */ "expr ::= expr MINUS expr", - /* 88 */ "expr ::= expr PLUS expr", - /* 89 */ "expr ::= expr TIMES expr", - /* 90 */ "expr ::= expr TIMES TIMES expr", - /* 91 */ "expr ::= expr DIVIDE expr", - /* 92 */ "expr ::= expr DIVIDE DIVIDE expr", - /* 93 */ "expr ::= expr MOD expr", - /* 94 */ "expr ::= expr AND expr", - /* 95 */ "expr ::= expr OR expr", - /* 96 */ "expr ::= expr CONCAT expr", - /* 97 */ "expr ::= expr PIPE expr", - /* 98 */ "expr ::= expr RANGE expr", - /* 99 */ "expr ::= expr EQUALS expr", - /* 100 */ "expr ::= expr NOTEQUALS DEFINED", - /* 101 */ "expr ::= expr IS DEFINED", - /* 102 */ "expr ::= expr NOTEQUALS EMPTY", - /* 103 */ "expr ::= expr IS EMPTY", - /* 104 */ "expr ::= expr NOTEQUALS EVEN", - /* 105 */ "expr ::= expr IS EVEN", - /* 106 */ "expr ::= expr NOTEQUALS ODD", - /* 107 */ "expr ::= expr IS ODD", - /* 108 */ "expr ::= expr NOTEQUALS NUMERIC", - /* 109 */ "expr ::= expr IS NUMERIC", - /* 110 */ "expr ::= expr NOTEQUALS SCALAR", - /* 111 */ "expr ::= expr IS SCALAR", - /* 112 */ "expr ::= expr NOTEQUALS ITERABLE", - /* 113 */ "expr ::= expr IS ITERABLE", - /* 114 */ "expr ::= expr IS expr", - /* 115 */ "expr ::= expr NOTEQUALS expr", - /* 116 */ "expr ::= expr IDENTICAL expr", - /* 117 */ "expr ::= expr NOTIDENTICAL expr", - /* 118 */ "expr ::= expr LESS expr", - /* 119 */ "expr ::= expr GREATER expr", - /* 120 */ "expr ::= expr GREATEREQUAL expr", - /* 121 */ "expr ::= expr LESSEQUAL expr", - /* 122 */ "expr ::= expr DOT expr", - /* 123 */ "expr ::= expr IN expr", - /* 124 */ "expr ::= expr NOT IN expr", - /* 125 */ "expr ::= NOT expr", - /* 126 */ "expr ::= expr INCR", - /* 127 */ "expr ::= expr DECR", - /* 128 */ "expr ::= PARENTHESES_OPEN expr PARENTHESES_CLOSE", - /* 129 */ "expr ::= SBRACKET_OPEN SBRACKET_CLOSE", - /* 130 */ "expr ::= SBRACKET_OPEN array_list SBRACKET_CLOSE", - /* 131 */ "expr ::= CBRACKET_OPEN CBRACKET_CLOSE", - /* 132 */ "expr ::= CBRACKET_OPEN array_list CBRACKET_CLOSE", - /* 133 */ "expr ::= expr SBRACKET_OPEN expr SBRACKET_CLOSE", - /* 134 */ "expr ::= expr QUESTION expr COLON expr", - /* 135 */ "expr ::= expr SBRACKET_OPEN COLON slice_offset SBRACKET_CLOSE", - /* 136 */ "expr ::= expr SBRACKET_OPEN slice_offset COLON SBRACKET_CLOSE", - /* 137 */ "expr ::= expr SBRACKET_OPEN slice_offset COLON slice_offset SBRACKET_CLOSE", - /* 138 */ "slice_offset ::= INTEGER", - /* 139 */ "slice_offset ::= IDENTIFIER", - /* 140 */ "array_list ::= array_list COMMA array_item", - /* 141 */ "array_list ::= array_item", - /* 142 */ "array_item ::= STRING COLON expr", - /* 143 */ "array_item ::= expr", - /* 144 */ "expr ::= function_call", - /* 145 */ "function_call ::= expr PARENTHESES_OPEN argument_list PARENTHESES_CLOSE", - /* 146 */ "function_call ::= expr PARENTHESES_OPEN PARENTHESES_CLOSE", - /* 147 */ "argument_list ::= argument_list COMMA argument_item", - /* 148 */ "argument_list ::= argument_item", - /* 149 */ "argument_item ::= expr", - /* 150 */ "argument_item ::= STRING COLON expr", - /* 151 */ "expr ::= IDENTIFIER", - /* 152 */ "expr ::= INTEGER", - /* 153 */ "expr ::= STRING", - /* 154 */ "expr ::= DOUBLE", - /* 155 */ "expr ::= NULL", - /* 156 */ "expr ::= FALSE", - /* 157 */ "expr ::= TRUE", -}; -#endif /* NDEBUG */ -const char *phvolt_TokenName(int tokenType){ -#ifndef NDEBUG - if( tokenType>0 && tokenType<(sizeof(vvTokenName)/sizeof(vvTokenName[0])) ){ - return vvTokenName[tokenType]; - }else{ - return "Unknown"; - } -#else - return ""; + +#ifdef HAVE_CONFIG_H #endif -} -void *phvolt_Alloc(void *(*mallocProc)(size_t)){ - vvParser *pParser; - pParser = (vvParser*)(*mallocProc)( (size_t)sizeof(vvParser) ); - if( pParser ){ - pParser->vvidx = -1; - } - return pParser; + + + + +ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_UpperFirst) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, UpperFirst, phalcon, filter_sanitize_upperfirst, phalcon_filter_sanitize_upperfirst_method_entry, 0); + + return SUCCESS; } -/* The following function deletes the value associated with a -** symbol. The symbol can be either a terminal or nonterminal. -** "vvmajor" is the symbol code, and "vvpminor" is a pointer to -** the value. -*/ -static void vv_destructor(VVCODETYPE vvmajor, VVMINORTYPE *vvpminor){ - switch( vvmajor ){ - /* Here is inserted the actions which take place when a - ** terminal or non-terminal is destroyed. This can happen - ** when the symbol is popped from the stack during a - ** reduce or during error processing or when a parser is - ** being destroyed before it is finished parsing. - ** - ** Note: during a reduce, the only symbols destroyed are those - ** which appear on the RHS of the rule, but which are not used - ** inside the C code. - */ - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 20: - case 21: - case 22: - case 23: - case 24: - case 25: - case 26: - case 27: - case 28: - case 29: - case 30: - case 31: - case 32: - case 33: - case 34: - case 35: - case 36: - case 37: - case 38: - case 39: - case 40: - case 41: - case 42: - case 43: - case 44: - case 45: - case 46: - case 47: - case 48: - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - case 58: - case 59: - case 60: - case 61: - case 62: - case 63: - case 64: - case 65: - case 66: - case 67: - case 68: - case 69: - case 70: - case 71: - case 72: - case 73: - case 74: - case 75: - case 76: - case 77: - case 78: - case 79: - case 80: - case 81: - case 82: - case 83: - case 84: - case 85: - case 86: - case 87: - case 88: -// 158 "parser.php.lemon" +static PHP_METHOD(Phalcon_Filter_Sanitize_UpperFirst, __invoke) { - if ((vvpminor->vv0)) { - if ((vvpminor->vv0)->free_flag) { - efree((vvpminor->vv0)->token); - } - efree((vvpminor->vv0)); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *input_param = NULL; + zval input; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&input); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(input) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &input_param); + if (UNEXPECTED(Z_TYPE_P(input_param) != IS_STRING && Z_TYPE_P(input_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'input' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(input_param) == IS_STRING)) { + zephir_get_strval(&input, input_param); + } else { + ZEPHIR_INIT_VAR(&input); } + + + zephir_ucfirst(return_value, &input); + RETURN_MM(); } -// 1229 "parser.php.c" - break; - case 91: -// 171 "parser.php.lemon" + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_UpperWords) { - if (&(vvpminor->vv186)) { - zval_ptr_dtor(&(vvpminor->vv186)); + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, UpperWords, phalcon, filter_sanitize_upperwords, phalcon_filter_sanitize_upperwords_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Filter_Sanitize_UpperWords, __invoke) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *input_param = NULL, _0$$3, _1$$3, _2; + zval input; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&input); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(input) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &input_param); + if (UNEXPECTED(Z_TYPE_P(input_param) != IS_STRING && Z_TYPE_P(input_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'input' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(input_param) == IS_STRING)) { + zephir_get_strval(&input, input_param); + } else { + ZEPHIR_INIT_VAR(&input); + } + + + if (1 == (zephir_function_exists_ex(ZEND_STRL("mb_convert_case")) == SUCCESS)) { + ZVAL_LONG(&_0$$3, 2); + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, "UTF-8"); + ZEPHIR_RETURN_CALL_FUNCTION("mb_convert_case", NULL, 239, &input, &_0$$3, &_1$$3); + zephir_check_call_status(); + RETURN_MM(); } + ZEPHIR_CALL_FUNCTION(&_2, "utf8_decode", NULL, 240, &input); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_FUNCTION("ucwords", NULL, 242, &_2); + zephir_check_call_status(); + RETURN_MM(); } -// 1238 "parser.php.c" - break; - case 89: - case 90: - case 92: - case 93: - case 94: - case 95: - case 96: - case 97: - case 98: - case 99: - case 100: - case 101: - case 102: - case 103: - case 104: - case 105: - case 106: - case 107: - case 108: - case 109: - case 110: - case 111: - case 112: - case 113: - case 114: - case 115: - case 116: - case 117: - case 118: - case 119: - case 120: - case 121: - case 122: - case 123: - case 124: - case 125: - case 126: - case 127: - case 128: - case 129: -// 14 "parser.php.lemon" + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Filter_Sanitize_Url) { - if (&(vvpminor->vv186)) { - zval_ptr_dtor(&(vvpminor->vv186)); + ZEPHIR_REGISTER_CLASS(Phalcon\\Filter\\Sanitize, Url, phalcon, filter_sanitize_url, phalcon_filter_sanitize_url_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Filter_Sanitize_Url, __invoke) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *input, input_sub, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&input_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(input) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &input); + + + ZVAL_LONG(&_0, 518); + ZEPHIR_RETURN_CALL_FUNCTION("filter_var", NULL, 237, input, &_0); + zephir_check_call_status(); + RETURN_MM(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Domain_Payload_Payload) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Domain\\Payload, Payload, phalcon, domain_payload_payload, phalcon_domain_payload_payload_method_entry, 0); + + zend_declare_property_null(phalcon_domain_payload_payload_ce, SL("exception"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_domain_payload_payload_ce, SL("extras"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_domain_payload_payload_ce, SL("input"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_domain_payload_payload_ce, SL("messages"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_domain_payload_payload_ce, SL("status"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_domain_payload_payload_ce, SL("output"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_domain_payload_payload_ce, 1, phalcon_domain_payload_payloadinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Domain_Payload_Payload, getExtras) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "extras"); +} + +static PHP_METHOD(Phalcon_Domain_Payload_Payload, getInput) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "input"); +} + +static PHP_METHOD(Phalcon_Domain_Payload_Payload, getMessages) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "messages"); +} + +static PHP_METHOD(Phalcon_Domain_Payload_Payload, getStatus) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "status"); +} + +static PHP_METHOD(Phalcon_Domain_Payload_Payload, getOutput) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "output"); +} + +static PHP_METHOD(Phalcon_Domain_Payload_Payload, getException) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "exception"); +} + +static PHP_METHOD(Phalcon_Domain_Payload_Payload, setException) +{ + zval *exception, exception_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&exception_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(exception, zend_ce_throwable) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &exception); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("exception"), exception); + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Domain_Payload_Payload, setExtras) +{ + zval *extras, extras_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&extras_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(extras) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &extras); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("extras"), extras); + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Domain_Payload_Payload, setInput) +{ + zval *input, input_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&input_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(input) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &input); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("input"), input); + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Domain_Payload_Payload, setMessages) +{ + zval *messages, messages_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&messages_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(messages) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &messages); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("messages"), messages); + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Domain_Payload_Payload, setOutput) +{ + zval *output, output_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&output_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(output) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &output); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("output"), output); + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Domain_Payload_Payload, setStatus) +{ + zval *status, status_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&status_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(status) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &status); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("status"), status); + RETURN_THISW(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Domain_Payload_PayloadFactory) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Domain\\Payload, PayloadFactory, phalcon, domain_payload_payloadfactory, phalcon_domain_payload_payloadfactory_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Domain_Payload_PayloadFactory, newInstance) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + + + ZEPHIR_MM_GROW(); + + object_init_ex(return_value, phalcon_domain_payload_payload_ce); + if (zephir_has_constructor(return_value)) { + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 0); + zephir_check_call_status(); } + + RETURN_MM(); } -// 1286 "parser.php.c" - break; - default: break; /* If no destructor action specified: do nothing */ - } + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Domain_Payload_PayloadInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Domain\\Payload, PayloadInterface, phalcon, domain_payload_payloadinterface, NULL); + + zend_class_implements(phalcon_domain_payload_payloadinterface_ce, 1, phalcon_domain_payload_readableinterface_ce); + zend_class_implements(phalcon_domain_payload_payloadinterface_ce, 1, phalcon_domain_payload_writeableinterface_ce); + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Domain_Payload_ReadableInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Domain\\Payload, ReadableInterface, phalcon, domain_payload_readableinterface, phalcon_domain_payload_readableinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_ReadableInterface, getException); +ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_ReadableInterface, getExtras); +ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_ReadableInterface, getInput); +ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_ReadableInterface, getMessages); +ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_ReadableInterface, getOutput); +ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_ReadableInterface, getStatus); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Domain_Payload_Status) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Domain\\Payload, Status, phalcon, domain_payload_status, phalcon_domain_payload_status_method_entry, 0); + + zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("ACCEPTED"), "ACCEPTED"); + + zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("AUTHENTICATED"), "AUTHENTICATED"); + + zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("AUTHORIZED"), "AUTHORIZED"); + + zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("CREATED"), "CREATED"); + + zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("DELETED"), "DELETED"); + + zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("ERROR"), "ERROR"); + + zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("FAILURE"), "FAILURE"); + + zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("FOUND"), "FOUND"); + + zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("NOT_ACCEPTED"), "NOT_ACCEPTED"); + + zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("NOT_AUTHENTICATED"), "NOT_AUTHENTICATED"); + + zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("NOT_AUTHORIZED"), "NOT_AUTHORIZED"); + + zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("NOT_CREATED"), "NOT_CREATED"); + + zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("NOT_DELETED"), "NOT_DELETED"); + + zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("NOT_FOUND"), "NOT_FOUND"); + + zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("NOT_UPDATED"), "NOT_UPDATED"); + + zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("NOT_VALID"), "NOT_VALID"); + + zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("PROCESSING"), "PROCESSING"); + + zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("SUCCESS"), "SUCCESS"); + + zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("UPDATED"), "UPDATED"); + + zephir_declare_class_constant_string(phalcon_domain_payload_status_ce, SL("VALID"), "VALID"); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Domain_Payload_Status, __construct) +{ + zval *this_ptr = getThis(); + + + +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Domain_Payload_WriteableInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Domain\\Payload, WriteableInterface, phalcon, domain_payload_writeableinterface, phalcon_domain_payload_writeableinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_WriteableInterface, setException); +ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_WriteableInterface, setExtras); +ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_WriteableInterface, setInput); +ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_WriteableInterface, setMessages); +ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_WriteableInterface, setOutput); +ZEPHIR_DOC_METHOD(Phalcon_Domain_Payload_WriteableInterface, setStatus); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Helper_Arr) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Helper, Arr, phalcon, helper_arr, phalcon_helper_arr_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Helper_Arr, blackList) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *collection_param = NULL, *blackList_param = NULL, _0, _1, _2; + zval collection, blackList; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&blackList); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ARRAY(collection) + Z_PARAM_ARRAY(blackList) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &collection_param, &blackList_param); + ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); + ZEPHIR_OBS_COPY_OR_DUP(&blackList, blackList_param); + + + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_INIT_NVAR(&_0); + zephir_create_closure_ex(&_0, NULL, phalcon_6__closure_ce, SL("__invoke")); + ZEPHIR_CALL_FUNCTION(&_1, "array_filter", NULL, 248, &blackList, &_0); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&blackList, &_1); + ZEPHIR_CALL_FUNCTION(&_2, "array_flip", NULL, 174, &blackList); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_FUNCTION("array_diff_key", NULL, 249, &collection, &_2); + zephir_check_call_status(); + RETURN_MM(); } -static int vv_pop_parser_stack(vvParser *pParser){ - VVCODETYPE vvmajor; - vvStackEntry *vvtos = &pParser->vvstack[pParser->vvidx]; +static PHP_METHOD(Phalcon_Helper_Arr, chunk) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_bool preserveKeys; + zend_long size, ZEPHIR_LAST_CALL_STATUS; + zval *collection_param = NULL, *size_param = NULL, *preserveKeys_param = NULL, _0, _1; + zval collection; + zval *this_ptr = getThis(); - if( pParser->vvidx<0 ) return 0; -#ifndef NDEBUG - if( vvTraceFILE && pParser->vvidx>=0 ){ - fprintf(vvTraceFILE,"%sPopping %s\n", - vvTracePrompt, - vvTokenName[vvtos->major]); - } + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_ARRAY(collection) + Z_PARAM_LONG(size) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(preserveKeys) + ZEND_PARSE_PARAMETERS_END(); #endif - vvmajor = vvtos->major; - vv_destructor( vvmajor, &vvtos->minor); - pParser->vvidx--; - return vvmajor; -} -static void phvolt_Free( - void *p, /* The parser to be deleted */ - void (*freeProc)(void*) /* Function used to reclaim memory */ -){ - vvParser *pParser = (vvParser*)p; - if( pParser==0 ) return; - while( pParser->vvidx>=0 ) vv_pop_parser_stack(pParser); - (*freeProc)((void*)pParser); + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &collection_param, &size_param, &preserveKeys_param); + ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); + size = zephir_get_intval(size_param); + if (!preserveKeys_param) { + preserveKeys = 0; + } else { + preserveKeys = zephir_get_boolval(preserveKeys_param); + } + + + ZVAL_LONG(&_0, size); + ZVAL_BOOL(&_1, (preserveKeys ? 1 : 0)); + ZEPHIR_RETURN_CALL_FUNCTION("array_chunk", NULL, 250, &collection, &_0, &_1); + zephir_check_call_status(); + RETURN_MM(); } -static int vv_find_shift_action( - vvParser *pParser, /* The parser */ - int iLookAhead /* The look-ahead token */ -){ - int i; - int stateno = pParser->vvstack[pParser->vvidx].stateno; +static PHP_METHOD(Phalcon_Helper_Arr, filter) +{ + zend_bool _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *collection_param = NULL, *method = NULL, method_sub, __$null; + zval collection; + zval *this_ptr = getThis(); - /* if( pParser->vvidx<0 ) return VV_NO_ACTION; */ - i = vv_shift_ofst[stateno]; - if( i==VV_SHIFT_USE_DFLT ){ - return vv_default[stateno]; - } - if( iLookAhead==VVNOCODE ){ - return VV_NO_ACTION; - } - i += iLookAhead; - if( i<0 || i>=VV_SZ_ACTTAB || vv_lookahead[i]!=iLookAhead ){ -#ifdef VVFALLBACK - int iFallback; /* Fallback token */ - if( iLookAhead %s\n", - vvTracePrompt, vvTokenName[iLookAhead], vvTokenName[iFallback]); - } -#endif - return vv_find_shift_action(pParser, iFallback); - } + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&method_sub); + ZVAL_NULL(&__$null); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(collection) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(method) + ZEND_PARSE_PARAMETERS_END(); #endif - return vv_default[stateno]; - }else{ - return vv_action[i]; - } -} -static int vv_find_reduce_action( - vvParser *pParser, /* The parser */ - int iLookAhead /* The look-ahead token */ -){ - int i; - int stateno = pParser->vvstack[pParser->vvidx].stateno; - i = vv_reduce_ofst[stateno]; - if( i==VV_REDUCE_USE_DFLT ){ - return vv_default[stateno]; - } - if( iLookAhead==VVNOCODE ){ - return VV_NO_ACTION; - } - i += iLookAhead; - if( i<0 || i>=VV_SZ_ACTTAB || vv_lookahead[i]!=iLookAhead ){ - return vv_default[stateno]; - }else{ - return vv_action[i]; - } + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &collection_param, &method); + zephir_get_arrval(&collection, collection_param); + if (!method) { + method = &method_sub; + method = &__$null; + } + + + _0 = Z_TYPE_P(method) == IS_NULL; + if (!(_0)) { + _0 = !(zephir_is_callable(method)); + } + if (_0) { + RETURN_CTOR(&collection); + } + ZEPHIR_RETURN_CALL_FUNCTION("array_filter", NULL, 248, &collection, method); + zephir_check_call_status(); + RETURN_MM(); } -static void vv_shift( - vvParser *vvpParser, /* The parser to be shifted */ - int vvNewState, /* The new state to shift in */ - int vvMajor, /* The major token to shift in */ - VVMINORTYPE *vvpMinor /* Pointer ot the minor token to shift in */ -){ - vvStackEntry *vvtos; - vvpParser->vvidx++; - if( vvpParser->vvidx>=VVSTACKDEPTH ){ - phvolt_ARG_FETCH; - vvpParser->vvidx--; -#ifndef NDEBUG - if( vvTraceFILE ){ - fprintf(vvTraceFILE,"%sStack Overflow!\n",vvTracePrompt); - } -#endif - while( vvpParser->vvidx>=0 ) vv_pop_parser_stack(vvpParser); - /* Here code is inserted which will execute if the parser - ** stack every overflows */ - phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument var */ - return; - } - vvtos = &vvpParser->vvstack[vvpParser->vvidx]; - vvtos->stateno = vvNewState; - vvtos->major = vvMajor; - vvtos->minor = *vvpMinor; -#ifndef NDEBUG - if( vvTraceFILE && vvpParser->vvidx>0 ){ - int i; - fprintf(vvTraceFILE,"%sShift %d\n",vvTracePrompt,vvNewState); - fprintf(vvTraceFILE,"%sStack:",vvTracePrompt); - for(i=1; i<=vvpParser->vvidx; i++) - fprintf(vvTraceFILE," %s",vvTokenName[vvpParser->vvstack[i].major]); - fprintf(vvTraceFILE,"\n"); - } +static PHP_METHOD(Phalcon_Helper_Arr, first) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *collection_param = NULL, *method = NULL, method_sub, __$null, filtered; + zval collection; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&method_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&filtered); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(collection) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(method) + ZEND_PARSE_PARAMETERS_END(); #endif -} -/* The following table contains information about every rule that -** is used during the reduce. -*/ -static struct { - VVCODETYPE lhs; /* Symbol on the left-hand side of the rule */ - unsigned char nrhs; /* Number of right-hand side symbols in the rule */ -} vvRuleInfo[] = { - { 90, 1 }, - { 91, 1 }, - { 92, 2 }, - { 92, 1 }, - { 93, 1 }, - { 93, 1 }, - { 93, 1 }, - { 93, 1 }, - { 93, 1 }, - { 93, 1 }, - { 93, 1 }, - { 93, 1 }, - { 93, 1 }, - { 93, 1 }, - { 93, 1 }, - { 93, 1 }, - { 93, 1 }, - { 93, 1 }, - { 93, 1 }, - { 93, 1 }, - { 93, 1 }, - { 93, 1 }, - { 93, 1 }, - { 93, 1 }, - { 93, 1 }, - { 93, 1 }, - { 95, 8 }, - { 95, 7 }, - { 95, 12 }, - { 95, 11 }, - { 95, 10 }, - { 96, 4 }, - { 97, 3 }, - { 98, 10 }, - { 98, 12 }, - { 98, 12 }, - { 98, 14 }, - { 99, 8 }, - { 99, 7 }, - { 100, 4 }, - { 100, 3 }, - { 101, 4 }, - { 117, 3 }, - { 117, 1 }, - { 118, 3 }, - { 118, 3 }, - { 118, 3 }, - { 118, 3 }, - { 118, 3 }, - { 119, 1 }, - { 119, 4 }, - { 119, 3 }, - { 113, 10 }, - { 113, 11 }, - { 120, 3 }, - { 120, 1 }, - { 121, 1 }, - { 121, 3 }, - { 122, 1 }, - { 122, 1 }, - { 122, 1 }, - { 122, 1 }, - { 122, 1 }, - { 122, 1 }, - { 115, 11 }, - { 115, 9 }, - { 114, 2 }, - { 102, 3 }, - { 103, 8 }, - { 103, 7 }, - { 104, 8 }, - { 104, 9 }, - { 124, 1 }, - { 124, 1 }, - { 110, 7 }, - { 105, 4 }, - { 106, 4 }, - { 106, 6 }, - { 107, 4 }, - { 108, 4 }, - { 109, 8 }, - { 109, 8 }, - { 111, 3 }, - { 112, 3 }, - { 94, 1 }, - { 116, 2 }, - { 116, 2 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 4 }, - { 116, 3 }, - { 116, 4 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 3 }, - { 116, 4 }, - { 116, 2 }, - { 116, 2 }, - { 116, 2 }, - { 116, 3 }, - { 116, 2 }, - { 116, 3 }, - { 116, 2 }, - { 116, 3 }, - { 116, 4 }, - { 116, 5 }, - { 116, 5 }, - { 116, 5 }, - { 116, 6 }, - { 126, 1 }, - { 126, 1 }, - { 125, 3 }, - { 125, 1 }, - { 127, 3 }, - { 127, 1 }, - { 116, 1 }, - { 128, 4 }, - { 128, 3 }, - { 123, 3 }, - { 123, 1 }, - { 129, 1 }, - { 129, 3 }, - { 116, 1 }, - { 116, 1 }, - { 116, 1 }, - { 116, 1 }, - { 116, 1 }, - { 116, 1 }, - { 116, 1 }, -}; -static void vv_accept(vvParser*); /* Forward Declaration */ + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &collection_param, &method); + ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); + if (!method) { + method = &method_sub; + method = &__$null; + } -static void vv_reduce( - vvParser *vvpParser, /* The parser */ - int vvruleno /* Number of the rule by which to reduce */ -){ - int vvgoto; /* The next state */ - int vvact; /* The next action */ - VVMINORTYPE vvgotominor; /* The LHS of the rule reduced */ - vvStackEntry *vvmsp; /* The top of the parser's stack */ - int vvsize; /* Amount to pop the stack */ - phvolt_ARG_FETCH; - vvmsp = &vvpParser->vvstack[vvpParser->vvidx]; -#ifndef NDEBUG - if( vvTraceFILE && vvruleno>=0 - && vvruleno - ** { ... } // User supplied code - ** // - ** break; - */ - case 0: -// 167 "parser.php.lemon" -{ - ZVAL_ZVAL(&status->ret, &vvmsp[0].minor.vv186, 1, 1); -} -// 1661 "parser.php.c" - break; - case 1: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 20: - case 21: - case 22: - case 23: - case 24: - case 25: - case 144: -// 177 "parser.php.lemon" -{ - vvgotominor.vv186 = vvmsp[0].minor.vv186; + ZEPHIR_CALL_SELF(&filtered, "filter", &_0, 251, &collection, method); + zephir_check_call_status(); + ZEPHIR_MAKE_REF(&filtered); + ZEPHIR_RETURN_CALL_FUNCTION("reset", NULL, 252, &filtered); + ZEPHIR_UNREF(&filtered); + zephir_check_call_status(); + RETURN_MM(); } -// 1691 "parser.php.c" - break; - case 2: -// 181 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Arr, firstKey) { - phvolt_ret_zval_list(&vvgotominor.vv186, &vvmsp[-1].minor.vv186, &vvmsp[0].minor.vv186); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *collection_param = NULL, *method = NULL, method_sub, __$null, filtered; + zval collection; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&method_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&filtered); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(collection) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(method) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &collection_param, &method); + ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); + if (!method) { + method = &method_sub; + method = &__$null; + } + + + ZEPHIR_CALL_SELF(&filtered, "filter", &_0, 251, &collection, method); + zephir_check_call_status(); + ZEPHIR_MAKE_REF(&filtered); + ZEPHIR_CALL_FUNCTION(NULL, "reset", NULL, 252, &filtered); + ZEPHIR_UNREF(&filtered); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_FUNCTION("key", NULL, 253, &filtered); + zephir_check_call_status(); + RETURN_MM(); } -// 1698 "parser.php.c" - break; - case 3: - case 43: - case 55: - case 141: - case 148: -// 185 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Arr, flatten) { - phvolt_ret_zval_list(&vvgotominor.vv186, NULL, &vvmsp[0].minor.vv186); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_4 = NULL, *_8 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool deep; + zval *collection_param = NULL, *deep_param = NULL, data, item, *_0, _1, _2$$6, _3$$6, _5$$6, _6$$7, _7$$7, _9$$11, _10$$11, _11$$11, _12$$12, _13$$12; + zval collection; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&item); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$6); + ZVAL_UNDEF(&_3$$6); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&_6$$7); + ZVAL_UNDEF(&_7$$7); + ZVAL_UNDEF(&_9$$11); + ZVAL_UNDEF(&_10$$11); + ZVAL_UNDEF(&_11$$11); + ZVAL_UNDEF(&_12$$12); + ZVAL_UNDEF(&_13$$12); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(collection) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(deep) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &collection_param, &deep_param); + ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); + if (!deep_param) { + deep = 0; + } else { + deep = zephir_get_boolval(deep_param); + } + + + ZEPHIR_INIT_VAR(&data); + array_init(&data); + zephir_is_iterable(&collection, 0, "phalcon/Helper/Arr.zep", 148); + if (Z_TYPE_P(&collection) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&collection), _0) + { + ZEPHIR_INIT_NVAR(&item); + ZVAL_COPY(&item, _0); + if (Z_TYPE_P(&item) != IS_ARRAY) { + zephir_array_append(&data, &item, PH_SEPARATE, "phalcon/Helper/Arr.zep", 132); + } else { + if (deep) { + ZEPHIR_INIT_NVAR(&_2$$6); + ZVAL_BOOL(&_5$$6, 1); + ZEPHIR_CALL_SELF(&_3$$6, "flatten", &_4, 254, &item, &_5$$6); + zephir_check_call_status(); + zephir_fast_array_merge(&_2$$6, &data, &_3$$6); + ZEPHIR_CPY_WRT(&data, &_2$$6); + } else { + ZEPHIR_INIT_NVAR(&_6$$7); + ZEPHIR_CALL_FUNCTION(&_7$$7, "array_values", &_8, 12, &item); + zephir_check_call_status(); + zephir_fast_array_merge(&_6$$7, &data, &_7$$7); + ZEPHIR_CPY_WRT(&data, &_6$$7); + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &collection, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &collection, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&item, &collection, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&item) != IS_ARRAY) { + zephir_array_append(&data, &item, PH_SEPARATE, "phalcon/Helper/Arr.zep", 132); + } else { + if (deep) { + ZEPHIR_INIT_NVAR(&_9$$11); + ZVAL_BOOL(&_11$$11, 1); + ZEPHIR_CALL_SELF(&_10$$11, "flatten", &_4, 254, &item, &_11$$11); + zephir_check_call_status(); + zephir_fast_array_merge(&_9$$11, &data, &_10$$11); + ZEPHIR_CPY_WRT(&data, &_9$$11); + } else { + ZEPHIR_INIT_NVAR(&_12$$12); + ZEPHIR_CALL_FUNCTION(&_13$$12, "array_values", &_8, 12, &item); + zephir_check_call_status(); + zephir_fast_array_merge(&_12$$12, &data, &_13$$12); + ZEPHIR_CPY_WRT(&data, &_12$$12); + } + } + ZEPHIR_CALL_METHOD(NULL, &collection, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&item); + RETURN_CCTOR(&data); } -// 1709 "parser.php.c" - break; - case 26: -// 278 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Arr, get) { - phvolt_ret_if_statement(&vvgotominor.vv186, &vvmsp[-5].minor.vv186, &vvmsp[-3].minor.vv186, NULL, status->scanner_state); - vv_destructor(1,&vvmsp[-7].minor); - vv_destructor(31,&vvmsp[-6].minor); - vv_destructor(32,&vvmsp[-4].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(33,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval cast; + zval *collection_param = NULL, *index, index_sub, *defaultValue = NULL, defaultValue_sub, *cast_param = NULL, __$null, value; + zval collection; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&index_sub); + ZVAL_UNDEF(&defaultValue_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&cast); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 4) + Z_PARAM_ARRAY(collection) + Z_PARAM_ZVAL(index) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(defaultValue) + Z_PARAM_STR_OR_NULL(cast) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 2, &collection_param, &index, &defaultValue, &cast_param); + ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); + if (!defaultValue) { + defaultValue = &defaultValue_sub; + defaultValue = &__$null; + } + if (!cast_param) { + ZEPHIR_INIT_VAR(&cast); + } else { + if (UNEXPECTED(Z_TYPE_P(cast_param) != IS_STRING && Z_TYPE_P(cast_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'cast' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(cast_param) == IS_STRING)) { + zephir_get_strval(&cast, cast_param); + } else { + ZEPHIR_INIT_VAR(&cast); + } + } + + + ZEPHIR_OBS_VAR(&value); + if (UNEXPECTED(!(zephir_array_isset_fetch(&value, &collection, index, 0)))) { + RETVAL_ZVAL(defaultValue, 1, 0); + RETURN_MM(); + } + if (UNEXPECTED(zephir_is_true(&cast))) { + ZEPHIR_MAKE_REF(&value); + ZEPHIR_CALL_FUNCTION(NULL, "settype", NULL, 10, &value, &cast); + ZEPHIR_UNREF(&value); + zephir_check_call_status(); + } + RETURN_CCTOR(&value); } -// 1722 "parser.php.c" - break; - case 27: -// 283 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Arr, group) { - phvolt_ret_if_statement(&vvgotominor.vv186, &vvmsp[-4].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(1,&vvmsp[-6].minor); - vv_destructor(31,&vvmsp[-5].minor); - vv_destructor(32,&vvmsp[-3].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(33,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zend_bool _2$$3, _3$$3, _5$$7, _6$$7; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_4 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *collection_param = NULL, *method, method_sub, element, key, *_0, _1; + zval collection, filtered; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&filtered); + ZVAL_UNDEF(&method_sub); + ZVAL_UNDEF(&element); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ARRAY(collection) + Z_PARAM_ZVAL(method) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &collection_param, &method); + ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); + + + ZEPHIR_INIT_VAR(&filtered); + array_init(&filtered); + zephir_is_iterable(&collection, 0, "phalcon/Helper/Arr.zep", 201); + if (Z_TYPE_P(&collection) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&collection), _0) + { + ZEPHIR_INIT_NVAR(&element); + ZVAL_COPY(&element, _0); + _2$$3 = Z_TYPE_P(method) != IS_STRING; + if (_2$$3) { + _2$$3 = zephir_is_callable(method); + } + _3$$3 = _2$$3; + if (!(_3$$3)) { + _3$$3 = (zephir_function_exists(method) == SUCCESS); + } + if (_3$$3) { + ZEPHIR_CALL_FUNCTION(&key, "call_user_func", &_4, 255, method, &element); + zephir_check_call_status(); + zephir_array_update_multi(&filtered, &element, SL("za"), 2, &key); + } else if (Z_TYPE_P(&element) == IS_OBJECT) { + ZEPHIR_OBS_NVAR(&key); + zephir_read_property_zval(&key, &element, method, PH_NOISY_CC); + zephir_array_update_multi(&filtered, &element, SL("za"), 2, &key); + } else if (zephir_array_isset(&element, method)) { + ZEPHIR_OBS_NVAR(&key); + zephir_array_fetch(&key, &element, method, PH_NOISY, "phalcon/Helper/Arr.zep", 196); + zephir_array_update_multi(&filtered, &element, SL("za"), 2, &key); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &collection, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &collection, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&element, &collection, "current", NULL, 0); + zephir_check_call_status(); + _5$$7 = Z_TYPE_P(method) != IS_STRING; + if (_5$$7) { + _5$$7 = zephir_is_callable(method); + } + _6$$7 = _5$$7; + if (!(_6$$7)) { + _6$$7 = (zephir_function_exists(method) == SUCCESS); + } + if (_6$$7) { + ZEPHIR_CALL_FUNCTION(&key, "call_user_func", &_4, 255, method, &element); + zephir_check_call_status(); + zephir_array_update_multi(&filtered, &element, SL("za"), 2, &key); + } else if (Z_TYPE_P(&element) == IS_OBJECT) { + ZEPHIR_OBS_NVAR(&key); + zephir_read_property_zval(&key, &element, method, PH_NOISY_CC); + zephir_array_update_multi(&filtered, &element, SL("za"), 2, &key); + } else if (zephir_array_isset(&element, method)) { + ZEPHIR_OBS_NVAR(&key); + zephir_array_fetch(&key, &element, method, PH_NOISY, "phalcon/Helper/Arr.zep", 196); + zephir_array_update_multi(&filtered, &element, SL("za"), 2, &key); + } + ZEPHIR_CALL_METHOD(NULL, &collection, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&element); + RETURN_CTOR(&filtered); } -// 1735 "parser.php.c" - break; - case 28: -// 288 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Arr, has) { - phvolt_ret_if_statement(&vvgotominor.vv186, &vvmsp[-9].minor.vv186, &vvmsp[-7].minor.vv186, &vvmsp[-3].minor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-11].minor); - vv_destructor(31,&vvmsp[-10].minor); - vv_destructor(32,&vvmsp[-8].minor); - vv_destructor(1,&vvmsp[-6].minor); - vv_destructor(34,&vvmsp[-5].minor); - vv_destructor(32,&vvmsp[-4].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(33,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *collection_param = NULL, *index, index_sub; + zval collection; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&index_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ARRAY(collection) + Z_PARAM_ZVAL(index) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &collection_param, &index); + ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); + + + RETURN_MM_BOOL(zephir_array_isset(&collection, index)); } -// 1751 "parser.php.c" - break; - case 29: -// 293 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Arr, isUnique) { - phvolt_ret_if_statement(&vvgotominor.vv186, &vvmsp[-8].minor.vv186, &vvmsp[-6].minor.vv186, NULL, status->scanner_state); - vv_destructor(1,&vvmsp[-10].minor); - vv_destructor(31,&vvmsp[-9].minor); - vv_destructor(32,&vvmsp[-7].minor); - vv_destructor(1,&vvmsp[-5].minor); - vv_destructor(34,&vvmsp[-4].minor); - vv_destructor(32,&vvmsp[-3].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(33,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *collection_param = NULL, _0; + zval collection; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(collection) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &collection_param); + ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); + + + ZEPHIR_CALL_FUNCTION(&_0, "array_unique", NULL, 256, &collection); + zephir_check_call_status(); + RETURN_MM_BOOL(zephir_fast_count_int(&collection) == zephir_fast_count_int(&_0)); } -// 1767 "parser.php.c" - break; - case 30: -// 298 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Arr, last) { - phvolt_ret_if_statement(&vvgotominor.vv186, &vvmsp[-7].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(1,&vvmsp[-9].minor); - vv_destructor(31,&vvmsp[-8].minor); - vv_destructor(32,&vvmsp[-6].minor); - vv_destructor(1,&vvmsp[-5].minor); - vv_destructor(34,&vvmsp[-4].minor); - vv_destructor(32,&vvmsp[-3].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(33,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *collection_param = NULL, *method = NULL, method_sub, __$null, filtered; + zval collection; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&method_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&filtered); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(collection) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(method) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &collection_param, &method); + ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); + if (!method) { + method = &method_sub; + method = &__$null; + } + + + ZEPHIR_CALL_SELF(&filtered, "filter", &_0, 251, &collection, method); + zephir_check_call_status(); + ZEPHIR_MAKE_REF(&filtered); + ZEPHIR_RETURN_CALL_FUNCTION("end", NULL, 257, &filtered); + ZEPHIR_UNREF(&filtered); + zephir_check_call_status(); + RETURN_MM(); } -// 1783 "parser.php.c" - break; - case 31: -// 302 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Arr, lastKey) { - phvolt_ret_elseif_statement(&vvgotominor.vv186, &vvmsp[-1].minor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-3].minor); - vv_destructor(35,&vvmsp[-2].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL; + zval *collection_param = NULL, *method = NULL, method_sub, __$null, filtered; + zval collection; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&method_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&filtered); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(collection) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(method) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &collection_param, &method); + ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); + if (!method) { + method = &method_sub; + method = &__$null; + } + + + ZEPHIR_CALL_SELF(&filtered, "filter", &_0, 251, &collection, method); + zephir_check_call_status(); + ZEPHIR_MAKE_REF(&filtered); + ZEPHIR_CALL_FUNCTION(NULL, "end", NULL, 257, &filtered); + ZEPHIR_UNREF(&filtered); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_FUNCTION("key", NULL, 253, &filtered); + zephir_check_call_status(); + RETURN_MM(); } -// 1793 "parser.php.c" - break; - case 32: -// 306 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Arr, order) { - phvolt_ret_elsefor_statement(&vvgotominor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(36,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval order; + zval *collection_param = NULL, *attribute, attribute_sub, *order_param = NULL, item, key, *_0, _1; + zval collection, sorted; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&sorted); + ZVAL_UNDEF(&attribute_sub); + ZVAL_UNDEF(&item); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&order); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_ARRAY(collection) + Z_PARAM_ZVAL(attribute) + Z_PARAM_OPTIONAL + Z_PARAM_STR(order) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &collection_param, &attribute, &order_param); + ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); + if (!order_param) { + ZEPHIR_INIT_VAR(&order); + ZVAL_STRING(&order, "asc"); + } else { + zephir_get_strval(&order, order_param); + } + + + ZEPHIR_INIT_VAR(&sorted); + array_init(&sorted); + zephir_is_iterable(&collection, 0, "phalcon/Helper/Arr.zep", 297); + if (Z_TYPE_P(&collection) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&collection), _0) + { + ZEPHIR_INIT_NVAR(&item); + ZVAL_COPY(&item, _0); + if (Z_TYPE_P(&item) == IS_OBJECT) { + ZEPHIR_OBS_NVAR(&key); + zephir_read_property_zval(&key, &item, attribute, PH_NOISY_CC); + } else { + ZEPHIR_OBS_NVAR(&key); + zephir_array_fetch(&key, &item, attribute, PH_NOISY, "phalcon/Helper/Arr.zep", 291); + } + zephir_array_update_zval(&sorted, &key, &item, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &collection, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &collection, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&item, &collection, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&item) == IS_OBJECT) { + ZEPHIR_OBS_NVAR(&key); + zephir_read_property_zval(&key, &item, attribute, PH_NOISY_CC); + } else { + ZEPHIR_OBS_NVAR(&key); + zephir_array_fetch(&key, &item, attribute, PH_NOISY, "phalcon/Helper/Arr.zep", 291); + } + zephir_array_update_zval(&sorted, &key, &item, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &collection, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&item); + if (ZEPHIR_IS_STRING_IDENTICAL(&order, "asc")) { + ZEPHIR_MAKE_REF(&sorted); + ZEPHIR_CALL_FUNCTION(NULL, "ksort", NULL, 258, &sorted); + ZEPHIR_UNREF(&sorted); + zephir_check_call_status(); + } else { + ZEPHIR_MAKE_REF(&sorted); + ZEPHIR_CALL_FUNCTION(NULL, "krsort", NULL, 259, &sorted); + ZEPHIR_UNREF(&sorted); + zephir_check_call_status(); + } + ZEPHIR_RETURN_CALL_FUNCTION("array_values", NULL, 12, &sorted); + zephir_check_call_status(); + RETURN_MM(); } -// 1803 "parser.php.c" - break; - case 33: -// 310 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Arr, pluck) { - phvolt_ret_for_statement(&vvgotominor.vv186, vvmsp[-7].minor.vv0, NULL, &vvmsp[-5].minor.vv186, NULL, &vvmsp[-3].minor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-9].minor); - vv_destructor(37,&vvmsp[-8].minor); - vv_destructor(8,&vvmsp[-6].minor); - vv_destructor(32,&vvmsp[-4].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(39,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zend_bool _2$$3, _3$$3, _6$$6, _7$$6; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval element; + zval *collection_param = NULL, *element_param = NULL, item, *_0, _1, _4$$4, _5$$5, _8$$7, _9$$8; + zval collection, filtered; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&filtered); + ZVAL_UNDEF(&item); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_8$$7); + ZVAL_UNDEF(&_9$$8); + ZVAL_UNDEF(&element); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ARRAY(collection) + Z_PARAM_STR(element) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &collection_param, &element_param); + ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); + zephir_get_strval(&element, element_param); + + + ZEPHIR_INIT_VAR(&filtered); + array_init(&filtered); + zephir_is_iterable(&collection, 0, "phalcon/Helper/Arr.zep", 329); + if (Z_TYPE_P(&collection) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&collection), _0) + { + ZEPHIR_INIT_NVAR(&item); + ZVAL_COPY(&item, _0); + _2$$3 = Z_TYPE_P(&item) == IS_OBJECT; + if (_2$$3) { + _2$$3 = zephir_isset_property_zval(&item, &element); + } + _3$$3 = Z_TYPE_P(&item) == IS_ARRAY; + if (_3$$3) { + _3$$3 = zephir_array_isset(&item, &element); + } + if (_2$$3) { + ZEPHIR_OBS_NVAR(&_4$$4); + zephir_read_property_zval(&_4$$4, &item, &element, PH_NOISY_CC); + zephir_array_append(&filtered, &_4$$4, PH_SEPARATE, "phalcon/Helper/Arr.zep", 323); + } else if (_3$$3) { + zephir_array_fetch(&_5$$5, &item, &element, PH_NOISY | PH_READONLY, "phalcon/Helper/Arr.zep", 325); + zephir_array_append(&filtered, &_5$$5, PH_SEPARATE, "phalcon/Helper/Arr.zep", 325); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &collection, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &collection, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&item, &collection, "current", NULL, 0); + zephir_check_call_status(); + _6$$6 = Z_TYPE_P(&item) == IS_OBJECT; + if (_6$$6) { + _6$$6 = zephir_isset_property_zval(&item, &element); + } + _7$$6 = Z_TYPE_P(&item) == IS_ARRAY; + if (_7$$6) { + _7$$6 = zephir_array_isset(&item, &element); + } + if (_6$$6) { + ZEPHIR_OBS_NVAR(&_8$$7); + zephir_read_property_zval(&_8$$7, &item, &element, PH_NOISY_CC); + zephir_array_append(&filtered, &_8$$7, PH_SEPARATE, "phalcon/Helper/Arr.zep", 323); + } else if (_7$$6) { + zephir_array_fetch(&_9$$8, &item, &element, PH_NOISY | PH_READONLY, "phalcon/Helper/Arr.zep", 325); + zephir_array_append(&filtered, &_9$$8, PH_SEPARATE, "phalcon/Helper/Arr.zep", 325); + } + ZEPHIR_CALL_METHOD(NULL, &collection, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&item); + RETURN_CTOR(&filtered); } -// 1817 "parser.php.c" - break; - case 34: -// 314 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Arr, set) { - phvolt_ret_for_statement(&vvgotominor.vv186, vvmsp[-9].minor.vv0, NULL, &vvmsp[-7].minor.vv186, &vvmsp[-5].minor.vv186, &vvmsp[-3].minor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-11].minor); - vv_destructor(37,&vvmsp[-10].minor); - vv_destructor(8,&vvmsp[-8].minor); - vv_destructor(31,&vvmsp[-6].minor); - vv_destructor(32,&vvmsp[-4].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(39,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *collection_param = NULL, *value, value_sub, *index = NULL, index_sub, __$null; + zval collection; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&index_sub); + ZVAL_NULL(&__$null); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_ARRAY(collection) + Z_PARAM_ZVAL(value) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(index) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &collection_param, &value, &index); + ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); + if (!index) { + index = &index_sub; + index = &__$null; + } + + + if (Z_TYPE_P(index) == IS_NULL) { + zephir_array_append(&collection, value, PH_SEPARATE, "phalcon/Helper/Arr.zep", 347); + } else { + zephir_array_update_zval(&collection, index, value, PH_COPY | PH_SEPARATE); + } + RETURN_CTOR(&collection); } -// 1832 "parser.php.c" - break; - case 35: -// 318 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Arr, sliceLeft) { - phvolt_ret_for_statement(&vvgotominor.vv186, vvmsp[-7].minor.vv0, vvmsp[-9].minor.vv0, &vvmsp[-5].minor.vv186, NULL, &vvmsp[-3].minor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-11].minor); - vv_destructor(37,&vvmsp[-10].minor); - vv_destructor(2,&vvmsp[-8].minor); - vv_destructor(8,&vvmsp[-6].minor); - vv_destructor(32,&vvmsp[-4].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(39,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long elements, ZEPHIR_LAST_CALL_STATUS; + zval *collection_param = NULL, *elements_param = NULL, _0, _1; + zval collection; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(collection) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(elements) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &collection_param, &elements_param); + ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); + if (!elements_param) { + elements = 1; + } else { + elements = zephir_get_intval(elements_param); + } + + + ZVAL_LONG(&_0, 0); + ZVAL_LONG(&_1, elements); + ZEPHIR_RETURN_CALL_FUNCTION("array_slice", NULL, 260, &collection, &_0, &_1); + zephir_check_call_status(); + RETURN_MM(); } -// 1847 "parser.php.c" - break; - case 36: -// 322 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Arr, sliceRight) { - phvolt_ret_for_statement(&vvgotominor.vv186, vvmsp[-9].minor.vv0, vvmsp[-11].minor.vv0, &vvmsp[-7].minor.vv186, &vvmsp[-5].minor.vv186, &vvmsp[-3].minor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-13].minor); - vv_destructor(37,&vvmsp[-12].minor); - vv_destructor(2,&vvmsp[-10].minor); - vv_destructor(8,&vvmsp[-8].minor); - vv_destructor(31,&vvmsp[-6].minor); - vv_destructor(32,&vvmsp[-4].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(39,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long elements, ZEPHIR_LAST_CALL_STATUS; + zval *collection_param = NULL, *elements_param = NULL, _0; + zval collection; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(collection) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(elements) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &collection_param, &elements_param); + ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); + if (!elements_param) { + elements = 1; + } else { + elements = zephir_get_intval(elements_param); + } + + + ZVAL_LONG(&_0, elements); + ZEPHIR_RETURN_CALL_FUNCTION("array_slice", NULL, 260, &collection, &_0); + zephir_check_call_status(); + RETURN_MM(); } -// 1863 "parser.php.c" - break; - case 37: -// 327 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Arr, split) { - phvolt_ret_switch_statement(&vvgotominor.vv186, &vvmsp[-5].minor.vv186, &vvmsp[-3].minor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-7].minor); - vv_destructor(40,&vvmsp[-6].minor); - vv_destructor(32,&vvmsp[-4].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(41,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *collection_param = NULL, _0, _1; + zval collection; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(collection) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &collection_param); + ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); + + + zephir_create_array(return_value, 2, 0); + ZEPHIR_INIT_VAR(&_0); + zephir_array_keys(&_0, &collection); + zephir_array_fast_append(return_value, &_0); + ZEPHIR_CALL_FUNCTION(&_1, "array_values", NULL, 12, &collection); + zephir_check_call_status(); + zephir_array_fast_append(return_value, &_1); + RETURN_MM(); } -// 1876 "parser.php.c" - break; - case 38: -// 332 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Arr, toObject) { - phvolt_ret_switch_statement(&vvgotominor.vv186, &vvmsp[-4].minor.vv186, NULL, status->scanner_state); - vv_destructor(1,&vvmsp[-6].minor); - vv_destructor(40,&vvmsp[-5].minor); - vv_destructor(32,&vvmsp[-3].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(41,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *collection_param = NULL; + zval collection; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&collection); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(collection) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &collection_param); + ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); + + + zephir_convert_to_object(&collection); + RETURN_CTOR(&collection); } -// 1889 "parser.php.c" - break; - case 39: -// 337 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Arr, validateAll) { - phvolt_ret_case_clause(&vvgotominor.vv186, &vvmsp[-1].minor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-3].minor); - vv_destructor(42,&vvmsp[-2].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_1 = NULL; + zval *collection_param = NULL, *method = NULL, method_sub, __$null, _0; + zval collection; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&method_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(collection) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(method) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &collection_param, &method); + ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); + if (!method) { + method = &method_sub; + method = &__$null; + } + + + ZEPHIR_CALL_SELF(&_0, "filter", &_1, 251, &collection, method); + zephir_check_call_status(); + RETURN_MM_BOOL(zephir_fast_count_int(&_0) == zephir_fast_count_int(&collection)); } -// 1899 "parser.php.c" - break; - case 40: -// 342 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Arr, validateAny) { - phvolt_ret_case_clause(&vvgotominor.vv186, NULL, status->scanner_state); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(43,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_1 = NULL; + zval *collection_param = NULL, *method = NULL, method_sub, __$null, _0; + zval collection; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&method_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(collection) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(method) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &collection_param, &method); + ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); + if (!method) { + method = &method_sub; + method = &__$null; + } + + + ZEPHIR_CALL_SELF(&_0, "filter", &_1, 251, &collection, method); + zephir_check_call_status(); + RETURN_MM_BOOL(zephir_fast_count_int(&_0) > 0); } -// 1909 "parser.php.c" - break; - case 41: -// 346 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Arr, whiteList) { - phvolt_ret_set_statement(&vvgotominor.vv186, &vvmsp[-1].minor.vv186); - vv_destructor(1,&vvmsp[-3].minor); - vv_destructor(44,&vvmsp[-2].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *collection_param = NULL, *whiteList_param = NULL, _0, _1, _2; + zval collection, whiteList; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&collection); + ZVAL_UNDEF(&whiteList); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ARRAY(collection) + Z_PARAM_ARRAY(whiteList) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &collection_param, &whiteList_param); + ZEPHIR_OBS_COPY_OR_DUP(&collection, collection_param); + ZEPHIR_OBS_COPY_OR_DUP(&whiteList, whiteList_param); + + + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_INIT_NVAR(&_0); + zephir_create_closure_ex(&_0, NULL, phalcon_7__closure_ce, SL("__invoke")); + ZEPHIR_CALL_FUNCTION(&_1, "array_filter", NULL, 248, &whiteList, &_0); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&whiteList, &_1); + ZEPHIR_CALL_FUNCTION(&_2, "array_flip", NULL, 174, &whiteList); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_FUNCTION("array_intersect_key", NULL, 2, &collection, &_2); + zephir_check_call_status(); + RETURN_MM(); } -// 1919 "parser.php.c" - break; - case 42: - case 54: - case 140: - case 147: -// 350 "parser.php.lemon" + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Helper_Base64) { - phvolt_ret_zval_list(&vvgotominor.vv186, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186); - vv_destructor(2,&vvmsp[-1].minor); + ZEPHIR_REGISTER_CLASS(Phalcon\\Helper, Base64, phalcon, helper_base64, phalcon_helper_base64_method_entry, 0); + + return SUCCESS; } -// 1930 "parser.php.c" - break; - case 44: -// 358 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Base64, encodeUrl) { - phvolt_ret_set_assignment(&vvgotominor.vv186, &vvmsp[-2].minor.vv186, PHVOLT_T_ASSIGN, &vvmsp[0].minor.vv186, status->scanner_state); - vv_destructor(45,&vvmsp[-1].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *input_param = NULL, _0, _1, _2, _3, _4; + zval input; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&input); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(input) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &input_param); + if (UNEXPECTED(Z_TYPE_P(input_param) != IS_STRING && Z_TYPE_P(input_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'input' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(input_param) == IS_STRING)) { + zephir_get_strval(&input, input_param); + } else { + ZEPHIR_INIT_VAR(&input); + } + + + ZEPHIR_CALL_FUNCTION(&_0, "base64_encode", NULL, 191, &input); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "+/"); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "-_"); + ZEPHIR_CALL_FUNCTION(&_3, "strtr", NULL, 5, &_0, &_1, &_2); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "="); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, ""); + ZEPHIR_INIT_VAR(&_4); + zephir_fast_str_replace(&_4, &_1, &_2, &_3); + RETURN_CCTOR(&_4); } -// 1938 "parser.php.c" - break; - case 45: -// 362 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Base64, decodeUrl) { - phvolt_ret_set_assignment(&vvgotominor.vv186, &vvmsp[-2].minor.vv186, PHVOLT_T_ADD_ASSIGN, &vvmsp[0].minor.vv186, status->scanner_state); - vv_destructor(46,&vvmsp[-1].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS, remainder = 0; + zval *input_param = NULL, data, _3, _4, _5, _0$$3, _1$$3, _2$$3; + zval input; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&input); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(input) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &input_param); + if (UNEXPECTED(Z_TYPE_P(input_param) != IS_STRING && Z_TYPE_P(input_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'input' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(input_param) == IS_STRING)) { + zephir_get_strval(&input, input_param); + } else { + ZEPHIR_INIT_VAR(&input); + } + + + remainder = (long) (zephir_safe_mod_long_long(zephir_fast_strlen_ev(&input), 4)); + if (remainder) { + ZEPHIR_INIT_VAR(&_0$$3); + ZVAL_STRING(&_0$$3, "="); + ZVAL_LONG(&_1$$3, (4 - remainder)); + ZEPHIR_CALL_FUNCTION(&_2$$3, "str_repeat", NULL, 1, &_0$$3, &_1$$3); + zephir_check_call_status(); + zephir_concat_self(&input, &_2$$3); + } + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "-_"); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "+/"); + ZEPHIR_CALL_FUNCTION(&_5, "strtr", NULL, 5, &input, &_3, &_4); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&data, "base64_decode", NULL, 188, &_5); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&data)) { + ZEPHIR_INIT_NVAR(&data); + ZVAL_STRING(&data, ""); + } + RETURN_CCTOR(&data); } -// 1946 "parser.php.c" - break; - case 46: -// 366 "parser.php.lemon" + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Helper_Exception) { - phvolt_ret_set_assignment(&vvgotominor.vv186, &vvmsp[-2].minor.vv186, PHVOLT_T_SUB_ASSIGN, &vvmsp[0].minor.vv186, status->scanner_state); - vv_destructor(47,&vvmsp[-1].minor); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Helper, Exception, phalcon, helper_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; } -// 1954 "parser.php.c" - break; - case 47: -// 370 "parser.php.lemon" + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Helper_Fs) { - phvolt_ret_set_assignment(&vvgotominor.vv186, &vvmsp[-2].minor.vv186, PHVOLT_T_MUL_ASSIGN, &vvmsp[0].minor.vv186, status->scanner_state); - vv_destructor(48,&vvmsp[-1].minor); + ZEPHIR_REGISTER_CLASS(Phalcon\\Helper, Fs, phalcon, helper_fs, phalcon_helper_fs_method_entry, 0); + + return SUCCESS; } -// 1962 "parser.php.c" - break; - case 48: -// 374 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Fs, basename) { - phvolt_ret_set_assignment(&vvgotominor.vv186, &vvmsp[-2].minor.vv186, PHVOLT_T_DIV_ASSIGN, &vvmsp[0].minor.vv186, status->scanner_state); - vv_destructor(49,&vvmsp[-1].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *uri_param = NULL, *suffix = NULL, suffix_sub, __$null, filename, matches, _0, _1, _2, _3, _4, _5, _6$$3, _7$$3, _8$$3, _9$$3; + zval uri; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&uri); + ZVAL_UNDEF(&suffix_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&filename); + ZVAL_UNDEF(&matches); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_8$$3); + ZVAL_UNDEF(&_9$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(uri) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(suffix) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &uri_param, &suffix); + if (UNEXPECTED(Z_TYPE_P(uri_param) != IS_STRING && Z_TYPE_P(uri_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'uri' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(uri_param) == IS_STRING)) { + zephir_get_strval(&uri, uri_param); + } else { + ZEPHIR_INIT_VAR(&uri); + } + if (!suffix) { + suffix = &suffix_sub; + suffix = &__$null; + } + + + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "/"); + zephir_fast_trim(&_0, &uri, &_1, ZEPHIR_TRIM_RIGHT); + zephir_get_strval(&uri, &_0); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "/"); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "@"); + ZEPHIR_CALL_FUNCTION(&_4, "preg_quote", NULL, 261, &_2, &_3); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_5); + ZEPHIR_CONCAT_SVS(&_5, "@[^", &_4, "]+$@"); + ZEPHIR_INIT_NVAR(&_2); + zephir_preg_match(&_2, &_5, &uri, &matches, 0, 0 , 0 ); + if (zephir_is_true(&_2)) { + ZEPHIR_OBS_VAR(&filename); + zephir_array_fetch_long(&filename, &matches, 0, PH_NOISY, "phalcon/Helper/Fs.zep", 37); + } else { + ZEPHIR_INIT_NVAR(&filename); + ZVAL_STRING(&filename, ""); + } + if (zephir_is_true(suffix)) { + ZEPHIR_INIT_VAR(&_6$$3); + ZVAL_STRING(&_6$$3, "@"); + ZEPHIR_CALL_FUNCTION(&_7$$3, "preg_quote", NULL, 261, suffix, &_6$$3); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_8$$3); + ZEPHIR_CONCAT_SVS(&_8$$3, "@", &_7$$3, "$@"); + ZEPHIR_INIT_NVAR(&_6$$3); + ZVAL_STRING(&_6$$3, ""); + ZEPHIR_CALL_FUNCTION(&_9$$3, "preg_replace", NULL, 50, &_8$$3, &_6$$3, &filename); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&filename, &_9$$3); + } + RETURN_CCTOR(&filename); } -// 1970 "parser.php.c" - break; - case 49: - case 73: - case 139: - case 151: -// 378 "parser.php.lemon" + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Helper_Json) { - phvolt_ret_literal_zval(&vvgotominor.vv186, PHVOLT_T_IDENTIFIER, vvmsp[0].minor.vv0, status->scanner_state); + ZEPHIR_REGISTER_CLASS(Phalcon\\Helper, Json, phalcon, helper_json, phalcon_helper_json_method_entry, 0); + + return SUCCESS; } -// 1980 "parser.php.c" - break; - case 50: - case 133: -// 382 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Json, decode) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ARRAYACCESS, &vvmsp[-3].minor.vv186, &vvmsp[-1].minor.vv186, NULL, status->scanner_state); - vv_destructor(24,&vvmsp[-2].minor); - vv_destructor(50,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long depth, options, ZEPHIR_LAST_CALL_STATUS; + zend_bool associative; + zval *data_param = NULL, *associative_param = NULL, *depth_param = NULL, *options_param = NULL, decoded, _0, _1, _2, _3, _4$$3, _5$$3, _6$$3; + zval data; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&decoded); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 4) + Z_PARAM_STR(data) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(associative) + Z_PARAM_LONG(depth) + Z_PARAM_LONG(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 3, &data_param, &associative_param, &depth_param, &options_param); + if (UNEXPECTED(Z_TYPE_P(data_param) != IS_STRING && Z_TYPE_P(data_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'data' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(data_param) == IS_STRING)) { + zephir_get_strval(&data, data_param); + } else { + ZEPHIR_INIT_VAR(&data); + } + if (!associative_param) { + associative = 0; + } else { + associative = zephir_get_boolval(associative_param); + } + if (!depth_param) { + depth = 512; + } else { + depth = zephir_get_intval(depth_param); + } + if (!options_param) { + options = 0; + } else { + options = zephir_get_intval(options_param); + } + + + ZVAL_BOOL(&_0, (associative ? 1 : 0)); + ZVAL_LONG(&_1, depth); + ZVAL_LONG(&_2, options); + ZEPHIR_INIT_VAR(&decoded); + zephir_json_decode(&decoded, &data, zephir_get_intval(&_0) ); + ZEPHIR_CALL_FUNCTION(&_3, "json_last_error", NULL, 262); + zephir_check_call_status(); + if (UNEXPECTED(!ZEPHIR_IS_LONG_IDENTICAL(&_3, 0))) { + ZEPHIR_INIT_VAR(&_4$$3); + object_init_ex(&_4$$3, spl_ce_InvalidArgumentException); + ZEPHIR_CALL_FUNCTION(&_5$$3, "json_last_error_msg", NULL, 263); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_6$$3); + ZEPHIR_CONCAT_SV(&_6$$3, "json_decode error: ", &_5$$3); + ZEPHIR_CALL_METHOD(NULL, &_4$$3, "__construct", NULL, 40, &_6$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_4$$3, "phalcon/Helper/Json.zep", 60); + ZEPHIR_MM_RESTORE(); + return; + } + RETURN_CCTOR(&decoded); } -// 1990 "parser.php.c" - break; - case 51: - case 122: -// 386 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Json, encode) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_DOT, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(30,&vvmsp[-1].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long options, depth, ZEPHIR_LAST_CALL_STATUS; + zval *data, data_sub, *options_param = NULL, *depth_param = NULL, encoded, _0, _1, _2, _3$$3, _4$$3, _5$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&encoded); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ZVAL(data) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(options) + Z_PARAM_LONG(depth) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &data, &options_param, &depth_param); + if (!options_param) { + options = 0; + } else { + options = zephir_get_intval(options_param); + } + if (!depth_param) { + depth = 512; + } else { + depth = zephir_get_intval(depth_param); + } + + + ZVAL_LONG(&_0, options); + ZVAL_LONG(&_1, depth); + ZEPHIR_INIT_VAR(&encoded); + zephir_json_encode(&encoded, data, zephir_get_intval(&_0) ); + ZEPHIR_CALL_FUNCTION(&_2, "json_last_error", NULL, 262); + zephir_check_call_status(); + if (UNEXPECTED(!ZEPHIR_IS_LONG_IDENTICAL(&_2, 0))) { + ZEPHIR_INIT_VAR(&_3$$3); + object_init_ex(&_3$$3, spl_ce_InvalidArgumentException); + ZEPHIR_CALL_FUNCTION(&_4$$3, "json_last_error_msg", NULL, 263); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_5$$3); + ZEPHIR_CONCAT_SV(&_5$$3, "json_encode error: ", &_4$$3); + ZEPHIR_CALL_METHOD(NULL, &_3$$3, "__construct", NULL, 40, &_5$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_3$$3, "phalcon/Helper/Json.zep", 104); + ZEPHIR_MM_RESTORE(); + return; + } + RETURN_CCTOR(&encoded); } -// 1999 "parser.php.c" - break; - case 52: -// 390 "parser.php.lemon" + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Helper_Number) { - phvolt_ret_macro_statement(&vvgotominor.vv186, vvmsp[-7].minor.vv0, NULL, &vvmsp[-3].minor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-9].minor); - vv_destructor(51,&vvmsp[-8].minor); - vv_destructor(29,&vvmsp[-6].minor); - vv_destructor(52,&vvmsp[-5].minor); - vv_destructor(32,&vvmsp[-4].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(53,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + ZEPHIR_REGISTER_CLASS(Phalcon\\Helper, Number, phalcon, helper_number, phalcon_helper_number_method_entry, 0); + + return SUCCESS; } -// 2014 "parser.php.c" - break; - case 53: -// 394 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Number, between) { - phvolt_ret_macro_statement(&vvgotominor.vv186, vvmsp[-8].minor.vv0, &vvmsp[-6].minor.vv186, &vvmsp[-3].minor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-10].minor); - vv_destructor(51,&vvmsp[-9].minor); - vv_destructor(29,&vvmsp[-7].minor); - vv_destructor(52,&vvmsp[-5].minor); - vv_destructor(32,&vvmsp[-4].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(53,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zend_bool _0; + zval *value_param = NULL, *from_param = NULL, *to_param = NULL; + zend_long value, from, to; + zval *this_ptr = getThis(); + +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_LONG(value) + Z_PARAM_LONG(from) + Z_PARAM_LONG(to) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(3, 0, &value_param, &from_param, &to_param); + value = zephir_get_intval(value_param); + from = zephir_get_intval(from_param); + to = zephir_get_intval(to_param); + + + _0 = value >= from; + if (_0) { + _0 = value <= to; + } + RETURN_BOOL(_0); } -// 2029 "parser.php.c" - break; - case 56: -// 406 "parser.php.lemon" + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Helper_Str) { - phvolt_ret_macro_parameter(&vvgotominor.vv186, vvmsp[0].minor.vv0, NULL, status->scanner_state); + ZEPHIR_REGISTER_CLASS(Phalcon\\Helper, Str, phalcon, helper_str, phalcon_helper_str_method_entry, 0); + + zephir_declare_class_constant_long(phalcon_helper_str_ce, SL("RANDOM_ALNUM"), 0); + + zephir_declare_class_constant_long(phalcon_helper_str_ce, SL("RANDOM_ALPHA"), 1); + + zephir_declare_class_constant_long(phalcon_helper_str_ce, SL("RANDOM_DISTINCT"), 5); + + zephir_declare_class_constant_long(phalcon_helper_str_ce, SL("RANDOM_HEXDEC"), 2); + + zephir_declare_class_constant_long(phalcon_helper_str_ce, SL("RANDOM_NOZERO"), 4); + + zephir_declare_class_constant_long(phalcon_helper_str_ce, SL("RANDOM_NUMERIC"), 3); + + return SUCCESS; } -// 2036 "parser.php.c" - break; - case 57: -// 410 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, camelize) { - phvolt_ret_macro_parameter(&vvgotominor.vv186, vvmsp[-2].minor.vv0, &vvmsp[0].minor.vv186, status->scanner_state); - vv_destructor(45,&vvmsp[-1].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *text_param = NULL, *delimiter = NULL, delimiter_sub, __$null, _0; + zval text; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&delimiter_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(text) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(delimiter) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &text_param, &delimiter); + if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { + zephir_get_strval(&text, text_param); + } else { + ZEPHIR_INIT_VAR(&text); + } + if (!delimiter) { + delimiter = &delimiter_sub; + delimiter = &__$null; + } + + + ZEPHIR_INIT_VAR(&_0); + zephir_camelize(&_0, &text, delimiter ); + RETURN_CCTOR(&_0); } -// 2044 "parser.php.c" - break; - case 58: - case 72: - case 138: - case 152: -// 414 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, concat) { - phvolt_ret_literal_zval(&vvgotominor.vv186, PHVOLT_T_INTEGER, vvmsp[0].minor.vv0, status->scanner_state); + zval argument, arguments, data, first, last, prefix, delimiter, suffix, _1, _5, *_7, _8, _11, _9$$6, _10$$7; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_0 = NULL, *_2 = NULL, *_3 = NULL, *_4 = NULL, *_6 = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&argument); + ZVAL_UNDEF(&arguments); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&first); + ZVAL_UNDEF(&last); + ZVAL_UNDEF(&prefix); + ZVAL_UNDEF(&delimiter); + ZVAL_UNDEF(&suffix); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_9$$6); + ZVAL_UNDEF(&_10$$7); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&arguments); + zephir_get_args(&arguments); + if (UNEXPECTED(zephir_fast_count_int(&arguments) < 3)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_helper_exception_ce, "concat needs at least three parameters", "phalcon/Helper/Str.zep", 78); + return; + } + ZEPHIR_CALL_CE_STATIC(&delimiter, phalcon_helper_arr_ce, "first", &_0, 264, &arguments); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&_1, phalcon_helper_arr_ce, "sliceright", &_2, 265, &arguments); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&arguments, &_1); + ZEPHIR_CALL_CE_STATIC(&first, phalcon_helper_arr_ce, "first", &_0, 264, &arguments); + zephir_check_call_status(); + ZEPHIR_CALL_CE_STATIC(&last, phalcon_helper_arr_ce, "last", &_3, 266, &arguments); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&prefix); + ZVAL_STRING(&prefix, ""); + ZEPHIR_INIT_VAR(&suffix); + ZVAL_STRING(&suffix, ""); + ZEPHIR_INIT_VAR(&data); + array_init(&data); + ZEPHIR_CALL_SELF(&_1, "startswith", &_4, 17, &first, &delimiter); + zephir_check_call_status(); + if (zephir_is_true(&_1)) { + ZEPHIR_CPY_WRT(&prefix, &delimiter); + } + ZEPHIR_CALL_SELF(&_5, "endswith", &_6, 267, &last, &delimiter); + zephir_check_call_status(); + if (zephir_is_true(&_5)) { + ZEPHIR_CPY_WRT(&suffix, &delimiter); + } + zephir_is_iterable(&arguments, 0, "phalcon/Helper/Str.zep", 102); + if (Z_TYPE_P(&arguments) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&arguments), _7) + { + ZEPHIR_INIT_NVAR(&argument); + ZVAL_COPY(&argument, _7); + ZEPHIR_INIT_NVAR(&_9$$6); + zephir_fast_trim(&_9$$6, &argument, &delimiter, ZEPHIR_TRIM_BOTH); + zephir_array_append(&data, &_9$$6, PH_SEPARATE, "phalcon/Helper/Str.zep", 99); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &arguments, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_8, &arguments, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_8)) { + break; + } + ZEPHIR_CALL_METHOD(&argument, &arguments, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_10$$7); + zephir_fast_trim(&_10$$7, &argument, &delimiter, ZEPHIR_TRIM_BOTH); + zephir_array_append(&data, &_10$$7, PH_SEPARATE, "phalcon/Helper/Str.zep", 99); + ZEPHIR_CALL_METHOD(NULL, &arguments, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&argument); + ZEPHIR_INIT_VAR(&_11); + zephir_fast_join(&_11, &delimiter, &data); + ZEPHIR_CONCAT_VVV(return_value, &prefix, &_11, &suffix); + RETURN_MM(); } -// 2054 "parser.php.c" - break; - case 59: - case 153: -// 418 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, countVowels) { - phvolt_ret_literal_zval(&vvgotominor.vv186, PHVOLT_T_STRING, vvmsp[0].minor.vv0, status->scanner_state); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *text_param = NULL, matches, _0, _1, _2, _3; + zval text; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&matches); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(text) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &text_param); + if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { + zephir_get_strval(&text, text_param); + } else { + ZEPHIR_INIT_VAR(&text); + } + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "/[aeiou]/i"); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "/[aeiou]/i"); + zephir_preg_match(&_1, &_2, &text, &matches, 1, 0 , 0 ); + zephir_array_fetch_long(&_3, &matches, 0, PH_NOISY | PH_READONLY, "phalcon/Helper/Str.zep", 119); + RETURN_MM_LONG(zephir_fast_count_int(&_3)); } -// 2062 "parser.php.c" - break; - case 60: - case 154: -// 422 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, decapitalize) { - phvolt_ret_literal_zval(&vvgotominor.vv186, PHVOLT_T_DOUBLE, vvmsp[0].minor.vv0, status->scanner_state); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool upperRest; + zval *text_param = NULL, *upperRest_param = NULL, *encoding_param = NULL, substr, suffix, _0$$3, _1$$4, _2$$9, _3$$9, _4$$9, _5$$9, _6$$10, _7$$10, _8$$10, _9$$10; + zval text, encoding; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&encoding); + ZVAL_UNDEF(&substr); + ZVAL_UNDEF(&suffix); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$9); + ZVAL_UNDEF(&_3$$9); + ZVAL_UNDEF(&_4$$9); + ZVAL_UNDEF(&_5$$9); + ZVAL_UNDEF(&_6$$10); + ZVAL_UNDEF(&_7$$10); + ZVAL_UNDEF(&_8$$10); + ZVAL_UNDEF(&_9$$10); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(text) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(upperRest) + Z_PARAM_STR(encoding) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &text_param, &upperRest_param, &encoding_param); + if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { + zephir_get_strval(&text, text_param); + } else { + ZEPHIR_INIT_VAR(&text); + } + if (!upperRest_param) { + upperRest = 0; + } else { + upperRest = zephir_get_boolval(upperRest_param); + } + if (!encoding_param) { + ZEPHIR_INIT_VAR(&encoding); + ZVAL_STRING(&encoding, "UTF-8"); + } else { + if (UNEXPECTED(Z_TYPE_P(encoding_param) != IS_STRING && Z_TYPE_P(encoding_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'encoding' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(encoding_param) == IS_STRING)) { + zephir_get_strval(&encoding, encoding_param); + } else { + ZEPHIR_INIT_VAR(&encoding); + } + } + + + if ((zephir_function_exists_ex(ZEND_STRL("mb_substr")) == SUCCESS)) { + ZVAL_LONG(&_0$$3, 1); + ZEPHIR_CALL_FUNCTION(&substr, "mb_substr", NULL, 184, &text, &_0$$3); + zephir_check_call_status(); + } else { + ZVAL_LONG(&_1$$4, 1); + ZEPHIR_INIT_NVAR(&substr); + zephir_substr(&substr, &text, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + } + if (upperRest) { + if ((zephir_function_exists_ex(ZEND_STRL("mb_strtoupper")) == SUCCESS)) { + ZEPHIR_CALL_FUNCTION(&suffix, "mb_strtoupper", NULL, 268, &substr, &encoding); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(&suffix, &substr, "upper", NULL, 0); + zephir_check_call_status(); + } + } else { + ZEPHIR_CPY_WRT(&suffix, &substr); + } + if ((zephir_function_exists_ex(ZEND_STRL("mb_strtolower")) == SUCCESS)) { + ZVAL_LONG(&_2$$9, 0); + ZVAL_LONG(&_3$$9, 1); + ZEPHIR_CALL_FUNCTION(&_4$$9, "mb_substr", NULL, 184, &text, &_2$$9, &_3$$9); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_5$$9, "mb_strtolower", NULL, 25, &_4$$9, &encoding); + zephir_check_call_status(); + ZEPHIR_CONCAT_VV(return_value, &_5$$9, &suffix); + RETURN_MM(); + } else { + ZEPHIR_INIT_VAR(&_6$$10); + ZVAL_LONG(&_7$$10, 0); + ZVAL_LONG(&_8$$10, 1); + ZEPHIR_INIT_VAR(&_9$$10); + zephir_substr(&_9$$10, &text, 0 , 1 , 0); + zephir_fast_strtolower(&_6$$10, &_9$$10); + ZEPHIR_CONCAT_VV(return_value, &_6$$10, &suffix); + RETURN_MM(); + } } -// 2070 "parser.php.c" - break; - case 61: - case 155: -// 426 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, decrement) { - phvolt_ret_literal_zval(&vvgotominor.vv186, PHVOLT_T_NULL, NULL, status->scanner_state); - vv_destructor(57,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *text_param = NULL, *separator_param = NULL, parts, number, _1, _0$$4; + zval text, separator; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&separator); + ZVAL_UNDEF(&parts); + ZVAL_UNDEF(&number); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_0$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(text) + Z_PARAM_OPTIONAL + Z_PARAM_STR(separator) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &text_param, &separator_param); + zephir_get_strval(&text, text_param); + if (!separator_param) { + ZEPHIR_INIT_VAR(&separator); + ZVAL_STRING(&separator, "_"); + } else { + zephir_get_strval(&separator, separator_param); + } + + + ZEPHIR_INIT_VAR(&parts); + zephir_fast_explode(&parts, &separator, &text, LONG_MAX); + ZEPHIR_OBS_VAR(&number); + if (zephir_array_isset_long_fetch(&number, &parts, 1, 0)) { + ZEPHIR_SEPARATE(&number); + zephir_decrement(&number); + if (ZEPHIR_LE_LONG(&number, 0)) { + zephir_array_fetch_long(&_0$$4, &parts, 0, PH_NOISY | PH_READONLY, "phalcon/Helper/Str.zep", 189); + RETURN_CTOR(&_0$$4); + } + } + zephir_array_fetch_long(&_1, &parts, 0, PH_NOISY | PH_READONLY, "phalcon/Helper/Str.zep", 193); + ZEPHIR_CONCAT_VVV(return_value, &_1, &separator, &number); + RETURN_MM(); } -// 2079 "parser.php.c" - break; - case 62: - case 156: -// 430 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, dirFromFile) { - phvolt_ret_literal_zval(&vvgotominor.vv186, PHVOLT_T_FALSE, NULL, status->scanner_state); - vv_destructor(58,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *file_param = NULL, name, start, _0, _1, _7, _8, _9, _2$$3, _3$$3, _4$$3, _5$$4, _6$$4; + zval file; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&file); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&start); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(file) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &file_param); + if (UNEXPECTED(Z_TYPE_P(file_param) != IS_STRING && Z_TYPE_P(file_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'file' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(file_param) == IS_STRING)) { + zephir_get_strval(&file, file_param); + } else { + ZEPHIR_INIT_VAR(&file); + } + + + ZVAL_LONG(&_0, 8); + ZEPHIR_CALL_FUNCTION(&name, "pathinfo", NULL, 109, &file, &_0); + zephir_check_call_status(); + ZVAL_LONG(&_0, 0); + ZVAL_LONG(&_1, -2); + ZEPHIR_INIT_VAR(&start); + zephir_substr(&start, &name, 0 , -2 , 0); + if (!(ZEPHIR_IS_EMPTY(&start))) { + ZEPHIR_INIT_VAR(&_2$$3); + ZEPHIR_INIT_VAR(&_3$$3); + ZVAL_STRING(&_3$$3, "."); + ZEPHIR_INIT_VAR(&_4$$3); + ZVAL_STRING(&_4$$3, "-"); + zephir_fast_str_replace(&_2$$3, &_3$$3, &_4$$3, &start); + ZEPHIR_CPY_WRT(&start, &_2$$3); + } + if (!(zephir_is_true(&start))) { + ZVAL_LONG(&_5$$4, 0); + ZVAL_LONG(&_6$$4, 1); + ZEPHIR_INIT_NVAR(&start); + zephir_substr(&start, &name, 0 , 1 , 0); + } + ZEPHIR_INIT_VAR(&_7); + ZVAL_LONG(&_8, 2); + ZEPHIR_CALL_FUNCTION(&_9, "str_split", NULL, 108, &start, &_8); + zephir_check_call_status(); + zephir_fast_join_str(&_7, SL("/"), &_9); + ZEPHIR_CONCAT_VS(return_value, &_7, "/"); + RETURN_MM(); } -// 2088 "parser.php.c" - break; - case 63: - case 157: -// 434 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, dirSeparator) { - phvolt_ret_literal_zval(&vvgotominor.vv186, PHVOLT_T_TRUE, NULL, status->scanner_state); - vv_destructor(59,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *directory_param = NULL, _0, _1; + zval directory; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&directory); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(directory) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &directory_param); + if (UNEXPECTED(Z_TYPE_P(directory_param) != IS_STRING && Z_TYPE_P(directory_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'directory' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(directory_param) == IS_STRING)) { + zephir_get_strval(&directory, directory_param); + } else { + ZEPHIR_INIT_VAR(&directory); + } + + + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "/"); + zephir_fast_trim(&_0, &directory, &_1, ZEPHIR_TRIM_RIGHT); + ZEPHIR_CONCAT_VS(return_value, &_0, "/"); + RETURN_MM(); } -// 2097 "parser.php.c" - break; - case 64: -// 438 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, dynamic) { - phvolt_ret_macro_call_statement(&vvgotominor.vv186, &vvmsp[-8].minor.vv186, &vvmsp[-6].minor.vv186, &vvmsp[-3].minor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-10].minor); - vv_destructor(60,&vvmsp[-9].minor); - vv_destructor(29,&vvmsp[-7].minor); - vv_destructor(52,&vvmsp[-5].minor); - vv_destructor(32,&vvmsp[-4].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(61,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zend_bool _8$$6, _17$$8; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_11 = NULL, *_16 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *text_param = NULL, *leftDelimiter_param = NULL, *rightDelimiter_param = NULL, *separator_param = NULL, ldS, rdS, matches, match, words, word, sub, _0, _1, _4, _5, _2$$3, *_6$$5, _7$$5, _9$$6, _10$$6, _12$$6, _13$$6, _14$$6, _15$$6, _18$$8, _19$$8, _20$$8, _21$$8, _22$$8, _23$$8; + zval text, leftDelimiter, rightDelimiter, separator, pattern, _3$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&leftDelimiter); + ZVAL_UNDEF(&rightDelimiter); + ZVAL_UNDEF(&separator); + ZVAL_UNDEF(&pattern); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&ldS); + ZVAL_UNDEF(&rdS); + ZVAL_UNDEF(&matches); + ZVAL_UNDEF(&match); + ZVAL_UNDEF(&words); + ZVAL_UNDEF(&word); + ZVAL_UNDEF(&sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_7$$5); + ZVAL_UNDEF(&_9$$6); + ZVAL_UNDEF(&_10$$6); + ZVAL_UNDEF(&_12$$6); + ZVAL_UNDEF(&_13$$6); + ZVAL_UNDEF(&_14$$6); + ZVAL_UNDEF(&_15$$6); + ZVAL_UNDEF(&_18$$8); + ZVAL_UNDEF(&_19$$8); + ZVAL_UNDEF(&_20$$8); + ZVAL_UNDEF(&_21$$8); + ZVAL_UNDEF(&_22$$8); + ZVAL_UNDEF(&_23$$8); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 4) + Z_PARAM_STR(text) + Z_PARAM_OPTIONAL + Z_PARAM_STR(leftDelimiter) + Z_PARAM_STR(rightDelimiter) + Z_PARAM_STR(separator) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 3, &text_param, &leftDelimiter_param, &rightDelimiter_param, &separator_param); + if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { + zephir_get_strval(&text, text_param); + } else { + ZEPHIR_INIT_VAR(&text); + } + if (!leftDelimiter_param) { + ZEPHIR_INIT_VAR(&leftDelimiter); + ZVAL_STRING(&leftDelimiter, "{"); + } else { + if (UNEXPECTED(Z_TYPE_P(leftDelimiter_param) != IS_STRING && Z_TYPE_P(leftDelimiter_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'leftDelimiter' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(leftDelimiter_param) == IS_STRING)) { + zephir_get_strval(&leftDelimiter, leftDelimiter_param); + } else { + ZEPHIR_INIT_VAR(&leftDelimiter); + } + } + if (!rightDelimiter_param) { + ZEPHIR_INIT_VAR(&rightDelimiter); + ZVAL_STRING(&rightDelimiter, "}"); + } else { + if (UNEXPECTED(Z_TYPE_P(rightDelimiter_param) != IS_STRING && Z_TYPE_P(rightDelimiter_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'rightDelimiter' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(rightDelimiter_param) == IS_STRING)) { + zephir_get_strval(&rightDelimiter, rightDelimiter_param); + } else { + ZEPHIR_INIT_VAR(&rightDelimiter); + } + } + if (!separator_param) { + ZEPHIR_INIT_VAR(&separator); + ZVAL_STRING(&separator, "|"); + } else { + if (UNEXPECTED(Z_TYPE_P(separator_param) != IS_STRING && Z_TYPE_P(separator_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'separator' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(separator_param) == IS_STRING)) { + zephir_get_strval(&separator, separator_param); + } else { + ZEPHIR_INIT_VAR(&separator); + } + } + + + ZEPHIR_CALL_FUNCTION(&_0, "substr_count", NULL, 269, &text, &leftDelimiter); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_1, "substr_count", NULL, 269, &text, &rightDelimiter); + zephir_check_call_status(); + if (UNEXPECTED(!ZEPHIR_IS_IDENTICAL(&_0, &_1))) { + ZEPHIR_INIT_VAR(&_2$$3); + object_init_ex(&_2$$3, spl_ce_RuntimeException); + ZEPHIR_INIT_VAR(&_3$$3); + ZEPHIR_CONCAT_SVS(&_3$$3, "Syntax error in string \"", &text, "\""); + ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", NULL, 270, &_3$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_2$$3, "phalcon/Helper/Str.zep", 290); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_FUNCTION(&ldS, "preg_quote", NULL, 261, &leftDelimiter); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&rdS, "preg_quote", NULL, 261, &rightDelimiter); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_4); + ZEPHIR_CONCAT_SVSVVSVS(&_4, "/", &ldS, "([^", &ldS, &rdS, "]+)", &rdS, "/"); + zephir_get_strval(&pattern, &_4); + ZEPHIR_INIT_VAR(&matches); + array_init(&matches); + ZEPHIR_INIT_VAR(&_5); + zephir_preg_match(&_5, &pattern, &text, &matches, 1, 2 , 0 ); + if (!(zephir_is_true(&_5))) { + RETURN_CTOR(&text); + } + if (Z_TYPE_P(&matches) == IS_ARRAY) { + zephir_is_iterable(&matches, 0, "phalcon/Helper/Str.zep", 313); + if (Z_TYPE_P(&matches) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&matches), _6$$5) + { + ZEPHIR_INIT_NVAR(&match); + ZVAL_COPY(&match, _6$$5); + _8$$6 = !(zephir_array_isset_long(&match, 0)); + if (!(_8$$6)) { + _8$$6 = !(zephir_array_isset_long(&match, 1)); + } + if (_8$$6) { + continue; + } + zephir_array_fetch_long(&_9$$6, &match, 1, PH_NOISY | PH_READONLY, "phalcon/Helper/Str.zep", 308); + ZEPHIR_INIT_NVAR(&words); + zephir_fast_explode(&words, &separator, &_9$$6, LONG_MAX); + ZEPHIR_OBS_NVAR(&word); + ZEPHIR_CALL_FUNCTION(&_10$$6, "array_rand", &_11, 201, &words); + zephir_check_call_status(); + zephir_array_fetch(&word, &words, &_10$$6, PH_NOISY, "phalcon/Helper/Str.zep", 309); + zephir_array_fetch_long(&_12$$6, &match, 0, PH_NOISY | PH_READONLY, "phalcon/Helper/Str.zep", 310); + ZEPHIR_CALL_FUNCTION(&sub, "preg_quote", NULL, 261, &_12$$6, &separator); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_13$$6); + ZEPHIR_CONCAT_SVS(&_13$$6, "/", &sub, "/"); + ZVAL_LONG(&_14$$6, 1); + ZEPHIR_CALL_FUNCTION(&_15$$6, "preg_replace", &_16, 50, &_13$$6, &word, &text, &_14$$6); + zephir_check_call_status(); + zephir_get_strval(&text, &_15$$6); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &matches, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_7$$5, &matches, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_7$$5)) { + break; + } + ZEPHIR_CALL_METHOD(&match, &matches, "current", NULL, 0); + zephir_check_call_status(); + _17$$8 = !(zephir_array_isset_long(&match, 0)); + if (!(_17$$8)) { + _17$$8 = !(zephir_array_isset_long(&match, 1)); + } + if (_17$$8) { + continue; + } + zephir_array_fetch_long(&_18$$8, &match, 1, PH_NOISY | PH_READONLY, "phalcon/Helper/Str.zep", 308); + ZEPHIR_INIT_NVAR(&words); + zephir_fast_explode(&words, &separator, &_18$$8, LONG_MAX); + ZEPHIR_OBS_NVAR(&word); + ZEPHIR_CALL_FUNCTION(&_19$$8, "array_rand", &_11, 201, &words); + zephir_check_call_status(); + zephir_array_fetch(&word, &words, &_19$$8, PH_NOISY, "phalcon/Helper/Str.zep", 309); + zephir_array_fetch_long(&_20$$8, &match, 0, PH_NOISY | PH_READONLY, "phalcon/Helper/Str.zep", 310); + ZEPHIR_CALL_FUNCTION(&sub, "preg_quote", NULL, 261, &_20$$8, &separator); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_21$$8); + ZEPHIR_CONCAT_SVS(&_21$$8, "/", &sub, "/"); + ZVAL_LONG(&_22$$8, 1); + ZEPHIR_CALL_FUNCTION(&_23$$8, "preg_replace", &_16, 50, &_21$$8, &word, &text, &_22$$8); + zephir_check_call_status(); + zephir_get_strval(&text, &_23$$8); + ZEPHIR_CALL_METHOD(NULL, &matches, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&match); + } + RETURN_CTOR(&text); } -// 2112 "parser.php.c" - break; - case 65: -// 442 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, endsWith) { - phvolt_ret_macro_call_statement(&vvgotominor.vv186, &vvmsp[-6].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(1,&vvmsp[-8].minor); - vv_destructor(60,&vvmsp[-7].minor); - vv_destructor(29,&vvmsp[-5].minor); - vv_destructor(52,&vvmsp[-4].minor); - vv_destructor(32,&vvmsp[-3].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(61,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_bool ignoreCase; + zval *text_param = NULL, *end_param = NULL, *ignoreCase_param = NULL, _0; + zval text, end; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&end); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(text) + Z_PARAM_STR(end) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(ignoreCase) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &text_param, &end_param, &ignoreCase_param); + zephir_get_strval(&text, text_param); + zephir_get_strval(&end, end_param); + if (!ignoreCase_param) { + ignoreCase = 1; + } else { + ignoreCase = zephir_get_boolval(ignoreCase_param); + } + + + ZVAL_BOOL(&_0, (ignoreCase ? 1 : 0)); + RETURN_MM_BOOL(zephir_end_with(&text, &end, &_0)); } -// 2127 "parser.php.c" - break; - case 66: -// 446 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, firstBetween) { - phvolt_ret_empty_statement(&vvgotominor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *text_param = NULL, *start_param = NULL, *end_param = NULL, __$true, _0$$3, _1$$3, _3$$4, _4$$4; + zval text, start, end, _2$$3, _5$$4, _6; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&start); + ZVAL_UNDEF(&end); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(text) + Z_PARAM_STR(start) + Z_PARAM_STR(end) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &text_param, &start_param, &end_param); + if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { + zephir_get_strval(&text, text_param); + } else { + ZEPHIR_INIT_VAR(&text); + } + if (UNEXPECTED(Z_TYPE_P(start_param) != IS_STRING && Z_TYPE_P(start_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'start' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(start_param) == IS_STRING)) { + zephir_get_strval(&start, start_param); + } else { + ZEPHIR_INIT_VAR(&start); + } + if (UNEXPECTED(Z_TYPE_P(end_param) != IS_STRING && Z_TYPE_P(end_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'end' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(end_param) == IS_STRING)) { + zephir_get_strval(&end, end_param); + } else { + ZEPHIR_INIT_VAR(&end); + } + + + if ((zephir_function_exists_ex(ZEND_STRL("mb_strstr")) == SUCCESS)) { + ZEPHIR_CALL_FUNCTION(&_0$$3, "mb_strstr", NULL, 271, &text, &start); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_1$$3, "mb_strstr", NULL, 271, &_0$$3, &end, &__$true); + zephir_check_call_status(); + zephir_cast_to_string(&_2$$3, &_1$$3); + ZEPHIR_CPY_WRT(&text, &_2$$3); + } else { + ZEPHIR_CALL_FUNCTION(&_3$$4, "strstr", NULL, 272, &text, &start); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_4$$4, "strstr", NULL, 272, &_3$$4, &end, &__$true); + zephir_check_call_status(); + zephir_cast_to_string(&_5$$4, &_4$$4); + ZEPHIR_CPY_WRT(&text, &_5$$4); + } + ZEPHIR_INIT_VAR(&_6); + ZEPHIR_CONCAT_VV(&_6, &start, &end); + zephir_fast_trim(return_value, &text, &_6, ZEPHIR_TRIM_BOTH); + RETURN_MM(); } -// 2136 "parser.php.c" - break; - case 67: -// 450 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, friendly) { - phvolt_ret_echo_statement(&vvgotominor.vv186, &vvmsp[-1].minor.vv186, status->scanner_state); - vv_destructor(62,&vvmsp[-2].minor); - vv_destructor(63,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool lowercase, _0$$3; + zval *text_param = NULL, *separator_param = NULL, *lowercase_param = NULL, *replace = NULL, replace_sub, __$null, friendly, matrix, search, _6, _7, _8, _9, _10, _12, *_2$$3, _3$$3, _1$$5, _4$$6, _5$$7, _11$$8; + zval text, separator; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&separator); + ZVAL_UNDEF(&replace_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&friendly); + ZVAL_UNDEF(&matrix); + ZVAL_UNDEF(&search); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_1$$5); + ZVAL_UNDEF(&_4$$6); + ZVAL_UNDEF(&_5$$7); + ZVAL_UNDEF(&_11$$8); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 4) + Z_PARAM_STR(text) + Z_PARAM_OPTIONAL + Z_PARAM_STR(separator) + Z_PARAM_BOOL(lowercase) + Z_PARAM_ZVAL_OR_NULL(replace) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 3, &text_param, &separator_param, &lowercase_param, &replace); + if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { + zephir_get_strval(&text, text_param); + } else { + ZEPHIR_INIT_VAR(&text); + } + if (!separator_param) { + ZEPHIR_INIT_VAR(&separator); + ZVAL_STRING(&separator, "-"); + } else { + if (UNEXPECTED(Z_TYPE_P(separator_param) != IS_STRING && Z_TYPE_P(separator_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'separator' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(separator_param) == IS_STRING)) { + zephir_get_strval(&separator, separator_param); + } else { + ZEPHIR_INIT_VAR(&separator); + } + } + if (!lowercase_param) { + lowercase = 1; + } else { + lowercase = zephir_get_boolval(lowercase_param); + } + if (!replace) { + replace = &replace_sub; + ZEPHIR_CPY_WRT(replace, &__$null); + } else { + ZEPHIR_SEPARATE_PARAM(replace); + } + + + ZEPHIR_INIT_VAR(&matrix); + zephir_create_array(&matrix, 79, 0); + add_assoc_stringl_ex(&matrix, SL("Š"), SL("S")); + add_assoc_stringl_ex(&matrix, SL("š"), SL("s")); + add_assoc_stringl_ex(&matrix, SL("Đ"), SL("Dj")); + add_assoc_stringl_ex(&matrix, SL("Ð"), SL("Dj")); + add_assoc_stringl_ex(&matrix, SL("đ"), SL("dj")); + add_assoc_stringl_ex(&matrix, SL("Ž"), SL("Z")); + add_assoc_stringl_ex(&matrix, SL("ž"), SL("z")); + add_assoc_stringl_ex(&matrix, SL("Č"), SL("C")); + add_assoc_stringl_ex(&matrix, SL("č"), SL("c")); + add_assoc_stringl_ex(&matrix, SL("Ć"), SL("C")); + add_assoc_stringl_ex(&matrix, SL("ć"), SL("c")); + add_assoc_stringl_ex(&matrix, SL("À"), SL("A")); + add_assoc_stringl_ex(&matrix, SL("Á"), SL("A")); + add_assoc_stringl_ex(&matrix, SL("Â"), SL("A")); + add_assoc_stringl_ex(&matrix, SL("Ã"), SL("A")); + add_assoc_stringl_ex(&matrix, SL("Ä"), SL("A")); + add_assoc_stringl_ex(&matrix, SL("Å"), SL("A")); + add_assoc_stringl_ex(&matrix, SL("Æ"), SL("A")); + add_assoc_stringl_ex(&matrix, SL("Ç"), SL("C")); + add_assoc_stringl_ex(&matrix, SL("È"), SL("E")); + add_assoc_stringl_ex(&matrix, SL("É"), SL("E")); + add_assoc_stringl_ex(&matrix, SL("Ê"), SL("E")); + add_assoc_stringl_ex(&matrix, SL("Ë"), SL("E")); + add_assoc_stringl_ex(&matrix, SL("Ì"), SL("I")); + add_assoc_stringl_ex(&matrix, SL("Í"), SL("I")); + add_assoc_stringl_ex(&matrix, SL("Î"), SL("I")); + add_assoc_stringl_ex(&matrix, SL("Ï"), SL("I")); + add_assoc_stringl_ex(&matrix, SL("Ñ"), SL("N")); + add_assoc_stringl_ex(&matrix, SL("Ò"), SL("O")); + add_assoc_stringl_ex(&matrix, SL("Ó"), SL("O")); + add_assoc_stringl_ex(&matrix, SL("Ô"), SL("O")); + add_assoc_stringl_ex(&matrix, SL("Õ"), SL("O")); + add_assoc_stringl_ex(&matrix, SL("Ö"), SL("O")); + add_assoc_stringl_ex(&matrix, SL("Ø"), SL("O")); + add_assoc_stringl_ex(&matrix, SL("Ù"), SL("U")); + add_assoc_stringl_ex(&matrix, SL("Ú"), SL("U")); + add_assoc_stringl_ex(&matrix, SL("Û"), SL("U")); + add_assoc_stringl_ex(&matrix, SL("Ü"), SL("U")); + add_assoc_stringl_ex(&matrix, SL("Ý"), SL("Y")); + add_assoc_stringl_ex(&matrix, SL("Þ"), SL("B")); + add_assoc_stringl_ex(&matrix, SL("ß"), SL("Ss")); + add_assoc_stringl_ex(&matrix, SL("à"), SL("a")); + add_assoc_stringl_ex(&matrix, SL("á"), SL("a")); + add_assoc_stringl_ex(&matrix, SL("â"), SL("a")); + add_assoc_stringl_ex(&matrix, SL("ã"), SL("a")); + add_assoc_stringl_ex(&matrix, SL("ä"), SL("a")); + add_assoc_stringl_ex(&matrix, SL("å"), SL("a")); + add_assoc_stringl_ex(&matrix, SL("æ"), SL("a")); + add_assoc_stringl_ex(&matrix, SL("ç"), SL("c")); + add_assoc_stringl_ex(&matrix, SL("è"), SL("e")); + add_assoc_stringl_ex(&matrix, SL("é"), SL("e")); + add_assoc_stringl_ex(&matrix, SL("ê"), SL("e")); + add_assoc_stringl_ex(&matrix, SL("ë"), SL("e")); + add_assoc_stringl_ex(&matrix, SL("ì"), SL("i")); + add_assoc_stringl_ex(&matrix, SL("í"), SL("i")); + add_assoc_stringl_ex(&matrix, SL("î"), SL("i")); + add_assoc_stringl_ex(&matrix, SL("ï"), SL("i")); + add_assoc_stringl_ex(&matrix, SL("ð"), SL("o")); + add_assoc_stringl_ex(&matrix, SL("ñ"), SL("n")); + add_assoc_stringl_ex(&matrix, SL("ò"), SL("o")); + add_assoc_stringl_ex(&matrix, SL("ó"), SL("o")); + add_assoc_stringl_ex(&matrix, SL("ô"), SL("o")); + add_assoc_stringl_ex(&matrix, SL("õ"), SL("o")); + add_assoc_stringl_ex(&matrix, SL("ö"), SL("o")); + add_assoc_stringl_ex(&matrix, SL("ø"), SL("o")); + add_assoc_stringl_ex(&matrix, SL("ù"), SL("u")); + add_assoc_stringl_ex(&matrix, SL("ú"), SL("u")); + add_assoc_stringl_ex(&matrix, SL("û"), SL("u")); + add_assoc_stringl_ex(&matrix, SL("ý"), SL("y")); + add_assoc_stringl_ex(&matrix, SL("ý"), SL("y")); + add_assoc_stringl_ex(&matrix, SL("þ"), SL("b")); + add_assoc_stringl_ex(&matrix, SL("ÿ"), SL("y")); + add_assoc_stringl_ex(&matrix, SL("Ŕ"), SL("R")); + add_assoc_stringl_ex(&matrix, SL("ŕ"), SL("r")); + add_assoc_stringl_ex(&matrix, SL("ē"), SL("e")); + add_assoc_stringl_ex(&matrix, SL("'"), SL("")); + add_assoc_stringl_ex(&matrix, SL("&"), SL(" and ")); + add_assoc_stringl_ex(&matrix, SL("\r\n"), SL(" ")); + add_assoc_stringl_ex(&matrix, SL("\n"), SL(" ")); + if (zephir_is_true(replace)) { + _0$$3 = Z_TYPE_P(replace) != IS_ARRAY; + if (_0$$3) { + _0$$3 = Z_TYPE_P(replace) != IS_STRING; + } + if (UNEXPECTED(_0$$3)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_helper_exception_ce, "Parameter replace must be an array or a string", "phalcon/Helper/Str.zep", 414); + return; + } + if (Z_TYPE_P(replace) != IS_ARRAY) { + ZEPHIR_INIT_VAR(&_1$$5); + zephir_create_array(&_1$$5, 1, 0); + zephir_array_fast_append(&_1$$5, replace); + ZEPHIR_CPY_WRT(replace, &_1$$5); + } + zephir_is_iterable(replace, 0, "phalcon/Helper/Str.zep", 424); + if (Z_TYPE_P(replace) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(replace), _2$$3) + { + ZEPHIR_INIT_NVAR(&search); + ZVAL_COPY(&search, _2$$3); + ZEPHIR_INIT_NVAR(&_4$$6); + ZVAL_STRING(&_4$$6, " "); + zephir_array_update_zval(&matrix, &search, &_4$$6, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, replace, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3$$3, replace, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&search, replace, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_5$$7); + ZVAL_STRING(&_5$$7, " "); + zephir_array_update_zval(&matrix, &search, &_5$$7, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, replace, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&search); + } + ZEPHIR_INIT_VAR(&_6); + ZEPHIR_INIT_VAR(&_7); + zephir_array_keys(&_7, &matrix); + ZEPHIR_CALL_FUNCTION(&_8, "array_values", NULL, 12, &matrix); + zephir_check_call_status(); + zephir_fast_str_replace(&_6, &_7, &_8, &text); + zephir_get_strval(&text, &_6); + ZEPHIR_INIT_VAR(&_9); + ZVAL_STRING(&_9, "/[^a-zA-Z0-9\\/_|+ -]/"); + ZEPHIR_INIT_VAR(&_10); + ZVAL_STRING(&_10, ""); + ZEPHIR_CALL_FUNCTION(&friendly, "preg_replace", NULL, 50, &_9, &_10, &text); + zephir_check_call_status(); + if (lowercase) { + ZEPHIR_INIT_VAR(&_11$$8); + zephir_fast_strtolower(&_11$$8, &friendly); + ZEPHIR_CPY_WRT(&friendly, &_11$$8); + } + ZEPHIR_INIT_NVAR(&_9); + ZVAL_STRING(&_9, "/[\\/_|+ -]+/"); + ZEPHIR_CALL_FUNCTION(&_12, "preg_replace", NULL, 50, &_9, &separator, &friendly); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&friendly, &_12); + ZEPHIR_INIT_NVAR(&_9); + zephir_fast_trim(&_9, &friendly, &separator, ZEPHIR_TRIM_BOTH); + ZEPHIR_CPY_WRT(&friendly, &_9); + RETURN_CCTOR(&friendly); } -// 2145 "parser.php.c" - break; - case 68: -// 454 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, humanize) { - phvolt_ret_block_statement(&vvgotominor.vv186, vvmsp[-5].minor.vv0, &vvmsp[-3].minor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-7].minor); - vv_destructor(64,&vvmsp[-6].minor); - vv_destructor(32,&vvmsp[-4].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(65,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *text_param = NULL, _0, _1, _2; + zval text; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(text) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &text_param); + if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { + zephir_get_strval(&text, text_param); + } else { + ZEPHIR_INIT_VAR(&text); + } + + + ZEPHIR_INIT_VAR(&_0); + zephir_fast_trim(&_0, &text, NULL , ZEPHIR_TRIM_BOTH); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "#[_-]+#"); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, " "); + ZEPHIR_RETURN_CALL_FUNCTION("preg_replace", NULL, 50, &_1, &_2, &_0); + zephir_check_call_status(); + RETURN_MM(); } -// 2158 "parser.php.c" - break; - case 69: -// 458 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, includes) { - phvolt_ret_block_statement(&vvgotominor.vv186, vvmsp[-4].minor.vv0, NULL, status->scanner_state); - vv_destructor(1,&vvmsp[-6].minor); - vv_destructor(64,&vvmsp[-5].minor); - vv_destructor(32,&vvmsp[-3].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(65,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *needle_param = NULL, *haystack_param = NULL, _0$$3, _1$$4; + zval needle, haystack; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&needle); + ZVAL_UNDEF(&haystack); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(needle) + Z_PARAM_STR(haystack) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &needle_param, &haystack_param); + if (UNEXPECTED(Z_TYPE_P(needle_param) != IS_STRING && Z_TYPE_P(needle_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'needle' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(needle_param) == IS_STRING)) { + zephir_get_strval(&needle, needle_param); + } else { + ZEPHIR_INIT_VAR(&needle); + } + if (UNEXPECTED(Z_TYPE_P(haystack_param) != IS_STRING && Z_TYPE_P(haystack_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'haystack' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(haystack_param) == IS_STRING)) { + zephir_get_strval(&haystack, haystack_param); + } else { + ZEPHIR_INIT_VAR(&haystack); + } + + + if ((zephir_function_exists_ex(ZEND_STRL("mb_strpos")) == SUCCESS)) { + ZEPHIR_CALL_FUNCTION(&_0$$3, "mb_strpos", NULL, 273, &haystack, &needle); + zephir_check_call_status(); + RETURN_MM_BOOL(!ZEPHIR_IS_FALSE_IDENTICAL(&_0$$3)); + } else { + ZEPHIR_INIT_VAR(&_1$$4); + zephir_fast_strpos(&_1$$4, &haystack, &needle, 0 ); + RETURN_MM_BOOL(!ZEPHIR_IS_FALSE_IDENTICAL(&_1$$4)); + } } -// 2171 "parser.php.c" - break; - case 70: -// 462 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, increment) { - phvolt_ret_cache_statement(&vvgotominor.vv186, &vvmsp[-5].minor.vv186, NULL, &vvmsp[-3].minor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-7].minor); - vv_destructor(66,&vvmsp[-6].minor); - vv_destructor(32,&vvmsp[-4].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(67,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *text_param = NULL, *separator_param = NULL, parts, number, _0; + zval text, separator; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&separator); + ZVAL_UNDEF(&parts); + ZVAL_UNDEF(&number); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(text) + Z_PARAM_OPTIONAL + Z_PARAM_STR(separator) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &text_param, &separator_param); + zephir_get_strval(&text, text_param); + if (!separator_param) { + ZEPHIR_INIT_VAR(&separator); + ZVAL_STRING(&separator, "_"); + } else { + zephir_get_strval(&separator, separator_param); + } + + + ZEPHIR_INIT_VAR(&parts); + zephir_fast_explode(&parts, &separator, &text, LONG_MAX); + ZEPHIR_OBS_VAR(&number); + if (zephir_array_isset_long_fetch(&number, &parts, 1, 0)) { + ZEPHIR_SEPARATE(&number); + zephir_increment(&number); + } else { + ZEPHIR_INIT_NVAR(&number); + ZVAL_LONG(&number, 1); + } + zephir_array_fetch_long(&_0, &parts, 0, PH_NOISY | PH_READONLY, "phalcon/Helper/Str.zep", 507); + ZEPHIR_CONCAT_VVV(return_value, &_0, &separator, &number); + RETURN_MM(); } -// 2184 "parser.php.c" - break; - case 71: -// 466 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, isAnagram) { - phvolt_ret_cache_statement(&vvgotominor.vv186, &vvmsp[-6].minor.vv186, &vvmsp[-5].minor.vv186, &vvmsp[-3].minor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-8].minor); - vv_destructor(66,&vvmsp[-7].minor); - vv_destructor(32,&vvmsp[-4].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(67,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *first_param = NULL, *second_param = NULL, _0, _1, _2; + zval first, second; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&first); + ZVAL_UNDEF(&second); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(first) + Z_PARAM_STR(second) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &first_param, &second_param); + if (UNEXPECTED(Z_TYPE_P(first_param) != IS_STRING && Z_TYPE_P(first_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'first' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(first_param) == IS_STRING)) { + zephir_get_strval(&first, first_param); + } else { + ZEPHIR_INIT_VAR(&first); + } + if (UNEXPECTED(Z_TYPE_P(second_param) != IS_STRING && Z_TYPE_P(second_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'second' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(second_param) == IS_STRING)) { + zephir_get_strval(&second, second_param); + } else { + ZEPHIR_INIT_VAR(&second); + } + + + ZVAL_LONG(&_0, 1); + ZEPHIR_CALL_FUNCTION(&_1, "count_chars", NULL, 274, &first, &_0); + zephir_check_call_status(); + ZVAL_LONG(&_0, 1); + ZEPHIR_CALL_FUNCTION(&_2, "count_chars", NULL, 274, &second, &_0); + zephir_check_call_status(); + RETURN_MM_BOOL(ZEPHIR_IS_IDENTICAL(&_1, &_2)); } -// 2197 "parser.php.c" - break; - case 74: -// 478 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, isLower) { - phvolt_ret_raw_statement(&vvgotominor.vv186, &vvmsp[-3].minor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-6].minor); - vv_destructor(68,&vvmsp[-5].minor); - vv_destructor(32,&vvmsp[-4].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(69,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *text_param = NULL, *encoding_param = NULL, _0$$3, _1$$4, _2$$4; + zval text, encoding; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&encoding); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(text) + Z_PARAM_OPTIONAL + Z_PARAM_STR(encoding) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &text_param, &encoding_param); + if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { + zephir_get_strval(&text, text_param); + } else { + ZEPHIR_INIT_VAR(&text); + } + if (!encoding_param) { + ZEPHIR_INIT_VAR(&encoding); + ZVAL_STRING(&encoding, "UTF-8"); + } else { + if (UNEXPECTED(Z_TYPE_P(encoding_param) != IS_STRING && Z_TYPE_P(encoding_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'encoding' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(encoding_param) == IS_STRING)) { + zephir_get_strval(&encoding, encoding_param); + } else { + ZEPHIR_INIT_VAR(&encoding); + } + } + + + if ((zephir_function_exists_ex(ZEND_STRL("mb_strtolower")) == SUCCESS)) { + ZEPHIR_CALL_FUNCTION(&_0$$3, "mb_strtolower", NULL, 25, &text, &encoding); + zephir_check_call_status(); + RETURN_MM_BOOL(ZEPHIR_IS_IDENTICAL(&text, &_0$$3)); + } else { + ZEPHIR_INIT_VAR(&_2$$4); + zephir_fast_strtolower(&_2$$4, &text); + RETURN_MM_BOOL(ZEPHIR_IS_IDENTICAL(&text, &_2$$4)); + } } -// 2210 "parser.php.c" - break; - case 75: -// 482 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, isPalindrome) { - phvolt_ret_extends_statement(&vvgotominor.vv186, &vvmsp[-1].minor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-3].minor); - vv_destructor(70,&vvmsp[-2].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *text_param = NULL, _0; + zval text; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(text) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &text_param); + if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { + zephir_get_strval(&text, text_param); + } else { + ZEPHIR_INIT_VAR(&text); + } + + + ZEPHIR_CALL_FUNCTION(&_0, "strrev", NULL, 275, &text); + zephir_check_call_status(); + RETURN_MM_BOOL(ZEPHIR_IS_IDENTICAL(&_0, &text)); } -// 2220 "parser.php.c" - break; - case 76: -// 486 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, isUpper) { - phvolt_ret_include_statement(&vvgotominor.vv186, &vvmsp[-1].minor.vv186, NULL, status->scanner_state); - vv_destructor(1,&vvmsp[-3].minor); - vv_destructor(71,&vvmsp[-2].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *text_param = NULL, *encoding_param = NULL, _0$$3, _1$$4, _2$$4; + zval text, encoding; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&encoding); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(text) + Z_PARAM_OPTIONAL + Z_PARAM_STR(encoding) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &text_param, &encoding_param); + if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { + zephir_get_strval(&text, text_param); + } else { + ZEPHIR_INIT_VAR(&text); + } + if (!encoding_param) { + ZEPHIR_INIT_VAR(&encoding); + ZVAL_STRING(&encoding, "UTF-8"); + } else { + if (UNEXPECTED(Z_TYPE_P(encoding_param) != IS_STRING && Z_TYPE_P(encoding_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'encoding' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(encoding_param) == IS_STRING)) { + zephir_get_strval(&encoding, encoding_param); + } else { + ZEPHIR_INIT_VAR(&encoding); + } + } + + + if ((zephir_function_exists_ex(ZEND_STRL("mb_strtoupper")) == SUCCESS)) { + ZEPHIR_CALL_FUNCTION(&_0$$3, "mb_strtoupper", NULL, 268, &text, &encoding); + zephir_check_call_status(); + RETURN_MM_BOOL(ZEPHIR_IS_IDENTICAL(&text, &_0$$3)); + } else { + ZEPHIR_INIT_VAR(&_2$$4); + zephir_fast_strtoupper(&_2$$4, &text); + RETURN_MM_BOOL(ZEPHIR_IS_IDENTICAL(&text, &_2$$4)); + } } -// 2230 "parser.php.c" - break; - case 77: -// 490 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, lower) { - phvolt_ret_include_statement(&vvgotominor.vv186, &vvmsp[-3].minor.vv186, &vvmsp[-1].minor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-5].minor); - vv_destructor(71,&vvmsp[-4].minor); - vv_destructor(72,&vvmsp[-2].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *text_param = NULL, *encoding_param = NULL, _0; + zval text, encoding; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&encoding); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(text) + Z_PARAM_OPTIONAL + Z_PARAM_STR(encoding) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &text_param, &encoding_param); + if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { + zephir_get_strval(&text, text_param); + } else { + ZEPHIR_INIT_VAR(&text); + } + if (!encoding_param) { + ZEPHIR_INIT_VAR(&encoding); + ZVAL_STRING(&encoding, "UTF-8"); + } else { + if (UNEXPECTED(Z_TYPE_P(encoding_param) != IS_STRING && Z_TYPE_P(encoding_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'encoding' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(encoding_param) == IS_STRING)) { + zephir_get_strval(&encoding, encoding_param); + } else { + ZEPHIR_INIT_VAR(&encoding); + } + } + + + if ((zephir_function_exists_ex(ZEND_STRL("mb_strtolower")) == SUCCESS)) { + ZEPHIR_RETURN_CALL_FUNCTION("mb_strtolower", NULL, 25, &text, &encoding); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_INIT_VAR(&_0); + zephir_fast_strtolower(&_0, &text); + RETURN_CCTOR(&_0); } -// 2241 "parser.php.c" - break; - case 78: -// 494 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, random) { - phvolt_ret_do_statement(&vvgotominor.vv186, &vvmsp[-1].minor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-3].minor); - vv_destructor(73,&vvmsp[-2].minor); - vv_destructor(32,&vvmsp[0].minor); + zval text; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + long length; + zval *type_param = NULL, *length_param = NULL, pool, _0$$3, _1$$3, _2$$3, _3$$3, _4$$4, _5$$4, _6$$4, _7$$4, _8$$4, _9$$4, _10$$5, _11$$5, _12$$6, _13$$6, _14$$7, _15$$8, _16$$8, _17$$8, _18$$8, _19$$8, _20$$8, _21$$8, _22$$9, _23$$9, _24$$9; + zend_long type, ZEPHIR_LAST_CALL_STATUS, end = 0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&pool); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_8$$4); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&_11$$5); + ZVAL_UNDEF(&_12$$6); + ZVAL_UNDEF(&_13$$6); + ZVAL_UNDEF(&_14$$7); + ZVAL_UNDEF(&_15$$8); + ZVAL_UNDEF(&_16$$8); + ZVAL_UNDEF(&_17$$8); + ZVAL_UNDEF(&_18$$8); + ZVAL_UNDEF(&_19$$8); + ZVAL_UNDEF(&_20$$8); + ZVAL_UNDEF(&_21$$8); + ZVAL_UNDEF(&_22$$9); + ZVAL_UNDEF(&_23$$9); + ZVAL_UNDEF(&_24$$9); + ZVAL_UNDEF(&text); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 2) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(type) + Z_PARAM_LONG(length) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 2, &type_param, &length_param); + if (!type_param) { + type = 0; + } else { + type = zephir_get_intval(type_param); + } + if (!length_param) { + length = 8; + } else { + length = zephir_get_intval(length_param); + } + + + ZEPHIR_INIT_VAR(&text); + do { + if (type == 1) { + ZEPHIR_INIT_VAR(&_0$$3); + ZVAL_STRING(&_0$$3, "a"); + ZEPHIR_INIT_VAR(&_1$$3); + ZVAL_STRING(&_1$$3, "z"); + ZEPHIR_CALL_FUNCTION(&_2$$3, "range", NULL, 276, &_0$$3, &_1$$3); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_0$$3); + ZVAL_STRING(&_0$$3, "A"); + ZEPHIR_INIT_NVAR(&_1$$3); + ZVAL_STRING(&_1$$3, "Z"); + ZEPHIR_CALL_FUNCTION(&_3$$3, "range", NULL, 276, &_0$$3, &_1$$3); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&pool); + zephir_fast_array_merge(&pool, &_2$$3, &_3$$3); + break; + } + if (type == 2) { + ZVAL_LONG(&_4$$4, 0); + ZVAL_LONG(&_5$$4, 9); + ZEPHIR_CALL_FUNCTION(&_6$$4, "range", NULL, 276, &_4$$4, &_5$$4); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_7$$4); + ZVAL_STRING(&_7$$4, "a"); + ZEPHIR_INIT_VAR(&_8$$4); + ZVAL_STRING(&_8$$4, "f"); + ZEPHIR_CALL_FUNCTION(&_9$$4, "range", NULL, 276, &_7$$4, &_8$$4); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&pool); + zephir_fast_array_merge(&pool, &_6$$4, &_9$$4); + break; + } + if (type == 3) { + ZVAL_LONG(&_10$$5, 0); + ZVAL_LONG(&_11$$5, 9); + ZEPHIR_CALL_FUNCTION(&pool, "range", NULL, 276, &_10$$5, &_11$$5); + zephir_check_call_status(); + break; + } + if (type == 4) { + ZVAL_LONG(&_12$$6, 1); + ZVAL_LONG(&_13$$6, 9); + ZEPHIR_CALL_FUNCTION(&pool, "range", NULL, 276, &_12$$6, &_13$$6); + zephir_check_call_status(); + break; + } + if (type == 5) { + ZEPHIR_INIT_VAR(&_14$$7); + ZVAL_STRING(&_14$$7, "2345679ACDEFHJKLMNPRSTUVWXYZ"); + ZEPHIR_CALL_FUNCTION(&pool, "str_split", NULL, 108, &_14$$7); + zephir_check_call_status(); + break; + } + ZVAL_LONG(&_15$$8, 0); + ZVAL_LONG(&_16$$8, 9); + ZEPHIR_CALL_FUNCTION(&_17$$8, "range", NULL, 276, &_15$$8, &_16$$8); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_18$$8); + ZVAL_STRING(&_18$$8, "a"); + ZEPHIR_INIT_VAR(&_19$$8); + ZVAL_STRING(&_19$$8, "z"); + ZEPHIR_CALL_FUNCTION(&_20$$8, "range", NULL, 276, &_18$$8, &_19$$8); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_18$$8); + ZVAL_STRING(&_18$$8, "A"); + ZEPHIR_INIT_NVAR(&_19$$8); + ZVAL_STRING(&_19$$8, "Z"); + ZEPHIR_CALL_FUNCTION(&_21$$8, "range", NULL, 276, &_18$$8, &_19$$8); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&pool, "array_merge", NULL, 277, &_17$$8, &_20$$8, &_21$$8); + zephir_check_call_status(); + break; + } while(0); + + end = (zephir_fast_count_int(&pool) - 1); + while (1) { + if (!(zephir_fast_strlen_ev(&text) < length)) { + break; + } + ZVAL_LONG(&_23$$9, 0); + ZVAL_LONG(&_24$$9, end); + zephir_array_fetch_long(&_22$$9, &pool, zephir_mt_rand(zephir_get_intval(&_23$$9), zephir_get_intval(&_24$$9)), PH_NOISY | PH_READONLY, "phalcon/Helper/Str.zep", 653); + zephir_concat_self(&text, &_22$$9); + } + RETURN_CTOR(&text); } -// 2251 "parser.php.c" - break; - case 79: -// 498 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, reduceSlashes) { - phvolt_ret_return_statement(&vvgotominor.vv186, &vvmsp[-1].minor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-3].minor); - vv_destructor(74,&vvmsp[-2].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *text_param = NULL, _0, _1; + zval text; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(text) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &text_param); + if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { + zephir_get_strval(&text, text_param); + } else { + ZEPHIR_INIT_VAR(&text); + } + + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "#(?scanner_state); - vv_destructor(1,&vvmsp[-7].minor); - vv_destructor(75,&vvmsp[-6].minor); - vv_destructor(58,&vvmsp[-5].minor); - vv_destructor(32,&vvmsp[-4].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(76,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_bool ignoreCase; + zval *text_param = NULL, *start_param = NULL, *ignoreCase_param = NULL, _0; + zval text, start; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&start); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(text) + Z_PARAM_STR(start) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(ignoreCase) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &text_param, &start_param, &ignoreCase_param); + if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { + zephir_get_strval(&text, text_param); + } else { + ZEPHIR_INIT_VAR(&text); + } + if (UNEXPECTED(Z_TYPE_P(start_param) != IS_STRING && Z_TYPE_P(start_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'start' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(start_param) == IS_STRING)) { + zephir_get_strval(&start, start_param); + } else { + ZEPHIR_INIT_VAR(&start); + } + if (!ignoreCase_param) { + ignoreCase = 1; + } else { + ignoreCase = zephir_get_boolval(ignoreCase_param); + } + + + ZVAL_BOOL(&_0, (ignoreCase ? 1 : 0)); + RETURN_MM_BOOL(zephir_start_with(&text, &start, &_0)); } -// 2275 "parser.php.c" - break; - case 81: -// 506 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, uncamelize) { - phvolt_ret_autoescape_statement(&vvgotominor.vv186, 1, &vvmsp[-3].minor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-7].minor); - vv_destructor(75,&vvmsp[-6].minor); - vv_destructor(59,&vvmsp[-5].minor); - vv_destructor(32,&vvmsp[-4].minor); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(76,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *text_param = NULL, *delimiter = NULL, delimiter_sub, __$null, _0; + zval text; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&delimiter_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(text) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(delimiter) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &text_param, &delimiter); + if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { + zephir_get_strval(&text, text_param); + } else { + ZEPHIR_INIT_VAR(&text); + } + if (!delimiter) { + delimiter = &delimiter_sub; + delimiter = &__$null; + } + + + ZEPHIR_INIT_VAR(&_0); + zephir_uncamelize(&_0, &text, delimiter ); + RETURN_CCTOR(&_0); } -// 2289 "parser.php.c" - break; - case 82: -// 510 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, underscore) { - phvolt_ret_break_statement(&vvgotominor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(77,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *text_param = NULL, _0, _1, _2; + zval text; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(text) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &text_param); + if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { + zephir_get_strval(&text, text_param); + } else { + ZEPHIR_INIT_VAR(&text); + } + + + ZEPHIR_INIT_VAR(&_0); + zephir_fast_trim(&_0, &text, NULL , ZEPHIR_TRIM_BOTH); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "#\\s+#"); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "_"); + ZEPHIR_RETURN_CALL_FUNCTION("preg_replace", NULL, 50, &_1, &_2, &_0); + zephir_check_call_status(); + RETURN_MM(); } -// 2299 "parser.php.c" - break; - case 83: -// 514 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Helper_Str, upper) { - phvolt_ret_continue_statement(&vvgotominor.vv186, status->scanner_state); - vv_destructor(1,&vvmsp[-2].minor); - vv_destructor(78,&vvmsp[-1].minor); - vv_destructor(32,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *text_param = NULL, *encoding_param = NULL, _0; + zval text, encoding; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&encoding); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(text) + Z_PARAM_OPTIONAL + Z_PARAM_STR(encoding) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &text_param, &encoding_param); + if (UNEXPECTED(Z_TYPE_P(text_param) != IS_STRING && Z_TYPE_P(text_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'text' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(text_param) == IS_STRING)) { + zephir_get_strval(&text, text_param); + } else { + ZEPHIR_INIT_VAR(&text); + } + if (!encoding_param) { + ZEPHIR_INIT_VAR(&encoding); + ZVAL_STRING(&encoding, "UTF-8"); + } else { + if (UNEXPECTED(Z_TYPE_P(encoding_param) != IS_STRING && Z_TYPE_P(encoding_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'encoding' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(encoding_param) == IS_STRING)) { + zephir_get_strval(&encoding, encoding_param); + } else { + ZEPHIR_INIT_VAR(&encoding); + } + } + + + if ((zephir_function_exists_ex(ZEND_STRL("mb_strtoupper")) == SUCCESS)) { + ZEPHIR_RETURN_CALL_FUNCTION("mb_strtoupper", NULL, 268, &text, &encoding); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_INIT_VAR(&_0); + zephir_fast_strtoupper(&_0, &text); + RETURN_CCTOR(&_0); } -// 2309 "parser.php.c" - break; - case 84: -// 518 "parser.php.lemon" + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Annotations_Annotation) { - phvolt_ret_literal_zval(&vvgotominor.vv186, PHVOLT_T_RAW_FRAGMENT, vvmsp[0].minor.vv0, status->scanner_state); + ZEPHIR_REGISTER_CLASS(Phalcon\\Annotations, Annotation, phalcon, annotations_annotation, phalcon_annotations_annotation_method_entry, 0); + + zend_declare_property_null(phalcon_annotations_annotation_ce, SL("arguments"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_annotations_annotation_ce, SL("exprArguments"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_annotations_annotation_ce, SL("name"), ZEND_ACC_PROTECTED); + phalcon_annotations_annotation_ce->create_object = zephir_init_properties_Phalcon_Annotations_Annotation; + + return SUCCESS; } -// 2316 "parser.php.c" - break; - case 85: -// 522 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_Annotation, __construct) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_MINUS, NULL, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(22,&vvmsp[-1].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_4 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *reflectionData_param = NULL, name, exprArguments, argument, resolvedArgument, _0$$3, *_1$$4, _2$$4, _3$$5, _5$$8; + zval reflectionData, arguments; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&reflectionData); + ZVAL_UNDEF(&arguments); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&exprArguments); + ZVAL_UNDEF(&argument); + ZVAL_UNDEF(&resolvedArgument); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_5$$8); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(reflectionData) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &reflectionData_param); + ZEPHIR_OBS_COPY_OR_DUP(&reflectionData, reflectionData_param); + + + ZEPHIR_OBS_VAR(&name); + if (zephir_array_isset_string_fetch(&name, &reflectionData, SL("name"), 0)) { + zephir_array_fetch_string(&_0$$3, &reflectionData, SL("name"), PH_NOISY | PH_READONLY, "phalcon/Annotations/Annotation.zep", 48); + zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &_0$$3); + } + ZEPHIR_OBS_VAR(&exprArguments); + if (zephir_array_isset_string_fetch(&exprArguments, &reflectionData, SL("arguments"), 0)) { + ZEPHIR_INIT_VAR(&arguments); + array_init(&arguments); + zephir_is_iterable(&exprArguments, 0, "phalcon/Annotations/Annotation.zep", 69); + if (Z_TYPE_P(&exprArguments) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&exprArguments), _1$$4) + { + ZEPHIR_INIT_NVAR(&argument); + ZVAL_COPY(&argument, _1$$4); + zephir_array_fetch_string(&_3$$5, &argument, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Annotations/Annotation.zep", 60); + ZEPHIR_CALL_METHOD(&resolvedArgument, this_ptr, "getexpression", &_4, 0, &_3$$5); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&name); + if (zephir_array_isset_string_fetch(&name, &argument, SL("name"), 0)) { + zephir_array_update_zval(&arguments, &name, &resolvedArgument, PH_COPY | PH_SEPARATE); + } else { + zephir_array_append(&arguments, &resolvedArgument, PH_SEPARATE, "phalcon/Annotations/Annotation.zep", 65); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &exprArguments, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2$$4, &exprArguments, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2$$4)) { + break; + } + ZEPHIR_CALL_METHOD(&argument, &exprArguments, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_fetch_string(&_5$$8, &argument, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Annotations/Annotation.zep", 60); + ZEPHIR_CALL_METHOD(&resolvedArgument, this_ptr, "getexpression", &_4, 0, &_5$$8); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&name); + if (zephir_array_isset_string_fetch(&name, &argument, SL("name"), 0)) { + zephir_array_update_zval(&arguments, &name, &resolvedArgument, PH_COPY | PH_SEPARATE); + } else { + zephir_array_append(&arguments, &resolvedArgument, PH_SEPARATE, "phalcon/Annotations/Annotation.zep", 65); + } + ZEPHIR_CALL_METHOD(NULL, &exprArguments, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&argument); + zephir_update_property_zval(this_ptr, ZEND_STRL("arguments"), &arguments); + zephir_update_property_zval(this_ptr, ZEND_STRL("exprArguments"), &exprArguments); + } + ZEPHIR_MM_RESTORE(); } -// 2324 "parser.php.c" - break; - case 86: -// 526 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_Annotation, getArgument) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_PLUS, NULL, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(21,&vvmsp[-1].minor); + zval *position, position_sub, argument, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&position_sub); + ZVAL_UNDEF(&argument); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(position) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &position); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_fetch(&argument, &_0, position, 1)) { + RETURN_CTORW(&argument); + } + RETURN_NULL(); } -// 2332 "parser.php.c" - break; - case 87: -// 530 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_Annotation, getArguments) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_SUB, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(22,&vvmsp[-1].minor); + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "arguments"); } -// 2340 "parser.php.c" - break; - case 88: -// 534 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_Annotation, getExprArguments) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ADD, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(21,&vvmsp[-1].minor); + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "exprArguments"); } -// 2348 "parser.php.c" - break; - case 89: -// 538 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_Annotation, getExpression) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_MUL, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(19,&vvmsp[-1].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_4 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *expr_param = NULL, value, item, resolvedItem, arrayValue, name, type, _0$$7, *_1$$7, _2$$7, _3$$8, _5$$11, _6$$15, _7$$15; + zval expr; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&expr); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&item); + ZVAL_UNDEF(&resolvedItem); + ZVAL_UNDEF(&arrayValue); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&_0$$7); + ZVAL_UNDEF(&_2$$7); + ZVAL_UNDEF(&_3$$8); + ZVAL_UNDEF(&_5$$11); + ZVAL_UNDEF(&_6$$15); + ZVAL_UNDEF(&_7$$15); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(expr) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &expr_param); + ZEPHIR_OBS_COPY_OR_DUP(&expr, expr_param); + + + ZEPHIR_OBS_VAR(&type); + zephir_array_fetch_string(&type, &expr, SL("type"), PH_NOISY, "phalcon/Annotations/Annotation.zep", 111); + do { + if (ZEPHIR_IS_LONG(&type, 301) || ZEPHIR_IS_LONG(&type, 302) || ZEPHIR_IS_LONG(&type, 303) || ZEPHIR_IS_LONG(&type, 307)) { + ZEPHIR_OBS_VAR(&value); + zephir_array_fetch_string(&value, &expr, SL("value"), PH_NOISY, "phalcon/Annotations/Annotation.zep", 118); + break; + } + if (ZEPHIR_IS_LONG(&type, 304)) { + ZEPHIR_INIT_NVAR(&value); + ZVAL_NULL(&value); + break; + } + if (ZEPHIR_IS_LONG(&type, 305)) { + ZEPHIR_INIT_NVAR(&value); + ZVAL_BOOL(&value, 0); + break; + } + if (ZEPHIR_IS_LONG(&type, 306)) { + ZEPHIR_INIT_NVAR(&value); + ZVAL_BOOL(&value, 1); + break; + } + if (ZEPHIR_IS_LONG(&type, 308)) { + ZEPHIR_INIT_VAR(&arrayValue); + array_init(&arrayValue); + zephir_array_fetch_string(&_0$$7, &expr, SL("items"), PH_NOISY | PH_READONLY, "phalcon/Annotations/Annotation.zep", 136); + zephir_is_iterable(&_0$$7, 0, "phalcon/Annotations/Annotation.zep", 148); + if (Z_TYPE_P(&_0$$7) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0$$7), _1$$7) + { + ZEPHIR_INIT_NVAR(&item); + ZVAL_COPY(&item, _1$$7); + zephir_array_fetch_string(&_3$$8, &item, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Annotations/Annotation.zep", 139); + ZEPHIR_CALL_METHOD(&resolvedItem, this_ptr, "getexpression", &_4, 154, &_3$$8); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&name); + if (zephir_array_isset_string_fetch(&name, &item, SL("name"), 0)) { + zephir_array_update_zval(&arrayValue, &name, &resolvedItem, PH_COPY | PH_SEPARATE); + } else { + zephir_array_append(&arrayValue, &resolvedItem, PH_SEPARATE, "phalcon/Annotations/Annotation.zep", 144); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_0$$7, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2$$7, &_0$$7, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2$$7)) { + break; + } + ZEPHIR_CALL_METHOD(&item, &_0$$7, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_fetch_string(&_5$$11, &item, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Annotations/Annotation.zep", 139); + ZEPHIR_CALL_METHOD(&resolvedItem, this_ptr, "getexpression", &_4, 154, &_5$$11); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&name); + if (zephir_array_isset_string_fetch(&name, &item, SL("name"), 0)) { + zephir_array_update_zval(&arrayValue, &name, &resolvedItem, PH_COPY | PH_SEPARATE); + } else { + zephir_array_append(&arrayValue, &resolvedItem, PH_SEPARATE, "phalcon/Annotations/Annotation.zep", 144); + } + ZEPHIR_CALL_METHOD(NULL, &_0$$7, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&item); + RETURN_CCTOR(&arrayValue); + } + if (ZEPHIR_IS_LONG(&type, 300)) { + object_init_ex(return_value, phalcon_annotations_annotation_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 155, &expr); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_INIT_VAR(&_6$$15); + object_init_ex(&_6$$15, phalcon_annotations_exception_ce); + ZEPHIR_INIT_VAR(&_7$$15); + ZEPHIR_CONCAT_SVS(&_7$$15, "The expression ", &type, " is unknown"); + ZEPHIR_CALL_METHOD(NULL, &_6$$15, "__construct", NULL, 8, &_7$$15); + zephir_check_call_status(); + zephir_throw_exception_debug(&_6$$15, "phalcon/Annotations/Annotation.zep", 154); + ZEPHIR_MM_RESTORE(); + return; + } while(0); + + RETURN_CCTOR(&value); } -// 2356 "parser.php.c" - break; - case 90: -// 542 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_Annotation, getName) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_POW, &vvmsp[-3].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(19,&vvmsp[-2].minor); - vv_destructor(19,&vvmsp[-1].minor); + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "name"); } -// 2365 "parser.php.c" - break; - case 91: -// 546 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_Annotation, getNamedArgument) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_DIV, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(18,&vvmsp[-1].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *name_param = NULL, argument, _0; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&argument); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_fetch(&argument, &_0, &name, 1)) { + RETURN_CTOR(&argument); + } + RETURN_MM_NULL(); } -// 2373 "parser.php.c" - break; - case 92: -// 550 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_Annotation, getNamedParameter) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_MOD, &vvmsp[-3].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(18,&vvmsp[-2].minor); - vv_destructor(18,&vvmsp[-1].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + + + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getnamedargument", NULL, 0, &name); + zephir_check_call_status(); + RETURN_MM(); } -// 2382 "parser.php.c" - break; - case 93: -// 554 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_Annotation, hasArgument) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_MOD, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(20,&vvmsp[-1].minor); + zval *position, position_sub, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&position_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(position) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &position); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); + RETURN_BOOL(zephir_array_isset(&_0, position)); } -// 2390 "parser.php.c" - break; - case 94: -// 558 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_Annotation, numberArguments) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_AND, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(6,&vvmsp[-1].minor); + zval _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); + RETURN_LONG(zephir_fast_count_int(&_0)); } -// 2398 "parser.php.c" - break; - case 95: -// 562 "parser.php.lemon" + +zend_object *zephir_init_properties_Phalcon_Annotations_Annotation(zend_class_entry *class_type) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_OR, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(7,&vvmsp[-1].minor); + zval _0, _2, _1$$3, _3$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("exprArguments"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("exprArguments"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("arguments"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("arguments"), &_3$$4); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } } -// 2406 "parser.php.c" - break; - case 96: -// 566 "parser.php.lemon" + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Annotations_AnnotationsFactory) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_CONCAT, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(23,&vvmsp[-1].minor); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Annotations, AnnotationsFactory, phalcon, annotations_annotationsfactory, phalcon_factory_abstractfactory_ce, phalcon_annotations_annotationsfactory_method_entry, 0); + + zend_declare_property_string(phalcon_annotations_annotationsfactory_ce, SL("exception"), "Phalcon\\Annotations\\Exception", ZEND_ACC_PROTECTED); + return SUCCESS; } -// 2414 "parser.php.c" - break; - case 97: -// 570 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_AnnotationsFactory, __construct) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_PIPE, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(25,&vvmsp[-1].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *services_param = NULL; + zval services; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&services); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(services) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &services_param); + if (!services_param) { + ZEPHIR_INIT_VAR(&services); + array_init(&services); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&services, services_param); + } + + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "init", NULL, 0, &services); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -// 2422 "parser.php.c" - break; - case 98: -// 574 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_AnnotationsFactory, load) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_RANGE, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(5,&vvmsp[-1].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_1 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *config = NULL, config_sub, name, options, _0, _2, _3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&config_sub); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(config) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &config); + ZEPHIR_SEPARATE_PARAM(config); + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "checkconfig", NULL, 0, config); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(config, &_0); + ZEPHIR_OBS_VAR(&name); + zephir_array_fetch_string(&name, config, SL("adapter"), PH_NOISY, "phalcon/Annotations/AnnotationsFactory.zep", 49); + zephir_array_unset_string(config, SL("adapter"), PH_SEPARATE); + ZEPHIR_INIT_VAR(&_2); + array_init(&_2); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "options"); + ZEPHIR_CALL_CE_STATIC(&options, phalcon_helper_arr_ce, "get", &_1, 16, config, &_3, &_2); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "newinstance", NULL, 0, &name, &options); + zephir_check_call_status(); + RETURN_MM(); } -// 2430 "parser.php.c" - break; - case 99: -// 578 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_AnnotationsFactory, newInstance) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_EQUALS, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(10,&vvmsp[-1].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval options, _0; + zval *name_param = NULL, *options_param = NULL, definition; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(name) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &name_param, &options_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + } + + + ZEPHIR_CALL_METHOD(&definition, this_ptr, "getservice", NULL, 0, &name); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 1, 0); + zephir_array_fast_append(&_0, &options); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(return_value, &definition, &_0); + zephir_check_call_status(); + RETURN_MM(); } -// 2438 "parser.php.c" - break; - case 100: -// 582 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_AnnotationsFactory, getAdapters) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOT_ISSET, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(11,&vvmsp[-1].minor); - vv_destructor(80,&vvmsp[0].minor); + zval *this_ptr = getThis(); + + + + zephir_create_array(return_value, 3, 0); + add_assoc_stringl_ex(return_value, SL("apcu"), SL("Phalcon\\Annotations\\Adapter\\Apcu")); + add_assoc_stringl_ex(return_value, SL("memory"), SL("Phalcon\\Annotations\\Adapter\\Memory")); + add_assoc_stringl_ex(return_value, SL("stream"), SL("Phalcon\\Annotations\\Adapter\\Stream")); + return; } -// 2447 "parser.php.c" - break; - case 101: -// 586 "parser.php.lemon" + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Annotations_Collection) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ISSET, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(9,&vvmsp[-1].minor); - vv_destructor(80,&vvmsp[0].minor); + ZEPHIR_REGISTER_CLASS(Phalcon\\Annotations, Collection, phalcon, annotations_collection, phalcon_annotations_collection_method_entry, 0); + + zend_declare_property_null(phalcon_annotations_collection_ce, SL("annotations"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_annotations_collection_ce, SL("position"), 0, ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_annotations_collection_ce, 1, zend_ce_iterator); + zend_class_implements(phalcon_annotations_collection_ce, 1, zend_ce_countable); + return SUCCESS; } -// 2456 "parser.php.c" - break; - case 102: -// 590 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_Collection, __construct) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOT_ISEMPTY, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(11,&vvmsp[-1].minor); - vv_destructor(81,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_3 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *reflectionData_param = NULL, annotations, annotationData, *_0, _1, _2$$3, _4$$4; + zval reflectionData; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&reflectionData); + ZVAL_UNDEF(&annotations); + ZVAL_UNDEF(&annotationData); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(reflectionData) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &reflectionData_param); + if (!reflectionData_param) { + ZEPHIR_INIT_VAR(&reflectionData); + array_init(&reflectionData); + } else { + zephir_get_arrval(&reflectionData, reflectionData_param); + } + + + ZEPHIR_INIT_VAR(&annotations); + array_init(&annotations); + zephir_is_iterable(&reflectionData, 0, "phalcon/Annotations/Collection.zep", 58); + if (Z_TYPE_P(&reflectionData) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&reflectionData), _0) + { + ZEPHIR_INIT_NVAR(&annotationData); + ZVAL_COPY(&annotationData, _0); + ZEPHIR_INIT_NVAR(&_2$$3); + object_init_ex(&_2$$3, phalcon_annotations_annotation_ce); + ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", &_3, 155, &annotationData); + zephir_check_call_status(); + zephir_array_append(&annotations, &_2$$3, PH_SEPARATE, "phalcon/Annotations/Collection.zep", 55); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &reflectionData, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &reflectionData, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&annotationData, &reflectionData, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_4$$4); + object_init_ex(&_4$$4, phalcon_annotations_annotation_ce); + ZEPHIR_CALL_METHOD(NULL, &_4$$4, "__construct", &_3, 155, &annotationData); + zephir_check_call_status(); + zephir_array_append(&annotations, &_4$$4, PH_SEPARATE, "phalcon/Annotations/Collection.zep", 55); + ZEPHIR_CALL_METHOD(NULL, &reflectionData, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&annotationData); + zephir_update_property_zval(this_ptr, ZEND_STRL("annotations"), &annotations); + ZEPHIR_MM_RESTORE(); } -// 2465 "parser.php.c" - break; - case 103: -// 594 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_Collection, count) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ISEMPTY, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(9,&vvmsp[-1].minor); - vv_destructor(81,&vvmsp[0].minor); + zval _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("annotations"), PH_NOISY_CC | PH_READONLY); + RETURN_LONG(zephir_fast_count_int(&_0)); } -// 2474 "parser.php.c" - break; - case 104: -// 598 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_Collection, current) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOT_ISEVEN, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(11,&vvmsp[-1].minor); - vv_destructor(82,&vvmsp[0].minor); + zval annotation, _0, _1; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&annotation); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("annotations"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_1, this_ptr, ZEND_STRL("position"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_array_isset_fetch(&annotation, &_0, &_1, 1))) { + RETURN_BOOL(0); + } + RETURN_CTORW(&annotation); } -// 2483 "parser.php.c" - break; - case 105: -// 602 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_Collection, get) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ISEVEN, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(9,&vvmsp[-1].minor); - vv_destructor(82,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, annotation, annotations, _0, *_1, _2, _5, _3$$3, _4$$5; + zval name, _6; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&annotation); + ZVAL_UNDEF(&annotations); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + zephir_get_strval(&name, name_param); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("annotations"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&annotations, &_0); + zephir_is_iterable(&annotations, 0, "phalcon/Annotations/Collection.zep", 98); + if (Z_TYPE_P(&annotations) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&annotations), _1) + { + ZEPHIR_INIT_NVAR(&annotation); + ZVAL_COPY(&annotation, _1); + ZEPHIR_CALL_METHOD(&_3$$3, &annotation, "getname", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_EQUAL(&name, &_3$$3)) { + RETURN_CCTOR(&annotation); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &annotations, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &annotations, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&annotation, &annotations, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_4$$5, &annotation, "getname", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_EQUAL(&name, &_4$$5)) { + RETURN_CCTOR(&annotation); + } + ZEPHIR_CALL_METHOD(NULL, &annotations, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&annotation); + ZEPHIR_INIT_VAR(&_5); + object_init_ex(&_5, phalcon_annotations_exception_ce); + ZEPHIR_INIT_VAR(&_6); + ZEPHIR_CONCAT_SVS(&_6, "Collection doesn't have an annotation called '", &name, "'"); + ZEPHIR_CALL_METHOD(NULL, &_5, "__construct", NULL, 8, &_6); + zephir_check_call_status(); + zephir_throw_exception_debug(&_5, "phalcon/Annotations/Collection.zep", 100); + ZEPHIR_MM_RESTORE(); + return; } -// 2492 "parser.php.c" - break; - case 106: -// 606 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_Collection, getAll) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOT_ISODD, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(11,&vvmsp[-1].minor); - vv_destructor(83,&vvmsp[0].minor); + zval found; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, annotations, annotation, _0, *_1, _2, _3$$3, _4$$5; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&annotations); + ZVAL_UNDEF(&annotation); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&found); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + zephir_get_strval(&name, name_param); + + + ZEPHIR_INIT_VAR(&found); + array_init(&found); + zephir_read_property(&_0, this_ptr, ZEND_STRL("annotations"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&annotations, &_0); + zephir_is_iterable(&annotations, 0, "phalcon/Annotations/Collection.zep", 120); + if (Z_TYPE_P(&annotations) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&annotations), _1) + { + ZEPHIR_INIT_NVAR(&annotation); + ZVAL_COPY(&annotation, _1); + ZEPHIR_CALL_METHOD(&_3$$3, &annotation, "getname", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_EQUAL(&name, &_3$$3)) { + zephir_array_append(&found, &annotation, PH_SEPARATE, "phalcon/Annotations/Collection.zep", 116); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &annotations, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &annotations, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&annotation, &annotations, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_4$$5, &annotation, "getname", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_EQUAL(&name, &_4$$5)) { + zephir_array_append(&found, &annotation, PH_SEPARATE, "phalcon/Annotations/Collection.zep", 116); + } + ZEPHIR_CALL_METHOD(NULL, &annotations, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&annotation); + RETURN_CTOR(&found); } -// 2501 "parser.php.c" - break; - case 107: -// 610 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_Collection, getAnnotations) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ISODD, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(9,&vvmsp[-1].minor); - vv_destructor(83,&vvmsp[0].minor); + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "annotations"); } -// 2510 "parser.php.c" - break; - case 108: -// 614 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_Collection, has) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOT_ISNUMERIC, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(11,&vvmsp[-1].minor); - vv_destructor(84,&vvmsp[0].minor); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, annotations, annotation, _0, *_1, _2, _3$$3, _4$$5; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&annotations); + ZVAL_UNDEF(&annotation); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + zephir_get_strval(&name, name_param); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("annotations"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&annotations, &_0); + zephir_is_iterable(&annotations, 0, "phalcon/Annotations/Collection.zep", 146); + if (Z_TYPE_P(&annotations) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&annotations), _1) + { + ZEPHIR_INIT_NVAR(&annotation); + ZVAL_COPY(&annotation, _1); + ZEPHIR_CALL_METHOD(&_3$$3, &annotation, "getname", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_EQUAL(&name, &_3$$3)) { + RETURN_MM_BOOL(1); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &annotations, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &annotations, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; + } + ZEPHIR_CALL_METHOD(&annotation, &annotations, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_4$$5, &annotation, "getname", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_EQUAL(&name, &_4$$5)) { + RETURN_MM_BOOL(1); + } + ZEPHIR_CALL_METHOD(NULL, &annotations, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&annotation); + RETURN_MM_BOOL(0); } -// 2519 "parser.php.c" - break; - case 109: -// 618 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_Collection, key) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ISNUMERIC, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(9,&vvmsp[-1].minor); - vv_destructor(84,&vvmsp[0].minor); + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "position"); } -// 2528 "parser.php.c" - break; - case 110: -// 622 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_Collection, next) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOT_ISSCALAR, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(11,&vvmsp[-1].minor); - vv_destructor(85,&vvmsp[0].minor); + zval *this_ptr = getThis(); + + + + RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("position"))); } -// 2537 "parser.php.c" - break; - case 111: -// 626 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_Collection, rewind) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ISSCALAR, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(9,&vvmsp[-1].minor); - vv_destructor(85,&vvmsp[0].minor); + zval _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, 0); + zephir_update_property_zval(this_ptr, ZEND_STRL("position"), &_0); } -// 2546 "parser.php.c" - break; - case 112: -// 630 "parser.php.lemon" + +static PHP_METHOD(Phalcon_Annotations_Collection, valid) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOT_ISITERABLE, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(11,&vvmsp[-1].minor); - vv_destructor(86,&vvmsp[0].minor); + zval _0, _1; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("annotations"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_1, this_ptr, ZEND_STRL("position"), PH_NOISY_CC | PH_READONLY); + RETURN_BOOL(zephir_array_isset(&_0, &_1)); } -// 2555 "parser.php.c" - break; - case 113: -// 634 "parser.php.lemon" + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Annotations_Exception) { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ISITERABLE, &vvmsp[-2].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(9,&vvmsp[-1].minor); - vv_destructor(86,&vvmsp[0].minor); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Annotations, Exception, phalcon, annotations_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; } -// 2564 "parser.php.c" - break; - case 114: -// 638 "parser.php.lemon" -{ - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_IS, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(9,&vvmsp[-1].minor); + + + +/* Driver template for the LEMON parser generator. +** The author disclaims copyright to this source code. +*/ +/* First off, code is include which follows the "include" declaration +** in the input file. */ +// 18 "parser.php.lemon" + + +// 12 "parser.php.c" +/* Next is all token values, in a form suitable for use by makeheaders. +** This section will be null unless lemon is run with the -m switch. +*/ +/* Make sure the INTERFACE macro is defined. +*/ +#ifndef INTERFACE +# define INTERFACE 1 +#endif +/* The next thing included is series of defines which control +** various aspects of the generated parser. +** AACODETYPE is the data type used for storing terminal +** and nonterminal numbers. "unsigned char" is +** used if there are fewer than 250 terminals +** and nonterminals. "int" is used otherwise. +** AANOCODE is a number of type AACODETYPE which corresponds +** to no legal terminal or nonterminal number. This +** number is used to fill in empty slots of the hash +** table. +** AAFALLBACK If defined, this indicates that one or more tokens +** have fall-back values which should be used if the +** original value of the token will not parse. +** AAACTIONTYPE is the data type used for storing terminal +** and nonterminal numbers. "unsigned char" is +** used if there are fewer than 250 rules and +** states combined. "int" is used otherwise. +** phannot_TOKENTYPE is the data type used for minor tokens given +** directly to the parser from the tokenizer. +** AAMINORTYPE is the data type used for all minor tokens. +** This is typically a union of many types, one of +** which is phannot_TOKENTYPE. The entry in the union +** for base tokens is called "aa0". +** AASTACKDEPTH is the maximum depth of the parser's stack. +** phannot_ARG_SDECL A static variable declaration for the %extra_argument +** phannot_ARG_PDECL A parameter declaration for the %extra_argument +** phannot_ARG_STORE Code to store %extra_argument into aapParser +** phannot_ARG_FETCH Code to extract %extra_argument from aapParser +** AANSTATE the combined number of states. +** AANRULE the number of rules in the grammar +** AAERRORSYMBOL is the code number of the error symbol. If not +** defined, then do no error processing. +*/ +#define AACODETYPE unsigned char +#define AANOCODE 28 +#define AAACTIONTYPE unsigned char +#define phannot_TOKENTYPE phannot_parser_token* +typedef union { + phannot_TOKENTYPE aa0; + zval aa8; + int aa55; +} AAMINORTYPE; +#define AASTACKDEPTH 100 +#define phannot_ARG_SDECL phannot_parser_status *status; +#define phannot_ARG_PDECL ,phannot_parser_status *status +#define phannot_ARG_FETCH phannot_parser_status *status = aapParser->status +#define phannot_ARG_STORE aapParser->status = status +#define AANSTATE 40 +#define AANRULE 25 +#define AAERRORSYMBOL 18 +#define AAERRSYMDT aa55 +#define AA_NO_ACTION (AANSTATE+AANRULE+2) +#define AA_ACCEPT_ACTION (AANSTATE+AANRULE+1) +#define AA_ERROR_ACTION (AANSTATE+AANRULE) + +/* Next are that tables used to determine what action to take based on the +** current state and lookahead token. These tables are used to implement +** functions that take a state number and lookahead value and return an +** action integer. +** +** Suppose the action integer is N. Then the action is determined as +** follows +** +** 0 <= N < AANSTATE Shift N. That is, push the lookahead +** token onto the stack and goto state N. +** +** AANSTATE <= N < AANSTATE+AANRULE Reduce by rule N-AANSTATE. +** +** N == AANSTATE+AANRULE A syntax error has occurred. +** +** N == AANSTATE+AANRULE+1 The parser accepts its input. +** +** N == AANSTATE+AANRULE+2 No such action. Denotes unused +** slots in the aa_action[] table. +** +** The action table is constructed as a single large table named aa_action[]. +** Given state S and lookahead X, the action is computed as +** +** aa_action[ aa_shift_ofst[S] + X ] +** +** If the index value aa_shift_ofst[S]+X is out of range or if the value +** aa_lookahead[aa_shift_ofst[S]+X] is not equal to X or if aa_shift_ofst[S] +** is equal to AA_SHIFT_USE_DFLT, it means that the action is not in the table +** and that aa_default[S] should be used instead. +** +** The formula above is for computing the action when the lookahead is +** a terminal symbol. If the lookahead is a non-terminal (as occurs after +** a reduce action) then the aa_reduce_ofst[] array is used in place of +** the aa_shift_ofst[] array and AA_REDUCE_USE_DFLT is used in place of +** AA_SHIFT_USE_DFLT. +** +** The following are the tables generated in this section: +** +** aa_action[] A single table containing all actions. +** aa_lookahead[] A table containing the lookahead for each entry in +** aa_action. Used to detect hash collisions. +** aa_shift_ofst[] For each state, the offset into aa_action for +** shifting terminals. +** aa_reduce_ofst[] For each state, the offset into aa_action for +** shifting non-terminals after a reduce. +** aa_default[] Default action for each state. +*/ +static AAACTIONTYPE aa_action[] = { + /* 0 */ 4, 28, 15, 38, 12, 14, 16, 18, 20, 21, + /* 10 */ 22, 23, 24, 4, 31, 4, 28, 15, 40, 12, + /* 20 */ 30, 16, 18, 20, 21, 22, 23, 24, 3, 31, + /* 30 */ 4, 17, 15, 6, 19, 35, 16, 18, 20, 21, + /* 40 */ 22, 23, 24, 5, 31, 15, 7, 27, 11, 16, + /* 50 */ 54, 54, 15, 25, 27, 11, 16, 15, 32, 27, + /* 60 */ 11, 16, 66, 1, 2, 39, 41, 15, 4, 10, + /* 70 */ 11, 16, 15, 9, 9, 37, 16, 8, 13, 36, + /* 80 */ 9, 29, 34, 54, 54, 54, 54, 54, 26, 54, + /* 90 */ 54, 54, 54, 54, 54, 54, 33, +}; +static AACODETYPE aa_lookahead[] = { + /* 0 */ 2, 3, 22, 5, 6, 25, 26, 9, 10, 11, + /* 10 */ 12, 13, 14, 2, 16, 2, 3, 22, 0, 6, + /* 20 */ 25, 26, 9, 10, 11, 12, 13, 14, 22, 16, + /* 30 */ 2, 3, 22, 4, 6, 25, 26, 9, 10, 11, + /* 40 */ 12, 13, 14, 3, 16, 22, 23, 24, 25, 26, + /* 50 */ 27, 27, 22, 23, 24, 25, 26, 22, 23, 24, + /* 60 */ 25, 26, 19, 20, 21, 22, 0, 22, 2, 24, + /* 70 */ 25, 26, 22, 1, 1, 25, 26, 5, 7, 8, + /* 80 */ 1, 7, 8, 27, 27, 27, 27, 27, 15, 27, + /* 90 */ 27, 27, 27, 27, 27, 27, 17, +}; +#define AA_SHIFT_USE_DFLT (-3) +static signed char aa_shift_ofst[] = { + /* 0 */ 11, 18, 66, -3, 40, 29, -2, 72, -3, 13, + /* 10 */ -3, -3, 71, 28, -3, -3, -3, -3, -3, -3, + /* 20 */ -3, -3, -3, -3, 13, 73, -3, -3, 74, 28, + /* 30 */ -3, 13, 79, -3, 28, -3, 28, -3, -3, -3, +}; +#define AA_REDUCE_USE_DFLT (-21) +static signed char aa_reduce_ofst[] = { + /* 0 */ 43, -21, 6, -21, -21, -21, 23, -21, -21, 45, + /* 10 */ -21, -21, -21, -20, -21, -21, -21, -21, -21, -21, + /* 20 */ -21, -21, -21, -21, 30, -21, -21, -21, -21, -5, + /* 30 */ -21, 35, -21, -21, 10, -21, 50, -21, -21, -21, +}; +static AAACTIONTYPE aa_default[] = { + /* 0 */ 65, 65, 65, 42, 65, 46, 65, 65, 44, 65, + /* 10 */ 47, 49, 58, 65, 50, 54, 55, 56, 57, 58, + /* 20 */ 59, 60, 61, 62, 65, 65, 63, 48, 56, 65, + /* 30 */ 52, 65, 65, 64, 65, 53, 65, 51, 45, 43, +}; +#define AA_SZ_ACTTAB (sizeof(aa_action)/sizeof(aa_action[0])) + +/* The next table maps tokens into fallback tokens. If a construct +** like the following: +** +** %fallback ID X Y Z. +** +** appears in the grammer, then ID becomes a fallback token for X, Y, +** and Z. Whenever one of the tokens X, Y, or Z is input to the parser +** but it does not parse, the type of the token is changed to ID and +** the parse is retried before an error is thrown. +*/ +#ifdef AAFALLBACK +static const AACODETYPE aaFallback[] = { +}; +#endif /* AAFALLBACK */ + +/* The following structure represents a single element of the +** parser's stack. Information stored includes: +** +** + The state number for the parser at this level of the stack. +** +** + The value of the token stored at this level of the stack. +** (In other words, the "major" token.) +** +** + The semantic value stored at this level of the stack. This is +** the information used by the action routines in the grammar. +** It is sometimes called the "minor" token. +*/ +struct aaStackEntry { + int stateno; /* The state-number */ + int major; /* The major token value. This is the code + ** number for the token at this stack level */ + AAMINORTYPE minor; /* The user-supplied minor token value. This + ** is the value of the token */ +}; +typedef struct aaStackEntry aaStackEntry; + +/* The state of the parser is completely contained in an instance of +** the following structure */ +struct aaParser { + int aaidx; /* Index of top element in stack */ + int aaerrcnt; /* Shifts left before out of the error */ + phannot_ARG_SDECL /* A place to hold %extra_argument */ + aaStackEntry aastack[AASTACKDEPTH]; /* The parser's stack */ +}; +typedef struct aaParser aaParser; + +#ifndef NDEBUG +static FILE *aaTraceFILE = 0; +static char *aaTracePrompt = 0; +#endif /* NDEBUG */ + +#ifndef NDEBUG +static void phannot_Trace(FILE *TraceFILE, char *zTracePrompt){ + aaTraceFILE = TraceFILE; + aaTracePrompt = zTracePrompt; + if( aaTraceFILE==0 ) aaTracePrompt = 0; + else if( aaTracePrompt==0 ) aaTraceFILE = 0; } -// 2572 "parser.php.c" - break; - case 115: -// 642 "parser.php.lemon" -{ - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOTEQUALS, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(11,&vvmsp[-1].minor); +#endif /* NDEBUG */ + +#ifndef NDEBUG +/* For tracing shifts, the names of all terminals and nonterminals +** are required. The following table supplies these names */ +static const char *aaTokenName[] = { + "$", "COMMA", "AT", "IDENTIFIER", + "PARENTHESES_OPEN", "PARENTHESES_CLOSE", "STRING", "EQUALS", + "COLON", "INTEGER", "DOUBLE", "NULL", + "FALSE", "TRUE", "BRACKET_OPEN", "BRACKET_CLOSE", + "SBRACKET_OPEN", "SBRACKET_CLOSE", "error", "program", + "annotation_language", "annotation_list", "annotation", "argument_list", + "argument_item", "expr", "array", +}; +#endif /* NDEBUG */ + +#ifndef NDEBUG +/* For tracing reduce actions, the names of all rules are required. +*/ +static const char *aaRuleName[] = { + /* 0 */ "program ::= annotation_language", + /* 1 */ "annotation_language ::= annotation_list", + /* 2 */ "annotation_list ::= annotation_list annotation", + /* 3 */ "annotation_list ::= annotation", + /* 4 */ "annotation ::= AT IDENTIFIER PARENTHESES_OPEN argument_list PARENTHESES_CLOSE", + /* 5 */ "annotation ::= AT IDENTIFIER PARENTHESES_OPEN PARENTHESES_CLOSE", + /* 6 */ "annotation ::= AT IDENTIFIER", + /* 7 */ "argument_list ::= argument_list COMMA argument_item", + /* 8 */ "argument_list ::= argument_item", + /* 9 */ "argument_item ::= expr", + /* 10 */ "argument_item ::= STRING EQUALS expr", + /* 11 */ "argument_item ::= STRING COLON expr", + /* 12 */ "argument_item ::= IDENTIFIER EQUALS expr", + /* 13 */ "argument_item ::= IDENTIFIER COLON expr", + /* 14 */ "expr ::= annotation", + /* 15 */ "expr ::= array", + /* 16 */ "expr ::= IDENTIFIER", + /* 17 */ "expr ::= INTEGER", + /* 18 */ "expr ::= STRING", + /* 19 */ "expr ::= DOUBLE", + /* 20 */ "expr ::= NULL", + /* 21 */ "expr ::= FALSE", + /* 22 */ "expr ::= TRUE", + /* 23 */ "array ::= BRACKET_OPEN argument_list BRACKET_CLOSE", + /* 24 */ "array ::= SBRACKET_OPEN argument_list SBRACKET_CLOSE", +}; +#endif /* NDEBUG */ + +const char *phannot_TokenName(int tokenType){ +#ifndef NDEBUG + if( tokenType>0 && tokenType<(sizeof(aaTokenName)/sizeof(aaTokenName[0])) ){ + return aaTokenName[tokenType]; + }else{ + return "Unknown"; + } +#else + return ""; +#endif } -// 2580 "parser.php.c" - break; - case 116: -// 646 "parser.php.lemon" -{ - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_IDENTICAL, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(16,&vvmsp[-1].minor); + +void *phannot_Alloc(void *(*mallocProc)(size_t)){ + aaParser *pParser; + pParser = (aaParser*)(*mallocProc)( (size_t)sizeof(aaParser) ); + if( pParser ){ + pParser->aaidx = -1; + } + return pParser; } -// 2588 "parser.php.c" - break; - case 117: -// 650 "parser.php.lemon" + +/* The following function deletes the value associated with a +** symbol. The symbol can be either a terminal or nonterminal. +** "aamajor" is the symbol code, and "aapminor" is a pointer to +** the value. +*/ +static void aa_destructor(AACODETYPE aamajor, AAMINORTYPE *aapminor){ + switch( aamajor ){ + /* Here is inserted the actions which take place when a + ** terminal or non-terminal is destroyed. This can happen + ** when the symbol is popped from the stack during a + ** reduce or during error processing or when a parser is + ** being destroyed before it is finished parsing. + ** + ** Note: during a reduce, the only symbols destroyed are those + ** which appear on the RHS of the rule, but which are not used + ** inside the C code. + */ + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: +// 67 "parser.php.lemon" { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOTIDENTICAL, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(17,&vvmsp[-1].minor); + if ((aapminor->aa0)) { + if ((aapminor->aa0)->free_flag) { + efree((aapminor->aa0)->token); + } + efree((aapminor->aa0)); + } } -// 2596 "parser.php.c" - break; - case 118: -// 654 "parser.php.lemon" +// 380 "parser.php.c" + break; + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: +// 80 "parser.php.lemon" { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_LESS, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(12,&vvmsp[-1].minor); + zval_ptr_dtor(&(aapminor->aa8)); } -// 2604 "parser.php.c" - break; - case 119: -// 658 "parser.php.lemon" -{ - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_GREATER, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(13,&vvmsp[-1].minor); +// 392 "parser.php.c" + break; + default: break; /* If no destructor action specified: do nothing */ + } } -// 2612 "parser.php.c" - break; - case 120: -// 662 "parser.php.lemon" + +static int aa_pop_parser_stack(aaParser *pParser){ + AACODETYPE aamajor; + aaStackEntry *aatos = &pParser->aastack[pParser->aaidx]; + + if( pParser->aaidx<0 ) return 0; +#ifndef NDEBUG + if( aaTraceFILE && pParser->aaidx>=0 ){ + fprintf(aaTraceFILE,"%sPopping %s\n", + aaTracePrompt, + aaTokenName[aatos->major]); + } +#endif + aamajor = aatos->major; + aa_destructor( aamajor, &aatos->minor); + pParser->aaidx--; + return aamajor; +} + +static void phannot_Free( + void *p, /* The parser to be deleted */ + void (*freeProc)(void*) /* Function used to reclaim memory */ +){ + aaParser *pParser = (aaParser*)p; + if( pParser==0 ) return; + while( pParser->aaidx>=0 ) aa_pop_parser_stack(pParser); + (*freeProc)((void*)pParser); +} + +static int aa_find_shift_action( + aaParser *pParser, /* The parser */ + int iLookAhead /* The look-ahead token */ +){ + int i; + int stateno = pParser->aastack[pParser->aaidx].stateno; + + /* if( pParser->aaidx<0 ) return AA_NO_ACTION; */ + i = aa_shift_ofst[stateno]; + if( i==AA_SHIFT_USE_DFLT ){ + return aa_default[stateno]; + } + if( iLookAhead==AANOCODE ){ + return AA_NO_ACTION; + } + i += iLookAhead; + if( i<0 || i>=AA_SZ_ACTTAB || aa_lookahead[i]!=iLookAhead ){ +#ifdef AAFALLBACK + int iFallback; /* Fallback token */ + if( iLookAhead %s\n", + aaTracePrompt, aaTokenName[iLookAhead], aaTokenName[iFallback]); + } +#endif + return aa_find_shift_action(pParser, iFallback); + } +#endif + return aa_default[stateno]; + }else{ + return aa_action[i]; + } +} + +static int aa_find_reduce_action( + aaParser *pParser, /* The parser */ + int iLookAhead /* The look-ahead token */ +){ + int i; + int stateno = pParser->aastack[pParser->aaidx].stateno; + + i = aa_reduce_ofst[stateno]; + if( i==AA_REDUCE_USE_DFLT ){ + return aa_default[stateno]; + } + if( iLookAhead==AANOCODE ){ + return AA_NO_ACTION; + } + i += iLookAhead; + if( i<0 || i>=AA_SZ_ACTTAB || aa_lookahead[i]!=iLookAhead ){ + return aa_default[stateno]; + }else{ + return aa_action[i]; + } +} + +static void aa_shift( + aaParser *aapParser, /* The parser to be shifted */ + int aaNewState, /* The new state to shift in */ + int aaMajor, /* The major token to shift in */ + AAMINORTYPE *aapMinor /* Pointer ot the minor token to shift in */ +){ + aaStackEntry *aatos; + aapParser->aaidx++; + if( aapParser->aaidx>=AASTACKDEPTH ){ + phannot_ARG_FETCH; + aapParser->aaidx--; +#ifndef NDEBUG + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sStack Overflow!\n",aaTracePrompt); + } +#endif + while( aapParser->aaidx>=0 ) aa_pop_parser_stack(aapParser); + /* Here code is inserted which will execute if the parser + ** stack every overflows */ + phannot_ARG_STORE; /* Suppress warning about unused %extra_argument var */ + return; + } + aatos = &aapParser->aastack[aapParser->aaidx]; + aatos->stateno = aaNewState; + aatos->major = aaMajor; + aatos->minor = *aapMinor; +#ifndef NDEBUG + if( aaTraceFILE && aapParser->aaidx>0 ){ + int i; + fprintf(aaTraceFILE,"%sShift %d\n",aaTracePrompt,aaNewState); + fprintf(aaTraceFILE,"%sStack:",aaTracePrompt); + for(i=1; i<=aapParser->aaidx; i++) + fprintf(aaTraceFILE," %s",aaTokenName[aapParser->aastack[i].major]); + fprintf(aaTraceFILE,"\n"); + } +#endif +} + +/* The following table contains information about every rule that +** is used during the reduce. +*/ +static struct { + AACODETYPE lhs; /* Symbol on the left-hand side of the rule */ + unsigned char nrhs; /* Number of right-hand side symbols in the rule */ +} aaRuleInfo[] = { + { 19, 1 }, + { 20, 1 }, + { 21, 2 }, + { 21, 1 }, + { 22, 5 }, + { 22, 4 }, + { 22, 2 }, + { 23, 3 }, + { 23, 1 }, + { 24, 1 }, + { 24, 3 }, + { 24, 3 }, + { 24, 3 }, + { 24, 3 }, + { 25, 1 }, + { 25, 1 }, + { 25, 1 }, + { 25, 1 }, + { 25, 1 }, + { 25, 1 }, + { 25, 1 }, + { 25, 1 }, + { 25, 1 }, + { 26, 3 }, + { 26, 3 }, +}; + +static void aa_accept(aaParser*); /* Forward Declaration */ + +static void aa_reduce( + aaParser *aapParser, /* The parser */ + int aaruleno /* Number of the rule by which to reduce */ +){ + int aagoto; /* The next state */ + int aaact; /* The next action */ + AAMINORTYPE aagotominor; /* The LHS of the rule reduced */ + aaStackEntry *aamsp; /* The top of the parser's stack */ + int aasize; /* Amount to pop the stack */ + phannot_ARG_FETCH; + aamsp = &aapParser->aastack[aapParser->aaidx]; +#ifndef NDEBUG + if( aaTraceFILE && aaruleno>=0 + && aaruleno + ** { ... } // User supplied code + ** // + ** break; + */ + case 0: +// 76 "parser.php.lemon" { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_GREATEREQUAL, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(14,&vvmsp[-1].minor); + ZVAL_ZVAL(&status->ret, &aamsp[0].minor.aa8, 1, 1); } -// 2620 "parser.php.c" +// 634 "parser.php.c" break; - case 121: -// 666 "parser.php.lemon" + case 1: + case 14: + case 15: +// 84 "parser.php.lemon" { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_LESSEQUAL, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(15,&vvmsp[-1].minor); + aagotominor.aa8 = aamsp[0].minor.aa8; } -// 2628 "parser.php.c" +// 643 "parser.php.c" break; - case 123: -// 674 "parser.php.lemon" + case 2: +// 92 "parser.php.lemon" { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_IN, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(8,&vvmsp[-1].minor); + phannot_ret_zval_list(&aagotominor.aa8, &aamsp[-1].minor.aa8, &aamsp[0].minor.aa8); } -// 2636 "parser.php.c" +// 650 "parser.php.c" break; - case 124: -// 678 "parser.php.lemon" + case 3: + case 8: +// 96 "parser.php.lemon" { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOT_IN, &vvmsp[-3].minor.vv186, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(26,&vvmsp[-2].minor); - vv_destructor(8,&vvmsp[-1].minor); + phannot_ret_zval_list(&aagotominor.aa8, NULL, &aamsp[0].minor.aa8); } -// 2645 "parser.php.c" +// 658 "parser.php.c" break; - case 125: -// 682 "parser.php.lemon" + case 4: +// 104 "parser.php.lemon" { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_NOT, NULL, &vvmsp[0].minor.vv186, NULL, status->scanner_state); - vv_destructor(26,&vvmsp[-1].minor); + phannot_ret_annotation(&aagotominor.aa8, aamsp[-3].minor.aa0, &aamsp[-1].minor.aa8, status->scanner_state); + aa_destructor(2,&aamsp[-4].minor); + aa_destructor(4,&aamsp[-2].minor); + aa_destructor(5,&aamsp[0].minor); } -// 2653 "parser.php.c" +// 668 "parser.php.c" break; - case 126: -// 686 "parser.php.lemon" + case 5: +// 108 "parser.php.lemon" { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_INCR, &vvmsp[-1].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(27,&vvmsp[0].minor); + phannot_ret_annotation(&aagotominor.aa8, aamsp[-2].minor.aa0, NULL, status->scanner_state); + aa_destructor(2,&aamsp[-3].minor); + aa_destructor(4,&aamsp[-1].minor); + aa_destructor(5,&aamsp[0].minor); } -// 2661 "parser.php.c" +// 678 "parser.php.c" break; - case 127: -// 690 "parser.php.lemon" + case 6: +// 112 "parser.php.lemon" { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_DECR, &vvmsp[-1].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(28,&vvmsp[0].minor); + phannot_ret_annotation(&aagotominor.aa8, aamsp[0].minor.aa0, NULL, status->scanner_state); + aa_destructor(2,&aamsp[-1].minor); } -// 2669 "parser.php.c" +// 686 "parser.php.c" break; - case 128: -// 694 "parser.php.lemon" + case 7: +// 120 "parser.php.lemon" { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ENCLOSED, &vvmsp[-1].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(29,&vvmsp[-2].minor); - vv_destructor(52,&vvmsp[0].minor); + phannot_ret_zval_list(&aagotominor.aa8, &aamsp[-2].minor.aa8, &aamsp[0].minor.aa8); + aa_destructor(1,&aamsp[-1].minor); } -// 2678 "parser.php.c" +// 694 "parser.php.c" break; - case 129: -// 698 "parser.php.lemon" + case 9: +// 132 "parser.php.lemon" { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ARRAY, NULL, NULL, NULL, status->scanner_state); - vv_destructor(24,&vvmsp[-1].minor); - vv_destructor(50,&vvmsp[0].minor); + phannot_ret_named_item(&aagotominor.aa8, NULL, &aamsp[0].minor.aa8); } -// 2687 "parser.php.c" +// 701 "parser.php.c" break; - case 130: -// 702 "parser.php.lemon" + case 10: + case 12: +// 136 "parser.php.lemon" { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ARRAY, &vvmsp[-1].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(24,&vvmsp[-2].minor); - vv_destructor(50,&vvmsp[0].minor); + phannot_ret_named_item(&aagotominor.aa8, aamsp[-2].minor.aa0, &aamsp[0].minor.aa8); + aa_destructor(7,&aamsp[-1].minor); } -// 2696 "parser.php.c" +// 710 "parser.php.c" break; - case 131: -// 706 "parser.php.lemon" + case 11: + case 13: +// 140 "parser.php.lemon" { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ARRAY, NULL, NULL, NULL, status->scanner_state); - vv_destructor(87,&vvmsp[-1].minor); - vv_destructor(88,&vvmsp[0].minor); + phannot_ret_named_item(&aagotominor.aa8, aamsp[-2].minor.aa0, &aamsp[0].minor.aa8); + aa_destructor(8,&aamsp[-1].minor); } -// 2705 "parser.php.c" +// 719 "parser.php.c" break; - case 132: -// 710 "parser.php.lemon" + case 16: +// 164 "parser.php.lemon" { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_ARRAY, &vvmsp[-1].minor.vv186, NULL, NULL, status->scanner_state); - vv_destructor(87,&vvmsp[-2].minor); - vv_destructor(88,&vvmsp[0].minor); + phannot_ret_literal_zval(&aagotominor.aa8, PHANNOT_T_IDENTIFIER, aamsp[0].minor.aa0); } -// 2714 "parser.php.c" +// 726 "parser.php.c" break; - case 134: -// 718 "parser.php.lemon" + case 17: +// 168 "parser.php.lemon" { - phvolt_ret_expr(&vvgotominor.vv186, PHVOLT_T_TERNARY, &vvmsp[-2].minor.vv186, &vvmsp[0].minor.vv186, &vvmsp[-4].minor.vv186, status->scanner_state); - vv_destructor(3,&vvmsp[-3].minor); - vv_destructor(4,&vvmsp[-1].minor); + phannot_ret_literal_zval(&aagotominor.aa8, PHANNOT_T_INTEGER, aamsp[0].minor.aa0); } -// 2723 "parser.php.c" +// 733 "parser.php.c" break; - case 135: -// 722 "parser.php.lemon" + case 18: +// 172 "parser.php.lemon" { - phvolt_ret_slice(&vvgotominor.vv186, &vvmsp[-4].minor.vv186, NULL, &vvmsp[-1].minor.vv186, status->scanner_state); - vv_destructor(24,&vvmsp[-3].minor); - vv_destructor(4,&vvmsp[-2].minor); - vv_destructor(50,&vvmsp[0].minor); + phannot_ret_literal_zval(&aagotominor.aa8, PHANNOT_T_STRING, aamsp[0].minor.aa0); } -// 2733 "parser.php.c" +// 740 "parser.php.c" break; - case 136: -// 726 "parser.php.lemon" + case 19: +// 176 "parser.php.lemon" { - phvolt_ret_slice(&vvgotominor.vv186, &vvmsp[-4].minor.vv186, &vvmsp[-2].minor.vv186, NULL, status->scanner_state); - vv_destructor(24,&vvmsp[-3].minor); - vv_destructor(4,&vvmsp[-1].minor); - vv_destructor(50,&vvmsp[0].minor); + phannot_ret_literal_zval(&aagotominor.aa8, PHANNOT_T_DOUBLE, aamsp[0].minor.aa0); } -// 2743 "parser.php.c" +// 747 "parser.php.c" break; - case 137: -// 730 "parser.php.lemon" + case 20: +// 180 "parser.php.lemon" { - phvolt_ret_slice(&vvgotominor.vv186, &vvmsp[-5].minor.vv186, &vvmsp[-3].minor.vv186, &vvmsp[-1].minor.vv186, status->scanner_state); - vv_destructor(24,&vvmsp[-4].minor); - vv_destructor(4,&vvmsp[-2].minor); - vv_destructor(50,&vvmsp[0].minor); + phannot_ret_literal_zval(&aagotominor.aa8, PHANNOT_T_NULL, NULL); + aa_destructor(11,&aamsp[0].minor); } -// 2753 "parser.php.c" +// 755 "parser.php.c" break; - case 142: - case 150: -// 750 "parser.php.lemon" + case 21: +// 184 "parser.php.lemon" { - phvolt_ret_named_item(&vvgotominor.vv186, vvmsp[-2].minor.vv0, &vvmsp[0].minor.vv186, status->scanner_state); - vv_destructor(4,&vvmsp[-1].minor); + phannot_ret_literal_zval(&aagotominor.aa8, PHANNOT_T_FALSE, NULL); + aa_destructor(12,&aamsp[0].minor); } -// 2762 "parser.php.c" +// 763 "parser.php.c" break; - case 143: - case 149: -// 754 "parser.php.lemon" + case 22: +// 188 "parser.php.lemon" { - phvolt_ret_named_item(&vvgotominor.vv186, NULL, &vvmsp[0].minor.vv186, status->scanner_state); + phannot_ret_literal_zval(&aagotominor.aa8, PHANNOT_T_TRUE, NULL); + aa_destructor(13,&aamsp[0].minor); } -// 2770 "parser.php.c" +// 771 "parser.php.c" break; - case 145: -// 762 "parser.php.lemon" + case 23: +// 192 "parser.php.lemon" { - phvolt_ret_func_call(&vvgotominor.vv186, &vvmsp[-3].minor.vv186, &vvmsp[-1].minor.vv186, status->scanner_state); - vv_destructor(29,&vvmsp[-2].minor); - vv_destructor(52,&vvmsp[0].minor); + phannot_ret_array(&aagotominor.aa8, &aamsp[-1].minor.aa8); + aa_destructor(14,&aamsp[-2].minor); + aa_destructor(15,&aamsp[0].minor); } -// 2779 "parser.php.c" +// 780 "parser.php.c" break; - case 146: -// 766 "parser.php.lemon" + case 24: +// 196 "parser.php.lemon" { - phvolt_ret_func_call(&vvgotominor.vv186, &vvmsp[-2].minor.vv186, NULL, status->scanner_state); - vv_destructor(29,&vvmsp[-1].minor); - vv_destructor(52,&vvmsp[0].minor); + phannot_ret_array(&aagotominor.aa8, &aamsp[-1].minor.aa8); + aa_destructor(16,&aamsp[-2].minor); + aa_destructor(17,&aamsp[0].minor); } -// 2788 "parser.php.c" +// 789 "parser.php.c" break; }; - vvgoto = vvRuleInfo[vvruleno].lhs; - vvsize = vvRuleInfo[vvruleno].nrhs; - vvpParser->vvidx -= vvsize; - vvact = vv_find_reduce_action(vvpParser,vvgoto); - if( vvact < VVNSTATE ){ - vv_shift(vvpParser,vvact,vvgoto,&vvgotominor); - }else if( vvact == VVNSTATE + VVNRULE + 1 ){ - vv_accept(vvpParser); + aagoto = aaRuleInfo[aaruleno].lhs; + aasize = aaRuleInfo[aaruleno].nrhs; + aapParser->aaidx -= aasize; + aaact = aa_find_reduce_action(aapParser,aagoto); + if( aaact < AANSTATE ){ + aa_shift(aapParser,aaact,aagoto,&aagotominor); + }else if( aaact == AANSTATE + AANRULE + 1 ){ + aa_accept(aapParser); } } -static void vv_parse_failed( - vvParser *vvpParser /* The parser */ +static void aa_parse_failed( + aaParser *aapParser /* The parser */ ){ - phvolt_ARG_FETCH; + phannot_ARG_FETCH; #ifndef NDEBUG - if( vvTraceFILE ){ - fprintf(vvTraceFILE,"%sFail!\n",vvTracePrompt); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sFail!\n",aaTracePrompt); } #endif - while( vvpParser->vvidx>=0 ) vv_pop_parser_stack(vvpParser); + while( aapParser->aaidx>=0 ) aa_pop_parser_stack(aapParser); /* Here code is inserted which will be executed whenever the ** parser fails */ - phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ + phannot_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static void vv_syntax_error( - vvParser *vvpParser, /* The parser */ - int vvmajor, /* The major type of the error token */ - VVMINORTYPE vvminor /* The minor type of the error token */ +static void aa_syntax_error( + aaParser *aapParser, /* The parser */ + int aamajor, /* The major type of the error token */ + AAMINORTYPE aaminor /* The minor type of the error token */ ){ - phvolt_ARG_FETCH; -#define VTOKEN (vvminor.vv0) -// 54 "parser.php.lemon" - - { - smart_str error_str = {0}; + phannot_ARG_FETCH; +#define ATOKEN (aaminor.aa0) +// 22 "parser.php.lemon" + if (status->scanner_state->start_length) { char *token_name = NULL; - const phvolt_token_names *tokens = phvolt_tokens; - int token_len = 0; + const phannot_token_names *tokens = phannot_tokens; int active_token = status->scanner_state->active_token; + unsigned int near_length = status->scanner_state->start_length; - if (status->scanner_state->start_length) { - - if (active_token) { - - do { - if (tokens->code == active_token) { - token_name = tokens->name; - token_len = tokens->len; - break; - } - ++tokens; - } while (tokens[0].code != 0); - - } - - smart_str_appendl(&error_str, "Syntax error, unexpected token ", sizeof("Syntax error, unexpected token ") - 1); - if (!token_name) { - smart_str_appendl(&error_str, "UNKNOWN", sizeof("UNKNOWN") - 1); - } else { - smart_str_appendl(&error_str, token_name, token_len); - } - - if (status->token->value) { - smart_str_appendc(&error_str, '('); - smart_str_appendl(&error_str, status->token->value, status->token->len); - smart_str_appendc(&error_str, ')'); - } - - smart_str_appendl(&error_str, " in ", sizeof(" in ") - 1); - smart_str_appendl(&error_str, Z_STRVAL_P(status->scanner_state->active_file), Z_STRLEN_P(status->scanner_state->active_file)); - smart_str_appendl(&error_str, " on line ", sizeof(" on line ") - 1); - - { - char stmp[MAX_LENGTH_OF_LONG + 1]; - int str_len; - str_len = slprintf(stmp, sizeof(stmp), "%u", status->scanner_state->active_line); - smart_str_appendl(&error_str, stmp, str_len); - } - - } else { - - smart_str_appendl(&error_str, "Syntax error, unexpected EOF in ", sizeof("Syntax error, unexpected EOF in ") - 1); - smart_str_appendl(&error_str, Z_STRVAL_P(status->scanner_state->active_file), Z_STRLEN_P(status->scanner_state->active_file)); - - /* Report unclosed 'if' blocks */ - if ((status->scanner_state->if_level + status->scanner_state->old_if_level) > 0) { - if ((status->scanner_state->if_level + status->scanner_state->old_if_level) == 1) { - smart_str_appendl(&error_str, ", there is one 'if' block without close", sizeof(", there is one 'if' block without close") - 1); - } else { - smart_str_appendl(&error_str, ", there are ", sizeof(", there are ") - 1); - { - char stmp[MAX_LENGTH_OF_LONG + 1]; - int str_len; - str_len = slprintf(stmp, sizeof(stmp), "%u", status->scanner_state->if_level + status->scanner_state->old_if_level); - smart_str_appendl(&error_str, stmp, str_len); - } - smart_str_appendl(&error_str, " 'if' blocks without close", sizeof(" 'if' blocks without close") - 1); - } - } - - /* Report unclosed 'for' blocks */ - if (status->scanner_state->for_level > 0) { - if (status->scanner_state->for_level == 1) { - smart_str_appendl(&error_str, ", there is one 'for' block without close", sizeof(", there is one 'for' block without close") - 1); - } else { - smart_str_appendl(&error_str, ", there are ", sizeof(", there are ") - 1); - { - char stmp[MAX_LENGTH_OF_LONG + 1]; - int str_len; - str_len = slprintf(stmp, sizeof(stmp), "%u", status->scanner_state->if_level); - smart_str_appendl(&error_str, stmp, str_len); - } - smart_str_appendl(&error_str, " 'for' blocks without close", sizeof(" 'for' blocks without close") - 1); - } - } - - /* Report unclosed 'switch' blocks */ - if (status->scanner_state->switch_level > 0) { - smart_str_appendl(&error_str, ", there is a 'switch' block without 'endswitch'", sizeof(", there is a 'switch' block without 'endswitch'") - 1); - } + if (active_token) { + do { + if (tokens->code == active_token) { + token_name = tokens->name; + break; + } + ++tokens; + } while (tokens[0].code != 0); } - smart_str_0(&error_str); + if (!token_name) { + token_name = "UNKNOWN"; + } - if (error_str.s) { - status->syntax_error = estrndup(ZSTR_VAL(error_str.s), ZSTR_LEN(error_str.s)); - status->syntax_error_len = ZSTR_LEN(error_str.s); + if (near_length > 0) { + if (status->token->value) { + spprintf(&status->syntax_error, 0, "Syntax error, unexpected token %s(%s), near to '%s' in %s on line %d", token_name, status->token->value, status->scanner_state->start, status->scanner_state->active_file, status->scanner_state->active_line); + } else { + spprintf(&status->syntax_error, 0, "Syntax error, unexpected token %s, near to '%s' in %s on line %d", token_name, status->scanner_state->start, status->scanner_state->active_file, status->scanner_state->active_line); + } } else { - status->syntax_error = NULL; + if (active_token != PHANNOT_T_IGNORE) { + if (status->token->value) { + spprintf(&status->syntax_error, 0, "Syntax error, unexpected token %s(%s), at the end of docblock in %s on line %d", token_name, status->token->value, status->scanner_state->active_file, status->scanner_state->active_line); + } else { + spprintf(&status->syntax_error, 0, "Syntax error, unexpected token %s, at the end of docblock in %s on line %d", token_name, status->scanner_state->active_file, status->scanner_state->active_line); + } + } else { + spprintf(&status->syntax_error, 0, "Syntax error, unexpected EOF, at the end of docblock in %s on line %d", status->scanner_state->active_file, status->scanner_state->active_line); + } } + } else { + spprintf(&status->syntax_error, 0, "Syntax error, unexpected EOF in %s", status->scanner_state->active_file); } - status->status = PHVOLT_PARSING_FAILED; + status->status = PHANNOT_PARSING_FAILED; -// 2934 "parser.php.c" - phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ +// 876 "parser.php.c" + phannot_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } -static void vv_accept( - vvParser *vvpParser /* The parser */ +static void aa_accept( + aaParser *aapParser /* The parser */ ){ - phvolt_ARG_FETCH; + phannot_ARG_FETCH; #ifndef NDEBUG - if( vvTraceFILE ){ - fprintf(vvTraceFILE,"%sAccept!\n",vvTracePrompt); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sAccept!\n",aaTracePrompt); } #endif - while( vvpParser->vvidx>=0 ) vv_pop_parser_stack(vvpParser); + while( aapParser->aaidx>=0 ) aa_pop_parser_stack(aapParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ - phvolt_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ + phannot_ARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* The main parser program. ** The first argument is a pointer to a structure obtained from -** "phvolt_Alloc" which describes the current state of the parser. +** "phannot_Alloc" which describes the current state of the parser. ** The second argument is the major token number. The third is ** the minor token. The fourth optional argument is whatever the ** user wants (and specified in the grammar) and is available for @@ -185818,57 +176561,57 @@ static void vv_accept( ** Outputs: ** None. */ -static void phvolt_( - void *vvp, /* The parser */ - int vvmajor, /* The major token code number */ - phvolt_TOKENTYPE vvminor /* The value for the token */ - phvolt_ARG_PDECL /* Optional %extra_argument parameter */ +static void phannot_( + void *aap, /* The parser */ + int aamajor, /* The major token code number */ + phannot_TOKENTYPE aaminor /* The value for the token */ + phannot_ARG_PDECL /* Optional %extra_argument parameter */ ){ - VVMINORTYPE vvminorunion; - int vvact; /* The parser action. */ - int vvendofinput; /* True if we are at the end of input */ - int vverrorhit = 0; /* True if vvmajor has invoked an error */ - vvParser *vvpParser; /* The parser */ + AAMINORTYPE aaminorunion; + int aaact; /* The parser action. */ + int aaendofinput; /* True if we are at the end of input */ + int aaerrorhit = 0; /* True if aamajor has invoked an error */ + aaParser *aapParser; /* The parser */ /* (re)initialize the parser, if necessary */ - vvpParser = (vvParser*)vvp; - if( vvpParser->vvidx<0 ){ - if( vvmajor==0 ) return; - vvpParser->vvidx = 0; - vvpParser->vverrcnt = -1; - vvpParser->vvstack[0].stateno = 0; - vvpParser->vvstack[0].major = 0; + aapParser = (aaParser*)aap; + if( aapParser->aaidx<0 ){ + if( aamajor==0 ) return; + aapParser->aaidx = 0; + aapParser->aaerrcnt = -1; + aapParser->aastack[0].stateno = 0; + aapParser->aastack[0].major = 0; } - vvminorunion.vv0 = vvminor; - vvendofinput = (vvmajor==0); - phvolt_ARG_STORE; + aaminorunion.aa0 = aaminor; + aaendofinput = (aamajor==0); + phannot_ARG_STORE; #ifndef NDEBUG - if( vvTraceFILE ){ - fprintf(vvTraceFILE,"%sInput %s\n",vvTracePrompt,vvTokenName[vvmajor]); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sInput %s\n",aaTracePrompt,aaTokenName[aamajor]); } #endif do{ - vvact = vv_find_shift_action(vvpParser,vvmajor); - if( vvactvverrcnt--; - if( vvendofinput && vvpParser->vvidx>=0 ){ - vvmajor = 0; + aaact = aa_find_shift_action(aapParser,aamajor); + if( aaactaaerrcnt--; + if( aaendofinput && aapParser->aaidx>=0 ){ + aamajor = 0; }else{ - vvmajor = VVNOCODE; + aamajor = AANOCODE; } - }else if( vvact < VVNSTATE + VVNRULE ){ - vv_reduce(vvpParser,vvact-VVNSTATE); - }else if( vvact == VV_ERROR_ACTION ){ - int vvmx; + }else if( aaact < AANSTATE + AANRULE ){ + aa_reduce(aapParser,aaact-AANSTATE); + }else if( aaact == AA_ERROR_ACTION ){ + int aamx; #ifndef NDEBUG - if( vvTraceFILE ){ - fprintf(vvTraceFILE,"%sSyntax Error!\n",vvTracePrompt); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sSyntax Error!\n",aaTracePrompt); } #endif -#ifdef VVERRORSYMBOL +#ifdef AAERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the ** grammar defines an error token "ERROR". @@ -185888,40 +176631,40 @@ static void phvolt_( ** shifted successfully. ** */ - if( vvpParser->vverrcnt<0 ){ - vv_syntax_error(vvpParser,vvmajor,vvminorunion); + if( aapParser->aaerrcnt<0 ){ + aa_syntax_error(aapParser,aamajor,aaminorunion); } - vvmx = vvpParser->vvstack[vvpParser->vvidx].major; - if( vvmx==VVERRORSYMBOL || vverrorhit ){ + aamx = aapParser->aastack[aapParser->aaidx].major; + if( aamx==AAERRORSYMBOL || aaerrorhit ){ #ifndef NDEBUG - if( vvTraceFILE ){ - fprintf(vvTraceFILE,"%sDiscard input token %s\n", - vvTracePrompt,vvTokenName[vvmajor]); + if( aaTraceFILE ){ + fprintf(aaTraceFILE,"%sDiscard input token %s\n", + aaTracePrompt,aaTokenName[aamajor]); } #endif - vv_destructor(vvmajor,&vvminorunion); - vvmajor = VVNOCODE; + aa_destructor(aamajor,&aaminorunion); + aamajor = AANOCODE; }else{ while( - vvpParser->vvidx >= 0 && - vvmx != VVERRORSYMBOL && - (vvact = vv_find_shift_action(vvpParser,VVERRORSYMBOL)) >= VVNSTATE + aapParser->aaidx >= 0 && + aamx != AAERRORSYMBOL && + (aaact = aa_find_shift_action(aapParser,AAERRORSYMBOL)) >= AANSTATE ){ - vv_pop_parser_stack(vvpParser); + aa_pop_parser_stack(aapParser); } - if( vvpParser->vvidx < 0 || vvmajor==0 ){ - vv_destructor(vvmajor,&vvminorunion); - vv_parse_failed(vvpParser); - vvmajor = VVNOCODE; - }else if( vvmx!=VVERRORSYMBOL ){ - VVMINORTYPE u2; - u2.VVERRSYMDT = 0; - vv_shift(vvpParser,vvact,VVERRORSYMBOL,&u2); + if( aapParser->aaidx < 0 || aamajor==0 ){ + aa_destructor(aamajor,&aaminorunion); + aa_parse_failed(aapParser); + aamajor = AANOCODE; + }else if( aamx!=AAERRORSYMBOL ){ + AAMINORTYPE u2; + u2.AAERRSYMDT = 0; + aa_shift(aapParser,aaact,AAERRORSYMBOL,&u2); } } - vvpParser->vverrcnt = 3; - vverrorhit = 1; -#else /* VVERRORSYMBOL is not defined */ + aapParser->aaerrcnt = 3; + aaerrorhit = 1; +#else /* AAERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. @@ -185931,25 +176674,24 @@ static void phvolt_( ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ - if( vvpParser->vverrcnt<=0 ){ - vv_syntax_error(vvpParser,vvmajor,vvminorunion); + if( aapParser->aaerrcnt<=0 ){ + aa_syntax_error(aapParser,aamajor,aaminorunion); } - vvpParser->vverrcnt = 3; - vv_destructor(vvmajor,&vvminorunion); - if( vvendofinput ){ - vv_parse_failed(vvpParser); + aapParser->aaerrcnt = 3; + aa_destructor(aamajor,&aaminorunion); + if( aaendofinput ){ + aa_parse_failed(aapParser); } - vvmajor = VVNOCODE; + aamajor = AANOCODE; #endif }else{ - vv_accept(vvpParser); - vvmajor = VVNOCODE; + aa_accept(aapParser); + aamajor = AANOCODE; } - }while( vvmajor!=VVNOCODE && vvpParser->vvidx>=0 ); + }while( aamajor!=AANOCODE && aapParser->aaidx>=0 ); return; } /* base.c - * * This file is part of the Phalcon Framework. * * (c) Phalcon Team @@ -185958,784 +176700,351 @@ static void phvolt_( * LICENSE.txt file that was distributed with this source code. */ -const phvolt_token_names phvolt_tokens[] = +const phannot_token_names phannot_tokens[] = { - { SL("INTEGER"), PHVOLT_T_INTEGER }, - { SL("DOUBLE"), PHVOLT_T_DOUBLE }, - { SL("STRING"), PHVOLT_T_STRING }, - { SL("IDENTIFIER"), PHVOLT_T_IDENTIFIER }, - { SL("MINUS"), PHVOLT_T_MINUS }, - { SL("+"), PHVOLT_T_ADD }, - { SL("-"), PHVOLT_T_SUB }, - { SL("*"), PHVOLT_T_MUL }, - { SL("/"), PHVOLT_T_DIV }, - { SL("%%"), PHVOLT_T_MOD }, - { SL("!"), PHVOLT_T_NOT }, - { SL("~"), PHVOLT_T_CONCAT }, - { SL("AND"), PHVOLT_T_AND }, - { SL("OR"), PHVOLT_T_OR }, - { SL("DOT"), PHVOLT_T_DOT }, - { SL("COMMA"), PHVOLT_T_COMMA }, - { SL("EQUALS"), PHVOLT_T_EQUALS }, - { SL("NOT EQUALS"), PHVOLT_T_NOTEQUALS }, - { SL("IDENTICAL"), PHVOLT_T_IDENTICAL }, - { SL("NOT IDENTICAL"), PHVOLT_T_NOTIDENTICAL }, - { SL("NOT"), PHVOLT_T_NOT }, - { SL("RANGE"), PHVOLT_T_RANGE }, - { SL("COLON"), PHVOLT_T_COLON }, - { SL("QUESTION MARK"), PHVOLT_T_QUESTION }, - { SL("<"), PHVOLT_T_LESS }, - { SL("<="), PHVOLT_T_LESSEQUAL }, - { SL(">"), PHVOLT_T_GREATER }, - { SL(">="), PHVOLT_T_GREATEREQUAL }, - { SL("("), PHVOLT_T_PARENTHESES_OPEN }, - { SL(")"), PHVOLT_T_PARENTHESES_CLOSE }, - { SL("["), PHVOLT_T_SBRACKET_OPEN }, - { SL("]"), PHVOLT_T_SBRACKET_CLOSE }, - { SL("{"), PHVOLT_T_CBRACKET_OPEN }, - { SL("}"), PHVOLT_T_CBRACKET_CLOSE }, - { SL("{%"), PHVOLT_T_OPEN_DELIMITER }, - { SL("%}"), PHVOLT_T_CLOSE_DELIMITER }, - { SL("{{"), PHVOLT_T_OPEN_EDELIMITER }, - { SL("}}"), PHVOLT_T_CLOSE_EDELIMITER }, - { SL("IF"), PHVOLT_T_IF }, - { SL("ELSE"), PHVOLT_T_ELSE }, - { SL("ELSEIF"), PHVOLT_T_ELSEIF }, - { SL("ELSEFOR"), PHVOLT_T_ELSEFOR }, - { SL("ENDIF"), PHVOLT_T_ENDIF }, - { SL("FOR"), PHVOLT_T_FOR }, - { SL("SWITCH"), PHVOLT_T_SWITCH }, - { SL("CASE"), PHVOLT_T_CASE }, - { SL("DEFAULT"), PHVOLT_T_DEFAULT }, - { SL("ENDSWITCH"), PHVOLT_T_ENDSWITCH }, - { SL("IN"), PHVOLT_T_IN }, - { SL("ENDFOR"), PHVOLT_T_ENDFOR }, - { SL("SET"), PHVOLT_T_SET }, - { SL("ASSIGN"), PHVOLT_T_ASSIGN }, - { SL("+="), PHVOLT_T_ADD_ASSIGN }, - { SL("-="), PHVOLT_T_SUB_ASSIGN }, - { SL("*="), PHVOLT_T_MUL_ASSIGN }, - { SL("/="), PHVOLT_T_DIV_ASSIGN }, - { SL("++"), PHVOLT_T_INCR }, - { SL("--"), PHVOLT_T_DECR }, - { SL("BLOCK"), PHVOLT_T_BLOCK }, - { SL("ENDBLOCK"), PHVOLT_T_ENDBLOCK }, - { SL("CACHE"), PHVOLT_T_CACHE }, - { SL("ENDCACHE"), PHVOLT_T_ENDCACHE }, - { SL("EXTENDS"), PHVOLT_T_EXTENDS }, - { SL("IS"), PHVOLT_T_IS }, - { SL("DEFINED"), PHVOLT_T_DEFINED }, - { SL("EMPTY"), PHVOLT_T_EMPTY }, - { SL("EVEN"), PHVOLT_T_EVEN }, - { SL("ODD"), PHVOLT_T_ODD }, - { SL("NUMERIC"), PHVOLT_T_NUMERIC }, - { SL("SCALAR"), PHVOLT_T_SCALAR }, - { SL("ITERABLE"), PHVOLT_T_ITERABLE }, - { SL("INCLUDE"), PHVOLT_T_INCLUDE }, - { SL("DO"), PHVOLT_T_DO }, - { SL("WHITESPACE"), PHVOLT_T_IGNORE }, - { SL("AUTOESCAPE"), PHVOLT_T_AUTOESCAPE }, - { SL("ENDAUTOESCAPE"), PHVOLT_T_ENDAUTOESCAPE }, - { SL("CONTINUE"), PHVOLT_T_CONTINUE }, - { SL("BREAK"), PHVOLT_T_BREAK }, - { SL("WITH"), PHVOLT_T_WITH }, - { SL("RETURN"), PHVOLT_T_RETURN }, - { SL("MACRO"), PHVOLT_T_MACRO }, - { SL("ENDMACRO"), PHVOLT_T_ENDMACRO }, - { SL("CALL"), PHVOLT_T_CALL }, - { SL("WITH"), PHVOLT_T_WITH }, - { NULL, 0, 0 } + { "INTEGER", PHANNOT_T_INTEGER }, + { "DOUBLE", PHANNOT_T_DOUBLE }, + { "STRING", PHANNOT_T_STRING }, + { "IDENTIFIER", PHANNOT_T_IDENTIFIER }, + { "@", PHANNOT_T_AT }, + { ",", PHANNOT_T_COMMA }, + { "=", PHANNOT_T_EQUALS }, + { ":", PHANNOT_T_COLON }, + { "(", PHANNOT_T_PARENTHESES_OPEN }, + { ")", PHANNOT_T_PARENTHESES_CLOSE }, + { "{", PHANNOT_T_BRACKET_OPEN }, + { "}", PHANNOT_T_BRACKET_CLOSE }, + { "[", PHANNOT_T_SBRACKET_OPEN }, + { "]", PHANNOT_T_SBRACKET_CLOSE }, + { "ARBITRARY TEXT", PHANNOT_T_ARBITRARY_TEXT }, + { NULL, 0 } }; -/* {{{ phvolt_wrapper_alloc - Wrapper to alloc memory within the parser. */ -static void *phvolt_wrapper_alloc(size_t bytes) -{ +static void *phannot_wrapper_alloc(size_t bytes){ return emalloc(bytes); } -/* }}} */ -/* {{{ phvolt_wrapper_free - Wrapper to free memory within the parser. */ -static void phvolt_wrapper_free(void *pointer) -{ +static void phannot_wrapper_free(void *pointer){ efree(pointer); } -/* }}} */ -/* {{{ phvolt_parse_with_token - Creates a parser_token to be passed to the parser. */ -static void phvolt_parse_with_token(void* phvolt_parser, int opcode, int parsercode, phvolt_scanner_token *token, - phvolt_parser_status *parser_status) -{ - phvolt_parser_token *pToken; +static void phannot_parse_with_token(void* phannot_parser, int opcode, int parsercode, phannot_scanner_token *token, phannot_parser_status *parser_status){ - pToken = emalloc(sizeof(phvolt_parser_token)); + phannot_parser_token *pToken; + + pToken = emalloc(sizeof(phannot_parser_token)); pToken->opcode = opcode; pToken->token = token->value; pToken->token_len = token->len; pToken->free_flag = 1; - phvolt_(phvolt_parser, parsercode, pToken, parser_status); + phannot_(phannot_parser, parsercode, pToken, parser_status); token->value = NULL; token->len = 0; } -/* }}} */ - -/* {{{ phvolt_create_error_msg - Creates an error message. */ -static void phvolt_create_error_msg(phvolt_parser_status *parser_status, char *message) -{ - unsigned int length = (128 + Z_STRLEN_P(parser_status->scanner_state->active_file)); - char *str = emalloc(sizeof(char) * length); - - snprintf(str, length, "%s in %s on line %d", message, - Z_STRVAL_P(parser_status->scanner_state->active_file), parser_status->scanner_state->active_line); - str[length - 1] = '\0'; - - parser_status->syntax_error = estrndup(str, strlen(str)); - efree(str); -} -/* }}} */ -/* {{{ phvolt_scanner_error_msg - Creates an error message when it's triggered by the scanner. */ -static void phvolt_scanner_error_msg(phvolt_parser_status *parser_status, zval **error_msg) -{ - char *error, *error_part; - int length; - phvolt_scanner_state *state = parser_status->scanner_state; +static void phannot_scanner_error_msg(phannot_parser_status *parser_status, char **error_msg){ - ZVAL_NULL(*error_msg); + phannot_scanner_state *state = parser_status->scanner_state; if (state->start) { - error = emalloc(sizeof(char) * 72 + state->start_length + Z_STRLEN_P(state->active_file)); if (state->start_length > 16) { - length = 72 + Z_STRLEN_P(state->active_file); - error_part = estrndup(state->start, 16); - snprintf(error, length, "Scanning error before '%s...' in %s on line %d", - error_part, Z_STRVAL_P(state->active_file), state->active_line); - error[length - 1] = '\0'; - efree(error_part); + spprintf(error_msg, 0, "Scanning error before '%.16s...' in %s on line %d", state->start, state->active_file, state->active_line); } else { - length = 48 + state->start_length + Z_STRLEN_P(state->active_file); - snprintf(error, length, "Scanning error before '%s' in %s on line %d", - state->start, Z_STRVAL_P(state->active_file), state->active_line); + spprintf(error_msg, 0, "Scanning error before '%s' in %s on line %d", state->start, state->active_file, state->active_line); } } else { - error = emalloc(sizeof(char) * (32 + Z_STRLEN_P(state->active_file))); - length = 32 + Z_STRLEN_P(state->active_file); - snprintf(error, length, "Scanning error near to EOF in %s", Z_STRVAL_P(state->active_file)); + spprintf(error_msg, 0, "Scanning error near to EOF in %s", state->active_file); } - - error[length - 1] = '\0'; - ZVAL_STRING(*error_msg, error); - - efree(error); } -/* }}} */ - -/* {{{ phvolt_parse_view - Receives the volt code tokenizes and parses it. */ -static int phvolt_parse_view(zval *result, zval *view_code, zval *template_path) -{ - zval em, *error_msg = &em; - ZVAL_NULL(result); - ZVAL_NULL(error_msg); - if (Z_TYPE_P(view_code) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_STRW(phalcon_mvc_view_exception_ce, "View code must be a string"); - return FAILURE; - } +static int phannot_parse_annotations(zval *result, zval *comment, zval *file_path, zval *line) { - if (phvolt_internal_parse_view(&result, view_code, template_path, &error_msg) == FAILURE) { - ZEPHIR_THROW_EXCEPTION_STRW(phalcon_mvc_view_exception_ce, Z_STRVAL_P(error_msg)); - zval_dtor(error_msg); - return FAILURE; - } + char *comment_str; + int comment_len; + char *file_path_str; + int line_num; - return SUCCESS; -} -/* }}} */ + char *error_msg = NULL; -/* {{{ phvolt_parse_view - Checks whether the token has only blank characters. */ -static int phvolt_is_blank_string(phvolt_scanner_token *token) -{ - char *marker = token->value; - unsigned int ch, i; + ZVAL_NULL(result); - for (i = 0; i < token->len; i++) { - ch = *marker; - if (ch != ' ' && ch != '\t' && ch != '\n' && ch != '\r' && ch != 11) { - return 0; - } - marker++; + if (Z_TYPE_P(comment) == IS_STRING) { + comment_str = Z_STRVAL_P(comment); + comment_len = Z_STRLEN_P(comment); + } else { + comment_str = ""; + comment_len = 0; } - return 1; -} -/* }}} */ - -/* {{{ Parses a volt template returning an intermediate array representation - Checks whether the token has only blank characters. */ -static int phvolt_internal_parse_view(zval **result, zval *view_code, zval *template_path, zval **error_msg) -{ - char *error; - phvolt_scanner_state *state; - phvolt_scanner_token token; - int scanner_status, status = SUCCESS; - phvolt_parser_status *parser_status = NULL; - void* phvolt_parser; - - /** Check if the view has code */ - if (!Z_STRVAL_P(view_code)) { - ZVAL_STRING(*error_msg, "View code cannot be null"); - return FAILURE; + if (Z_TYPE_P(file_path) == IS_STRING) { + file_path_str = Z_STRVAL_P(file_path); + } else { + file_path_str = "eval"; } - if (!Z_STRLEN_P(view_code)) { - array_init(*result); - return SUCCESS; + if (Z_TYPE_P(line) == IS_LONG) { + line_num = Z_LVAL_P(line); + } else { + line_num = 0; } - /** Start the reentrant parser */ - phvolt_parser = phvolt_Alloc(phvolt_wrapper_alloc); - if (unlikely(!phvolt_parser)) { - ZVAL_STRING(*error_msg, "Memory allocation error"); + if (phannot_internal_parse_annotations(&result, comment_str, comment_len, file_path_str, line_num, &error_msg) == FAILURE) { + if (likely(error_msg != NULL)) { + zephir_throw_exception_string(phalcon_annotations_exception_ce, error_msg, strlen(error_msg)); + efree(error_msg); + } else { + zephir_throw_exception_string(phalcon_annotations_exception_ce, SL("There was an error parsing annotation")); + } + return FAILURE; } - parser_status = emalloc(sizeof(phvolt_parser_status)); - state = emalloc(sizeof(phvolt_scanner_state)); - - parser_status->status = PHVOLT_PARSING_OK; - parser_status->scanner_state = state; - ZVAL_UNDEF(&parser_status->ret); - - parser_status->token = &token; - parser_status->syntax_error = NULL; - - /** Initialize the scanner state */ - state->active_token = 0; - state->start = Z_STRVAL_P(view_code); - state->mode = PHVOLT_MODE_RAW; - state->raw_buffer = emalloc(sizeof(char) * PHVOLT_RAW_BUFFER_SIZE); - state->raw_buffer_size = PHVOLT_RAW_BUFFER_SIZE; - state->raw_buffer_cursor = 0; - state->active_file = template_path; - state->active_line = 1; - state->statement_position = 0; - state->extends_mode = 0; - state->block_level = 0; - state->macro_level = 0; - state->start_length = 0; - state->old_if_level = 0; - state->if_level = 0; - state->for_level = 0; - state->switch_level = 0; - state->whitespace_control = 0; - state->forced_raw_state = 0; - - state->end = state->start; - - token.value = NULL; - token.len = 0; - - /* To enable parser tracing decalre "#undef NDEBUG" in the lemon file */ -#ifndef NDEBUG - phvolt_Trace(stderr, "[PARSER] "); -#endif - while (0 <= (scanner_status = phvolt_get_token(state, &token))) { - - state->active_token = token.opcode; - - state->start_length = (Z_STRVAL_P(view_code) + Z_STRLEN_P(view_code) - state->start); - - switch (token.opcode) { - case PHVOLT_T_IGNORE: - break; - - case PHVOLT_T_ADD: - phvolt_(phvolt_parser, PHVOLT_PLUS, NULL, parser_status); - break; - - case PHVOLT_T_SUB: - phvolt_(phvolt_parser, PHVOLT_MINUS, NULL, parser_status); - break; - - case PHVOLT_T_MUL: - phvolt_(phvolt_parser, PHVOLT_TIMES, NULL, parser_status); - break; - - case PHVOLT_T_DIV: - phvolt_(phvolt_parser, PHVOLT_DIVIDE, NULL, parser_status); - break; - - case PHVOLT_T_MOD: - phvolt_(phvolt_parser, PHVOLT_MOD, NULL, parser_status); - break; - - case PHVOLT_T_AND: - phvolt_(phvolt_parser, PHVOLT_AND, NULL, parser_status); - break; - - case PHVOLT_T_OR: - phvolt_(phvolt_parser, PHVOLT_OR, NULL, parser_status); - break; - - case PHVOLT_T_IS: - phvolt_(phvolt_parser, PHVOLT_IS, NULL, parser_status); - break; - - case PHVOLT_T_EQUALS: - phvolt_(phvolt_parser, PHVOLT_EQUALS, NULL, parser_status); - break; - - case PHVOLT_T_NOTEQUALS: - phvolt_(phvolt_parser, PHVOLT_NOTEQUALS, NULL, parser_status); - break; - - case PHVOLT_T_LESS: - phvolt_(phvolt_parser, PHVOLT_LESS, NULL, parser_status); - break; - - case PHVOLT_T_GREATER: - phvolt_(phvolt_parser, PHVOLT_GREATER, NULL, parser_status); - break; - - case PHVOLT_T_GREATEREQUAL: - phvolt_(phvolt_parser, PHVOLT_GREATEREQUAL, NULL, parser_status); - break; - - case PHVOLT_T_LESSEQUAL: - phvolt_(phvolt_parser, PHVOLT_LESSEQUAL, NULL, parser_status); - break; - - case PHVOLT_T_IDENTICAL: - phvolt_(phvolt_parser, PHVOLT_IDENTICAL, NULL, parser_status); - break; - - case PHVOLT_T_NOTIDENTICAL: - phvolt_(phvolt_parser, PHVOLT_NOTIDENTICAL, NULL, parser_status); - break; - - case PHVOLT_T_NOT: - phvolt_(phvolt_parser, PHVOLT_NOT, NULL, parser_status); - break; - - case PHVOLT_T_DOT: - phvolt_(phvolt_parser, PHVOLT_DOT, NULL, parser_status); - break; - - case PHVOLT_T_CONCAT: - phvolt_(phvolt_parser, PHVOLT_CONCAT, NULL, parser_status); - break; - - case PHVOLT_T_RANGE: - phvolt_(phvolt_parser, PHVOLT_RANGE, NULL, parser_status); - break; - - case PHVOLT_T_PIPE: - phvolt_(phvolt_parser, PHVOLT_PIPE, NULL, parser_status); - break; - - case PHVOLT_T_COMMA: - phvolt_(phvolt_parser, PHVOLT_COMMA, NULL, parser_status); - break; - - case PHVOLT_T_COLON: - phvolt_(phvolt_parser, PHVOLT_COLON, NULL, parser_status); - break; + return SUCCESS; +} - case PHVOLT_T_QUESTION: - phvolt_(phvolt_parser, PHVOLT_QUESTION, NULL, parser_status); - break; +static void phannot_remove_comment_separators(char **ret, int *ret_len, const char *comment, int length, int *start_lines) +{ + char ch; + int start_mode = 1, j, i, open_parentheses; + smart_str processed_str = {0}; - case PHVOLT_T_PARENTHESES_OPEN: - phvolt_(phvolt_parser, PHVOLT_PARENTHESES_OPEN, NULL, parser_status); - break; + (*start_lines) = 0; - case PHVOLT_T_PARENTHESES_CLOSE: - phvolt_(phvolt_parser, PHVOLT_PARENTHESES_CLOSE, NULL, parser_status); - break; + for (i = 0; i < length; i++) { - case PHVOLT_T_SBRACKET_OPEN: - phvolt_(phvolt_parser, PHVOLT_SBRACKET_OPEN, NULL, parser_status); - break; + ch = comment[i]; - case PHVOLT_T_SBRACKET_CLOSE: - phvolt_(phvolt_parser, PHVOLT_SBRACKET_CLOSE, NULL, parser_status); - break; + if (start_mode) { + if (ch == ' ' || ch == '*' || ch == '/' || ch == '\t' || ch == 11) { + continue; + } + start_mode = 0; + } - case PHVOLT_T_CBRACKET_OPEN: - phvolt_(phvolt_parser, PHVOLT_CBRACKET_OPEN, NULL, parser_status); - break; + if (ch == '@') { - case PHVOLT_T_CBRACKET_CLOSE: - phvolt_(phvolt_parser, PHVOLT_CBRACKET_CLOSE, NULL, parser_status); - break; + smart_str_appendc(&processed_str, ch); + i++; - case PHVOLT_T_OPEN_DELIMITER: - phvolt_(phvolt_parser, PHVOLT_OPEN_DELIMITER, NULL, parser_status); - break; + open_parentheses = 0; + for (j = i; j < length; j++) { - case PHVOLT_T_CLOSE_DELIMITER: - phvolt_(phvolt_parser, PHVOLT_CLOSE_DELIMITER, NULL, parser_status); - break; + ch = comment[j]; - case PHVOLT_T_OPEN_EDELIMITER: - if (state->extends_mode == 1 && state->block_level == 0) { - phvolt_create_error_msg(parser_status, "Child templates only may contain blocks"); - parser_status->status = PHVOLT_PARSING_FAILED; - break; + if (start_mode) { + if (ch == ' ' || ch == '*' || ch == '/' || ch == '\t' || ch == 11) { + continue; + } + start_mode = 0; } - phvolt_(phvolt_parser, PHVOLT_OPEN_EDELIMITER, NULL, parser_status); - break; - - case PHVOLT_T_CLOSE_EDELIMITER: - phvolt_(phvolt_parser, PHVOLT_CLOSE_EDELIMITER, NULL, parser_status); - break; - - case PHVOLT_T_NULL: - phvolt_(phvolt_parser, PHVOLT_NULL, NULL, parser_status); - break; - - case PHVOLT_T_TRUE: - phvolt_(phvolt_parser, PHVOLT_TRUE, NULL, parser_status); - break; - - case PHVOLT_T_FALSE: - phvolt_(phvolt_parser, PHVOLT_FALSE, NULL, parser_status); - break; - - case PHVOLT_T_INTEGER: - phvolt_parse_with_token(phvolt_parser, PHVOLT_T_INTEGER, PHVOLT_INTEGER, &token, parser_status); - break; - case PHVOLT_T_DOUBLE: - phvolt_parse_with_token(phvolt_parser, PHVOLT_T_DOUBLE, PHVOLT_DOUBLE, &token, parser_status); - break; + if (open_parentheses == 0) { - case PHVOLT_T_STRING: - phvolt_parse_with_token(phvolt_parser, PHVOLT_T_STRING, PHVOLT_STRING, &token, parser_status); - break; + if (isalnum(ch) || '_' == ch || '\\' == ch) { + smart_str_appendc(&processed_str, ch); + continue; + } - case PHVOLT_T_IDENTIFIER: - phvolt_parse_with_token(phvolt_parser, PHVOLT_T_IDENTIFIER, PHVOLT_IDENTIFIER, &token, parser_status); - break; + if (ch == '(') { + smart_str_appendc(&processed_str, ch); + open_parentheses++; + continue; + } - case PHVOLT_T_IF: - if (state->extends_mode == 1 && state->block_level == 0){ - phvolt_create_error_msg(parser_status, "Child templates only may contain blocks"); - parser_status->status = PHVOLT_PARSING_FAILED; - break; } else { - state->if_level++; - state->block_level++; - } - phvolt_(phvolt_parser, PHVOLT_IF, NULL, parser_status); - break; - case PHVOLT_T_ELSE: - if (state->if_level == 0 && state->for_level > 0) { - phvolt_(phvolt_parser, PHVOLT_ELSEFOR, NULL, parser_status); - } else { - phvolt_(phvolt_parser, PHVOLT_ELSE, NULL, parser_status); - } - break; + smart_str_appendc(&processed_str, ch); - case PHVOLT_T_ELSEFOR: - phvolt_(phvolt_parser, PHVOLT_ELSEFOR, NULL, parser_status); - break; + if (ch == '(') { + open_parentheses++; + } else { + if (ch == ')') { + open_parentheses--; + } else { + if (ch == '\n') { + (*start_lines)++; + start_mode = 1; + } + } + } - case PHVOLT_T_ELSEIF: - if (state->if_level == 0) { - phvolt_create_error_msg(parser_status, "Unexpected ENDIF"); - parser_status->status = PHVOLT_PARSING_FAILED; - break; + if (open_parentheses > 0) { + continue; + } } - phvolt_(phvolt_parser, PHVOLT_ELSEIF, NULL, parser_status); - break; - - case PHVOLT_T_ENDIF: - state->block_level--; - state->if_level--; - phvolt_(phvolt_parser, PHVOLT_ENDIF, NULL, parser_status); - break; - case PHVOLT_T_FOR: - if (state->extends_mode == 1 && state->block_level == 0){ - phvolt_create_error_msg(parser_status, "Child templates only may contain blocks"); - parser_status->status = PHVOLT_PARSING_FAILED; - break; - } else { - state->old_if_level = state->if_level; - state->if_level = 0; - state->for_level++; - state->block_level++; - } - phvolt_(phvolt_parser, PHVOLT_FOR, NULL, parser_status); + i = j; + smart_str_appendc(&processed_str, ' '); break; + } + } - case PHVOLT_T_IN: - phvolt_(phvolt_parser, PHVOLT_IN, NULL, parser_status); - break; + if (ch == '\n') { + (*start_lines)++; + start_mode = 1; + } + } - case PHVOLT_T_ENDFOR: - state->block_level--; - state->for_level--; - state->if_level = state->old_if_level; - phvolt_(phvolt_parser, PHVOLT_ENDFOR, NULL, parser_status); - break; + smart_str_0(&processed_str); - case PHVOLT_T_SWITCH: - if (state->extends_mode == 1 && state->block_level == 0){ - phvolt_create_error_msg(parser_status, "Child templates only may contain blocks"); - parser_status->status = PHVOLT_PARSING_FAILED; - break; - } else if (state->switch_level > 0) { - phvolt_create_error_msg(parser_status, "A nested switch detected. There is no nested switch-case statements support"); - parser_status->status = PHVOLT_PARSING_FAILED; - break; - } else { - state->switch_level = 1; - state->block_level++; - } - phvolt_(phvolt_parser, PHVOLT_SWITCH, NULL, parser_status); - break; + if (processed_str.s) { + *ret = estrndup(ZSTR_VAL(processed_str.s), ZSTR_LEN(processed_str.s)); + *ret_len = ZSTR_LEN(processed_str.s); + smart_str_free(&processed_str); + } else { + *ret = NULL; + *ret_len = 0; + } +} - case PHVOLT_T_CASE: - if (state->switch_level == 0) { - phvolt_create_error_msg(parser_status, "Unexpected CASE"); - parser_status->status = PHVOLT_PARSING_FAILED; - break; - } - phvolt_(phvolt_parser, PHVOLT_CASE, NULL, parser_status); - break; +static int phannot_internal_parse_annotations(zval **result, const char *comment, int comment_len, const char *file_path, int line, char **error_msg) +{ + phannot_scanner_state *state; + phannot_scanner_token token; + int start_lines; + int scanner_status, status = SUCCESS; + phannot_parser_status *parser_status = NULL; + void* phannot_parser; + char *processed_comment; + int processed_comment_len; - /* only for switch-case statements */ - case PHVOLT_T_DEFAULT: - if (state->switch_level != 0) { - phvolt_(phvolt_parser, PHVOLT_DEFAULT, NULL, parser_status); - efree(token.value); - } else { - phvolt_parse_with_token(phvolt_parser, PHVOLT_T_IDENTIFIER, PHVOLT_IDENTIFIER, &token, parser_status); - } + *error_msg = NULL; - break; + if (UNEXPECTED(!comment)) { + ZVAL_BOOL(*result, 0); + spprintf(error_msg, 0, "Empty annotation"); + return FAILURE; + } - case PHVOLT_T_ENDSWITCH: - if (state->switch_level == 0) { - phvolt_create_error_msg(parser_status, "Unexpected ENDSWITCH"); - parser_status->status = PHVOLT_PARSING_FAILED; - break; - } else { - state->switch_level = 0; - state->block_level--; - } + if (comment_len < 2) { + ZVAL_BOOL(*result, 0); + return SUCCESS; + } - phvolt_(phvolt_parser, PHVOLT_ENDSWITCH, NULL, parser_status); - break; + phannot_remove_comment_separators(&processed_comment, &processed_comment_len, comment, comment_len, &start_lines); - case PHVOLT_T_RAW_FRAGMENT: - if (token.len > 0) { - if (state->extends_mode == 1 && state->block_level == 0){ - if (!phvolt_is_blank_string(&token)) { - phvolt_create_error_msg(parser_status, "Child templates only may contain blocks"); - parser_status->status = PHVOLT_PARSING_FAILED; - } - efree(token.value); - break; - } else { - if (!phvolt_is_blank_string(&token)) { - state->statement_position++; - } - } - phvolt_parse_with_token(phvolt_parser, PHVOLT_T_RAW_FRAGMENT, PHVOLT_RAW_FRAGMENT, &token, parser_status); - } else { - efree(token.value); - } - break; + if (processed_comment_len < 2) { + ZVAL_BOOL(*result, 0); + if (processed_comment) { + efree(processed_comment); + } - case PHVOLT_T_SET: - if (state->extends_mode == 1 && state->block_level == 0){ - phvolt_create_error_msg(parser_status, "Child templates only may contain blocks"); - parser_status->status = PHVOLT_PARSING_FAILED; - break; - } - phvolt_(phvolt_parser, PHVOLT_SET, NULL, parser_status); - break; + return SUCCESS; + } - case PHVOLT_T_ASSIGN: - phvolt_(phvolt_parser, PHVOLT_ASSIGN, NULL, parser_status); - break; + phannot_parser = phannot_Alloc(phannot_wrapper_alloc); + if (unlikely(!phannot_parser)) { + ZVAL_BOOL(*result, 0); + return FAILURE; + } - case PHVOLT_T_ADD_ASSIGN: - phvolt_(phvolt_parser, PHVOLT_ADD_ASSIGN, NULL, parser_status); - break; + parser_status = emalloc(sizeof(phannot_parser_status) + sizeof(phannot_scanner_state)); + state = (phannot_scanner_state*)((char*)parser_status + sizeof(phannot_parser_status)); - case PHVOLT_T_SUB_ASSIGN: - phvolt_(phvolt_parser, PHVOLT_SUB_ASSIGN, NULL, parser_status); - break; + parser_status->status = PHANNOT_PARSING_OK; + parser_status->scanner_state = state; + parser_status->token = &token; + parser_status->syntax_error = NULL; - case PHVOLT_T_MUL_ASSIGN: - phvolt_(phvolt_parser, PHVOLT_MUL_ASSIGN, NULL, parser_status); - break; + state->active_token = 0; + state->start = processed_comment; + state->start_length = 0; + state->mode = PHANNOT_MODE_RAW; + state->active_file = file_path; - case PHVOLT_T_DIV_ASSIGN: - phvolt_(phvolt_parser, PHVOLT_DIV_ASSIGN, NULL, parser_status); - break; + token.value = NULL; + token.len = 0; - case PHVOLT_T_INCR: - phvolt_(phvolt_parser, PHVOLT_INCR, NULL, parser_status); - break; + if (line) { + state->active_line = line - start_lines; + } else { + state->active_line = 1; + } - case PHVOLT_T_DECR: - phvolt_(phvolt_parser, PHVOLT_DECR, NULL, parser_status); - break; + state->end = state->start; - case PHVOLT_T_BLOCK: - if (state->block_level > 0) { - phvolt_create_error_msg(parser_status, "Embedding blocks into other blocks is not supported"); - parser_status->status = PHVOLT_PARSING_FAILED; - break; - } else { - state->block_level++; - } - phvolt_(phvolt_parser, PHVOLT_BLOCK, NULL, parser_status); - break; + while(0 <= (scanner_status = phannot_get_token(state, &token))) { - case PHVOLT_T_ENDBLOCK: - state->block_level--; - phvolt_(phvolt_parser, PHVOLT_ENDBLOCK, NULL, parser_status); - break; + state->active_token = token.opcode; - case PHVOLT_T_MACRO: - if (state->macro_level > 0) { - phvolt_create_error_msg(parser_status, "Embedding macros into other macros is not allowed"); - parser_status->status = PHVOLT_PARSING_FAILED; - break; - } else { - state->macro_level++; - } - phvolt_(phvolt_parser, PHVOLT_MACRO, NULL, parser_status); - break; - case PHVOLT_T_ENDMACRO: - state->macro_level--; - phvolt_(phvolt_parser, PHVOLT_ENDMACRO, NULL, parser_status); - break; + state->start_length = processed_comment + processed_comment_len - state->start; - case PHVOLT_T_CALL: - phvolt_(phvolt_parser, PHVOLT_CALL, NULL, parser_status); - break; - case PHVOLT_T_ENDCALL: - phvolt_(phvolt_parser, PHVOLT_ENDCALL, NULL, parser_status); - break; + switch (token.opcode) { - case PHVOLT_T_CACHE: - phvolt_(phvolt_parser, PHVOLT_CACHE, NULL, parser_status); - break; - case PHVOLT_T_ENDCACHE: - phvolt_(phvolt_parser, PHVOLT_ENDCACHE, NULL, parser_status); + case PHANNOT_T_IGNORE: break; - case PHVOLT_T_RAW: - phvolt_(phvolt_parser, PHVOLT_RAW, NULL, parser_status); - state->forced_raw_state++; - break; - case PHVOLT_T_ENDRAW: - phvolt_(phvolt_parser, PHVOLT_ENDRAW, NULL, parser_status); - state->forced_raw_state--; + case PHANNOT_T_AT: + phannot_(phannot_parser, PHANNOT_AT, NULL, parser_status); break; - - case PHVOLT_T_INCLUDE: - phvolt_(phvolt_parser, PHVOLT_INCLUDE, NULL, parser_status); + case PHANNOT_T_COMMA: + phannot_(phannot_parser, PHANNOT_COMMA, NULL, parser_status); break; - - case PHVOLT_T_WITH: - phvolt_(phvolt_parser, PHVOLT_WITH, NULL, parser_status); + case PHANNOT_T_EQUALS: + phannot_(phannot_parser, PHANNOT_EQUALS, NULL, parser_status); break; - - case PHVOLT_T_DEFINED: - phvolt_(phvolt_parser, PHVOLT_DEFINED, NULL, parser_status); + case PHANNOT_T_COLON: + phannot_(phannot_parser, PHANNOT_COLON, NULL, parser_status); break; - case PHVOLT_T_EMPTY: - phvolt_(phvolt_parser, PHVOLT_EMPTY, NULL, parser_status); + case PHANNOT_T_PARENTHESES_OPEN: + phannot_(phannot_parser, PHANNOT_PARENTHESES_OPEN, NULL, parser_status); break; - - case PHVOLT_T_EVEN: - phvolt_(phvolt_parser, PHVOLT_EVEN, NULL, parser_status); + case PHANNOT_T_PARENTHESES_CLOSE: + phannot_(phannot_parser, PHANNOT_PARENTHESES_CLOSE, NULL, parser_status); break; - case PHVOLT_T_ODD: - phvolt_(phvolt_parser, PHVOLT_ODD, NULL, parser_status); + case PHANNOT_T_BRACKET_OPEN: + phannot_(phannot_parser, PHANNOT_BRACKET_OPEN, NULL, parser_status); break; - - case PHVOLT_T_NUMERIC: - phvolt_(phvolt_parser, PHVOLT_NUMERIC, NULL, parser_status); + case PHANNOT_T_BRACKET_CLOSE: + phannot_(phannot_parser, PHANNOT_BRACKET_CLOSE, NULL, parser_status); break; - case PHVOLT_T_SCALAR: - phvolt_(phvolt_parser, PHVOLT_SCALAR, NULL, parser_status); + case PHANNOT_T_SBRACKET_OPEN: + phannot_(phannot_parser, PHANNOT_SBRACKET_OPEN, NULL, parser_status); break; - - case PHVOLT_T_ITERABLE: - phvolt_(phvolt_parser, PHVOLT_ITERABLE, NULL, parser_status); + case PHANNOT_T_SBRACKET_CLOSE: + phannot_(phannot_parser, PHANNOT_SBRACKET_CLOSE, NULL, parser_status); break; - case PHVOLT_T_DO: - phvolt_(phvolt_parser, PHVOLT_DO, NULL, parser_status); + case PHANNOT_T_NULL: + phannot_(phannot_parser, PHANNOT_NULL, NULL, parser_status); break; - case PHVOLT_T_RETURN: - phvolt_(phvolt_parser, PHVOLT_RETURN, NULL, parser_status); + case PHANNOT_T_TRUE: + phannot_(phannot_parser, PHANNOT_TRUE, NULL, parser_status); break; - - case PHVOLT_T_AUTOESCAPE: - phvolt_(phvolt_parser, PHVOLT_AUTOESCAPE, NULL, parser_status); + case PHANNOT_T_FALSE: + phannot_(phannot_parser, PHANNOT_FALSE, NULL, parser_status); break; - case PHVOLT_T_ENDAUTOESCAPE: - phvolt_(phvolt_parser, PHVOLT_ENDAUTOESCAPE, NULL, parser_status); + case PHANNOT_T_INTEGER: + phannot_parse_with_token(phannot_parser, PHANNOT_T_INTEGER, PHANNOT_INTEGER, &token, parser_status); break; - - case PHVOLT_T_BREAK: - phvolt_(phvolt_parser, PHVOLT_BREAK, NULL, parser_status); + case PHANNOT_T_DOUBLE: + phannot_parse_with_token(phannot_parser, PHANNOT_T_DOUBLE, PHANNOT_DOUBLE, &token, parser_status); break; - - case PHVOLT_T_CONTINUE: - phvolt_(phvolt_parser, PHVOLT_CONTINUE, NULL, parser_status); + case PHANNOT_T_STRING: + phannot_parse_with_token(phannot_parser, PHANNOT_T_STRING, PHANNOT_STRING, &token, parser_status); break; - - case PHVOLT_T_EXTENDS: - if (state->statement_position != 1) { - phvolt_create_error_msg(parser_status, "Extends statement must be placed at the first line in the template"); - parser_status->status = PHVOLT_PARSING_FAILED; - break; - } else { - state->extends_mode = 1; - } - phvolt_(phvolt_parser, PHVOLT_EXTENDS, NULL, parser_status); + case PHANNOT_T_IDENTIFIER: + phannot_parse_with_token(phannot_parser, PHANNOT_T_IDENTIFIER, PHANNOT_IDENTIFIER, &token, parser_status); break; + /*case PHANNOT_T_ARBITRARY_TEXT: + phannot_parse_with_token(phannot_parser, PHANNOT_T_ARBITRARY_TEXT, PHANNOT_ARBITRARY_TEXT, &token, parser_status); + break;*/ default: - parser_status->status = PHVOLT_PARSING_FAILED; - error = emalloc(sizeof(char) * (48 + Z_STRLEN_P(state->active_file))); - snprintf(error, 48 + Z_STRLEN_P(state->active_file) + state->active_line, - "Scanner: unknown opcode %d on in %s line %d", token.opcode, - Z_STRVAL_P(state->active_file), state->active_line); - - if (Z_TYPE_P(*error_msg) == IS_NULL) { - ZVAL_STRING((*error_msg), error); + parser_status->status = PHANNOT_PARSING_FAILED; + if (!*error_msg) { + spprintf(error_msg, 0, "Scanner: unknown opcode %d on in %s line %d", token.opcode, state->active_file, state->active_line); } - - efree(error); break; } - if (parser_status->status != PHVOLT_PARSING_OK) { + if (parser_status->status != PHANNOT_PARSING_OK) { status = FAILURE; break; } @@ -186745,596 +177054,696 @@ static int phvolt_internal_parse_view(zval **result, zval *view_code, zval *temp if (status != FAILURE) { switch (scanner_status) { - case PHVOLT_SCANNER_RETCODE_ERR: - case PHVOLT_SCANNER_RETCODE_IMPOSSIBLE: + + case PHANNOT_SCANNER_RETCODE_ERR: + case PHANNOT_SCANNER_RETCODE_IMPOSSIBLE: if (!*error_msg) { - phvolt_scanner_error_msg(parser_status, error_msg); - } else { - if (Z_TYPE_P(*error_msg) == IS_NULL) { - phvolt_scanner_error_msg(parser_status, error_msg); - } + phannot_scanner_error_msg(parser_status, error_msg); } status = FAILURE; break; + default: - phvolt_(phvolt_parser, 0, NULL, parser_status); + phannot_(phannot_parser, 0, NULL, parser_status); } } state->active_token = 0; state->start = NULL; - efree(state->raw_buffer); - if (parser_status->status != PHVOLT_PARSING_OK) { + if (parser_status->status != PHANNOT_PARSING_OK) { status = FAILURE; if (parser_status->syntax_error) { - ZVAL_STRING(*error_msg, parser_status->syntax_error); - efree(parser_status->syntax_error); + if (!*error_msg) { + *error_msg = parser_status->syntax_error; + } else { + efree(parser_status->syntax_error); + } } } + phannot_Free(phannot_parser, phannot_wrapper_free); + if (status != FAILURE) { - if (parser_status->status == PHVOLT_PARSING_OK) { - if (Z_TYPE(parser_status->ret) != IS_UNDEF) { - ZVAL_ZVAL(*result, &parser_status->ret, 1, 1); - } else { - array_init(*result); - } + if (parser_status->status == PHANNOT_PARSING_OK) { + ZVAL_ZVAL(*result, &parser_status->ret, 1, 1); } } - phvolt_Free(phvolt_parser, phvolt_wrapper_free); - + efree(processed_comment); efree(parser_status); - efree(state); return status; - } -/* }}} */ -/* Generated by re2c 1.1.1 */ -/* scanner.re - * - * This file is part of the Phalcon Framework. - * - * (c) Phalcon Team - * - * For the full copyright and license information, please view the - * LICENSE.txt file that was distributed with this source code. - */ +#ifdef HAVE_CONFIG_H +#endif -/* for re2c */ -#define VVCTYPE unsigned char -#define VVCURSOR (s->start) -#define VVLIMIT (s->end) -#define VVMARKER (s->marker) -static void phvolt_rtrim(phvolt_scanner_token *token) { - char *cursor, *removed_str; - int i; - char ch; - if (token->len > 0) { +ZEPHIR_INIT_CLASS(Phalcon_Annotations_Reader) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Annotations, Reader, phalcon, annotations_reader, phalcon_annotations_reader_method_entry, 0); - cursor = token->value; - cursor += (token->len - 1); - for (i = token->len; i > 0; i--) { - ch = (*cursor); - if (ch == '\t' || ch == '\n' || ch == '\r' || ch == ' ' || ch == '\v') { - cursor--; - continue; + zend_class_implements(phalcon_annotations_reader_ce, 1, phalcon_annotations_readerinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Annotations_Reader, parse) +{ + zval annotations; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS, line = 0; + zval *className_param = NULL, reflection, comment, properties, methods, property, method, classAnnotations, annotationsProperties, propertyAnnotations, annotationsMethods, methodAnnotations, _0$$3, _1$$3, *_2$$5, _3$$5, _4$$7, _5$$7, _6$$8, _7$$10, _8$$10, _9$$11, *_10$$13, _11$$13, _12$$15, _13$$15, _14$$16, _15$$18, _16$$18, _17$$19; + zval className; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&reflection); + ZVAL_UNDEF(&comment); + ZVAL_UNDEF(&properties); + ZVAL_UNDEF(&methods); + ZVAL_UNDEF(&property); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&classAnnotations); + ZVAL_UNDEF(&annotationsProperties); + ZVAL_UNDEF(&propertyAnnotations); + ZVAL_UNDEF(&annotationsMethods); + ZVAL_UNDEF(&methodAnnotations); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_4$$7); + ZVAL_UNDEF(&_5$$7); + ZVAL_UNDEF(&_6$$8); + ZVAL_UNDEF(&_7$$10); + ZVAL_UNDEF(&_8$$10); + ZVAL_UNDEF(&_9$$11); + ZVAL_UNDEF(&_11$$13); + ZVAL_UNDEF(&_12$$15); + ZVAL_UNDEF(&_13$$15); + ZVAL_UNDEF(&_14$$16); + ZVAL_UNDEF(&_15$$18); + ZVAL_UNDEF(&_16$$18); + ZVAL_UNDEF(&_17$$19); + ZVAL_UNDEF(&annotations); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(className) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &className_param); + zephir_get_strval(&className, className_param); + + + ZEPHIR_INIT_VAR(&annotations); + array_init(&annotations); + ZEPHIR_INIT_VAR(&reflection); + object_init_ex(&reflection, zephir_get_internal_ce(SL("reflectionclass"))); + ZEPHIR_CALL_METHOD(NULL, &reflection, "__construct", NULL, 156, &className); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&comment, &reflection, "getdoccomment", NULL, 157); + zephir_check_call_status(); + if (Z_TYPE_P(&comment) == IS_STRING) { + ZEPHIR_INIT_VAR(&classAnnotations); + ZEPHIR_CALL_METHOD(&_0$$3, &reflection, "getfilename", NULL, 158); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1$$3, &reflection, "getstartline", NULL, 159); + zephir_check_call_status(); + ZEPHIR_LAST_CALL_STATUS = phannot_parse_annotations(&classAnnotations, &comment, &_0$$3, &_1$$3); + zephir_check_call_status(); + if (Z_TYPE_P(&classAnnotations) == IS_ARRAY) { + zephir_array_update_string(&annotations, SL("class"), &classAnnotations, PH_COPY | PH_SEPARATE); + } + } + ZEPHIR_CALL_METHOD(&properties, &reflection, "getproperties", NULL, 160); + zephir_check_call_status(); + if (zephir_fast_count_int(&properties)) { + line = 1; + ZEPHIR_INIT_VAR(&annotationsProperties); + array_init(&annotationsProperties); + zephir_is_iterable(&properties, 0, "phalcon/Annotations/Reader.zep", 92); + if (Z_TYPE_P(&properties) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&properties), _2$$5) + { + ZEPHIR_INIT_NVAR(&property); + ZVAL_COPY(&property, _2$$5); + ZEPHIR_CALL_METHOD(&comment, &property, "getdoccomment", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&comment) == IS_STRING) { + ZEPHIR_INIT_NVAR(&propertyAnnotations); + ZEPHIR_CALL_METHOD(&_4$$7, &reflection, "getfilename", NULL, 158); + zephir_check_call_status(); + ZVAL_LONG(&_5$$7, line); + ZEPHIR_LAST_CALL_STATUS = phannot_parse_annotations(&propertyAnnotations, &comment, &_4$$7, &_5$$7); + zephir_check_call_status(); + if (Z_TYPE_P(&propertyAnnotations) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&_6$$8); + zephir_read_property(&_6$$8, &property, ZEND_STRL("name"), PH_NOISY_CC); + zephir_array_update_zval(&annotationsProperties, &_6$$8, &propertyAnnotations, PH_COPY | PH_SEPARATE); + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &properties, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3$$5, &properties, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3$$5)) { + break; + } + ZEPHIR_CALL_METHOD(&property, &properties, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&comment, &property, "getdoccomment", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&comment) == IS_STRING) { + ZEPHIR_INIT_NVAR(&propertyAnnotations); + ZEPHIR_CALL_METHOD(&_7$$10, &reflection, "getfilename", NULL, 158); + zephir_check_call_status(); + ZVAL_LONG(&_8$$10, line); + ZEPHIR_LAST_CALL_STATUS = phannot_parse_annotations(&propertyAnnotations, &comment, &_7$$10, &_8$$10); + zephir_check_call_status(); + if (Z_TYPE_P(&propertyAnnotations) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&_9$$11); + zephir_read_property(&_9$$11, &property, ZEND_STRL("name"), PH_NOISY_CC); + zephir_array_update_zval(&annotationsProperties, &_9$$11, &propertyAnnotations, PH_COPY | PH_SEPARATE); + } + } + ZEPHIR_CALL_METHOD(NULL, &properties, "next", NULL, 0); + zephir_check_call_status(); } - break; } + ZEPHIR_INIT_NVAR(&property); + if (zephir_fast_count_int(&annotationsProperties)) { + zephir_array_update_string(&annotations, SL("properties"), &annotationsProperties, PH_COPY | PH_SEPARATE); + } + } + ZEPHIR_CALL_METHOD(&methods, &reflection, "getmethods", NULL, 161); + zephir_check_call_status(); + if (zephir_fast_count_int(&methods)) { + ZEPHIR_INIT_VAR(&annotationsMethods); + array_init(&annotationsMethods); + zephir_is_iterable(&methods, 0, "phalcon/Annotations/Reader.zep", 127); + if (Z_TYPE_P(&methods) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&methods), _10$$13) + { + ZEPHIR_INIT_NVAR(&method); + ZVAL_COPY(&method, _10$$13); + ZEPHIR_CALL_METHOD(&comment, &method, "getdoccomment", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&comment) == IS_STRING) { + ZEPHIR_INIT_NVAR(&methodAnnotations); + ZEPHIR_CALL_METHOD(&_12$$15, &method, "getfilename", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_13$$15, &method, "getstartline", NULL, 0); + zephir_check_call_status(); + ZEPHIR_LAST_CALL_STATUS = phannot_parse_annotations(&methodAnnotations, &comment, &_12$$15, &_13$$15); + zephir_check_call_status(); + if (Z_TYPE_P(&methodAnnotations) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&_14$$16); + zephir_read_property(&_14$$16, &method, ZEND_STRL("name"), PH_NOISY_CC); + zephir_array_update_zval(&annotationsMethods, &_14$$16, &methodAnnotations, PH_COPY | PH_SEPARATE); + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &methods, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_11$$13, &methods, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_11$$13)) { + break; + } + ZEPHIR_CALL_METHOD(&method, &methods, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&comment, &method, "getdoccomment", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&comment) == IS_STRING) { + ZEPHIR_INIT_NVAR(&methodAnnotations); + ZEPHIR_CALL_METHOD(&_15$$18, &method, "getfilename", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_16$$18, &method, "getstartline", NULL, 0); + zephir_check_call_status(); + ZEPHIR_LAST_CALL_STATUS = phannot_parse_annotations(&methodAnnotations, &comment, &_15$$18, &_16$$18); + zephir_check_call_status(); + if (Z_TYPE_P(&methodAnnotations) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&_17$$19); + zephir_read_property(&_17$$19, &method, ZEND_STRL("name"), PH_NOISY_CC); + zephir_array_update_zval(&annotationsMethods, &_17$$19, &methodAnnotations, PH_COPY | PH_SEPARATE); + } + } + ZEPHIR_CALL_METHOD(NULL, &methods, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&method); + if (zephir_fast_count_int(&annotationsMethods)) { + zephir_array_update_string(&annotations, SL("methods"), &annotationsMethods, PH_COPY | PH_SEPARATE); + } + } + RETURN_CTOR(&annotations); +} - if (i >= 0) { - removed_str = emalloc(i + 1); - memcpy(removed_str, token->value, i); - removed_str[i] = '\0'; +static PHP_METHOD(Phalcon_Annotations_Reader, parseDocBlock) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *docBlock_param = NULL, *file = NULL, file_sub, *line = NULL, line_sub, __$null; + zval docBlock; + zval *this_ptr = getThis(); - efree(token->value); - token->value = removed_str; - token->len = i; - } + ZVAL_UNDEF(&docBlock); + ZVAL_UNDEF(&file_sub); + ZVAL_UNDEF(&line_sub); + ZVAL_NULL(&__$null); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(docBlock) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(file) + Z_PARAM_ZVAL_OR_NULL(line) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &docBlock_param, &file, &line); + zephir_get_strval(&docBlock, docBlock_param); + if (!file) { + file = &file_sub; + ZEPHIR_CPY_WRT(file, &__$null); + } else { + ZEPHIR_SEPARATE_PARAM(file); + } + if (!line) { + line = &line_sub; + line = &__$null; } + + if (Z_TYPE_P(file) != IS_STRING) { + ZEPHIR_INIT_NVAR(file); + ZVAL_STRING(file, "eval code"); + } + ZEPHIR_LAST_CALL_STATUS = phannot_parse_annotations(return_value, &docBlock, file, line); + zephir_check_call_status(); + RETURN_MM(); } -static void phvolt_ltrim(phvolt_scanner_token *token) { - char *cursor, *removed_str; - int i; - if (token->len > 0) { - cursor = token->value; - for (i = 0; i < token->len; i++) { - char ch = (*cursor); - if (ch == '\t' || ch == '\n' || ch == '\r' || ch == ' ' || ch == '\v') { - cursor++; - continue; - } - break; - } +#ifdef HAVE_CONFIG_H +#endif + + - if (i >= 0) { - removed_str = emalloc(token->len - i + 1); - memcpy(removed_str, token->value + i, token->len - i); - removed_str[token->len - i] = '\0'; - efree(token->value); - token->value = removed_str; - token->len = token->len - i; - } - } +ZEPHIR_INIT_CLASS(Phalcon_Annotations_ReaderInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Annotations, ReaderInterface, phalcon, annotations_readerinterface, phalcon_annotations_readerinterface_method_entry); + + return SUCCESS; } -static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token) { - unsigned char next, double_next; - char *start = VVCURSOR; - int status = PHVOLT_SCANNER_RETCODE_IMPOSSIBLE; +ZEPHIR_DOC_METHOD(Phalcon_Annotations_ReaderInterface, parse); +ZEPHIR_DOC_METHOD(Phalcon_Annotations_ReaderInterface, parseDocBlock); - while (PHVOLT_SCANNER_RETCODE_IMPOSSIBLE == status) { - if (s->mode == PHVOLT_MODE_RAW || s->mode == PHVOLT_MODE_COMMENT) { - next = '\0'; - double_next = '\0'; - if (*VVCURSOR == '\n') { - s->active_line++; - } - if (*VVCURSOR != '\0') { - next = *(VVCURSOR + 1); - if (next != '\0') { - double_next = *(VVCURSOR + 2); - } - } +#ifdef HAVE_CONFIG_H +#endif - if (*VVCURSOR == '\0' || (*VVCURSOR == '{' && (next == '%' || next == '{' || next == '#'))) { - if (next != '#') { - s->mode = PHVOLT_MODE_CODE; - if (s->raw_buffer_cursor > 0) { - token->opcode = PHVOLT_T_RAW_FRAGMENT; - token->value = emalloc(sizeof(char) * s->raw_buffer_cursor + 1); - memcpy(token->value, s->raw_buffer, s->raw_buffer_cursor); - token->value[s->raw_buffer_cursor] = 0; - token->len = s->raw_buffer_cursor; - if (s->whitespace_control == 1) { - phvolt_ltrim(token); - s->whitespace_control = 0; - } - if (double_next == '-') { - phvolt_rtrim(token); - } - s->raw_buffer_cursor = 0; - } else { - token->opcode = PHVOLT_T_IGNORE; - } - } else { - while ((next = *(++VVCURSOR))) { - if (next == '#' && *(VVCURSOR + 1) == '}') { - VVCURSOR += 2; - token->opcode = PHVOLT_T_IGNORE; - return 0; - } else { - if (next == '\n') { - s->active_line++; - } - } - } +ZEPHIR_INIT_CLASS(Phalcon_Annotations_Reflection) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Annotations, Reflection, phalcon, annotations_reflection, phalcon_annotations_reflection_method_entry, 0); - return PHVOLT_SCANNER_RETCODE_EOF; - } + zend_declare_property_null(phalcon_annotations_reflection_ce, SL("classAnnotations"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_annotations_reflection_ce, SL("methodAnnotations"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_annotations_reflection_ce, SL("propertyAnnotations"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_annotations_reflection_ce, SL("reflectionData"), ZEND_ACC_PROTECTED); + phalcon_annotations_reflection_ce->create_object = zephir_init_properties_Phalcon_Annotations_Reflection; - return 0; + return SUCCESS; +} - } else { - if (s->raw_buffer_cursor == s->raw_buffer_size) { - s->raw_buffer_size += PHVOLT_RAW_BUFFER_SIZE; - s->raw_buffer = erealloc(s->raw_buffer, s->raw_buffer_size); - } +static PHP_METHOD(Phalcon_Annotations_Reflection, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *reflectionData_param = NULL; + zval reflectionData; + zval *this_ptr = getThis(); - memcpy(s->raw_buffer+s->raw_buffer_cursor, VVCURSOR, 1); - s->raw_buffer_cursor++; + ZVAL_UNDEF(&reflectionData); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(reflectionData) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &reflectionData_param); + if (!reflectionData_param) { + ZEPHIR_INIT_VAR(&reflectionData); + array_init(&reflectionData); + } else { + zephir_get_arrval(&reflectionData, reflectionData_param); + } - ++VVCURSOR; - } + zephir_update_property_zval(this_ptr, ZEND_STRL("reflectionData"), &reflectionData); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Annotations_Reflection, getClassAnnotations) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval __$true, __$false, reflectionClass, _0, _1$$3, _2$$4; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&reflectionClass); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("classAnnotations"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("reflectionData"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_string_fetch(&reflectionClass, &_1$$3, SL("class"), 1)) { + ZEPHIR_INIT_VAR(&_2$$4); + object_init_ex(&_2$$4, phalcon_annotations_collection_ce); + ZEPHIR_CALL_METHOD(NULL, &_2$$4, "__construct", NULL, 48, &reflectionClass); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("classAnnotations"), &_2$$4); } else { - - { - VVCTYPE vvch; - unsigned int vvaccept = 0; - vvch = *VVCURSOR; - switch (vvch) { - case 0x00: goto vv2; - case '\t': - case '\r': - case ' ': goto vv6; - case '\n': goto vv9; - case '!': goto vv11; - case '"': goto vv13; - case '%': goto vv14; - case '\'': goto vv16; - case '(': goto vv17; - case ')': goto vv19; - case '*': goto vv21; - case '+': goto vv23; - case ',': goto vv25; - case '-': goto vv27; - case '.': goto vv29; - case '/': goto vv31; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto vv33; - case ':': goto vv36; - case '<': goto vv38; - case '=': goto vv40; - case '>': goto vv42; - case '?': goto vv44; - case 'A': - case 'a': goto vv46; - case 'B': - case 'b': goto vv48; - case 'C': - case 'c': goto vv49; - case 'D': - case 'd': goto vv50; - case 'E': - case 'e': goto vv51; - case 'F': - case 'f': goto vv52; - case 'G': - case 'H': - case 'J': - case 'K': - case 'L': - case 'P': - case 'Q': - case 'U': - case 'V': - case 'X': - case 'Y': - case 'Z': - case '_': - case 'g': - case 'h': - case 'j': - case 'k': - case 'l': - case 'p': - case 'q': - case 'u': - case 'v': - case 'x': - case 'y': - case 'z': goto vv53; - case 'I': goto vv55; - case 'M': - case 'm': goto vv56; - case 'N': - case 'n': goto vv57; - case 'O': - case 'o': goto vv58; - case 'R': - case 'r': goto vv59; - case 'S': - case 's': goto vv60; - case 'T': - case 't': goto vv61; - case 'W': - case 'w': goto vv62; - case '[': goto vv63; - case '\\': goto vv65; - case ']': goto vv66; - case 'i': goto vv68; - case '{': goto vv69; - case '|': goto vv71; - case '}': goto vv73; - case '~': goto vv75; - default: goto vv4; - } -vv2: - ++VVCURSOR; - { - status = PHVOLT_SCANNER_RETCODE_EOF; - break; - } -vv4: - ++VVCURSOR; -vv5: - { - status = PHVOLT_SCANNER_RETCODE_ERR; - break; - } -vv6: - vvch = *++VVCURSOR; - switch (vvch) { - case '\t': - case '\r': - case ' ': goto vv6; - default: goto vv8; - } -vv8: - { - token->opcode = PHVOLT_T_IGNORE; - return 0; - } -vv9: - ++VVCURSOR; - { - s->active_line++; - token->opcode = PHVOLT_T_IGNORE; - return 0; - } -vv11: - vvch = *++VVCURSOR; - switch (vvch) { - case '=': goto vv77; - default: goto vv12; - } -vv12: - { - token->opcode = PHVOLT_T_NOT; - return 0; - } -vv13: - vvaccept = 0; - vvch = *(VVMARKER = ++VVCURSOR); - if (vvch <= 0x00) goto vv5; - goto vv80; -vv14: - vvch = *++VVCURSOR; - switch (vvch) { - case '}': goto vv85; - default: goto vv15; - } -vv15: - { - token->opcode = PHVOLT_T_MOD; - return 0; - } -vv16: - vvaccept = 0; - vvch = *(VVMARKER = ++VVCURSOR); - if (vvch <= 0x00) goto vv5; - goto vv88; -vv17: - ++VVCURSOR; - { - token->opcode = PHVOLT_T_PARENTHESES_OPEN; - return 0; - } -vv19: - ++VVCURSOR; - { - token->opcode = PHVOLT_T_PARENTHESES_CLOSE; - return 0; - } -vv21: - vvch = *++VVCURSOR; - switch (vvch) { - case '=': goto vv90; - default: goto vv22; - } -vv22: - { - token->opcode = PHVOLT_T_MUL; - return 0; - } -vv23: - vvch = *++VVCURSOR; - switch (vvch) { - case '+': goto vv92; - case '=': goto vv94; - default: goto vv24; - } -vv24: - { - token->opcode = PHVOLT_T_ADD; - return 0; - } -vv25: - ++VVCURSOR; - { - token->opcode = PHVOLT_T_COMMA; - return 0; - } -vv27: - vvaccept = 1; - vvch = *(VVMARKER = ++VVCURSOR); - switch (vvch) { - case '%': goto vv96; - case '-': goto vv97; - case '=': goto vv99; - case '}': goto vv101; - default: goto vv28; - } -vv28: - { - token->opcode = PHVOLT_T_SUB; - return 0; - } -vv29: - vvch = *++VVCURSOR; - switch (vvch) { - case '.': goto vv102; - default: goto vv30; - } -vv30: - { - token->opcode = PHVOLT_T_DOT; - return 0; - } -vv31: - vvch = *++VVCURSOR; - switch (vvch) { - case '=': goto vv104; - default: goto vv32; - } -vv32: - { - token->opcode = PHVOLT_T_DIV; - return 0; - } -vv33: - vvaccept = 2; - vvch = *(VVMARKER = ++VVCURSOR); - switch (vvch) { - case '.': goto vv106; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto vv33; - default: goto vv35; - } -vv35: - { - token->opcode = PHVOLT_T_INTEGER; - token->value = estrndup(start, VVCURSOR - start); - token->len = VVCURSOR - start; - return 0; - } -vv36: - ++VVCURSOR; - { - token->opcode = PHVOLT_T_COLON; - return 0; - } -vv38: - vvch = *++VVCURSOR; - switch (vvch) { - case '=': goto vv107; - case '>': goto vv109; - default: goto vv39; - } -vv39: - { - token->opcode = PHVOLT_T_LESS; - return 0; - } -vv40: - vvch = *++VVCURSOR; - switch (vvch) { - case '=': goto vv111; - default: goto vv41; + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("classAnnotations"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("classAnnotations"), &__$false); } -vv41: - { - token->opcode = PHVOLT_T_ASSIGN; - return 0; } -vv42: - vvch = *++VVCURSOR; - switch (vvch) { - case '=': goto vv113; - default: goto vv43; + } + RETURN_MM_MEMBER(getThis(), "classAnnotations"); +} + +static PHP_METHOD(Phalcon_Annotations_Reflection, getMethodsAnnotations) +{ + zend_string *_6$$5; + zend_ulong _5$$5; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval __$true, __$false, reflectionMethods, methodName, reflectionMethod, _0, _1$$3, _2$$5, *_3$$5, _4$$5, _7$$6, _9$$7; + zephir_fcall_cache_entry *_8 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&reflectionMethods); + ZVAL_UNDEF(&methodName); + ZVAL_UNDEF(&reflectionMethod); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_9$$7); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("methodAnnotations"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_OBS_VAR(&reflectionMethods); + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("reflectionData"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_string_fetch(&reflectionMethods, &_1$$3, SL("methods"), 0)) { + if (zephir_fast_count_int(&reflectionMethods)) { + ZEPHIR_INIT_VAR(&_2$$5); + array_init(&_2$$5); + zephir_update_property_zval(this_ptr, ZEND_STRL("methodAnnotations"), &_2$$5); + zephir_is_iterable(&reflectionMethods, 0, "phalcon/Annotations/Reflection.zep", 100); + if (Z_TYPE_P(&reflectionMethods) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&reflectionMethods), _5$$5, _6$$5, _3$$5) + { + ZEPHIR_INIT_NVAR(&methodName); + if (_6$$5 != NULL) { + ZVAL_STR_COPY(&methodName, _6$$5); + } else { + ZVAL_LONG(&methodName, _5$$5); + } + ZEPHIR_INIT_NVAR(&reflectionMethod); + ZVAL_COPY(&reflectionMethod, _3$$5); + ZEPHIR_INIT_NVAR(&_7$$6); + object_init_ex(&_7$$6, phalcon_annotations_collection_ce); + ZEPHIR_CALL_METHOD(NULL, &_7$$6, "__construct", &_8, 48, &reflectionMethod); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("methodAnnotations"), &methodName, &_7$$6); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &reflectionMethods, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_4$$5, &reflectionMethods, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_4$$5)) { + break; + } + ZEPHIR_CALL_METHOD(&methodName, &reflectionMethods, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&reflectionMethod, &reflectionMethods, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_9$$7); + object_init_ex(&_9$$7, phalcon_annotations_collection_ce); + ZEPHIR_CALL_METHOD(NULL, &_9$$7, "__construct", &_8, 48, &reflectionMethod); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("methodAnnotations"), &methodName, &_9$$7); + ZEPHIR_CALL_METHOD(NULL, &reflectionMethods, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&reflectionMethod); + ZEPHIR_INIT_NVAR(&methodName); + RETURN_MM_MEMBER(getThis(), "methodAnnotations"); } -vv43: - { - token->opcode = PHVOLT_T_GREATER; - return 0; } -vv44: - ++VVCURSOR; - { - token->opcode = PHVOLT_T_QUESTION; - return 0; + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("methodAnnotations"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("methodAnnotations"), &__$false); } -vv46: - vvch = *++VVCURSOR; - switch (vvch) { - case 'N': - case 'n': goto vv115; - case 'U': - case 'u': goto vv116; - default: goto vv54; + } + RETURN_MM_MEMBER(getThis(), "methodAnnotations"); +} + +static PHP_METHOD(Phalcon_Annotations_Reflection, getPropertiesAnnotations) +{ + zend_string *_6$$5; + zend_ulong _5$$5; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval __$true, __$false, reflectionProperties, property, reflectionProperty, _0, _1$$3, _2$$5, *_3$$5, _4$$5, _7$$6, _9$$7; + zephir_fcall_cache_entry *_8 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&reflectionProperties); + ZVAL_UNDEF(&property); + ZVAL_UNDEF(&reflectionProperty); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_9$$7); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("propertyAnnotations"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_OBS_VAR(&reflectionProperties); + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("reflectionData"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_string_fetch(&reflectionProperties, &_1$$3, SL("properties"), 0)) { + if (zephir_fast_count_int(&reflectionProperties)) { + ZEPHIR_INIT_VAR(&_2$$5); + array_init(&_2$$5); + zephir_update_property_zval(this_ptr, ZEND_STRL("propertyAnnotations"), &_2$$5); + zephir_is_iterable(&reflectionProperties, 0, "phalcon/Annotations/Reflection.zep", 128); + if (Z_TYPE_P(&reflectionProperties) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&reflectionProperties), _5$$5, _6$$5, _3$$5) + { + ZEPHIR_INIT_NVAR(&property); + if (_6$$5 != NULL) { + ZVAL_STR_COPY(&property, _6$$5); + } else { + ZVAL_LONG(&property, _5$$5); + } + ZEPHIR_INIT_NVAR(&reflectionProperty); + ZVAL_COPY(&reflectionProperty, _3$$5); + ZEPHIR_INIT_NVAR(&_7$$6); + object_init_ex(&_7$$6, phalcon_annotations_collection_ce); + ZEPHIR_CALL_METHOD(NULL, &_7$$6, "__construct", &_8, 48, &reflectionProperty); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("propertyAnnotations"), &property, &_7$$6); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &reflectionProperties, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_4$$5, &reflectionProperties, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_4$$5)) { + break; + } + ZEPHIR_CALL_METHOD(&property, &reflectionProperties, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&reflectionProperty, &reflectionProperties, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_9$$7); + object_init_ex(&_9$$7, phalcon_annotations_collection_ce); + ZEPHIR_CALL_METHOD(NULL, &_9$$7, "__construct", &_8, 48, &reflectionProperty); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("propertyAnnotations"), &property, &_9$$7); + ZEPHIR_CALL_METHOD(NULL, &reflectionProperties, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&reflectionProperty); + ZEPHIR_INIT_NVAR(&property); + RETURN_MM_MEMBER(getThis(), "propertyAnnotations"); } -vv47: - { - token->opcode = PHVOLT_T_IDENTIFIER; - token->value = estrndup(start, VVCURSOR - start); - token->len = VVCURSOR - start; - return 0; } -vv48: - vvch = *++VVCURSOR; - switch (vvch) { - case 'L': - case 'l': goto vv117; - case 'R': - case 'r': goto vv118; - default: goto vv54; - } -vv49: - vvch = *++VVCURSOR; - switch (vvch) { - case 'A': - case 'a': goto vv119; - case 'O': - case 'o': goto vv120; - default: goto vv54; - } -vv50: - vvch = *++VVCURSOR; - switch (vvch) { - case 'E': - case 'e': goto vv121; - case 'O': - case 'o': goto vv122; - default: goto vv54; - } -vv51: - vvch = *++VVCURSOR; - switch (vvch) { - case 'L': - case 'l': goto vv124; - case 'M': - case 'm': goto vv125; - case 'N': - case 'n': goto vv126; - case 'V': - case 'v': goto vv127; - case 'X': - case 'x': goto vv128; - default: goto vv54; + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("propertyAnnotations"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("propertyAnnotations"), &__$false); + } + } + RETURN_MM_MEMBER(getThis(), "propertyAnnotations"); +} + +static PHP_METHOD(Phalcon_Annotations_Reflection, getReflectionData) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "reflectionData"); +} + +zend_object *zephir_init_properties_Phalcon_Annotations_Reflection(zend_class_entry *class_type) +{ + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("reflectionData"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("reflectionData"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + +/* Generated by re2c 1.1.1 */ +/* scanner.re + * This file is part of the Phalcon Framework. + * + * (c) Phalcon Team + * + * For the full copyright and license information, please view the + * LICENSE.txt file that was distributed with this source code. + */ + + + +#define AACTYPE unsigned char +#define AACURSOR (s->start) +#define AALIMIT (s->end) +#define AAMARKER q + +static int phannot_get_token(phannot_scanner_state *s, phannot_scanner_token *token) { + + char next, *q = AACURSOR, *start = AACURSOR; + int status = PHANNOT_SCANNER_RETCODE_IMPOSSIBLE; + + while (PHANNOT_SCANNER_RETCODE_IMPOSSIBLE == status) { + + if (s->mode == PHANNOT_MODE_RAW) { + + if (*AACURSOR == '\n') { + s->active_line++; } -vv52: - vvch = *++VVCURSOR; - switch (vvch) { - case 'A': - case 'a': goto vv129; - case 'O': - case 'o': goto vv130; - default: goto vv54; + + next = *(AACURSOR+1); + + if (*AACURSOR == '\0' || *AACURSOR == '@') { + if ((next >= 'A' && next <= 'Z') || (next >= 'a' && next <= 'z')) { + s->mode = PHANNOT_MODE_ANNOTATION; + continue; + } } -vv53: - vvch = *++VVCURSOR; -vv54: - switch (vvch) { + + ++AACURSOR; + token->opcode = PHANNOT_T_IGNORE; + return 0; + + } else { + + + { + AACTYPE aach; + unsigned int aaaccept = 0; + aach = *AACURSOR; + switch (aach) { + case 0x00: goto aa2; + case '\t': + case '\r': + case ' ': goto aa6; + case '\n': goto aa9; + case '"': goto aa11; + case '\'': goto aa12; + case '(': goto aa13; + case ')': goto aa15; + case ',': goto aa17; + case '-': goto aa19; case '0': case '1': case '2': @@ -187344,150 +177753,15 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token case '6': case '7': case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv47; - } -vv55: - vvch = *++VVCURSOR; - switch (vvch) { - case 'F': - case 'f': goto vv131; - case 'N': - case 'n': goto vv133; - case 'S': - case 's': goto vv135; - case 'T': - case 't': goto vv137; - default: goto vv54; - } -vv56: - vvch = *++VVCURSOR; - switch (vvch) { - case 'A': - case 'a': goto vv138; - default: goto vv54; - } -vv57: - vvch = *++VVCURSOR; - switch (vvch) { - case 'O': - case 'o': goto vv139; - case 'U': - case 'u': goto vv140; - default: goto vv54; - } -vv58: - vvch = *++VVCURSOR; - switch (vvch) { - case 'D': - case 'd': goto vv141; - case 'R': - case 'r': goto vv142; - default: goto vv54; - } -vv59: - vvch = *++VVCURSOR; - switch (vvch) { - case 'A': - case 'a': goto vv144; - case 'E': - case 'e': goto vv145; - default: goto vv54; - } -vv60: - vvch = *++VVCURSOR; - switch (vvch) { - case 'C': - case 'c': goto vv146; - case 'E': - case 'e': goto vv147; - case 'W': - case 'w': goto vv148; - default: goto vv54; - } -vv61: - vvch = *++VVCURSOR; - switch (vvch) { - case 'R': - case 'r': goto vv149; - default: goto vv54; - } -vv62: - vvch = *++VVCURSOR; - switch (vvch) { - case 'I': - case 'i': goto vv150; - default: goto vv54; - } -vv63: - ++VVCURSOR; - { - token->opcode = PHVOLT_T_SBRACKET_OPEN; - return 0; - } -vv65: - vvch = *++VVCURSOR; - switch (vvch) { + case '9': goto aa20; + case ':': goto aa23; + case '=': goto aa25; + case '@': goto aa27; case 'A': case 'B': case 'C': case 'D': case 'E': - case 'F': case 'G': case 'H': case 'I': @@ -187495,13 +177769,11 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token case 'K': case 'L': case 'M': - case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': - case 'T': case 'U': case 'V': case 'W': @@ -187514,7 +177786,6 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token case 'c': case 'd': case 'e': - case 'f': case 'g': case 'h': case 'i': @@ -187522,197 +177793,111 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token case 'k': case 'l': case 'm': - case 'n': case 'o': case 'p': case 'q': case 'r': case 's': - case 't': case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto vv53; - default: goto vv5; - } -vv66: - ++VVCURSOR; - { - token->opcode = PHVOLT_T_SBRACKET_CLOSE; - return 0; - } -vv68: - vvch = *++VVCURSOR; - switch (vvch) { + case 'z': goto aa29; case 'F': - case 'f': goto vv131; + case 'f': goto aa32; case 'N': - case 'n': goto vv133; - case 'S': goto vv135; + case 'n': goto aa33; case 'T': - case 't': goto vv137; - case 's': goto vv151; - default: goto vv54; - } -vv69: - vvch = *++VVCURSOR; - switch (vvch) { - case '%': goto vv152; - case '{': goto vv154; - default: goto vv70; - } -vv70: - { - token->opcode = PHVOLT_T_CBRACKET_OPEN; - return 0; - } -vv71: - ++VVCURSOR; - { - token->opcode = PHVOLT_T_PIPE; - return 0; - } -vv73: - vvch = *++VVCURSOR; - switch (vvch) { - case '}': goto vv156; - default: goto vv74; - } -vv74: - { - token->opcode = PHVOLT_T_CBRACKET_CLOSE; - return 0; - } -vv75: - ++VVCURSOR; - { - token->opcode = PHVOLT_T_CONCAT; - return 0; - } -vv77: - vvch = *++VVCURSOR; - switch (vvch) { - case '=': goto vv158; - default: goto vv78; - } -vv78: - { - token->opcode = PHVOLT_T_NOTEQUALS; - return 0; - } -vv79: - vvch = *++VVCURSOR; -vv80: - switch (vvch) { - case 0x00: goto vv81; - case '"': goto vv82; - case '\\': goto vv84; - default: goto vv79; - } -vv81: - VVCURSOR = VVMARKER; - switch (vvaccept) { - case 0: goto vv5; - case 1: goto vv28; - case 2: goto vv35; - default: goto vv136; + case 't': goto aa34; + case '[': goto aa35; + case '\\': goto aa37; + case ']': goto aa38; + case '{': goto aa40; + case '}': goto aa42; + default: goto aa4; } -vv82: - ++VVCURSOR; +aa2: + ++AACURSOR; { - start++; - token->opcode = PHVOLT_T_STRING; - token->value = estrndup(start, VVCURSOR - start - 1); - token->len = VVCURSOR - start - 1; - return 0; + status = PHANNOT_SCANNER_RETCODE_EOF; + break; } -vv84: - vvch = *++VVCURSOR; - switch (vvch) { - case '\n': goto vv81; - default: goto vv79; - } -vv85: - ++VVCURSOR; +aa4: + ++AACURSOR; +aa5: { - s->mode = PHVOLT_MODE_RAW; - token->opcode = PHVOLT_T_CLOSE_DELIMITER; - return 0; + status = PHANNOT_SCANNER_RETCODE_ERR; + break; } -vv87: - vvch = *++VVCURSOR; -vv88: - switch (vvch) { - case 0x00: goto vv81; - case '\'': goto vv82; - case '\\': goto vv89; - default: goto vv87; - } -vv89: - vvch = *++VVCURSOR; - switch (vvch) { - case '\n': goto vv81; - default: goto vv87; +aa6: + aach = *++AACURSOR; + switch (aach) { + case '\t': + case '\r': + case ' ': goto aa6; + default: goto aa8; } -vv90: - ++VVCURSOR; +aa8: { - token->opcode = PHVOLT_T_MUL_ASSIGN; + token->opcode = PHANNOT_T_IGNORE; return 0; } -vv92: - ++VVCURSOR; +aa9: + ++AACURSOR; { - token->opcode = PHVOLT_T_INCR; + s->active_line++; + token->opcode = PHANNOT_T_IGNORE; return 0; } -vv94: - ++VVCURSOR; +aa11: + aaaccept = 0; + aach = *(AAMARKER = ++AACURSOR); + if (aach <= 0x00) goto aa5; + goto aa45; +aa12: + aaaccept = 0; + aach = *(AAMARKER = ++AACURSOR); + if (aach <= 0x00) goto aa5; + goto aa51; +aa13: + ++AACURSOR; { - token->opcode = PHVOLT_T_ADD_ASSIGN; + token->opcode = PHANNOT_T_PARENTHESES_OPEN; return 0; } -vv96: - vvch = *++VVCURSOR; - switch (vvch) { - case '}': goto vv160; - default: goto vv81; - } -vv97: - ++VVCURSOR; +aa15: + ++AACURSOR; { - token->opcode = PHVOLT_T_DECR; + token->opcode = PHANNOT_T_PARENTHESES_CLOSE; return 0; } -vv99: - ++VVCURSOR; +aa17: + ++AACURSOR; { - token->opcode = PHVOLT_T_SUB_ASSIGN; + token->opcode = PHANNOT_T_COMMA; return 0; } -vv101: - vvch = *++VVCURSOR; - switch (vvch) { - case '}': goto vv162; - default: goto vv81; +aa19: + aach = *++AACURSOR; + switch (aach) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto aa20; + default: goto aa5; } -vv102: - ++VVCURSOR; - { - token->opcode = PHVOLT_T_RANGE; - return 0; - } -vv104: - ++VVCURSOR; - { - token->opcode = PHVOLT_T_DIV_ASSIGN; - return 0; - } -vv106: - vvch = *++VVCURSOR; - switch (vvch) { +aa20: + aaaccept = 1; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { + case '.': goto aa53; case '0': case '1': case '2': @@ -187722,94 +177907,40 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token case '6': case '7': case '8': - case '9': goto vv164; - default: goto vv81; + case '9': goto aa20; + default: goto aa22; } -vv107: - ++VVCURSOR; +aa22: { - token->opcode = PHVOLT_T_LESSEQUAL; + token->opcode = PHANNOT_T_INTEGER; + token->value = estrndup(start, AACURSOR - start); + token->len = AACURSOR - start; + q = AACURSOR; return 0; } -vv109: - ++VVCURSOR; +aa23: + ++AACURSOR; { - token->opcode = PHVOLT_T_NOTEQUALS; + token->opcode = PHANNOT_T_COLON; return 0; } -vv111: - vvch = *++VVCURSOR; - switch (vvch) { - case '=': goto vv167; - default: goto vv112; - } -vv112: +aa25: + ++AACURSOR; { - token->opcode = PHVOLT_T_EQUALS; + token->opcode = PHANNOT_T_EQUALS; return 0; } -vv113: - ++VVCURSOR; +aa27: + ++AACURSOR; { - token->opcode = PHVOLT_T_GREATEREQUAL; + token->opcode = PHANNOT_T_AT; return 0; } -vv115: - vvch = *++VVCURSOR; - switch (vvch) { - case 'D': - case 'd': goto vv169; - default: goto vv54; - } -vv116: - vvch = *++VVCURSOR; - switch (vvch) { - case 'T': - case 't': goto vv171; - default: goto vv54; - } -vv117: - vvch = *++VVCURSOR; - switch (vvch) { - case 'O': - case 'o': goto vv172; - default: goto vv54; - } -vv118: - vvch = *++VVCURSOR; - switch (vvch) { - case 'E': - case 'e': goto vv173; - default: goto vv54; - } -vv119: - vvch = *++VVCURSOR; - switch (vvch) { - case 'C': - case 'c': goto vv174; - case 'L': - case 'l': goto vv175; - case 'S': - case 's': goto vv176; - default: goto vv54; - } -vv120: - vvch = *++VVCURSOR; - switch (vvch) { - case 'N': - case 'n': goto vv177; - default: goto vv54; - } -vv121: - vvch = *++VVCURSOR; - switch (vvch) { - case 'F': - case 'f': goto vv178; - default: goto vv54; - } -vv122: - vvch = *++VVCURSOR; - switch (vvch) { +aa29: + aaaccept = 2; + aach = *(AAMARKER = ++AACURSOR); +aa30: + switch (aach) { case '0': case '1': case '2': @@ -187846,7 +177977,6 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token case 'X': case 'Y': case 'Z': - case '\\': case '_': case 'a': case 'b': @@ -187873,77 +178003,51 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token case 'w': case 'x': case 'y': - case 'z': goto vv53; - default: goto vv123; + case 'z': goto aa29; + case '\\': goto aa54; + default: goto aa31; } -vv123: +aa31: { - s->statement_position++; - token->opcode = PHVOLT_T_DO; + token->opcode = PHANNOT_T_IDENTIFIER; + token->value = estrndup(start, AACURSOR - start); + token->len = AACURSOR - start; + q = AACURSOR; return 0; } -vv124: - vvch = *++VVCURSOR; - switch (vvch) { - case 'S': - case 's': goto vv179; - default: goto vv54; - } -vv125: - vvch = *++VVCURSOR; - switch (vvch) { - case 'P': - case 'p': goto vv180; - default: goto vv54; - } -vv126: - vvch = *++VVCURSOR; - switch (vvch) { - case 'D': - case 'd': goto vv181; - default: goto vv54; - } -vv127: - vvch = *++VVCURSOR; - switch (vvch) { - case 'E': - case 'e': goto vv182; - default: goto vv54; - } -vv128: - vvch = *++VVCURSOR; - switch (vvch) { - case 'T': - case 't': goto vv183; - default: goto vv54; +aa32: + aaaccept = 2; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { + case 'A': + case 'a': goto aa55; + default: goto aa30; } -vv129: - vvch = *++VVCURSOR; - switch (vvch) { - case 'L': - case 'l': goto vv184; - default: goto vv54; +aa33: + aaaccept = 2; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { + case 'U': + case 'u': goto aa56; + default: goto aa30; } -vv130: - vvch = *++VVCURSOR; - switch (vvch) { +aa34: + aaaccept = 2; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case 'R': - case 'r': goto vv185; - default: goto vv54; + case 'r': goto aa57; + default: goto aa30; } -vv131: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': +aa35: + ++AACURSOR; + { + token->opcode = PHANNOT_T_SBRACKET_OPEN; + return 0; + } +aa37: + aach = *++AACURSOR; + switch (aach) { case 'A': case 'B': case 'C': @@ -187970,7 +178074,6 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token case 'X': case 'Y': case 'Z': - case '\\': case '_': case 'a': case 'b': @@ -187997,213 +178100,79 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token case 'w': case 'x': case 'y': - case 'z': goto vv53; - default: goto vv132; + case 'z': goto aa29; + default: goto aa5; } -vv132: +aa38: + ++AACURSOR; { - s->statement_position++; - token->opcode = PHVOLT_T_IF; + token->opcode = PHANNOT_T_SBRACKET_CLOSE; return 0; } -vv133: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - case 'C': - case 'c': goto vv187; - default: goto vv134; - } -vv134: +aa40: + ++AACURSOR; { - token->opcode = PHVOLT_T_IN; + token->opcode = PHANNOT_T_BRACKET_OPEN; return 0; } -vv135: - vvaccept = 3; - vvch = *(VVMARKER = ++VVCURSOR); - switch (vvch) { - case ' ': goto vv188; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv136; - } -vv136: +aa42: + ++AACURSOR; { - if (s->active_token == PHVOLT_T_DOT) { - token->opcode = PHVOLT_T_IDENTIFIER; - token->value = estrndup(start, VVCURSOR - start); - token->len = VVCURSOR - start; - } else { - s->statement_position++; - token->opcode = PHVOLT_T_IS; - } - + token->opcode = PHANNOT_T_BRACKET_CLOSE; return 0; } -vv137: - vvch = *++VVCURSOR; - switch (vvch) { - case 'E': - case 'e': goto vv189; - default: goto vv54; +aa44: + aach = *++AACURSOR; +aa45: + switch (aach) { + case 0x00: goto aa46; + case '"': goto aa47; + case '\\': goto aa49; + default: goto aa44; } -vv138: - vvch = *++VVCURSOR; - switch (vvch) { - case 'C': - case 'c': goto vv190; - default: goto vv54; +aa46: + AACURSOR = AAMARKER; + switch (aaaccept) { + case 0: goto aa5; + case 1: goto aa22; + case 2: goto aa31; + case 3: goto aa66; + case 4: goto aa68; + default: goto aa70; } -vv139: - vvch = *++VVCURSOR; - switch (vvch) { - case 'T': - case 't': goto vv191; - default: goto vv54; +aa47: + ++AACURSOR; + { + token->opcode = PHANNOT_T_STRING; + token->value = estrndup(q, AACURSOR - q - 1); + token->len = AACURSOR - q - 1; + q = AACURSOR; + return 0; + } +aa49: + aach = *++AACURSOR; + switch (aach) { + case '\n': goto aa46; + default: goto aa44; } -vv140: - vvch = *++VVCURSOR; - switch (vvch) { - case 'L': - case 'l': goto vv193; - case 'M': - case 'm': goto vv194; - default: goto vv54; +aa50: + aach = *++AACURSOR; +aa51: + switch (aach) { + case 0x00: goto aa46; + case '\'': goto aa47; + case '\\': goto aa52; + default: goto aa50; } -vv141: - vvch = *++VVCURSOR; - switch (vvch) { - case 'D': - case 'd': goto vv195; - default: goto vv54; +aa52: + aach = *++AACURSOR; + switch (aach) { + case '\n': goto aa46; + default: goto aa50; } -vv142: - vvch = *++VVCURSOR; - switch (vvch) { +aa53: + aach = *++AACURSOR; + switch (aach) { case '0': case '1': case '2': @@ -188213,7 +178182,12 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token case '6': case '7': case '8': - case '9': + case '9': goto aa58; + default: goto aa46; + } +aa54: + aach = *++AACURSOR; + switch (aach) { case 'A': case 'B': case 'C': @@ -188240,7 +178214,6 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token case 'X': case 'Y': case 'Z': - case '\\': case '_': case 'a': case 'b': @@ -188267,68 +178240,92 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token case 'w': case 'x': case 'y': - case 'z': goto vv53; - default: goto vv143; + case 'z': goto aa29; + default: goto aa46; + } +aa55: + aaaccept = 2; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { + case 'L': + case 'l': goto aa61; + default: goto aa30; + } +aa56: + aaaccept = 2; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { + case 'L': + case 'l': goto aa62; + default: goto aa30; + } +aa57: + aaaccept = 2; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { + case 'U': + case 'u': goto aa63; + default: goto aa30; + } +aa58: + aach = *++AACURSOR; + switch (aach) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto aa58; + default: goto aa60; } -vv143: +aa60: { - token->opcode = PHVOLT_T_OR; + token->opcode = PHANNOT_T_DOUBLE; + token->value = estrndup(start, AACURSOR - start); + token->len = AACURSOR - start; + q = AACURSOR; return 0; } -vv144: - vvch = *++VVCURSOR; - switch (vvch) { - case 'W': - case 'w': goto vv197; - default: goto vv54; - } -vv145: - vvch = *++VVCURSOR; - switch (vvch) { - case 'T': - case 't': goto vv199; - default: goto vv54; - } -vv146: - vvch = *++VVCURSOR; - switch (vvch) { - case 'A': - case 'a': goto vv200; - default: goto vv54; - } -vv147: - vvch = *++VVCURSOR; - switch (vvch) { - case 'T': - case 't': goto vv201; - default: goto vv54; +aa61: + aaaccept = 2; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { + case 'S': + case 's': goto aa64; + default: goto aa30; } -vv148: - vvch = *++VVCURSOR; - switch (vvch) { - case 'I': - case 'i': goto vv203; - default: goto vv54; +aa62: + aaaccept = 2; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { + case 'L': + case 'l': goto aa65; + default: goto aa30; } -vv149: - vvch = *++VVCURSOR; - switch (vvch) { - case 'U': - case 'u': goto vv204; - default: goto vv54; +aa63: + aaaccept = 2; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { + case 'E': + case 'e': goto aa67; + default: goto aa30; } -vv150: - vvch = *++VVCURSOR; - switch (vvch) { - case 'T': - case 't': goto vv205; - default: goto vv54; +aa64: + aaaccept = 2; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { + case 'E': + case 'e': goto aa69; + default: goto aa30; } -vv151: - vvaccept = 3; - vvch = *(VVMARKER = ++VVCURSOR); - switch (vvch) { - case ' ': goto vv206; +aa65: + aaaccept = 3; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case '0': case '1': case '2': @@ -188365,7 +178362,6 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token case 'X': case 'Y': case 'Z': - case '\\': case '_': case 'a': case 'b': @@ -188392,94 +178388,19 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token case 'w': case 'x': case 'y': - case 'z': goto vv53; - default: goto vv136; - } -vv152: - vvch = *++VVCURSOR; - switch (vvch) { - case '-': goto vv207; - default: goto vv153; - } -vv153: - { - s->whitespace_control = 0; - token->opcode = PHVOLT_T_OPEN_DELIMITER; - return 0; - } -vv154: - vvch = *++VVCURSOR; - switch (vvch) { - case '-': goto vv209; - default: goto vv155; - } -vv155: - { - s->whitespace_control = 0; - s->statement_position++; - token->opcode = PHVOLT_T_OPEN_EDELIMITER; - return 0; - } -vv156: - ++VVCURSOR; - { - s->mode = PHVOLT_MODE_RAW; - token->opcode = PHVOLT_T_CLOSE_EDELIMITER; - return 0; - } -vv158: - ++VVCURSOR; - { - token->opcode = PHVOLT_T_NOTIDENTICAL; - return 0; - } -vv160: - ++VVCURSOR; - { - s->mode = PHVOLT_MODE_RAW; - s->whitespace_control = 1; - token->opcode = PHVOLT_T_CLOSE_DELIMITER; - return 0; - } -vv162: - ++VVCURSOR; - { - s->mode = PHVOLT_MODE_RAW; - s->whitespace_control = 1; - token->opcode = PHVOLT_T_CLOSE_EDELIMITER; - return 0; - } -vv164: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto vv164; - default: goto vv166; + case 'z': goto aa29; + case '\\': goto aa54; + default: goto aa66; } -vv166: - { - token->opcode = PHVOLT_T_DOUBLE; - token->value = estrndup(start, VVCURSOR - start); - token->len = VVCURSOR - start; - return 0; - } -vv167: - ++VVCURSOR; +aa66: { - token->opcode = PHVOLT_T_IDENTICAL; + token->opcode = PHANNOT_T_NULL; return 0; } -vv169: - vvch = *++VVCURSOR; - switch (vvch) { +aa67: + aaaccept = 4; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case '0': case '1': case '2': @@ -188516,7 +178437,6 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token case 'X': case 'Y': case 'Z': - case '\\': case '_': case 'a': case 'b': @@ -188543,131 +178463,19 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token case 'w': case 'x': case 'y': - case 'z': goto vv53; - default: goto vv170; + case 'z': goto aa29; + case '\\': goto aa54; + default: goto aa68; } -vv170: +aa68: { - token->opcode = PHVOLT_T_AND; + token->opcode = PHANNOT_T_TRUE; return 0; } -vv171: - vvch = *++VVCURSOR; - switch (vvch) { - case 'O': - case 'o': goto vv211; - default: goto vv54; - } -vv172: - vvch = *++VVCURSOR; - switch (vvch) { - case 'C': - case 'c': goto vv212; - default: goto vv54; - } -vv173: - vvch = *++VVCURSOR; - switch (vvch) { - case 'A': - case 'a': goto vv213; - default: goto vv54; - } -vv174: - vvch = *++VVCURSOR; - switch (vvch) { - case 'H': - case 'h': goto vv214; - default: goto vv54; - } -vv175: - vvch = *++VVCURSOR; - switch (vvch) { - case 'L': - case 'l': goto vv215; - default: goto vv54; - } -vv176: - vvch = *++VVCURSOR; - switch (vvch) { - case 'E': - case 'e': goto vv217; - default: goto vv54; - } -vv177: - vvch = *++VVCURSOR; - switch (vvch) { - case 'T': - case 't': goto vv219; - default: goto vv54; - } -vv178: - vvch = *++VVCURSOR; - switch (vvch) { - case 'A': - case 'a': goto vv220; - case 'I': - case 'i': goto vv221; - default: goto vv54; - } -vv179: - vvch = *++VVCURSOR; - switch (vvch) { - case 'E': - case 'e': goto vv222; - default: goto vv54; - } -vv180: - vvch = *++VVCURSOR; - switch (vvch) { - case 'T': - case 't': goto vv224; - default: goto vv54; - } -vv181: - vvch = *++VVCURSOR; - switch (vvch) { - case 'A': - case 'a': goto vv225; - case 'B': - case 'b': goto vv226; - case 'C': - case 'c': goto vv227; - case 'F': - case 'f': goto vv228; - case 'I': - case 'i': goto vv229; - case 'M': - case 'm': goto vv230; - case 'R': - case 'r': goto vv231; - case 'S': - case 's': goto vv232; - default: goto vv54; - } -vv182: - vvch = *++VVCURSOR; - switch (vvch) { - case 'N': - case 'n': goto vv233; - default: goto vv54; - } -vv183: - vvch = *++VVCURSOR; - switch (vvch) { - case 'E': - case 'e': goto vv235; - default: goto vv54; - } -vv184: - vvch = *++VVCURSOR; - switch (vvch) { - case 'S': - case 's': goto vv236; - default: goto vv54; - } -vv185: - vvch = *++VVCURSOR; - switch (vvch) { +aa69: + aaaccept = 5; + aach = *(AAMARKER = ++AACURSOR); + switch (aach) { case '0': case '1': case '2': @@ -188704,7 +178512,6 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token case 'X': case 'Y': case 'Z': - case '\\': case '_': case 'a': case 'b': @@ -188731,3623 +178538,8690 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token case 'w': case 'x': case 'y': - case 'z': goto vv53; - default: goto vv186; + case 'z': goto aa29; + case '\\': goto aa54; + default: goto aa70; } -vv186: +aa70: { - s->statement_position++; - token->opcode = PHVOLT_T_FOR; + token->opcode = PHANNOT_T_FALSE; return 0; } -vv187: - vvch = *++VVCURSOR; - switch (vvch) { - case 'L': - case 'l': goto vv237; - default: goto vv54; - } -vv188: - vvch = *++VVCURSOR; - switch (vvch) { - case 'N': - case 'n': goto vv238; - default: goto vv81; - } -vv189: - vvch = *++VVCURSOR; - switch (vvch) { - case 'R': - case 'r': goto vv239; - default: goto vv54; + } + + + } + } + + return status; +} + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Annotations_Adapter_AbstractAdapter) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Annotations\\Adapter, AbstractAdapter, phalcon, annotations_adapter_abstractadapter, phalcon_annotations_adapter_abstractadapter_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_annotations_adapter_abstractadapter_ce, SL("annotations"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_annotations_adapter_abstractadapter_ce, SL("reader"), ZEND_ACC_PROTECTED); + phalcon_annotations_adapter_abstractadapter_ce->create_object = zephir_init_properties_Phalcon_Annotations_Adapter_AbstractAdapter; + + zend_class_implements(phalcon_annotations_adapter_abstractadapter_ce, 1, phalcon_annotations_adapter_adapterinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Annotations_Adapter_AbstractAdapter, get) +{ + zend_bool _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *className, className_sub, classAnnotations, parsedAnnotations, realClassName, reader, _0, _1$$5, _2$$5; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&className_sub); + ZVAL_UNDEF(&classAnnotations); + ZVAL_UNDEF(&parsedAnnotations); + ZVAL_UNDEF(&realClassName); + ZVAL_UNDEF(&reader); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$5); + ZVAL_UNDEF(&_2$$5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(className) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &className); + + + if (Z_TYPE_P(className) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&realClassName); + zephir_get_class(&realClassName, className, 0); + } else { + ZEPHIR_CPY_WRT(&realClassName, className); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("annotations"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset(&_0, &realClassName)) { + zephir_read_property(&_1$$5, this_ptr, ZEND_STRL("annotations"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_2$$5, &_1$$5, &realClassName, PH_NOISY | PH_READONLY, "phalcon/Annotations/Adapter/AbstractAdapter.zep", 51); + RETURN_CTOR(&_2$$5); + } + ZEPHIR_CALL_METHOD(&classAnnotations, this_ptr, "read", NULL, 0, &realClassName); + zephir_check_call_status(); + _3 = Z_TYPE_P(&classAnnotations) == IS_NULL; + if (!(_3)) { + _3 = ZEPHIR_IS_FALSE_IDENTICAL(&classAnnotations); + } + if (_3) { + ZEPHIR_CALL_METHOD(&reader, this_ptr, "getreader", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&parsedAnnotations, &reader, "parse", NULL, 0, &realClassName); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&classAnnotations); + object_init_ex(&classAnnotations, phalcon_annotations_reflection_ce); + ZEPHIR_CALL_METHOD(NULL, &classAnnotations, "__construct", NULL, 46, &parsedAnnotations); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("annotations"), &realClassName, &classAnnotations); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "write", NULL, 0, &realClassName, &classAnnotations); + zephir_check_call_status(); + } + RETURN_CCTOR(&classAnnotations); +} + +static PHP_METHOD(Phalcon_Annotations_Adapter_AbstractAdapter, getMethod) +{ + zend_string *_3$$3; + zend_ulong _2$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_5 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *className_param = NULL, *methodName_param = NULL, classAnnotations, methods, method, methodKey, *_0$$3, _1$$3, _4$$4, _6$$6; + zval className, methodName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&methodName); + ZVAL_UNDEF(&classAnnotations); + ZVAL_UNDEF(&methods); + ZVAL_UNDEF(&method); + ZVAL_UNDEF(&methodKey); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_6$$6); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(className) + Z_PARAM_STR(methodName) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &className_param, &methodName_param); + zephir_get_strval(&className, className_param); + zephir_get_strval(&methodName, methodName_param); + + + ZEPHIR_CALL_METHOD(&classAnnotations, this_ptr, "get", NULL, 0, &className); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&methods, &classAnnotations, "getmethodsannotations", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&methods) == IS_ARRAY) { + zephir_is_iterable(&methods, 0, "phalcon/Annotations/Adapter/AbstractAdapter.zep", 94); + if (Z_TYPE_P(&methods) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&methods), _2$$3, _3$$3, _0$$3) + { + ZEPHIR_INIT_NVAR(&methodKey); + if (_3$$3 != NULL) { + ZVAL_STR_COPY(&methodKey, _3$$3); + } else { + ZVAL_LONG(&methodKey, _2$$3); + } + ZEPHIR_INIT_NVAR(&method); + ZVAL_COPY(&method, _0$$3); + ZEPHIR_CALL_FUNCTION(&_4$$4, "strcasecmp", &_5, 47, &methodKey, &methodName); + zephir_check_call_status(); + if (!(zephir_is_true(&_4$$4))) { + RETURN_CCTOR(&method); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &methods, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1$$3, &methods, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&methodKey, &methods, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&method, &methods, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_6$$6, "strcasecmp", &_5, 47, &methodKey, &methodName); + zephir_check_call_status(); + if (!(zephir_is_true(&_6$$6))) { + RETURN_CCTOR(&method); + } + ZEPHIR_CALL_METHOD(NULL, &methods, "next", NULL, 0); + zephir_check_call_status(); } -vv190: - vvch = *++VVCURSOR; - switch (vvch) { - case 'R': - case 'r': goto vv240; - default: goto vv54; + } + ZEPHIR_INIT_NVAR(&method); + ZEPHIR_INIT_NVAR(&methodKey); + } + object_init_ex(return_value, phalcon_annotations_collection_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 48); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Annotations_Adapter_AbstractAdapter, getMethods) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *className_param = NULL, classAnnotations; + zval className; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&classAnnotations); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(className) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &className_param); + zephir_get_strval(&className, className_param); + + + ZEPHIR_CALL_METHOD(&classAnnotations, this_ptr, "get", NULL, 0, &className); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(&classAnnotations, "getmethodsannotations", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Annotations_Adapter_AbstractAdapter, getProperty) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *className_param = NULL, *propertyName_param = NULL, classAnnotations, properties, property; + zval className, propertyName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&propertyName); + ZVAL_UNDEF(&classAnnotations); + ZVAL_UNDEF(&properties); + ZVAL_UNDEF(&property); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(className) + Z_PARAM_STR(propertyName) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &className_param, &propertyName_param); + zephir_get_strval(&className, className_param); + zephir_get_strval(&propertyName, propertyName_param); + + + ZEPHIR_CALL_METHOD(&classAnnotations, this_ptr, "get", NULL, 0, &className); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&properties, &classAnnotations, "getpropertiesannotations", NULL, 0); + zephir_check_call_status(); + if (!(zephir_array_isset_fetch(&property, &properties, &propertyName, 1))) { + object_init_ex(return_value, phalcon_annotations_collection_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 48); + zephir_check_call_status(); + RETURN_MM(); + } + RETURN_CTOR(&property); +} + +static PHP_METHOD(Phalcon_Annotations_Adapter_AbstractAdapter, getProperties) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *className_param = NULL, classAnnotations; + zval className; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&className); + ZVAL_UNDEF(&classAnnotations); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(className) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &className_param); + zephir_get_strval(&className, className_param); + + + ZEPHIR_CALL_METHOD(&classAnnotations, this_ptr, "get", NULL, 0, &className); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(&classAnnotations, "getpropertiesannotations", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Annotations_Adapter_AbstractAdapter, getReader) +{ + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_OBS_VAR(&_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("reader"), PH_NOISY_CC); + if (Z_TYPE_P(&_0) != IS_OBJECT) { + ZEPHIR_INIT_VAR(&_1$$3); + object_init_ex(&_1$$3, phalcon_annotations_reader_ce); + if (zephir_has_constructor(&_1$$3)) { + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 0); + zephir_check_call_status(); + } + + zephir_update_property_zval(this_ptr, ZEND_STRL("reader"), &_1$$3); + } + RETURN_MM_MEMBER(getThis(), "reader"); +} + +static PHP_METHOD(Phalcon_Annotations_Adapter_AbstractAdapter, setReader) +{ + zval *reader, reader_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&reader_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(reader, phalcon_annotations_readerinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &reader); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("reader"), reader); +} + +zend_object *zephir_init_properties_Phalcon_Annotations_Adapter_AbstractAdapter(zend_class_entry *class_type) +{ + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("annotations"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("annotations"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Annotations_Adapter_AdapterInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Annotations\\Adapter, AdapterInterface, phalcon, annotations_adapter_adapterinterface, phalcon_annotations_adapter_adapterinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Annotations_Adapter_AdapterInterface, get); +ZEPHIR_DOC_METHOD(Phalcon_Annotations_Adapter_AdapterInterface, getMethod); +ZEPHIR_DOC_METHOD(Phalcon_Annotations_Adapter_AdapterInterface, getMethods); +ZEPHIR_DOC_METHOD(Phalcon_Annotations_Adapter_AdapterInterface, getProperty); +ZEPHIR_DOC_METHOD(Phalcon_Annotations_Adapter_AdapterInterface, getProperties); +ZEPHIR_DOC_METHOD(Phalcon_Annotations_Adapter_AdapterInterface, getReader); +ZEPHIR_DOC_METHOD(Phalcon_Annotations_Adapter_AdapterInterface, setReader); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Annotations_Adapter_Apcu) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Annotations\\Adapter, Apcu, phalcon, annotations_adapter_apcu, phalcon_annotations_adapter_abstractadapter_ce, phalcon_annotations_adapter_apcu_method_entry, 0); + + zend_declare_property_string(phalcon_annotations_adapter_apcu_ce, SL("prefix"), "", ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_annotations_adapter_apcu_ce, SL("ttl"), 172800, ZEND_ACC_PROTECTED); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Annotations_Adapter_Apcu, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *options_param = NULL, prefix, ttl; + zval options; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&prefix); + ZVAL_UNDEF(&ttl); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + zephir_get_arrval(&options, options_param); + } + + + if (zephir_array_isset_string_fetch(&prefix, &options, SL("prefix"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &prefix); + } + if (zephir_array_isset_string_fetch(&ttl, &options, SL("lifetime"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("ttl"), &ttl); + } + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Annotations_Adapter_Apcu, read) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, _0, _1, _2; + zval key; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &key_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } + + + ZEPHIR_INIT_VAR(&_0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_CONCAT_SVV(&_2, "_PHAN", &_1, &key); + zephir_fast_strtolower(&_0, &_2); + ZEPHIR_RETURN_CALL_FUNCTION("apcu_fetch", NULL, 121, &_0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Annotations_Adapter_Apcu, write) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, *data, data_sub, _0, _1, _2, _3; + zval key; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(key) + Z_PARAM_OBJECT_OF_CLASS(data, phalcon_annotations_reflection_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &key_param, &data); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } + + + ZEPHIR_INIT_VAR(&_0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_CONCAT_SVV(&_2, "_PHAN", &_1, &key); + zephir_fast_strtolower(&_0, &_2); + zephir_read_property(&_3, this_ptr, ZEND_STRL("ttl"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_FUNCTION("apcu_store", NULL, 124, &_0, data, &_3); + zephir_check_call_status(); + RETURN_MM(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Annotations_Adapter_Memory) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Annotations\\Adapter, Memory, phalcon, annotations_adapter_memory, phalcon_annotations_adapter_abstractadapter_ce, phalcon_annotations_adapter_memory_method_entry, 0); + + zend_declare_property_null(phalcon_annotations_adapter_memory_ce, SL("data"), ZEND_ACC_PROTECTED); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Annotations_Adapter_Memory, read) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *key_param = NULL, data, _0, _1; + zval key; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &key_param); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + zephir_fast_strtolower(&_1, &key); + if (!(zephir_array_isset_fetch(&data, &_0, &_1, 1))) { + RETURN_MM_BOOL(0); + } + RETURN_CTOR(&data); +} + +static PHP_METHOD(Phalcon_Annotations_Adapter_Memory, write) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *key_param = NULL, *data, data_sub, lowercasedKey; + zval key; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&lowercasedKey); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(key) + Z_PARAM_OBJECT_OF_CLASS(data, phalcon_annotations_reflection_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &key_param, &data); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } + + + ZEPHIR_INIT_VAR(&lowercasedKey); + zephir_fast_strtolower(&lowercasedKey, &key); + zephir_update_property_array(this_ptr, SL("data"), &lowercasedKey, data); + ZEPHIR_MM_RESTORE(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Annotations_Adapter_Stream) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Annotations\\Adapter, Stream, phalcon, annotations_adapter_stream, phalcon_annotations_adapter_abstractadapter_ce, phalcon_annotations_adapter_stream_method_entry, 0); + + zend_declare_property_string(phalcon_annotations_adapter_stream_ce, SL("annotationsDir"), "./", ZEND_ACC_PROTECTED); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Annotations_Adapter_Stream, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *options_param = NULL, annotationsDir; + zval options; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&annotationsDir); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &options_param); + if (!options_param) { + ZEPHIR_INIT_VAR(&options); + array_init(&options); + } else { + zephir_get_arrval(&options, options_param); + } + + + if (zephir_array_isset_string_fetch(&annotationsDir, &options, SL("annotationsDir"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("annotationsDir"), &annotationsDir); + } + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Annotations_Adapter_Stream, read) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, __$false, contents, version, _0, _1, _2, _3, _4, _5, _6, _11, _7$$5, _8$$5, _9$$6, _10$$6; + zval key, path; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&path); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&contents); + ZVAL_UNDEF(&version); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_7$$5); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$6); + ZVAL_UNDEF(&_10$$6); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &key_param); + zephir_get_strval(&key, key_param); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("annotationsDir"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "_"); + zephir_prepare_virtual_path(&_1, &key, &_2); + ZEPHIR_INIT_VAR(&_3); + ZEPHIR_CONCAT_VVS(&_3, &_0, &_1, ".php"); + zephir_get_strval(&path, &_3); + if (!((zephir_file_exists(&path) == SUCCESS))) { + RETURN_MM_BOOL(0); + } + ZEPHIR_INIT_VAR(&contents); + zephir_file_get_contents(&contents, &path); + if (UNEXPECTED(ZEPHIR_IS_EMPTY(&contents))) { + RETURN_MM_BOOL(0); + } + ZEPHIR_GLOBAL(warning).enable = zend_is_true(&__$false); + ZEPHIR_CALL_FUNCTION(&version, "phpversion", NULL, 86); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "8.0"); + ZEPHIR_INIT_VAR(&_5); + ZVAL_STRING(&_5, ">="); + ZEPHIR_CALL_FUNCTION(&_6, "version_compare", NULL, 87, &version, &_4, &_5); + zephir_check_call_status(); + if (zephir_is_true(&_6)) { + ZEPHIR_INIT_VAR(&_7$$5); + ZEPHIR_INIT_NVAR(&_7$$5); + zephir_create_closure_ex(&_7$$5, NULL, phalcon_4__closure_ce, SL("__invoke")); + ZVAL_LONG(&_8$$5, 2); + ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_7$$5, &_8$$5); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_VAR(&_9$$6); + ZEPHIR_INIT_NVAR(&_9$$6); + zephir_create_closure_ex(&_9$$6, NULL, phalcon_5__closure_ce, SL("__invoke")); + ZVAL_LONG(&_10$$6, 2); + ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_9$$6, &_10$$6); + zephir_check_call_status(); + } + ZEPHIR_CALL_FUNCTION(&_11, "unserialize", NULL, 15, &contents); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&contents, &_11); + ZEPHIR_CALL_FUNCTION(NULL, "restore_error_handler", NULL, 90); + zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_GLOBAL(warning).enable)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_RuntimeException, "Cannot read annotation data", "phalcon/Annotations/Adapter/Stream.zep", 102); + return; + } + RETURN_CCTOR(&contents); +} + +static PHP_METHOD(Phalcon_Annotations_Adapter_Stream, write) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *key_param = NULL, *data, data_sub, code, _0, _1, _2, _3, _4; + zval key, path; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&code); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(key) + Z_PARAM_OBJECT_OF_CLASS(data, phalcon_annotations_reflection_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &key_param, &data); + if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { + zephir_get_strval(&key, key_param); + } else { + ZEPHIR_INIT_VAR(&key); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("annotationsDir"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "_"); + zephir_prepare_virtual_path(&_1, &key, &_2); + ZEPHIR_INIT_VAR(&_3); + ZEPHIR_CONCAT_VVS(&_3, &_0, &_1, ".php"); + zephir_get_strval(&path, &_3); + ZEPHIR_CALL_FUNCTION(&code, "serialize", NULL, 13, data); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_4); + zephir_file_put_contents(&_4, &path, &code); + if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&_4))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_annotations_exception_ce, "Annotations directory cannot be written", "phalcon/Annotations/Adapter/Stream.zep", 123); + return; + } + ZEPHIR_MM_RESTORE(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Factory_AbstractFactory) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Factory, AbstractFactory, phalcon, factory_abstractfactory, phalcon_factory_abstractfactory_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_string(phalcon_factory_abstractfactory_ce, SL("exception"), "Phalcon\\Exception", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_factory_abstractfactory_ce, SL("mapper"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_factory_abstractfactory_ce, SL("services"), ZEND_ACC_PROTECTED); + phalcon_factory_abstractfactory_ce->create_object = zephir_init_properties_Phalcon_Factory_AbstractFactory; + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Factory_AbstractFactory, checkConfig) +{ + zend_bool _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *config = NULL, config_sub, _1$$3, _2$$4, _3$$4, _4$$5, _5$$5; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&config_sub); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_5$$5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(config) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &config); + ZEPHIR_SEPARATE_PARAM(config); + + + _0 = Z_TYPE_P(config) == IS_OBJECT; + if (_0) { + _0 = zephir_instance_of_ev(config, phalcon_config_configinterface_ce); + } + if (_0) { + ZEPHIR_CALL_METHOD(&_1$$3, config, "toarray", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(config, &_1$$3); + } + if (UNEXPECTED(Z_TYPE_P(config) != IS_ARRAY)) { + ZEPHIR_INIT_VAR(&_3$$4); + ZVAL_STRING(&_3$$4, "Config must be array or Phalcon\\Config object"); + ZEPHIR_CALL_METHOD(&_2$$4, this_ptr, "getexception", NULL, 0, &_3$$4); + zephir_check_call_status(); + zephir_throw_exception_debug(&_2$$4, "phalcon/Factory/AbstractFactory.zep", 44); + ZEPHIR_MM_RESTORE(); + return; + } + if (UNEXPECTED(!(zephir_array_isset_string(config, SL("adapter"))))) { + ZEPHIR_INIT_VAR(&_5$$5); + ZVAL_STRING(&_5$$5, "You must provide 'adapter' option in factory config parameter."); + ZEPHIR_CALL_METHOD(&_4$$5, this_ptr, "getexception", NULL, 0, &_5$$5); + zephir_check_call_status(); + zephir_throw_exception_debug(&_4$$5, "phalcon/Factory/AbstractFactory.zep", 50); + ZEPHIR_MM_RESTORE(); + return; + } + RETVAL_ZVAL(config, 1, 0); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Factory_AbstractFactory, getAdapters) +{ +} + +static PHP_METHOD(Phalcon_Factory_AbstractFactory, getService) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, _0, _3, _4, _1$$3; + zval name, _2$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_1$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("mapper"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(!(zephir_array_isset(&_0, &name)))) { + ZEPHIR_INIT_VAR(&_2$$3); + ZEPHIR_CONCAT_SVS(&_2$$3, "Service ", &name, " is not registered"); + ZEPHIR_CALL_METHOD(&_1$$3, this_ptr, "getexception", NULL, 0, &_2$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_1$$3, "phalcon/Factory/AbstractFactory.zep", 67); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_read_property(&_3, this_ptr, ZEND_STRL("mapper"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch(&_4, &_3, &name, PH_NOISY | PH_READONLY, "phalcon/Factory/AbstractFactory.zep", 70); + RETURN_CTOR(&_4); +} + +static PHP_METHOD(Phalcon_Factory_AbstractFactory, init) +{ + zend_string *_4; + zend_ulong _3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *services_param = NULL, adapters, name, service, _0, *_1, _2, _5$$3, _6$$4; + zval services; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&services); + ZVAL_UNDEF(&adapters); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&service); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(services) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &services_param); + if (!services_param) { + ZEPHIR_INIT_VAR(&services); + array_init(&services); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&services, services_param); + } + + + ZEPHIR_CALL_METHOD(&adapters, this_ptr, "getadapters", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + zephir_fast_array_merge(&_0, &adapters, &services); + ZEPHIR_CPY_WRT(&adapters, &_0); + zephir_is_iterable(&adapters, 0, "phalcon/Factory/AbstractFactory.zep", 87); + if (Z_TYPE_P(&adapters) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&adapters), _3, _4, _1) + { + ZEPHIR_INIT_NVAR(&name); + if (_4 != NULL) { + ZVAL_STR_COPY(&name, _4); + } else { + ZVAL_LONG(&name, _3); } -vv191: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv192; + ZEPHIR_INIT_NVAR(&service); + ZVAL_COPY(&service, _1); + zephir_update_property_array(this_ptr, SL("mapper"), &name, &service); + zephir_unset_property_array(this_ptr, ZEND_STRL("services"), &name); + zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("services"), PH_NOISY_CC | PH_READONLY); + zephir_array_unset(&_5$$3, &name, PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &adapters, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, &adapters, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; } -vv192: - { - s->statement_position++; - token->opcode = PHVOLT_T_NOT; - return 0; + ZEPHIR_CALL_METHOD(&name, &adapters, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&service, &adapters, "current", NULL, 0); + zephir_check_call_status(); + zephir_update_property_array(this_ptr, SL("mapper"), &name, &service); + zephir_unset_property_array(this_ptr, ZEND_STRL("services"), &name); + zephir_read_property(&_6$$4, this_ptr, ZEND_STRL("services"), PH_NOISY_CC | PH_READONLY); + zephir_array_unset(&_6$$4, &name, PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &adapters, "next", NULL, 0); + zephir_check_call_status(); } -vv193: - vvch = *++VVCURSOR; - switch (vvch) { - case 'L': - case 'l': goto vv241; - default: goto vv54; - } -vv194: - vvch = *++VVCURSOR; - switch (vvch) { - case 'E': - case 'e': goto vv243; - default: goto vv54; - } -vv195: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv196; - } -vv196: - { - s->statement_position++; - token->opcode = PHVOLT_T_ODD; - return 0; + } + ZEPHIR_INIT_NVAR(&service); + ZEPHIR_INIT_NVAR(&name); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Factory_AbstractFactory, getException) +{ + zend_class_entry *_2; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *message_param = NULL, exception, _0, _1; + zval message; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&message); + ZVAL_UNDEF(&exception); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(message) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &message_param); + zephir_get_strval(&message, message_param); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("exception"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&exception, &_0); + zephir_fetch_safe_class(&_1, &exception); + _2 = zephir_fetch_class_str_ex(Z_STRVAL_P(&_1), Z_STRLEN_P(&_1), ZEND_FETCH_CLASS_AUTO); + if(!_2) { + RETURN_MM_NULL(); + } + object_init_ex(return_value, _2); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 0, &message); + zephir_check_call_status(); + RETURN_MM(); +} + +zend_object *zephir_init_properties_Phalcon_Factory_AbstractFactory(zend_class_entry *class_type) +{ + zval _0, _2, _1$$3, _3$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("services"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("services"), &_1$$3); } -vv197: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv198; - } -vv198: - { - s->statement_position++; - token->opcode = PHVOLT_T_RAW; - return 0; + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("mapper"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("mapper"), &_3$$4); } -vv199: - vvch = *++VVCURSOR; - switch (vvch) { - case 'U': - case 'u': goto vv244; - default: goto vv54; - } -vv200: - vvch = *++VVCURSOR; - switch (vvch) { - case 'L': - case 'l': goto vv245; - default: goto vv54; - } -vv201: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv202; + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Factory_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Factory, Exception, phalcon, factory_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_AbstractDb) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Db, AbstractDb, phalcon, db_abstractdb, phalcon_db_abstractdb_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Db_AbstractDb, setup) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *options_param = NULL, escapeIdentifiers, forceCasting; + zval options; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&escapeIdentifiers); + ZVAL_UNDEF(&forceCasting); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &options_param); + ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + + + ZEPHIR_OBS_VAR(&escapeIdentifiers); + if (zephir_array_isset_string_fetch(&escapeIdentifiers, &options, SL("escapeSqlIdentifiers"), 0)) { + ZEPHIR_GLOBAL(db).escape_identifiers = zend_is_true(&escapeIdentifiers); + } + ZEPHIR_OBS_VAR(&forceCasting); + if (zephir_array_isset_string_fetch(&forceCasting, &options, SL("forceCasting"), 0)) { + ZEPHIR_GLOBAL(db).force_casting = zend_is_true(&forceCasting); + } + ZEPHIR_MM_RESTORE(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_Column) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Column, phalcon, db_column, phalcon_db_column_method_entry, 0); + + zend_declare_property_null(phalcon_db_column_ce, SL("after"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_db_column_ce, SL("autoIncrement"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_db_column_ce, SL("bindType"), 2, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_column_ce, SL("_default"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_db_column_ce, SL("first"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_db_column_ce, SL("isNumeric"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_column_ce, SL("name"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_column_ce, SL("comment"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_db_column_ce, SL("notNull"), 1, ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_db_column_ce, SL("primary"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_db_column_ce, SL("scale"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_db_column_ce, SL("size"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_column_ce, SL("type"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_db_column_ce, SL("typeReference"), -1, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_column_ce, SL("typeValues"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_db_column_ce, SL("unsigned"), 0, ZEND_ACC_PROTECTED); + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("BIND_PARAM_BLOB"), 3); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("BIND_PARAM_BOOL"), 5); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("BIND_PARAM_DECIMAL"), 32); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("BIND_PARAM_INT"), 1); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("BIND_PARAM_NULL"), 0); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("BIND_PARAM_STR"), 2); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("BIND_SKIP"), 1024); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_BIGINTEGER"), 14); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_BIT"), 19); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_BINARY"), 26); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_BLOB"), 11); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_BOOLEAN"), 8); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_CHAR"), 5); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_DATE"), 1); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_DATETIME"), 4); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_DECIMAL"), 3); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_DOUBLE"), 9); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_ENUM"), 18); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_FLOAT"), 7); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_INTEGER"), 0); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_JSON"), 15); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_JSONB"), 16); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_LONGBLOB"), 13); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_LONGTEXT"), 24); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_MEDIUMBLOB"), 12); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_MEDIUMINTEGER"), 21); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_MEDIUMTEXT"), 23); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_SMALLINTEGER"), 22); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_TEXT"), 6); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_TIME"), 20); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_TIMESTAMP"), 17); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_TINYBLOB"), 10); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_TINYINTEGER"), 26); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_TINYTEXT"), 25); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_VARBINARY"), 27); + + zephir_declare_class_constant_long(phalcon_db_column_ce, SL("TYPE_VARCHAR"), 2); + + zend_class_implements(phalcon_db_column_ce, 1, phalcon_db_columninterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Db_Column, getDefault) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "_default"); +} + +static PHP_METHOD(Phalcon_Db_Column, getName) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "name"); +} + +static PHP_METHOD(Phalcon_Db_Column, getComment) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "comment"); +} + +static PHP_METHOD(Phalcon_Db_Column, getScale) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "scale"); +} + +static PHP_METHOD(Phalcon_Db_Column, getSize) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "size"); +} + +static PHP_METHOD(Phalcon_Db_Column, getType) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "type"); +} + +static PHP_METHOD(Phalcon_Db_Column, getTypeReference) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "typeReference"); +} + +static PHP_METHOD(Phalcon_Db_Column, getTypeValues) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "typeValues"); +} + +static PHP_METHOD(Phalcon_Db_Column, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval definition; + zval *name_param = NULL, *definition_param = NULL, __$true, __$false, type, notNull, primary, size, scale, dunsigned, first, after, bindType, isNumeric, autoIncrement, defaultValue, typeReference, typeValues, comment; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(¬Null); + ZVAL_UNDEF(&primary); + ZVAL_UNDEF(&size); + ZVAL_UNDEF(&scale); + ZVAL_UNDEF(&dunsigned); + ZVAL_UNDEF(&first); + ZVAL_UNDEF(&after); + ZVAL_UNDEF(&bindType); + ZVAL_UNDEF(&isNumeric); + ZVAL_UNDEF(&autoIncrement); + ZVAL_UNDEF(&defaultValue); + ZVAL_UNDEF(&typeReference); + ZVAL_UNDEF(&typeValues); + ZVAL_UNDEF(&comment); + ZVAL_UNDEF(&definition); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(name) + Z_PARAM_ARRAY(definition) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &name_param, &definition_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); + ZEPHIR_OBS_VAR(&type); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&type, &definition, SL("type"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Column type is required", "phalcon/Db/Column.zep", 348); + return; + } + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &type); + ZEPHIR_OBS_VAR(&typeReference); + if (zephir_array_isset_string_fetch(&typeReference, &definition, SL("typeReference"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("typeReference"), &typeReference); + } + ZEPHIR_OBS_VAR(&typeValues); + if (zephir_array_isset_string_fetch(&typeValues, &definition, SL("typeValues"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("typeValues"), &typeValues); + } + ZEPHIR_OBS_VAR(¬Null); + if (zephir_array_isset_string_fetch(¬Null, &definition, SL("notNull"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("notNull"), ¬Null); + } + ZEPHIR_OBS_VAR(&primary); + if (zephir_array_isset_string_fetch(&primary, &definition, SL("primary"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("primary"), &primary); + } + ZEPHIR_OBS_VAR(&size); + if (zephir_array_isset_string_fetch(&size, &definition, SL("size"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("size"), &size); + } + ZEPHIR_OBS_VAR(&scale); + if (zephir_array_isset_string_fetch(&scale, &definition, SL("scale"), 0)) { + do { + if (ZEPHIR_IS_LONG(&type, 14) || ZEPHIR_IS_LONG(&type, 3) || ZEPHIR_IS_LONG(&type, 9) || ZEPHIR_IS_LONG(&type, 7) || ZEPHIR_IS_LONG(&type, 0) || ZEPHIR_IS_LONG(&type, 21) || ZEPHIR_IS_LONG(&type, 22) || ZEPHIR_IS_LONG(&type, 26)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("scale"), &scale); + break; } -vv202: - { - if (s->active_token == PHVOLT_T_DOT) { - token->opcode = PHVOLT_T_IDENTIFIER; - token->value = estrndup(start, VVCURSOR - start); - token->len = VVCURSOR - start; + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Column type does not support scale parameter", "phalcon/Db/Column.zep", 398); + return; + } while(0); + + } + ZEPHIR_OBS_VAR(&defaultValue); + if (zephir_array_isset_string_fetch(&defaultValue, &definition, SL("default"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("_default"), &defaultValue); + } + ZEPHIR_OBS_VAR(&dunsigned); + if (zephir_array_isset_string_fetch(&dunsigned, &definition, SL("unsigned"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("unsigned"), &dunsigned); + } + ZEPHIR_OBS_VAR(&isNumeric); + if (zephir_array_isset_string_fetch(&isNumeric, &definition, SL("isNumeric"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("isNumeric"), &isNumeric); + } + ZEPHIR_OBS_VAR(&autoIncrement); + if (zephir_array_isset_string_fetch(&autoIncrement, &definition, SL("autoIncrement"), 0)) { + if (!(zephir_is_true(&autoIncrement))) { + if (0) { + zephir_update_property_zval(this_ptr, ZEND_STRL("autoIncrement"), &__$true); } else { - token->opcode = PHVOLT_T_SET; + zephir_update_property_zval(this_ptr, ZEND_STRL("autoIncrement"), &__$false); } + } else { + do { + if (ZEPHIR_IS_LONG(&type, 14) || ZEPHIR_IS_LONG(&type, 0) || ZEPHIR_IS_LONG(&type, 21) || ZEPHIR_IS_LONG(&type, 22) || ZEPHIR_IS_LONG(&type, 26)) { + if (1) { + zephir_update_property_zval(this_ptr, ZEND_STRL("autoIncrement"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("autoIncrement"), &__$false); + } + break; + } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Column type cannot be auto-increment", "phalcon/Db/Column.zep", 442); + return; + } while(0); - return 0; } -vv203: - vvch = *++VVCURSOR; - switch (vvch) { - case 'T': - case 't': goto vv246; - default: goto vv54; - } -vv204: - vvch = *++VVCURSOR; - switch (vvch) { - case 'E': - case 'e': goto vv247; - default: goto vv54; - } -vv205: - vvch = *++VVCURSOR; - switch (vvch) { - case 'H': - case 'h': goto vv249; - default: goto vv54; - } -vv206: - vvch = *++VVCURSOR; - switch (vvch) { - case 'N': - case 'n': goto vv238; - default: goto vv252; - } -vv207: - ++VVCURSOR; - { - s->whitespace_control = 0; - token->opcode = PHVOLT_T_OPEN_DELIMITER; - return 0; + } + if (zephir_array_isset_string_fetch(&first, &definition, SL("first"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("first"), &first); + } + if (zephir_array_isset_string_fetch(&after, &definition, SL("after"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("after"), &after); + } + if (zephir_array_isset_string_fetch(&bindType, &definition, SL("bindType"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("bindType"), &bindType); + } + if (zephir_array_isset_string_fetch(&comment, &definition, SL("comment"), 1)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("comment"), &comment); + } + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Db_Column, getAfterPosition) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "after"); +} + +static PHP_METHOD(Phalcon_Db_Column, getBindType) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "bindType"); +} + +static PHP_METHOD(Phalcon_Db_Column, hasDefault) +{ + zval _0, _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "isautoincrement", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_0)) { + RETURN_MM_BOOL(0); + } + zephir_read_property(&_1, this_ptr, ZEND_STRL("_default"), PH_NOISY_CC | PH_READONLY); + RETURN_MM_BOOL(Z_TYPE_P(&_1) != IS_NULL); +} + +static PHP_METHOD(Phalcon_Db_Column, isAutoIncrement) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "autoIncrement"); +} + +static PHP_METHOD(Phalcon_Db_Column, isFirst) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "first"); +} + +static PHP_METHOD(Phalcon_Db_Column, isNotNull) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "notNull"); +} + +static PHP_METHOD(Phalcon_Db_Column, isNumeric) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "isNumeric"); +} + +static PHP_METHOD(Phalcon_Db_Column, isPrimary) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "primary"); +} + +static PHP_METHOD(Phalcon_Db_Column, isUnsigned) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "unsigned"); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_ColumnInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, ColumnInterface, phalcon, db_columninterface, phalcon_db_columninterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, getAfterPosition); +ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, getBindType); +ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, getDefault); +ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, getName); +ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, getScale); +ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, getSize); +ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, getType); +ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, getTypeReference); +ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, getTypeValues); +ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, hasDefault); +ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, isAutoIncrement); +ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, isFirst); +ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, isNotNull); +ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, isNumeric); +ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, isPrimary); +ZEPHIR_DOC_METHOD(Phalcon_Db_ColumnInterface, isUnsigned); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Dialect, phalcon, db_dialect, phalcon_db_dialect_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_null(phalcon_db_dialect_ce, SL("escapeChar"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_dialect_ce, SL("customFunctions"), ZEND_ACC_PROTECTED); + phalcon_db_dialect_ce->create_object = zephir_init_properties_Phalcon_Db_Dialect; + + zend_class_implements(phalcon_db_dialect_ce, 1, phalcon_db_dialectinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Db_Dialect, createSavepoint) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *name_param = NULL; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + + + ZEPHIR_CONCAT_SV(return_value, "SAVEPOINT ", &name); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, escape) +{ + zend_bool _2$$5, _12$$7, _13$$7, _17$$9, _18$$9; + zend_string *_11; + zend_ulong _10; + zval _7; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *str_param = NULL, *escapeChar_param = NULL, parts, key, part, newParts, _5, _6, *_8, _9, _0$$4, _3$$6, _14$$7, _16$$7, _19$$9, _21$$9; + zval str, escapeChar, _1$$4, _4$$6, _15$$7, _20$$9; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&str); + ZVAL_UNDEF(&escapeChar); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_4$$6); + ZVAL_UNDEF(&_15$$7); + ZVAL_UNDEF(&_20$$9); + ZVAL_UNDEF(&parts); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&part); + ZVAL_UNDEF(&newParts); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_0$$4); + ZVAL_UNDEF(&_3$$6); + ZVAL_UNDEF(&_14$$7); + ZVAL_UNDEF(&_16$$7); + ZVAL_UNDEF(&_19$$9); + ZVAL_UNDEF(&_21$$9); + ZVAL_UNDEF(&_7); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(str) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &str_param, &escapeChar_param); + if (UNEXPECTED(Z_TYPE_P(str_param) != IS_STRING && Z_TYPE_P(str_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'str' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(str_param) == IS_STRING)) { + zephir_get_strval(&str, str_param); + } else { + ZEPHIR_INIT_VAR(&str); + } + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + + + if (!(ZEPHIR_GLOBAL(db).escape_identifiers)) { + RETURN_CTOR(&str); + } + if (ZEPHIR_IS_EMPTY(&escapeChar)) { + ZEPHIR_OBS_VAR(&_0$$4); + zephir_read_property(&_0$$4, this_ptr, ZEND_STRL("escapeChar"), PH_NOISY_CC); + zephir_cast_to_string(&_1$$4, &_0$$4); + ZEPHIR_CPY_WRT(&escapeChar, &_1$$4); + } + if (!(zephir_memnstr_str(&str, SL("."), "phalcon/Db/Dialect.zep", 52))) { + _2$$5 = !ZEPHIR_IS_STRING(&escapeChar, ""); + if (_2$$5) { + _2$$5 = !ZEPHIR_IS_STRING(&str, "*"); } -vv209: - ++VVCURSOR; - { - s->whitespace_control = 0; - s->statement_position++; - token->opcode = PHVOLT_T_OPEN_EDELIMITER; - return 0; + if (_2$$5) { + ZEPHIR_INIT_VAR(&_3$$6); + ZEPHIR_INIT_VAR(&_4$$6); + ZEPHIR_CONCAT_VV(&_4$$6, &escapeChar, &escapeChar); + zephir_fast_str_replace(&_3$$6, &escapeChar, &_4$$6, &str); + ZEPHIR_CONCAT_VVV(return_value, &escapeChar, &_3$$6, &escapeChar); + RETURN_MM(); } -vv211: - vvch = *++VVCURSOR; - switch (vvch) { - case 'E': - case 'e': goto vv253; - default: goto vv54; + RETURN_CTOR(&str); + } + ZEPHIR_INIT_VAR(&_5); + ZEPHIR_INIT_VAR(&_6); + zephir_fast_trim(&_6, &str, &escapeChar, ZEPHIR_TRIM_BOTH); + zephir_fast_explode_str(&_5, SL("."), &_6, LONG_MAX); + zephir_get_arrval(&_7, &_5); + ZEPHIR_CPY_WRT(&parts, &_7); + ZEPHIR_CPY_WRT(&newParts, &parts); + zephir_is_iterable(&parts, 0, "phalcon/Db/Dialect.zep", 72); + if (Z_TYPE_P(&parts) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&parts), _10, _11, _8) + { + ZEPHIR_INIT_NVAR(&key); + if (_11 != NULL) { + ZVAL_STR_COPY(&key, _11); + } else { + ZVAL_LONG(&key, _10); } -vv212: - vvch = *++VVCURSOR; - switch (vvch) { - case 'K': - case 'k': goto vv254; - default: goto vv54; + ZEPHIR_INIT_NVAR(&part); + ZVAL_COPY(&part, _8); + _12$$7 = ZEPHIR_IS_STRING(&escapeChar, ""); + if (!(_12$$7)) { + _12$$7 = ZEPHIR_IS_STRING(&part, ""); } -vv213: - vvch = *++VVCURSOR; - switch (vvch) { - case 'K': - case 'k': goto vv256; - default: goto vv54; + _13$$7 = _12$$7; + if (!(_13$$7)) { + _13$$7 = ZEPHIR_IS_STRING(&part, "*"); } -vv214: - vvch = *++VVCURSOR; - switch (vvch) { - case 'E': - case 'e': goto vv258; - default: goto vv54; + if (_13$$7) { + continue; } -vv215: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv216; + ZEPHIR_INIT_NVAR(&_14$$7); + ZEPHIR_INIT_NVAR(&_15$$7); + ZEPHIR_CONCAT_VV(&_15$$7, &escapeChar, &escapeChar); + zephir_fast_str_replace(&_14$$7, &escapeChar, &_15$$7, &part); + ZEPHIR_INIT_NVAR(&_16$$7); + ZEPHIR_CONCAT_VVV(&_16$$7, &escapeChar, &_14$$7, &escapeChar); + zephir_array_update_zval(&newParts, &key, &_16$$7, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &parts, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_9, &parts, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_9)) { + break; } -vv216: - { - s->statement_position++; - token->opcode = PHVOLT_T_CALL; - return 0; + ZEPHIR_CALL_METHOD(&key, &parts, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&part, &parts, "current", NULL, 0); + zephir_check_call_status(); + _17$$9 = ZEPHIR_IS_STRING(&escapeChar, ""); + if (!(_17$$9)) { + _17$$9 = ZEPHIR_IS_STRING(&part, ""); + } + _18$$9 = _17$$9; + if (!(_18$$9)) { + _18$$9 = ZEPHIR_IS_STRING(&part, "*"); + } + if (_18$$9) { + continue; + } + ZEPHIR_INIT_NVAR(&_19$$9); + ZEPHIR_INIT_NVAR(&_20$$9); + ZEPHIR_CONCAT_VV(&_20$$9, &escapeChar, &escapeChar); + zephir_fast_str_replace(&_19$$9, &escapeChar, &_20$$9, &part); + ZEPHIR_INIT_NVAR(&_21$$9); + ZEPHIR_CONCAT_VVV(&_21$$9, &escapeChar, &_19$$9, &escapeChar); + zephir_array_update_zval(&newParts, &key, &_21$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &parts, "next", NULL, 0); + zephir_check_call_status(); } -vv217: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv218; + } + ZEPHIR_INIT_NVAR(&part); + ZEPHIR_INIT_NVAR(&key); + zephir_fast_join_str(return_value, SL("."), &newParts); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, escapeSchema) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *str_param = NULL, *escapeChar_param = NULL, _0$$4, _2; + zval str, escapeChar, _1$$4; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&str); + ZVAL_UNDEF(&escapeChar); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_0$$4); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(str) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &str_param, &escapeChar_param); + if (UNEXPECTED(Z_TYPE_P(str_param) != IS_STRING && Z_TYPE_P(str_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'str' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(str_param) == IS_STRING)) { + zephir_get_strval(&str, str_param); + } else { + ZEPHIR_INIT_VAR(&str); + } + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + + + if (!(ZEPHIR_GLOBAL(db).escape_identifiers)) { + RETURN_CTOR(&str); + } + if (ZEPHIR_IS_STRING(&escapeChar, "")) { + ZEPHIR_OBS_VAR(&_0$$4); + zephir_read_property(&_0$$4, this_ptr, ZEND_STRL("escapeChar"), PH_NOISY_CC); + zephir_cast_to_string(&_1$$4, &_0$$4); + ZEPHIR_CPY_WRT(&escapeChar, &_1$$4); + } + ZEPHIR_INIT_VAR(&_2); + zephir_fast_trim(&_2, &str, &escapeChar, ZEPHIR_TRIM_BOTH); + ZEPHIR_CONCAT_VVV(return_value, &escapeChar, &_2, &escapeChar); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, forUpdate) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *sqlQuery_param = NULL; + zval sqlQuery; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&sqlQuery); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(sqlQuery) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &sqlQuery_param); + if (UNEXPECTED(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { + zephir_get_strval(&sqlQuery, sqlQuery_param); + } else { + ZEPHIR_INIT_VAR(&sqlQuery); + } + + + ZEPHIR_CONCAT_VS(return_value, &sqlQuery, " FOR UPDATE"); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getColumnList) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_3 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval escapeChar; + zval *columnList_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, column, *_0, _1, _2$$3, _4$$4; + zval columnList, bindCounts, columns; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&columnList); + ZVAL_UNDEF(&bindCounts); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&column); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&escapeChar); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ARRAY(columnList) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &columnList_param, &escapeChar_param, &bindCounts_param); + ZEPHIR_OBS_COPY_OR_DUP(&columnList, columnList_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + if (!bindCounts_param) { + ZEPHIR_INIT_VAR(&bindCounts); + array_init(&bindCounts); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + } + + + ZEPHIR_INIT_VAR(&columns); + array_init(&columns); + zephir_is_iterable(&columnList, 0, "phalcon/Db/Dialect.zep", 128); + if (Z_TYPE_P(&columnList) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&columnList), _0) + { + ZEPHIR_INIT_NVAR(&column); + ZVAL_COPY(&column, _0); + ZEPHIR_CALL_METHOD(&_2$$3, this_ptr, "getsqlcolumn", &_3, 53, &column, &escapeChar, &bindCounts); + zephir_check_call_status(); + zephir_array_append(&columns, &_2$$3, PH_SEPARATE, "phalcon/Db/Dialect.zep", 125); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &columnList, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &columnList, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; } -vv218: - { - token->opcode = PHVOLT_T_CASE; - return 0; + ZEPHIR_CALL_METHOD(&column, &columnList, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_4$$4, this_ptr, "getsqlcolumn", &_3, 53, &column, &escapeChar, &bindCounts); + zephir_check_call_status(); + zephir_array_append(&columns, &_4$$4, PH_SEPARATE, "phalcon/Db/Dialect.zep", 125); + ZEPHIR_CALL_METHOD(NULL, &columnList, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&column); + zephir_fast_join_str(return_value, SL(", "), &columns); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getCustomFunctions) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "customFunctions"); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getSqlColumn) +{ + zend_bool _5, _3$$4, _4$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval bindCounts; + zval escapeChar; + zval *column = NULL, column_sub, *escapeChar_param = NULL, *bindCounts_param = NULL, columnExpression, columnAlias, columnField, columnDomain, _6, _0$$3, _1$$6, _2$$7; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(&columnExpression); + ZVAL_UNDEF(&columnAlias); + ZVAL_UNDEF(&columnField); + ZVAL_UNDEF(&columnDomain); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$6); + ZVAL_UNDEF(&_2$$7); + ZVAL_UNDEF(&escapeChar); + ZVAL_UNDEF(&bindCounts); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ZVAL(column) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &column, &escapeChar_param, &bindCounts_param); + ZEPHIR_SEPARATE_PARAM(column); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + if (!bindCounts_param) { + ZEPHIR_INIT_VAR(&bindCounts); + array_init(&bindCounts); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + } + + + if (Z_TYPE_P(column) != IS_ARRAY) { + ZVAL_NULL(&_0$$3); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparequalified", NULL, 0, column, &_0$$3, &escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + if (!(zephir_array_isset_string(column, SL("type")))) { + ZEPHIR_OBS_VAR(&columnField); + zephir_array_fetch_long(&columnField, column, 0, PH_NOISY, "phalcon/Db/Dialect.zep", 160); + if (Z_TYPE_P(&columnField) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&columnExpression); + zephir_create_array(&columnExpression, 2, 0); + add_assoc_stringl_ex(&columnExpression, SL("type"), SL("scalar")); + zephir_array_update_string(&columnExpression, SL("value"), &columnField, PH_COPY | PH_SEPARATE); + } else if (ZEPHIR_IS_STRING_IDENTICAL(&columnField, "*")) { + ZEPHIR_INIT_VAR(&_1$$6); + zephir_create_array(&_1$$6, 1, 0); + add_assoc_stringl_ex(&_1$$6, SL("type"), SL("all")); + ZEPHIR_CPY_WRT(&columnExpression, &_1$$6); + } else { + ZEPHIR_INIT_VAR(&_2$$7); + zephir_create_array(&_2$$7, 2, 0); + add_assoc_stringl_ex(&_2$$7, SL("type"), SL("qualified")); + zephir_array_update_string(&_2$$7, SL("name"), &columnField, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&columnExpression, &_2$$7); + } + ZEPHIR_OBS_VAR(&columnDomain); + _3$$4 = zephir_array_isset_long_fetch(&columnDomain, column, 1, 0); + if (_3$$4) { + _3$$4 = !ZEPHIR_IS_STRING_IDENTICAL(&columnDomain, ""); + } + if (_3$$4) { + zephir_array_update_string(&columnExpression, SL("domain"), &columnDomain, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_VAR(&columnAlias); + _4$$4 = zephir_array_isset_long_fetch(&columnAlias, column, 2, 0); + if (_4$$4) { + _4$$4 = zephir_is_true(&columnAlias); + } + if (_4$$4) { + zephir_array_update_string(&columnExpression, SL("sqlAlias"), &columnAlias, PH_COPY | PH_SEPARATE); + } + } else { + ZEPHIR_CPY_WRT(&columnExpression, column); + } + ZEPHIR_CALL_METHOD(column, this_ptr, "getsqlexpression", NULL, 0, &columnExpression, &escapeChar, &bindCounts); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&columnAlias); + _5 = zephir_array_isset_string_fetch(&columnAlias, &columnExpression, SL("sqlAlias"), 0); + if (!(_5)) { + ZEPHIR_OBS_NVAR(&columnAlias); + _5 = zephir_array_isset_string_fetch(&columnAlias, &columnExpression, SL("alias"), 0); + } + if (_5) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparecolumnalias", NULL, 0, column, &columnAlias, &escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + ZVAL_NULL(&_6); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparecolumnalias", NULL, 0, column, &_6, &escapeChar); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpression) +{ + zend_bool _1$$9; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS, i = 0, _2$$9; + zval escapeChar; + zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, type, times, postTimes, rawValue, value, _11, _12, _0$$7, _3$$9, _4$$11, _5$$11, _6$$8, _7$$14, _8$$14, _9$$18, _10$$18; + zval expression, bindCounts, placeholders; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&expression); + ZVAL_UNDEF(&bindCounts); + ZVAL_UNDEF(&placeholders); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(×); + ZVAL_UNDEF(&postTimes); + ZVAL_UNDEF(&rawValue); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_0$$7); + ZVAL_UNDEF(&_3$$9); + ZVAL_UNDEF(&_4$$11); + ZVAL_UNDEF(&_5$$11); + ZVAL_UNDEF(&_6$$8); + ZVAL_UNDEF(&_7$$14); + ZVAL_UNDEF(&_8$$14); + ZVAL_UNDEF(&_9$$18); + ZVAL_UNDEF(&_10$$18); + ZVAL_UNDEF(&escapeChar); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ARRAY(expression) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); + ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + if (!bindCounts_param) { + ZEPHIR_INIT_VAR(&bindCounts); + array_init(&bindCounts); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + } + + + ZEPHIR_OBS_VAR(&type); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&type, &expression, SL("type"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL expression", "phalcon/Db/Dialect.zep", 224); + return; + } + do { + if (ZEPHIR_IS_STRING(&type, "scalar")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionscalar", NULL, 54, &expression, &escapeChar, &bindCounts); + zephir_check_call_status(); + RETURN_MM(); } -vv219: - vvch = *++VVCURSOR; - switch (vvch) { - case 'I': - case 'i': goto vv260; - default: goto vv54; - } -vv220: - vvch = *++VVCURSOR; - switch (vvch) { - case 'U': - case 'u': goto vv261; - default: goto vv54; - } -vv221: - vvch = *++VVCURSOR; - switch (vvch) { - case 'N': - case 'n': goto vv262; - default: goto vv54; - } -vv222: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'G': - case 'H': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'g': - case 'h': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - case 'F': - case 'f': goto vv263; - case 'I': - case 'i': goto vv264; - default: goto vv223; - } -vv223: - { - token->opcode = PHVOLT_T_ELSE; - return 0; + if (ZEPHIR_IS_STRING(&type, "object")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionobject", NULL, 55, &expression, &escapeChar, &bindCounts); + zephir_check_call_status(); + RETURN_MM(); } -vv224: - vvch = *++VVCURSOR; - switch (vvch) { - case 'Y': - case 'y': goto vv265; - default: goto vv54; - } -vv225: - vvch = *++VVCURSOR; - switch (vvch) { - case 'U': - case 'u': goto vv267; - default: goto vv54; - } -vv226: - vvch = *++VVCURSOR; - switch (vvch) { - case 'L': - case 'l': goto vv268; - default: goto vv54; - } -vv227: - vvch = *++VVCURSOR; - switch (vvch) { - case 'A': - case 'a': goto vv269; - default: goto vv54; - } -vv228: - vvch = *++VVCURSOR; - switch (vvch) { - case 'O': - case 'o': goto vv270; - default: goto vv54; - } -vv229: - vvch = *++VVCURSOR; - switch (vvch) { - case 'F': - case 'f': goto vv271; - default: goto vv54; - } -vv230: - vvch = *++VVCURSOR; - switch (vvch) { - case 'A': - case 'a': goto vv273; - default: goto vv54; - } -vv231: - vvch = *++VVCURSOR; - switch (vvch) { - case 'A': - case 'a': goto vv274; - default: goto vv54; - } -vv232: - vvch = *++VVCURSOR; - switch (vvch) { - case 'W': - case 'w': goto vv275; - default: goto vv54; - } -vv233: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv234; - } -vv234: - { - s->statement_position++; - token->opcode = PHVOLT_T_EVEN; - return 0; + if (ZEPHIR_IS_STRING(&type, "qualified")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionqualified", NULL, 56, &expression, &escapeChar); + zephir_check_call_status(); + RETURN_MM(); } -vv235: - vvch = *++VVCURSOR; - switch (vvch) { - case 'N': - case 'n': goto vv276; - default: goto vv54; - } -vv236: - vvch = *++VVCURSOR; - switch (vvch) { - case 'E': - case 'e': goto vv277; - default: goto vv54; - } -vv237: - vvch = *++VVCURSOR; - switch (vvch) { - case 'U': - case 'u': goto vv279; - default: goto vv54; - } -vv238: - vvch = *++VVCURSOR; - switch (vvch) { - case 'O': - case 'o': goto vv280; - default: goto vv81; - } -vv239: - vvch = *++VVCURSOR; - switch (vvch) { - case 'A': - case 'a': goto vv281; - default: goto vv54; - } -vv240: - vvch = *++VVCURSOR; - switch (vvch) { - case 'O': - case 'o': goto vv282; - default: goto vv54; - } -vv241: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv242; - } -vv242: - { - token->opcode = PHVOLT_T_NULL; - return 0; + if (ZEPHIR_IS_STRING(&type, "literal")) { + zephir_array_fetch_string(&_0$$7, &expression, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 258); + RETURN_CTOR(&_0$$7); } -vv243: - vvch = *++VVCURSOR; - switch (vvch) { - case 'R': - case 'r': goto vv284; - default: goto vv54; - } -vv244: - vvch = *++VVCURSOR; - switch (vvch) { - case 'R': - case 'r': goto vv285; - default: goto vv54; - } -vv245: - vvch = *++VVCURSOR; - switch (vvch) { - case 'A': - case 'a': goto vv286; - default: goto vv54; + if (ZEPHIR_IS_STRING(&type, "placeholder")) { + ZEPHIR_OBS_VAR(×); + if (zephir_array_isset_string_fetch(×, &expression, SL("times"), 0)) { + ZEPHIR_INIT_VAR(&placeholders); + array_init(&placeholders); + ZEPHIR_OBS_VAR(&rawValue); + zephir_array_fetch_string(&rawValue, &expression, SL("rawValue"), PH_NOISY, "phalcon/Db/Dialect.zep", 264); + ZEPHIR_OBS_VAR(&value); + zephir_array_fetch_string(&value, &expression, SL("value"), PH_NOISY, "phalcon/Db/Dialect.zep", 265); + ZEPHIR_OBS_VAR(&postTimes); + if (zephir_array_isset_fetch(&postTimes, &bindCounts, &rawValue, 0)) { + ZEPHIR_CPY_WRT(×, &postTimes); + } + ZEPHIR_CPY_WRT(&_3$$9, ×); + _2$$9 = 1; + _1$$9 = 0; + if (ZEPHIR_GE_LONG(&_3$$9, _2$$9)) { + while (1) { + if (_1$$9) { + _2$$9++; + if (!(ZEPHIR_GE_LONG(&_3$$9, _2$$9))) { + break; + } + } else { + _1$$9 = 1; + } + i = _2$$9; + ZEPHIR_INIT_NVAR(&_4$$11); + ZVAL_LONG(&_4$$11, ((i - 1))); + ZEPHIR_INIT_NVAR(&_5$$11); + ZEPHIR_CONCAT_VV(&_5$$11, &value, &_4$$11); + zephir_array_append(&placeholders, &_5$$11, PH_SEPARATE, "phalcon/Db/Dialect.zep", 272); + } + } + zephir_fast_join_str(return_value, SL(", "), &placeholders); + RETURN_MM(); } -vv246: - vvch = *++VVCURSOR; - switch (vvch) { - case 'C': - case 'c': goto vv287; - default: goto vv54; + zephir_array_fetch_string(&_6$$8, &expression, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 278); + RETURN_CTOR(&_6$$8); + } + if (ZEPHIR_IS_STRING(&type, "binary-op")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionbinaryoperations", NULL, 57, &expression, &escapeChar, &bindCounts); + zephir_check_call_status(); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&type, "unary-op")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionunaryoperations", NULL, 58, &expression, &escapeChar, &bindCounts); + zephir_check_call_status(); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&type, "parentheses")) { + zephir_array_fetch_string(&_8$$14, &expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 304); + ZEPHIR_CALL_METHOD(&_7$$14, this_ptr, "getsqlexpression", NULL, 59, &_8$$14, &escapeChar, &bindCounts); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "(", &_7$$14, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&type, "functionCall")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionfunctioncall", NULL, 60, &expression, &escapeChar, &bindCounts); + zephir_check_call_status(); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&type, "list")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionlist", NULL, 61, &expression, &escapeChar, &bindCounts); + zephir_check_call_status(); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&type, "all")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionall", NULL, 62, &expression, &escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&type, "select")) { + zephir_array_fetch_string(&_10$$18, &expression, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 336); + ZEPHIR_CALL_METHOD(&_9$$18, this_ptr, "select", NULL, 0, &_10$$18); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "(", &_9$$18, ")"); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&type, "cast")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressioncastvalue", NULL, 63, &expression, &escapeChar, &bindCounts); + zephir_check_call_status(); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&type, "convert")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressionconvertvalue", NULL, 64, &expression, &escapeChar, &bindCounts); + zephir_check_call_status(); + RETURN_MM(); + } + if (ZEPHIR_IS_STRING(&type, "case")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpressioncase", NULL, 65, &expression, &escapeChar, &bindCounts); + zephir_check_call_status(); + RETURN_MM(); + } + } while(0); + + ZEPHIR_INIT_VAR(&_11); + object_init_ex(&_11, phalcon_db_exception_ce); + ZEPHIR_INIT_VAR(&_12); + ZEPHIR_CONCAT_SVS(&_12, "Invalid SQL expression type '", &type, "'"); + ZEPHIR_CALL_METHOD(NULL, &_11, "__construct", NULL, 8, &_12); + zephir_check_call_status(); + zephir_throw_exception_debug(&_11, "phalcon/Db/Dialect.zep", 369); + ZEPHIR_MM_RESTORE(); + return; +} + +static PHP_METHOD(Phalcon_Db_Dialect, getSqlTable) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval escapeChar; + zval *table, table_sub, *escapeChar_param = NULL, tableName, schemaName, aliasName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&table_sub); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&aliasName); + ZVAL_UNDEF(&escapeChar); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(table) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &table, &escapeChar_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + + + if (Z_TYPE_P(table) == IS_ARRAY) { + ZEPHIR_OBS_VAR(&tableName); + zephir_array_fetch_long(&tableName, table, 0, PH_NOISY, "phalcon/Db/Dialect.zep", 385); + ZEPHIR_OBS_VAR(&schemaName); + zephir_array_isset_long_fetch(&schemaName, table, 1, 0); + ZEPHIR_OBS_VAR(&aliasName); + zephir_array_isset_long_fetch(&aliasName, table, 2, 0); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparetable", NULL, 0, &tableName, &schemaName, &aliasName, &escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "escape", NULL, 66, table, &escapeChar); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, limit) +{ + zend_bool _2$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *sqlQuery_param = NULL, *number, number_sub, _0$$3, _1$$3, _3$$3, _4$$4, _5$$4; + zval sqlQuery; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&sqlQuery); + ZVAL_UNDEF(&number_sub); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(sqlQuery) + Z_PARAM_ZVAL(number) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &sqlQuery_param, &number); + if (UNEXPECTED(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { + zephir_get_strval(&sqlQuery, sqlQuery_param); + } else { + ZEPHIR_INIT_VAR(&sqlQuery); + } + + + if (Z_TYPE_P(number) == IS_ARRAY) { + zephir_array_fetch_long(&_0$$3, number, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 428); + ZEPHIR_INIT_VAR(&_1$$3); + ZEPHIR_CONCAT_SV(&_1$$3, " LIMIT ", &_0$$3); + zephir_concat_self(&sqlQuery, &_1$$3); + _2$$3 = zephir_array_isset_long(number, 1); + if (_2$$3) { + zephir_array_fetch_long(&_3$$3, number, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 430); + _2$$3 = ((zephir_fast_strlen_ev(&_3$$3)) ? 1 : 0); + } + if (_2$$3) { + zephir_array_fetch_long(&_4$$4, number, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 431); + ZEPHIR_INIT_VAR(&_5$$4); + ZEPHIR_CONCAT_SV(&_5$$4, " OFFSET ", &_4$$4); + zephir_concat_self(&sqlQuery, &_5$$4); + } + RETURN_CTOR(&sqlQuery); + } + ZEPHIR_CONCAT_VSV(return_value, &sqlQuery, " LIMIT ", number); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, registerCustomFunction) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *name_param = NULL, *customFunction, customFunction_sub; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&customFunction_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(name) + Z_PARAM_ZVAL(customFunction) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &name_param, &customFunction); + zephir_get_strval(&name, name_param); + + + zephir_update_property_array(this_ptr, SL("customFunctions"), &name, customFunction); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, releaseSavepoint) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *name_param = NULL; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + + + ZEPHIR_CONCAT_SV(return_value, "RELEASE SAVEPOINT ", &name); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, rollbackSavepoint) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *name_param = NULL; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + + + ZEPHIR_CONCAT_SV(return_value, "ROLLBACK TO SAVEPOINT ", &name); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, select) +{ + zend_bool _5, _9, _12, _15, _18, _21, _23; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *definition_param = NULL, tables, columns, sql, distinct, joins, where, escapeChar, groupBy, having, orderBy, limit, forUpdate, bindCounts, _0, _1, _2, _3, _4, _6$$10, _7$$10, _8$$10, _10$$11, _11$$11, _13$$12, _14$$12, _16$$13, _17$$13, _19$$14, _20$$14; + zval definition, _22$$15; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&_22$$15); + ZVAL_UNDEF(&tables); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&distinct); + ZVAL_UNDEF(&joins); + ZVAL_UNDEF(&where); + ZVAL_UNDEF(&escapeChar); + ZVAL_UNDEF(&groupBy); + ZVAL_UNDEF(&having); + ZVAL_UNDEF(&orderBy); + ZVAL_UNDEF(&limit); + ZVAL_UNDEF(&forUpdate); + ZVAL_UNDEF(&bindCounts); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_6$$10); + ZVAL_UNDEF(&_7$$10); + ZVAL_UNDEF(&_8$$10); + ZVAL_UNDEF(&_10$$11); + ZVAL_UNDEF(&_11$$11); + ZVAL_UNDEF(&_13$$12); + ZVAL_UNDEF(&_14$$12); + ZVAL_UNDEF(&_16$$13); + ZVAL_UNDEF(&_17$$13); + ZVAL_UNDEF(&_19$$14); + ZVAL_UNDEF(&_20$$14); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(definition) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &definition_param); + ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); + + + ZEPHIR_OBS_VAR(&tables); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&tables, &definition, SL("tables"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'tables' is required in the definition array", "phalcon/Db/Dialect.zep", 477); + return; + } + ZEPHIR_OBS_VAR(&columns); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&columns, &definition, SL("columns"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/Db/Dialect.zep", 483); + return; + } + ZEPHIR_OBS_VAR(&distinct); + if (zephir_array_isset_string_fetch(&distinct, &definition, SL("distinct"), 0)) { + ZEPHIR_INIT_VAR(&sql); + if (zephir_is_true(&distinct)) { + ZVAL_STRING(&sql, "SELECT DISTINCT"); + } else { + ZVAL_STRING(&sql, "SELECT ALL"); + } + } else { + ZEPHIR_INIT_NVAR(&sql); + ZVAL_STRING(&sql, "SELECT"); + } + ZEPHIR_OBS_VAR(&bindCounts); + zephir_array_isset_string_fetch(&bindCounts, &definition, SL("bindCounts"), 0); + if (Z_TYPE_P(&bindCounts) != IS_ARRAY) { + ZEPHIR_INIT_NVAR(&bindCounts); + array_init(&bindCounts); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("escapeChar"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&escapeChar, &_0); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getcolumnlist", NULL, 67, &columns, &escapeChar, &bindCounts); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_CONCAT_SV(&_2, " ", &_1); + zephir_concat_self(&sql, &_2); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getsqlexpressionfrom", NULL, 68, &tables, &escapeChar); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_4); + ZEPHIR_CONCAT_SV(&_4, " ", &_3); + zephir_concat_self(&sql, &_4); + ZEPHIR_OBS_VAR(&joins); + _5 = zephir_array_isset_string_fetch(&joins, &definition, SL("joins"), 0); + if (_5) { + _5 = zephir_is_true(&joins); + } + if (_5) { + zephir_array_fetch_string(&_7$$10, &definition, SL("joins"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 517); + ZEPHIR_CALL_METHOD(&_6$$10, this_ptr, "getsqlexpressionjoins", NULL, 69, &_7$$10, &escapeChar, &bindCounts); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_8$$10); + ZEPHIR_CONCAT_SV(&_8$$10, " ", &_6$$10); + zephir_concat_self(&sql, &_8$$10); + } + ZEPHIR_OBS_VAR(&where); + _9 = zephir_array_isset_string_fetch(&where, &definition, SL("where"), 0); + if (_9) { + _9 = zephir_is_true(&where); + } + if (_9) { + ZEPHIR_CALL_METHOD(&_10$$11, this_ptr, "getsqlexpressionwhere", NULL, 70, &where, &escapeChar, &bindCounts); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_11$$11); + ZEPHIR_CONCAT_SV(&_11$$11, " ", &_10$$11); + zephir_concat_self(&sql, &_11$$11); + } + ZEPHIR_OBS_VAR(&groupBy); + _12 = zephir_array_isset_string_fetch(&groupBy, &definition, SL("group"), 0); + if (_12) { + _12 = zephir_is_true(&groupBy); + } + if (_12) { + ZEPHIR_CALL_METHOD(&_13$$12, this_ptr, "getsqlexpressiongroupby", NULL, 71, &groupBy, &escapeChar); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_14$$12); + ZEPHIR_CONCAT_SV(&_14$$12, " ", &_13$$12); + zephir_concat_self(&sql, &_14$$12); + } + ZEPHIR_OBS_VAR(&having); + _15 = zephir_array_isset_string_fetch(&having, &definition, SL("having"), 0); + if (_15) { + _15 = zephir_is_true(&having); + } + if (_15) { + ZEPHIR_CALL_METHOD(&_16$$13, this_ptr, "getsqlexpressionhaving", NULL, 72, &having, &escapeChar, &bindCounts); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_17$$13); + ZEPHIR_CONCAT_SV(&_17$$13, " ", &_16$$13); + zephir_concat_self(&sql, &_17$$13); + } + ZEPHIR_OBS_VAR(&orderBy); + _18 = zephir_array_isset_string_fetch(&orderBy, &definition, SL("order"), 0); + if (_18) { + _18 = zephir_is_true(&orderBy); + } + if (_18) { + ZEPHIR_CALL_METHOD(&_19$$14, this_ptr, "getsqlexpressionorderby", NULL, 73, &orderBy, &escapeChar, &bindCounts); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_20$$14); + ZEPHIR_CONCAT_SV(&_20$$14, " ", &_19$$14); + zephir_concat_self(&sql, &_20$$14); + } + ZEPHIR_OBS_VAR(&limit); + _21 = zephir_array_isset_string_fetch(&limit, &definition, SL("limit"), 0); + if (_21) { + _21 = zephir_is_true(&limit); + } + if (_21) { + ZEPHIR_INIT_VAR(&_22$$15); + zephir_create_array(&_22$$15, 2, 0); + zephir_array_update_string(&_22$$15, SL("sql"), &sql, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_22$$15, SL("value"), &limit, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&sql, this_ptr, "getsqlexpressionlimit", NULL, 74, &_22$$15, &escapeChar, &bindCounts); + zephir_check_call_status(); + } + _23 = zephir_array_isset_string_fetch(&forUpdate, &definition, SL("forUpdate"), 1); + if (_23) { + _23 = zephir_is_true(&forUpdate); + } + if (_23) { + zephir_concat_self_str(&sql, SL(" FOR UPDATE")); + } + RETURN_CCTOR(&sql); +} + +static PHP_METHOD(Phalcon_Db_Dialect, supportsSavepoints) +{ + zval *this_ptr = getThis(); + + + + RETURN_BOOL(1); +} + +static PHP_METHOD(Phalcon_Db_Dialect, supportsReleaseSavepoints) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + + + ZEPHIR_MM_GROW(); + + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "supportssavepoints", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getColumnSize) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *column, column_sub, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &column); + + + ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "(", &_0, ")"); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getColumnSizeAndScale) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *column, column_sub, _0, _1; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &column); + + + ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1, column, "getscale", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "(", &_0, ",", &_1, ")"); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, checkColumnType) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *column, column_sub, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &column); + + + ZEPHIR_CALL_METHOD(&_0, column, "gettype", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&_0) == IS_STRING) { + ZEPHIR_RETURN_CALL_METHOD(column, "gettypereference", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_RETURN_CALL_METHOD(column, "gettype", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, checkColumnTypeSql) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *column, column_sub, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &column); + + + ZEPHIR_CALL_METHOD(&_0, column, "gettype", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&_0) != IS_STRING) { + RETURN_MM_STRING(""); + } + ZEPHIR_RETURN_CALL_METHOD(column, "gettype", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionAll) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval escapeChar; + zval *expression_param = NULL, *escapeChar_param = NULL, domain, _0; + zval expression; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&expression); + ZVAL_UNDEF(&domain); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&escapeChar); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(expression) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); + ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + + + ZEPHIR_OBS_VAR(&domain); + zephir_array_isset_string_fetch(&domain, &expression, SL("domain"), 0); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "*"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparequalified", NULL, 0, &_0, &domain, &escapeChar); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionBinaryOperations) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval escapeChar; + zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, left, right, _0, _1, _2; + zval expression, bindCounts; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&expression); + ZVAL_UNDEF(&bindCounts); + ZVAL_UNDEF(&left); + ZVAL_UNDEF(&right); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&escapeChar); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ARRAY(expression) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); + ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + if (!bindCounts_param) { + ZEPHIR_INIT_VAR(&bindCounts); + array_init(&bindCounts); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + } + + + zephir_array_fetch_string(&_0, &expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 654); + ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", NULL, 0, &_0, &escapeChar, &bindCounts); + zephir_check_call_status(); + zephir_array_fetch_string(&_1, &expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 660); + ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", NULL, 59, &_1, &escapeChar, &bindCounts); + zephir_check_call_status(); + zephir_array_fetch_string(&_2, &expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 665); + ZEPHIR_CONCAT_VSVSV(return_value, &left, " ", &_2, " ", &right); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionCase) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval escapeChar, sql; + zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, whenClause, _0, _1, _2, _3, *_4, _5, _6$$3, _7$$4, _8$$4, _9$$4, _10$$4, _11$$4, _12$$5, _13$$5, _14$$5, _15$$6, _16$$7, _17$$7, _18$$7, _19$$7, _20$$7, _21$$8, _22$$8, _23$$8; + zval expression, bindCounts; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&expression); + ZVAL_UNDEF(&bindCounts); + ZVAL_UNDEF(&whenClause); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_8$$4); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&_10$$4); + ZVAL_UNDEF(&_11$$4); + ZVAL_UNDEF(&_12$$5); + ZVAL_UNDEF(&_13$$5); + ZVAL_UNDEF(&_14$$5); + ZVAL_UNDEF(&_15$$6); + ZVAL_UNDEF(&_16$$7); + ZVAL_UNDEF(&_17$$7); + ZVAL_UNDEF(&_18$$7); + ZVAL_UNDEF(&_19$$7); + ZVAL_UNDEF(&_20$$7); + ZVAL_UNDEF(&_21$$8); + ZVAL_UNDEF(&_22$$8); + ZVAL_UNDEF(&_23$$8); + ZVAL_UNDEF(&escapeChar); + ZVAL_UNDEF(&sql); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ARRAY(expression) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); + ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + if (!bindCounts_param) { + ZEPHIR_INIT_VAR(&bindCounts); + array_init(&bindCounts); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + } + + + zephir_array_fetch_string(&_1, &expression, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 682); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getsqlexpression", NULL, 0, &_1, &escapeChar, &bindCounts); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + ZEPHIR_CONCAT_SV(&_2, "CASE ", &_0); + zephir_get_strval(&sql, &_2); + zephir_array_fetch_string(&_3, &expression, SL("when-clauses"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 684); + zephir_is_iterable(&_3, 0, "phalcon/Db/Dialect.zep", 695); + if (Z_TYPE_P(&_3) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_3), _4) + { + ZEPHIR_INIT_NVAR(&whenClause); + ZVAL_COPY(&whenClause, _4); + zephir_array_fetch_string(&_6$$3, &whenClause, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 685); + if (ZEPHIR_IS_STRING(&_6$$3, "when")) { + zephir_array_fetch_string(&_8$$4, &whenClause, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 687); + ZEPHIR_CALL_METHOD(&_7$$4, this_ptr, "getsqlexpression", NULL, 59, &_8$$4, &escapeChar, &bindCounts); + zephir_check_call_status(); + zephir_array_fetch_string(&_10$$4, &whenClause, SL("then"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 689); + ZEPHIR_CALL_METHOD(&_9$$4, this_ptr, "getsqlexpression", NULL, 59, &_10$$4, &escapeChar, &bindCounts); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_11$$4); + ZEPHIR_CONCAT_SVSV(&_11$$4, " WHEN ", &_7$$4, " THEN ", &_9$$4); + zephir_concat_self(&sql, &_11$$4); + } else { + zephir_array_fetch_string(&_13$$5, &whenClause, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 691); + ZEPHIR_CALL_METHOD(&_12$$5, this_ptr, "getsqlexpression", NULL, 59, &_13$$5, &escapeChar, &bindCounts); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_14$$5); + ZEPHIR_CONCAT_SV(&_14$$5, " ELSE ", &_12$$5); + zephir_concat_self(&sql, &_14$$5); } -vv247: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv248; + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_3, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_5, &_3, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_5)) { + break; } -vv248: - { - token->opcode = PHVOLT_T_TRUE; - return 0; + ZEPHIR_CALL_METHOD(&whenClause, &_3, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_fetch_string(&_15$$6, &whenClause, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 685); + if (ZEPHIR_IS_STRING(&_15$$6, "when")) { + zephir_array_fetch_string(&_17$$7, &whenClause, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 687); + ZEPHIR_CALL_METHOD(&_16$$7, this_ptr, "getsqlexpression", NULL, 59, &_17$$7, &escapeChar, &bindCounts); + zephir_check_call_status(); + zephir_array_fetch_string(&_19$$7, &whenClause, SL("then"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 689); + ZEPHIR_CALL_METHOD(&_18$$7, this_ptr, "getsqlexpression", NULL, 59, &_19$$7, &escapeChar, &bindCounts); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_20$$7); + ZEPHIR_CONCAT_SVSV(&_20$$7, " WHEN ", &_16$$7, " THEN ", &_18$$7); + zephir_concat_self(&sql, &_20$$7); + } else { + zephir_array_fetch_string(&_22$$8, &whenClause, SL("expr"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 691); + ZEPHIR_CALL_METHOD(&_21$$8, this_ptr, "getsqlexpression", NULL, 59, &_22$$8, &escapeChar, &bindCounts); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_23$$8); + ZEPHIR_CONCAT_SV(&_23$$8, " ELSE ", &_21$$8); + zephir_concat_self(&sql, &_23$$8); + } + ZEPHIR_CALL_METHOD(NULL, &_3, "next", NULL, 0); + zephir_check_call_status(); } -vv249: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv250; - } -vv250: + } + ZEPHIR_INIT_NVAR(&whenClause); + ZEPHIR_CONCAT_VS(return_value, &sql, " END"); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionCastValue) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval escapeChar; + zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, left, right, _0, _1; + zval expression, bindCounts; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&expression); + ZVAL_UNDEF(&bindCounts); + ZVAL_UNDEF(&left); + ZVAL_UNDEF(&right); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&escapeChar); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ARRAY(expression) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); + ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + if (!bindCounts_param) { + ZEPHIR_INIT_VAR(&bindCounts); + array_init(&bindCounts); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + } + + + zephir_array_fetch_string(&_0, &expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 712); + ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", NULL, 0, &_0, &escapeChar, &bindCounts); + zephir_check_call_status(); + zephir_array_fetch_string(&_1, &expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 718); + ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", NULL, 59, &_1, &escapeChar, &bindCounts); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "CAST(", &left, " AS ", &right, ")"); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionConvertValue) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval escapeChar; + zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, left, right, _0, _1; + zval expression, bindCounts; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&expression); + ZVAL_UNDEF(&bindCounts); + ZVAL_UNDEF(&left); + ZVAL_UNDEF(&right); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&escapeChar); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ARRAY(expression) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); + ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + if (!bindCounts_param) { + ZEPHIR_INIT_VAR(&bindCounts); + array_init(&bindCounts); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + } + + + zephir_array_fetch_string(&_0, &expression, SL("left"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 740); + ZEPHIR_CALL_METHOD(&left, this_ptr, "getsqlexpression", NULL, 0, &_0, &escapeChar, &bindCounts); + zephir_check_call_status(); + zephir_array_fetch_string(&_1, &expression, SL("right"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 746); + ZEPHIR_CALL_METHOD(&right, this_ptr, "getsqlexpression", NULL, 59, &_1, &escapeChar, &bindCounts); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "CONVERT(", &left, " USING ", &right, ")"); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionFrom) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_3 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval escapeChar; + zval *expression, expression_sub, *escapeChar_param = NULL, table, tables, *_0$$3, _1$$3, _5$$3, _2$$4, _4$$5; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&expression_sub); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&tables); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&escapeChar); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(expression) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression, &escapeChar_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + + + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&tables); + array_init(&tables); + zephir_is_iterable(expression, 0, "phalcon/Db/Dialect.zep", 768); + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(expression), _0$$3) { - token->opcode = PHVOLT_T_WITH; - return 0; - } -vv251: - vvch = *++VVCURSOR; -vv252: - switch (vvch) { - case ' ': goto vv251; - case 'n': goto vv288; - default: goto vv81; - } -vv253: - vvch = *++VVCURSOR; - switch (vvch) { - case 'S': - case 's': goto vv289; - default: goto vv54; - } -vv254: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv255; + ZEPHIR_INIT_NVAR(&table); + ZVAL_COPY(&table, _0$$3); + ZEPHIR_CALL_METHOD(&_2$$4, this_ptr, "getsqltable", &_3, 75, &table, &escapeChar); + zephir_check_call_status(); + zephir_array_append(&tables, &_2$$4, PH_SEPARATE, "phalcon/Db/Dialect.zep", 765); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, expression, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1$$3, expression, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&table, expression, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_4$$5, this_ptr, "getsqltable", &_3, 75, &table, &escapeChar); + zephir_check_call_status(); + zephir_array_append(&tables, &_4$$5, PH_SEPARATE, "phalcon/Db/Dialect.zep", 765); + ZEPHIR_CALL_METHOD(NULL, expression, "next", NULL, 0); + zephir_check_call_status(); } -vv255: - { - s->statement_position++; - token->opcode = PHVOLT_T_BLOCK; - return 0; } -vv256: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv257; - } -vv257: - { - s->statement_position++; - token->opcode = PHVOLT_T_BREAK; - return 0; + ZEPHIR_INIT_NVAR(&table); + ZEPHIR_INIT_VAR(&_5$$3); + zephir_fast_join_str(&_5$$3, SL(", "), &tables); + ZEPHIR_CPY_WRT(&tables, &_5$$3); + } else { + ZEPHIR_CPY_WRT(&tables, expression); + } + ZEPHIR_CONCAT_SV(return_value, "FROM ", &tables); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionFunctionCall) +{ + zend_bool _1, _3$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval escapeChar; + zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, __$false, name, customFunction, arguments, _0, _4$$4; + zval expression, bindCounts, _2$$4; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&expression); + ZVAL_UNDEF(&bindCounts); + ZVAL_UNDEF(&_2$$4); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&customFunction); + ZVAL_UNDEF(&arguments); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&escapeChar); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ARRAY(expression) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); + ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + if (!bindCounts_param) { + ZEPHIR_INIT_VAR(&bindCounts); + array_init(&bindCounts); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + } + + + ZEPHIR_OBS_VAR(&name); + zephir_array_fetch_string(&name, &expression, SL("name"), PH_NOISY, "phalcon/Db/Dialect.zep", 789); + ZEPHIR_OBS_VAR(&customFunction); + zephir_read_property(&_0, this_ptr, ZEND_STRL("customFunctions"), PH_NOISY_CC | PH_READONLY); + if (zephir_array_isset_fetch(&customFunction, &_0, &name, 0)) { + ZEPHIR_RETURN_CALL_ZVAL_FUNCTION(&customFunction, NULL, 0, this_ptr, &expression, &escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_OBS_VAR(&arguments); + _1 = zephir_array_isset_string_fetch(&arguments, &expression, SL("arguments"), 0); + if (_1) { + _1 = Z_TYPE_P(&arguments) == IS_ARRAY; + } + if (_1) { + ZEPHIR_INIT_VAR(&_2$$4); + zephir_create_array(&_2$$4, 3, 0); + add_assoc_stringl_ex(&_2$$4, SL("type"), SL("list")); + zephir_array_update_string(&_2$$4, SL("parentheses"), &__$false, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_2$$4, SL("value"), &arguments, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(&arguments, this_ptr, "getsqlexpression", NULL, 0, &_2$$4, &escapeChar, &bindCounts); + zephir_check_call_status(); + _3$$4 = zephir_array_isset_string(&expression, SL("distinct")); + if (_3$$4) { + zephir_array_fetch_string(&_4$$4, &expression, SL("distinct"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 806); + _3$$4 = zephir_is_true(&_4$$4); } -vv258: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv259; - } -vv259: - { - s->statement_position++; - token->opcode = PHVOLT_T_CACHE; - return 0; + if (_3$$4) { + ZEPHIR_CONCAT_VSVS(return_value, &name, "(DISTINCT ", &arguments, ")"); + RETURN_MM(); } -vv260: - vvch = *++VVCURSOR; - switch (vvch) { - case 'N': - case 'n': goto vv290; - default: goto vv54; - } -vv261: - vvch = *++VVCURSOR; - switch (vvch) { - case 'L': - case 'l': goto vv291; - default: goto vv54; - } -vv262: - vvch = *++VVCURSOR; - switch (vvch) { - case 'E': - case 'e': goto vv292; - default: goto vv54; - } -vv263: - vvch = *++VVCURSOR; - switch (vvch) { - case 'O': - case 'o': goto vv293; - default: goto vv54; - } -vv264: - vvch = *++VVCURSOR; - switch (vvch) { - case 'F': - case 'f': goto vv294; - default: goto vv54; - } -vv265: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv266; - } -vv266: + ZEPHIR_CONCAT_VSVS(return_value, &name, "(", &arguments, ")"); + RETURN_MM(); + } + ZEPHIR_CONCAT_VS(return_value, &name, "()"); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionGroupBy) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_3 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval bindCounts; + zval escapeChar; + zval *expression, expression_sub, *escapeChar_param = NULL, *bindCounts_param = NULL, field, fields, *_0$$3, _1$$3, _5$$3, _2$$4, _4$$6; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&expression_sub); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&fields); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_4$$6); + ZVAL_UNDEF(&escapeChar); + ZVAL_UNDEF(&bindCounts); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ZVAL(expression) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &expression, &escapeChar_param, &bindCounts_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + if (!bindCounts_param) { + ZEPHIR_INIT_VAR(&bindCounts); + array_init(&bindCounts); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + } + + + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&fields); + array_init(&fields); + zephir_is_iterable(expression, 0, "phalcon/Db/Dialect.zep", 844); + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(expression), _0$$3) { - s->statement_position++; - token->opcode = PHVOLT_T_EMPTY; - return 0; - } -vv267: - vvch = *++VVCURSOR; - switch (vvch) { - case 'T': - case 't': goto vv296; - default: goto vv54; - } -vv268: - vvch = *++VVCURSOR; - switch (vvch) { - case 'O': - case 'o': goto vv297; - default: goto vv54; - } -vv269: - vvch = *++VVCURSOR; - switch (vvch) { - case 'C': - case 'c': goto vv298; - case 'L': - case 'l': goto vv299; - default: goto vv54; - } -vv270: - vvch = *++VVCURSOR; - switch (vvch) { - case 'R': - case 'r': goto vv300; - default: goto vv54; - } -vv271: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv272; + ZEPHIR_INIT_NVAR(&field); + ZVAL_COPY(&field, _0$$3); + if (UNEXPECTED(Z_TYPE_P(&field) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-GROUP-BY expression", "phalcon/Db/Dialect.zep", 834); + return; + } + ZEPHIR_CALL_METHOD(&_2$$4, this_ptr, "getsqlexpression", &_3, 0, &field, &escapeChar, &bindCounts); + zephir_check_call_status(); + zephir_array_append(&fields, &_2$$4, PH_SEPARATE, "phalcon/Db/Dialect.zep", 841); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, expression, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1$$3, expression, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&field, expression, "current", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&field) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-GROUP-BY expression", "phalcon/Db/Dialect.zep", 834); + return; + } + ZEPHIR_CALL_METHOD(&_4$$6, this_ptr, "getsqlexpression", &_3, 59, &field, &escapeChar, &bindCounts); + zephir_check_call_status(); + zephir_array_append(&fields, &_4$$6, PH_SEPARATE, "phalcon/Db/Dialect.zep", 841); + ZEPHIR_CALL_METHOD(NULL, expression, "next", NULL, 0); + zephir_check_call_status(); } -vv272: - { - token->opcode = PHVOLT_T_ENDIF; - return 0; } -vv273: - vvch = *++VVCURSOR; - switch (vvch) { - case 'C': - case 'c': goto vv302; - default: goto vv54; + ZEPHIR_INIT_NVAR(&field); + ZEPHIR_INIT_VAR(&_5$$3); + zephir_fast_join_str(&_5$$3, SL(", "), &fields); + ZEPHIR_CPY_WRT(&fields, &_5$$3); + } else { + ZEPHIR_CPY_WRT(&fields, expression); + } + ZEPHIR_CONCAT_SV(return_value, "GROUP BY ", &fields); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionHaving) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval escapeChar; + zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, _0; + zval expression, bindCounts; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&expression); + ZVAL_UNDEF(&bindCounts); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&escapeChar); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ARRAY(expression) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); + ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + if (!bindCounts_param) { + ZEPHIR_INIT_VAR(&bindCounts); + array_init(&bindCounts); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + } + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "getsqlexpression", NULL, 0, &expression, &escapeChar, &bindCounts); + zephir_check_call_status(); + ZEPHIR_CONCAT_SV(return_value, "HAVING ", &_0); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionJoins) +{ + zend_bool _2$$3, _9$$3, _13$$11, _19$$11; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_3 = NULL, *_11 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval bindCounts; + zval escapeChar, sql; + zval *expression, expression_sub, *escapeChar_param = NULL, *bindCounts_param = NULL, condition, join, joinCondition, joinTable, joinType, joinConditionsArray, *_0, _1, _10$$3, _12$$3, *_4$$6, _5$$6, _8$$6, _6$$7, _7$$8, _20$$11, _21$$11, *_14$$14, _15$$14, _18$$14, _16$$15, _17$$16; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&expression_sub); + ZVAL_UNDEF(&condition); + ZVAL_UNDEF(&join); + ZVAL_UNDEF(&joinCondition); + ZVAL_UNDEF(&joinTable); + ZVAL_UNDEF(&joinType); + ZVAL_UNDEF(&joinConditionsArray); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_10$$3); + ZVAL_UNDEF(&_12$$3); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&_8$$6); + ZVAL_UNDEF(&_6$$7); + ZVAL_UNDEF(&_7$$8); + ZVAL_UNDEF(&_20$$11); + ZVAL_UNDEF(&_21$$11); + ZVAL_UNDEF(&_15$$14); + ZVAL_UNDEF(&_18$$14); + ZVAL_UNDEF(&_16$$15); + ZVAL_UNDEF(&_17$$16); + ZVAL_UNDEF(&escapeChar); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&bindCounts); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ZVAL(expression) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &expression, &escapeChar_param, &bindCounts_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + if (!bindCounts_param) { + ZEPHIR_INIT_VAR(&bindCounts); + array_init(&bindCounts); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + } + + + ZEPHIR_INIT_VAR(&joinType); + ZVAL_STRING(&joinType, ""); + ZEPHIR_INIT_VAR(&sql); + zephir_is_iterable(expression, 0, "phalcon/Db/Dialect.zep", 918); + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(expression), _0) + { + ZEPHIR_INIT_NVAR(&join); + ZVAL_COPY(&join, _0); + ZEPHIR_OBS_NVAR(&joinConditionsArray); + _2$$3 = zephir_array_isset_string_fetch(&joinConditionsArray, &join, SL("conditions"), 0); + if (_2$$3) { + _2$$3 = !(ZEPHIR_IS_EMPTY(&joinConditionsArray)); } -vv274: - vvch = *++VVCURSOR; - switch (vvch) { - case 'W': - case 'w': goto vv303; - default: goto vv54; + if (_2$$3) { + if (!(zephir_array_isset_long(&joinConditionsArray, 0))) { + ZEPHIR_CALL_METHOD(&joinCondition, this_ptr, "getsqlexpression", &_3, 0, &joinConditionsArray, &escapeChar, &bindCounts); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&joinCondition); + array_init(&joinCondition); + zephir_is_iterable(&joinConditionsArray, 0, "phalcon/Db/Dialect.zep", 903); + if (Z_TYPE_P(&joinConditionsArray) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&joinConditionsArray), _4$$6) + { + ZEPHIR_INIT_NVAR(&condition); + ZVAL_COPY(&condition, _4$$6); + ZEPHIR_CALL_METHOD(&_6$$7, this_ptr, "getsqlexpression", &_3, 59, &condition, &escapeChar, &bindCounts); + zephir_check_call_status(); + zephir_array_append(&joinCondition, &_6$$7, PH_SEPARATE, "phalcon/Db/Dialect.zep", 900); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &joinConditionsArray, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_5$$6, &joinConditionsArray, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_5$$6)) { + break; + } + ZEPHIR_CALL_METHOD(&condition, &joinConditionsArray, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_7$$8, this_ptr, "getsqlexpression", &_3, 59, &condition, &escapeChar, &bindCounts); + zephir_check_call_status(); + zephir_array_append(&joinCondition, &_7$$8, PH_SEPARATE, "phalcon/Db/Dialect.zep", 900); + ZEPHIR_CALL_METHOD(NULL, &joinConditionsArray, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&condition); + ZEPHIR_INIT_NVAR(&_8$$6); + zephir_fast_join_str(&_8$$6, SL(" AND "), &joinCondition); + ZEPHIR_CPY_WRT(&joinCondition, &_8$$6); + } + } else { + ZEPHIR_INIT_NVAR(&joinCondition); + ZVAL_LONG(&joinCondition, 1); } -vv275: - vvch = *++VVCURSOR; - switch (vvch) { - case 'I': - case 'i': goto vv305; - default: goto vv54; + ZEPHIR_OBS_NVAR(&joinType); + _9$$3 = zephir_array_isset_string_fetch(&joinType, &join, SL("type"), 0); + if (_9$$3) { + _9$$3 = zephir_is_true(&joinType); } -vv276: - vvch = *++VVCURSOR; - switch (vvch) { - case 'D': - case 'd': goto vv306; - default: goto vv54; + if (_9$$3) { + zephir_concat_self_str(&joinType, SL(" ")); } -vv277: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv278; + zephir_array_fetch_string(&_10$$3, &join, SL("source"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 913); + ZEPHIR_CALL_METHOD(&joinTable, this_ptr, "getsqltable", &_11, 75, &_10$$3, &escapeChar); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_12$$3); + ZEPHIR_CONCAT_SVSVSV(&_12$$3, " ", &joinType, "JOIN ", &joinTable, " ON ", &joinCondition); + zephir_concat_self(&sql, &_12$$3); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, expression, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, expression, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; } -vv278: - { - token->opcode = PHVOLT_T_FALSE; - return 0; + ZEPHIR_CALL_METHOD(&join, expression, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&joinConditionsArray); + _13$$11 = zephir_array_isset_string_fetch(&joinConditionsArray, &join, SL("conditions"), 0); + if (_13$$11) { + _13$$11 = !(ZEPHIR_IS_EMPTY(&joinConditionsArray)); + } + if (_13$$11) { + if (!(zephir_array_isset_long(&joinConditionsArray, 0))) { + ZEPHIR_CALL_METHOD(&joinCondition, this_ptr, "getsqlexpression", &_3, 59, &joinConditionsArray, &escapeChar, &bindCounts); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&joinCondition); + array_init(&joinCondition); + zephir_is_iterable(&joinConditionsArray, 0, "phalcon/Db/Dialect.zep", 903); + if (Z_TYPE_P(&joinConditionsArray) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&joinConditionsArray), _14$$14) + { + ZEPHIR_INIT_NVAR(&condition); + ZVAL_COPY(&condition, _14$$14); + ZEPHIR_CALL_METHOD(&_16$$15, this_ptr, "getsqlexpression", &_3, 59, &condition, &escapeChar, &bindCounts); + zephir_check_call_status(); + zephir_array_append(&joinCondition, &_16$$15, PH_SEPARATE, "phalcon/Db/Dialect.zep", 900); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &joinConditionsArray, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_15$$14, &joinConditionsArray, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_15$$14)) { + break; + } + ZEPHIR_CALL_METHOD(&condition, &joinConditionsArray, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_17$$16, this_ptr, "getsqlexpression", &_3, 59, &condition, &escapeChar, &bindCounts); + zephir_check_call_status(); + zephir_array_append(&joinCondition, &_17$$16, PH_SEPARATE, "phalcon/Db/Dialect.zep", 900); + ZEPHIR_CALL_METHOD(NULL, &joinConditionsArray, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&condition); + ZEPHIR_INIT_NVAR(&_18$$14); + zephir_fast_join_str(&_18$$14, SL(" AND "), &joinCondition); + ZEPHIR_CPY_WRT(&joinCondition, &_18$$14); + } + } else { + ZEPHIR_INIT_NVAR(&joinCondition); + ZVAL_LONG(&joinCondition, 1); + } + ZEPHIR_OBS_NVAR(&joinType); + _19$$11 = zephir_array_isset_string_fetch(&joinType, &join, SL("type"), 0); + if (_19$$11) { + _19$$11 = zephir_is_true(&joinType); + } + if (_19$$11) { + zephir_concat_self_str(&joinType, SL(" ")); + } + zephir_array_fetch_string(&_20$$11, &join, SL("source"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 913); + ZEPHIR_CALL_METHOD(&joinTable, this_ptr, "getsqltable", &_11, 75, &_20$$11, &escapeChar); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_21$$11); + ZEPHIR_CONCAT_SVSVSV(&_21$$11, " ", &joinType, "JOIN ", &joinTable, " ON ", &joinCondition); + zephir_concat_self(&sql, &_21$$11); + ZEPHIR_CALL_METHOD(NULL, expression, "next", NULL, 0); + zephir_check_call_status(); } -vv279: - vvch = *++VVCURSOR; - switch (vvch) { - case 'D': - case 'd': goto vv307; - default: goto vv54; - } -vv280: - vvch = *++VVCURSOR; - switch (vvch) { - case 'T': - case 't': goto vv308; - default: goto vv81; - } -vv281: - vvch = *++VVCURSOR; - switch (vvch) { - case 'B': - case 'b': goto vv310; - default: goto vv54; - } -vv282: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv283; - } -vv283: - { - s->statement_position++; - token->opcode = PHVOLT_T_MACRO; - return 0; + } + ZEPHIR_INIT_NVAR(&join); + RETURN_CTOR(&sql); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionLimit) +{ + zend_bool _2$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval bindCounts, _4; + zval escapeChar; + zval *expression, expression_sub, *escapeChar_param = NULL, *bindCounts_param = NULL, sql, value, limit, offset, _0$$4, _1$$5, _3$$7; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&expression_sub); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&limit); + ZVAL_UNDEF(&offset); + ZVAL_UNDEF(&_0$$4); + ZVAL_UNDEF(&_1$$5); + ZVAL_UNDEF(&_3$$7); + ZVAL_UNDEF(&escapeChar); + ZVAL_UNDEF(&bindCounts); + ZVAL_UNDEF(&_4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ZVAL(expression) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &expression, &escapeChar_param, &bindCounts_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + if (!bindCounts_param) { + ZEPHIR_INIT_VAR(&bindCounts); + array_init(&bindCounts); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + } + + + ZEPHIR_INIT_VAR(&sql); + ZVAL_STRING(&sql, ""); + ZEPHIR_INIT_VAR(&offset); + ZVAL_NULL(&offset); + ZEPHIR_OBS_VAR(&value); + zephir_array_fetch_string(&value, expression, SL("value"), PH_NOISY, "phalcon/Db/Dialect.zep", 934); + if (zephir_array_isset_string(expression, SL("sql"))) { + ZEPHIR_OBS_NVAR(&sql); + zephir_array_fetch_string(&sql, expression, SL("sql"), PH_NOISY, "phalcon/Db/Dialect.zep", 937); + } + if (Z_TYPE_P(&value) == IS_ARRAY) { + ZEPHIR_OBS_VAR(&_0$$4); + zephir_array_fetch_string(&_0$$4, &value, SL("number"), PH_NOISY, "phalcon/Db/Dialect.zep", 941); + if (Z_TYPE_P(&_0$$4) == IS_ARRAY) { + zephir_array_fetch_string(&_1$$5, &value, SL("number"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 943); + ZEPHIR_CALL_METHOD(&limit, this_ptr, "getsqlexpression", NULL, 0, &_1$$5, &escapeChar, &bindCounts); + zephir_check_call_status(); + } else { + ZEPHIR_OBS_NVAR(&limit); + zephir_array_fetch_string(&limit, &value, SL("number"), PH_NOISY, "phalcon/Db/Dialect.zep", 948); } -vv284: - vvch = *++VVCURSOR; - switch (vvch) { - case 'I': - case 'i': goto vv311; - default: goto vv54; - } -vv285: - vvch = *++VVCURSOR; - switch (vvch) { - case 'N': - case 'n': goto vv312; - default: goto vv54; - } -vv286: - vvch = *++VVCURSOR; - switch (vvch) { - case 'R': - case 'r': goto vv314; - default: goto vv54; - } -vv287: - vvch = *++VVCURSOR; - switch (vvch) { - case 'H': - case 'h': goto vv316; - default: goto vv54; - } -vv288: - vvch = *++VVCURSOR; - switch (vvch) { - case 'o': goto vv318; - default: goto vv81; - } -vv289: - vvch = *++VVCURSOR; - switch (vvch) { - case 'C': - case 'c': goto vv319; - default: goto vv54; - } -vv290: - vvch = *++VVCURSOR; - switch (vvch) { - case 'U': - case 'u': goto vv320; - default: goto vv54; - } -vv291: - vvch = *++VVCURSOR; - switch (vvch) { - case 'T': - case 't': goto vv321; - default: goto vv54; - } -vv292: - vvch = *++VVCURSOR; - switch (vvch) { - case 'D': - case 'd': goto vv323; - default: goto vv54; - } -vv293: - vvch = *++VVCURSOR; - switch (vvch) { - case 'R': - case 'r': goto vv325; - default: goto vv54; - } -vv294: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv295; - } -vv295: - { - token->opcode = PHVOLT_T_ELSEIF; - return 0; + ZEPHIR_OBS_NVAR(&offset); + _2$$4 = zephir_array_isset_string_fetch(&offset, &value, SL("offset"), 0); + if (_2$$4) { + _2$$4 = Z_TYPE_P(&offset) == IS_ARRAY; } -vv296: - vvch = *++VVCURSOR; - switch (vvch) { - case 'O': - case 'o': goto vv327; - default: goto vv54; - } -vv297: - vvch = *++VVCURSOR; - switch (vvch) { - case 'C': - case 'c': goto vv328; - default: goto vv54; - } -vv298: - vvch = *++VVCURSOR; - switch (vvch) { - case 'H': - case 'h': goto vv329; - default: goto vv54; - } -vv299: - vvch = *++VVCURSOR; - switch (vvch) { - case 'L': - case 'l': goto vv330; - default: goto vv54; - } -vv300: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv301; - } -vv301: - { - token->opcode = PHVOLT_T_ENDFOR; - return 0; + if (_2$$4) { + ZEPHIR_CALL_METHOD(&_3$$7, this_ptr, "getsqlexpression", NULL, 59, &offset, &escapeChar, &bindCounts); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&offset, &_3$$7); } -vv302: - vvch = *++VVCURSOR; - switch (vvch) { - case 'R': - case 'r': goto vv332; - default: goto vv54; - } -vv303: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv304; - } -vv304: + } else { + ZEPHIR_CPY_WRT(&limit, &value); + } + ZEPHIR_INIT_VAR(&_4); + zephir_create_array(&_4, 2, 0); + zephir_array_fast_append(&_4, &limit); + zephir_array_fast_append(&_4, &offset); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "limit", NULL, 0, &sql, &_4); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionList) +{ + zend_bool _0, _1, _7$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_5 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval escapeChar; + zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, item, values, separator, *_2$$4, _3$$4, _8$$4, _9$$4, _4$$5, _6$$6; + zval expression, bindCounts, items; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&expression); + ZVAL_UNDEF(&bindCounts); + ZVAL_UNDEF(&items); + ZVAL_UNDEF(&item); + ZVAL_UNDEF(&values); + ZVAL_UNDEF(&separator); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_8$$4); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_6$$6); + ZVAL_UNDEF(&escapeChar); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ARRAY(expression) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); + ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + if (!bindCounts_param) { + ZEPHIR_INIT_VAR(&bindCounts); + array_init(&bindCounts); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + } + + + ZEPHIR_INIT_VAR(&items); + array_init(&items); + ZEPHIR_INIT_VAR(&separator); + ZVAL_STRING(&separator, ", "); + if (zephir_array_isset_string(&expression, SL("separator"))) { + ZEPHIR_OBS_NVAR(&separator); + zephir_array_fetch_string(&separator, &expression, SL("separator"), PH_NOISY, "phalcon/Db/Dialect.zep", 987); + } + ZEPHIR_OBS_VAR(&values); + _0 = zephir_array_isset_long_fetch(&values, &expression, 0, 0); + if (!(_0)) { + ZEPHIR_OBS_NVAR(&values); + _0 = zephir_array_isset_string_fetch(&values, &expression, SL("value"), 0); + } + _1 = _0; + if (_1) { + _1 = Z_TYPE_P(&values) == IS_ARRAY; + } + if (_1) { + zephir_is_iterable(&values, 0, "phalcon/Db/Dialect.zep", 996); + if (Z_TYPE_P(&values) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&values), _2$$4) { - s->statement_position++; - token->opcode = PHVOLT_T_ENDRAW; - return 0; - } -vv305: - vvch = *++VVCURSOR; - switch (vvch) { - case 'T': - case 't': goto vv333; - default: goto vv54; - } -vv306: - vvch = *++VVCURSOR; - switch (vvch) { - case 'S': - case 's': goto vv334; - default: goto vv54; - } -vv307: - vvch = *++VVCURSOR; - switch (vvch) { - case 'E': - case 'e': goto vv336; - default: goto vv54; + ZEPHIR_INIT_NVAR(&item); + ZVAL_COPY(&item, _2$$4); + ZEPHIR_CALL_METHOD(&_4$$5, this_ptr, "getsqlexpression", &_5, 0, &item, &escapeChar, &bindCounts); + zephir_check_call_status(); + zephir_array_append(&items, &_4$$5, PH_SEPARATE, "phalcon/Db/Dialect.zep", 993); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &values, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3$$4, &values, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3$$4)) { + break; + } + ZEPHIR_CALL_METHOD(&item, &values, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_6$$6, this_ptr, "getsqlexpression", &_5, 59, &item, &escapeChar, &bindCounts); + zephir_check_call_status(); + zephir_array_append(&items, &_6$$6, PH_SEPARATE, "phalcon/Db/Dialect.zep", 993); + ZEPHIR_CALL_METHOD(NULL, &values, "next", NULL, 0); + zephir_check_call_status(); } -vv308: - ++VVCURSOR; - { - s->statement_position++; - token->opcode = PHVOLT_T_NOTEQUALS; - return 0; } -vv310: - vvch = *++VVCURSOR; - switch (vvch) { - case 'L': - case 'l': goto vv338; - default: goto vv54; - } -vv311: - vvch = *++VVCURSOR; - switch (vvch) { - case 'C': - case 'c': goto vv339; - default: goto vv54; - } -vv312: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv313; - } -vv313: + ZEPHIR_INIT_NVAR(&item); + _7$$4 = zephir_array_isset_string(&expression, SL("parentheses")); + if (_7$$4) { + zephir_array_fetch_string(&_8$$4, &expression, SL("parentheses"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 996); + _7$$4 = ZEPHIR_IS_FALSE_IDENTICAL(&_8$$4); + } + if (_7$$4) { + zephir_fast_join(return_value, &separator, &items); + RETURN_MM(); + } + ZEPHIR_INIT_VAR(&_9$$4); + zephir_fast_join(&_9$$4, &separator, &items); + ZEPHIR_CONCAT_SVS(return_value, "(", &_9$$4, ")"); + RETURN_MM(); + } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-list expression", "phalcon/Db/Dialect.zep", 1003); + return; +} + +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionObject) +{ + zend_bool _0, _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval escapeChar; + zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, domain, objectExpression; + zval expression, bindCounts; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&expression); + ZVAL_UNDEF(&bindCounts); + ZVAL_UNDEF(&domain); + ZVAL_UNDEF(&objectExpression); + ZVAL_UNDEF(&escapeChar); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ARRAY(expression) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); + ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + if (!bindCounts_param) { + ZEPHIR_INIT_VAR(&bindCounts); + array_init(&bindCounts); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + } + + + ZEPHIR_INIT_VAR(&domain); + ZVAL_NULL(&domain); + ZEPHIR_INIT_VAR(&objectExpression); + zephir_create_array(&objectExpression, 1, 0); + add_assoc_stringl_ex(&objectExpression, SL("type"), SL("all")); + ZEPHIR_OBS_NVAR(&domain); + _0 = zephir_array_isset_string_fetch(&domain, &expression, SL("column"), 0); + if (!(_0)) { + ZEPHIR_OBS_NVAR(&domain); + _0 = zephir_array_isset_string_fetch(&domain, &expression, SL("domain"), 0); + } + _1 = _0; + if (_1) { + _1 = !ZEPHIR_IS_STRING(&domain, ""); + } + if (_1) { + zephir_array_update_string(&objectExpression, SL("domain"), &domain, PH_COPY | PH_SEPARATE); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpression", NULL, 0, &objectExpression, &escapeChar, &bindCounts); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionOrderBy) +{ + zend_bool _4$$4, _7$$7; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_3 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval bindCounts; + zval escapeChar; + zval *expression, expression_sub, *escapeChar_param = NULL, *bindCounts_param = NULL, field, fields, type, fieldSql, *_0$$3, _1$$3, _9$$3, _2$$4, _5$$6, _6$$7, _8$$9; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&expression_sub); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&fields); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&fieldSql); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_9$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&_6$$7); + ZVAL_UNDEF(&_8$$9); + ZVAL_UNDEF(&escapeChar); + ZVAL_UNDEF(&bindCounts); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ZVAL(expression) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &expression, &escapeChar_param, &bindCounts_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + if (!bindCounts_param) { + ZEPHIR_INIT_VAR(&bindCounts); + array_init(&bindCounts); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + } + + + ZEPHIR_INIT_VAR(&fieldSql); + ZVAL_NULL(&fieldSql); + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&fields); + array_init(&fields); + zephir_is_iterable(expression, 0, "phalcon/Db/Dialect.zep", 1068); + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(expression), _0$$3) { - token->opcode = PHVOLT_T_RETURN; - return 0; + ZEPHIR_INIT_NVAR(&field); + ZVAL_COPY(&field, _0$$3); + if (UNEXPECTED(Z_TYPE_P(&field) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-ORDER-BY expression", "phalcon/Db/Dialect.zep", 1049); + return; + } + zephir_array_fetch_long(&_2$$4, &field, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 1053); + ZEPHIR_CALL_METHOD(&fieldSql, this_ptr, "getsqlexpression", &_3, 0, &_2$$4, &escapeChar, &bindCounts); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&type); + _4$$4 = zephir_array_isset_long_fetch(&type, &field, 1, 0); + if (_4$$4) { + _4$$4 = !ZEPHIR_IS_STRING(&type, ""); + } + if (_4$$4) { + ZEPHIR_INIT_NVAR(&_5$$6); + ZEPHIR_CONCAT_SV(&_5$$6, " ", &type); + zephir_concat_self(&fieldSql, &_5$$6); + } + zephir_array_append(&fields, &fieldSql, PH_SEPARATE, "phalcon/Db/Dialect.zep", 1065); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, expression, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1$$3, expression, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&field, expression, "current", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&field) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-ORDER-BY expression", "phalcon/Db/Dialect.zep", 1049); + return; + } + zephir_array_fetch_long(&_6$$7, &field, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 1053); + ZEPHIR_CALL_METHOD(&fieldSql, this_ptr, "getsqlexpression", &_3, 59, &_6$$7, &escapeChar, &bindCounts); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&type); + _7$$7 = zephir_array_isset_long_fetch(&type, &field, 1, 0); + if (_7$$7) { + _7$$7 = !ZEPHIR_IS_STRING(&type, ""); + } + if (_7$$7) { + ZEPHIR_INIT_NVAR(&_8$$9); + ZEPHIR_CONCAT_SV(&_8$$9, " ", &type); + zephir_concat_self(&fieldSql, &_8$$9); + } + zephir_array_append(&fields, &fieldSql, PH_SEPARATE, "phalcon/Db/Dialect.zep", 1065); + ZEPHIR_CALL_METHOD(NULL, expression, "next", NULL, 0); + zephir_check_call_status(); + } } -vv314: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv315; + ZEPHIR_INIT_NVAR(&field); + ZEPHIR_INIT_VAR(&_9$$3); + zephir_fast_join_str(&_9$$3, SL(", "), &fields); + ZEPHIR_CPY_WRT(&fields, &_9$$3); + } else { + ZEPHIR_CPY_WRT(&fields, expression); + } + ZEPHIR_CONCAT_SV(return_value, "ORDER BY ", &fields); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionQualified) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval escapeChar; + zval *expression_param = NULL, *escapeChar_param = NULL, column, domain; + zval expression; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&expression); + ZVAL_UNDEF(&column); + ZVAL_UNDEF(&domain); + ZVAL_UNDEF(&escapeChar); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ARRAY(expression) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &expression_param, &escapeChar_param); + ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + + + ZEPHIR_OBS_VAR(&column); + zephir_array_fetch_string(&column, &expression, SL("name"), PH_NOISY, "phalcon/Db/Dialect.zep", 1083); + ZEPHIR_OBS_VAR(&domain); + if (!(zephir_array_isset_string_fetch(&domain, &expression, SL("domain"), 0))) { + ZEPHIR_INIT_NVAR(&domain); + ZVAL_NULL(&domain); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "preparequalified", NULL, 0, &column, &domain, &escapeChar); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionScalar) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval escapeChar; + zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, value, _0$$3; + zval expression, bindCounts; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&expression); + ZVAL_UNDEF(&bindCounts); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&escapeChar); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ARRAY(expression) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); + ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + if (!bindCounts_param) { + ZEPHIR_INIT_VAR(&bindCounts); + array_init(&bindCounts); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + } + + + if (zephir_array_isset_string(&expression, SL("column"))) { + zephir_array_fetch_string(&_0$$3, &expression, SL("column"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 1107); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlcolumn", NULL, 53, &_0$$3); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_OBS_VAR(&value); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&value, &expression, SL("value"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL expression", "phalcon/Db/Dialect.zep", 1111); + return; + } + if (Z_TYPE_P(&value) == IS_ARRAY) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsqlexpression", NULL, 0, &value, &escapeChar, &bindCounts); + zephir_check_call_status(); + RETURN_MM(); + } + RETURN_CCTOR(&value); +} + +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionUnaryOperations) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval escapeChar; + zval *expression_param = NULL, *escapeChar_param = NULL, *bindCounts_param = NULL, left, right, _0$$3, _1$$3, _2$$4, _3$$4; + zval expression, bindCounts; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&expression); + ZVAL_UNDEF(&bindCounts); + ZVAL_UNDEF(&left); + ZVAL_UNDEF(&right); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&escapeChar); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ARRAY(expression) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &expression_param, &escapeChar_param, &bindCounts_param); + ZEPHIR_OBS_COPY_OR_DUP(&expression, expression_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + if (!bindCounts_param) { + ZEPHIR_INIT_VAR(&bindCounts); + array_init(&bindCounts); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + } + + + ZEPHIR_OBS_VAR(&left); + if (zephir_array_isset_string_fetch(&left, &expression, SL("left"), 0)) { + ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "getsqlexpression", NULL, 0, &left, &escapeChar, &bindCounts); + zephir_check_call_status(); + zephir_array_fetch_string(&_1$$3, &expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 1138); + ZEPHIR_CONCAT_VSV(return_value, &_0$$3, " ", &_1$$3); + RETURN_MM(); + } + ZEPHIR_OBS_VAR(&right); + if (zephir_array_isset_string_fetch(&right, &expression, SL("right"), 0)) { + zephir_array_fetch_string(&_2$$4, &expression, SL("op"), PH_NOISY | PH_READONLY, "phalcon/Db/Dialect.zep", 1145); + ZEPHIR_CALL_METHOD(&_3$$4, this_ptr, "getsqlexpression", NULL, 59, &right, &escapeChar, &bindCounts); + zephir_check_call_status(); + ZEPHIR_CONCAT_VSV(return_value, &_2$$4, " ", &_3$$4); + RETURN_MM(); + } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid SQL-unary expression", "phalcon/Db/Dialect.zep", 1148); + return; +} + +static PHP_METHOD(Phalcon_Db_Dialect, getSqlExpressionWhere) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval bindCounts; + zval escapeChar; + zval *expression, expression_sub, *escapeChar_param = NULL, *bindCounts_param = NULL, whereSql; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&expression_sub); + ZVAL_UNDEF(&whereSql); + ZVAL_UNDEF(&escapeChar); + ZVAL_UNDEF(&bindCounts); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_ZVAL(expression) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(escapeChar) + Z_PARAM_ARRAY(bindCounts) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &expression, &escapeChar_param, &bindCounts_param); + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + if (!bindCounts_param) { + ZEPHIR_INIT_VAR(&bindCounts); + array_init(&bindCounts); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindCounts, bindCounts_param); + } + + + if (Z_TYPE_P(expression) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&whereSql, this_ptr, "getsqlexpression", NULL, 0, expression, &escapeChar, &bindCounts); + zephir_check_call_status(); + } else { + ZEPHIR_CPY_WRT(&whereSql, expression); + } + ZEPHIR_CONCAT_SV(return_value, "WHERE ", &whereSql); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Dialect, prepareColumnAlias) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *qualified_param = NULL, *alias_param = NULL, *escapeChar_param = NULL, _0$$3; + zval qualified, alias, escapeChar; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&qualified); + ZVAL_UNDEF(&alias); + ZVAL_UNDEF(&escapeChar); + ZVAL_UNDEF(&_0$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(qualified) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(alias) + Z_PARAM_STR_OR_NULL(escapeChar) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &qualified_param, &alias_param, &escapeChar_param); + if (UNEXPECTED(Z_TYPE_P(qualified_param) != IS_STRING && Z_TYPE_P(qualified_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'qualified' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(qualified_param) == IS_STRING)) { + zephir_get_strval(&qualified, qualified_param); + } else { + ZEPHIR_INIT_VAR(&qualified); + } + if (!alias_param) { + ZEPHIR_INIT_VAR(&alias); + } else { + zephir_get_strval(&alias, alias_param); + } + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + + + if (!ZEPHIR_IS_STRING(&alias, "")) { + ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "escape", NULL, 66, &alias, &escapeChar); + zephir_check_call_status(); + ZEPHIR_CONCAT_VSV(return_value, &qualified, " AS ", &_0$$3); + RETURN_MM(); + } + RETURN_CTOR(&qualified); +} + +static PHP_METHOD(Phalcon_Db_Dialect, prepareTable) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *table_param = NULL, *schema_param = NULL, *alias_param = NULL, *escapeChar_param = NULL, _0, _1$$3, _2$$3, _3$$4, _4$$4; + zval table, schema, alias, escapeChar; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&alias); + ZVAL_UNDEF(&escapeChar); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 4) + Z_PARAM_STR(table) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schema) + Z_PARAM_STR_OR_NULL(alias) + Z_PARAM_STR_OR_NULL(escapeChar) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 3, &table_param, &schema_param, &alias_param, &escapeChar_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); + } else { + ZEPHIR_INIT_VAR(&table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); + } else { + zephir_get_strval(&schema, schema_param); + } + if (!alias_param) { + ZEPHIR_INIT_VAR(&alias); + } else { + zephir_get_strval(&alias, alias_param); + } + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "escape", NULL, 66, &table, &escapeChar); + zephir_check_call_status(); + zephir_get_strval(&table, &_0); + if (!ZEPHIR_IS_STRING(&schema, "")) { + ZEPHIR_CALL_METHOD(&_1$$3, this_ptr, "escapeschema", NULL, 76, &schema, &escapeChar); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2$$3); + ZEPHIR_CONCAT_VSV(&_2$$3, &_1$$3, ".", &table); + zephir_get_strval(&table, &_2$$3); + } + if (!ZEPHIR_IS_STRING(&alias, "")) { + ZEPHIR_CALL_METHOD(&_3$$4, this_ptr, "escape", NULL, 66, &alias, &escapeChar); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_4$$4); + ZEPHIR_CONCAT_VSV(&_4$$4, &table, " AS ", &_3$$4); + zephir_get_strval(&table, &_4$$4); + } + RETURN_CTOR(&table); +} + +static PHP_METHOD(Phalcon_Db_Dialect, prepareQualified) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *column_param = NULL, *domain_param = NULL, *escapeChar_param = NULL; + zval column, domain, escapeChar, _0$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&column); + ZVAL_UNDEF(&domain); + ZVAL_UNDEF(&escapeChar); + ZVAL_UNDEF(&_0$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(column) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(domain) + Z_PARAM_STR_OR_NULL(escapeChar) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &column_param, &domain_param, &escapeChar_param); + if (UNEXPECTED(Z_TYPE_P(column_param) != IS_STRING && Z_TYPE_P(column_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'column' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(column_param) == IS_STRING)) { + zephir_get_strval(&column, column_param); + } else { + ZEPHIR_INIT_VAR(&column); + } + if (!domain_param) { + ZEPHIR_INIT_VAR(&domain); + } else { + zephir_get_strval(&domain, domain_param); + } + if (!escapeChar_param) { + ZEPHIR_INIT_VAR(&escapeChar); + } else { + zephir_get_strval(&escapeChar, escapeChar_param); + } + + + if (!ZEPHIR_IS_STRING(&domain, "")) { + ZEPHIR_INIT_VAR(&_0$$3); + ZEPHIR_CONCAT_VSV(&_0$$3, &domain, ".", &column); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "escape", NULL, 66, &_0$$3, &escapeChar); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "escape", NULL, 66, &column, &escapeChar); + zephir_check_call_status(); + RETURN_MM(); +} + +zend_object *zephir_init_properties_Phalcon_Db_Dialect(zend_class_entry *class_type) +{ + zval _0, _1$$3; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("customFunctions"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("customFunctions"), &_1$$3); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_DialectInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, DialectInterface, phalcon, db_dialectinterface, phalcon_db_dialectinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addColumn); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addForeignKey); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addIndex); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, addPrimaryKey); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, createSavepoint); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, createTable); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, createView); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeColumns); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeIndexes); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, describeReferences); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropColumn); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropForeignKey); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropIndex); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropPrimaryKey); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropTable); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, dropView); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, forUpdate); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, getColumnDefinition); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, getColumnList); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, getCustomFunctions); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, getSqlExpression); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, limit); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, listTables); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, modifyColumn); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, registerCustomFunction); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, releaseSavepoint); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, rollbackSavepoint); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, select); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, sharedLock); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, supportsReleaseSavepoints); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, supportsSavepoints); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, tableExists); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, tableOptions); +ZEPHIR_DOC_METHOD(Phalcon_Db_DialectInterface, viewExists); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_Enum) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Enum, phalcon, db_enum, NULL, 0); + + zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_ASSOC"), 2); + + zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_BOTH"), 4); + + zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_BOUND"), 6); + + zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_CLASS"), 8); + + zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_CLASSTYPE"), 262144); + + zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_COLUMN"), 7); + + zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_FUNC"), 10); + + zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_GROUP"), 65536); + + zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_INTO"), 9); + + zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_KEY_PAIR"), 12); + + zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_LAZY"), 1); + + zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_NAMED"), 11); + + zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_NUM"), 3); + + zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_OBJ"), 5); + + zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_PROPS_LATE"), 1048576); + + zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_SERIALIZE"), 524288); + + zephir_declare_class_constant_long(phalcon_db_enum_ce, SL("FETCH_UNIQUE"), 196608); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db, Exception, phalcon, db_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_Index) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Index, phalcon, db_index, phalcon_db_index_method_entry, 0); + + zend_declare_property_null(phalcon_db_index_ce, SL("columns"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_index_ce, SL("name"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_index_ce, SL("type"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_db_index_ce, 1, phalcon_db_indexinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Db_Index, getColumns) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "columns"); +} + +static PHP_METHOD(Phalcon_Db_Index, getName) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "name"); +} + +static PHP_METHOD(Phalcon_Db_Index, getType) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "type"); +} + +static PHP_METHOD(Phalcon_Db_Index, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval columns; + zval *name_param = NULL, *columns_param = NULL, *type_param = NULL; + zval name, type; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&columns); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(name) + Z_PARAM_ARRAY(columns) + Z_PARAM_OPTIONAL + Z_PARAM_STR(type) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &name_param, &columns_param, &type_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + ZEPHIR_OBS_COPY_OR_DUP(&columns, columns_param); + if (!type_param) { + ZEPHIR_INIT_VAR(&type); + ZVAL_STRING(&type, ""); + } else { + zephir_get_strval(&type, type_param); + } + + + zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); + zephir_update_property_zval(this_ptr, ZEND_STRL("columns"), &columns); + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &type); + ZEPHIR_MM_RESTORE(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_IndexInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, IndexInterface, phalcon, db_indexinterface, phalcon_db_indexinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getColumns); +ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getName); +ZEPHIR_DOC_METHOD(Phalcon_Db_IndexInterface, getType); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_Profiler) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Profiler, phalcon, db_profiler, phalcon_db_profiler_method_entry, 0); + + zend_declare_property_null(phalcon_db_profiler_ce, SL("activeProfile"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_profiler_ce, SL("allProfiles"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_db_profiler_ce, SL("totalSeconds"), 0, ZEND_ACC_PROTECTED); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Db_Profiler, getLastProfile) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "activeProfile"); +} + +static PHP_METHOD(Phalcon_Db_Profiler, getNumberTotalStatements) +{ + zval _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("allProfiles"), PH_NOISY_CC | PH_READONLY); + RETURN_LONG(zephir_fast_count_int(&_0)); +} + +static PHP_METHOD(Phalcon_Db_Profiler, getTotalElapsedSeconds) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "totalSeconds"); +} + +static PHP_METHOD(Phalcon_Db_Profiler, getProfiles) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "allProfiles"); +} + +static PHP_METHOD(Phalcon_Db_Profiler, reset) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("allProfiles"), &_0); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Db_Profiler, startProfile) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *sqlStatement_param = NULL, *sqlVariables = NULL, sqlVariables_sub, *sqlBindTypes = NULL, sqlBindTypes_sub, __$true, __$null, activeProfile, _0; + zval sqlStatement; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&sqlStatement); + ZVAL_UNDEF(&sqlVariables_sub); + ZVAL_UNDEF(&sqlBindTypes_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&activeProfile); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(sqlStatement) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(sqlVariables) + Z_PARAM_ZVAL_OR_NULL(sqlBindTypes) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &sqlStatement_param, &sqlVariables, &sqlBindTypes); + zephir_get_strval(&sqlStatement, sqlStatement_param); + if (!sqlVariables) { + sqlVariables = &sqlVariables_sub; + sqlVariables = &__$null; + } + if (!sqlBindTypes) { + sqlBindTypes = &sqlBindTypes_sub; + sqlBindTypes = &__$null; + } + + + ZEPHIR_INIT_VAR(&activeProfile); + object_init_ex(&activeProfile, phalcon_db_profiler_item_ce); + if (zephir_has_constructor(&activeProfile)) { + ZEPHIR_CALL_METHOD(NULL, &activeProfile, "__construct", NULL, 0); + zephir_check_call_status(); + } + + ZEPHIR_CALL_METHOD(NULL, &activeProfile, "setsqlstatement", NULL, 217, &sqlStatement); + zephir_check_call_status(); + if (Z_TYPE_P(sqlVariables) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(NULL, &activeProfile, "setsqlvariables", NULL, 218, sqlVariables); + zephir_check_call_status(); + } + if (Z_TYPE_P(sqlBindTypes) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(NULL, &activeProfile, "setsqlbindtypes", NULL, 219, sqlBindTypes); + zephir_check_call_status(); + } + ZEPHIR_CALL_FUNCTION(&_0, "hrtime", NULL, 202, &__$true); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &activeProfile, "setinitialtime", NULL, 220, &_0); + zephir_check_call_status(); + if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("beforestartprofile")) == SUCCESS)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "beforestartprofile", NULL, 0, &activeProfile); + zephir_check_call_status(); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("activeProfile"), &activeProfile); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Db_Profiler, stopProfile) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval __$true, activeProfile, finalTime, initialTime, _0, _1, _2; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&activeProfile); + ZVAL_UNDEF(&finalTime); + ZVAL_UNDEF(&initialTime); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_CALL_FUNCTION(&finalTime, "hrtime", NULL, 202, &__$true); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("activeProfile"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&activeProfile, &_0); + ZEPHIR_CALL_METHOD(NULL, &activeProfile, "setfinaltime", NULL, 0, &finalTime); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&initialTime, &activeProfile, "getinitialtime", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("totalSeconds"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_1); + zephir_sub_function(&_1, &finalTime, &initialTime); + ZEPHIR_INIT_VAR(&_2); + zephir_add_function(&_2, &_0, &_1); + zephir_update_property_zval(this_ptr, ZEND_STRL("totalSeconds"), &_2); + zephir_update_property_array_append(this_ptr, SL("allProfiles"), &activeProfile); + if ((zephir_method_exists_ex(this_ptr, ZEND_STRL("afterendprofile")) == SUCCESS)) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "afterendprofile", NULL, 0, &activeProfile); + zephir_check_call_status(); + } + RETURN_THIS(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_RawValue) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Db, RawValue, phalcon, db_rawvalue, phalcon_db_rawvalue_method_entry, 0); + + zend_declare_property_null(phalcon_db_rawvalue_ce, SL("value"), ZEND_ACC_PROTECTED); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Db_RawValue, getValue) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "value"); +} + +static PHP_METHOD(Phalcon_Db_RawValue, __toString) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "value"); +} + +static PHP_METHOD(Phalcon_Db_RawValue, __construct) +{ + zval _2$$5; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *value, value_sub, _0$$3, _1$$4; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &value); + + + if (ZEPHIR_IS_STRING_IDENTICAL(value, "")) { + ZEPHIR_INIT_VAR(&_0$$3); + ZEPHIR_INIT_NVAR(&_0$$3); + ZVAL_STRING(&_0$$3, "''"); + zephir_update_property_zval(this_ptr, ZEND_STRL("value"), &_0$$3); + } else if (Z_TYPE_P(value) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$4); + ZEPHIR_INIT_NVAR(&_1$$4); + ZVAL_STRING(&_1$$4, "NULL"); + zephir_update_property_zval(this_ptr, ZEND_STRL("value"), &_1$$4); + } else { + zephir_cast_to_string(&_2$$5, value); + zephir_update_property_zval(this_ptr, ZEND_STRL("value"), &_2$$5); + } + ZEPHIR_MM_RESTORE(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_Reference) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Db, Reference, phalcon, db_reference, phalcon_db_reference_method_entry, 0); + + zend_declare_property_null(phalcon_db_reference_ce, SL("columns"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_reference_ce, SL("name"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_reference_ce, SL("referencedColumns"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_reference_ce, SL("referencedSchema"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_reference_ce, SL("referencedTable"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_reference_ce, SL("schemaName"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_reference_ce, SL("onDelete"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_reference_ce, SL("onUpdate"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_db_reference_ce, 1, phalcon_db_referenceinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Db_Reference, getColumns) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "columns"); +} + +static PHP_METHOD(Phalcon_Db_Reference, getName) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "name"); +} + +static PHP_METHOD(Phalcon_Db_Reference, getReferencedColumns) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "referencedColumns"); +} + +static PHP_METHOD(Phalcon_Db_Reference, getReferencedSchema) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "referencedSchema"); +} + +static PHP_METHOD(Phalcon_Db_Reference, getReferencedTable) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "referencedTable"); +} + +static PHP_METHOD(Phalcon_Db_Reference, getSchemaName) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "schemaName"); +} + +static PHP_METHOD(Phalcon_Db_Reference, getOnDelete) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "onDelete"); +} + +static PHP_METHOD(Phalcon_Db_Reference, getOnUpdate) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "onUpdate"); +} + +static PHP_METHOD(Phalcon_Db_Reference, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval definition; + zval *name_param = NULL, *definition_param = NULL, columns, schema, referencedTable, referencedSchema, referencedColumns, onDelete, onUpdate; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&referencedTable); + ZVAL_UNDEF(&referencedSchema); + ZVAL_UNDEF(&referencedColumns); + ZVAL_UNDEF(&onDelete); + ZVAL_UNDEF(&onUpdate); + ZVAL_UNDEF(&definition); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(name) + Z_PARAM_ARRAY(definition) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &name_param, &definition_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); + ZEPHIR_OBS_VAR(&referencedTable); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&referencedTable, &definition, SL("referencedTable"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Referenced table is required", "phalcon/Db/Reference.zep", 103); + return; + } + zephir_update_property_zval(this_ptr, ZEND_STRL("referencedTable"), &referencedTable); + ZEPHIR_OBS_VAR(&columns); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&columns, &definition, SL("columns"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Foreign key columns are required", "phalcon/Db/Reference.zep", 109); + return; + } + zephir_update_property_zval(this_ptr, ZEND_STRL("columns"), &columns); + ZEPHIR_OBS_VAR(&referencedColumns); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&referencedColumns, &definition, SL("referencedColumns"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Referenced columns of the foreign key are required", "phalcon/Db/Reference.zep", 117); + return; + } + zephir_update_property_zval(this_ptr, ZEND_STRL("referencedColumns"), &referencedColumns); + ZEPHIR_OBS_VAR(&schema); + if (zephir_array_isset_string_fetch(&schema, &definition, SL("schema"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("schemaName"), &schema); + } + ZEPHIR_OBS_VAR(&referencedSchema); + if (zephir_array_isset_string_fetch(&referencedSchema, &definition, SL("referencedSchema"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("referencedSchema"), &referencedSchema); + } + ZEPHIR_OBS_VAR(&onDelete); + if (zephir_array_isset_string_fetch(&onDelete, &definition, SL("onDelete"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("onDelete"), &onDelete); + } + ZEPHIR_OBS_VAR(&onUpdate); + if (zephir_array_isset_string_fetch(&onUpdate, &definition, SL("onUpdate"), 0)) { + zephir_update_property_zval(this_ptr, ZEND_STRL("onUpdate"), &onUpdate); + } + if (UNEXPECTED(zephir_fast_count_int(&columns) != zephir_fast_count_int(&referencedColumns))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Number of columns is not equals than the number of columns referenced", "phalcon/Db/Reference.zep", 141); + return; + } + ZEPHIR_MM_RESTORE(); +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_ReferenceInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, ReferenceInterface, phalcon, db_referenceinterface, phalcon_db_referenceinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Db_ReferenceInterface, getColumns); +ZEPHIR_DOC_METHOD(Phalcon_Db_ReferenceInterface, getName); +ZEPHIR_DOC_METHOD(Phalcon_Db_ReferenceInterface, getOnDelete); +ZEPHIR_DOC_METHOD(Phalcon_Db_ReferenceInterface, getOnUpdate); +ZEPHIR_DOC_METHOD(Phalcon_Db_ReferenceInterface, getReferencedColumns); +ZEPHIR_DOC_METHOD(Phalcon_Db_ReferenceInterface, getReferencedSchema); +ZEPHIR_DOC_METHOD(Phalcon_Db_ReferenceInterface, getReferencedTable); +ZEPHIR_DOC_METHOD(Phalcon_Db_ReferenceInterface, getSchemaName); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_ResultInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db, ResultInterface, phalcon, db_resultinterface, phalcon_db_resultinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Db_ResultInterface, dataSeek); +ZEPHIR_DOC_METHOD(Phalcon_Db_ResultInterface, execute); +ZEPHIR_DOC_METHOD(Phalcon_Db_ResultInterface, fetch); +ZEPHIR_DOC_METHOD(Phalcon_Db_ResultInterface, fetchAll); +ZEPHIR_DOC_METHOD(Phalcon_Db_ResultInterface, fetchArray); +ZEPHIR_DOC_METHOD(Phalcon_Db_ResultInterface, getInternalResult); +ZEPHIR_DOC_METHOD(Phalcon_Db_ResultInterface, numRows); +ZEPHIR_DOC_METHOD(Phalcon_Db_ResultInterface, setFetchMode); + + + + +static int phalcon_db_checktype(zval *return_value, zval *placeholder) { + + if (Z_TYPE_P(placeholder) != IS_STRING) { + + } + + return 0; +} + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_Profiler_Item) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Db\\Profiler, Item, phalcon, db_profiler_item, phalcon_db_profiler_item_method_entry, 0); + + zend_declare_property_null(phalcon_db_profiler_item_ce, SL("finalTime"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_profiler_item_ce, SL("initialTime"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_profiler_item_ce, SL("sqlBindTypes"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_profiler_item_ce, SL("sqlStatement"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_profiler_item_ce, SL("sqlVariables"), ZEND_ACC_PROTECTED); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, setFinalTime) +{ + zval *finalTime_param = NULL, _0; + double finalTime; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(finalTime) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &finalTime_param); + finalTime = zephir_get_doubleval(finalTime_param); + + + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_DOUBLE(&_0, finalTime); + zephir_update_property_zval(this_ptr, ZEND_STRL("finalTime"), &_0); + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, getFinalTime) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "finalTime"); +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, setInitialTime) +{ + zval *initialTime_param = NULL, _0; + double initialTime; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(initialTime) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &initialTime_param); + initialTime = zephir_get_doubleval(initialTime_param); + + + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_DOUBLE(&_0, initialTime); + zephir_update_property_zval(this_ptr, ZEND_STRL("initialTime"), &_0); + RETURN_THISW(); +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, getInitialTime) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "initialTime"); +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlBindTypes) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *sqlBindTypes_param = NULL; + zval sqlBindTypes; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&sqlBindTypes); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(sqlBindTypes) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &sqlBindTypes_param); + zephir_get_arrval(&sqlBindTypes, sqlBindTypes_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlBindTypes"), &sqlBindTypes); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlBindTypes) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "sqlBindTypes"); +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlStatement) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *sqlStatement_param = NULL; + zval sqlStatement; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&sqlStatement); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(sqlStatement) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &sqlStatement_param); + zephir_get_strval(&sqlStatement, sqlStatement_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlStatement"), &sqlStatement); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlStatement) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "sqlStatement"); +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, setSqlVariables) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *sqlVariables_param = NULL; + zval sqlVariables; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&sqlVariables); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(sqlVariables) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &sqlVariables_param); + zephir_get_arrval(&sqlVariables, sqlVariables_param); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlVariables"), &sqlVariables); + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, getSqlVariables) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "sqlVariables"); +} + +static PHP_METHOD(Phalcon_Db_Profiler_Item, getTotalElapsedSeconds) +{ + zval _0, _1; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("finalTime"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_1, this_ptr, ZEND_STRL("initialTime"), PH_NOISY_CC | PH_READONLY); + zephir_sub_function(return_value, &_0, &_1); + return; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_Adapter_AbstractAdapter) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Db\\Adapter, AbstractAdapter, phalcon, db_adapter_abstractadapter, phalcon_db_adapter_abstractadapter_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_long(phalcon_db_adapter_abstractadapter_ce, SL("connectionConsecutive"), 0, ZEND_ACC_PROTECTED|ZEND_ACC_STATIC); + zend_declare_property_null(phalcon_db_adapter_abstractadapter_ce, SL("connectionId"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_adapter_abstractadapter_ce, SL("descriptor"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_adapter_abstractadapter_ce, SL("dialect"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_adapter_abstractadapter_ce, SL("dialectType"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_adapter_abstractadapter_ce, SL("eventsManager"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_adapter_abstractadapter_ce, SL("realSqlStatement"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_adapter_abstractadapter_ce, SL("sqlBindTypes"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_adapter_abstractadapter_ce, SL("sqlStatement"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_adapter_abstractadapter_ce, SL("sqlVariables"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_db_adapter_abstractadapter_ce, SL("transactionLevel"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_db_adapter_abstractadapter_ce, SL("transactionsWithSavepoints"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_adapter_abstractadapter_ce, SL("type"), ZEND_ACC_PROTECTED); + phalcon_db_adapter_abstractadapter_ce->create_object = zephir_init_properties_Phalcon_Db_Adapter_AbstractAdapter; + + zend_class_implements(phalcon_db_adapter_abstractadapter_ce, 1, phalcon_db_adapter_adapterinterface_ce); + zend_class_implements(phalcon_db_adapter_abstractadapter_ce, 1, phalcon_events_eventsawareinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getDialectType) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "dialectType"); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getSqlVariables) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "sqlVariables"); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getType) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "type"); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *descriptor_param = NULL, dialectClass, connectionId, _0, _1$$3, _2$$4; + zval descriptor; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&descriptor); + ZVAL_UNDEF(&dialectClass); + ZVAL_UNDEF(&connectionId); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(descriptor) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &descriptor_param); + ZEPHIR_OBS_COPY_OR_DUP(&descriptor, descriptor_param); + + + ZEPHIR_OBS_VAR(&connectionId); + zephir_read_static_property_ce(&connectionId, phalcon_db_adapter_abstractadapter_ce, SL("connectionConsecutive"), PH_NOISY_CC); + zephir_update_property_zval(this_ptr, ZEND_STRL("connectionId"), &connectionId); + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, (zephir_get_numberval(&connectionId) + 1)); + zephir_update_static_property_ce(phalcon_db_adapter_abstractadapter_ce, ZEND_STRL("connectionConsecutive"), &_0); + ZEPHIR_OBS_VAR(&dialectClass); + if (!(zephir_array_isset_string_fetch(&dialectClass, &descriptor, SL("dialectClass"), 0))) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("dialectType"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&dialectClass); + ZEPHIR_CONCAT_SV(&dialectClass, "phalcon\\db\\dialect\\", &_1$$3); + } + if (Z_TYPE_P(&dialectClass) == IS_STRING) { + ZEPHIR_INIT_VAR(&_2$$4); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(&_2$$4, &dialectClass); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("dialect"), &_2$$4); + } else if (Z_TYPE_P(&dialectClass) == IS_OBJECT) { + zephir_update_property_zval(this_ptr, ZEND_STRL("dialect"), &dialectClass); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("descriptor"), &descriptor); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, addColumn) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, *column, column_sub, _0, _1; + zval tableName, schemaName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "addcolumn", NULL, 0, &tableName, &schemaName, column); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, addForeignKey) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, *reference, reference_sub, _0, _1; + zval tableName, schemaName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&reference_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(reference, phalcon_db_referenceinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &reference); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "addforeignkey", NULL, 0, &tableName, &schemaName, reference); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, addIndex) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, *index, index_sub, _0, _1; + zval tableName, schemaName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&index_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(index, phalcon_db_indexinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "addindex", NULL, 0, &tableName, &schemaName, index); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, addPrimaryKey) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, *index, index_sub, _0, _1; + zval tableName, schemaName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&index_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(index, phalcon_db_indexinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "addprimarykey", NULL, 0, &tableName, &schemaName, index); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, createSavepoint) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, dialect, _0, _1, _2; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&dialect); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&dialect, &_0); + ZEPHIR_CALL_METHOD(&_1, &dialect, "supportssavepoints", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(!zephir_is_true(&_1))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter.", "phalcon/Db/Adapter/AbstractAdapter.zep", 231); + return; + } + ZEPHIR_CALL_METHOD(&_2, &dialect, "createsavepoint", NULL, 0, &name); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_2); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, createTable) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval definition; + zval *tableName_param = NULL, *schemaName_param = NULL, *definition_param = NULL, columns, _0, _1; + zval tableName, schemaName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&definition); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_ARRAY(definition) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &definition_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); + + + ZEPHIR_OBS_VAR(&columns); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&columns, &definition, SL("columns"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The table must contain at least one column", "phalcon/Db/Adapter/AbstractAdapter.zep", 247); + return; + } + if (UNEXPECTED(!(zephir_fast_count_int(&columns)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The table must contain at least one column", "phalcon/Db/Adapter/AbstractAdapter.zep", 251); + return; + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "createtable", NULL, 0, &tableName, &schemaName, &definition); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, createView) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval definition; + zval *viewName_param = NULL, *definition_param = NULL, *schemaName_param = NULL, _0, _1; + zval viewName, schemaName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&viewName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&definition); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(viewName) + Z_PARAM_ARRAY(definition) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schemaName) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &viewName_param, &definition_param, &schemaName_param); + if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(&viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(&viewName); + } + ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + zephir_get_strval(&schemaName, schemaName_param); + } + + + if (UNEXPECTED(!(zephir_array_isset_string(&definition, SL("sql"))))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The table must contain at least one column", "phalcon/Db/Adapter/AbstractAdapter.zep", 269); + return; + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "createview", NULL, 0, &viewName, &definition, &schemaName); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, delete) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval placeholders, dataTypes; + zval whereCondition, _0$$3; + zval *table, table_sub, *whereCondition_param = NULL, *placeholders_param = NULL, *dataTypes_param = NULL, sql, escapedTable; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&table_sub); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&escapedTable); + ZVAL_UNDEF(&whereCondition); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&placeholders); + ZVAL_UNDEF(&dataTypes); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 4) + Z_PARAM_ZVAL(table) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(whereCondition) + Z_PARAM_ARRAY(placeholders) + Z_PARAM_ARRAY(dataTypes) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 3, &table, &whereCondition_param, &placeholders_param, &dataTypes_param); + if (!whereCondition_param) { + ZEPHIR_INIT_VAR(&whereCondition); + } else { + zephir_get_strval(&whereCondition, whereCondition_param); + } + if (!placeholders_param) { + ZEPHIR_INIT_VAR(&placeholders); + array_init(&placeholders); + } else { + zephir_get_arrval(&placeholders, placeholders_param); + } + if (!dataTypes_param) { + ZEPHIR_INIT_VAR(&dataTypes); + array_init(&dataTypes); + } else { + zephir_get_arrval(&dataTypes, dataTypes_param); + } + + + ZEPHIR_CALL_METHOD(&escapedTable, this_ptr, "escapeidentifier", NULL, 0, table); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&sql); + ZEPHIR_CONCAT_SV(&sql, "DELETE FROM ", &escapedTable); + if (!(ZEPHIR_IS_EMPTY(&whereCondition))) { + ZEPHIR_INIT_VAR(&_0$$3); + ZEPHIR_CONCAT_SV(&_0$$3, " WHERE ", &whereCondition); + zephir_concat_self(&sql, &_0$$3); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &sql, &placeholders, &dataTypes); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, describeIndexes) +{ + zend_string *_11; + zend_ulong _10; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_13 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *table_param = NULL, *schema_param = NULL, indexes, index, keyName, indexObjects, name, indexColumns, columns, _0, _1, _2, _3, *_4, _5, *_8, _9, _6$$3, _7$$6, _12$$9, _14$$10; + zval table, schema; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&indexes); + ZVAL_UNDEF(&index); + ZVAL_UNDEF(&keyName); + ZVAL_UNDEF(&indexObjects); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&indexColumns); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_12$$9); + ZVAL_UNDEF(&_14$$10); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schema) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); + } else { + ZEPHIR_INIT_VAR(&table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); + } else { + zephir_get_strval(&schema, schema_param); + } + + + ZEPHIR_INIT_VAR(&indexes); + array_init(&indexes); + zephir_read_property(&_1, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_2, &_1, "describeindexes", NULL, 0, &table, &schema); + zephir_check_call_status(); + ZVAL_LONG(&_3, 3); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, 0, &_2, &_3); + zephir_check_call_status(); + zephir_is_iterable(&_0, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 348); + if (Z_TYPE_P(&_0) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _4) + { + ZEPHIR_INIT_NVAR(&index); + ZVAL_COPY(&index, _4); + zephir_array_fetch_long(&keyName, &index, 2, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 336); + if (!(zephir_array_isset(&indexes, &keyName))) { + ZEPHIR_INIT_NVAR(&columns); + array_init(&columns); + } else { + ZEPHIR_OBS_NVAR(&columns); + zephir_array_fetch(&columns, &indexes, &keyName, PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 341); } -vv315: - { - s->statement_position++; - token->opcode = PHVOLT_T_SCALAR; - return 0; - } -vv316: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv317; + zephir_array_fetch_long(&_6$$3, &index, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 344); + zephir_array_append(&columns, &_6$$3, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 344); + zephir_array_update_zval(&indexes, &keyName, &columns, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_5, &_0, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_5)) { + break; } -vv317: - { - s->statement_position++; - token->opcode = PHVOLT_T_SWITCH; - return 0; + ZEPHIR_CALL_METHOD(&index, &_0, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&keyName); + zephir_array_fetch_long(&keyName, &index, 2, PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 336); + if (!(zephir_array_isset(&indexes, &keyName))) { + ZEPHIR_INIT_NVAR(&columns); + array_init(&columns); + } else { + ZEPHIR_OBS_NVAR(&columns); + zephir_array_fetch(&columns, &indexes, &keyName, PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 341); + } + zephir_array_fetch_long(&_7$$6, &index, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 344); + zephir_array_append(&columns, &_7$$6, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 344); + zephir_array_update_zval(&indexes, &keyName, &columns, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); + zephir_check_call_status(); } -vv318: - vvch = *++VVCURSOR; - switch (vvch) { - case 't': goto vv341; - default: goto vv81; - } -vv319: - vvch = *++VVCURSOR; - switch (vvch) { - case 'A': - case 'a': goto vv343; - default: goto vv54; - } -vv320: - vvch = *++VVCURSOR; - switch (vvch) { - case 'E': - case 'e': goto vv344; - default: goto vv54; + } + ZEPHIR_INIT_NVAR(&index); + ZEPHIR_INIT_VAR(&indexObjects); + array_init(&indexObjects); + zephir_is_iterable(&indexes, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 357); + if (Z_TYPE_P(&indexes) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&indexes), _10, _11, _8) + { + ZEPHIR_INIT_NVAR(&name); + if (_11 != NULL) { + ZVAL_STR_COPY(&name, _11); + } else { + ZVAL_LONG(&name, _10); } -vv321: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv322; + ZEPHIR_INIT_NVAR(&indexColumns); + ZVAL_COPY(&indexColumns, _8); + ZEPHIR_INIT_NVAR(&_12$$9); + object_init_ex(&_12$$9, phalcon_db_index_ce); + ZEPHIR_CALL_METHOD(NULL, &_12$$9, "__construct", &_13, 32, &name, &indexColumns); + zephir_check_call_status(); + zephir_array_update_zval(&indexObjects, &name, &_12$$9, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &indexes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_9, &indexes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_9)) { + break; } -vv322: - { - token->opcode = PHVOLT_T_DEFAULT; - token->value = estrndup(start, VVCURSOR - start); - token->len = VVCURSOR - start; - return 0; + ZEPHIR_CALL_METHOD(&name, &indexes, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&indexColumns, &indexes, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_14$$10); + object_init_ex(&_14$$10, phalcon_db_index_ce); + ZEPHIR_CALL_METHOD(NULL, &_14$$10, "__construct", &_13, 32, &name, &indexColumns); + zephir_check_call_status(); + zephir_array_update_zval(&indexObjects, &name, &_14$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &indexes, "next", NULL, 0); + zephir_check_call_status(); } -vv323: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv324; + } + ZEPHIR_INIT_NVAR(&indexColumns); + ZEPHIR_INIT_NVAR(&name); + RETURN_CCTOR(&indexObjects); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, describeReferences) +{ + zval _12$$3, _19$$6, _25$$9, _29$$10; + zend_string *_23; + zend_ulong _22; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_27 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *table_param = NULL, *schema_param = NULL, references, reference, arrayReference, constraintName, referenceObjects, name, referencedSchema, referencedTable, columns, referencedColumns, _0, _1, _2, _3, *_4, _5, *_20, _21, _6$$5, _7$$5, _8$$5, _9$$5, _10$$3, _11$$3, _13$$8, _14$$8, _15$$8, _16$$8, _17$$6, _18$$6, _24$$9, _26$$9, _28$$10, _30$$10; + zval table, schema; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&references); + ZVAL_UNDEF(&reference); + ZVAL_UNDEF(&arrayReference); + ZVAL_UNDEF(&constraintName); + ZVAL_UNDEF(&referenceObjects); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&referencedSchema); + ZVAL_UNDEF(&referencedTable); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&referencedColumns); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_21); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_7$$5); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_10$$3); + ZVAL_UNDEF(&_11$$3); + ZVAL_UNDEF(&_13$$8); + ZVAL_UNDEF(&_14$$8); + ZVAL_UNDEF(&_15$$8); + ZVAL_UNDEF(&_16$$8); + ZVAL_UNDEF(&_17$$6); + ZVAL_UNDEF(&_18$$6); + ZVAL_UNDEF(&_24$$9); + ZVAL_UNDEF(&_26$$9); + ZVAL_UNDEF(&_28$$10); + ZVAL_UNDEF(&_30$$10); + ZVAL_UNDEF(&_12$$3); + ZVAL_UNDEF(&_19$$6); + ZVAL_UNDEF(&_25$$9); + ZVAL_UNDEF(&_29$$10); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schema) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); + } else { + ZEPHIR_INIT_VAR(&table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); + } else { + if (UNEXPECTED(Z_TYPE_P(schema_param) != IS_STRING && Z_TYPE_P(schema_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schema' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schema_param) == IS_STRING)) { + zephir_get_strval(&schema, schema_param); + } else { + ZEPHIR_INIT_VAR(&schema); + } + } + + + ZEPHIR_INIT_VAR(&references); + array_init(&references); + zephir_read_property(&_1, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_2, &_1, "describereferences", NULL, 0, &table, &schema); + zephir_check_call_status(); + ZVAL_LONG(&_3, 3); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, 0, &_2, &_3); + zephir_check_call_status(); + zephir_is_iterable(&_0, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 403); + if (Z_TYPE_P(&_0) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _4) + { + ZEPHIR_INIT_NVAR(&reference); + ZVAL_COPY(&reference, _4); + zephir_array_fetch_long(&constraintName, &reference, 2, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 378); + if (!(zephir_array_isset(&references, &constraintName))) { + ZEPHIR_OBS_NVAR(&referencedSchema); + zephir_array_fetch_long(&referencedSchema, &reference, 3, PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 381); + ZEPHIR_OBS_NVAR(&referencedTable); + zephir_array_fetch_long(&referencedTable, &reference, 4, PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 382); + ZEPHIR_INIT_NVAR(&columns); + array_init(&columns); + ZEPHIR_INIT_NVAR(&referencedColumns); + array_init(&referencedColumns); + } else { + zephir_array_fetch(&_6$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 386); + ZEPHIR_OBS_NVAR(&referencedSchema); + zephir_array_fetch_string(&referencedSchema, &_6$$5, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 386); + zephir_array_fetch(&_7$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 387); + ZEPHIR_OBS_NVAR(&referencedTable); + zephir_array_fetch_string(&referencedTable, &_7$$5, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 387); + zephir_array_fetch(&_8$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 388); + ZEPHIR_OBS_NVAR(&columns); + zephir_array_fetch_string(&columns, &_8$$5, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 388); + zephir_array_fetch(&_9$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 389); + ZEPHIR_OBS_NVAR(&referencedColumns); + zephir_array_fetch_string(&referencedColumns, &_9$$5, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 389); } -vv324: - { - s->statement_position++; - token->opcode = PHVOLT_T_DEFINED; - return 0; - } -vv325: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv326; + zephir_array_fetch_long(&_10$$3, &reference, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 392); + zephir_array_append(&columns, &_10$$3, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 392); + zephir_array_fetch_long(&_11$$3, &reference, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 393); + zephir_array_append(&referencedColumns, &_11$$3, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 393); + ZEPHIR_INIT_NVAR(&_12$$3); + zephir_create_array(&_12$$3, 4, 0); + zephir_array_update_string(&_12$$3, SL("referencedSchema"), &referencedSchema, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_12$$3, SL("referencedTable"), &referencedTable, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_12$$3, SL("columns"), &columns, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_12$$3, SL("referencedColumns"), &referencedColumns, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&references, &constraintName, &_12$$3, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_5, &_0, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_5)) { + break; } -vv326: - { - token->opcode = PHVOLT_T_ELSEFOR; - return 0; + ZEPHIR_CALL_METHOD(&reference, &_0, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&constraintName); + zephir_array_fetch_long(&constraintName, &reference, 2, PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 378); + if (!(zephir_array_isset(&references, &constraintName))) { + ZEPHIR_OBS_NVAR(&referencedSchema); + zephir_array_fetch_long(&referencedSchema, &reference, 3, PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 381); + ZEPHIR_OBS_NVAR(&referencedTable); + zephir_array_fetch_long(&referencedTable, &reference, 4, PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 382); + ZEPHIR_INIT_NVAR(&columns); + array_init(&columns); + ZEPHIR_INIT_NVAR(&referencedColumns); + array_init(&referencedColumns); + } else { + zephir_array_fetch(&_13$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 386); + ZEPHIR_OBS_NVAR(&referencedSchema); + zephir_array_fetch_string(&referencedSchema, &_13$$8, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 386); + zephir_array_fetch(&_14$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 387); + ZEPHIR_OBS_NVAR(&referencedTable); + zephir_array_fetch_string(&referencedTable, &_14$$8, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 387); + zephir_array_fetch(&_15$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 388); + ZEPHIR_OBS_NVAR(&columns); + zephir_array_fetch_string(&columns, &_15$$8, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 388); + zephir_array_fetch(&_16$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 389); + ZEPHIR_OBS_NVAR(&referencedColumns); + zephir_array_fetch_string(&referencedColumns, &_16$$8, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 389); + } + zephir_array_fetch_long(&_17$$6, &reference, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 392); + zephir_array_append(&columns, &_17$$6, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 392); + zephir_array_fetch_long(&_18$$6, &reference, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 393); + zephir_array_append(&referencedColumns, &_18$$6, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 393); + ZEPHIR_INIT_NVAR(&_19$$6); + zephir_create_array(&_19$$6, 4, 0); + zephir_array_update_string(&_19$$6, SL("referencedSchema"), &referencedSchema, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_19$$6, SL("referencedTable"), &referencedTable, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_19$$6, SL("columns"), &columns, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_19$$6, SL("referencedColumns"), &referencedColumns, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&references, &constraintName, &_19$$6, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); + zephir_check_call_status(); } -vv327: - vvch = *++VVCURSOR; - switch (vvch) { - case 'E': - case 'e': goto vv346; - default: goto vv54; - } -vv328: - vvch = *++VVCURSOR; - switch (vvch) { - case 'K': - case 'k': goto vv347; - default: goto vv54; + } + ZEPHIR_INIT_NVAR(&reference); + ZEPHIR_INIT_VAR(&referenceObjects); + array_init(&referenceObjects); + zephir_is_iterable(&references, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 417); + if (Z_TYPE_P(&references) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&references), _22, _23, _20) + { + ZEPHIR_INIT_NVAR(&name); + if (_23 != NULL) { + ZVAL_STR_COPY(&name, _23); + } else { + ZVAL_LONG(&name, _22); } -vv329: - vvch = *++VVCURSOR; - switch (vvch) { - case 'E': - case 'e': goto vv349; - default: goto vv54; + ZEPHIR_INIT_NVAR(&arrayReference); + ZVAL_COPY(&arrayReference, _20); + ZEPHIR_INIT_NVAR(&_24$$9); + object_init_ex(&_24$$9, phalcon_db_reference_ce); + ZEPHIR_INIT_NVAR(&_25$$9); + zephir_create_array(&_25$$9, 4, 0); + ZEPHIR_OBS_NVAR(&_26$$9); + zephir_array_fetch_string(&_26$$9, &arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 409); + zephir_array_update_string(&_25$$9, SL("referencedSchema"), &_26$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_26$$9); + zephir_array_fetch_string(&_26$$9, &arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 410); + zephir_array_update_string(&_25$$9, SL("referencedTable"), &_26$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_26$$9); + zephir_array_fetch_string(&_26$$9, &arrayReference, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 411); + zephir_array_update_string(&_25$$9, SL("columns"), &_26$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_26$$9); + zephir_array_fetch_string(&_26$$9, &arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 413); + zephir_array_update_string(&_25$$9, SL("referencedColumns"), &_26$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &_24$$9, "__construct", &_27, 33, &name, &_25$$9); + zephir_check_call_status(); + zephir_array_update_zval(&referenceObjects, &name, &_24$$9, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &references, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_21, &references, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_21)) { + break; } -vv330: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv331; + ZEPHIR_CALL_METHOD(&name, &references, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&arrayReference, &references, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_28$$10); + object_init_ex(&_28$$10, phalcon_db_reference_ce); + ZEPHIR_INIT_NVAR(&_29$$10); + zephir_create_array(&_29$$10, 4, 0); + ZEPHIR_OBS_NVAR(&_30$$10); + zephir_array_fetch_string(&_30$$10, &arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 409); + zephir_array_update_string(&_29$$10, SL("referencedSchema"), &_30$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_30$$10); + zephir_array_fetch_string(&_30$$10, &arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 410); + zephir_array_update_string(&_29$$10, SL("referencedTable"), &_30$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_30$$10); + zephir_array_fetch_string(&_30$$10, &arrayReference, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 411); + zephir_array_update_string(&_29$$10, SL("columns"), &_30$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_30$$10); + zephir_array_fetch_string(&_30$$10, &arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/AbstractAdapter.zep", 413); + zephir_array_update_string(&_29$$10, SL("referencedColumns"), &_30$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &_28$$10, "__construct", &_27, 33, &name, &_29$$10); + zephir_check_call_status(); + zephir_array_update_zval(&referenceObjects, &name, &_28$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &references, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&arrayReference); + ZEPHIR_INIT_NVAR(&name); + RETURN_CCTOR(&referenceObjects); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, dropColumn) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, *columnName_param = NULL, _0, _1; + zval tableName, schemaName, columnName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&columnName); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_STR(columnName) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &columnName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + zephir_get_strval(&columnName, columnName_param); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "dropcolumn", NULL, 0, &tableName, &schemaName, &columnName); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, dropForeignKey) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName_param = NULL, _0, _1; + zval tableName, schemaName, referenceName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&referenceName); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_STR(referenceName) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + if (UNEXPECTED(Z_TYPE_P(referenceName_param) != IS_STRING && Z_TYPE_P(referenceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(referenceName_param) == IS_STRING)) { + zephir_get_strval(&referenceName, referenceName_param); + } else { + ZEPHIR_INIT_VAR(&referenceName); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "dropforeignkey", NULL, 0, &tableName, &schemaName, &referenceName); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, dropIndex) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, *indexName, indexName_sub, _0, _1; + zval tableName, schemaName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&indexName_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_ZVAL(indexName) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &indexName); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "dropindex", NULL, 0, &tableName, &schemaName, indexName); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, dropPrimaryKey) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, _0, _1; + zval tableName, schemaName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &tableName_param, &schemaName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "dropprimarykey", NULL, 0, &tableName, &schemaName); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, dropTable) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool ifExists; + zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, _0, _1, _2; + zval tableName, schemaName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(tableName) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schemaName) + Z_PARAM_BOOL(ifExists) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &tableName_param, &schemaName_param, &ifExists_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + } + if (!ifExists_param) { + ifExists = 1; + } else { + ifExists = zephir_get_boolval(ifExists_param); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + if (ifExists) { + ZVAL_BOOL(&_2, 1); + } else { + ZVAL_BOOL(&_2, 0); + } + ZEPHIR_CALL_METHOD(&_1, &_0, "droptable", NULL, 0, &tableName, &schemaName, &_2); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, dropView) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool ifExists; + zval *viewName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, _0, _1, _2; + zval viewName, schemaName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&viewName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(viewName) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schemaName) + Z_PARAM_BOOL(ifExists) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &viewName_param, &schemaName_param, &ifExists_param); + if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(&viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(&viewName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + } + if (!ifExists_param) { + ifExists = 1; + } else { + ifExists = zephir_get_boolval(ifExists_param); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + if (ifExists) { + ZVAL_BOOL(&_2, 1); + } else { + ZVAL_BOOL(&_2, 0); + } + ZEPHIR_CALL_METHOD(&_1, &_0, "dropview", NULL, 0, &viewName, &schemaName, &_2); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, escapeIdentifier) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *identifier, identifier_sub, _0$$3, _1$$3, _2$$3, _3$$3, _4$$3, _5$$3, _6; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&identifier_sub); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(identifier) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &identifier); + + + if (Z_TYPE_P(identifier) == IS_ARRAY) { + zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_long(&_2$$3, identifier, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 522); + ZEPHIR_CALL_METHOD(&_1$$3, &_0$$3, "escape", NULL, 0, &_2$$3); + zephir_check_call_status(); + zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + zephir_array_fetch_long(&_5$$3, identifier, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 522); + ZEPHIR_CALL_METHOD(&_4$$3, &_3$$3, "escape", NULL, 0, &_5$$3); + zephir_check_call_status(); + ZEPHIR_CONCAT_VSV(return_value, &_1$$3, ".", &_4$$3); + RETURN_MM(); + } + zephir_read_property(&_6, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_6, "escape", NULL, 0, identifier); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, fetchAll) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval bindParams, bindTypes; + zend_long fetchMode, ZEPHIR_LAST_CALL_STATUS; + zval *sqlQuery_param = NULL, *fetchMode_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, result, _1, _0$$4; + zval sqlQuery; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&sqlQuery); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_0$$4); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 4) + Z_PARAM_STR(sqlQuery) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(fetchMode) + Z_PARAM_ARRAY(bindParams) + Z_PARAM_ARRAY(bindTypes) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 3, &sqlQuery_param, &fetchMode_param, &bindParams_param, &bindTypes_param); + zephir_get_strval(&sqlQuery, sqlQuery_param); + if (!fetchMode_param) { + fetchMode = 2; + } else { + fetchMode = zephir_get_intval(fetchMode_param); + } + if (!bindParams_param) { + ZEPHIR_INIT_VAR(&bindParams); + array_init(&bindParams); + } else { + zephir_get_arrval(&bindParams, bindParams_param); + } + if (!bindTypes_param) { + ZEPHIR_INIT_VAR(&bindTypes); + array_init(&bindTypes); + } else { + zephir_get_arrval(&bindTypes, bindTypes_param); + } + + + ZEPHIR_CALL_METHOD(&result, this_ptr, "query", NULL, 0, &sqlQuery, &bindParams, &bindTypes); + zephir_check_call_status(); + if (Z_TYPE_P(&result) != IS_OBJECT) { + array_init(return_value); + RETURN_MM(); + } + if (UNEXPECTED(fetchMode == 7)) { + ZVAL_LONG(&_0$$4, 7); + ZEPHIR_RETURN_CALL_METHOD(&result, "fetchall", NULL, 0, &_0$$4); + zephir_check_call_status(); + RETURN_MM(); + } + ZVAL_LONG(&_1, fetchMode); + ZEPHIR_CALL_METHOD(NULL, &result, "setfetchmode", NULL, 0, &_1); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(&result, "fetchall", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, fetchColumn) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval placeholders; + zval *sqlQuery_param = NULL, *placeholders_param = NULL, *column = NULL, column_sub, row, columnValue, _0; + zval sqlQuery; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&sqlQuery); + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(&row); + ZVAL_UNDEF(&columnValue); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&placeholders); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(sqlQuery) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(placeholders) + Z_PARAM_ZVAL(column) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &sqlQuery_param, &placeholders_param, &column); + zephir_get_strval(&sqlQuery, sqlQuery_param); + if (!placeholders_param) { + ZEPHIR_INIT_VAR(&placeholders); + array_init(&placeholders); + } else { + zephir_get_arrval(&placeholders, placeholders_param); + } + if (!column) { + column = &column_sub; + ZEPHIR_INIT_VAR(column); + ZVAL_LONG(column, 0); + } + + + ZVAL_LONG(&_0, 4); + ZEPHIR_CALL_METHOD(&row, this_ptr, "fetchone", NULL, 0, &sqlQuery, &_0, &placeholders); + zephir_check_call_status(); + if (!(zephir_array_isset_fetch(&columnValue, &row, column, 1))) { + RETURN_MM_BOOL(0); + } + RETURN_CTOR(&columnValue); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, fetchOne) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval bindParams, bindTypes; + zval *sqlQuery_param = NULL, *fetchMode = NULL, fetchMode_sub, *bindParams_param = NULL, *bindTypes_param = NULL, result; + zval sqlQuery; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&sqlQuery); + ZVAL_UNDEF(&fetchMode_sub); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 4) + Z_PARAM_STR(sqlQuery) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL(fetchMode) + Z_PARAM_ARRAY(bindParams) + Z_PARAM_ARRAY(bindTypes) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 3, &sqlQuery_param, &fetchMode, &bindParams_param, &bindTypes_param); + if (UNEXPECTED(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { + zephir_get_strval(&sqlQuery, sqlQuery_param); + } else { + ZEPHIR_INIT_VAR(&sqlQuery); + } + if (!fetchMode) { + fetchMode = &fetchMode_sub; + ZEPHIR_INIT_VAR(fetchMode); + ZVAL_LONG(fetchMode, 2); + } + if (!bindParams_param) { + ZEPHIR_INIT_VAR(&bindParams); + array_init(&bindParams); + } else { + zephir_get_arrval(&bindParams, bindParams_param); + } + if (!bindTypes_param) { + ZEPHIR_INIT_VAR(&bindTypes); + array_init(&bindTypes); + } else { + zephir_get_arrval(&bindTypes, bindTypes_param); + } + + + ZEPHIR_CALL_METHOD(&result, this_ptr, "query", NULL, 0, &sqlQuery, &bindParams, &bindTypes); + zephir_check_call_status(); + if (Z_TYPE_P(&result) != IS_OBJECT) { + array_init(return_value); + RETURN_MM(); + } + if (Z_TYPE_P(fetchMode) != IS_NULL) { + ZEPHIR_CALL_METHOD(NULL, &result, "setfetchmode", NULL, 0, fetchMode); + zephir_check_call_status(); + } + ZEPHIR_RETURN_CALL_METHOD(&result, "fetch", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, forUpdate) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *sqlQuery_param = NULL, _0; + zval sqlQuery; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&sqlQuery); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(sqlQuery) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &sqlQuery_param); + if (UNEXPECTED(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { + zephir_get_strval(&sqlQuery, sqlQuery_param); + } else { + ZEPHIR_INIT_VAR(&sqlQuery); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "forupdate", NULL, 0, &sqlQuery); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getColumnDefinition) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *column, column_sub, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &column); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "getcolumndefinition", NULL, 0, column); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getColumnList) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *columnList, columnList_sub, _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&columnList_sub); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(columnList) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &columnList); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "getcolumnlist", NULL, 0, columnList); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getConnectionId) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "connectionId"); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getDefaultIdValue) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + object_init_ex(return_value, phalcon_db_rawvalue_ce); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "null"); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 34, &_0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getDefaultValue) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + object_init_ex(return_value, phalcon_db_rawvalue_ce); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "DEFAULT"); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 34, &_0); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getDescriptor) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "descriptor"); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getDialect) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "dialect"); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getEventsManager) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "eventsManager"); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getNestedTransactionSavepointName) +{ + zval _0; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("transactionLevel"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CONCAT_SV(return_value, "PHALCON_SAVEPOINT_", &_0); + return; +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getRealSQLStatement) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "realSqlStatement"); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getSQLBindTypes) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "sqlBindTypes"); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, getSQLStatement) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "sqlStatement"); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, insert) +{ + zend_bool _6$$4, _11$$12; + zend_string *_5; + zend_ulong _4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval values; + zval *table_param = NULL, *values_param = NULL, *fields = NULL, fields_sub, *dataTypes = NULL, dataTypes_sub, __$null, bindDataTypes, bindType, escapedTable, escapedFields, field, insertSql, insertValues, joinedValues, placeholders, position, tableName, value, *_2, _3, _16, _17, _0$$3, _9$$8, _10$$9, _14$$16, _15$$17, *_18$$22, _19$$22, _22$$22, _20$$23, _21$$24; + zval table, _1$$3, _7$$5, _8$$7, _12$$13, _13$$15; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_7$$5); + ZVAL_UNDEF(&_8$$7); + ZVAL_UNDEF(&_12$$13); + ZVAL_UNDEF(&_13$$15); + ZVAL_UNDEF(&fields_sub); + ZVAL_UNDEF(&dataTypes_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&bindDataTypes); + ZVAL_UNDEF(&bindType); + ZVAL_UNDEF(&escapedTable); + ZVAL_UNDEF(&escapedFields); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&insertSql); + ZVAL_UNDEF(&insertValues); + ZVAL_UNDEF(&joinedValues); + ZVAL_UNDEF(&placeholders); + ZVAL_UNDEF(&position); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_16); + ZVAL_UNDEF(&_17); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_9$$8); + ZVAL_UNDEF(&_10$$9); + ZVAL_UNDEF(&_14$$16); + ZVAL_UNDEF(&_15$$17); + ZVAL_UNDEF(&_19$$22); + ZVAL_UNDEF(&_22$$22); + ZVAL_UNDEF(&_20$$23); + ZVAL_UNDEF(&_21$$24); + ZVAL_UNDEF(&values); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 4) + Z_PARAM_STR(table) + Z_PARAM_ARRAY(values) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(fields) + Z_PARAM_ZVAL_OR_NULL(dataTypes) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 2, &table_param, &values_param, &fields, &dataTypes); + zephir_get_strval(&table, table_param); + ZEPHIR_OBS_COPY_OR_DUP(&values, values_param); + if (!fields) { + fields = &fields_sub; + fields = &__$null; + } + if (!dataTypes) { + dataTypes = &dataTypes_sub; + dataTypes = &__$null; + } + + + if (UNEXPECTED(!(zephir_fast_count_int(&values)))) { + ZEPHIR_INIT_VAR(&_0$$3); + object_init_ex(&_0$$3, phalcon_db_exception_ce); + ZEPHIR_INIT_VAR(&_1$$3); + ZEPHIR_CONCAT_SVS(&_1$$3, "Unable to insert into ", &table, " without data"); + ZEPHIR_CALL_METHOD(NULL, &_0$$3, "__construct", NULL, 8, &_1$$3); + zephir_check_call_status(); + zephir_throw_exception_debug(&_0$$3, "phalcon/Db/Adapter/AbstractAdapter.zep", 802); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_VAR(&placeholders); + array_init(&placeholders); + ZEPHIR_INIT_VAR(&insertValues); + array_init(&insertValues); + ZEPHIR_INIT_VAR(&bindDataTypes); + array_init(&bindDataTypes); + zephir_is_iterable(&values, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 840); + if (Z_TYPE_P(&values) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&values), _4, _5, _2) + { + ZEPHIR_INIT_NVAR(&position); + if (_5 != NULL) { + ZVAL_STR_COPY(&position, _5); + } else { + ZVAL_LONG(&position, _4); } -vv331: - { - token->opcode = PHVOLT_T_ENDCALL; - return 0; - } -vv332: - vvch = *++VVCURSOR; - switch (vvch) { - case 'O': - case 'o': goto vv351; - default: goto vv54; + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _2); + _6$$4 = Z_TYPE_P(&value) == IS_OBJECT; + if (_6$$4) { + _6$$4 = zephir_instance_of_ev(&value, phalcon_db_rawvalue_ce); } -vv333: - vvch = *++VVCURSOR; - switch (vvch) { - case 'C': - case 'c': goto vv353; - default: goto vv54; + if (_6$$4) { + zephir_cast_to_string(&_7$$5, &value); + zephir_array_append(&placeholders, &_7$$5, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 815); + } else { + if (Z_TYPE_P(&value) == IS_OBJECT) { + zephir_cast_to_string(&_8$$7, &value); + ZEPHIR_CPY_WRT(&value, &_8$$7); + } + if (Z_TYPE_P(&value) == IS_NULL) { + ZEPHIR_INIT_NVAR(&_9$$8); + ZVAL_STRING(&_9$$8, "null"); + zephir_array_append(&placeholders, &_9$$8, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 822); + } else { + ZEPHIR_INIT_NVAR(&_10$$9); + ZVAL_STRING(&_10$$9, "?"); + zephir_array_append(&placeholders, &_10$$9, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 824); + zephir_array_append(&insertValues, &value, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 825); + if (Z_TYPE_P(dataTypes) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&bindType); + if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, dataTypes, &position, 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Incomplete number of bind types", "phalcon/Db/Adapter/AbstractAdapter.zep", 831); + return; + } + zephir_array_append(&bindDataTypes, &bindType, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 834); + } + } } -vv334: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv335; + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &values, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3, &values, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3)) { + break; } -vv335: - { - s->statement_position++; - token->opcode = PHVOLT_T_EXTENDS; - return 0; + ZEPHIR_CALL_METHOD(&position, &values, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &values, "current", NULL, 0); + zephir_check_call_status(); + _11$$12 = Z_TYPE_P(&value) == IS_OBJECT; + if (_11$$12) { + _11$$12 = zephir_instance_of_ev(&value, phalcon_db_rawvalue_ce); + } + if (_11$$12) { + zephir_cast_to_string(&_12$$13, &value); + zephir_array_append(&placeholders, &_12$$13, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 815); + } else { + if (Z_TYPE_P(&value) == IS_OBJECT) { + zephir_cast_to_string(&_13$$15, &value); + ZEPHIR_CPY_WRT(&value, &_13$$15); + } + if (Z_TYPE_P(&value) == IS_NULL) { + ZEPHIR_INIT_NVAR(&_14$$16); + ZVAL_STRING(&_14$$16, "null"); + zephir_array_append(&placeholders, &_14$$16, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 822); + } else { + ZEPHIR_INIT_NVAR(&_15$$17); + ZVAL_STRING(&_15$$17, "?"); + zephir_array_append(&placeholders, &_15$$17, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 824); + zephir_array_append(&insertValues, &value, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 825); + if (Z_TYPE_P(dataTypes) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&bindType); + if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, dataTypes, &position, 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Incomplete number of bind types", "phalcon/Db/Adapter/AbstractAdapter.zep", 831); + return; + } + zephir_array_append(&bindDataTypes, &bindType, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 834); + } + } + } + ZEPHIR_CALL_METHOD(NULL, &values, "next", NULL, 0); + zephir_check_call_status(); } -vv336: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv337; - } -vv337: + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&position); + ZEPHIR_INIT_VAR(&_16); + ZVAL_STRING(&_16, "."); + ZEPHIR_INIT_VAR(&_17); + zephir_fast_strpos(&_17, &table, &_16, 0 ); + if (ZEPHIR_GT_LONG(&_17, 0)) { + ZEPHIR_INIT_VAR(&tableName); + zephir_fast_explode_str(&tableName, SL("."), &table, LONG_MAX); + } else { + ZEPHIR_CPY_WRT(&tableName, &table); + } + ZEPHIR_CALL_METHOD(&escapedTable, this_ptr, "escapeidentifier", NULL, 0, &tableName); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&joinedValues); + zephir_fast_join_str(&joinedValues, SL(", "), &placeholders); + ZEPHIR_INIT_VAR(&insertSql); + if (Z_TYPE_P(fields) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&escapedFields); + array_init(&escapedFields); + zephir_is_iterable(fields, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 860); + if (Z_TYPE_P(fields) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(fields), _18$$22) { - s->statement_position++; - token->opcode = PHVOLT_T_INCLUDE; - return 0; + ZEPHIR_INIT_NVAR(&field); + ZVAL_COPY(&field, _18$$22); + ZEPHIR_CALL_METHOD(&_20$$23, this_ptr, "escapeidentifier", NULL, 0, &field); + zephir_check_call_status(); + zephir_array_append(&escapedFields, &_20$$23, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 857); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, fields, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_19$$22, fields, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_19$$22)) { + break; + } + ZEPHIR_CALL_METHOD(&field, fields, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_21$$24, this_ptr, "escapeidentifier", NULL, 0, &field); + zephir_check_call_status(); + zephir_array_append(&escapedFields, &_21$$24, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 857); + ZEPHIR_CALL_METHOD(NULL, fields, "next", NULL, 0); + zephir_check_call_status(); + } } -vv338: - vvch = *++VVCURSOR; - switch (vvch) { - case 'E': - case 'e': goto vv354; - default: goto vv54; + ZEPHIR_INIT_NVAR(&field); + ZEPHIR_INIT_VAR(&_22$$22); + zephir_fast_join_str(&_22$$22, SL(", "), &escapedFields); + ZEPHIR_CONCAT_SVSVSVS(&insertSql, "INSERT INTO ", &escapedTable, " (", &_22$$22, ") VALUES (", &joinedValues, ")"); + } else { + ZEPHIR_CONCAT_SVSVS(&insertSql, "INSERT INTO ", &escapedTable, " VALUES (", &joinedValues, ")"); + } + if (!(zephir_fast_count_int(&bindDataTypes))) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &insertSql, &insertValues); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &insertSql, &insertValues, &bindDataTypes); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, insertAsDict) +{ + zend_string *_4; + zend_ulong _3; + zend_bool _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *table_param = NULL, *data, data_sub, *dataTypes = NULL, dataTypes_sub, __$null, values, fields, field, value, *_1, _2; + zval table; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&dataTypes_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&values); + ZVAL_UNDEF(&fields); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(table) + Z_PARAM_ZVAL(data) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(dataTypes) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 1, &table_param, &data, &dataTypes); + zephir_get_strval(&table, table_param); + if (!dataTypes) { + dataTypes = &dataTypes_sub; + dataTypes = &__$null; + } + + + ZEPHIR_INIT_VAR(&values); + array_init(&values); + ZEPHIR_INIT_VAR(&fields); + array_init(&fields); + _0 = Z_TYPE_P(data) != IS_ARRAY; + if (!(_0)) { + _0 = ZEPHIR_IS_EMPTY(data); + } + if (_0) { + RETURN_MM_BOOL(0); + } + zephir_is_iterable(data, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 906); + if (Z_TYPE_P(data) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(data), _3, _4, _1) + { + ZEPHIR_INIT_NVAR(&field); + if (_4 != NULL) { + ZVAL_STR_COPY(&field, _4); + } else { + ZVAL_LONG(&field, _3); } -vv339: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv340; + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _1); + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 902); + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 903); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, data, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, data, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; } -vv340: - { - s->statement_position++; - token->opcode = PHVOLT_T_NUMERIC; - return 0; - } -vv341: - ++VVCURSOR; - { - s->statement_position++; - token->opcode = PHVOLT_T_NOTEQUALS; - return 0; + ZEPHIR_CALL_METHOD(&field, data, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, data, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 902); + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 903); + ZEPHIR_CALL_METHOD(NULL, data, "next", NULL, 0); + zephir_check_call_status(); } -vv343: - vvch = *++VVCURSOR; - switch (vvch) { - case 'P': - case 'p': goto vv356; - default: goto vv54; - } -vv344: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv345; + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&field); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "insert", NULL, 0, &table, &values, &fields, dataTypes); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, isNestedTransactionsWithSavepoints) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "transactionsWithSavepoints"); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, limit) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long number, ZEPHIR_LAST_CALL_STATUS; + zval *sqlQuery_param = NULL, *number_param = NULL, _0, _1; + zval sqlQuery; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&sqlQuery); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(sqlQuery) + Z_PARAM_LONG(number) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &sqlQuery_param, &number_param); + if (UNEXPECTED(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { + zephir_get_strval(&sqlQuery, sqlQuery_param); + } else { + ZEPHIR_INIT_VAR(&sqlQuery); + } + number = zephir_get_intval(number_param); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_1, number); + ZEPHIR_RETURN_CALL_METHOD(&_0, "limit", NULL, 0, &sqlQuery, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, listTables) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *schemaName_param = NULL, tables, table, allTables, _0, _1, _2, *_3, _4, _5$$3, _6$$4; + zval schemaName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&tables); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&allTables); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schemaName) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &schemaName_param); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + } + + + ZEPHIR_INIT_VAR(&allTables); + array_init(&allTables); + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "listtables", NULL, 0, &schemaName); + zephir_check_call_status(); + ZVAL_LONG(&_2, 3); + ZEPHIR_CALL_METHOD(&tables, this_ptr, "fetchall", NULL, 0, &_1, &_2); + zephir_check_call_status(); + zephir_is_iterable(&tables, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 953); + if (Z_TYPE_P(&tables) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&tables), _3) + { + ZEPHIR_INIT_NVAR(&table); + ZVAL_COPY(&table, _3); + zephir_array_fetch_long(&_5$$3, &table, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 950); + zephir_array_append(&allTables, &_5$$3, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 950); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &tables, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_4, &tables, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_4)) { + break; } -vv345: - { - s->statement_position++; - token->opcode = PHVOLT_T_CONTINUE; - return 0; + ZEPHIR_CALL_METHOD(&table, &tables, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_fetch_long(&_6$$4, &table, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 950); + zephir_array_append(&allTables, &_6$$4, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 950); + ZEPHIR_CALL_METHOD(NULL, &tables, "next", NULL, 0); + zephir_check_call_status(); } -vv346: - vvch = *++VVCURSOR; - switch (vvch) { - case 'S': - case 's': goto vv357; - default: goto vv54; + } + ZEPHIR_INIT_NVAR(&table); + RETURN_CCTOR(&allTables); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, listViews) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *schemaName_param = NULL, tables, table, allTables, _0, _1, _2, *_3, _4, _5$$3, _6$$4; + zval schemaName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&tables); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&allTables); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schemaName) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &schemaName_param); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + } + + + ZEPHIR_INIT_VAR(&allTables); + array_init(&allTables); + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "listviews", NULL, 0, &schemaName); + zephir_check_call_status(); + ZVAL_LONG(&_2, 3); + ZEPHIR_CALL_METHOD(&tables, this_ptr, "fetchall", NULL, 0, &_1, &_2); + zephir_check_call_status(); + zephir_is_iterable(&tables, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 980); + if (Z_TYPE_P(&tables) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&tables), _3) + { + ZEPHIR_INIT_NVAR(&table); + ZVAL_COPY(&table, _3); + zephir_array_fetch_long(&_5$$3, &table, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 977); + zephir_array_append(&allTables, &_5$$3, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 977); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &tables, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_4, &tables, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_4)) { + break; } -vv347: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv348; + ZEPHIR_CALL_METHOD(&table, &tables, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_fetch_long(&_6$$4, &table, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 977); + zephir_array_append(&allTables, &_6$$4, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 977); + ZEPHIR_CALL_METHOD(NULL, &tables, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&table); + RETURN_CCTOR(&allTables); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, modifyColumn) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, *column, column_sub, *currentColumn = NULL, currentColumn_sub, __$null, _0, _1; + zval tableName, schemaName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(¤tColumn_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 4) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + Z_PARAM_OPTIONAL + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(currentColumn, phalcon_db_columninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 1, &tableName_param, &schemaName_param, &column, ¤tColumn); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + if (!currentColumn) { + currentColumn = ¤tColumn_sub; + currentColumn = &__$null; + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "modifycolumn", NULL, 0, &tableName, &schemaName, column, currentColumn); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_1); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, releaseSavepoint) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, dialect, _0, _1, _2, _3; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&dialect); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&dialect, &_0); + ZEPHIR_CALL_METHOD(&_1, &dialect, "supportssavepoints", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(!zephir_is_true(&_1))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/Db/Adapter/AbstractAdapter.zep", 1010); + return; + } + ZEPHIR_CALL_METHOD(&_2, &dialect, "supportsreleasesavepoints", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_2))) { + RETURN_MM_BOOL(0); + } + ZEPHIR_CALL_METHOD(&_3, &dialect, "releasesavepoint", NULL, 0, &name); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_3); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, rollbackSavepoint) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, dialect, _0, _1, _2; + zval name; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&dialect); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &name_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&dialect, &_0); + ZEPHIR_CALL_METHOD(&_1, &dialect, "supportssavepoints", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(!zephir_is_true(&_1))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/Db/Adapter/AbstractAdapter.zep", 1034); + return; + } + ZEPHIR_CALL_METHOD(&_2, &dialect, "rollbacksavepoint", NULL, 0, &name); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_2); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, setEventsManager) +{ + zval *eventsManager, eventsManager_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&eventsManager_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(eventsManager, phalcon_events_managerinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &eventsManager); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("eventsManager"), eventsManager); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, setDialect) +{ + zval *dialect, dialect_sub; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&dialect_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(dialect, phalcon_db_dialectinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + zephir_fetch_params_without_memory_grow(1, 0, &dialect); + + + zephir_update_property_zval(this_ptr, ZEND_STRL("dialect"), dialect); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, setNestedTransactionsWithSavepoints) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *nestedTransactionsWithSavepoints_param = NULL, __$true, __$false, _0, _1, _2; + zend_bool nestedTransactionsWithSavepoints; + zval *this_ptr = getThis(); + + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(nestedTransactionsWithSavepoints) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &nestedTransactionsWithSavepoints_param); + nestedTransactionsWithSavepoints = zephir_get_boolval(nestedTransactionsWithSavepoints_param); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("transactionLevel"), PH_NOISY_CC | PH_READONLY); + if (UNEXPECTED(ZEPHIR_GT_LONG(&_0, 0))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Nested transaction with savepoints behavior cannot be changed while a transaction is open", "phalcon/Db/Adapter/AbstractAdapter.zep", 1066); + return; + } + zephir_read_property(&_1, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_2, &_1, "supportssavepoints", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(!zephir_is_true(&_2))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Savepoints are not supported by this database adapter", "phalcon/Db/Adapter/AbstractAdapter.zep", 1072); + return; + } + if (nestedTransactionsWithSavepoints) { + zephir_update_property_zval(this_ptr, ZEND_STRL("transactionsWithSavepoints"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("transactionsWithSavepoints"), &__$false); + } + RETURN_THIS(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, sharedLock) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *sqlQuery_param = NULL, _0; + zval sqlQuery; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&sqlQuery); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(sqlQuery) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &sqlQuery_param); + if (UNEXPECTED(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { + zephir_get_strval(&sqlQuery, sqlQuery_param); + } else { + ZEPHIR_INIT_VAR(&sqlQuery); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "sharedlock", NULL, 0, &sqlQuery); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, supportSequences) +{ + zval *this_ptr = getThis(); + + + + RETURN_BOOL(0); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, tableExists) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, _0, _1, _2, _3, _4; + zval tableName, schemaName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(tableName) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schemaName) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + } + + + zephir_read_property(&_1, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_2, &_1, "tableexists", NULL, 0, &tableName, &schemaName); + zephir_check_call_status(); + ZVAL_LONG(&_3, 3); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchone", NULL, 0, &_2, &_3); + zephir_check_call_status(); + zephir_array_fetch_long(&_4, &_0, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 1108); + RETURN_MM_BOOL(ZEPHIR_GT_LONG(&_4, 0)); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, tableOptions) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, sql, _0, _1, _2, _3; + zval tableName, schemaName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(tableName) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schemaName) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + zephir_get_strval(&schemaName, schemaName_param); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&sql, &_0, "tableoptions", NULL, 0, &tableName, &schemaName); + zephir_check_call_status(); + if (!(zephir_is_true(&sql))) { + array_init(return_value); + RETURN_MM(); + } + ZVAL_LONG(&_2, 2); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "fetchall", NULL, 0, &sql, &_2); + zephir_check_call_status(); + zephir_array_fetch_long(&_3, &_1, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 1130); + RETURN_CTOR(&_3); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, update) +{ + zend_bool _5$$3, _11$$12; + zend_string *_3; + zend_ulong _2; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_4 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *table_param = NULL, *fields, fields_sub, *values, values_sub, *whereCondition = NULL, whereCondition_sub, *dataTypes = NULL, dataTypes_sub, __$null, bindDataTypes, bindType, conditions, escapedField, escapedTable, field, placeholders, position, setClause, tableName, updateSql, updateValues, value, whereBind, whereTypes, *_0, _1, _17, _18, _7$$5, _9$$8, _10$$9, _13$$14, _15$$17, _16$$18; + zval table, _6$$5, _8$$7, _12$$14, _14$$16; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_8$$7); + ZVAL_UNDEF(&_12$$14); + ZVAL_UNDEF(&_14$$16); + ZVAL_UNDEF(&fields_sub); + ZVAL_UNDEF(&values_sub); + ZVAL_UNDEF(&whereCondition_sub); + ZVAL_UNDEF(&dataTypes_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&bindDataTypes); + ZVAL_UNDEF(&bindType); + ZVAL_UNDEF(&conditions); + ZVAL_UNDEF(&escapedField); + ZVAL_UNDEF(&escapedTable); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&placeholders); + ZVAL_UNDEF(&position); + ZVAL_UNDEF(&setClause); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&updateSql); + ZVAL_UNDEF(&updateValues); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&whereBind); + ZVAL_UNDEF(&whereTypes); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_17); + ZVAL_UNDEF(&_18); + ZVAL_UNDEF(&_7$$5); + ZVAL_UNDEF(&_9$$8); + ZVAL_UNDEF(&_10$$9); + ZVAL_UNDEF(&_13$$14); + ZVAL_UNDEF(&_15$$17); + ZVAL_UNDEF(&_16$$18); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 5) + Z_PARAM_STR(table) + Z_PARAM_ZVAL(fields) + Z_PARAM_ZVAL(values) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(whereCondition) + Z_PARAM_ZVAL_OR_NULL(dataTypes) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 2, &table_param, &fields, &values, &whereCondition, &dataTypes); + zephir_get_strval(&table, table_param); + if (!whereCondition) { + whereCondition = &whereCondition_sub; + whereCondition = &__$null; + } + if (!dataTypes) { + dataTypes = &dataTypes_sub; + dataTypes = &__$null; + } + + + ZEPHIR_INIT_VAR(&placeholders); + array_init(&placeholders); + ZEPHIR_INIT_VAR(&updateValues); + array_init(&updateValues); + ZEPHIR_INIT_VAR(&bindDataTypes); + array_init(&bindDataTypes); + zephir_is_iterable(values, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 1220); + if (Z_TYPE_P(values) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(values), _2, _3, _0) + { + ZEPHIR_INIT_NVAR(&position); + if (_3 != NULL) { + ZVAL_STR_COPY(&position, _3); + } else { + ZVAL_LONG(&position, _2); } -vv348: - { - token->opcode = PHVOLT_T_ENDBLOCK; - return 0; - } -vv349: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv350; + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0); + ZEPHIR_OBS_NVAR(&field); + if (UNEXPECTED(!(zephir_array_isset_fetch(&field, fields, &position, 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The number of values in the update is not the same as fields", "phalcon/Db/Adapter/AbstractAdapter.zep", 1185); + return; } -vv350: - { - token->opcode = PHVOLT_T_ENDCACHE; - return 0; - } -vv351: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv352; + ZEPHIR_CALL_METHOD(&escapedField, this_ptr, "escapeidentifier", &_4, 0, &field); + zephir_check_call_status(); + _5$$3 = Z_TYPE_P(&value) == IS_OBJECT; + if (_5$$3) { + _5$$3 = zephir_instance_of_ev(&value, phalcon_db_rawvalue_ce); } -vv352: - { - token->opcode = PHVOLT_T_ENDMACRO; - return 0; - } -vv353: - vvch = *++VVCURSOR; - switch (vvch) { - case 'H': - case 'h': goto vv358; - default: goto vv54; + if (_5$$3) { + zephir_cast_to_string(&_6$$5, &value); + ZEPHIR_INIT_NVAR(&_7$$5); + ZEPHIR_CONCAT_VSV(&_7$$5, &escapedField, " = ", &_6$$5); + zephir_array_append(&placeholders, &_7$$5, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1191); + } else { + if (Z_TYPE_P(&value) == IS_OBJECT) { + zephir_cast_to_string(&_8$$7, &value); + ZEPHIR_CPY_WRT(&value, &_8$$7); + } + if (Z_TYPE_P(&value) == IS_NULL) { + ZEPHIR_INIT_NVAR(&_9$$8); + ZEPHIR_CONCAT_VS(&_9$$8, &escapedField, " = null"); + zephir_array_append(&placeholders, &_9$$8, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1198); + } else { + zephir_array_append(&updateValues, &value, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1200); + if (Z_TYPE_P(dataTypes) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&bindType); + if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, dataTypes, &position, 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Incomplete number of bind types", "phalcon/Db/Adapter/AbstractAdapter.zep", 1206); + return; + } + zephir_array_append(&bindDataTypes, &bindType, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1209); + } + ZEPHIR_INIT_NVAR(&_10$$9); + ZEPHIR_CONCAT_VS(&_10$$9, &escapedField, " = ?"); + zephir_array_append(&placeholders, &_10$$9, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1212); + } } -vv354: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv355; + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, values, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, values, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; } -vv355: - { - s->statement_position++; - token->opcode = PHVOLT_T_ITERABLE; - return 0; + ZEPHIR_CALL_METHOD(&position, values, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, values, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&field); + if (UNEXPECTED(!(zephir_array_isset_fetch(&field, fields, &position, 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The number of values in the update is not the same as fields", "phalcon/Db/Adapter/AbstractAdapter.zep", 1185); + return; + } + ZEPHIR_CALL_METHOD(&escapedField, this_ptr, "escapeidentifier", &_4, 0, &field); + zephir_check_call_status(); + _11$$12 = Z_TYPE_P(&value) == IS_OBJECT; + if (_11$$12) { + _11$$12 = zephir_instance_of_ev(&value, phalcon_db_rawvalue_ce); + } + if (_11$$12) { + zephir_cast_to_string(&_12$$14, &value); + ZEPHIR_INIT_NVAR(&_13$$14); + ZEPHIR_CONCAT_VSV(&_13$$14, &escapedField, " = ", &_12$$14); + zephir_array_append(&placeholders, &_13$$14, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1191); + } else { + if (Z_TYPE_P(&value) == IS_OBJECT) { + zephir_cast_to_string(&_14$$16, &value); + ZEPHIR_CPY_WRT(&value, &_14$$16); + } + if (Z_TYPE_P(&value) == IS_NULL) { + ZEPHIR_INIT_NVAR(&_15$$17); + ZEPHIR_CONCAT_VS(&_15$$17, &escapedField, " = null"); + zephir_array_append(&placeholders, &_15$$17, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1198); + } else { + zephir_array_append(&updateValues, &value, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1200); + if (Z_TYPE_P(dataTypes) == IS_ARRAY) { + ZEPHIR_OBS_NVAR(&bindType); + if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, dataTypes, &position, 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Incomplete number of bind types", "phalcon/Db/Adapter/AbstractAdapter.zep", 1206); + return; + } + zephir_array_append(&bindDataTypes, &bindType, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1209); + } + ZEPHIR_INIT_NVAR(&_16$$18); + ZEPHIR_CONCAT_VS(&_16$$18, &escapedField, " = ?"); + zephir_array_append(&placeholders, &_16$$18, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1212); + } + } + ZEPHIR_CALL_METHOD(NULL, values, "next", NULL, 0); + zephir_check_call_status(); } -vv356: - vvch = *++VVCURSOR; - switch (vvch) { - case 'E': - case 'e': goto vv360; - default: goto vv54; + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&position); + ZEPHIR_INIT_VAR(&_17); + ZVAL_STRING(&_17, "."); + ZEPHIR_INIT_VAR(&_18); + zephir_fast_strpos(&_18, &table, &_17, 0 ); + if (ZEPHIR_GT_LONG(&_18, 0)) { + ZEPHIR_INIT_VAR(&tableName); + zephir_fast_explode_str(&tableName, SL("."), &table, LONG_MAX); + } else { + ZEPHIR_CPY_WRT(&tableName, &table); + } + ZEPHIR_CALL_METHOD(&escapedTable, this_ptr, "escapeidentifier", &_4, 0, &tableName); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&setClause); + zephir_fast_join_str(&setClause, SL(", "), &placeholders); + ZEPHIR_INIT_VAR(&updateSql); + if (Z_TYPE_P(whereCondition) != IS_NULL) { + ZEPHIR_CONCAT_SVSVS(&updateSql, "UPDATE ", &escapedTable, " SET ", &setClause, " WHERE "); + if (Z_TYPE_P(whereCondition) == IS_STRING) { + zephir_concat_self(&updateSql, whereCondition); + } else { + if (UNEXPECTED(Z_TYPE_P(whereCondition) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid WHERE clause conditions", "phalcon/Db/Adapter/AbstractAdapter.zep", 1243); + return; } -vv357: - vvch = *++VVCURSOR; - switch (vvch) { - case 'C': - case 'c': goto vv362; - default: goto vv54; + ZEPHIR_OBS_VAR(&conditions); + if (zephir_array_isset_string_fetch(&conditions, whereCondition, SL("conditions"), 0)) { + zephir_concat_self(&updateSql, &conditions); } -vv358: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv359; + ZEPHIR_OBS_VAR(&whereBind); + if (zephir_array_isset_string_fetch(&whereBind, whereCondition, SL("bind"), 0)) { + zephir_merge_append(&updateValues, &whereBind); } -vv359: - { - token->opcode = PHVOLT_T_ENDSWITCH; - return 0; - } -vv360: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv361; + ZEPHIR_OBS_VAR(&whereTypes); + if (zephir_array_isset_string_fetch(&whereTypes, whereCondition, SL("bindTypes"), 0)) { + zephir_merge_append(&bindDataTypes, &whereTypes); } -vv361: - { - s->statement_position++; - token->opcode = PHVOLT_T_AUTOESCAPE; - return 0; } -vv362: - vvch = *++VVCURSOR; - switch (vvch) { - case 'A': - case 'a': goto vv363; - default: goto vv54; - } -vv363: - vvch = *++VVCURSOR; - switch (vvch) { - case 'P': - case 'p': goto vv364; - default: goto vv54; - } -vv364: - vvch = *++VVCURSOR; - switch (vvch) { - case 'E': - case 'e': goto vv365; - default: goto vv54; + } else { + ZEPHIR_CONCAT_SVSV(&updateSql, "UPDATE ", &escapedTable, " SET ", &setClause); + } + if (!(zephir_fast_count_int(&bindDataTypes))) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &updateSql, &updateValues); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &updateSql, &updateValues, &bindDataTypes); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, updateAsDict) +{ + zend_string *_4; + zend_ulong _3; + zend_bool _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *table_param = NULL, *data, data_sub, *whereCondition = NULL, whereCondition_sub, *dataTypes = NULL, dataTypes_sub, __$null, values, fields, field, value, *_1, _2; + zval table; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&whereCondition_sub); + ZVAL_UNDEF(&dataTypes_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&values); + ZVAL_UNDEF(&fields); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 4) + Z_PARAM_STR(table) + Z_PARAM_ZVAL(data) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(whereCondition) + Z_PARAM_ZVAL_OR_NULL(dataTypes) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 2, &table_param, &data, &whereCondition, &dataTypes); + zephir_get_strval(&table, table_param); + if (!whereCondition) { + whereCondition = &whereCondition_sub; + whereCondition = &__$null; + } + if (!dataTypes) { + dataTypes = &dataTypes_sub; + dataTypes = &__$null; + } + + + ZEPHIR_INIT_VAR(&values); + array_init(&values); + ZEPHIR_INIT_VAR(&fields); + array_init(&fields); + _0 = Z_TYPE_P(data) != IS_ARRAY; + if (!(_0)) { + _0 = ZEPHIR_IS_EMPTY(data); + } + if (_0) { + RETURN_MM_BOOL(0); + } + zephir_is_iterable(data, 0, "phalcon/Db/Adapter/AbstractAdapter.zep", 1316); + if (Z_TYPE_P(data) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(data), _3, _4, _1) + { + ZEPHIR_INIT_NVAR(&field); + if (_4 != NULL) { + ZVAL_STR_COPY(&field, _4); + } else { + ZVAL_LONG(&field, _3); } -vv365: - vvch = *++VVCURSOR; - switch (vvch) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '\\': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto vv53; - default: goto vv366; + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _1); + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1312); + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1313); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, data, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2, data, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2)) { + break; } -vv366: - { - s->statement_position++; - token->opcode = PHVOLT_T_ENDAUTOESCAPE; - return 0; - } + ZEPHIR_CALL_METHOD(&field, data, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, data, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1312); + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Db/Adapter/AbstractAdapter.zep", 1313); + ZEPHIR_CALL_METHOD(NULL, data, "next", NULL, 0); + zephir_check_call_status(); } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&field); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "update", NULL, 0, &table, &fields, &values, whereCondition, dataTypes); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, useExplicitIdValue) +{ + zval *this_ptr = getThis(); - } + + RETURN_BOOL(0); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, supportsDefaultValue) +{ + zval *this_ptr = getThis(); + + + + RETURN_BOOL(1); +} + +static PHP_METHOD(Phalcon_Db_Adapter_AbstractAdapter, viewExists) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *viewName_param = NULL, *schemaName_param = NULL, _0, _1, _2, _3, _4; + zval viewName, schemaName; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&viewName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(viewName) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schemaName) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName_param); + if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(&viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(&viewName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } } - return status; + + zephir_read_property(&_1, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_2, &_1, "viewexists", NULL, 0, &viewName, &schemaName); + zephir_check_call_status(); + ZVAL_LONG(&_3, 3); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchone", NULL, 0, &_2, &_3); + zephir_check_call_status(); + zephir_array_fetch_long(&_4, &_0, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/AbstractAdapter.zep", 1349); + RETURN_MM_BOOL(ZEPHIR_GT_LONG(&_4, 0)); +} + +zend_object *zephir_init_properties_Phalcon_Db_Adapter_AbstractAdapter(zend_class_entry *class_type) +{ + zval _0, _2, _1$$3, _3$$4; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + + + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("sqlBindTypes"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("sqlBindTypes"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("descriptor"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("descriptor"), &_3$$4); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } } + #ifdef HAVE_CONFIG_H #endif @@ -192355,13 +187229,80 @@ static int phvolt_get_token(phvolt_scanner_state *s, phvolt_scanner_token *token -ZEPHIR_INIT_CLASS(Phalcon_Paginator_Exception) +ZEPHIR_INIT_CLASS(Phalcon_Db_Adapter_AdapterInterface) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator, Exception, phalcon, paginator_exception, phalcon_exception_ce, NULL, 0); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Db\\Adapter, AdapterInterface, phalcon, db_adapter_adapterinterface, phalcon_db_adapter_adapterinterface_method_entry); return SUCCESS; } +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, addColumn); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, addIndex); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, addForeignKey); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, addPrimaryKey); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, affectedRows); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, begin); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, close); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, commit); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, connect); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, createSavepoint); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, createTable); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, createView); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, delete); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, describeColumns); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, describeIndexes); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, describeReferences); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, dropColumn); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, dropForeignKey); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, dropIndex); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, dropPrimaryKey); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, dropTable); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, dropView); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, escapeIdentifier); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, escapeString); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, execute); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, fetchAll); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, fetchColumn); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, fetchOne); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, forUpdate); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getColumnDefinition); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getColumnList); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getConnectionId); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getDescriptor); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getDialect); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getDialectType); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getDefaultIdValue); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getDefaultValue); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getInternalHandler); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getNestedTransactionSavepointName); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getRealSQLStatement); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getSQLStatement); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getSQLBindTypes); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getSQLVariables); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, getType); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, insert); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, insertAsDict); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, isNestedTransactionsWithSavepoints); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, isUnderTransaction); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, lastInsertId); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, limit); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, listTables); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, listViews); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, modifyColumn); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, query); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, releaseSavepoint); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, rollback); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, rollbackSavepoint); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, sharedLock); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, setNestedTransactionsWithSavepoints); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, supportSequences); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, tableExists); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, tableOptions); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, update); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, updateAsDict); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, useExplicitIdValue); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, supportsDefaultValue); +ZEPHIR_DOC_METHOD(Phalcon_Db_Adapter_AdapterInterface, viewExists); @@ -192372,15 +187313,15 @@ ZEPHIR_INIT_CLASS(Phalcon_Paginator_Exception) -ZEPHIR_INIT_CLASS(Phalcon_Paginator_PaginatorFactory) +ZEPHIR_INIT_CLASS(Phalcon_Db_Adapter_PdoFactory) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator, PaginatorFactory, phalcon, paginator_paginatorfactory, phalcon_factory_abstractfactory_ce, phalcon_paginator_paginatorfactory_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Adapter, PdoFactory, phalcon, db_adapter_pdofactory, phalcon_factory_abstractfactory_ce, phalcon_db_adapter_pdofactory_method_entry, 0); - zend_declare_property_string(phalcon_paginator_paginatorfactory_ce, SL("exception"), "Phalcon\\Annotations\\Exception", ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_db_adapter_pdofactory_ce, SL("exception"), "Phalcon\\Db\\Exception", ZEND_ACC_PROTECTED); return SUCCESS; } -static PHP_METHOD(Phalcon_Paginator_PaginatorFactory, __construct) +static PHP_METHOD(Phalcon_Db_Adapter_PdoFactory, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; @@ -192413,7 +187354,7 @@ static PHP_METHOD(Phalcon_Paginator_PaginatorFactory, __construct) ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Paginator_PaginatorFactory, load) +static PHP_METHOD(Phalcon_Db_Adapter_PdoFactory, load) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zephir_fcall_cache_entry *_1 = NULL; @@ -192444,7 +187385,8 @@ static PHP_METHOD(Phalcon_Paginator_PaginatorFactory, load) zephir_check_call_status(); ZEPHIR_CPY_WRT(config, &_0); ZEPHIR_OBS_VAR(&name); - zephir_array_fetch_string(&name, config, SL("adapter"), PH_NOISY, "phalcon/Paginator/PaginatorFactory.zep", 64); + zephir_array_fetch_string(&name, config, SL("adapter"), PH_NOISY, "phalcon/Db/Adapter/PdoFactory.zep", 51); + zephir_array_unset_string(config, SL("adapter"), PH_SEPARATE); ZEPHIR_INIT_VAR(&_2); array_init(&_2); ZEPHIR_INIT_VAR(&_3); @@ -192456,7 +187398,7 @@ static PHP_METHOD(Phalcon_Paginator_PaginatorFactory, load) RETURN_MM(); } -static PHP_METHOD(Phalcon_Paginator_PaginatorFactory, newInstance) +static PHP_METHOD(Phalcon_Db_Adapter_PdoFactory, newInstance) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; @@ -192508,16 +187450,16 @@ static PHP_METHOD(Phalcon_Paginator_PaginatorFactory, newInstance) RETURN_MM(); } -static PHP_METHOD(Phalcon_Paginator_PaginatorFactory, getAdapters) +static PHP_METHOD(Phalcon_Db_Adapter_PdoFactory, getAdapters) { zval *this_ptr = getThis(); zephir_create_array(return_value, 3, 0); - add_assoc_stringl_ex(return_value, SL("model"), SL("Phalcon\\Paginator\\Adapter\\Model")); - add_assoc_stringl_ex(return_value, SL("nativeArray"), SL("Phalcon\\Paginator\\Adapter\\NativeArray")); - add_assoc_stringl_ex(return_value, SL("queryBuilder"), SL("Phalcon\\Paginator\\Adapter\\QueryBuilder")); + add_assoc_stringl_ex(return_value, SL("mysql"), SL("Phalcon\\Db\\Adapter\\Pdo\\Mysql")); + add_assoc_stringl_ex(return_value, SL("postgresql"), SL("Phalcon\\Db\\Adapter\\Pdo\\Postgresql")); + add_assoc_stringl_ex(return_value, SL("sqlite"), SL("Phalcon\\Db\\Adapter\\Pdo\\Sqlite")); return; } @@ -192531,808 +187473,1553 @@ static PHP_METHOD(Phalcon_Paginator_PaginatorFactory, getAdapters) -ZEPHIR_INIT_CLASS(Phalcon_Paginator_Repository) +ZEPHIR_INIT_CLASS(Phalcon_Db_Adapter_Pdo_AbstractPdo) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Paginator, Repository, phalcon, paginator_repository, phalcon_paginator_repository_method_entry, 0); - - zend_declare_property_null(phalcon_paginator_repository_ce, SL("aliases"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_paginator_repository_ce, SL("properties"), ZEND_ACC_PROTECTED); - phalcon_paginator_repository_ce->create_object = zephir_init_properties_Phalcon_Paginator_Repository; + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Adapter\\Pdo, AbstractPdo, phalcon, db_adapter_pdo_abstractpdo, phalcon_db_adapter_abstractadapter_ce, phalcon_db_adapter_pdo_abstractpdo_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - zend_class_implements(phalcon_paginator_repository_ce, 1, phalcon_paginator_repositoryinterface_ce); - zend_class_implements(phalcon_paginator_repository_ce, 1, zephir_get_internal_ce(SL("jsonserializable"))); + zend_declare_property_long(phalcon_db_adapter_pdo_abstractpdo_ce, SL("affectedRows"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_adapter_pdo_abstractpdo_ce, SL("pdo"), ZEND_ACC_PROTECTED); return SUCCESS; } -static PHP_METHOD(Phalcon_Paginator_Repository, __get) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_0 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *property_param = NULL, method, _0, _1, _2, _3; - zval property; + zval *descriptor_param = NULL; + zval descriptor; zval *this_ptr = getThis(); - ZVAL_UNDEF(&property); - ZVAL_UNDEF(&method); + ZVAL_UNDEF(&descriptor); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(descriptor) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &descriptor_param); + ZEPHIR_OBS_COPY_OR_DUP(&descriptor, descriptor_param); + + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "connect", NULL, 0, &descriptor); + zephir_check_call_status(); + ZEPHIR_CALL_PARENT(NULL, phalcon_db_adapter_pdo_abstractpdo_ce, getThis(), "__construct", &_0, 0, &descriptor); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, affectedRows) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "affectedRows"); +} + +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, begin) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS, transactionLevel = 0; + zval *nesting_param = NULL, eventsManager, savepointName, _0, _5, _6, _1$$3, _2$$4, _7$$6; + zend_bool nesting, _3, _4; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&eventsManager); + ZVAL_UNDEF(&savepointName); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_7$$6); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(nesting) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &nesting_param); + if (!nesting_param) { + nesting = 1; + } else { + nesting = zephir_get_boolval(nesting_param); + } + + + RETURN_ON_FAILURE(zephir_property_incr(this_ptr, SL("transactionLevel"))); + ZEPHIR_OBS_VAR(&_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("transactionLevel"), PH_NOISY_CC); + transactionLevel = zephir_get_intval(&_0); + if (transactionLevel == 1) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_1$$3); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_2$$4); + ZVAL_STRING(&_2$$4, "db:beginTransaction"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_2$$4, this_ptr); + zephir_check_call_status(); + } + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_1$$3, "begintransaction", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); + } + _3 = !transactionLevel; + if (!(_3)) { + _3 = !nesting; + } + _4 = _3; + if (!(_4)) { + ZEPHIR_CALL_METHOD(&_5, this_ptr, "isnestedtransactionswithsavepoints", NULL, 0); + zephir_check_call_status(); + _4 = !zephir_is_true(&_5); + } + if (_4) { + RETURN_MM_BOOL(0); + } + zephir_read_property(&_6, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_6); + ZEPHIR_CALL_METHOD(&savepointName, this_ptr, "getnestedtransactionsavepointname", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_7$$6); + ZVAL_STRING(&_7$$6, "db:createSavepoint"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_7$$6, this_ptr, &savepointName); + zephir_check_call_status(); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "createsavepoint", NULL, 0, &savepointName); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, commit) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS, transactionLevel = 0; + zval *nesting_param = NULL, eventsManager, savepointName, _0, _5, _6, _1$$4, _2$$5, _7$$8; + zend_bool nesting, _3, _4; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&eventsManager); + ZVAL_UNDEF(&savepointName); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&_7$$8); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(nesting) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &nesting_param); + if (!nesting_param) { + nesting = 1; + } else { + nesting = zephir_get_boolval(nesting_param); + } + + + ZEPHIR_OBS_VAR(&_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("transactionLevel"), PH_NOISY_CC); + transactionLevel = zephir_get_intval(&_0); + if (UNEXPECTED(!transactionLevel)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "There is no active transaction", "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 154); + return; + } + if (transactionLevel == 1) { + zephir_read_property(&_1$$4, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_1$$4); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_2$$5); + ZVAL_STRING(&_2$$5, "db:commitTransaction"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_2$$5, this_ptr); + zephir_check_call_status(); + } + RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("transactionLevel"))); + zephir_read_property(&_1$$4, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_1$$4, "commit", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); + } + _3 = !transactionLevel; + if (!(_3)) { + _3 = !nesting; + } + _4 = _3; + if (!(_4)) { + ZEPHIR_CALL_METHOD(&_5, this_ptr, "isnestedtransactionswithsavepoints", NULL, 0); + zephir_check_call_status(); + _4 = !zephir_is_true(&_5); + } + if (_4) { + if (transactionLevel > 0) { + RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("transactionLevel"))); + } + RETURN_MM_BOOL(0); + } + zephir_read_property(&_6, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_6); + ZEPHIR_CALL_METHOD(&savepointName, this_ptr, "getnestedtransactionsavepointname", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_7$$8); + ZVAL_STRING(&_7$$8, "db:releaseSavepoint"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_7$$8, this_ptr, &savepointName); + zephir_check_call_status(); + } + RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("transactionLevel"))); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "releasesavepoint", NULL, 0, &savepointName); + zephir_check_call_status(); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, close) +{ + zval __$null; + zval *this_ptr = getThis(); + + ZVAL_NULL(&__$null); + + + + zephir_update_property_zval(this_ptr, ZEND_STRL("pdo"), &__$null); +} + +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, connect) +{ + zend_string *_9; + zend_ulong _8; + zend_bool _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *descriptor_param = NULL, username, password, dsnAttributes, dsnAttributesCustomRaw, dsnAttributesMap, key, options, persistent, value, _2, _4, _5, *_6, _7, _12, _13, _14, _0$$3, _3$$9, _10$$11, _11$$12; + zval descriptor, dsnParts; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&descriptor); + ZVAL_UNDEF(&dsnParts); + ZVAL_UNDEF(&username); + ZVAL_UNDEF(&password); + ZVAL_UNDEF(&dsnAttributes); + ZVAL_UNDEF(&dsnAttributesCustomRaw); + ZVAL_UNDEF(&dsnAttributesMap); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&persistent); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_13); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_3$$9); + ZVAL_UNDEF(&_10$$11); + ZVAL_UNDEF(&_11$$12); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(descriptor) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &descriptor_param); + if (!descriptor_param) { + ZEPHIR_INIT_VAR(&descriptor); + array_init(&descriptor); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&descriptor, descriptor_param); + } + + + ZEPHIR_INIT_VAR(&dsnParts); + array_init(&dsnParts); + if (ZEPHIR_IS_EMPTY(&descriptor)) { + zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("descriptor"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&descriptor, &_0$$3); + } + ZEPHIR_OBS_VAR(&username); + if (zephir_array_isset_string_fetch(&username, &descriptor, SL("username"), 0)) { + zephir_array_unset_string(&descriptor, SL("username"), PH_SEPARATE); + } + ZEPHIR_OBS_VAR(&password); + if (zephir_array_isset_string_fetch(&password, &descriptor, SL("password"), 0)) { + zephir_array_unset_string(&descriptor, SL("password"), PH_SEPARATE); + } + if (zephir_array_isset_string(&descriptor, SL("dialectClass"))) { + zephir_array_unset_string(&descriptor, SL("dialectClass"), PH_SEPARATE); + } + _1 = zephir_array_isset_string(&descriptor, SL("options")); + if (_1) { + zephir_array_fetch_string(&_2, &descriptor, SL("options"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 268); + _1 = Z_TYPE_P(&_2) == IS_ARRAY; + } + if (_1) { + ZEPHIR_OBS_VAR(&options); + zephir_array_fetch_string(&options, &descriptor, SL("options"), PH_NOISY, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 269); + zephir_array_unset_string(&descriptor, SL("options"), PH_SEPARATE); + } else { + ZEPHIR_INIT_NVAR(&options); + array_init(&options); + } + ZEPHIR_OBS_VAR(&persistent); + if (zephir_array_isset_string_fetch(&persistent, &descriptor, SL("persistent"), 0)) { + ZEPHIR_INIT_VAR(&_3$$9); + ZVAL_BOOL(&_3$$9, zephir_get_boolval(&persistent)); + zephir_array_update_long(&options, 12, &_3$$9, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + } + ZEPHIR_INIT_VAR(&_4); + ZVAL_LONG(&_4, 2); + zephir_array_update_long(&options, 3, &_4, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + ZEPHIR_OBS_VAR(&dsnAttributesCustomRaw); + if (zephir_array_isset_string_fetch(&dsnAttributesCustomRaw, &descriptor, SL("dsn"), 0)) { + zephir_array_append(&dsnParts, &dsnAttributesCustomRaw, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 285); + zephir_array_unset_string(&descriptor, SL("dsn"), PH_SEPARATE); + } + ZEPHIR_CALL_METHOD(&_5, this_ptr, "getdsndefaults", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&dsnAttributesMap); + zephir_fast_array_merge(&dsnAttributesMap, &_5, &descriptor); + zephir_is_iterable(&dsnAttributesMap, 0, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 305); + if (Z_TYPE_P(&dsnAttributesMap) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&dsnAttributesMap), _8, _9, _6) + { + ZEPHIR_INIT_NVAR(&key); + if (_9 != NULL) { + ZVAL_STR_COPY(&key, _9); + } else { + ZVAL_LONG(&key, _8); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _6); + ZEPHIR_INIT_NVAR(&_10$$11); + ZEPHIR_CONCAT_VSV(&_10$$11, &key, "=", &value); + zephir_array_append(&dsnParts, &_10$$11, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 301); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &dsnAttributesMap, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_7, &dsnAttributesMap, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_7)) { + break; + } + ZEPHIR_CALL_METHOD(&key, &dsnAttributesMap, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &dsnAttributesMap, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_11$$12); + ZEPHIR_CONCAT_VSV(&_11$$12, &key, "=", &value); + zephir_array_append(&dsnParts, &_11$$12, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 301); + ZEPHIR_CALL_METHOD(NULL, &dsnAttributesMap, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + ZEPHIR_INIT_VAR(&dsnAttributes); + zephir_fast_join_str(&dsnAttributes, SL(";"), &dsnParts); + ZEPHIR_INIT_VAR(&_12); + object_init_ex(&_12, php_pdo_get_dbh_ce()); + zephir_read_property(&_13, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_14); + ZEPHIR_CONCAT_VSV(&_14, &_13, ":", &dsnAttributes); + ZEPHIR_CALL_METHOD(NULL, &_12, "__construct", NULL, 0, &_14, &username, &password, &options); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("pdo"), &_12); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, convertBoundParams) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS, setOrder = 0; + zval params; + zval *sql_param = NULL, *params_param = NULL, boundSql, placeHolders, bindPattern, matches, placeMatch, value, _0, _1, _2, *_3$$3, _4$$3, _9$$3, _5$$4, _6$$5, _7$$8, _8$$9; + zval sql; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&boundSql); + ZVAL_UNDEF(&placeHolders); + ZVAL_UNDEF(&bindPattern); + ZVAL_UNDEF(&matches); + ZVAL_UNDEF(&placeMatch); + ZVAL_UNDEF(&value); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_9$$3); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_7$$8); + ZVAL_UNDEF(&_8$$9); + ZVAL_UNDEF(¶ms); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(sql) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(params) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &sql_param, ¶ms_param); + if (UNEXPECTED(Z_TYPE_P(sql_param) != IS_STRING && Z_TYPE_P(sql_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sql' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(sql_param) == IS_STRING)) { + zephir_get_strval(&sql, sql_param); + } else { + ZEPHIR_INIT_VAR(&sql); + } + if (!params_param) { + ZEPHIR_INIT_VAR(¶ms); + array_init(¶ms); + } else { + zephir_get_arrval(¶ms, params_param); + } + + + ZEPHIR_INIT_VAR(&placeHolders); + array_init(&placeHolders); + ZEPHIR_INIT_VAR(&bindPattern); + ZVAL_STRING(&bindPattern, "/\\?([0-9]+)|:([a-zA-Z0-9_]+):/"); + ZEPHIR_INIT_VAR(&matches); + ZVAL_NULL(&matches); + setOrder = 2; + ZVAL_LONG(&_0, setOrder); + ZEPHIR_INIT_VAR(&_1); + ZVAL_LONG(&_2, setOrder); + zephir_preg_match(&_1, &bindPattern, &sql, &matches, 1, zephir_get_intval(&_0) , 0 ); + if (zephir_is_true(&_1)) { + zephir_is_iterable(&matches, 0, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 359); + if (Z_TYPE_P(&matches) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&matches), _3$$3) + { + ZEPHIR_INIT_NVAR(&placeMatch); + ZVAL_COPY(&placeMatch, _3$$3); + ZEPHIR_OBS_NVAR(&value); + zephir_array_fetch_long(&_5$$4, &placeMatch, 1, PH_READONLY, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 342); + if (!(zephir_array_isset_fetch(&value, ¶ms, &_5$$4, 0))) { + if (UNEXPECTED(!(zephir_array_isset_long(&placeMatch, 2)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Matched parameter wasn't found in parameters list", "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 346); + return; + } + ZEPHIR_OBS_NVAR(&value); + zephir_array_fetch_long(&_6$$5, &placeMatch, 2, PH_READONLY, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 349); + if (UNEXPECTED(!(zephir_array_isset_fetch(&value, ¶ms, &_6$$5, 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Matched parameter wasn't found in parameters list", "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 352); + return; + } + } + zephir_array_append(&placeHolders, &value, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 356); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &matches, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_4$$3, &matches, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_4$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&placeMatch, &matches, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&value); + zephir_array_fetch_long(&_7$$8, &placeMatch, 1, PH_READONLY, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 342); + if (!(zephir_array_isset_fetch(&value, ¶ms, &_7$$8, 0))) { + if (UNEXPECTED(!(zephir_array_isset_long(&placeMatch, 2)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Matched parameter wasn't found in parameters list", "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 346); + return; + } + ZEPHIR_OBS_NVAR(&value); + zephir_array_fetch_long(&_8$$9, &placeMatch, 2, PH_READONLY, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 349); + if (UNEXPECTED(!(zephir_array_isset_fetch(&value, ¶ms, &_8$$9, 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Matched parameter wasn't found in parameters list", "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 352); + return; + } + } + zephir_array_append(&placeHolders, &value, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 356); + ZEPHIR_CALL_METHOD(NULL, &matches, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&placeMatch); + ZEPHIR_INIT_VAR(&_9$$3); + ZVAL_STRING(&_9$$3, "?"); + ZEPHIR_CALL_FUNCTION(&boundSql, "preg_replace", NULL, 50, &bindPattern, &_9$$3, &sql); + zephir_check_call_status(); + } else { + ZEPHIR_CPY_WRT(&boundSql, &sql); + } + zephir_create_array(return_value, 2, 0); + zephir_array_update_string(return_value, SL("sql"), &boundSql, PH_COPY | PH_SEPARATE); + zephir_array_update_string(return_value, SL("params"), &placeHolders, PH_COPY | PH_SEPARATE); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, escapeString) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *str_param = NULL, _0; + zval str; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&str); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(property) + Z_PARAM_STR(str) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &property_param); - zephir_get_strval(&property, property_param); + zephir_fetch_params(1, 1, 0, &str_param); + zephir_get_strval(&str, str_param); - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getrealnameproperty", NULL, 0, &property); + zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "quote", NULL, 0, &str); zephir_check_call_status(); - zephir_camelize(&_0, &_1, NULL ); - ZEPHIR_INIT_VAR(&method); - ZEPHIR_CONCAT_SV(&method, "get", &_0); - if ((zephir_method_exists(this_ptr, &method) == SUCCESS)) { - ZEPHIR_RETURN_CALL_METHOD_ZVAL(this_ptr, &method, NULL, 0); + RETURN_MM(); +} + +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, execute) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval bindParams, bindTypes; + zval *sqlStatement_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, eventsManager, affectedRows, newStatement, statement, _0, _1$$3, _2$$3, _3$$5, _4$$7, _5$$9; + zval sqlStatement; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&sqlStatement); + ZVAL_UNDEF(&eventsManager); + ZVAL_UNDEF(&affectedRows); + ZVAL_UNDEF(&newStatement); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_4$$7); + ZVAL_UNDEF(&_5$$9); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(sqlStatement) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(bindParams) + Z_PARAM_ARRAY(bindTypes) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &sqlStatement_param, &bindParams_param, &bindTypes_param); + if (UNEXPECTED(Z_TYPE_P(sqlStatement_param) != IS_STRING && Z_TYPE_P(sqlStatement_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlStatement' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(sqlStatement_param) == IS_STRING)) { + zephir_get_strval(&sqlStatement, sqlStatement_param); + } else { + ZEPHIR_INIT_VAR(&sqlStatement); + } + if (!bindParams_param) { + ZEPHIR_INIT_VAR(&bindParams); + array_init(&bindParams); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindParams, bindParams_param); + } + if (!bindTypes_param) { + ZEPHIR_INIT_VAR(&bindTypes); + array_init(&bindTypes); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindTypes, bindTypes_param); + } + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_0); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlStatement"), &sqlStatement); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlVariables"), &bindParams); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlBindTypes"), &bindTypes); + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "db:beforeQuery"); + ZEPHIR_CALL_METHOD(&_1$$3, &eventsManager, "fire", NULL, 0, &_2$$3, this_ptr); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_1$$3)) { + RETURN_MM_BOOL(0); + } + } + ZEPHIR_INIT_VAR(&affectedRows); + ZVAL_LONG(&affectedRows, 0); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "preparerealsql", NULL, 0, &sqlStatement, &bindParams); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&bindParams))) { + zephir_read_property(&_3$$5, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&statement, &_3$$5, "prepare", NULL, 0, &sqlStatement); + zephir_check_call_status(); + if (Z_TYPE_P(&statement) == IS_OBJECT) { + ZEPHIR_CALL_METHOD(&newStatement, this_ptr, "executeprepared", NULL, 0, &statement, &bindParams, &bindTypes); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&affectedRows, &newStatement, "rowcount", NULL, 0); + zephir_check_call_status(); + } + } else { + zephir_read_property(&_4$$7, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&affectedRows, &_4$$7, "exec", NULL, 0, &sqlStatement); + zephir_check_call_status(); + } + if (Z_TYPE_P(&affectedRows) == IS_LONG) { + zephir_update_property_zval(this_ptr, ZEND_STRL("affectedRows"), &affectedRows); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_5$$9); + ZVAL_STRING(&_5$$9, "db:afterQuery"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_5$$9, this_ptr); + zephir_check_call_status(); + } + } + RETURN_MM_BOOL(1); +} + +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, executePrepared) +{ + zval _5$$8, _8$$13, _25$$39, _27$$44; + zend_bool _4$$3, _24$$34; + zend_string *_3, *_13$$22, *_21$$31, *_31$$53, *_39$$62; + zend_ulong _2, _12$$22, _20$$31, _30$$53, _38$$62; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_7 = NULL, *_9 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval placeholders; + zval *statement, statement_sub, *placeholders_param = NULL, *dataTypes, dataTypes_sub, wildcard, value, type, castValue, parameter, position, itemValue, *_0, _1, _6$$12, *_10$$22, _11$$22, _14$$24, _15$$25, _16$$27, _17$$28, *_18$$31, _19$$31, _22$$32, _23$$33, _26$$43, *_28$$53, _29$$53, _32$$55, _33$$56, _34$$58, _35$$59, *_36$$62, _37$$62, _40$$63, _41$$64; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&statement_sub); + ZVAL_UNDEF(&dataTypes_sub); + ZVAL_UNDEF(&wildcard); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&castValue); + ZVAL_UNDEF(¶meter); + ZVAL_UNDEF(&position); + ZVAL_UNDEF(&itemValue); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_6$$12); + ZVAL_UNDEF(&_11$$22); + ZVAL_UNDEF(&_14$$24); + ZVAL_UNDEF(&_15$$25); + ZVAL_UNDEF(&_16$$27); + ZVAL_UNDEF(&_17$$28); + ZVAL_UNDEF(&_19$$31); + ZVAL_UNDEF(&_22$$32); + ZVAL_UNDEF(&_23$$33); + ZVAL_UNDEF(&_26$$43); + ZVAL_UNDEF(&_29$$53); + ZVAL_UNDEF(&_32$$55); + ZVAL_UNDEF(&_33$$56); + ZVAL_UNDEF(&_34$$58); + ZVAL_UNDEF(&_35$$59); + ZVAL_UNDEF(&_37$$62); + ZVAL_UNDEF(&_40$$63); + ZVAL_UNDEF(&_41$$64); + ZVAL_UNDEF(&placeholders); + ZVAL_UNDEF(&_5$$8); + ZVAL_UNDEF(&_8$$13); + ZVAL_UNDEF(&_25$$39); + ZVAL_UNDEF(&_27$$44); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_OBJECT_OF_CLASS(statement, zephir_get_internal_ce(SL("pdostatement"))) + Z_PARAM_ARRAY(placeholders) + Z_PARAM_ZVAL(dataTypes) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &statement, &placeholders_param, &dataTypes); + ZEPHIR_OBS_COPY_OR_DUP(&placeholders, placeholders_param); + + + zephir_is_iterable(&placeholders, 0, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 570); + if (Z_TYPE_P(&placeholders) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&placeholders), _2, _3, _0) + { + ZEPHIR_INIT_NVAR(&wildcard); + if (_3 != NULL) { + ZVAL_STR_COPY(&wildcard, _3); + } else { + ZVAL_LONG(&wildcard, _2); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0); + if (Z_TYPE_P(&wildcard) == IS_LONG) { + ZEPHIR_INIT_NVAR(¶meter); + ZVAL_LONG(¶meter, (zephir_get_numberval(&wildcard) + 1)); + } else if (Z_TYPE_P(&wildcard) == IS_STRING) { + ZEPHIR_CPY_WRT(¶meter, &wildcard); + } else { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid bind parameter (1)", "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 490); + return; + } + _4$$3 = Z_TYPE_P(dataTypes) == IS_ARRAY; + if (_4$$3) { + ZEPHIR_OBS_NVAR(&type); + _4$$3 = zephir_array_isset_fetch(&type, dataTypes, &wildcard, 0); + } + if (_4$$3) { + if (ZEPHIR_IS_LONG(&type, 32)) { + zephir_cast_to_string(&_5$$8, &value); + ZEPHIR_CPY_WRT(&castValue, &_5$$8); + ZEPHIR_INIT_NVAR(&type); + ZVAL_LONG(&type, 1024); + } else { + if (ZEPHIR_GLOBAL(db).force_casting) { + if (Z_TYPE_P(&value) != IS_ARRAY) { + do { + if (ZEPHIR_IS_LONG(&type, 1)) { + ZVAL_LONG(&_6$$12, 10); + ZEPHIR_CALL_FUNCTION(&castValue, "intval", &_7, 51, &value, &_6$$12); + zephir_check_call_status(); + break; + } + if (ZEPHIR_IS_LONG(&type, 2)) { + zephir_cast_to_string(&_8$$13, &value); + ZEPHIR_CPY_WRT(&castValue, &_8$$13); + break; + } + if (ZEPHIR_IS_LONG(&type, 0)) { + ZEPHIR_INIT_NVAR(&castValue); + ZVAL_NULL(&castValue); + break; + } + if (ZEPHIR_IS_LONG(&type, 5)) { + ZEPHIR_INIT_NVAR(&castValue); + ZVAL_BOOL(&castValue, zephir_get_boolval(&value)); + break; + } + ZEPHIR_CPY_WRT(&castValue, &value); + break; + } while(0); + + } else { + ZEPHIR_CPY_WRT(&castValue, &value); + } + } else { + ZEPHIR_CPY_WRT(&castValue, &value); + } + } + if (Z_TYPE_P(&castValue) != IS_ARRAY) { + if (ZEPHIR_IS_LONG(&type, 1024)) { + ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, ¶meter, &castValue); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, ¶meter, &castValue, &type); + zephir_check_call_status(); + } + } else { + zephir_is_iterable(&castValue, 0, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 558); + if (Z_TYPE_P(&castValue) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&castValue), _12$$22, _13$$22, _10$$22) + { + ZEPHIR_INIT_NVAR(&position); + if (_13$$22 != NULL) { + ZVAL_STR_COPY(&position, _13$$22); + } else { + ZVAL_LONG(&position, _12$$22); + } + ZEPHIR_INIT_NVAR(&itemValue); + ZVAL_COPY(&itemValue, _10$$22); + if (ZEPHIR_IS_LONG(&type, 1024)) { + ZEPHIR_INIT_NVAR(&_14$$24); + ZEPHIR_CONCAT_VV(&_14$$24, ¶meter, &position); + ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_14$$24, &itemValue); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&_15$$25); + ZEPHIR_CONCAT_VV(&_15$$25, ¶meter, &position); + ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_15$$25, &itemValue, &type); + zephir_check_call_status(); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &castValue, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_11$$22, &castValue, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_11$$22)) { + break; + } + ZEPHIR_CALL_METHOD(&position, &castValue, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&itemValue, &castValue, "current", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&type, 1024)) { + ZEPHIR_INIT_NVAR(&_16$$27); + ZEPHIR_CONCAT_VV(&_16$$27, ¶meter, &position); + ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_16$$27, &itemValue); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&_17$$28); + ZEPHIR_CONCAT_VV(&_17$$28, ¶meter, &position); + ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_17$$28, &itemValue, &type); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, &castValue, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&itemValue); + ZEPHIR_INIT_NVAR(&position); + } + } else { + if (Z_TYPE_P(&value) != IS_ARRAY) { + ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, ¶meter, &value); + zephir_check_call_status(); + } else { + zephir_is_iterable(&value, 0, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 566); + if (Z_TYPE_P(&value) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&value), _20$$31, _21$$31, _18$$31) + { + ZEPHIR_INIT_NVAR(&position); + if (_21$$31 != NULL) { + ZVAL_STR_COPY(&position, _21$$31); + } else { + ZVAL_LONG(&position, _20$$31); + } + ZEPHIR_INIT_NVAR(&itemValue); + ZVAL_COPY(&itemValue, _18$$31); + ZEPHIR_INIT_NVAR(&_22$$32); + ZEPHIR_CONCAT_VV(&_22$$32, ¶meter, &position); + ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_22$$32, &itemValue); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &value, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_19$$31, &value, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_19$$31)) { + break; + } + ZEPHIR_CALL_METHOD(&position, &value, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&itemValue, &value, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_23$$33); + ZEPHIR_CONCAT_VV(&_23$$33, ¶meter, &position); + ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_23$$33, &itemValue); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &value, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&itemValue); + ZEPHIR_INIT_NVAR(&position); + } + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &placeholders, "rewind", NULL, 0); zephir_check_call_status(); - RETURN_MM(); - } - ZEPHIR_INIT_VAR(&_2); - zephir_get_class(&_2, this_ptr, 0); - ZEPHIR_INIT_VAR(&_3); - ZEPHIR_CONCAT_SVSV(&_3, "Access to undefined property ", &_2, "::", &property); - ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_3); - zephir_check_call_status(); - RETURN_MM_NULL(); -} - -static PHP_METHOD(Phalcon_Paginator_Repository, getAliases) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "aliases"); -} - -static PHP_METHOD(Phalcon_Paginator_Repository, getCurrent) -{ - zval _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "current"); - ZVAL_LONG(&_1, 0); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getproperty", NULL, 0, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Paginator_Repository, getFirst) -{ - zval _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "first"); - ZVAL_LONG(&_1, 0); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getproperty", NULL, 0, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Paginator_Repository, getItems) -{ - zval _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); + while (1) { + ZEPHIR_CALL_METHOD(&_1, &placeholders, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1)) { + break; + } + ZEPHIR_CALL_METHOD(&wildcard, &placeholders, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, &placeholders, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&wildcard) == IS_LONG) { + ZEPHIR_INIT_NVAR(¶meter); + ZVAL_LONG(¶meter, (zephir_get_numberval(&wildcard) + 1)); + } else if (Z_TYPE_P(&wildcard) == IS_STRING) { + ZEPHIR_CPY_WRT(¶meter, &wildcard); + } else { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Invalid bind parameter (1)", "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 490); + return; + } + _24$$34 = Z_TYPE_P(dataTypes) == IS_ARRAY; + if (_24$$34) { + ZEPHIR_OBS_NVAR(&type); + _24$$34 = zephir_array_isset_fetch(&type, dataTypes, &wildcard, 0); + } + if (_24$$34) { + if (ZEPHIR_IS_LONG(&type, 32)) { + zephir_cast_to_string(&_25$$39, &value); + ZEPHIR_CPY_WRT(&castValue, &_25$$39); + ZEPHIR_INIT_NVAR(&type); + ZVAL_LONG(&type, 1024); + } else { + if (ZEPHIR_GLOBAL(db).force_casting) { + if (Z_TYPE_P(&value) != IS_ARRAY) { + do { + if (ZEPHIR_IS_LONG(&type, 1)) { + ZVAL_LONG(&_26$$43, 10); + ZEPHIR_CALL_FUNCTION(&castValue, "intval", &_7, 51, &value, &_26$$43); + zephir_check_call_status(); + break; + } + if (ZEPHIR_IS_LONG(&type, 2)) { + zephir_cast_to_string(&_27$$44, &value); + ZEPHIR_CPY_WRT(&castValue, &_27$$44); + break; + } + if (ZEPHIR_IS_LONG(&type, 0)) { + ZEPHIR_INIT_NVAR(&castValue); + ZVAL_NULL(&castValue); + break; + } + if (ZEPHIR_IS_LONG(&type, 5)) { + ZEPHIR_INIT_NVAR(&castValue); + ZVAL_BOOL(&castValue, zephir_get_boolval(&value)); + break; + } + ZEPHIR_CPY_WRT(&castValue, &value); + break; + } while(0); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "items"); - ZVAL_NULL(&_1); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getproperty", NULL, 0, &_0, &_1); + } else { + ZEPHIR_CPY_WRT(&castValue, &value); + } + } else { + ZEPHIR_CPY_WRT(&castValue, &value); + } + } + if (Z_TYPE_P(&castValue) != IS_ARRAY) { + if (ZEPHIR_IS_LONG(&type, 1024)) { + ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, ¶meter, &castValue); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, ¶meter, &castValue, &type); + zephir_check_call_status(); + } + } else { + zephir_is_iterable(&castValue, 0, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 558); + if (Z_TYPE_P(&castValue) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&castValue), _30$$53, _31$$53, _28$$53) + { + ZEPHIR_INIT_NVAR(&position); + if (_31$$53 != NULL) { + ZVAL_STR_COPY(&position, _31$$53); + } else { + ZVAL_LONG(&position, _30$$53); + } + ZEPHIR_INIT_NVAR(&itemValue); + ZVAL_COPY(&itemValue, _28$$53); + if (ZEPHIR_IS_LONG(&type, 1024)) { + ZEPHIR_INIT_NVAR(&_32$$55); + ZEPHIR_CONCAT_VV(&_32$$55, ¶meter, &position); + ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_32$$55, &itemValue); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&_33$$56); + ZEPHIR_CONCAT_VV(&_33$$56, ¶meter, &position); + ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_33$$56, &itemValue, &type); + zephir_check_call_status(); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &castValue, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_29$$53, &castValue, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_29$$53)) { + break; + } + ZEPHIR_CALL_METHOD(&position, &castValue, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&itemValue, &castValue, "current", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&type, 1024)) { + ZEPHIR_INIT_NVAR(&_34$$58); + ZEPHIR_CONCAT_VV(&_34$$58, ¶meter, &position); + ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_34$$58, &itemValue); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&_35$$59); + ZEPHIR_CONCAT_VV(&_35$$59, ¶meter, &position); + ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_35$$59, &itemValue, &type); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, &castValue, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&itemValue); + ZEPHIR_INIT_NVAR(&position); + } + } else { + if (Z_TYPE_P(&value) != IS_ARRAY) { + ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, ¶meter, &value); + zephir_check_call_status(); + } else { + zephir_is_iterable(&value, 0, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 566); + if (Z_TYPE_P(&value) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&value), _38$$62, _39$$62, _36$$62) + { + ZEPHIR_INIT_NVAR(&position); + if (_39$$62 != NULL) { + ZVAL_STR_COPY(&position, _39$$62); + } else { + ZVAL_LONG(&position, _38$$62); + } + ZEPHIR_INIT_NVAR(&itemValue); + ZVAL_COPY(&itemValue, _36$$62); + ZEPHIR_INIT_NVAR(&_40$$63); + ZEPHIR_CONCAT_VV(&_40$$63, ¶meter, &position); + ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_40$$63, &itemValue); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &value, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_37$$62, &value, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_37$$62)) { + break; + } + ZEPHIR_CALL_METHOD(&position, &value, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&itemValue, &value, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_41$$64); + ZEPHIR_CONCAT_VV(&_41$$64, ¶meter, &position); + ZEPHIR_CALL_METHOD(NULL, statement, "bindvalue", &_9, 0, &_41$$64, &itemValue); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &value, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&itemValue); + ZEPHIR_INIT_NVAR(&position); + } + } + ZEPHIR_CALL_METHOD(NULL, &placeholders, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&wildcard); + ZEPHIR_CALL_METHOD(NULL, statement, "execute", NULL, 0); zephir_check_call_status(); + RETVAL_ZVAL(statement, 1, 0); RETURN_MM(); } -static PHP_METHOD(Phalcon_Paginator_Repository, getLast) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, getErrorInfo) { - zval _0, _1; + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "last"); - ZVAL_LONG(&_1, 0); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getproperty", NULL, 0, &_0, &_1); + zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "errorinfo", NULL, 0); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Paginator_Repository, getLimit) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, getInternalHandler) { - zval _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "limit"); - ZVAL_LONG(&_1, 0); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getproperty", NULL, 0, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); + RETURN_MEMBER(getThis(), "pdo"); } -static PHP_METHOD(Phalcon_Paginator_Repository, getNext) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, getTransactionLevel) { - zval _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "next"); - ZVAL_LONG(&_1, 0); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getproperty", NULL, 0, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); + RETURN_MEMBER(getThis(), "transactionLevel"); } -static PHP_METHOD(Phalcon_Paginator_Repository, getPrevious) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, isUnderTransaction) { - zval _0, _1; + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "previous"); - ZVAL_LONG(&_1, 0); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getproperty", NULL, 0, &_0, &_1); + zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "intransaction", NULL, 0); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Paginator_Repository, getTotalItems) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, lastInsertId) { - zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, _0; + zval name; zval *this_ptr = getThis(); + ZVAL_UNDEF(&name); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "total_items"); - ZVAL_LONG(&_1, 0); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getproperty", NULL, 0, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Paginator_Repository, jsonSerialize) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "properties"); -} - -static PHP_METHOD(Phalcon_Paginator_Repository, setAliases) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *aliases_param = NULL; - zval aliases; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&aliases); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(aliases) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &aliases_param); - zephir_get_arrval(&aliases, aliases_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("aliases"), &aliases); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Paginator_Repository, setProperties) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *properties_param = NULL; - zval properties; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&properties); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(properties) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &properties_param); - zephir_get_arrval(&properties, properties_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("properties"), &properties); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Paginator_Repository, getProperty) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *property_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, _1; - zval property; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&property); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(property) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(defaultValue) + Z_PARAM_STR_OR_NULL(name) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &property_param, &defaultValue); - zephir_get_strval(&property, property_param); - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; + zephir_fetch_params(1, 0, 1, &name_param); + if (!name_param) { + ZEPHIR_INIT_VAR(&name); + } else { + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); + } else { + ZEPHIR_INIT_VAR(&name); + } } - zephir_read_property(&_1, this_ptr, ZEND_STRL("properties"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_helper_arr_ce, "get", &_0, 16, &_1, &property, defaultValue); + zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "lastinsertid", NULL, 0, &name); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Paginator_Repository, getRealNameProperty) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, prepare) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *property_param = NULL, aliases, _0$$3; - zval property; + zval *sqlStatement_param = NULL, _0; + zval sqlStatement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&property); - ZVAL_UNDEF(&aliases); - ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&sqlStatement); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(property) + Z_PARAM_STR(sqlStatement) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &property_param); - zephir_get_strval(&property, property_param); - - - ZEPHIR_CALL_METHOD(&aliases, this_ptr, "getaliases", NULL, 0); - zephir_check_call_status(); - if (zephir_array_isset(&aliases, &property)) { - zephir_array_fetch(&_0$$3, &aliases, &property, PH_NOISY | PH_READONLY, "phalcon/Paginator/Repository.zep", 180); - RETURN_CTOR(&_0$$3); + zephir_fetch_params(1, 1, 0, &sqlStatement_param); + if (UNEXPECTED(Z_TYPE_P(sqlStatement_param) != IS_STRING && Z_TYPE_P(sqlStatement_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlStatement' must be of the type string")); + RETURN_MM_NULL(); } - RETURN_CTOR(&property); -} - -zend_object *zephir_init_properties_Phalcon_Paginator_Repository(zend_class_entry *class_type) -{ - zval _0, _2, _1$$3, _3$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("properties"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("properties"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("aliases"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("aliases"), &_3$$4); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); + if (EXPECTED(Z_TYPE_P(sqlStatement_param) == IS_STRING)) { + zephir_get_strval(&sqlStatement, sqlStatement_param); + } else { + ZEPHIR_INIT_VAR(&sqlStatement); } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Paginator_RepositoryInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Paginator, RepositoryInterface, phalcon, paginator_repositoryinterface, phalcon_paginator_repositoryinterface_method_entry); - - zephir_declare_class_constant_string(phalcon_paginator_repositoryinterface_ce, SL("PROPERTY_CURRENT_PAGE"), "current"); - - zephir_declare_class_constant_string(phalcon_paginator_repositoryinterface_ce, SL("PROPERTY_FIRST_PAGE"), "first"); - - zephir_declare_class_constant_string(phalcon_paginator_repositoryinterface_ce, SL("PROPERTY_ITEMS"), "items"); - - zephir_declare_class_constant_string(phalcon_paginator_repositoryinterface_ce, SL("PROPERTY_LAST_PAGE"), "last"); - - zephir_declare_class_constant_string(phalcon_paginator_repositoryinterface_ce, SL("PROPERTY_LIMIT"), "limit"); - - zephir_declare_class_constant_string(phalcon_paginator_repositoryinterface_ce, SL("PROPERTY_NEXT_PAGE"), "next"); - - zephir_declare_class_constant_string(phalcon_paginator_repositoryinterface_ce, SL("PROPERTY_PREVIOUS_PAGE"), "previous"); - - zephir_declare_class_constant_string(phalcon_paginator_repositoryinterface_ce, SL("PROPERTY_TOTAL_ITEMS"), "total_items"); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, getAliases); -ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, getCurrent); -ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, getFirst); -ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, getItems); -ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, getLast); -ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, getLimit); -ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, getNext); -ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, getPrevious); -ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, getTotalItems); -ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, setAliases); -ZEPHIR_DOC_METHOD(Phalcon_Paginator_RepositoryInterface, setProperties); - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_AbstractAdapter) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Paginator\\Adapter, AbstractAdapter, phalcon, paginator_adapter_abstractadapter, phalcon_paginator_adapter_abstractadapter_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_null(phalcon_paginator_adapter_abstractadapter_ce, SL("config"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_paginator_adapter_abstractadapter_ce, SL("limitRows"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_paginator_adapter_abstractadapter_ce, SL("page"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_paginator_adapter_abstractadapter_ce, SL("repository"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_paginator_adapter_abstractadapter_ce, 1, phalcon_paginator_adapter_adapterinterface_ce); - return SUCCESS; + zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "prepare", NULL, 0, &sqlStatement); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Paginator_Adapter_AbstractAdapter, __construct) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, query) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *config_param = NULL, _0$$3, _1$$4, _2$$5; - zval config; + zval bindParams, bindTypes; + zval *sqlStatement_param = NULL, *bindParams_param = NULL, *bindTypes_param = NULL, eventsManager, statement, params, types, _0, _3, _1$$3, _2$$3, _4$$9; + zval sqlStatement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&config); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&sqlStatement); + ZVAL_UNDEF(&eventsManager); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&types); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$9); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&bindTypes); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(config) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(sqlStatement) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(bindParams) + Z_PARAM_ARRAY(bindTypes) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &config_param); - ZEPHIR_OBS_COPY_OR_DUP(&config, config_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("config"), &config); - if (zephir_array_isset_string(&config, SL("limit"))) { - zephir_array_fetch_string(&_0$$3, &config, SL("limit"), PH_NOISY | PH_READONLY, "phalcon/Paginator/Adapter/AbstractAdapter.zep", 62); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setlimit", NULL, 0, &_0$$3); - zephir_check_call_status(); + zephir_fetch_params(1, 1, 2, &sqlStatement_param, &bindParams_param, &bindTypes_param); + if (UNEXPECTED(Z_TYPE_P(sqlStatement_param) != IS_STRING && Z_TYPE_P(sqlStatement_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlStatement' must be of the type string")); + RETURN_MM_NULL(); } - if (zephir_array_isset_string(&config, SL("page"))) { - zephir_array_fetch_string(&_1$$4, &config, SL("page"), PH_NOISY | PH_READONLY, "phalcon/Paginator/Adapter/AbstractAdapter.zep", 68); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setcurrentpage", NULL, 0, &_1$$4); - zephir_check_call_status(); + if (EXPECTED(Z_TYPE_P(sqlStatement_param) == IS_STRING)) { + zephir_get_strval(&sqlStatement, sqlStatement_param); + } else { + ZEPHIR_INIT_VAR(&sqlStatement); } - if (zephir_array_isset_string(&config, SL("repository"))) { - zephir_array_fetch_string(&_2$$5, &config, SL("repository"), PH_NOISY | PH_READONLY, "phalcon/Paginator/Adapter/AbstractAdapter.zep", 74); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setrepository", NULL, 0, &_2$$5); - zephir_check_call_status(); + if (!bindParams_param) { + ZEPHIR_INIT_VAR(&bindParams); + array_init(&bindParams); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindParams, bindParams_param); + } + if (!bindTypes_param) { + ZEPHIR_INIT_VAR(&bindTypes); + array_init(&bindTypes); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&bindTypes, bindTypes_param); } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Paginator_Adapter_AbstractAdapter, getLimit) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "limitRows"); -} - -static PHP_METHOD(Phalcon_Paginator_Adapter_AbstractAdapter, setCurrentPage) -{ - zval *page_param = NULL, _0; - zend_long page; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(page) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &page_param); - page = zephir_get_intval(page_param); - - - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, page); - zephir_update_property_zval(this_ptr, ZEND_STRL("page"), &_0); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Paginator_Adapter_AbstractAdapter, setLimit) -{ - zval *limit_param = NULL, _0; - zend_long limit; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(limit) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &limit_param); - limit = zephir_get_intval(limit_param); - if (limit <= 0) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_paginator_exception_ce, "Limit must be greater than zero", "phalcon/Paginator/Adapter/AbstractAdapter.zep", 102); + zephir_read_property(&_0, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_0); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlStatement"), &sqlStatement); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlVariables"), &bindParams); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlBindTypes"), &bindTypes); + ZEPHIR_INIT_VAR(&_2$$3); + ZVAL_STRING(&_2$$3, "db:beforeQuery"); + ZEPHIR_CALL_METHOD(&_1$$3, &eventsManager, "fire", NULL, 0, &_2$$3, this_ptr); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_1$$3)) { + RETURN_MM_BOOL(0); + } + } + if (!(ZEPHIR_IS_EMPTY(&bindParams))) { + ZEPHIR_CPY_WRT(¶ms, &bindParams); + ZEPHIR_CPY_WRT(&types, &bindTypes); + } else { + ZEPHIR_INIT_NVAR(¶ms); + array_init(¶ms); + ZEPHIR_INIT_NVAR(&types); + array_init(&types); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&statement, &_0, "prepare", NULL, 0, &sqlStatement); + zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(&statement) != IS_OBJECT)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Cannot prepare statement", "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 720); return; } - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, limit); - zephir_update_property_zval(this_ptr, ZEND_STRL("limitRows"), &_0); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Paginator_Adapter_AbstractAdapter, setRepository) -{ - zval *repository, repository_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&repository_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(repository, phalcon_paginator_repositoryinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &repository); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("repository"), repository); - RETURN_THISW(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "preparerealsql", NULL, 0, &sqlStatement, &bindParams); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "executeprepared", NULL, 0, &statement, ¶ms, &types); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&statement, &_3); + if (Z_TYPE_P(&statement) == IS_OBJECT) { + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_4$$9); + ZVAL_STRING(&_4$$9, "db:afterQuery"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_4$$9, this_ptr); + zephir_check_call_status(); + } + object_init_ex(return_value, phalcon_db_result_pdo_ce); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 52, this_ptr, &statement, &sqlStatement, &bindParams, &bindTypes); + zephir_check_call_status(); + RETURN_MM(); + } + RETURN_CCTOR(&statement); } -static PHP_METHOD(Phalcon_Paginator_Adapter_AbstractAdapter, getRepository) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, rollback) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *properties_param = NULL, _0, _1$$3, _2$$4; - zval properties; + zend_long ZEPHIR_LAST_CALL_STATUS, transactionLevel = 0; + zval *nesting_param = NULL, eventsManager, savepointName, _0, _5, _6, _1$$4, _2$$5, _7$$8; + zend_bool nesting, _3, _4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&properties); + ZVAL_UNDEF(&eventsManager); + ZVAL_UNDEF(&savepointName); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&_7$$8); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY_OR_NULL(properties) + Z_PARAM_BOOL(nesting) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &properties_param); - if (!properties_param) { - ZEPHIR_INIT_VAR(&properties); + zephir_fetch_params(1, 0, 1, &nesting_param); + if (!nesting_param) { + nesting = 1; } else { - zephir_get_arrval(&properties, properties_param); + nesting = zephir_get_boolval(nesting_param); } ZEPHIR_OBS_VAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("repository"), PH_NOISY_CC); - if (Z_TYPE_P(&_0) != IS_OBJECT) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_paginator_repository_ce); - if (zephir_has_constructor(&_1$$3)) { - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("transactionLevel"), PH_NOISY_CC); + transactionLevel = zephir_get_intval(&_0); + if (UNEXPECTED(!transactionLevel)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "There is no active transaction", "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 759); + return; + } + if (transactionLevel == 1) { + zephir_read_property(&_1$$4, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_1$$4); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_2$$5); + ZVAL_STRING(&_2$$5, "db:rollbackTransaction"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_2$$5, this_ptr); zephir_check_call_status(); } - - zephir_update_property_zval(this_ptr, ZEND_STRL("repository"), &_1$$3); + RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("transactionLevel"))); + zephir_read_property(&_1$$4, this_ptr, ZEND_STRL("pdo"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_1$$4, "rollback", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } - if (!ZEPHIR_IS_NULL(&properties)) { - zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("repository"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_2$$4, "setproperties", NULL, 0, &properties); + _3 = !transactionLevel; + if (!(_3)) { + _3 = !nesting; + } + _4 = _3; + if (!(_4)) { + ZEPHIR_CALL_METHOD(&_5, this_ptr, "isnestedtransactionswithsavepoints", NULL, 0); zephir_check_call_status(); + _4 = !zephir_is_true(&_5); } - RETURN_MM_MEMBER(getThis(), "repository"); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_AdapterInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Paginator\\Adapter, AdapterInterface, phalcon, paginator_adapter_adapterinterface, phalcon_paginator_adapter_adapterinterface_method_entry); - - return SUCCESS; + if (_4) { + if (transactionLevel > 0) { + RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("transactionLevel"))); + } + RETURN_MM_BOOL(0); + } + ZEPHIR_CALL_METHOD(&savepointName, this_ptr, "getnestedtransactionsavepointname", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_6, this_ptr, ZEND_STRL("eventsManager"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&eventsManager, &_6); + if (Z_TYPE_P(&eventsManager) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_7$$8); + ZVAL_STRING(&_7$$8, "db:rollbackSavepoint"); + ZEPHIR_CALL_METHOD(NULL, &eventsManager, "fire", NULL, 0, &_7$$8, this_ptr, &savepointName); + zephir_check_call_status(); + } + RETURN_ON_FAILURE(zephir_property_decr(this_ptr, SL("transactionLevel"))); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "rollbacksavepoint", NULL, 0, &savepointName); + zephir_check_call_status(); + RETURN_MM(); } -ZEPHIR_DOC_METHOD(Phalcon_Paginator_Adapter_AdapterInterface, getLimit); -ZEPHIR_DOC_METHOD(Phalcon_Paginator_Adapter_AdapterInterface, paginate); -ZEPHIR_DOC_METHOD(Phalcon_Paginator_Adapter_AdapterInterface, setCurrentPage); -ZEPHIR_DOC_METHOD(Phalcon_Paginator_Adapter_AdapterInterface, setLimit); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_Model) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, getDsnDefaults) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator\\Adapter, Model, phalcon, paginator_adapter_model, phalcon_paginator_adapter_abstractadapter_ce, phalcon_paginator_adapter_model_method_entry, 0); - - return SUCCESS; } -static PHP_METHOD(Phalcon_Paginator_Adapter_Model, paginate) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_AbstractPdo, prepareRealSql) { - zval _8, _15, _12$$6; - zval config, modelClass, parameters, pageItems, _0, _1, _2, _3, _5, _6, _7, _9, _16, _10$$6, _11$$6, _13$$6, _14$$6; + zend_string *_3$$3; + zend_ulong _2$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, pageNumber = 0, limit = 0, rowcount = 0, next = 0, totalPages = 0, previous = 0; - zephir_fcall_cache_entry *_4 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval parameters, keys, values; + zval *statement_param = NULL, *parameters_param = NULL, key, result, value, *_0$$3, _1$$3, _16$$3, _4$$5, _5$$6, _6$$7, _7$$8, _8$$8, _9$$9, _10$$11, _11$$12, _12$$13, _13$$14, _14$$14, _15$$15; + zval statement; zval *this_ptr = getThis(); - ZVAL_UNDEF(&config); - ZVAL_UNDEF(&modelClass); + ZVAL_UNDEF(&statement); + ZVAL_UNDEF(&key); + ZVAL_UNDEF(&result); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_16$$3); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&_6$$7); + ZVAL_UNDEF(&_7$$8); + ZVAL_UNDEF(&_8$$8); + ZVAL_UNDEF(&_9$$9); + ZVAL_UNDEF(&_10$$11); + ZVAL_UNDEF(&_11$$12); + ZVAL_UNDEF(&_12$$13); + ZVAL_UNDEF(&_13$$14); + ZVAL_UNDEF(&_14$$14); + ZVAL_UNDEF(&_15$$15); ZVAL_UNDEF(¶meters); - ZVAL_UNDEF(&pageItems); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_16); - ZVAL_UNDEF(&_10$$6); - ZVAL_UNDEF(&_11$$6); - ZVAL_UNDEF(&_13$$6); - ZVAL_UNDEF(&_14$$6); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_15); - ZVAL_UNDEF(&_12$$6); + ZVAL_UNDEF(&keys); + ZVAL_UNDEF(&values); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(statement) + Z_PARAM_ARRAY(parameters) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &statement_param, ¶meters_param); + zephir_get_strval(&statement, statement_param); + zephir_get_arrval(¶meters, parameters_param); - ZEPHIR_INIT_VAR(&pageItems); - array_init(&pageItems); - ZEPHIR_OBS_VAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("limitRows"), PH_NOISY_CC); - limit = zephir_get_intval(&_0); - zephir_read_property(&_1, this_ptr, ZEND_STRL("config"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&config, &_1); - ZEPHIR_OBS_VAR(&_2); - zephir_read_property(&_2, this_ptr, ZEND_STRL("page"), PH_NOISY_CC); - pageNumber = zephir_get_intval(&_2); - zephir_array_fetch_string(&_3, &config, SL("model"), PH_NOISY | PH_READONLY, "phalcon/Paginator/Adapter/Model.zep", 100); - ZEPHIR_CPY_WRT(&modelClass, &_3); - ZEPHIR_INIT_VAR(&_5); - array_init(&_5); - ZEPHIR_INIT_VAR(&_6); - ZVAL_STRING(&_6, "parameters"); - ZEPHIR_INIT_VAR(&_7); - ZVAL_STRING(&_7, "array"); - ZEPHIR_CALL_CE_STATIC(¶meters, phalcon_helper_arr_ce, "get", &_4, 16, &config, &_6, &_5, &_7); - zephir_check_call_status(); - if (pageNumber <= 0) { - pageNumber = 1; - } - ZEPHIR_INIT_VAR(&_8); - zephir_create_array(&_8, 2, 0); - zephir_array_fast_append(&_8, &modelClass); - ZEPHIR_INIT_NVAR(&_6); - ZVAL_STRING(&_6, "count"); - zephir_array_fast_append(&_8, &_6); - ZEPHIR_CALL_FUNCTION(&_9, "call_user_func", NULL, 255, &_8, ¶meters); - zephir_check_call_status(); - rowcount = zephir_get_intval(&_9); - if (zephir_safe_mod_long_long(rowcount, limit) != 0) { - totalPages = (int) ((zephir_safe_div_long_long(rowcount, limit) + (double) (1))); - } else { - totalPages = (int) (zephir_safe_div_long_long(rowcount, limit)); - } - if (rowcount > 0) { - ZEPHIR_INIT_VAR(&_10$$6); - ZVAL_LONG(&_10$$6, limit); - zephir_array_update_string(¶meters, SL("limit"), &_10$$6, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_VAR(&_11$$6); - ZVAL_LONG(&_11$$6, (limit * ((pageNumber - 1)))); - zephir_array_update_string(¶meters, SL("offset"), &_11$$6, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_VAR(&_12$$6); - zephir_create_array(&_12$$6, 2, 0); - zephir_array_fast_append(&_12$$6, &modelClass); - ZEPHIR_INIT_VAR(&_13$$6); - ZVAL_STRING(&_13$$6, "find"); - zephir_array_fast_append(&_12$$6, &_13$$6); - ZEPHIR_CALL_FUNCTION(&_14$$6, "call_user_func", NULL, 255, &_12$$6, ¶meters); + + ZEPHIR_CPY_WRT(&result, &statement); + ZEPHIR_CPY_WRT(&values, ¶meters); + if (!(ZEPHIR_IS_EMPTY(¶meters))) { + ZEPHIR_INIT_VAR(&keys); + array_init(&keys); + zephir_is_iterable(¶meters, 0, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 848); + if (Z_TYPE_P(¶meters) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(¶meters), _2$$3, _3$$3, _0$$3) + { + ZEPHIR_INIT_NVAR(&key); + if (_3$$3 != NULL) { + ZVAL_STR_COPY(&key, _3$$3); + } else { + ZVAL_LONG(&key, _2$$3); + } + ZEPHIR_INIT_NVAR(&value); + ZVAL_COPY(&value, _0$$3); + if (Z_TYPE_P(&key) == IS_STRING) { + ZEPHIR_INIT_NVAR(&_4$$5); + ZEPHIR_CONCAT_SVS(&_4$$5, "/:", &key, "/"); + zephir_array_append(&keys, &_4$$5, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 834); + } else { + ZEPHIR_INIT_NVAR(&_5$$6); + ZVAL_STRING(&_5$$6, "/[?]/"); + zephir_array_append(&keys, &_5$$6, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 836); + } + if (Z_TYPE_P(&value) == IS_STRING) { + ZEPHIR_INIT_NVAR(&_6$$7); + ZEPHIR_CONCAT_SVS(&_6$$7, "'", &value, "'"); + zephir_array_update_zval(&values, &key, &_6$$7, PH_COPY | PH_SEPARATE); + } else if (Z_TYPE_P(&value) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&_7$$8); + zephir_fast_join_str(&_7$$8, SL("','"), &value); + ZEPHIR_INIT_NVAR(&_8$$8); + ZEPHIR_CONCAT_SVS(&_8$$8, "'", &_7$$8, "'"); + zephir_array_update_zval(&values, &key, &_8$$8, PH_COPY | PH_SEPARATE); + } else if (Z_TYPE_P(&value) == IS_NULL) { + ZEPHIR_INIT_NVAR(&_9$$9); + ZVAL_STRING(&_9$$9, "NULL"); + zephir_array_update_zval(&values, &key, &_9$$9, PH_COPY | PH_SEPARATE); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, ¶meters, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_1$$3, ¶meters, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_1$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&key, ¶meters, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&value, ¶meters, "current", NULL, 0); + zephir_check_call_status(); + if (Z_TYPE_P(&key) == IS_STRING) { + ZEPHIR_INIT_NVAR(&_10$$11); + ZEPHIR_CONCAT_SVS(&_10$$11, "/:", &key, "/"); + zephir_array_append(&keys, &_10$$11, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 834); + } else { + ZEPHIR_INIT_NVAR(&_11$$12); + ZVAL_STRING(&_11$$12, "/[?]/"); + zephir_array_append(&keys, &_11$$12, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/AbstractPdo.zep", 836); + } + if (Z_TYPE_P(&value) == IS_STRING) { + ZEPHIR_INIT_NVAR(&_12$$13); + ZEPHIR_CONCAT_SVS(&_12$$13, "'", &value, "'"); + zephir_array_update_zval(&values, &key, &_12$$13, PH_COPY | PH_SEPARATE); + } else if (Z_TYPE_P(&value) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&_13$$14); + zephir_fast_join_str(&_13$$14, SL("','"), &value); + ZEPHIR_INIT_NVAR(&_14$$14); + ZEPHIR_CONCAT_SVS(&_14$$14, "'", &_13$$14, "'"); + zephir_array_update_zval(&values, &key, &_14$$14, PH_COPY | PH_SEPARATE); + } else if (Z_TYPE_P(&value) == IS_NULL) { + ZEPHIR_INIT_NVAR(&_15$$15); + ZVAL_STRING(&_15$$15, "NULL"); + zephir_array_update_zval(&values, &key, &_15$$15, PH_COPY | PH_SEPARATE); + } + ZEPHIR_CALL_METHOD(NULL, ¶meters, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value); + ZEPHIR_INIT_NVAR(&key); + ZVAL_LONG(&_16$$3, 1); + ZEPHIR_CALL_FUNCTION(&result, "preg_replace", NULL, 50, &keys, &values, &statement, &_16$$3); zephir_check_call_status(); - ZEPHIR_CPY_WRT(&pageItems, &_14$$6); } - next = (pageNumber + 1); - if (next > totalPages) { - next = totalPages; - } - if (pageNumber > 1) { - previous = (pageNumber - 1); - } else { - previous = 1; - } - ZEPHIR_INIT_VAR(&_15); - zephir_create_array(&_15, 8, 0); - zephir_array_update_string(&_15, SL("items"), &pageItems, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_6); - ZVAL_LONG(&_6, rowcount); - zephir_array_update_string(&_15, SL("total_items"), &_6, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_VAR(&_16); - zephir_read_property(&_16, this_ptr, ZEND_STRL("limitRows"), PH_NOISY_CC); - zephir_array_update_string(&_15, SL("limit"), &_16, PH_COPY | PH_SEPARATE); - add_assoc_long_ex(&_15, SL("first"), 1); - ZEPHIR_INIT_NVAR(&_6); - ZVAL_LONG(&_6, previous); - zephir_array_update_string(&_15, SL("previous"), &_6, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_6); - ZVAL_LONG(&_6, pageNumber); - zephir_array_update_string(&_15, SL("current"), &_6, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_6); - ZVAL_LONG(&_6, next); - zephir_array_update_string(&_15, SL("next"), &_6, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_6); - ZVAL_LONG(&_6, totalPages); - zephir_array_update_string(&_15, SL("last"), &_6, PH_COPY | PH_SEPARATE); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getrepository", NULL, 0, &_15); - zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("realSqlStatement"), &result); + ZEPHIR_MM_RESTORE(); } @@ -193345,479 +189032,1419 @@ static PHP_METHOD(Phalcon_Paginator_Adapter_Model, paginate) -ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_NativeArray) +ZEPHIR_INIT_CLASS(Phalcon_Db_Adapter_Pdo_Mysql) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator\\Adapter, NativeArray, phalcon, paginator_adapter_nativearray, phalcon_paginator_adapter_abstractadapter_ce, phalcon_paginator_adapter_nativearray_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Adapter\\Pdo, Mysql, phalcon, db_adapter_pdo_mysql, phalcon_db_adapter_pdo_abstractpdo_ce, phalcon_db_adapter_pdo_mysql_method_entry, 0); + zend_declare_property_string(phalcon_db_adapter_pdo_mysql_ce, SL("dialectType"), "mysql", ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_db_adapter_pdo_mysql_ce, SL("type"), "mysql", ZEND_ACC_PROTECTED); return SUCCESS; } -static PHP_METHOD(Phalcon_Paginator_Adapter_NativeArray, paginate) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, addForeignKey) { - zval _6; - double roundedTotal = 0; - zval config, items, _0, _1, _2, _3, _4, _5, _7, _8; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, show = 0, pageNumber = 0, totalPages = 0, number = 0, previous = 0, next = 0; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, *reference, reference_sub, foreignKeyCheck, _0, _1, _2, _3, _4; + zval tableName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&config); - ZVAL_UNDEF(&items); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&reference_sub); + ZVAL_UNDEF(&foreignKeyCheck); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_6); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(reference, phalcon_db_referenceinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("config"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&config, &_0); - ZEPHIR_OBS_VAR(&items); - zephir_array_fetch_string(&items, &config, SL("data"), PH_NOISY, "phalcon/Paginator/Adapter/NativeArray.zep", 54); - if (UNEXPECTED(Z_TYPE_P(&items) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Invalid data for paginator", "phalcon/Paginator/Adapter/NativeArray.zep", 57); - return; + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &reference); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); } - ZEPHIR_OBS_VAR(&_1); - zephir_read_property(&_1, this_ptr, ZEND_STRL("limitRows"), PH_NOISY_CC); - show = zephir_get_intval(&_1); - ZEPHIR_OBS_VAR(&_2); - zephir_read_property(&_2, this_ptr, ZEND_STRL("page"), PH_NOISY_CC); - pageNumber = zephir_get_intval(&_2); - if (pageNumber <= 0) { - pageNumber = 1; + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); } - number = zephir_fast_count_int(&items); - ZVAL_LONG(&_0, show); - ZEPHIR_CALL_FUNCTION(&_3, "floatval", NULL, 18, &_0); - zephir_check_call_status(); - roundedTotal = zephir_safe_div_long_zval(number, &_3); - totalPages = (int) (roundedTotal); - if (totalPages != roundedTotal) { - totalPages++; + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); } - ZVAL_LONG(&_0, (show * ((pageNumber - 1)))); - ZVAL_LONG(&_4, show); - ZEPHIR_CALL_FUNCTION(&_5, "array_slice", NULL, 260, &items, &_0, &_4); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&items, &_5); - if (pageNumber < totalPages) { - next = (pageNumber + 1); + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); } else { - next = totalPages; + ZEPHIR_INIT_VAR(&schemaName); } - if (pageNumber > 1) { - previous = (pageNumber - 1); - } else { - previous = 1; + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "getforeignkeychecks", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&foreignKeyCheck, this_ptr, "prepare", NULL, 0, &_1); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_2, &foreignKeyCheck, "execute", NULL, 0); + zephir_check_call_status(); + if (UNEXPECTED(!zephir_is_true(&_2))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "DATABASE PARAMETER 'FOREIGN_KEY_CHECKS' HAS TO BE 1", "phalcon/Db/Adapter/Pdo/Mysql.zep", 66); + return; } - ZEPHIR_INIT_VAR(&_6); - zephir_create_array(&_6, 8, 0); - zephir_array_update_string(&_6, SL("items"), &items, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_VAR(&_7); - ZVAL_LONG(&_7, number); - zephir_array_update_string(&_6, SL("total_items"), &_7, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_VAR(&_8); - zephir_read_property(&_8, this_ptr, ZEND_STRL("limitRows"), PH_NOISY_CC); - zephir_array_update_string(&_6, SL("limit"), &_8, PH_COPY | PH_SEPARATE); - add_assoc_long_ex(&_6, SL("first"), 1); - ZEPHIR_INIT_NVAR(&_7); - ZVAL_LONG(&_7, previous); - zephir_array_update_string(&_6, SL("previous"), &_7, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_7); - ZVAL_LONG(&_7, pageNumber); - zephir_array_update_string(&_6, SL("current"), &_7, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_7); - ZVAL_LONG(&_7, next); - zephir_array_update_string(&_6, SL("next"), &_7, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_7); - ZVAL_LONG(&_7, totalPages); - zephir_array_update_string(&_6, SL("last"), &_7, PH_COPY | PH_SEPARATE); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getrepository", NULL, 0, &_6); + zephir_read_property(&_3, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_4, &_3, "addforeignkey", NULL, 0, &tableName, &schemaName, reference); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_4); zephir_check_call_status(); RETURN_MM(); } +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeColumns) +{ + zend_bool _5$$3, _66$$49; + zval definition; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_64 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *table_param = NULL, *schema_param = NULL, __$true, __$false, columns, columnType, fields, field, oldColumn, sizePattern, matches, matchOne, matchTwo, columnName, _0, _1, _2, *_3, _4, _49$$3, _50$$3, _51$$3, _52$$3, _61$$3, _63$$3, _6$$4, _7$$4, _8$$5, _9$$5, _10$$6, _11$$6, _12$$7, _13$$7, _14$$8, _15$$8, _16$$9, _17$$9, _18$$10, _19$$11, _20$$12, _21$$13, _22$$14, _23$$14, _24$$15, _25$$15, _26$$16, _27$$17, _28$$18, _29$$19, _30$$20, _31$$21, _32$$22, _33$$23, _34$$24, _35$$25, _36$$26, _37$$27, _38$$28, _39$$29, _40$$30, _41$$31, _42$$32, _43$$32, _44$$33, _45$$33, _46$$33, _47$$35, _48$$36, _53$$43, _54$$44, _55$$44, _56$$44, _57$$45, _58$$46, _59$$47, _60$$47, _62$$48, _65$$49, _110$$49, _111$$49, _112$$49, _113$$49, _122$$49, _124$$49, _67$$50, _68$$50, _69$$51, _70$$51, _71$$52, _72$$52, _73$$53, _74$$53, _75$$54, _76$$54, _77$$55, _78$$55, _79$$56, _80$$57, _81$$58, _82$$59, _83$$60, _84$$60, _85$$61, _86$$61, _87$$62, _88$$63, _89$$64, _90$$65, _91$$66, _92$$67, _93$$68, _94$$69, _95$$70, _96$$71, _97$$72, _98$$73, _99$$74, _100$$75, _101$$76, _102$$77, _103$$78, _104$$78, _105$$79, _106$$79, _107$$79, _108$$81, _109$$82, _114$$89, _115$$90, _116$$90, _117$$90, _118$$91, _119$$92, _120$$93, _121$$93, _123$$94; + zval table, schema; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&columnType); + ZVAL_UNDEF(&fields); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&oldColumn); + ZVAL_UNDEF(&sizePattern); + ZVAL_UNDEF(&matches); + ZVAL_UNDEF(&matchOne); + ZVAL_UNDEF(&matchTwo); + ZVAL_UNDEF(&columnName); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_49$$3); + ZVAL_UNDEF(&_50$$3); + ZVAL_UNDEF(&_51$$3); + ZVAL_UNDEF(&_52$$3); + ZVAL_UNDEF(&_61$$3); + ZVAL_UNDEF(&_63$$3); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_10$$6); + ZVAL_UNDEF(&_11$$6); + ZVAL_UNDEF(&_12$$7); + ZVAL_UNDEF(&_13$$7); + ZVAL_UNDEF(&_14$$8); + ZVAL_UNDEF(&_15$$8); + ZVAL_UNDEF(&_16$$9); + ZVAL_UNDEF(&_17$$9); + ZVAL_UNDEF(&_18$$10); + ZVAL_UNDEF(&_19$$11); + ZVAL_UNDEF(&_20$$12); + ZVAL_UNDEF(&_21$$13); + ZVAL_UNDEF(&_22$$14); + ZVAL_UNDEF(&_23$$14); + ZVAL_UNDEF(&_24$$15); + ZVAL_UNDEF(&_25$$15); + ZVAL_UNDEF(&_26$$16); + ZVAL_UNDEF(&_27$$17); + ZVAL_UNDEF(&_28$$18); + ZVAL_UNDEF(&_29$$19); + ZVAL_UNDEF(&_30$$20); + ZVAL_UNDEF(&_31$$21); + ZVAL_UNDEF(&_32$$22); + ZVAL_UNDEF(&_33$$23); + ZVAL_UNDEF(&_34$$24); + ZVAL_UNDEF(&_35$$25); + ZVAL_UNDEF(&_36$$26); + ZVAL_UNDEF(&_37$$27); + ZVAL_UNDEF(&_38$$28); + ZVAL_UNDEF(&_39$$29); + ZVAL_UNDEF(&_40$$30); + ZVAL_UNDEF(&_41$$31); + ZVAL_UNDEF(&_42$$32); + ZVAL_UNDEF(&_43$$32); + ZVAL_UNDEF(&_44$$33); + ZVAL_UNDEF(&_45$$33); + ZVAL_UNDEF(&_46$$33); + ZVAL_UNDEF(&_47$$35); + ZVAL_UNDEF(&_48$$36); + ZVAL_UNDEF(&_53$$43); + ZVAL_UNDEF(&_54$$44); + ZVAL_UNDEF(&_55$$44); + ZVAL_UNDEF(&_56$$44); + ZVAL_UNDEF(&_57$$45); + ZVAL_UNDEF(&_58$$46); + ZVAL_UNDEF(&_59$$47); + ZVAL_UNDEF(&_60$$47); + ZVAL_UNDEF(&_62$$48); + ZVAL_UNDEF(&_65$$49); + ZVAL_UNDEF(&_110$$49); + ZVAL_UNDEF(&_111$$49); + ZVAL_UNDEF(&_112$$49); + ZVAL_UNDEF(&_113$$49); + ZVAL_UNDEF(&_122$$49); + ZVAL_UNDEF(&_124$$49); + ZVAL_UNDEF(&_67$$50); + ZVAL_UNDEF(&_68$$50); + ZVAL_UNDEF(&_69$$51); + ZVAL_UNDEF(&_70$$51); + ZVAL_UNDEF(&_71$$52); + ZVAL_UNDEF(&_72$$52); + ZVAL_UNDEF(&_73$$53); + ZVAL_UNDEF(&_74$$53); + ZVAL_UNDEF(&_75$$54); + ZVAL_UNDEF(&_76$$54); + ZVAL_UNDEF(&_77$$55); + ZVAL_UNDEF(&_78$$55); + ZVAL_UNDEF(&_79$$56); + ZVAL_UNDEF(&_80$$57); + ZVAL_UNDEF(&_81$$58); + ZVAL_UNDEF(&_82$$59); + ZVAL_UNDEF(&_83$$60); + ZVAL_UNDEF(&_84$$60); + ZVAL_UNDEF(&_85$$61); + ZVAL_UNDEF(&_86$$61); + ZVAL_UNDEF(&_87$$62); + ZVAL_UNDEF(&_88$$63); + ZVAL_UNDEF(&_89$$64); + ZVAL_UNDEF(&_90$$65); + ZVAL_UNDEF(&_91$$66); + ZVAL_UNDEF(&_92$$67); + ZVAL_UNDEF(&_93$$68); + ZVAL_UNDEF(&_94$$69); + ZVAL_UNDEF(&_95$$70); + ZVAL_UNDEF(&_96$$71); + ZVAL_UNDEF(&_97$$72); + ZVAL_UNDEF(&_98$$73); + ZVAL_UNDEF(&_99$$74); + ZVAL_UNDEF(&_100$$75); + ZVAL_UNDEF(&_101$$76); + ZVAL_UNDEF(&_102$$77); + ZVAL_UNDEF(&_103$$78); + ZVAL_UNDEF(&_104$$78); + ZVAL_UNDEF(&_105$$79); + ZVAL_UNDEF(&_106$$79); + ZVAL_UNDEF(&_107$$79); + ZVAL_UNDEF(&_108$$81); + ZVAL_UNDEF(&_109$$82); + ZVAL_UNDEF(&_114$$89); + ZVAL_UNDEF(&_115$$90); + ZVAL_UNDEF(&_116$$90); + ZVAL_UNDEF(&_117$$90); + ZVAL_UNDEF(&_118$$91); + ZVAL_UNDEF(&_119$$92); + ZVAL_UNDEF(&_120$$93); + ZVAL_UNDEF(&_121$$93); + ZVAL_UNDEF(&_123$$94); + ZVAL_UNDEF(&definition); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schema) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + zephir_get_strval(&table, table_param); + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); + } else { + zephir_get_strval(&schema, schema_param); + } + ZEPHIR_INIT_VAR(&oldColumn); + ZVAL_NULL(&oldColumn); + ZEPHIR_INIT_VAR(&sizePattern); + ZVAL_STRING(&sizePattern, "#\\(([0-9]+)(?:,\\s*([0-9]+))*\\)#"); + ZEPHIR_INIT_VAR(&columns); + array_init(&columns); + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "describecolumns", NULL, 0, &table, &schema); + zephir_check_call_status(); + ZVAL_LONG(&_2, 3); + ZEPHIR_CALL_METHOD(&fields, this_ptr, "fetchall", NULL, 0, &_1, &_2); + zephir_check_call_status(); + zephir_is_iterable(&fields, 0, "phalcon/Db/Adapter/Pdo/Mysql.zep", 468); + if (Z_TYPE_P(&fields) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&fields), _3) + { + ZEPHIR_INIT_NVAR(&field); + ZVAL_COPY(&field, _3); + ZEPHIR_INIT_NVAR(&definition); + zephir_create_array(&definition, 1, 0); + add_assoc_long_ex(&definition, SL("bindType"), 2); + ZEPHIR_OBS_NVAR(&columnType); + zephir_array_fetch_long(&columnType, &field, 1, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 121); + do { + _5$$3 = 1; + if (_5$$3 == zephir_start_with_str(&columnType, SL("bigint"))) { + ZEPHIR_INIT_NVAR(&_6$$4); + ZVAL_LONG(&_6$$4, 14); + zephir_array_update_string(&definition, SL("type"), &_6$$4, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_7$$4); + ZVAL_LONG(&_7$$4, 1); + zephir_array_update_string(&definition, SL("bindType"), &_7$$4, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("mediumint"))) { + ZEPHIR_INIT_NVAR(&_8$$5); + ZVAL_LONG(&_8$$5, 21); + zephir_array_update_string(&definition, SL("type"), &_8$$5, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_9$$5); + ZVAL_LONG(&_9$$5, 1); + zephir_array_update_string(&definition, SL("bindType"), &_9$$5, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("smallint"))) { + ZEPHIR_INIT_NVAR(&_10$$6); + ZVAL_LONG(&_10$$6, 22); + zephir_array_update_string(&definition, SL("type"), &_10$$6, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_11$$6); + ZVAL_LONG(&_11$$6, 1); + zephir_array_update_string(&definition, SL("bindType"), &_11$$6, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("tinyint"))) { + ZEPHIR_INIT_NVAR(&_12$$7); + ZVAL_LONG(&_12$$7, 26); + zephir_array_update_string(&definition, SL("type"), &_12$$7, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_13$$7); + ZVAL_LONG(&_13$$7, 1); + zephir_array_update_string(&definition, SL("bindType"), &_13$$7, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("int"))) { + ZEPHIR_INIT_NVAR(&_14$$8); + ZVAL_LONG(&_14$$8, 0); + zephir_array_update_string(&definition, SL("type"), &_14$$8, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_15$$8); + ZVAL_LONG(&_15$$8, 1); + zephir_array_update_string(&definition, SL("bindType"), &_15$$8, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("bit"))) { + ZEPHIR_INIT_NVAR(&_16$$9); + ZVAL_LONG(&_16$$9, 19); + zephir_array_update_string(&definition, SL("type"), &_16$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_17$$9); + ZVAL_LONG(&_17$$9, 1); + zephir_array_update_string(&definition, SL("bindType"), &_17$$9, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("enum"))) { + ZEPHIR_INIT_NVAR(&_18$$10); + ZVAL_LONG(&_18$$10, 18); + zephir_array_update_string(&definition, SL("type"), &_18$$10, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("datetime"))) { + ZEPHIR_INIT_NVAR(&_19$$11); + ZVAL_LONG(&_19$$11, 4); + zephir_array_update_string(&definition, SL("type"), &_19$$11, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("date"))) { + ZEPHIR_INIT_NVAR(&_20$$12); + ZVAL_LONG(&_20$$12, 1); + zephir_array_update_string(&definition, SL("type"), &_20$$12, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("decimal"))) { + ZEPHIR_INIT_NVAR(&_21$$13); + ZVAL_LONG(&_21$$13, 3); + zephir_array_update_string(&definition, SL("type"), &_21$$13, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("double"))) { + ZEPHIR_INIT_NVAR(&_22$$14); + ZVAL_LONG(&_22$$14, 9); + zephir_array_update_string(&definition, SL("type"), &_22$$14, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_23$$14); + ZVAL_LONG(&_23$$14, 32); + zephir_array_update_string(&definition, SL("bindType"), &_23$$14, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("float"))) { + ZEPHIR_INIT_NVAR(&_24$$15); + ZVAL_LONG(&_24$$15, 7); + zephir_array_update_string(&definition, SL("type"), &_24$$15, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_25$$15); + ZVAL_LONG(&_25$$15, 32); + zephir_array_update_string(&definition, SL("bindType"), &_25$$15, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("mediumblob"))) { + ZEPHIR_INIT_NVAR(&_26$$16); + ZVAL_LONG(&_26$$16, 12); + zephir_array_update_string(&definition, SL("type"), &_26$$16, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("longblob"))) { + ZEPHIR_INIT_NVAR(&_27$$17); + ZVAL_LONG(&_27$$17, 13); + zephir_array_update_string(&definition, SL("type"), &_27$$17, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("tinyblob"))) { + ZEPHIR_INIT_NVAR(&_28$$18); + ZVAL_LONG(&_28$$18, 10); + zephir_array_update_string(&definition, SL("type"), &_28$$18, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("blob"))) { + ZEPHIR_INIT_NVAR(&_29$$19); + ZVAL_LONG(&_29$$19, 11); + zephir_array_update_string(&definition, SL("type"), &_29$$19, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("timestamp"))) { + ZEPHIR_INIT_NVAR(&_30$$20); + ZVAL_LONG(&_30$$20, 17); + zephir_array_update_string(&definition, SL("type"), &_30$$20, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("time"))) { + ZEPHIR_INIT_NVAR(&_31$$21); + ZVAL_LONG(&_31$$21, 20); + zephir_array_update_string(&definition, SL("type"), &_31$$21, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("json"))) { + ZEPHIR_INIT_NVAR(&_32$$22); + ZVAL_LONG(&_32$$22, 15); + zephir_array_update_string(&definition, SL("type"), &_32$$22, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("longtext"))) { + ZEPHIR_INIT_NVAR(&_33$$23); + ZVAL_LONG(&_33$$23, 24); + zephir_array_update_string(&definition, SL("type"), &_33$$23, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("mediumtext"))) { + ZEPHIR_INIT_NVAR(&_34$$24); + ZVAL_LONG(&_34$$24, 23); + zephir_array_update_string(&definition, SL("type"), &_34$$24, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("tinytext"))) { + ZEPHIR_INIT_NVAR(&_35$$25); + ZVAL_LONG(&_35$$25, 25); + zephir_array_update_string(&definition, SL("type"), &_35$$25, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("text"))) { + ZEPHIR_INIT_NVAR(&_36$$26); + ZVAL_LONG(&_36$$26, 6); + zephir_array_update_string(&definition, SL("type"), &_36$$26, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("varchar"))) { + ZEPHIR_INIT_NVAR(&_37$$27); + ZVAL_LONG(&_37$$27, 2); + zephir_array_update_string(&definition, SL("type"), &_37$$27, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("char"))) { + ZEPHIR_INIT_NVAR(&_38$$28); + ZVAL_LONG(&_38$$28, 5); + zephir_array_update_string(&definition, SL("type"), &_38$$28, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("varbinary"))) { + ZEPHIR_INIT_NVAR(&_39$$29); + ZVAL_LONG(&_39$$29, 26); + zephir_array_update_string(&definition, SL("type"), &_39$$29, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_start_with_str(&columnType, SL("binary"))) { + ZEPHIR_INIT_NVAR(&_40$$30); + ZVAL_LONG(&_40$$30, 26); + zephir_array_update_string(&definition, SL("type"), &_40$$30, PH_COPY | PH_SEPARATE); + break; + } + ZEPHIR_INIT_NVAR(&_41$$31); + ZVAL_LONG(&_41$$31, 2); + zephir_array_update_string(&definition, SL("type"), &_41$$31, PH_COPY | PH_SEPARATE); + break; + } while(0); -ZEPHIR_INIT_CLASS(Phalcon_Paginator_Adapter_QueryBuilder) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Paginator\\Adapter, QueryBuilder, phalcon, paginator_adapter_querybuilder, phalcon_paginator_adapter_abstractadapter_ce, phalcon_paginator_adapter_querybuilder_method_entry, 0); + if (zephir_memnstr_str(&columnType, SL("("), "phalcon/Db/Adapter/Pdo/Mysql.zep", 385)) { + ZEPHIR_INIT_NVAR(&matches); + ZVAL_NULL(&matches); + zephir_array_fetch_string(&_42$$32, &definition, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 388); + ZEPHIR_INIT_NVAR(&_43$$32); + zephir_preg_match(&_43$$32, &sizePattern, &columnType, &matches, 0, 0 , 0 ); + if (ZEPHIR_IS_LONG(&_42$$32, 18)) { + ZVAL_LONG(&_44$$33, 5); + ZVAL_LONG(&_45$$33, -1); + ZEPHIR_INIT_NVAR(&_46$$33); + zephir_substr(&_46$$33, &columnType, 5 , -1 , 0); + zephir_array_update_string(&definition, SL("size"), &_46$$33, PH_COPY | PH_SEPARATE); + } else if (zephir_is_true(&_43$$32)) { + ZEPHIR_OBS_NVAR(&matchOne); + if (zephir_array_isset_long_fetch(&matchOne, &matches, 1, 0)) { + ZEPHIR_INIT_NVAR(&_47$$35); + ZVAL_LONG(&_47$$35, zephir_get_intval(&matchOne)); + zephir_array_update_string(&definition, SL("size"), &_47$$35, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_NVAR(&matchTwo); + if (zephir_array_isset_long_fetch(&matchTwo, &matches, 2, 0)) { + ZEPHIR_INIT_NVAR(&_48$$36); + ZVAL_LONG(&_48$$36, zephir_get_intval(&matchTwo)); + zephir_array_update_string(&definition, SL("scale"), &_48$$36, PH_COPY | PH_SEPARATE); + } + } + } + if (zephir_memnstr_str(&columnType, SL("unsigned"), "phalcon/Db/Adapter/Pdo/Mysql.zep", 404)) { + zephir_array_update_string(&definition, SL("unsigned"), &__$true, PH_COPY | PH_SEPARATE); + } + if (Z_TYPE_P(&oldColumn) == IS_NULL) { + zephir_array_update_string(&definition, SL("first"), &__$true, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_49$$3, &field, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 420); + if (ZEPHIR_IS_STRING(&_49$$3, "PRI")) { + zephir_array_update_string(&definition, SL("primary"), &__$true, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_50$$3, &field, 3, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 427); + if (ZEPHIR_IS_STRING(&_50$$3, "YES")) { + zephir_array_update_string(&definition, SL("notNull"), &__$false, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_51$$3, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 434); + if (ZEPHIR_IS_STRING(&_51$$3, "auto_increment")) { + zephir_array_update_string(&definition, SL("autoIncrement"), &__$true, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_52$$3, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 441); + if (Z_TYPE_P(&_52$$3) != IS_NULL) { + zephir_array_fetch_long(&_53$$43, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 442); + if (zephir_memnstr_str(&_53$$43, SL("on update"), "phalcon/Db/Adapter/Pdo/Mysql.zep", 442)) { + zephir_array_fetch_long(&_54$$44, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 443); + zephir_array_fetch_long(&_55$$44, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 443); + ZEPHIR_INIT_NVAR(&_56$$44); + ZEPHIR_CONCAT_VSV(&_56$$44, &_54$$44, " ", &_55$$44); + zephir_array_update_string(&definition, SL("default"), &_56$$44, PH_COPY | PH_SEPARATE); + } else { + zephir_array_fetch_long(&_57$$45, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 445); + zephir_array_update_string(&definition, SL("default"), &_57$$45, PH_COPY | PH_SEPARATE); + } + } else { + zephir_array_fetch_long(&_58$$46, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 448); + if (zephir_memnstr_str(&_58$$46, SL("on update"), "phalcon/Db/Adapter/Pdo/Mysql.zep", 448)) { + zephir_array_fetch_long(&_59$$47, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 449); + ZEPHIR_INIT_NVAR(&_60$$47); + ZEPHIR_CONCAT_SV(&_60$$47, "NULL ", &_59$$47); + zephir_array_update_string(&definition, SL("default"), &_60$$47, PH_COPY | PH_SEPARATE); + } + } + zephir_array_fetch_long(&_61$$3, &field, 8, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 456); + if (Z_TYPE_P(&_61$$3) != IS_NULL) { + zephir_array_fetch_long(&_62$$48, &field, 8, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 457); + zephir_array_update_string(&definition, SL("comment"), &_62$$48, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&columnName, &field, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 463); + ZEPHIR_INIT_NVAR(&_63$$3); + object_init_ex(&_63$$3, phalcon_db_column_ce); + ZEPHIR_CALL_METHOD(NULL, &_63$$3, "__construct", &_64, 212, &columnName, &definition); + zephir_check_call_status(); + zephir_array_append(&columns, &_63$$3, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Mysql.zep", 464); + ZEPHIR_CPY_WRT(&oldColumn, &columnName); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &fields, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_4, &fields, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_4)) { + break; + } + ZEPHIR_CALL_METHOD(&field, &fields, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_65$$49); + zephir_create_array(&_65$$49, 1, 0); + add_assoc_long_ex(&_65$$49, SL("bindType"), 2); + ZEPHIR_CPY_WRT(&definition, &_65$$49); + ZEPHIR_OBS_NVAR(&columnType); + zephir_array_fetch_long(&columnType, &field, 1, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 121); + do { + _66$$49 = 1; + if (_66$$49 == zephir_start_with_str(&columnType, SL("bigint"))) { + ZEPHIR_INIT_NVAR(&_67$$50); + ZVAL_LONG(&_67$$50, 14); + zephir_array_update_string(&definition, SL("type"), &_67$$50, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_68$$50); + ZVAL_LONG(&_68$$50, 1); + zephir_array_update_string(&definition, SL("bindType"), &_68$$50, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("mediumint"))) { + ZEPHIR_INIT_NVAR(&_69$$51); + ZVAL_LONG(&_69$$51, 21); + zephir_array_update_string(&definition, SL("type"), &_69$$51, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_70$$51); + ZVAL_LONG(&_70$$51, 1); + zephir_array_update_string(&definition, SL("bindType"), &_70$$51, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("smallint"))) { + ZEPHIR_INIT_NVAR(&_71$$52); + ZVAL_LONG(&_71$$52, 22); + zephir_array_update_string(&definition, SL("type"), &_71$$52, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_72$$52); + ZVAL_LONG(&_72$$52, 1); + zephir_array_update_string(&definition, SL("bindType"), &_72$$52, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("tinyint"))) { + ZEPHIR_INIT_NVAR(&_73$$53); + ZVAL_LONG(&_73$$53, 26); + zephir_array_update_string(&definition, SL("type"), &_73$$53, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_74$$53); + ZVAL_LONG(&_74$$53, 1); + zephir_array_update_string(&definition, SL("bindType"), &_74$$53, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("int"))) { + ZEPHIR_INIT_NVAR(&_75$$54); + ZVAL_LONG(&_75$$54, 0); + zephir_array_update_string(&definition, SL("type"), &_75$$54, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_76$$54); + ZVAL_LONG(&_76$$54, 1); + zephir_array_update_string(&definition, SL("bindType"), &_76$$54, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("bit"))) { + ZEPHIR_INIT_NVAR(&_77$$55); + ZVAL_LONG(&_77$$55, 19); + zephir_array_update_string(&definition, SL("type"), &_77$$55, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_78$$55); + ZVAL_LONG(&_78$$55, 1); + zephir_array_update_string(&definition, SL("bindType"), &_78$$55, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("enum"))) { + ZEPHIR_INIT_NVAR(&_79$$56); + ZVAL_LONG(&_79$$56, 18); + zephir_array_update_string(&definition, SL("type"), &_79$$56, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("datetime"))) { + ZEPHIR_INIT_NVAR(&_80$$57); + ZVAL_LONG(&_80$$57, 4); + zephir_array_update_string(&definition, SL("type"), &_80$$57, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("date"))) { + ZEPHIR_INIT_NVAR(&_81$$58); + ZVAL_LONG(&_81$$58, 1); + zephir_array_update_string(&definition, SL("type"), &_81$$58, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("decimal"))) { + ZEPHIR_INIT_NVAR(&_82$$59); + ZVAL_LONG(&_82$$59, 3); + zephir_array_update_string(&definition, SL("type"), &_82$$59, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("double"))) { + ZEPHIR_INIT_NVAR(&_83$$60); + ZVAL_LONG(&_83$$60, 9); + zephir_array_update_string(&definition, SL("type"), &_83$$60, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_84$$60); + ZVAL_LONG(&_84$$60, 32); + zephir_array_update_string(&definition, SL("bindType"), &_84$$60, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("float"))) { + ZEPHIR_INIT_NVAR(&_85$$61); + ZVAL_LONG(&_85$$61, 7); + zephir_array_update_string(&definition, SL("type"), &_85$$61, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_86$$61); + ZVAL_LONG(&_86$$61, 32); + zephir_array_update_string(&definition, SL("bindType"), &_86$$61, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("mediumblob"))) { + ZEPHIR_INIT_NVAR(&_87$$62); + ZVAL_LONG(&_87$$62, 12); + zephir_array_update_string(&definition, SL("type"), &_87$$62, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("longblob"))) { + ZEPHIR_INIT_NVAR(&_88$$63); + ZVAL_LONG(&_88$$63, 13); + zephir_array_update_string(&definition, SL("type"), &_88$$63, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("tinyblob"))) { + ZEPHIR_INIT_NVAR(&_89$$64); + ZVAL_LONG(&_89$$64, 10); + zephir_array_update_string(&definition, SL("type"), &_89$$64, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("blob"))) { + ZEPHIR_INIT_NVAR(&_90$$65); + ZVAL_LONG(&_90$$65, 11); + zephir_array_update_string(&definition, SL("type"), &_90$$65, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("timestamp"))) { + ZEPHIR_INIT_NVAR(&_91$$66); + ZVAL_LONG(&_91$$66, 17); + zephir_array_update_string(&definition, SL("type"), &_91$$66, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("time"))) { + ZEPHIR_INIT_NVAR(&_92$$67); + ZVAL_LONG(&_92$$67, 20); + zephir_array_update_string(&definition, SL("type"), &_92$$67, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("json"))) { + ZEPHIR_INIT_NVAR(&_93$$68); + ZVAL_LONG(&_93$$68, 15); + zephir_array_update_string(&definition, SL("type"), &_93$$68, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("longtext"))) { + ZEPHIR_INIT_NVAR(&_94$$69); + ZVAL_LONG(&_94$$69, 24); + zephir_array_update_string(&definition, SL("type"), &_94$$69, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("mediumtext"))) { + ZEPHIR_INIT_NVAR(&_95$$70); + ZVAL_LONG(&_95$$70, 23); + zephir_array_update_string(&definition, SL("type"), &_95$$70, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("tinytext"))) { + ZEPHIR_INIT_NVAR(&_96$$71); + ZVAL_LONG(&_96$$71, 25); + zephir_array_update_string(&definition, SL("type"), &_96$$71, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("text"))) { + ZEPHIR_INIT_NVAR(&_97$$72); + ZVAL_LONG(&_97$$72, 6); + zephir_array_update_string(&definition, SL("type"), &_97$$72, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("varchar"))) { + ZEPHIR_INIT_NVAR(&_98$$73); + ZVAL_LONG(&_98$$73, 2); + zephir_array_update_string(&definition, SL("type"), &_98$$73, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("char"))) { + ZEPHIR_INIT_NVAR(&_99$$74); + ZVAL_LONG(&_99$$74, 5); + zephir_array_update_string(&definition, SL("type"), &_99$$74, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("varbinary"))) { + ZEPHIR_INIT_NVAR(&_100$$75); + ZVAL_LONG(&_100$$75, 26); + zephir_array_update_string(&definition, SL("type"), &_100$$75, PH_COPY | PH_SEPARATE); + break; + } + if (_66$$49 == zephir_start_with_str(&columnType, SL("binary"))) { + ZEPHIR_INIT_NVAR(&_101$$76); + ZVAL_LONG(&_101$$76, 26); + zephir_array_update_string(&definition, SL("type"), &_101$$76, PH_COPY | PH_SEPARATE); + break; + } + ZEPHIR_INIT_NVAR(&_102$$77); + ZVAL_LONG(&_102$$77, 2); + zephir_array_update_string(&definition, SL("type"), &_102$$77, PH_COPY | PH_SEPARATE); + break; + } while(0); - zend_declare_property_null(phalcon_paginator_adapter_querybuilder_ce, SL("builder"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_paginator_adapter_querybuilder_ce, SL("columns"), ZEND_ACC_PROTECTED); - return SUCCESS; + if (zephir_memnstr_str(&columnType, SL("("), "phalcon/Db/Adapter/Pdo/Mysql.zep", 385)) { + ZEPHIR_INIT_NVAR(&matches); + ZVAL_NULL(&matches); + zephir_array_fetch_string(&_103$$78, &definition, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 388); + ZEPHIR_INIT_NVAR(&_104$$78); + zephir_preg_match(&_104$$78, &sizePattern, &columnType, &matches, 0, 0 , 0 ); + if (ZEPHIR_IS_LONG(&_103$$78, 18)) { + ZVAL_LONG(&_105$$79, 5); + ZVAL_LONG(&_106$$79, -1); + ZEPHIR_INIT_NVAR(&_107$$79); + zephir_substr(&_107$$79, &columnType, 5 , -1 , 0); + zephir_array_update_string(&definition, SL("size"), &_107$$79, PH_COPY | PH_SEPARATE); + } else if (zephir_is_true(&_104$$78)) { + ZEPHIR_OBS_NVAR(&matchOne); + if (zephir_array_isset_long_fetch(&matchOne, &matches, 1, 0)) { + ZEPHIR_INIT_NVAR(&_108$$81); + ZVAL_LONG(&_108$$81, zephir_get_intval(&matchOne)); + zephir_array_update_string(&definition, SL("size"), &_108$$81, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_NVAR(&matchTwo); + if (zephir_array_isset_long_fetch(&matchTwo, &matches, 2, 0)) { + ZEPHIR_INIT_NVAR(&_109$$82); + ZVAL_LONG(&_109$$82, zephir_get_intval(&matchTwo)); + zephir_array_update_string(&definition, SL("scale"), &_109$$82, PH_COPY | PH_SEPARATE); + } + } + } + if (zephir_memnstr_str(&columnType, SL("unsigned"), "phalcon/Db/Adapter/Pdo/Mysql.zep", 404)) { + zephir_array_update_string(&definition, SL("unsigned"), &__$true, PH_COPY | PH_SEPARATE); + } + if (Z_TYPE_P(&oldColumn) == IS_NULL) { + zephir_array_update_string(&definition, SL("first"), &__$true, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_110$$49, &field, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 420); + if (ZEPHIR_IS_STRING(&_110$$49, "PRI")) { + zephir_array_update_string(&definition, SL("primary"), &__$true, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_111$$49, &field, 3, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 427); + if (ZEPHIR_IS_STRING(&_111$$49, "YES")) { + zephir_array_update_string(&definition, SL("notNull"), &__$false, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_112$$49, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 434); + if (ZEPHIR_IS_STRING(&_112$$49, "auto_increment")) { + zephir_array_update_string(&definition, SL("autoIncrement"), &__$true, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_113$$49, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 441); + if (Z_TYPE_P(&_113$$49) != IS_NULL) { + zephir_array_fetch_long(&_114$$89, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 442); + if (zephir_memnstr_str(&_114$$89, SL("on update"), "phalcon/Db/Adapter/Pdo/Mysql.zep", 442)) { + zephir_array_fetch_long(&_115$$90, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 443); + zephir_array_fetch_long(&_116$$90, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 443); + ZEPHIR_INIT_NVAR(&_117$$90); + ZEPHIR_CONCAT_VSV(&_117$$90, &_115$$90, " ", &_116$$90); + zephir_array_update_string(&definition, SL("default"), &_117$$90, PH_COPY | PH_SEPARATE); + } else { + zephir_array_fetch_long(&_118$$91, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 445); + zephir_array_update_string(&definition, SL("default"), &_118$$91, PH_COPY | PH_SEPARATE); + } + } else { + zephir_array_fetch_long(&_119$$92, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 448); + if (zephir_memnstr_str(&_119$$92, SL("on update"), "phalcon/Db/Adapter/Pdo/Mysql.zep", 448)) { + zephir_array_fetch_long(&_120$$93, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 449); + ZEPHIR_INIT_NVAR(&_121$$93); + ZEPHIR_CONCAT_SV(&_121$$93, "NULL ", &_120$$93); + zephir_array_update_string(&definition, SL("default"), &_121$$93, PH_COPY | PH_SEPARATE); + } + } + zephir_array_fetch_long(&_122$$49, &field, 8, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 456); + if (Z_TYPE_P(&_122$$49) != IS_NULL) { + zephir_array_fetch_long(&_123$$94, &field, 8, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 457); + zephir_array_update_string(&definition, SL("comment"), &_123$$94, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_NVAR(&columnName); + zephir_array_fetch_long(&columnName, &field, 0, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 463); + ZEPHIR_INIT_NVAR(&_124$$49); + object_init_ex(&_124$$49, phalcon_db_column_ce); + ZEPHIR_CALL_METHOD(NULL, &_124$$49, "__construct", &_64, 212, &columnName, &definition); + zephir_check_call_status(); + zephir_array_append(&columns, &_124$$49, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Mysql.zep", 464); + ZEPHIR_CPY_WRT(&oldColumn, &columnName); + ZEPHIR_CALL_METHOD(NULL, &fields, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&field); + RETURN_CCTOR(&columns); } -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, __construct) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeIndexes) { - zval _1$$5; + zend_string *_25; + zend_ulong _24; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_2 = NULL; + zephir_fcall_cache_entry *_29 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *config_param = NULL, builder, columns, _0$$5; - zval config; + zval *table_param = NULL, *schema_param = NULL, __$null, indexes, index, keyName, indexType, indexObjects, columns, name, _0, _1, _2, _3, *_4, _5, *_22, _23, _6$$4, _7$$3, _9$$3, _10$$3, _8$$6, _11$$7, _12$$8, _13$$9, _14$$12, _15$$11, _17$$11, _18$$11, _16$$14, _19$$15, _20$$16, _21$$17, _26$$19, _27$$19, _28$$19, _30$$20, _31$$20, _32$$20; + zval table, schema; zval *this_ptr = getThis(); - ZVAL_UNDEF(&config); - ZVAL_UNDEF(&builder); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&indexes); + ZVAL_UNDEF(&index); + ZVAL_UNDEF(&keyName); + ZVAL_UNDEF(&indexType); + ZVAL_UNDEF(&indexObjects); ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&_0$$5); - ZVAL_UNDEF(&_1$$5); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_23); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_9$$3); + ZVAL_UNDEF(&_10$$3); + ZVAL_UNDEF(&_8$$6); + ZVAL_UNDEF(&_11$$7); + ZVAL_UNDEF(&_12$$8); + ZVAL_UNDEF(&_13$$9); + ZVAL_UNDEF(&_14$$12); + ZVAL_UNDEF(&_15$$11); + ZVAL_UNDEF(&_17$$11); + ZVAL_UNDEF(&_18$$11); + ZVAL_UNDEF(&_16$$14); + ZVAL_UNDEF(&_19$$15); + ZVAL_UNDEF(&_20$$16); + ZVAL_UNDEF(&_21$$17); + ZVAL_UNDEF(&_26$$19); + ZVAL_UNDEF(&_27$$19); + ZVAL_UNDEF(&_28$$19); + ZVAL_UNDEF(&_30$$20); + ZVAL_UNDEF(&_31$$20); + ZVAL_UNDEF(&_32$$20); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(config) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schema) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &config_param); - zephir_get_arrval(&config, config_param); - - - if (UNEXPECTED(!(zephir_array_isset_string(&config, SL("limit"))))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Parameter 'limit' is required", "phalcon/Paginator/Adapter/QueryBuilder.zep", 70); - return; + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); + RETURN_MM_NULL(); } - ZEPHIR_OBS_VAR(&builder); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&builder, &config, SL("builder"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Parameter 'builder' is required", "phalcon/Paginator/Adapter/QueryBuilder.zep", 74); - return; + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); + } else { + ZEPHIR_INIT_VAR(&table); } - if (UNEXPECTED(!((zephir_instance_of_ev(&builder, phalcon_mvc_model_query_builder_ce))))) { - ZEPHIR_INIT_VAR(&_0$$5); - object_init_ex(&_0$$5, phalcon_paginator_exception_ce); - ZEPHIR_INIT_VAR(&_1$$5); - ZEPHIR_CONCAT_SS(&_1$$5, "Parameter 'builder' must be an instance ", "of Phalcon\\Mvc\\Model\\Query\\Builder"); - ZEPHIR_CALL_METHOD(NULL, &_0$$5, "__construct", NULL, 8, &_1$$5); - zephir_check_call_status(); - zephir_throw_exception_debug(&_0$$5, "phalcon/Paginator/Adapter/QueryBuilder.zep", 80); - ZEPHIR_MM_RESTORE(); - return; + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); + } else { + if (UNEXPECTED(Z_TYPE_P(schema_param) != IS_STRING && Z_TYPE_P(schema_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schema' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schema_param) == IS_STRING)) { + zephir_get_strval(&schema, schema_param); + } else { + ZEPHIR_INIT_VAR(&schema); } - ZEPHIR_OBS_VAR(&columns); - if (zephir_array_isset_string_fetch(&columns, &config, SL("columns"), 0)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("columns"), &columns); } - ZEPHIR_CALL_PARENT(NULL, phalcon_paginator_adapter_querybuilder_ce, getThis(), "__construct", &_2, 0, &config); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setquerybuilder", NULL, 0, &builder); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getCurrentPage) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "page"); -} - -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, getQueryBuilder) -{ - zval *this_ptr = getThis(); - - RETURN_MEMBER(getThis(), "builder"); + ZEPHIR_INIT_VAR(&indexes); + array_init(&indexes); + zephir_read_property(&_1, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_2, &_1, "describeindexes", NULL, 0, &table, &schema); + zephir_check_call_status(); + ZVAL_LONG(&_3, 2); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, 0, &_2, &_3); + zephir_check_call_status(); + zephir_is_iterable(&_0, 0, "phalcon/Db/Adapter/Pdo/Mysql.zep", 514); + if (Z_TYPE_P(&_0) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _4) + { + ZEPHIR_INIT_NVAR(&index); + ZVAL_COPY(&index, _4); + zephir_array_fetch_string(&keyName, &index, SL("Key_name"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 487); + zephir_array_fetch_string(&indexType, &index, SL("Index_type"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 488); + if (!(zephir_array_isset(&indexes, &keyName))) { + ZEPHIR_INIT_NVAR(&_6$$4); + array_init(&_6$$4); + zephir_array_update_zval(&indexes, &keyName, &_6$$4, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch(&_7$$3, &indexes, &keyName, PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 494); + if (!(zephir_array_isset_string(&_7$$3, SL("columns")))) { + ZEPHIR_INIT_NVAR(&columns); + array_init(&columns); + } else { + zephir_array_fetch(&_8$$6, &indexes, &keyName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 497); + ZEPHIR_OBS_NVAR(&columns); + zephir_array_fetch_string(&columns, &_8$$6, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 497); + } + zephir_array_fetch_string(&_9$$3, &index, SL("Column_name"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 500); + zephir_array_append(&columns, &_9$$3, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Mysql.zep", 500); + zephir_array_update_multi(&indexes, &columns, SL("zs"), 3, &keyName, SL("columns")); + zephir_array_fetch_string(&_10$$3, &index, SL("Non_unique"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 507); + if (ZEPHIR_IS_STRING(&keyName, "PRIMARY")) { + ZEPHIR_INIT_NVAR(&_11$$7); + ZVAL_STRING(&_11$$7, "PRIMARY"); + zephir_array_update_multi(&indexes, &_11$$7, SL("zs"), 3, &keyName, SL("type")); + } else if (ZEPHIR_IS_STRING(&indexType, "FULLTEXT")) { + ZEPHIR_INIT_NVAR(&_12$$8); + ZVAL_STRING(&_12$$8, "FULLTEXT"); + zephir_array_update_multi(&indexes, &_12$$8, SL("zs"), 3, &keyName, SL("type")); + } else if (ZEPHIR_IS_LONG(&_10$$3, 0)) { + ZEPHIR_INIT_NVAR(&_13$$9); + ZVAL_STRING(&_13$$9, "UNIQUE"); + zephir_array_update_multi(&indexes, &_13$$9, SL("zs"), 3, &keyName, SL("type")); + } else { + zephir_array_update_multi(&indexes, &__$null, SL("zs"), 3, &keyName, SL("type")); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_5, &_0, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_5)) { + break; + } + ZEPHIR_CALL_METHOD(&index, &_0, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&keyName); + zephir_array_fetch_string(&keyName, &index, SL("Key_name"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 487); + ZEPHIR_OBS_NVAR(&indexType); + zephir_array_fetch_string(&indexType, &index, SL("Index_type"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 488); + if (!(zephir_array_isset(&indexes, &keyName))) { + ZEPHIR_INIT_NVAR(&_14$$12); + array_init(&_14$$12); + zephir_array_update_zval(&indexes, &keyName, &_14$$12, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch(&_15$$11, &indexes, &keyName, PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 494); + if (!(zephir_array_isset_string(&_15$$11, SL("columns")))) { + ZEPHIR_INIT_NVAR(&columns); + array_init(&columns); + } else { + zephir_array_fetch(&_16$$14, &indexes, &keyName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 497); + ZEPHIR_OBS_NVAR(&columns); + zephir_array_fetch_string(&columns, &_16$$14, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 497); + } + zephir_array_fetch_string(&_17$$11, &index, SL("Column_name"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 500); + zephir_array_append(&columns, &_17$$11, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Mysql.zep", 500); + zephir_array_update_multi(&indexes, &columns, SL("zs"), 3, &keyName, SL("columns")); + zephir_array_fetch_string(&_18$$11, &index, SL("Non_unique"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 507); + if (ZEPHIR_IS_STRING(&keyName, "PRIMARY")) { + ZEPHIR_INIT_NVAR(&_19$$15); + ZVAL_STRING(&_19$$15, "PRIMARY"); + zephir_array_update_multi(&indexes, &_19$$15, SL("zs"), 3, &keyName, SL("type")); + } else if (ZEPHIR_IS_STRING(&indexType, "FULLTEXT")) { + ZEPHIR_INIT_NVAR(&_20$$16); + ZVAL_STRING(&_20$$16, "FULLTEXT"); + zephir_array_update_multi(&indexes, &_20$$16, SL("zs"), 3, &keyName, SL("type")); + } else if (ZEPHIR_IS_LONG(&_18$$11, 0)) { + ZEPHIR_INIT_NVAR(&_21$$17); + ZVAL_STRING(&_21$$17, "UNIQUE"); + zephir_array_update_multi(&indexes, &_21$$17, SL("zs"), 3, &keyName, SL("type")); + } else { + zephir_array_update_multi(&indexes, &__$null, SL("zs"), 3, &keyName, SL("type")); + } + ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&index); + ZEPHIR_INIT_VAR(&indexObjects); + array_init(&indexObjects); + zephir_is_iterable(&indexes, 0, "phalcon/Db/Adapter/Pdo/Mysql.zep", 524); + if (Z_TYPE_P(&indexes) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&indexes), _24, _25, _22) + { + ZEPHIR_INIT_NVAR(&name); + if (_25 != NULL) { + ZVAL_STR_COPY(&name, _25); + } else { + ZVAL_LONG(&name, _24); + } + ZEPHIR_INIT_NVAR(&index); + ZVAL_COPY(&index, _22); + ZEPHIR_INIT_NVAR(&_26$$19); + object_init_ex(&_26$$19, phalcon_db_index_ce); + zephir_array_fetch_string(&_27$$19, &index, SL("columns"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 519); + zephir_array_fetch_string(&_28$$19, &index, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 521); + ZEPHIR_CALL_METHOD(NULL, &_26$$19, "__construct", &_29, 32, &name, &_27$$19, &_28$$19); + zephir_check_call_status(); + zephir_array_update_zval(&indexObjects, &name, &_26$$19, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &indexes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_23, &indexes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_23)) { + break; + } + ZEPHIR_CALL_METHOD(&name, &indexes, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&index, &indexes, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_30$$20); + object_init_ex(&_30$$20, phalcon_db_index_ce); + zephir_array_fetch_string(&_31$$20, &index, SL("columns"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 519); + zephir_array_fetch_string(&_32$$20, &index, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 521); + ZEPHIR_CALL_METHOD(NULL, &_30$$20, "__construct", &_29, 32, &name, &_31$$20, &_32$$20); + zephir_check_call_status(); + zephir_array_update_zval(&indexObjects, &name, &_30$$20, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &indexes, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&index); + ZEPHIR_INIT_NVAR(&name); + RETURN_CCTOR(&indexObjects); } -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, paginate) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, describeReferences) { - zval _23, _7$$14, _9$$15; - zend_bool hasHaving = 0, hasGroup = 0, _3; - zval originalBuilder, builder, totalBuilder, totalPages, limit, number, query, items, totalQuery, result, row, rowcount, next, sql, columns, db, model, modelClass, dbService, groups, groupColumn, _0, _1, _2, _24, _25, _4$$10, _5$$14, _6$$14, _8$$14, _10$$15, _11$$18, _12$$18, _13$$16, _14$$16, _15$$16, _16$$16, _17$$16, _18$$16, _19$$16, _20$$19, _21$$19, _22$$19; + zval _14$$3, _23$$6, _29$$9, _33$$10; + zend_string *_27; + zend_ulong _26; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS, previous = 0, numberPage = 0; + zephir_fcall_cache_entry *_31 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *table_param = NULL, *schema_param = NULL, references, reference, arrayReference, constraintName, referenceObjects, name, referencedSchema, referencedTable, columns, referencedColumns, referenceUpdate, referenceDelete, _0, _1, _2, _3, *_4, _5, *_24, _25, _6$$5, _7$$5, _8$$5, _9$$5, _10$$5, _11$$5, _12$$3, _13$$3, _15$$8, _16$$8, _17$$8, _18$$8, _19$$8, _20$$8, _21$$6, _22$$6, _28$$9, _30$$9, _32$$10, _34$$10; + zval table, schema; zval *this_ptr = getThis(); - ZVAL_UNDEF(&originalBuilder); - ZVAL_UNDEF(&builder); - ZVAL_UNDEF(&totalBuilder); - ZVAL_UNDEF(&totalPages); - ZVAL_UNDEF(&limit); - ZVAL_UNDEF(&number); - ZVAL_UNDEF(&query); - ZVAL_UNDEF(&items); - ZVAL_UNDEF(&totalQuery); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&row); - ZVAL_UNDEF(&rowcount); - ZVAL_UNDEF(&next); - ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&references); + ZVAL_UNDEF(&reference); + ZVAL_UNDEF(&arrayReference); + ZVAL_UNDEF(&constraintName); + ZVAL_UNDEF(&referenceObjects); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&referencedSchema); + ZVAL_UNDEF(&referencedTable); ZVAL_UNDEF(&columns); - ZVAL_UNDEF(&db); - ZVAL_UNDEF(&model); - ZVAL_UNDEF(&modelClass); - ZVAL_UNDEF(&dbService); - ZVAL_UNDEF(&groups); - ZVAL_UNDEF(&groupColumn); + ZVAL_UNDEF(&referencedColumns); + ZVAL_UNDEF(&referenceUpdate); + ZVAL_UNDEF(&referenceDelete); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_24); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); ZVAL_UNDEF(&_25); - ZVAL_UNDEF(&_4$$10); - ZVAL_UNDEF(&_5$$14); - ZVAL_UNDEF(&_6$$14); - ZVAL_UNDEF(&_8$$14); - ZVAL_UNDEF(&_10$$15); - ZVAL_UNDEF(&_11$$18); - ZVAL_UNDEF(&_12$$18); - ZVAL_UNDEF(&_13$$16); - ZVAL_UNDEF(&_14$$16); - ZVAL_UNDEF(&_15$$16); - ZVAL_UNDEF(&_16$$16); - ZVAL_UNDEF(&_17$$16); - ZVAL_UNDEF(&_18$$16); - ZVAL_UNDEF(&_19$$16); - ZVAL_UNDEF(&_20$$19); - ZVAL_UNDEF(&_21$$19); - ZVAL_UNDEF(&_22$$19); - ZVAL_UNDEF(&_23); - ZVAL_UNDEF(&_7$$14); - ZVAL_UNDEF(&_9$$15); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_7$$5); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&_11$$5); + ZVAL_UNDEF(&_12$$3); + ZVAL_UNDEF(&_13$$3); + ZVAL_UNDEF(&_15$$8); + ZVAL_UNDEF(&_16$$8); + ZVAL_UNDEF(&_17$$8); + ZVAL_UNDEF(&_18$$8); + ZVAL_UNDEF(&_19$$8); + ZVAL_UNDEF(&_20$$8); + ZVAL_UNDEF(&_21$$6); + ZVAL_UNDEF(&_22$$6); + ZVAL_UNDEF(&_28$$9); + ZVAL_UNDEF(&_30$$9); + ZVAL_UNDEF(&_32$$10); + ZVAL_UNDEF(&_34$$10); + ZVAL_UNDEF(&_14$$3); + ZVAL_UNDEF(&_23$$6); + ZVAL_UNDEF(&_29$$9); + ZVAL_UNDEF(&_33$$10); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schema) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - ZEPHIR_OBS_VAR(&originalBuilder); - zephir_read_property(&originalBuilder, this_ptr, ZEND_STRL("builder"), PH_NOISY_CC); - zephir_read_property(&_0, this_ptr, ZEND_STRL("columns"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&columns, &_0); - ZEPHIR_INIT_VAR(&builder); - if (zephir_clone(&builder, &originalBuilder) == FAILURE) { - RETURN_MM(); - } - ZEPHIR_INIT_VAR(&totalBuilder); - if (zephir_clone(&totalBuilder, &builder) == FAILURE) { - RETURN_MM(); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); + RETURN_MM_NULL(); } - ZEPHIR_OBS_VAR(&limit); - zephir_read_property(&limit, this_ptr, ZEND_STRL("limitRows"), PH_NOISY_CC); - ZEPHIR_OBS_VAR(&_1); - zephir_read_property(&_1, this_ptr, ZEND_STRL("page"), PH_NOISY_CC); - numberPage = zephir_get_intval(&_1); - if (!(numberPage)) { - numberPage = 1; + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); + } else { + ZEPHIR_INIT_VAR(&table); } - ZEPHIR_INIT_VAR(&number); - ZVAL_LONG(&number, (zephir_get_numberval(&limit) * ((numberPage - 1)))); - if (ZEPHIR_LT(&number, &limit)) { - ZEPHIR_CALL_METHOD(NULL, &builder, "limit", NULL, 0, &limit); - zephir_check_call_status(); + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); } else { - ZEPHIR_CALL_METHOD(NULL, &builder, "limit", NULL, 0, &limit, &number); - zephir_check_call_status(); + if (UNEXPECTED(Z_TYPE_P(schema_param) != IS_STRING && Z_TYPE_P(schema_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schema' must be of the type string")); + RETURN_MM_NULL(); } - ZEPHIR_CALL_METHOD(&query, &builder, "getquery", NULL, 0); - zephir_check_call_status(); - if (numberPage == 1) { - previous = 1; + if (EXPECTED(Z_TYPE_P(schema_param) == IS_STRING)) { + zephir_get_strval(&schema, schema_param); } else { - previous = (numberPage - 1); + ZEPHIR_INIT_VAR(&schema); } - ZEPHIR_CALL_METHOD(&items, &query, "execute", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2, &totalBuilder, "gethaving", NULL, 0); + } + + + ZEPHIR_INIT_VAR(&references); + array_init(&references); + zephir_read_property(&_1, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_2, &_1, "describereferences", NULL, 0, &table, &schema); zephir_check_call_status(); - hasHaving = !(ZEPHIR_IS_EMPTY(&_2)); - ZEPHIR_CALL_METHOD(&groups, &totalBuilder, "getgroupby", NULL, 0); + ZVAL_LONG(&_3, 3); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, 0, &_2, &_3); zephir_check_call_status(); - hasGroup = !(ZEPHIR_IS_EMPTY(&groups)); - _3 = hasHaving; - if (_3) { - _3 = !hasGroup; - } - if (_3) { - if (UNEXPECTED(ZEPHIR_IS_EMPTY(&columns))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "When having is set there should be columns option provided for which calculate row count", "phalcon/Paginator/Adapter/QueryBuilder.zep", 177); - return; - } - ZEPHIR_CALL_METHOD(NULL, &totalBuilder, "columns", NULL, 0, &columns); - zephir_check_call_status(); + zephir_is_iterable(&_0, 0, "phalcon/Db/Adapter/Pdo/Mysql.zep", 577); + if (Z_TYPE_P(&_0) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _4) + { + ZEPHIR_INIT_NVAR(&reference); + ZVAL_COPY(&reference, _4); + zephir_array_fetch_long(&constraintName, &reference, 2, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 546); + if (!(zephir_array_isset(&references, &constraintName))) { + ZEPHIR_OBS_NVAR(&referencedSchema); + zephir_array_fetch_long(&referencedSchema, &reference, 3, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 549); + ZEPHIR_OBS_NVAR(&referencedTable); + zephir_array_fetch_long(&referencedTable, &reference, 4, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 550); + ZEPHIR_OBS_NVAR(&referenceUpdate); + zephir_array_fetch_long(&referenceUpdate, &reference, 6, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 551); + ZEPHIR_OBS_NVAR(&referenceDelete); + zephir_array_fetch_long(&referenceDelete, &reference, 7, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 552); + ZEPHIR_INIT_NVAR(&columns); + array_init(&columns); + ZEPHIR_INIT_NVAR(&referencedColumns); + array_init(&referencedColumns); + } else { + zephir_array_fetch(&_6$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 556); + ZEPHIR_OBS_NVAR(&referencedSchema); + zephir_array_fetch_string(&referencedSchema, &_6$$5, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 556); + zephir_array_fetch(&_7$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 557); + ZEPHIR_OBS_NVAR(&referencedTable); + zephir_array_fetch_string(&referencedTable, &_7$$5, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 557); + zephir_array_fetch(&_8$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 558); + ZEPHIR_OBS_NVAR(&columns); + zephir_array_fetch_string(&columns, &_8$$5, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 558); + zephir_array_fetch(&_9$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 559); + ZEPHIR_OBS_NVAR(&referencedColumns); + zephir_array_fetch_string(&referencedColumns, &_9$$5, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 559); + zephir_array_fetch(&_10$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 560); + ZEPHIR_OBS_NVAR(&referenceUpdate); + zephir_array_fetch_string(&referenceUpdate, &_10$$5, SL("onUpdate"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 560); + zephir_array_fetch(&_11$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 561); + ZEPHIR_OBS_NVAR(&referenceDelete); + zephir_array_fetch_string(&referenceDelete, &_11$$5, SL("onDelete"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 561); + } + zephir_array_fetch_long(&_12$$3, &reference, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 564); + zephir_array_append(&columns, &_12$$3, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Mysql.zep", 564); + zephir_array_fetch_long(&_13$$3, &reference, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 565); + zephir_array_append(&referencedColumns, &_13$$3, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Mysql.zep", 565); + ZEPHIR_INIT_NVAR(&_14$$3); + zephir_create_array(&_14$$3, 6, 0); + zephir_array_update_string(&_14$$3, SL("referencedSchema"), &referencedSchema, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_14$$3, SL("referencedTable"), &referencedTable, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_14$$3, SL("columns"), &columns, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_14$$3, SL("referencedColumns"), &referencedColumns, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_14$$3, SL("onUpdate"), &referenceUpdate, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_14$$3, SL("onDelete"), &referenceDelete, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&references, &constraintName, &_14$$3, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_INIT_VAR(&_4$$10); - ZVAL_STRING(&_4$$10, "COUNT(*) [rowcount]"); - ZEPHIR_CALL_METHOD(NULL, &totalBuilder, "columns", NULL, 0, &_4$$10); + ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); zephir_check_call_status(); - } - if (hasGroup) { - if (Z_TYPE_P(&groups) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&groupColumn); - zephir_fast_join_str(&groupColumn, SL(", "), &groups); - } else { - ZEPHIR_CPY_WRT(&groupColumn, &groups); - } - if (!(hasHaving)) { - ZVAL_NULL(&_6$$14); - ZEPHIR_CALL_METHOD(&_5$$14, &totalBuilder, "groupby", NULL, 0, &_6$$14); + while (1) { + ZEPHIR_CALL_METHOD(&_5, &_0, "valid", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_7$$14); - zephir_create_array(&_7$$14, 1, 0); - ZEPHIR_INIT_VAR(&_8$$14); - ZEPHIR_CONCAT_SVS(&_8$$14, "COUNT(DISTINCT ", &groupColumn, ") AS [rowcount]"); - zephir_array_fast_append(&_7$$14, &_8$$14); - ZEPHIR_CALL_METHOD(NULL, &_5$$14, "columns", NULL, 0, &_7$$14); + if (!zend_is_true(&_5)) { + break; + } + ZEPHIR_CALL_METHOD(&reference, &_0, "current", NULL, 0); zephir_check_call_status(); - } else { - ZEPHIR_INIT_VAR(&_9$$15); - zephir_create_array(&_9$$15, 1, 0); - ZEPHIR_INIT_VAR(&_10$$15); - ZEPHIR_CONCAT_SV(&_10$$15, "DISTINCT ", &groupColumn); - zephir_array_fast_append(&_9$$15, &_10$$15); - ZEPHIR_CALL_METHOD(NULL, &totalBuilder, "columns", NULL, 0, &_9$$15); + ZEPHIR_OBS_NVAR(&constraintName); + zephir_array_fetch_long(&constraintName, &reference, 2, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 546); + if (!(zephir_array_isset(&references, &constraintName))) { + ZEPHIR_OBS_NVAR(&referencedSchema); + zephir_array_fetch_long(&referencedSchema, &reference, 3, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 549); + ZEPHIR_OBS_NVAR(&referencedTable); + zephir_array_fetch_long(&referencedTable, &reference, 4, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 550); + ZEPHIR_OBS_NVAR(&referenceUpdate); + zephir_array_fetch_long(&referenceUpdate, &reference, 6, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 551); + ZEPHIR_OBS_NVAR(&referenceDelete); + zephir_array_fetch_long(&referenceDelete, &reference, 7, PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 552); + ZEPHIR_INIT_NVAR(&columns); + array_init(&columns); + ZEPHIR_INIT_NVAR(&referencedColumns); + array_init(&referencedColumns); + } else { + zephir_array_fetch(&_15$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 556); + ZEPHIR_OBS_NVAR(&referencedSchema); + zephir_array_fetch_string(&referencedSchema, &_15$$8, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 556); + zephir_array_fetch(&_16$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 557); + ZEPHIR_OBS_NVAR(&referencedTable); + zephir_array_fetch_string(&referencedTable, &_16$$8, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 557); + zephir_array_fetch(&_17$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 558); + ZEPHIR_OBS_NVAR(&columns); + zephir_array_fetch_string(&columns, &_17$$8, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 558); + zephir_array_fetch(&_18$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 559); + ZEPHIR_OBS_NVAR(&referencedColumns); + zephir_array_fetch_string(&referencedColumns, &_18$$8, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 559); + zephir_array_fetch(&_19$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 560); + ZEPHIR_OBS_NVAR(&referenceUpdate); + zephir_array_fetch_string(&referenceUpdate, &_19$$8, SL("onUpdate"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 560); + zephir_array_fetch(&_20$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 561); + ZEPHIR_OBS_NVAR(&referenceDelete); + zephir_array_fetch_string(&referenceDelete, &_20$$8, SL("onDelete"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 561); + } + zephir_array_fetch_long(&_21$$6, &reference, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 564); + zephir_array_append(&columns, &_21$$6, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Mysql.zep", 564); + zephir_array_fetch_long(&_22$$6, &reference, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 565); + zephir_array_append(&referencedColumns, &_22$$6, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Mysql.zep", 565); + ZEPHIR_INIT_NVAR(&_23$$6); + zephir_create_array(&_23$$6, 6, 0); + zephir_array_update_string(&_23$$6, SL("referencedSchema"), &referencedSchema, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_23$$6, SL("referencedTable"), &referencedTable, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_23$$6, SL("columns"), &columns, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_23$$6, SL("referencedColumns"), &referencedColumns, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_23$$6, SL("onUpdate"), &referenceUpdate, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_23$$6, SL("onDelete"), &referenceDelete, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&references, &constraintName, &_23$$6, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); zephir_check_call_status(); } } - ZVAL_NULL(&_0); - ZEPHIR_CALL_METHOD(NULL, &totalBuilder, "orderby", NULL, 0, &_0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&totalQuery, &totalBuilder, "getquery", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&rowcount); - if (hasHaving) { - ZEPHIR_CALL_METHOD(&sql, &totalQuery, "getsql", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&modelClass, &builder, "getmodels", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&modelClass) == IS_NULL)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_paginator_exception_ce, "Model not defined in builder", "phalcon/Paginator/Adapter/QueryBuilder.zep", 229); - return; - } - if (Z_TYPE_P(&modelClass) == IS_ARRAY) { - ZEPHIR_CALL_FUNCTION(&_11$$18, "array_values", NULL, 12, &modelClass); + ZEPHIR_INIT_NVAR(&reference); + ZEPHIR_INIT_VAR(&referenceObjects); + array_init(&referenceObjects); + zephir_is_iterable(&references, 0, "phalcon/Db/Adapter/Pdo/Mysql.zep", 592); + if (Z_TYPE_P(&references) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&references), _26, _27, _24) + { + ZEPHIR_INIT_NVAR(&name); + if (_27 != NULL) { + ZVAL_STR_COPY(&name, _27); + } else { + ZVAL_LONG(&name, _26); + } + ZEPHIR_INIT_NVAR(&arrayReference); + ZVAL_COPY(&arrayReference, _24); + ZEPHIR_INIT_NVAR(&_28$$9); + object_init_ex(&_28$$9, phalcon_db_reference_ce); + ZEPHIR_INIT_NVAR(&_29$$9); + zephir_create_array(&_29$$9, 6, 0); + ZEPHIR_OBS_NVAR(&_30$$9); + zephir_array_fetch_string(&_30$$9, &arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 582); + zephir_array_update_string(&_29$$9, SL("referencedSchema"), &_30$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_30$$9); + zephir_array_fetch_string(&_30$$9, &arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 583); + zephir_array_update_string(&_29$$9, SL("referencedTable"), &_30$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_30$$9); + zephir_array_fetch_string(&_30$$9, &arrayReference, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 584); + zephir_array_update_string(&_29$$9, SL("columns"), &_30$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_30$$9); + zephir_array_fetch_string(&_30$$9, &arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 585); + zephir_array_update_string(&_29$$9, SL("referencedColumns"), &_30$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_30$$9); + zephir_array_fetch_string(&_30$$9, &arrayReference, SL("onUpdate"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 586); + zephir_array_update_string(&_29$$9, SL("onUpdate"), &_30$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_30$$9); + zephir_array_fetch_string(&_30$$9, &arrayReference, SL("onDelete"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 588); + zephir_array_update_string(&_29$$9, SL("onDelete"), &_30$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &_28$$9, "__construct", &_31, 33, &name, &_29$$9); zephir_check_call_status(); - zephir_array_fetch_long(&_12$$18, &_11$$18, 0, PH_NOISY | PH_READONLY, "phalcon/Paginator/Adapter/QueryBuilder.zep", 233); - ZEPHIR_CPY_WRT(&modelClass, &_12$$18); - } - ZEPHIR_INIT_VAR(&model); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(&model, &modelClass); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&dbService, &model, "getreadconnectionservice", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_13$$16, &totalBuilder, "getdi", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&db, &_13$$16, "get", NULL, 0, &dbService); - zephir_check_call_status(); - zephir_array_fetch_string(&_14$$16, &sql, SL("sql"), PH_NOISY | PH_READONLY, "phalcon/Paginator/Adapter/QueryBuilder.zep", 241); - ZEPHIR_INIT_VAR(&_15$$16); - ZEPHIR_CONCAT_SVS(&_15$$16, "SELECT COUNT(*) as \"rowcount\" FROM (", &_14$$16, ") as T1"); - zephir_array_fetch_string(&_16$$16, &sql, SL("bind"), PH_NOISY | PH_READONLY, "phalcon/Paginator/Adapter/QueryBuilder.zep", 244); - ZVAL_LONG(&_17$$16, 2); - ZEPHIR_CALL_METHOD(&row, &db, "fetchone", NULL, 0, &_15$$16, &_17$$16, &_16$$16); - zephir_check_call_status(); - if (zephir_is_true(&row)) { - zephir_array_fetch_string(&_18$$16, &row, SL("rowcount"), PH_NOISY | PH_READONLY, "phalcon/Paginator/Adapter/QueryBuilder.zep", 246); - ZVAL_LONG(&rowcount, zephir_get_intval(&_18$$16)); - } else { - ZVAL_LONG(&rowcount, 0); - } - ZEPHIR_INIT_VAR(&_19$$16); - div_function(&_19$$16, &rowcount, &limit); - ZVAL_DOUBLE(&_17$$16, zephir_ceil(&_19$$16)); - ZEPHIR_INIT_VAR(&totalPages); - ZVAL_LONG(&totalPages, zephir_get_intval(&_17$$16)); + zephir_array_update_zval(&referenceObjects, &name, &_28$$9, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(&result, &totalQuery, "execute", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&row, &result, "getfirst", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &references, "rewind", NULL, 0); zephir_check_call_status(); - if (zephir_is_true(&row)) { - zephir_read_property(&_20$$19, &row, ZEND_STRL("rowcount"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&rowcount); - ZVAL_LONG(&rowcount, zephir_get_intval(&_20$$19)); - } else { - ZEPHIR_INIT_NVAR(&rowcount); - ZVAL_LONG(&rowcount, 0); + while (1) { + ZEPHIR_CALL_METHOD(&_25, &references, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_25)) { + break; + } + ZEPHIR_CALL_METHOD(&name, &references, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&arrayReference, &references, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_32$$10); + object_init_ex(&_32$$10, phalcon_db_reference_ce); + ZEPHIR_INIT_NVAR(&_33$$10); + zephir_create_array(&_33$$10, 6, 0); + ZEPHIR_OBS_NVAR(&_34$$10); + zephir_array_fetch_string(&_34$$10, &arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 582); + zephir_array_update_string(&_33$$10, SL("referencedSchema"), &_34$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_34$$10); + zephir_array_fetch_string(&_34$$10, &arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 583); + zephir_array_update_string(&_33$$10, SL("referencedTable"), &_34$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_34$$10); + zephir_array_fetch_string(&_34$$10, &arrayReference, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 584); + zephir_array_update_string(&_33$$10, SL("columns"), &_34$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_34$$10); + zephir_array_fetch_string(&_34$$10, &arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 585); + zephir_array_update_string(&_33$$10, SL("referencedColumns"), &_34$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_34$$10); + zephir_array_fetch_string(&_34$$10, &arrayReference, SL("onUpdate"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 586); + zephir_array_update_string(&_33$$10, SL("onUpdate"), &_34$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_34$$10); + zephir_array_fetch_string(&_34$$10, &arrayReference, SL("onDelete"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Mysql.zep", 588); + zephir_array_update_string(&_33$$10, SL("onDelete"), &_34$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &_32$$10, "__construct", &_31, 33, &name, &_33$$10); + zephir_check_call_status(); + zephir_array_update_zval(&referenceObjects, &name, &_32$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &references, "next", NULL, 0); + zephir_check_call_status(); } - ZEPHIR_INIT_VAR(&_21$$19); - div_function(&_21$$19, &rowcount, &limit); - ZVAL_DOUBLE(&_22$$19, zephir_ceil(&_21$$19)); - ZEPHIR_INIT_NVAR(&totalPages); - ZVAL_LONG(&totalPages, zephir_get_intval(&_22$$19)); - } - if (ZEPHIR_GT_LONG(&totalPages, numberPage)) { - ZEPHIR_INIT_VAR(&next); - ZVAL_LONG(&next, (numberPage + 1)); - } else { - ZEPHIR_CPY_WRT(&next, &totalPages); } - ZEPHIR_INIT_VAR(&_23); - zephir_create_array(&_23, 8, 0); - zephir_array_update_string(&_23, SL("items"), &items, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_23, SL("total_items"), &rowcount, PH_COPY | PH_SEPARATE); - ZEPHIR_OBS_VAR(&_24); - zephir_read_property(&_24, this_ptr, ZEND_STRL("limitRows"), PH_NOISY_CC); - zephir_array_update_string(&_23, SL("limit"), &_24, PH_COPY | PH_SEPARATE); - add_assoc_long_ex(&_23, SL("first"), 1); - ZEPHIR_INIT_VAR(&_25); - ZVAL_LONG(&_25, previous); - zephir_array_update_string(&_23, SL("previous"), &_25, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_25); - ZVAL_LONG(&_25, numberPage); - zephir_array_update_string(&_23, SL("current"), &_25, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_23, SL("next"), &next, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_23, SL("last"), &totalPages, PH_COPY | PH_SEPARATE); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getrepository", NULL, 0, &_23); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_NVAR(&arrayReference); + ZEPHIR_INIT_NVAR(&name); + RETURN_CCTOR(&referenceObjects); } -static PHP_METHOD(Phalcon_Paginator_Adapter_QueryBuilder, setQueryBuilder) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Mysql, getDsnDefaults) { - zval *builder, builder_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&builder_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(builder, phalcon_mvc_model_query_builder_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &builder); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("builder"), builder); - RETURN_THISW(); -} - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Security_Exception) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Security, Exception, phalcon, security_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; + zephir_create_array(return_value, 1, 0); + add_assoc_stringl_ex(return_value, SL("charset"), SL("utf8mb4")); + return; } @@ -193830,1253 +190457,2764 @@ ZEPHIR_INIT_CLASS(Phalcon_Security_Exception) -ZEPHIR_INIT_CLASS(Phalcon_Security_Random) +ZEPHIR_INIT_CLASS(Phalcon_Db_Adapter_Pdo_Postgresql) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Security, Random, phalcon, security_random, phalcon_security_random_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Adapter\\Pdo, Postgresql, phalcon, db_adapter_pdo_postgresql, phalcon_db_adapter_pdo_abstractpdo_ce, phalcon_db_adapter_pdo_postgresql_method_entry, 0); + zend_declare_property_string(phalcon_db_adapter_pdo_postgresql_ce, SL("dialectType"), "postgresql", ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_db_adapter_pdo_postgresql_ce, SL("type"), "pgsql", ZEND_ACC_PROTECTED); return SUCCESS; } -static PHP_METHOD(Phalcon_Security_Random, base58) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *len_param = NULL, _0, _1, _2; - zend_long len, ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_1 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *descriptor_param = NULL, _0$$3; + zval descriptor; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&descriptor); + ZVAL_UNDEF(&_0$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_LONG_OR_NULL(len, is_null_true) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(descriptor) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &len_param); - if (!len_param) { - len = 0; - } else { - len = zephir_get_intval(len_param); - } + zephir_fetch_params(1, 1, 0, &descriptor_param); + ZEPHIR_OBS_COPY_OR_DUP(&descriptor, descriptor_param); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"); - ZVAL_LONG(&_1, 58); - ZVAL_LONG(&_2, len); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "base", NULL, 0, &_0, &_1, &_2); + if (zephir_array_isset_string(&descriptor, SL("charset"))) { + ZEPHIR_INIT_VAR(&_0$$3); + ZVAL_STRING(&_0$$3, "Postgres does not allow the charset to be changed in the DSN."); + ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_0$$3); + zephir_check_call_status(); + } + ZEPHIR_CALL_PARENT(NULL, phalcon_db_adapter_pdo_postgresql_ce, getThis(), "__construct", &_1, 0, &descriptor); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Security_Random, base62) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, connect) { + zend_bool _2$$6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *len_param = NULL, _0, _1, _2; - zend_long len, ZEPHIR_LAST_CALL_STATUS; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_4 = NULL; + zval *descriptor_param = NULL, __$null, schema, sql, _0$$3, _1$$6, _3$$6; + zval descriptor; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&descriptor); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$6); + ZVAL_UNDEF(&_3$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_LONG_OR_NULL(len, is_null_true) + Z_PARAM_ARRAY(descriptor) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &len_param); - if (!len_param) { - len = 0; + zephir_fetch_params(1, 0, 1, &descriptor_param); + if (!descriptor_param) { + ZEPHIR_INIT_VAR(&descriptor); + array_init(&descriptor); } else { - len = zephir_get_intval(len_param); + ZEPHIR_OBS_COPY_OR_DUP(&descriptor, descriptor_param); } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"); - ZVAL_LONG(&_1, 62); - ZVAL_LONG(&_2, len); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "base", NULL, 0, &_0, &_1, &_2); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Security_Random, base64) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *len_param = NULL, _0, _1; - zend_long len, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_LONG_OR_NULL(len, is_null_true) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &len_param); - if (!len_param) { - len = 0; + if (ZEPHIR_IS_EMPTY(&descriptor)) { + zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("descriptor"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&descriptor, &_0$$3); + } + ZEPHIR_OBS_VAR(&schema); + if (zephir_array_isset_string_fetch(&schema, &descriptor, SL("schema"), 0)) { + zephir_array_unset_string(&descriptor, SL("schema"), PH_SEPARATE); } else { - len = zephir_get_intval(len_param); + ZEPHIR_INIT_NVAR(&schema); + ZVAL_NULL(&schema); } - - - ZVAL_LONG(&_1, len); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "bytes", NULL, 0, &_1); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_FUNCTION("base64_encode", NULL, 191, &_0); + if (zephir_array_isset_string(&descriptor, SL("password"))) { + ZEPHIR_OBS_VAR(&_1$$6); + zephir_array_fetch_string(&_1$$6, &descriptor, SL("password"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 85); + _2$$6 = Z_TYPE_P(&_1$$6) == IS_STRING; + if (_2$$6) { + zephir_array_fetch_string(&_3$$6, &descriptor, SL("password"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 85); + _2$$6 = zephir_fast_strlen_ev(&_3$$6) == 0; + } + if (_2$$6) { + zephir_array_update_string(&descriptor, SL("password"), &__$null, PH_COPY | PH_SEPARATE); + } + } + ZEPHIR_CALL_PARENT(NULL, phalcon_db_adapter_pdo_postgresql_ce, getThis(), "connect", &_4, 0, &descriptor); zephir_check_call_status(); - RETURN_MM(); + if (!(ZEPHIR_IS_EMPTY(&schema))) { + ZEPHIR_INIT_VAR(&sql); + ZEPHIR_CONCAT_SVS(&sql, "SET search_path TO '", &schema, "'"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "execute", NULL, 0, &sql); + zephir_check_call_status(); + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Security_Random, base64Safe) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, createTable) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_bool padding; - zval *len_param = NULL, *padding_param = NULL, s, _0, _1, _2, _3, _4, _5, _6$$3; - zend_long len, ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_4 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval definition; + zval *tableName_param = NULL, *schemaName_param = NULL, *definition_param = NULL, sql, queries, query, exception, columns, _0, *_1$$6, _2$$6, _3$$7, _5$$9, _6$$5, _7$$12, _8$$12; + zval tableName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&s); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&queries); + ZVAL_UNDEF(&query); + ZVAL_UNDEF(&exception); + ZVAL_UNDEF(&columns); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_2$$6); + ZVAL_UNDEF(&_3$$7); + ZVAL_UNDEF(&_5$$9); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_7$$12); + ZVAL_UNDEF(&_8$$12); + ZVAL_UNDEF(&definition); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_LONG_OR_NULL(len, is_null_true) - Z_PARAM_BOOL(padding) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_ARRAY(definition) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &len_param, &padding_param); - if (!len_param) { - len = 0; + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &definition_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - len = zephir_get_intval(len_param); + ZEPHIR_INIT_VAR(&tableName); } - if (!padding_param) { - padding = 0; + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); } else { - padding = zephir_get_boolval(padding_param); + ZEPHIR_INIT_VAR(&schemaName); } + ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); - ZVAL_LONG(&_1, len); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "base64", NULL, 0, &_1); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_2, "base64_encode", NULL, 191, &_0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "+/"); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "-_"); - ZEPHIR_CALL_FUNCTION(&s, "strtr", NULL, 5, &_2, &_3, &_4); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "#[^a-z0-9_=-]+#i"); - ZEPHIR_INIT_NVAR(&_4); - ZVAL_STRING(&_4, ""); - ZEPHIR_CALL_FUNCTION(&_5, "preg_replace", NULL, 50, &_3, &_4, &s); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&s, &_5); - if (!(padding)) { - ZEPHIR_INIT_VAR(&_6$$3); - ZVAL_STRING(&_6$$3, "="); - zephir_fast_trim(return_value, &s, &_6$$3, ZEPHIR_TRIM_RIGHT); - RETURN_MM(); + ZEPHIR_OBS_VAR(&columns); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&columns, &definition, SL("columns"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The table must contain at least one column", "phalcon/Db/Adapter/Pdo/Postgresql.zep", 107); + return; } - RETURN_CCTOR(&s); -} - -static PHP_METHOD(Phalcon_Security_Random, bytes) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *len_param = NULL, _0; - zend_long len, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(len) - ZEND_PARSE_PARAMETERS_END(); -#endif + if (UNEXPECTED(!(zephir_fast_count_int(&columns)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The table must contain at least one column", "phalcon/Db/Adapter/Pdo/Postgresql.zep", 111); + return; + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&sql, &_0, "createtable", NULL, 0, &tableName, &schemaName, &definition); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&queries); + zephir_fast_explode_str(&queries, SL(";"), &sql, LONG_MAX); + if (zephir_fast_count_int(&queries) > 1) { + /* try_start_1: */ - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &len_param); - if (!len_param) { - len = 16; - } else { - len = zephir_get_intval(len_param); - } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "begin", NULL, 0); + zephir_check_call_status_or_jump(try_end_1); + zephir_is_iterable(&queries, 0, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 130); + if (Z_TYPE_P(&queries) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&queries), _1$$6) + { + ZEPHIR_INIT_NVAR(&query); + ZVAL_COPY(&query, _1$$6); + if (ZEPHIR_IS_EMPTY(&query)) { + continue; + } + ZEPHIR_INIT_NVAR(&_3$$7); + ZEPHIR_CONCAT_VS(&_3$$7, &query, ";"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "query", &_4, 0, &_3$$7); + zephir_check_call_status_or_jump(try_end_1); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &queries, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2$$6, &queries, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2$$6)) { + break; + } + ZEPHIR_CALL_METHOD(&query, &queries, "current", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_EMPTY(&query)) { + continue; + } + ZEPHIR_INIT_NVAR(&_5$$9); + ZEPHIR_CONCAT_VS(&_5$$9, &query, ";"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "query", &_4, 0, &_5$$9); + zephir_check_call_status_or_jump(try_end_1); + ZEPHIR_CALL_METHOD(NULL, &queries, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&query); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "commit", NULL, 0); + zephir_check_call_status_or_jump(try_end_1); + RETURN_MM(); + try_end_1: - if (len <= 0) { - len = 16; + if (EG(exception)) { + ZEPHIR_INIT_VAR(&_6$$5); + ZVAL_OBJ(&_6$$5, EG(exception)); + Z_ADDREF_P(&_6$$5); + if (zephir_is_instance_of(&_6$$5, SL("Throwable"))) { + zend_clear_exception(); + ZEPHIR_CPY_WRT(&exception, &_6$$5); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "rollback", NULL, 0); + zephir_check_call_status(); + zephir_throw_exception_debug(&exception, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 134); + ZEPHIR_MM_RESTORE(); + return; + } + } + } else { + zephir_array_fetch_long(&_7$$12, &queries, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 137); + ZEPHIR_INIT_VAR(&_8$$12); + ZEPHIR_CONCAT_VS(&_8$$12, &_7$$12, ";"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "execute", NULL, 0, &_8$$12); + zephir_check_call_status(); + RETURN_MM(); } - ZVAL_LONG(&_0, len); - ZEPHIR_RETURN_CALL_FUNCTION("random_bytes", NULL, 0, &_0); - zephir_check_call_status(); - RETURN_MM(); + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Security_Random, hex) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns) { + zend_bool _5$$3, _64$$41; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *len_param = NULL, _0, _1, _2, _3; - zend_long len, ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_55 = NULL, *_58 = NULL, *_62 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *table_param = NULL, *schema_param = NULL, __$true, __$false, __$null, columns, columnType, fields, field, definition, oldColumn, columnName, charSize, numericSize, numericScale, _0, _1, _2, *_3, _4, _47$$3, _48$$3, _49$$3, _50$$3, _59$$3, _61$$3, _6$$4, _7$$4, _8$$5, _9$$5, _10$$6, _11$$6, _12$$7, _13$$7, _14$$8, _15$$8, _16$$9, _17$$9, _18$$10, _19$$11, _20$$12, _21$$12, _22$$13, _23$$13, _24$$14, _25$$14, _26$$15, _27$$15, _28$$16, _29$$16, _30$$17, _31$$18, _32$$19, _33$$20, _34$$21, _35$$22, _36$$23, _37$$24, _38$$25, _39$$26, _40$$27, _41$$28, _42$$29, _43$$30, _44$$31, _45$$31, _46$$32, _51$$38, _52$$38, _53$$38, _54$$38, _56$$38, _57$$38, _60$$40, _63$$41, _106$$41, _107$$41, _108$$41, _109$$41, _116$$41, _118$$41, _65$$42, _66$$42, _67$$43, _68$$43, _69$$44, _70$$44, _71$$45, _72$$45, _73$$46, _74$$46, _75$$47, _76$$47, _77$$48, _78$$49, _79$$50, _80$$50, _81$$51, _82$$51, _83$$52, _84$$52, _85$$53, _86$$53, _87$$54, _88$$54, _89$$55, _90$$56, _91$$57, _92$$58, _93$$59, _94$$60, _95$$61, _96$$62, _97$$63, _98$$64, _99$$65, _100$$66, _101$$67, _102$$68, _103$$69, _104$$69, _105$$70, _110$$76, _111$$76, _112$$76, _113$$76, _114$$76, _115$$76, _117$$78; + zval table, schema; zval *this_ptr = getThis(); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&columnType); + ZVAL_UNDEF(&fields); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&oldColumn); + ZVAL_UNDEF(&columnName); + ZVAL_UNDEF(&charSize); + ZVAL_UNDEF(&numericSize); + ZVAL_UNDEF(&numericScale); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_47$$3); + ZVAL_UNDEF(&_48$$3); + ZVAL_UNDEF(&_49$$3); + ZVAL_UNDEF(&_50$$3); + ZVAL_UNDEF(&_59$$3); + ZVAL_UNDEF(&_61$$3); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_10$$6); + ZVAL_UNDEF(&_11$$6); + ZVAL_UNDEF(&_12$$7); + ZVAL_UNDEF(&_13$$7); + ZVAL_UNDEF(&_14$$8); + ZVAL_UNDEF(&_15$$8); + ZVAL_UNDEF(&_16$$9); + ZVAL_UNDEF(&_17$$9); + ZVAL_UNDEF(&_18$$10); + ZVAL_UNDEF(&_19$$11); + ZVAL_UNDEF(&_20$$12); + ZVAL_UNDEF(&_21$$12); + ZVAL_UNDEF(&_22$$13); + ZVAL_UNDEF(&_23$$13); + ZVAL_UNDEF(&_24$$14); + ZVAL_UNDEF(&_25$$14); + ZVAL_UNDEF(&_26$$15); + ZVAL_UNDEF(&_27$$15); + ZVAL_UNDEF(&_28$$16); + ZVAL_UNDEF(&_29$$16); + ZVAL_UNDEF(&_30$$17); + ZVAL_UNDEF(&_31$$18); + ZVAL_UNDEF(&_32$$19); + ZVAL_UNDEF(&_33$$20); + ZVAL_UNDEF(&_34$$21); + ZVAL_UNDEF(&_35$$22); + ZVAL_UNDEF(&_36$$23); + ZVAL_UNDEF(&_37$$24); + ZVAL_UNDEF(&_38$$25); + ZVAL_UNDEF(&_39$$26); + ZVAL_UNDEF(&_40$$27); + ZVAL_UNDEF(&_41$$28); + ZVAL_UNDEF(&_42$$29); + ZVAL_UNDEF(&_43$$30); + ZVAL_UNDEF(&_44$$31); + ZVAL_UNDEF(&_45$$31); + ZVAL_UNDEF(&_46$$32); + ZVAL_UNDEF(&_51$$38); + ZVAL_UNDEF(&_52$$38); + ZVAL_UNDEF(&_53$$38); + ZVAL_UNDEF(&_54$$38); + ZVAL_UNDEF(&_56$$38); + ZVAL_UNDEF(&_57$$38); + ZVAL_UNDEF(&_60$$40); + ZVAL_UNDEF(&_63$$41); + ZVAL_UNDEF(&_106$$41); + ZVAL_UNDEF(&_107$$41); + ZVAL_UNDEF(&_108$$41); + ZVAL_UNDEF(&_109$$41); + ZVAL_UNDEF(&_116$$41); + ZVAL_UNDEF(&_118$$41); + ZVAL_UNDEF(&_65$$42); + ZVAL_UNDEF(&_66$$42); + ZVAL_UNDEF(&_67$$43); + ZVAL_UNDEF(&_68$$43); + ZVAL_UNDEF(&_69$$44); + ZVAL_UNDEF(&_70$$44); + ZVAL_UNDEF(&_71$$45); + ZVAL_UNDEF(&_72$$45); + ZVAL_UNDEF(&_73$$46); + ZVAL_UNDEF(&_74$$46); + ZVAL_UNDEF(&_75$$47); + ZVAL_UNDEF(&_76$$47); + ZVAL_UNDEF(&_77$$48); + ZVAL_UNDEF(&_78$$49); + ZVAL_UNDEF(&_79$$50); + ZVAL_UNDEF(&_80$$50); + ZVAL_UNDEF(&_81$$51); + ZVAL_UNDEF(&_82$$51); + ZVAL_UNDEF(&_83$$52); + ZVAL_UNDEF(&_84$$52); + ZVAL_UNDEF(&_85$$53); + ZVAL_UNDEF(&_86$$53); + ZVAL_UNDEF(&_87$$54); + ZVAL_UNDEF(&_88$$54); + ZVAL_UNDEF(&_89$$55); + ZVAL_UNDEF(&_90$$56); + ZVAL_UNDEF(&_91$$57); + ZVAL_UNDEF(&_92$$58); + ZVAL_UNDEF(&_93$$59); + ZVAL_UNDEF(&_94$$60); + ZVAL_UNDEF(&_95$$61); + ZVAL_UNDEF(&_96$$62); + ZVAL_UNDEF(&_97$$63); + ZVAL_UNDEF(&_98$$64); + ZVAL_UNDEF(&_99$$65); + ZVAL_UNDEF(&_100$$66); + ZVAL_UNDEF(&_101$$67); + ZVAL_UNDEF(&_102$$68); + ZVAL_UNDEF(&_103$$69); + ZVAL_UNDEF(&_104$$69); + ZVAL_UNDEF(&_105$$70); + ZVAL_UNDEF(&_110$$76); + ZVAL_UNDEF(&_111$$76); + ZVAL_UNDEF(&_112$$76); + ZVAL_UNDEF(&_113$$76); + ZVAL_UNDEF(&_114$$76); + ZVAL_UNDEF(&_115$$76); + ZVAL_UNDEF(&_117$$78); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) Z_PARAM_OPTIONAL - Z_PARAM_LONG_OR_NULL(len, is_null_true) + Z_PARAM_STR_OR_NULL(schema) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &len_param); - if (!len_param) { - len = 0; + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + zephir_get_strval(&table, table_param); + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); } else { - len = zephir_get_intval(len_param); + zephir_get_strval(&schema, schema_param); } - ZVAL_LONG(&_1, len); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "bytes", NULL, 0, &_1); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "H*"); - ZEPHIR_CALL_FUNCTION(&_3, "unpack", NULL, 0, &_2, &_0); + ZEPHIR_INIT_VAR(&oldColumn); + ZVAL_NULL(&oldColumn); + ZEPHIR_INIT_VAR(&columns); + array_init(&columns); + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "describecolumns", NULL, 0, &table, &schema); zephir_check_call_status(); - ZEPHIR_MAKE_REF(&_3); - ZEPHIR_RETURN_CALL_FUNCTION("array_shift", NULL, 24, &_3); - ZEPHIR_UNREF(&_3); + ZVAL_LONG(&_2, 3); + ZEPHIR_CALL_METHOD(&fields, this_ptr, "fetchall", NULL, 0, &_1, &_2); zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Security_Random, number) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *len_param = NULL, _0, _1; - zend_long len, ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(len) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &len_param); - len = zephir_get_intval(len_param); + zephir_is_iterable(&fields, 0, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 529); + if (Z_TYPE_P(&fields) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&fields), _3) + { + ZEPHIR_INIT_NVAR(&field); + ZVAL_COPY(&field, _3); + ZEPHIR_INIT_NVAR(&definition); + zephir_create_array(&definition, 1, 0); + add_assoc_long_ex(&definition, SL("bindType"), 2); + ZEPHIR_OBS_NVAR(&columnType); + zephir_array_fetch_long(&columnType, &field, 1, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 182); + ZEPHIR_OBS_NVAR(&charSize); + zephir_array_fetch_long(&charSize, &field, 2, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 183); + ZEPHIR_OBS_NVAR(&numericSize); + zephir_array_fetch_long(&numericSize, &field, 3, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 184); + ZEPHIR_OBS_NVAR(&numericScale); + zephir_array_fetch_long(&numericScale, &field, 4, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 185); + do { + _5$$3 = 1; + if (_5$$3 == zephir_memnstr_str(&columnType, SL("boolean"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 203)) { + ZEPHIR_INIT_NVAR(&_6$$4); + ZVAL_LONG(&_6$$4, 8); + zephir_array_update_string(&definition, SL("type"), &_6$$4, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_7$$4); + ZVAL_LONG(&_7$$4, 5); + zephir_array_update_string(&definition, SL("bindType"), &_7$$4, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("bigint"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 215)) { + ZEPHIR_INIT_NVAR(&_8$$5); + ZVAL_LONG(&_8$$5, 14); + zephir_array_update_string(&definition, SL("type"), &_8$$5, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_9$$5); + ZVAL_LONG(&_9$$5, 1); + zephir_array_update_string(&definition, SL("bindType"), &_9$$5, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("mediumint"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 225)) { + ZEPHIR_INIT_NVAR(&_10$$6); + ZVAL_LONG(&_10$$6, 21); + zephir_array_update_string(&definition, SL("type"), &_10$$6, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_11$$6); + ZVAL_LONG(&_11$$6, 1); + zephir_array_update_string(&definition, SL("bindType"), &_11$$6, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("smallint"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 235)) { + ZEPHIR_INIT_NVAR(&_12$$7); + ZVAL_LONG(&_12$$7, 22); + zephir_array_update_string(&definition, SL("type"), &_12$$7, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_13$$7); + ZVAL_LONG(&_13$$7, 1); + zephir_array_update_string(&definition, SL("bindType"), &_13$$7, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("tinyint"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 245)) { + ZEPHIR_INIT_NVAR(&_14$$8); + ZVAL_LONG(&_14$$8, 26); + zephir_array_update_string(&definition, SL("type"), &_14$$8, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_15$$8); + ZVAL_LONG(&_15$$8, 1); + zephir_array_update_string(&definition, SL("bindType"), &_15$$8, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("int"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 258)) { + ZEPHIR_INIT_NVAR(&_16$$9); + ZVAL_LONG(&_16$$9, 0); + zephir_array_update_string(&definition, SL("type"), &_16$$9, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_17$$9); + ZVAL_LONG(&_17$$9, 1); + zephir_array_update_string(&definition, SL("bindType"), &_17$$9, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("bit"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 268)) { + ZEPHIR_INIT_NVAR(&_18$$10); + ZVAL_LONG(&_18$$10, 19); + zephir_array_update_string(&definition, SL("type"), &_18$$10, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("size"), &numericSize, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("enum"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 277)) { + ZEPHIR_INIT_NVAR(&_19$$11); + ZVAL_LONG(&_19$$11, 18); + zephir_array_update_string(&definition, SL("type"), &_19$$11, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("datetime"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 285)) { + ZEPHIR_INIT_NVAR(&_20$$12); + ZVAL_LONG(&_20$$12, 4); + zephir_array_update_string(&definition, SL("type"), &_20$$12, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_21$$12); + ZVAL_LONG(&_21$$12, 0); + zephir_array_update_string(&definition, SL("size"), &_21$$12, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("date"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 294)) { + ZEPHIR_INIT_NVAR(&_22$$13); + ZVAL_LONG(&_22$$13, 1); + zephir_array_update_string(&definition, SL("type"), &_22$$13, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_23$$13); + ZVAL_LONG(&_23$$13, 0); + zephir_array_update_string(&definition, SL("size"), &_23$$13, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("decimal"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 304) || _5$$3 == zephir_memnstr_str(&columnType, SL("numeric"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 305)) { + ZEPHIR_INIT_NVAR(&_24$$14); + ZVAL_LONG(&_24$$14, 3); + zephir_array_update_string(&definition, SL("type"), &_24$$14, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("size"), &numericSize, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_25$$14); + ZVAL_LONG(&_25$$14, 32); + zephir_array_update_string(&definition, SL("bindType"), &_25$$14, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("double precision"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 316)) { + ZEPHIR_INIT_NVAR(&_26$$15); + ZVAL_LONG(&_26$$15, 9); + zephir_array_update_string(&definition, SL("type"), &_26$$15, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("size"), &numericSize, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_27$$15); + ZVAL_LONG(&_27$$15, 32); + zephir_array_update_string(&definition, SL("bindType"), &_27$$15, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("float"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 327) || _5$$3 == zephir_memnstr_str(&columnType, SL("real"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 328)) { + ZEPHIR_INIT_NVAR(&_28$$16); + ZVAL_LONG(&_28$$16, 7); + zephir_array_update_string(&definition, SL("type"), &_28$$16, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("size"), &numericSize, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_29$$16); + ZVAL_LONG(&_29$$16, 32); + zephir_array_update_string(&definition, SL("bindType"), &_29$$16, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("mediumblob"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 339)) { + ZEPHIR_INIT_NVAR(&_30$$17); + ZVAL_LONG(&_30$$17, 6); + zephir_array_update_string(&definition, SL("type"), &_30$$17, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("longblob"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 347)) { + ZEPHIR_INIT_NVAR(&_31$$18); + ZVAL_LONG(&_31$$18, 13); + zephir_array_update_string(&definition, SL("type"), &_31$$18, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("tinyblob"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 355)) { + ZEPHIR_INIT_NVAR(&_32$$19); + ZVAL_LONG(&_32$$19, 10); + zephir_array_update_string(&definition, SL("type"), &_32$$19, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("blob"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 363)) { + ZEPHIR_INIT_NVAR(&_33$$20); + ZVAL_LONG(&_33$$20, 11); + zephir_array_update_string(&definition, SL("type"), &_33$$20, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("timestamp"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 371)) { + ZEPHIR_INIT_NVAR(&_34$$21); + ZVAL_LONG(&_34$$21, 17); + zephir_array_update_string(&definition, SL("type"), &_34$$21, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("time"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 379)) { + ZEPHIR_INIT_NVAR(&_35$$22); + ZVAL_LONG(&_35$$22, 20); + zephir_array_update_string(&definition, SL("type"), &_35$$22, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("jsonb"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 387)) { + ZEPHIR_INIT_NVAR(&_36$$23); + ZVAL_LONG(&_36$$23, 16); + zephir_array_update_string(&definition, SL("type"), &_36$$23, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("json"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 395)) { + ZEPHIR_INIT_NVAR(&_37$$24); + ZVAL_LONG(&_37$$24, 15); + zephir_array_update_string(&definition, SL("type"), &_37$$24, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("longtext"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 403)) { + ZEPHIR_INIT_NVAR(&_38$$25); + ZVAL_LONG(&_38$$25, 24); + zephir_array_update_string(&definition, SL("type"), &_38$$25, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("mediumtext"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 411)) { + ZEPHIR_INIT_NVAR(&_39$$26); + ZVAL_LONG(&_39$$26, 23); + zephir_array_update_string(&definition, SL("type"), &_39$$26, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("tinytext"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 419)) { + ZEPHIR_INIT_NVAR(&_40$$27); + ZVAL_LONG(&_40$$27, 25); + zephir_array_update_string(&definition, SL("type"), &_40$$27, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("text"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 427)) { + ZEPHIR_INIT_NVAR(&_41$$28); + ZVAL_LONG(&_41$$28, 6); + zephir_array_update_string(&definition, SL("type"), &_41$$28, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("varying"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 435) || _5$$3 == zephir_memnstr_str(&columnType, SL("varchar"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 436)) { + ZEPHIR_INIT_NVAR(&_42$$29); + ZVAL_LONG(&_42$$29, 2); + zephir_array_update_string(&definition, SL("type"), &_42$$29, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("size"), &charSize, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("char"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 445)) { + ZEPHIR_INIT_NVAR(&_43$$30); + ZVAL_LONG(&_43$$30, 5); + zephir_array_update_string(&definition, SL("type"), &_43$$30, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("size"), &charSize, PH_COPY | PH_SEPARATE); + break; + } + if (_5$$3 == zephir_memnstr_str(&columnType, SL("uuid"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 454)) { + ZEPHIR_INIT_NVAR(&_44$$31); + ZVAL_LONG(&_44$$31, 5); + zephir_array_update_string(&definition, SL("type"), &_44$$31, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_45$$31); + ZVAL_LONG(&_45$$31, 36); + zephir_array_update_string(&definition, SL("size"), &_45$$31, PH_COPY | PH_SEPARATE); + break; + } + ZEPHIR_INIT_NVAR(&_46$$32); + ZVAL_LONG(&_46$$32, 2); + zephir_array_update_string(&definition, SL("type"), &_46$$32, PH_COPY | PH_SEPARATE); + break; + } while(0); + if (Z_TYPE_P(&oldColumn) == IS_NULL) { + zephir_array_update_string(&definition, SL("first"), &__$true, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_47$$3, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 481); + if (ZEPHIR_IS_STRING(&_47$$3, "PRI")) { + zephir_array_update_string(&definition, SL("primary"), &__$true, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_48$$3, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 488); + if (ZEPHIR_IS_STRING(&_48$$3, "YES")) { + zephir_array_update_string(&definition, SL("notNull"), &__$false, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_49$$3, &field, 7, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 495); + if (ZEPHIR_IS_STRING(&_49$$3, "auto_increment")) { + zephir_array_update_string(&definition, SL("autoIncrement"), &__$true, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_50$$3, &field, 9, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 502); + if (Z_TYPE_P(&_50$$3) != IS_NULL) { + zephir_array_fetch_long(&_51$$38, &field, 9, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 507); + ZEPHIR_INIT_NVAR(&_52$$38); + ZVAL_STRING(&_52$$38, "/^'|'?::[[:alnum:][:space:]]+$/"); + ZEPHIR_INIT_NVAR(&_53$$38); + ZVAL_STRING(&_53$$38, ""); + ZEPHIR_CALL_FUNCTION(&_54$$38, "preg_replace", &_55, 50, &_52$$38, &_53$$38, &_51$$38); + zephir_check_call_status(); + zephir_array_update_string(&definition, SL("default"), &_54$$38, PH_COPY | PH_SEPARATE); + zephir_array_fetch_string(&_56$$38, &definition, SL("default"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 509); + ZEPHIR_INIT_NVAR(&_52$$38); + ZVAL_STRING(&_52$$38, "null"); + ZEPHIR_CALL_FUNCTION(&_57$$38, "strcasecmp", &_58, 47, &_56$$38, &_52$$38); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&_57$$38, 0)) { + zephir_array_update_string(&definition, SL("default"), &__$null, PH_COPY | PH_SEPARATE); + } + } + zephir_array_fetch_long(&_59$$3, &field, 10, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 517); + if (Z_TYPE_P(&_59$$3) != IS_NULL) { + zephir_array_fetch_long(&_60$$40, &field, 10, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 518); + zephir_array_update_string(&definition, SL("comment"), &_60$$40, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&columnName, &field, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 524); + ZEPHIR_INIT_NVAR(&_61$$3); + object_init_ex(&_61$$3, phalcon_db_column_ce); + ZEPHIR_CALL_METHOD(NULL, &_61$$3, "__construct", &_62, 212, &columnName, &definition); + zephir_check_call_status(); + zephir_array_append(&columns, &_61$$3, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 525); + ZEPHIR_CPY_WRT(&oldColumn, &columnName); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &fields, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_4, &fields, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_4)) { + break; + } + ZEPHIR_CALL_METHOD(&field, &fields, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_63$$41); + zephir_create_array(&_63$$41, 1, 0); + add_assoc_long_ex(&_63$$41, SL("bindType"), 2); + ZEPHIR_CPY_WRT(&definition, &_63$$41); + ZEPHIR_OBS_NVAR(&columnType); + zephir_array_fetch_long(&columnType, &field, 1, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 182); + ZEPHIR_OBS_NVAR(&charSize); + zephir_array_fetch_long(&charSize, &field, 2, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 183); + ZEPHIR_OBS_NVAR(&numericSize); + zephir_array_fetch_long(&numericSize, &field, 3, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 184); + ZEPHIR_OBS_NVAR(&numericScale); + zephir_array_fetch_long(&numericScale, &field, 4, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 185); + do { + _64$$41 = 1; + if (_64$$41 == zephir_memnstr_str(&columnType, SL("boolean"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 203)) { + ZEPHIR_INIT_NVAR(&_65$$42); + ZVAL_LONG(&_65$$42, 8); + zephir_array_update_string(&definition, SL("type"), &_65$$42, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_66$$42); + ZVAL_LONG(&_66$$42, 5); + zephir_array_update_string(&definition, SL("bindType"), &_66$$42, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("bigint"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 215)) { + ZEPHIR_INIT_NVAR(&_67$$43); + ZVAL_LONG(&_67$$43, 14); + zephir_array_update_string(&definition, SL("type"), &_67$$43, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_68$$43); + ZVAL_LONG(&_68$$43, 1); + zephir_array_update_string(&definition, SL("bindType"), &_68$$43, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("mediumint"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 225)) { + ZEPHIR_INIT_NVAR(&_69$$44); + ZVAL_LONG(&_69$$44, 21); + zephir_array_update_string(&definition, SL("type"), &_69$$44, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_70$$44); + ZVAL_LONG(&_70$$44, 1); + zephir_array_update_string(&definition, SL("bindType"), &_70$$44, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("smallint"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 235)) { + ZEPHIR_INIT_NVAR(&_71$$45); + ZVAL_LONG(&_71$$45, 22); + zephir_array_update_string(&definition, SL("type"), &_71$$45, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_72$$45); + ZVAL_LONG(&_72$$45, 1); + zephir_array_update_string(&definition, SL("bindType"), &_72$$45, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("tinyint"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 245)) { + ZEPHIR_INIT_NVAR(&_73$$46); + ZVAL_LONG(&_73$$46, 26); + zephir_array_update_string(&definition, SL("type"), &_73$$46, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_74$$46); + ZVAL_LONG(&_74$$46, 1); + zephir_array_update_string(&definition, SL("bindType"), &_74$$46, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("int"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 258)) { + ZEPHIR_INIT_NVAR(&_75$$47); + ZVAL_LONG(&_75$$47, 0); + zephir_array_update_string(&definition, SL("type"), &_75$$47, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_76$$47); + ZVAL_LONG(&_76$$47, 1); + zephir_array_update_string(&definition, SL("bindType"), &_76$$47, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("bit"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 268)) { + ZEPHIR_INIT_NVAR(&_77$$48); + ZVAL_LONG(&_77$$48, 19); + zephir_array_update_string(&definition, SL("type"), &_77$$48, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("size"), &numericSize, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("enum"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 277)) { + ZEPHIR_INIT_NVAR(&_78$$49); + ZVAL_LONG(&_78$$49, 18); + zephir_array_update_string(&definition, SL("type"), &_78$$49, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("datetime"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 285)) { + ZEPHIR_INIT_NVAR(&_79$$50); + ZVAL_LONG(&_79$$50, 4); + zephir_array_update_string(&definition, SL("type"), &_79$$50, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_80$$50); + ZVAL_LONG(&_80$$50, 0); + zephir_array_update_string(&definition, SL("size"), &_80$$50, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("date"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 294)) { + ZEPHIR_INIT_NVAR(&_81$$51); + ZVAL_LONG(&_81$$51, 1); + zephir_array_update_string(&definition, SL("type"), &_81$$51, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_82$$51); + ZVAL_LONG(&_82$$51, 0); + zephir_array_update_string(&definition, SL("size"), &_82$$51, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("decimal"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 304) || _64$$41 == zephir_memnstr_str(&columnType, SL("numeric"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 305)) { + ZEPHIR_INIT_NVAR(&_83$$52); + ZVAL_LONG(&_83$$52, 3); + zephir_array_update_string(&definition, SL("type"), &_83$$52, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("size"), &numericSize, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_84$$52); + ZVAL_LONG(&_84$$52, 32); + zephir_array_update_string(&definition, SL("bindType"), &_84$$52, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("double precision"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 316)) { + ZEPHIR_INIT_NVAR(&_85$$53); + ZVAL_LONG(&_85$$53, 9); + zephir_array_update_string(&definition, SL("type"), &_85$$53, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("size"), &numericSize, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_86$$53); + ZVAL_LONG(&_86$$53, 32); + zephir_array_update_string(&definition, SL("bindType"), &_86$$53, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("float"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 327) || _64$$41 == zephir_memnstr_str(&columnType, SL("real"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 328)) { + ZEPHIR_INIT_NVAR(&_87$$54); + ZVAL_LONG(&_87$$54, 7); + zephir_array_update_string(&definition, SL("type"), &_87$$54, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("size"), &numericSize, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_88$$54); + ZVAL_LONG(&_88$$54, 32); + zephir_array_update_string(&definition, SL("bindType"), &_88$$54, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("mediumblob"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 339)) { + ZEPHIR_INIT_NVAR(&_89$$55); + ZVAL_LONG(&_89$$55, 6); + zephir_array_update_string(&definition, SL("type"), &_89$$55, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("longblob"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 347)) { + ZEPHIR_INIT_NVAR(&_90$$56); + ZVAL_LONG(&_90$$56, 13); + zephir_array_update_string(&definition, SL("type"), &_90$$56, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("tinyblob"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 355)) { + ZEPHIR_INIT_NVAR(&_91$$57); + ZVAL_LONG(&_91$$57, 10); + zephir_array_update_string(&definition, SL("type"), &_91$$57, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("blob"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 363)) { + ZEPHIR_INIT_NVAR(&_92$$58); + ZVAL_LONG(&_92$$58, 11); + zephir_array_update_string(&definition, SL("type"), &_92$$58, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("timestamp"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 371)) { + ZEPHIR_INIT_NVAR(&_93$$59); + ZVAL_LONG(&_93$$59, 17); + zephir_array_update_string(&definition, SL("type"), &_93$$59, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("time"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 379)) { + ZEPHIR_INIT_NVAR(&_94$$60); + ZVAL_LONG(&_94$$60, 20); + zephir_array_update_string(&definition, SL("type"), &_94$$60, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("jsonb"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 387)) { + ZEPHIR_INIT_NVAR(&_95$$61); + ZVAL_LONG(&_95$$61, 16); + zephir_array_update_string(&definition, SL("type"), &_95$$61, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("json"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 395)) { + ZEPHIR_INIT_NVAR(&_96$$62); + ZVAL_LONG(&_96$$62, 15); + zephir_array_update_string(&definition, SL("type"), &_96$$62, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("longtext"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 403)) { + ZEPHIR_INIT_NVAR(&_97$$63); + ZVAL_LONG(&_97$$63, 24); + zephir_array_update_string(&definition, SL("type"), &_97$$63, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("mediumtext"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 411)) { + ZEPHIR_INIT_NVAR(&_98$$64); + ZVAL_LONG(&_98$$64, 23); + zephir_array_update_string(&definition, SL("type"), &_98$$64, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("tinytext"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 419)) { + ZEPHIR_INIT_NVAR(&_99$$65); + ZVAL_LONG(&_99$$65, 25); + zephir_array_update_string(&definition, SL("type"), &_99$$65, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("text"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 427)) { + ZEPHIR_INIT_NVAR(&_100$$66); + ZVAL_LONG(&_100$$66, 6); + zephir_array_update_string(&definition, SL("type"), &_100$$66, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("varying"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 435) || _64$$41 == zephir_memnstr_str(&columnType, SL("varchar"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 436)) { + ZEPHIR_INIT_NVAR(&_101$$67); + ZVAL_LONG(&_101$$67, 2); + zephir_array_update_string(&definition, SL("type"), &_101$$67, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("size"), &charSize, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("char"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 445)) { + ZEPHIR_INIT_NVAR(&_102$$68); + ZVAL_LONG(&_102$$68, 5); + zephir_array_update_string(&definition, SL("type"), &_102$$68, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("size"), &charSize, PH_COPY | PH_SEPARATE); + break; + } + if (_64$$41 == zephir_memnstr_str(&columnType, SL("uuid"), "phalcon/Db/Adapter/Pdo/Postgresql.zep", 454)) { + ZEPHIR_INIT_NVAR(&_103$$69); + ZVAL_LONG(&_103$$69, 5); + zephir_array_update_string(&definition, SL("type"), &_103$$69, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_104$$69); + ZVAL_LONG(&_104$$69, 36); + zephir_array_update_string(&definition, SL("size"), &_104$$69, PH_COPY | PH_SEPARATE); + break; + } + ZEPHIR_INIT_NVAR(&_105$$70); + ZVAL_LONG(&_105$$70, 2); + zephir_array_update_string(&definition, SL("type"), &_105$$70, PH_COPY | PH_SEPARATE); + break; + } while(0); - if (UNEXPECTED(len <= 0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_exception_ce, "Require a positive integer > 0", "phalcon/Security/Random.zep", 271); - return; + if (Z_TYPE_P(&oldColumn) == IS_NULL) { + zephir_array_update_string(&definition, SL("first"), &__$true, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_106$$41, &field, 6, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 481); + if (ZEPHIR_IS_STRING(&_106$$41, "PRI")) { + zephir_array_update_string(&definition, SL("primary"), &__$true, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_107$$41, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 488); + if (ZEPHIR_IS_STRING(&_107$$41, "YES")) { + zephir_array_update_string(&definition, SL("notNull"), &__$false, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_108$$41, &field, 7, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 495); + if (ZEPHIR_IS_STRING(&_108$$41, "auto_increment")) { + zephir_array_update_string(&definition, SL("autoIncrement"), &__$true, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_109$$41, &field, 9, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 502); + if (Z_TYPE_P(&_109$$41) != IS_NULL) { + zephir_array_fetch_long(&_110$$76, &field, 9, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 507); + ZEPHIR_INIT_NVAR(&_111$$76); + ZVAL_STRING(&_111$$76, "/^'|'?::[[:alnum:][:space:]]+$/"); + ZEPHIR_INIT_NVAR(&_112$$76); + ZVAL_STRING(&_112$$76, ""); + ZEPHIR_CALL_FUNCTION(&_113$$76, "preg_replace", &_55, 50, &_111$$76, &_112$$76, &_110$$76); + zephir_check_call_status(); + zephir_array_update_string(&definition, SL("default"), &_113$$76, PH_COPY | PH_SEPARATE); + zephir_array_fetch_string(&_114$$76, &definition, SL("default"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 509); + ZEPHIR_INIT_NVAR(&_111$$76); + ZVAL_STRING(&_111$$76, "null"); + ZEPHIR_CALL_FUNCTION(&_115$$76, "strcasecmp", &_58, 47, &_114$$76, &_111$$76); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&_115$$76, 0)) { + zephir_array_update_string(&definition, SL("default"), &__$null, PH_COPY | PH_SEPARATE); + } + } + zephir_array_fetch_long(&_116$$41, &field, 10, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 517); + if (Z_TYPE_P(&_116$$41) != IS_NULL) { + zephir_array_fetch_long(&_117$$78, &field, 10, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 518); + zephir_array_update_string(&definition, SL("comment"), &_117$$78, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_NVAR(&columnName); + zephir_array_fetch_long(&columnName, &field, 0, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 524); + ZEPHIR_INIT_NVAR(&_118$$41); + object_init_ex(&_118$$41, phalcon_db_column_ce); + ZEPHIR_CALL_METHOD(NULL, &_118$$41, "__construct", &_62, 212, &columnName, &definition); + zephir_check_call_status(); + zephir_array_append(&columns, &_118$$41, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 525); + ZEPHIR_CPY_WRT(&oldColumn, &columnName); + ZEPHIR_CALL_METHOD(NULL, &fields, "next", NULL, 0); + zephir_check_call_status(); + } } - ZVAL_LONG(&_0, 0); - ZVAL_LONG(&_1, len); - ZEPHIR_RETURN_CALL_FUNCTION("random_int", NULL, 0, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_NVAR(&field); + RETURN_CCTOR(&columns); } -static PHP_METHOD(Phalcon_Security_Random, uuid) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeReferences) { - zval ary, _0, _1, _2, _3, _4, _5, _6, _7; + zval _14$$3, _23$$6, _29$$9, _33$$10; + zend_string *_27; + zend_ulong _26; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_31 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *table_param = NULL, *schema_param = NULL, references, reference, arrayReference, constraintName, referenceObjects, name, referencedSchema, referencedTable, columns, referencedColumns, referenceUpdate, referenceDelete, _0, _1, _2, _3, *_4, _5, *_24, _25, _6$$5, _7$$5, _8$$5, _9$$5, _10$$5, _11$$5, _12$$3, _13$$3, _15$$8, _16$$8, _17$$8, _18$$8, _19$$8, _20$$8, _21$$6, _22$$6, _28$$9, _30$$9, _32$$10, _34$$10; + zval table, schema; zval *this_ptr = getThis(); - ZVAL_UNDEF(&ary); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&references); + ZVAL_UNDEF(&reference); + ZVAL_UNDEF(&arrayReference); + ZVAL_UNDEF(&constraintName); + ZVAL_UNDEF(&referenceObjects); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&referencedSchema); + ZVAL_UNDEF(&referencedTable); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&referencedColumns); + ZVAL_UNDEF(&referenceUpdate); + ZVAL_UNDEF(&referenceDelete); 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(); - - ZVAL_LONG(&_1, 16); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "bytes", NULL, 0, &_1); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "N1a/n1b/n1c/n1d/n1e/N1f"); - ZEPHIR_CALL_FUNCTION(&_3, "unpack", NULL, 0, &_2, &_0); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&ary, "array_values", NULL, 12, &_3); - zephir_check_call_status(); - zephir_array_fetch_long(&_4, &ary, 2, PH_NOISY | PH_READONLY, "phalcon/Security/Random.zep", 310); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_LONG(&_2, ((((int) (zephir_get_numberval(&_4)) & 0x0fff)) | 0x4000)); - zephir_array_update_long(&ary, 2, &_2, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_fetch_long(&_5, &ary, 3, PH_NOISY | PH_READONLY, "phalcon/Security/Random.zep", 311); - ZEPHIR_INIT_VAR(&_6); - ZVAL_LONG(&_6, ((((int) (zephir_get_numberval(&_5)) & 0x3fff)) | 0x8000)); - zephir_array_update_long(&ary, 3, &_6, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - ZEPHIR_INIT_VAR(&_7); - ZVAL_STRING(&_7, "%08x-%04x-%04x-%04x-%04x%08x"); - ZEPHIR_MAKE_REF(&ary); - ZEPHIR_CALL_FUNCTION(NULL, "array_unshift", NULL, 0, &ary, &_7); - ZEPHIR_UNREF(&ary); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_7); - ZVAL_STRING(&_7, "sprintf"); - ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, &_7, &ary); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Security_Random, base) -{ - unsigned char _7$$3, _10$$5; - double _4$$3, _8$$5; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_6 = NULL; - zend_long base, ZEPHIR_LAST_CALL_STATUS; - zval *alphabet_param = NULL, *base_param = NULL, *n = NULL, n_sub, __$null, bytes, idx, _0, _1, *_2, _3, _5$$4, _9$$6; - zval alphabet, byteString; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&alphabet); - ZVAL_UNDEF(&byteString); - ZVAL_UNDEF(&n_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&bytes); - ZVAL_UNDEF(&idx); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_9$$6); + ZVAL_UNDEF(&_25); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_7$$5); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&_11$$5); + ZVAL_UNDEF(&_12$$3); + ZVAL_UNDEF(&_13$$3); + ZVAL_UNDEF(&_15$$8); + ZVAL_UNDEF(&_16$$8); + ZVAL_UNDEF(&_17$$8); + ZVAL_UNDEF(&_18$$8); + ZVAL_UNDEF(&_19$$8); + ZVAL_UNDEF(&_20$$8); + ZVAL_UNDEF(&_21$$6); + ZVAL_UNDEF(&_22$$6); + ZVAL_UNDEF(&_28$$9); + ZVAL_UNDEF(&_30$$9); + ZVAL_UNDEF(&_32$$10); + ZVAL_UNDEF(&_34$$10); + ZVAL_UNDEF(&_14$$3); + ZVAL_UNDEF(&_23$$6); + ZVAL_UNDEF(&_29$$9); + ZVAL_UNDEF(&_33$$10); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(alphabet) - Z_PARAM_LONG(base) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(n) + Z_PARAM_STR_OR_NULL(schema) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &alphabet_param, &base_param, &n); - zephir_get_strval(&alphabet, alphabet_param); - base = zephir_get_intval(base_param); - if (!n) { - n = &n_sub; - n = &__$null; + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); + } else { + ZEPHIR_INIT_VAR(&table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); + } else { + if (UNEXPECTED(Z_TYPE_P(schema_param) != IS_STRING && Z_TYPE_P(schema_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schema' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schema_param) == IS_STRING)) { + zephir_get_strval(&schema, schema_param); + } else { + ZEPHIR_INIT_VAR(&schema); + } } - ZEPHIR_INIT_VAR(&byteString); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "bytes", NULL, 0, n); + ZEPHIR_INIT_VAR(&references); + array_init(&references); + zephir_read_property(&_1, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_2, &_1, "describereferences", NULL, 0, &table, &schema); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "C*"); - ZEPHIR_CALL_FUNCTION(&bytes, "unpack", NULL, 0, &_1, &_0); + ZVAL_LONG(&_3, 3); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, 0, &_2, &_3); zephir_check_call_status(); - zephir_is_iterable(&bytes, 0, "phalcon/Security/Random.zep", 350); - if (Z_TYPE_P(&bytes) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&bytes), _2) + zephir_is_iterable(&_0, 0, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 581); + if (Z_TYPE_P(&_0) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _4) { - ZEPHIR_INIT_NVAR(&idx); - ZVAL_COPY(&idx, _2); - _4$$3 = zephir_safe_mod_zval_long(&idx, 64); - ZEPHIR_INIT_NVAR(&idx); - ZVAL_DOUBLE(&idx, _4$$3); - if (ZEPHIR_GE_LONG(&idx, base)) { - ZVAL_LONG(&_5$$4, (base - 1)); - ZEPHIR_CALL_METHOD(&idx, this_ptr, "number", &_6, 0, &_5$$4); - zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&reference); + ZVAL_COPY(&reference, _4); + zephir_array_fetch_long(&constraintName, &reference, 2, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 550); + if (!(zephir_array_isset(&references, &constraintName))) { + ZEPHIR_OBS_NVAR(&referencedSchema); + zephir_array_fetch_long(&referencedSchema, &reference, 3, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 553); + ZEPHIR_OBS_NVAR(&referencedTable); + zephir_array_fetch_long(&referencedTable, &reference, 4, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 554); + ZEPHIR_OBS_NVAR(&referenceUpdate); + zephir_array_fetch_long(&referenceUpdate, &reference, 6, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 555); + ZEPHIR_OBS_NVAR(&referenceDelete); + zephir_array_fetch_long(&referenceDelete, &reference, 7, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 556); + ZEPHIR_INIT_NVAR(&columns); + array_init(&columns); + ZEPHIR_INIT_NVAR(&referencedColumns); + array_init(&referencedColumns); + } else { + zephir_array_fetch(&_6$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 560); + ZEPHIR_OBS_NVAR(&referencedSchema); + zephir_array_fetch_string(&referencedSchema, &_6$$5, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 560); + zephir_array_fetch(&_7$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 561); + ZEPHIR_OBS_NVAR(&referencedTable); + zephir_array_fetch_string(&referencedTable, &_7$$5, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 561); + zephir_array_fetch(&_8$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 562); + ZEPHIR_OBS_NVAR(&columns); + zephir_array_fetch_string(&columns, &_8$$5, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 562); + zephir_array_fetch(&_9$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 563); + ZEPHIR_OBS_NVAR(&referencedColumns); + zephir_array_fetch_string(&referencedColumns, &_9$$5, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 563); + zephir_array_fetch(&_10$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 564); + ZEPHIR_OBS_NVAR(&referenceUpdate); + zephir_array_fetch_string(&referenceUpdate, &_10$$5, SL("onUpdate"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 564); + zephir_array_fetch(&_11$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 565); + ZEPHIR_OBS_NVAR(&referenceDelete); + zephir_array_fetch_string(&referenceDelete, &_11$$5, SL("onDelete"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 565); } - _7$$3 = ZEPHIR_STRING_OFFSET(&alphabet, zephir_get_intval(&idx)); - zephir_concat_self_char(&byteString, _7$$3); + zephir_array_fetch_long(&_12$$3, &reference, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 568); + zephir_array_append(&columns, &_12$$3, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 568); + zephir_array_fetch_long(&_13$$3, &reference, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 569); + zephir_array_append(&referencedColumns, &_13$$3, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 569); + ZEPHIR_INIT_NVAR(&_14$$3); + zephir_create_array(&_14$$3, 6, 0); + zephir_array_update_string(&_14$$3, SL("referencedSchema"), &referencedSchema, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_14$$3, SL("referencedTable"), &referencedTable, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_14$$3, SL("columns"), &columns, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_14$$3, SL("referencedColumns"), &referencedColumns, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_14$$3, SL("onUpdate"), &referenceUpdate, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_14$$3, SL("onDelete"), &referenceDelete, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&references, &constraintName, &_14$$3, PH_COPY | PH_SEPARATE); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &bytes, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_3, &bytes, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_5, &_0, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_3)) { + if (!zend_is_true(&_5)) { break; } - ZEPHIR_CALL_METHOD(&idx, &bytes, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&reference, &_0, "current", NULL, 0); zephir_check_call_status(); - _8$$5 = zephir_safe_mod_zval_long(&idx, 64); - ZEPHIR_INIT_NVAR(&idx); - ZVAL_DOUBLE(&idx, _8$$5); - if (ZEPHIR_GE_LONG(&idx, base)) { - ZVAL_LONG(&_9$$6, (base - 1)); - ZEPHIR_CALL_METHOD(&idx, this_ptr, "number", &_6, 0, &_9$$6); - zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&constraintName); + zephir_array_fetch_long(&constraintName, &reference, 2, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 550); + if (!(zephir_array_isset(&references, &constraintName))) { + ZEPHIR_OBS_NVAR(&referencedSchema); + zephir_array_fetch_long(&referencedSchema, &reference, 3, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 553); + ZEPHIR_OBS_NVAR(&referencedTable); + zephir_array_fetch_long(&referencedTable, &reference, 4, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 554); + ZEPHIR_OBS_NVAR(&referenceUpdate); + zephir_array_fetch_long(&referenceUpdate, &reference, 6, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 555); + ZEPHIR_OBS_NVAR(&referenceDelete); + zephir_array_fetch_long(&referenceDelete, &reference, 7, PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 556); + ZEPHIR_INIT_NVAR(&columns); + array_init(&columns); + ZEPHIR_INIT_NVAR(&referencedColumns); + array_init(&referencedColumns); + } else { + zephir_array_fetch(&_15$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 560); + ZEPHIR_OBS_NVAR(&referencedSchema); + zephir_array_fetch_string(&referencedSchema, &_15$$8, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 560); + zephir_array_fetch(&_16$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 561); + ZEPHIR_OBS_NVAR(&referencedTable); + zephir_array_fetch_string(&referencedTable, &_16$$8, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 561); + zephir_array_fetch(&_17$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 562); + ZEPHIR_OBS_NVAR(&columns); + zephir_array_fetch_string(&columns, &_17$$8, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 562); + zephir_array_fetch(&_18$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 563); + ZEPHIR_OBS_NVAR(&referencedColumns); + zephir_array_fetch_string(&referencedColumns, &_18$$8, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 563); + zephir_array_fetch(&_19$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 564); + ZEPHIR_OBS_NVAR(&referenceUpdate); + zephir_array_fetch_string(&referenceUpdate, &_19$$8, SL("onUpdate"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 564); + zephir_array_fetch(&_20$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 565); + ZEPHIR_OBS_NVAR(&referenceDelete); + zephir_array_fetch_string(&referenceDelete, &_20$$8, SL("onDelete"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 565); } - _10$$5 = ZEPHIR_STRING_OFFSET(&alphabet, zephir_get_intval(&idx)); - zephir_concat_self_char(&byteString, _10$$5); - ZEPHIR_CALL_METHOD(NULL, &bytes, "next", NULL, 0); + zephir_array_fetch_long(&_21$$6, &reference, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 568); + zephir_array_append(&columns, &_21$$6, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 568); + zephir_array_fetch_long(&_22$$6, &reference, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 569); + zephir_array_append(&referencedColumns, &_22$$6, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 569); + ZEPHIR_INIT_NVAR(&_23$$6); + zephir_create_array(&_23$$6, 6, 0); + zephir_array_update_string(&_23$$6, SL("referencedSchema"), &referencedSchema, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_23$$6, SL("referencedTable"), &referencedTable, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_23$$6, SL("columns"), &columns, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_23$$6, SL("referencedColumns"), &referencedColumns, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_23$$6, SL("onUpdate"), &referenceUpdate, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_23$$6, SL("onDelete"), &referenceDelete, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&references, &constraintName, &_23$$6, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&reference); + ZEPHIR_INIT_VAR(&referenceObjects); + array_init(&referenceObjects); + zephir_is_iterable(&references, 0, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 597); + if (Z_TYPE_P(&references) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&references), _26, _27, _24) + { + ZEPHIR_INIT_NVAR(&name); + if (_27 != NULL) { + ZVAL_STR_COPY(&name, _27); + } else { + ZVAL_LONG(&name, _26); + } + ZEPHIR_INIT_NVAR(&arrayReference); + ZVAL_COPY(&arrayReference, _24); + ZEPHIR_INIT_NVAR(&_28$$9); + object_init_ex(&_28$$9, phalcon_db_reference_ce); + ZEPHIR_INIT_NVAR(&_29$$9); + zephir_create_array(&_29$$9, 6, 0); + ZEPHIR_OBS_NVAR(&_30$$9); + zephir_array_fetch_string(&_30$$9, &arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 587); + zephir_array_update_string(&_29$$9, SL("referencedSchema"), &_30$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_30$$9); + zephir_array_fetch_string(&_30$$9, &arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 588); + zephir_array_update_string(&_29$$9, SL("referencedTable"), &_30$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_30$$9); + zephir_array_fetch_string(&_30$$9, &arrayReference, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 589); + zephir_array_update_string(&_29$$9, SL("columns"), &_30$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_30$$9); + zephir_array_fetch_string(&_30$$9, &arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 590); + zephir_array_update_string(&_29$$9, SL("referencedColumns"), &_30$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_30$$9); + zephir_array_fetch_string(&_30$$9, &arrayReference, SL("onUpdate"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 591); + zephir_array_update_string(&_29$$9, SL("onUpdate"), &_30$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_30$$9); + zephir_array_fetch_string(&_30$$9, &arrayReference, SL("onDelete"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 593); + zephir_array_update_string(&_29$$9, SL("onDelete"), &_30$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &_28$$9, "__construct", &_31, 33, &name, &_29$$9); + zephir_check_call_status(); + zephir_array_update_zval(&referenceObjects, &name, &_28$$9, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &references, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_25, &references, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_25)) { + break; + } + ZEPHIR_CALL_METHOD(&name, &references, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&arrayReference, &references, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_32$$10); + object_init_ex(&_32$$10, phalcon_db_reference_ce); + ZEPHIR_INIT_NVAR(&_33$$10); + zephir_create_array(&_33$$10, 6, 0); + ZEPHIR_OBS_NVAR(&_34$$10); + zephir_array_fetch_string(&_34$$10, &arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 587); + zephir_array_update_string(&_33$$10, SL("referencedSchema"), &_34$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_34$$10); + zephir_array_fetch_string(&_34$$10, &arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 588); + zephir_array_update_string(&_33$$10, SL("referencedTable"), &_34$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_34$$10); + zephir_array_fetch_string(&_34$$10, &arrayReference, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 589); + zephir_array_update_string(&_33$$10, SL("columns"), &_34$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_34$$10); + zephir_array_fetch_string(&_34$$10, &arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 590); + zephir_array_update_string(&_33$$10, SL("referencedColumns"), &_34$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_34$$10); + zephir_array_fetch_string(&_34$$10, &arrayReference, SL("onUpdate"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 591); + zephir_array_update_string(&_33$$10, SL("onUpdate"), &_34$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_34$$10); + zephir_array_fetch_string(&_34$$10, &arrayReference, SL("onDelete"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 593); + zephir_array_update_string(&_33$$10, SL("onDelete"), &_34$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &_32$$10, "__construct", &_31, 33, &name, &_33$$10); + zephir_check_call_status(); + zephir_array_update_zval(&referenceObjects, &name, &_32$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &references, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&idx); - RETURN_CTOR(&byteString); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Builder) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Security\\JWT, Builder, phalcon, security_jwt_builder, phalcon_security_jwt_builder_method_entry, 0); - - zend_declare_property_null(phalcon_security_jwt_builder_ce, SL("claims"), ZEND_ACC_PRIVATE); - zend_declare_property_null(phalcon_security_jwt_builder_ce, SL("jose"), ZEND_ACC_PRIVATE); - zend_declare_property_null(phalcon_security_jwt_builder_ce, SL("passphrase"), ZEND_ACC_PRIVATE); - zend_declare_property_null(phalcon_security_jwt_builder_ce, SL("signer"), ZEND_ACC_PRIVATE); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Security_JWT_Builder, __construct) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *signer, signer_sub, _0, _1, _2, _3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&signer_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(signer, phalcon_security_jwt_signer_signerinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &signer); - - - ZEPHIR_CALL_METHOD(NULL, this_ptr, "init", NULL, 0); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("signer"), signer); - zephir_read_property(&_0, this_ptr, ZEND_STRL("jose"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_1, this_ptr, ZEND_STRL("signer"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_2, &_1, "getalgheader", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "alg"); - ZEPHIR_CALL_METHOD(NULL, &_0, "set", NULL, 0, &_3, &_2); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + ZEPHIR_INIT_NVAR(&arrayReference); + ZEPHIR_INIT_NVAR(&name); + RETURN_CCTOR(&referenceObjects); } -static PHP_METHOD(Phalcon_Security_JWT_Builder, init) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, getDefaultIdValue) { - zval _2; - zval _0, _1; + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); ZEPHIR_MM_GROW(); + object_init_ex(return_value, phalcon_db_rawvalue_ce); ZEPHIR_INIT_VAR(&_0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, ""); - zephir_update_property_zval(this_ptr, ZEND_STRL("passphrase"), &_0); - ZEPHIR_INIT_NVAR(&_0); - object_init_ex(&_0, phalcon_collection_ce); - ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 22); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("claims"), &_0); - ZEPHIR_INIT_VAR(&_1); - object_init_ex(&_1, phalcon_collection_ce); - ZEPHIR_INIT_VAR(&_2); - zephir_create_array(&_2, 2, 0); - add_assoc_stringl_ex(&_2, SL("typ"), SL("JWT")); - add_assoc_stringl_ex(&_2, SL("alg"), SL("none")); - ZEPHIR_CALL_METHOD(NULL, &_1, "__construct", NULL, 22, &_2); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("jose"), &_1); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Security_JWT_Builder, getAudience) -{ - zval _0, _1; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("claims"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "aud"); - ZEPHIR_RETURN_CALL_METHOD(&_0, "get", NULL, 0, &_1); + ZVAL_STRING(&_0, "DEFAULT"); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 34, &_0); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Security_JWT_Builder, getClaims) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, modifyColumn) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_4 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, *column, column_sub, *currentColumn = NULL, currentColumn_sub, __$null, sql, queries, query, exception, _0, *_1$$4, _2$$4, _3$$5, _5$$7, _6$$3, _7$$10, _8$$10, _9$$10; + zval tableName, schemaName; zval *this_ptr = getThis(); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(¤tColumn_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&queries); + ZVAL_UNDEF(&query); + ZVAL_UNDEF(&exception); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_5$$7); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$10); + ZVAL_UNDEF(&_8$$10); + ZVAL_UNDEF(&_9$$10); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 4) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + Z_PARAM_OPTIONAL + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(currentColumn, phalcon_db_columninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 1, &tableName_param, &schemaName_param, &column, ¤tColumn); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + if (!currentColumn) { + currentColumn = ¤tColumn_sub; + currentColumn = &__$null; + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("claims"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "toarray", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Security_JWT_Builder, getContentType) -{ - zval _0, _1, _2, _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - - - ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("jose"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "cty"); - ZVAL_NULL(&_2); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "string"); - ZEPHIR_RETURN_CALL_METHOD(&_0, "get", NULL, 0, &_1, &_2, &_3); + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&sql, &_0, "modifycolumn", NULL, 0, &tableName, &schemaName, column, currentColumn); zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Security_JWT_Builder, getExpirationTime) -{ - zval _0, _1, _2, _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); + ZEPHIR_INIT_VAR(&queries); + zephir_fast_explode_str(&queries, SL(";"), &sql, LONG_MAX); + if (zephir_fast_count_int(&queries) > 1) { - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); + /* try_start_1: */ + ZEPHIR_CALL_METHOD(NULL, this_ptr, "begin", NULL, 0); + zephir_check_call_status_or_jump(try_end_1); + zephir_is_iterable(&queries, 0, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 653); + if (Z_TYPE_P(&queries) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&queries), _1$$4) + { + ZEPHIR_INIT_NVAR(&query); + ZVAL_COPY(&query, _1$$4); + if (ZEPHIR_IS_EMPTY(&query)) { + continue; + } + ZEPHIR_INIT_NVAR(&_3$$5); + ZEPHIR_CONCAT_VS(&_3$$5, &query, ";"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "query", &_4, 0, &_3$$5); + zephir_check_call_status_or_jump(try_end_1); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &queries, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2$$4, &queries, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2$$4)) { + break; + } + ZEPHIR_CALL_METHOD(&query, &queries, "current", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_EMPTY(&query)) { + continue; + } + ZEPHIR_INIT_NVAR(&_5$$7); + ZEPHIR_CONCAT_VS(&_5$$7, &query, ";"); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "query", &_4, 0, &_5$$7); + zephir_check_call_status_or_jump(try_end_1); + ZEPHIR_CALL_METHOD(NULL, &queries, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&query); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "commit", NULL, 0); + zephir_check_call_status_or_jump(try_end_1); + RETURN_MM(); - ZEPHIR_MM_GROW(); + try_end_1: - zephir_read_property(&_0, this_ptr, ZEND_STRL("claims"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "exp"); - ZVAL_NULL(&_2); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "int"); - ZEPHIR_RETURN_CALL_METHOD(&_0, "get", NULL, 0, &_1, &_2, &_3); - zephir_check_call_status(); - RETURN_MM(); + if (EG(exception)) { + ZEPHIR_INIT_VAR(&_6$$3); + ZVAL_OBJ(&_6$$3, EG(exception)); + Z_ADDREF_P(&_6$$3); + if (zephir_is_instance_of(&_6$$3, SL("Throwable"))) { + zend_clear_exception(); + ZEPHIR_CPY_WRT(&exception, &_6$$3); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "rollback", NULL, 0); + zephir_check_call_status(); + zephir_throw_exception_debug(&exception, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 657); + ZEPHIR_MM_RESTORE(); + return; + } + } + } else { + ZEPHIR_INIT_VAR(&_7$$10); + if (!(ZEPHIR_IS_EMPTY(&sql))) { + zephir_array_fetch_long(&_8$$10, &queries, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Postgresql.zep", 660); + ZEPHIR_INIT_VAR(&_9$$10); + ZEPHIR_CONCAT_VS(&_9$$10, &_8$$10, ";"); + ZEPHIR_CALL_METHOD(&_7$$10, this_ptr, "execute", NULL, 0, &_9$$10); + zephir_check_call_status(); + } else { + ZVAL_BOOL(&_7$$10, 1); + } + RETURN_CCTOR(&_7$$10); + } + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Security_JWT_Builder, getHeaders) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, supportSequences) { - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - - ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("jose"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "toarray", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); + RETURN_BOOL(1); } -static PHP_METHOD(Phalcon_Security_JWT_Builder, getId) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, useExplicitIdValue) { - zval _0, _1, _2, _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - - ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("claims"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "jti"); - ZVAL_NULL(&_2); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "string"); - ZEPHIR_RETURN_CALL_METHOD(&_0, "get", NULL, 0, &_1, &_2, &_3); - zephir_check_call_status(); - RETURN_MM(); + RETURN_BOOL(1); } -static PHP_METHOD(Phalcon_Security_JWT_Builder, getIssuedAt) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, getDsnDefaults) { - zval _0, _1, _2, _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - - ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("claims"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "iat"); - ZVAL_NULL(&_2); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "int"); - ZEPHIR_RETURN_CALL_METHOD(&_0, "get", NULL, 0, &_1, &_2, &_3); - zephir_check_call_status(); - RETURN_MM(); + array_init(return_value); + return; } -static PHP_METHOD(Phalcon_Security_JWT_Builder, getIssuer) -{ - zval _0, _1, _2, _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZEPHIR_MM_GROW(); +#ifdef HAVE_CONFIG_H +#endif - zephir_read_property(&_0, this_ptr, ZEND_STRL("claims"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "iss"); - ZVAL_NULL(&_2); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "string"); - ZEPHIR_RETURN_CALL_METHOD(&_0, "get", NULL, 0, &_1, &_2, &_3); - zephir_check_call_status(); - RETURN_MM(); -} -static PHP_METHOD(Phalcon_Security_JWT_Builder, getNotBefore) -{ - zval _0, _1, _2, _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZEPHIR_MM_GROW(); +ZEPHIR_INIT_CLASS(Phalcon_Db_Adapter_Pdo_Sqlite) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Adapter\\Pdo, Sqlite, phalcon, db_adapter_pdo_sqlite, phalcon_db_adapter_pdo_abstractpdo_ce, phalcon_db_adapter_pdo_sqlite_method_entry, 0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("claims"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "nbf"); - ZVAL_NULL(&_2); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "int"); - ZEPHIR_RETURN_CALL_METHOD(&_0, "get", NULL, 0, &_1, &_2, &_3); - zephir_check_call_status(); - RETURN_MM(); + zend_declare_property_string(phalcon_db_adapter_pdo_sqlite_ce, SL("dialectType"), "sqlite", ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_db_adapter_pdo_sqlite_ce, SL("type"), "sqlite", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Security_JWT_Builder, getSubject) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, __construct) { - zval _0, _1, _2, _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_1 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *descriptor_param = NULL, _0$$3; + zval descriptor; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&descriptor); + ZVAL_UNDEF(&_0$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(descriptor) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &descriptor_param); + ZEPHIR_OBS_COPY_OR_DUP(&descriptor, descriptor_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("claims"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "sub"); - ZVAL_NULL(&_2); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "string"); - ZEPHIR_RETURN_CALL_METHOD(&_0, "get", NULL, 0, &_1, &_2, &_3); + + if (zephir_array_isset_string(&descriptor, SL("charset"))) { + ZEPHIR_INIT_VAR(&_0$$3); + ZVAL_STRING(&_0$$3, "SQLite does not allow the charset to be changed in the DSN."); + ZEPHIR_CALL_FUNCTION(NULL, "trigger_error", NULL, 7, &_0$$3); + zephir_check_call_status(); + } + ZEPHIR_CALL_PARENT(NULL, phalcon_db_adapter_pdo_sqlite_ce, getThis(), "__construct", &_1, 0, &descriptor); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Security_JWT_Builder, getToken) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, connect) { - zval claims, encodedClaims, encodedHeaders, encodedSignature, headers, signature, signatureHash, _0, _2, _4, _5, _6, _7, _8, _9, _10, _11; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL, *_3 = NULL; + zephir_fcall_cache_entry *_1 = NULL; + zval *descriptor_param = NULL, dbname, _0$$3; + zval descriptor; zval *this_ptr = getThis(); - ZVAL_UNDEF(&claims); - ZVAL_UNDEF(&encodedClaims); - ZVAL_UNDEF(&encodedHeaders); - ZVAL_UNDEF(&encodedSignature); - ZVAL_UNDEF(&headers); - ZVAL_UNDEF(&signature); - ZVAL_UNDEF(&signatureHash); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&descriptor); + ZVAL_UNDEF(&dbname); + ZVAL_UNDEF(&_0$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(descriptor) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &descriptor_param); + if (!descriptor_param) { + ZEPHIR_INIT_VAR(&descriptor); + array_init(&descriptor); + } else { + ZEPHIR_OBS_COPY_OR_DUP(&descriptor, descriptor_param); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("passphrase"), PH_NOISY_CC | PH_READONLY); - if (ZEPHIR_IS_EMPTY(&_0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Invalid passphrase (empty)", "phalcon/Security/JWT/Builder.zep", 183); + + if (ZEPHIR_IS_EMPTY(&descriptor)) { + zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("descriptor"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&descriptor, &_0$$3); + } + ZEPHIR_OBS_VAR(&dbname); + if (zephir_array_isset_string_fetch(&dbname, &descriptor, SL("dbname"), 0)) { + zephir_array_update_string(&descriptor, SL("dsn"), &dbname, PH_COPY | PH_SEPARATE); + zephir_array_unset_string(&descriptor, SL("dbname"), PH_SEPARATE); + } else if (UNEXPECTED(!(zephir_array_isset_string(&descriptor, SL("dsn"))))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The database must be specified with either 'dbname' or 'dsn'.", "phalcon/Db/Adapter/Pdo/Sqlite.zep", 82); return; } - ZEPHIR_CALL_METHOD(&_4, this_ptr, "getclaims", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_CE_STATIC(&_2, phalcon_helper_json_ce, "encode", &_3, 14, &_4); + ZEPHIR_CALL_PARENT(NULL, phalcon_db_adapter_pdo_sqlite_ce, getThis(), "connect", &_1, 0, &descriptor); zephir_check_call_status(); - ZEPHIR_CALL_CE_STATIC(&encodedClaims, phalcon_helper_base64_ce, "encodeurl", &_1, 0, &_2); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&claims); - object_init_ex(&claims, phalcon_security_jwt_token_item_ce); - ZEPHIR_CALL_METHOD(&_5, this_ptr, "getclaims", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &claims, "__construct", NULL, 0, &_5, &encodedClaims); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_7, this_ptr, "getheaders", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_CE_STATIC(&_6, phalcon_helper_json_ce, "encode", &_3, 14, &_7); - zephir_check_call_status(); - ZEPHIR_CALL_CE_STATIC(&encodedHeaders, phalcon_helper_base64_ce, "encodeurl", &_1, 0, &_6); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&headers); - object_init_ex(&headers, phalcon_security_jwt_token_item_ce); - ZEPHIR_CALL_METHOD(&_8, this_ptr, "getheaders", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &headers, "__construct", NULL, 0, &_8, &encodedHeaders); - zephir_check_call_status(); - zephir_read_property(&_9, this_ptr, ZEND_STRL("signer"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_10); - ZEPHIR_CONCAT_VSV(&_10, &encodedHeaders, ".", &encodedClaims); - zephir_read_property(&_11, this_ptr, ZEND_STRL("passphrase"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&signatureHash, &_9, "sign", NULL, 0, &_10, &_11); - zephir_check_call_status(); - ZEPHIR_CALL_CE_STATIC(&encodedSignature, phalcon_helper_base64_ce, "encodeurl", &_1, 0, &signatureHash); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&signature); - object_init_ex(&signature, phalcon_security_jwt_token_signature_ce); - ZEPHIR_CALL_METHOD(NULL, &signature, "__construct", NULL, 0, &signatureHash, &encodedSignature); - zephir_check_call_status(); - object_init_ex(return_value, phalcon_security_jwt_token_token_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 0, &headers, &claims, &signature); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Security_JWT_Builder, getPassphrase) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "passphrase"); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Security_JWT_Builder, setAudience) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeColumns) { - zend_bool _0; + zend_bool _5$$3, _34$$3, _43$$28, _71$$28; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_33 = NULL, *_40 = NULL, *_41 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *audience, audience_sub, aud, _1; + zval *table_param = NULL, *schema_param = NULL, __$true, __$false, columns, columnType, fields, field, definition, oldColumn, sizePattern, matches, matchOne, matchTwo, columnName, _0, _1, _2, *_3, _4, _28$$3, _29$$3, _30$$3, _31$$3, _32$$3, _35$$3, _6$$4, _7$$4, _8$$5, _9$$5, _10$$5, _11$$7, _12$$7, _13$$8, _14$$9, _15$$10, _16$$11, _17$$11, _18$$12, _19$$12, _20$$13, _21$$14, _22$$15, _23$$16, _24$$17, _25$$18, _26$$20, _27$$21, _36$$27, _37$$27, _38$$27, _39$$27, _42$$28, _66$$28, _67$$28, _68$$28, _69$$28, _70$$28, _72$$28, _44$$29, _45$$29, _46$$30, _47$$30, _48$$30, _49$$32, _50$$32, _51$$33, _52$$34, _53$$35, _54$$36, _55$$36, _56$$37, _57$$37, _58$$38, _59$$39, _60$$40, _61$$41, _62$$42, _63$$43, _64$$45, _65$$46, _73$$52, _74$$52, _75$$52, _76$$52; + zval table, schema; zval *this_ptr = getThis(); - ZVAL_UNDEF(&audience_sub); - ZVAL_UNDEF(&aud); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&columnType); + ZVAL_UNDEF(&fields); + ZVAL_UNDEF(&field); + ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&oldColumn); + ZVAL_UNDEF(&sizePattern); + ZVAL_UNDEF(&matches); + ZVAL_UNDEF(&matchOne); + ZVAL_UNDEF(&matchTwo); + ZVAL_UNDEF(&columnName); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_28$$3); + ZVAL_UNDEF(&_29$$3); + ZVAL_UNDEF(&_30$$3); + ZVAL_UNDEF(&_31$$3); + ZVAL_UNDEF(&_32$$3); + ZVAL_UNDEF(&_35$$3); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&_11$$7); + ZVAL_UNDEF(&_12$$7); + ZVAL_UNDEF(&_13$$8); + ZVAL_UNDEF(&_14$$9); + ZVAL_UNDEF(&_15$$10); + ZVAL_UNDEF(&_16$$11); + ZVAL_UNDEF(&_17$$11); + ZVAL_UNDEF(&_18$$12); + ZVAL_UNDEF(&_19$$12); + ZVAL_UNDEF(&_20$$13); + ZVAL_UNDEF(&_21$$14); + ZVAL_UNDEF(&_22$$15); + ZVAL_UNDEF(&_23$$16); + ZVAL_UNDEF(&_24$$17); + ZVAL_UNDEF(&_25$$18); + ZVAL_UNDEF(&_26$$20); + ZVAL_UNDEF(&_27$$21); + ZVAL_UNDEF(&_36$$27); + ZVAL_UNDEF(&_37$$27); + ZVAL_UNDEF(&_38$$27); + ZVAL_UNDEF(&_39$$27); + ZVAL_UNDEF(&_42$$28); + ZVAL_UNDEF(&_66$$28); + ZVAL_UNDEF(&_67$$28); + ZVAL_UNDEF(&_68$$28); + ZVAL_UNDEF(&_69$$28); + ZVAL_UNDEF(&_70$$28); + ZVAL_UNDEF(&_72$$28); + ZVAL_UNDEF(&_44$$29); + ZVAL_UNDEF(&_45$$29); + ZVAL_UNDEF(&_46$$30); + ZVAL_UNDEF(&_47$$30); + ZVAL_UNDEF(&_48$$30); + ZVAL_UNDEF(&_49$$32); + ZVAL_UNDEF(&_50$$32); + ZVAL_UNDEF(&_51$$33); + ZVAL_UNDEF(&_52$$34); + ZVAL_UNDEF(&_53$$35); + ZVAL_UNDEF(&_54$$36); + ZVAL_UNDEF(&_55$$36); + ZVAL_UNDEF(&_56$$37); + ZVAL_UNDEF(&_57$$37); + ZVAL_UNDEF(&_58$$38); + ZVAL_UNDEF(&_59$$39); + ZVAL_UNDEF(&_60$$40); + ZVAL_UNDEF(&_61$$41); + ZVAL_UNDEF(&_62$$42); + ZVAL_UNDEF(&_63$$43); + ZVAL_UNDEF(&_64$$45); + ZVAL_UNDEF(&_65$$46); + ZVAL_UNDEF(&_73$$52); + ZVAL_UNDEF(&_74$$52); + ZVAL_UNDEF(&_75$$52); + ZVAL_UNDEF(&_76$$52); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(audience) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schema) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &audience); - - - _0 = Z_TYPE_P(audience) != IS_STRING; - if (_0) { - _0 = Z_TYPE_P(audience) != IS_ARRAY; + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); + RETURN_MM_NULL(); } - if (_0) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Invalid Audience", "phalcon/Security/JWT/Builder.zep", 233); - return; + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); + } else { + ZEPHIR_INIT_VAR(&table); } - if (Z_TYPE_P(audience) == IS_STRING) { - ZEPHIR_INIT_VAR(&aud); - zephir_create_array(&aud, 1, 0); - zephir_array_fast_append(&aud, audience); + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); } else { - ZEPHIR_CPY_WRT(&aud, audience); + if (UNEXPECTED(Z_TYPE_P(schema_param) != IS_STRING && Z_TYPE_P(schema_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schema' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schema_param) == IS_STRING)) { + zephir_get_strval(&schema, schema_param); + } else { + ZEPHIR_INIT_VAR(&schema); + } + } + + + ZEPHIR_INIT_VAR(&oldColumn); + ZVAL_NULL(&oldColumn); + ZEPHIR_INIT_VAR(&sizePattern); + ZVAL_STRING(&sizePattern, "#\\(([0-9]+)(?:,\\s*([0-9]+))*\\)#"); + ZEPHIR_INIT_VAR(&columns); + array_init(&columns); + zephir_read_property(&_0, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, &_0, "describecolumns", NULL, 0, &table, &schema); + zephir_check_call_status(); + ZVAL_LONG(&_2, 3); + ZEPHIR_CALL_METHOD(&fields, this_ptr, "fetchall", NULL, 0, &_1, &_2); + zephir_check_call_status(); + zephir_is_iterable(&fields, 0, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 312); + if (Z_TYPE_P(&fields) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&fields), _3) + { + ZEPHIR_INIT_NVAR(&field); + ZVAL_COPY(&field, _3); + ZEPHIR_INIT_NVAR(&definition); + zephir_create_array(&definition, 1, 0); + add_assoc_long_ex(&definition, SL("bindType"), 2); + ZEPHIR_OBS_NVAR(&columnType); + zephir_array_fetch_long(&columnType, &field, 2, PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 128); + _5$$3 = zephir_memnstr_str(&columnType, SL("int"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 150); + if (!(_5$$3)) { + _5$$3 = zephir_memnstr_str(&columnType, SL("INT"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 150); + } + if (zephir_memnstr_str(&columnType, SL("bigint"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 143)) { + ZEPHIR_INIT_NVAR(&_6$$4); + ZVAL_LONG(&_6$$4, 14); + zephir_array_update_string(&definition, SL("type"), &_6$$4, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_7$$4); + ZVAL_LONG(&_7$$4, 1); + zephir_array_update_string(&definition, SL("bindType"), &_7$$4, PH_COPY | PH_SEPARATE); + } else if (_5$$3) { + ZEPHIR_INIT_NVAR(&_8$$5); + ZVAL_LONG(&_8$$5, 0); + zephir_array_update_string(&definition, SL("type"), &_8$$5, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_9$$5); + ZVAL_LONG(&_9$$5, 1); + zephir_array_update_string(&definition, SL("bindType"), &_9$$5, PH_COPY | PH_SEPARATE); + zephir_array_fetch_long(&_10$$5, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 158); + if (zephir_is_true(&_10$$5)) { + zephir_array_update_string(&definition, SL("autoIncrement"), &__$true, PH_COPY | PH_SEPARATE); + } + } else if (zephir_memnstr_str(&columnType, SL("tinyint(1)"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 161)) { + ZEPHIR_INIT_NVAR(&_11$$7); + ZVAL_LONG(&_11$$7, 8); + zephir_array_update_string(&definition, SL("type"), &_11$$7, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_12$$7); + ZVAL_LONG(&_12$$7, 5); + zephir_array_update_string(&definition, SL("bindType"), &_12$$7, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&columnType); + ZVAL_STRING(&columnType, "boolean"); + } else if (zephir_memnstr_str(&columnType, SL("enum"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 172)) { + ZEPHIR_INIT_NVAR(&_13$$8); + ZVAL_LONG(&_13$$8, 5); + zephir_array_update_string(&definition, SL("type"), &_13$$8, PH_COPY | PH_SEPARATE); + } else if (zephir_memnstr_str(&columnType, SL("datetime"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 181)) { + ZEPHIR_INIT_NVAR(&_14$$9); + ZVAL_LONG(&_14$$9, 4); + zephir_array_update_string(&definition, SL("type"), &_14$$9, PH_COPY | PH_SEPARATE); + } else if (zephir_memnstr_str(&columnType, SL("date"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 186)) { + ZEPHIR_INIT_NVAR(&_15$$10); + ZVAL_LONG(&_15$$10, 1); + zephir_array_update_string(&definition, SL("type"), &_15$$10, PH_COPY | PH_SEPARATE); + } else if (zephir_memnstr_str(&columnType, SL("decimal"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 195)) { + ZEPHIR_INIT_NVAR(&_16$$11); + ZVAL_LONG(&_16$$11, 3); + zephir_array_update_string(&definition, SL("type"), &_16$$11, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_17$$11); + ZVAL_LONG(&_17$$11, 32); + zephir_array_update_string(&definition, SL("bindType"), &_17$$11, PH_COPY | PH_SEPARATE); + } else if (zephir_memnstr_str(&columnType, SL("float"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 202)) { + ZEPHIR_INIT_NVAR(&_18$$12); + ZVAL_LONG(&_18$$12, 7); + zephir_array_update_string(&definition, SL("type"), &_18$$12, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_19$$12); + ZVAL_LONG(&_19$$12, 3); + zephir_array_update_string(&definition, SL("bindType"), &_19$$12, PH_COPY | PH_SEPARATE); + } else if (zephir_memnstr_str(&columnType, SL("timestamp"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 213)) { + ZEPHIR_INIT_NVAR(&_20$$13); + ZVAL_LONG(&_20$$13, 17); + zephir_array_update_string(&definition, SL("type"), &_20$$13, PH_COPY | PH_SEPARATE); + } else if (zephir_memnstr_str(&columnType, SL("varchar"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 222)) { + ZEPHIR_INIT_NVAR(&_21$$14); + ZVAL_LONG(&_21$$14, 2); + zephir_array_update_string(&definition, SL("type"), &_21$$14, PH_COPY | PH_SEPARATE); + } else if (zephir_memnstr_str(&columnType, SL("char"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 227)) { + ZEPHIR_INIT_NVAR(&_22$$15); + ZVAL_LONG(&_22$$15, 5); + zephir_array_update_string(&definition, SL("type"), &_22$$15, PH_COPY | PH_SEPARATE); + } else if (zephir_memnstr_str(&columnType, SL("text"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 232)) { + ZEPHIR_INIT_NVAR(&_23$$16); + ZVAL_LONG(&_23$$16, 6); + zephir_array_update_string(&definition, SL("type"), &_23$$16, PH_COPY | PH_SEPARATE); + } else { + ZEPHIR_INIT_NVAR(&_24$$17); + ZVAL_LONG(&_24$$17, 2); + zephir_array_update_string(&definition, SL("type"), &_24$$17, PH_COPY | PH_SEPARATE); + } + if (zephir_memnstr_str(&columnType, SL("("), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 249)) { + ZEPHIR_INIT_NVAR(&matches); + ZVAL_NULL(&matches); + ZEPHIR_INIT_NVAR(&_25$$18); + zephir_preg_match(&_25$$18, &sizePattern, &columnType, &matches, 0, 0 , 0 ); + if (zephir_is_true(&_25$$18)) { + ZEPHIR_OBS_NVAR(&matchOne); + if (zephir_array_isset_long_fetch(&matchOne, &matches, 1, 0)) { + ZEPHIR_INIT_NVAR(&_26$$20); + ZVAL_LONG(&_26$$20, zephir_get_intval(&matchOne)); + zephir_array_update_string(&definition, SL("size"), &_26$$20, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_NVAR(&matchTwo); + if (zephir_array_isset_long_fetch(&matchTwo, &matches, 2, 0)) { + ZEPHIR_INIT_NVAR(&_27$$21); + ZVAL_LONG(&_27$$21, zephir_get_intval(&matchTwo)); + zephir_array_update_string(&definition, SL("scale"), &_27$$21, PH_COPY | PH_SEPARATE); + } + } + } + if (zephir_memnstr_str(&columnType, SL("unsigned"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 265)) { + zephir_array_update_string(&definition, SL("unsigned"), &__$true, PH_COPY | PH_SEPARATE); + } + if (Z_TYPE_P(&oldColumn) == IS_NULL) { + zephir_array_update_string(&definition, SL("first"), &__$true, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_28$$3, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 281); + if (zephir_is_true(&_28$$3)) { + zephir_array_update_string(&definition, SL("primary"), &__$true, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_29$$3, &field, 3, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 288); + if (ZEPHIR_IS_LONG(&_29$$3, 0)) { + zephir_array_update_string(&definition, SL("notNull"), &__$false, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_30$$3, &field, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 296); + ZEPHIR_INIT_NVAR(&_31$$3); + ZVAL_STRING(&_31$$3, "null"); + ZEPHIR_CALL_FUNCTION(&_32$$3, "strcasecmp", &_33, 47, &_30$$3, &_31$$3); + zephir_check_call_status(); + _34$$3 = !ZEPHIR_IS_LONG(&_32$$3, 0); + if (_34$$3) { + zephir_array_fetch_long(&_35$$3, &field, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 296); + _34$$3 = !ZEPHIR_IS_STRING(&_35$$3, ""); + } + if (_34$$3) { + zephir_array_fetch_long(&_36$$27, &field, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 301); + ZEPHIR_INIT_NVAR(&_37$$27); + ZVAL_STRING(&_37$$27, "/^'|'$/"); + ZEPHIR_INIT_NVAR(&_38$$27); + ZVAL_STRING(&_38$$27, ""); + ZEPHIR_CALL_FUNCTION(&_39$$27, "preg_replace", &_40, 50, &_37$$27, &_38$$27, &_36$$27); + zephir_check_call_status(); + zephir_array_update_string(&definition, SL("default"), &_39$$27, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&columnName, &field, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 307); + ZEPHIR_INIT_NVAR(&_31$$3); + object_init_ex(&_31$$3, phalcon_db_column_ce); + ZEPHIR_CALL_METHOD(NULL, &_31$$3, "__construct", &_41, 212, &columnName, &definition); + zephir_check_call_status(); + zephir_array_append(&columns, &_31$$3, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 308); + ZEPHIR_CPY_WRT(&oldColumn, &columnName); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &fields, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_4, &fields, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_4)) { + break; + } + ZEPHIR_CALL_METHOD(&field, &fields, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_42$$28); + zephir_create_array(&_42$$28, 1, 0); + add_assoc_long_ex(&_42$$28, SL("bindType"), 2); + ZEPHIR_CPY_WRT(&definition, &_42$$28); + ZEPHIR_OBS_NVAR(&columnType); + zephir_array_fetch_long(&columnType, &field, 2, PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 128); + _43$$28 = zephir_memnstr_str(&columnType, SL("int"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 150); + if (!(_43$$28)) { + _43$$28 = zephir_memnstr_str(&columnType, SL("INT"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 150); + } + if (zephir_memnstr_str(&columnType, SL("bigint"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 143)) { + ZEPHIR_INIT_NVAR(&_44$$29); + ZVAL_LONG(&_44$$29, 14); + zephir_array_update_string(&definition, SL("type"), &_44$$29, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_45$$29); + ZVAL_LONG(&_45$$29, 1); + zephir_array_update_string(&definition, SL("bindType"), &_45$$29, PH_COPY | PH_SEPARATE); + } else if (_43$$28) { + ZEPHIR_INIT_NVAR(&_46$$30); + ZVAL_LONG(&_46$$30, 0); + zephir_array_update_string(&definition, SL("type"), &_46$$30, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_47$$30); + ZVAL_LONG(&_47$$30, 1); + zephir_array_update_string(&definition, SL("bindType"), &_47$$30, PH_COPY | PH_SEPARATE); + zephir_array_fetch_long(&_48$$30, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 158); + if (zephir_is_true(&_48$$30)) { + zephir_array_update_string(&definition, SL("autoIncrement"), &__$true, PH_COPY | PH_SEPARATE); + } + } else if (zephir_memnstr_str(&columnType, SL("tinyint(1)"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 161)) { + ZEPHIR_INIT_NVAR(&_49$$32); + ZVAL_LONG(&_49$$32, 8); + zephir_array_update_string(&definition, SL("type"), &_49$$32, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_50$$32); + ZVAL_LONG(&_50$$32, 5); + zephir_array_update_string(&definition, SL("bindType"), &_50$$32, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&columnType); + ZVAL_STRING(&columnType, "boolean"); + } else if (zephir_memnstr_str(&columnType, SL("enum"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 172)) { + ZEPHIR_INIT_NVAR(&_51$$33); + ZVAL_LONG(&_51$$33, 5); + zephir_array_update_string(&definition, SL("type"), &_51$$33, PH_COPY | PH_SEPARATE); + } else if (zephir_memnstr_str(&columnType, SL("datetime"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 181)) { + ZEPHIR_INIT_NVAR(&_52$$34); + ZVAL_LONG(&_52$$34, 4); + zephir_array_update_string(&definition, SL("type"), &_52$$34, PH_COPY | PH_SEPARATE); + } else if (zephir_memnstr_str(&columnType, SL("date"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 186)) { + ZEPHIR_INIT_NVAR(&_53$$35); + ZVAL_LONG(&_53$$35, 1); + zephir_array_update_string(&definition, SL("type"), &_53$$35, PH_COPY | PH_SEPARATE); + } else if (zephir_memnstr_str(&columnType, SL("decimal"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 195)) { + ZEPHIR_INIT_NVAR(&_54$$36); + ZVAL_LONG(&_54$$36, 3); + zephir_array_update_string(&definition, SL("type"), &_54$$36, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_55$$36); + ZVAL_LONG(&_55$$36, 32); + zephir_array_update_string(&definition, SL("bindType"), &_55$$36, PH_COPY | PH_SEPARATE); + } else if (zephir_memnstr_str(&columnType, SL("float"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 202)) { + ZEPHIR_INIT_NVAR(&_56$$37); + ZVAL_LONG(&_56$$37, 7); + zephir_array_update_string(&definition, SL("type"), &_56$$37, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&definition, SL("isNumeric"), &__$true, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_57$$37); + ZVAL_LONG(&_57$$37, 3); + zephir_array_update_string(&definition, SL("bindType"), &_57$$37, PH_COPY | PH_SEPARATE); + } else if (zephir_memnstr_str(&columnType, SL("timestamp"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 213)) { + ZEPHIR_INIT_NVAR(&_58$$38); + ZVAL_LONG(&_58$$38, 17); + zephir_array_update_string(&definition, SL("type"), &_58$$38, PH_COPY | PH_SEPARATE); + } else if (zephir_memnstr_str(&columnType, SL("varchar"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 222)) { + ZEPHIR_INIT_NVAR(&_59$$39); + ZVAL_LONG(&_59$$39, 2); + zephir_array_update_string(&definition, SL("type"), &_59$$39, PH_COPY | PH_SEPARATE); + } else if (zephir_memnstr_str(&columnType, SL("char"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 227)) { + ZEPHIR_INIT_NVAR(&_60$$40); + ZVAL_LONG(&_60$$40, 5); + zephir_array_update_string(&definition, SL("type"), &_60$$40, PH_COPY | PH_SEPARATE); + } else if (zephir_memnstr_str(&columnType, SL("text"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 232)) { + ZEPHIR_INIT_NVAR(&_61$$41); + ZVAL_LONG(&_61$$41, 6); + zephir_array_update_string(&definition, SL("type"), &_61$$41, PH_COPY | PH_SEPARATE); + } else { + ZEPHIR_INIT_NVAR(&_62$$42); + ZVAL_LONG(&_62$$42, 2); + zephir_array_update_string(&definition, SL("type"), &_62$$42, PH_COPY | PH_SEPARATE); + } + if (zephir_memnstr_str(&columnType, SL("("), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 249)) { + ZEPHIR_INIT_NVAR(&matches); + ZVAL_NULL(&matches); + ZEPHIR_INIT_NVAR(&_63$$43); + zephir_preg_match(&_63$$43, &sizePattern, &columnType, &matches, 0, 0 , 0 ); + if (zephir_is_true(&_63$$43)) { + ZEPHIR_OBS_NVAR(&matchOne); + if (zephir_array_isset_long_fetch(&matchOne, &matches, 1, 0)) { + ZEPHIR_INIT_NVAR(&_64$$45); + ZVAL_LONG(&_64$$45, zephir_get_intval(&matchOne)); + zephir_array_update_string(&definition, SL("size"), &_64$$45, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_NVAR(&matchTwo); + if (zephir_array_isset_long_fetch(&matchTwo, &matches, 2, 0)) { + ZEPHIR_INIT_NVAR(&_65$$46); + ZVAL_LONG(&_65$$46, zephir_get_intval(&matchTwo)); + zephir_array_update_string(&definition, SL("scale"), &_65$$46, PH_COPY | PH_SEPARATE); + } + } + } + if (zephir_memnstr_str(&columnType, SL("unsigned"), "phalcon/Db/Adapter/Pdo/Sqlite.zep", 265)) { + zephir_array_update_string(&definition, SL("unsigned"), &__$true, PH_COPY | PH_SEPARATE); + } + if (Z_TYPE_P(&oldColumn) == IS_NULL) { + zephir_array_update_string(&definition, SL("first"), &__$true, PH_COPY | PH_SEPARATE); + } else { + zephir_array_update_string(&definition, SL("after"), &oldColumn, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_66$$28, &field, 5, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 281); + if (zephir_is_true(&_66$$28)) { + zephir_array_update_string(&definition, SL("primary"), &__$true, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_67$$28, &field, 3, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 288); + if (ZEPHIR_IS_LONG(&_67$$28, 0)) { + zephir_array_update_string(&definition, SL("notNull"), &__$false, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_long(&_68$$28, &field, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 296); + ZEPHIR_INIT_NVAR(&_69$$28); + ZVAL_STRING(&_69$$28, "null"); + ZEPHIR_CALL_FUNCTION(&_70$$28, "strcasecmp", &_33, 47, &_68$$28, &_69$$28); + zephir_check_call_status(); + _71$$28 = !ZEPHIR_IS_LONG(&_70$$28, 0); + if (_71$$28) { + zephir_array_fetch_long(&_72$$28, &field, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 296); + _71$$28 = !ZEPHIR_IS_STRING(&_72$$28, ""); + } + if (_71$$28) { + zephir_array_fetch_long(&_73$$52, &field, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 301); + ZEPHIR_INIT_NVAR(&_74$$52); + ZVAL_STRING(&_74$$52, "/^'|'$/"); + ZEPHIR_INIT_NVAR(&_75$$52); + ZVAL_STRING(&_75$$52, ""); + ZEPHIR_CALL_FUNCTION(&_76$$52, "preg_replace", &_40, 50, &_74$$52, &_75$$52, &_73$$52); + zephir_check_call_status(); + zephir_array_update_string(&definition, SL("default"), &_76$$52, PH_COPY | PH_SEPARATE); + } + ZEPHIR_OBS_NVAR(&columnName); + zephir_array_fetch_long(&columnName, &field, 1, PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 307); + ZEPHIR_INIT_NVAR(&_69$$28); + object_init_ex(&_69$$28, phalcon_db_column_ce); + ZEPHIR_CALL_METHOD(NULL, &_69$$28, "__construct", &_41, 212, &columnName, &definition); + zephir_check_call_status(); + zephir_array_append(&columns, &_69$$28, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 308); + ZEPHIR_CPY_WRT(&oldColumn, &columnName); + ZEPHIR_CALL_METHOD(NULL, &fields, "next", NULL, 0); + zephir_check_call_status(); + } } - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "aud"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "setclaim", NULL, 0, &_1, &aud); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_NVAR(&field); + RETURN_CCTOR(&columns); } -static PHP_METHOD(Phalcon_Security_JWT_Builder, setContentType) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeIndexes) { + zend_string *_46; + zend_ulong _45; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_17 = NULL, *_50 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *contentType_param = NULL, _0, _1; - zval contentType; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&contentType); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(contentType) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &contentType_param); - zephir_get_strval(&contentType, contentType_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("jose"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "cty"); - ZEPHIR_CALL_METHOD(NULL, &_0, "set", NULL, 0, &_1, &contentType); - zephir_check_call_status(); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Security_JWT_Builder, setExpirationTime) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *timestamp_param = NULL, _0, _1, _2; - zend_long timestamp, ZEPHIR_LAST_CALL_STATUS; + zval *table_param = NULL, *schema_param = NULL, __$null, indexes, index, keyName, indexObjects, name, columns, describeIndexes, describeIndex, indexSql, _0, _1, _2, _3, *_4, _5, *_43, _44, _6$$4, _7$$3, _9$$3, _10$$3, _11$$3, *_12$$3, _13$$3, _16$$3, _18$$3, _8$$6, _14$$7, _15$$8, _19$$9, _20$$9, _21$$9, _22$$9, _23$$10, _24$$11, _25$$14, _26$$13, _28$$13, _29$$13, _30$$13, *_31$$13, _32$$13, _35$$13, _36$$13, _27$$16, _33$$17, _34$$18, _37$$19, _38$$19, _39$$19, _40$$19, _41$$20, _42$$21, _47$$23, _48$$23, _49$$23, _51$$24, _52$$24, _53$$24; + zval table, schema; zval *this_ptr = getThis(); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&indexes); + ZVAL_UNDEF(&index); + ZVAL_UNDEF(&keyName); + ZVAL_UNDEF(&indexObjects); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&describeIndexes); + ZVAL_UNDEF(&describeIndex); + ZVAL_UNDEF(&indexSql); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_44); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_9$$3); + ZVAL_UNDEF(&_10$$3); + ZVAL_UNDEF(&_11$$3); + ZVAL_UNDEF(&_13$$3); + ZVAL_UNDEF(&_16$$3); + ZVAL_UNDEF(&_18$$3); + ZVAL_UNDEF(&_8$$6); + ZVAL_UNDEF(&_14$$7); + ZVAL_UNDEF(&_15$$8); + ZVAL_UNDEF(&_19$$9); + ZVAL_UNDEF(&_20$$9); + ZVAL_UNDEF(&_21$$9); + ZVAL_UNDEF(&_22$$9); + ZVAL_UNDEF(&_23$$10); + ZVAL_UNDEF(&_24$$11); + ZVAL_UNDEF(&_25$$14); + ZVAL_UNDEF(&_26$$13); + ZVAL_UNDEF(&_28$$13); + ZVAL_UNDEF(&_29$$13); + ZVAL_UNDEF(&_30$$13); + ZVAL_UNDEF(&_32$$13); + ZVAL_UNDEF(&_35$$13); + ZVAL_UNDEF(&_36$$13); + ZVAL_UNDEF(&_27$$16); + ZVAL_UNDEF(&_33$$17); + ZVAL_UNDEF(&_34$$18); + ZVAL_UNDEF(&_37$$19); + ZVAL_UNDEF(&_38$$19); + ZVAL_UNDEF(&_39$$19); + ZVAL_UNDEF(&_40$$19); + ZVAL_UNDEF(&_41$$20); + ZVAL_UNDEF(&_42$$21); + ZVAL_UNDEF(&_47$$23); + ZVAL_UNDEF(&_48$$23); + ZVAL_UNDEF(&_49$$23); + ZVAL_UNDEF(&_51$$24); + ZVAL_UNDEF(&_52$$24); + ZVAL_UNDEF(&_53$$24); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(timestamp) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schema) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, ×tamp_param); - timestamp = zephir_get_intval(timestamp_param); - - - ZEPHIR_INIT_VAR(&_0); - zephir_time(&_0); - if (ZEPHIR_GT_LONG(&_0, timestamp)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Invalid Expiration Time", "phalcon/Security/JWT/Builder.zep", 278); - return; + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); + RETURN_MM_NULL(); } - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "exp"); - ZVAL_LONG(&_2, timestamp); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "setclaim", NULL, 0, &_1, &_2); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Security_JWT_Builder, setId) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *id_param = NULL, _0; - zval id; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&id); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(id) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &id_param); - if (UNEXPECTED(Z_TYPE_P(id_param) != IS_STRING && Z_TYPE_P(id_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'id' must be of the type string")); + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); + } else { + ZEPHIR_INIT_VAR(&table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); + } else { + if (UNEXPECTED(Z_TYPE_P(schema_param) != IS_STRING && Z_TYPE_P(schema_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schema' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(id_param) == IS_STRING)) { - zephir_get_strval(&id, id_param); + if (EXPECTED(Z_TYPE_P(schema_param) == IS_STRING)) { + zephir_get_strval(&schema, schema_param); } else { - ZEPHIR_INIT_VAR(&id); + ZEPHIR_INIT_VAR(&schema); + } } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "jti"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "setclaim", NULL, 0, &_0, &id); + ZEPHIR_INIT_VAR(&indexes); + array_init(&indexes); + zephir_read_property(&_1, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_2, &_1, "describeindexes", NULL, 0, &table, &schema); zephir_check_call_status(); - RETURN_MM(); + ZVAL_LONG(&_3, 2); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, 0, &_2, &_3); + zephir_check_call_status(); + zephir_is_iterable(&_0, 0, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 370); + if (Z_TYPE_P(&_0) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _4) + { + ZEPHIR_INIT_NVAR(&index); + ZVAL_COPY(&index, _4); + ZEPHIR_OBS_NVAR(&keyName); + zephir_array_fetch_string(&keyName, &index, SL("name"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 332); + if (!(zephir_array_isset(&indexes, &keyName))) { + ZEPHIR_INIT_NVAR(&_6$$4); + array_init(&_6$$4); + zephir_array_update_zval(&indexes, &keyName, &_6$$4, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch(&_7$$3, &indexes, &keyName, PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 338); + if (!(zephir_array_isset_string(&_7$$3, SL("columns")))) { + ZEPHIR_INIT_NVAR(&columns); + array_init(&columns); + } else { + zephir_array_fetch(&_8$$6, &indexes, &keyName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 341); + ZEPHIR_OBS_NVAR(&columns); + zephir_array_fetch_string(&columns, &_8$$6, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 341); + } + zephir_read_property(&_9$$3, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_10$$3, &_9$$3, "describeindex", NULL, 0, &keyName); + zephir_check_call_status(); + ZVAL_LONG(&_11$$3, 2); + ZEPHIR_CALL_METHOD(&describeIndexes, this_ptr, "fetchall", NULL, 0, &_10$$3, &_11$$3); + zephir_check_call_status(); + zephir_is_iterable(&describeIndexes, 0, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 353); + if (Z_TYPE_P(&describeIndexes) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&describeIndexes), _12$$3) + { + ZEPHIR_INIT_NVAR(&describeIndex); + ZVAL_COPY(&describeIndex, _12$$3); + zephir_array_fetch_string(&_14$$7, &describeIndex, SL("name"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 350); + zephir_array_append(&columns, &_14$$7, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 350); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &describeIndexes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_13$$3, &describeIndexes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_13$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&describeIndex, &describeIndexes, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_fetch_string(&_15$$8, &describeIndex, SL("name"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 350); + zephir_array_append(&columns, &_15$$8, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 350); + ZEPHIR_CALL_METHOD(NULL, &describeIndexes, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&describeIndex); + zephir_array_update_multi(&indexes, &columns, SL("zs"), 3, &keyName, SL("columns")); + zephir_read_property(&_11$$3, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_16$$3, &_11$$3, "listindexessql", NULL, 0, &table, &schema, &keyName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&indexSql, this_ptr, "fetchcolumn", &_17, 0, &_16$$3); + zephir_check_call_status(); + zephir_array_fetch_string(&_18$$3, &index, SL("unique"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 359); + if (zephir_is_true(&_18$$3)) { + ZEPHIR_INIT_NVAR(&_19$$9); + ZEPHIR_INIT_NVAR(&_20$$9); + ZVAL_STRING(&_20$$9, "# UNIQUE #i"); + ZEPHIR_INIT_NVAR(&_21$$9); + ZEPHIR_INIT_NVAR(&_22$$9); + ZVAL_STRING(&_22$$9, "# UNIQUE #i"); + zephir_preg_match(&_21$$9, &_22$$9, &indexSql, &_19$$9, 0, 0 , 0 ); + if (zephir_is_true(&_21$$9)) { + ZEPHIR_INIT_NVAR(&_23$$10); + ZVAL_STRING(&_23$$10, "UNIQUE"); + zephir_array_update_multi(&indexes, &_23$$10, SL("zs"), 3, &keyName, SL("type")); + } else { + ZEPHIR_INIT_NVAR(&_24$$11); + ZVAL_STRING(&_24$$11, "PRIMARY"); + zephir_array_update_multi(&indexes, &_24$$11, SL("zs"), 3, &keyName, SL("type")); + } + } else { + zephir_array_update_multi(&indexes, &__$null, SL("zs"), 3, &keyName, SL("type")); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_5, &_0, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_5)) { + break; + } + ZEPHIR_CALL_METHOD(&index, &_0, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&keyName); + zephir_array_fetch_string(&keyName, &index, SL("name"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 332); + if (!(zephir_array_isset(&indexes, &keyName))) { + ZEPHIR_INIT_NVAR(&_25$$14); + array_init(&_25$$14); + zephir_array_update_zval(&indexes, &keyName, &_25$$14, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch(&_26$$13, &indexes, &keyName, PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 338); + if (!(zephir_array_isset_string(&_26$$13, SL("columns")))) { + ZEPHIR_INIT_NVAR(&columns); + array_init(&columns); + } else { + zephir_array_fetch(&_27$$16, &indexes, &keyName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 341); + ZEPHIR_OBS_NVAR(&columns); + zephir_array_fetch_string(&columns, &_27$$16, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 341); + } + zephir_read_property(&_28$$13, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_29$$13, &_28$$13, "describeindex", NULL, 0, &keyName); + zephir_check_call_status(); + ZVAL_LONG(&_30$$13, 2); + ZEPHIR_CALL_METHOD(&describeIndexes, this_ptr, "fetchall", NULL, 0, &_29$$13, &_30$$13); + zephir_check_call_status(); + zephir_is_iterable(&describeIndexes, 0, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 353); + if (Z_TYPE_P(&describeIndexes) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&describeIndexes), _31$$13) + { + ZEPHIR_INIT_NVAR(&describeIndex); + ZVAL_COPY(&describeIndex, _31$$13); + zephir_array_fetch_string(&_33$$17, &describeIndex, SL("name"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 350); + zephir_array_append(&columns, &_33$$17, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 350); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &describeIndexes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_32$$13, &describeIndexes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_32$$13)) { + break; + } + ZEPHIR_CALL_METHOD(&describeIndex, &describeIndexes, "current", NULL, 0); + zephir_check_call_status(); + zephir_array_fetch_string(&_34$$18, &describeIndex, SL("name"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 350); + zephir_array_append(&columns, &_34$$18, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 350); + ZEPHIR_CALL_METHOD(NULL, &describeIndexes, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&describeIndex); + zephir_array_update_multi(&indexes, &columns, SL("zs"), 3, &keyName, SL("columns")); + zephir_read_property(&_30$$13, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_35$$13, &_30$$13, "listindexessql", NULL, 0, &table, &schema, &keyName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&indexSql, this_ptr, "fetchcolumn", &_17, 0, &_35$$13); + zephir_check_call_status(); + zephir_array_fetch_string(&_36$$13, &index, SL("unique"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 359); + if (zephir_is_true(&_36$$13)) { + ZEPHIR_INIT_NVAR(&_37$$19); + ZEPHIR_INIT_NVAR(&_38$$19); + ZVAL_STRING(&_38$$19, "# UNIQUE #i"); + ZEPHIR_INIT_NVAR(&_39$$19); + ZEPHIR_INIT_NVAR(&_40$$19); + ZVAL_STRING(&_40$$19, "# UNIQUE #i"); + zephir_preg_match(&_39$$19, &_40$$19, &indexSql, &_37$$19, 0, 0 , 0 ); + if (zephir_is_true(&_39$$19)) { + ZEPHIR_INIT_NVAR(&_41$$20); + ZVAL_STRING(&_41$$20, "UNIQUE"); + zephir_array_update_multi(&indexes, &_41$$20, SL("zs"), 3, &keyName, SL("type")); + } else { + ZEPHIR_INIT_NVAR(&_42$$21); + ZVAL_STRING(&_42$$21, "PRIMARY"); + zephir_array_update_multi(&indexes, &_42$$21, SL("zs"), 3, &keyName, SL("type")); + } + } else { + zephir_array_update_multi(&indexes, &__$null, SL("zs"), 3, &keyName, SL("type")); + } + ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&index); + ZEPHIR_INIT_VAR(&indexObjects); + array_init(&indexObjects); + zephir_is_iterable(&indexes, 0, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 380); + if (Z_TYPE_P(&indexes) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&indexes), _45, _46, _43) + { + ZEPHIR_INIT_NVAR(&name); + if (_46 != NULL) { + ZVAL_STR_COPY(&name, _46); + } else { + ZVAL_LONG(&name, _45); + } + ZEPHIR_INIT_NVAR(&index); + ZVAL_COPY(&index, _43); + ZEPHIR_INIT_NVAR(&_47$$23); + object_init_ex(&_47$$23, phalcon_db_index_ce); + zephir_array_fetch_string(&_48$$23, &index, SL("columns"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 375); + zephir_array_fetch_string(&_49$$23, &index, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 377); + ZEPHIR_CALL_METHOD(NULL, &_47$$23, "__construct", &_50, 32, &name, &_48$$23, &_49$$23); + zephir_check_call_status(); + zephir_array_update_zval(&indexObjects, &name, &_47$$23, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &indexes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_44, &indexes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_44)) { + break; + } + ZEPHIR_CALL_METHOD(&name, &indexes, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&index, &indexes, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_51$$24); + object_init_ex(&_51$$24, phalcon_db_index_ce); + zephir_array_fetch_string(&_52$$24, &index, SL("columns"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 375); + zephir_array_fetch_string(&_53$$24, &index, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 377); + ZEPHIR_CALL_METHOD(NULL, &_51$$24, "__construct", &_50, 32, &name, &_52$$24, &_53$$24); + zephir_check_call_status(); + zephir_array_update_zval(&indexObjects, &name, &_51$$24, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &indexes, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&index); + ZEPHIR_INIT_NVAR(&name); + RETURN_CCTOR(&indexObjects); } -static PHP_METHOD(Phalcon_Security_JWT_Builder, setIssuedAt) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, describeReferences) { + zval _14$$3, _21$$6, _27$$9, _31$$10; + zend_string *_7, *_25; + zend_ulong _6, _24; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *timestamp_param = NULL, _0, _1; - zend_long timestamp, ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_29 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *table_param = NULL, *schema_param = NULL, references, reference, arrayReference, constraintName, referenceObjects, name, referencedSchema, referencedTable, columns, referencedColumns, number, _0, _1, _2, _3, *_4, _5, *_22, _23, _8$$5, _9$$5, _10$$5, _11$$5, _12$$3, _13$$3, _15$$8, _16$$8, _17$$8, _18$$8, _19$$6, _20$$6, _26$$9, _28$$9, _30$$10, _32$$10; + zval table, schema; zval *this_ptr = getThis(); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&references); + ZVAL_UNDEF(&reference); + ZVAL_UNDEF(&arrayReference); + ZVAL_UNDEF(&constraintName); + ZVAL_UNDEF(&referenceObjects); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&referencedSchema); + ZVAL_UNDEF(&referencedTable); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&referencedColumns); + ZVAL_UNDEF(&number); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_23); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&_11$$5); + ZVAL_UNDEF(&_12$$3); + ZVAL_UNDEF(&_13$$3); + ZVAL_UNDEF(&_15$$8); + ZVAL_UNDEF(&_16$$8); + ZVAL_UNDEF(&_17$$8); + ZVAL_UNDEF(&_18$$8); + ZVAL_UNDEF(&_19$$6); + ZVAL_UNDEF(&_20$$6); + ZVAL_UNDEF(&_26$$9); + ZVAL_UNDEF(&_28$$9); + ZVAL_UNDEF(&_30$$10); + ZVAL_UNDEF(&_32$$10); + ZVAL_UNDEF(&_14$$3); + ZVAL_UNDEF(&_21$$6); + ZVAL_UNDEF(&_27$$9); + ZVAL_UNDEF(&_31$$10); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(timestamp) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schema) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, ×tamp_param); - if (UNEXPECTED(Z_TYPE_P(timestamp_param) != IS_LONG)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'timestamp' must be of the type int")); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); RETURN_MM_NULL(); } - timestamp = Z_LVAL_P(timestamp_param); - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "iat"); - ZVAL_LONG(&_1, timestamp); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "setclaim", NULL, 0, &_0, &_1); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Security_JWT_Builder, setIssuer) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *issuer_param = NULL, _0; - zval issuer; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&issuer); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(issuer) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &issuer_param); - if (UNEXPECTED(Z_TYPE_P(issuer_param) != IS_STRING && Z_TYPE_P(issuer_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'issuer' must be of the type string")); + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); + } else { + ZEPHIR_INIT_VAR(&table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); + } else { + if (UNEXPECTED(Z_TYPE_P(schema_param) != IS_STRING && Z_TYPE_P(schema_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schema' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(issuer_param) == IS_STRING)) { - zephir_get_strval(&issuer, issuer_param); + if (EXPECTED(Z_TYPE_P(schema_param) == IS_STRING)) { + zephir_get_strval(&schema, schema_param); } else { - ZEPHIR_INIT_VAR(&issuer); + ZEPHIR_INIT_VAR(&schema); + } } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "iss"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "setclaim", NULL, 0, &_0, &issuer); + ZEPHIR_INIT_VAR(&references); + array_init(&references); + zephir_read_property(&_1, this_ptr, ZEND_STRL("dialect"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_2, &_1, "describereferences", NULL, 0, &table, &schema); zephir_check_call_status(); - RETURN_MM(); + ZVAL_LONG(&_3, 3); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "fetchall", NULL, 0, &_2, &_3); + zephir_check_call_status(); + zephir_is_iterable(&_0, 0, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 420); + if (Z_TYPE_P(&_0) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_0), _6, _7, _4) + { + ZEPHIR_INIT_NVAR(&number); + if (_7 != NULL) { + ZVAL_STR_COPY(&number, _7); + } else { + ZVAL_LONG(&number, _6); + } + ZEPHIR_INIT_NVAR(&reference); + ZVAL_COPY(&reference, _4); + ZEPHIR_INIT_NVAR(&constraintName); + ZEPHIR_CONCAT_SV(&constraintName, "foreign_key_", &number); + if (!(zephir_array_isset(&references, &constraintName))) { + ZEPHIR_INIT_NVAR(&referencedSchema); + ZVAL_NULL(&referencedSchema); + ZEPHIR_OBS_NVAR(&referencedTable); + zephir_array_fetch_long(&referencedTable, &reference, 2, PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 399); + ZEPHIR_INIT_NVAR(&columns); + array_init(&columns); + ZEPHIR_INIT_NVAR(&referencedColumns); + array_init(&referencedColumns); + } else { + zephir_array_fetch(&_8$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 403); + ZEPHIR_OBS_NVAR(&referencedSchema); + zephir_array_fetch_string(&referencedSchema, &_8$$5, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 403); + zephir_array_fetch(&_9$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 404); + ZEPHIR_OBS_NVAR(&referencedTable); + zephir_array_fetch_string(&referencedTable, &_9$$5, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 404); + zephir_array_fetch(&_10$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 405); + ZEPHIR_OBS_NVAR(&columns); + zephir_array_fetch_string(&columns, &_10$$5, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 405); + zephir_array_fetch(&_11$$5, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 406); + ZEPHIR_OBS_NVAR(&referencedColumns); + zephir_array_fetch_string(&referencedColumns, &_11$$5, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 406); + } + zephir_array_fetch_long(&_12$$3, &reference, 3, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 409); + zephir_array_append(&columns, &_12$$3, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 409); + zephir_array_fetch_long(&_13$$3, &reference, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 410); + zephir_array_append(&referencedColumns, &_13$$3, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 410); + ZEPHIR_INIT_NVAR(&_14$$3); + zephir_create_array(&_14$$3, 4, 0); + zephir_array_update_string(&_14$$3, SL("referencedSchema"), &referencedSchema, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_14$$3, SL("referencedTable"), &referencedTable, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_14$$3, SL("columns"), &columns, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_14$$3, SL("referencedColumns"), &referencedColumns, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&references, &constraintName, &_14$$3, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_5, &_0, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_5)) { + break; + } + ZEPHIR_CALL_METHOD(&number, &_0, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&reference, &_0, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&constraintName); + ZEPHIR_CONCAT_SV(&constraintName, "foreign_key_", &number); + if (!(zephir_array_isset(&references, &constraintName))) { + ZEPHIR_INIT_NVAR(&referencedSchema); + ZVAL_NULL(&referencedSchema); + ZEPHIR_OBS_NVAR(&referencedTable); + zephir_array_fetch_long(&referencedTable, &reference, 2, PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 399); + ZEPHIR_INIT_NVAR(&columns); + array_init(&columns); + ZEPHIR_INIT_NVAR(&referencedColumns); + array_init(&referencedColumns); + } else { + zephir_array_fetch(&_15$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 403); + ZEPHIR_OBS_NVAR(&referencedSchema); + zephir_array_fetch_string(&referencedSchema, &_15$$8, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 403); + zephir_array_fetch(&_16$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 404); + ZEPHIR_OBS_NVAR(&referencedTable); + zephir_array_fetch_string(&referencedTable, &_16$$8, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 404); + zephir_array_fetch(&_17$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 405); + ZEPHIR_OBS_NVAR(&columns); + zephir_array_fetch_string(&columns, &_17$$8, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 405); + zephir_array_fetch(&_18$$8, &references, &constraintName, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 406); + ZEPHIR_OBS_NVAR(&referencedColumns); + zephir_array_fetch_string(&referencedColumns, &_18$$8, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 406); + } + zephir_array_fetch_long(&_19$$6, &reference, 3, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 409); + zephir_array_append(&columns, &_19$$6, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 409); + zephir_array_fetch_long(&_20$$6, &reference, 4, PH_NOISY | PH_READONLY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 410); + zephir_array_append(&referencedColumns, &_20$$6, PH_SEPARATE, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 410); + ZEPHIR_INIT_NVAR(&_21$$6); + zephir_create_array(&_21$$6, 4, 0); + zephir_array_update_string(&_21$$6, SL("referencedSchema"), &referencedSchema, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_21$$6, SL("referencedTable"), &referencedTable, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_21$$6, SL("columns"), &columns, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_21$$6, SL("referencedColumns"), &referencedColumns, PH_COPY | PH_SEPARATE); + zephir_array_update_zval(&references, &constraintName, &_21$$6, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&reference); + ZEPHIR_INIT_NVAR(&number); + ZEPHIR_INIT_VAR(&referenceObjects); + array_init(&referenceObjects); + zephir_is_iterable(&references, 0, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 434); + if (Z_TYPE_P(&references) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&references), _24, _25, _22) + { + ZEPHIR_INIT_NVAR(&name); + if (_25 != NULL) { + ZVAL_STR_COPY(&name, _25); + } else { + ZVAL_LONG(&name, _24); + } + ZEPHIR_INIT_NVAR(&arrayReference); + ZVAL_COPY(&arrayReference, _22); + ZEPHIR_INIT_NVAR(&_26$$9); + object_init_ex(&_26$$9, phalcon_db_reference_ce); + ZEPHIR_INIT_NVAR(&_27$$9); + zephir_create_array(&_27$$9, 4, 0); + ZEPHIR_OBS_NVAR(&_28$$9); + zephir_array_fetch_string(&_28$$9, &arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 426); + zephir_array_update_string(&_27$$9, SL("referencedSchema"), &_28$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_28$$9); + zephir_array_fetch_string(&_28$$9, &arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 427); + zephir_array_update_string(&_27$$9, SL("referencedTable"), &_28$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_28$$9); + zephir_array_fetch_string(&_28$$9, &arrayReference, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 428); + zephir_array_update_string(&_27$$9, SL("columns"), &_28$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_28$$9); + zephir_array_fetch_string(&_28$$9, &arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 430); + zephir_array_update_string(&_27$$9, SL("referencedColumns"), &_28$$9, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &_26$$9, "__construct", &_29, 33, &name, &_27$$9); + zephir_check_call_status(); + zephir_array_update_zval(&referenceObjects, &name, &_26$$9, PH_COPY | PH_SEPARATE); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &references, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_23, &references, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_23)) { + break; + } + ZEPHIR_CALL_METHOD(&name, &references, "key", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&arrayReference, &references, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_30$$10); + object_init_ex(&_30$$10, phalcon_db_reference_ce); + ZEPHIR_INIT_NVAR(&_31$$10); + zephir_create_array(&_31$$10, 4, 0); + ZEPHIR_OBS_NVAR(&_32$$10); + zephir_array_fetch_string(&_32$$10, &arrayReference, SL("referencedSchema"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 426); + zephir_array_update_string(&_31$$10, SL("referencedSchema"), &_32$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_32$$10); + zephir_array_fetch_string(&_32$$10, &arrayReference, SL("referencedTable"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 427); + zephir_array_update_string(&_31$$10, SL("referencedTable"), &_32$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_32$$10); + zephir_array_fetch_string(&_32$$10, &arrayReference, SL("columns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 428); + zephir_array_update_string(&_31$$10, SL("columns"), &_32$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_NVAR(&_32$$10); + zephir_array_fetch_string(&_32$$10, &arrayReference, SL("referencedColumns"), PH_NOISY, "phalcon/Db/Adapter/Pdo/Sqlite.zep", 430); + zephir_array_update_string(&_31$$10, SL("referencedColumns"), &_32$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &_30$$10, "__construct", &_29, 33, &name, &_31$$10); + zephir_check_call_status(); + zephir_array_update_zval(&referenceObjects, &name, &_30$$10, PH_COPY | PH_SEPARATE); + ZEPHIR_CALL_METHOD(NULL, &references, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&arrayReference); + ZEPHIR_INIT_NVAR(&name); + RETURN_CCTOR(&referenceObjects); } -static PHP_METHOD(Phalcon_Security_JWT_Builder, setNotBefore) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, getDefaultValue) { + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *timestamp_param = NULL, _0, _1, _2; - zend_long timestamp, ZEPHIR_LAST_CALL_STATUS; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(timestamp) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, ×tamp_param); - if (UNEXPECTED(Z_TYPE_P(timestamp_param) != IS_LONG)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'timestamp' must be of the type int")); - RETURN_MM_NULL(); - } - timestamp = Z_LVAL_P(timestamp_param); - + object_init_ex(return_value, phalcon_db_rawvalue_ce); ZEPHIR_INIT_VAR(&_0); - zephir_time(&_0); - if (ZEPHIR_LT_LONG(&_0, timestamp)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Invalid Not Before", "phalcon/Security/JWT/Builder.zep", 352); - return; - } - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "nbf"); - ZVAL_LONG(&_2, timestamp); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "setclaim", NULL, 0, &_1, &_2); + ZVAL_STRING(&_0, "NULL"); + ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 34, &_0); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Security_JWT_Builder, setSubject) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, useExplicitIdValue) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *subject_param = NULL, _0; - zval subject; zval *this_ptr = getThis(); - ZVAL_UNDEF(&subject); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(subject) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &subject_param); - if (UNEXPECTED(Z_TYPE_P(subject_param) != IS_STRING && Z_TYPE_P(subject_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'subject' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(subject_param) == IS_STRING)) { - zephir_get_strval(&subject, subject_param); - } else { - ZEPHIR_INIT_VAR(&subject); - } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "sub"); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "setclaim", NULL, 0, &_0, &subject); - zephir_check_call_status(); - RETURN_MM(); + RETURN_BOOL(1); } -static PHP_METHOD(Phalcon_Security_JWT_Builder, setPassphrase) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, supportsDefaultValue) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *passphrase_param = NULL, _0, _1, _2, _3; - zval passphrase; zval *this_ptr = getThis(); - ZVAL_UNDEF(&passphrase); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(passphrase) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &passphrase_param); - if (UNEXPECTED(Z_TYPE_P(passphrase_param) != IS_STRING && Z_TYPE_P(passphrase_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'passphrase' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(passphrase_param) == IS_STRING)) { - zephir_get_strval(&passphrase, passphrase_param); - } else { - ZEPHIR_INIT_VAR(&passphrase); - } - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "/(?=^.{16,}$)((?=.*\\d)|(?=.*\\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$/"); - ZEPHIR_INIT_VAR(&_2); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "/(?=^.{16,}$)((?=.*\\d)|(?=.*\\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$/"); - zephir_preg_match(&_2, &_3, &passphrase, &_0, 0, 0 , 0 ); - if (!(zephir_is_true(&_2))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Invalid passphrase (too weak)", "phalcon/Security/JWT/Builder.zep", 390); - return; - } - zephir_update_property_zval(this_ptr, ZEND_STRL("passphrase"), &passphrase); - RETURN_THIS(); + RETURN_BOOL(0); } -static PHP_METHOD(Phalcon_Security_JWT_Builder, setClaim) +static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Sqlite, getDsnDefaults) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, *value, value_sub, _0; - zval name; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(name) - Z_PARAM_ZVAL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &name_param, &value); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - zephir_read_property(&_0, this_ptr, ZEND_STRL("claims"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_0, "set", NULL, 0, &name, value); - zephir_check_call_status(); - RETURN_THIS(); + array_init(return_value); + return; } @@ -195089,3766 +193227,4725 @@ static PHP_METHOD(Phalcon_Security_JWT_Builder, setClaim) -ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Validator) +ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Mysql) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Security\\JWT, Validator, phalcon, security_jwt_validator, phalcon_security_jwt_validator_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Mysql, phalcon, db_dialect_mysql, phalcon_db_dialect_ce, phalcon_db_dialect_mysql_method_entry, 0); - zend_declare_property_long(phalcon_security_jwt_validator_ce, SL("timeShift"), 0, ZEND_ACC_PRIVATE); - zend_declare_property_null(phalcon_security_jwt_validator_ce, SL("token"), ZEND_ACC_PRIVATE); + zend_declare_property_string(phalcon_db_dialect_mysql_ce, SL("escapeChar"), "`", ZEND_ACC_PROTECTED); return SUCCESS; } -static PHP_METHOD(Phalcon_Security_JWT_Validator, __construct) -{ - zend_long timeShift; - zval *token, token_sub, *timeShift_param = NULL, _0; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&token_sub); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_OBJECT_OF_CLASS(token, phalcon_security_jwt_token_token_ce) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(timeShift) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 1, &token, &timeShift_param); - if (!timeShift_param) { - timeShift = 0; - } else { - timeShift = zephir_get_intval(timeShift_param); - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("token"), token); - ZEPHIR_INIT_ZVAL_NREF(_0); - ZVAL_LONG(&_0, timeShift); - zephir_update_property_zval(this_ptr, ZEND_STRL("timeShift"), &_0); -} - -static PHP_METHOD(Phalcon_Security_JWT_Validator, setToken) -{ - zval *token, token_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&token_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(token, phalcon_security_jwt_token_token_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &token); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("token"), token); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Security_JWT_Validator, validateAudience) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, addColumn) { + zend_bool _6$$5, _7$$5, _8$$5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *audience_param = NULL, _0, _1, _2, _3, _4; - zval audience; + zval *tableName_param = NULL, *schemaName_param = NULL, *column, column_sub, afterPosition, defaultValue, upperDefaultValue, _0, _1, _2, _3, _4, _5, _14, _15, _9$$5, _10$$6, _11$$7, _12$$7, _13$$7, _16$$11; + zval tableName, schemaName, sql; zval *this_ptr = getThis(); - ZVAL_UNDEF(&audience); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(&afterPosition); + ZVAL_UNDEF(&defaultValue); + ZVAL_UNDEF(&upperDefaultValue); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_15); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_10$$6); + ZVAL_UNDEF(&_11$$7); + ZVAL_UNDEF(&_12$$7); + ZVAL_UNDEF(&_13$$7); + ZVAL_UNDEF(&_16$$11); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(audience) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &audience_param); - if (UNEXPECTED(Z_TYPE_P(audience_param) != IS_STRING && Z_TYPE_P(audience_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'audience' must be of the type string")); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(audience_param) == IS_STRING)) { - zephir_get_strval(&audience, audience_param); + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_INIT_VAR(&audience); + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("token"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "getclaims", NULL, 0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1, column, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_2, this_ptr, "getcolumndefinition", NULL, 0, column); zephir_check_call_status(); ZEPHIR_INIT_VAR(&_3); - array_init(&_3); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "aud"); - ZEPHIR_CALL_METHOD(&_2, &_1, "get", NULL, 0, &_4, &_3); + ZEPHIR_CONCAT_SVSVSV(&_3, "ALTER TABLE ", &_0, " ADD `", &_1, "` ", &_2); + zephir_get_strval(&sql, &_3); + ZEPHIR_CALL_METHOD(&_4, column, "isnotnull", NULL, 0); zephir_check_call_status(); - if (!(zephir_fast_in_array(&audience, &_2))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Validation: audience not allowed", "phalcon/Security/JWT/Validator.zep", 71); - return; + if (zephir_is_true(&_4)) { + zephir_concat_self_str(&sql, " NOT NULL", sizeof(" NOT NULL") - 1); + } else { + zephir_concat_self_str(&sql, " NULL", sizeof(" NULL") - 1); + } + ZEPHIR_CALL_METHOD(&_5, column, "hasdefault", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_5)) { + ZEPHIR_CALL_METHOD(&defaultValue, column, "getdefault", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&upperDefaultValue); + zephir_fast_strtoupper(&upperDefaultValue, &defaultValue); + _6$$5 = zephir_memnstr_str(&upperDefaultValue, SL("CURRENT_TIMESTAMP"), "phalcon/Db/Dialect/Mysql.zep", 54); + if (!(_6$$5)) { + _6$$5 = zephir_memnstr_str(&upperDefaultValue, SL("NULL"), "phalcon/Db/Dialect/Mysql.zep", 54); + } + _7$$5 = _6$$5; + if (!(_7$$5)) { + _7$$5 = Z_TYPE_P(&defaultValue) == IS_LONG; + } + _8$$5 = _7$$5; + if (!(_8$$5)) { + ZEPHIR_CALL_FUNCTION(&_9$$5, "is_float", NULL, 213, &defaultValue); + zephir_check_call_status(); + _8$$5 = zephir_is_true(&_9$$5); + } + if (_8$$5) { + ZEPHIR_INIT_VAR(&_10$$6); + ZEPHIR_CONCAT_SV(&_10$$6, " DEFAULT ", &defaultValue); + zephir_concat_self(&sql, &_10$$6); + } else { + ZEPHIR_INIT_VAR(&_11$$7); + ZVAL_STRING(&_11$$7, "\""); + ZEPHIR_CALL_FUNCTION(&_12$$7, "addcslashes", NULL, 214, &defaultValue, &_11$$7); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_13$$7); + ZEPHIR_CONCAT_SVS(&_13$$7, " DEFAULT \"", &_12$$7, "\""); + zephir_concat_self(&sql, &_13$$7); + } + } + ZEPHIR_CALL_METHOD(&_14, column, "isautoincrement", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_14)) { + zephir_concat_self_str(&sql, " AUTO_INCREMENT", sizeof(" AUTO_INCREMENT") - 1); + } + ZEPHIR_CALL_METHOD(&_15, column, "isfirst", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_15)) { + zephir_concat_self_str(&sql, " FIRST", sizeof(" FIRST") - 1); + } else { + ZEPHIR_CALL_METHOD(&afterPosition, column, "getafterposition", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&afterPosition)) { + ZEPHIR_INIT_VAR(&_16$$11); + ZEPHIR_CONCAT_SVS(&_16$$11, " AFTER `", &afterPosition, "`"); + zephir_concat_self(&sql, &_16$$11); + } } - RETURN_THIS(); + RETURN_CTOR(&sql); } -static PHP_METHOD(Phalcon_Security_JWT_Validator, validateExpiration) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, addForeignKey) { - zend_bool _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *timestamp_param = NULL, _0, _1, _2, _3, _5, _6, _7, _8; - zend_long timestamp, ZEPHIR_LAST_CALL_STATUS; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, *reference, reference_sub, onDelete, onUpdate, _0, _1, _2, _5, _6, _7, _8, _9, _10, _11, _12, _3$$3, _4$$3, _13$$4, _14$$5; + zval tableName, schemaName, sql; zval *this_ptr = getThis(); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&reference_sub); + ZVAL_UNDEF(&onDelete); + ZVAL_UNDEF(&onUpdate); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); ZVAL_UNDEF(&_5); ZVAL_UNDEF(&_6); ZVAL_UNDEF(&_7); ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_13$$4); + ZVAL_UNDEF(&_14$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(timestamp) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(reference, phalcon_db_referenceinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, ×tamp_param); - timestamp = zephir_get_intval(timestamp_param); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &reference); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("token"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "getclaims", NULL, 0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "exp"); - ZEPHIR_CALL_METHOD(&_2, &_1, "has", NULL, 0, &_3); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_CONCAT_SVS(&_1, "ALTER TABLE ", &_0, " ADD"); + zephir_get_strval(&sql, &_1); + ZEPHIR_CALL_METHOD(&_2, reference, "getname", NULL, 0); zephir_check_call_status(); - _4 = zephir_is_true(&_2); - if (_4) { - ZVAL_LONG(&_6, timestamp); - ZEPHIR_CALL_METHOD(&_5, this_ptr, "gettimestamp", NULL, 0, &_6); - zephir_check_call_status(); - zephir_read_property(&_6, this_ptr, ZEND_STRL("token"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_7, &_6, "getclaims", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "exp"); - ZEPHIR_CALL_METHOD(&_8, &_7, "get", NULL, 0, &_3); + if (zephir_is_true(&_2)) { + ZEPHIR_CALL_METHOD(&_3$$3, reference, "getname", NULL, 0); zephir_check_call_status(); - _4 = ZEPHIR_GE_LONG(&_5, zephir_get_intval(&_8)); + ZEPHIR_INIT_VAR(&_4$$3); + ZEPHIR_CONCAT_SVS(&_4$$3, " CONSTRAINT `", &_3$$3, "`"); + zephir_concat_self(&sql, &_4$$3); } - if (_4) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Validation: the token has expired", "phalcon/Security/JWT/Validator.zep", 91); - return; + ZEPHIR_CALL_METHOD(&_6, reference, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "getcolumnlist", NULL, 67, &_6); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_8, reference, "getreferencedtable", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_9, reference, "getreferencedschema", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_7, this_ptr, "preparetable", NULL, 0, &_8, &_9); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_11, reference, "getreferencedcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_10, this_ptr, "getcolumnlist", NULL, 67, &_11); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_12); + ZEPHIR_CONCAT_SVSVSVS(&_12, " FOREIGN KEY (", &_5, ") REFERENCES ", &_7, "(", &_10, ")"); + zephir_concat_self(&sql, &_12); + ZEPHIR_CALL_METHOD(&onDelete, reference, "getondelete", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&onDelete))) { + ZEPHIR_INIT_VAR(&_13$$4); + ZEPHIR_CONCAT_SV(&_13$$4, " ON DELETE ", &onDelete); + zephir_concat_self(&sql, &_13$$4); } - RETURN_THIS(); + ZEPHIR_CALL_METHOD(&onUpdate, reference, "getonupdate", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&onUpdate))) { + ZEPHIR_INIT_VAR(&_14$$5); + ZEPHIR_CONCAT_SV(&_14$$5, " ON UPDATE ", &onUpdate); + zephir_concat_self(&sql, &_14$$5); + } + RETURN_CTOR(&sql); } -static PHP_METHOD(Phalcon_Security_JWT_Validator, validateId) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, addIndex) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *id_param = NULL, _0, _1, _2, _3; - zval id, _4; + zval *tableName_param = NULL, *schemaName_param = NULL, *index, index_sub, indexType, _0, _1, _3, _4, _5, _6, _2$$3; + zval tableName, schemaName, sql; zval *this_ptr = getThis(); - ZVAL_UNDEF(&id); - ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&index_sub); + ZVAL_UNDEF(&indexType); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_2$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(id) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(index, phalcon_db_indexinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &id_param); - if (UNEXPECTED(Z_TYPE_P(id_param) != IS_STRING && Z_TYPE_P(id_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'id' must be of the type string")); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(id_param) == IS_STRING)) { - zephir_get_strval(&id, id_param); + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_INIT_VAR(&id); + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("token"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "getclaims", NULL, 0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "jti"); - ZEPHIR_CALL_METHOD(&_2, &_1, "get", NULL, 0, &_3); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_CONCAT_SV(&_1, "ALTER TABLE ", &_0); + zephir_get_strval(&sql, &_1); + ZEPHIR_CALL_METHOD(&indexType, index, "gettype", NULL, 0); zephir_check_call_status(); - zephir_cast_to_string(&_4, &_2); - if (!ZEPHIR_IS_IDENTICAL(&id, &_4)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Validation: incorrect Id", "phalcon/Security/JWT/Validator.zep", 108); - return; + if (!(ZEPHIR_IS_EMPTY(&indexType))) { + ZEPHIR_INIT_VAR(&_2$$3); + ZEPHIR_CONCAT_SVS(&_2$$3, " ADD ", &indexType, " INDEX "); + zephir_concat_self(&sql, &_2$$3); + } else { + zephir_concat_self_str(&sql, " ADD INDEX ", sizeof(" ADD INDEX ") - 1); } - RETURN_THIS(); + ZEPHIR_CALL_METHOD(&_3, index, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_5, index, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_4, this_ptr, "getcolumnlist", NULL, 67, &_5); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_6); + ZEPHIR_CONCAT_SVSVS(&_6, "`", &_3, "` (", &_4, ")"); + zephir_concat_self(&sql, &_6); + RETURN_CTOR(&sql); } -static PHP_METHOD(Phalcon_Security_JWT_Validator, validateIssuedAt) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, addPrimaryKey) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *timestamp_param = NULL, _0, _1, _2, _3, _4; - zend_long timestamp, ZEPHIR_LAST_CALL_STATUS; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, *index, index_sub, _0, _1, _2; + zval tableName, schemaName; zval *this_ptr = getThis(); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&index_sub); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(timestamp) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(index, phalcon_db_indexinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, ×tamp_param); - timestamp = zephir_get_intval(timestamp_param); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } - ZVAL_LONG(&_1, timestamp); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "gettimestamp", NULL, 0, &_1); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("token"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_2, &_1, "getclaims", NULL, 0); + ZEPHIR_CALL_METHOD(&_2, index, "getcolumns", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "iat"); - ZEPHIR_CALL_METHOD(&_3, &_2, "get", NULL, 0, &_4); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getcolumnlist", NULL, 67, &_2); zephir_check_call_status(); - if (ZEPHIR_LE_LONG(&_0, zephir_get_intval(&_3))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Validation: the token cannot be used yet (future)", "phalcon/Security/JWT/Validator.zep", 125); - return; - } - RETURN_THIS(); + ZEPHIR_CONCAT_SVSVS(return_value, "ALTER TABLE ", &_0, " ADD PRIMARY KEY (", &_1, ")"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Security_JWT_Validator, validateIssuer) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, createTable) { + zend_bool _9$$10, _10$$10, _11$$10, _28$$19, _29$$19, _30$$19; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_6 = NULL, *_13 = NULL, *_17 = NULL, *_45 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *issuer_param = NULL, _0, _1, _2, _3; - zval issuer, _4; + zval definition, createLines; + zval *tableName_param = NULL, *schemaName_param = NULL, *definition_param = NULL, temporary, options, table, columns, column, indexes, index, reference, references, indexName, columnLine, indexType, onDelete, onUpdate, defaultValue, upperDefaultValue, *_2, _3, _86, _87, _0$$5, _1$$6, _4$$7, _5$$7, _7$$7, _8$$7, _19$$7, _20$$7, _21$$7, _12$$10, _14$$11, _15$$12, _16$$12, _18$$12, _22$$15, _23$$15, _24$$16, _25$$16, _26$$16, _27$$16, _36$$16, _37$$16, _38$$16, _31$$19, _32$$20, _33$$21, _34$$21, _35$$21, _39$$24, _40$$24, *_41$$25, _42$$25, _43$$27, _44$$27, _46$$27, _47$$29, _48$$29, _49$$29, _50$$30, _51$$30, _52$$30, _53$$32, _54$$32, _55$$32, _56$$34, _57$$34, _58$$34, _59$$35, _60$$35, _61$$35, *_62$$36, _63$$36, _64$$37, _65$$37, _66$$37, _67$$37, _68$$37, _69$$37, _70$$37, _71$$37, _72$$37, _73$$38, _74$$39, _75$$40, _76$$40, _77$$40, _78$$40, _79$$40, _80$$40, _81$$40, _82$$40, _83$$40, _84$$41, _85$$42, _88$$43, _89$$43; + zval tableName, schemaName, indexSql, referenceSql, sql; zval *this_ptr = getThis(); - ZVAL_UNDEF(&issuer); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&indexSql); + ZVAL_UNDEF(&referenceSql); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&temporary); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&column); + ZVAL_UNDEF(&indexes); + ZVAL_UNDEF(&index); + ZVAL_UNDEF(&reference); + ZVAL_UNDEF(&references); + ZVAL_UNDEF(&indexName); + ZVAL_UNDEF(&columnLine); + ZVAL_UNDEF(&indexType); + ZVAL_UNDEF(&onDelete); + ZVAL_UNDEF(&onUpdate); + ZVAL_UNDEF(&defaultValue); + ZVAL_UNDEF(&upperDefaultValue); ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_86); + ZVAL_UNDEF(&_87); + ZVAL_UNDEF(&_0$$5); + ZVAL_UNDEF(&_1$$6); + ZVAL_UNDEF(&_4$$7); + ZVAL_UNDEF(&_5$$7); + ZVAL_UNDEF(&_7$$7); + ZVAL_UNDEF(&_8$$7); + ZVAL_UNDEF(&_19$$7); + ZVAL_UNDEF(&_20$$7); + ZVAL_UNDEF(&_21$$7); + ZVAL_UNDEF(&_12$$10); + ZVAL_UNDEF(&_14$$11); + ZVAL_UNDEF(&_15$$12); + ZVAL_UNDEF(&_16$$12); + ZVAL_UNDEF(&_18$$12); + ZVAL_UNDEF(&_22$$15); + ZVAL_UNDEF(&_23$$15); + ZVAL_UNDEF(&_24$$16); + ZVAL_UNDEF(&_25$$16); + ZVAL_UNDEF(&_26$$16); + ZVAL_UNDEF(&_27$$16); + ZVAL_UNDEF(&_36$$16); + ZVAL_UNDEF(&_37$$16); + ZVAL_UNDEF(&_38$$16); + ZVAL_UNDEF(&_31$$19); + ZVAL_UNDEF(&_32$$20); + ZVAL_UNDEF(&_33$$21); + ZVAL_UNDEF(&_34$$21); + ZVAL_UNDEF(&_35$$21); + ZVAL_UNDEF(&_39$$24); + ZVAL_UNDEF(&_40$$24); + ZVAL_UNDEF(&_42$$25); + ZVAL_UNDEF(&_43$$27); + ZVAL_UNDEF(&_44$$27); + ZVAL_UNDEF(&_46$$27); + ZVAL_UNDEF(&_47$$29); + ZVAL_UNDEF(&_48$$29); + ZVAL_UNDEF(&_49$$29); + ZVAL_UNDEF(&_50$$30); + ZVAL_UNDEF(&_51$$30); + ZVAL_UNDEF(&_52$$30); + ZVAL_UNDEF(&_53$$32); + ZVAL_UNDEF(&_54$$32); + ZVAL_UNDEF(&_55$$32); + ZVAL_UNDEF(&_56$$34); + ZVAL_UNDEF(&_57$$34); + ZVAL_UNDEF(&_58$$34); + ZVAL_UNDEF(&_59$$35); + ZVAL_UNDEF(&_60$$35); + ZVAL_UNDEF(&_61$$35); + ZVAL_UNDEF(&_63$$36); + ZVAL_UNDEF(&_64$$37); + ZVAL_UNDEF(&_65$$37); + ZVAL_UNDEF(&_66$$37); + ZVAL_UNDEF(&_67$$37); + ZVAL_UNDEF(&_68$$37); + ZVAL_UNDEF(&_69$$37); + ZVAL_UNDEF(&_70$$37); + ZVAL_UNDEF(&_71$$37); + ZVAL_UNDEF(&_72$$37); + ZVAL_UNDEF(&_73$$38); + ZVAL_UNDEF(&_74$$39); + ZVAL_UNDEF(&_75$$40); + ZVAL_UNDEF(&_76$$40); + ZVAL_UNDEF(&_77$$40); + ZVAL_UNDEF(&_78$$40); + ZVAL_UNDEF(&_79$$40); + ZVAL_UNDEF(&_80$$40); + ZVAL_UNDEF(&_81$$40); + ZVAL_UNDEF(&_82$$40); + ZVAL_UNDEF(&_83$$40); + ZVAL_UNDEF(&_84$$41); + ZVAL_UNDEF(&_85$$42); + ZVAL_UNDEF(&_88$$43); + ZVAL_UNDEF(&_89$$43); + ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&createLines); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(issuer) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_ARRAY(definition) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &issuer_param); - if (UNEXPECTED(Z_TYPE_P(issuer_param) != IS_STRING && Z_TYPE_P(issuer_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'issuer' must be of the type string")); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &definition_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(issuer_param) == IS_STRING)) { - zephir_get_strval(&issuer, issuer_param); + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_INIT_VAR(&issuer); + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); } + ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("token"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "getclaims", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "iss"); - ZEPHIR_CALL_METHOD(&_2, &_1, "get", NULL, 0, &_3); - zephir_check_call_status(); - zephir_cast_to_string(&_4, &_2); - if (!ZEPHIR_IS_IDENTICAL(&issuer, &_4)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Validation: incorrect issuer", "phalcon/Security/JWT/Validator.zep", 142); + ZEPHIR_OBS_VAR(&columns); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&columns, &definition, SL("columns"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/Db/Dialect/Mysql.zep", 151); return; } - RETURN_THIS(); + ZEPHIR_CALL_METHOD(&table, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&temporary); + ZVAL_BOOL(&temporary, 0); + ZEPHIR_OBS_VAR(&options); + if (zephir_array_isset_string_fetch(&options, &definition, SL("options"), 0)) { + ZEPHIR_OBS_NVAR(&temporary); + zephir_array_isset_string_fetch(&temporary, &options, SL("temporary"), 0); + } + if (zephir_is_true(&temporary)) { + ZEPHIR_INIT_VAR(&_0$$5); + ZEPHIR_CONCAT_SVS(&_0$$5, "CREATE TEMPORARY TABLE ", &table, " (\n\t"); + zephir_get_strval(&sql, &_0$$5); + } else { + ZEPHIR_INIT_VAR(&_1$$6); + ZEPHIR_CONCAT_SVS(&_1$$6, "CREATE TABLE ", &table, " (\n\t"); + zephir_get_strval(&sql, &_1$$6); + } + ZEPHIR_INIT_VAR(&createLines); + array_init(&createLines); + zephir_is_iterable(&columns, 0, "phalcon/Db/Dialect/Mysql.zep", 228); + if (Z_TYPE_P(&columns) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&columns), _2) + { + ZEPHIR_INIT_NVAR(&column); + ZVAL_COPY(&column, _2); + ZEPHIR_CALL_METHOD(&_4$$7, &column, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_5$$7, this_ptr, "getcolumndefinition", &_6, 0, &column); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&columnLine); + ZEPHIR_CONCAT_SVSV(&columnLine, "`", &_4$$7, "` ", &_5$$7); + ZEPHIR_CALL_METHOD(&_7$$7, &column, "isnotnull", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_7$$7)) { + zephir_concat_self_str(&columnLine, SL(" NOT NULL")); + } else { + zephir_concat_self_str(&columnLine, SL(" NULL")); + } + ZEPHIR_CALL_METHOD(&_8$$7, &column, "hasdefault", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_8$$7)) { + ZEPHIR_CALL_METHOD(&defaultValue, &column, "getdefault", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&upperDefaultValue); + zephir_fast_strtoupper(&upperDefaultValue, &defaultValue); + _9$$10 = zephir_memnstr_str(&upperDefaultValue, SL("CURRENT_TIMESTAMP"), "phalcon/Db/Dialect/Mysql.zep", 194); + if (!(_9$$10)) { + _9$$10 = zephir_memnstr_str(&upperDefaultValue, SL("NULL"), "phalcon/Db/Dialect/Mysql.zep", 194); + } + _10$$10 = _9$$10; + if (!(_10$$10)) { + _10$$10 = Z_TYPE_P(&defaultValue) == IS_LONG; + } + _11$$10 = _10$$10; + if (!(_11$$10)) { + ZEPHIR_CALL_FUNCTION(&_12$$10, "is_float", &_13, 213, &defaultValue); + zephir_check_call_status(); + _11$$10 = zephir_is_true(&_12$$10); + } + if (_11$$10) { + ZEPHIR_INIT_NVAR(&_14$$11); + ZEPHIR_CONCAT_SV(&_14$$11, " DEFAULT ", &defaultValue); + zephir_concat_self(&columnLine, &_14$$11); + } else { + ZEPHIR_INIT_NVAR(&_15$$12); + ZVAL_STRING(&_15$$12, "\""); + ZEPHIR_CALL_FUNCTION(&_16$$12, "addcslashes", &_17, 214, &defaultValue, &_15$$12); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_18$$12); + ZEPHIR_CONCAT_SVS(&_18$$12, " DEFAULT \"", &_16$$12, "\""); + zephir_concat_self(&columnLine, &_18$$12); + } + } + ZEPHIR_CALL_METHOD(&_19$$7, &column, "isautoincrement", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_19$$7)) { + zephir_concat_self_str(&columnLine, SL(" AUTO_INCREMENT")); + } + ZEPHIR_CALL_METHOD(&_20$$7, &column, "isprimary", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_20$$7)) { + zephir_concat_self_str(&columnLine, SL(" PRIMARY KEY")); + } + ZEPHIR_CALL_METHOD(&_21$$7, &column, "getcomment", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_21$$7)) { + ZEPHIR_CALL_METHOD(&_22$$15, &column, "getcomment", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_23$$15); + ZEPHIR_CONCAT_SVS(&_23$$15, " COMMENT '", &_22$$15, "'"); + zephir_concat_self(&columnLine, &_23$$15); + } + zephir_array_append(&createLines, &columnLine, PH_SEPARATE, "phalcon/Db/Dialect/Mysql.zep", 222); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &columns, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3, &columns, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3)) { + break; + } + ZEPHIR_CALL_METHOD(&column, &columns, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_24$$16, &column, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_25$$16, this_ptr, "getcolumndefinition", &_6, 0, &column); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&columnLine); + ZEPHIR_CONCAT_SVSV(&columnLine, "`", &_24$$16, "` ", &_25$$16); + ZEPHIR_CALL_METHOD(&_26$$16, &column, "isnotnull", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_26$$16)) { + zephir_concat_self_str(&columnLine, SL(" NOT NULL")); + } else { + zephir_concat_self_str(&columnLine, SL(" NULL")); + } + ZEPHIR_CALL_METHOD(&_27$$16, &column, "hasdefault", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_27$$16)) { + ZEPHIR_CALL_METHOD(&defaultValue, &column, "getdefault", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&upperDefaultValue); + zephir_fast_strtoupper(&upperDefaultValue, &defaultValue); + _28$$19 = zephir_memnstr_str(&upperDefaultValue, SL("CURRENT_TIMESTAMP"), "phalcon/Db/Dialect/Mysql.zep", 194); + if (!(_28$$19)) { + _28$$19 = zephir_memnstr_str(&upperDefaultValue, SL("NULL"), "phalcon/Db/Dialect/Mysql.zep", 194); + } + _29$$19 = _28$$19; + if (!(_29$$19)) { + _29$$19 = Z_TYPE_P(&defaultValue) == IS_LONG; + } + _30$$19 = _29$$19; + if (!(_30$$19)) { + ZEPHIR_CALL_FUNCTION(&_31$$19, "is_float", &_13, 213, &defaultValue); + zephir_check_call_status(); + _30$$19 = zephir_is_true(&_31$$19); + } + if (_30$$19) { + ZEPHIR_INIT_NVAR(&_32$$20); + ZEPHIR_CONCAT_SV(&_32$$20, " DEFAULT ", &defaultValue); + zephir_concat_self(&columnLine, &_32$$20); + } else { + ZEPHIR_INIT_NVAR(&_33$$21); + ZVAL_STRING(&_33$$21, "\""); + ZEPHIR_CALL_FUNCTION(&_34$$21, "addcslashes", &_17, 214, &defaultValue, &_33$$21); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_35$$21); + ZEPHIR_CONCAT_SVS(&_35$$21, " DEFAULT \"", &_34$$21, "\""); + zephir_concat_self(&columnLine, &_35$$21); + } + } + ZEPHIR_CALL_METHOD(&_36$$16, &column, "isautoincrement", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_36$$16)) { + zephir_concat_self_str(&columnLine, SL(" AUTO_INCREMENT")); + } + ZEPHIR_CALL_METHOD(&_37$$16, &column, "isprimary", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_37$$16)) { + zephir_concat_self_str(&columnLine, SL(" PRIMARY KEY")); + } + ZEPHIR_CALL_METHOD(&_38$$16, &column, "getcomment", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_38$$16)) { + ZEPHIR_CALL_METHOD(&_39$$24, &column, "getcomment", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_40$$24); + ZEPHIR_CONCAT_SVS(&_40$$24, " COMMENT '", &_39$$24, "'"); + zephir_concat_self(&columnLine, &_40$$24); + } + zephir_array_append(&createLines, &columnLine, PH_SEPARATE, "phalcon/Db/Dialect/Mysql.zep", 222); + ZEPHIR_CALL_METHOD(NULL, &columns, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&column); + ZEPHIR_OBS_VAR(&indexes); + if (zephir_array_isset_string_fetch(&indexes, &definition, SL("indexes"), 0)) { + zephir_is_iterable(&indexes, 0, "phalcon/Db/Dialect/Mysql.zep", 248); + if (Z_TYPE_P(&indexes) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&indexes), _41$$25) + { + ZEPHIR_INIT_NVAR(&index); + ZVAL_COPY(&index, _41$$25); + ZEPHIR_CALL_METHOD(&indexName, &index, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&indexType, &index, "gettype", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_STRING(&indexName, "PRIMARY")) { + ZEPHIR_CALL_METHOD(&_44$$27, &index, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_43$$27, this_ptr, "getcolumnlist", &_45, 67, &_44$$27); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_46$$27); + ZEPHIR_CONCAT_SVS(&_46$$27, "PRIMARY KEY (", &_43$$27, ")"); + zephir_get_strval(&indexSql, &_46$$27); + } else { + if (!(ZEPHIR_IS_EMPTY(&indexType))) { + ZEPHIR_CALL_METHOD(&_48$$29, &index, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_47$$29, this_ptr, "getcolumnlist", &_45, 67, &_48$$29); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_49$$29); + ZEPHIR_CONCAT_VSVSVS(&_49$$29, &indexType, " KEY `", &indexName, "` (", &_47$$29, ")"); + zephir_get_strval(&indexSql, &_49$$29); + } else { + ZEPHIR_CALL_METHOD(&_51$$30, &index, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_50$$30, this_ptr, "getcolumnlist", &_45, 67, &_51$$30); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_52$$30); + ZEPHIR_CONCAT_SVSVS(&_52$$30, "KEY `", &indexName, "` (", &_50$$30, ")"); + zephir_get_strval(&indexSql, &_52$$30); + } + } + zephir_array_append(&createLines, &indexSql, PH_SEPARATE, "phalcon/Db/Dialect/Mysql.zep", 246); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &indexes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_42$$25, &indexes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_42$$25)) { + break; + } + ZEPHIR_CALL_METHOD(&index, &indexes, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&indexName, &index, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&indexType, &index, "gettype", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_STRING(&indexName, "PRIMARY")) { + ZEPHIR_CALL_METHOD(&_54$$32, &index, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_53$$32, this_ptr, "getcolumnlist", &_45, 67, &_54$$32); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_55$$32); + ZEPHIR_CONCAT_SVS(&_55$$32, "PRIMARY KEY (", &_53$$32, ")"); + zephir_get_strval(&indexSql, &_55$$32); + } else { + if (!(ZEPHIR_IS_EMPTY(&indexType))) { + ZEPHIR_CALL_METHOD(&_57$$34, &index, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_56$$34, this_ptr, "getcolumnlist", &_45, 67, &_57$$34); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_58$$34); + ZEPHIR_CONCAT_VSVSVS(&_58$$34, &indexType, " KEY `", &indexName, "` (", &_56$$34, ")"); + zephir_get_strval(&indexSql, &_58$$34); + } else { + ZEPHIR_CALL_METHOD(&_60$$35, &index, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_59$$35, this_ptr, "getcolumnlist", &_45, 67, &_60$$35); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_61$$35); + ZEPHIR_CONCAT_SVSVS(&_61$$35, "KEY `", &indexName, "` (", &_59$$35, ")"); + zephir_get_strval(&indexSql, &_61$$35); + } + } + zephir_array_append(&createLines, &indexSql, PH_SEPARATE, "phalcon/Db/Dialect/Mysql.zep", 246); + ZEPHIR_CALL_METHOD(NULL, &indexes, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&index); + } + ZEPHIR_OBS_VAR(&references); + if (zephir_array_isset_string_fetch(&references, &definition, SL("references"), 0)) { + zephir_is_iterable(&references, 0, "phalcon/Db/Dialect/Mysql.zep", 270); + if (Z_TYPE_P(&references) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&references), _62$$36) + { + ZEPHIR_INIT_NVAR(&reference); + ZVAL_COPY(&reference, _62$$36); + ZEPHIR_CALL_METHOD(&_64$$37, &reference, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_66$$37, &reference, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_65$$37, this_ptr, "getcolumnlist", &_45, 67, &_66$$37); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_68$$37, &reference, "getreferencedtable", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_69$$37, &reference, "getreferencedschema", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_67$$37, this_ptr, "preparetable", NULL, 0, &_68$$37, &_69$$37); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_71$$37, &reference, "getreferencedcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_70$$37, this_ptr, "getcolumnlist", &_45, 67, &_71$$37); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_72$$37); + ZEPHIR_CONCAT_SVSVSSVSVS(&_72$$37, "CONSTRAINT `", &_64$$37, "` FOREIGN KEY (", &_65$$37, ")", " REFERENCES ", &_67$$37, " (", &_70$$37, ")"); + zephir_get_strval(&referenceSql, &_72$$37); + ZEPHIR_CALL_METHOD(&onDelete, &reference, "getondelete", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&onDelete))) { + ZEPHIR_INIT_NVAR(&_73$$38); + ZEPHIR_CONCAT_SV(&_73$$38, " ON DELETE ", &onDelete); + zephir_concat_self(&referenceSql, &_73$$38); + } + ZEPHIR_CALL_METHOD(&onUpdate, &reference, "getonupdate", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&onUpdate))) { + ZEPHIR_INIT_NVAR(&_74$$39); + ZEPHIR_CONCAT_SV(&_74$$39, " ON UPDATE ", &onUpdate); + zephir_concat_self(&referenceSql, &_74$$39); + } + zephir_array_append(&createLines, &referenceSql, PH_SEPARATE, "phalcon/Db/Dialect/Mysql.zep", 268); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &references, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_63$$36, &references, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_63$$36)) { + break; + } + ZEPHIR_CALL_METHOD(&reference, &references, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_75$$40, &reference, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_77$$40, &reference, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_76$$40, this_ptr, "getcolumnlist", &_45, 67, &_77$$40); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_79$$40, &reference, "getreferencedtable", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_80$$40, &reference, "getreferencedschema", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_78$$40, this_ptr, "preparetable", NULL, 0, &_79$$40, &_80$$40); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_82$$40, &reference, "getreferencedcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_81$$40, this_ptr, "getcolumnlist", &_45, 67, &_82$$40); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_83$$40); + ZEPHIR_CONCAT_SVSVSSVSVS(&_83$$40, "CONSTRAINT `", &_75$$40, "` FOREIGN KEY (", &_76$$40, ")", " REFERENCES ", &_78$$40, " (", &_81$$40, ")"); + zephir_get_strval(&referenceSql, &_83$$40); + ZEPHIR_CALL_METHOD(&onDelete, &reference, "getondelete", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&onDelete))) { + ZEPHIR_INIT_NVAR(&_84$$41); + ZEPHIR_CONCAT_SV(&_84$$41, " ON DELETE ", &onDelete); + zephir_concat_self(&referenceSql, &_84$$41); + } + ZEPHIR_CALL_METHOD(&onUpdate, &reference, "getonupdate", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&onUpdate))) { + ZEPHIR_INIT_NVAR(&_85$$42); + ZEPHIR_CONCAT_SV(&_85$$42, " ON UPDATE ", &onUpdate); + zephir_concat_self(&referenceSql, &_85$$42); + } + zephir_array_append(&createLines, &referenceSql, PH_SEPARATE, "phalcon/Db/Dialect/Mysql.zep", 268); + ZEPHIR_CALL_METHOD(NULL, &references, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&reference); + } + ZEPHIR_INIT_VAR(&_86); + zephir_fast_join_str(&_86, SL(",\n\t"), &createLines); + ZEPHIR_INIT_VAR(&_87); + ZEPHIR_CONCAT_VS(&_87, &_86, "\n)"); + zephir_concat_self(&sql, &_87); + if (zephir_array_isset_string(&definition, SL("options"))) { + ZEPHIR_CALL_METHOD(&_88$$43, this_ptr, "gettableoptions", NULL, 0, &definition); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_89$$43); + ZEPHIR_CONCAT_SV(&_89$$43, " ", &_88$$43); + zephir_concat_self(&sql, &_89$$43); + } + RETURN_CTOR(&sql); } -static PHP_METHOD(Phalcon_Security_JWT_Validator, validateNotBefore) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, createView) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *timestamp_param = NULL, _0, _1, _2, _3, _4; - zend_long timestamp, ZEPHIR_LAST_CALL_STATUS; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval definition; + zval *viewName_param = NULL, *definition_param = NULL, *schemaName_param = NULL, viewSql, _0; + zval viewName, schemaName; zval *this_ptr = getThis(); + ZVAL_UNDEF(&viewName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&viewSql); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&definition); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(timestamp) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(viewName) + Z_PARAM_ARRAY(definition) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schemaName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, ×tamp_param); - timestamp = zephir_get_intval(timestamp_param); + zephir_fetch_params(1, 2, 1, &viewName_param, &definition_param, &schemaName_param); + if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(&viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(&viewName); + } + ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + zephir_get_strval(&schemaName, schemaName_param); + } - ZVAL_LONG(&_1, timestamp); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "gettimestamp", NULL, 0, &_1); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("token"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_2, &_1, "getclaims", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "nbf"); - ZEPHIR_CALL_METHOD(&_3, &_2, "get", NULL, 0, &_4); - zephir_check_call_status(); - if (ZEPHIR_LE_LONG(&_0, zephir_get_intval(&_3))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Validation: the token cannot be used yet (not before)", "phalcon/Security/JWT/Validator.zep", 159); + ZEPHIR_OBS_VAR(&viewSql); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&viewSql, &definition, SL("sql"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/Db/Dialect/Mysql.zep", 291); return; } - RETURN_THIS(); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &viewName, &schemaName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSV(return_value, "CREATE VIEW ", &_0, " AS ", &viewSql); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Security_JWT_Validator, validateSignature) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, describeColumns) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval passphrase; - zval *signer, signer_sub, *passphrase_param = NULL, _0, _1, _2, _3, _4, _5; + zval *table_param = NULL, *schema_param = NULL, _0; + zval table, schema; zval *this_ptr = getThis(); - ZVAL_UNDEF(&signer_sub); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&passphrase); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(signer, phalcon_security_jwt_signer_signerinterface_ce) - Z_PARAM_STR(passphrase) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schema) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &signer, &passphrase_param); - zephir_get_strval(&passphrase, passphrase_param); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); + } else { + ZEPHIR_INIT_VAR(&table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); + } else { + zephir_get_strval(&schema, schema_param); + } - zephir_read_property(&_1, this_ptr, ZEND_STRL("token"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_2, &_1, "getsignature", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_3, &_2, "gethash", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_4, this_ptr, ZEND_STRL("token"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_5, &_4, "getpayload", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, signer, "verify", NULL, 0, &_3, &_5, &passphrase); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &table, &schema); zephir_check_call_status(); - if (!zephir_is_true(&_0)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_validatorexception_ce, "Validation: the signature does not match", "phalcon/Security/JWT/Validator.zep", 183); - return; - } - RETURN_THIS(); + ZEPHIR_CONCAT_SV(return_value, "SHOW FULL COLUMNS FROM ", &_0); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Security_JWT_Validator, getTimestamp) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, describeIndexes) { - zval *timestamp_param = NULL, _0; - zend_long timestamp; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *table_param = NULL, *schema_param = NULL, _0; + zval table, schema; zval *this_ptr = getThis(); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(timestamp) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schema) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, ×tamp_param); - timestamp = zephir_get_intval(timestamp_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("timeShift"), PH_NOISY_CC | PH_READONLY); - RETURN_LONG((timestamp + zephir_get_numberval(&_0))); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Exceptions_UnsupportedAlgorithmException) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Security\\JWT\\Exceptions, UnsupportedAlgorithmException, phalcon, security_jwt_exceptions_unsupportedalgorithmexception, zend_ce_exception, NULL, 0); - - zend_class_implements(phalcon_security_jwt_exceptions_unsupportedalgorithmexception_ce, 1, zend_ce_throwable); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Exceptions_ValidatorException) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Security\\JWT\\Exceptions, ValidatorException, phalcon, security_jwt_exceptions_validatorexception, zend_ce_exception, NULL, 0); - - zend_class_implements(phalcon_security_jwt_exceptions_validatorexception_ce, 1, zend_ce_throwable); - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Signer_AbstractSigner) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Security\\JWT\\Signer, AbstractSigner, phalcon, security_jwt_signer_abstractsigner, phalcon_security_jwt_signer_abstractsigner_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_null(phalcon_security_jwt_signer_abstractsigner_ce, SL("algorithm"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_security_jwt_signer_abstractsigner_ce, 1, phalcon_security_jwt_signer_signerinterface_ce); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Security_JWT_Signer_AbstractSigner, getAlgorithm) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "algorithm"); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); + } else { + ZEPHIR_INIT_VAR(&table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); + } else { + zephir_get_strval(&schema, schema_param); + } -ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Signer_Hmac) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Security\\JWT\\Signer, Hmac, phalcon, security_jwt_signer_hmac, phalcon_security_jwt_signer_abstractsigner_ce, phalcon_security_jwt_signer_hmac_method_entry, 0); - return SUCCESS; + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &table, &schema); + zephir_check_call_status(); + ZEPHIR_CONCAT_SV(return_value, "SHOW INDEXES FROM ", &_0); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Security_JWT_Signer_Hmac, __construct) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, describeReferences) { - zval supported; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *algo_param = NULL; - zval algo; + zval *table_param = NULL, *schema_param = NULL; + zval table, schema, sql, _0$$3, _1$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&algo); - ZVAL_UNDEF(&supported); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) Z_PARAM_OPTIONAL - Z_PARAM_STR(algo) + Z_PARAM_STR_OR_NULL(schema) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &algo_param); - if (!algo_param) { - ZEPHIR_INIT_VAR(&algo); - ZVAL_STRING(&algo, "sha512"); - } else { - if (UNEXPECTED(Z_TYPE_P(algo_param) != IS_STRING && Z_TYPE_P(algo_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'algo' must be of the type string")); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(algo_param) == IS_STRING)) { - zephir_get_strval(&algo, algo_param); + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); } else { - ZEPHIR_INIT_VAR(&algo); + ZEPHIR_INIT_VAR(&table); } + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); + } else { + zephir_get_strval(&schema, schema_param); } - ZEPHIR_INIT_VAR(&supported); - zephir_create_array(&supported, 3, 0); - add_assoc_long_ex(&supported, SL("sha512"), 1); - add_assoc_long_ex(&supported, SL("sha384"), 1); - add_assoc_long_ex(&supported, SL("sha256"), 1); - if (!(zephir_array_isset(&supported, &algo))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_security_jwt_exceptions_unsupportedalgorithmexception_ce, "Unsupported HMAC algorithm", "phalcon/Security/JWT/Signer/Hmac.zep", 40); - return; + ZEPHIR_INIT_VAR(&sql); + ZVAL_STRING(&sql, "SELECT DISTINCT KCU.TABLE_NAME, KCU.COLUMN_NAME, KCU.CONSTRAINT_NAME, KCU.REFERENCED_TABLE_SCHEMA, KCU.REFERENCED_TABLE_NAME, KCU.REFERENCED_COLUMN_NAME, RC.UPDATE_RULE, RC.DELETE_RULE FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS KCU LEFT JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS RC ON RC.CONSTRAINT_NAME = KCU.CONSTRAINT_NAME AND RC.CONSTRAINT_SCHEMA = KCU.CONSTRAINT_SCHEMA WHERE KCU.REFERENCED_TABLE_NAME IS NOT NULL AND "); + if (!(ZEPHIR_IS_EMPTY(&schema))) { + ZEPHIR_INIT_VAR(&_0$$3); + ZEPHIR_CONCAT_SVSVS(&_0$$3, "KCU.CONSTRAINT_SCHEMA = '", &schema, "' AND KCU.TABLE_NAME = '", &table, "'"); + zephir_concat_self(&sql, &_0$$3); + } else { + ZEPHIR_INIT_VAR(&_1$$4); + ZEPHIR_CONCAT_SVS(&_1$$4, "KCU.CONSTRAINT_SCHEMA = DATABASE() AND KCU.TABLE_NAME = '", &table, "'"); + zephir_concat_self(&sql, &_1$$4); } - zephir_update_property_zval(this_ptr, ZEND_STRL("algorithm"), &algo); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Security_JWT_Signer_Hmac, getAlgHeader) -{ - zval _0, _1, _2, _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&_0); - zephir_read_property(&_1, this_ptr, ZEND_STRL("algorithm"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "sha"); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, ""); - zephir_fast_str_replace(&_0, &_2, &_3, &_1); - ZEPHIR_CONCAT_SV(return_value, "HS", &_0); - RETURN_MM(); + RETURN_CTOR(&sql); } -static PHP_METHOD(Phalcon_Security_JWT_Signer_Hmac, sign) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, dropColumn) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *payload_param = NULL, *passphrase_param = NULL; - zval payload, passphrase; + zval *tableName_param = NULL, *schemaName_param = NULL, *columnName_param = NULL, _0; + zval tableName, schemaName, columnName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&payload); - ZVAL_UNDEF(&passphrase); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&columnName); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(payload) - Z_PARAM_STR(passphrase) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_STR(columnName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &payload_param, &passphrase_param); - if (UNEXPECTED(Z_TYPE_P(payload_param) != IS_STRING && Z_TYPE_P(payload_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'payload' must be of the type string")); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &columnName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(payload_param) == IS_STRING)) { - zephir_get_strval(&payload, payload_param); + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_INIT_VAR(&payload); + ZEPHIR_INIT_VAR(&tableName); } - if (UNEXPECTED(Z_TYPE_P(passphrase_param) != IS_STRING && Z_TYPE_P(passphrase_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'passphrase' must be of the type string")); + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(passphrase_param) == IS_STRING)) { - zephir_get_strval(&passphrase, passphrase_param); + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); } else { - ZEPHIR_INIT_VAR(&passphrase); + ZEPHIR_INIT_VAR(&schemaName); + } + if (UNEXPECTED(Z_TYPE_P(columnName_param) != IS_STRING && Z_TYPE_P(columnName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'columnName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(columnName_param) == IS_STRING)) { + zephir_get_strval(&columnName, columnName_param); + } else { + ZEPHIR_INIT_VAR(&columnName); } - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "gethash", NULL, 0, &payload, &passphrase); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "ALTER TABLE ", &_0, " DROP COLUMN `", &columnName, "`"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Security_JWT_Signer_Hmac, verify) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, dropForeignKey) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *source_param = NULL, *payload_param = NULL, *passphrase_param = NULL, _0; - zval source, payload, passphrase; + zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName_param = NULL, _0; + zval tableName, schemaName, referenceName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&payload); - ZVAL_UNDEF(&passphrase); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&referenceName); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(source) - Z_PARAM_STR(payload) - Z_PARAM_STR(passphrase) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_STR(referenceName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &source_param, &payload_param, &passphrase_param); - if (UNEXPECTED(Z_TYPE_P(source_param) != IS_STRING && Z_TYPE_P(source_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'source' must be of the type string")); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(source_param) == IS_STRING)) { - zephir_get_strval(&source, source_param); + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_INIT_VAR(&source); + ZEPHIR_INIT_VAR(&tableName); } - if (UNEXPECTED(Z_TYPE_P(payload_param) != IS_STRING && Z_TYPE_P(payload_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'payload' must be of the type string")); + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(payload_param) == IS_STRING)) { - zephir_get_strval(&payload, payload_param); + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); } else { - ZEPHIR_INIT_VAR(&payload); + ZEPHIR_INIT_VAR(&schemaName); } - if (UNEXPECTED(Z_TYPE_P(passphrase_param) != IS_STRING && Z_TYPE_P(passphrase_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'passphrase' must be of the type string")); + if (UNEXPECTED(Z_TYPE_P(referenceName_param) != IS_STRING && Z_TYPE_P(referenceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(passphrase_param) == IS_STRING)) { - zephir_get_strval(&passphrase, passphrase_param); + if (EXPECTED(Z_TYPE_P(referenceName_param) == IS_STRING)) { + zephir_get_strval(&referenceName, referenceName_param); } else { - ZEPHIR_INIT_VAR(&passphrase); + ZEPHIR_INIT_VAR(&referenceName); } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "gethash", NULL, 0, &payload, &passphrase); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); zephir_check_call_status(); - RETURN_MM_BOOL(zephir_hash_equals(&source, &_0)); + ZEPHIR_CONCAT_SVSVS(return_value, "ALTER TABLE ", &_0, " DROP FOREIGN KEY `", &referenceName, "`"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Security_JWT_Signer_Hmac, getHash) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, dropIndex) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *payload_param = NULL, *passphrase_param = NULL, __$true, _0; - zval payload, passphrase; + zval *tableName_param = NULL, *schemaName_param = NULL, *indexName_param = NULL, _0; + zval tableName, schemaName, indexName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&payload); - ZVAL_UNDEF(&passphrase); - ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&indexName); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(payload) - Z_PARAM_STR(passphrase) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_STR(indexName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &payload_param, &passphrase_param); - if (UNEXPECTED(Z_TYPE_P(payload_param) != IS_STRING && Z_TYPE_P(payload_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'payload' must be of the type string")); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &indexName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(payload_param) == IS_STRING)) { - zephir_get_strval(&payload, payload_param); + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_INIT_VAR(&payload); + ZEPHIR_INIT_VAR(&tableName); } - if (UNEXPECTED(Z_TYPE_P(passphrase_param) != IS_STRING && Z_TYPE_P(passphrase_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'passphrase' must be of the type string")); + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(passphrase_param) == IS_STRING)) { - zephir_get_strval(&passphrase, passphrase_param); + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); } else { - ZEPHIR_INIT_VAR(&passphrase); + ZEPHIR_INIT_VAR(&schemaName); + } + if (UNEXPECTED(Z_TYPE_P(indexName_param) != IS_STRING && Z_TYPE_P(indexName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'indexName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(indexName_param) == IS_STRING)) { + zephir_get_strval(&indexName, indexName_param); + } else { + ZEPHIR_INIT_VAR(&indexName); } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getalgorithm", NULL, 0); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_FUNCTION("hash_hmac", NULL, 187, &_0, &payload, &passphrase, &__$true); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "ALTER TABLE ", &_0, " DROP INDEX `", &indexName, "`"); RETURN_MM(); } - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Signer_None) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Security\\JWT\\Signer, None, phalcon, security_jwt_signer_none, phalcon_security_jwt_signer_none_method_entry, 0); - - zend_class_implements(phalcon_security_jwt_signer_none_ce, 1, phalcon_security_jwt_signer_signerinterface_ce); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Security_JWT_Signer_None, getAlgHeader) -{ - zval *this_ptr = getThis(); - - - - RETURN_STRING("none"); -} - -static PHP_METHOD(Phalcon_Security_JWT_Signer_None, getAlgorithm) -{ - zval *this_ptr = getThis(); - - - - RETURN_STRING("None"); -} - -static PHP_METHOD(Phalcon_Security_JWT_Signer_None, sign) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, dropPrimaryKey) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *payload_param = NULL, *passphrase_param = NULL; - zval payload, passphrase; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, _0; + zval tableName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&payload); - ZVAL_UNDEF(&passphrase); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(payload) - Z_PARAM_STR(passphrase) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &payload_param, &passphrase_param); - if (UNEXPECTED(Z_TYPE_P(payload_param) != IS_STRING && Z_TYPE_P(payload_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'payload' must be of the type string")); + zephir_fetch_params(1, 2, 0, &tableName_param, &schemaName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(payload_param) == IS_STRING)) { - zephir_get_strval(&payload, payload_param); + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_INIT_VAR(&payload); + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); } - zephir_get_strval(&passphrase, passphrase_param); - RETURN_MM_STRING(""); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "ALTER TABLE ", &_0, " DROP PRIMARY KEY"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Security_JWT_Signer_None, verify) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, dropTable) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *source_param = NULL, *payload_param = NULL, *passphrase_param = NULL, _0; - zval source, payload, passphrase; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool ifExists; + zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, table; + zval tableName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&source); - ZVAL_UNDEF(&payload); - ZVAL_UNDEF(&passphrase); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&table); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_STR(source) - Z_PARAM_STR(payload) - Z_PARAM_STR(passphrase) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(tableName) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schemaName) + Z_PARAM_BOOL(ifExists) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &source_param, &payload_param, &passphrase_param); - if (UNEXPECTED(Z_TYPE_P(source_param) != IS_STRING && Z_TYPE_P(source_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'source' must be of the type string")); + zephir_fetch_params(1, 1, 2, &tableName_param, &schemaName_param, &ifExists_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(source_param) == IS_STRING)) { - zephir_get_strval(&source, source_param); + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_INIT_VAR(&source); - } - if (UNEXPECTED(Z_TYPE_P(payload_param) != IS_STRING && Z_TYPE_P(payload_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'payload' must be of the type string")); - RETURN_MM_NULL(); + ZEPHIR_INIT_VAR(&tableName); } - if (EXPECTED(Z_TYPE_P(payload_param) == IS_STRING)) { - zephir_get_strval(&payload, payload_param); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); } else { - ZEPHIR_INIT_VAR(&payload); + zephir_get_strval(&schemaName, schemaName_param); } - if (UNEXPECTED(Z_TYPE_P(passphrase_param) != IS_STRING && Z_TYPE_P(passphrase_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'passphrase' must be of the type string")); + if (!ifExists_param) { + ifExists = 1; + } else { + if (UNEXPECTED(Z_TYPE_P(ifExists_param) != IS_TRUE && Z_TYPE_P(ifExists_param) != IS_FALSE)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be of the type bool")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(passphrase_param) == IS_STRING)) { - zephir_get_strval(&passphrase, passphrase_param); - } else { - ZEPHIR_INIT_VAR(&passphrase); + ifExists = (Z_TYPE_P(ifExists_param) == IS_TRUE); } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, ""); - RETURN_MM_BOOL(ZEPHIR_IS_IDENTICAL(&_0, &source)); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Signer_SignerInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Security\\JWT\\Signer, SignerInterface, phalcon, security_jwt_signer_signerinterface, phalcon_security_jwt_signer_signerinterface_method_entry); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Security_JWT_Signer_SignerInterface, getAlgHeader); -ZEPHIR_DOC_METHOD(Phalcon_Security_JWT_Signer_SignerInterface, getAlgorithm); -ZEPHIR_DOC_METHOD(Phalcon_Security_JWT_Signer_SignerInterface, sign); -ZEPHIR_DOC_METHOD(Phalcon_Security_JWT_Signer_SignerInterface, verify); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Token_AbstractItem) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Security\\JWT\\Token, AbstractItem, phalcon, security_jwt_token_abstractitem, phalcon_security_jwt_token_abstractitem_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_null(phalcon_security_jwt_token_abstractitem_ce, SL("data"), ZEND_ACC_PROTECTED); - phalcon_security_jwt_token_abstractitem_ce->create_object = zephir_init_properties_Phalcon_Security_JWT_Token_AbstractItem; - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Security_JWT_Token_AbstractItem, getEncoded) -{ - zval _0, _1; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_1, &_0, SL("encoded"), PH_NOISY | PH_READONLY, "phalcon/Security/JWT/Token/AbstractItem.zep", 30); - RETURN_CTORW(&_1); -} - -zend_object *zephir_init_properties_Phalcon_Security_JWT_Token_AbstractItem(zend_class_entry *class_type) -{ - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("data"), &_1$$3); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); + ZEPHIR_CALL_METHOD(&table, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); + zephir_check_call_status(); + if (ifExists) { + ZEPHIR_CONCAT_SV(return_value, "DROP TABLE IF EXISTS ", &table); + RETURN_MM(); } + ZEPHIR_CONCAT_SV(return_value, "DROP TABLE ", &table); + RETURN_MM(); } - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Token_Enum) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Security\\JWT\\Token, Enum, phalcon, security_jwt_token_enum, NULL, 0); - - zephir_declare_class_constant_string(phalcon_security_jwt_token_enum_ce, SL("TYPE"), "typ"); - - zephir_declare_class_constant_string(phalcon_security_jwt_token_enum_ce, SL("ALGO"), "alg"); - - zephir_declare_class_constant_string(phalcon_security_jwt_token_enum_ce, SL("CONTENT_TYPE"), "cty"); - - zephir_declare_class_constant_string(phalcon_security_jwt_token_enum_ce, SL("AUDIENCE"), "aud"); - - zephir_declare_class_constant_string(phalcon_security_jwt_token_enum_ce, SL("EXPIRATION_TIME"), "exp"); - - zephir_declare_class_constant_string(phalcon_security_jwt_token_enum_ce, SL("ID"), "jti"); - - zephir_declare_class_constant_string(phalcon_security_jwt_token_enum_ce, SL("ISSUED_AT"), "iat"); - - zephir_declare_class_constant_string(phalcon_security_jwt_token_enum_ce, SL("ISSUER"), "iss"); - - zephir_declare_class_constant_string(phalcon_security_jwt_token_enum_ce, SL("NOT_BEFORE"), "nbf"); - - zephir_declare_class_constant_string(phalcon_security_jwt_token_enum_ce, SL("SUBJECT"), "sub"); - - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Token_Item) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Security\\JWT\\Token, Item, phalcon, security_jwt_token_item, phalcon_security_jwt_token_abstractitem_ce, phalcon_security_jwt_token_item_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Security_JWT_Token_Item, __construct) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, dropView) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval encoded; - zval *payload_param = NULL, *encoded_param = NULL, _0, _1; - zval payload; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool ifExists; + zval *viewName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, view; + zval viewName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&payload); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&encoded); + ZVAL_UNDEF(&viewName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&view); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ARRAY(payload) - Z_PARAM_STR(encoded) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(viewName) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schemaName) + Z_PARAM_BOOL(ifExists) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &payload_param, &encoded_param); - ZEPHIR_OBS_COPY_OR_DUP(&payload, payload_param); - if (UNEXPECTED(Z_TYPE_P(encoded_param) != IS_STRING && Z_TYPE_P(encoded_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'encoded' must be of the type string")); + zephir_fetch_params(1, 1, 2, &viewName_param, &schemaName_param, &ifExists_param); + if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(encoded_param) == IS_STRING)) { - zephir_get_strval(&encoded, encoded_param); + if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(&viewName, viewName_param); } else { - ZEPHIR_INIT_VAR(&encoded); + ZEPHIR_INIT_VAR(&viewName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + zephir_get_strval(&schemaName, schemaName_param); + } + if (!ifExists_param) { + ifExists = 1; + } else { + if (UNEXPECTED(Z_TYPE_P(ifExists_param) != IS_TRUE && Z_TYPE_P(ifExists_param) != IS_FALSE)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be of the type bool")); + RETURN_MM_NULL(); + } + ifExists = (Z_TYPE_P(ifExists_param) == IS_TRUE); } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "encoded"); - zephir_update_property_array(this_ptr, SL("data"), &_0, &encoded); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "payload"); - zephir_update_property_array(this_ptr, SL("data"), &_1, &payload); - ZEPHIR_MM_RESTORE(); + ZEPHIR_CALL_METHOD(&view, this_ptr, "preparetable", NULL, 0, &viewName, &schemaName); + zephir_check_call_status(); + if (ifExists) { + ZEPHIR_CONCAT_SV(return_value, "DROP VIEW IF EXISTS ", &view); + RETURN_MM(); + } + ZEPHIR_CONCAT_SV(return_value, "DROP VIEW ", &view); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Security_JWT_Token_Item, get) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, getColumnDefinition) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_41 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, _0, _1, _2, _3; - zval name; + zval *column, column_sub, columnType, columnSql, typeValues, _0$$3, _1$$3, _2$$3, _3$$5, _4$$11, _5$$15, _6$$17, _7$$18, _8$$18, _9$$18, _10$$20, _11$$20, _12$$20, _13$$22, _14$$24, _15$$24, _16$$24, _17$$26, _18$$26, _19$$26, _20$$36, _21$$36, _22$$36, _23$$40, _24$$40, _25$$40, _26$$44, _27$$46, _28$$47, _29$$49, _30$$52, _31$$52, _32$$52, _33$$56, _34$$59, _35$$59, _36$$59, value$$61, valueSql$$61, *_37$$61, _38$$61, _46$$61, _47$$61, _48$$61, _49$$61, _39$$62, _40$$62, _42$$62, _43$$63, _44$$63, _45$$63, _50$$64, _51$$64, _52$$64; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(&columnType); + ZVAL_UNDEF(&columnSql); + ZVAL_UNDEF(&typeValues); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_4$$11); + ZVAL_UNDEF(&_5$$15); + ZVAL_UNDEF(&_6$$17); + ZVAL_UNDEF(&_7$$18); + ZVAL_UNDEF(&_8$$18); + ZVAL_UNDEF(&_9$$18); + ZVAL_UNDEF(&_10$$20); + ZVAL_UNDEF(&_11$$20); + ZVAL_UNDEF(&_12$$20); + ZVAL_UNDEF(&_13$$22); + ZVAL_UNDEF(&_14$$24); + ZVAL_UNDEF(&_15$$24); + ZVAL_UNDEF(&_16$$24); + ZVAL_UNDEF(&_17$$26); + ZVAL_UNDEF(&_18$$26); + ZVAL_UNDEF(&_19$$26); + ZVAL_UNDEF(&_20$$36); + ZVAL_UNDEF(&_21$$36); + ZVAL_UNDEF(&_22$$36); + ZVAL_UNDEF(&_23$$40); + ZVAL_UNDEF(&_24$$40); + ZVAL_UNDEF(&_25$$40); + ZVAL_UNDEF(&_26$$44); + ZVAL_UNDEF(&_27$$46); + ZVAL_UNDEF(&_28$$47); + ZVAL_UNDEF(&_29$$49); + ZVAL_UNDEF(&_30$$52); + ZVAL_UNDEF(&_31$$52); + ZVAL_UNDEF(&_32$$52); + ZVAL_UNDEF(&_33$$56); + ZVAL_UNDEF(&_34$$59); + ZVAL_UNDEF(&_35$$59); + ZVAL_UNDEF(&_36$$59); + ZVAL_UNDEF(&value$$61); + ZVAL_UNDEF(&valueSql$$61); + ZVAL_UNDEF(&_38$$61); + ZVAL_UNDEF(&_46$$61); + ZVAL_UNDEF(&_47$$61); + ZVAL_UNDEF(&_48$$61); + ZVAL_UNDEF(&_49$$61); + ZVAL_UNDEF(&_39$$62); + ZVAL_UNDEF(&_40$$62); + ZVAL_UNDEF(&_42$$62); + ZVAL_UNDEF(&_43$$63); + ZVAL_UNDEF(&_44$$63); + ZVAL_UNDEF(&_45$$63); + ZVAL_UNDEF(&_50$$64); + ZVAL_UNDEF(&_51$$64); + ZVAL_UNDEF(&_52$$64); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(name) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(defaultValue) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &name_param, &defaultValue); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); - } else { - ZEPHIR_INIT_VAR(&name); - } - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; - } + zephir_fetch_params(1, 1, 0, &column); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, &name); + ZEPHIR_CALL_METHOD(&columnSql, this_ptr, "checkcolumntypesql", NULL, 0, column); zephir_check_call_status(); - if (!(zephir_is_true(&_0))) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - zephir_read_property(&_1, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_2, &_1, SL("payload"), PH_NOISY | PH_READONLY, "phalcon/Security/JWT/Token/Item.zep", 42); - zephir_array_fetch(&_3, &_2, &name, PH_NOISY | PH_READONLY, "phalcon/Security/JWT/Token/Item.zep", 42); - RETURN_CTOR(&_3); -} + ZEPHIR_CALL_METHOD(&columnType, this_ptr, "checkcolumntype", NULL, 0, column); + zephir_check_call_status(); + do { + if (ZEPHIR_IS_LONG(&columnType, 14)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("BIGINT")); + } + ZEPHIR_CALL_METHOD(&_0$$3, this_ptr, "getcolumnsize", NULL, 0, column); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1$$3, this_ptr, "checkcolumnunsigned", NULL, 215, column); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2$$3); + ZEPHIR_CONCAT_VV(&_2$$3, &_0$$3, &_1$$3); + zephir_concat_self(&columnSql, &_2$$3); + break; + } + if (ZEPHIR_IS_LONG(&columnType, 19)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("BIT")); + } + ZEPHIR_CALL_METHOD(&_3$$5, this_ptr, "getcolumnsize", NULL, 0, column); + zephir_check_call_status(); + zephir_concat_self(&columnSql, &_3$$5); + break; + } + if (ZEPHIR_IS_LONG(&columnType, 11)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("BLOB")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 8)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("TINYINT(1)")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 5)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("CHAR")); + } + ZEPHIR_CALL_METHOD(&_4$$11, this_ptr, "getcolumnsize", NULL, 0, column); + zephir_check_call_status(); + zephir_concat_self(&columnSql, &_4$$11); + break; + } + if (ZEPHIR_IS_LONG(&columnType, 1)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("DATE")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 4)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("DATETIME")); + } + ZEPHIR_CALL_METHOD(&_5$$15, column, "getsize", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_GT_LONG(&_5$$15, 0)) { + ZEPHIR_CALL_METHOD(&_6$$17, this_ptr, "getcolumnsize", NULL, 0, column); + zephir_check_call_status(); + zephir_concat_self(&columnSql, &_6$$17); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 3)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("DECIMAL")); + } + ZEPHIR_CALL_METHOD(&_7$$18, this_ptr, "getcolumnsizeandscale", NULL, 0, column); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_8$$18, this_ptr, "checkcolumnunsigned", NULL, 215, column); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_9$$18); + ZEPHIR_CONCAT_VV(&_9$$18, &_7$$18, &_8$$18); + zephir_concat_self(&columnSql, &_9$$18); + break; + } + if (ZEPHIR_IS_LONG(&columnType, 9)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("DOUBLE")); + } + ZEPHIR_CALL_METHOD(&_10$$20, this_ptr, "checkcolumnsizeandscale", NULL, 216, column); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_11$$20, this_ptr, "checkcolumnunsigned", NULL, 215, column); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_12$$20); + ZEPHIR_CONCAT_VV(&_12$$20, &_10$$20, &_11$$20); + zephir_concat_self(&columnSql, &_12$$20); + break; + } + if (ZEPHIR_IS_LONG(&columnType, 18)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("ENUM")); + } + ZEPHIR_CALL_METHOD(&_13$$22, this_ptr, "getcolumnsize", NULL, 0, column); + zephir_check_call_status(); + zephir_concat_self(&columnSql, &_13$$22); + break; + } + if (ZEPHIR_IS_LONG(&columnType, 7)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("FLOAT")); + } + ZEPHIR_CALL_METHOD(&_14$$24, this_ptr, "checkcolumnsizeandscale", NULL, 216, column); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_15$$24, this_ptr, "checkcolumnunsigned", NULL, 215, column); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_16$$24); + ZEPHIR_CONCAT_VV(&_16$$24, &_14$$24, &_15$$24); + zephir_concat_self(&columnSql, &_16$$24); + break; + } + if (ZEPHIR_IS_LONG(&columnType, 0)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("INT")); + } + ZEPHIR_CALL_METHOD(&_17$$26, this_ptr, "getcolumnsize", NULL, 0, column); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_18$$26, this_ptr, "checkcolumnunsigned", NULL, 215, column); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_19$$26); + ZEPHIR_CONCAT_VV(&_19$$26, &_17$$26, &_18$$26); + zephir_concat_self(&columnSql, &_19$$26); + break; + } + if (ZEPHIR_IS_LONG(&columnType, 15)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("JSON")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 13)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("LONGBLOB")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 24)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("LONGTEXT")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 12)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("MEDIUMBLOB")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 21)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("MEDIUMINT")); + } + ZEPHIR_CALL_METHOD(&_20$$36, this_ptr, "getcolumnsize", NULL, 0, column); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_21$$36, this_ptr, "checkcolumnunsigned", NULL, 215, column); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_22$$36); + ZEPHIR_CONCAT_VV(&_22$$36, &_20$$36, &_21$$36); + zephir_concat_self(&columnSql, &_22$$36); + break; + } + if (ZEPHIR_IS_LONG(&columnType, 23)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("MEDIUMTEXT")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 22)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("SMALLINT")); + } + ZEPHIR_CALL_METHOD(&_23$$40, this_ptr, "getcolumnsize", NULL, 0, column); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_24$$40, this_ptr, "checkcolumnunsigned", NULL, 215, column); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_25$$40); + ZEPHIR_CONCAT_VV(&_25$$40, &_23$$40, &_24$$40); + zephir_concat_self(&columnSql, &_25$$40); + break; + } + if (ZEPHIR_IS_LONG(&columnType, 6)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("TEXT")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 20)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("TIME")); + } + ZEPHIR_CALL_METHOD(&_26$$44, column, "getsize", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_GT_LONG(&_26$$44, 0)) { + ZEPHIR_CALL_METHOD(&_27$$46, this_ptr, "getcolumnsize", NULL, 0, column); + zephir_check_call_status(); + zephir_concat_self(&columnSql, &_27$$46); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 17)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("TIMESTAMP")); + } + ZEPHIR_CALL_METHOD(&_28$$47, column, "getsize", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_GT_LONG(&_28$$47, 0)) { + ZEPHIR_CALL_METHOD(&_29$$49, this_ptr, "getcolumnsize", NULL, 0, column); + zephir_check_call_status(); + zephir_concat_self(&columnSql, &_29$$49); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 10)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("TINYBLOB")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 26)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("TINYINT")); + } + ZEPHIR_CALL_METHOD(&_30$$52, this_ptr, "getcolumnsize", NULL, 0, column); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_31$$52, this_ptr, "checkcolumnunsigned", NULL, 215, column); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_32$$52); + ZEPHIR_CONCAT_VV(&_32$$52, &_30$$52, &_31$$52); + zephir_concat_self(&columnSql, &_32$$52); + break; + } + if (ZEPHIR_IS_LONG(&columnType, 25)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("TINYTEXT")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 2)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("VARCHAR")); + } + ZEPHIR_CALL_METHOD(&_33$$56, this_ptr, "getcolumnsize", NULL, 0, column); + zephir_check_call_status(); + zephir_concat_self(&columnSql, &_33$$56); + break; + } + if (UNEXPECTED(ZEPHIR_IS_EMPTY(&columnSql))) { + ZEPHIR_INIT_VAR(&_34$$59); + object_init_ex(&_34$$59, phalcon_db_exception_ce); + ZEPHIR_CALL_METHOD(&_35$$59, column, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_36$$59); + ZEPHIR_CONCAT_SV(&_36$$59, "Unrecognized MySQL data type at column ", &_35$$59); + ZEPHIR_CALL_METHOD(NULL, &_34$$59, "__construct", NULL, 8, &_36$$59); + zephir_check_call_status(); + zephir_throw_exception_debug(&_34$$59, "phalcon/Db/Dialect/Mysql.zep", 635); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_METHOD(&typeValues, column, "gettypevalues", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&typeValues))) { + if (Z_TYPE_P(&typeValues) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&valueSql$$61); + ZVAL_STRING(&valueSql$$61, ""); + zephir_is_iterable(&typeValues, 0, "phalcon/Db/Dialect/Mysql.zep", 649); + if (Z_TYPE_P(&typeValues) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&typeValues), _37$$61) + { + ZEPHIR_INIT_NVAR(&value$$61); + ZVAL_COPY(&value$$61, _37$$61); + ZEPHIR_INIT_NVAR(&_39$$62); + ZVAL_STRING(&_39$$62, "\""); + ZEPHIR_CALL_FUNCTION(&_40$$62, "addcslashes", &_41, 214, &value$$61, &_39$$62); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_42$$62); + ZEPHIR_CONCAT_SVS(&_42$$62, "\"", &_40$$62, "\", "); + zephir_concat_self(&valueSql$$61, &_42$$62); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &typeValues, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_38$$61, &typeValues, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_38$$61)) { + break; + } + ZEPHIR_CALL_METHOD(&value$$61, &typeValues, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_43$$63); + ZVAL_STRING(&_43$$63, "\""); + ZEPHIR_CALL_FUNCTION(&_44$$63, "addcslashes", &_41, 214, &value$$61, &_43$$63); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_45$$63); + ZEPHIR_CONCAT_SVS(&_45$$63, "\"", &_44$$63, "\", "); + zephir_concat_self(&valueSql$$61, &_45$$63); + ZEPHIR_CALL_METHOD(NULL, &typeValues, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value$$61); + ZVAL_LONG(&_46$$61, 0); + ZVAL_LONG(&_47$$61, -2); + ZEPHIR_INIT_VAR(&_48$$61); + zephir_substr(&_48$$61, &valueSql$$61, 0 , -2 , 0); + ZEPHIR_INIT_VAR(&_49$$61); + ZEPHIR_CONCAT_SVS(&_49$$61, "(", &_48$$61, ")"); + zephir_concat_self(&columnSql, &_49$$61); + } else { + ZEPHIR_INIT_VAR(&_50$$64); + ZVAL_STRING(&_50$$64, "\""); + ZEPHIR_CALL_FUNCTION(&_51$$64, "addcslashes", &_41, 214, &typeValues, &_50$$64); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_52$$64); + ZEPHIR_CONCAT_SVS(&_52$$64, "(\"", &_51$$64, "\")"); + zephir_concat_self(&columnSql, &_52$$64); + } + } + } while(0); -static PHP_METHOD(Phalcon_Security_JWT_Token_Item, getPayload) -{ - zval _0, _1; - zval *this_ptr = getThis(); + RETURN_CCTOR(&columnSql); +} - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, getForeignKeyChecks) +{ + zval *this_ptr = getThis(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_1, &_0, SL("payload"), PH_NOISY | PH_READONLY, "phalcon/Security/JWT/Token/Item.zep", 50); - RETURN_CTORW(&_1); + RETURN_STRING("SELECT @@foreign_key_checks"); } -static PHP_METHOD(Phalcon_Security_JWT_Token_Item, has) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, listTables) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name_param = NULL, _0, _1; - zval name; + zval *schemaName_param = NULL; + zval schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&schemaName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schemaName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); + zephir_fetch_params(1, 0, 1, &schemaName_param); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); } else { - ZEPHIR_INIT_VAR(&name); + zephir_get_strval(&schemaName, schemaName_param); } - zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_1, &_0, SL("payload"), PH_READONLY, "phalcon/Security/JWT/Token/Item.zep", 60); - RETURN_MM_BOOL(zephir_array_isset(&_1, &name)); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Token_Parser) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Security\\JWT\\Token, Parser, phalcon, security_jwt_token_parser, phalcon_security_jwt_token_parser_method_entry, 0); - - return SUCCESS; + if (!(ZEPHIR_IS_EMPTY(&schemaName))) { + ZEPHIR_CONCAT_SVS(return_value, "SHOW TABLES FROM `", &schemaName, "`"); + RETURN_MM(); + } + RETURN_MM_STRING("SHOW TABLES"); } -static PHP_METHOD(Phalcon_Security_JWT_Token_Parser, parse) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, listViews) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *token_param = NULL, claims, encodedClaims, encodedHeaders, encodedSignature, headers, results, signature; - zval token; + zval *schemaName_param = NULL; + zval schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&token); - ZVAL_UNDEF(&claims); - ZVAL_UNDEF(&encodedClaims); - ZVAL_UNDEF(&encodedHeaders); - ZVAL_UNDEF(&encodedSignature); - ZVAL_UNDEF(&headers); - ZVAL_UNDEF(&results); - ZVAL_UNDEF(&signature); + ZVAL_UNDEF(&schemaName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(token) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schemaName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &token_param); - if (UNEXPECTED(Z_TYPE_P(token_param) != IS_STRING && Z_TYPE_P(token_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'token' must be of the type string")); + zephir_fetch_params(1, 0, 1, &schemaName_param); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(token_param) == IS_STRING)) { - zephir_get_strval(&token, token_param); + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); } else { - ZEPHIR_INIT_VAR(&token); + ZEPHIR_INIT_VAR(&schemaName); + } } - ZEPHIR_CALL_METHOD(&results, this_ptr, "parsetoken", NULL, 0, &token); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&encodedHeaders); - zephir_array_fetch_long(&encodedHeaders, &results, 0, PH_NOISY, "phalcon/Security/JWT/Token/Parser.zep", 36); - ZEPHIR_OBS_VAR(&encodedClaims); - zephir_array_fetch_long(&encodedClaims, &results, 1, PH_NOISY, "phalcon/Security/JWT/Token/Parser.zep", 37); - ZEPHIR_OBS_VAR(&encodedSignature); - zephir_array_fetch_long(&encodedSignature, &results, 2, PH_NOISY, "phalcon/Security/JWT/Token/Parser.zep", 38); - ZEPHIR_CALL_METHOD(&headers, this_ptr, "decodeheaders", NULL, 0, &encodedHeaders); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&claims, this_ptr, "decodeclaims", NULL, 0, &encodedClaims); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&signature, this_ptr, "decodesignature", NULL, 0, &headers, &encodedSignature); - zephir_check_call_status(); - object_init_ex(return_value, phalcon_security_jwt_token_token_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 0, &headers, &claims, &signature); - zephir_check_call_status(); - RETURN_MM(); + if (!(ZEPHIR_IS_EMPTY(&schemaName))) { + ZEPHIR_CONCAT_SVS(return_value, "SELECT `TABLE_NAME` AS view_name FROM `INFORMATION_SCHEMA`.`VIEWS` WHERE `TABLE_SCHEMA` = '", &schemaName, "' ORDER BY view_name"); + RETURN_MM(); + } + RETURN_MM_STRING("SELECT `TABLE_NAME` AS view_name FROM `INFORMATION_SCHEMA`.`VIEWS` WHERE `TABLE_SCHEMA` = DATABASE() ORDER BY view_name"); } -static PHP_METHOD(Phalcon_Security_JWT_Token_Parser, decodeClaims) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, modifyColumn) { - zval _6$$4; - zend_bool _4; + zend_bool _11$$8, _12$$8, _13$$8; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL, *_2 = NULL; - zval *claims_param = NULL, decoded, _1, _3, _5, _7$$4; - zval claims; + zval *tableName_param = NULL, *schemaName_param = NULL, *column, column_sub, *currentColumn = NULL, currentColumn_sub, __$null, afterPosition, defaultValue, upperDefaultValue, columnDefinition, _0, _1, _2, _3, _9, _10, _19, _20, _23, _4$$4, _5$$4, _6$$4, _7$$5, _8$$5, _14$$8, _15$$9, _16$$10, _17$$10, _18$$10, _21$$12, _22$$12, _24$$15; + zval tableName, schemaName, sql; zval *this_ptr = getThis(); - ZVAL_UNDEF(&claims); - ZVAL_UNDEF(&decoded); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(¤tColumn_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&afterPosition); + ZVAL_UNDEF(&defaultValue); + ZVAL_UNDEF(&upperDefaultValue); + ZVAL_UNDEF(&columnDefinition); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_19); + ZVAL_UNDEF(&_20); + ZVAL_UNDEF(&_23); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$4); ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$5); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_14$$8); + ZVAL_UNDEF(&_15$$9); + ZVAL_UNDEF(&_16$$10); + ZVAL_UNDEF(&_17$$10); + ZVAL_UNDEF(&_18$$10); + ZVAL_UNDEF(&_21$$12); + ZVAL_UNDEF(&_22$$12); + ZVAL_UNDEF(&_24$$15); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(claims) + ZEND_PARSE_PARAMETERS_START(3, 4) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + Z_PARAM_OPTIONAL + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(currentColumn, phalcon_db_columninterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &claims_param); - zephir_get_strval(&claims, claims_param); + zephir_fetch_params(1, 3, 1, &tableName_param, &schemaName_param, &column, ¤tColumn); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + if (!currentColumn) { + currentColumn = ¤tColumn_sub; + ZEPHIR_CPY_WRT(currentColumn, &__$null); + } else { + ZEPHIR_SEPARATE_PARAM(currentColumn); + } - ZEPHIR_CALL_CE_STATIC(&_1, phalcon_helper_base64_ce, "decodeurl", &_2, 0, &claims); + ZEPHIR_CALL_METHOD(&columnDefinition, this_ptr, "getcolumndefinition", NULL, 0, column); zephir_check_call_status(); - ZVAL_BOOL(&_3, 1); - ZEPHIR_CALL_CE_STATIC(&decoded, phalcon_helper_json_ce, "decode", &_0, 180, &_1, &_3); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); zephir_check_call_status(); - if (Z_TYPE_P(&decoded) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_InvalidArgumentException, "Invalid Claims (not an array)", "phalcon/Security/JWT/Token/Parser.zep", 62); - return; - } - _4 = zephir_array_isset_string(&decoded, SL("aud")); - if (_4) { - ZEPHIR_OBS_VAR(&_5); - zephir_array_fetch_string(&_5, &decoded, SL("aud"), PH_NOISY, "phalcon/Security/JWT/Token/Parser.zep", 68); - _4 = Z_TYPE_P(&_5) != IS_ARRAY; + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_CONCAT_SV(&_1, "ALTER TABLE ", &_0); + zephir_get_strval(&sql, &_1); + if (Z_TYPE_P(currentColumn) != IS_OBJECT) { + ZEPHIR_CPY_WRT(currentColumn, column); } - if (_4) { + ZEPHIR_CALL_METHOD(&_2, column, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_3, currentColumn, "getname", NULL, 0); + zephir_check_call_status(); + if (!ZEPHIR_IS_IDENTICAL(&_2, &_3)) { + ZEPHIR_CALL_METHOD(&_4$$4, currentColumn, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_5$$4, column, "getname", NULL, 0); + zephir_check_call_status(); ZEPHIR_INIT_VAR(&_6$$4); - zephir_create_array(&_6$$4, 1, 0); - ZEPHIR_OBS_VAR(&_7$$4); - zephir_array_fetch_string(&_7$$4, &decoded, SL("aud"), PH_NOISY, "phalcon/Security/JWT/Token/Parser.zep", 69); - zephir_array_fast_append(&_6$$4, &_7$$4); - zephir_array_update_string(&decoded, SL("aud"), &_6$$4, PH_COPY | PH_SEPARATE); + ZEPHIR_CONCAT_SVSVSV(&_6$$4, " CHANGE COLUMN `", &_4$$4, "` `", &_5$$4, "` ", &columnDefinition); + zephir_concat_self(&sql, &_6$$4); + } else { + ZEPHIR_CALL_METHOD(&_7$$5, column, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_8$$5); + ZEPHIR_CONCAT_SVSV(&_8$$5, " MODIFY `", &_7$$5, "` ", &columnDefinition); + zephir_concat_self(&sql, &_8$$5); } - object_init_ex(return_value, phalcon_security_jwt_token_item_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 0, &decoded, &claims); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Security_JWT_Token_Parser, decodeHeaders) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL, *_2 = NULL; - zval *headers_param = NULL, decoded, _1, _3; - zval headers; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&headers); - ZVAL_UNDEF(&decoded); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(headers) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &headers_param); - zephir_get_strval(&headers, headers_param); - - - ZEPHIR_CALL_CE_STATIC(&_1, phalcon_helper_base64_ce, "decodeurl", &_2, 0, &headers); + ZEPHIR_CALL_METHOD(&_9, column, "isnotnull", NULL, 0); zephir_check_call_status(); - ZVAL_BOOL(&_3, 1); - ZEPHIR_CALL_CE_STATIC(&decoded, phalcon_helper_json_ce, "decode", &_0, 180, &_1, &_3); + if (zephir_is_true(&_9)) { + zephir_concat_self_str(&sql, " NOT NULL", sizeof(" NOT NULL") - 1); + } else { + zephir_concat_self_str(&sql, " NULL", sizeof(" NULL") - 1); + } + ZEPHIR_CALL_METHOD(&_10, column, "hasdefault", NULL, 0); zephir_check_call_status(); - if (Z_TYPE_P(&decoded) != IS_ARRAY) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_InvalidArgumentException, "Invalid Header (not an array)", "phalcon/Security/JWT/Token/Parser.zep", 91); - return; + if (zephir_is_true(&_10)) { + ZEPHIR_CALL_METHOD(&defaultValue, column, "getdefault", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&upperDefaultValue); + zephir_fast_strtoupper(&upperDefaultValue, &defaultValue); + _11$$8 = zephir_memnstr_str(&upperDefaultValue, SL("CURRENT_TIMESTAMP"), "phalcon/Db/Dialect/Mysql.zep", 731); + if (!(_11$$8)) { + _11$$8 = zephir_memnstr_str(&upperDefaultValue, SL("NULL"), "phalcon/Db/Dialect/Mysql.zep", 731); + } + _12$$8 = _11$$8; + if (!(_12$$8)) { + _12$$8 = Z_TYPE_P(&defaultValue) == IS_LONG; + } + _13$$8 = _12$$8; + if (!(_13$$8)) { + ZEPHIR_CALL_FUNCTION(&_14$$8, "is_float", NULL, 213, &defaultValue); + zephir_check_call_status(); + _13$$8 = zephir_is_true(&_14$$8); + } + if (_13$$8) { + ZEPHIR_INIT_VAR(&_15$$9); + ZEPHIR_CONCAT_SV(&_15$$9, " DEFAULT ", &defaultValue); + zephir_concat_self(&sql, &_15$$9); + } else { + ZEPHIR_INIT_VAR(&_16$$10); + ZVAL_STRING(&_16$$10, "\""); + ZEPHIR_CALL_FUNCTION(&_17$$10, "addcslashes", NULL, 214, &defaultValue, &_16$$10); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_18$$10); + ZEPHIR_CONCAT_SVS(&_18$$10, " DEFAULT \"", &_17$$10, "\""); + zephir_concat_self(&sql, &_18$$10); + } } - if (!(zephir_array_isset_string(&decoded, SL("typ")))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_InvalidArgumentException, "Invalid Header (missing 'typ' element)", "phalcon/Security/JWT/Token/Parser.zep", 97); - return; + ZEPHIR_CALL_METHOD(&_19, column, "isautoincrement", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_19)) { + zephir_concat_self_str(&sql, " AUTO_INCREMENT", sizeof(" AUTO_INCREMENT") - 1); } - object_init_ex(return_value, phalcon_security_jwt_token_item_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 0, &decoded, &headers); + ZEPHIR_CALL_METHOD(&_20, column, "getcomment", NULL, 0); zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Security_JWT_Token_Parser, decodeSignature) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_3 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval signature; - zval *headers, headers_sub, *signature_param = NULL, algo, decoded, _0, _1, _2; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&headers_sub); - ZVAL_UNDEF(&algo); - ZVAL_UNDEF(&decoded); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&signature); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_OBJECT_OF_CLASS(headers, phalcon_security_jwt_token_item_ce) - Z_PARAM_STR(signature) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &headers, &signature_param); - zephir_get_strval(&signature, signature_param); - - - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "alg"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "none"); - ZEPHIR_CALL_METHOD(&algo, headers, "get", NULL, 0, &_0, &_1); + if (zephir_is_true(&_20)) { + ZEPHIR_CALL_METHOD(&_21$$12, column, "getcomment", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_22$$12); + ZEPHIR_CONCAT_SVS(&_22$$12, " COMMENT '", &_21$$12, "'"); + zephir_concat_self(&sql, &_22$$12); + } + ZEPHIR_CALL_METHOD(&_23, column, "isfirst", NULL, 0); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "none"); - if (ZEPHIR_IS_IDENTICAL(&_2, &algo)) { - ZEPHIR_INIT_VAR(&decoded); - ZVAL_STRING(&decoded, ""); - ZEPHIR_INIT_NVAR(&signature); + if (zephir_is_true(&_23)) { + zephir_concat_self_str(&sql, " FIRST", sizeof(" FIRST") - 1); } else { - ZEPHIR_CALL_CE_STATIC(&decoded, phalcon_helper_base64_ce, "decodeurl", &_3, 0, &signature); + ZEPHIR_CALL_METHOD(&afterPosition, column, "getafterposition", NULL, 0); zephir_check_call_status(); + if (zephir_is_true(&afterPosition)) { + ZEPHIR_INIT_VAR(&_24$$15); + ZEPHIR_CONCAT_SVS(&_24$$15, " AFTER `", &afterPosition, "`"); + zephir_concat_self(&sql, &_24$$15); + } } - object_init_ex(return_value, phalcon_security_jwt_token_signature_ce); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 0, &decoded, &signature); - zephir_check_call_status(); - RETURN_MM(); + RETURN_CTOR(&sql); } -static PHP_METHOD(Phalcon_Security_JWT_Token_Parser, parseToken) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, sharedLock) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *token_param = NULL, parts; - zval token; + zval *sqlQuery_param = NULL; + zval sqlQuery; zval *this_ptr = getThis(); - ZVAL_UNDEF(&token); - ZVAL_UNDEF(&parts); + ZVAL_UNDEF(&sqlQuery); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(token) + Z_PARAM_STR(sqlQuery) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &token_param); - if (UNEXPECTED(Z_TYPE_P(token_param) != IS_STRING && Z_TYPE_P(token_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'token' must be of the type string")); + zephir_fetch_params(1, 1, 0, &sqlQuery_param); + if (UNEXPECTED(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(token_param) == IS_STRING)) { - zephir_get_strval(&token, token_param); + if (EXPECTED(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { + zephir_get_strval(&sqlQuery, sqlQuery_param); } else { - ZEPHIR_INIT_VAR(&token); - } - - - ZEPHIR_INIT_VAR(&parts); - zephir_fast_explode_str(&parts, SL("."), &token, LONG_MAX); - if (zephir_fast_count_int(&parts) != 3) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_InvalidArgumentException, "Invalid JWT string (dots misalignment)", "phalcon/Security/JWT/Token/Parser.zep", 143); - return; + ZEPHIR_INIT_VAR(&sqlQuery); } - RETURN_CCTOR(&parts); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - -ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Token_Signature) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Security\\JWT\\Token, Signature, phalcon, security_jwt_token_signature, phalcon_security_jwt_token_abstractitem_ce, phalcon_security_jwt_token_signature_method_entry, 0); - - return SUCCESS; + ZEPHIR_CONCAT_VS(return_value, &sqlQuery, " LOCK IN SHARE MODE"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Security_JWT_Token_Signature, __construct) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, tableExists) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *hash_param = NULL, *encoded_param = NULL, _0, _1; - zval hash, encoded; + zval *tableName_param = NULL, *schemaName_param = NULL; + zval tableName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&hash); - ZVAL_UNDEF(&encoded); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(tableName) Z_PARAM_OPTIONAL - Z_PARAM_STR(hash) - Z_PARAM_STR(encoded) + Z_PARAM_STR_OR_NULL(schemaName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &hash_param, &encoded_param); - if (!hash_param) { - ZEPHIR_INIT_VAR(&hash); - ZVAL_STRING(&hash, ""); - } else { - if (UNEXPECTED(Z_TYPE_P(hash_param) != IS_STRING && Z_TYPE_P(hash_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'hash' must be of the type string")); + zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(hash_param) == IS_STRING)) { - zephir_get_strval(&hash, hash_param); - } else { - ZEPHIR_INIT_VAR(&hash); - } - } - if (!encoded_param) { - ZEPHIR_INIT_VAR(&encoded); - ZVAL_STRING(&encoded, ""); + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - if (UNEXPECTED(Z_TYPE_P(encoded_param) != IS_STRING && Z_TYPE_P(encoded_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'encoded' must be of the type string")); - RETURN_MM_NULL(); + ZEPHIR_INIT_VAR(&tableName); } - if (EXPECTED(Z_TYPE_P(encoded_param) == IS_STRING)) { - zephir_get_strval(&encoded, encoded_param); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); } else { - ZEPHIR_INIT_VAR(&encoded); - } + zephir_get_strval(&schemaName, schemaName_param); } - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "encoded"); - zephir_update_property_array(this_ptr, SL("data"), &_0, &encoded); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "hash"); - zephir_update_property_array(this_ptr, SL("data"), &_1, &hash); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Security_JWT_Token_Signature, getHash) -{ - zval _0, _1; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - zephir_array_fetch_string(&_1, &_0, SL("hash"), PH_NOISY | PH_READONLY, "phalcon/Security/JWT/Token/Signature.zep", 35); - RETURN_CTORW(&_1); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Security_JWT_Token_Token) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Security\\JWT\\Token, Token, phalcon, security_jwt_token_token, phalcon_security_jwt_token_token_method_entry, 0); - - zend_declare_property_null(phalcon_security_jwt_token_token_ce, SL("claims"), ZEND_ACC_PRIVATE); - zend_declare_property_null(phalcon_security_jwt_token_token_ce, SL("headers"), ZEND_ACC_PRIVATE); - zend_declare_property_null(phalcon_security_jwt_token_token_ce, SL("signature"), ZEND_ACC_PRIVATE); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Security_JWT_Token_Token, getClaims) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "claims"); -} - -static PHP_METHOD(Phalcon_Security_JWT_Token_Token, getHeaders) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "headers"); -} - -static PHP_METHOD(Phalcon_Security_JWT_Token_Token, getSignature) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "signature"); -} - -static PHP_METHOD(Phalcon_Security_JWT_Token_Token, __construct) -{ - zval *headers, headers_sub, *claims, claims_sub, *signature, signature_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&headers_sub); - ZVAL_UNDEF(&claims_sub); - ZVAL_UNDEF(&signature_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_OBJECT_OF_CLASS(headers, phalcon_security_jwt_token_item_ce) - Z_PARAM_OBJECT_OF_CLASS(claims, phalcon_security_jwt_token_item_ce) - Z_PARAM_OBJECT_OF_CLASS(signature, phalcon_security_jwt_token_signature_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(3, 0, &headers, &claims, &signature); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("headers"), headers); - zephir_update_property_zval(this_ptr, ZEND_STRL("claims"), claims); - zephir_update_property_zval(this_ptr, ZEND_STRL("signature"), signature); -} - -static PHP_METHOD(Phalcon_Security_JWT_Token_Token, getPayload) -{ - zval _0, _1, _2, _3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("headers"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "getencoded", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_2, this_ptr, ZEND_STRL("claims"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_3, &_2, "getencoded", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CONCAT_VSV(return_value, &_1, ".", &_3); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Security_JWT_Token_Token, getToken) -{ - zval _0, _1, _2; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getpayload", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getsignature", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2, &_1, "getencoded", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CONCAT_VSV(return_value, &_0, ".", &_2); + if (!(ZEPHIR_IS_EMPTY(&schemaName))) { + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT IF(COUNT(*) > 0, 1, 0) FROM `INFORMATION_SCHEMA`.`TABLES` WHERE `TABLE_NAME`= '", &tableName, "' AND `TABLE_SCHEMA` = '", &schemaName, "'"); + RETURN_MM(); + } + ZEPHIR_CONCAT_SVS(return_value, "SELECT IF(COUNT(*) > 0, 1, 0) FROM `INFORMATION_SCHEMA`.`TABLES` WHERE `TABLE_NAME` = '", &tableName, "' AND `TABLE_SCHEMA` = DATABASE()"); RETURN_MM(); } - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Session_Bag) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Session, Bag, phalcon, session_bag, phalcon_collection_ce, phalcon_session_bag_method_entry, 0); - - zend_declare_property_null(phalcon_session_bag_ce, SL("container"), ZEND_ACC_PRIVATE); - zend_declare_property_null(phalcon_session_bag_ce, SL("name"), ZEND_ACC_PRIVATE); - zend_declare_property_null(phalcon_session_bag_ce, SL("session"), ZEND_ACC_PRIVATE); - zend_class_implements(phalcon_session_bag_ce, 1, phalcon_di_injectionawareinterface_ce); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Session_Bag, __construct) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, tableOptions) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL, *_3 = NULL, *_7 = NULL; - zval *name_param = NULL, container, data, session, _5, _6, _1$$3, _2$$3, _4$$3; - zval name; + zval *table_param = NULL, *schema_param = NULL; + zval table, schema, sql; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&container); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&session); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&sql); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schema) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); } else { - ZEPHIR_INIT_VAR(&name); - } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); - ZEPHIR_CALL_CE_STATIC(&container, phalcon_di_ce, "getdefault", &_0, 0); - zephir_check_call_status(); - if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, phalcon_session_exception_ce); - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "the 'session' service"); - ZEPHIR_CALL_CE_STATIC(&_2$$3, phalcon_session_exception_ce, "containerservicenotfound", &_3, 0, &_4$$3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 8, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Session/Bag.zep", 66); - ZEPHIR_MM_RESTORE(); - return; - } - ZEPHIR_INIT_VAR(&_5); - ZVAL_STRING(&_5, "session"); - ZEPHIR_CALL_METHOD(&session, &container, "getshared", NULL, 0, &_5); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), &container); - zephir_update_property_zval(this_ptr, ZEND_STRL("session"), &session); - zephir_read_property(&_6, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&data, &session, "get", NULL, 0, &_6); - zephir_check_call_status(); - if (Z_TYPE_P(&data) != IS_ARRAY) { - ZEPHIR_INIT_NVAR(&data); - array_init(&data); + ZEPHIR_INIT_VAR(&table); } - ZEPHIR_CALL_PARENT(NULL, phalcon_session_bag_ce, getThis(), "__construct", &_7, 0, &data); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Session_Bag, clear) -{ - zval _1, _2; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_PARENT(NULL, phalcon_session_bag_ce, getThis(), "clear", &_0, 0); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("session"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_2, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_1, "remove", NULL, 0, &_2); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Session_Bag, getDI) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "container"); -} - -static PHP_METHOD(Phalcon_Session_Bag, init) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *data_param = NULL; - zval data; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&data); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(data) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &data_param); - if (!data_param) { - ZEPHIR_INIT_VAR(&data); - array_init(&data); + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); } else { - ZEPHIR_OBS_COPY_OR_DUP(&data, data_param); + zephir_get_strval(&schema, schema_param); } - ZEPHIR_CALL_PARENT(NULL, phalcon_session_bag_ce, getThis(), "init", &_0, 0, &data); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + ZEPHIR_INIT_VAR(&sql); + ZVAL_STRING(&sql, "SELECT TABLES.TABLE_TYPE AS table_type,TABLES.AUTO_INCREMENT AS auto_increment,TABLES.ENGINE AS engine,TABLES.TABLE_COLLATION AS table_collation FROM INFORMATION_SCHEMA.TABLES WHERE "); + if (!(ZEPHIR_IS_EMPTY(&schema))) { + ZEPHIR_CONCAT_VSVSVS(return_value, &sql, "TABLES.TABLE_SCHEMA = '", &schema, "' AND TABLES.TABLE_NAME = '", &table, "'"); + RETURN_MM(); + } + ZEPHIR_CONCAT_VSVS(return_value, &sql, "TABLES.TABLE_SCHEMA = DATABASE() AND TABLES.TABLE_NAME = '", &table, "'"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Session_Bag, remove) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, truncateTable) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *element_param = NULL, _1, _2, _3; - zval element; + zval *tableName_param = NULL, *schemaName_param = NULL; + zval tableName, schemaName, table; zval *this_ptr = getThis(); - ZVAL_UNDEF(&element); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&table); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(element) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &element_param); - if (UNEXPECTED(Z_TYPE_P(element_param) != IS_STRING && Z_TYPE_P(element_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'element' must be of the type string")); + zephir_fetch_params(1, 2, 0, &tableName_param, &schemaName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(element_param) == IS_STRING)) { - zephir_get_strval(&element, element_param); + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_INIT_VAR(&element); + ZEPHIR_INIT_VAR(&tableName); } - - - ZEPHIR_CALL_PARENT(NULL, phalcon_session_bag_ce, getThis(), "remove", &_0, 0, &element); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("session"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_2, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_3, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_1, "set", NULL, 0, &_2, &_3); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Session_Bag, set) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *element_param = NULL, *value, value_sub, _1, _2, _3; - zval element; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&element); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(element) - Z_PARAM_ZVAL(value) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &element_param, &value); - if (UNEXPECTED(Z_TYPE_P(element_param) != IS_STRING && Z_TYPE_P(element_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'element' must be of the type string")); + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(element_param) == IS_STRING)) { - zephir_get_strval(&element, element_param); + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); } else { - ZEPHIR_INIT_VAR(&element); + ZEPHIR_INIT_VAR(&schemaName); } - ZEPHIR_CALL_PARENT(NULL, phalcon_session_bag_ce, getThis(), "set", &_0, 0, &element, value); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("session"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_2, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_3, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_1, "set", NULL, 0, &_2, &_3); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Session_Bag, setDI) -{ - zval *container, container_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&container_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &container); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("container"), container); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Session_Exception) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Session, Exception, phalcon, session_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Session_Manager) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Session, Manager, phalcon, session_manager, phalcon_di_abstractinjectionaware_ce, phalcon_session_manager_method_entry, 0); - - zend_declare_property_null(phalcon_session_manager_ce, SL("adapter"), ZEND_ACC_PRIVATE); - zend_declare_property_string(phalcon_session_manager_ce, SL("name"), "", ZEND_ACC_PRIVATE); - zend_declare_property_null(phalcon_session_manager_ce, SL("options"), ZEND_ACC_PRIVATE); - zend_declare_property_string(phalcon_session_manager_ce, SL("uniqueId"), "", ZEND_ACC_PRIVATE); - phalcon_session_manager_ce->create_object = zephir_init_properties_Phalcon_Session_Manager; - - zend_class_implements(phalcon_session_manager_ce, 1, phalcon_session_managerinterface_ce); - return SUCCESS; + if (!(ZEPHIR_IS_EMPTY(&schemaName))) { + ZEPHIR_INIT_VAR(&table); + ZEPHIR_CONCAT_SVSVS(&table, "`", &schemaName, "`.`", &tableName, "`"); + } else { + ZEPHIR_INIT_NVAR(&table); + ZEPHIR_CONCAT_SVS(&table, "`", &tableName, "`"); + } + ZEPHIR_CONCAT_SV(return_value, "TRUNCATE TABLE ", &table); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Session_Manager, __construct) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, viewExists) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *options_param = NULL; - zval options; + zval *viewName_param = NULL, *schemaName_param = NULL; + zval viewName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&options); + ZVAL_UNDEF(&viewName); + ZVAL_UNDEF(&schemaName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(viewName) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + Z_PARAM_STR_OR_NULL(schemaName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &options_param); - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); + zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName_param); + if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(&viewName, viewName_param); } else { - zephir_get_arrval(&options, options_param); + ZEPHIR_INIT_VAR(&viewName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + zephir_get_strval(&schemaName, schemaName_param); } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setoptions", NULL, 0, &options); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Session_Manager, __get) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL; - zval key; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&key); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - zephir_get_strval(&key, key_param); - - - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "get", NULL, 0, &key); - zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&schemaName))) { + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT IF(COUNT(*) > 0, 1, 0) FROM `INFORMATION_SCHEMA`.`VIEWS` WHERE `TABLE_NAME`= '", &viewName, "' AND `TABLE_SCHEMA`='", &schemaName, "'"); + RETURN_MM(); + } + ZEPHIR_CONCAT_SVS(return_value, "SELECT IF(COUNT(*) > 0, 1, 0) FROM `INFORMATION_SCHEMA`.`VIEWS` WHERE `TABLE_NAME`='", &viewName, "' AND `TABLE_SCHEMA` = DATABASE()"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Session_Manager, __isset) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, getTableOptions) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL; - zval key; + zval *definition_param = NULL, options, engine, autoIncrement, tableCollation, collationParts, _0$$5, _1$$7, _2$$9, _3$$9, _4$$9; + zval definition, tableOptions; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); + ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&tableOptions); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&engine); + ZVAL_UNDEF(&autoIncrement); + ZVAL_UNDEF(&tableCollation); + ZVAL_UNDEF(&collationParts); + ZVAL_UNDEF(&_0$$5); + ZVAL_UNDEF(&_1$$7); + ZVAL_UNDEF(&_2$$9); + ZVAL_UNDEF(&_3$$9); + ZVAL_UNDEF(&_4$$9); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + Z_PARAM_ARRAY(definition) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - zephir_get_strval(&key, key_param); + zephir_fetch_params(1, 1, 0, &definition_param); + ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "has", NULL, 0, &key); - zephir_check_call_status(); + ZEPHIR_OBS_VAR(&options); + if (!(zephir_array_isset_string_fetch(&options, &definition, SL("options"), 0))) { + RETURN_MM_STRING(""); + } + ZEPHIR_INIT_VAR(&tableOptions); + array_init(&tableOptions); + ZEPHIR_OBS_VAR(&engine); + if (zephir_array_isset_string_fetch(&engine, &options, SL("ENGINE"), 0)) { + if (zephir_is_true(&engine)) { + ZEPHIR_INIT_VAR(&_0$$5); + ZEPHIR_CONCAT_SV(&_0$$5, "ENGINE=", &engine); + zephir_array_append(&tableOptions, &_0$$5, PH_SEPARATE, "phalcon/Db/Dialect/Mysql.zep", 857); + } + } + ZEPHIR_OBS_VAR(&autoIncrement); + if (zephir_array_isset_string_fetch(&autoIncrement, &options, SL("AUTO_INCREMENT"), 0)) { + if (zephir_is_true(&autoIncrement)) { + ZEPHIR_INIT_VAR(&_1$$7); + ZEPHIR_CONCAT_SV(&_1$$7, "AUTO_INCREMENT=", &autoIncrement); + zephir_array_append(&tableOptions, &_1$$7, PH_SEPARATE, "phalcon/Db/Dialect/Mysql.zep", 866); + } + } + ZEPHIR_OBS_VAR(&tableCollation); + if (zephir_array_isset_string_fetch(&tableCollation, &options, SL("TABLE_COLLATION"), 0)) { + if (zephir_is_true(&tableCollation)) { + ZEPHIR_INIT_VAR(&collationParts); + zephir_fast_explode_str(&collationParts, SL("_"), &tableCollation, LONG_MAX); + zephir_array_fetch_long(&_2$$9, &collationParts, 0, PH_NOISY | PH_READONLY, "phalcon/Db/Dialect/Mysql.zep", 876); + ZEPHIR_INIT_VAR(&_3$$9); + ZEPHIR_CONCAT_SV(&_3$$9, "DEFAULT CHARSET=", &_2$$9); + zephir_array_append(&tableOptions, &_3$$9, PH_SEPARATE, "phalcon/Db/Dialect/Mysql.zep", 876); + ZEPHIR_INIT_VAR(&_4$$9); + ZEPHIR_CONCAT_SV(&_4$$9, "COLLATE=", &tableCollation); + zephir_array_append(&tableOptions, &_4$$9, PH_SEPARATE, "phalcon/Db/Dialect/Mysql.zep", 877); + } + } + zephir_fast_join_str(return_value, SL(" "), &tableOptions); RETURN_MM(); } -static PHP_METHOD(Phalcon_Session_Manager, __set) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, checkColumnSizeAndScale) { + zval columnSql; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *value, value_sub; - zval key; + zval *column, column_sub, _0, _1$$3, _2$$3, _3$$3, _4$$4, _5$$4; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&columnSql); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(key) - Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &key_param, &value); - zephir_get_strval(&key, key_param); + zephir_fetch_params(1, 1, 0, &column); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "set", NULL, 0, &key, value); + ZEPHIR_CALL_METHOD(&_0, column, "getsize", NULL, 0); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + if (zephir_is_true(&_0)) { + ZEPHIR_CALL_METHOD(&_1$$3, column, "getsize", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2$$3); + ZEPHIR_CONCAT_SV(&_2$$3, "(", &_1$$3); + zephir_concat_self(&columnSql, &_2$$3); + ZEPHIR_CALL_METHOD(&_3$$3, column, "getscale", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_3$$3)) { + ZEPHIR_CALL_METHOD(&_4$$4, column, "getscale", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_5$$4); + ZEPHIR_CONCAT_SVS(&_5$$4, ",", &_4$$4, ")"); + zephir_concat_self(&columnSql, &_5$$4); + } else { + zephir_concat_self_str(&columnSql, ")", sizeof(")") - 1); + } + } + RETURN_CTOR(&columnSql); } -static PHP_METHOD(Phalcon_Session_Manager, __unset) +static PHP_METHOD(Phalcon_Db_Dialect_Mysql, checkColumnUnsigned) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL; - zval key; + zval *column, column_sub, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - zephir_get_strval(&key, key_param); + zephir_fetch_params(1, 1, 0, &column); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "remove", NULL, 0, &key); + ZEPHIR_CALL_METHOD(&_0, column, "isunsigned", NULL, 0); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + if (zephir_is_true(&_0)) { + RETURN_MM_STRING(" UNSIGNED"); + } + RETURN_MM_STRING(""); } -static PHP_METHOD(Phalcon_Session_Manager, destroy) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval _SESSION, _0; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&_SESSION); - ZVAL_UNDEF(&_0); - ZEPHIR_MM_GROW(); - zephir_get_global(&_SESSION, SL("_SESSION")); +#ifdef HAVE_CONFIG_H +#endif - ZEPHIR_CALL_METHOD(&_0, this_ptr, "exists", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_TRUE_IDENTICAL(&_0)) { - ZEPHIR_CALL_FUNCTION(NULL, "session_destroy", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_SESSION); - array_init(&_SESSION); - } - ZEPHIR_MM_RESTORE(); -} -static PHP_METHOD(Phalcon_Session_Manager, exists) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZEPHIR_MM_GROW(); +ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Postgresql) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Postgresql, phalcon, db_dialect_postgresql, phalcon_db_dialect_ce, phalcon_db_dialect_postgresql_method_entry, 0); - ZEPHIR_CALL_FUNCTION(&_0, "session_status", NULL, 0); - zephir_check_call_status(); - RETURN_MM_BOOL(ZEPHIR_IS_LONG_IDENTICAL(&_0, 2)); + zend_declare_property_string(phalcon_db_dialect_postgresql_ce, SL("escapeChar"), "\"", ZEND_ACC_PROTECTED); + return SUCCESS; } -static PHP_METHOD(Phalcon_Session_Manager, get) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addColumn) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_1 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool remove; - zval *key_param = NULL, *defaultValue = NULL, defaultValue_sub, *remove_param = NULL, _SESSION, __$null, uniqueKey, value, _0; - zval key; + zval *tableName_param = NULL, *schemaName_param = NULL, *column, column_sub, columnDefinition, _0, _1, _2, _3, _4, _7, _5$$3, _6$$3; + zval tableName, schemaName, sql; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_UNDEF(&_SESSION); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&uniqueKey); - ZVAL_UNDEF(&value); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(&columnDefinition); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_STR(key) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(defaultValue) - Z_PARAM_BOOL(remove) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_get_global(&_SESSION, SL("_SESSION")); - zephir_fetch_params(1, 1, 2, &key_param, &defaultValue, &remove_param); - zephir_get_strval(&key, key_param); - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); } - if (!remove_param) { - remove = 0; + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - remove = zephir_get_boolval(remove_param); + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); } - ZEPHIR_INIT_VAR(&value); - ZVAL_NULL(&value); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "exists", NULL, 0); + ZEPHIR_CALL_METHOD(&columnDefinition, this_ptr, "getcolumndefinition", NULL, 0, column); zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_0)) { - RETURN_CCTOR(&value); - } - ZEPHIR_CALL_METHOD(&uniqueKey, this_ptr, "getuniquekey", NULL, 0, &key); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); zephir_check_call_status(); - ZEPHIR_CALL_CE_STATIC(&value, phalcon_helper_arr_ce, "get", &_1, 16, &_SESSION, &uniqueKey, defaultValue); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_CONCAT_SVS(&_1, "ALTER TABLE ", &_0, " ADD COLUMN "); + zephir_get_strval(&sql, &_1); + ZEPHIR_CALL_METHOD(&_2, column, "getname", NULL, 0); zephir_check_call_status(); - if (remove) { - zephir_array_unset(&_SESSION, &uniqueKey, PH_SEPARATE); + ZEPHIR_INIT_VAR(&_3); + ZEPHIR_CONCAT_SVSV(&_3, "\"", &_2, "\" ", &columnDefinition); + zephir_concat_self(&sql, &_3); + ZEPHIR_CALL_METHOD(&_4, column, "hasdefault", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_4)) { + ZEPHIR_CALL_METHOD(&_5$$3, this_ptr, "castdefault", NULL, 0, column); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_6$$3); + ZEPHIR_CONCAT_SV(&_6$$3, " DEFAULT ", &_5$$3); + zephir_concat_self(&sql, &_6$$3); } - RETURN_CCTOR(&value); -} - -static PHP_METHOD(Phalcon_Session_Manager, getAdapter) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "adapter"); -} - -static PHP_METHOD(Phalcon_Session_Manager, getId) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - - - ZEPHIR_MM_GROW(); - - ZEPHIR_RETURN_CALL_FUNCTION("session_id", NULL, 0); + ZEPHIR_CALL_METHOD(&_7, column, "isnotnull", NULL, 0); zephir_check_call_status(); - RETURN_MM(); + if (zephir_is_true(&_7)) { + zephir_concat_self_str(&sql, " NOT NULL", sizeof(" NOT NULL") - 1); + } else { + zephir_concat_self_str(&sql, " NULL", sizeof(" NULL") - 1); + } + RETURN_CTOR(&sql); } -static PHP_METHOD(Phalcon_Session_Manager, getName) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addForeignKey) { - zval _0, _1, _2$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, *reference, reference_sub, onDelete, onUpdate, _0, _1, _2, _5, _6, _7, _8, _9, _10, _3$$3, _4$$3, _11$$4, _12$$5; + zval tableName, schemaName, sql; zval *this_ptr = getThis(); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&reference_sub); + ZVAL_UNDEF(&onDelete); + ZVAL_UNDEF(&onUpdate); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_11$$4); + ZVAL_UNDEF(&_12$$5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(reference, phalcon_db_referenceinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &reference); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("name"), PH_NOISY_CC | PH_READONLY); + + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); + zephir_check_call_status(); ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, ""); - if (ZEPHIR_IS_IDENTICAL(&_1, &_0)) { - ZEPHIR_CALL_FUNCTION(&_2$$3, "session_name", NULL, 0); + ZEPHIR_CONCAT_SVS(&_1, "ALTER TABLE ", &_0, " ADD"); + zephir_get_strval(&sql, &_1); + ZEPHIR_CALL_METHOD(&_2, reference, "getname", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_2)) { + ZEPHIR_CALL_METHOD(&_3$$3, reference, "getname", NULL, 0); zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &_2$$3); + ZEPHIR_INIT_VAR(&_4$$3); + ZEPHIR_CONCAT_SVS(&_4$$3, " CONSTRAINT \"", &_3$$3, "\""); + zephir_concat_self(&sql, &_4$$3); } - RETURN_MM_MEMBER(getThis(), "name"); + ZEPHIR_CALL_METHOD(&_6, reference, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "getcolumnlist", NULL, 67, &_6); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_7, reference, "getreferencedtable", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_9, reference, "getreferencedcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_8, this_ptr, "getcolumnlist", NULL, 67, &_9); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_10); + ZEPHIR_CONCAT_SVSSVSVS(&_10, " FOREIGN KEY (", &_5, ")", " REFERENCES \"", &_7, "\" (", &_8, ")"); + zephir_concat_self(&sql, &_10); + ZEPHIR_CALL_METHOD(&onDelete, reference, "getondelete", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&onDelete))) { + ZEPHIR_INIT_VAR(&_11$$4); + ZEPHIR_CONCAT_SV(&_11$$4, " ON DELETE ", &onDelete); + zephir_concat_self(&sql, &_11$$4); + } + ZEPHIR_CALL_METHOD(&onUpdate, reference, "getonupdate", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&onUpdate))) { + ZEPHIR_INIT_VAR(&_12$$5); + ZEPHIR_CONCAT_SV(&_12$$5, " ON UPDATE ", &onUpdate); + zephir_concat_self(&sql, &_12$$5); + } + RETURN_CTOR(&sql); } -static PHP_METHOD(Phalcon_Session_Manager, has) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addIndex) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, _SESSION, uniqueKey, _0; - zval key; + zval *tableName_param = NULL, *schemaName_param = NULL, *index, index_sub, indexType, _0, _2, _3, _4, _5, _6, _7, _1$$4; + zval tableName, schemaName, sql; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_SESSION); - ZVAL_UNDEF(&uniqueKey); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&index_sub); + ZVAL_UNDEF(&indexType); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_1$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(index, phalcon_db_indexinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_get_global(&_SESSION, SL("_SESSION")); - zephir_fetch_params(1, 1, 0, &key_param); - zephir_get_strval(&key, key_param); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "exists", NULL, 0); + ZEPHIR_CALL_METHOD(&_0, index, "getname", NULL, 0); zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_0)) { - RETURN_MM_BOOL(0); + if (ZEPHIR_IS_STRING_IDENTICAL(&_0, "PRIMARY")) { + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "addprimarykey", NULL, 0, &tableName, &schemaName, index); + zephir_check_call_status(); + RETURN_MM(); } - ZEPHIR_CALL_METHOD(&uniqueKey, this_ptr, "getuniquekey", NULL, 0, &key); + ZEPHIR_INIT_VAR(&sql); + ZVAL_STRING(&sql, "CREATE"); + ZEPHIR_CALL_METHOD(&indexType, index, "gettype", NULL, 0); zephir_check_call_status(); - RETURN_MM_BOOL(zephir_array_isset(&_SESSION, &uniqueKey)); -} - -static PHP_METHOD(Phalcon_Session_Manager, getOptions) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "options"); + if (!(ZEPHIR_IS_EMPTY(&indexType))) { + ZEPHIR_INIT_VAR(&_1$$4); + ZEPHIR_CONCAT_SV(&_1$$4, " ", &indexType); + zephir_concat_self(&sql, &_1$$4); + } + ZEPHIR_CALL_METHOD(&_2, index, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_4); + ZEPHIR_CONCAT_SVSV(&_4, " INDEX \"", &_2, "\" ON ", &_3); + zephir_concat_self(&sql, &_4); + ZEPHIR_CALL_METHOD(&_6, index, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "getcolumnlist", NULL, 67, &_6); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_7); + ZEPHIR_CONCAT_SVS(&_7, " (", &_5, ")"); + zephir_concat_self(&sql, &_7); + RETURN_CTOR(&sql); } -static PHP_METHOD(Phalcon_Session_Manager, regenerateId) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, addPrimaryKey) { - zend_bool delete = 0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *deleteOldSession = NULL, deleteOldSession_sub, __$true, _0, _1$$3; + zval *tableName_param = NULL, *schemaName_param = NULL, *index, index_sub, _0, _1, _2; + zval tableName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&deleteOldSession_sub); - ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&index_sub); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL(deleteOldSession) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(index, phalcon_db_indexinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &deleteOldSession); - if (!deleteOldSession) { - deleteOldSession = &deleteOldSession_sub; - deleteOldSession = &__$true; + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); } - delete = zephir_get_boolval(deleteOldSession); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "exists", NULL, 0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); zephir_check_call_status(); - if (ZEPHIR_IS_TRUE_IDENTICAL(&_0)) { - ZVAL_BOOL(&_1$$3, (delete ? 1 : 0)); - ZEPHIR_CALL_FUNCTION(NULL, "session_regenerate_id", NULL, 0, &_1$$3); - zephir_check_call_status(); - } - RETURN_THIS(); + ZEPHIR_CALL_METHOD(&_2, index, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "getcolumnlist", NULL, 67, &_2); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVSVS(return_value, "ALTER TABLE ", &_0, " ADD CONSTRAINT \"", &tableName, "_PRIMARY\" PRIMARY KEY (", &_1, ")"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Session_Manager, remove) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createTable) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_4 = NULL, *_9 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, _SESSION, _0, uniqueKey; - zval key; + zval definition, createLines, primaryColumns; + zval *tableName_param = NULL, *schemaName_param = NULL, *definition_param = NULL, temporary, options, table, columns, column, indexes, index, reference, references, indexName, indexType, onDelete, onUpdate, columnDefinition, *_2, _3, _82, _83, _0$$5, _1$$6, _5$$7, _6$$7, _7$$7, _11$$7, _12$$7, _14$$7, _8$$8, _10$$8, _13$$11, _15$$12, _16$$12, _17$$12, _18$$13, _19$$13, _20$$13, _23$$13, _24$$13, _26$$13, _21$$14, _22$$14, _25$$17, _27$$18, _28$$18, _29$$18, _30$$19, _31$$19, *_32$$20, _33$$20, _34$$22, _35$$22, _36$$22, _37$$24, _38$$24, _39$$24, _40$$25, _41$$25, _42$$25, _43$$25, _44$$25, _45$$25, _46$$28, _47$$28, _48$$28, _49$$30, _50$$30, _51$$30, _52$$31, _53$$31, _54$$31, _55$$31, _56$$31, _57$$31, *_58$$33, _59$$33, _60$$34, _61$$34, _62$$34, _63$$34, _64$$34, _65$$34, _66$$34, _67$$34, _68$$34, _69$$35, _70$$36, _71$$37, _72$$37, _73$$37, _74$$37, _75$$37, _76$$37, _77$$37, _78$$37, _79$$37, _80$$38, _81$$39, _84$$40, _85$$40; + zval tableName, schemaName, indexSql, indexSqlAfterCreate, columnLine, referenceSql, sql, _86; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_SESSION); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&uniqueKey); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&indexSql); + ZVAL_UNDEF(&indexSqlAfterCreate); + ZVAL_UNDEF(&columnLine); + ZVAL_UNDEF(&referenceSql); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&_86); + ZVAL_UNDEF(&temporary); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&column); + ZVAL_UNDEF(&indexes); + ZVAL_UNDEF(&index); + ZVAL_UNDEF(&reference); + ZVAL_UNDEF(&references); + ZVAL_UNDEF(&indexName); + ZVAL_UNDEF(&indexType); + ZVAL_UNDEF(&onDelete); + ZVAL_UNDEF(&onUpdate); + ZVAL_UNDEF(&columnDefinition); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_82); + ZVAL_UNDEF(&_83); + ZVAL_UNDEF(&_0$$5); + ZVAL_UNDEF(&_1$$6); + ZVAL_UNDEF(&_5$$7); + ZVAL_UNDEF(&_6$$7); + ZVAL_UNDEF(&_7$$7); + ZVAL_UNDEF(&_11$$7); + ZVAL_UNDEF(&_12$$7); + ZVAL_UNDEF(&_14$$7); + ZVAL_UNDEF(&_8$$8); + ZVAL_UNDEF(&_10$$8); + ZVAL_UNDEF(&_13$$11); + ZVAL_UNDEF(&_15$$12); + ZVAL_UNDEF(&_16$$12); + ZVAL_UNDEF(&_17$$12); + ZVAL_UNDEF(&_18$$13); + ZVAL_UNDEF(&_19$$13); + ZVAL_UNDEF(&_20$$13); + ZVAL_UNDEF(&_23$$13); + ZVAL_UNDEF(&_24$$13); + ZVAL_UNDEF(&_26$$13); + ZVAL_UNDEF(&_21$$14); + ZVAL_UNDEF(&_22$$14); + ZVAL_UNDEF(&_25$$17); + ZVAL_UNDEF(&_27$$18); + ZVAL_UNDEF(&_28$$18); + ZVAL_UNDEF(&_29$$18); + ZVAL_UNDEF(&_30$$19); + ZVAL_UNDEF(&_31$$19); + ZVAL_UNDEF(&_33$$20); + ZVAL_UNDEF(&_34$$22); + ZVAL_UNDEF(&_35$$22); + ZVAL_UNDEF(&_36$$22); + ZVAL_UNDEF(&_37$$24); + ZVAL_UNDEF(&_38$$24); + ZVAL_UNDEF(&_39$$24); + ZVAL_UNDEF(&_40$$25); + ZVAL_UNDEF(&_41$$25); + ZVAL_UNDEF(&_42$$25); + ZVAL_UNDEF(&_43$$25); + ZVAL_UNDEF(&_44$$25); + ZVAL_UNDEF(&_45$$25); + ZVAL_UNDEF(&_46$$28); + ZVAL_UNDEF(&_47$$28); + ZVAL_UNDEF(&_48$$28); + ZVAL_UNDEF(&_49$$30); + ZVAL_UNDEF(&_50$$30); + ZVAL_UNDEF(&_51$$30); + ZVAL_UNDEF(&_52$$31); + ZVAL_UNDEF(&_53$$31); + ZVAL_UNDEF(&_54$$31); + ZVAL_UNDEF(&_55$$31); + ZVAL_UNDEF(&_56$$31); + ZVAL_UNDEF(&_57$$31); + ZVAL_UNDEF(&_59$$33); + ZVAL_UNDEF(&_60$$34); + ZVAL_UNDEF(&_61$$34); + ZVAL_UNDEF(&_62$$34); + ZVAL_UNDEF(&_63$$34); + ZVAL_UNDEF(&_64$$34); + ZVAL_UNDEF(&_65$$34); + ZVAL_UNDEF(&_66$$34); + ZVAL_UNDEF(&_67$$34); + ZVAL_UNDEF(&_68$$34); + ZVAL_UNDEF(&_69$$35); + ZVAL_UNDEF(&_70$$36); + ZVAL_UNDEF(&_71$$37); + ZVAL_UNDEF(&_72$$37); + ZVAL_UNDEF(&_73$$37); + ZVAL_UNDEF(&_74$$37); + ZVAL_UNDEF(&_75$$37); + ZVAL_UNDEF(&_76$$37); + ZVAL_UNDEF(&_77$$37); + ZVAL_UNDEF(&_78$$37); + ZVAL_UNDEF(&_79$$37); + ZVAL_UNDEF(&_80$$38); + ZVAL_UNDEF(&_81$$39); + ZVAL_UNDEF(&_84$$40); + ZVAL_UNDEF(&_85$$40); + ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&createLines); + ZVAL_UNDEF(&primaryColumns); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_ARRAY(definition) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_get_global(&_SESSION, SL("_SESSION")); - zephir_fetch_params(1, 1, 0, &key_param); - zephir_get_strval(&key, key_param); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &definition_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "exists", NULL, 0); + ZEPHIR_OBS_VAR(&columns); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&columns, &definition, SL("columns"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/Db/Dialect/Postgresql.zep", 134); + return; + } + ZEPHIR_CALL_METHOD(&table, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_0)) { - RETURN_MM_NULL(); + ZEPHIR_INIT_VAR(&temporary); + ZVAL_BOOL(&temporary, 0); + ZEPHIR_OBS_VAR(&options); + if (zephir_array_isset_string_fetch(&options, &definition, SL("options"), 0)) { + ZEPHIR_OBS_NVAR(&temporary); + zephir_array_isset_string_fetch(&temporary, &options, SL("temporary"), 0); + } + if (zephir_is_true(&temporary)) { + ZEPHIR_INIT_VAR(&_0$$5); + ZEPHIR_CONCAT_SVS(&_0$$5, "CREATE TEMPORARY TABLE ", &table, " (\n\t"); + zephir_get_strval(&sql, &_0$$5); + } else { + ZEPHIR_INIT_VAR(&_1$$6); + ZEPHIR_CONCAT_SVS(&_1$$6, "CREATE TABLE ", &table, " (\n\t"); + zephir_get_strval(&sql, &_1$$6); + } + ZEPHIR_INIT_VAR(&indexSqlAfterCreate); + ZEPHIR_INIT_VAR(&createLines); + array_init(&createLines); + ZEPHIR_INIT_VAR(&primaryColumns); + array_init(&primaryColumns); + zephir_is_iterable(&columns, 0, "phalcon/Db/Dialect/Postgresql.zep", 198); + if (Z_TYPE_P(&columns) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&columns), _2) + { + ZEPHIR_INIT_NVAR(&column); + ZVAL_COPY(&column, _2); + ZEPHIR_CALL_METHOD(&columnDefinition, this_ptr, "getcolumndefinition", &_4, 0, &column); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_5$$7, &column, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_6$$7); + ZEPHIR_CONCAT_SVSV(&_6$$7, "\"", &_5$$7, "\" ", &columnDefinition); + zephir_get_strval(&columnLine, &_6$$7); + ZEPHIR_CALL_METHOD(&_7$$7, &column, "hasdefault", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_7$$7)) { + ZEPHIR_CALL_METHOD(&_8$$8, this_ptr, "castdefault", &_9, 0, &column); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_10$$8); + ZEPHIR_CONCAT_SV(&_10$$8, " DEFAULT ", &_8$$8); + zephir_concat_self(&columnLine, &_10$$8); + } + ZEPHIR_CALL_METHOD(&_11$$7, &column, "isnotnull", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_11$$7)) { + zephir_concat_self_str(&columnLine, " NOT NULL", sizeof(" NOT NULL") - 1); + } else { + zephir_concat_self_str(&columnLine, " NULL", sizeof(" NULL") - 1); + } + ZEPHIR_CALL_METHOD(&_12$$7, &column, "isprimary", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_12$$7)) { + ZEPHIR_CALL_METHOD(&_13$$11, &column, "getname", NULL, 0); + zephir_check_call_status(); + zephir_array_append(&primaryColumns, &_13$$11, PH_SEPARATE, "phalcon/Db/Dialect/Postgresql.zep", 185); + } + zephir_array_append(&createLines, &columnLine, PH_SEPARATE, "phalcon/Db/Dialect/Postgresql.zep", 188); + ZEPHIR_CALL_METHOD(&_14$$7, &column, "getcomment", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_14$$7)) { + ZEPHIR_CALL_METHOD(&_15$$12, &column, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_16$$12, &column, "getcomment", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_17$$12); + ZEPHIR_CONCAT_SVSVSVS(&_17$$12, " COMMENT ON COLUMN ", &table, ".\"", &_15$$12, "\" IS '", &_16$$12, "';"); + zephir_concat_self(&indexSqlAfterCreate, &_17$$12); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &columns, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3, &columns, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3)) { + break; + } + ZEPHIR_CALL_METHOD(&column, &columns, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&columnDefinition, this_ptr, "getcolumndefinition", &_4, 0, &column); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_18$$13, &column, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_19$$13); + ZEPHIR_CONCAT_SVSV(&_19$$13, "\"", &_18$$13, "\" ", &columnDefinition); + zephir_get_strval(&columnLine, &_19$$13); + ZEPHIR_CALL_METHOD(&_20$$13, &column, "hasdefault", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_20$$13)) { + ZEPHIR_CALL_METHOD(&_21$$14, this_ptr, "castdefault", &_9, 0, &column); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_22$$14); + ZEPHIR_CONCAT_SV(&_22$$14, " DEFAULT ", &_21$$14); + zephir_concat_self(&columnLine, &_22$$14); + } + ZEPHIR_CALL_METHOD(&_23$$13, &column, "isnotnull", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_23$$13)) { + zephir_concat_self_str(&columnLine, " NOT NULL", sizeof(" NOT NULL") - 1); + } else { + zephir_concat_self_str(&columnLine, " NULL", sizeof(" NULL") - 1); + } + ZEPHIR_CALL_METHOD(&_24$$13, &column, "isprimary", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_24$$13)) { + ZEPHIR_CALL_METHOD(&_25$$17, &column, "getname", NULL, 0); + zephir_check_call_status(); + zephir_array_append(&primaryColumns, &_25$$17, PH_SEPARATE, "phalcon/Db/Dialect/Postgresql.zep", 185); + } + zephir_array_append(&createLines, &columnLine, PH_SEPARATE, "phalcon/Db/Dialect/Postgresql.zep", 188); + ZEPHIR_CALL_METHOD(&_26$$13, &column, "getcomment", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_26$$13)) { + ZEPHIR_CALL_METHOD(&_27$$18, &column, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_28$$18, &column, "getcomment", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_29$$18); + ZEPHIR_CONCAT_SVSVSVS(&_29$$18, " COMMENT ON COLUMN ", &table, ".\"", &_27$$18, "\" IS '", &_28$$18, "';"); + zephir_concat_self(&indexSqlAfterCreate, &_29$$18); + } + ZEPHIR_CALL_METHOD(NULL, &columns, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&column); + if (!(ZEPHIR_IS_EMPTY(&primaryColumns))) { + ZEPHIR_CALL_METHOD(&_30$$19, this_ptr, "getcolumnlist", NULL, 67, &primaryColumns); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_31$$19); + ZEPHIR_CONCAT_SVS(&_31$$19, "PRIMARY KEY (", &_30$$19, ")"); + zephir_array_append(&createLines, &_31$$19, PH_SEPARATE, "phalcon/Db/Dialect/Postgresql.zep", 199); + } + ZEPHIR_OBS_VAR(&indexes); + if (zephir_array_isset_string_fetch(&indexes, &definition, SL("indexes"), 0)) { + zephir_is_iterable(&indexes, 0, "phalcon/Db/Dialect/Postgresql.zep", 227); + if (Z_TYPE_P(&indexes) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&indexes), _32$$20) + { + ZEPHIR_INIT_NVAR(&index); + ZVAL_COPY(&index, _32$$20); + ZEPHIR_CALL_METHOD(&indexName, &index, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&indexType, &index, "gettype", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&indexSql); + if (ZEPHIR_IS_STRING(&indexName, "PRIMARY")) { + ZEPHIR_CALL_METHOD(&_35$$22, &index, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_34$$22, this_ptr, "getcolumnlist", NULL, 67, &_35$$22); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_36$$22); + ZEPHIR_CONCAT_SVS(&_36$$22, "CONSTRAINT \"PRIMARY\" PRIMARY KEY (", &_34$$22, ")"); + zephir_get_strval(&indexSql, &_36$$22); + } else { + if (!(ZEPHIR_IS_EMPTY(&indexType))) { + ZEPHIR_CALL_METHOD(&_38$$24, &index, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_37$$24, this_ptr, "getcolumnlist", NULL, 67, &_38$$24); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_39$$24); + ZEPHIR_CONCAT_SVSVSVS(&_39$$24, "CONSTRAINT \"", &indexName, "\" ", &indexType, " (", &_37$$24, ")"); + zephir_get_strval(&indexSql, &_39$$24); + } else { + ZEPHIR_CALL_METHOD(&_40$$25, &index, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_41$$25, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_42$$25); + ZEPHIR_CONCAT_SVSV(&_42$$25, "CREATE INDEX \"", &_40$$25, "\" ON ", &_41$$25); + zephir_concat_self(&indexSqlAfterCreate, &_42$$25); + ZEPHIR_CALL_METHOD(&_44$$25, &index, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_43$$25, this_ptr, "getcolumnlist", NULL, 67, &_44$$25); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_45$$25); + ZEPHIR_CONCAT_SVS(&_45$$25, " (", &_43$$25, ");"); + zephir_concat_self(&indexSqlAfterCreate, &_45$$25); + } + } + if (!(ZEPHIR_IS_EMPTY(&indexSql))) { + zephir_array_append(&createLines, &indexSql, PH_SEPARATE, "phalcon/Db/Dialect/Postgresql.zep", 224); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &indexes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_33$$20, &indexes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_33$$20)) { + break; + } + ZEPHIR_CALL_METHOD(&index, &indexes, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&indexName, &index, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&indexType, &index, "gettype", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&indexSql); + if (ZEPHIR_IS_STRING(&indexName, "PRIMARY")) { + ZEPHIR_CALL_METHOD(&_47$$28, &index, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_46$$28, this_ptr, "getcolumnlist", NULL, 67, &_47$$28); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_48$$28); + ZEPHIR_CONCAT_SVS(&_48$$28, "CONSTRAINT \"PRIMARY\" PRIMARY KEY (", &_46$$28, ")"); + zephir_get_strval(&indexSql, &_48$$28); + } else { + if (!(ZEPHIR_IS_EMPTY(&indexType))) { + ZEPHIR_CALL_METHOD(&_50$$30, &index, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_49$$30, this_ptr, "getcolumnlist", NULL, 67, &_50$$30); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_51$$30); + ZEPHIR_CONCAT_SVSVSVS(&_51$$30, "CONSTRAINT \"", &indexName, "\" ", &indexType, " (", &_49$$30, ")"); + zephir_get_strval(&indexSql, &_51$$30); + } else { + ZEPHIR_CALL_METHOD(&_52$$31, &index, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_53$$31, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_54$$31); + ZEPHIR_CONCAT_SVSV(&_54$$31, "CREATE INDEX \"", &_52$$31, "\" ON ", &_53$$31); + zephir_concat_self(&indexSqlAfterCreate, &_54$$31); + ZEPHIR_CALL_METHOD(&_56$$31, &index, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_55$$31, this_ptr, "getcolumnlist", NULL, 67, &_56$$31); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_57$$31); + ZEPHIR_CONCAT_SVS(&_57$$31, " (", &_55$$31, ");"); + zephir_concat_self(&indexSqlAfterCreate, &_57$$31); + } + } + if (!(ZEPHIR_IS_EMPTY(&indexSql))) { + zephir_array_append(&createLines, &indexSql, PH_SEPARATE, "phalcon/Db/Dialect/Postgresql.zep", 224); + } + ZEPHIR_CALL_METHOD(NULL, &indexes, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&index); + } + ZEPHIR_OBS_VAR(&references); + if (zephir_array_isset_string_fetch(&references, &definition, SL("references"), 0)) { + zephir_is_iterable(&references, 0, "phalcon/Db/Dialect/Postgresql.zep", 255); + if (Z_TYPE_P(&references) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&references), _58$$33) + { + ZEPHIR_INIT_NVAR(&reference); + ZVAL_COPY(&reference, _58$$33); + ZEPHIR_CALL_METHOD(&_60$$34, &reference, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_62$$34, &reference, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_61$$34, this_ptr, "getcolumnlist", NULL, 67, &_62$$34); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_63$$34); + ZEPHIR_CONCAT_SVSVS(&_63$$34, "CONSTRAINT \"", &_60$$34, "\" FOREIGN KEY (", &_61$$34, ") REFERENCES "); + zephir_get_strval(&referenceSql, &_63$$34); + ZEPHIR_CALL_METHOD(&_65$$34, &reference, "getreferencedtable", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_64$$34, this_ptr, "preparetable", NULL, 0, &_65$$34, &schemaName); + zephir_check_call_status(); + zephir_concat_self(&referenceSql, &_64$$34); + ZEPHIR_CALL_METHOD(&_67$$34, &reference, "getreferencedcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_66$$34, this_ptr, "getcolumnlist", NULL, 67, &_67$$34); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_68$$34); + ZEPHIR_CONCAT_SVS(&_68$$34, " (", &_66$$34, ")"); + zephir_concat_self(&referenceSql, &_68$$34); + ZEPHIR_CALL_METHOD(&onDelete, &reference, "getondelete", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&onDelete))) { + ZEPHIR_INIT_NVAR(&_69$$35); + ZEPHIR_CONCAT_SV(&_69$$35, " ON DELETE ", &onDelete); + zephir_concat_self(&referenceSql, &_69$$35); + } + ZEPHIR_CALL_METHOD(&onUpdate, &reference, "getonupdate", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&onUpdate))) { + ZEPHIR_INIT_NVAR(&_70$$36); + ZEPHIR_CONCAT_SV(&_70$$36, " ON UPDATE ", &onUpdate); + zephir_concat_self(&referenceSql, &_70$$36); + } + zephir_array_append(&createLines, &referenceSql, PH_SEPARATE, "phalcon/Db/Dialect/Postgresql.zep", 253); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &references, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_59$$33, &references, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_59$$33)) { + break; + } + ZEPHIR_CALL_METHOD(&reference, &references, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_71$$37, &reference, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_73$$37, &reference, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_72$$37, this_ptr, "getcolumnlist", NULL, 67, &_73$$37); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_74$$37); + ZEPHIR_CONCAT_SVSVS(&_74$$37, "CONSTRAINT \"", &_71$$37, "\" FOREIGN KEY (", &_72$$37, ") REFERENCES "); + zephir_get_strval(&referenceSql, &_74$$37); + ZEPHIR_CALL_METHOD(&_76$$37, &reference, "getreferencedtable", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_75$$37, this_ptr, "preparetable", NULL, 0, &_76$$37, &schemaName); + zephir_check_call_status(); + zephir_concat_self(&referenceSql, &_75$$37); + ZEPHIR_CALL_METHOD(&_78$$37, &reference, "getreferencedcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_77$$37, this_ptr, "getcolumnlist", NULL, 67, &_78$$37); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_79$$37); + ZEPHIR_CONCAT_SVS(&_79$$37, " (", &_77$$37, ")"); + zephir_concat_self(&referenceSql, &_79$$37); + ZEPHIR_CALL_METHOD(&onDelete, &reference, "getondelete", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&onDelete))) { + ZEPHIR_INIT_NVAR(&_80$$38); + ZEPHIR_CONCAT_SV(&_80$$38, " ON DELETE ", &onDelete); + zephir_concat_self(&referenceSql, &_80$$38); + } + ZEPHIR_CALL_METHOD(&onUpdate, &reference, "getonupdate", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&onUpdate))) { + ZEPHIR_INIT_NVAR(&_81$$39); + ZEPHIR_CONCAT_SV(&_81$$39, " ON UPDATE ", &onUpdate); + zephir_concat_self(&referenceSql, &_81$$39); + } + zephir_array_append(&createLines, &referenceSql, PH_SEPARATE, "phalcon/Db/Dialect/Postgresql.zep", 253); + ZEPHIR_CALL_METHOD(NULL, &references, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&reference); } - ZEPHIR_CALL_METHOD(&uniqueKey, this_ptr, "getuniquekey", NULL, 0, &key); - zephir_check_call_status(); - zephir_array_unset(&_SESSION, &uniqueKey, PH_SEPARATE); - ZEPHIR_MM_RESTORE(); + ZEPHIR_INIT_VAR(&_82); + zephir_fast_join_str(&_82, SL(",\n\t"), &createLines); + ZEPHIR_INIT_VAR(&_83); + ZEPHIR_CONCAT_VS(&_83, &_82, "\n)"); + zephir_concat_self(&sql, &_83); + if (zephir_array_isset_string(&definition, SL("options"))) { + ZEPHIR_CALL_METHOD(&_84$$40, this_ptr, "gettableoptions", NULL, 0, &definition); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_85$$40); + ZEPHIR_CONCAT_SV(&_85$$40, " ", &_84$$40); + zephir_concat_self(&sql, &_85$$40); + } + ZEPHIR_INIT_VAR(&_86); + ZEPHIR_CONCAT_SV(&_86, ";", &indexSqlAfterCreate); + zephir_concat_self(&sql, &_86); + RETURN_CTOR(&sql); } -static PHP_METHOD(Phalcon_Session_Manager, set) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, createView) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *value, value_sub, _SESSION, uniqueKey, _0; - zval key; + zval definition; + zval *viewName_param = NULL, *definition_param = NULL, *schemaName_param = NULL, viewSql, _0; + zval viewName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&_SESSION); - ZVAL_UNDEF(&uniqueKey); + ZVAL_UNDEF(&viewName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&viewSql); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&definition); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(key) - Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(viewName) + Z_PARAM_ARRAY(definition) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schemaName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_get_global(&_SESSION, SL("_SESSION")); - zephir_fetch_params(1, 2, 0, &key_param, &value); - zephir_get_strval(&key, key_param); - - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "exists", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE_IDENTICAL(&_0)) { + zephir_fetch_params(1, 2, 1, &viewName_param, &definition_param, &schemaName_param); + if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); RETURN_MM_NULL(); } - ZEPHIR_CALL_METHOD(&uniqueKey, this_ptr, "getuniquekey", NULL, 0, &key); - zephir_check_call_status(); - zephir_array_update_zval(&_SESSION, &uniqueKey, value, PH_COPY | PH_SEPARATE); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Session_Manager, setAdapter) -{ - zval *adapter, adapter_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&adapter_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(adapter, php_session_iface_entry) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &adapter); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("adapter"), adapter); - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Session_Manager, setId) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *id_param = NULL, _0, _1$$3; - zval id, _2$$3; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&id); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(id) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &id_param); - zephir_get_strval(&id, id_param); + if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(&viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(&viewName); + } + ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + zephir_get_strval(&schemaName, schemaName_param); + } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "exists", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_IS_TRUE_IDENTICAL(&_0))) { - ZEPHIR_INIT_VAR(&_1$$3); - object_init_ex(&_1$$3, spl_ce_RuntimeException); - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_CONCAT_SS(&_2$$3, "The session has already been started. ", "To change the id, use regenerateId()"); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 270, &_2$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Session/Manager.zep", 254); - ZEPHIR_MM_RESTORE(); + ZEPHIR_OBS_VAR(&viewSql); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&viewSql, &definition, SL("sql"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/Db/Dialect/Postgresql.zep", 276); return; } - ZEPHIR_CALL_FUNCTION(NULL, "session_id", NULL, 0, &id); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &viewName, &schemaName); zephir_check_call_status(); - RETURN_THIS(); + ZEPHIR_CONCAT_SVSV(return_value, "CREATE VIEW ", &_0, " AS ", &viewSql); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Session_Manager, setName) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeColumns) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, _0, _1, _2, _3, _4; - zval name; + zval *table_param = NULL, *schema_param = NULL; + zval table, schema; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schema) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - zephir_get_strval(&name, name_param); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); + } else { + ZEPHIR_INIT_VAR(&table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); + } else { + zephir_get_strval(&schema, schema_param); + } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "exists", NULL, 0); - zephir_check_call_status(); - if (UNEXPECTED(zephir_is_true(&_0))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_InvalidArgumentException, "Cannot set session name after a session has started", "phalcon/Session/Manager.zep", 277); - return; - } - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "/^[\\p{L}\\p{N}_-]+$/u"); - ZEPHIR_INIT_VAR(&_3); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "/^[\\p{L}\\p{N}_-]+$/u"); - zephir_preg_match(&_3, &_4, &name, &_1, 0, 0 , 0 ); - if (UNEXPECTED(!zephir_is_true(&_3))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_InvalidArgumentException, "The name contains non alphanum characters", "phalcon/Session/Manager.zep", 283); - return; + if (ZEPHIR_IS_NULL(&schema)) { + ZEPHIR_INIT_NVAR(&schema); + ZVAL_STRING(&schema, "public"); } - zephir_update_property_zval(this_ptr, ZEND_STRL("name"), &name); - ZEPHIR_CALL_FUNCTION(NULL, "session_name", NULL, 0, &name); - zephir_check_call_status(); - RETURN_THIS(); + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT DISTINCT c.column_name AS Field, c.data_type AS Type, c.character_maximum_length AS Size, c.numeric_precision AS NumericSize, c.numeric_scale AS NumericScale, c.is_nullable AS Null, CASE WHEN pkc.column_name NOTNULL THEN 'PRI' ELSE '' END AS Key, CASE WHEN c.data_type LIKE '%int%' AND c.column_default LIKE '%nextval%' THEN 'auto_increment' ELSE '' END AS Extra, c.ordinal_position AS Position, c.column_default, des.description FROM information_schema.columns c LEFT JOIN ( SELECT kcu.column_name, kcu.table_name, kcu.table_schema FROM information_schema.table_constraints tc INNER JOIN information_schema.key_column_usage kcu on (kcu.constraint_name = tc.constraint_name and kcu.table_name=tc.table_name and kcu.table_schema=tc.table_schema) WHERE tc.constraint_type='PRIMARY KEY') pkc ON (c.column_name=pkc.column_name AND c.table_schema = pkc.table_schema AND c.table_name=pkc.table_name) LEFT JOIN ( SELECT objsubid, description, relname, nspname FROM pg_description JOIN pg_class ON pg_description.objoid = pg_class.oid JOIN pg_namespace ON pg_class.relnamespace = pg_namespace.oid ) des ON ( des.objsubid = C.ordinal_position AND C.table_schema = des.nspname AND C.TABLE_NAME = des.relname ) WHERE c.table_schema='", &schema, "' AND c.table_name='", &table, "' ORDER BY c.ordinal_position"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Session_Manager, setOptions) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeIndexes) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL; - zval *options_param = NULL, _0, _2, _3; - zval options; + zval *table_param = NULL, *schema_param = NULL; + zval table, schema; zval *this_ptr = getThis(); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schema) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &options_param); - zephir_get_arrval(&options, options_param); - - - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "uniqueId"); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, ""); - ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("uniqueId"), &_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Session_Manager, start) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval _COOKIE, name, value, _0, _1, _2, _7, _3$$6, _4$$6, _5$$6, _6$$6; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_COOKIE); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_3$$6); - ZVAL_UNDEF(&_4$$6); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_6$$6); - - - ZEPHIR_MM_GROW(); - zephir_get_global(&_COOKIE, SL("_COOKIE")); - - ZEPHIR_CALL_METHOD(&name, this_ptr, "getname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "exists", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_TRUE_IDENTICAL(&_0)) { - RETURN_MM_BOOL(1); - } - ZEPHIR_CALL_FUNCTION(&_1, "headers_sent", NULL, 361); - zephir_check_call_status(); - if (ZEPHIR_IS_TRUE_IDENTICAL(&_1)) { - RETURN_MM_BOOL(0); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); + RETURN_MM_NULL(); } - ZEPHIR_OBS_VAR(&_2); - zephir_read_property(&_2, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC); - if (UNEXPECTED(!(zephir_is_instance_of(&_2, SL("SessionHandlerInterface"))))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_session_exception_ce, "The session adapter is not valid", "phalcon/Session/Manager.zep", 327); - return; + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); + } else { + ZEPHIR_INIT_VAR(&table); } - ZEPHIR_OBS_VAR(&value); - if (zephir_array_isset_fetch(&value, &_COOKIE, &name, 0)) { - ZEPHIR_INIT_VAR(&_3$$6); - ZEPHIR_INIT_VAR(&_4$$6); - ZVAL_STRING(&_4$$6, "/^[a-z0-9]+$/iD"); - ZEPHIR_INIT_VAR(&_5$$6); - ZEPHIR_INIT_VAR(&_6$$6); - ZVAL_STRING(&_6$$6, "/^[a-z0-9]+$/iD"); - zephir_preg_match(&_5$$6, &_6$$6, &value, &_3$$6, 0, 0 , 0 ); - if (!(zephir_is_true(&_5$$6))) { - zephir_array_unset(&_COOKIE, &name, PH_SEPARATE); - } + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); + } else { + zephir_get_strval(&schema, schema_param); } - zephir_read_property(&_7, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_FUNCTION(NULL, "session_set_save_handler", NULL, 0, &_7); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_FUNCTION("session_start", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Session_Manager, status) -{ - zval status; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&status); - - - ZEPHIR_MM_GROW(); - ZEPHIR_CALL_FUNCTION(&status, "session_status", NULL, 0); - zephir_check_call_status(); - do { - if (ZEPHIR_IS_LONG(&status, 0)) { - RETURN_MM_LONG(0); - } - if (ZEPHIR_IS_LONG(&status, 2)) { - RETURN_MM_LONG(2); - } - } while(0); - RETURN_MM_LONG(1); + ZEPHIR_CONCAT_SVS(return_value, "SELECT 0 as c0, t.relname as table_name, i.relname as key_name, 3 as c3, a.attname as column_name FROM pg_class t, pg_class i, pg_index ix, pg_attribute a WHERE t.oid = ix.indrelid AND i.oid = ix.indexrelid AND a.attrelid = t.oid AND a.attnum = ANY(ix.indkey) AND t.relkind = 'r' AND t.relname = '", &table, "' ORDER BY t.relname, i.relname;"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Session_Manager, getUniqueKey) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, describeReferences) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *key_param = NULL, uniqueId, _0, _1$$3; - zval key; + zval *table_param = NULL, *schema_param = NULL; + zval table, schema; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&uniqueId); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schema) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - zephir_get_strval(&key, key_param); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("uniqueId"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&uniqueId, &_0); - if (!(ZEPHIR_IS_EMPTY(&uniqueId))) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("uniqueId"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CONCAT_VSV(return_value, &_1$$3, "#", &key); - RETURN_MM(); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); } else { - RETURN_CTOR(&key); + ZEPHIR_INIT_VAR(&table); } -} - -zend_object *zephir_init_properties_Phalcon_Session_Manager(zend_class_entry *class_type) -{ - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); + } else { + zephir_get_strval(&schema, schema_param); } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Session_ManagerInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Session, ManagerInterface, phalcon, session_managerinterface, phalcon_session_managerinterface_method_entry); - - zephir_declare_class_constant_long(phalcon_session_managerinterface_ce, SL("SESSION_ACTIVE"), 2); - - zephir_declare_class_constant_long(phalcon_session_managerinterface_ce, SL("SESSION_DISABLED"), 0); - - zephir_declare_class_constant_long(phalcon_session_managerinterface_ce, SL("SESSION_NONE"), 1); - - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, __get); -ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, __isset); -ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, __set); -ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, __unset); -ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, exists); -ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, destroy); -ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, get); -ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, getId); -ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, getAdapter); -ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, getName); -ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, getOptions); -ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, has); -ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, remove); -ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, set); -ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, setAdapter); -ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, setId); -ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, setName); -ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, setOptions); -ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, status); -ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, start); -ZEPHIR_DOC_METHOD(Phalcon_Session_ManagerInterface, regenerateId); - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Session_Adapter_AbstractAdapter) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Session\\Adapter, AbstractAdapter, phalcon, session_adapter_abstractadapter, phalcon_session_adapter_abstractadapter_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_null(phalcon_session_adapter_abstractadapter_ce, SL("adapter"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_session_adapter_abstractadapter_ce, 1, php_session_iface_entry); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Session_Adapter_AbstractAdapter, close) -{ - zval *this_ptr = getThis(); - - - - RETURN_BOOL(1); + if (ZEPHIR_IS_NULL(&schema)) { + ZEPHIR_INIT_NVAR(&schema); + ZVAL_STRING(&schema, "public"); + } + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT DISTINCT tc.table_name AS TABLE_NAME, kcu.column_name AS COLUMN_NAME, tc.constraint_name AS CONSTRAINT_NAME, tc.table_catalog AS REFERENCED_TABLE_SCHEMA, ccu.table_name AS REFERENCED_TABLE_NAME, ccu.column_name AS REFERENCED_COLUMN_NAME, rc.update_rule AS UPDATE_RULE, rc.delete_rule AS DELETE_RULE FROM information_schema.table_constraints AS tc JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name JOIN information_schema.referential_constraints rc ON tc.constraint_catalog = rc.constraint_catalog AND tc.constraint_schema = rc.constraint_schema AND tc.constraint_name = rc.constraint_name AND tc.constraint_type = 'FOREIGN KEY' WHERE constraint_type = 'FOREIGN KEY' AND tc.table_schema = '", &schema, "' AND tc.table_name='", &table, "'"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Session_Adapter_AbstractAdapter, destroy) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropColumn) { - zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *id, id_sub, _1, _2, _3$$3; + zval *tableName_param = NULL, *schemaName_param = NULL, *columnName_param = NULL, _0; + zval tableName, schemaName, columnName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&id_sub); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&columnName); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(id) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_STR(columnName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &id); - - - _0 = !(ZEPHIR_IS_EMPTY(id)); - if (_0) { - zephir_read_property(&_1, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_2, &_1, "has", NULL, 0, id); - zephir_check_call_status(); - _0 = zephir_is_true(&_2); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &columnName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); } - if (_0) { - zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_3$$3, "delete", NULL, 0, id); - zephir_check_call_status(); - RETURN_MM(); + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + if (UNEXPECTED(Z_TYPE_P(columnName_param) != IS_STRING && Z_TYPE_P(columnName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'columnName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(columnName_param) == IS_STRING)) { + zephir_get_strval(&columnName, columnName_param); + } else { + ZEPHIR_INIT_VAR(&columnName); } - RETURN_MM_BOOL(1); -} - -static PHP_METHOD(Phalcon_Session_Adapter_AbstractAdapter, gc) -{ - zval *maxlifetime, maxlifetime_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&maxlifetime_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(maxlifetime) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &maxlifetime); - RETURN_BOOL(1); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "ALTER TABLE ", &_0, " DROP COLUMN \"", &columnName, "\""); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Session_Adapter_AbstractAdapter, read) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropForeignKey) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *id, id_sub, data, _0, _1; + zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName_param = NULL, _0; + zval tableName, schemaName, referenceName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&id_sub); - ZVAL_UNDEF(&data); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&referenceName); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(id) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_STR(referenceName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &id); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&data, &_0, "get", NULL, 0, id); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - if (Z_TYPE_P(&data) == IS_NULL) { - ZVAL_STRING(&_1, ""); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_CPY_WRT(&_1, &data); + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + if (UNEXPECTED(Z_TYPE_P(referenceName_param) != IS_STRING && Z_TYPE_P(referenceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(referenceName_param) == IS_STRING)) { + zephir_get_strval(&referenceName, referenceName_param); + } else { + ZEPHIR_INIT_VAR(&referenceName); } - RETURN_CCTOR(&_1); -} - -static PHP_METHOD(Phalcon_Session_Adapter_AbstractAdapter, open) -{ - zval *savePath, savePath_sub, *sessionName, sessionName_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&savePath_sub); - ZVAL_UNDEF(&sessionName_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(savePath) - Z_PARAM_ZVAL(sessionName) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(2, 0, &savePath, &sessionName); - RETURN_BOOL(1); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSVS(return_value, "ALTER TABLE ", &_0, " DROP CONSTRAINT \"", &referenceName, "\""); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Session_Adapter_AbstractAdapter, write) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropIndex) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *id, id_sub, *data, data_sub, _0; + zval *tableName_param = NULL, *schemaName_param = NULL, *indexName_param = NULL; + zval tableName, schemaName, indexName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&id_sub); - ZVAL_UNDEF(&data_sub); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&indexName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(id) - Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_STR(indexName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &id, &data); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &indexName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + if (UNEXPECTED(Z_TYPE_P(indexName_param) != IS_STRING && Z_TYPE_P(indexName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'indexName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(indexName_param) == IS_STRING)) { + zephir_get_strval(&indexName, indexName_param); + } else { + ZEPHIR_INIT_VAR(&indexName); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "set", NULL, 0, id, data); - zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "DROP INDEX \"", &indexName, "\""); RETURN_MM(); } - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Session_Adapter_Libmemcached) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Session\\Adapter, Libmemcached, phalcon, session_adapter_libmemcached, phalcon_session_adapter_abstractadapter_ce, phalcon_session_adapter_libmemcached_method_entry, 0); - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Session_Adapter_Libmemcached, __construct) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropPrimaryKey) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL; - zval options; - zval *factory, factory_sub, *options_param = NULL, _0, _2, _3, _4; + zval *tableName_param = NULL, *schemaName_param = NULL, _0; + zval tableName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&factory_sub); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_storage_adapterfactory_ce) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &factory, &options_param); - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); + zephir_fetch_params(1, 2, 0, &tableName_param, &schemaName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); } - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "prefix"); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "sess-memc-"); - ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("prefix"), &_0, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "libmemcached"); - ZEPHIR_CALL_METHOD(&_4, factory, "newinstance", NULL, 0, &_2, &options); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("adapter"), &_4); - ZEPHIR_MM_RESTORE(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Session_Adapter_Noop) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Session\\Adapter, Noop, phalcon, session_adapter_noop, phalcon_session_adapter_noop_method_entry, 0); - - zend_declare_property_null(phalcon_session_adapter_noop_ce, SL("connection"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_session_adapter_noop_ce, SL("options"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_session_adapter_noop_ce, SL("prefix"), "", ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_session_adapter_noop_ce, SL("ttl"), 8600, ZEND_ACC_PROTECTED); - phalcon_session_adapter_noop_ce->create_object = zephir_init_properties_Phalcon_Session_Adapter_Noop; - - zend_class_implements(phalcon_session_adapter_noop_ce, 1, php_session_iface_entry); - return SUCCESS; + ZEPHIR_CONCAT_SVSVS(return_value, "ALTER TABLE ", &_0, " DROP CONSTRAINT \"", &tableName, "_PRIMARY\""); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Session_Adapter_Noop, __construct) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropTable) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *options_param = NULL, prefix; - zval options; + zend_long ZEPHIR_LAST_CALL_STATUS; + zend_bool ifExists; + zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, table; + zval tableName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&prefix); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&table); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(tableName) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + Z_PARAM_STR_OR_NULL(schemaName) + Z_PARAM_BOOL(ifExists) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &options_param); - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); + zephir_fetch_params(1, 1, 2, &tableName_param, &schemaName_param, &ifExists_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + ZEPHIR_INIT_VAR(&tableName); } - - - ZEPHIR_OBS_VAR(&prefix); - if (!(zephir_array_isset_string_fetch(&prefix, &options, SL("prefix"), 0))) { - ZEPHIR_INIT_NVAR(&prefix); - ZVAL_STRING(&prefix, ""); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + zephir_get_strval(&schemaName, schemaName_param); } - zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &prefix); - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Session_Adapter_Noop, close) -{ - zval *this_ptr = getThis(); - - - - RETURN_BOOL(1); -} - -static PHP_METHOD(Phalcon_Session_Adapter_Noop, destroy) -{ - zval *id, id_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&id_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(id) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &id); - - - RETURN_BOOL(1); -} - -static PHP_METHOD(Phalcon_Session_Adapter_Noop, gc) -{ - zval *maxlifetime, maxlifetime_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&maxlifetime_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(maxlifetime) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &maxlifetime); - - - RETURN_BOOL(1); -} - -static PHP_METHOD(Phalcon_Session_Adapter_Noop, read) -{ - zval *id, id_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&id_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(id) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &id); - - - RETURN_STRING(""); -} - -static PHP_METHOD(Phalcon_Session_Adapter_Noop, open) -{ - zval *savePath, savePath_sub, *sessionName, sessionName_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&savePath_sub); - ZVAL_UNDEF(&sessionName_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(savePath) - Z_PARAM_ZVAL(sessionName) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(2, 0, &savePath, &sessionName); - - - RETURN_BOOL(1); -} - -static PHP_METHOD(Phalcon_Session_Adapter_Noop, write) -{ - zval *id, id_sub, *data, data_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&id_sub); - ZVAL_UNDEF(&data_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(id) - Z_PARAM_ZVAL(data) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(2, 0, &id, &data); - - - RETURN_BOOL(1); -} - -static PHP_METHOD(Phalcon_Session_Adapter_Noop, getPrefixedName) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *name = NULL, name_sub, _1; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&name_sub); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(name) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name); - ZEPHIR_SEPARATE_PARAM(name); - - - zephir_cast_to_string(&_0, name); - ZEPHIR_CPY_WRT(name, &_0); - zephir_read_property(&_1, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CONCAT_VV(return_value, &_1, name); - RETURN_MM(); -} - -zend_object *zephir_init_properties_Phalcon_Session_Adapter_Noop(zend_class_entry *class_type) -{ - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); + if (!ifExists_param) { + ifExists = 1; + } else { + if (UNEXPECTED(Z_TYPE_P(ifExists_param) != IS_TRUE && Z_TYPE_P(ifExists_param) != IS_FALSE)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be of the type bool")); + RETURN_MM_NULL(); + } + ifExists = (Z_TYPE_P(ifExists_param) == IS_TRUE); } -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - -ZEPHIR_INIT_CLASS(Phalcon_Session_Adapter_Redis) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Session\\Adapter, Redis, phalcon, session_adapter_redis, phalcon_session_adapter_abstractadapter_ce, phalcon_session_adapter_redis_method_entry, 0); - return SUCCESS; + ZEPHIR_CALL_METHOD(&table, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); + zephir_check_call_status(); + if (ifExists) { + ZEPHIR_CONCAT_SV(return_value, "DROP TABLE IF EXISTS ", &table); + RETURN_MM(); + } + ZEPHIR_CONCAT_SV(return_value, "DROP TABLE ", &table); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Session_Adapter_Redis, __construct) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, dropView) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL; - zval options; - zval *factory, factory_sub, *options_param = NULL, _0, _2, _3, _4; + zend_bool ifExists; + zval *viewName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, view; + zval viewName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&factory_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&options); + ZVAL_UNDEF(&viewName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&view); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_storage_adapterfactory_ce) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(viewName) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + Z_PARAM_STR_OR_NULL(schemaName) + Z_PARAM_BOOL(ifExists) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &factory, &options_param); - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); + zephir_fetch_params(1, 1, 2, &viewName_param, &schemaName_param, &ifExists_param); + if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(&viewName, viewName_param); } else { - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + ZEPHIR_INIT_VAR(&viewName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + zephir_get_strval(&schemaName, schemaName_param); + } + if (!ifExists_param) { + ifExists = 1; + } else { + if (UNEXPECTED(Z_TYPE_P(ifExists_param) != IS_TRUE && Z_TYPE_P(ifExists_param) != IS_FALSE)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be of the type bool")); + RETURN_MM_NULL(); + } + ifExists = (Z_TYPE_P(ifExists_param) == IS_TRUE); } - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "prefix"); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "sess-reds-"); - ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("prefix"), &_0, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "redis"); - ZEPHIR_CALL_METHOD(&_4, factory, "newinstance", NULL, 0, &_2, &options); + ZEPHIR_CALL_METHOD(&view, this_ptr, "preparetable", NULL, 0, &viewName, &schemaName); zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("adapter"), &_4); - ZEPHIR_MM_RESTORE(); + if (ifExists) { + ZEPHIR_CONCAT_SV(return_value, "DROP VIEW IF EXISTS ", &view); + RETURN_MM(); + } + ZEPHIR_CONCAT_SV(return_value, "DROP VIEW ", &view); + RETURN_MM(); } +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, getColumnDefinition) +{ + zval valueSql$$38; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_12 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *column, column_sub, columnType, columnSql, typeValues, _0$$4, _1$$9, _2$$15, _3$$20, _4$$33, _5$$36, _6$$36, _7$$36, value$$38, *_8$$38, _9$$38, _17$$38, _18$$38, _19$$38, _20$$38, _10$$39, _11$$39, _13$$39, _14$$40, _15$$40, _16$$40, _21$$41, _22$$41, _23$$41; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(&columnType); + ZVAL_UNDEF(&columnSql); + ZVAL_UNDEF(&typeValues); + ZVAL_UNDEF(&_0$$4); + ZVAL_UNDEF(&_1$$9); + ZVAL_UNDEF(&_2$$15); + ZVAL_UNDEF(&_3$$20); + ZVAL_UNDEF(&_4$$33); + ZVAL_UNDEF(&_5$$36); + ZVAL_UNDEF(&_6$$36); + ZVAL_UNDEF(&_7$$36); + ZVAL_UNDEF(&value$$38); + ZVAL_UNDEF(&_9$$38); + ZVAL_UNDEF(&_17$$38); + ZVAL_UNDEF(&_18$$38); + ZVAL_UNDEF(&_19$$38); + ZVAL_UNDEF(&_20$$38); + ZVAL_UNDEF(&_10$$39); + ZVAL_UNDEF(&_11$$39); + ZVAL_UNDEF(&_13$$39); + ZVAL_UNDEF(&_14$$40); + ZVAL_UNDEF(&_15$$40); + ZVAL_UNDEF(&_16$$40); + ZVAL_UNDEF(&_21$$41); + ZVAL_UNDEF(&_22$$41); + ZVAL_UNDEF(&_23$$41); + ZVAL_UNDEF(&valueSql$$38); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &column); + ZEPHIR_CALL_METHOD(&columnSql, this_ptr, "checkcolumntypesql", NULL, 0, column); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&columnType, this_ptr, "checkcolumntype", NULL, 0, column); + zephir_check_call_status(); + do { + if (ZEPHIR_IS_LONG(&columnType, 14)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + ZEPHIR_CALL_METHOD(&_0$$4, column, "isautoincrement", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_0$$4)) { + zephir_concat_self_str(&columnSql, SL("BIGSERIAL")); + } else { + zephir_concat_self_str(&columnSql, SL("BIGINT")); + } + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 8)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("BOOLEAN")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 5)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("CHARACTER")); + } + ZEPHIR_CALL_METHOD(&_1$$9, this_ptr, "getcolumnsize", NULL, 0, column); + zephir_check_call_status(); + zephir_concat_self(&columnSql, &_1$$9); + break; + } + if (ZEPHIR_IS_LONG(&columnType, 1)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("DATE")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 4)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("TIMESTAMP")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 3)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("NUMERIC")); + } + ZEPHIR_CALL_METHOD(&_2$$15, this_ptr, "getcolumnsizeandscale", NULL, 0, column); + zephir_check_call_status(); + zephir_concat_self(&columnSql, &_2$$15); + break; + } + if (ZEPHIR_IS_LONG(&columnType, 7)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("FLOAT")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 0)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + ZEPHIR_CALL_METHOD(&_3$$20, column, "isautoincrement", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_3$$20)) { + zephir_concat_self_str(&columnSql, SL("SERIAL")); + } else { + zephir_concat_self_str(&columnSql, SL("INT")); + } + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 22)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("SMALLINT")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 15)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("JSON")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 16)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("JSONB")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 17)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("TIMESTAMP")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 6)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("TEXT")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 2)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("CHARACTER VARYING")); + } + ZEPHIR_CALL_METHOD(&_4$$33, this_ptr, "getcolumnsize", NULL, 0, column); + zephir_check_call_status(); + zephir_concat_self(&columnSql, &_4$$33); + break; + } + if (UNEXPECTED(ZEPHIR_IS_EMPTY(&columnSql))) { + ZEPHIR_INIT_VAR(&_5$$36); + object_init_ex(&_5$$36, phalcon_db_exception_ce); + ZEPHIR_CALL_METHOD(&_6$$36, column, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_7$$36); + ZEPHIR_CONCAT_SV(&_7$$36, "Unrecognized PostgreSQL data type at column ", &_6$$36); + ZEPHIR_CALL_METHOD(NULL, &_5$$36, "__construct", NULL, 8, &_7$$36); + zephir_check_call_status(); + zephir_throw_exception_debug(&_5$$36, "phalcon/Db/Dialect/Postgresql.zep", 511); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_METHOD(&typeValues, column, "gettypevalues", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&typeValues))) { + if (Z_TYPE_P(&typeValues) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&valueSql$$38); + zephir_is_iterable(&typeValues, 0, "phalcon/Db/Dialect/Postgresql.zep", 526); + if (Z_TYPE_P(&typeValues) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&typeValues), _8$$38) + { + ZEPHIR_INIT_NVAR(&value$$38); + ZVAL_COPY(&value$$38, _8$$38); + ZEPHIR_INIT_NVAR(&_10$$39); + ZVAL_STRING(&_10$$39, "\'"); + ZEPHIR_CALL_FUNCTION(&_11$$39, "addcslashes", &_12, 214, &value$$38, &_10$$39); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_13$$39); + ZEPHIR_CONCAT_SVS(&_13$$39, "'", &_11$$39, "', "); + zephir_concat_self(&valueSql$$38, &_13$$39); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &typeValues, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_9$$38, &typeValues, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_9$$38)) { + break; + } + ZEPHIR_CALL_METHOD(&value$$38, &typeValues, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_14$$40); + ZVAL_STRING(&_14$$40, "\'"); + ZEPHIR_CALL_FUNCTION(&_15$$40, "addcslashes", &_12, 214, &value$$38, &_14$$40); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_16$$40); + ZEPHIR_CONCAT_SVS(&_16$$40, "'", &_15$$40, "', "); + zephir_concat_self(&valueSql$$38, &_16$$40); + ZEPHIR_CALL_METHOD(NULL, &typeValues, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value$$38); + ZVAL_LONG(&_17$$38, 0); + ZVAL_LONG(&_18$$38, -2); + ZEPHIR_INIT_VAR(&_19$$38); + zephir_substr(&_19$$38, &valueSql$$38, 0 , -2 , 0); + ZEPHIR_INIT_VAR(&_20$$38); + ZEPHIR_CONCAT_SVS(&_20$$38, "(", &_19$$38, ")"); + zephir_concat_self(&columnSql, &_20$$38); + } else { + ZEPHIR_INIT_VAR(&_21$$41); + ZVAL_STRING(&_21$$41, "\'"); + ZEPHIR_CALL_FUNCTION(&_22$$41, "addcslashes", &_12, 214, &typeValues, &_21$$41); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_23$$41); + ZEPHIR_CONCAT_SVS(&_23$$41, "('", &_22$$41, "')"); + zephir_concat_self(&columnSql, &_23$$41); + } + } + } while(0); -ZEPHIR_INIT_CLASS(Phalcon_Session_Adapter_Stream) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Session\\Adapter, Stream, phalcon, session_adapter_stream, phalcon_session_adapter_noop_ce, phalcon_session_adapter_stream_method_entry, 0); - - zend_declare_property_string(phalcon_session_adapter_stream_ce, SL("path"), "", ZEND_ACC_PRIVATE); - return SUCCESS; + RETURN_CCTOR(&columnSql); } -static PHP_METHOD(Phalcon_Session_Adapter_Stream, __construct) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, listTables) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL, *_7 = NULL; - zval options, *options_param = NULL, path, _1, _3, _6, _2$$3, _4$$4, _5$$4; + zval *schemaName_param = NULL; + zval schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&path); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&schemaName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + Z_PARAM_STR_OR_NULL(schemaName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &options_param); - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); + zephir_fetch_params(1, 0, 1, &schemaName_param); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); } else { - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + zephir_get_strval(&schemaName, schemaName_param); } - ZEPHIR_CALL_PARENT(NULL, phalcon_session_adapter_stream_ce, getThis(), "__construct", &_0, 0, &options); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&options, &_1); - ZEPHIR_OBS_VAR(&path); - if (!(zephir_array_isset_string_fetch(&path, &options, SL("savePath"), 0))) { - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "session.save_path"); - ZEPHIR_CALL_FUNCTION(&path, "ini_get", NULL, 0, &_2$$3); - zephir_check_call_status(); - } - ZEPHIR_CALL_FUNCTION(&_3, "is_writable", NULL, 326, &path); - zephir_check_call_status(); - if (UNEXPECTED(!zephir_is_true(&_3))) { - ZEPHIR_INIT_VAR(&_4$$4); - object_init_ex(&_4$$4, phalcon_session_exception_ce); - ZEPHIR_INIT_VAR(&_5$$4); - ZEPHIR_CONCAT_SVS(&_5$$4, "The session save path [", &path, "] is not writable"); - ZEPHIR_CALL_METHOD(NULL, &_4$$4, "__construct", NULL, 8, &_5$$4); - zephir_check_call_status(); - zephir_throw_exception_debug(&_4$$4, "phalcon/Session/Adapter/Stream.zep", 68); - ZEPHIR_MM_RESTORE(); - return; + if (ZEPHIR_IS_NULL(&schemaName)) { + ZEPHIR_INIT_NVAR(&schemaName); + ZVAL_STRING(&schemaName, "public"); } - ZEPHIR_CALL_CE_STATIC(&_6, phalcon_helper_str_ce, "dirseparator", &_7, 129, &path); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("path"), &_6); - ZEPHIR_MM_RESTORE(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT table_name FROM information_schema.tables WHERE table_schema = '", &schemaName, "' ORDER BY table_name"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Session_Adapter_Stream, destroy) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, listViews) { - zend_bool _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *id, id_sub, file, _0, _1, _3; + zval *schemaName_param = NULL; + zval schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&id_sub); - ZVAL_UNDEF(&file); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&schemaName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(id) + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schemaName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &id); + zephir_fetch_params(1, 0, 1, &schemaName_param); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + zephir_get_strval(&schemaName, schemaName_param); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("path"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getprefixedname", NULL, 0, id); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&file); - ZEPHIR_CONCAT_VV(&file, &_0, &_1); - _2 = (zephir_file_exists(&file) == SUCCESS); - if (_2) { - ZEPHIR_CALL_FUNCTION(&_3, "is_file", NULL, 0, &file); - zephir_check_call_status(); - _2 = zephir_is_true(&_3); - } - if (_2) { - ZEPHIR_CALL_FUNCTION(NULL, "unlink", NULL, 131, &file); - zephir_check_call_status(); + if (ZEPHIR_IS_NULL(&schemaName)) { + ZEPHIR_INIT_NVAR(&schemaName); + ZVAL_STRING(&schemaName, "public"); } - RETURN_MM_BOOL(1); + ZEPHIR_CONCAT_SVS(return_value, "SELECT viewname AS view_name FROM pg_views WHERE schemaname = '", &schemaName, "' ORDER BY view_name"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Session_Adapter_Stream, gc) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, modifyColumn) { - zend_bool _6$$3, _9$$3, _12$$5, _14$$5; + zend_bool _26$$10; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_8 = NULL, *_11 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *maxlifetime, maxlifetime_sub, file, pattern, time, _0, _1, _2, _3, *_4, _5, _7$$3, _10$$3, _13$$5, _15$$5; + zval *tableName_param = NULL, *schemaName_param = NULL, *column, column_sub, *currentColumn = NULL, currentColumn_sub, __$null, defaultValue, columnDefinition, _0, _1, _2, _3, _7, _8, _11, _12, _18, _23, _24, _4$$4, _5$$4, _6$$4, _9$$5, _10$$5, _13$$6, _14$$7, _15$$7, _16$$8, _17$$8, _19$$9, _20$$9, _21$$9, _22$$9, _25$$10, _27$$10, _30$$10, _28$$11, _29$$11, _31$$12, _32$$13, _33$$13, _34$$14, _35$$14; + zval tableName, schemaName, sql, sqlAlterTable; zval *this_ptr = getThis(); - ZVAL_UNDEF(&maxlifetime_sub); - ZVAL_UNDEF(&file); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&time); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&sqlAlterTable); + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(¤tColumn_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&defaultValue); + ZVAL_UNDEF(&columnDefinition); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_10$$3); - ZVAL_UNDEF(&_13$$5); - ZVAL_UNDEF(&_15$$5); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_18); + ZVAL_UNDEF(&_23); + ZVAL_UNDEF(&_24); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&_13$$6); + ZVAL_UNDEF(&_14$$7); + ZVAL_UNDEF(&_15$$7); + ZVAL_UNDEF(&_16$$8); + ZVAL_UNDEF(&_17$$8); + ZVAL_UNDEF(&_19$$9); + ZVAL_UNDEF(&_20$$9); + ZVAL_UNDEF(&_21$$9); + ZVAL_UNDEF(&_22$$9); + ZVAL_UNDEF(&_25$$10); + ZVAL_UNDEF(&_27$$10); + ZVAL_UNDEF(&_30$$10); + ZVAL_UNDEF(&_28$$11); + ZVAL_UNDEF(&_29$$11); + ZVAL_UNDEF(&_31$$12); + ZVAL_UNDEF(&_32$$13); + ZVAL_UNDEF(&_33$$13); + ZVAL_UNDEF(&_34$$14); + ZVAL_UNDEF(&_35$$14); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(maxlifetime) + ZEND_PARSE_PARAMETERS_START(3, 4) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + Z_PARAM_OPTIONAL + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(currentColumn, phalcon_db_columninterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &maxlifetime); + zephir_fetch_params(1, 3, 1, &tableName_param, &schemaName_param, &column, ¤tColumn); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + if (!currentColumn) { + currentColumn = ¤tColumn_sub; + ZEPHIR_CPY_WRT(currentColumn, &__$null); + } else { + ZEPHIR_SEPARATE_PARAM(currentColumn); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("path"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_1, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&pattern); - ZEPHIR_CONCAT_VVS(&pattern, &_0, &_1, "*"); - ZEPHIR_INIT_VAR(&_2); - zephir_time(&_2); - ZEPHIR_INIT_VAR(&time); - zephir_sub_function(&time, &_2, maxlifetime); - ZEPHIR_CALL_FUNCTION(&_3, "glob", NULL, 0, &pattern); + ZEPHIR_INIT_VAR(&sql); + ZEPHIR_CALL_METHOD(&columnDefinition, this_ptr, "getcolumndefinition", NULL, 0, column); zephir_check_call_status(); - zephir_is_iterable(&_3, 0, "phalcon/Session/Adapter/Stream.zep", 105); - if (Z_TYPE_P(&_3) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_3), _4) - { - ZEPHIR_INIT_NVAR(&file); - ZVAL_COPY(&file, _4); - _6$$3 = (zephir_file_exists(&file) == SUCCESS); - if (_6$$3) { - ZEPHIR_CALL_FUNCTION(&_7$$3, "is_file", &_8, 0, &file); - zephir_check_call_status(); - _6$$3 = zephir_is_true(&_7$$3); - } - _9$$3 = _6$$3; - if (_9$$3) { - ZEPHIR_INIT_NVAR(&_10$$3); - zephir_filemtime(&_10$$3, &file); - _9$$3 = ZEPHIR_LT(&_10$$3, &time); - } - if (_9$$3) { - ZEPHIR_CALL_FUNCTION(NULL, "unlink", &_11, 131, &file); - zephir_check_call_status(); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_3, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_CONCAT_SV(&_1, "ALTER TABLE ", &_0); + zephir_get_strval(&sqlAlterTable, &_1); + if (Z_TYPE_P(currentColumn) != IS_OBJECT) { + ZEPHIR_CPY_WRT(currentColumn, column); + } + ZEPHIR_CALL_METHOD(&_2, column, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_3, currentColumn, "getname", NULL, 0); + zephir_check_call_status(); + if (!ZEPHIR_IS_IDENTICAL(&_2, &_3)) { + ZEPHIR_CALL_METHOD(&_4$$4, currentColumn, "getname", NULL, 0); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5, &_3, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_5$$4, column, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_6$$4); + ZEPHIR_CONCAT_VSVSVS(&_6$$4, &sqlAlterTable, " RENAME COLUMN \"", &_4$$4, "\" TO \"", &_5$$4, "\";"); + zephir_concat_self(&sql, &_6$$4); + } + ZEPHIR_CALL_METHOD(&_7, column, "gettype", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_8, currentColumn, "gettype", NULL, 0); + zephir_check_call_status(); + if (!ZEPHIR_IS_IDENTICAL(&_7, &_8)) { + ZEPHIR_CALL_METHOD(&_9$$5, column, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_10$$5); + ZEPHIR_CONCAT_VSVSVS(&_10$$5, &sqlAlterTable, " ALTER COLUMN \"", &_9$$5, "\" TYPE ", &columnDefinition, ";"); + zephir_concat_self(&sql, &_10$$5); + } + ZEPHIR_CALL_METHOD(&_11, column, "isnotnull", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_12, currentColumn, "isnotnull", NULL, 0); + zephir_check_call_status(); + if (!ZEPHIR_IS_IDENTICAL(&_11, &_12)) { + ZEPHIR_CALL_METHOD(&_13$$6, column, "isnotnull", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_13$$6)) { + ZEPHIR_CALL_METHOD(&_14$$7, column, "getname", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_5)) { - break; - } - ZEPHIR_CALL_METHOD(&file, &_3, "current", NULL, 0); + ZEPHIR_INIT_VAR(&_15$$7); + ZEPHIR_CONCAT_VSVS(&_15$$7, &sqlAlterTable, " ALTER COLUMN \"", &_14$$7, "\" SET NOT NULL;"); + zephir_concat_self(&sql, &_15$$7); + } else { + ZEPHIR_CALL_METHOD(&_16$$8, column, "getname", NULL, 0); zephir_check_call_status(); - _12$$5 = (zephir_file_exists(&file) == SUCCESS); - if (_12$$5) { - ZEPHIR_CALL_FUNCTION(&_13$$5, "is_file", &_8, 0, &file); - zephir_check_call_status(); - _12$$5 = zephir_is_true(&_13$$5); - } - _14$$5 = _12$$5; - if (_14$$5) { - ZEPHIR_INIT_NVAR(&_15$$5); - zephir_filemtime(&_15$$5, &file); - _14$$5 = ZEPHIR_LT(&_15$$5, &time); - } - if (_14$$5) { - ZEPHIR_CALL_FUNCTION(NULL, "unlink", &_11, 131, &file); - zephir_check_call_status(); - } - ZEPHIR_CALL_METHOD(NULL, &_3, "next", NULL, 0); + ZEPHIR_INIT_VAR(&_17$$8); + ZEPHIR_CONCAT_VSVS(&_17$$8, &sqlAlterTable, " ALTER COLUMN \"", &_16$$8, "\" DROP NOT NULL;"); + zephir_concat_self(&sql, &_17$$8); + } + } + ZEPHIR_CALL_METHOD(&_18, column, "getcomment", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_18)) { + ZEPHIR_CALL_METHOD(&_19$$9, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_20$$9, column, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_21$$9, column, "getcomment", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_22$$9); + ZEPHIR_CONCAT_SVSVSVS(&_22$$9, "COMMENT ON COLUMN ", &_19$$9, ".\"", &_20$$9, "\" IS '", &_21$$9, "';"); + zephir_concat_self(&sql, &_22$$9); + } + ZEPHIR_CALL_METHOD(&_23, column, "getdefault", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_24, currentColumn, "getdefault", NULL, 0); + zephir_check_call_status(); + if (!ZEPHIR_IS_IDENTICAL(&_23, &_24)) { + ZEPHIR_CALL_METHOD(&_25$$10, column, "getdefault", NULL, 0); + zephir_check_call_status(); + _26$$10 = ZEPHIR_IS_EMPTY(&_25$$10); + if (_26$$10) { + ZEPHIR_CALL_METHOD(&_27$$10, currentColumn, "getdefault", NULL, 0); zephir_check_call_status(); + _26$$10 = !(ZEPHIR_IS_EMPTY(&_27$$10)); + } + if (_26$$10) { + ZEPHIR_CALL_METHOD(&_28$$11, column, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_29$$11); + ZEPHIR_CONCAT_VSVS(&_29$$11, &sqlAlterTable, " ALTER COLUMN \"", &_28$$11, "\" DROP DEFAULT;"); + zephir_concat_self(&sql, &_29$$11); + } + ZEPHIR_CALL_METHOD(&_30$$10, column, "hasdefault", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_30$$10)) { + ZEPHIR_CALL_METHOD(&defaultValue, this_ptr, "castdefault", NULL, 0, column); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_31$$12); + zephir_fast_strtoupper(&_31$$12, &columnDefinition); + if (zephir_memnstr_str(&_31$$12, SL("BOOLEAN"), "phalcon/Db/Dialect/Postgresql.zep", 616)) { + ZEPHIR_CALL_METHOD(&_32$$13, column, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_33$$13); + ZEPHIR_CONCAT_SVSV(&_33$$13, " ALTER COLUMN \"", &_32$$13, "\" SET DEFAULT ", &defaultValue); + zephir_concat_self(&sql, &_33$$13); + } else { + ZEPHIR_CALL_METHOD(&_34$$14, column, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_35$$14); + ZEPHIR_CONCAT_VSVSV(&_35$$14, &sqlAlterTable, " ALTER COLUMN \"", &_34$$14, "\" SET DEFAULT ", &defaultValue); + zephir_concat_self(&sql, &_35$$14); + } } } - ZEPHIR_INIT_NVAR(&file); - RETURN_MM_BOOL(1); + RETURN_CTOR(&sql); } -static PHP_METHOD(Phalcon_Session_Adapter_Stream, open) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, sharedLock) { - zval *savePath, savePath_sub, *sessionName, sessionName_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *sqlQuery_param = NULL; + zval sqlQuery; zval *this_ptr = getThis(); - ZVAL_UNDEF(&savePath_sub); - ZVAL_UNDEF(&sessionName_sub); + ZVAL_UNDEF(&sqlQuery); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(savePath) - Z_PARAM_ZVAL(sessionName) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(sqlQuery) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(2, 0, &savePath, &sessionName); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &sqlQuery_param); + if (UNEXPECTED(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { + zephir_get_strval(&sqlQuery, sqlQuery_param); + } else { + ZEPHIR_INIT_VAR(&sqlQuery); + } - RETURN_BOOL(1); + RETURN_CTOR(&sqlQuery); } -static PHP_METHOD(Phalcon_Session_Adapter_Stream, read) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, tableExists) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *id, id_sub, data, name, pointer, _0, _1, _2$$3, _3$$3, _4$$3; + zval *tableName_param = NULL, *schemaName_param = NULL; + zval tableName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&id_sub); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&pointer); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(id) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(tableName) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schemaName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &id); + zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + zephir_get_strval(&schemaName, schemaName_param); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("path"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getprefixedname", NULL, 0, id); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&name); - ZEPHIR_CONCAT_VV(&name, &_0, &_1); - ZEPHIR_INIT_VAR(&data); - ZVAL_STRING(&data, ""); - if ((zephir_file_exists(&name) == SUCCESS)) { - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "r"); - ZEPHIR_CALL_FUNCTION(&pointer, "fopen", NULL, 89, &name, &_2$$3); - zephir_check_call_status(); - ZVAL_LONG(&_3$$3, 1); - ZEPHIR_CALL_FUNCTION(&_4$$3, "flock", NULL, 143, &pointer, &_3$$3); - zephir_check_call_status(); - if (zephir_is_true(&_4$$3)) { - ZEPHIR_INIT_NVAR(&data); - zephir_file_get_contents(&data, &name); - } - zephir_fclose(&pointer); - if (ZEPHIR_IS_FALSE_IDENTICAL(&data)) { - RETURN_MM_STRING(""); - } + if (ZEPHIR_IS_NULL(&schemaName)) { + ZEPHIR_INIT_NVAR(&schemaName); + ZVAL_STRING(&schemaName, "public"); } - RETURN_CCTOR(&data); + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM information_schema.tables WHERE table_schema = '", &schemaName, "' AND table_name='", &tableName, "'"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Session_Adapter_Stream, write) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, tableOptions) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *id, id_sub, *data, data_sub, name, _0, _1, _2, _3; + zval *table_param = NULL, *schema_param = NULL; + zval table, schema; zval *this_ptr = getThis(); - ZVAL_UNDEF(&id_sub); - ZVAL_UNDEF(&data_sub); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(id) - Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schema) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &id, &data); - - - zephir_read_property(&_0, this_ptr, ZEND_STRL("path"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getprefixedname", NULL, 0, id); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&name); - ZEPHIR_CONCAT_VV(&name, &_0, &_1); - ZVAL_LONG(&_2, 2); - ZEPHIR_CALL_FUNCTION(&_3, "file_put_contents", NULL, 138, &name, data, &_2); - zephir_check_call_status(); - RETURN_MM_BOOL(!ZEPHIR_IS_FALSE_IDENTICAL(&_3)); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); + } else { + ZEPHIR_INIT_VAR(&table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); + } else { + zephir_get_strval(&schema, schema_param); + } -ZEPHIR_INIT_CLASS(Phalcon_Storage_AdapterFactory) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage, AdapterFactory, phalcon, storage_adapterfactory, phalcon_factory_abstractfactory_ce, phalcon_storage_adapterfactory_method_entry, 0); - zend_declare_property_string(phalcon_storage_adapterfactory_ce, SL("exception"), "Phalcon\\Storage\\Exception", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_storage_adapterfactory_ce, SL("serializerFactory"), ZEND_ACC_PRIVATE); - return SUCCESS; + RETURN_MM_STRING(""); } -static PHP_METHOD(Phalcon_Storage_AdapterFactory, __construct) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, truncateTable) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval services; - zval *factory, factory_sub, *services_param = NULL; + zval *tableName_param = NULL, *schemaName_param = NULL, table; + zval tableName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&factory_sub); - ZVAL_UNDEF(&services); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&table); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_storage_serializerfactory_ce) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(services) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &factory, &services_param); - if (!services_param) { - ZEPHIR_INIT_VAR(&services); - array_init(&services); + zephir_fetch_params(1, 2, 0, &tableName_param, &schemaName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_OBS_COPY_OR_DUP(&services, services_param); + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); } - zephir_update_property_zval(this_ptr, ZEND_STRL("serializerFactory"), factory); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "init", NULL, 0, &services); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + if (!(ZEPHIR_IS_EMPTY(&schemaName))) { + ZEPHIR_CALL_METHOD(&table, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); + zephir_check_call_status(); + } else { + ZEPHIR_CALL_METHOD(&table, this_ptr, "preparetable", NULL, 0, &tableName); + zephir_check_call_status(); + } + ZEPHIR_CONCAT_SV(return_value, "TRUNCATE TABLE ", &table); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_AdapterFactory, newInstance) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, viewExists) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval options, _0; - zval *name_param = NULL, *options_param = NULL, definition, _1; - zval name; + zval *viewName_param = NULL, *schemaName_param = NULL; + zval viewName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&definition); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&viewName); + ZVAL_UNDEF(&schemaName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(name) + Z_PARAM_STR(viewName) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + Z_PARAM_STR_OR_NULL(schemaName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &name_param, &options_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName_param); + if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); + if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(&viewName, viewName_param); } else { - ZEPHIR_INIT_VAR(&name); + ZEPHIR_INIT_VAR(&viewName); } - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); } else { - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + zephir_get_strval(&schemaName, schemaName_param); } - ZEPHIR_CALL_METHOD(&definition, this_ptr, "getservice", NULL, 0, &name); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 2, 0); - ZEPHIR_OBS_VAR(&_1); - zephir_read_property(&_1, this_ptr, ZEND_STRL("serializerFactory"), PH_NOISY_CC); - zephir_array_fast_append(&_0, &_1); - zephir_array_fast_append(&_0, &options); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(return_value, &definition, &_0); - zephir_check_call_status(); + if (ZEPHIR_IS_NULL(&schemaName)) { + ZEPHIR_INIT_NVAR(&schemaName); + ZVAL_STRING(&schemaName, "public"); + } + ZEPHIR_CONCAT_SVSVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM pg_views WHERE viewname='", &viewName, "' AND schemaname='", &schemaName, "'"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_AdapterFactory, getAdapters) +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, castDefault) { + zend_bool _2, _3, _4, _5; + zval preparedValue, _6$$5; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *column, column_sub, defaultValue, columnDefinition, columnType, _0, _1, _7$$6, _8$$6, _9$$6; zval *this_ptr = getThis(); + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(&defaultValue); + ZVAL_UNDEF(&columnDefinition); + ZVAL_UNDEF(&columnType); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_8$$6); + ZVAL_UNDEF(&_9$$6); + ZVAL_UNDEF(&preparedValue); + ZVAL_UNDEF(&_6$$5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif - zephir_create_array(return_value, 5, 0); - add_assoc_stringl_ex(return_value, SL("apcu"), SL("Phalcon\\Storage\\Adapter\\Apcu")); - add_assoc_stringl_ex(return_value, SL("libmemcached"), SL("Phalcon\\Storage\\Adapter\\Libmemcached")); - add_assoc_stringl_ex(return_value, SL("memory"), SL("Phalcon\\Storage\\Adapter\\Memory")); - add_assoc_stringl_ex(return_value, SL("redis"), SL("Phalcon\\Storage\\Adapter\\Redis")); - add_assoc_stringl_ex(return_value, SL("stream"), SL("Phalcon\\Storage\\Adapter\\Stream")); - return; -} + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &column); + ZEPHIR_CALL_METHOD(&defaultValue, column, "getdefault", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&columnDefinition, this_ptr, "getcolumndefinition", NULL, 0, column); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&columnType, column, "gettype", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + zephir_fast_strtoupper(&_0, &columnDefinition); + if (zephir_memnstr_str(&_0, SL("BOOLEAN"), "phalcon/Db/Dialect/Postgresql.zep", 699)) { + RETURN_CCTOR(&defaultValue); + } + ZEPHIR_INIT_VAR(&_1); + zephir_fast_strtoupper(&_1, &defaultValue); + if (zephir_memnstr_str(&_1, SL("CURRENT_TIMESTAMP"), "phalcon/Db/Dialect/Postgresql.zep", 703)) { + RETURN_MM_STRING("CURRENT_TIMESTAMP"); + } + _2 = ZEPHIR_IS_LONG_IDENTICAL(&columnType, 0); + if (!(_2)) { + _2 = ZEPHIR_IS_LONG_IDENTICAL(&columnType, 14); + } + _3 = _2; + if (!(_3)) { + _3 = ZEPHIR_IS_LONG_IDENTICAL(&columnType, 3); + } + _4 = _3; + if (!(_4)) { + _4 = ZEPHIR_IS_LONG_IDENTICAL(&columnType, 7); + } + _5 = _4; + if (!(_5)) { + _5 = ZEPHIR_IS_LONG_IDENTICAL(&columnType, 9); + } + if (_5) { + zephir_cast_to_string(&_6$$5, &defaultValue); + ZEPHIR_CPY_WRT(&preparedValue, &_6$$5); + } else { + ZEPHIR_INIT_VAR(&_7$$6); + ZVAL_STRING(&_7$$6, "\'"); + ZEPHIR_CALL_FUNCTION(&_8$$6, "addcslashes", NULL, 214, &defaultValue, &_7$$6); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_9$$6); + ZEPHIR_CONCAT_SVS(&_9$$6, "'", &_8$$6, "'"); + zephir_get_strval(&preparedValue, &_9$$6); + } + RETURN_CTOR(&preparedValue); +} +static PHP_METHOD(Phalcon_Db_Dialect_Postgresql, getTableOptions) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *definition_param = NULL; + zval definition; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&definition); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(definition) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &definition_param); + ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); - -ZEPHIR_INIT_CLASS(Phalcon_Storage_Exception) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage, Exception, phalcon, storage_exception, phalcon_exception_ce, NULL, 0); - - return SUCCESS; + RETURN_MM_STRING(""); } @@ -198861,1761 +197958,2236 @@ ZEPHIR_INIT_CLASS(Phalcon_Storage_Exception) -ZEPHIR_INIT_CLASS(Phalcon_Storage_SerializerFactory) +ZEPHIR_INIT_CLASS(Phalcon_Db_Dialect_Sqlite) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage, SerializerFactory, phalcon, storage_serializerfactory, phalcon_factory_abstractfactory_ce, phalcon_storage_serializerfactory_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Db\\Dialect, Sqlite, phalcon, db_dialect_sqlite, phalcon_db_dialect_ce, phalcon_db_dialect_sqlite_method_entry, 0); - zend_declare_property_string(phalcon_storage_serializerfactory_ce, SL("exception"), "Phalcon\\Storage\\Exception", ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_db_dialect_sqlite_ce, SL("escapeChar"), "\"", ZEND_ACC_PROTECTED); return SUCCESS; } -static PHP_METHOD(Phalcon_Storage_SerializerFactory, __construct) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addColumn) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *services_param = NULL; - zval services; + zval *tableName_param = NULL, *schemaName_param = NULL, *column, column_sub, defaultValue, _0, _1, _2, _3, _4, _5, _10, _11, _6$$3, _7$$5, _8$$5, _9$$5; + zval tableName, schemaName, sql; zval *this_ptr = getThis(); - ZVAL_UNDEF(&services); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(&defaultValue); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$5); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(services) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &services_param); - if (!services_param) { - ZEPHIR_INIT_VAR(&services); - array_init(&services); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &column); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_OBS_COPY_OR_DUP(&services, services_param); + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "init", NULL, 0, &services); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_CONCAT_SVS(&_1, "ALTER TABLE ", &_0, " ADD COLUMN "); + zephir_get_strval(&sql, &_1); + ZEPHIR_CALL_METHOD(&_2, column, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_3, this_ptr, "getcolumndefinition", NULL, 0, column); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_4); + ZEPHIR_CONCAT_SVSV(&_4, "\"", &_2, "\" ", &_3); + zephir_concat_self(&sql, &_4); + ZEPHIR_CALL_METHOD(&_5, column, "hasdefault", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_5)) { + ZEPHIR_CALL_METHOD(&defaultValue, column, "getdefault", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_6$$3); + zephir_fast_strtoupper(&_6$$3, &defaultValue); + if (zephir_memnstr_str(&_6$$3, SL("CURRENT_TIMESTAMP"), "phalcon/Db/Dialect/Sqlite.zep", 46)) { + zephir_concat_self_str(&sql, " DEFAULT CURRENT_TIMESTAMP", sizeof(" DEFAULT CURRENT_TIMESTAMP") - 1); + } else { + ZEPHIR_INIT_VAR(&_7$$5); + ZVAL_STRING(&_7$$5, "\""); + ZEPHIR_CALL_FUNCTION(&_8$$5, "addcslashes", NULL, 214, &defaultValue, &_7$$5); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_9$$5); + ZEPHIR_CONCAT_SVS(&_9$$5, " DEFAULT \"", &_8$$5, "\""); + zephir_concat_self(&sql, &_9$$5); + } + } + ZEPHIR_CALL_METHOD(&_10, column, "isnotnull", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_10)) { + zephir_concat_self_str(&sql, " NOT NULL", sizeof(" NOT NULL") - 1); + } else { + zephir_concat_self_str(&sql, " NULL", sizeof(" NULL") - 1); + } + ZEPHIR_CALL_METHOD(&_11, column, "isautoincrement", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_11)) { + zephir_concat_self_str(&sql, " PRIMARY KEY AUTOINCREMENT", sizeof(" PRIMARY KEY AUTOINCREMENT") - 1); + } + RETURN_CTOR(&sql); } -static PHP_METHOD(Phalcon_Storage_SerializerFactory, newInstance) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addForeignKey) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, definition; - zval name; + zval *tableName_param = NULL, *schemaName_param = NULL, *reference, reference_sub; + zval tableName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&reference_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(reference, phalcon_db_referenceinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &reference); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { - zephir_get_strval(&name, name_param); + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_INIT_VAR(&name); + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); } - ZEPHIR_CALL_METHOD(&definition, this_ptr, "getservice", NULL, 0, &name); - zephir_check_call_status(); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(return_value, &definition); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Storage_SerializerFactory, getAdapters) -{ - zval *this_ptr = getThis(); - - - - zephir_create_array(return_value, 6, 0); - add_assoc_stringl_ex(return_value, SL("base64"), SL("Phalcon\\Storage\\Serializer\\Base64")); - add_assoc_stringl_ex(return_value, SL("igbinary"), SL("Phalcon\\Storage\\Serializer\\Igbinary")); - add_assoc_stringl_ex(return_value, SL("json"), SL("Phalcon\\Storage\\Serializer\\Json")); - add_assoc_stringl_ex(return_value, SL("msgpack"), SL("Phalcon\\Storage\\Serializer\\Msgpack")); - add_assoc_stringl_ex(return_value, SL("none"), SL("Phalcon\\Storage\\Serializer\\None")); - add_assoc_stringl_ex(return_value, SL("php"), SL("Phalcon\\Storage\\Serializer\\Php")); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Adding a foreign key constraint to an existing table is not supported by SQLite", "phalcon/Db/Dialect/Sqlite.zep", 73); return; } - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Storage_Adapter_AbstractAdapter) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Storage\\Adapter, AbstractAdapter, phalcon, storage_adapter_abstractadapter, phalcon_storage_adapter_abstractadapter_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - zend_declare_property_null(phalcon_storage_adapter_abstractadapter_ce, SL("adapter"), ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_storage_adapter_abstractadapter_ce, SL("defaultSerializer"), "Php", ZEND_ACC_PROTECTED); - zend_declare_property_long(phalcon_storage_adapter_abstractadapter_ce, SL("lifetime"), 3600, ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_storage_adapter_abstractadapter_ce, SL("prefix"), "", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_storage_adapter_abstractadapter_ce, SL("serializer"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_storage_adapter_abstractadapter_ce, SL("serializerFactory"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_storage_adapter_abstractadapter_ce, 1, phalcon_storage_adapter_adapterinterface_ce); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, getDefaultSerializer) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "defaultSerializer"); -} - -static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, setDefaultSerializer) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addIndex) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *defaultSerializer_param = NULL; - zval defaultSerializer; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, *index, index_sub, indexType, _5, _6, _7, _0$$3, _1$$5, _2$$5, _3$$6, _4$$6; + zval tableName, schemaName, sql; zval *this_ptr = getThis(); - ZVAL_UNDEF(&defaultSerializer); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&index_sub); + ZVAL_UNDEF(&indexType); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$5); + ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&_3$$6); + ZVAL_UNDEF(&_4$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(defaultSerializer) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(index, phalcon_db_indexinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &defaultSerializer_param); - zephir_get_strval(&defaultSerializer, defaultSerializer_param); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultSerializer"), &defaultSerializer); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, getPrefix) -{ - zval *this_ptr = getThis(); - + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } - RETURN_MEMBER(getThis(), "prefix"); + ZEPHIR_CALL_METHOD(&indexType, index, "gettype", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&indexType))) { + ZEPHIR_INIT_VAR(&_0$$3); + ZEPHIR_CONCAT_SVS(&_0$$3, "CREATE ", &indexType, " INDEX "); + zephir_get_strval(&sql, &_0$$3); + } else { + ZEPHIR_INIT_VAR(&sql); + ZVAL_STRING(&sql, "CREATE INDEX "); + } + if (!(ZEPHIR_IS_EMPTY(&schemaName))) { + ZEPHIR_CALL_METHOD(&_1$$5, index, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2$$5); + ZEPHIR_CONCAT_SVSVS(&_2$$5, "\"", &schemaName, "\".\"", &_1$$5, "\""); + zephir_concat_self(&sql, &_2$$5); + } else { + ZEPHIR_CALL_METHOD(&_3$$6, index, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_4$$6); + ZEPHIR_CONCAT_SVS(&_4$$6, "\"", &_3$$6, "\""); + zephir_concat_self(&sql, &_4$$6); + } + ZEPHIR_CALL_METHOD(&_6, index, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_5, this_ptr, "getcolumnlist", NULL, 67, &_6); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_7); + ZEPHIR_CONCAT_SVSVS(&_7, " ON \"", &tableName, "\" (", &_5, ")"); + zephir_concat_self(&sql, &_7); + RETURN_CTOR(&sql); } -static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, __construct) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, addPrimaryKey) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL; - zval options; - zval *factory, factory_sub, *options_param = NULL, _0, _2, _3, _4, _5, _6$$3; + zval *tableName_param = NULL, *schemaName_param = NULL, *index, index_sub; + zval tableName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&factory_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&options); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&index_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_storage_serializerfactory_ce) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(index, phalcon_db_indexinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &factory, &options_param); - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &index); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + ZEPHIR_INIT_VAR(&tableName); } - - - zephir_update_property_zval(this_ptr, ZEND_STRL("serializerFactory"), factory); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "defaultSerializer"); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "Php"); - ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultSerializer"), &_0); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "lifetime"); - ZVAL_LONG(&_5, 3600); - ZEPHIR_CALL_CE_STATIC(&_4, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_5); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("lifetime"), &_4); - if (zephir_array_isset_string(&options, SL("prefix"))) { - zephir_array_fetch_string(&_6$$3, &options, SL("prefix"), PH_NOISY | PH_READONLY, "phalcon/Storage/Adapter/AbstractAdapter.zep", 81); - zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &_6$$3); + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); } - ZEPHIR_MM_RESTORE(); -} - -static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, clear) -{ -} - -static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, decrement) -{ -} - -static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, delete) -{ -} - -static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, get) -{ -} - -static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, getAdapter) -{ -} - -static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, getKeys) -{ -} - -static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, has) -{ -} -static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, increment) -{ -} -static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, set) -{ + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Adding a primary key after table has been created is not supported by SQLite", "phalcon/Db/Dialect/Sqlite.zep", 110); + return; } -static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, getFilteredKeys) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createTable) { - zval results; + zend_bool hasPrimary = 0, _8$$7, _10$$7, _21$$15, _23$$15, _32$$24, _33$$24, _42$$27, _43$$27; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL; + zephir_fcall_cache_entry *_6 = NULL, *_15 = NULL, *_37 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval prefix; - zval *keys = NULL, keys_sub, *prefix_param = NULL, key, pattern, _0, _1, *_2, _3, _4$$3, _6$$5; + zval definition; + zval *tableName_param = NULL, *schemaName_param = NULL, *definition_param = NULL, columns, table, temporary, options, createLines, columnLine, column, indexes, index, indexName, indexType, references, reference, defaultValue, referenceSql, onDelete, onUpdate, *_2, _3, _69, _70, _0$$5, _1$$6, _4$$7, _5$$7, _7$$7, _9$$7, _11$$7, _17$$7, _12$$10, _13$$12, _14$$12, _16$$12, _18$$15, _19$$15, _20$$15, _22$$15, _24$$15, _29$$15, _25$$18, _26$$20, _27$$20, _28$$20, *_30$$23, _31$$23, _34$$24, _35$$25, _36$$25, _38$$25, _39$$26, _40$$26, _41$$26, _44$$27, _45$$28, _46$$28, _47$$28, _48$$29, _49$$29, _50$$29, *_51$$30, _52$$30, _53$$31, _54$$31, _55$$31, _56$$31, _57$$31, _58$$31, _59$$32, _60$$33, _61$$34, _62$$34, _63$$34, _64$$34, _65$$34, _66$$34, _67$$35, _68$$36; + zval tableName, schemaName, sql; zval *this_ptr = getThis(); - ZVAL_UNDEF(&keys_sub); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&sql); + ZVAL_UNDEF(&columns); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&temporary); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&createLines); + ZVAL_UNDEF(&columnLine); + ZVAL_UNDEF(&column); + ZVAL_UNDEF(&indexes); + ZVAL_UNDEF(&index); + ZVAL_UNDEF(&indexName); + ZVAL_UNDEF(&indexType); + ZVAL_UNDEF(&references); + ZVAL_UNDEF(&reference); + ZVAL_UNDEF(&defaultValue); + ZVAL_UNDEF(&referenceSql); + ZVAL_UNDEF(&onDelete); + ZVAL_UNDEF(&onUpdate); ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&prefix); - ZVAL_UNDEF(&results); + ZVAL_UNDEF(&_69); + ZVAL_UNDEF(&_70); + ZVAL_UNDEF(&_0$$5); + ZVAL_UNDEF(&_1$$6); + ZVAL_UNDEF(&_4$$7); + ZVAL_UNDEF(&_5$$7); + ZVAL_UNDEF(&_7$$7); + ZVAL_UNDEF(&_9$$7); + ZVAL_UNDEF(&_11$$7); + ZVAL_UNDEF(&_17$$7); + ZVAL_UNDEF(&_12$$10); + ZVAL_UNDEF(&_13$$12); + ZVAL_UNDEF(&_14$$12); + ZVAL_UNDEF(&_16$$12); + ZVAL_UNDEF(&_18$$15); + ZVAL_UNDEF(&_19$$15); + ZVAL_UNDEF(&_20$$15); + ZVAL_UNDEF(&_22$$15); + ZVAL_UNDEF(&_24$$15); + ZVAL_UNDEF(&_29$$15); + ZVAL_UNDEF(&_25$$18); + ZVAL_UNDEF(&_26$$20); + ZVAL_UNDEF(&_27$$20); + ZVAL_UNDEF(&_28$$20); + ZVAL_UNDEF(&_31$$23); + ZVAL_UNDEF(&_34$$24); + ZVAL_UNDEF(&_35$$25); + ZVAL_UNDEF(&_36$$25); + ZVAL_UNDEF(&_38$$25); + ZVAL_UNDEF(&_39$$26); + ZVAL_UNDEF(&_40$$26); + ZVAL_UNDEF(&_41$$26); + ZVAL_UNDEF(&_44$$27); + ZVAL_UNDEF(&_45$$28); + ZVAL_UNDEF(&_46$$28); + ZVAL_UNDEF(&_47$$28); + ZVAL_UNDEF(&_48$$29); + ZVAL_UNDEF(&_49$$29); + ZVAL_UNDEF(&_50$$29); + ZVAL_UNDEF(&_52$$30); + ZVAL_UNDEF(&_53$$31); + ZVAL_UNDEF(&_54$$31); + ZVAL_UNDEF(&_55$$31); + ZVAL_UNDEF(&_56$$31); + ZVAL_UNDEF(&_57$$31); + ZVAL_UNDEF(&_58$$31); + ZVAL_UNDEF(&_59$$32); + ZVAL_UNDEF(&_60$$33); + ZVAL_UNDEF(&_61$$34); + ZVAL_UNDEF(&_62$$34); + ZVAL_UNDEF(&_63$$34); + ZVAL_UNDEF(&_64$$34); + ZVAL_UNDEF(&_65$$34); + ZVAL_UNDEF(&_66$$34); + ZVAL_UNDEF(&_67$$35); + ZVAL_UNDEF(&_68$$36); + ZVAL_UNDEF(&definition); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_ZVAL(keys) - Z_PARAM_STR(prefix) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_ARRAY(definition) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &keys, &prefix_param); - ZEPHIR_SEPARATE_PARAM(keys); - if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &definition_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { - zephir_get_strval(&prefix, prefix_param); + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_INIT_VAR(&prefix); + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); } + ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); - ZEPHIR_INIT_VAR(&results); - array_init(&results); - zephir_read_property(&_0, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&pattern); - ZEPHIR_CONCAT_VV(&pattern, &_0, &prefix); - ZEPHIR_INIT_VAR(&_1); - if (!(zephir_is_true(keys))) { - ZEPHIR_INIT_NVAR(&_1); - array_init(&_1); + ZEPHIR_CALL_METHOD(&table, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&temporary); + ZVAL_BOOL(&temporary, 0); + ZEPHIR_OBS_VAR(&options); + if (zephir_array_isset_string_fetch(&options, &definition, SL("options"), 0)) { + ZEPHIR_OBS_NVAR(&temporary); + zephir_array_isset_string_fetch(&temporary, &options, SL("temporary"), 0); + } + ZEPHIR_OBS_VAR(&columns); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&columns, &definition, SL("columns"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'columns' is required in the definition array", "phalcon/Db/Dialect/Sqlite.zep", 134); + return; + } + if (zephir_is_true(&temporary)) { + ZEPHIR_INIT_VAR(&_0$$5); + ZEPHIR_CONCAT_SV(&_0$$5, "CREATE TEMPORARY TABLE ", &table); + zephir_get_strval(&sql, &_0$$5); } else { - ZEPHIR_CPY_WRT(&_1, keys); + ZEPHIR_INIT_VAR(&_1$$6); + ZEPHIR_CONCAT_SV(&_1$$6, "CREATE TABLE ", &table); + zephir_get_strval(&sql, &_1$$6); } - ZEPHIR_CPY_WRT(keys, &_1); - zephir_is_iterable(keys, 0, "phalcon/Storage/Adapter/AbstractAdapter.zep", 162); - if (Z_TYPE_P(keys) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(keys), _2) + zephir_concat_self_str(&sql, " (\n\t", sizeof(" (\n\t") - 1); + hasPrimary = 0; + ZEPHIR_INIT_VAR(&createLines); + array_init(&createLines); + zephir_is_iterable(&columns, 0, "phalcon/Db/Dialect/Sqlite.zep", 197); + if (Z_TYPE_P(&columns) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&columns), _2) { - ZEPHIR_INIT_NVAR(&key); - ZVAL_COPY(&key, _2); - ZEPHIR_CALL_CE_STATIC(&_4$$3, phalcon_helper_str_ce, "startswith", &_5, 17, &key, &pattern); + ZEPHIR_INIT_NVAR(&column); + ZVAL_COPY(&column, _2); + ZEPHIR_CALL_METHOD(&_4$$7, &column, "getname", NULL, 0); zephir_check_call_status(); - if (zephir_is_true(&_4$$3)) { - zephir_array_append(&results, &key, PH_SEPARATE, "phalcon/Storage/Adapter/AbstractAdapter.zep", 158); + ZEPHIR_CALL_METHOD(&_5$$7, this_ptr, "getcolumndefinition", &_6, 0, &column); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&columnLine); + ZEPHIR_CONCAT_SVSV(&columnLine, "`", &_4$$7, "` ", &_5$$7); + ZEPHIR_CALL_METHOD(&_7$$7, &column, "isprimary", NULL, 0); + zephir_check_call_status(); + _8$$7 = zephir_is_true(&_7$$7); + if (_8$$7) { + _8$$7 = !hasPrimary; + } + if (_8$$7) { + zephir_concat_self_str(&columnLine, SL(" PRIMARY KEY")); + hasPrimary = 1; + } + ZEPHIR_CALL_METHOD(&_9$$7, &column, "isautoincrement", NULL, 0); + zephir_check_call_status(); + _10$$7 = zephir_is_true(&_9$$7); + if (_10$$7) { + _10$$7 = hasPrimary; + } + if (_10$$7) { + zephir_concat_self_str(&columnLine, SL(" AUTOINCREMENT")); + } + ZEPHIR_CALL_METHOD(&_11$$7, &column, "hasdefault", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_11$$7)) { + ZEPHIR_CALL_METHOD(&defaultValue, &column, "getdefault", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_12$$10); + zephir_fast_strtoupper(&_12$$10, &defaultValue); + if (zephir_memnstr_str(&_12$$10, SL("CURRENT_TIMESTAMP"), "phalcon/Db/Dialect/Sqlite.zep", 175)) { + zephir_concat_self_str(&columnLine, SL(" DEFAULT CURRENT_TIMESTAMP")); + } else { + ZEPHIR_INIT_NVAR(&_13$$12); + ZVAL_STRING(&_13$$12, "\""); + ZEPHIR_CALL_FUNCTION(&_14$$12, "addcslashes", &_15, 214, &defaultValue, &_13$$12); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_16$$12); + ZEPHIR_CONCAT_SVS(&_16$$12, " DEFAULT \"", &_14$$12, "\""); + zephir_concat_self(&columnLine, &_16$$12); + } + } + ZEPHIR_CALL_METHOD(&_17$$7, &column, "isnotnull", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_17$$7)) { + zephir_concat_self_str(&columnLine, SL(" NOT NULL")); + } else { + zephir_concat_self_str(&columnLine, SL(" NULL")); } + zephir_array_append(&createLines, &columnLine, PH_SEPARATE, "phalcon/Db/Dialect/Sqlite.zep", 191); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, keys, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &columns, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_3, keys, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_3, &columns, "valid", NULL, 0); zephir_check_call_status(); if (!zend_is_true(&_3)) { break; } - ZEPHIR_CALL_METHOD(&key, keys, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&column, &columns, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_CE_STATIC(&_6$$5, phalcon_helper_str_ce, "startswith", &_5, 17, &key, &pattern); + ZEPHIR_CALL_METHOD(&_18$$15, &column, "getname", NULL, 0); zephir_check_call_status(); - if (zephir_is_true(&_6$$5)) { - zephir_array_append(&results, &key, PH_SEPARATE, "phalcon/Storage/Adapter/AbstractAdapter.zep", 158); + ZEPHIR_CALL_METHOD(&_19$$15, this_ptr, "getcolumndefinition", &_6, 0, &column); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&columnLine); + ZEPHIR_CONCAT_SVSV(&columnLine, "`", &_18$$15, "` ", &_19$$15); + ZEPHIR_CALL_METHOD(&_20$$15, &column, "isprimary", NULL, 0); + zephir_check_call_status(); + _21$$15 = zephir_is_true(&_20$$15); + if (_21$$15) { + _21$$15 = !hasPrimary; } - ZEPHIR_CALL_METHOD(NULL, keys, "next", NULL, 0); + if (_21$$15) { + zephir_concat_self_str(&columnLine, SL(" PRIMARY KEY")); + hasPrimary = 1; + } + ZEPHIR_CALL_METHOD(&_22$$15, &column, "isautoincrement", NULL, 0); + zephir_check_call_status(); + _23$$15 = zephir_is_true(&_22$$15); + if (_23$$15) { + _23$$15 = hasPrimary; + } + if (_23$$15) { + zephir_concat_self_str(&columnLine, SL(" AUTOINCREMENT")); + } + ZEPHIR_CALL_METHOD(&_24$$15, &column, "hasdefault", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_24$$15)) { + ZEPHIR_CALL_METHOD(&defaultValue, &column, "getdefault", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_25$$18); + zephir_fast_strtoupper(&_25$$18, &defaultValue); + if (zephir_memnstr_str(&_25$$18, SL("CURRENT_TIMESTAMP"), "phalcon/Db/Dialect/Sqlite.zep", 175)) { + zephir_concat_self_str(&columnLine, SL(" DEFAULT CURRENT_TIMESTAMP")); + } else { + ZEPHIR_INIT_NVAR(&_26$$20); + ZVAL_STRING(&_26$$20, "\""); + ZEPHIR_CALL_FUNCTION(&_27$$20, "addcslashes", &_15, 214, &defaultValue, &_26$$20); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_28$$20); + ZEPHIR_CONCAT_SVS(&_28$$20, " DEFAULT \"", &_27$$20, "\""); + zephir_concat_self(&columnLine, &_28$$20); + } + } + ZEPHIR_CALL_METHOD(&_29$$15, &column, "isnotnull", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_29$$15)) { + zephir_concat_self_str(&columnLine, SL(" NOT NULL")); + } else { + zephir_concat_self_str(&columnLine, SL(" NULL")); + } + zephir_array_append(&createLines, &columnLine, PH_SEPARATE, "phalcon/Db/Dialect/Sqlite.zep", 191); + ZEPHIR_CALL_METHOD(NULL, &columns, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&key); - RETURN_CTOR(&results); -} - -static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, getPrefixedKey) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *key = NULL, key_sub, _1; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&key_sub); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(key) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key); - ZEPHIR_SEPARATE_PARAM(key); - - - zephir_cast_to_string(&_0, key); - ZEPHIR_CPY_WRT(key, &_0); - zephir_read_property(&_1, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CONCAT_VV(return_value, &_1, key); - RETURN_MM(); + ZEPHIR_INIT_NVAR(&column); + ZEPHIR_OBS_VAR(&indexes); + if (zephir_array_isset_string_fetch(&indexes, &definition, SL("indexes"), 0)) { + zephir_is_iterable(&indexes, 0, "phalcon/Db/Dialect/Sqlite.zep", 211); + if (Z_TYPE_P(&indexes) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&indexes), _30$$23) + { + ZEPHIR_INIT_NVAR(&index); + ZVAL_COPY(&index, _30$$23); + ZEPHIR_CALL_METHOD(&indexName, &index, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&indexType, &index, "gettype", NULL, 0); + zephir_check_call_status(); + _32$$24 = ZEPHIR_IS_STRING(&indexName, "PRIMARY"); + if (_32$$24) { + _32$$24 = !hasPrimary; + } + _33$$24 = !(ZEPHIR_IS_EMPTY(&indexType)); + if (_33$$24) { + ZEPHIR_INIT_NVAR(&_34$$24); + zephir_fast_strtoupper(&_34$$24, &indexType); + _33$$24 = zephir_memnstr_str(&_34$$24, SL("UNIQUE"), "phalcon/Db/Dialect/Sqlite.zep", 207); + } + if (_32$$24) { + ZEPHIR_CALL_METHOD(&_36$$25, &index, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_35$$25, this_ptr, "getcolumnlist", &_37, 67, &_36$$25); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_38$$25); + ZEPHIR_CONCAT_SVS(&_38$$25, "PRIMARY KEY (", &_35$$25, ")"); + zephir_array_append(&createLines, &_38$$25, PH_SEPARATE, "phalcon/Db/Dialect/Sqlite.zep", 206); + } else if (_33$$24) { + ZEPHIR_CALL_METHOD(&_40$$26, &index, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_39$$26, this_ptr, "getcolumnlist", &_37, 67, &_40$$26); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_41$$26); + ZEPHIR_CONCAT_SVS(&_41$$26, "UNIQUE (", &_39$$26, ")"); + zephir_array_append(&createLines, &_41$$26, PH_SEPARATE, "phalcon/Db/Dialect/Sqlite.zep", 208); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &indexes, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_31$$23, &indexes, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_31$$23)) { + break; + } + ZEPHIR_CALL_METHOD(&index, &indexes, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&indexName, &index, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&indexType, &index, "gettype", NULL, 0); + zephir_check_call_status(); + _42$$27 = ZEPHIR_IS_STRING(&indexName, "PRIMARY"); + if (_42$$27) { + _42$$27 = !hasPrimary; + } + _43$$27 = !(ZEPHIR_IS_EMPTY(&indexType)); + if (_43$$27) { + ZEPHIR_INIT_NVAR(&_44$$27); + zephir_fast_strtoupper(&_44$$27, &indexType); + _43$$27 = zephir_memnstr_str(&_44$$27, SL("UNIQUE"), "phalcon/Db/Dialect/Sqlite.zep", 207); + } + if (_42$$27) { + ZEPHIR_CALL_METHOD(&_46$$28, &index, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_45$$28, this_ptr, "getcolumnlist", &_37, 67, &_46$$28); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_47$$28); + ZEPHIR_CONCAT_SVS(&_47$$28, "PRIMARY KEY (", &_45$$28, ")"); + zephir_array_append(&createLines, &_47$$28, PH_SEPARATE, "phalcon/Db/Dialect/Sqlite.zep", 206); + } else if (_43$$27) { + ZEPHIR_CALL_METHOD(&_49$$29, &index, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_48$$29, this_ptr, "getcolumnlist", &_37, 67, &_49$$29); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_50$$29); + ZEPHIR_CONCAT_SVS(&_50$$29, "UNIQUE (", &_48$$29, ")"); + zephir_array_append(&createLines, &_50$$29, PH_SEPARATE, "phalcon/Db/Dialect/Sqlite.zep", 208); + } + ZEPHIR_CALL_METHOD(NULL, &indexes, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&index); + } + ZEPHIR_OBS_VAR(&references); + if (zephir_array_isset_string_fetch(&references, &definition, SL("references"), 0)) { + zephir_is_iterable(&references, 0, "phalcon/Db/Dialect/Sqlite.zep", 233); + if (Z_TYPE_P(&references) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&references), _51$$30) + { + ZEPHIR_INIT_NVAR(&reference); + ZVAL_COPY(&reference, _51$$30); + ZEPHIR_CALL_METHOD(&_53$$31, &reference, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_55$$31, &reference, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_54$$31, this_ptr, "getcolumnlist", &_37, 67, &_55$$31); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_56$$31, &reference, "getreferencedtable", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_58$$31, &reference, "getreferencedcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_57$$31, this_ptr, "getcolumnlist", &_37, 67, &_58$$31); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&referenceSql); + ZEPHIR_CONCAT_SVSVSSVSVS(&referenceSql, "CONSTRAINT `", &_53$$31, "` FOREIGN KEY (", &_54$$31, ")", " REFERENCES `", &_56$$31, "`(", &_57$$31, ")"); + ZEPHIR_CALL_METHOD(&onDelete, &reference, "getondelete", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&onDelete))) { + ZEPHIR_INIT_NVAR(&_59$$32); + ZEPHIR_CONCAT_SV(&_59$$32, " ON DELETE ", &onDelete); + zephir_concat_self(&referenceSql, &_59$$32); + } + ZEPHIR_CALL_METHOD(&onUpdate, &reference, "getonupdate", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&onUpdate))) { + ZEPHIR_INIT_NVAR(&_60$$33); + ZEPHIR_CONCAT_SV(&_60$$33, " ON UPDATE ", &onUpdate); + zephir_concat_self(&referenceSql, &_60$$33); + } + zephir_array_append(&createLines, &referenceSql, PH_SEPARATE, "phalcon/Db/Dialect/Sqlite.zep", 231); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &references, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_52$$30, &references, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_52$$30)) { + break; + } + ZEPHIR_CALL_METHOD(&reference, &references, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_61$$34, &reference, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_63$$34, &reference, "getcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_62$$34, this_ptr, "getcolumnlist", &_37, 67, &_63$$34); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_64$$34, &reference, "getreferencedtable", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_66$$34, &reference, "getreferencedcolumns", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_65$$34, this_ptr, "getcolumnlist", &_37, 67, &_66$$34); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&referenceSql); + ZEPHIR_CONCAT_SVSVSSVSVS(&referenceSql, "CONSTRAINT `", &_61$$34, "` FOREIGN KEY (", &_62$$34, ")", " REFERENCES `", &_64$$34, "`(", &_65$$34, ")"); + ZEPHIR_CALL_METHOD(&onDelete, &reference, "getondelete", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&onDelete))) { + ZEPHIR_INIT_NVAR(&_67$$35); + ZEPHIR_CONCAT_SV(&_67$$35, " ON DELETE ", &onDelete); + zephir_concat_self(&referenceSql, &_67$$35); + } + ZEPHIR_CALL_METHOD(&onUpdate, &reference, "getonupdate", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&onUpdate))) { + ZEPHIR_INIT_NVAR(&_68$$36); + ZEPHIR_CONCAT_SV(&_68$$36, " ON UPDATE ", &onUpdate); + zephir_concat_self(&referenceSql, &_68$$36); + } + zephir_array_append(&createLines, &referenceSql, PH_SEPARATE, "phalcon/Db/Dialect/Sqlite.zep", 231); + ZEPHIR_CALL_METHOD(NULL, &references, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&reference); + } + ZEPHIR_INIT_VAR(&_69); + zephir_fast_join_str(&_69, SL(",\n\t"), &createLines); + ZEPHIR_INIT_VAR(&_70); + ZEPHIR_CONCAT_VS(&_70, &_69, "\n)"); + zephir_concat_self(&sql, &_70); + RETURN_CTOR(&sql); } -static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, getSerializedData) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, createView) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *content = NULL, content_sub, _0, _1$$3, _2$$3; + zval definition; + zval *viewName_param = NULL, *definition_param = NULL, *schemaName_param = NULL, viewSql, _0; + zval viewName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&content_sub); + ZVAL_UNDEF(&viewName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&viewSql); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&definition); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(content) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(viewName) + Z_PARAM_ARRAY(definition) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schemaName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &content); - ZEPHIR_SEPARATE_PARAM(content); + zephir_fetch_params(1, 2, 1, &viewName_param, &definition_param, &schemaName_param); + if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(&viewName, viewName_param); + } else { + ZEPHIR_INIT_VAR(&viewName); + } + ZEPHIR_OBS_COPY_OR_DUP(&definition, definition_param); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + zephir_get_strval(&schemaName, schemaName_param); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("defaultSerializer"), PH_NOISY_CC | PH_READONLY); - if (!ZEPHIR_IS_STRING_IDENTICAL(&_0, "")) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("serializer"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "setdata", NULL, 0, content); - zephir_check_call_status(); - zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("serializer"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(content, &_2$$3, "serialize", NULL, 0); - zephir_check_call_status(); + ZEPHIR_OBS_VAR(&viewSql); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&viewSql, &definition, SL("sql"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "The index 'sql' is required in the definition array", "phalcon/Db/Dialect/Sqlite.zep", 250); + return; } - RETVAL_ZVAL(content, 1, 0); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "preparetable", NULL, 0, &viewName, &schemaName); + zephir_check_call_status(); + ZEPHIR_CONCAT_SVSV(return_value, "CREATE VIEW ", &_0, " AS ", &viewSql); RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, getTtl) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeColumns) { - zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *ttl, ttl_sub, dateTime, _1$$4, _2$$4; + zval *table_param = NULL, *schema_param = NULL; + zval table, schema; zval *this_ptr = getThis(); - ZVAL_UNDEF(&ttl_sub); - ZVAL_UNDEF(&dateTime); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(ttl) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schema) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &ttl); - - - if (Z_TYPE_P(ttl) == IS_NULL) { - RETURN_MM_MEMBER(getThis(), "lifetime"); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); + RETURN_MM_NULL(); } - _0 = Z_TYPE_P(ttl) == IS_OBJECT; - if (_0) { - _0 = zephir_is_instance_of(ttl, SL("DateInterval")); + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); + } else { + ZEPHIR_INIT_VAR(&table); } - if (_0) { - ZEPHIR_INIT_VAR(&dateTime); - object_init_ex(&dateTime, php_date_get_date_ce()); - ZEPHIR_INIT_VAR(&_1$$4); - ZVAL_STRING(&_1$$4, "@0"); - ZEPHIR_CALL_METHOD(NULL, &dateTime, "__construct", NULL, 0, &_1$$4); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2$$4, &dateTime, "add", NULL, 0, ttl); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&_2$$4, "gettimestamp", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); + } else { + zephir_get_strval(&schema, schema_param); } - RETURN_MM_LONG(zephir_get_intval(ttl)); + + + ZEPHIR_CONCAT_SVS(return_value, "PRAGMA table_info('", &table, "')"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, getUnserializedData) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeIndex) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *content = NULL, content_sub, _0, _1$$3, _2$$3; + zval *index_param = NULL; + zval index; zval *this_ptr = getThis(); - ZVAL_UNDEF(&content_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&index); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(content) + Z_PARAM_STR(index) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &content); - ZEPHIR_SEPARATE_PARAM(content); + zephir_fetch_params(1, 1, 0, &index_param); + if (UNEXPECTED(Z_TYPE_P(index_param) != IS_STRING && Z_TYPE_P(index_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(index_param) == IS_STRING)) { + zephir_get_strval(&index, index_param); + } else { + ZEPHIR_INIT_VAR(&index); + } - zephir_read_property(&_0, this_ptr, ZEND_STRL("defaultSerializer"), PH_NOISY_CC | PH_READONLY); - if (!ZEPHIR_IS_STRING_IDENTICAL(&_0, "")) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("serializer"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_1$$3, "unserialize", NULL, 0, content); - zephir_check_call_status(); - zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("serializer"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(content, &_2$$3, "getdata", NULL, 0); - zephir_check_call_status(); - } - RETVAL_ZVAL(content, 1, 0); + ZEPHIR_CONCAT_SVS(return_value, "PRAGMA index_info('", &index, "')"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_AbstractAdapter, initSerializer) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeIndexes) { - zend_bool _1; - zval _0, _2, _3$$3, _4$$3, _5$$3; - zval className; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval *table_param = NULL, *schema_param = NULL; + zval table, schema; zval *this_ptr = getThis(); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schema) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - ZEPHIR_OBS_VAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("serializer"), PH_NOISY_CC); - _1 = Z_TYPE_P(&_0) == IS_OBJECT; - if (_1) { - ZEPHIR_OBS_VAR(&_2); - zephir_read_property(&_2, this_ptr, ZEND_STRL("serializer"), PH_NOISY_CC); - _1 = zephir_instance_of_ev(&_2, phalcon_storage_serializer_serializerinterface_ce); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); + RETURN_MM_NULL(); } - if (!(_1)) { - zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("defaultSerializer"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&className); - zephir_fast_strtolower(&className, &_3$$3); - zephir_read_property(&_4$$3, this_ptr, ZEND_STRL("serializerFactory"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_5$$3, &_4$$3, "newinstance", NULL, 0, &className); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("serializer"), &_5$$3); + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); + } else { + ZEPHIR_INIT_VAR(&table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); + } else { + zephir_get_strval(&schema, schema_param); } - ZEPHIR_MM_RESTORE(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - -ZEPHIR_INIT_CLASS(Phalcon_Storage_Adapter_AdapterInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Storage\\Adapter, AdapterInterface, phalcon, storage_adapter_adapterinterface, phalcon_storage_adapter_adapterinterface_method_entry); - return SUCCESS; + ZEPHIR_CONCAT_SVS(return_value, "PRAGMA index_list('", &table, "')"); + RETURN_MM(); } -ZEPHIR_DOC_METHOD(Phalcon_Storage_Adapter_AdapterInterface, clear); -ZEPHIR_DOC_METHOD(Phalcon_Storage_Adapter_AdapterInterface, decrement); -ZEPHIR_DOC_METHOD(Phalcon_Storage_Adapter_AdapterInterface, delete); -ZEPHIR_DOC_METHOD(Phalcon_Storage_Adapter_AdapterInterface, get); -ZEPHIR_DOC_METHOD(Phalcon_Storage_Adapter_AdapterInterface, getAdapter); -ZEPHIR_DOC_METHOD(Phalcon_Storage_Adapter_AdapterInterface, getKeys); -ZEPHIR_DOC_METHOD(Phalcon_Storage_Adapter_AdapterInterface, getPrefix); -ZEPHIR_DOC_METHOD(Phalcon_Storage_Adapter_AdapterInterface, has); -ZEPHIR_DOC_METHOD(Phalcon_Storage_Adapter_AdapterInterface, increment); -ZEPHIR_DOC_METHOD(Phalcon_Storage_Adapter_AdapterInterface, set); - - +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, describeReferences) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *table_param = NULL, *schema_param = NULL; + zval table, schema; + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schema) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); + } else { + ZEPHIR_INIT_VAR(&table); + } + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); + } else { + zephir_get_strval(&schema, schema_param); + } - -ZEPHIR_INIT_CLASS(Phalcon_Storage_Adapter_Apcu) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Adapter, Apcu, phalcon, storage_adapter_apcu, phalcon_storage_adapter_abstractadapter_ce, phalcon_storage_adapter_apcu_method_entry, 0); - - zend_declare_property_null(phalcon_storage_adapter_apcu_ce, SL("options"), ZEND_ACC_PROTECTED); - phalcon_storage_adapter_apcu_ce->create_object = zephir_init_properties_Phalcon_Storage_Adapter_Apcu; - - return SUCCESS; + ZEPHIR_CONCAT_SVS(return_value, "PRAGMA foreign_key_list('", &table, "')"); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Apcu, __construct) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropColumn) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL; - zval options; - zval *factory, factory_sub, *options_param = NULL, _0; + zval *tableName_param = NULL, *schemaName_param = NULL, *columnName_param = NULL; + zval tableName, schemaName, columnName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&factory_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&options); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&columnName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_storage_serializerfactory_ce) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_STR(columnName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &factory, &options_param); - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &columnName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + if (UNEXPECTED(Z_TYPE_P(columnName_param) != IS_STRING && Z_TYPE_P(columnName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'columnName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(columnName_param) == IS_STRING)) { + zephir_get_strval(&columnName, columnName_param); + } else { + ZEPHIR_INIT_VAR(&columnName); } - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "ph-apcu-"); - zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); - ZEPHIR_CALL_PARENT(NULL, phalcon_storage_adapter_apcu_ce, getThis(), "__construct", &_1, 0, factory, &options); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "initserializer", NULL, 0); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Dropping DB column is not supported by SQLite", "phalcon/Db/Dialect/Sqlite.zep", 299); + return; } -static PHP_METHOD(Phalcon_Storage_Adapter_Apcu, clear) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropForeignKey) { - zend_object_iterator *_1; - zend_bool result = 0; - zval item, pattern, apc, _0, _2$$4, _3$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval *tableName_param = NULL, *schemaName_param = NULL, *referenceName_param = NULL; + zval tableName, schemaName, referenceName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&item); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&apc); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&referenceName); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_STR(referenceName) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - ZEPHIR_INIT_VAR(&apc); - ZVAL_NULL(&apc); - zephir_read_property(&_0, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&pattern); - ZEPHIR_CONCAT_SVS(&pattern, "/^", &_0, "/"); - ZEPHIR_INIT_NVAR(&apc); - object_init_ex(&apc, zephir_get_internal_ce(SL("apcuiterator"))); - ZEPHIR_CALL_METHOD(NULL, &apc, "__construct", NULL, 0, &pattern); - zephir_check_call_status(); - result = 1; - if (Z_TYPE_P(&apc) != IS_OBJECT) { - RETURN_MM_BOOL(0); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &referenceName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); + RETURN_MM_NULL(); } - _1 = zephir_get_iterator(&apc); - _1->funcs->rewind(_1); - for (;_1->funcs->valid(_1) == SUCCESS && !EG(exception); _1->funcs->move_forward(_1)) { - { - ZEPHIR_ITERATOR_COPY(&item, _1); - } - zephir_array_fetch_string(&_2$$4, &item, SL("key"), PH_NOISY | PH_READONLY, "phalcon/Storage/Adapter/Apcu.zep", 69); - ZEPHIR_CALL_FUNCTION(&_3$$4, "apcu_delete", &_4, 119, &_2$$4); - zephir_check_call_status(); - if (!(zephir_is_true(&_3$$4))) { - result = 0; - } + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); + } else { + ZEPHIR_INIT_VAR(&tableName); } - zend_iterator_dtor(_1); - RETURN_MM_BOOL(result); + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + if (UNEXPECTED(Z_TYPE_P(referenceName_param) != IS_STRING && Z_TYPE_P(referenceName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referenceName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(referenceName_param) == IS_STRING)) { + zephir_get_strval(&referenceName, referenceName_param); + } else { + ZEPHIR_INIT_VAR(&referenceName); + } + + + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Dropping a foreign key constraint is not supported by SQLite", "phalcon/Db/Dialect/Sqlite.zep", 309); + return; } -static PHP_METHOD(Phalcon_Storage_Adapter_Apcu, decrement) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropIndex) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long value, ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *value_param = NULL, _0, _1; - zval key; + zval *tableName_param = NULL, *schemaName_param = NULL, *indexName_param = NULL; + zval tableName, schemaName, indexName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&indexName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(key) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(value) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_STR(indexName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &key_param, &value_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + zephir_fetch_params(1, 3, 0, &tableName_param, &schemaName_param, &indexName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_INIT_VAR(&key); + ZEPHIR_INIT_VAR(&tableName); } - if (!value_param) { - value = 1; + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); } else { - value = zephir_get_intval(value_param); + ZEPHIR_INIT_VAR(&schemaName); + } + if (UNEXPECTED(Z_TYPE_P(indexName_param) != IS_STRING && Z_TYPE_P(indexName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'indexName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(indexName_param) == IS_STRING)) { + zephir_get_strval(&indexName, indexName_param); + } else { + ZEPHIR_INIT_VAR(&indexName); } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getprefixedkey", NULL, 0, &key); - zephir_check_call_status(); - ZVAL_LONG(&_1, value); - ZEPHIR_RETURN_CALL_FUNCTION("apcu_dec", NULL, 120, &_0, &_1); - zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&schemaName))) { + ZEPHIR_CONCAT_SVSVS(return_value, "DROP INDEX \"", &schemaName, "\".\"", &indexName, "\""); + RETURN_MM(); + } + ZEPHIR_CONCAT_SVS(return_value, "DROP INDEX \"", &indexName, "\""); RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Apcu, delete) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropPrimaryKey) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, _0; - zval key; + zval *tableName_param = NULL, *schemaName_param = NULL; + zval tableName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + zephir_fetch_params(1, 2, 0, &tableName_param, &schemaName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_INIT_VAR(&key); + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getprefixedkey", NULL, 0, &key); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_FUNCTION("apcu_delete", NULL, 119, &_0); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Removing a primary key after table has been created is not supported by SQLite", "phalcon/Db/Dialect/Sqlite.zep", 331); + return; } -static PHP_METHOD(Phalcon_Storage_Adapter_Apcu, get) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropTable) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, content, _0, _1; - zval key; + zend_bool ifExists; + zval *tableName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, table; + zval tableName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&content); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&table); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(tableName) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(defaultValue) + Z_PARAM_STR_OR_NULL(schemaName) + Z_PARAM_BOOL(ifExists) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &key_param, &defaultValue); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + zephir_fetch_params(1, 1, 2, &tableName_param, &schemaName_param, &ifExists_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_INIT_VAR(&key); + ZEPHIR_INIT_VAR(&tableName); } - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + zephir_get_strval(&schemaName, schemaName_param); + } + if (!ifExists_param) { + ifExists = 1; + } else { + if (UNEXPECTED(Z_TYPE_P(ifExists_param) != IS_TRUE && Z_TYPE_P(ifExists_param) != IS_FALSE)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be of the type bool")); + RETURN_MM_NULL(); + } + ifExists = (Z_TYPE_P(ifExists_param) == IS_TRUE); } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, &key); + ZEPHIR_CALL_METHOD(&table, this_ptr, "preparetable", NULL, 0, &tableName, &schemaName); zephir_check_call_status(); - if (ZEPHIR_IS_FALSE(&_0)) { - RETVAL_ZVAL(defaultValue, 1, 0); + if (ifExists) { + ZEPHIR_CONCAT_SV(return_value, "DROP TABLE IF EXISTS ", &table); RETURN_MM(); } - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getprefixedkey", NULL, 0, &key); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&content, "apcu_fetch", NULL, 121, &_1); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getunserializeddata", NULL, 0, &content); - zephir_check_call_status(); + ZEPHIR_CONCAT_SV(return_value, "DROP TABLE ", &table); RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Apcu, getAdapter) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "adapter"); -} - -static PHP_METHOD(Phalcon_Storage_Adapter_Apcu, getKeys) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, dropView) { - zend_object_iterator *_1; - zval results; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *prefix_param = NULL, item, pattern, apc, _0, _2$$4; - zval prefix; + zend_bool ifExists; + zval *viewName_param = NULL, *schemaName_param = NULL, *ifExists_param = NULL, view; + zval viewName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&prefix); - ZVAL_UNDEF(&item); - ZVAL_UNDEF(&pattern); - ZVAL_UNDEF(&apc); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&results); + ZVAL_UNDEF(&viewName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&view); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(viewName) Z_PARAM_OPTIONAL - Z_PARAM_STR(prefix) + Z_PARAM_STR_OR_NULL(schemaName) + Z_PARAM_BOOL(ifExists) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &prefix_param); - if (!prefix_param) { - ZEPHIR_INIT_VAR(&prefix); - ZVAL_STRING(&prefix, ""); - } else { - if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); + zephir_fetch_params(1, 1, 2, &viewName_param, &schemaName_param, &ifExists_param); + if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { - zephir_get_strval(&prefix, prefix_param); + if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(&viewName, viewName_param); } else { - ZEPHIR_INIT_VAR(&prefix); + ZEPHIR_INIT_VAR(&viewName); + } + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + zephir_get_strval(&schemaName, schemaName_param); + } + if (!ifExists_param) { + ifExists = 1; + } else { + if (UNEXPECTED(Z_TYPE_P(ifExists_param) != IS_TRUE && Z_TYPE_P(ifExists_param) != IS_FALSE)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'ifExists' must be of the type bool")); + RETURN_MM_NULL(); } + ifExists = (Z_TYPE_P(ifExists_param) == IS_TRUE); } - ZEPHIR_INIT_VAR(&apc); - ZVAL_NULL(&apc); - zephir_read_property(&_0, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&pattern); - ZEPHIR_CONCAT_SVVS(&pattern, "/^", &_0, &prefix, "/"); - ZEPHIR_INIT_NVAR(&apc); - object_init_ex(&apc, zephir_get_internal_ce(SL("apcuiterator"))); - ZEPHIR_CALL_METHOD(NULL, &apc, "__construct", NULL, 0, &pattern); + ZEPHIR_CALL_METHOD(&view, this_ptr, "preparetable", NULL, 0, &viewName, &schemaName); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&results); - array_init(&results); - if (Z_TYPE_P(&apc) != IS_OBJECT) { - RETURN_CTOR(&results); - } - _1 = zephir_get_iterator(&apc); - _1->funcs->rewind(_1); - for (;_1->funcs->valid(_1) == SUCCESS && !EG(exception); _1->funcs->move_forward(_1)) { - { - ZEPHIR_ITERATOR_COPY(&item, _1); - } - zephir_array_fetch_string(&_2$$4, &item, SL("key"), PH_NOISY | PH_READONLY, "phalcon/Storage/Adapter/Apcu.zep", 152); - zephir_array_append(&results, &_2$$4, PH_SEPARATE, "phalcon/Storage/Adapter/Apcu.zep", 152); + if (ifExists) { + ZEPHIR_CONCAT_SV(return_value, "DROP VIEW IF EXISTS ", &view); + RETURN_MM(); } - zend_iterator_dtor(_1); - RETURN_CTOR(&results); + ZEPHIR_CONCAT_SV(return_value, "DROP VIEW ", &view); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Apcu, has) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, forUpdate) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, _0; - zval key; + zval *sqlQuery_param = NULL; + zval sqlQuery; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&sqlQuery); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + Z_PARAM_STR(sqlQuery) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + zephir_fetch_params(1, 1, 0, &sqlQuery_param); + if (UNEXPECTED(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + if (EXPECTED(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { + zephir_get_strval(&sqlQuery, sqlQuery_param); } else { - ZEPHIR_INIT_VAR(&key); + ZEPHIR_INIT_VAR(&sqlQuery); } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getprefixedkey", NULL, 0, &key); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_FUNCTION("apcu_exists", NULL, 122, &_0); - zephir_check_call_status(); - RETURN_MM(); + RETURN_CTOR(&sqlQuery); } -static PHP_METHOD(Phalcon_Storage_Adapter_Apcu, increment) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, getColumnDefinition) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long value, ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *value_param = NULL, _0, _1; - zval key; + zephir_fcall_cache_entry *_12 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *column, column_sub, columnType, columnSql, typeValues, _0$$3, _1$$10, _2$$16, _3$$18, _4$$35, _5$$38, _6$$38, _7$$38, value$$40, valueSql$$40, *_8$$40, _9$$40, _17$$40, _18$$40, _19$$40, _20$$40, _10$$41, _11$$41, _13$$41, _14$$42, _15$$42, _16$$42, _21$$43, _22$$43, _23$$43; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(&columnType); + ZVAL_UNDEF(&columnSql); + ZVAL_UNDEF(&typeValues); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$10); + ZVAL_UNDEF(&_2$$16); + ZVAL_UNDEF(&_3$$18); + ZVAL_UNDEF(&_4$$35); + ZVAL_UNDEF(&_5$$38); + ZVAL_UNDEF(&_6$$38); + ZVAL_UNDEF(&_7$$38); + ZVAL_UNDEF(&value$$40); + ZVAL_UNDEF(&valueSql$$40); + ZVAL_UNDEF(&_9$$40); + ZVAL_UNDEF(&_17$$40); + ZVAL_UNDEF(&_18$$40); + ZVAL_UNDEF(&_19$$40); + ZVAL_UNDEF(&_20$$40); + ZVAL_UNDEF(&_10$$41); + ZVAL_UNDEF(&_11$$41); + ZVAL_UNDEF(&_13$$41); + ZVAL_UNDEF(&_14$$42); + ZVAL_UNDEF(&_15$$42); + ZVAL_UNDEF(&_16$$42); + ZVAL_UNDEF(&_21$$43); + ZVAL_UNDEF(&_22$$43); + ZVAL_UNDEF(&_23$$43); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(key) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(value) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &key_param, &value_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } - if (!value_param) { - value = 1; - } else { - value = zephir_get_intval(value_param); - } + zephir_fetch_params(1, 1, 0, &column); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getprefixedkey", NULL, 0, &key); + ZEPHIR_CALL_METHOD(&columnSql, this_ptr, "checkcolumntypesql", NULL, 0, column); zephir_check_call_status(); - ZVAL_LONG(&_1, value); - ZEPHIR_RETURN_CALL_FUNCTION("apcu_inc", NULL, 123, &_0, &_1); + ZEPHIR_CALL_METHOD(&columnType, this_ptr, "checkcolumntype", NULL, 0, column); zephir_check_call_status(); - RETURN_MM(); + do { + if (ZEPHIR_IS_LONG(&columnType, 14)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("BIGINT")); + } + ZEPHIR_CALL_METHOD(&_0$$3, column, "isunsigned", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_0$$3)) { + zephir_concat_self_str(&columnSql, SL(" UNSIGNED")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 11)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("BLOB")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 8)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("TINYINT")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 5)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("CHARACTER")); + } + ZEPHIR_CALL_METHOD(&_1$$10, this_ptr, "getcolumnsize", NULL, 0, column); + zephir_check_call_status(); + zephir_concat_self(&columnSql, &_1$$10); + break; + } + if (ZEPHIR_IS_LONG(&columnType, 1)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("DATE")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 4)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("DATETIME")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 3)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("NUMERIC")); + } + ZEPHIR_CALL_METHOD(&_2$$16, this_ptr, "getcolumnsizeandscale", NULL, 0, column); + zephir_check_call_status(); + zephir_concat_self(&columnSql, &_2$$16); + break; + } + if (ZEPHIR_IS_LONG(&columnType, 9)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("DOUBLE")); + } + ZEPHIR_CALL_METHOD(&_3$$18, column, "isunsigned", NULL, 0); + zephir_check_call_status(); + if (zephir_is_true(&_3$$18)) { + zephir_concat_self_str(&columnSql, SL(" UNSIGNED")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 7)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("FLOAT")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 0)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("INTEGER")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 13)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("LONGBLOB")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 12)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("MEDIUMBLOB")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 6)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("TEXT")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 17)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("TIMESTAMP")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 10)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("TINYBLOB")); + } + break; + } + if (ZEPHIR_IS_LONG(&columnType, 2)) { + if (ZEPHIR_IS_EMPTY(&columnSql)) { + zephir_concat_self_str(&columnSql, SL("VARCHAR")); + } + ZEPHIR_CALL_METHOD(&_4$$35, this_ptr, "getcolumnsize", NULL, 0, column); + zephir_check_call_status(); + zephir_concat_self(&columnSql, &_4$$35); + break; + } + if (ZEPHIR_IS_EMPTY(&columnSql)) { + ZEPHIR_INIT_VAR(&_5$$38); + object_init_ex(&_5$$38, phalcon_db_exception_ce); + ZEPHIR_CALL_METHOD(&_6$$38, column, "getname", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_7$$38); + ZEPHIR_CONCAT_SV(&_7$$38, "Unrecognized SQLite data type at column ", &_6$$38); + ZEPHIR_CALL_METHOD(NULL, &_5$$38, "__construct", NULL, 8, &_7$$38); + zephir_check_call_status(); + zephir_throw_exception_debug(&_5$$38, "phalcon/Db/Dialect/Sqlite.zep", 520); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_CALL_METHOD(&typeValues, column, "gettypevalues", NULL, 0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&typeValues))) { + if (Z_TYPE_P(&typeValues) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&valueSql$$40); + ZVAL_STRING(&valueSql$$40, ""); + zephir_is_iterable(&typeValues, 0, "phalcon/Db/Dialect/Sqlite.zep", 534); + if (Z_TYPE_P(&typeValues) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&typeValues), _8$$40) + { + ZEPHIR_INIT_NVAR(&value$$40); + ZVAL_COPY(&value$$40, _8$$40); + ZEPHIR_INIT_NVAR(&_10$$41); + ZVAL_STRING(&_10$$41, "\""); + ZEPHIR_CALL_FUNCTION(&_11$$41, "addcslashes", &_12, 214, &value$$40, &_10$$41); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_13$$41); + ZEPHIR_CONCAT_SVS(&_13$$41, "\"", &_11$$41, "\", "); + zephir_concat_self(&valueSql$$40, &_13$$41); + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, &typeValues, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_9$$40, &typeValues, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_9$$40)) { + break; + } + ZEPHIR_CALL_METHOD(&value$$40, &typeValues, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_14$$42); + ZVAL_STRING(&_14$$42, "\""); + ZEPHIR_CALL_FUNCTION(&_15$$42, "addcslashes", &_12, 214, &value$$40, &_14$$42); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_16$$42); + ZEPHIR_CONCAT_SVS(&_16$$42, "\"", &_15$$42, "\", "); + zephir_concat_self(&valueSql$$40, &_16$$42); + ZEPHIR_CALL_METHOD(NULL, &typeValues, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&value$$40); + ZVAL_LONG(&_17$$40, 0); + ZVAL_LONG(&_18$$40, -2); + ZEPHIR_INIT_VAR(&_19$$40); + zephir_substr(&_19$$40, &valueSql$$40, 0 , -2 , 0); + ZEPHIR_INIT_VAR(&_20$$40); + ZEPHIR_CONCAT_SVS(&_20$$40, "(", &_19$$40, ")"); + zephir_concat_self(&columnSql, &_20$$40); + } else { + ZEPHIR_INIT_VAR(&_21$$43); + ZVAL_STRING(&_21$$43, "\""); + ZEPHIR_CALL_FUNCTION(&_22$$43, "addcslashes", &_12, 214, &typeValues, &_21$$43); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_23$$43); + ZEPHIR_CONCAT_SVS(&_23$$43, "(\"", &_22$$43, "\")"); + zephir_concat_self(&columnSql, &_23$$43); + } + } + } while(0); + + RETURN_CCTOR(&columnSql); } -static PHP_METHOD(Phalcon_Storage_Adapter_Apcu, set) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, listIndexesSql) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *value, value_sub, *ttl = NULL, ttl_sub, __$null, _0, _1, _2; - zval key; + zval *table_param = NULL, *schema_param = NULL, *keyName_param = NULL, _0, _1, _2$$3, _3$$3; + zval table, schema, keyName, sql; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&ttl_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); + ZVAL_UNDEF(&keyName); + ZVAL_UNDEF(&sql); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(key) - Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(table) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(ttl) + Z_PARAM_STR_OR_NULL(schema) + Z_PARAM_STR_OR_NULL(keyName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &key_param, &value, &ttl); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + zephir_fetch_params(1, 1, 2, &table_param, &schema_param, &keyName_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); } else { - ZEPHIR_INIT_VAR(&key); + ZEPHIR_INIT_VAR(&table); } - if (!ttl) { - ttl = &ttl_sub; - ttl = &__$null; + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); + } else { + zephir_get_strval(&schema, schema_param); + } + if (!keyName_param) { + ZEPHIR_INIT_VAR(&keyName); + } else { + zephir_get_strval(&keyName, keyName_param); } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getprefixedkey", NULL, 0, &key); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getserializeddata", NULL, 0, value); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getttl", NULL, 0, ttl); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_FUNCTION("apcu_store", NULL, 124, &_0, &_1, &_2); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "escape", NULL, 66, &table); zephir_check_call_status(); - RETURN_MM(); -} - -zend_object *zephir_init_properties_Phalcon_Storage_Adapter_Apcu(zend_class_entry *class_type) -{ - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_CONCAT_SVS(&_1, "SELECT sql FROM sqlite_master WHERE type = 'index' AND tbl_name = ", &_0, " COLLATE NOCASE"); + zephir_get_strval(&sql, &_1); + if (!(ZEPHIR_IS_EMPTY(&keyName))) { + ZEPHIR_CALL_METHOD(&_2$$3, this_ptr, "escape", NULL, 66, &keyName); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_3$$3); + ZEPHIR_CONCAT_SVS(&_3$$3, " AND name = ", &_2$$3, " COLLATE NOCASE"); + zephir_concat_self(&sql, &_3$$3); } + RETURN_CTOR(&sql); } - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Storage_Adapter_Libmemcached) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Adapter, Libmemcached, phalcon, storage_adapter_libmemcached, phalcon_storage_adapter_abstractadapter_ce, phalcon_storage_adapter_libmemcached_method_entry, 0); - - zend_declare_property_null(phalcon_storage_adapter_libmemcached_ce, SL("options"), ZEND_ACC_PROTECTED); - phalcon_storage_adapter_libmemcached_ce->create_object = zephir_init_properties_Phalcon_Storage_Adapter_Libmemcached; - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, __construct) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, listTables) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_3 = NULL; - zval options, _0$$3, _1$$3; - zval *factory, factory_sub, *options_param = NULL, _2; + zval *schemaName_param = NULL; + zval schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&factory_sub); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&schemaName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_storage_serializerfactory_ce) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + Z_PARAM_STR_OR_NULL(schemaName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &factory, &options_param); - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); + zephir_fetch_params(1, 0, 1, &schemaName_param); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); } else { - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + zephir_get_strval(&schemaName, schemaName_param); } - if (!(zephir_array_isset_string(&options, SL("servers")))) { - ZEPHIR_INIT_VAR(&_0$$3); - zephir_create_array(&_0$$3, 1, 0); - ZEPHIR_INIT_VAR(&_1$$3); - zephir_create_array(&_1$$3, 3, 0); - add_assoc_stringl_ex(&_1$$3, SL("host"), SL("127.0.0.1")); - add_assoc_long_ex(&_1$$3, SL("port"), 11211); - add_assoc_long_ex(&_1$$3, SL("weight"), 1); - zephir_array_update_long(&_0$$3, 0, &_1$$3, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - zephir_array_update_string(&options, SL("servers"), &_0$$3, PH_COPY | PH_SEPARATE); - } - ZEPHIR_INIT_VAR(&_2); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "ph-memc-"); - zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &_2); - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); - ZEPHIR_CALL_PARENT(NULL, phalcon_storage_adapter_libmemcached_ce, getThis(), "__construct", &_3, 0, factory, &options); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + RETURN_MM_STRING("SELECT tbl_name FROM sqlite_master WHERE type = 'table' ORDER BY tbl_name"); } -static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, clear) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, listViews) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval *schemaName_param = NULL; + zval schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&schemaName); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(schemaName) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &schemaName_param); + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); + } + } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&_0, "flush", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); + + RETURN_MM_STRING("SELECT tbl_name FROM sqlite_master WHERE type = 'view' ORDER BY tbl_name"); } -static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, decrement) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, modifyColumn) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long value, ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *value_param = NULL, _0, _1; - zval key; + zval *tableName_param = NULL, *schemaName_param = NULL, *column, column_sub, *currentColumn = NULL, currentColumn_sub, __$null; + zval tableName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&column_sub); + ZVAL_UNDEF(¤tColumn_sub); + ZVAL_NULL(&__$null); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_START(3, 4) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) + Z_PARAM_OBJECT_OF_CLASS(column, phalcon_db_columninterface_ce) Z_PARAM_OPTIONAL - Z_PARAM_LONG(value) + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(currentColumn, phalcon_db_columninterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &key_param, &value_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + zephir_fetch_params(1, 3, 1, &tableName_param, &schemaName_param, &column, ¤tColumn); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_INIT_VAR(&key); + ZEPHIR_INIT_VAR(&tableName); } - if (!value_param) { - value = 1; + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); } else { - value = zephir_get_intval(value_param); + ZEPHIR_INIT_VAR(&schemaName); + } + if (!currentColumn) { + currentColumn = ¤tColumn_sub; + currentColumn = &__$null; } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); - zephir_check_call_status(); - ZVAL_LONG(&_1, value); - ZEPHIR_RETURN_CALL_METHOD(&_0, "decrement", NULL, 0, &key, &_1); - zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_db_exception_ce, "Altering a DB column is not supported by SQLite", "phalcon/Db/Dialect/Sqlite.zep", 593); + return; } -static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, delete) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, sharedLock) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, _0, _1; - zval key; + zval *sqlQuery_param = NULL; + zval sqlQuery; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&sqlQuery); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + Z_PARAM_STR(sqlQuery) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + zephir_fetch_params(1, 1, 0, &sqlQuery_param); + if (UNEXPECTED(Z_TYPE_P(sqlQuery_param) != IS_STRING && Z_TYPE_P(sqlQuery_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'sqlQuery' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + if (EXPECTED(Z_TYPE_P(sqlQuery_param) == IS_STRING)) { + zephir_get_strval(&sqlQuery, sqlQuery_param); } else { - ZEPHIR_INIT_VAR(&key); + ZEPHIR_INIT_VAR(&sqlQuery); } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); - zephir_check_call_status(); - ZVAL_LONG(&_1, 0); - ZEPHIR_RETURN_CALL_METHOD(&_0, "delete", NULL, 0, &key, &_1); - zephir_check_call_status(); - RETURN_MM(); + RETURN_CTOR(&sqlQuery); } -static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, get) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableExists) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, _0, _1, _2; - zval key; + zval *tableName_param = NULL, *schemaName_param = NULL; + zval tableName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(key) + Z_PARAM_STR(tableName) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(defaultValue) + Z_PARAM_STR_OR_NULL(schemaName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &key_param, &defaultValue); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + zephir_fetch_params(1, 1, 1, &tableName_param, &schemaName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_INIT_VAR(&key); + ZEPHIR_INIT_VAR(&tableName); } - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); + } else { + zephir_get_strval(&schemaName, schemaName_param); } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, &key); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE(&_0)) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getadapter", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2, &_1, "get", NULL, 0, &key); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getunserializeddata", NULL, 0, &_2); - zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM sqlite_master WHERE type='table' AND tbl_name='", &tableName, "'"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, getAdapter) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval __$true, client, connection, failover, options, persistentId, sasl, saslPass, saslUser, servers, serverList, _0, _1$$3, _3$$3, _4$$3, _5$$3, _6$$4, _7$$4, _8$$4, _9$$4, _10$$4, _11$$4; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_2 = NULL; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&client); - ZVAL_UNDEF(&connection); - ZVAL_UNDEF(&failover); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&persistentId); - ZVAL_UNDEF(&sasl); - ZVAL_UNDEF(&saslPass); - ZVAL_UNDEF(&saslUser); - ZVAL_UNDEF(&servers); - ZVAL_UNDEF(&serverList); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_8$$4); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_10$$4); - ZVAL_UNDEF(&_11$$4); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&options, &_1$$3); - ZEPHIR_INIT_VAR(&_3$$3); - ZVAL_STRING(&_3$$3, "persistentId"); - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "ph-mcid-"); - ZEPHIR_CALL_CE_STATIC(&persistentId, phalcon_helper_arr_ce, "get", &_2, 16, &options, &_3$$3, &_4$$3); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_3$$3); - array_init(&_3$$3); - ZEPHIR_INIT_NVAR(&_4$$3); - ZVAL_STRING(&_4$$3, "saslAuthData"); - ZEPHIR_CALL_CE_STATIC(&sasl, phalcon_helper_arr_ce, "get", &_2, 16, &options, &_4$$3, &_3$$3); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&connection); - object_init_ex(&connection, zephir_get_internal_ce(SL("memcached"))); - ZEPHIR_CALL_METHOD(NULL, &connection, "__construct", NULL, 0, &persistentId); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&serverList, &connection, "getserverlist", NULL, 0); - zephir_check_call_status(); - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_5$$3, -1002); - ZEPHIR_CALL_METHOD(NULL, &connection, "setoption", NULL, 0, &_5$$3, &_1$$3); - zephir_check_call_status(); - if (zephir_fast_count_int(&serverList) < 1) { - ZEPHIR_INIT_VAR(&_6$$4); - array_init(&_6$$4); - ZEPHIR_INIT_VAR(&_7$$4); - ZVAL_STRING(&_7$$4, "servers"); - ZEPHIR_CALL_CE_STATIC(&servers, phalcon_helper_arr_ce, "get", &_2, 16, &options, &_7$$4, &_6$$4); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_7$$4); - array_init(&_7$$4); - ZEPHIR_INIT_VAR(&_8$$4); - ZVAL_STRING(&_8$$4, "client"); - ZEPHIR_CALL_CE_STATIC(&client, phalcon_helper_arr_ce, "get", &_2, 16, &options, &_8$$4, &_7$$4); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_8$$4); - ZVAL_STRING(&_8$$4, "user"); - ZEPHIR_INIT_VAR(&_9$$4); - ZVAL_STRING(&_9$$4, ""); - ZEPHIR_CALL_CE_STATIC(&saslUser, phalcon_helper_arr_ce, "get", &_2, 16, &sasl, &_8$$4, &_9$$4); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_8$$4); - ZVAL_STRING(&_8$$4, "pass"); - ZEPHIR_INIT_NVAR(&_9$$4); - ZVAL_STRING(&_9$$4, ""); - ZEPHIR_CALL_CE_STATIC(&saslPass, phalcon_helper_arr_ce, "get", &_2, 16, &sasl, &_8$$4, &_9$$4); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&failover); - zephir_create_array(&failover, 5, 0); - add_index_long(&failover, 14, 10); - add_index_long(&failover, 9, 1); - add_index_long(&failover, 21, 2); - zephir_array_update_long(&failover, 35, &__$true, PH_COPY ZEPHIR_DEBUG_PARAMS_DUMMY); - add_index_long(&failover, 15, 1); - ZEPHIR_INIT_NVAR(&_8$$4); - zephir_fast_array_merge(&_8$$4, &failover, &client); - ZEPHIR_CPY_WRT(&client, &_8$$4); - ZEPHIR_CALL_METHOD(&_10$$4, &connection, "setoptions", NULL, 0, &client); - zephir_check_call_status(); - if (!(zephir_is_true(&_10$$4))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_storage_exception_ce, "Cannot set Memcached client options", "phalcon/Storage/Adapter/Libmemcached.zep", 150); - return; - } - ZEPHIR_CALL_METHOD(&_11$$4, &connection, "addservers", NULL, 0, &servers); - zephir_check_call_status(); - if (!(zephir_is_true(&_11$$4))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_storage_exception_ce, "Cannot connect to the Memcached server(s)", "phalcon/Storage/Adapter/Libmemcached.zep", 154); - return; - } - if (!(ZEPHIR_IS_EMPTY(&saslUser))) { - ZEPHIR_CALL_METHOD(NULL, &connection, "setsaslauthdata", NULL, 0, &saslUser, &saslPass); - zephir_check_call_status(); - } - } - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setserializer", NULL, 125, &connection); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("adapter"), &connection); - } - RETURN_MM_MEMBER(getThis(), "adapter"); -} - -static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, getKeys) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, tableOptions) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *prefix_param = NULL, _0, _1; - zval prefix; + zval *table_param = NULL, *schema_param = NULL; + zval table, schema; zval *this_ptr = getThis(); - ZVAL_UNDEF(&prefix); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&table); + ZVAL_UNDEF(&schema); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(table) Z_PARAM_OPTIONAL - Z_PARAM_STR(prefix) + Z_PARAM_STR_OR_NULL(schema) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &prefix_param); - if (!prefix_param) { - ZEPHIR_INIT_VAR(&prefix); - ZVAL_STRING(&prefix, ""); - } else { - if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); + zephir_fetch_params(1, 1, 1, &table_param, &schema_param); + if (UNEXPECTED(Z_TYPE_P(table_param) != IS_STRING && Z_TYPE_P(table_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'table' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { - zephir_get_strval(&prefix, prefix_param); + if (EXPECTED(Z_TYPE_P(table_param) == IS_STRING)) { + zephir_get_strval(&table, table_param); } else { - ZEPHIR_INIT_VAR(&prefix); + ZEPHIR_INIT_VAR(&table); } + if (!schema_param) { + ZEPHIR_INIT_VAR(&schema); + } else { + zephir_get_strval(&schema, schema_param); } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, &_0, "getallkeys", NULL, 0); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getfilteredkeys", NULL, 0, &_1, &prefix); - zephir_check_call_status(); - RETURN_MM(); + RETURN_MM_STRING(""); } -static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, has) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, truncateTable) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, connection, result, _0; - zval key; + zval *tableName_param = NULL, *schemaName_param = NULL; + zval tableName, schemaName, table; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&connection); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&tableName); + ZVAL_UNDEF(&schemaName); + ZVAL_UNDEF(&table); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(tableName) + Z_PARAM_STR(schemaName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + zephir_fetch_params(1, 2, 0, &tableName_param, &schemaName_param); + if (UNEXPECTED(Z_TYPE_P(tableName_param) != IS_STRING && Z_TYPE_P(tableName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'tableName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + if (EXPECTED(Z_TYPE_P(tableName_param) == IS_STRING)) { + zephir_get_strval(&tableName, tableName_param); } else { - ZEPHIR_INIT_VAR(&key); + ZEPHIR_INIT_VAR(&tableName); + } + if (UNEXPECTED(Z_TYPE_P(schemaName_param) != IS_STRING && Z_TYPE_P(schemaName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'schemaName' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(schemaName_param) == IS_STRING)) { + zephir_get_strval(&schemaName, schemaName_param); + } else { + ZEPHIR_INIT_VAR(&schemaName); } - ZEPHIR_CALL_METHOD(&connection, this_ptr, "getadapter", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&result, &connection, "get", NULL, 0, &key); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0, &connection, "getresultcode", NULL, 0); - zephir_check_call_status(); - RETURN_MM_BOOL(!ZEPHIR_IS_LONG_IDENTICAL(&_0, 16)); + if (!(ZEPHIR_IS_EMPTY(&schemaName))) { + ZEPHIR_INIT_VAR(&table); + ZEPHIR_CONCAT_SVSVS(&table, "\"", &schemaName, "\".\"", &tableName, "\""); + } else { + ZEPHIR_INIT_NVAR(&table); + ZEPHIR_CONCAT_SVS(&table, "\"", &tableName, "\""); + } + ZEPHIR_CONCAT_SV(return_value, "DELETE FROM ", &table); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, increment) +static PHP_METHOD(Phalcon_Db_Dialect_Sqlite, viewExists) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long value, ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *value_param = NULL, _0, _1; - zval key; + zval *viewName_param = NULL, *schemaName_param = NULL; + zval viewName, schemaName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&viewName); + ZVAL_UNDEF(&schemaName); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(key) + Z_PARAM_STR(viewName) Z_PARAM_OPTIONAL - Z_PARAM_LONG(value) + Z_PARAM_STR_OR_NULL(schemaName) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &key_param, &value_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + zephir_fetch_params(1, 1, 1, &viewName_param, &schemaName_param); + if (UNEXPECTED(Z_TYPE_P(viewName_param) != IS_STRING && Z_TYPE_P(viewName_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'viewName' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + if (EXPECTED(Z_TYPE_P(viewName_param) == IS_STRING)) { + zephir_get_strval(&viewName, viewName_param); } else { - ZEPHIR_INIT_VAR(&key); + ZEPHIR_INIT_VAR(&viewName); } - if (!value_param) { - value = 1; + if (!schemaName_param) { + ZEPHIR_INIT_VAR(&schemaName); } else { - value = zephir_get_intval(value_param); + zephir_get_strval(&schemaName, schemaName_param); } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); - zephir_check_call_status(); - ZVAL_LONG(&_1, value); - ZEPHIR_RETURN_CALL_METHOD(&_0, "increment", NULL, 0, &key, &_1); - zephir_check_call_status(); + ZEPHIR_CONCAT_SVS(return_value, "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM sqlite_master WHERE type='view' AND tbl_name='", &viewName, "'"); RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, set) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Db_Result_Pdo) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *value, value_sub, *ttl = NULL, ttl_sub, __$null, _0, _1, _2; - zval key; + ZEPHIR_REGISTER_CLASS(Phalcon\\Db\\Result, Pdo, phalcon, db_result_pdo, phalcon_db_result_pdo_method_entry, 0); + + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("bindParams"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("bindTypes"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("connection"), ZEND_ACC_PROTECTED); + zend_declare_property_long(phalcon_db_result_pdo_ce, SL("fetchMode"), 5, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("pdoStatement"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("result"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_db_result_pdo_ce, SL("rowCount"), 0, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_db_result_pdo_ce, SL("sqlStatement"), ZEND_ACC_PROTECTED); + phalcon_db_result_pdo_ce->create_object = zephir_init_properties_Phalcon_Db_Result_Pdo; + + zend_class_implements(phalcon_db_result_pdo_ce, 1, phalcon_db_resultinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Db_Result_Pdo, __construct) +{ + zval *connection, connection_sub, *result, result_sub, *sqlStatement = NULL, sqlStatement_sub, *bindParams = NULL, bindParams_sub, *bindTypes = NULL, bindTypes_sub, __$null; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&ttl_sub); + ZVAL_UNDEF(&connection_sub); + ZVAL_UNDEF(&result_sub); + ZVAL_UNDEF(&sqlStatement_sub); + ZVAL_UNDEF(&bindParams_sub); + ZVAL_UNDEF(&bindTypes_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(key) - Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_START(2, 5) + Z_PARAM_OBJECT_OF_CLASS(connection, phalcon_db_adapter_adapterinterface_ce) + Z_PARAM_OBJECT_OF_CLASS(result, zephir_get_internal_ce(SL("pdostatement"))) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(ttl) + Z_PARAM_ZVAL_OR_NULL(sqlStatement) + Z_PARAM_ZVAL_OR_NULL(bindParams) + Z_PARAM_ZVAL_OR_NULL(bindTypes) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &key_param, &value, &ttl); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); + zephir_fetch_params_without_memory_grow(2, 3, &connection, &result, &sqlStatement, &bindParams, &bindTypes); + if (!sqlStatement) { + sqlStatement = &sqlStatement_sub; + sqlStatement = &__$null; } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); + if (!bindParams) { + bindParams = &bindParams_sub; + bindParams = &__$null; } - if (!ttl) { - ttl = &ttl_sub; - ttl = &__$null; + if (!bindTypes) { + bindTypes = &bindTypes_sub; + bindTypes = &__$null; } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getserializeddata", NULL, 0, value); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getttl", NULL, 0, ttl); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&_0, "set", NULL, 0, &key, &_1, &_2); - zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("connection"), connection); + zephir_update_property_zval(this_ptr, ZEND_STRL("pdoStatement"), result); + zephir_update_property_zval(this_ptr, ZEND_STRL("sqlStatement"), sqlStatement); + zephir_update_property_zval(this_ptr, ZEND_STRL("bindParams"), bindParams); + zephir_update_property_zval(this_ptr, ZEND_STRL("bindTypes"), bindTypes); } -static PHP_METHOD(Phalcon_Storage_Adapter_Libmemcached, setSerializer) +static PHP_METHOD(Phalcon_Db_Result_Pdo, dataSeek) { - zval map; + long n = 0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *connection, connection_sub, serializer, _0, _1$$3, _2$$3, _3$$3; + zephir_fcall_cache_entry *_3 = NULL; + zval *number_param = NULL, connection, pdo, sqlStatement, bindParams, statement, _0, _1$$4, _2$$4; + zend_long number, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&connection_sub); - ZVAL_UNDEF(&serializer); + ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&pdo); + ZVAL_UNDEF(&sqlStatement); + ZVAL_UNDEF(&bindParams); + ZVAL_UNDEF(&statement); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&map); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(connection, zephir_get_internal_ce(SL("memcached"))) + Z_PARAM_LONG(number) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &connection); + zephir_fetch_params(1, 1, 0, &number_param); + number = zephir_get_intval(number_param); - ZEPHIR_INIT_VAR(&map); - zephir_create_array(&map, 3, 0); - add_assoc_long_ex(&map, SL("php"), 1); - add_assoc_long_ex(&map, SL("json"), 3); - add_assoc_long_ex(&map, SL("igbinary"), 2); - zephir_read_property(&_0, this_ptr, ZEND_STRL("defaultSerializer"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&serializer); - zephir_fast_strtolower(&serializer, &_0); - if (zephir_array_isset(&map, &serializer)) { - ZEPHIR_INIT_VAR(&_1$$3); - ZEPHIR_INIT_NVAR(&_1$$3); - ZVAL_STRING(&_1$$3, ""); - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultSerializer"), &_1$$3); - zephir_array_fetch(&_2$$3, &map, &serializer, PH_NOISY | PH_READONLY, "phalcon/Storage/Adapter/Libmemcached.zep", 255); - ZVAL_LONG(&_3$$3, -1003); - ZEPHIR_CALL_METHOD(NULL, connection, "setoption", NULL, 0, &_3$$3, &_2$$3); + zephir_read_property(&_0, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&connection, &_0); + ZEPHIR_CALL_METHOD(&pdo, &connection, "getinternalhandler", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("sqlStatement"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&sqlStatement, &_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&bindParams, &_0); + if (Z_TYPE_P(&bindParams) == IS_ARRAY) { + ZEPHIR_CALL_METHOD(&statement, &pdo, "prepare", NULL, 0, &sqlStatement); zephir_check_call_status(); + if (Z_TYPE_P(&statement) == IS_OBJECT) { + zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1$$4, &connection, "executeprepared", NULL, 0, &statement, &bindParams, &_2$$4); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&statement, &_1$$4); + } } else { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "initserializer", NULL, 0); + ZEPHIR_CALL_METHOD(&statement, &pdo, "query", NULL, 0, &sqlStatement); + zephir_check_call_status(); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("pdoStatement"), &statement); + n = -1; + number--; + while (1) { + if (!(n != number)) { + break; + } + ZEPHIR_CALL_METHOD(NULL, &statement, "fetch", &_3, 0); zephir_check_call_status(); + n++; } ZEPHIR_MM_RESTORE(); } -zend_object *zephir_init_properties_Phalcon_Storage_Adapter_Libmemcached(zend_class_entry *class_type) +static PHP_METHOD(Phalcon_Db_Result_Pdo, execute) { - zval _0, _1$$3; + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} - + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); -#ifdef HAVE_CONFIG_H -#endif + ZEPHIR_MM_GROW(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("pdoStatement"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "execute", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); +} +static PHP_METHOD(Phalcon_Db_Result_Pdo, fetch) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *fetchStyle = NULL, fetchStyle_sub, *cursorOrientation = NULL, cursorOrientation_sub, *cursorOffset = NULL, cursorOffset_sub, __$null, _0; + zval *this_ptr = getThis(); + ZVAL_UNDEF(&fetchStyle_sub); + ZVAL_UNDEF(&cursorOrientation_sub); + ZVAL_UNDEF(&cursorOffset_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 3) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(fetchStyle) + Z_PARAM_ZVAL_OR_NULL(cursorOrientation) + Z_PARAM_ZVAL_OR_NULL(cursorOffset) + ZEND_PARSE_PARAMETERS_END(); +#endif -ZEPHIR_INIT_CLASS(Phalcon_Storage_Adapter_Memory) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Adapter, Memory, phalcon, storage_adapter_memory, phalcon_storage_adapter_abstractadapter_ce, phalcon_storage_adapter_memory_method_entry, 0); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 3, &fetchStyle, &cursorOrientation, &cursorOffset); + if (!fetchStyle) { + fetchStyle = &fetchStyle_sub; + fetchStyle = &__$null; + } + if (!cursorOrientation) { + cursorOrientation = &cursorOrientation_sub; + cursorOrientation = &__$null; + } + if (!cursorOffset) { + cursorOffset = &cursorOffset_sub; + cursorOffset = &__$null; + } - zend_declare_property_null(phalcon_storage_adapter_memory_ce, SL("data"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_storage_adapter_memory_ce, SL("options"), ZEND_ACC_PROTECTED); - phalcon_storage_adapter_memory_ce->create_object = zephir_init_properties_Phalcon_Storage_Adapter_Memory; - return SUCCESS; + zephir_read_property(&_0, this_ptr, ZEND_STRL("pdoStatement"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "fetch", NULL, 0, fetchStyle, cursorOrientation, cursorOffset); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Memory, __construct) +static PHP_METHOD(Phalcon_Db_Result_Pdo, fetchAll) { + zend_bool _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_1 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval options; - zval *factory, factory_sub, *options_param = NULL, _0; + zval *fetchStyle = NULL, fetchStyle_sub, *fetchArgument = NULL, fetchArgument_sub, *ctorArgs = NULL, ctorArgs_sub, __$null, pdoStatement, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&factory_sub); + ZVAL_UNDEF(&fetchStyle_sub); + ZVAL_UNDEF(&fetchArgument_sub); + ZVAL_UNDEF(&ctorArgs_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&pdoStatement); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&options); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_storage_serializerfactory_ce) + ZEND_PARSE_PARAMETERS_START(0, 3) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + Z_PARAM_ZVAL_OR_NULL(fetchStyle) + Z_PARAM_ZVAL_OR_NULL(fetchArgument) + Z_PARAM_ZVAL_OR_NULL(ctorArgs) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &factory, &options_param); - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); + zephir_fetch_params(1, 0, 3, &fetchStyle, &fetchArgument, &ctorArgs); + if (!fetchStyle) { + fetchStyle = &fetchStyle_sub; + fetchStyle = &__$null; + } + if (!fetchArgument) { + fetchArgument = &fetchArgument_sub; + fetchArgument = &__$null; + } + if (!ctorArgs) { + ctorArgs = &ctorArgs_sub; + ctorArgs = &__$null; } - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "ph-memo-"); - zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); - ZEPHIR_INIT_NVAR(&_0); - object_init_ex(&_0, phalcon_collection_ce); - ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 22); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &_0); - ZEPHIR_CALL_PARENT(NULL, phalcon_storage_adapter_memory_ce, getThis(), "__construct", &_1, 0, factory, &options); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "initserializer", NULL, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("pdoStatement"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&pdoStatement, &_0); + if (Z_TYPE_P(fetchStyle) != IS_LONG) { + ZEPHIR_RETURN_CALL_METHOD(&pdoStatement, "fetchall", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); + } + if (ZEPHIR_IS_LONG(fetchStyle, 8)) { + ZEPHIR_RETURN_CALL_METHOD(&pdoStatement, "fetchall", NULL, 0, fetchStyle, fetchArgument, ctorArgs); + zephir_check_call_status(); + RETURN_MM(); + } + _1 = ZEPHIR_IS_LONG(fetchStyle, 7); + if (!(_1)) { + _1 = ZEPHIR_IS_LONG(fetchStyle, 10); + } + if (_1) { + ZEPHIR_RETURN_CALL_METHOD(&pdoStatement, "fetchall", NULL, 0, fetchStyle, fetchArgument); + zephir_check_call_status(); + RETURN_MM(); + } + ZEPHIR_RETURN_CALL_METHOD(&pdoStatement, "fetchall", NULL, 0, fetchStyle); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Memory, clear) +static PHP_METHOD(Phalcon_Db_Result_Pdo, fetchArray) { zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; @@ -200627,1109 +200199,1025 @@ static PHP_METHOD(Phalcon_Storage_Adapter_Memory, clear) ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_0, "clear", NULL, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("pdoStatement"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_RETURN_CALL_METHOD(&_0, "fetch", NULL, 0); zephir_check_call_status(); - RETURN_MM_BOOL(1); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Memory, decrement) +static PHP_METHOD(Phalcon_Db_Result_Pdo, getInternalResult) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "pdoStatement"); +} + +static PHP_METHOD(Phalcon_Db_Result_Pdo, numRows) { + zend_bool _2$$3; + zval sqlStatement, rowCount, connection, type, pdoStatement, matches, result, row, _0, _1$$3, _3$$4, _4$$5, _5$$6, _6$$6, _7$$6, _8$$7, _9$$7, _10$$7, _11$$7; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long value, ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *value_param = NULL, current, newValue, prefixedKey, result, _0, _1$$3, _2$$3; - zval key; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(¤t); - ZVAL_UNDEF(&newValue); - ZVAL_UNDEF(&prefixedKey); + ZVAL_UNDEF(&sqlStatement); + ZVAL_UNDEF(&rowCount); + ZVAL_UNDEF(&connection); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&pdoStatement); + ZVAL_UNDEF(&matches); ZVAL_UNDEF(&result); + ZVAL_UNDEF(&row); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&_6$$6); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_8$$7); + ZVAL_UNDEF(&_9$$7); + ZVAL_UNDEF(&_10$$7); + ZVAL_UNDEF(&_11$$7); + + + ZEPHIR_MM_GROW(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("rowCount"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&rowCount, &_0); + if (ZEPHIR_IS_FALSE_IDENTICAL(&rowCount)) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("connection"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&connection, &_1$$3); + ZEPHIR_CALL_METHOD(&type, &connection, "gettype", NULL, 0); + zephir_check_call_status(); + _2$$3 = ZEPHIR_IS_STRING(&type, "mysql"); + if (!(_2$$3)) { + _2$$3 = ZEPHIR_IS_STRING(&type, "pgsql"); + } + if (_2$$3) { + zephir_read_property(&_3$$4, this_ptr, ZEND_STRL("pdoStatement"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&pdoStatement, &_3$$4); + ZEPHIR_CALL_METHOD(&rowCount, &pdoStatement, "rowcount", NULL, 0); + zephir_check_call_status(); + } + if (ZEPHIR_IS_FALSE_IDENTICAL(&rowCount)) { + zephir_read_property(&_4$$5, this_ptr, ZEND_STRL("sqlStatement"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&sqlStatement, &_4$$5); + if (!(zephir_start_with_str(&sqlStatement, SL("SELECT COUNT(*) ")))) { + ZEPHIR_INIT_VAR(&matches); + ZVAL_NULL(&matches); + ZEPHIR_INIT_VAR(&_5$$6); + ZVAL_STRING(&_5$$6, "/^SELECT\\s+(.*)/i"); + ZEPHIR_INIT_VAR(&_6$$6); + ZEPHIR_INIT_VAR(&_7$$6); + ZVAL_STRING(&_7$$6, "/^SELECT\\s+(.*)/i"); + zephir_preg_match(&_6$$6, &_7$$6, &sqlStatement, &matches, 0, 0 , 0 ); + if (zephir_is_true(&_6$$6)) { + zephir_array_fetch_long(&_8$$7, &matches, 1, PH_NOISY | PH_READONLY, "phalcon/Db/Result/Pdo.zep", 309); + ZEPHIR_INIT_VAR(&_9$$7); + ZEPHIR_CONCAT_SVS(&_9$$7, "SELECT COUNT(*) \"numrows\" FROM (SELECT ", &_8$$7, ")"); + zephir_read_property(&_10$$7, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_11$$7, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&result, &connection, "query", NULL, 0, &_9$$7, &_10$$7, &_11$$7); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&row, &result, "fetch", NULL, 0); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&rowCount); + zephir_array_fetch_string(&rowCount, &row, SL("numrows"), PH_NOISY, "phalcon/Db/Result/Pdo.zep", 315); + } + } else { + ZEPHIR_INIT_NVAR(&rowCount); + ZVAL_LONG(&rowCount, 1); + } + } + zephir_update_property_zval(this_ptr, ZEND_STRL("rowCount"), &rowCount); + } + RETURN_CCTOR(&rowCount); +} + +static PHP_METHOD(Phalcon_Db_Result_Pdo, setFetchMode) +{ + zend_bool _1; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *fetchMode_param = NULL, *colNoOrClassNameOrObject = NULL, colNoOrClassNameOrObject_sub, *ctorargs = NULL, ctorargs_sub, __$null, pdoStatement, _0, _2$$3, _3$$3, _4$$5, _5$$5, _6$$7, _7$$7; + zend_long fetchMode, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&colNoOrClassNameOrObject_sub); + ZVAL_UNDEF(&ctorargs_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&pdoStatement); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_6$$7); + ZVAL_UNDEF(&_7$$7); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_LONG(fetchMode) Z_PARAM_OPTIONAL - Z_PARAM_LONG(value) + Z_PARAM_ZVAL_OR_NULL(colNoOrClassNameOrObject) + Z_PARAM_ZVAL_OR_NULL(ctorargs) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &key_param, &value_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); + zephir_fetch_params(1, 1, 2, &fetchMode_param, &colNoOrClassNameOrObject, &ctorargs); + fetchMode = zephir_get_intval(fetchMode_param); + if (!colNoOrClassNameOrObject) { + colNoOrClassNameOrObject = &colNoOrClassNameOrObject_sub; + colNoOrClassNameOrObject = &__$null; } - if (!value_param) { - value = 1; - } else { - value = zephir_get_intval(value_param); + if (!ctorargs) { + ctorargs = &ctorargs_sub; + ctorargs = &__$null; } - ZEPHIR_CALL_METHOD(&prefixedKey, this_ptr, "getprefixedkey", NULL, 0, &key); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&result, &_0, "has", NULL, 0, &prefixedKey); - zephir_check_call_status(); - if (zephir_is_true(&result)) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(¤t, &_1$$3, "get", NULL, 0, &prefixedKey); + zephir_read_property(&_0, this_ptr, ZEND_STRL("pdoStatement"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&pdoStatement, &_0); + _1 = fetchMode == 8; + if (!(_1)) { + _1 = fetchMode == 9; + } + if (_1) { + ZVAL_LONG(&_3$$3, fetchMode); + ZEPHIR_CALL_METHOD(&_2$$3, &pdoStatement, "setfetchmode", NULL, 0, &_3$$3, colNoOrClassNameOrObject, ctorargs); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&newValue); - ZVAL_LONG(&newValue, (zephir_get_intval(¤t) - value)); - ZEPHIR_CPY_WRT(&result, &newValue); - zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_2$$3, "set", NULL, 0, &prefixedKey, &newValue); + if (!(zephir_is_true(&_2$$3))) { + RETURN_MM_BOOL(0); + } + } else if (fetchMode == 7) { + ZVAL_LONG(&_5$$5, fetchMode); + ZEPHIR_CALL_METHOD(&_4$$5, &pdoStatement, "setfetchmode", NULL, 0, &_5$$5, colNoOrClassNameOrObject); + zephir_check_call_status(); + if (!(zephir_is_true(&_4$$5))) { + RETURN_MM_BOOL(0); + } + } else { + ZVAL_LONG(&_7$$7, fetchMode); + ZEPHIR_CALL_METHOD(&_6$$7, &pdoStatement, "setfetchmode", NULL, 0, &_7$$7); zephir_check_call_status(); + if (!(zephir_is_true(&_6$$7))) { + RETURN_MM_BOOL(0); + } } - RETURN_CCTOR(&result); + ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_LONG(&_0, fetchMode); + zephir_update_property_zval(this_ptr, ZEND_STRL("fetchMode"), &_0); + RETURN_MM_BOOL(1); } -static PHP_METHOD(Phalcon_Storage_Adapter_Memory, delete) +zend_object *zephir_init_properties_Phalcon_Db_Result_Pdo(zend_class_entry *class_type) { + zval _0, _2, _1$$3, _3$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, exists, prefixedKey, _0, _1; - zval key; - zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&exists); - ZVAL_UNDEF(&prefixedKey); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) - ZEND_PARSE_PARAMETERS_END(); + ZEPHIR_MM_GROW(); + + { + zval local_this_ptr, *this_ptr = &local_this_ptr; + ZEPHIR_CREATE_OBJECT(this_ptr, class_type); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("bindTypes"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_0) == IS_NULL) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("bindTypes"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("bindParams"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("bindParams"), &_3$$4); + } + ZEPHIR_MM_RESTORE(); + return Z_OBJ_P(this_ptr); + } +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } - ZEPHIR_CALL_METHOD(&prefixedKey, this_ptr, "getprefixedkey", NULL, 0, &key); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&exists, &_0, "has", NULL, 0, &prefixedKey); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_1, "remove", NULL, 0, &prefixedKey); - zephir_check_call_status(); - RETURN_CCTOR(&exists); + +ZEPHIR_INIT_CLASS(Phalcon_Flash_AbstractFlash) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Flash, AbstractFlash, phalcon, flash_abstractflash, phalcon_di_abstractinjectionaware_ce, phalcon_flash_abstractflash_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_bool(phalcon_flash_abstractflash_ce, SL("autoescape"), 1, ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_flash_abstractflash_ce, SL("automaticHtml"), 1, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_flash_abstractflash_ce, SL("cssClasses"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_flash_abstractflash_ce, SL("cssIconClasses"), ZEND_ACC_PROTECTED); + zend_declare_property_string(phalcon_flash_abstractflash_ce, SL("customTemplate"), "", ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_flash_abstractflash_ce, SL("escaperService"), ZEND_ACC_PROTECTED); + zend_declare_property_bool(phalcon_flash_abstractflash_ce, SL("implicitFlush"), 1, ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_flash_abstractflash_ce, SL("interpolator"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_flash_abstractflash_ce, SL("messages"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_flash_abstractflash_ce, SL("sessionService"), ZEND_ACC_PROTECTED); + phalcon_flash_abstractflash_ce->create_object = zephir_init_properties_Phalcon_Flash_AbstractFlash; + + zend_class_implements(phalcon_flash_abstractflash_ce, 1, phalcon_flash_flashinterface_ce); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Flash_AbstractFlash, getAutoescape) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "autoescape"); } -static PHP_METHOD(Phalcon_Storage_Adapter_Memory, get) +static PHP_METHOD(Phalcon_Flash_AbstractFlash, getCssClasses) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, content, prefixedKey, _0, _1; - zval key; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&content); - ZVAL_UNDEF(&prefixedKey); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(key) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(defaultValue) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &key_param, &defaultValue); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; - } + RETURN_MEMBER(getThis(), "cssClasses"); +} +static PHP_METHOD(Phalcon_Flash_AbstractFlash, getCssIconClasses) +{ + zval *this_ptr = getThis(); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, &key); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE(&_0)) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - ZEPHIR_CALL_METHOD(&prefixedKey, this_ptr, "getprefixedkey", NULL, 0, &key); - zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&content, &_1, "get", NULL, 0, &prefixedKey); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getunserializeddata", NULL, 0, &content); - zephir_check_call_status(); - RETURN_MM(); + + + RETURN_MEMBER(getThis(), "cssIconClasses"); } -static PHP_METHOD(Phalcon_Storage_Adapter_Memory, getAdapter) +static PHP_METHOD(Phalcon_Flash_AbstractFlash, getCustomTemplate) { zval *this_ptr = getThis(); - RETURN_MEMBER(getThis(), "adapter"); + RETURN_MEMBER(getThis(), "customTemplate"); } -static PHP_METHOD(Phalcon_Storage_Adapter_Memory, getKeys) +static PHP_METHOD(Phalcon_Flash_AbstractFlash, __construct) { + zval _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *prefix_param = NULL, _0, _1; - zval prefix; + zval *escaper = NULL, escaper_sub, *session = NULL, session_sub, __$null, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&prefix); + ZVAL_UNDEF(&escaper_sub); + ZVAL_UNDEF(&session_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(0, 2) Z_PARAM_OPTIONAL - Z_PARAM_STR(prefix) + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(escaper, phalcon_escaper_escaperinterface_ce) + Z_PARAM_OBJECT_OF_CLASS_OR_NULL(session, phalcon_session_managerinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &prefix_param); - if (!prefix_param) { - ZEPHIR_INIT_VAR(&prefix); - ZVAL_STRING(&prefix, ""); - } else { - if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); - RETURN_MM_NULL(); + zephir_fetch_params(1, 0, 2, &escaper, &session); + if (!escaper) { + escaper = &escaper_sub; + escaper = &__$null; } - if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { - zephir_get_strval(&prefix, prefix_param); - } else { - ZEPHIR_INIT_VAR(&prefix); + if (!session) { + session = &session_sub; + session = &__$null; } + + + zephir_update_property_zval(this_ptr, ZEND_STRL("escaperService"), escaper); + zephir_update_property_zval(this_ptr, ZEND_STRL("sessionService"), session); + ZEPHIR_INIT_VAR(&_0); + object_init_ex(&_0, phalcon_support_helper_str_interpolate_ce); + if (zephir_has_constructor(&_0)) { + ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 0); + zephir_check_call_status(); } + zephir_update_property_zval(this_ptr, ZEND_STRL("interpolator"), &_0); + ZEPHIR_INIT_VAR(&_1); + zephir_create_array(&_1, 4, 0); + add_assoc_stringl_ex(&_1, SL("error"), SL("errorMessage")); + add_assoc_stringl_ex(&_1, SL("notice"), SL("noticeMessage")); + add_assoc_stringl_ex(&_1, SL("success"), SL("successMessage")); + add_assoc_stringl_ex(&_1, SL("warning"), SL("warningMessage")); + zephir_update_property_zval(this_ptr, ZEND_STRL("cssClasses"), &_1); + ZEPHIR_MM_RESTORE(); +} - zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_1, &_0, "getkeys", NULL, 0); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getfilteredkeys", NULL, 0, &_1, &prefix); - zephir_check_call_status(); - RETURN_MM(); +static PHP_METHOD(Phalcon_Flash_AbstractFlash, clear) +{ + zval _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + + + ZEPHIR_MM_GROW(); + + ZEPHIR_INIT_VAR(&_0); + array_init(&_0); + zephir_update_property_zval(this_ptr, ZEND_STRL("messages"), &_0); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Memory, has) +static PHP_METHOD(Phalcon_Flash_AbstractFlash, error) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, prefixedKey, _0; - zval key; + zval *message_param = NULL, _0; + zval message; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&prefixedKey); + ZVAL_UNDEF(&message); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + Z_PARAM_STR(message) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } + zephir_fetch_params(1, 1, 0, &message_param); + zephir_get_strval(&message, message_param); - ZEPHIR_CALL_METHOD(&prefixedKey, this_ptr, "getprefixedkey", NULL, 0, &key); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_METHOD(&_0, "has", NULL, 0, &prefixedKey); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "error"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "message", NULL, 0, &_0, &message); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Memory, increment) +static PHP_METHOD(Phalcon_Flash_AbstractFlash, getEscaperService) { + zval container, _0, _1, _6, _7, _2$$4, _3$$4, _5$$4, _8$$5, _9$$5, _10$$6, _11$$6, _12$$6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long value, ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *value_param = NULL, current, newValue, prefixedKey, result, _0, _1$$3, _2$$3; - zval key; + zend_long ZEPHIR_LAST_CALL_STATUS; + zephir_fcall_cache_entry *_4 = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(¤t); - ZVAL_UNDEF(&newValue); - ZVAL_UNDEF(&prefixedKey); - ZVAL_UNDEF(&result); + ZVAL_UNDEF(&container); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(key) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(value) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_10$$6); + ZVAL_UNDEF(&_11$$6); + ZVAL_UNDEF(&_12$$6); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &key_param, &value_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("escaperService"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_0)) { + RETURN_MM_MEMBER(getThis(), "escaperService"); } - if (!value_param) { - value = 1; - } else { - value = zephir_get_intval(value_param); + zephir_read_property(&_1, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_1); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_2$$4); + object_init_ex(&_2$$4, phalcon_flash_exception_ce); + ZEPHIR_INIT_VAR(&_5$$4); + ZVAL_STRING(&_5$$4, "the 'escaper' service"); + ZEPHIR_CALL_CE_STATIC(&_3$$4, phalcon_flash_exception_ce, "containerservicenotfound", &_4, 0, &_5$$4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_2$$4, "__construct", NULL, 8, &_3$$4); + zephir_check_call_status(); + zephir_throw_exception_debug(&_2$$4, "phalcon/Flash/AbstractFlash.zep", 135); + ZEPHIR_MM_RESTORE(); + return; } - - - ZEPHIR_CALL_METHOD(&prefixedKey, this_ptr, "getprefixedkey", NULL, 0, &key); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&result, &_0, "has", NULL, 0, &prefixedKey); + ZEPHIR_INIT_VAR(&_7); + ZVAL_STRING(&_7, "escaper"); + ZEPHIR_CALL_METHOD(&_6, &container, "has", NULL, 0, &_7); zephir_check_call_status(); - if (zephir_is_true(&result)) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(¤t, &_1$$3, "get", NULL, 0, &prefixedKey); + if (UNEXPECTED(zephir_is_true(&_6))) { + ZEPHIR_INIT_VAR(&_9$$5); + ZVAL_STRING(&_9$$5, "escaper"); + ZEPHIR_CALL_METHOD(&_8$$5, &container, "getshared", NULL, 0, &_9$$5); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&newValue); - ZVAL_LONG(&newValue, (zephir_get_intval(¤t) + value)); - ZEPHIR_CPY_WRT(&result, &newValue); - zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_2$$3, "set", NULL, 0, &prefixedKey, &newValue); + RETURN_CCTOR(&_8$$5); + } else { + ZEPHIR_INIT_VAR(&_10$$6); + object_init_ex(&_10$$6, phalcon_flash_exception_ce); + ZEPHIR_INIT_VAR(&_12$$6); + ZVAL_STRING(&_12$$6, "the 'escaper' service"); + ZEPHIR_CALL_CE_STATIC(&_11$$6, phalcon_flash_exception_ce, "containerservicenotfound", &_4, 0, &_12$$6); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_10$$6, "__construct", NULL, 8, &_11$$6); zephir_check_call_status(); + zephir_throw_exception_debug(&_10$$6, "phalcon/Flash/AbstractFlash.zep", 143); + ZEPHIR_MM_RESTORE(); + return; } - RETURN_CCTOR(&result); } -static PHP_METHOD(Phalcon_Storage_Adapter_Memory, set) +static PHP_METHOD(Phalcon_Flash_AbstractFlash, notice) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *value, value_sub, *ttl = NULL, ttl_sub, __$null, content, lifetime, prefixedKey, _0; - zval key; + zval *message_param = NULL, _0; + zval message; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&ttl_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&content); - ZVAL_UNDEF(&lifetime); - ZVAL_UNDEF(&prefixedKey); + ZVAL_UNDEF(&message); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(key) - Z_PARAM_ZVAL(value) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(ttl) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(message) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &key_param, &value, &ttl); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } - if (!ttl) { - ttl = &ttl_sub; - ttl = &__$null; - } + zephir_fetch_params(1, 1, 0, &message_param); + zephir_get_strval(&message, message_param); - ZEPHIR_CALL_METHOD(&content, this_ptr, "getserializeddata", NULL, 0, value); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&lifetime, this_ptr, "getttl", NULL, 0, ttl); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&prefixedKey, this_ptr, "getprefixedkey", NULL, 0, &key); - zephir_check_call_status(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(NULL, &_0, "set", NULL, 0, &prefixedKey, &content); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "notice"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "message", NULL, 0, &_0, &message); zephir_check_call_status(); - RETURN_MM_BOOL(1); + RETURN_MM(); } -zend_object *zephir_init_properties_Phalcon_Storage_Adapter_Memory(zend_class_entry *class_type) +static PHP_METHOD(Phalcon_Flash_AbstractFlash, setAutoescape) { - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } -} + zval *autoescape_param = NULL, __$true, __$false; + zend_bool autoescape; + zval *this_ptr = getThis(); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(autoescape) + ZEND_PARSE_PARAMETERS_END(); +#endif + zephir_fetch_params_without_memory_grow(1, 0, &autoescape_param); + autoescape = zephir_get_boolval(autoescape_param); -#ifdef HAVE_CONFIG_H -#endif + if (autoescape) { + zephir_update_property_zval(this_ptr, ZEND_STRL("autoescape"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("autoescape"), &__$false); + } + RETURN_THISW(); +} +static PHP_METHOD(Phalcon_Flash_AbstractFlash, setAutomaticHtml) +{ + zval *automaticHtml_param = NULL, __$true, __$false; + zend_bool automaticHtml; + zval *this_ptr = getThis(); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(automaticHtml) + ZEND_PARSE_PARAMETERS_END(); +#endif -ZEPHIR_INIT_CLASS(Phalcon_Storage_Adapter_Redis) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Adapter, Redis, phalcon, storage_adapter_redis, phalcon_storage_adapter_abstractadapter_ce, phalcon_storage_adapter_redis_method_entry, 0); + zephir_fetch_params_without_memory_grow(1, 0, &automaticHtml_param); + automaticHtml = zephir_get_boolval(automaticHtml_param); - zend_declare_property_null(phalcon_storage_adapter_redis_ce, SL("options"), ZEND_ACC_PROTECTED); - phalcon_storage_adapter_redis_ce->create_object = zephir_init_properties_Phalcon_Storage_Adapter_Redis; - return SUCCESS; + if (automaticHtml) { + zephir_update_property_zval(this_ptr, ZEND_STRL("automaticHtml"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("automaticHtml"), &__$false); + } + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Redis, __construct) +static PHP_METHOD(Phalcon_Flash_AbstractFlash, setCssClasses) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL, *_14 = NULL; - zval options; - zval *factory, factory_sub, *options_param = NULL, _0, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13; + zval *cssClasses_param = NULL; + zval cssClasses; zval *this_ptr = getThis(); - ZVAL_UNDEF(&factory_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_10); - ZVAL_UNDEF(&_11); - ZVAL_UNDEF(&_12); - ZVAL_UNDEF(&_13); - ZVAL_UNDEF(&options); + ZVAL_UNDEF(&cssClasses); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_storage_serializerfactory_ce) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(cssClasses) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &factory, &options_param); - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); - } + zephir_fetch_params(1, 1, 0, &cssClasses_param); + ZEPHIR_OBS_COPY_OR_DUP(&cssClasses, cssClasses_param); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "host"); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "127.0.0.1"); - ZEPHIR_INIT_VAR(&_4); - ZVAL_STRING(&_4, "string"); - ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("host"), &_0, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "port"); - ZVAL_LONG(&_6, 6379); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "int"); - ZEPHIR_CALL_CE_STATIC(&_5, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_6, &_3); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("port"), &_5, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "index"); - ZVAL_LONG(&_6, 0); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "int"); - ZEPHIR_CALL_CE_STATIC(&_7, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_6, &_3); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("index"), &_7, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "persistent"); - ZVAL_BOOL(&_6, 0); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "bool"); - ZEPHIR_CALL_CE_STATIC(&_8, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_6, &_3); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("persistent"), &_8, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "auth"); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, ""); - ZEPHIR_INIT_NVAR(&_4); - ZVAL_STRING(&_4, "string"); - ZEPHIR_CALL_CE_STATIC(&_9, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("auth"), &_9, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "socket"); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, ""); - ZEPHIR_INIT_NVAR(&_4); - ZVAL_STRING(&_4, "string"); - ZEPHIR_CALL_CE_STATIC(&_10, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_3, &_4); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("socket"), &_10, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "connectionTimeout"); - ZVAL_LONG(&_6, 0); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "int"); - ZEPHIR_CALL_CE_STATIC(&_11, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_6, &_3); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("connectionTimeout"), &_11, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "retryInterval"); - ZVAL_NULL(&_6); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "int"); - ZEPHIR_CALL_CE_STATIC(&_12, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_6, &_3); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("retryInterval"), &_12, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "readTimeout"); - ZVAL_LONG(&_6, 0); - ZEPHIR_INIT_NVAR(&_3); - ZVAL_STRING(&_3, "int"); - ZEPHIR_CALL_CE_STATIC(&_13, phalcon_helper_arr_ce, "get", &_1, 16, &options, &_2, &_6, &_3); - zephir_check_call_status(); - zephir_array_update_string(&options, SL("readTimeout"), &_13, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "ph-reds-"); - zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &_2); - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); - ZEPHIR_CALL_PARENT(NULL, phalcon_storage_adapter_redis_ce, getThis(), "__construct", &_14, 0, factory, &options); - zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + zephir_update_property_zval(this_ptr, ZEND_STRL("cssClasses"), &cssClasses); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Redis, clear) +static PHP_METHOD(Phalcon_Flash_AbstractFlash, setCssIconClasses) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval *cssIconClasses_param = NULL; + zval cssIconClasses; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&cssIconClasses); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(cssIconClasses) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &cssIconClasses_param); + ZEPHIR_OBS_COPY_OR_DUP(&cssIconClasses, cssIconClasses_param); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&_0, "flushdb", NULL, 0); - zephir_check_call_status(); - RETURN_MM(); + + zephir_update_property_zval(this_ptr, ZEND_STRL("cssIconClasses"), &cssIconClasses); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Redis, decrement) +static PHP_METHOD(Phalcon_Flash_AbstractFlash, setCustomTemplate) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long value, ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *value_param = NULL, _0, _1; - zval key; + zval *customTemplate_param = NULL; + zval customTemplate; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&customTemplate); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(key) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(value) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(customTemplate) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &key_param, &value_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); + zephir_fetch_params(1, 1, 0, &customTemplate_param); + if (UNEXPECTED(Z_TYPE_P(customTemplate_param) != IS_STRING && Z_TYPE_P(customTemplate_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'customTemplate' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } - if (!value_param) { - value = 1; + if (EXPECTED(Z_TYPE_P(customTemplate_param) == IS_STRING)) { + zephir_get_strval(&customTemplate, customTemplate_param); } else { - value = zephir_get_intval(value_param); + ZEPHIR_INIT_VAR(&customTemplate); } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); - zephir_check_call_status(); - ZVAL_LONG(&_1, value); - ZEPHIR_RETURN_CALL_METHOD(&_0, "decrby", NULL, 0, &key, &_1); - zephir_check_call_status(); - RETURN_MM(); + zephir_update_property_zval(this_ptr, ZEND_STRL("customTemplate"), &customTemplate); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Redis, delete) +static PHP_METHOD(Phalcon_Flash_AbstractFlash, setEscaperService) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, _0, _1; - zval key; + zval *escaperService, escaperService_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&escaperService_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + Z_PARAM_OBJECT_OF_CLASS(escaperService, phalcon_escaper_escaperinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } + zephir_fetch_params_without_memory_grow(1, 0, &escaperService); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, &_0, "del", NULL, 0, &key); - zephir_check_call_status(); - RETURN_MM_BOOL(zephir_get_boolval(&_1)); + zephir_update_property_zval(this_ptr, ZEND_STRL("escaperService"), escaperService); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Redis, get) +static PHP_METHOD(Phalcon_Flash_AbstractFlash, setImplicitFlush) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, _0, _1, _2; - zval key; + zval *implicitFlush_param = NULL, __$true, __$false; + zend_bool implicitFlush; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&defaultValue_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); + ZVAL_BOOL(&__$true, 1); + ZVAL_BOOL(&__$false, 0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(key) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(defaultValue) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_BOOL(implicitFlush) ZEND_PARSE_PARAMETERS_END(); #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &key_param, &defaultValue); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; - } + zephir_fetch_params_without_memory_grow(1, 0, &implicitFlush_param); + implicitFlush = zephir_get_boolval(implicitFlush_param); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, &key); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE(&_0)) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); + if (implicitFlush) { + zephir_update_property_zval(this_ptr, ZEND_STRL("implicitFlush"), &__$true); + } else { + zephir_update_property_zval(this_ptr, ZEND_STRL("implicitFlush"), &__$false); } - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getadapter", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2, &_1, "get", NULL, 0, &key); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getunserializeddata", NULL, 0, &_2); - zephir_check_call_status(); - RETURN_MM(); + RETURN_THISW(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Redis, getAdapter) +static PHP_METHOD(Phalcon_Flash_AbstractFlash, success) { - zend_bool _4$$3, _6$$3; - zval auth, connection, connectionTimeout, host, index, options, port, readTimeout, reserved, result, retryInterval, persistent, persistentid, _0, _1$$3, _5$$3, _7$$3, _8$$3, _2$$6, _3$$6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *message_param = NULL, _0; + zval message; zval *this_ptr = getThis(); - ZVAL_UNDEF(&auth); - ZVAL_UNDEF(&connection); - ZVAL_UNDEF(&connectionTimeout); - ZVAL_UNDEF(&host); - ZVAL_UNDEF(&index); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&port); - ZVAL_UNDEF(&readTimeout); - ZVAL_UNDEF(&reserved); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&retryInterval); - ZVAL_UNDEF(&persistent); - ZVAL_UNDEF(&persistentid); + ZVAL_UNDEF(&message); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_8$$3); - ZVAL_UNDEF(&_2$$6); - ZVAL_UNDEF(&_3$$6); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(message) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &message_param); + zephir_get_strval(&message, message_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("adapter"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&options, &_1$$3); - ZEPHIR_INIT_VAR(&connection); - object_init_ex(&connection, zephir_get_internal_ce(SL("redis"))); - ZEPHIR_CALL_METHOD(NULL, &connection, "__construct", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&auth); - zephir_array_fetch_string(&auth, &options, SL("auth"), PH_NOISY, "phalcon/Storage/Adapter/Redis.zep", 140); - ZEPHIR_OBS_VAR(&index); - zephir_array_fetch_string(&index, &options, SL("index"), PH_NOISY, "phalcon/Storage/Adapter/Redis.zep", 141); - ZEPHIR_OBS_VAR(&persistent); - zephir_array_fetch_string(&persistent, &options, SL("persistent"), PH_NOISY, "phalcon/Storage/Adapter/Redis.zep", 142); - ZEPHIR_OBS_VAR(&host); - zephir_array_fetch_string(&host, &options, SL("host"), PH_NOISY, "phalcon/Storage/Adapter/Redis.zep", 143); - ZEPHIR_OBS_VAR(&port); - zephir_array_fetch_string(&port, &options, SL("port"), PH_NOISY, "phalcon/Storage/Adapter/Redis.zep", 144); - ZEPHIR_OBS_VAR(&connectionTimeout); - zephir_array_fetch_string(&connectionTimeout, &options, SL("connectionTimeout"), PH_NOISY, "phalcon/Storage/Adapter/Redis.zep", 145); - ZEPHIR_OBS_VAR(&retryInterval); - zephir_array_fetch_string(&retryInterval, &options, SL("retryInterval"), PH_NOISY, "phalcon/Storage/Adapter/Redis.zep", 146); - ZEPHIR_OBS_VAR(&readTimeout); - zephir_array_fetch_string(&readTimeout, &options, SL("readTimeout"), PH_NOISY, "phalcon/Storage/Adapter/Redis.zep", 147); - ZEPHIR_INIT_VAR(&reserved); - ZVAL_NULL(&reserved); - if (!(zephir_is_true(&persistent))) { - ZEPHIR_CALL_METHOD(&result, &connection, "connect", NULL, 0, &host, &port, &connectionTimeout, &reserved, &retryInterval, &readTimeout); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_VAR(&persistentid); - ZEPHIR_CONCAT_SV(&persistentid, "persistentid_", &index); - ZEPHIR_CALL_METHOD(&result, &connection, "pconnect", NULL, 0, &host, &port, &connectionTimeout, &persistentid, &retryInterval, &readTimeout); - zephir_check_call_status(); - } - if (!(zephir_is_true(&result))) { - ZEPHIR_INIT_VAR(&_2$$6); - object_init_ex(&_2$$6, phalcon_storage_exception_ce); - ZEPHIR_INIT_VAR(&_3$$6); - ZEPHIR_CONCAT_SVSVS(&_3$$6, "Could not connect to the Redisd server [", &host, ":", &port, "]"); - ZEPHIR_CALL_METHOD(NULL, &_2$$6, "__construct", NULL, 8, &_3$$6); - zephir_check_call_status(); - zephir_throw_exception_debug(&_2$$6, "phalcon/Storage/Adapter/Redis.zep", 175); - ZEPHIR_MM_RESTORE(); - return; - } - _4$$3 = !(ZEPHIR_IS_EMPTY(&auth)); - if (_4$$3) { - ZEPHIR_CALL_METHOD(&_5$$3, &connection, "auth", NULL, 0, &auth); - zephir_check_call_status(); - _4$$3 = !zephir_is_true(&_5$$3); - } - if (_4$$3) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_storage_exception_ce, "Failed to authenticate with the Redis server", "phalcon/Storage/Adapter/Redis.zep", 179); - return; - } - _6$$3 = ZEPHIR_GT_LONG(&index, 0); - if (_6$$3) { - ZEPHIR_CALL_METHOD(&_7$$3, &connection, "select", NULL, 0, &index); - zephir_check_call_status(); - _6$$3 = !zephir_is_true(&_7$$3); - } - if (_6$$3) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_storage_exception_ce, "Redis server selected database failed", "phalcon/Storage/Adapter/Redis.zep", 183); - return; - } - zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); - ZVAL_LONG(&_8$$3, 2); - ZEPHIR_CALL_METHOD(NULL, &connection, "setoption", NULL, 0, &_8$$3, &_1$$3); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setserializer", NULL, 126, &connection); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("adapter"), &connection); - } - RETURN_MM_MEMBER(getThis(), "adapter"); + + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "success"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "message", NULL, 0, &_0, &message); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Redis, getKeys) +static PHP_METHOD(Phalcon_Flash_AbstractFlash, outputMessage) { + zend_bool implicitFlush = 0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_3 = NULL, *_4 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *prefix_param = NULL, _0, _1, _2; - zval prefix; + zval *type_param = NULL, *message, message_sub, content, msg, htmlMessage, preparedMsg, _0, *_1$$3, _2$$3; + zval type; zval *this_ptr = getThis(); - ZVAL_UNDEF(&prefix); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&message_sub); + ZVAL_UNDEF(&content); + ZVAL_UNDEF(&msg); + ZVAL_UNDEF(&htmlMessage); + ZVAL_UNDEF(&preparedMsg); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_2$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_STR(prefix) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(type) + Z_PARAM_ZVAL(message) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &prefix_param); - if (!prefix_param) { - ZEPHIR_INIT_VAR(&prefix); - ZVAL_STRING(&prefix, ""); - } else { - if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { - zephir_get_strval(&prefix, prefix_param); - } else { - ZEPHIR_INIT_VAR(&prefix); - } - } + zephir_fetch_params(1, 2, 0, &type_param, &message); + zephir_get_strval(&type, type_param); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "*"); - ZEPHIR_CALL_METHOD(&_1, &_0, "keys", NULL, 0, &_2); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getfilteredkeys", NULL, 0, &_1, &prefix); - zephir_check_call_status(); - RETURN_MM(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("implicitFlush"), PH_NOISY_CC | PH_READONLY); + implicitFlush = zephir_is_true(&_0); + if (Z_TYPE_P(message) == IS_ARRAY) { + if (!(implicitFlush)) { + ZEPHIR_INIT_VAR(&content); + ZVAL_STRING(&content, ""); + } + zephir_is_iterable(message, 0, "phalcon/Flash/AbstractFlash.zep", 297); + if (Z_TYPE_P(message) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(message), _1$$3) + { + ZEPHIR_INIT_NVAR(&msg); + ZVAL_COPY(&msg, _1$$3); + ZEPHIR_CALL_METHOD(&preparedMsg, this_ptr, "prepareescapedmessage", &_3, 103, &msg); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&htmlMessage, this_ptr, "preparehtmlmessage", &_4, 104, &type, &preparedMsg); + zephir_check_call_status(); + if (implicitFlush) { + zend_print_zval(&htmlMessage, 0); + } else { + zephir_concat_self(&content, &htmlMessage); + zephir_update_property_array_append(this_ptr, SL("messages"), &htmlMessage); + } + } ZEND_HASH_FOREACH_END(); + } else { + ZEPHIR_CALL_METHOD(NULL, message, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_2$$3, message, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_2$$3)) { + break; + } + ZEPHIR_CALL_METHOD(&msg, message, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&preparedMsg, this_ptr, "prepareescapedmessage", &_3, 103, &msg); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&htmlMessage, this_ptr, "preparehtmlmessage", &_4, 104, &type, &preparedMsg); + zephir_check_call_status(); + if (implicitFlush) { + zend_print_zval(&htmlMessage, 0); + } else { + zephir_concat_self(&content, &htmlMessage); + zephir_update_property_array_append(this_ptr, SL("messages"), &htmlMessage); + } + ZEPHIR_CALL_METHOD(NULL, message, "next", NULL, 0); + zephir_check_call_status(); + } + } + ZEPHIR_INIT_NVAR(&msg); + if (!(implicitFlush)) { + RETURN_CCTOR(&content); + } + } else { + ZEPHIR_CALL_METHOD(&preparedMsg, this_ptr, "prepareescapedmessage", &_3, 103, message); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&htmlMessage, this_ptr, "preparehtmlmessage", &_4, 104, &type, &preparedMsg); + zephir_check_call_status(); + if (implicitFlush) { + zend_print_zval(&htmlMessage, 0); + } else { + zephir_update_property_array_append(this_ptr, SL("messages"), &htmlMessage); + RETURN_CCTOR(&htmlMessage); + } + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Redis, has) +static PHP_METHOD(Phalcon_Flash_AbstractFlash, warning) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, _0, _1; - zval key; + zval *message_param = NULL, _0; + zval message; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); + ZVAL_UNDEF(&message); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + Z_PARAM_STR(message) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } + zephir_fetch_params(1, 1, 0, &message_param); + zephir_get_strval(&message, message_param); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, &_0, "exists", NULL, 0, &key); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "warning"); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "message", NULL, 0, &_0, &message); zephir_check_call_status(); - RETURN_MM_BOOL(zephir_get_boolval(&_1)); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Redis, increment) +static PHP_METHOD(Phalcon_Flash_AbstractFlash, getTemplate) { + zval _5; + zend_bool _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long value, ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *value_param = NULL, _0, _1; - zval key; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *cssClassses_param = NULL, *cssIconClasses_param = NULL, _0, _1, _2, _4; + zval cssClassses, cssIconClasses, divString, iconString, template; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); + ZVAL_UNDEF(&cssClassses); + ZVAL_UNDEF(&cssIconClasses); + ZVAL_UNDEF(&divString); + ZVAL_UNDEF(&iconString); + ZVAL_UNDEF(&template); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(key) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(value) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(cssClassses) + Z_PARAM_STR(cssIconClasses) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &key_param, &value_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); + zephir_fetch_params(1, 2, 0, &cssClassses_param, &cssIconClasses_param); + zephir_get_strval(&cssClassses, cssClassses_param); + zephir_get_strval(&cssIconClasses, cssIconClasses_param); + + + ZEPHIR_INIT_VAR(&_0); + ZEPHIR_GET_CONSTANT(&_0, "PHP_EOL"); + ZEPHIR_INIT_VAR(&_1); + ZEPHIR_CONCAT_SV(&_1, "%iconString%%message%
", &_0); + zephir_get_strval(&template, &_1); + ZEPHIR_INIT_VAR(&divString); + ZEPHIR_INIT_VAR(&iconString); + zephir_read_property(&_2, this_ptr, ZEND_STRL("customTemplate"), PH_NOISY_CC | PH_READONLY); + if (!(ZEPHIR_IS_EMPTY(&_2))) { + RETURN_MM_MEMBER(getThis(), "customTemplate"); } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); + _3 = !(ZEPHIR_IS_EMPTY(&cssClassses)); + if (!(_3)) { + _3 = !(ZEPHIR_IS_EMPTY(&cssIconClasses)); } - if (!value_param) { - value = 1; - } else { - value = zephir_get_intval(value_param); + if (_3) { + ZEPHIR_INIT_NVAR(&divString); + ZVAL_STRING(&divString, " class=\"%cssClass%\""); + if (!(ZEPHIR_IS_EMPTY(&cssIconClasses))) { + ZEPHIR_INIT_NVAR(&iconString); + ZVAL_STRING(&iconString, " "); + } } - - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); - zephir_check_call_status(); - ZVAL_LONG(&_1, value); - ZEPHIR_RETURN_CALL_METHOD(&_0, "incrby", NULL, 0, &key, &_1); + zephir_read_property(&_4, this_ptr, ZEND_STRL("interpolator"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_5); + zephir_create_array(&_5, 2, 0); + zephir_array_update_string(&_5, SL("divString"), &divString, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_5, SL("iconString"), &iconString, PH_COPY | PH_SEPARATE); + ZEPHIR_RETURN_CALL_METHOD(&_4, "__invoke", NULL, 0, &template, &_5); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Redis, set) +static PHP_METHOD(Phalcon_Flash_AbstractFlash, prepareEscapedMessage) { + zend_bool autoEscape = 0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *value, value_sub, *ttl = NULL, ttl_sub, __$null, _0, _1, _2; - zval key; + zval *message_param = NULL, escaper, _0; + zval message; zval *this_ptr = getThis(); - - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&ttl_sub); - ZVAL_NULL(&__$null); + + ZVAL_UNDEF(&message); + ZVAL_UNDEF(&escaper); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(key) - Z_PARAM_ZVAL(value) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(ttl) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_STR(message) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &key_param, &value, &ttl); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } - if (!ttl) { - ttl = &ttl_sub; - ttl = &__$null; - } + zephir_fetch_params(1, 1, 0, &message_param); + zephir_get_strval(&message, message_param); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getadapter", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getserializeddata", NULL, 0, value); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getttl", NULL, 0, ttl); + ZEPHIR_OBS_VAR(&_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("autoescape"), PH_NOISY_CC); + autoEscape = zephir_get_boolval(&_0); + if (!(autoEscape)) { + RETURN_CTOR(&message); + } + ZEPHIR_CALL_METHOD(&escaper, this_ptr, "getescaperservice", NULL, 0); zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(&_0, "set", NULL, 0, &key, &_1, &_2); + ZEPHIR_RETURN_CALL_METHOD(&escaper, "escapehtml", NULL, 0, &message); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Redis, setSerializer) +static PHP_METHOD(Phalcon_Flash_AbstractFlash, prepareHtmlMessage) { - zval map; + zval _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *connection, connection_sub, serializer, _0, _1, _4, _7, _2$$3, _3$$3, _5$$4, _6$$4, _8$$5, _9$$5, _10$$5; + zval *type_param = NULL, *message_param = NULL, classes, cssClasses, cssIconClasses, typeClasses, typeIconClasses, automaticHtml, _0, _1; + zval type, message; zval *this_ptr = getThis(); - ZVAL_UNDEF(&connection_sub); - ZVAL_UNDEF(&serializer); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&message); + ZVAL_UNDEF(&classes); + ZVAL_UNDEF(&cssClasses); + ZVAL_UNDEF(&cssIconClasses); + ZVAL_UNDEF(&typeClasses); + ZVAL_UNDEF(&typeIconClasses); + ZVAL_UNDEF(&automaticHtml); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_10$$5); - ZVAL_UNDEF(&map); + ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(connection, zephir_get_internal_ce(SL("redis"))) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(type) + Z_PARAM_STR(message) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &connection); + zephir_fetch_params(1, 2, 0, &type_param, &message_param); + zephir_get_strval(&type, type_param); + zephir_get_strval(&message, message_param); - ZEPHIR_INIT_VAR(&map); - zephir_create_array(&map, 2, 0); - add_assoc_long_ex(&map, SL("none"), 0); - add_assoc_long_ex(&map, SL("php"), 1); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "\\Redis::SERIALIZER_IGBINARY"); - ZEPHIR_CALL_FUNCTION(&_1, "defined", NULL, 127, &_0); - zephir_check_call_status(); - if (zephir_is_true(&_1)) { - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "\\Redis::SERIALIZER_IGBINARY"); - ZEPHIR_CALL_FUNCTION(&_3$$3, "constant", NULL, 128, &_2$$3); - zephir_check_call_status(); - zephir_array_update_string(&map, SL("igbinary"), &_3$$3, PH_COPY | PH_SEPARATE); + zephir_read_property(&_0, this_ptr, ZEND_STRL("automaticHtml"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&automaticHtml, &_0); + if (!ZEPHIR_IS_TRUE_IDENTICAL(&automaticHtml)) { + RETURN_CTOR(&message); } - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "\\Redis::SERIALIZER_MSGPACK"); - ZEPHIR_CALL_FUNCTION(&_4, "defined", NULL, 127, &_0); - zephir_check_call_status(); - if (zephir_is_true(&_4)) { - ZEPHIR_INIT_VAR(&_5$$4); - ZVAL_STRING(&_5$$4, "\\Redis::SERIALIZER_MSGPACK"); - ZEPHIR_CALL_FUNCTION(&_6$$4, "constant", NULL, 128, &_5$$4); - zephir_check_call_status(); - zephir_array_update_string(&map, SL("msgpack"), &_6$$4, PH_COPY | PH_SEPARATE); + ZEPHIR_OBS_VAR(&classes); + zephir_read_property(&classes, this_ptr, ZEND_STRL("cssClasses"), PH_NOISY_CC); + zephir_read_property(&_0, this_ptr, ZEND_STRL("cssIconClasses"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&cssIconClasses, &_0); + ZEPHIR_OBS_VAR(&typeClasses); + if (zephir_array_isset_fetch(&typeClasses, &classes, &type, 0)) { + if (Z_TYPE_P(&typeClasses) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&cssClasses); + zephir_fast_join_str(&cssClasses, SL(" "), &typeClasses); + } else { + ZEPHIR_CPY_WRT(&cssClasses, &typeClasses); + } + } else { + ZEPHIR_INIT_NVAR(&cssClasses); + ZVAL_STRING(&cssClasses, ""); } - zephir_read_property(&_7, this_ptr, ZEND_STRL("defaultSerializer"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&serializer); - zephir_fast_strtolower(&serializer, &_7); - if (zephir_array_isset(&map, &serializer)) { - ZEPHIR_INIT_VAR(&_8$$5); - ZEPHIR_INIT_NVAR(&_8$$5); - ZVAL_STRING(&_8$$5, ""); - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultSerializer"), &_8$$5); - zephir_array_fetch(&_9$$5, &map, &serializer, PH_NOISY | PH_READONLY, "phalcon/Storage/Adapter/Redis.zep", 288); - ZVAL_LONG(&_10$$5, 1); - ZEPHIR_CALL_METHOD(NULL, connection, "setoption", NULL, 0, &_10$$5, &_9$$5); - zephir_check_call_status(); + ZEPHIR_OBS_VAR(&typeIconClasses); + if (zephir_array_isset_fetch(&typeIconClasses, &cssIconClasses, &type, 0)) { + if (Z_TYPE_P(&typeIconClasses) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&cssIconClasses); + zephir_fast_join_str(&cssIconClasses, SL(" "), &typeIconClasses); + } else { + ZEPHIR_CPY_WRT(&cssIconClasses, &typeIconClasses); + } } else { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "initserializer", NULL, 0); - zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&cssIconClasses); + ZVAL_STRING(&cssIconClasses, ""); } - ZEPHIR_MM_RESTORE(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("interpolator"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, this_ptr, "gettemplate", NULL, 105, &cssClasses, &cssIconClasses); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + zephir_create_array(&_2, 3, 0); + zephir_array_update_string(&_2, SL("cssClass"), &cssClasses, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_2, SL("iconCssClass"), &cssIconClasses, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_2, SL("message"), &message, PH_COPY | PH_SEPARATE); + ZEPHIR_RETURN_CALL_METHOD(&_0, "__invoke", NULL, 0, &_1, &_2); + zephir_check_call_status(); + RETURN_MM(); } -zend_object *zephir_init_properties_Phalcon_Storage_Adapter_Redis(zend_class_entry *class_type) +zend_object *zephir_init_properties_Phalcon_Flash_AbstractFlash(zend_class_entry *class_type) { - zval _0, _1$$3; + zval _0, _2, _4, _1$$3, _3$$4, _5$$5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$5); ZEPHIR_MM_GROW(); @@ -201737,11 +201225,23 @@ zend_object *zephir_init_properties_Phalcon_Storage_Adapter_Redis(zend_class_ent { zval local_this_ptr, *this_ptr = &local_this_ptr; ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); + zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); if (Z_TYPE_P(&_0) == IS_NULL) { ZEPHIR_INIT_VAR(&_1$$3); array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("messages"), &_1$$3); + } + zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("cssIconClasses"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_2) == IS_NULL) { + ZEPHIR_INIT_VAR(&_3$$4); + array_init(&_3$$4); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("cssIconClasses"), &_3$$4); + } + zephir_read_property_ex(&_4, this_ptr, ZEND_STRL("cssClasses"), PH_NOISY_CC | PH_READONLY); + if (Z_TYPE_P(&_4) == IS_NULL) { + ZEPHIR_INIT_VAR(&_5$$5); + array_init(&_5$$5); + zephir_update_property_zval_ex(this_ptr, ZEND_STRL("cssClasses"), &_5$$5); } ZEPHIR_MM_RESTORE(); return Z_OBJ_P(this_ptr); @@ -201758,1441 +201258,1895 @@ zend_object *zephir_init_properties_Phalcon_Storage_Adapter_Redis(zend_class_ent -ZEPHIR_INIT_CLASS(Phalcon_Storage_Adapter_Stream) +ZEPHIR_INIT_CLASS(Phalcon_Flash_Direct) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Adapter, Stream, phalcon, storage_adapter_stream, phalcon_storage_adapter_abstractadapter_ce, phalcon_storage_adapter_stream_method_entry, 0); - - zend_declare_property_string(phalcon_storage_adapter_stream_ce, SL("storageDir"), "", ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_storage_adapter_stream_ce, SL("options"), ZEND_ACC_PROTECTED); - phalcon_storage_adapter_stream_ce->create_object = zephir_init_properties_Phalcon_Storage_Adapter_Stream; + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Flash, Direct, phalcon, flash_direct, phalcon_flash_abstractflash_ce, phalcon_flash_direct_method_entry, 0); return SUCCESS; } -static PHP_METHOD(Phalcon_Storage_Adapter_Stream, __construct) +static PHP_METHOD(Phalcon_Flash_Direct, message) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL, *_4 = NULL, *_5 = NULL; - zval options; - zval *factory, factory_sub, *options_param = NULL, storageDir, _1, _2, _3; + zval *type_param = NULL, *message, message_sub; + zval type; zval *this_ptr = getThis(); - ZVAL_UNDEF(&factory_sub); - ZVAL_UNDEF(&storageDir); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&options); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&message_sub); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_OBJECT_OF_CLASS(factory, phalcon_storage_serializerfactory_ce) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(options) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(type) + Z_PARAM_ZVAL(message) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &factory, &options_param); - if (!options_param) { - ZEPHIR_INIT_VAR(&options); - array_init(&options); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); - } + zephir_fetch_params(1, 2, 0, &type_param, &message); + zephir_get_strval(&type, type_param); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "storageDir"); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, ""); - ZEPHIR_CALL_CE_STATIC(&storageDir, phalcon_helper_arr_ce, "get", &_0, 16, &options, &_1, &_2); - zephir_check_call_status(); - if (ZEPHIR_IS_EMPTY(&storageDir)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_storage_exception_ce, "The 'storageDir' must be specified in the options", "phalcon/Storage/Adapter/Stream.zep", 57); - return; - } - ZEPHIR_CALL_CE_STATIC(&_3, phalcon_helper_str_ce, "dirseparator", &_4, 129, &storageDir); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("storageDir"), &_3); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "ph-strm"); - zephir_update_property_zval(this_ptr, ZEND_STRL("prefix"), &_1); - zephir_update_property_zval(this_ptr, ZEND_STRL("options"), &options); - ZEPHIR_CALL_PARENT(NULL, phalcon_storage_adapter_stream_ce, getThis(), "__construct", &_5, 0, factory, &options); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "initserializer", NULL, 0); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "outputmessage", NULL, 0, &type, message); zephir_check_call_status(); - ZEPHIR_MM_RESTORE(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Stream, clear) +static PHP_METHOD(Phalcon_Flash_Direct, output) { - zend_bool result = 0, _5$$3, _10$$5; - zval directory, iterator, file, _1, *_2, _3, _4$$3, _6$$3, _7$$3, _9$$5, _11$$5, _12$$5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_3 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL, *_8 = NULL; + zval *remove_param = NULL, message, _0, *_1, _2; + zend_bool remove; zval *this_ptr = getThis(); - ZVAL_UNDEF(&directory); - ZVAL_UNDEF(&iterator); - ZVAL_UNDEF(&file); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_11$$5); - ZVAL_UNDEF(&_12$$5); + ZVAL_UNDEF(&message); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(remove) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &remove_param); + if (!remove_param) { + remove = 1; + } else { + remove = zephir_get_boolval(remove_param); + } - result = 1; - zephir_read_property(&_1, this_ptr, ZEND_STRL("storageDir"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_CE_STATIC(&directory, phalcon_helper_str_ce, "dirseparator", &_0, 129, &_1); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&iterator, this_ptr, "getiterator", NULL, 130, &directory); - zephir_check_call_status(); - zephir_is_iterable(&iterator, 0, "phalcon/Storage/Adapter/Stream.zep", 90); - if (Z_TYPE_P(&iterator) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&iterator), _2) + + zephir_read_property(&_0, this_ptr, ZEND_STRL("messages"), PH_NOISY_CC | PH_READONLY); + zephir_is_iterable(&_0, 0, "phalcon/Flash/Direct.zep", 40); + if (Z_TYPE_P(&_0) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _1) { - ZEPHIR_INIT_NVAR(&file); - ZVAL_COPY(&file, _2); - ZEPHIR_CALL_METHOD(&_4$$3, &file, "isfile", NULL, 0); - zephir_check_call_status(); - _5$$3 = zephir_is_true(&_4$$3); - if (_5$$3) { - ZEPHIR_CALL_METHOD(&_6$$3, &file, "getpathname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_7$$3, "unlink", &_8, 131, &_6$$3); - zephir_check_call_status(); - _5$$3 = !zephir_is_true(&_7$$3); - } - if (_5$$3) { - result = 0; - } + ZEPHIR_INIT_NVAR(&message); + ZVAL_COPY(&message, _1); + zend_print_zval(&message, 0); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &iterator, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_3, &iterator, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_2, &_0, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_3)) { + if (!zend_is_true(&_2)) { break; } - ZEPHIR_CALL_METHOD(&file, &iterator, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&message, &_0, "current", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_9$$5, &file, "isfile", NULL, 0); - zephir_check_call_status(); - _10$$5 = zephir_is_true(&_9$$5); - if (_10$$5) { - ZEPHIR_CALL_METHOD(&_11$$5, &file, "getpathname", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_12$$5, "unlink", &_8, 131, &_11$$5); - zephir_check_call_status(); - _10$$5 = !zephir_is_true(&_12$$5); - } - if (_10$$5) { - result = 0; - } - ZEPHIR_CALL_METHOD(NULL, &iterator, "next", NULL, 0); + zend_print_zval(&message, 0); + ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&file); - RETURN_MM_BOOL(result); + ZEPHIR_INIT_NVAR(&message); + if (remove) { + ZEPHIR_CALL_PARENT(NULL, phalcon_flash_direct_ce, getThis(), "clear", &_3, 0); + zephir_check_call_status(); + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Stream, decrement) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Flash_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Flash, Exception, phalcon, flash_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Flash_FlashInterface) +{ + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Flash, FlashInterface, phalcon, flash_flashinterface, phalcon_flash_flashinterface_method_entry); + + return SUCCESS; +} + +ZEPHIR_DOC_METHOD(Phalcon_Flash_FlashInterface, error); +ZEPHIR_DOC_METHOD(Phalcon_Flash_FlashInterface, message); +ZEPHIR_DOC_METHOD(Phalcon_Flash_FlashInterface, notice); +ZEPHIR_DOC_METHOD(Phalcon_Flash_FlashInterface, success); +ZEPHIR_DOC_METHOD(Phalcon_Flash_FlashInterface, warning); + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Flash_Session) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Flash, Session, phalcon, flash_session, phalcon_flash_abstractflash_ce, phalcon_flash_session_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Flash_Session, clear) { + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long value, ZEPHIR_LAST_CALL_STATUS, _1; - zval *key_param = NULL, *value_param = NULL, data, _0; - zval key; + zephir_fcall_cache_entry *_1 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&data); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(key) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(value) - ZEND_PARSE_PARAMETERS_END(); -#endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &key_param, &value_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } - if (!value_param) { - value = 1; - } else { - value = zephir_get_intval(value_param); - } - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, &key); - zephir_check_call_status(); - if (!(zephir_is_true(&_0))) { - RETURN_MM_BOOL(0); - } - ZEPHIR_CALL_METHOD(&data, this_ptr, "get", NULL, 0, &key); + ZVAL_BOOL(&_0, 1); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "getsessionmessages", NULL, 0, &_0); zephir_check_call_status(); - _1 = (zephir_get_intval(&data) - value); - ZEPHIR_INIT_NVAR(&data); - ZVAL_LONG(&data, _1); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "set", NULL, 0, &key, &data); + ZEPHIR_CALL_PARENT(NULL, phalcon_flash_session_ce, getThis(), "clear", &_1, 0); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Stream, delete) +static PHP_METHOD(Phalcon_Flash_Session, getMessages) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, filepath, _0; - zval key; + zend_bool remove; + zval *type = NULL, type_sub, *remove_param = NULL, __$null, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&filepath); + ZVAL_UNDEF(&type_sub); + ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_START(0, 2) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(type) + Z_PARAM_BOOL(remove) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); + zephir_fetch_params(1, 0, 2, &type, &remove_param); + if (!type) { + type = &type_sub; + type = &__$null; } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + if (!remove_param) { + remove = 1; } else { - ZEPHIR_INIT_VAR(&key); + remove = zephir_get_boolval(remove_param); } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, &key); - zephir_check_call_status(); - if (!(zephir_is_true(&_0))) { - RETURN_MM_BOOL(0); + if (remove) { + ZVAL_BOOL(&_0, 1); + } else { + ZVAL_BOOL(&_0, 0); } - ZEPHIR_CALL_METHOD(&filepath, this_ptr, "getfilepath", NULL, 132, &key); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_FUNCTION("unlink", NULL, 131, &filepath); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getsessionmessages", NULL, 0, &_0, type); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Stream, get) +static PHP_METHOD(Phalcon_Flash_Session, has) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_2 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *defaultValue = NULL, defaultValue_sub, __$null, content, filepath, payload, _0, _1, _3, _4; - zval key; + zval *type = NULL, type_sub, __$null, messages, _0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&defaultValue_sub); + ZVAL_UNDEF(&type_sub); ZVAL_NULL(&__$null); - ZVAL_UNDEF(&content); - ZVAL_UNDEF(&filepath); - ZVAL_UNDEF(&payload); + ZVAL_UNDEF(&messages); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(defaultValue) + Z_PARAM_ZVAL_OR_NULL(type) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &key_param, &defaultValue); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } - if (!defaultValue) { - defaultValue = &defaultValue_sub; - defaultValue = &__$null; + zephir_fetch_params(1, 0, 1, &type); + if (!type) { + type = &type_sub; + type = &__$null; } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, &key); - zephir_check_call_status(); - if (ZEPHIR_IS_FALSE(&_0)) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - ZEPHIR_CALL_METHOD(&filepath, this_ptr, "getfilepath", NULL, 132, &key); - zephir_check_call_status(); - if (!((zephir_file_exists(&filepath) == SUCCESS))) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - ZEPHIR_CALL_METHOD(&payload, this_ptr, "getpayload", NULL, 133, &filepath); - zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_IS_EMPTY(&payload))) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); - } - ZEPHIR_CALL_METHOD(&_1, this_ptr, "isexpired", NULL, 134, &payload); + ZVAL_BOOL(&_0, 0); + ZEPHIR_CALL_METHOD(&messages, this_ptr, "getsessionmessages", NULL, 0, &_0); zephir_check_call_status(); - if (zephir_is_true(&_1)) { - RETVAL_ZVAL(defaultValue, 1, 0); - RETURN_MM(); + if (Z_TYPE_P(type) == IS_STRING) { + RETURN_MM_BOOL(zephir_array_isset(&messages, type)); } - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, "content"); - ZVAL_NULL(&_4); - ZEPHIR_CALL_CE_STATIC(&content, phalcon_helper_arr_ce, "get", &_2, 16, &payload, &_3, &_4); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getunserializeddata", NULL, 0, &content); - zephir_check_call_status(); - RETURN_MM(); + RETURN_MM_BOOL(zephir_fast_count_int(&messages) > 0); } -static PHP_METHOD(Phalcon_Storage_Adapter_Stream, getAdapter) +static PHP_METHOD(Phalcon_Flash_Session, message) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval message; + zval *type, type_sub, *message_param = NULL, messages, _0, _1$$3; zval *this_ptr = getThis(); + ZVAL_UNDEF(&type_sub); + ZVAL_UNDEF(&messages); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&message); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_ZVAL(type) + Z_PARAM_STR(message) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &type, &message_param); + zephir_get_strval(&message, message_param); - RETURN_MEMBER(getThis(), "adapter"); + ZVAL_BOOL(&_0, 0); + ZEPHIR_CALL_METHOD(&messages, this_ptr, "getsessionmessages", NULL, 0, &_0); + zephir_check_call_status(); + if (!(zephir_array_isset(&messages, type))) { + ZEPHIR_INIT_VAR(&_1$$3); + array_init(&_1$$3); + zephir_array_update_zval(&messages, type, &_1$$3, PH_COPY | PH_SEPARATE); + } + zephir_array_update_multi(&messages, &message, SL("za"), 2, type); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "setsessionmessages", NULL, 0, &messages); + zephir_check_call_status(); + RETURN_MM_NULL(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Stream, getKeys) +static PHP_METHOD(Phalcon_Flash_Session, output) { - zval files; + zend_string *_4; + zend_ulong _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_5 = NULL, *_6 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *prefix_param = NULL, directory, file, iterator, *_0, _1, _2$$4, _3$$5, _4$$5, _5$$5, _6$$6, _7$$7, _8$$7, _9$$7; - zval prefix; + zval *remove_param = NULL, type, message, messages, _0, *_1, _2; + zend_bool remove; zval *this_ptr = getThis(); - ZVAL_UNDEF(&prefix); - ZVAL_UNDEF(&directory); - ZVAL_UNDEF(&file); - ZVAL_UNDEF(&iterator); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$5); - ZVAL_UNDEF(&_4$$5); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_6$$6); - ZVAL_UNDEF(&_7$$7); - ZVAL_UNDEF(&_8$$7); - ZVAL_UNDEF(&_9$$7); - ZVAL_UNDEF(&files); + ZVAL_UNDEF(&type); + ZVAL_UNDEF(&message); + ZVAL_UNDEF(&messages); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_STR(prefix) + Z_PARAM_BOOL(remove) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &prefix_param); - if (!prefix_param) { - ZEPHIR_INIT_VAR(&prefix); - ZVAL_STRING(&prefix, ""); - } else { - if (UNEXPECTED(Z_TYPE_P(prefix_param) != IS_STRING && Z_TYPE_P(prefix_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'prefix' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(prefix_param) == IS_STRING)) { - zephir_get_strval(&prefix, prefix_param); + zephir_fetch_params(1, 0, 1, &remove_param); + if (!remove_param) { + remove = 1; } else { - ZEPHIR_INIT_VAR(&prefix); - } + remove = zephir_get_boolval(remove_param); } - ZEPHIR_INIT_VAR(&files); - array_init(&files); - ZEPHIR_CALL_METHOD(&directory, this_ptr, "getdir", NULL, 135); - zephir_check_call_status(); - if (!((zephir_file_exists(&directory) == SUCCESS))) { - array_init(return_value); - RETURN_MM(); + if (remove) { + ZVAL_BOOL(&_0, 1); + } else { + ZVAL_BOOL(&_0, 0); } - ZEPHIR_CALL_METHOD(&iterator, this_ptr, "getiterator", NULL, 130, &directory); + ZEPHIR_CALL_METHOD(&messages, this_ptr, "getsessionmessages", NULL, 0, &_0); zephir_check_call_status(); - zephir_is_iterable(&iterator, 0, "phalcon/Storage/Adapter/Stream.zep", 206); - if (Z_TYPE_P(&iterator) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&iterator), _0) + zephir_is_iterable(&messages, 0, "phalcon/Flash/Session.zep", 100); + if (Z_TYPE_P(&messages) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&messages), _3, _4, _1) { - ZEPHIR_INIT_NVAR(&file); - ZVAL_COPY(&file, _0); - ZEPHIR_CALL_METHOD(&_2$$4, &file, "isfile", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_2$$4)) { - zephir_read_property(&_3$$5, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_4$$5, &file, "getfilename", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_5$$5); - ZEPHIR_CONCAT_VV(&_5$$5, &_3$$5, &_4$$5); - zephir_array_append(&files, &_5$$5, PH_SEPARATE, "phalcon/Storage/Adapter/Stream.zep", 202); + ZEPHIR_INIT_NVAR(&type); + if (_4 != NULL) { + ZVAL_STR_COPY(&type, _4); + } else { + ZVAL_LONG(&type, _3); } + ZEPHIR_INIT_NVAR(&message); + ZVAL_COPY(&message, _1); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "outputmessage", &_5, 0, &type, &message); + zephir_check_call_status(); } ZEND_HASH_FOREACH_END(); } else { - ZEPHIR_CALL_METHOD(NULL, &iterator, "rewind", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &messages, "rewind", NULL, 0); zephir_check_call_status(); while (1) { - ZEPHIR_CALL_METHOD(&_1, &iterator, "valid", NULL, 0); + ZEPHIR_CALL_METHOD(&_2, &messages, "valid", NULL, 0); zephir_check_call_status(); - if (!zend_is_true(&_1)) { + if (!zend_is_true(&_2)) { break; } - ZEPHIR_CALL_METHOD(&file, &iterator, "current", NULL, 0); + ZEPHIR_CALL_METHOD(&type, &messages, "key", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_6$$6, &file, "isfile", NULL, 0); + ZEPHIR_CALL_METHOD(&message, &messages, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "outputmessage", &_5, 0, &type, &message); zephir_check_call_status(); - if (zephir_is_true(&_6$$6)) { - zephir_read_property(&_7$$7, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_8$$7, &file, "getfilename", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_9$$7); - ZEPHIR_CONCAT_VV(&_9$$7, &_7$$7, &_8$$7); - zephir_array_append(&files, &_9$$7, PH_SEPARATE, "phalcon/Storage/Adapter/Stream.zep", 202); - } - ZEPHIR_CALL_METHOD(NULL, &iterator, "next", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &messages, "next", NULL, 0); zephir_check_call_status(); } } - ZEPHIR_INIT_NVAR(&file); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getfilteredkeys", NULL, 0, &files, &prefix); + ZEPHIR_INIT_NVAR(&message); + ZEPHIR_INIT_NVAR(&type); + ZEPHIR_CALL_PARENT(NULL, phalcon_flash_session_ce, getThis(), "clear", &_6, 0); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Stream, has) +static PHP_METHOD(Phalcon_Flash_Session, getSessionMessages) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, payload, filepath, _0; - zval key; + zval *remove_param = NULL, *type = NULL, type_sub, __$null, session, messages, returnMessages, _0, _1$$6, _2$$7; + zend_bool remove; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&payload); - ZVAL_UNDEF(&filepath); + ZVAL_UNDEF(&type_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&session); + ZVAL_UNDEF(&messages); + ZVAL_UNDEF(&returnMessages); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$6); + ZVAL_UNDEF(&_2$$7); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_BOOL(remove) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(type) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); + zephir_fetch_params(1, 1, 1, &remove_param, &type); + remove = zephir_get_boolval(remove_param); + if (!type) { + type = &type_sub; + type = &__$null; } - ZEPHIR_CALL_METHOD(&filepath, this_ptr, "getfilepath", NULL, 132, &key); + ZEPHIR_CALL_METHOD(&session, this_ptr, "getsessionservice", NULL, 0); zephir_check_call_status(); - if (!((zephir_file_exists(&filepath) == SUCCESS))) { - RETURN_MM_BOOL(0); - } - ZEPHIR_CALL_METHOD(&payload, this_ptr, "getpayload", NULL, 133, &filepath); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "_flashMessages"); + ZEPHIR_CALL_METHOD(&messages, &session, "get", NULL, 0, &_0); zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_IS_EMPTY(&payload))) { - RETURN_MM_BOOL(0); + if (Z_TYPE_P(&messages) != IS_ARRAY) { + ZEPHIR_INIT_NVAR(&messages); + array_init(&messages); } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "isexpired", NULL, 134, &payload); - zephir_check_call_status(); - RETURN_MM_BOOL(!zephir_is_true(&_0)); + if (Z_TYPE_P(type) == IS_STRING) { + ZEPHIR_OBS_VAR(&returnMessages); + if (zephir_array_isset_fetch(&returnMessages, &messages, type, 0)) { + if (remove) { + zephir_array_unset(&messages, type, PH_SEPARATE); + ZEPHIR_INIT_VAR(&_1$$6); + ZVAL_STRING(&_1$$6, "_flashMessages"); + ZEPHIR_CALL_METHOD(NULL, &session, "set", NULL, 0, &_1$$6, &messages); + zephir_check_call_status(); + } + RETURN_CCTOR(&returnMessages); + } + array_init(return_value); + RETURN_MM(); + } + if (remove) { + ZEPHIR_INIT_VAR(&_2$$7); + ZVAL_STRING(&_2$$7, "_flashMessages"); + ZEPHIR_CALL_METHOD(NULL, &session, "remove", NULL, 0, &_2$$7); + zephir_check_call_status(); + } + RETURN_CCTOR(&messages); } -static PHP_METHOD(Phalcon_Storage_Adapter_Stream, increment) +static PHP_METHOD(Phalcon_Flash_Session, setSessionMessages) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long value, ZEPHIR_LAST_CALL_STATUS, _1; - zval *key_param = NULL, *value_param = NULL, data, _0; - zval key; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *messages_param = NULL, session, _0; + zval messages; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&data); + ZVAL_UNDEF(&messages); + ZVAL_UNDEF(&session); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_STR(key) - Z_PARAM_OPTIONAL - Z_PARAM_LONG(value) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ARRAY(messages) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &key_param, &value_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } - if (!value_param) { - value = 1; - } else { - value = zephir_get_intval(value_param); - } + zephir_fetch_params(1, 1, 0, &messages_param); + ZEPHIR_OBS_COPY_OR_DUP(&messages, messages_param); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "has", NULL, 0, &key); - zephir_check_call_status(); - if (!(zephir_is_true(&_0))) { - RETURN_MM_BOOL(0); - } - ZEPHIR_CALL_METHOD(&data, this_ptr, "get", NULL, 0, &key); + ZEPHIR_CALL_METHOD(&session, this_ptr, "getsessionservice", NULL, 0); zephir_check_call_status(); - _1 = (zephir_get_intval(&data) + value); - ZEPHIR_INIT_NVAR(&data); - ZVAL_LONG(&data, _1); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "set", NULL, 0, &key, &data); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "_flashMessages"); + ZEPHIR_CALL_METHOD(NULL, &session, "set", NULL, 0, &_0, &messages); zephir_check_call_status(); - RETURN_MM(); + RETURN_CTOR(&messages); } -static PHP_METHOD(Phalcon_Storage_Adapter_Stream, set) +static PHP_METHOD(Phalcon_Flash_Session, getSessionService) { - zval payload; + zval container, _0, _1, _6, _7, _2$$4, _3$$4, _5$$4, _8$$5, _9$$5, _10$$6, _11$$6, _12$$6; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, *value, value_sub, *ttl = NULL, ttl_sub, __$true, __$null, directory, _0, _1, _2, _4, _5, _6, _3$$3; - zval key; + zephir_fcall_cache_entry *_4 = NULL; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&ttl_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&directory); + ZVAL_UNDEF(&container); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_5); ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&payload); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 3) - Z_PARAM_STR(key) - Z_PARAM_ZVAL(value) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(ttl) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_10$$6); + ZVAL_UNDEF(&_11$$6); + ZVAL_UNDEF(&_12$$6); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 1, &key_param, &value, &ttl); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("sessionService"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_0)) { + RETURN_MM_MEMBER(getThis(), "sessionService"); } - if (!ttl) { - ttl = &ttl_sub; - ttl = &__$null; + zephir_read_property(&_1, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&container, &_1); + if (UNEXPECTED(Z_TYPE_P(&container) != IS_OBJECT)) { + ZEPHIR_INIT_VAR(&_2$$4); + object_init_ex(&_2$$4, phalcon_flash_exception_ce); + ZEPHIR_INIT_VAR(&_5$$4); + ZVAL_STRING(&_5$$4, "the 'session' service"); + ZEPHIR_CALL_CE_STATIC(&_3$$4, phalcon_flash_exception_ce, "containerservicenotfound", &_4, 0, &_5$$4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_2$$4, "__construct", NULL, 8, &_3$$4); + zephir_check_call_status(); + zephir_throw_exception_debug(&_2$$4, "phalcon/Flash/Session.zep", 174); + ZEPHIR_MM_RESTORE(); + return; } - - - ZEPHIR_INIT_VAR(&payload); - zephir_create_array(&payload, 3, 0); - ZEPHIR_INIT_VAR(&_0); - zephir_time(&_0); - zephir_array_update_string(&payload, SL("created"), &_0, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getttl", NULL, 0, ttl); - zephir_check_call_status(); - zephir_array_update_string(&payload, SL("ttl"), &_1, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getserializeddata", NULL, 0, value); - zephir_check_call_status(); - zephir_array_update_string(&payload, SL("content"), &_1, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_FUNCTION(&_1, "serialize", NULL, 13, &payload); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&payload, &_1); - ZEPHIR_CALL_METHOD(&directory, this_ptr, "getdir", NULL, 135, &key); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_2, "is_dir", NULL, 136, &directory); + ZEPHIR_INIT_VAR(&_7); + ZVAL_STRING(&_7, "session"); + ZEPHIR_CALL_METHOD(&_6, &container, "has", NULL, 0, &_7); zephir_check_call_status(); - if (!(zephir_is_true(&_2))) { - ZVAL_LONG(&_3$$3, 0777); - ZEPHIR_CALL_FUNCTION(NULL, "mkdir", NULL, 137, &directory, &_3$$3, &__$true); + if (UNEXPECTED(zephir_is_true(&_6))) { + ZEPHIR_INIT_VAR(&_9$$5); + ZVAL_STRING(&_9$$5, "session"); + ZEPHIR_CALL_METHOD(&_8$$5, &container, "getshared", NULL, 0, &_9$$5); + zephir_check_call_status(); + RETURN_CCTOR(&_8$$5); + } else { + ZEPHIR_INIT_VAR(&_10$$6); + object_init_ex(&_10$$6, phalcon_flash_exception_ce); + ZEPHIR_INIT_VAR(&_12$$6); + ZVAL_STRING(&_12$$6, "the 'session' service"); + ZEPHIR_CALL_CE_STATIC(&_11$$6, phalcon_flash_exception_ce, "containerservicenotfound", &_4, 0, &_12$$6); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_10$$6, "__construct", NULL, 8, &_11$$6); zephir_check_call_status(); + zephir_throw_exception_debug(&_10$$6, "phalcon/Flash/Session.zep", 182); + ZEPHIR_MM_RESTORE(); + return; } - ZEPHIR_INIT_VAR(&_4); - ZEPHIR_CONCAT_VV(&_4, &directory, &key); - ZVAL_LONG(&_5, 2); - ZEPHIR_CALL_FUNCTION(&_6, "file_put_contents", NULL, 138, &_4, &payload, &_5); - zephir_check_call_status(); - RETURN_MM_BOOL(!ZEPHIR_IS_FALSE_IDENTICAL(&_6)); } -static PHP_METHOD(Phalcon_Storage_Adapter_Stream, getDir) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Image_Enum) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Image, Enum, phalcon, image_enum, NULL, 0); + + zephir_declare_class_constant_long(phalcon_image_enum_ce, SL("AUTO"), 4); + + zephir_declare_class_constant_long(phalcon_image_enum_ce, SL("HEIGHT"), 3); + + zephir_declare_class_constant_long(phalcon_image_enum_ce, SL("INVERSE"), 5); + + zephir_declare_class_constant_long(phalcon_image_enum_ce, SL("NONE"), 1); + + zephir_declare_class_constant_long(phalcon_image_enum_ce, SL("PRECISE"), 6); + + zephir_declare_class_constant_long(phalcon_image_enum_ce, SL("TENSILE"), 7); + + zephir_declare_class_constant_long(phalcon_image_enum_ce, SL("WIDTH"), 2); + + zephir_declare_class_constant_long(phalcon_image_enum_ce, SL("HORIZONTAL"), 11); + + zephir_declare_class_constant_long(phalcon_image_enum_ce, SL("VERTICAL"), 12); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Image_Exception) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Image, Exception, phalcon, image_exception, phalcon_exception_ce, NULL, 0); + + return SUCCESS; +} + + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Image_ImageFactory) +{ + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Image, ImageFactory, phalcon, image_imagefactory, phalcon_factory_abstractfactory_ce, phalcon_image_imagefactory_method_entry, 0); + + zend_declare_property_string(phalcon_image_imagefactory_ce, SL("exception"), "Phalcon\\Image\\Exception", ZEND_ACC_PROTECTED); + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Image_ImageFactory, __construct) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL, *_4 = NULL; - zval *key_param = NULL, dirFromFile, dirPrefix, _1, _2, _3, _5, _6, _7, _8; - zval key; + zval *services_param = NULL; + zval services; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&dirFromFile); - ZVAL_UNDEF(&dirPrefix); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&services); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(0, 1) Z_PARAM_OPTIONAL - Z_PARAM_STR(key) + Z_PARAM_ARRAY(services) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &key_param); - if (!key_param) { - ZEPHIR_INIT_VAR(&key); - ZVAL_STRING(&key, ""); - } else { - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); + zephir_fetch_params(1, 0, 1, &services_param); + if (!services_param) { + ZEPHIR_INIT_VAR(&services); + array_init(&services); } else { - ZEPHIR_INIT_VAR(&key); - } + ZEPHIR_OBS_COPY_OR_DUP(&services, services_param); } - zephir_read_property(&_1, this_ptr, ZEND_STRL("storageDir"), PH_NOISY_CC | PH_READONLY); - zephir_read_property(&_2, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_3); - ZEPHIR_CONCAT_VV(&_3, &_1, &_2); - ZEPHIR_CALL_CE_STATIC(&dirPrefix, phalcon_helper_str_ce, "dirseparator", &_0, 129, &_3); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_5); - zephir_read_property(&_6, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_7); - ZVAL_STRING(&_7, ""); - zephir_fast_str_replace(&_5, &_6, &_7, &key); - ZEPHIR_CALL_CE_STATIC(&dirFromFile, phalcon_helper_str_ce, "dirfromfile", &_4, 139, &_5); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_8); - ZEPHIR_CONCAT_VV(&_8, &dirPrefix, &dirFromFile); - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_helper_str_ce, "dirseparator", &_0, 129, &_8); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "init", NULL, 0, &services); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Stream, getFilepath) +static PHP_METHOD(Phalcon_Image_ImageFactory, load) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_1 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *key_param = NULL, _0, _1, _2, _3, _4; - zval key; + zval *config = NULL, config_sub, height, file, name, width, _0, _2, _3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); + ZVAL_UNDEF(&config_sub); + ZVAL_UNDEF(&height); + ZVAL_UNDEF(&file); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&width); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(key) + Z_PARAM_ZVAL(config) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &key_param); - if (UNEXPECTED(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'key' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(key_param) == IS_STRING)) { - zephir_get_strval(&key, key_param); - } else { - ZEPHIR_INIT_VAR(&key); - } + zephir_fetch_params(1, 1, 0, &config); + ZEPHIR_SEPARATE_PARAM(config); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getdir", NULL, 135, &key); + ZEPHIR_CALL_METHOD(&_0, this_ptr, "checkconfig", NULL, 0, config); zephir_check_call_status(); - zephir_read_property(&_1, this_ptr, ZEND_STRL("prefix"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(config, &_0); + if (UNEXPECTED(!(zephir_array_isset_string(config, SL("file"))))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "You must provide 'file' option in factory config parameter.", "phalcon/Image/ImageFactory.zep", 52); + return; + } + ZEPHIR_OBS_VAR(&name); + zephir_array_fetch_string(&name, config, SL("adapter"), PH_NOISY, "phalcon/Image/ImageFactory.zep", 55); + zephir_array_unset_string(config, SL("adapter"), PH_SEPARATE); ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, ""); - ZVAL_LONG(&_3, 1); - ZEPHIR_MAKE_REF(&_3); - ZEPHIR_CALL_FUNCTION(&_4, "str_replace", NULL, 140, &_1, &_2, &key, &_3); - ZEPHIR_UNREF(&_3); + ZVAL_STRING(&_2, "file"); + ZEPHIR_CALL_CE_STATIC(&file, phalcon_helper_arr_ce, "get", &_1, 16, config, &_2); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "height"); + ZVAL_NULL(&_3); + ZEPHIR_CALL_CE_STATIC(&height, phalcon_helper_arr_ce, "get", &_1, 16, config, &_2, &_3); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "width"); + ZVAL_NULL(&_3); + ZEPHIR_CALL_CE_STATIC(&width, phalcon_helper_arr_ce, "get", &_1, 16, config, &_2, &_3); + zephir_check_call_status(); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "newinstance", NULL, 0, &name, &file, &width, &height); zephir_check_call_status(); - ZEPHIR_CONCAT_VV(return_value, &_0, &_4); RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Stream, getIterator) +static PHP_METHOD(Phalcon_Image_ImageFactory, newInstance) { + zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *dir_param = NULL, _0, _1; - zval dir; + zend_long width, height, ZEPHIR_LAST_CALL_STATUS; + zval *name_param = NULL, *file_param = NULL, *width_param = NULL, *height_param = NULL, definition, _1; + zval name, file; zval *this_ptr = getThis(); - ZVAL_UNDEF(&dir); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&file); + ZVAL_UNDEF(&definition); ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(dir) + ZEND_PARSE_PARAMETERS_START(2, 4) + Z_PARAM_STR(name) + Z_PARAM_STR(file) + Z_PARAM_OPTIONAL + Z_PARAM_LONG_OR_NULL(width, is_null_true) + Z_PARAM_LONG_OR_NULL(height, is_null_true) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &dir_param); - if (UNEXPECTED(Z_TYPE_P(dir_param) != IS_STRING && Z_TYPE_P(dir_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'dir' must be of the type string")); + zephir_fetch_params(1, 2, 2, &name_param, &file_param, &width_param, &height_param); + if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string")); RETURN_MM_NULL(); } - if (EXPECTED(Z_TYPE_P(dir_param) == IS_STRING)) { - zephir_get_strval(&dir, dir_param); + if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) { + zephir_get_strval(&name, name_param); } else { - ZEPHIR_INIT_VAR(&dir); + ZEPHIR_INIT_VAR(&name); + } + if (UNEXPECTED(Z_TYPE_P(file_param) != IS_STRING && Z_TYPE_P(file_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'file' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(file_param) == IS_STRING)) { + zephir_get_strval(&file, file_param); + } else { + ZEPHIR_INIT_VAR(&file); + } + if (!width_param) { + width = 0; + } else { + width = zephir_get_intval(width_param); + } + if (!height_param) { + height = 0; + } else { + height = zephir_get_intval(height_param); } - object_init_ex(return_value, spl_ce_RecursiveIteratorIterator); - ZEPHIR_INIT_VAR(&_0); - object_init_ex(&_0, spl_ce_RecursiveDirectoryIterator); - ZVAL_LONG(&_1, 4096); - ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 141, &dir, &_1); + ZEPHIR_CALL_METHOD(&definition, this_ptr, "getservice", NULL, 0, &name); zephir_check_call_status(); - ZVAL_LONG(&_1, 2); - ZEPHIR_CALL_METHOD(NULL, return_value, "__construct", NULL, 142, &_0, &_1); + ZEPHIR_INIT_VAR(&_0); + zephir_create_array(&_0, 3, 0); + zephir_array_fast_append(&_0, &file); + ZEPHIR_INIT_VAR(&_1); + ZVAL_LONG(&_1, width); + zephir_array_fast_append(&_0, &_1); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_LONG(&_1, height); + zephir_array_fast_append(&_0, &_1); + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(return_value, &definition, &_0); zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Adapter_Stream, getPayload) +static PHP_METHOD(Phalcon_Image_ImageFactory, getAdapters) { - zend_bool _10; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *filepath_param = NULL, __$false, payload, pointer, version, _0, _1, _2, _3, _4, _9, _5$$5, _6$$5, _7$$6, _8$$6; - zval filepath; zval *this_ptr = getThis(); - ZVAL_UNDEF(&filepath); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&payload); - ZVAL_UNDEF(&pointer); - ZVAL_UNDEF(&version); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&_6$$5); - ZVAL_UNDEF(&_7$$6); - ZVAL_UNDEF(&_8$$6); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(filepath) - ZEND_PARSE_PARAMETERS_END(); + + + zephir_create_array(return_value, 2, 0); + add_assoc_stringl_ex(return_value, SL("gd"), SL("Phalcon\\Image\\Adapter\\Gd")); + add_assoc_stringl_ex(return_value, SL("imagick"), SL("Phalcon\\Image\\Adapter\\Imagick")); + return; +} + + + + +#ifdef HAVE_CONFIG_H #endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &filepath_param); - zephir_get_strval(&filepath, filepath_param); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "r"); - ZEPHIR_CALL_FUNCTION(&pointer, "fopen", NULL, 89, &filepath, &_0); - zephir_check_call_status(); - ZVAL_LONG(&_1, 1); - ZEPHIR_CALL_FUNCTION(&_2, "flock", NULL, 143, &pointer, &_1); - zephir_check_call_status(); - if (zephir_is_true(&_2)) { - ZEPHIR_INIT_VAR(&payload); - zephir_file_get_contents(&payload, &filepath); - } - zephir_fclose(&pointer); - if (ZEPHIR_IS_FALSE_IDENTICAL(&payload)) { - array_init(return_value); - RETURN_MM(); - } - ZEPHIR_CALL_FUNCTION(&version, "phpversion", NULL, 86); - zephir_check_call_status(); - ZEPHIR_GLOBAL(warning).enable = zend_is_true(&__$false); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "8.0"); - ZEPHIR_INIT_VAR(&_3); - ZVAL_STRING(&_3, ">="); - ZEPHIR_CALL_FUNCTION(&_4, "version_compare", NULL, 87, &version, &_0, &_3); - zephir_check_call_status(); - if (zephir_is_true(&_4)) { - ZEPHIR_INIT_VAR(&_5$$5); - ZEPHIR_INIT_NVAR(&_5$$5); - zephir_create_closure_ex(&_5$$5, NULL, phalcon_2__closure_ce, SL("__invoke")); - ZVAL_LONG(&_6$$5, 8); - ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_5$$5, &_6$$5); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_VAR(&_7$$6); - ZEPHIR_INIT_NVAR(&_7$$6); - zephir_create_closure_ex(&_7$$6, NULL, phalcon_3__closure_ce, SL("__invoke")); - ZVAL_LONG(&_8$$6, 8); - ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_7$$6, &_8$$6); - zephir_check_call_status(); - } - ZEPHIR_CALL_FUNCTION(&_9, "unserialize", NULL, 15, &payload); - zephir_check_call_status(); - ZEPHIR_CPY_WRT(&payload, &_9); - ZEPHIR_CALL_FUNCTION(NULL, "restore_error_handler", NULL, 90); - zephir_check_call_status(); - _10 = ZEPHIR_GLOBAL(warning).enable; - if (!(_10)) { - _10 = Z_TYPE_P(&payload) != IS_ARRAY; - } - if (UNEXPECTED(_10)) { - array_init(return_value); - RETURN_MM(); - } - RETURN_CCTOR(&payload); + +ZEPHIR_INIT_CLASS(Phalcon_Image_Adapter_AbstractAdapter) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Image\\Adapter, AbstractAdapter, phalcon, image_adapter_abstractadapter, phalcon_image_adapter_abstractadapter_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + zend_declare_property_bool(phalcon_image_adapter_abstractadapter_ce, SL("checked"), 0, ZEND_ACC_PROTECTED|ZEND_ACC_STATIC); + zend_declare_property_null(phalcon_image_adapter_abstractadapter_ce, SL("file"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_image_adapter_abstractadapter_ce, SL("height"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_image_adapter_abstractadapter_ce, SL("image"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_image_adapter_abstractadapter_ce, SL("mime"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_image_adapter_abstractadapter_ce, SL("realpath"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_image_adapter_abstractadapter_ce, SL("type"), ZEND_ACC_PROTECTED); + zend_declare_property_null(phalcon_image_adapter_abstractadapter_ce, SL("width"), ZEND_ACC_PROTECTED); + zend_class_implements(phalcon_image_adapter_abstractadapter_ce, 1, phalcon_image_adapter_adapterinterface_ce); + return SUCCESS; } -static PHP_METHOD(Phalcon_Storage_Adapter_Stream, isExpired) +static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, getHeight) { - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *payload_param = NULL, created, ttl, _1, _2, _3, _4; - zval payload; zval *this_ptr = getThis(); - ZVAL_UNDEF(&payload); - ZVAL_UNDEF(&created); - ZVAL_UNDEF(&ttl); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(payload) - ZEND_PARSE_PARAMETERS_END(); -#endif - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &payload_param); - ZEPHIR_OBS_COPY_OR_DUP(&payload, payload_param); + RETURN_MEMBER(getThis(), "height"); +} +static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, getImage) +{ + zval *this_ptr = getThis(); - ZEPHIR_INIT_VAR(&_1); - zephir_time(&_1); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "created"); - ZEPHIR_CALL_CE_STATIC(&created, phalcon_helper_arr_ce, "get", &_0, 16, &payload, &_2, &_1); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "ttl"); - ZVAL_LONG(&_3, 3600); - ZEPHIR_CALL_CE_STATIC(&ttl, phalcon_helper_arr_ce, "get", &_0, 16, &payload, &_2, &_3); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_4); - zephir_add_function(&_4, &created, &ttl); - ZEPHIR_INIT_NVAR(&_2); - zephir_time(&_2); - RETURN_MM_BOOL(ZEPHIR_LT(&_4, &_2)); + + + RETURN_MEMBER(getThis(), "image"); } -zend_object *zephir_init_properties_Phalcon_Storage_Adapter_Stream(zend_class_entry *class_type) +static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, getMime) { - zval _0, _1$$3; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$3); - + zval *this_ptr = getThis(); - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("options"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("options"), &_1$$3); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); - } + + + RETURN_MEMBER(getThis(), "mime"); } +static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, getRealpath) +{ + zval *this_ptr = getThis(); -#ifdef HAVE_CONFIG_H -#endif + RETURN_MEMBER(getThis(), "realpath"); +} +static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, getType) +{ + zval *this_ptr = getThis(); + RETURN_MEMBER(getThis(), "type"); +} -ZEPHIR_INIT_CLASS(Phalcon_Storage_Serializer_AbstractSerializer) +static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, getWidth) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Storage\\Serializer, AbstractSerializer, phalcon, storage_serializer_abstractserializer, phalcon_storage_serializer_abstractserializer_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + zval *this_ptr = getThis(); - zend_declare_property_null(phalcon_storage_serializer_abstractserializer_ce, SL("data"), ZEND_ACC_PROTECTED); - zend_class_implements(phalcon_storage_serializer_abstractserializer_ce, 1, phalcon_storage_serializer_serializerinterface_ce); - return SUCCESS; + + + RETURN_MEMBER(getThis(), "width"); } -static PHP_METHOD(Phalcon_Storage_Serializer_AbstractSerializer, __construct) +static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, background) { - zval *data = NULL, data_sub, __$null; + zend_bool _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long opacity, ZEPHIR_LAST_CALL_STATUS; + zval *color_param = NULL, *opacity_param = NULL, colors, _1, _2, _3, _9, _10, _11, _12, _13, _14, _4$$3, _5$$3, _6$$4, _7$$4, _8$$4; + zval color; zval *this_ptr = getThis(); - ZVAL_UNDEF(&data_sub); - ZVAL_NULL(&__$null); + ZVAL_UNDEF(&color); + ZVAL_UNDEF(&colors); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_13); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_8$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(color) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(data) + Z_PARAM_LONG(opacity) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(0, 1, &data); - if (!data) { - data = &data_sub; - data = &__$null; + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 1, &color_param, &opacity_param); + zephir_get_strval(&color, color_param); + if (!opacity_param) { + opacity = 100; + } else { + opacity = zephir_get_intval(opacity_param); } - zephir_update_property_zval(this_ptr, ZEND_STRL("data"), data); + _0 = zephir_fast_strlen_ev(&color) > 1; + if (_0) { + ZVAL_LONG(&_1, 0); + ZVAL_LONG(&_2, 1); + ZEPHIR_INIT_VAR(&_3); + zephir_substr(&_3, &color, 0 , 1 , 0); + _0 = ZEPHIR_IS_STRING_IDENTICAL(&_3, "#"); + } + if (_0) { + ZVAL_LONG(&_4$$3, 1); + ZEPHIR_INIT_VAR(&_5$$3); + zephir_substr(&_5$$3, &color, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + zephir_get_strval(&color, &_5$$3); + } + if (zephir_fast_strlen_ev(&color) == 3) { + ZEPHIR_INIT_VAR(&_6$$4); + ZVAL_STRING(&_6$$4, "/./"); + ZEPHIR_INIT_VAR(&_7$$4); + ZVAL_STRING(&_7$$4, "$0$0"); + ZEPHIR_CALL_FUNCTION(&_8$$4, "preg_replace", NULL, 50, &_6$$4, &_7$$4, &color); + zephir_check_call_status(); + zephir_get_strval(&color, &_8$$4); + } + ZVAL_LONG(&_9, 2); + ZEPHIR_CALL_FUNCTION(&_10, "str_split", NULL, 108, &color, &_9); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_11); + ZVAL_STRING(&_11, "hexdec"); + ZEPHIR_CALL_FUNCTION(&colors, "array_map", NULL, 102, &_11, &_10); + zephir_check_call_status(); + zephir_array_fetch_long(&_12, &colors, 0, PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/AbstractAdapter.zep", 93); + zephir_array_fetch_long(&_13, &colors, 1, PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/AbstractAdapter.zep", 93); + zephir_array_fetch_long(&_14, &colors, 2, PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/AbstractAdapter.zep", 93); + ZVAL_LONG(&_9, opacity); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processbackground", NULL, 0, &_12, &_13, &_14, &_9); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Storage_Serializer_AbstractSerializer, isSerializable) +static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, blur) { - zend_bool _0, _1; - zval *data, data_sub; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *radius_param = NULL, _0; + zend_long radius, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(data) + Z_PARAM_LONG(radius) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &data); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &radius_param); + radius = zephir_get_intval(radius_param); - _0 = ZEPHIR_IS_EMPTY(data); - if (!(_0)) { - _0 = ((Z_TYPE_P(data) == IS_TRUE || Z_TYPE_P(data) == IS_FALSE) == 1); - } - _1 = _0; - if (!(_1)) { - _1 = zephir_is_numeric(data); + if (radius < 1) { + radius = 1; + } else if (radius > 100) { + radius = 100; } - RETURN_BOOL(!(_1)); + ZVAL_LONG(&_0, radius); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processblur", NULL, 0, &_0); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Storage_Serializer_AbstractSerializer, getData) +static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, crop) { + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *width_param = NULL, *height_param = NULL, *offsetX_param = NULL, *offsetY_param = NULL, _0, _5, _10, _12, _14, _15, _16, _17, _1$$3, _2$$5, _3$$4, _4$$6, _6$$7, _7$$9, _8$$8, _9$$10, _11$$11, _13$$12; + zend_long width, height, offsetX, offsetY, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_15); + ZVAL_UNDEF(&_16); + ZVAL_UNDEF(&_17); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$6); + ZVAL_UNDEF(&_6$$7); + ZVAL_UNDEF(&_7$$9); + ZVAL_UNDEF(&_8$$8); + ZVAL_UNDEF(&_9$$10); + ZVAL_UNDEF(&_11$$11); + ZVAL_UNDEF(&_13$$12); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 4) + Z_PARAM_LONG(width) + Z_PARAM_LONG(height) + Z_PARAM_OPTIONAL + Z_PARAM_LONG_OR_NULL(offsetX, is_null_true) + Z_PARAM_LONG_OR_NULL(offsetY, is_null_true) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 2, &width_param, &height_param, &offsetX_param, &offsetY_param); + width = zephir_get_intval(width_param); + height = zephir_get_intval(height_param); + if (!offsetX_param) { + offsetX = 0; + } else { + offsetX = zephir_get_intval(offsetX_param); + } + if (!offsetY_param) { + offsetY = 0; + } else { + offsetY = zephir_get_intval(offsetY_param); + } - RETURN_MEMBER(getThis(), "data"); + ZVAL_LONG(&_0, offsetX); + if (Z_TYPE_P(&_0) == IS_NULL) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + offsetX = (long) ((zephir_safe_div_long_long(((zephir_get_numberval(&_1$$3) - width)), 2))); + } else { + if (offsetX < 0) { + zephir_read_property(&_2$$5, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + offsetX = ((zephir_get_numberval(&_2$$5) - width) + offsetX); + } + zephir_read_property(&_3$$4, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + if (ZEPHIR_LT_LONG(&_3$$4, offsetX)) { + ZEPHIR_OBS_VAR(&_4$$6); + zephir_read_property(&_4$$6, this_ptr, ZEND_STRL("width"), PH_NOISY_CC); + offsetX = zephir_get_intval(&_4$$6); + } + } + ZVAL_LONG(&_5, offsetY); + if (Z_TYPE_P(&_5) == IS_NULL) { + zephir_read_property(&_6$$7, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + offsetY = (long) ((zephir_safe_div_long_long(((zephir_get_numberval(&_6$$7) - height)), 2))); + } else { + if (offsetY < 0) { + zephir_read_property(&_7$$9, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + offsetY = ((zephir_get_numberval(&_7$$9) - height) + offsetY); + } + zephir_read_property(&_8$$8, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + if (ZEPHIR_LT_LONG(&_8$$8, offsetY)) { + ZEPHIR_OBS_VAR(&_9$$10); + zephir_read_property(&_9$$10, this_ptr, ZEND_STRL("height"), PH_NOISY_CC); + offsetY = zephir_get_intval(&_9$$10); + } + } + zephir_read_property(&_10, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + if (width > ((zephir_get_numberval(&_10) - offsetX))) { + zephir_read_property(&_11$$11, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + width = (zephir_get_numberval(&_11$$11) - offsetX); + } + zephir_read_property(&_12, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + if (height > ((zephir_get_numberval(&_12) - offsetY))) { + zephir_read_property(&_13$$12, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + height = (zephir_get_numberval(&_13$$12) - offsetY); + } + ZVAL_LONG(&_14, width); + ZVAL_LONG(&_15, height); + ZVAL_LONG(&_16, offsetX); + ZVAL_LONG(&_17, offsetY); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processcrop", NULL, 0, &_14, &_15, &_16, &_17); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Storage_Serializer_AbstractSerializer, setData) +static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, flip) { - zval *data, data_sub; + zend_bool _0; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *direction_param = NULL, _1; + zend_long direction, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&data_sub); + ZVAL_UNDEF(&_1); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(data) + Z_PARAM_LONG(direction) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &data); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &direction_param); + direction = zephir_get_intval(direction_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("data"), data); + _0 = direction != 11; + if (_0) { + _0 = direction != 12; + } + if (_0) { + direction = 11; + } + ZVAL_LONG(&_1, direction); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processflip", NULL, 0, &_1); + zephir_check_call_status(); + RETURN_THIS(); } +static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, liquidRescale) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *width_param = NULL, *height_param = NULL, *deltaX_param = NULL, *rigidity_param = NULL, _0, _1, _2, _3; + zend_long width, height, deltaX, rigidity, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 4) + Z_PARAM_LONG(width) + Z_PARAM_LONG(height) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(deltaX) + Z_PARAM_LONG(rigidity) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 2, &width_param, &height_param, &deltaX_param, &rigidity_param); + width = zephir_get_intval(width_param); + height = zephir_get_intval(height_param); + if (!deltaX_param) { + deltaX = 0; + } else { + deltaX = zephir_get_intval(deltaX_param); + } + if (!rigidity_param) { + rigidity = 0; + } else { + rigidity = zephir_get_intval(rigidity_param); + } - -ZEPHIR_INIT_CLASS(Phalcon_Storage_Serializer_Base64) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Serializer, Base64, phalcon, storage_serializer_base64, phalcon_storage_serializer_abstractserializer_ce, phalcon_storage_serializer_base64_method_entry, 0); - - return SUCCESS; + ZVAL_LONG(&_0, width); + ZVAL_LONG(&_1, height); + ZVAL_LONG(&_2, deltaX); + ZVAL_LONG(&_3, rigidity); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processliquidrescale", NULL, 0, &_0, &_1, &_2, &_3); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Storage_Serializer_Base64, serialize) +static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, mask) { - zval _0, _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval *watermark, watermark_sub; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&watermark_sub); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(watermark, phalcon_image_adapter_adapterinterface_ce) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &watermark); - ZEPHIR_OBS_VAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC); - if (Z_TYPE_P(&_0) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_InvalidArgumentException, "Data for the serializer must of type string", "phalcon/Storage/Serializer/Base64.zep", 25); - return; - } - zephir_read_property(&_1, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_FUNCTION("base64_encode", NULL, 191, &_1); + + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processmask", NULL, 0, watermark); zephir_check_call_status(); - RETURN_MM(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Storage_Serializer_Base64, unserialize) +static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, pixelate) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *data, data_sub, _0; + zval *amount_param = NULL, _0; + zend_long amount, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&data_sub); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(data) + Z_PARAM_LONG(amount) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &data); + zephir_fetch_params(1, 1, 0, &amount_param); + amount = zephir_get_intval(amount_param); - if (Z_TYPE_P(data) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_InvalidArgumentException, "Data for the unserializer must of type string", "phalcon/Storage/Serializer/Base64.zep", 39); - return; + if (amount < 2) { + amount = 2; } - ZEPHIR_CALL_FUNCTION(&_0, "base64_decode", NULL, 188, data); + ZVAL_LONG(&_0, amount); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processpixelate", NULL, 0, &_0); zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &_0); - ZEPHIR_MM_RESTORE(); + RETURN_THIS(); } +static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, reflection) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_bool fadeIn, _0; + zval *height_param = NULL, *opacity_param = NULL, *fadeIn_param = NULL, _1, _3, _4, _5, _2$$3; + zend_long height, opacity, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_2$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_LONG(height) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(opacity) + Z_PARAM_BOOL(fadeIn) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 2, &height_param, &opacity_param, &fadeIn_param); + height = zephir_get_intval(height_param); + if (!opacity_param) { + opacity = 100; + } else { + opacity = zephir_get_intval(opacity_param); + } + if (!fadeIn_param) { + fadeIn = 0; + } else { + fadeIn = zephir_get_boolval(fadeIn_param); + } + _0 = height <= 0; + if (!(_0)) { + zephir_read_property(&_1, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + _0 = ZEPHIR_LT_LONG(&_1, height); + } + if (_0) { + ZEPHIR_OBS_VAR(&_2$$3); + zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("height"), PH_NOISY_CC); + height = zephir_get_intval(&_2$$3); + } + if (opacity < 0) { + opacity = 0; + } else if (opacity > 100) { + opacity = 100; + } + ZVAL_LONG(&_3, height); + ZVAL_LONG(&_4, opacity); + if (fadeIn) { + ZVAL_BOOL(&_5, 1); + } else { + ZVAL_BOOL(&_5, 0); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processreflection", NULL, 0, &_3, &_4, &_5); + zephir_check_call_status(); + RETURN_THIS(); +} -ZEPHIR_INIT_CLASS(Phalcon_Storage_Serializer_Igbinary) +static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, render) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Serializer, Igbinary, phalcon, storage_serializer_igbinary, phalcon_storage_serializer_abstractserializer_ce, phalcon_storage_serializer_igbinary_method_entry, 0); + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long quality, ZEPHIR_LAST_CALL_STATUS; + zval *ext_param = NULL, *quality_param = NULL, _0$$3, _1$$3, _2$$3, _4; + zval ext, _3$$3; + zval *this_ptr = getThis(); - return SUCCESS; + ZVAL_UNDEF(&ext); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 2) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(ext) + Z_PARAM_LONG(quality) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 2, &ext_param, &quality_param); + if (!ext_param) { + ZEPHIR_INIT_VAR(&ext); + } else { + zephir_get_strval(&ext, ext_param); + } + if (!quality_param) { + quality = 100; + } else { + quality = zephir_get_intval(quality_param); + } + + + if (ZEPHIR_IS_EMPTY(&ext)) { + zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_1$$3, 4); + ZEPHIR_CALL_FUNCTION(&_2$$3, "pathinfo", NULL, 109, &_0$$3, &_1$$3); + zephir_check_call_status(); + zephir_cast_to_string(&_3$$3, &_2$$3); + ZEPHIR_CPY_WRT(&ext, &_3$$3); + } + if (ZEPHIR_IS_EMPTY(&ext)) { + ZEPHIR_INIT_NVAR(&ext); + ZVAL_STRING(&ext, "png"); + } + if (quality < 1) { + quality = 1; + } else if (quality > 100) { + quality = 100; + } + ZVAL_LONG(&_4, quality); + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "processrender", NULL, 0, &ext, &_4); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Storage_Serializer_Igbinary, serialize) +static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, resize) { - zval _0; + zend_bool _0$$3, _1$$6, _5$$8, _13$$14; + double ratio = 0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval *width_param = NULL, *height_param = NULL, *master_param = NULL, _23, _24, _25, _26, _27, _28, _29, _30, _2$$6, _3$$6, _4$$6, _6$$8, _7$$8, _8$$8, _9$$10, _10$$10, _11$$12, _12$$12, _14$$14, _15$$14, _16$$14, _17$$16, _18$$16, _19$$17, _20$$17, _21$$19, _22$$20; + zend_long width, height, master, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_23); + ZVAL_UNDEF(&_24); + ZVAL_UNDEF(&_25); + ZVAL_UNDEF(&_26); + ZVAL_UNDEF(&_27); + ZVAL_UNDEF(&_28); + ZVAL_UNDEF(&_29); + ZVAL_UNDEF(&_30); + ZVAL_UNDEF(&_2$$6); + ZVAL_UNDEF(&_3$$6); + ZVAL_UNDEF(&_4$$6); + ZVAL_UNDEF(&_6$$8); + ZVAL_UNDEF(&_7$$8); + ZVAL_UNDEF(&_8$$8); + ZVAL_UNDEF(&_9$$10); + ZVAL_UNDEF(&_10$$10); + ZVAL_UNDEF(&_11$$12); + ZVAL_UNDEF(&_12$$12); + ZVAL_UNDEF(&_14$$14); + ZVAL_UNDEF(&_15$$14); + ZVAL_UNDEF(&_16$$14); + ZVAL_UNDEF(&_17$$16); + ZVAL_UNDEF(&_18$$16); + ZVAL_UNDEF(&_19$$17); + ZVAL_UNDEF(&_20$$17); + ZVAL_UNDEF(&_21$$19); + ZVAL_UNDEF(&_22$$20); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 3) + Z_PARAM_OPTIONAL + Z_PARAM_LONG_OR_NULL(width, is_null_true) + Z_PARAM_LONG_OR_NULL(height, is_null_true) + Z_PARAM_LONG(master) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 3, &width_param, &height_param, &master_param); + if (!width_param) { + width = 0; + } else { + width = zephir_get_intval(width_param); + } + if (!height_param) { + height = 0; + } else { + height = zephir_get_intval(height_param); + } + if (!master_param) { + master = 4; + } else { + master = zephir_get_intval(master_param); + } + + + if (master == 7) { + _0$$3 = !width; + if (!(_0$$3)) { + _0$$3 = !height; + } + if (UNEXPECTED(_0$$3)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "width and height must be specified", "phalcon/Image/Adapter/AbstractAdapter.zep", 277); + return; + } + } else { + if (master == 4) { + _1$$6 = !width; + if (!(_1$$6)) { + _1$$6 = !height; + } + if (UNEXPECTED(_1$$6)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "width and height must be specified", "phalcon/Image/Adapter/AbstractAdapter.zep", 284); + return; + } + ZEPHIR_INIT_VAR(&_2$$6); + zephir_read_property(&_3$$6, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_4$$6, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + if ((zephir_safe_div_zval_long(&_3$$6, width)) > (int) (zephir_safe_div_zval_long(&_4$$6, height))) { + ZEPHIR_INIT_NVAR(&_2$$6); + ZVAL_LONG(&_2$$6, 2); + } else { + ZEPHIR_INIT_NVAR(&_2$$6); + ZVAL_LONG(&_2$$6, 3); + } + master = zephir_get_numberval(&_2$$6); + } + if (master == 5) { + _5$$8 = !width; + if (!(_5$$8)) { + _5$$8 = !height; + } + if (UNEXPECTED(_5$$8)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "width and height must be specified", "phalcon/Image/Adapter/AbstractAdapter.zep", 293); + return; + } + ZEPHIR_INIT_VAR(&_6$$8); + zephir_read_property(&_7$$8, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_8$$8, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + if ((zephir_safe_div_zval_long(&_7$$8, width)) > (int) (zephir_safe_div_zval_long(&_8$$8, height))) { + ZEPHIR_INIT_NVAR(&_6$$8); + ZVAL_LONG(&_6$$8, 3); + } else { + ZEPHIR_INIT_NVAR(&_6$$8); + ZVAL_LONG(&_6$$8, 2); + } + master = zephir_get_numberval(&_6$$8); + } + do { + if (master == 2) { + if (UNEXPECTED(!width)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "width must be specified", "phalcon/Image/Adapter/AbstractAdapter.zep", 303); + return; + } + zephir_read_property(&_9$$10, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_10$$10, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + height = (long) (zephir_safe_div_long_zval((zephir_get_numberval(&_9$$10) * width), &_10$$10)); + break; + } + if (master == 3) { + if (UNEXPECTED(!height)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "height must be specified", "phalcon/Image/Adapter/AbstractAdapter.zep", 312); + return; + } + zephir_read_property(&_11$$12, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_12$$12, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + width = (long) (zephir_safe_div_long_zval((zephir_get_numberval(&_11$$12) * height), &_12$$12)); + break; + } + if (master == 6) { + _13$$14 = !width; + if (!(_13$$14)) { + _13$$14 = !height; + } + if (UNEXPECTED(_13$$14)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "width and height must be specified", "phalcon/Image/Adapter/AbstractAdapter.zep", 323); + return; + } + zephir_read_property(&_14$$14, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_15$$14, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_16$$14); + div_function(&_16$$14, &_14$$14, &_15$$14); + ratio = zephir_get_numberval(&_16$$14); + if ((zephir_safe_div_long_long(width, height)) > ratio) { + zephir_read_property(&_17$$16, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_18$$16, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + height = (long) (zephir_safe_div_long_zval((zephir_get_numberval(&_17$$16) * width), &_18$$16)); + } else { + zephir_read_property(&_19$$17, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_20$$17, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + width = (long) (zephir_safe_div_long_zval((zephir_get_numberval(&_19$$17) * height), &_20$$17)); + } + break; + } + if (master == 1) { + if (!(width)) { + ZEPHIR_OBS_VAR(&_21$$19); + zephir_read_property(&_21$$19, this_ptr, ZEND_STRL("width"), PH_NOISY_CC); + width = zephir_get_intval(&_21$$19); + } + if (!(height)) { + ZEPHIR_OBS_VAR(&_22$$20); + zephir_read_property(&_22$$20, this_ptr, ZEND_STRL("height"), PH_NOISY_CC); + width = zephir_get_intval(&_22$$20); + } + break; + } + } while(0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_FUNCTION("igbinary_serialize", NULL, 0, &_0); + } + ZEPHIR_INIT_VAR(&_23); + ZVAL_LONG(&_24, width); + zephir_round(&_23, &_24, NULL, NULL); + ZVAL_LONG(&_25, 1); + ZEPHIR_CALL_FUNCTION(&_26, "max", NULL, 110, &_23, &_25); zephir_check_call_status(); - RETURN_MM(); + width = zephir_get_intval(&_26); + ZEPHIR_INIT_VAR(&_27); + ZVAL_LONG(&_25, height); + zephir_round(&_27, &_25, NULL, NULL); + ZVAL_LONG(&_28, 1); + ZEPHIR_CALL_FUNCTION(&_29, "max", NULL, 110, &_27, &_28); + zephir_check_call_status(); + height = zephir_get_intval(&_29); + ZVAL_LONG(&_28, width); + ZVAL_LONG(&_30, height); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processresize", NULL, 0, &_28, &_30); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Storage_Serializer_Igbinary, unserialize) +static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, rotate) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *data, data_sub, __$false, __$null, version, _0, _1, _2, _7, _3$$3, _4$$3, _5$$4, _6$$4; + zval *degrees_param = NULL, _0; + zend_long degrees, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&data_sub); - ZVAL_BOOL(&__$false, 0); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&version); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(data) + Z_PARAM_LONG(degrees) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &data); + zephir_fetch_params(1, 1, 0, °rees_param); + degrees = zephir_get_intval(degrees_param); - ZEPHIR_CALL_FUNCTION(&version, "phpversion", NULL, 86); - zephir_check_call_status(); - ZEPHIR_GLOBAL(warning).enable = zend_is_true(&__$false); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "8.0"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, ">="); - ZEPHIR_CALL_FUNCTION(&_2, "version_compare", NULL, 87, &version, &_0, &_1); - zephir_check_call_status(); - if (zephir_is_true(&_2)) { - ZEPHIR_INIT_VAR(&_3$$3); - ZEPHIR_INIT_NVAR(&_3$$3); - zephir_create_closure_ex(&_3$$3, NULL, phalcon_10__closure_ce, SL("__invoke")); - ZVAL_LONG(&_4$$3, 2); - ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_3$$3, &_4$$3); - zephir_check_call_status(); + if (degrees > 180) { + degrees %= 360; + if (degrees > 180) { + degrees -= 360; + } } else { - ZEPHIR_INIT_VAR(&_5$$4); - ZEPHIR_INIT_NVAR(&_5$$4); - zephir_create_closure_ex(&_5$$4, NULL, phalcon_11__closure_ce, SL("__invoke")); - ZVAL_LONG(&_6$$4, 2); - ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_5$$4, &_6$$4); - zephir_check_call_status(); + while (1) { + if (!(degrees < -180)) { + break; + } + degrees += 360; + } } - ZEPHIR_CALL_FUNCTION(&_7, "igbinary_unserialize", NULL, 0, data); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &_7); - ZEPHIR_CALL_FUNCTION(NULL, "restore_error_handler", NULL, 90); + ZVAL_LONG(&_0, degrees); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processrotate", NULL, 0, &_0); zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_GLOBAL(warning).enable)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &__$null); - } - ZEPHIR_MM_RESTORE(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Storage_Serializer_Json) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Serializer, Json, phalcon, storage_serializer_json, phalcon_storage_serializer_abstractserializer_ce, phalcon_storage_serializer_json_method_entry, 0); - - return SUCCESS; + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Storage_Serializer_Json, serialize) +static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, save) { - zval _4$$3; - zend_bool _1; - zval _0, _2, _5, _6, _8, _3$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_7 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zend_long quality, ZEPHIR_LAST_CALL_STATUS; + zval *file_param = NULL, *quality_param = NULL, _0$$3, _2; + zval file, _1$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&file); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_0$$3); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_8); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 2) + Z_PARAM_OPTIONAL + Z_PARAM_STR_OR_NULL(file) + Z_PARAM_LONG(quality) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); - - ZEPHIR_OBS_VAR(&_0); - zephir_read_property(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC); - _1 = Z_TYPE_P(&_0) == IS_OBJECT; - if (_1) { - ZEPHIR_OBS_VAR(&_2); - zephir_read_property(&_2, this_ptr, ZEND_STRL("data"), PH_NOISY_CC); - _1 = !(zephir_is_instance_of(&_2, SL("JsonSerializable"))); + zephir_fetch_params(1, 0, 2, &file_param, &quality_param); + if (!file_param) { + ZEPHIR_INIT_VAR(&file); + } else { + zephir_get_strval(&file, file_param); } - if (_1) { - ZEPHIR_INIT_VAR(&_3$$3); - object_init_ex(&_3$$3, spl_ce_InvalidArgumentException); - ZEPHIR_INIT_VAR(&_4$$3); - ZEPHIR_CONCAT_SS(&_4$$3, "Data for the JSON serializer cannot be of type 'object' ", "without implementing 'JsonSerializable'"); - ZEPHIR_CALL_METHOD(NULL, &_3$$3, "__construct", NULL, 40, &_4$$3); - zephir_check_call_status(); - zephir_throw_exception_debug(&_3$$3, "phalcon/Storage/Serializer/Json.zep", 28); - ZEPHIR_MM_RESTORE(); - return; + if (!quality_param) { + quality = -1; + } else { + quality = zephir_get_intval(quality_param); } - zephir_read_property(&_6, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_5, this_ptr, "isserializable", NULL, 0, &_6); - zephir_check_call_status(); - if (!(zephir_is_true(&_5))) { - RETURN_MM_MEMBER(getThis(), "data"); + + + if (!(!(ZEPHIR_IS_EMPTY(&file)))) { + ZEPHIR_OBS_VAR(&_0$$3); + zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("realpath"), PH_NOISY_CC); + zephir_cast_to_string(&_1$$3, &_0$$3); + ZEPHIR_CPY_WRT(&file, &_1$$3); } - zephir_read_property(&_8, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_helper_json_ce, "encode", &_7, 14, &_8); + ZVAL_LONG(&_2, quality); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processsave", NULL, 0, &file, &_2); zephir_check_call_status(); - RETURN_MM(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Storage_Serializer_Json, unserialize) +static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, sharpen) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL; - zval *data, data_sub, _0; + zval *amount_param = NULL, _0; + zend_long amount, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&data_sub); ZVAL_UNDEF(&_0); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(data) + Z_PARAM_LONG(amount) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &data); + zephir_fetch_params(1, 1, 0, &amount_param); + amount = zephir_get_intval(amount_param); - ZEPHIR_CALL_CE_STATIC(&_0, phalcon_helper_json_ce, "decode", &_1, 180, data); + if (amount > 100) { + amount = 100; + } else if (amount < 1) { + amount = 1; + } + ZVAL_LONG(&_0, amount); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processsharpen", NULL, 0, &_0); zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &_0); - ZEPHIR_MM_RESTORE(); -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Storage_Serializer_Msgpack) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Serializer, Msgpack, phalcon, storage_serializer_msgpack, phalcon_storage_serializer_abstractserializer_ce, phalcon_storage_serializer_msgpack_method_entry, 0); - - return SUCCESS; + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Storage_Serializer_Msgpack, serialize) +static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, text) { - zval _0, _1, _2; + zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zend_long opacity, size, ZEPHIR_LAST_CALL_STATUS; + zval *text_param = NULL, *offsetX = NULL, offsetX_sub, *offsetY = NULL, offsetY_sub, *opacity_param = NULL, *color_param = NULL, *size_param = NULL, *fontfile_param = NULL, __$false, colors, _1, _2, _3, _9, _10, _11, _12, _13, _14, _15, _4$$6, _5$$6, _6$$7, _7$$7, _8$$7; + zval text, color, fontfile; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&color); + ZVAL_UNDEF(&fontfile); + ZVAL_UNDEF(&offsetX_sub); + ZVAL_UNDEF(&offsetY_sub); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&colors); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_13); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_15); + ZVAL_UNDEF(&_4$$6); + ZVAL_UNDEF(&_5$$6); + ZVAL_UNDEF(&_6$$7); + ZVAL_UNDEF(&_7$$7); + ZVAL_UNDEF(&_8$$7); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 7) + Z_PARAM_STR(text) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL(offsetX) + Z_PARAM_ZVAL(offsetY) + Z_PARAM_LONG(opacity) + Z_PARAM_STR(color) + Z_PARAM_LONG(size) + Z_PARAM_STR_OR_NULL(fontfile) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 6, &text_param, &offsetX, &offsetY, &opacity_param, &color_param, &size_param, &fontfile_param); + zephir_get_strval(&text, text_param); + if (!offsetX) { + offsetX = &offsetX_sub; + offsetX = &__$false; + } + if (!offsetY) { + offsetY = &offsetY_sub; + offsetY = &__$false; + } + if (!opacity_param) { + opacity = 100; + } else { + opacity = zephir_get_intval(opacity_param); + } + if (!color_param) { + ZEPHIR_INIT_VAR(&color); + ZVAL_STRING(&color, "000000"); + } else { + zephir_get_strval(&color, color_param); + } + if (!size_param) { + size = 12; + } else { + size = zephir_get_intval(size_param); + } + if (!fontfile_param) { + ZEPHIR_INIT_VAR(&fontfile); + } else { + zephir_get_strval(&fontfile, fontfile_param); + } - zephir_read_property(&_1, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "isserializable", NULL, 0, &_1); - zephir_check_call_status(); - if (!(zephir_is_true(&_0))) { - RETURN_MM_MEMBER(getThis(), "data"); + + if (opacity < 0) { + opacity = 0; + } else { + if (opacity > 100) { + opacity = 100; + } } - zephir_read_property(&_2, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_FUNCTION("msgpack_pack", NULL, 0, &_2); + _0 = zephir_fast_strlen_ev(&color) > 1; + if (_0) { + ZVAL_LONG(&_1, 0); + ZVAL_LONG(&_2, 1); + ZEPHIR_INIT_VAR(&_3); + zephir_substr(&_3, &color, 0 , 1 , 0); + _0 = ZEPHIR_IS_STRING_IDENTICAL(&_3, "#"); + } + if (_0) { + ZVAL_LONG(&_4$$6, 1); + ZEPHIR_INIT_VAR(&_5$$6); + zephir_substr(&_5$$6, &color, 1 , 0, ZEPHIR_SUBSTR_NO_LENGTH); + zephir_get_strval(&color, &_5$$6); + } + if (zephir_fast_strlen_ev(&color) == 3) { + ZEPHIR_INIT_VAR(&_6$$7); + ZVAL_STRING(&_6$$7, "/./"); + ZEPHIR_INIT_VAR(&_7$$7); + ZVAL_STRING(&_7$$7, "$0$0"); + ZEPHIR_CALL_FUNCTION(&_8$$7, "preg_replace", NULL, 50, &_6$$7, &_7$$7, &color); + zephir_check_call_status(); + zephir_get_strval(&color, &_8$$7); + } + ZVAL_LONG(&_9, 2); + ZEPHIR_CALL_FUNCTION(&_10, "str_split", NULL, 108, &color, &_9); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_INIT_VAR(&_11); + ZVAL_STRING(&_11, "hexdec"); + ZEPHIR_CALL_FUNCTION(&colors, "array_map", NULL, 102, &_11, &_10); + zephir_check_call_status(); + zephir_array_fetch_long(&_12, &colors, 0, PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/AbstractAdapter.zep", 449); + zephir_array_fetch_long(&_13, &colors, 1, PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/AbstractAdapter.zep", 450); + zephir_array_fetch_long(&_14, &colors, 2, PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/AbstractAdapter.zep", 451); + ZVAL_LONG(&_9, opacity); + ZVAL_LONG(&_15, size); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processtext", NULL, 0, &text, offsetX, offsetY, &_9, &_12, &_13, &_14, &_15, &fontfile); + zephir_check_call_status(); + RETURN_THIS(); } -static PHP_METHOD(Phalcon_Storage_Serializer_Msgpack, unserialize) +static PHP_METHOD(Phalcon_Image_Adapter_AbstractAdapter, watermark) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *data, data_sub, __$false, __$null, version, _0, _1, _2, _7, _3$$3, _4$$3, _5$$4, _6$$4; + zend_long offsetX, offsetY, opacity, ZEPHIR_LAST_CALL_STATUS, tmp = 0; + zval *watermark, watermark_sub, *offsetX_param = NULL, *offsetY_param = NULL, *opacity_param = NULL, _0, _1, _2, _3, _4, _5; zval *this_ptr = getThis(); - ZVAL_UNDEF(&data_sub); - ZVAL_BOOL(&__$false, 0); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&version); + ZVAL_UNDEF(&watermark_sub); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_START(1, 4) + Z_PARAM_OBJECT_OF_CLASS(watermark, phalcon_image_adapter_adapterinterface_ce) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(offsetX) + Z_PARAM_LONG(offsetY) + Z_PARAM_LONG(opacity) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &data); + zephir_fetch_params(1, 1, 3, &watermark, &offsetX_param, &offsetY_param, &opacity_param); + if (!offsetX_param) { + offsetX = 0; + } else { + offsetX = zephir_get_intval(offsetX_param); + } + if (!offsetY_param) { + offsetY = 0; + } else { + offsetY = zephir_get_intval(offsetY_param); + } + if (!opacity_param) { + opacity = 100; + } else { + opacity = zephir_get_intval(opacity_param); + } - ZEPHIR_CALL_FUNCTION(&version, "phpversion", NULL, 86); - zephir_check_call_status(); - ZEPHIR_GLOBAL(warning).enable = zend_is_true(&__$false); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "8.0"); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, ">="); - ZEPHIR_CALL_FUNCTION(&_2, "version_compare", NULL, 87, &version, &_0, &_1); + zephir_read_property(&_0, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, watermark, "getwidth", NULL, 0); zephir_check_call_status(); - if (zephir_is_true(&_2)) { - ZEPHIR_INIT_VAR(&_3$$3); - ZEPHIR_INIT_NVAR(&_3$$3); - zephir_create_closure_ex(&_3$$3, NULL, phalcon_12__closure_ce, SL("__invoke")); - ZVAL_LONG(&_4$$3, 2); - ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_3$$3, &_4$$3); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_VAR(&_5$$4); - ZEPHIR_INIT_NVAR(&_5$$4); - zephir_create_closure_ex(&_5$$4, NULL, phalcon_13__closure_ce, SL("__invoke")); - ZVAL_LONG(&_6$$4, 2); - ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_5$$4, &_6$$4); - zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_2); + zephir_sub_function(&_2, &_0, &_1); + tmp = zephir_get_numberval(&_2); + if (offsetX < 0) { + offsetX = 0; + } else if (offsetX > tmp) { + offsetX = tmp; } - ZEPHIR_CALL_FUNCTION(&_7, "msgpack_unpack", NULL, 0, data); - zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &_7); - ZEPHIR_CALL_FUNCTION(NULL, "restore_error_handler", NULL, 90); + zephir_read_property(&_0, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_1, watermark, "getheight", NULL, 0); zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_GLOBAL(warning).enable)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &__$null); + ZEPHIR_INIT_VAR(&_3); + zephir_sub_function(&_3, &_0, &_1); + tmp = zephir_get_numberval(&_3); + if (offsetY < 0) { + offsetY = 0; + } else if (offsetY > tmp) { + offsetY = tmp; } - ZEPHIR_MM_RESTORE(); + if (opacity < 0) { + opacity = 0; + } else if (opacity > 100) { + opacity = 100; + } + ZVAL_LONG(&_0, offsetX); + ZVAL_LONG(&_4, offsetY); + ZVAL_LONG(&_5, opacity); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "processwatermark", NULL, 0, watermark, &_0, &_4, &_5); + zephir_check_call_status(); + RETURN_THIS(); } @@ -203205,42 +203159,27 @@ static PHP_METHOD(Phalcon_Storage_Serializer_Msgpack, unserialize) -ZEPHIR_INIT_CLASS(Phalcon_Storage_Serializer_None) +ZEPHIR_INIT_CLASS(Phalcon_Image_Adapter_AdapterInterface) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Serializer, None, phalcon, storage_serializer_none, phalcon_storage_serializer_abstractserializer_ce, phalcon_storage_serializer_none_method_entry, 0); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Image\\Adapter, AdapterInterface, phalcon, image_adapter_adapterinterface, phalcon_image_adapter_adapterinterface_method_entry); return SUCCESS; } -static PHP_METHOD(Phalcon_Storage_Serializer_None, serialize) -{ - zval *this_ptr = getThis(); - - - - RETURN_MEMBER(getThis(), "data"); -} - -static PHP_METHOD(Phalcon_Storage_Serializer_None, unserialize) -{ - zval *data, data_sub; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&data_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(data) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &data); - - - zephir_update_property_zval(this_ptr, ZEND_STRL("data"), data); -} - +ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, background); +ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, blur); +ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, crop); +ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, flip); +ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, mask); +ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, pixelate); +ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, reflection); +ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, render); +ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, resize); +ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, rotate); +ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, save); +ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, sharpen); +ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, text); +ZEPHIR_DOC_METHOD(Phalcon_Image_Adapter_AdapterInterface, watermark); @@ -203251,552 +203190,623 @@ static PHP_METHOD(Phalcon_Storage_Serializer_None, unserialize) -ZEPHIR_INIT_CLASS(Phalcon_Storage_Serializer_Php) +ZEPHIR_INIT_CLASS(Phalcon_Image_Adapter_Gd) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Storage\\Serializer, Php, phalcon, storage_serializer_php, phalcon_storage_serializer_abstractserializer_ce, phalcon_storage_serializer_php_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Image\\Adapter, Gd, phalcon, image_adapter_gd, phalcon_image_adapter_abstractadapter_ce, phalcon_image_adapter_gd_method_entry, 0); + zend_declare_property_bool(phalcon_image_adapter_gd_ce, SL("checked"), 0, ZEND_ACC_PROTECTED|ZEND_ACC_STATIC); return SUCCESS; } -static PHP_METHOD(Phalcon_Storage_Serializer_Php, serialize) +static PHP_METHOD(Phalcon_Image_Adapter_Gd, __construct) { - zval _0, _1, _2; + zend_bool _25$$13; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zend_long width, height, ZEPHIR_LAST_CALL_STATUS; + zval *file_param = NULL, *width_param = NULL, *height_param = NULL, __$true, imageinfo, _0, _1, _2$$4, _3$$4, _4$$4, _9$$4, _24$$4, _5$$5, _6$$5, _7$$5, _8$$5, _10$$6, _11$$6, _12$$7, _13$$7, _14$$8, _15$$8, _16$$9, _17$$9, _18$$10, _19$$10, _20$$11, _21$$12, _22$$12, _23$$12, _29$$13, _30$$13, _31$$13, _32$$13, _33$$13, _34$$13, _26$$14, _27$$14, _28$$14; + zval file; zval *this_ptr = getThis(); + ZVAL_UNDEF(&file); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&imageinfo); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_1, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "isserializable", NULL, 0, &_1); - zephir_check_call_status(); - if (!(zephir_is_true(&_0))) { - RETURN_MM_MEMBER(getThis(), "data"); - } - zephir_read_property(&_2, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_RETURN_CALL_FUNCTION("serialize", NULL, 13, &_2); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Storage_Serializer_Php, unserialize) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *data, data_sub, __$false, __$null, version, _0, _1$$4, _2$$4, _3$$4, _8$$4, _4$$6, _5$$6, _6$$7, _7$$7; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&data_sub); - ZVAL_BOOL(&__$false, 0); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(&version); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1$$4); ZVAL_UNDEF(&_2$$4); ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_8$$4); - ZVAL_UNDEF(&_4$$6); - ZVAL_UNDEF(&_5$$6); - ZVAL_UNDEF(&_6$$7); - ZVAL_UNDEF(&_7$$7); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&_24$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_7$$5); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_10$$6); + ZVAL_UNDEF(&_11$$6); + ZVAL_UNDEF(&_12$$7); + ZVAL_UNDEF(&_13$$7); + ZVAL_UNDEF(&_14$$8); + ZVAL_UNDEF(&_15$$8); + ZVAL_UNDEF(&_16$$9); + ZVAL_UNDEF(&_17$$9); + ZVAL_UNDEF(&_18$$10); + ZVAL_UNDEF(&_19$$10); + ZVAL_UNDEF(&_20$$11); + ZVAL_UNDEF(&_21$$12); + ZVAL_UNDEF(&_22$$12); + ZVAL_UNDEF(&_23$$12); + ZVAL_UNDEF(&_29$$13); + ZVAL_UNDEF(&_30$$13); + ZVAL_UNDEF(&_31$$13); + ZVAL_UNDEF(&_32$$13); + ZVAL_UNDEF(&_33$$13); + ZVAL_UNDEF(&_34$$13); + ZVAL_UNDEF(&_26$$14); + ZVAL_UNDEF(&_27$$14); + ZVAL_UNDEF(&_28$$14); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(data) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(file) + Z_PARAM_OPTIONAL + Z_PARAM_LONG_OR_NULL(width, is_null_true) + Z_PARAM_LONG_OR_NULL(height, is_null_true) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &data); + zephir_fetch_params(1, 1, 2, &file_param, &width_param, &height_param); + if (UNEXPECTED(Z_TYPE_P(file_param) != IS_STRING && Z_TYPE_P(file_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'file' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(file_param) == IS_STRING)) { + zephir_get_strval(&file, file_param); + } else { + ZEPHIR_INIT_VAR(&file); + } + if (!width_param) { + width = 0; + } else { + width = zephir_get_intval(width_param); + } + if (!height_param) { + height = 0; + } else { + height = zephir_get_intval(height_param); + } - ZEPHIR_CALL_METHOD(&_0, this_ptr, "isserializable", NULL, 0, data); - zephir_check_call_status(); + zephir_read_static_property_ce(&_0, phalcon_image_adapter_gd_ce, SL("checked"), PH_NOISY_CC | PH_READONLY); if (!(zephir_is_true(&_0))) { - zephir_update_property_zval(this_ptr, ZEND_STRL("data"), data); - } else { - if (Z_TYPE_P(data) != IS_STRING) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(spl_ce_InvalidArgumentException, "Data for the unserializer must of type string", "phalcon/Storage/Serializer/Php.zep", 43); - return; - } - ZEPHIR_CALL_FUNCTION(&version, "phpversion", NULL, 86); + ZEPHIR_CALL_SELF(NULL, "check", NULL, 0); zephir_check_call_status(); - ZEPHIR_GLOBAL(warning).enable = zend_is_true(&__$false); - ZEPHIR_INIT_VAR(&_1$$4); - ZVAL_STRING(&_1$$4, "8.0"); - ZEPHIR_INIT_VAR(&_2$$4); - ZVAL_STRING(&_2$$4, ">="); - ZEPHIR_CALL_FUNCTION(&_3$$4, "version_compare", NULL, 87, &version, &_1$$4, &_2$$4); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("file"), &file); + zephir_read_property(&_1, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); + if ((zephir_file_exists(&_1) == SUCCESS)) { + zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&_3$$4, "realpath", NULL, 94, &_2$$4); zephir_check_call_status(); - if (zephir_is_true(&_3$$4)) { - ZEPHIR_INIT_VAR(&_4$$6); - ZEPHIR_INIT_NVAR(&_4$$6); - zephir_create_closure_ex(&_4$$6, NULL, phalcon_14__closure_ce, SL("__invoke")); - ZVAL_LONG(&_5$$6, 8); - ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_4$$6, &_5$$6); - zephir_check_call_status(); - } else { - ZEPHIR_INIT_VAR(&_6$$7); - ZEPHIR_INIT_NVAR(&_6$$7); - zephir_create_closure_ex(&_6$$7, NULL, phalcon_15__closure_ce, SL("__invoke")); - ZVAL_LONG(&_7$$7, 8); - ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_6$$7, &_7$$7); + zephir_update_property_zval(this_ptr, ZEND_STRL("realpath"), &_3$$4); + zephir_read_property(&_4$$4, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&imageinfo, "getimagesize", NULL, 363, &_4$$4); + zephir_check_call_status(); + if (zephir_is_true(&imageinfo)) { + zephir_array_fetch_long(&_5$$5, &imageinfo, 0, PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/Gd.zep", 38); + zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_5$$5); + zephir_array_fetch_long(&_6$$5, &imageinfo, 1, PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/Gd.zep", 39); + zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_6$$5); + zephir_array_fetch_long(&_7$$5, &imageinfo, 2, PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/Gd.zep", 40); + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_7$$5); + zephir_array_fetch_string(&_8$$5, &imageinfo, SL("mime"), PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/Gd.zep", 41); + zephir_update_property_zval(this_ptr, ZEND_STRL("mime"), &_8$$5); + } + zephir_read_property(&_9$$4, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); + do { + if (ZEPHIR_IS_LONG(&_9$$4, 1)) { + zephir_read_property(&_10$$6, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&_11$$6, "imagecreatefromgif", NULL, 364, &_10$$6); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &_11$$6); + break; + } + if (ZEPHIR_IS_LONG(&_9$$4, 2)) { + zephir_read_property(&_12$$7, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&_13$$7, "imagecreatefromjpeg", NULL, 365, &_12$$7); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &_13$$7); + break; + } + if (ZEPHIR_IS_LONG(&_9$$4, 3)) { + zephir_read_property(&_14$$8, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&_15$$8, "imagecreatefrompng", NULL, 366, &_14$$8); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &_15$$8); + break; + } + if (ZEPHIR_IS_LONG(&_9$$4, 15)) { + zephir_read_property(&_16$$9, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&_17$$9, "imagecreatefromwbmp", NULL, 367, &_16$$9); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &_17$$9); + break; + } + if (ZEPHIR_IS_LONG(&_9$$4, 16)) { + zephir_read_property(&_18$$10, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&_19$$10, "imagecreatefromxbm", NULL, 368, &_18$$10); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &_19$$10); + break; + } + zephir_read_property(&_20$$11, this_ptr, ZEND_STRL("mime"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_20$$11)) { + ZEPHIR_INIT_VAR(&_21$$12); + object_init_ex(&_21$$12, phalcon_image_exception_ce); + zephir_read_property(&_22$$12, this_ptr, ZEND_STRL("mime"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_23$$12); + ZEPHIR_CONCAT_SVS(&_23$$12, "Installed GD does not support ", &_22$$12, " images"); + ZEPHIR_CALL_METHOD(NULL, &_21$$12, "__construct", NULL, 8, &_23$$12); + zephir_check_call_status(); + zephir_throw_exception_debug(&_21$$12, "phalcon/Image/Adapter/Gd.zep", 69); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "Installed GD does not support such images", "phalcon/Image/Adapter/Gd.zep", 74); + return; + } while(0); + + zephir_read_property(&_24$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(NULL, "imagesavealpha", NULL, 369, &_24$$4, &__$true); + zephir_check_call_status(); + } else { + _25$$13 = !width; + if (!(_25$$13)) { + _25$$13 = !height; + } + if (UNEXPECTED(_25$$13)) { + ZEPHIR_INIT_VAR(&_26$$14); + object_init_ex(&_26$$14, phalcon_image_exception_ce); + zephir_read_property(&_27$$14, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_28$$14); + ZEPHIR_CONCAT_SV(&_28$$14, "Failed to create image from file ", &_27$$14); + ZEPHIR_CALL_METHOD(NULL, &_26$$14, "__construct", NULL, 8, &_28$$14); zephir_check_call_status(); + zephir_throw_exception_debug(&_26$$14, "phalcon/Image/Adapter/Gd.zep", 83); + ZEPHIR_MM_RESTORE(); + return; } - ZEPHIR_CALL_FUNCTION(&_8$$4, "unserialize", NULL, 15, data); + ZVAL_LONG(&_29$$13, width); + ZVAL_LONG(&_30$$13, height); + ZEPHIR_CALL_FUNCTION(&_31$$13, "imagecreatetruecolor", NULL, 370, &_29$$13, &_30$$13); zephir_check_call_status(); - zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &_8$$4); - ZEPHIR_CALL_FUNCTION(NULL, "restore_error_handler", NULL, 90); + zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &_31$$13); + zephir_read_property(&_29$$13, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(NULL, "imagealphablending", NULL, 371, &_29$$13, &__$true); zephir_check_call_status(); - if (UNEXPECTED(ZEPHIR_GLOBAL(warning).enable)) { - zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &__$null); - } + zephir_read_property(&_30$$13, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(NULL, "imagesavealpha", NULL, 369, &_30$$13, &__$true); + zephir_check_call_status(); + zephir_read_property(&_32$$13, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); + zephir_update_property_zval(this_ptr, ZEND_STRL("realpath"), &_32$$13); + ZEPHIR_INIT_ZVAL_NREF(_33$$13); + ZVAL_LONG(&_33$$13, width); + zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_33$$13); + ZEPHIR_INIT_ZVAL_NREF(_33$$13); + ZVAL_LONG(&_33$$13, height); + zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_33$$13); + ZEPHIR_INIT_ZVAL_NREF(_33$$13); + ZVAL_LONG(&_33$$13, 3); + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_33$$13); + ZEPHIR_INIT_VAR(&_34$$13); + ZEPHIR_INIT_NVAR(&_34$$13); + ZVAL_STRING(&_34$$13, "image/png"); + zephir_update_property_zval(this_ptr, ZEND_STRL("mime"), &_34$$13); } ZEPHIR_MM_RESTORE(); } - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Storage_Serializer_SerializerInterface) -{ - ZEPHIR_REGISTER_INTERFACE(Phalcon\\Storage\\Serializer, SerializerInterface, phalcon, storage_serializer_serializerinterface, phalcon_storage_serializer_serializerinterface_method_entry); - - zend_class_implements(phalcon_storage_serializer_serializerinterface_ce, 1, zend_ce_serializable); - return SUCCESS; -} - -ZEPHIR_DOC_METHOD(Phalcon_Storage_Serializer_SerializerInterface, getData); -ZEPHIR_DOC_METHOD(Phalcon_Storage_Serializer_SerializerInterface, setData); - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Support_Debug) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Support, Debug, phalcon, support_debug, phalcon_support_debug_method_entry, 0); - - zend_declare_property_null(phalcon_support_debug_ce, SL("blacklist"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_support_debug_ce, SL("data"), ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_support_debug_ce, SL("hideDocumentRoot"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_support_debug_ce, SL("isActive"), 0, ZEND_ACC_PROTECTED|ZEND_ACC_STATIC); - zend_declare_property_bool(phalcon_support_debug_ce, SL("showBackTrace"), 1, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_support_debug_ce, SL("showFileFragment"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_bool(phalcon_support_debug_ce, SL("showFiles"), 1, ZEND_ACC_PROTECTED); - zend_declare_property_string(phalcon_support_debug_ce, SL("uri"), "https://assets.phalcon.io/debug/5.0.x/", ZEND_ACC_PROTECTED); - phalcon_support_debug_ce->create_object = zephir_init_properties_Phalcon_Support_Debug; - - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Support_Debug, clearVars) +static PHP_METHOD(Phalcon_Image_Adapter_Gd, __destruct) { - zval _0; + zval image, _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&image); ZVAL_UNDEF(&_0); ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(&_0); - array_init(&_0); - zephir_update_property_zval(this_ptr, ZEND_STRL("data"), &_0); - RETURN_THIS(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&image, &_0); + if (Z_TYPE_P(&image) == IS_RESOURCE) { + ZEPHIR_CALL_FUNCTION(NULL, "imagedestroy", NULL, 372, &image); + zephir_check_call_status(); + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_Debug, debugVar) +static PHP_METHOD(Phalcon_Image_Adapter_Gd, check) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval __$true, version, _0, _1, _2, _3, _6, _4$$5, _5$$5; zend_long ZEPHIR_LAST_CALL_STATUS; - zval key; - zval *varz, varz_sub, *key_param = NULL, _1, _2; zval *this_ptr = getThis(); - ZVAL_UNDEF(&varz_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&version); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(varz) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(key) - ZEND_PARSE_PARAMETERS_END(); -#endif + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_5$$5); ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &varz, &key_param); - if (!key_param) { - ZEPHIR_INIT_VAR(&key); - } else { - zephir_get_strval(&key, key_param); - } - - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 3, 0); - zephir_array_fast_append(&_0, varz); - ZEPHIR_CALL_FUNCTION(&_1, "debug_backtrace", NULL, 0); + zephir_read_static_property_ce(&_0, phalcon_image_adapter_gd_ce, SL("checked"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_0)) { + RETURN_MM_BOOL(1); + } + if (UNEXPECTED(!((zephir_function_exists_ex(ZEND_STRL("gd_info")) == SUCCESS)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "GD is either not installed or not enabled, check your configuration", "phalcon/Image/Adapter/Gd.zep", 121); + return; + } + ZEPHIR_CALL_SELF(&version, "getversion", NULL, 0); zephir_check_call_status(); - zephir_array_fast_append(&_0, &_1); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "2.0.1"); ZEPHIR_INIT_VAR(&_2); - zephir_time(&_2); - zephir_array_fast_append(&_0, &_2); - zephir_update_property_array_append(this_ptr, SL("data"), &_0); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Support_Debug, getCssSources) -{ - zval uri, sources, _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&uri); - ZVAL_UNDEF(&sources); - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - zephir_read_property(&_0, this_ptr, ZEND_STRL("uri"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&uri, &_0); - ZEPHIR_INIT_VAR(&sources); - ZEPHIR_CONCAT_SVSSVSSVS(&sources, "", "", ""); - RETURN_CCTOR(&sources); + ZVAL_STRING(&_2, ">="); + ZEPHIR_CALL_FUNCTION(&_3, "version_compare", NULL, 87, &version, &_1, &_2); + zephir_check_call_status(); + if (UNEXPECTED(!zephir_is_true(&_3))) { + ZEPHIR_INIT_VAR(&_4$$5); + object_init_ex(&_4$$5, phalcon_image_exception_ce); + ZEPHIR_INIT_VAR(&_5$$5); + ZEPHIR_CONCAT_SV(&_5$$5, "Phalcon\\Image\\Adapter\\GD requires GD version '2.0.1' or greater, you have ", &version); + ZEPHIR_CALL_METHOD(NULL, &_4$$5, "__construct", NULL, 8, &_5$$5); + zephir_check_call_status(); + zephir_throw_exception_debug(&_4$$5, "phalcon/Image/Adapter/Gd.zep", 129); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_update_static_property_ce(phalcon_image_adapter_gd_ce, ZEND_STRL("checked"), &__$true); + zephir_read_static_property_ce(&_6, phalcon_image_adapter_gd_ce, SL("checked"), PH_NOISY_CC | PH_READONLY); + RETURN_CTOR(&_6); } -static PHP_METHOD(Phalcon_Support_Debug, getJsSources) +static PHP_METHOD(Phalcon_Image_Adapter_Gd, getVersion) { - zval uri, sources, _0; + zval version, info, matches, _0, _1, _2$$5, _3$$5, _4$$5, _5$$5; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&uri); - ZVAL_UNDEF(&sources); + ZVAL_UNDEF(&version); + ZVAL_UNDEF(&info); + ZVAL_UNDEF(&matches); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$5); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_5$$5); ZEPHIR_MM_GROW(); - zephir_read_property(&_0, this_ptr, ZEND_STRL("uri"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&uri, &_0); - ZEPHIR_INIT_VAR(&sources); - ZEPHIR_CONCAT_SVSSVSSVSSVSSVS(&sources, "", "", "", "", ""); - RETURN_CCTOR(&sources); + if (UNEXPECTED(!((zephir_function_exists_ex(ZEND_STRL("gd_info")) == SUCCESS)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "GD is either not installed or not enabled, check your configuration", "phalcon/Image/Adapter/Gd.zep", 144); + return; + } + ZEPHIR_INIT_VAR(&version); + ZVAL_NULL(&version); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "GD_VERSION"); + ZEPHIR_CALL_FUNCTION(&_1, "defined", NULL, 127, &_0); + zephir_check_call_status(); + if (zephir_is_true(&_1)) { + ZEPHIR_INIT_NVAR(&version); + ZEPHIR_GET_CONSTANT(&version, "GD_VERSION"); + } else { + ZEPHIR_CALL_FUNCTION(&info, "gd_info", NULL, 373); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&matches); + ZVAL_NULL(&matches); + zephir_array_fetch_string(&_2$$5, &info, SL("GD Version"), PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/Gd.zep", 155); + ZEPHIR_INIT_VAR(&_3$$5); + ZVAL_STRING(&_3$$5, "/\\d+\\.\\d+(?:\\.\\d+)?/"); + ZEPHIR_INIT_VAR(&_4$$5); + ZEPHIR_INIT_VAR(&_5$$5); + ZVAL_STRING(&_5$$5, "/\\d+\\.\\d+(?:\\.\\d+)?/"); + zephir_preg_match(&_4$$5, &_5$$5, &_2$$5, &matches, 0, 0 , 0 ); + if (zephir_is_true(&_4$$5)) { + ZEPHIR_OBS_NVAR(&version); + zephir_array_fetch_long(&version, &matches, 0, PH_NOISY, "phalcon/Image/Adapter/Gd.zep", 156); + } + } + RETURN_CCTOR(&version); } -static PHP_METHOD(Phalcon_Support_Debug, getVersion) +static PHP_METHOD(Phalcon_Image_Adapter_Gd, processBackground) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL; - zval __$false, link, version, _0, _1, _2, _3, _4; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval *r_param = NULL, *g_param = NULL, *b_param = NULL, *opacity_param = NULL, __$true, background, color, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12$$3; + zend_long r, g, b, opacity, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&link); - ZVAL_UNDEF(&version); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&background); + ZVAL_UNDEF(&color); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_12$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(4, 4) + Z_PARAM_LONG(r) + Z_PARAM_LONG(g) + Z_PARAM_LONG(b) + Z_PARAM_LONG(opacity) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 4, 0, &r_param, &g_param, &b_param, &opacity_param); + r = zephir_get_intval(r_param); + g = zephir_get_intval(g_param); + b = zephir_get_intval(b_param); + opacity = zephir_get_intval(opacity_param); - ZEPHIR_INIT_VAR(&version); - object_init_ex(&version, phalcon_support_version_ce); - if (zephir_has_constructor(&version)) { - ZEPHIR_CALL_METHOD(NULL, &version, "__construct", NULL, 0); - zephir_check_call_status(); - } - ZEPHIR_INIT_VAR(&link); - zephir_create_array(&link, 4, 0); - ZVAL_LONG(&_1, 0); - ZEPHIR_CALL_METHOD(&_0, &version, "getpart", NULL, 0, &_1); + ZEPHIR_INIT_VAR(&_0); + ZVAL_DOUBLE(&_1, ((zephir_safe_div_long_long((opacity * 127), 100)) - (double) (127))); + ZEPHIR_CALL_FUNCTION(&_2, "abs", NULL, 238, &_1); zephir_check_call_status(); - ZVAL_LONG(&_1, 1); - ZEPHIR_CALL_METHOD(&_2, &version, "getpart", NULL, 0, &_1); + zephir_round(&_0, &_2, NULL, NULL); + opacity = zephir_get_intval(&_0); + zephir_read_property(&_1, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_3, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&background, this_ptr, "processcreate", NULL, 0, &_1, &_3); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_3); - ZEPHIR_CONCAT_SVSVS(&_3, "https://docs.phalcon.io/", &_0, ".", &_2, "/en/"); - zephir_array_update_string(&link, SL("action"), &_3, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_4, &version, "get", NULL, 0); + ZVAL_LONG(&_4, r); + ZVAL_LONG(&_5, g); + ZVAL_LONG(&_6, b); + ZVAL_LONG(&_7, opacity); + ZEPHIR_CALL_FUNCTION(&color, "imagecolorallocatealpha", NULL, 374, &background, &_4, &_5, &_6, &_7); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(NULL, "imagealphablending", NULL, 371, &background, &__$true); zephir_check_call_status(); - zephir_array_update_string(&link, SL("text"), &_4, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&link, SL("local"), &__$false, PH_COPY | PH_SEPARATE); - add_assoc_stringl_ex(&link, SL("target"), SL("_new")); - ZEPHIR_CALL_CE_STATIC(&_4, phalcon_tag_ce, "linkto", &_5, 0, &link); + zephir_read_property(&_4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_5, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_6, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_7, 0); + ZVAL_LONG(&_8, 0); + ZVAL_LONG(&_9, 0); + ZVAL_LONG(&_10, 0); + ZEPHIR_CALL_FUNCTION(&_11, "imagecopy", NULL, 375, &background, &_4, &_7, &_8, &_9, &_10, &_5, &_6); zephir_check_call_status(); - ZEPHIR_CONCAT_SVS(return_value, "
Phalcon Framework ", &_4, "
"); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Support_Debug, halt) -{ - zval *this_ptr = getThis(); - - - - ZEPHIR_THROW_EXCEPTION_DEBUG_STRW(phalcon_support_exception_ce, "Halted request", "phalcon/Support/Debug.zep", 153); - return; + if (zephir_is_true(&_11)) { + zephir_read_property(&_12$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(NULL, "imagedestroy", NULL, 372, &_12$$3); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &background); + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_Debug, listen) +static PHP_METHOD(Phalcon_Image_Adapter_Gd, processBlur) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *exceptions_param = NULL, *lowSeverity_param = NULL; - zend_bool exceptions, lowSeverity; + zephir_fcall_cache_entry *_2 = NULL; + zval *radius_param = NULL, _0$$3, _1$$3; + zend_long radius, ZEPHIR_LAST_CALL_STATUS, i = 0; zval *this_ptr = getThis(); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_BOOL(exceptions) - Z_PARAM_BOOL(lowSeverity) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(radius) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &exceptions_param, &lowSeverity_param); - if (!exceptions_param) { - exceptions = 1; - } else { - exceptions = zephir_get_boolval(exceptions_param); - } - if (!lowSeverity_param) { - lowSeverity = 0; - } else { - lowSeverity = zephir_get_boolval(lowSeverity_param); - } + zephir_fetch_params(1, 1, 0, &radius_param); + radius = zephir_get_intval(radius_param); - if (exceptions) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "listenexceptions", NULL, 0); - zephir_check_call_status(); - } - if (lowSeverity) { - ZEPHIR_CALL_METHOD(NULL, this_ptr, "listenlowseverity", NULL, 0); + i = 0; + while (1) { + if (!(i < radius)) { + break; + } + zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_1$$3, 7); + ZEPHIR_CALL_FUNCTION(NULL, "imagefilter", &_2, 376, &_0$$3, &_1$$3); zephir_check_call_status(); + i++; } - RETURN_THIS(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_Debug, listenExceptions) +static PHP_METHOD(Phalcon_Image_Adapter_Gd, processCreate) { - zval _1; - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval *width_param = NULL, *height_param = NULL, __$false, __$true, image, _0, _1; + zend_long width, height, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_BOOL(&__$false, 0); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&image); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_LONG(width) + Z_PARAM_LONG(height) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &width_param, &height_param); + width = zephir_get_intval(width_param); + height = zephir_get_intval(height_param); - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 2, 0); - zephir_array_fast_append(&_0, this_ptr); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "onUncaughtException"); - zephir_array_fast_append(&_0, &_1); - ZEPHIR_CALL_FUNCTION(NULL, "set_exception_handler", NULL, 0, &_0); - zephir_check_call_status(); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Support_Debug, listenLowSeverity) -{ - zval _1; - zval _0, _2; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_1); - - - ZEPHIR_MM_GROW(); - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 2, 0); - zephir_array_fast_append(&_0, this_ptr); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "onUncaughtLowSeverity"); - zephir_array_fast_append(&_0, &_1); - ZEPHIR_CALL_FUNCTION(NULL, "set_error_handler", NULL, 88, &_0); + ZVAL_LONG(&_0, width); + ZVAL_LONG(&_1, height); + ZEPHIR_CALL_FUNCTION(&image, "imagecreatetruecolor", NULL, 370, &_0, &_1); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_2); - zephir_create_array(&_2, 2, 0); - zephir_array_fast_append(&_2, this_ptr); - ZEPHIR_INIT_NVAR(&_1); - ZVAL_STRING(&_1, "onUncaughtException"); - zephir_array_fast_append(&_2, &_1); - ZEPHIR_CALL_FUNCTION(NULL, "set_exception_handler", NULL, 0, &_2); + ZEPHIR_CALL_FUNCTION(NULL, "imagealphablending", NULL, 371, &image, &__$false); zephir_check_call_status(); - RETURN_THIS(); + ZEPHIR_CALL_FUNCTION(NULL, "imagesavealpha", NULL, 369, &image, &__$true); + zephir_check_call_status(); + RETURN_CCTOR(&image); } -static PHP_METHOD(Phalcon_Support_Debug, onUncaughtException) +static PHP_METHOD(Phalcon_Image_Adapter_Gd, processCrop) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *exception, exception_sub, __$true, __$false, obLevel, _0, _2, _1$$4; + zval *width_param = NULL, *height_param = NULL, *offsetX_param = NULL, *offsetY_param = NULL, image, rect, _0, _1, _2, _3, _4; + zend_long width, height, offsetX, offsetY, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&exception_sub); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); - ZVAL_UNDEF(&obLevel); + ZVAL_UNDEF(&image); + ZVAL_UNDEF(&rect); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(exception, zend_ce_throwable) + ZEND_PARSE_PARAMETERS_START(4, 4) + Z_PARAM_LONG(width) + Z_PARAM_LONG(height) + Z_PARAM_LONG(offsetX) + Z_PARAM_LONG(offsetY) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &exception); + zephir_fetch_params(1, 4, 0, &width_param, &height_param, &offsetX_param, &offsetY_param); + width = zephir_get_intval(width_param); + height = zephir_get_intval(height_param); + offsetX = zephir_get_intval(offsetX_param); + offsetY = zephir_get_intval(offsetY_param); - ZEPHIR_CALL_FUNCTION(&obLevel, "ob_get_level", NULL, 0); + ZEPHIR_INIT_VAR(&rect); + zephir_create_array(&rect, 4, 0); + ZEPHIR_INIT_VAR(&_0); + ZVAL_LONG(&_0, offsetX); + zephir_array_update_string(&rect, SL("x"), &_0, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_LONG(&_0, offsetY); + zephir_array_update_string(&rect, SL("y"), &_0, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_LONG(&_0, width); + zephir_array_update_string(&rect, SL("width"), &_0, PH_COPY | PH_SEPARATE); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_LONG(&_0, height); + zephir_array_update_string(&rect, SL("height"), &_0, PH_COPY | PH_SEPARATE); + zephir_read_property(&_1, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&image, "imagecrop", NULL, 377, &_1, &rect); zephir_check_call_status(); - if (ZEPHIR_GT_LONG(&obLevel, 0)) { - ZEPHIR_CALL_FUNCTION(NULL, "ob_end_clean", NULL, 497); - zephir_check_call_status(); - } - zephir_read_static_property_ce(&_0, phalcon_support_debug_ce, SL("isActive"), PH_NOISY_CC | PH_READONLY); - if (zephir_is_true(&_0)) { - ZEPHIR_CALL_METHOD(&_1$$4, exception, "getmessage", NULL, 0); - zephir_check_call_status(); - zend_print_zval(&_1$$4, 0); - RETURN_MM_NULL(); - } - zephir_update_static_property_ce(phalcon_support_debug_ce, ZEND_STRL("isActive"), &__$true); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "renderhtml", NULL, 0, exception); + zephir_read_property(&_2, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(NULL, "imagedestroy", NULL, 372, &_2); zephir_check_call_status(); - zend_print_zval(&_2, 0); - zephir_update_static_property_ce(phalcon_support_debug_ce, ZEND_STRL("isActive"), &__$false); - RETURN_MM_BOOL(1); + zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &image); + ZEPHIR_CALL_FUNCTION(&_3, "imagesx", NULL, 378, &image); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_3); + ZEPHIR_CALL_FUNCTION(&_4, "imagesy", NULL, 379, &image); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_4); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_Debug, onUncaughtLowSeverity) +static PHP_METHOD(Phalcon_Image_Adapter_Gd, processFlip) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *severity, severity_sub, *message, message_sub, *file, file_sub, *line, line_sub, *context, context_sub, _0, _1, _2$$3, _3$$3; + zval *direction_param = NULL, _0$$3, _1$$3, _2$$4, _3$$4; + zend_long direction, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&severity_sub); - ZVAL_UNDEF(&message_sub); - ZVAL_UNDEF(&file_sub); - ZVAL_UNDEF(&line_sub); - ZVAL_UNDEF(&context_sub); - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(5, 5) - Z_PARAM_ZVAL(severity) - Z_PARAM_ZVAL(message) - Z_PARAM_ZVAL(file) - Z_PARAM_ZVAL(line) - Z_PARAM_ZVAL(context) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(direction) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 5, 0, &severity, &message, &file, &line, &context); + zephir_fetch_params(1, 1, 0, &direction_param); + direction = zephir_get_intval(direction_param); - ZEPHIR_CALL_FUNCTION(&_0, "error_reporting", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_1); - zephir_bitwise_and_function(&_1, &_0, severity); - if (UNEXPECTED(zephir_is_true(&_1))) { - ZEPHIR_INIT_VAR(&_2$$3); - object_init_ex(&_2$$3, zend_ce_error_exception); - ZVAL_LONG(&_3$$3, 0); - ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", NULL, 0, message, &_3$$3, severity, file, line); + if (direction == 11) { + zephir_read_property(&_0$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_1$$3, 1); + ZEPHIR_CALL_FUNCTION(NULL, "imageflip", NULL, 380, &_0$$3, &_1$$3); + zephir_check_call_status(); + } else { + zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_3$$4, 2); + ZEPHIR_CALL_FUNCTION(NULL, "imageflip", NULL, 380, &_2$$4, &_3$$4); zephir_check_call_status(); - zephir_throw_exception_debug(&_2$$3, "phalcon/Support/Debug.zep", 249); - ZEPHIR_MM_RESTORE(); - return; } ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_Debug, renderHtml) +static PHP_METHOD(Phalcon_Image_Adapter_Gd, processMask) { - zend_string *_12$$3, *_24$$3, *_40$$3, *_53$$3, *_62$$21; - zend_ulong _11$$3, _23$$3, _39$$3, _52$$3, _61$$21; - zval _7$$3, _16$$3, _34$$3, _48$$3, _58$$21; + zend_bool _9; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_14 = NULL, *_17 = NULL, *_28 = NULL, *_43 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *exception, exception_sub, _REQUEST, __$true, _SERVER, blacklist, className, dataVar, dataVars, escapedMessage, html, keyFile, keyRequest, keyServer, keyVar, n, showBackTrace, traceItem, value, _0, _1, _2, _3, _4, _5, _6, _69, _70, _8$$3, *_9$$3, _10$$3, _18$$3, _19$$3, _20$$3, *_21$$3, _22$$3, _35$$3, _36$$3, *_37$$3, _38$$3, _49$$3, *_50$$3, _51$$3, _56$$3, _57$$3, _13$$5, _15$$6, _25$$7, _26$$9, _27$$10, _29$$10, _30$$11, _31$$13, _32$$14, _33$$14, _41$$15, _42$$16, _44$$16, _45$$17, _46$$18, _47$$18, _54$$19, _55$$20, *_59$$21, _60$$21, _63$$22, _64$$22, _65$$22, _66$$23, _67$$23, _68$$23; + zephir_fcall_cache_entry *_23 = NULL, *_24 = NULL, *_29 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS, mask_width = 0, mask_height = 0, x = 0, y = 0, alpha = 0; + zval *mask, mask_sub, __$true, maskImage, newimage, tempImage, color, index, r, g, b, _0, _1, _2, _3, _4, _5, _6, _7, _8, _10$$3, _11$$3, _12$$3, _13$$3, _14$$3, _15$$3, _16$$3, _17$$3, _18$$3, _19$$3, _20$$4, _21$$5, _22$$5, _27$$5, _28$$5, _25$$6, _26$$6; zval *this_ptr = getThis(); - ZVAL_UNDEF(&exception_sub); - ZVAL_UNDEF(&_REQUEST); + ZVAL_UNDEF(&mask_sub); ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&_SERVER); - ZVAL_UNDEF(&blacklist); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&dataVar); - ZVAL_UNDEF(&dataVars); - ZVAL_UNDEF(&escapedMessage); - ZVAL_UNDEF(&html); - ZVAL_UNDEF(&keyFile); - ZVAL_UNDEF(&keyRequest); - ZVAL_UNDEF(&keyServer); - ZVAL_UNDEF(&keyVar); - ZVAL_UNDEF(&n); - ZVAL_UNDEF(&showBackTrace); - ZVAL_UNDEF(&traceItem); - ZVAL_UNDEF(&value); + ZVAL_UNDEF(&maskImage); + ZVAL_UNDEF(&newimage); + ZVAL_UNDEF(&tempImage); + ZVAL_UNDEF(&color); + ZVAL_UNDEF(&index); + ZVAL_UNDEF(&r); + ZVAL_UNDEF(&g); + ZVAL_UNDEF(&b); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); @@ -203804,1405 +203814,1142 @@ static PHP_METHOD(Phalcon_Support_Debug, renderHtml) ZVAL_UNDEF(&_4); ZVAL_UNDEF(&_5); ZVAL_UNDEF(&_6); - ZVAL_UNDEF(&_69); - ZVAL_UNDEF(&_70); - ZVAL_UNDEF(&_8$$3); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); ZVAL_UNDEF(&_10$$3); + ZVAL_UNDEF(&_11$$3); + ZVAL_UNDEF(&_12$$3); + ZVAL_UNDEF(&_13$$3); + ZVAL_UNDEF(&_14$$3); + ZVAL_UNDEF(&_15$$3); + ZVAL_UNDEF(&_16$$3); + ZVAL_UNDEF(&_17$$3); ZVAL_UNDEF(&_18$$3); ZVAL_UNDEF(&_19$$3); - ZVAL_UNDEF(&_20$$3); - ZVAL_UNDEF(&_22$$3); - ZVAL_UNDEF(&_35$$3); - ZVAL_UNDEF(&_36$$3); - ZVAL_UNDEF(&_38$$3); - ZVAL_UNDEF(&_49$$3); - ZVAL_UNDEF(&_51$$3); - ZVAL_UNDEF(&_56$$3); - ZVAL_UNDEF(&_57$$3); - ZVAL_UNDEF(&_13$$5); - ZVAL_UNDEF(&_15$$6); - ZVAL_UNDEF(&_25$$7); - ZVAL_UNDEF(&_26$$9); - ZVAL_UNDEF(&_27$$10); - ZVAL_UNDEF(&_29$$10); - ZVAL_UNDEF(&_30$$11); - ZVAL_UNDEF(&_31$$13); - ZVAL_UNDEF(&_32$$14); - ZVAL_UNDEF(&_33$$14); - ZVAL_UNDEF(&_41$$15); - ZVAL_UNDEF(&_42$$16); - ZVAL_UNDEF(&_44$$16); - ZVAL_UNDEF(&_45$$17); - ZVAL_UNDEF(&_46$$18); - ZVAL_UNDEF(&_47$$18); - ZVAL_UNDEF(&_54$$19); - ZVAL_UNDEF(&_55$$20); - ZVAL_UNDEF(&_60$$21); - ZVAL_UNDEF(&_63$$22); - ZVAL_UNDEF(&_64$$22); - ZVAL_UNDEF(&_65$$22); - ZVAL_UNDEF(&_66$$23); - ZVAL_UNDEF(&_67$$23); - ZVAL_UNDEF(&_68$$23); - ZVAL_UNDEF(&_7$$3); - ZVAL_UNDEF(&_16$$3); - ZVAL_UNDEF(&_34$$3); - ZVAL_UNDEF(&_48$$3); - ZVAL_UNDEF(&_58$$21); + ZVAL_UNDEF(&_20$$4); + ZVAL_UNDEF(&_21$$5); + ZVAL_UNDEF(&_22$$5); + ZVAL_UNDEF(&_27$$5); + ZVAL_UNDEF(&_28$$5); + ZVAL_UNDEF(&_25$$6); + ZVAL_UNDEF(&_26$$6); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_OBJECT_OF_CLASS(exception, zend_ce_throwable) + Z_PARAM_OBJECT_OF_CLASS(mask, phalcon_image_adapter_adapterinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_get_global(&_SERVER, SL("_SERVER")); - zephir_get_global(&_REQUEST, SL("_REQUEST")); - zephir_fetch_params(1, 1, 0, &exception); + zephir_fetch_params(1, 1, 0, &mask); - ZEPHIR_INIT_VAR(&className); - zephir_get_class(&className, exception, 0); - ZEPHIR_CALL_METHOD(&_0, exception, "getmessage", NULL, 0); + ZEPHIR_CALL_METHOD(&_0, mask, "render", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&escapedMessage, this_ptr, "escapestring", NULL, 0, &_0); + ZEPHIR_CALL_FUNCTION(&maskImage, "imagecreatefromstring", NULL, 381, &_0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getcsssources", NULL, 0); + ZEPHIR_CALL_FUNCTION(&_1, "imagesx", NULL, 378, &maskImage); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&html); - ZEPHIR_CONCAT_SSVSVSVS(&html, "", "", &className, ": ", &escapedMessage, "", &_1, ""); - ZEPHIR_CALL_METHOD(&_2, this_ptr, "getversion", NULL, 0); + mask_width = zephir_get_intval(&_1); + ZEPHIR_CALL_FUNCTION(&_2, "imagesy", NULL, 379, &maskImage); zephir_check_call_status(); - zephir_concat_self(&html, &_2); - ZEPHIR_CALL_METHOD(&_3, exception, "getfile", NULL, 0); + mask_height = zephir_get_intval(&_2); + alpha = 127; + ZEPHIR_CALL_FUNCTION(NULL, "imagesavealpha", NULL, 369, &maskImage, &__$true); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_4, exception, "getline", NULL, 0); + zephir_read_property(&_3, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_4, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&newimage, this_ptr, "processcreate", NULL, 0, &_3, &_4); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_5); - ZEPHIR_CONCAT_SSSVSVSSVSVSS(&_5, "
", "
", "

", &className, ": ", &escapedMessage, "

", "", &_3, " (", &_4, ")", "
"); - zephir_concat_self(&html, &_5); - zephir_read_property(&_6, this_ptr, ZEND_STRL("showBackTrace"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&showBackTrace, &_6); - if (zephir_is_true(&showBackTrace)) { - ZEPHIR_OBS_VAR(&dataVars); - zephir_read_property(&dataVars, this_ptr, ZEND_STRL("data"), PH_NOISY_CC); - ZEPHIR_INIT_VAR(&_7$$3); - ZEPHIR_CONCAT_SSSSSS(&_7$$3, "
")); - zephir_concat_self_str(&html, SL("
")); - ZEPHIR_CALL_METHOD(&_8$$3, exception, "gettrace", NULL, 0); + ZEPHIR_CALL_FUNCTION(NULL, "imagesavealpha", NULL, 369, &newimage, &__$true); + zephir_check_call_status(); + ZVAL_LONG(&_5, 0); + ZVAL_LONG(&_6, 0); + ZVAL_LONG(&_7, 0); + ZVAL_LONG(&_8, alpha); + ZEPHIR_CALL_FUNCTION(&color, "imagecolorallocatealpha", NULL, 374, &newimage, &_5, &_6, &_7, &_8); + zephir_check_call_status(); + ZVAL_LONG(&_5, 0); + ZVAL_LONG(&_6, 0); + ZEPHIR_CALL_FUNCTION(NULL, "imagefill", NULL, 382, &newimage, &_5, &_6, &color); + zephir_check_call_status(); + zephir_read_property(&_5, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + _9 = !ZEPHIR_IS_LONG(&_5, mask_width); + if (!(_9)) { + zephir_read_property(&_6, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + _9 = !ZEPHIR_IS_LONG(&_6, mask_height); + } + if (_9) { + zephir_read_property(&_10$$3, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_11$$3, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&tempImage, "imagecreatetruecolor", NULL, 370, &_10$$3, &_11$$3); zephir_check_call_status(); - zephir_is_iterable(&_8$$3, 0, "phalcon/Support/Debug.zep", 330); - if (Z_TYPE_P(&_8$$3) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_8$$3), _11$$3, _12$$3, _9$$3) - { - ZEPHIR_INIT_NVAR(&n); - if (_12$$3 != NULL) { - ZVAL_STR_COPY(&n, _12$$3); - } else { - ZVAL_LONG(&n, _11$$3); - } - ZEPHIR_INIT_NVAR(&traceItem); - ZVAL_COPY(&traceItem, _9$$3); - ZEPHIR_CALL_METHOD(&_13$$5, this_ptr, "showtraceitem", &_14, 0, &n, &traceItem); - zephir_check_call_status(); - zephir_concat_self(&html, &_13$$5); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_8$$3, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_10$$3, &_8$$3, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_10$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&n, &_8$$3, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&traceItem, &_8$$3, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_15$$6, this_ptr, "showtraceitem", &_14, 0, &n, &traceItem); - zephir_check_call_status(); - zephir_concat_self(&html, &_15$$6); - ZEPHIR_CALL_METHOD(NULL, &_8$$3, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&traceItem); - ZEPHIR_INIT_NVAR(&n); - zephir_concat_self_str(&html, SL("
")); - ZEPHIR_INIT_VAR(&_16$$3); - ZEPHIR_CONCAT_SSS(&_16$$3, "
", "", ""); - zephir_concat_self(&html, &_16$$3); - zephir_read_property(&_18$$3, this_ptr, ZEND_STRL("blacklist"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_VAR(&_19$$3); - array_init(&_19$$3); - ZEPHIR_INIT_VAR(&_20$$3); - ZVAL_STRING(&_20$$3, "request"); - ZEPHIR_CALL_CE_STATIC(&blacklist, phalcon_helper_arr_ce, "get", &_17, 16, &_18$$3, &_20$$3, &_19$$3); + zephir_read_property(&_12$$3, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_13$$3, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_14$$3, 0); + ZVAL_LONG(&_15$$3, 0); + ZVAL_LONG(&_16$$3, 0); + ZVAL_LONG(&_17$$3, 0); + ZVAL_LONG(&_18$$3, mask_width); + ZVAL_LONG(&_19$$3, mask_height); + ZEPHIR_CALL_FUNCTION(NULL, "imagecopyresampled", NULL, 383, &tempImage, &maskImage, &_14$$3, &_15$$3, &_16$$3, &_17$$3, &_12$$3, &_13$$3, &_18$$3, &_19$$3); zephir_check_call_status(); - zephir_is_iterable(&_REQUEST, 0, "phalcon/Support/Debug.zep", 350); - if (Z_TYPE_P(&_REQUEST) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_REQUEST), _23$$3, _24$$3, _21$$3) - { - ZEPHIR_INIT_NVAR(&keyRequest); - if (_24$$3 != NULL) { - ZVAL_STR_COPY(&keyRequest, _24$$3); - } else { - ZVAL_LONG(&keyRequest, _23$$3); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _21$$3); - ZEPHIR_INIT_NVAR(&_25$$7); - zephir_fast_strtolower(&_25$$7, &keyRequest); - if (1 != zephir_array_isset(&blacklist, &_25$$7)) { - if (Z_TYPE_P(&value) != IS_ARRAY) { - ZEPHIR_INIT_NVAR(&_26$$9); - ZEPHIR_CONCAT_SVSVS(&_26$$9, ""); - zephir_concat_self(&html, &_26$$9); - } else { - ZEPHIR_CALL_FUNCTION(&_27$$10, "print_r", &_28, 0, &value, &__$true); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_29$$10); - ZEPHIR_CONCAT_SVSVS(&_29$$10, ""); - zephir_concat_self(&html, &_29$$10); - } - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_REQUEST, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_22$$3, &_REQUEST, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_22$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&keyRequest, &_REQUEST, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &_REQUEST, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_30$$11); - zephir_fast_strtolower(&_30$$11, &keyRequest); - if (1 != zephir_array_isset(&blacklist, &_30$$11)) { - if (Z_TYPE_P(&value) != IS_ARRAY) { - ZEPHIR_INIT_NVAR(&_31$$13); - ZEPHIR_CONCAT_SVSVS(&_31$$13, ""); - zephir_concat_self(&html, &_31$$13); - } else { - ZEPHIR_CALL_FUNCTION(&_32$$14, "print_r", &_28, 0, &value, &__$true); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_33$$14); - ZEPHIR_CONCAT_SVSVS(&_33$$14, ""); - zephir_concat_self(&html, &_33$$14); - } - } - ZEPHIR_CALL_METHOD(NULL, &_REQUEST, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&keyRequest); - zephir_concat_self_str(&html, SL("
KeyValue
", &keyRequest, "", &value, "
", &keyRequest, "", &_27$$10, "
", &keyRequest, "", &value, "
", &keyRequest, "", &_32$$14, "
")); - ZEPHIR_INIT_VAR(&_34$$3); - ZEPHIR_CONCAT_SSS(&_34$$3, "
", "", ""); - zephir_concat_self(&html, &_34$$3); - zephir_read_property(&_35$$3, this_ptr, ZEND_STRL("blacklist"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_INIT_NVAR(&_20$$3); - array_init(&_20$$3); - ZEPHIR_INIT_VAR(&_36$$3); - ZVAL_STRING(&_36$$3, "server"); - ZEPHIR_CALL_CE_STATIC(&blacklist, phalcon_helper_arr_ce, "get", &_17, 16, &_35$$3, &_36$$3, &_20$$3); + ZEPHIR_CALL_FUNCTION(NULL, "imagedestroy", NULL, 372, &maskImage); zephir_check_call_status(); - zephir_is_iterable(&_SERVER, 0, "phalcon/Support/Debug.zep", 366); - if (Z_TYPE_P(&_SERVER) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_SERVER), _39$$3, _40$$3, _37$$3) - { - ZEPHIR_INIT_NVAR(&keyServer); - if (_40$$3 != NULL) { - ZVAL_STR_COPY(&keyServer, _40$$3); - } else { - ZVAL_LONG(&keyServer, _39$$3); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _37$$3); - ZEPHIR_INIT_NVAR(&_41$$15); - zephir_fast_strtolower(&_41$$15, &keyServer); - if (1 != zephir_array_isset(&blacklist, &_41$$15)) { - ZEPHIR_CALL_METHOD(&_42$$16, this_ptr, "getvardump", &_43, 0, &value); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_44$$16); - ZEPHIR_CONCAT_SVSVS(&_44$$16, ""); - zephir_concat_self(&html, &_44$$16); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_SERVER, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_38$$3, &_SERVER, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_38$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&keyServer, &_SERVER, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &_SERVER, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_45$$17); - zephir_fast_strtolower(&_45$$17, &keyServer); - if (1 != zephir_array_isset(&blacklist, &_45$$17)) { - ZEPHIR_CALL_METHOD(&_46$$18, this_ptr, "getvardump", &_43, 0, &value); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_47$$18); - ZEPHIR_CONCAT_SVSVS(&_47$$18, ""); - zephir_concat_self(&html, &_47$$18); - } - ZEPHIR_CALL_METHOD(NULL, &_SERVER, "next", NULL, 0); - zephir_check_call_status(); - } + ZEPHIR_CPY_WRT(&maskImage, &tempImage); + } + x = 0; + while (1) { + zephir_read_property(&_7, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + if (!(ZEPHIR_GT_LONG(&_7, x))) { + break; } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&keyServer); - zephir_concat_self_str(&html, SL("
KeyValue
", &keyServer, "", &_42$$16, "
", &keyServer, "", &_46$$18, "
")); - ZEPHIR_INIT_VAR(&_48$$3); - ZEPHIR_CONCAT_SSS(&_48$$3, "
", "", ""); - zephir_concat_self(&html, &_48$$3); - ZEPHIR_CALL_FUNCTION(&_49$$3, "get_included_files", NULL, 0); - zephir_check_call_status(); - zephir_is_iterable(&_49$$3, 0, "phalcon/Support/Debug.zep", 379); - if (Z_TYPE_P(&_49$$3) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_49$$3), _52$$3, _53$$3, _50$$3) - { - ZEPHIR_INIT_NVAR(&keyFile); - if (_53$$3 != NULL) { - ZVAL_STR_COPY(&keyFile, _53$$3); - } else { - ZVAL_LONG(&keyFile, _52$$3); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _50$$3); - ZEPHIR_INIT_NVAR(&_54$$19); - ZEPHIR_CONCAT_SVSVS(&_54$$19, ""); - zephir_concat_self(&html, &_54$$19); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_49$$3, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_51$$3, &_49$$3, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_51$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&keyFile, &_49$$3, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &_49$$3, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_55$$20); - ZEPHIR_CONCAT_SVSVS(&_55$$20, ""); - zephir_concat_self(&html, &_55$$20); - ZEPHIR_CALL_METHOD(NULL, &_49$$3, "next", NULL, 0); - zephir_check_call_status(); + y = 0; + while (1) { + zephir_read_property(&_20$$4, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + if (!(ZEPHIR_GT_LONG(&_20$$4, y))) { + break; } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&keyFile); - zephir_concat_self_str(&html, SL("
#Path
", &keyFile, "", &value, "
", &keyFile, "", &value, "
")); - ZEPHIR_CALL_FUNCTION(&_56$$3, "memory_get_usage", NULL, 0, &__$true); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_57$$3); - ZEPHIR_CONCAT_SSSVSS(&_57$$3, "
", "", "", "
Memory
Usage", &_56$$3, "
"); - zephir_concat_self(&html, &_57$$3); - if (!(ZEPHIR_IS_EMPTY(&dataVars))) { - ZEPHIR_INIT_VAR(&_58$$21); - ZEPHIR_CONCAT_SSS(&_58$$21, "
", "", ""); - zephir_concat_self(&html, &_58$$21); - zephir_is_iterable(&dataVars, 0, "phalcon/Support/Debug.zep", 401); - if (Z_TYPE_P(&dataVars) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&dataVars), _61$$21, _62$$21, _59$$21) - { - ZEPHIR_INIT_NVAR(&keyVar); - if (_62$$21 != NULL) { - ZVAL_STR_COPY(&keyVar, _62$$21); - } else { - ZVAL_LONG(&keyVar, _61$$21); - } - ZEPHIR_INIT_NVAR(&dataVar); - ZVAL_COPY(&dataVar, _59$$21); - zephir_array_fetch_long(&_64$$22, &dataVar, 0, PH_NOISY | PH_READONLY, "phalcon/Support/Debug.zep", 398); - ZEPHIR_CALL_METHOD(&_63$$22, this_ptr, "getvardump", &_43, 0, &_64$$22); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_65$$22); - ZEPHIR_CONCAT_SVSVS(&_65$$22, ""); - zephir_concat_self(&html, &_65$$22); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &dataVars, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_60$$21, &dataVars, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_60$$21)) { - break; - } - ZEPHIR_CALL_METHOD(&keyVar, &dataVars, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&dataVar, &dataVars, "current", NULL, 0); - zephir_check_call_status(); - zephir_array_fetch_long(&_67$$23, &dataVar, 0, PH_NOISY | PH_READONLY, "phalcon/Support/Debug.zep", 398); - ZEPHIR_CALL_METHOD(&_66$$23, this_ptr, "getvardump", &_43, 0, &_67$$23); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_68$$23); - ZEPHIR_CONCAT_SVSVS(&_68$$23, ""); - zephir_concat_self(&html, &_68$$23); - ZEPHIR_CALL_METHOD(NULL, &dataVars, "next", NULL, 0); - zephir_check_call_status(); - } + ZVAL_LONG(&_21$$5, x); + ZVAL_LONG(&_22$$5, y); + ZEPHIR_CALL_FUNCTION(&index, "imagecolorat", &_23, 384, &maskImage, &_21$$5, &_22$$5); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&color, "imagecolorsforindex", &_24, 385, &maskImage, &index); + zephir_check_call_status(); + if (zephir_array_isset_string(&color, SL("red"))) { + zephir_array_fetch_string(&_25$$6, &color, SL("red"), PH_NOISY | PH_READONLY, "phalcon/Image/Adapter/Gd.zep", 291); + ZVAL_DOUBLE(&_26$$6, zephir_safe_div_zval_long(&_25$$6, 2)); + alpha = (127 - zephir_get_intval(&_26$$6)); } - ZEPHIR_INIT_NVAR(&dataVar); - ZEPHIR_INIT_NVAR(&keyVar); - zephir_concat_self_str(&html, SL("
KeyValue
", &keyVar, "", &_63$$22, "
", &keyVar, "", &_66$$23, "
")); + zephir_read_property(&_21$$5, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_22$$5, x); + ZVAL_LONG(&_27$$5, y); + ZEPHIR_CALL_FUNCTION(&index, "imagecolorat", &_23, 384, &_21$$5, &_22$$5, &_27$$5); + zephir_check_call_status(); + zephir_read_property(&_22$$5, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&color, "imagecolorsforindex", &_24, 385, &_22$$5, &index); + zephir_check_call_status(); + ZEPHIR_OBS_NVAR(&r); + zephir_array_fetch_string(&r, &color, SL("red"), PH_NOISY, "phalcon/Image/Adapter/Gd.zep", 296); + ZEPHIR_OBS_NVAR(&g); + zephir_array_fetch_string(&g, &color, SL("green"), PH_NOISY, "phalcon/Image/Adapter/Gd.zep", 297); + ZEPHIR_OBS_NVAR(&b); + zephir_array_fetch_string(&b, &color, SL("blue"), PH_NOISY, "phalcon/Image/Adapter/Gd.zep", 298); + ZVAL_LONG(&_27$$5, alpha); + ZEPHIR_CALL_FUNCTION(&color, "imagecolorallocatealpha", NULL, 374, &newimage, &r, &g, &b, &_27$$5); + zephir_check_call_status(); + ZVAL_LONG(&_27$$5, x); + ZVAL_LONG(&_28$$5, y); + ZEPHIR_CALL_FUNCTION(NULL, "imagesetpixel", &_29, 386, &newimage, &_27$$5, &_28$$5, &color); + zephir_check_call_status(); + y++; } - zephir_concat_self_str(&html, SL("
")); + x++; } - ZEPHIR_CALL_METHOD(&_69, this_ptr, "getjssources", NULL, 0); + zephir_read_property(&_8, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(NULL, "imagedestroy", NULL, 372, &_8); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_70); - ZEPHIR_CONCAT_VS(&_70, &_69, "
"); - zephir_concat_self(&html, &_70); - RETURN_CCTOR(&html); + ZEPHIR_CALL_FUNCTION(NULL, "imagedestroy", NULL, 372, &maskImage); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &newimage); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_Debug, setBlacklist) +static PHP_METHOD(Phalcon_Image_Adapter_Gd, processPixelate) { + zend_bool _3$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *blacklist_param = NULL, area, result, subArray, value, _1, _2, *_3, _4, _7, *_8, _9, _5$$3, _6$$4, _10$$5, _11$$6; - zval blacklist; + zephir_fcall_cache_entry *_8 = NULL, *_12 = NULL; + zval *amount_param = NULL, color, _0, _1$$3, _2$$4, _4$$4, _5$$4, _6$$4, _7$$4, _9$$4, _10$$4, _11$$4; + zend_long amount, ZEPHIR_LAST_CALL_STATUS, x = 0, y = 0, x1 = 0, y1 = 0, x2 = 0, y2 = 0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&blacklist); - ZVAL_UNDEF(&area); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&subArray); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_4); - ZVAL_UNDEF(&_7); - ZVAL_UNDEF(&_9); - ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&color); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$4); ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_10$$5); - ZVAL_UNDEF(&_11$$6); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&_10$$4); + ZVAL_UNDEF(&_11$$4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(blacklist) + Z_PARAM_LONG(amount) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &blacklist_param); - zephir_get_arrval(&blacklist, blacklist_param); + zephir_fetch_params(1, 1, 0, &amount_param); + amount = zephir_get_intval(amount_param); - ZEPHIR_INIT_VAR(&_1); - array_init(&_1); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "request"); - ZEPHIR_CALL_CE_STATIC(&area, phalcon_helper_arr_ce, "get", &_0, 16, &blacklist, &_2, &_1); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&subArray); - array_init(&subArray); - ZEPHIR_INIT_VAR(&result); - array_init(&result); - zephir_is_iterable(&area, 0, "phalcon/Support/Debug.zep", 431); - if (Z_TYPE_P(&area) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&area), _3) - { - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _3); - ZEPHIR_INIT_NVAR(&_5$$3); - zephir_fast_strtolower(&_5$$3, &value); - ZEPHIR_CPY_WRT(&value, &_5$$3); - ZEPHIR_INIT_NVAR(&_5$$3); - ZVAL_LONG(&_5$$3, 1); - zephir_array_update_zval(&subArray, &value, &_5$$3, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &area, "rewind", NULL, 0); - zephir_check_call_status(); + x = 0; + while (1) { + zephir_read_property(&_0, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + if (!(ZEPHIR_GT_LONG(&_0, x))) { + break; + } + y = 0; while (1) { - ZEPHIR_CALL_METHOD(&_4, &area, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_4)) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + if (!(ZEPHIR_GT_LONG(&_1$$3, y))) { break; } - ZEPHIR_CALL_METHOD(&value, &area, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_6$$4); - zephir_fast_strtolower(&_6$$4, &value); - ZEPHIR_CPY_WRT(&value, &_6$$4); - ZEPHIR_INIT_NVAR(&_6$$4); - ZVAL_LONG(&_6$$4, 1); - zephir_array_update_zval(&subArray, &value, &_6$$4, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &area, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - zephir_array_update_string(&result, SL("request"), &subArray, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - array_init(&_2); - ZEPHIR_INIT_VAR(&_7); - ZVAL_STRING(&_7, "server"); - ZEPHIR_CALL_CE_STATIC(&area, phalcon_helper_arr_ce, "get", &_0, 16, &blacklist, &_7, &_2); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&subArray); - array_init(&subArray); - zephir_is_iterable(&area, 0, "phalcon/Support/Debug.zep", 440); - if (Z_TYPE_P(&area) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&area), _8) - { - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _8); - ZEPHIR_INIT_NVAR(&_10$$5); - zephir_fast_strtolower(&_10$$5, &value); - ZEPHIR_CPY_WRT(&value, &_10$$5); - ZEPHIR_INIT_NVAR(&_10$$5); - ZVAL_LONG(&_10$$5, 1); - zephir_array_update_zval(&subArray, &value, &_10$$5, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &area, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_9, &area, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_9)) { + x1 = (x + zephir_safe_div_long_long(amount, 2)); + y1 = (y + zephir_safe_div_long_long(amount, 2)); + zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + _3$$4 = ZEPHIR_LE_LONG(&_2$$4, x1); + if (!(_3$$4)) { + zephir_read_property(&_4$$4, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + _3$$4 = ZEPHIR_LE_LONG(&_4$$4, y1); + } + if (_3$$4) { break; } - ZEPHIR_CALL_METHOD(&value, &area, "current", NULL, 0); + zephir_read_property(&_5$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_6$$4, x1); + ZVAL_LONG(&_7$$4, y1); + ZEPHIR_CALL_FUNCTION(&color, "imagecolorat", &_8, 384, &_5$$4, &_6$$4, &_7$$4); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_11$$6); - zephir_fast_strtolower(&_11$$6, &value); - ZEPHIR_CPY_WRT(&value, &_11$$6); - ZEPHIR_INIT_NVAR(&_11$$6); - ZVAL_LONG(&_11$$6, 1); - zephir_array_update_zval(&subArray, &value, &_11$$6, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &area, "next", NULL, 0); + x2 = (x + amount); + y2 = (y + amount); + zephir_read_property(&_6$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_7$$4, x); + ZVAL_LONG(&_9$$4, y); + ZVAL_LONG(&_10$$4, x2); + ZVAL_LONG(&_11$$4, y2); + ZEPHIR_CALL_FUNCTION(NULL, "imagefilledrectangle", &_12, 387, &_6$$4, &_7$$4, &_9$$4, &_10$$4, &_11$$4, &color); zephir_check_call_status(); + y += amount; } + x += amount; } - ZEPHIR_INIT_NVAR(&value); - zephir_array_update_string(&result, SL("server"), &subArray, PH_COPY | PH_SEPARATE); - zephir_update_property_zval(this_ptr, ZEND_STRL("blacklist"), &result); - RETURN_THIS(); -} - -static PHP_METHOD(Phalcon_Support_Debug, setShowBackTrace) -{ - zval *showBackTrace_param = NULL, __$true, __$false; - zend_bool showBackTrace; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(showBackTrace) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &showBackTrace_param); - showBackTrace = zephir_get_boolval(showBackTrace_param); - - - if (showBackTrace) { - zephir_update_property_zval(this_ptr, ZEND_STRL("showBackTrace"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("showBackTrace"), &__$false); - } - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Support_Debug, setShowFileFragment) -{ - zval *showFileFragment_param = NULL, __$true, __$false; - zend_bool showFileFragment; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(showFileFragment) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &showFileFragment_param); - showFileFragment = zephir_get_boolval(showFileFragment_param); - - - if (showFileFragment) { - zephir_update_property_zval(this_ptr, ZEND_STRL("showFileFragment"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("showFileFragment"), &__$false); - } - RETURN_THISW(); -} - -static PHP_METHOD(Phalcon_Support_Debug, setShowFiles) -{ - zval *showFiles_param = NULL, __$true, __$false; - zend_bool showFiles; - zval *this_ptr = getThis(); - - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(showFiles) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - zephir_fetch_params_without_memory_grow(1, 0, &showFiles_param); - showFiles = zephir_get_boolval(showFiles_param); - - - if (showFiles) { - zephir_update_property_zval(this_ptr, ZEND_STRL("showFiles"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("showFiles"), &__$false); - } - RETURN_THISW(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_Debug, setUri) +static PHP_METHOD(Phalcon_Image_Adapter_Gd, processReflection) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *uri_param = NULL; - zval uri; + zephir_fcall_cache_entry *_25 = NULL; + zend_bool fadeIn; + zval *height_param = NULL, *opacity_param = NULL, *fadeIn_param = NULL, reflection, line, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _27, _28, _11$$5, _12$$5, _17$$5, _18$$5, _19$$5, _20$$5, _21$$5, _22$$5, _23$$5, _24$$5, _26$$5, _13$$6, _14$$6, _15$$7, _16$$7; + zend_long height, opacity, ZEPHIR_LAST_CALL_STATUS, stepping = 0, offset = 0, src_y = 0, dst_y = 0, dst_opacity = 0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&uri); + ZVAL_UNDEF(&reflection); + ZVAL_UNDEF(&line); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_27); + ZVAL_UNDEF(&_28); + ZVAL_UNDEF(&_11$$5); + ZVAL_UNDEF(&_12$$5); + ZVAL_UNDEF(&_17$$5); + ZVAL_UNDEF(&_18$$5); + ZVAL_UNDEF(&_19$$5); + ZVAL_UNDEF(&_20$$5); + ZVAL_UNDEF(&_21$$5); + ZVAL_UNDEF(&_22$$5); + ZVAL_UNDEF(&_23$$5); + ZVAL_UNDEF(&_24$$5); + ZVAL_UNDEF(&_26$$5); + ZVAL_UNDEF(&_13$$6); + ZVAL_UNDEF(&_14$$6); + ZVAL_UNDEF(&_15$$7); + ZVAL_UNDEF(&_16$$7); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(uri) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_LONG(height) + Z_PARAM_LONG(opacity) + Z_PARAM_BOOL(fadeIn) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &uri_param); - if (UNEXPECTED(Z_TYPE_P(uri_param) != IS_STRING && Z_TYPE_P(uri_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'uri' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(uri_param) == IS_STRING)) { - zephir_get_strval(&uri, uri_param); - } else { - ZEPHIR_INIT_VAR(&uri); - } + zephir_fetch_params(1, 3, 0, &height_param, &opacity_param, &fadeIn_param); + height = zephir_get_intval(height_param); + opacity = zephir_get_intval(opacity_param); + fadeIn = zephir_get_boolval(fadeIn_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("uri"), &uri); - RETURN_THIS(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_DOUBLE(&_1, ((zephir_safe_div_long_long((opacity * 127), 100)) - (double) (127))); + ZEPHIR_CALL_FUNCTION(&_2, "abs", NULL, 238, &_1); + zephir_check_call_status(); + zephir_round(&_0, &_2, NULL, NULL); + opacity = zephir_get_intval(&_0); + if (opacity < 127) { + stepping = (long) (zephir_safe_div_long_long(((127 - opacity)), height)); + } else { + stepping = (long) (zephir_safe_div_long_long(127, height)); + } + zephir_read_property(&_1, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_3, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_4, (zephir_get_numberval(&_3) + height)); + ZEPHIR_CALL_METHOD(&reflection, this_ptr, "processcreate", NULL, 0, &_1, &_4); + zephir_check_call_status(); + zephir_read_property(&_4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_5, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_6, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_7, 0); + ZVAL_LONG(&_8, 0); + ZVAL_LONG(&_9, 0); + ZVAL_LONG(&_10, 0); + ZEPHIR_CALL_FUNCTION(NULL, "imagecopy", NULL, 375, &reflection, &_4, &_7, &_8, &_9, &_10, &_5, &_6); + zephir_check_call_status(); + offset = 0; + while (1) { + if (!(height >= offset)) { + break; + } + zephir_read_property(&_11$$5, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + src_y = ((zephir_get_numberval(&_11$$5) - offset) - 1); + zephir_read_property(&_12$$5, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + dst_y = (zephir_get_numberval(&_12$$5) + offset); + if (fadeIn) { + ZEPHIR_INIT_NVAR(&_13$$6); + ZVAL_LONG(&_14$$6, (opacity + ((stepping * ((height - offset)))))); + zephir_round(&_13$$6, &_14$$6, NULL, NULL); + dst_opacity = zephir_get_intval(&_13$$6); + } else { + ZEPHIR_INIT_NVAR(&_15$$7); + ZVAL_LONG(&_16$$7, (opacity + ((stepping * offset)))); + zephir_round(&_15$$7, &_16$$7, NULL, NULL); + dst_opacity = zephir_get_intval(&_15$$7); + } + zephir_read_property(&_17$$5, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_18$$5, 1); + ZEPHIR_CALL_METHOD(&line, this_ptr, "processcreate", NULL, 0, &_17$$5, &_18$$5); + zephir_check_call_status(); + zephir_read_property(&_18$$5, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_19$$5, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_20$$5, 0); + ZVAL_LONG(&_21$$5, 0); + ZVAL_LONG(&_22$$5, 0); + ZVAL_LONG(&_23$$5, src_y); + ZVAL_LONG(&_24$$5, 1); + ZEPHIR_CALL_FUNCTION(NULL, "imagecopy", NULL, 375, &line, &_18$$5, &_20$$5, &_21$$5, &_22$$5, &_23$$5, &_19$$5, &_24$$5); + zephir_check_call_status(); + ZVAL_LONG(&_20$$5, 4); + ZVAL_LONG(&_21$$5, 0); + ZVAL_LONG(&_22$$5, 0); + ZVAL_LONG(&_23$$5, 0); + ZVAL_LONG(&_24$$5, dst_opacity); + ZEPHIR_CALL_FUNCTION(NULL, "imagefilter", &_25, 376, &line, &_20$$5, &_21$$5, &_22$$5, &_23$$5, &_24$$5); + zephir_check_call_status(); + zephir_read_property(&_20$$5, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_21$$5, 0); + ZVAL_LONG(&_22$$5, dst_y); + ZVAL_LONG(&_23$$5, 0); + ZVAL_LONG(&_24$$5, 0); + ZVAL_LONG(&_26$$5, 1); + ZEPHIR_CALL_FUNCTION(NULL, "imagecopy", NULL, 375, &reflection, &line, &_21$$5, &_22$$5, &_23$$5, &_24$$5, &_20$$5, &_26$$5); + zephir_check_call_status(); + offset++; + } + zephir_read_property(&_7, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(NULL, "imagedestroy", NULL, 372, &_7); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &reflection); + ZEPHIR_CALL_FUNCTION(&_27, "imagesx", NULL, 378, &reflection); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_27); + ZEPHIR_CALL_FUNCTION(&_28, "imagesy", NULL, 379, &reflection); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_28); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_Debug, escapeString) +static PHP_METHOD(Phalcon_Image_Adapter_Gd, processRender) { + zend_bool _4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *value, value_sub, _0$$3, _1$$3, _2$$3, _3$$3, _4$$3; + zend_long quality, ZEPHIR_LAST_CALL_STATUS; + zval *ext_param = NULL, *quality_param = NULL, __$null, _0, _1, _2, _3, _5, _6, _7, _8, _9$$3, _10$$4, _11$$4, _12$$5, _13$$6, _14$$7, _15$$8; + zval ext, _16$$8; zval *this_ptr = getThis(); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&ext); + ZVAL_UNDEF(&_16$$8); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9$$3); + ZVAL_UNDEF(&_10$$4); + ZVAL_UNDEF(&_11$$4); + ZVAL_UNDEF(&_12$$5); + ZVAL_UNDEF(&_13$$6); + ZVAL_UNDEF(&_14$$7); + ZVAL_UNDEF(&_15$$8); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(value) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(ext) + Z_PARAM_LONG(quality) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &value); + zephir_fetch_params(1, 2, 0, &ext_param, &quality_param); + zephir_get_strval(&ext, ext_param); + quality = zephir_get_intval(quality_param); - if (Z_TYPE_P(value) == IS_STRING) { - ZEPHIR_INIT_VAR(&_0$$3); - ZEPHIR_INIT_VAR(&_1$$3); - ZVAL_STRING(&_1$$3, "\n"); - ZEPHIR_INIT_VAR(&_2$$3); - ZVAL_STRING(&_2$$3, "\\n"); - zephir_fast_str_replace(&_0$$3, &_1$$3, &_2$$3, value); - ZVAL_LONG(&_3$$3, 2); - ZEPHIR_INIT_VAR(&_4$$3); - ZVAL_STRING(&_4$$3, "utf-8"); - ZEPHIR_RETURN_CALL_FUNCTION("htmlentities", NULL, 0, &_0$$3, &_3$$3, &_4$$3); + ZEPHIR_INIT_VAR(&_0); + zephir_fast_strtolower(&_0, &ext); + zephir_get_strval(&ext, &_0); + ZEPHIR_CALL_FUNCTION(NULL, "ob_start", NULL, 388); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "gif"); + ZEPHIR_CALL_FUNCTION(&_2, "strcmp", NULL, 389, &ext, &_1); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "jpg"); + ZEPHIR_CALL_FUNCTION(&_3, "strcmp", NULL, 389, &ext, &_1); + zephir_check_call_status(); + _4 = ZEPHIR_IS_LONG(&_3, 0); + if (!(_4)) { + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "jpeg"); + ZEPHIR_CALL_FUNCTION(&_5, "strcmp", NULL, 389, &ext, &_1); zephir_check_call_status(); - RETURN_MM(); + _4 = ZEPHIR_IS_LONG(&_5, 0); } - RETVAL_ZVAL(value, 1, 0); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "png"); + ZEPHIR_CALL_FUNCTION(&_6, "strcmp", NULL, 389, &ext, &_1); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "wbmp"); + ZEPHIR_CALL_FUNCTION(&_7, "strcmp", NULL, 389, &ext, &_1); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "xbm"); + ZEPHIR_CALL_FUNCTION(&_8, "strcmp", NULL, 389, &ext, &_1); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&_2, 0)) { + zephir_read_property(&_9$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(NULL, "imagegif", NULL, 390, &_9$$3); + zephir_check_call_status(); + } else if (_4) { + zephir_read_property(&_10$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_11$$4, quality); + ZEPHIR_CALL_FUNCTION(NULL, "imagejpeg", NULL, 391, &_10$$4, &__$null, &_11$$4); + zephir_check_call_status(); + } else if (ZEPHIR_IS_LONG(&_6, 0)) { + zephir_read_property(&_12$$5, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(NULL, "imagepng", NULL, 392, &_12$$5); + zephir_check_call_status(); + } else if (ZEPHIR_IS_LONG(&_7, 0)) { + zephir_read_property(&_13$$6, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(NULL, "imagewbmp", NULL, 393, &_13$$6); + zephir_check_call_status(); + } else if (ZEPHIR_IS_LONG(&_8, 0)) { + zephir_read_property(&_14$$7, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(NULL, "imagexbm", NULL, 394, &_14$$7, &__$null); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_VAR(&_15$$8); + object_init_ex(&_15$$8, phalcon_image_exception_ce); + ZEPHIR_INIT_VAR(&_16$$8); + ZEPHIR_CONCAT_SVS(&_16$$8, "Installed GD does not support '", &ext, "' images"); + ZEPHIR_CALL_METHOD(NULL, &_15$$8, "__construct", NULL, 8, &_16$$8); + zephir_check_call_status(); + zephir_throw_exception_debug(&_15$$8, "phalcon/Image/Adapter/Gd.zep", 454); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_RETURN_CALL_FUNCTION("ob_get_clean", NULL, 395); + zephir_check_call_status(); RETURN_MM(); } -static PHP_METHOD(Phalcon_Support_Debug, getArrayDump) +static PHP_METHOD(Phalcon_Image_Adapter_Gd, processResize) { - zend_string *_4; - zend_ulong _3; - zend_bool _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_5 = NULL, *_8 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *argument_param = NULL, *n = NULL, n_sub, numberArguments, dump, varDump, k, v, *_1, _2, _6$$8, _7$$8, _9$$9, _10$$5, _11$$15, _12$$15, _13$$16, _14$$12; - zval argument; + zval *width_param = NULL, *height_param = NULL, image, _0, _1, _2, _3, _4; + zend_long width, height, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&argument); - ZVAL_UNDEF(&n_sub); - ZVAL_UNDEF(&numberArguments); - ZVAL_UNDEF(&dump); - ZVAL_UNDEF(&varDump); - ZVAL_UNDEF(&k); - ZVAL_UNDEF(&v); + ZVAL_UNDEF(&image); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_6$$8); - ZVAL_UNDEF(&_7$$8); - ZVAL_UNDEF(&_9$$9); - ZVAL_UNDEF(&_10$$5); - ZVAL_UNDEF(&_11$$15); - ZVAL_UNDEF(&_12$$15); - ZVAL_UNDEF(&_13$$16); - ZVAL_UNDEF(&_14$$12); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ARRAY(argument) - Z_PARAM_OPTIONAL - Z_PARAM_ZVAL(n) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_LONG(width) + Z_PARAM_LONG(height) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &argument_param, &n); - ZEPHIR_OBS_COPY_OR_DUP(&argument, argument_param); - if (!n) { - n = &n_sub; - ZEPHIR_INIT_VAR(n); - ZVAL_LONG(n, 0); - } + zephir_fetch_params(1, 2, 0, &width_param, &height_param); + width = zephir_get_intval(width_param); + height = zephir_get_intval(height_param); - ZEPHIR_INIT_VAR(&numberArguments); - ZVAL_LONG(&numberArguments, zephir_fast_count_int(&argument)); - _0 = ZEPHIR_GE_LONG(n, 3); - if (!(_0)) { - _0 = ZEPHIR_IS_LONG(&numberArguments, 0); - } - if (_0) { - RETURN_MM_NULL(); - } - if (ZEPHIR_GE_LONG(&numberArguments, 10)) { - RETURN_CCTOR(&numberArguments); - } - ZEPHIR_INIT_VAR(&dump); - array_init(&dump); - zephir_is_iterable(&argument, 0, "phalcon/Support/Debug.zep", 540); - if (Z_TYPE_P(&argument) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&argument), _3, _4, _1) - { - ZEPHIR_INIT_NVAR(&k); - if (_4 != NULL) { - ZVAL_STR_COPY(&k, _4); - } else { - ZVAL_LONG(&k, _3); - } - ZEPHIR_INIT_NVAR(&v); - ZVAL_COPY(&v, _1); - if (ZEPHIR_IS_STRING(&v, "")) { - ZEPHIR_INIT_NVAR(&varDump); - ZVAL_STRING(&varDump, "(empty string)"); - } else if (zephir_is_scalar(&v)) { - ZEPHIR_CALL_METHOD(&varDump, this_ptr, "escapestring", &_5, 0, &v); - zephir_check_call_status(); - } else if (Z_TYPE_P(&v) == IS_ARRAY) { - ZVAL_LONG(&_7$$8, (zephir_get_numberval(n) + 1)); - ZEPHIR_CALL_METHOD(&_6$$8, this_ptr, "getarraydump", &_8, 0, &v, &_7$$8); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&varDump); - ZEPHIR_CONCAT_SVS(&varDump, "Array(", &_6$$8, ")"); - } else if (Z_TYPE_P(&v) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_9$$9); - zephir_get_class(&_9$$9, &v, 0); - ZEPHIR_INIT_NVAR(&varDump); - ZEPHIR_CONCAT_SVS(&varDump, "Object(", &_9$$9, ")"); - } else if (Z_TYPE_P(&v) == IS_NULL) { - ZEPHIR_INIT_NVAR(&varDump); - ZVAL_STRING(&varDump, "null"); - } else { - ZEPHIR_CPY_WRT(&varDump, &v); - } - ZEPHIR_INIT_NVAR(&_10$$5); - ZEPHIR_CONCAT_SVSV(&_10$$5, "[", &k, "] => ", &varDump); - zephir_array_append(&dump, &_10$$5, PH_SEPARATE, "phalcon/Support/Debug.zep", 537); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &argument, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &argument, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&k, &argument, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&v, &argument, "current", NULL, 0); - zephir_check_call_status(); - if (ZEPHIR_IS_STRING(&v, "")) { - ZEPHIR_INIT_NVAR(&varDump); - ZVAL_STRING(&varDump, "(empty string)"); - } else if (zephir_is_scalar(&v)) { - ZEPHIR_CALL_METHOD(&varDump, this_ptr, "escapestring", &_5, 0, &v); - zephir_check_call_status(); - } else if (Z_TYPE_P(&v) == IS_ARRAY) { - ZVAL_LONG(&_12$$15, (zephir_get_numberval(n) + 1)); - ZEPHIR_CALL_METHOD(&_11$$15, this_ptr, "getarraydump", &_8, 0, &v, &_12$$15); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&varDump); - ZEPHIR_CONCAT_SVS(&varDump, "Array(", &_11$$15, ")"); - } else if (Z_TYPE_P(&v) == IS_OBJECT) { - ZEPHIR_INIT_NVAR(&_13$$16); - zephir_get_class(&_13$$16, &v, 0); - ZEPHIR_INIT_NVAR(&varDump); - ZEPHIR_CONCAT_SVS(&varDump, "Object(", &_13$$16, ")"); - } else if (Z_TYPE_P(&v) == IS_NULL) { - ZEPHIR_INIT_NVAR(&varDump); - ZVAL_STRING(&varDump, "null"); - } else { - ZEPHIR_CPY_WRT(&varDump, &v); - } - ZEPHIR_INIT_NVAR(&_14$$12); - ZEPHIR_CONCAT_SVSV(&_14$$12, "[", &k, "] => ", &varDump); - zephir_array_append(&dump, &_14$$12, PH_SEPARATE, "phalcon/Support/Debug.zep", 537); - ZEPHIR_CALL_METHOD(NULL, &argument, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&v); - ZEPHIR_INIT_NVAR(&k); - zephir_fast_join_str(return_value, SL(", "), &dump); - RETURN_MM(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_1, width); + ZVAL_LONG(&_2, height); + ZEPHIR_CALL_FUNCTION(&image, "imagescale", NULL, 396, &_0, &_1, &_2); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(NULL, "imagedestroy", NULL, 372, &_1); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &image); + ZEPHIR_CALL_FUNCTION(&_3, "imagesx", NULL, 378, &image); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_3); + ZEPHIR_CALL_FUNCTION(&_4, "imagesy", NULL, 379, &image); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_4); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_Debug, getVarDump) +static PHP_METHOD(Phalcon_Image_Adapter_Gd, processRotate) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *variable, variable_sub, className, dumpedObject, _0$$8, _1$$10; + zval *degrees_param = NULL, __$true, image, transparent, width, height, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9$$3; + zend_long degrees, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&variable_sub); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&dumpedObject); - ZVAL_UNDEF(&_0$$8); - ZVAL_UNDEF(&_1$$10); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&image); + ZVAL_UNDEF(&transparent); + ZVAL_UNDEF(&width); + ZVAL_UNDEF(&height); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(variable) + Z_PARAM_LONG(degrees) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &variable); + zephir_fetch_params(1, 1, 0, °rees_param); + degrees = zephir_get_intval(degrees_param); - if (ZEPHIR_IS_TRUE_IDENTICAL(variable)) { - RETURN_MM_STRING("true"); - } - if (ZEPHIR_IS_FALSE_IDENTICAL(variable)) { - RETURN_MM_STRING("false"); - } - if (Z_TYPE_P(variable) == IS_STRING) { - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "escapestring", NULL, 0, variable); - zephir_check_call_status(); - RETURN_MM(); - } - if (zephir_is_scalar(variable)) { - RETVAL_ZVAL(variable, 1, 0); - RETURN_MM(); - } - if (Z_TYPE_P(variable) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&className); - zephir_get_class(&className, variable, 0); - if ((zephir_method_exists_ex(variable, ZEND_STRL("dump")) == SUCCESS)) { - ZEPHIR_CALL_METHOD(&dumpedObject, variable, "dump", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_0$$8, this_ptr, "getarraydump", NULL, 0, &dumpedObject); - zephir_check_call_status(); - ZEPHIR_CONCAT_SVSVS(return_value, "Object(", &className, ": ", &_0$$8, ")"); - RETURN_MM(); - } else { - ZEPHIR_CONCAT_SVS(return_value, "Object(", &className, ")"); - RETURN_MM(); - } - } - if (Z_TYPE_P(variable) == IS_ARRAY) { - ZEPHIR_CALL_METHOD(&_1$$10, this_ptr, "getarraydump", NULL, 0, variable); + zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_1, 0); + ZVAL_LONG(&_2, 0); + ZVAL_LONG(&_3, 0); + ZVAL_LONG(&_4, 127); + ZEPHIR_CALL_FUNCTION(&transparent, "imagecolorallocatealpha", NULL, 374, &_0, &_1, &_2, &_3, &_4); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_2, (360 - degrees)); + ZVAL_LONG(&_3, 1); + ZEPHIR_CALL_FUNCTION(&image, "imagerotate", NULL, 397, &_1, &_2, &transparent, &_3); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(NULL, "imagesavealpha", NULL, 369, &image, &__$true); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&width, "imagesx", NULL, 378, &image); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&height, "imagesy", NULL, 379, &image); + zephir_check_call_status(); + zephir_read_property(&_2, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_3, 0); + ZVAL_LONG(&_4, 0); + ZVAL_LONG(&_5, 0); + ZVAL_LONG(&_6, 0); + ZVAL_LONG(&_7, 100); + ZEPHIR_CALL_FUNCTION(&_8, "imagecopymerge", NULL, 398, &_2, &image, &_3, &_4, &_5, &_6, &width, &height, &_7); + zephir_check_call_status(); + if (zephir_is_true(&_8)) { + zephir_read_property(&_9$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(NULL, "imagedestroy", NULL, 372, &_9$$3); zephir_check_call_status(); - ZEPHIR_CONCAT_SVS(return_value, "Array(", &_1$$10, ")"); - RETURN_MM(); - } - if (Z_TYPE_P(variable) == IS_NULL) { - RETURN_MM_STRING("null"); + zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &image); + zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &width); + zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &height); } - zephir_gettype(return_value, variable); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_Debug, showTraceItem) +static PHP_METHOD(Phalcon_Image_Adapter_Gd, processSave) { - zend_bool _42$$25; - zval _1, _28$$17; + zend_bool _8; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_21 = NULL, *_49 = NULL; - zval trace; - zval *n_param = NULL, *trace_param = NULL, className, prepareInternalClass, preparedFunctionName, html, classReflection, prepareUriClass, functionName, functionReflection, traceArgs, arguments, argument, filez, line, showFiles, lines, numberLines, showFileFragment, firstLine, lastLine, linePosition, currentLine, classNameWithLink, functionNameWithLink, parts, _0, _17, _2$$3, _3$$3, _4$$3, _5$$3, _12$$3, _13$$3, _6$$4, _7$$4, _8$$5, _9$$6, _10$$6, _11$$6, _14$$10, _15$$11, _16$$11, *_18$$14, _19$$14, _25$$14, _26$$14, _20$$15, _22$$15, _23$$16, _24$$16, _27$$17, _29$$17, _30$$17, _31$$18, _32$$19, _33$$24, _34$$27, _35$$27, _36$$27, _37$$27, _38$$27, _39$$28, _40$$28, _41$$28, _43$$30, _44$$30, _45$$30, _46$$30, _47$$30, _48$$30; - zend_long n, ZEPHIR_LAST_CALL_STATUS, i = 0, beforeLine$$19, afterLine$$19; + zend_long quality, ZEPHIR_LAST_CALL_STATUS; + zval *file_param = NULL, *quality_param = NULL, __$false, ext, _0, _2, _3, _7, _9, _15, _19, _23, _27, _1$$3, _4$$4, _5$$4, _6$$4, _10$$5, _11$$5, _12$$6, _13$$6, _14$$9, _16$$10, _17$$10, _18$$10, _20$$11, _21$$11, _22$$11, _24$$12, _25$$12, _26$$12; + zval file; zval *this_ptr = getThis(); - ZVAL_UNDEF(&className); - ZVAL_UNDEF(&prepareInternalClass); - ZVAL_UNDEF(&preparedFunctionName); - ZVAL_UNDEF(&html); - ZVAL_UNDEF(&classReflection); - ZVAL_UNDEF(&prepareUriClass); - ZVAL_UNDEF(&functionName); - ZVAL_UNDEF(&functionReflection); - ZVAL_UNDEF(&traceArgs); - ZVAL_UNDEF(&arguments); - ZVAL_UNDEF(&argument); - ZVAL_UNDEF(&filez); - ZVAL_UNDEF(&line); - ZVAL_UNDEF(&showFiles); - ZVAL_UNDEF(&lines); - ZVAL_UNDEF(&numberLines); - ZVAL_UNDEF(&showFileFragment); - ZVAL_UNDEF(&firstLine); - ZVAL_UNDEF(&lastLine); - ZVAL_UNDEF(&linePosition); - ZVAL_UNDEF(¤tLine); - ZVAL_UNDEF(&classNameWithLink); - ZVAL_UNDEF(&functionNameWithLink); - ZVAL_UNDEF(&parts); + ZVAL_UNDEF(&file); + ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&ext); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_17); - ZVAL_UNDEF(&_2$$3); - ZVAL_UNDEF(&_3$$3); - ZVAL_UNDEF(&_4$$3); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_12$$3); - ZVAL_UNDEF(&_13$$3); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_15); + ZVAL_UNDEF(&_19); + ZVAL_UNDEF(&_23); + ZVAL_UNDEF(&_27); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$4); ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$4); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$6); - ZVAL_UNDEF(&_10$$6); - ZVAL_UNDEF(&_11$$6); - ZVAL_UNDEF(&_14$$10); - ZVAL_UNDEF(&_15$$11); - ZVAL_UNDEF(&_16$$11); - ZVAL_UNDEF(&_19$$14); - ZVAL_UNDEF(&_25$$14); - ZVAL_UNDEF(&_26$$14); - ZVAL_UNDEF(&_20$$15); - ZVAL_UNDEF(&_22$$15); - ZVAL_UNDEF(&_23$$16); - ZVAL_UNDEF(&_24$$16); - ZVAL_UNDEF(&_27$$17); - ZVAL_UNDEF(&_29$$17); - ZVAL_UNDEF(&_30$$17); - ZVAL_UNDEF(&_31$$18); - ZVAL_UNDEF(&_32$$19); - ZVAL_UNDEF(&_33$$24); - ZVAL_UNDEF(&_34$$27); - ZVAL_UNDEF(&_35$$27); - ZVAL_UNDEF(&_36$$27); - ZVAL_UNDEF(&_37$$27); - ZVAL_UNDEF(&_38$$27); - ZVAL_UNDEF(&_39$$28); - ZVAL_UNDEF(&_40$$28); - ZVAL_UNDEF(&_41$$28); - ZVAL_UNDEF(&_43$$30); - ZVAL_UNDEF(&_44$$30); - ZVAL_UNDEF(&_45$$30); - ZVAL_UNDEF(&_46$$30); - ZVAL_UNDEF(&_47$$30); - ZVAL_UNDEF(&_48$$30); - ZVAL_UNDEF(&trace); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_28$$17); + ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&_11$$5); + ZVAL_UNDEF(&_12$$6); + ZVAL_UNDEF(&_13$$6); + ZVAL_UNDEF(&_14$$9); + ZVAL_UNDEF(&_16$$10); + ZVAL_UNDEF(&_17$$10); + ZVAL_UNDEF(&_18$$10); + ZVAL_UNDEF(&_20$$11); + ZVAL_UNDEF(&_21$$11); + ZVAL_UNDEF(&_22$$11); + ZVAL_UNDEF(&_24$$12); + ZVAL_UNDEF(&_25$$12); + ZVAL_UNDEF(&_26$$12); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_LONG(n) - Z_PARAM_ARRAY(trace) + Z_PARAM_STR(file) + Z_PARAM_LONG(quality) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &n_param, &trace_param); - n = zephir_get_intval(n_param); - ZEPHIR_OBS_COPY_OR_DUP(&trace, trace_param); + zephir_fetch_params(1, 2, 0, &file_param, &quality_param); + zephir_get_strval(&file, file_param); + quality = zephir_get_intval(quality_param); - ZEPHIR_INIT_VAR(&_0); - ZVAL_LONG(&_0, n); - ZEPHIR_INIT_VAR(&_1); - ZEPHIR_CONCAT_SVS(&_1, "#", &_0, ""); - ZEPHIR_CPY_WRT(&html, &_1); - ZEPHIR_OBS_VAR(&className); - if (zephir_array_isset_string_fetch(&className, &trace, SL("class"), 0)) { - ZEPHIR_INIT_VAR(&_2$$3); - ZEPHIR_INIT_VAR(&_3$$3); - ZVAL_STRING(&_3$$3, "/^Phalcon/"); - ZEPHIR_INIT_VAR(&_4$$3); - ZEPHIR_INIT_VAR(&_5$$3); - ZVAL_STRING(&_5$$3, "/^Phalcon/"); - zephir_preg_match(&_4$$3, &_5$$3, &className, &_2$$3, 0, 0 , 0 ); - if (zephir_is_true(&_4$$3)) { - ZEPHIR_INIT_VAR(&parts); - zephir_fast_explode_str(&parts, SL("\\"), &className, LONG_MAX); - zephir_array_fetch_long(&_6$$4, &parts, 0, PH_NOISY | PH_READONLY, "phalcon/Support/Debug.zep", 645); - zephir_array_fetch_long(&_7$$4, &parts, 1, PH_NOISY | PH_READONLY, "phalcon/Support/Debug.zep", 645); - ZEPHIR_INIT_VAR(&prepareUriClass); - ZEPHIR_CONCAT_VSV(&prepareUriClass, &_6$$4, "_", &_7$$4); - ZEPHIR_INIT_VAR(&classNameWithLink); - ZEPHIR_CONCAT_SVSVS(&classNameWithLink, "", &className, ""); - } else { - ZEPHIR_INIT_VAR(&classReflection); - object_init_ex(&classReflection, zephir_get_internal_ce(SL("reflectionclass"))); - ZEPHIR_CALL_METHOD(NULL, &classReflection, "__construct", NULL, 156, &className); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_8$$5, &classReflection, "isinternal", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_8$$5)) { - ZEPHIR_INIT_VAR(&_9$$6); - zephir_fast_strtolower(&_9$$6, &className); - ZEPHIR_INIT_VAR(&_10$$6); - ZVAL_STRING(&_10$$6, "_"); - ZEPHIR_INIT_VAR(&_11$$6); - ZVAL_STRING(&_11$$6, "-"); - ZEPHIR_INIT_VAR(&prepareInternalClass); - zephir_fast_str_replace(&prepareInternalClass, &_10$$6, &_11$$6, &_9$$6); - ZEPHIR_INIT_NVAR(&classNameWithLink); - ZEPHIR_CONCAT_SVSVS(&classNameWithLink, "", &className, ""); - } else { - ZEPHIR_CPY_WRT(&classNameWithLink, &className); - } - } - ZEPHIR_INIT_VAR(&_12$$3); - ZEPHIR_CONCAT_SVS(&_12$$3, "", &classNameWithLink, ""); - zephir_concat_self(&html, &_12$$3); - zephir_array_fetch_string(&_13$$3, &trace, SL("type"), PH_NOISY | PH_READONLY, "phalcon/Support/Debug.zep", 678); - zephir_concat_self(&html, &_13$$3); + ZVAL_LONG(&_0, 4); + ZEPHIR_CALL_FUNCTION(&ext, "pathinfo", NULL, 109, &file, &_0); + zephir_check_call_status(); + if (!(zephir_is_true(&ext))) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&ext, "image_type_to_extension", NULL, 399, &_1$$3, &__$false); + zephir_check_call_status(); } - ZEPHIR_OBS_VAR(&functionName); - zephir_array_fetch_string(&functionName, &trace, SL("function"), PH_NOISY, "phalcon/Support/Debug.zep", 684); - if (zephir_array_isset_string(&trace, SL("class"))) { - ZEPHIR_CPY_WRT(&functionNameWithLink, &functionName); - } else { - if ((zephir_function_exists(&functionName) == SUCCESS)) { - ZEPHIR_INIT_VAR(&functionReflection); - object_init_ex(&functionReflection, zephir_get_internal_ce(SL("reflectionfunction"))); - ZEPHIR_CALL_METHOD(NULL, &functionReflection, "__construct", NULL, 151, &functionName); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_14$$10, &functionReflection, "isinternal", NULL, 0); - zephir_check_call_status(); - if (zephir_is_true(&_14$$10)) { - ZEPHIR_INIT_VAR(&_15$$11); - ZVAL_STRING(&_15$$11, "_"); - ZEPHIR_INIT_VAR(&_16$$11); - ZVAL_STRING(&_16$$11, "-"); - ZEPHIR_INIT_VAR(&preparedFunctionName); - zephir_fast_str_replace(&preparedFunctionName, &_15$$11, &_16$$11, &functionName); - ZEPHIR_INIT_NVAR(&functionNameWithLink); - ZEPHIR_CONCAT_SVSVS(&functionNameWithLink, "", &functionName, ""); - } else { - ZEPHIR_CPY_WRT(&functionNameWithLink, &functionName); - } - } else { - ZEPHIR_CPY_WRT(&functionNameWithLink, &functionName); - } + ZEPHIR_INIT_VAR(&_2); + zephir_fast_strtolower(&_2, &ext); + ZEPHIR_CPY_WRT(&ext, &_2); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "gif"); + ZEPHIR_CALL_FUNCTION(&_3, "strcmp", NULL, 389, &ext, &_2); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&_3, 0)) { + ZEPHIR_INIT_ZVAL_NREF(_4$$4); + ZVAL_LONG(&_4$$4, 1); + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_4$$4); + zephir_read_property(&_4$$4, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&_5$$4, "image_type_to_mime_type", NULL, 400, &_4$$4); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("mime"), &_5$$4); + zephir_read_property(&_6$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(NULL, "imagegif", NULL, 390, &_6$$4, &file); + zephir_check_call_status(); + RETURN_MM_BOOL(1); } - ZEPHIR_INIT_VAR(&_17); - ZEPHIR_CONCAT_SVS(&_17, "", &functionNameWithLink, ""); - zephir_concat_self(&html, &_17); - ZEPHIR_OBS_VAR(&traceArgs); - if (zephir_array_isset_string_fetch(&traceArgs, &trace, SL("args"), 0)) { - ZEPHIR_INIT_VAR(&arguments); - array_init(&arguments); - zephir_is_iterable(&traceArgs, 0, "phalcon/Support/Debug.zep", 736); - if (Z_TYPE_P(&traceArgs) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&traceArgs), _18$$14) - { - ZEPHIR_INIT_NVAR(&argument); - ZVAL_COPY(&argument, _18$$14); - ZEPHIR_CALL_METHOD(&_20$$15, this_ptr, "getvardump", &_21, 0, &argument); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_22$$15); - ZEPHIR_CONCAT_SVS(&_22$$15, "", &_20$$15, ""); - zephir_array_append(&arguments, &_22$$15, PH_SEPARATE, "phalcon/Support/Debug.zep", 730); - } ZEND_HASH_FOREACH_END(); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "jpg"); + ZEPHIR_CALL_FUNCTION(&_7, "strcmp", NULL, 389, &ext, &_2); + zephir_check_call_status(); + _8 = ZEPHIR_IS_LONG(&_7, 0); + if (!(_8)) { + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "jpeg"); + ZEPHIR_CALL_FUNCTION(&_9, "strcmp", NULL, 389, &ext, &_2); + zephir_check_call_status(); + _8 = ZEPHIR_IS_LONG(&_9, 0); + } + if (_8) { + ZEPHIR_INIT_ZVAL_NREF(_10$$5); + ZVAL_LONG(&_10$$5, 2); + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_10$$5); + zephir_read_property(&_10$$5, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&_11$$5, "image_type_to_mime_type", NULL, 400, &_10$$5); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("mime"), &_11$$5); + if (quality >= 0) { + if (quality < 1) { + quality = 1; + } else if (quality > 100) { + quality = 100; + } + zephir_read_property(&_12$$6, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_13$$6, quality); + ZEPHIR_CALL_FUNCTION(NULL, "imagejpeg", NULL, 391, &_12$$6, &file, &_13$$6); + zephir_check_call_status(); } else { - ZEPHIR_CALL_METHOD(NULL, &traceArgs, "rewind", NULL, 0); + zephir_read_property(&_14$$9, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(NULL, "imagejpeg", NULL, 391, &_14$$9, &file); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_19$$14, &traceArgs, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_19$$14)) { - break; - } - ZEPHIR_CALL_METHOD(&argument, &traceArgs, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&_23$$16, this_ptr, "getvardump", &_21, 0, &argument); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_24$$16); - ZEPHIR_CONCAT_SVS(&_24$$16, "", &_23$$16, ""); - zephir_array_append(&arguments, &_24$$16, PH_SEPARATE, "phalcon/Support/Debug.zep", 730); - ZEPHIR_CALL_METHOD(NULL, &traceArgs, "next", NULL, 0); - zephir_check_call_status(); - } } - ZEPHIR_INIT_NVAR(&argument); - ZEPHIR_INIT_VAR(&_25$$14); - zephir_fast_join_str(&_25$$14, SL(", "), &arguments); - ZEPHIR_INIT_VAR(&_26$$14); - ZEPHIR_CONCAT_SVS(&_26$$14, "(", &_25$$14, ")"); - zephir_concat_self(&html, &_26$$14); + RETURN_MM_BOOL(1); } - ZEPHIR_OBS_VAR(&filez); - if (zephir_array_isset_string_fetch(&filez, &trace, SL("file"), 0)) { - ZEPHIR_OBS_VAR(&_27$$17); - zephir_array_fetch_string(&_27$$17, &trace, SL("line"), PH_NOISY, "phalcon/Support/Debug.zep", 744); - zephir_cast_to_string(&_28$$17, &_27$$17); - ZEPHIR_CPY_WRT(&line, &_28$$17); - ZEPHIR_INIT_VAR(&_29$$17); - ZEPHIR_CONCAT_SVSVS(&_29$$17, "
", &filez, " (", &line, ")
"); - zephir_concat_self(&html, &_29$$17); - zephir_read_property(&_30$$17, this_ptr, ZEND_STRL("showFiles"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&showFiles, &_30$$17); - if (zephir_is_true(&showFiles)) { - ZEPHIR_CALL_FUNCTION(&lines, "file", NULL, 0, &filez); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&numberLines); - ZVAL_LONG(&numberLines, zephir_fast_count_int(&lines)); - zephir_read_property(&_31$$18, this_ptr, ZEND_STRL("showFileFragment"), PH_NOISY_CC | PH_READONLY); - ZEPHIR_CPY_WRT(&showFileFragment, &_31$$18); - if (zephir_is_true(&showFileFragment)) { - beforeLine$$19 = (zephir_get_numberval(&line) - 7); - if (beforeLine$$19 < 1) { - ZEPHIR_INIT_VAR(&firstLine); - ZVAL_LONG(&firstLine, 1); - } else { - ZEPHIR_INIT_NVAR(&firstLine); - ZVAL_LONG(&firstLine, beforeLine$$19); - } - afterLine$$19 = (zephir_get_numberval(&line) + 5); - if (ZEPHIR_LT_LONG(&numberLines, afterLine$$19)) { - ZEPHIR_CPY_WRT(&lastLine, &numberLines); - } else { - ZEPHIR_INIT_NVAR(&lastLine); - ZVAL_LONG(&lastLine, afterLine$$19); - } - ZEPHIR_INIT_VAR(&_32$$19); - ZEPHIR_CONCAT_SVSVSVS(&_32$$19, "
");
-				zephir_concat_self(&html, &_32$$19);
-			} else {
-				ZEPHIR_INIT_NVAR(&firstLine);
-				ZVAL_LONG(&firstLine, 1);
-				ZEPHIR_CPY_WRT(&lastLine, &numberLines);
-				ZEPHIR_INIT_VAR(&_33$$24);
-				ZEPHIR_CONCAT_SVSVS(&_33$$24, "
");
-				zephir_concat_self(&html, &_33$$24);
-			}
-			i = zephir_get_numberval(&firstLine);
-			while (1) {
-				if (!(ZEPHIR_GE_LONG(&lastLine, i))) {
-					break;
-				}
-				ZEPHIR_INIT_NVAR(&linePosition);
-				ZVAL_LONG(&linePosition, (i - 1));
-				ZEPHIR_OBS_NVAR(¤tLine);
-				zephir_array_fetch(¤tLine, &lines, &linePosition, PH_NOISY, "phalcon/Support/Debug.zep", 817);
-				if (zephir_is_true(&showFileFragment)) {
-					if (ZEPHIR_IS_LONG(&firstLine, i)) {
-						ZEPHIR_INIT_NVAR(&_34$$27);
-						ZEPHIR_INIT_NVAR(&_35$$27);
-						zephir_fast_trim(&_35$$27, ¤tLine, NULL , ZEPHIR_TRIM_RIGHT);
-						ZEPHIR_INIT_NVAR(&_36$$27);
-						ZVAL_STRING(&_36$$27, "#\\*\\/#");
-						ZEPHIR_INIT_NVAR(&_37$$27);
-						ZEPHIR_INIT_NVAR(&_38$$27);
-						ZVAL_STRING(&_38$$27, "#\\*\\/#");
-						zephir_preg_match(&_37$$27, &_38$$27, &_35$$27, &_34$$27, 0, 0 , 0 );
-						if (zephir_is_true(&_37$$27)) {
-							ZEPHIR_INIT_NVAR(&_39$$28);
-							ZEPHIR_INIT_NVAR(&_40$$28);
-							ZVAL_STRING(&_40$$28, "* /");
-							ZEPHIR_INIT_NVAR(&_41$$28);
-							ZVAL_STRING(&_41$$28, " ");
-							zephir_fast_str_replace(&_39$$28, &_40$$28, &_41$$28, ¤tLine);
-							ZEPHIR_CPY_WRT(¤tLine, &_39$$28);
-						}
-					}
-				}
-				_42$$25 = ZEPHIR_IS_STRING(¤tLine, "\n");
-				if (!(_42$$25)) {
-					_42$$25 = ZEPHIR_IS_STRING(¤tLine, "\r\n");
-				}
-				if (_42$$25) {
-					zephir_concat_self_str(&html, SL(" \n"));
-				} else {
-					ZEPHIR_INIT_NVAR(&_43$$30);
-					ZEPHIR_INIT_NVAR(&_44$$30);
-					ZVAL_STRING(&_44$$30, "\t");
-					ZEPHIR_INIT_NVAR(&_45$$30);
-					ZVAL_STRING(&_45$$30, "  ");
-					zephir_fast_str_replace(&_43$$30, &_44$$30, &_45$$30, ¤tLine);
-					ZVAL_LONG(&_46$$30, 2);
-					ZEPHIR_INIT_NVAR(&_47$$30);
-					ZVAL_STRING(&_47$$30, "UTF-8");
-					ZEPHIR_CALL_FUNCTION(&_48$$30, "htmlentities", &_49, 0, &_43$$30, &_46$$30, &_47$$30);
-					zephir_check_call_status();
-					zephir_concat_self(&html, &_48$$30);
-				}
-				i++;
-			}
-			zephir_concat_self_str(&html, SL("
")); - } + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "png"); + ZEPHIR_CALL_FUNCTION(&_15, "strcmp", NULL, 389, &ext, &_2); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&_15, 0)) { + ZEPHIR_INIT_ZVAL_NREF(_16$$10); + ZVAL_LONG(&_16$$10, 3); + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_16$$10); + zephir_read_property(&_16$$10, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&_17$$10, "image_type_to_mime_type", NULL, 400, &_16$$10); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("mime"), &_17$$10); + zephir_read_property(&_18$$10, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(NULL, "imagepng", NULL, 392, &_18$$10, &file); + zephir_check_call_status(); + RETURN_MM_BOOL(1); } - zephir_concat_self_str(&html, SL("")); - RETURN_CCTOR(&html); -} - -zend_object *zephir_init_properties_Phalcon_Support_Debug(zend_class_entry *class_type) -{ - zval _3$$4; - zval _0, _2, _1$$3, _4$$4; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_3$$4); - - - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("data"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("data"), &_1$$3); - } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("blacklist"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - zephir_create_array(&_3$$4, 2, 0); - ZEPHIR_INIT_VAR(&_4$$4); - array_init(&_4$$4); - zephir_array_update_string(&_3$$4, SL("request"), &_4$$4, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_4$$4); - array_init(&_4$$4); - zephir_array_update_string(&_3$$4, SL("server"), &_4$$4, PH_COPY | PH_SEPARATE); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("blacklist"), &_3$$4); - } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "wbmp"); + ZEPHIR_CALL_FUNCTION(&_19, "strcmp", NULL, 389, &ext, &_2); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&_19, 0)) { + ZEPHIR_INIT_ZVAL_NREF(_20$$11); + ZVAL_LONG(&_20$$11, 15); + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_20$$11); + zephir_read_property(&_20$$11, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&_21$$11, "image_type_to_mime_type", NULL, 400, &_20$$11); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("mime"), &_21$$11); + zephir_read_property(&_22$$11, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(NULL, "imagewbmp", NULL, 393, &_22$$11, &file); + zephir_check_call_status(); + RETURN_MM_BOOL(1); } + ZEPHIR_INIT_NVAR(&_2); + ZVAL_STRING(&_2, "xbm"); + ZEPHIR_CALL_FUNCTION(&_23, "strcmp", NULL, 389, &ext, &_2); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&_23, 0)) { + ZEPHIR_INIT_ZVAL_NREF(_24$$12); + ZVAL_LONG(&_24$$12, 16); + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_24$$12); + zephir_read_property(&_24$$12, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&_25$$12, "image_type_to_mime_type", NULL, 400, &_24$$12); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("mime"), &_25$$12); + zephir_read_property(&_26$$12, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(NULL, "imagexbm", NULL, 394, &_26$$12, &file); + zephir_check_call_status(); + RETURN_MM_BOOL(1); + } + ZEPHIR_INIT_NVAR(&_2); + object_init_ex(&_2, phalcon_image_exception_ce); + ZEPHIR_INIT_VAR(&_27); + ZEPHIR_CONCAT_SVS(&_27, "Installed GD does not support '", &ext, "' images"); + ZEPHIR_CALL_METHOD(NULL, &_2, "__construct", NULL, 8, &_27); + zephir_check_call_status(); + zephir_throw_exception_debug(&_2, "phalcon/Image/Adapter/Gd.zep", 576); + ZEPHIR_MM_RESTORE(); + return; } - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Support_Exception) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Support, Exception, phalcon, support_exception, zend_ce_exception, NULL, 0); - - return SUCCESS; -} - - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Support_HelperFactory) -{ - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Support, HelperFactory, phalcon, support_helperfactory, phalcon_factory_abstractfactory_ce, phalcon_support_helperfactory_method_entry, 0); - - zend_declare_property_string(phalcon_support_helperfactory_ce, SL("exception"), "Phalcon\\Support\\Exception", ZEND_ACC_PROTECTED); - return SUCCESS; -} - -static PHP_METHOD(Phalcon_Support_HelperFactory, __construct) +static PHP_METHOD(Phalcon_Image_Adapter_Gd, processSharpen) { + zval _3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *services_param = NULL; - zval services; + zval *amount_param = NULL, matrix, _0, _1, _2, _4, _5, _6, _7, _8, _9$$3, _10$$3, _11$$3, _12$$3; + zend_long amount, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&services); + ZVAL_UNDEF(&matrix); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9$$3); + ZVAL_UNDEF(&_10$$3); + ZVAL_UNDEF(&_11$$3); + ZVAL_UNDEF(&_12$$3); + ZVAL_UNDEF(&_3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(services) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(amount) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &services_param); - if (!services_param) { - ZEPHIR_INIT_VAR(&services); - array_init(&services); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&services, services_param); - } + zephir_fetch_params(1, 1, 0, &amount_param); + amount = zephir_get_intval(amount_param); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "init", NULL, 0, &services); + ZEPHIR_INIT_VAR(&_0); + ZVAL_LONG(&_1, (-18 + ((amount * 0.08)))); + ZEPHIR_CALL_FUNCTION(&_2, "abs", NULL, 238, &_1); + zephir_check_call_status(); + ZVAL_LONG(&_1, 2); + zephir_round(&_0, &_2, &_1, NULL); + amount = zephir_get_intval(&_0); + ZEPHIR_INIT_VAR(&matrix); + zephir_create_array(&matrix, 3, 0); + ZEPHIR_INIT_VAR(&_3); + zephir_create_array(&_3, 3, 0); + ZEPHIR_INIT_VAR(&_4); + ZVAL_LONG(&_4, -1); + zephir_array_fast_append(&_3, &_4); + ZEPHIR_INIT_NVAR(&_4); + ZVAL_LONG(&_4, -1); + zephir_array_fast_append(&_3, &_4); + ZEPHIR_INIT_NVAR(&_4); + ZVAL_LONG(&_4, -1); + zephir_array_fast_append(&_3, &_4); + zephir_array_fast_append(&matrix, &_3); + ZEPHIR_INIT_NVAR(&_3); + zephir_create_array(&_3, 3, 0); + ZEPHIR_INIT_NVAR(&_4); + ZVAL_LONG(&_4, -1); + zephir_array_fast_append(&_3, &_4); + ZEPHIR_INIT_NVAR(&_4); + ZVAL_LONG(&_4, amount); + zephir_array_fast_append(&_3, &_4); + ZEPHIR_INIT_NVAR(&_4); + ZVAL_LONG(&_4, -1); + zephir_array_fast_append(&_3, &_4); + zephir_array_fast_append(&matrix, &_3); + ZEPHIR_INIT_NVAR(&_3); + zephir_create_array(&_3, 3, 0); + ZEPHIR_INIT_NVAR(&_4); + ZVAL_LONG(&_4, -1); + zephir_array_fast_append(&_3, &_4); + ZEPHIR_INIT_NVAR(&_4); + ZVAL_LONG(&_4, -1); + zephir_array_fast_append(&_3, &_4); + ZEPHIR_INIT_NVAR(&_4); + ZVAL_LONG(&_4, -1); + zephir_array_fast_append(&_3, &_4); + zephir_array_fast_append(&matrix, &_3); + zephir_read_property(&_5, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_6, (amount - 8)); + ZVAL_LONG(&_7, 0); + ZEPHIR_CALL_FUNCTION(&_8, "imageconvolution", NULL, 401, &_5, &matrix, &_6, &_7); zephir_check_call_status(); + if (zephir_is_true(&_8)) { + zephir_read_property(&_9$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&_10$$3, "imagesx", NULL, 378, &_9$$3); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_10$$3); + zephir_read_property(&_11$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&_12$$3, "imagesy", NULL, 379, &_11$$3); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_12$$3); + } ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_HelperFactory, __call) +static PHP_METHOD(Phalcon_Image_Adapter_Gd, processText) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval arguments, _0; - zval *name_param = NULL, *arguments_param = NULL, helper, _1; - zval name; + zend_long offsetX, offsetY, opacity, r, g, b, size, ZEPHIR_LAST_CALL_STATUS, angle = 0, bottomLeftX, bottomLeftY, topRightX, topRightY, width = 0, height = 0; + zval *text_param = NULL, *offsetX_param = NULL, *offsetY_param = NULL, *opacity_param = NULL, *r_param = NULL, *g_param = NULL, *b_param = NULL, *size_param = NULL, *fontfile_param = NULL, space, color, _0, _1, _2, _3$$3, _4$$3, _9$$3, _10$$3, _13$$3, _14$$3, _15$$3, _16$$3, _5$$5, _6$$5, _7$$5, _8$$5, _11$$6, _12$$7, _17$$8, _18$$8, _19$$8, _22$$8, _23$$8, _24$$8, _25$$8, _20$$9, _21$$10; + zval text, fontfile; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&helper); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&arguments); + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&fontfile); + ZVAL_UNDEF(&space); + ZVAL_UNDEF(&color); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_9$$3); + ZVAL_UNDEF(&_10$$3); + ZVAL_UNDEF(&_13$$3); + ZVAL_UNDEF(&_14$$3); + ZVAL_UNDEF(&_15$$3); + ZVAL_UNDEF(&_16$$3); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_7$$5); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_11$$6); + ZVAL_UNDEF(&_12$$7); + ZVAL_UNDEF(&_17$$8); + ZVAL_UNDEF(&_18$$8); + ZVAL_UNDEF(&_19$$8); + ZVAL_UNDEF(&_22$$8); + ZVAL_UNDEF(&_23$$8); + ZVAL_UNDEF(&_24$$8); + ZVAL_UNDEF(&_25$$8); + ZVAL_UNDEF(&_20$$9); + ZVAL_UNDEF(&_21$$10); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(2, 2) - Z_PARAM_STR(name) - Z_PARAM_ARRAY(arguments) + ZEND_PARSE_PARAMETERS_START(9, 9) + Z_PARAM_STR(text) + Z_PARAM_LONG(offsetX) + Z_PARAM_LONG(offsetY) + Z_PARAM_LONG(opacity) + Z_PARAM_LONG(r) + Z_PARAM_LONG(g) + Z_PARAM_LONG(b) + Z_PARAM_LONG(size) + Z_PARAM_STR(fontfile) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 2, 0, &name_param, &arguments_param); - zephir_get_strval(&name, name_param); - zephir_get_arrval(&arguments, arguments_param); + zephir_fetch_params(1, 9, 0, &text_param, &offsetX_param, &offsetY_param, &opacity_param, &r_param, &g_param, &b_param, &size_param, &fontfile_param); + zephir_get_strval(&text, text_param); + offsetX = zephir_get_intval(offsetX_param); + offsetY = zephir_get_intval(offsetY_param); + opacity = zephir_get_intval(opacity_param); + r = zephir_get_intval(r_param); + g = zephir_get_intval(g_param); + b = zephir_get_intval(b_param); + size = zephir_get_intval(size_param); + zephir_get_strval(&fontfile, fontfile_param); - ZEPHIR_CALL_METHOD(&helper, this_ptr, "newinstance", NULL, 0, &name); - zephir_check_call_status(); + bottomLeftX = 0; + bottomLeftY = 0; + topRightX = 0; + topRightY = 0; ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 2, 0); - zephir_array_fast_append(&_0, &helper); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "__invoke"); - zephir_array_fast_append(&_0, &_1); - ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, &_0, &arguments); + ZVAL_DOUBLE(&_1, ((zephir_safe_div_long_long((opacity * 127), 100)) - (double) (127))); + ZEPHIR_CALL_FUNCTION(&_2, "abs", NULL, 238, &_1); zephir_check_call_status(); - RETURN_MM(); + zephir_round(&_0, &_2, NULL, NULL); + opacity = zephir_get_intval(&_0); + if (!(ZEPHIR_IS_EMPTY(&fontfile))) { + ZVAL_LONG(&_3$$3, size); + ZVAL_LONG(&_4$$3, 0); + ZEPHIR_CALL_FUNCTION(&space, "imagettfbbox", NULL, 402, &_3$$3, &_4$$3, &fontfile, &text); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&space)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "Call to imagettfbbox() failed", "phalcon/Image/Adapter/Gd.zep", 618); + return; + } + if (zephir_array_isset_long(&space, 0)) { + ZEPHIR_OBS_VAR(&_5$$5); + zephir_array_fetch_long(&_5$$5, &space, 0, PH_NOISY, "phalcon/Image/Adapter/Gd.zep", 622); + bottomLeftX = zephir_get_intval(&_5$$5); + ZEPHIR_OBS_VAR(&_6$$5); + zephir_array_fetch_long(&_6$$5, &space, 1, PH_NOISY, "phalcon/Image/Adapter/Gd.zep", 623); + bottomLeftY = zephir_get_intval(&_6$$5); + ZEPHIR_OBS_VAR(&_7$$5); + zephir_array_fetch_long(&_7$$5, &space, 4, PH_NOISY, "phalcon/Image/Adapter/Gd.zep", 624); + topRightX = zephir_get_intval(&_7$$5); + ZEPHIR_OBS_VAR(&_8$$5); + zephir_array_fetch_long(&_8$$5, &space, 5, PH_NOISY, "phalcon/Image/Adapter/Gd.zep", 625); + topRightY = zephir_get_intval(&_8$$5); + } + ZVAL_LONG(&_3$$3, (topRightX - bottomLeftX)); + ZEPHIR_CALL_FUNCTION(&_9$$3, "abs", NULL, 238, &_3$$3); + zephir_check_call_status(); + width = (zephir_get_numberval(&_9$$3) + 10); + ZVAL_LONG(&_3$$3, (topRightY - bottomLeftY)); + ZEPHIR_CALL_FUNCTION(&_10$$3, "abs", NULL, 238, &_3$$3); + zephir_check_call_status(); + height = (zephir_get_numberval(&_10$$3) + 10); + if (offsetX < 0) { + zephir_read_property(&_11$$6, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + offsetX = ((zephir_get_numberval(&_11$$6) - width) + offsetX); + } + if (offsetY < 0) { + zephir_read_property(&_12$$7, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + offsetY = ((zephir_get_numberval(&_12$$7) - height) + offsetY); + } + zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_4$$3, r); + ZVAL_LONG(&_13$$3, g); + ZVAL_LONG(&_14$$3, b); + ZVAL_LONG(&_15$$3, opacity); + ZEPHIR_CALL_FUNCTION(&color, "imagecolorallocatealpha", NULL, 374, &_3$$3, &_4$$3, &_13$$3, &_14$$3, &_15$$3); + zephir_check_call_status(); + angle = 0; + zephir_read_property(&_4$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_13$$3, size); + ZVAL_LONG(&_14$$3, angle); + ZVAL_LONG(&_15$$3, offsetX); + ZVAL_LONG(&_16$$3, offsetY); + ZEPHIR_CALL_FUNCTION(NULL, "imagettftext", NULL, 403, &_4$$3, &_13$$3, &_14$$3, &_15$$3, &_16$$3, &color, &fontfile, &text); + zephir_check_call_status(); + } else { + ZVAL_LONG(&_17$$8, size); + ZEPHIR_CALL_FUNCTION(&_18$$8, "imagefontwidth", NULL, 404, &_17$$8); + zephir_check_call_status(); + width = (zephir_get_intval(&_18$$8) * zephir_fast_strlen_ev(&text)); + ZVAL_LONG(&_17$$8, size); + ZEPHIR_CALL_FUNCTION(&_19$$8, "imagefontheight", NULL, 405, &_17$$8); + zephir_check_call_status(); + height = zephir_get_intval(&_19$$8); + if (offsetX < 0) { + zephir_read_property(&_20$$9, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + offsetX = ((zephir_get_numberval(&_20$$9) - width) + offsetX); + } + if (offsetY < 0) { + zephir_read_property(&_21$$10, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + offsetY = ((zephir_get_numberval(&_21$$10) - height) + offsetY); + } + zephir_read_property(&_17$$8, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_22$$8, r); + ZVAL_LONG(&_23$$8, g); + ZVAL_LONG(&_24$$8, b); + ZVAL_LONG(&_25$$8, opacity); + ZEPHIR_CALL_FUNCTION(&color, "imagecolorallocatealpha", NULL, 374, &_17$$8, &_22$$8, &_23$$8, &_24$$8, &_25$$8); + zephir_check_call_status(); + zephir_read_property(&_22$$8, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_23$$8, size); + ZVAL_LONG(&_24$$8, offsetX); + ZVAL_LONG(&_25$$8, offsetY); + ZEPHIR_CALL_FUNCTION(NULL, "imagestring", NULL, 406, &_22$$8, &_23$$8, &_24$$8, &_25$$8, &text, &color); + zephir_check_call_status(); + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_HelperFactory, newInstance) +static PHP_METHOD(Phalcon_Image_Adapter_Gd, processWatermark) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *name_param = NULL, _0; - zval name; + zend_long offsetX, offsetY, opacity, ZEPHIR_LAST_CALL_STATUS, width = 0, height = 0; + zval *watermark, watermark_sub, *offsetX_param = NULL, *offsetY_param = NULL, *opacity_param = NULL, __$true, overlay, color, _0, _1, _2, _9, _10, _11, _12, _13, _14, _15, _16, _17, _3$$3, _4$$3, _5$$3, _6$$3, _7$$3, _8$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&name); + ZVAL_UNDEF(&watermark_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_UNDEF(&overlay); + ZVAL_UNDEF(&color); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_13); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_15); + ZVAL_UNDEF(&_16); + ZVAL_UNDEF(&_17); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_8$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(name) + ZEND_PARSE_PARAMETERS_START(4, 4) + Z_PARAM_OBJECT_OF_CLASS(watermark, phalcon_image_adapter_adapterinterface_ce) + Z_PARAM_LONG(offsetX) + Z_PARAM_LONG(offsetY) + Z_PARAM_LONG(opacity) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &name_param); - zephir_get_strval(&name, name_param); + zephir_fetch_params(1, 4, 0, &watermark, &offsetX_param, &offsetY_param, &opacity_param); + offsetX = zephir_get_intval(offsetX_param); + offsetY = zephir_get_intval(offsetY_param); + opacity = zephir_get_intval(opacity_param); - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getservice", NULL, 0, &name); + ZEPHIR_CALL_METHOD(&_0, watermark, "render", NULL, 0); zephir_check_call_status(); - ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(return_value, &_0); + ZEPHIR_CALL_FUNCTION(&overlay, "imagecreatefromstring", NULL, 381, &_0); zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Support_HelperFactory, getAdapters) -{ - zval *this_ptr = getThis(); - - - - zephir_create_array(return_value, 1, 0); - add_assoc_stringl_ex(return_value, SL("interpolate"), SL("Phalcon\\Support\\Helper\\Str\\Interpolate")); - return; + ZEPHIR_CALL_FUNCTION(NULL, "imagesavealpha", NULL, 369, &overlay, &__$true); + zephir_check_call_status(); + ZEPHIR_CALL_FUNCTION(&_1, "imagesx", NULL, 378, &overlay); + zephir_check_call_status(); + width = zephir_get_intval(&_1); + ZEPHIR_CALL_FUNCTION(&_2, "imagesy", NULL, 379, &overlay); + zephir_check_call_status(); + height = zephir_get_intval(&_2); + if (opacity < 100) { + ZEPHIR_INIT_VAR(&_3$$3); + ZVAL_DOUBLE(&_4$$3, ((zephir_safe_div_long_long((opacity * 127), 100)) - (double) (127))); + ZEPHIR_CALL_FUNCTION(&_5$$3, "abs", NULL, 238, &_4$$3); + zephir_check_call_status(); + zephir_round(&_3$$3, &_5$$3, NULL, NULL); + opacity = zephir_get_intval(&_3$$3); + ZVAL_LONG(&_4$$3, 127); + ZVAL_LONG(&_6$$3, 127); + ZVAL_LONG(&_7$$3, 127); + ZVAL_LONG(&_8$$3, opacity); + ZEPHIR_CALL_FUNCTION(&color, "imagecolorallocatealpha", NULL, 374, &overlay, &_4$$3, &_6$$3, &_7$$3, &_8$$3); + zephir_check_call_status(); + ZVAL_LONG(&_4$$3, 3); + ZEPHIR_CALL_FUNCTION(NULL, "imagelayereffect", NULL, 407, &overlay, &_4$$3); + zephir_check_call_status(); + ZVAL_LONG(&_4$$3, 0); + ZVAL_LONG(&_6$$3, 0); + ZVAL_LONG(&_7$$3, width); + ZVAL_LONG(&_8$$3, height); + ZEPHIR_CALL_FUNCTION(NULL, "imagefilledrectangle", NULL, 387, &overlay, &_4$$3, &_6$$3, &_7$$3, &_8$$3, &color); + zephir_check_call_status(); + } + zephir_read_property(&_9, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(NULL, "imagealphablending", NULL, 371, &_9, &__$true); + zephir_check_call_status(); + zephir_read_property(&_10, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_11, offsetX); + ZVAL_LONG(&_12, offsetY); + ZVAL_LONG(&_13, 0); + ZVAL_LONG(&_14, 0); + ZVAL_LONG(&_15, width); + ZVAL_LONG(&_16, height); + ZEPHIR_CALL_FUNCTION(&_17, "imagecopy", NULL, 375, &_10, &overlay, &_11, &_12, &_13, &_14, &_15, &_16); + zephir_check_call_status(); + if (zephir_is_true(&_17)) { + ZEPHIR_CALL_FUNCTION(NULL, "imagedestroy", NULL, 372, &overlay); + zephir_check_call_status(); + } + ZEPHIR_MM_RESTORE(); } @@ -205215,1533 +204962,1864 @@ static PHP_METHOD(Phalcon_Support_HelperFactory, getAdapters) -ZEPHIR_INIT_CLASS(Phalcon_Support_Version) +ZEPHIR_INIT_CLASS(Phalcon_Image_Adapter_Imagick) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Support, Version, phalcon, support_version, phalcon_support_version_method_entry, 0); - - zephir_declare_class_constant_long(phalcon_support_version_ce, SL("VERSION_MAJOR"), 0); - - zephir_declare_class_constant_long(phalcon_support_version_ce, SL("VERSION_MEDIUM"), 1); - - zephir_declare_class_constant_long(phalcon_support_version_ce, SL("VERSION_MINOR"), 2); - - zephir_declare_class_constant_long(phalcon_support_version_ce, SL("VERSION_SPECIAL"), 3); - - zephir_declare_class_constant_long(phalcon_support_version_ce, SL("VERSION_SPECIAL_NUMBER"), 4); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Image\\Adapter, Imagick, phalcon, image_adapter_imagick, phalcon_image_adapter_abstractadapter_ce, phalcon_image_adapter_imagick_method_entry, 0); + zend_declare_property_bool(phalcon_image_adapter_imagick_ce, SL("checked"), 0, ZEND_ACC_PROTECTED|ZEND_ACC_STATIC); + zend_declare_property_long(phalcon_image_adapter_imagick_ce, SL("version"), 0, ZEND_ACC_PROTECTED|ZEND_ACC_STATIC); return SUCCESS; } -static PHP_METHOD(Phalcon_Support_Version, getVersion) +static PHP_METHOD(Phalcon_Image_Adapter_Imagick, __construct) { - zval _0; + zend_bool _20$$8; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long width, height, ZEPHIR_LAST_CALL_STATUS; + zval *file_param = NULL, *width_param = NULL, *height_param = NULL, image, _0, _1, _2, _30, _31, _32, _33, _34, _35, _36, _37, _38, _3$$4, _4$$4, _5$$4, _6$$4, _7$$4, _11$$4, _12$$4, _16$$4, _8$$5, _9$$5, _10$$5, _13$$6, _14$$6, _15$$6, _17$$7, _18$$7, _19$$7, _24$$8, _25$$8, _26$$8, _27$$8, _28$$8, _29$$8, _21$$9, _22$$9, _23$$9; + zval file; zval *this_ptr = getThis(); + ZVAL_UNDEF(&file); + ZVAL_UNDEF(&image); ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - zephir_create_array(return_value, 5, 0); - ZEPHIR_INIT_VAR(&_0); - ZVAL_LONG(&_0, 5); - zephir_array_fast_append(return_value, &_0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_LONG(&_0, 0); - zephir_array_fast_append(return_value, &_0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_LONG(&_0, 0); - zephir_array_fast_append(return_value, &_0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_LONG(&_0, 1); - zephir_array_fast_append(return_value, &_0); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_LONG(&_0, 4); - zephir_array_fast_append(return_value, &_0); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Support_Version, getSpecial) -{ - zval suffix; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *special_param = NULL; - zend_long special; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&suffix); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_30); + ZVAL_UNDEF(&_31); + ZVAL_UNDEF(&_32); + ZVAL_UNDEF(&_33); + ZVAL_UNDEF(&_34); + ZVAL_UNDEF(&_35); + ZVAL_UNDEF(&_36); + ZVAL_UNDEF(&_37); + ZVAL_UNDEF(&_38); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_11$$4); + ZVAL_UNDEF(&_12$$4); + ZVAL_UNDEF(&_16$$4); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&_13$$6); + ZVAL_UNDEF(&_14$$6); + ZVAL_UNDEF(&_15$$6); + ZVAL_UNDEF(&_17$$7); + ZVAL_UNDEF(&_18$$7); + ZVAL_UNDEF(&_19$$7); + ZVAL_UNDEF(&_24$$8); + ZVAL_UNDEF(&_25$$8); + ZVAL_UNDEF(&_26$$8); + ZVAL_UNDEF(&_27$$8); + ZVAL_UNDEF(&_28$$8); + ZVAL_UNDEF(&_29$$8); + ZVAL_UNDEF(&_21$$9); + ZVAL_UNDEF(&_22$$9); + ZVAL_UNDEF(&_23$$9); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(special) + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(file) + Z_PARAM_OPTIONAL + Z_PARAM_LONG_OR_NULL(width, is_null_true) + Z_PARAM_LONG_OR_NULL(height, is_null_true) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &special_param); - special = zephir_get_intval(special_param); + zephir_fetch_params(1, 1, 2, &file_param, &width_param, &height_param); + if (UNEXPECTED(Z_TYPE_P(file_param) != IS_STRING && Z_TYPE_P(file_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'file' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(file_param) == IS_STRING)) { + zephir_get_strval(&file, file_param); + } else { + ZEPHIR_INIT_VAR(&file); + } + if (!width_param) { + width = 0; + } else { + width = zephir_get_intval(width_param); + } + if (!height_param) { + height = 0; + } else { + height = zephir_get_intval(height_param); + } - ZEPHIR_INIT_VAR(&suffix); - do { - if (special == 1) { - ZEPHIR_INIT_NVAR(&suffix); - ZVAL_STRING(&suffix, "alpha"); - break; + zephir_read_static_property_ce(&_0, phalcon_image_adapter_imagick_ce, SL("checked"), PH_NOISY_CC | PH_READONLY); + if (!(zephir_is_true(&_0))) { + ZEPHIR_CALL_SELF(NULL, "check", NULL, 0); + zephir_check_call_status(); + } + zephir_update_property_zval(this_ptr, ZEND_STRL("file"), &file); + ZEPHIR_INIT_VAR(&_1); + object_init_ex(&_1, zephir_get_internal_ce(SL("imagick"))); + ZEPHIR_CALL_METHOD(NULL, &_1, "__construct", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &_1); + zephir_read_property(&_2, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); + if ((zephir_file_exists(&_2) == SUCCESS)) { + zephir_read_property(&_3$$4, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_FUNCTION(&_4$$4, "realpath", NULL, 94, &_3$$4); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("realpath"), &_4$$4); + zephir_read_property(&_5$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_7$$4, this_ptr, ZEND_STRL("realpath"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_6$$4, &_5$$4, "readimage", NULL, 0, &_7$$4); + zephir_check_call_status(); + if (UNEXPECTED(!zephir_is_true(&_6$$4))) { + ZEPHIR_INIT_VAR(&_8$$5); + object_init_ex(&_8$$5, phalcon_image_exception_ce); + zephir_read_property(&_9$$5, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_10$$5); + ZEPHIR_CONCAT_SVS(&_10$$5, "Imagick::readImage ", &_9$$5, " failed"); + ZEPHIR_CALL_METHOD(NULL, &_8$$5, "__construct", NULL, 8, &_10$$5); + zephir_check_call_status(); + zephir_throw_exception_debug(&_8$$5, "phalcon/Image/Adapter/Imagick.zep", 63); + ZEPHIR_MM_RESTORE(); + return; } - if (special == 2) { - ZEPHIR_INIT_NVAR(&suffix); - ZVAL_STRING(&suffix, "beta"); - break; + zephir_read_property(&_11$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_12$$4, &_11$$4, "getimagealphachannel", NULL, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_12$$4))) { + zephir_read_property(&_13$$6, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_14$$6); + ZVAL_STRING(&_14$$6, "Imagick::ALPHACHANNEL_SET"); + ZEPHIR_CALL_FUNCTION(&_15$$6, "constant", NULL, 128, &_14$$6); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &_13$$6, "setimagealphachannel", NULL, 0, &_15$$6); + zephir_check_call_status(); } - if (special == 3) { - ZEPHIR_INIT_NVAR(&suffix); - ZVAL_STRING(&suffix, "RC"); - break; + zephir_read_property(&_16$$4, this_ptr, ZEND_STRL("type"), PH_NOISY_CC | PH_READONLY); + if (ZEPHIR_IS_LONG(&_16$$4, 1)) { + zephir_read_property(&_17$$7, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&image, &_17$$7, "coalesceimages", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_18$$7, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_18$$7, "clear", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_19$$7, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_19$$7, "destroy", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &image); } - } while(0); - - RETURN_CTOR(&suffix); + } else { + _20$$8 = !width; + if (!(_20$$8)) { + _20$$8 = !height; + } + if (UNEXPECTED(_20$$8)) { + ZEPHIR_INIT_VAR(&_21$$9); + object_init_ex(&_21$$9, phalcon_image_exception_ce); + zephir_read_property(&_22$$9, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_23$$9); + ZEPHIR_CONCAT_SV(&_23$$9, "Failed to create image from file ", &_22$$9); + ZEPHIR_CALL_METHOD(NULL, &_21$$9, "__construct", NULL, 8, &_23$$9); + zephir_check_call_status(); + zephir_throw_exception_debug(&_21$$9, "phalcon/Image/Adapter/Imagick.zep", 84); + ZEPHIR_MM_RESTORE(); + return; + } + zephir_read_property(&_24$$8, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_25$$8); + object_init_ex(&_25$$8, zephir_get_internal_ce(SL("imagickpixel"))); + ZEPHIR_INIT_VAR(&_26$$8); + ZVAL_STRING(&_26$$8, "transparent"); + ZEPHIR_CALL_METHOD(NULL, &_25$$8, "__construct", NULL, 0, &_26$$8); + zephir_check_call_status(); + ZVAL_LONG(&_27$$8, width); + ZVAL_LONG(&_28$$8, height); + ZEPHIR_CALL_METHOD(NULL, &_24$$8, "newimage", NULL, 0, &_27$$8, &_28$$8, &_25$$8); + zephir_check_call_status(); + zephir_read_property(&_27$$8, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_26$$8); + ZVAL_STRING(&_26$$8, "png"); + ZEPHIR_CALL_METHOD(NULL, &_27$$8, "setformat", NULL, 0, &_26$$8); + zephir_check_call_status(); + zephir_read_property(&_28$$8, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_26$$8); + ZVAL_STRING(&_26$$8, "png"); + ZEPHIR_CALL_METHOD(NULL, &_28$$8, "setimageformat", NULL, 0, &_26$$8); + zephir_check_call_status(); + zephir_read_property(&_29$$8, this_ptr, ZEND_STRL("file"), PH_NOISY_CC | PH_READONLY); + zephir_update_property_zval(this_ptr, ZEND_STRL("realpath"), &_29$$8); + } + zephir_read_property(&_30, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_31, &_30, "getimagewidth", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_31); + zephir_read_property(&_32, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_33, &_32, "getimageheight", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_33); + zephir_read_property(&_34, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_35, &_34, "getimagetype", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_35); + zephir_read_property(&_36, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_37, &_36, "getimageformat", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_38); + ZEPHIR_CONCAT_SV(&_38, "image/", &_37); + zephir_update_property_zval(this_ptr, ZEND_STRL("mime"), &_38); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_Version, get) +static PHP_METHOD(Phalcon_Image_Adapter_Imagick, __destruct) { - zval result; - zval version, major, medium, minor, special, specialNumber, suffix, _0; + zval _0, _1$$3, _2$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&version); - ZVAL_UNDEF(&major); - ZVAL_UNDEF(&medium); - ZVAL_UNDEF(&minor); - ZVAL_UNDEF(&special); - ZVAL_UNDEF(&specialNumber); - ZVAL_UNDEF(&suffix); ZVAL_UNDEF(&_0); - ZVAL_UNDEF(&result); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(&version, this_ptr, "getversion", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&major); - zephir_array_fetch_long(&major, &version, 0, PH_NOISY, "phalcon/Support/Version.zep", 119); - ZEPHIR_OBS_VAR(&medium); - zephir_array_fetch_long(&medium, &version, 1, PH_NOISY, "phalcon/Support/Version.zep", 120); - ZEPHIR_OBS_VAR(&minor); - zephir_array_fetch_long(&minor, &version, 2, PH_NOISY, "phalcon/Support/Version.zep", 121); - ZEPHIR_OBS_VAR(&special); - zephir_array_fetch_long(&special, &version, 3, PH_NOISY, "phalcon/Support/Version.zep", 122); - ZEPHIR_OBS_VAR(&specialNumber); - zephir_array_fetch_long(&specialNumber, &version, 4, PH_NOISY, "phalcon/Support/Version.zep", 123); - ZEPHIR_INIT_VAR(&_0); - ZEPHIR_CONCAT_VSVSV(&_0, &major, ".", &medium, ".", &minor); - zephir_get_strval(&result, &_0); - ZEPHIR_CALL_METHOD(&suffix, this_ptr, "getspecial", NULL, 0, &special); - zephir_check_call_status(); - if (!ZEPHIR_IS_STRING(&suffix, "")) { - zephir_concat_self(&result, &suffix); - if (!ZEPHIR_IS_LONG(&specialNumber, 0)) { - zephir_concat_self(&result, &specialNumber); - } + ZEPHIR_OBS_VAR(&_0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC); + if (zephir_is_instance_of(&_0, SL("Imagick"))) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_1$$3, "clear", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_2$$3, "destroy", NULL, 0); + zephir_check_call_status(); } - RETURN_CTOR(&result); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_Version, getId) +static PHP_METHOD(Phalcon_Image_Adapter_Imagick, check) { - zval version, major, medium, minor, special, specialNumber, _0, _1, _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval __$true, _0, _1, _2, _3, _6, _4$$5, _5$$5; zend_long ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&version); - ZVAL_UNDEF(&major); - ZVAL_UNDEF(&medium); - ZVAL_UNDEF(&minor); - ZVAL_UNDEF(&special); - ZVAL_UNDEF(&specialNumber); + ZVAL_BOOL(&__$true, 1); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_4$$5); + ZVAL_UNDEF(&_5$$5); ZEPHIR_MM_GROW(); - ZEPHIR_CALL_METHOD(&version, this_ptr, "getversion", NULL, 0); - zephir_check_call_status(); - ZEPHIR_OBS_VAR(&major); - zephir_array_fetch_long(&major, &version, 0, PH_NOISY, "phalcon/Support/Version.zep", 157); - ZEPHIR_OBS_VAR(&medium); - zephir_array_fetch_long(&medium, &version, 1, PH_NOISY, "phalcon/Support/Version.zep", 158); - ZEPHIR_OBS_VAR(&minor); - zephir_array_fetch_long(&minor, &version, 2, PH_NOISY, "phalcon/Support/Version.zep", 159); - ZEPHIR_OBS_VAR(&special); - zephir_array_fetch_long(&special, &version, 3, PH_NOISY, "phalcon/Support/Version.zep", 160); - ZEPHIR_OBS_VAR(&specialNumber); - zephir_array_fetch_long(&specialNumber, &version, 4, PH_NOISY, "phalcon/Support/Version.zep", 161); - ZEPHIR_INIT_VAR(&_0); - ZVAL_STRING(&_0, "%02s"); - ZEPHIR_CALL_FUNCTION(&_1, "sprintf", NULL, 194, &_0, &medium); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_0); - ZVAL_STRING(&_0, "%02s"); - ZEPHIR_CALL_FUNCTION(&_2, "sprintf", NULL, 194, &_0, &minor); + zephir_read_static_property_ce(&_0, phalcon_image_adapter_imagick_ce, SL("checked"), PH_NOISY_CC | PH_READONLY); + if (zephir_is_true(&_0)) { + RETURN_MM_BOOL(1); + } + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "imagick"); + if (UNEXPECTED(!(zephir_class_exists(&_1, 1)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "Imagick is not installed, or the extension is not loaded", "phalcon/Image/Adapter/Imagick.zep", 128); + return; + } + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "Imagick::IMAGICK_EXTNUM"); + ZEPHIR_CALL_FUNCTION(&_3, "defined", NULL, 127, &_2); zephir_check_call_status(); - ZEPHIR_CONCAT_VVVVV(return_value, &major, &_1, &_2, &special, &specialNumber); - RETURN_MM(); + if (zephir_is_true(&_3)) { + ZEPHIR_INIT_VAR(&_4$$5); + ZVAL_STRING(&_4$$5, "Imagick::IMAGICK_EXTNUM"); + ZEPHIR_CALL_FUNCTION(&_5$$5, "constant", NULL, 128, &_4$$5); + zephir_check_call_status(); + zephir_update_static_property_ce(phalcon_image_adapter_imagick_ce, ZEND_STRL("version"), &_5$$5); + } + zephir_update_static_property_ce(phalcon_image_adapter_imagick_ce, ZEND_STRL("checked"), &__$true); + zephir_read_static_property_ce(&_6, phalcon_image_adapter_imagick_ce, SL("checked"), PH_NOISY_CC | PH_READONLY); + RETURN_CTOR(&_6); } -static PHP_METHOD(Phalcon_Support_Version, getPart) +static PHP_METHOD(Phalcon_Image_Adapter_Imagick, getInternalImInstance) +{ + zval *this_ptr = getThis(); + + + + RETURN_MEMBER(getThis(), "image"); +} + +static PHP_METHOD(Phalcon_Image_Adapter_Imagick, setResourceLimit) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *part_param = NULL, version, _0$$3, _1$$4; - zend_long part, ZEPHIR_LAST_CALL_STATUS; + zval *type_param = NULL, *limit_param = NULL, _0, _1, _2; + zend_long type, limit, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&version); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_LONG(part) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_LONG(type) + Z_PARAM_LONG(limit) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &part_param); - part = zephir_get_intval(part_param); - + zephir_fetch_params(1, 2, 0, &type_param, &limit_param); + type = zephir_get_intval(type_param); + limit = zephir_get_intval(limit_param); - ZEPHIR_CALL_METHOD(&version, this_ptr, "getversion", NULL, 0); - zephir_check_call_status(); - do { - if (part == 0 || part == 1 || part == 2 || part == 4) { - zephir_array_fetch_long(&_0$$3, &version, part, PH_NOISY | PH_READONLY, "phalcon/Support/Version.zep", 189); - RETURN_CTOR(&_0$$3); - } - if (part == 3) { - zephir_array_fetch_long(&_1$$4, &version, 3, PH_NOISY | PH_READONLY, "phalcon/Support/Version.zep", 192); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getspecial", NULL, 0, &_1$$4); - zephir_check_call_status(); - RETURN_MM(); - } - } while(0); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "get", NULL, 0); + zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_1, type); + ZVAL_LONG(&_2, limit); + ZEPHIR_CALL_METHOD(NULL, &_0, "setresourcelimit", NULL, 0, &_1, &_2); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); } - - - -#ifdef HAVE_CONFIG_H -#endif - - - - - -ZEPHIR_INIT_CLASS(Phalcon_Support_Debug_Dump) +static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processBackground) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Support\\Debug, Dump, phalcon, support_debug_dump, phalcon_support_debug_dump_method_entry, 0); - - zend_declare_property_bool(phalcon_support_debug_dump_ce, SL("detailed"), 0, ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_support_debug_dump_ce, SL("methods"), ZEND_ACC_PROTECTED); - zend_declare_property_null(phalcon_support_debug_dump_ce, SL("styles"), ZEND_ACC_PROTECTED); - phalcon_support_debug_dump_ce->create_object = zephir_init_properties_Phalcon_Support_Debug_Dump; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_6 = NULL, *_8 = NULL, *_11 = NULL, *_12 = NULL, *_13 = NULL, *_18 = NULL, *_20 = NULL, *_25 = NULL; + zval *r_param = NULL, *g_param = NULL, *b_param = NULL, *opacity_param = NULL, background, color, pixel1, pixel2, ret, _0, _1, _2, _3, _4$$3, _5$$3, _7$$3, _14$$3, _15$$3, _16$$3, _17$$3, _19$$3, _21$$3, _22$$3, _23$$3, _24$$3, _26$$3, _9$$4, _10$$4; + zend_long r, g, b, opacity, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); - return SUCCESS; -} + ZVAL_UNDEF(&background); + ZVAL_UNDEF(&color); + ZVAL_UNDEF(&pixel1); + ZVAL_UNDEF(&pixel2); + ZVAL_UNDEF(&ret); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_14$$3); + ZVAL_UNDEF(&_15$$3); + ZVAL_UNDEF(&_16$$3); + ZVAL_UNDEF(&_17$$3); + ZVAL_UNDEF(&_19$$3); + ZVAL_UNDEF(&_21$$3); + ZVAL_UNDEF(&_22$$3); + ZVAL_UNDEF(&_23$$3); + ZVAL_UNDEF(&_24$$3); + ZVAL_UNDEF(&_26$$3); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&_10$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(4, 4) + Z_PARAM_LONG(r) + Z_PARAM_LONG(g) + Z_PARAM_LONG(b) + Z_PARAM_LONG(opacity) + ZEND_PARSE_PARAMETERS_END(); +#endif -static PHP_METHOD(Phalcon_Support_Debug_Dump, getDetailed) -{ - zval *this_ptr = getThis(); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 4, 0, &r_param, &g_param, &b_param, &opacity_param); + r = zephir_get_intval(r_param); + g = zephir_get_intval(g_param); + b = zephir_get_intval(b_param); + opacity = zephir_get_intval(opacity_param); - RETURN_MEMBER(getThis(), "detailed"); + opacity /= 100; + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "rgb(%d, %d, %d)"); + ZVAL_LONG(&_1, r); + ZVAL_LONG(&_2, g); + ZVAL_LONG(&_3, b); + ZEPHIR_CALL_FUNCTION(&color, "sprintf", NULL, 194, &_0, &_1, &_2, &_3); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&pixel1); + object_init_ex(&pixel1, zephir_get_internal_ce(SL("imagickpixel"))); + ZEPHIR_CALL_METHOD(NULL, &pixel1, "__construct", NULL, 0, &color); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&pixel2); + object_init_ex(&pixel2, zephir_get_internal_ce(SL("imagickpixel"))); + ZEPHIR_INIT_NVAR(&_0); + ZVAL_STRING(&_0, "transparent"); + ZEPHIR_CALL_METHOD(NULL, &pixel2, "__construct", NULL, 0, &_0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&background); + object_init_ex(&background, zephir_get_internal_ce(SL("imagick"))); + ZEPHIR_CALL_METHOD(NULL, &background, "__construct", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_2, 0); + ZEPHIR_CALL_METHOD(NULL, &_1, "setiteratorindex", NULL, 0, &_2); + zephir_check_call_status(); + while (1) { + zephir_read_property(&_4$$3, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &background, "newimage", &_6, 0, &_4$$3, &_5$$3, &pixel1); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_7$$3, &background, "getimagealphachannel", &_8, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_7$$3))) { + ZEPHIR_INIT_NVAR(&_9$$4); + ZVAL_STRING(&_9$$4, "Imagick::ALPHACHANNEL_SET"); + ZEPHIR_CALL_FUNCTION(&_10$$4, "constant", &_11, 128, &_9$$4); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &background, "setimagealphachannel", &_12, 0, &_10$$4); + zephir_check_call_status(); + } + ZEPHIR_CALL_METHOD(NULL, &background, "setimagebackgroundcolor", &_13, 0, &pixel2); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_14$$3); + ZVAL_STRING(&_14$$3, "Imagick::EVALUATE_MULTIPLY"); + ZEPHIR_CALL_FUNCTION(&_15$$3, "constant", &_11, 128, &_14$$3); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_14$$3); + ZVAL_STRING(&_14$$3, "Imagick::CHANNEL_ALPHA"); + ZEPHIR_CALL_FUNCTION(&_16$$3, "constant", &_11, 128, &_14$$3); + zephir_check_call_status(); + ZVAL_LONG(&_17$$3, opacity); + ZEPHIR_CALL_METHOD(NULL, &background, "evaluateimage", &_18, 0, &_15$$3, &_17$$3, &_16$$3); + zephir_check_call_status(); + zephir_read_property(&_17$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_19$$3, &_17$$3, "getcolorspace", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &background, "setcolorspace", &_20, 0, &_19$$3); + zephir_check_call_status(); + zephir_read_property(&_21$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_14$$3); + ZVAL_STRING(&_14$$3, "Imagick::COMPOSITE_DISSOLVE"); + ZEPHIR_CALL_FUNCTION(&_22$$3, "constant", &_11, 128, &_14$$3); + zephir_check_call_status(); + ZVAL_LONG(&_23$$3, 0); + ZVAL_LONG(&_24$$3, 0); + ZEPHIR_CALL_METHOD(&ret, &background, "compositeimage", &_25, 0, &_21$$3, &_22$$3, &_23$$3, &_24$$3); + zephir_check_call_status(); + if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&ret))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "Imagick::compositeImage failed", "phalcon/Image/Adapter/Imagick.zep", 202); + return; + } + zephir_read_property(&_23$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_26$$3, &_23$$3, "nextimage", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_26$$3)) { + break; + } + } + zephir_read_property(&_2, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_2, "clear", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_3, "destroy", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &background); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_Debug_Dump, setDetailed) +static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processBlur) { - zval *detailed_param = NULL, __$true, __$false; - zend_bool detailed; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *radius_param = NULL, _0, _1, _2$$3, _3$$3, _4$$3, _5$$3; + zend_long radius, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_BOOL(detailed) + Z_PARAM_LONG(radius) ZEND_PARSE_PARAMETERS_END(); #endif - zephir_fetch_params_without_memory_grow(1, 0, &detailed_param); - detailed = zephir_get_boolval(detailed_param); + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &radius_param); + radius = zephir_get_intval(radius_param); - if (detailed) { - zephir_update_property_zval(this_ptr, ZEND_STRL("detailed"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("detailed"), &__$false); + zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_1, 0); + ZEPHIR_CALL_METHOD(NULL, &_0, "setiteratorindex", NULL, 0, &_1); + zephir_check_call_status(); + while (1) { + zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_3$$3, radius); + ZVAL_LONG(&_4$$3, 100); + ZEPHIR_CALL_METHOD(NULL, &_2$$3, "blurimage", NULL, 0, &_3$$3, &_4$$3); + zephir_check_call_status(); + zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_5$$3, &_3$$3, "nextimage", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_5$$3)) { + break; + } } - RETURN_THISW(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_Debug_Dump, __construct) +static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processCrop) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zend_bool detailed; - zval *styles_param = NULL, *detailed_param = NULL, __$true, __$false; - zval styles; + zephir_fcall_cache_entry *_5 = NULL, *_6 = NULL, *_8 = NULL; + zval *width_param = NULL, *height_param = NULL, *offsetX_param = NULL, *offsetY_param = NULL, image, _0, _9, _10, _1$$3, _2$$3, _3$$3, _4$$3, _7$$3; + zend_long width, height, offsetX, offsetY, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&styles); - ZVAL_BOOL(&__$true, 1); - ZVAL_BOOL(&__$false, 0); + ZVAL_UNDEF(&image); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_7$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 2) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(styles) - Z_PARAM_BOOL(detailed) + ZEND_PARSE_PARAMETERS_START(4, 4) + Z_PARAM_LONG(width) + Z_PARAM_LONG(height) + Z_PARAM_LONG(offsetX) + Z_PARAM_LONG(offsetY) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 2, &styles_param, &detailed_param); - if (!styles_param) { - ZEPHIR_INIT_VAR(&styles); - array_init(&styles); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&styles, styles_param); - } - if (!detailed_param) { - detailed = 0; - } else { - detailed = zephir_get_boolval(detailed_param); - } + zephir_fetch_params(1, 4, 0, &width_param, &height_param, &offsetX_param, &offsetY_param); + width = zephir_get_intval(width_param); + height = zephir_get_intval(height_param); + offsetX = zephir_get_intval(offsetX_param); + offsetY = zephir_get_intval(offsetY_param); - ZEPHIR_CALL_METHOD(NULL, this_ptr, "setstyles", NULL, 0, &styles); + zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&image, &_0); + ZVAL_LONG(&_0, 0); + ZEPHIR_CALL_METHOD(NULL, &image, "setiteratorindex", NULL, 0, &_0); zephir_check_call_status(); - if (detailed) { - zephir_update_property_zval(this_ptr, ZEND_STRL("detailed"), &__$true); - } else { - zephir_update_property_zval(this_ptr, ZEND_STRL("detailed"), &__$false); + while (1) { + ZVAL_LONG(&_1$$3, width); + ZVAL_LONG(&_2$$3, height); + ZVAL_LONG(&_3$$3, offsetX); + ZVAL_LONG(&_4$$3, offsetY); + ZEPHIR_CALL_METHOD(NULL, &image, "cropimage", &_5, 0, &_1$$3, &_2$$3, &_3$$3, &_4$$3); + zephir_check_call_status(); + ZVAL_LONG(&_1$$3, width); + ZVAL_LONG(&_2$$3, height); + ZVAL_LONG(&_3$$3, 0); + ZVAL_LONG(&_4$$3, 0); + ZEPHIR_CALL_METHOD(NULL, &image, "setimagepage", &_6, 0, &_1$$3, &_2$$3, &_3$$3, &_4$$3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_7$$3, &image, "nextimage", &_8, 0); + zephir_check_call_status(); + if (!(zephir_is_true(&_7$$3))) { + break; + } } + ZEPHIR_CALL_METHOD(&_9, &image, "getimagewidth", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_9); + ZEPHIR_CALL_METHOD(&_10, &image, "getimageheight", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_10); ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_Debug_Dump, all) +static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processFlip) { - zval _1; - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zval *direction_param = NULL, func, _0, _1, _2$$4, _3$$4, _4$$4; + zend_long direction, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); + ZVAL_UNDEF(&func); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_4$$4); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(direction) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &direction_param); + direction = zephir_get_intval(direction_param); - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 2, 0); - zephir_array_fast_append(&_0, this_ptr); - ZEPHIR_INIT_VAR(&_1); - ZVAL_STRING(&_1, "variables"); - zephir_array_fast_append(&_0, &_1); - ZEPHIR_INIT_NVAR(&_1); - zephir_get_args(&_1); - ZEPHIR_CALL_USER_FUNC_ARRAY(return_value, &_0, &_1); + + ZEPHIR_INIT_VAR(&func); + ZVAL_STRING(&func, "flipImage"); + if (direction == 11) { + ZEPHIR_INIT_NVAR(&func); + ZVAL_STRING(&func, "flopImage"); + } + zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_1, 0); + ZEPHIR_CALL_METHOD(NULL, &_0, "setiteratorindex", NULL, 0, &_1); zephir_check_call_status(); - RETURN_MM(); + while (1) { + zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD_ZVAL(NULL, &_2$$4, &func, NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_3$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_4$$4, &_3$$4, "nextimage", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_4$$4)) { + break; + } + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_Debug_Dump, one) +static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processLiquidRescale) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval name; - zval *variable, variable_sub, *name_param = NULL; + zephir_fcall_cache_entry *_5 = NULL, *_7 = NULL; + zval *width_param = NULL, *height_param = NULL, *deltaX_param = NULL, *rigidity_param = NULL, ret, image, _0, _8, _9, _1$$3, _2$$3, _3$$3, _4$$3, _6$$3; + zend_long width, height, deltaX, rigidity, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&variable_sub); - ZVAL_UNDEF(&name); + ZVAL_UNDEF(&ret); + ZVAL_UNDEF(&image); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_6$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(variable) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) + ZEND_PARSE_PARAMETERS_START(4, 4) + Z_PARAM_LONG(width) + Z_PARAM_LONG(height) + Z_PARAM_LONG(deltaX) + Z_PARAM_LONG(rigidity) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &variable, &name_param); - if (!name_param) { - ZEPHIR_INIT_VAR(&name); - } else { - zephir_get_strval(&name, name_param); - } + zephir_fetch_params(1, 4, 0, &width_param, &height_param, &deltaX_param, &rigidity_param); + width = zephir_get_intval(width_param); + height = zephir_get_intval(height_param); + deltaX = zephir_get_intval(deltaX_param); + rigidity = zephir_get_intval(rigidity_param); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "variable", NULL, 0, variable, &name); + zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&image, &_0); + ZVAL_LONG(&_0, 0); + ZEPHIR_CALL_METHOD(NULL, &image, "setiteratorindex", NULL, 0, &_0); zephir_check_call_status(); - RETURN_MM(); + while (1) { + ZVAL_LONG(&_1$$3, width); + ZVAL_LONG(&_2$$3, height); + ZVAL_LONG(&_3$$3, deltaX); + ZVAL_LONG(&_4$$3, rigidity); + ZEPHIR_CALL_METHOD(&ret, &image, "liquidrescaleimage", &_5, 0, &_1$$3, &_2$$3, &_3$$3, &_4$$3); + zephir_check_call_status(); + if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&ret))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "Imagick::liquidRescale failed", "phalcon/Image/Adapter/Imagick.zep", 308); + return; + } + ZEPHIR_CALL_METHOD(&_6$$3, &image, "nextimage", &_7, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_6$$3)) { + break; + } + } + ZEPHIR_CALL_METHOD(&_8, &image, "getimagewidth", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_8); + ZEPHIR_CALL_METHOD(&_9, &image, "getimageheight", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_9); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_Debug_Dump, setStyles) +static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processMask) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *styles_param = NULL, defaultStyles, _0; - zval styles; + zephir_fcall_cache_entry *_7 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *image, image_sub, mask, ret, _0, _1, _2, _3$$3, _4$$3, _5$$3, _6$$3, _8$$3, _9$$3, _10$$3; zval *this_ptr = getThis(); - ZVAL_UNDEF(&styles); - ZVAL_UNDEF(&defaultStyles); + ZVAL_UNDEF(&image_sub); + ZVAL_UNDEF(&mask); + ZVAL_UNDEF(&ret); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_8$$3); + ZVAL_UNDEF(&_9$$3); + ZVAL_UNDEF(&_10$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(0, 1) - Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(styles) + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_OBJECT_OF_CLASS(image, phalcon_image_adapter_adapterinterface_ce) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 0, 1, &styles_param); - if (!styles_param) { - ZEPHIR_INIT_VAR(&styles); - array_init(&styles); - } else { - ZEPHIR_OBS_COPY_OR_DUP(&styles, styles_param); - } + zephir_fetch_params(1, 1, 0, &image); - ZEPHIR_INIT_VAR(&defaultStyles); - zephir_create_array(&defaultStyles, 11, 0); - add_assoc_stringl_ex(&defaultStyles, SL("pre"), SL("background-color:#f3f3f3; font-size:11px; padding:10px; border:1px solid #ccc; text-align:left; color:#333")); - add_assoc_stringl_ex(&defaultStyles, SL("arr"), SL("color:red")); - add_assoc_stringl_ex(&defaultStyles, SL("bool"), SL("color:green")); - add_assoc_stringl_ex(&defaultStyles, SL("float"), SL("color:fuchsia")); - add_assoc_stringl_ex(&defaultStyles, SL("int"), SL("color:blue")); - add_assoc_stringl_ex(&defaultStyles, SL("null"), SL("color:black")); - add_assoc_stringl_ex(&defaultStyles, SL("num"), SL("color:navy")); - add_assoc_stringl_ex(&defaultStyles, SL("obj"), SL("color:purple")); - add_assoc_stringl_ex(&defaultStyles, SL("other"), SL("color:maroon")); - add_assoc_stringl_ex(&defaultStyles, SL("res"), SL("color:lime")); - add_assoc_stringl_ex(&defaultStyles, SL("str"), SL("color:teal")); - ZEPHIR_INIT_VAR(&_0); - zephir_fast_array_merge(&_0, &defaultStyles, &styles); - zephir_update_property_zval(this_ptr, ZEND_STRL("styles"), &_0); - RETURN_MM_MEMBER(getThis(), "styles"); + ZEPHIR_INIT_VAR(&mask); + object_init_ex(&mask, zephir_get_internal_ce(SL("imagick"))); + ZEPHIR_CALL_METHOD(NULL, &mask, "__construct", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, image, "render", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &mask, "readimageblob", NULL, 0, &_0); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_2, 0); + ZEPHIR_CALL_METHOD(NULL, &_1, "setiteratorindex", NULL, 0, &_2); + zephir_check_call_status(); + while (1) { + zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_4$$3, 1); + ZEPHIR_CALL_METHOD(NULL, &_3$$3, "setimagematte", NULL, 0, &_4$$3); + zephir_check_call_status(); + zephir_read_property(&_4$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_5$$3); + ZVAL_STRING(&_5$$3, "Imagick::COMPOSITE_DSTIN"); + ZEPHIR_CALL_FUNCTION(&_6$$3, "constant", &_7, 128, &_5$$3); + zephir_check_call_status(); + ZVAL_LONG(&_8$$3, 0); + ZVAL_LONG(&_9$$3, 0); + ZEPHIR_CALL_METHOD(&ret, &_4$$3, "compositeimage", NULL, 0, &mask, &_6$$3, &_8$$3, &_9$$3); + zephir_check_call_status(); + if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&ret))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "Imagick::compositeImage failed", "phalcon/Image/Adapter/Imagick.zep", 346); + return; + } + zephir_read_property(&_8$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_10$$3, &_8$$3, "nextimage", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_10$$3)) { + break; + } + } + ZEPHIR_CALL_METHOD(NULL, &mask, "clear", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &mask, "destroy", NULL, 0); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_Debug_Dump, toJson) +static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processPixelate) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *variable, variable_sub, _1; + zval *amount_param = NULL, _0, _1, _2, _3, _4$$3, _5$$3, _6$$3, _7$$3, _8$$3, _9$$3; + zend_long amount, ZEPHIR_LAST_CALL_STATUS, width = 0, height = 0; zval *this_ptr = getThis(); - ZVAL_UNDEF(&variable_sub); + ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_8$$3); + ZVAL_UNDEF(&_9$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ZVAL(variable) + Z_PARAM_LONG(amount) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &variable); + zephir_fetch_params(1, 1, 0, &amount_param); + amount = zephir_get_intval(amount_param); - ZVAL_LONG(&_1, ((128 | 64) | 256)); - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_helper_json_ce, "encode", &_0, 14, variable, &_1); + zephir_read_property(&_0, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + width = (long) (zephir_safe_div_zval_long(&_0, amount)); + zephir_read_property(&_1, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + height = (long) (zephir_safe_div_zval_long(&_1, amount)); + zephir_read_property(&_2, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_3, 0); + ZEPHIR_CALL_METHOD(NULL, &_2, "setiteratorindex", NULL, 0, &_3); zephir_check_call_status(); - RETURN_MM(); + while (1) { + zephir_read_property(&_4$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_5$$3, width); + ZVAL_LONG(&_6$$3, height); + ZEPHIR_CALL_METHOD(NULL, &_4$$3, "scaleimage", NULL, 0, &_5$$3, &_6$$3); + zephir_check_call_status(); + zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_6$$3, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_7$$3, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_5$$3, "scaleimage", NULL, 0, &_6$$3, &_7$$3); + zephir_check_call_status(); + zephir_read_property(&_8$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_9$$3, &_8$$3, "nextimage", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_9$$3)) { + break; + } + } + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_Debug_Dump, variable) +static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processReflection) { - zval _0; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval name; - zval *variable, variable_sub, *name_param = NULL, _1, _2; + zephir_fcall_cache_entry *_5 = NULL, *_7 = NULL, *_11 = NULL, *_13 = NULL, *_14 = NULL, *_16 = NULL, *_21 = NULL, *_24 = NULL, *_27 = NULL, *_29 = NULL, *_35 = NULL, *_38 = NULL, *_40 = NULL, *_43 = NULL, *_48 = NULL, *_55 = NULL; + zend_bool fadeIn, _56$$13; + zval *height_param = NULL, *opacity_param = NULL, *fadeIn_param = NULL, reflection, fade, pseudo, image, pixel, ret, _0, _4, _17, _18, _30, _31, _32, _58, _59, _60, _61, _62, _1$$3, _2$$4, _3$$4, _6$$5, _8$$5, _9$$5, _10$$5, _12$$5, _15$$5, _19$$7, _20$$7, _22$$7, _23$$7, _25$$7, _26$$7, _28$$7, _33$$10, _34$$10, _36$$10, _37$$10, _39$$10, _41$$10, _42$$10, _44$$10, _45$$10, _46$$10, _47$$10, _49$$10, _50$$13, _51$$13, _52$$13, _53$$13, _54$$13, _57$$13; + zend_long height, opacity, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&variable_sub); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&name); + ZVAL_UNDEF(&reflection); + ZVAL_UNDEF(&fade); + ZVAL_UNDEF(&pseudo); + ZVAL_UNDEF(&image); + ZVAL_UNDEF(&pixel); + ZVAL_UNDEF(&ret); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_17); + ZVAL_UNDEF(&_18); + ZVAL_UNDEF(&_30); + ZVAL_UNDEF(&_31); + ZVAL_UNDEF(&_32); + ZVAL_UNDEF(&_58); + ZVAL_UNDEF(&_59); + ZVAL_UNDEF(&_60); + ZVAL_UNDEF(&_61); + ZVAL_UNDEF(&_62); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_3$$4); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_8$$5); + ZVAL_UNDEF(&_9$$5); + ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&_12$$5); + ZVAL_UNDEF(&_15$$5); + ZVAL_UNDEF(&_19$$7); + ZVAL_UNDEF(&_20$$7); + ZVAL_UNDEF(&_22$$7); + ZVAL_UNDEF(&_23$$7); + ZVAL_UNDEF(&_25$$7); + ZVAL_UNDEF(&_26$$7); + ZVAL_UNDEF(&_28$$7); + ZVAL_UNDEF(&_33$$10); + ZVAL_UNDEF(&_34$$10); + ZVAL_UNDEF(&_36$$10); + ZVAL_UNDEF(&_37$$10); + ZVAL_UNDEF(&_39$$10); + ZVAL_UNDEF(&_41$$10); + ZVAL_UNDEF(&_42$$10); + ZVAL_UNDEF(&_44$$10); + ZVAL_UNDEF(&_45$$10); + ZVAL_UNDEF(&_46$$10); + ZVAL_UNDEF(&_47$$10); + ZVAL_UNDEF(&_49$$10); + ZVAL_UNDEF(&_50$$13); + ZVAL_UNDEF(&_51$$13); + ZVAL_UNDEF(&_52$$13); + ZVAL_UNDEF(&_53$$13); + ZVAL_UNDEF(&_54$$13); + ZVAL_UNDEF(&_57$$13); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(variable) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_LONG(height) + Z_PARAM_LONG(opacity) + Z_PARAM_BOOL(fadeIn) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, &variable, &name_param); - if (!name_param) { - ZEPHIR_INIT_VAR(&name); - } else { - zephir_get_strval(&name, name_param); - } + zephir_fetch_params(1, 3, 0, &height_param, &opacity_param, &fadeIn_param); + height = zephir_get_intval(height_param); + opacity = zephir_get_intval(opacity_param); + fadeIn = zephir_get_boolval(fadeIn_param); - ZEPHIR_INIT_VAR(&_0); - zephir_create_array(&_0, 2, 0); - ZEPHIR_INIT_VAR(&_2); - ZVAL_STRING(&_2, "pre"); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "getstyle", NULL, 0, &_2); + zephir_read_static_property_ce(&_0, phalcon_image_adapter_imagick_ce, SL("version"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&reflection); + if (ZEPHIR_GE_LONG(&_0, 30100)) { + zephir_read_property(&_1$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + if (zephir_clone(&reflection, &_1$$3) == FAILURE) { + RETURN_MM(); + } + } else { + zephir_read_property(&_2$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_3$$4, &_2$$4, "clone", NULL, 0); + zephir_check_call_status(); + if (zephir_clone(&reflection, &_3$$4) == FAILURE) { + RETURN_MM(); + } + } + ZVAL_LONG(&_4, 0); + ZEPHIR_CALL_METHOD(NULL, &reflection, "setiteratorindex", NULL, 0, &_4); zephir_check_call_status(); - zephir_array_update_string(&_0, SL(":style"), &_1, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(&_1, this_ptr, "output", NULL, 0, variable, &name); + while (1) { + ZEPHIR_CALL_METHOD(NULL, &reflection, "flipimage", &_5, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_6$$5, &reflection, "getimagewidth", &_7, 0); + zephir_check_call_status(); + ZVAL_LONG(&_8$$5, height); + ZVAL_LONG(&_9$$5, 0); + ZVAL_LONG(&_10$$5, 0); + ZEPHIR_CALL_METHOD(NULL, &reflection, "cropimage", &_11, 0, &_6$$5, &_8$$5, &_9$$5, &_10$$5); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_12$$5, &reflection, "getimagewidth", &_13, 0); + zephir_check_call_status(); + ZVAL_LONG(&_8$$5, height); + ZVAL_LONG(&_9$$5, 0); + ZVAL_LONG(&_10$$5, 0); + ZEPHIR_CALL_METHOD(NULL, &reflection, "setimagepage", &_14, 0, &_12$$5, &_8$$5, &_9$$5, &_10$$5); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_15$$5, &reflection, "nextimage", &_16, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_15$$5)) { + break; + } + } + if (fadeIn) { + ZEPHIR_INIT_VAR(&pseudo); + ZVAL_STRING(&pseudo, "gradient:black-transparent"); + } else { + ZEPHIR_INIT_NVAR(&pseudo); + ZVAL_STRING(&pseudo, "gradient:transparent-black"); + } + ZEPHIR_INIT_VAR(&fade); + object_init_ex(&fade, zephir_get_internal_ce(SL("imagick"))); + ZEPHIR_CALL_METHOD(NULL, &fade, "__construct", NULL, 0); zephir_check_call_status(); - zephir_array_update_string(&_0, SL(":output"), &_1, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_2); - ZVAL_STRING(&_2, "
:output
"); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", NULL, 5, &_2, &_0); + ZEPHIR_CALL_METHOD(&_17, &reflection, "getimagewidth", NULL, 0); zephir_check_call_status(); - RETURN_MM(); + ZEPHIR_CALL_METHOD(&_18, &reflection, "getimageheight", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &fade, "newpseudoimage", NULL, 0, &_17, &_18, &pseudo); + zephir_check_call_status(); + opacity /= 100; + ZVAL_LONG(&_4, 0); + ZEPHIR_CALL_METHOD(NULL, &reflection, "setiteratorindex", NULL, 0, &_4); + zephir_check_call_status(); + while (1) { + ZEPHIR_INIT_NVAR(&_19$$7); + ZVAL_STRING(&_19$$7, "Imagick::COMPOSITE_DSTOUT"); + ZEPHIR_CALL_FUNCTION(&_20$$7, "constant", &_21, 128, &_19$$7); + zephir_check_call_status(); + ZVAL_LONG(&_22$$7, 0); + ZVAL_LONG(&_23$$7, 0); + ZEPHIR_CALL_METHOD(&ret, &reflection, "compositeimage", &_24, 0, &fade, &_20$$7, &_22$$7, &_23$$7); + zephir_check_call_status(); + if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&ret))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "Imagick::compositeImage failed", "phalcon/Image/Adapter/Imagick.zep", 441); + return; + } + ZEPHIR_INIT_NVAR(&_19$$7); + ZVAL_STRING(&_19$$7, "Imagick::EVALUATE_MULTIPLY"); + ZEPHIR_CALL_FUNCTION(&_25$$7, "constant", &_21, 128, &_19$$7); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_19$$7); + ZVAL_STRING(&_19$$7, "Imagick::CHANNEL_ALPHA"); + ZEPHIR_CALL_FUNCTION(&_26$$7, "constant", &_21, 128, &_19$$7); + zephir_check_call_status(); + ZVAL_LONG(&_22$$7, opacity); + ZEPHIR_CALL_METHOD(NULL, &reflection, "evaluateimage", &_27, 0, &_25$$7, &_22$$7, &_26$$7); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_28$$7, &reflection, "nextimage", &_29, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_28$$7)) { + break; + } + } + ZEPHIR_CALL_METHOD(NULL, &fade, "destroy", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&image); + object_init_ex(&image, zephir_get_internal_ce(SL("imagick"))); + ZEPHIR_CALL_METHOD(NULL, &image, "__construct", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&pixel); + object_init_ex(&pixel, zephir_get_internal_ce(SL("imagickpixel"))); + ZEPHIR_CALL_METHOD(NULL, &pixel, "__construct", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_30, &_4, "getimageheight", NULL, 0); + zephir_check_call_status(); + height = (zephir_get_numberval(&_30) + height); + zephir_read_property(&_31, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_32, 0); + ZEPHIR_CALL_METHOD(NULL, &_31, "setiteratorindex", NULL, 0, &_32); + zephir_check_call_status(); + while (1) { + zephir_read_property(&_33$$10, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_34$$10, height); + ZEPHIR_CALL_METHOD(NULL, &image, "newimage", &_35, 0, &_33$$10, &_34$$10, &pixel); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_36$$10); + ZVAL_STRING(&_36$$10, "Imagick::ALPHACHANNEL_SET"); + ZEPHIR_CALL_FUNCTION(&_37$$10, "constant", &_21, 128, &_36$$10); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &image, "setimagealphachannel", &_38, 0, &_37$$10); + zephir_check_call_status(); + zephir_read_property(&_34$$10, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_39$$10, &_34$$10, "getcolorspace", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &image, "setcolorspace", &_40, 0, &_39$$10); + zephir_check_call_status(); + zephir_read_property(&_41$$10, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_42$$10, &_41$$10, "getimagedelay", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &image, "setimagedelay", &_43, 0, &_42$$10); + zephir_check_call_status(); + zephir_read_property(&_44$$10, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_36$$10); + ZVAL_STRING(&_36$$10, "Imagick::COMPOSITE_SRC"); + ZEPHIR_CALL_FUNCTION(&_45$$10, "constant", &_21, 128, &_36$$10); + zephir_check_call_status(); + ZVAL_LONG(&_46$$10, 0); + ZVAL_LONG(&_47$$10, 0); + ZEPHIR_CALL_METHOD(&ret, &image, "compositeimage", &_48, 0, &_44$$10, &_45$$10, &_46$$10, &_47$$10); + zephir_check_call_status(); + if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&ret))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "Imagick::compositeImage failed", "phalcon/Image/Adapter/Imagick.zep", 486); + return; + } + zephir_read_property(&_46$$10, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_49$$10, &_46$$10, "nextimage", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_49$$10)) { + break; + } + } + ZVAL_LONG(&_32, 0); + ZEPHIR_CALL_METHOD(NULL, &image, "setiteratorindex", NULL, 0, &_32); + zephir_check_call_status(); + ZVAL_LONG(&_32, 0); + ZEPHIR_CALL_METHOD(NULL, &reflection, "setiteratorindex", NULL, 0, &_32); + zephir_check_call_status(); + while (1) { + ZEPHIR_INIT_NVAR(&_50$$13); + ZVAL_STRING(&_50$$13, "Imagick::COMPOSITE_OVER"); + ZEPHIR_CALL_FUNCTION(&_51$$13, "constant", &_21, 128, &_50$$13); + zephir_check_call_status(); + zephir_read_property(&_52$$13, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_53$$13, 0); + ZEPHIR_CALL_METHOD(&ret, &image, "compositeimage", &_48, 0, &reflection, &_51$$13, &_53$$13, &_52$$13); + zephir_check_call_status(); + if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&ret))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "Imagick::compositeImage failed", "phalcon/Image/Adapter/Imagick.zep", 506); + return; + } + ZEPHIR_CALL_METHOD(&_54$$13, &image, "nextimage", &_55, 0); + zephir_check_call_status(); + _56$$13 = ZEPHIR_IS_FALSE_IDENTICAL(&_54$$13); + if (!(_56$$13)) { + ZEPHIR_CALL_METHOD(&_57$$13, &reflection, "nextimage", NULL, 0); + zephir_check_call_status(); + _56$$13 = ZEPHIR_IS_FALSE_IDENTICAL(&_57$$13); + } + if (_56$$13) { + break; + } + } + ZEPHIR_CALL_METHOD(NULL, &reflection, "destroy", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_32, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_32, "clear", NULL, 0); + zephir_check_call_status(); + zephir_read_property(&_58, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_58, "destroy", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("image"), &image); + zephir_read_property(&_59, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_60, &_59, "getimagewidth", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_60); + zephir_read_property(&_61, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_62, &_61, "getimageheight", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_62); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_Debug_Dump, variables) +static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processRender) { - zend_string *_4; - zend_ulong _3; - zval output; - zval key, value, _0, *_1, _2, _5$$3, _6$$3, _8$$4, _9$$4; + zend_bool _8$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_7 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; + zend_long quality, ZEPHIR_LAST_CALL_STATUS; + zval *extension_param = NULL, *quality_param = NULL, image, _0, _1, _2, _3, _4, _5, _6$$4, _7$$4, _9$$4, _12$$4, _10$$5, _11$$5; + zval extension; zval *this_ptr = getThis(); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); + ZVAL_UNDEF(&extension); + ZVAL_UNDEF(&image); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_5$$3); - ZVAL_UNDEF(&_6$$3); - ZVAL_UNDEF(&_8$$4); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_7$$4); ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&output); + ZVAL_UNDEF(&_12$$4); + ZVAL_UNDEF(&_10$$5); + ZVAL_UNDEF(&_11$$5); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(extension) + Z_PARAM_LONG(quality) + ZEND_PARSE_PARAMETERS_END(); +#endif ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 2, 0, &extension_param, &quality_param); + zephir_get_strval(&extension, extension_param); + quality = zephir_get_intval(quality_param); - ZEPHIR_INIT_VAR(&output); - ZEPHIR_INIT_VAR(&_0); - zephir_get_args(&_0); - zephir_is_iterable(&_0, 0, "phalcon/Support/Debug/Dump.zep", 181); - if (Z_TYPE_P(&_0) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_0), _3, _4, _1) - { - ZEPHIR_INIT_NVAR(&key); - if (_4 != NULL) { - ZVAL_STR_COPY(&key, _4); - } else { - ZVAL_LONG(&key, _3); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _1); - ZEPHIR_INIT_NVAR(&_6$$3); - ZEPHIR_CONCAT_SV(&_6$$3, "var ", &key); - ZEPHIR_CALL_METHOD(&_5$$3, this_ptr, "one", &_7, 0, &value, &_6$$3); - zephir_check_call_status(); - zephir_concat_self(&output, &_5$$3); - } ZEND_HASH_FOREACH_END(); + + zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&image, &_0); + ZEPHIR_CALL_METHOD(NULL, &image, "setformat", NULL, 0, &extension); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &image, "setimageformat", NULL, 0, &extension); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &image, "stripimage", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_1, &image, "getimagetype", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_1); + ZEPHIR_CALL_METHOD(&_2, &image, "getimageformat", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_3); + ZEPHIR_CONCAT_SV(&_3, "image/", &_2); + zephir_update_property_zval(this_ptr, ZEND_STRL("mime"), &_3); + ZEPHIR_INIT_VAR(&_4); + ZVAL_STRING(&_4, "gif"); + ZEPHIR_CALL_FUNCTION(&_5, "strcasecmp", NULL, 47, &extension, &_4); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG_IDENTICAL(&_5, 0)) { + ZEPHIR_CALL_METHOD(NULL, &image, "optimizeimagelayers", NULL, 0); + zephir_check_call_status(); } else { - ZEPHIR_CALL_METHOD(NULL, &_0, "rewind", NULL, 0); + ZEPHIR_INIT_VAR(&_6$$4); + ZVAL_STRING(&_6$$4, "jpg"); + ZEPHIR_CALL_FUNCTION(&_7$$4, "strcasecmp", NULL, 47, &extension, &_6$$4); zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_2, &_0, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_2)) { - break; - } - ZEPHIR_CALL_METHOD(&key, &_0, "key", NULL, 0); + _8$$4 = ZEPHIR_IS_LONG_IDENTICAL(&_7$$4, 0); + if (!(_8$$4)) { + ZEPHIR_INIT_NVAR(&_6$$4); + ZVAL_STRING(&_6$$4, "jpeg"); + ZEPHIR_CALL_FUNCTION(&_9$$4, "strcasecmp", NULL, 47, &extension, &_6$$4); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &_0, "current", NULL, 0); + _8$$4 = ZEPHIR_IS_LONG_IDENTICAL(&_9$$4, 0); + } + if (_8$$4) { + ZEPHIR_INIT_VAR(&_10$$5); + ZVAL_STRING(&_10$$5, "Imagick::COMPRESSION_JPEG"); + ZEPHIR_CALL_FUNCTION(&_11$$5, "constant", NULL, 128, &_10$$5); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_9$$4); - ZEPHIR_CONCAT_SV(&_9$$4, "var ", &key); - ZEPHIR_CALL_METHOD(&_8$$4, this_ptr, "one", &_7, 0, &value, &_9$$4); - zephir_check_call_status(); - zephir_concat_self(&output, &_8$$4); - ZEPHIR_CALL_METHOD(NULL, &_0, "next", NULL, 0); + ZEPHIR_CALL_METHOD(NULL, &image, "setimagecompression", NULL, 0, &_11$$5); zephir_check_call_status(); } + ZVAL_LONG(&_12$$4, quality); + ZEPHIR_CALL_METHOD(NULL, &image, "setimagecompressionquality", NULL, 0, &_12$$4); + zephir_check_call_status(); } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - RETURN_CTOR(&output); + ZEPHIR_RETURN_CALL_METHOD(&image, "getimageblob", NULL, 0); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Support_Debug_Dump, getStyle) +static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processResize) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *type_param = NULL, style, _0; - zval type; + zephir_fcall_cache_entry *_3 = NULL, *_5 = NULL; + zval *width_param = NULL, *height_param = NULL, image, _0, _6, _7, _1$$3, _2$$3, _4$$3; + zend_long width, height, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&style); + ZVAL_UNDEF(&image); ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_4$$3); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(type) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_LONG(width) + Z_PARAM_LONG(height) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &type_param); - if (UNEXPECTED(Z_TYPE_P(type_param) != IS_STRING && Z_TYPE_P(type_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'type' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(type_param) == IS_STRING)) { - zephir_get_strval(&type, type_param); - } else { - ZEPHIR_INIT_VAR(&type); - } + zephir_fetch_params(1, 2, 0, &width_param, &height_param); + width = zephir_get_intval(width_param); + height = zephir_get_intval(height_param); - zephir_read_property(&_0, this_ptr, ZEND_STRL("styles"), PH_NOISY_CC | PH_READONLY); - if (!(zephir_array_isset_fetch(&style, &_0, &type, 1))) { - RETURN_MM_STRING("color:gray"); + zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CPY_WRT(&image, &_0); + ZVAL_LONG(&_0, 0); + ZEPHIR_CALL_METHOD(NULL, &image, "setiteratorindex", NULL, 0, &_0); + zephir_check_call_status(); + while (1) { + ZVAL_LONG(&_1$$3, width); + ZVAL_LONG(&_2$$3, height); + ZEPHIR_CALL_METHOD(NULL, &image, "scaleimage", &_3, 0, &_1$$3, &_2$$3); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_4$$3, &image, "nextimage", &_5, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_4$$3)) { + break; + } } - RETURN_CTOR(&style); + ZEPHIR_CALL_METHOD(&_6, &image, "getimagewidth", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_6); + ZEPHIR_CALL_METHOD(&_7, &image, "getimageheight", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_7); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Support_Debug_Dump, output) +static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processRotate) { - zend_class_entry *_74$$16, *_91$$17; - zend_bool _15$$5, _16$$5, _17$$5, _27$$7, _28$$7, _29$$7, _42$$9; - zend_string *_7$$4, *_50$$12; - zend_ulong _6$$4, _49$$12; - zval _166, _1$$4, _11$$5, _23$$7, _34$$9, _105$$9, _38$$10, _53$$13, _61$$14, _79$$16, _95$$17, _116$$21, _122$$22, _129$$24, _135$$25, _144$$26, _148$$27, _151$$28, _154$$29, _159$$30, _163$$31; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_10 = NULL, *_19 = NULL, *_71 = NULL, *_72 = NULL, *_75 = NULL, *_77 = NULL, *_85 = NULL, *_88 = NULL, *_89 = NULL, *_93 = NULL, *_101 = NULL; - zend_long tab, ZEPHIR_LAST_CALL_STATUS; - zval name, _0$$3; - zval *variable, variable_sub, *name_param = NULL, *tab_param = NULL, key, value, output, space, type, attr, _147, _167, _168, _2$$4, _3$$4, *_4$$4, _5$$4, _32$$4, _33$$4, _8$$5, _9$$5, _12$$5, _13$$5, _14$$5, _18$$5, _20$$5, _21$$7, _22$$7, _24$$7, _25$$7, _26$$7, _30$$7, _31$$7, _35$$9, _36$$9, _37$$9, _41$$9, _103$$9, _104$$9, _106$$9, _107$$9, _142$$9, _143$$9, _39$$10, _40$$10, _43$$11, _44$$11, _45$$11, _46$$12, *_47$$12, _48$$12, _51$$13, _52$$13, _54$$13, _55$$13, _56$$13, _57$$13, _58$$13, _59$$14, _60$$14, _62$$14, _63$$14, _64$$14, _65$$14, _66$$14, reflect$$15, props$$15, property$$15, _67$$15, *_68$$15, _69$$15, _70$$16, _73$$16, _76$$16, _78$$16, _80$$16, _81$$16, _82$$16, _83$$16, _84$$16, _86$$16, _87$$17, _90$$17, _92$$17, _94$$17, _96$$17, _97$$17, _98$$17, _99$$17, _100$$17, _102$$17, _108$$18, _109$$18, _110$$18, *_111$$19, _112$$19, _139$$19, _140$$19, _141$$19, _113$$20, _114$$21, _115$$21, _117$$21, _118$$21, _119$$21, _120$$22, _121$$22, _123$$22, _124$$22, _125$$22, _126$$23, _127$$24, _128$$24, _130$$24, _131$$24, _132$$24, _133$$25, _134$$25, _136$$25, _137$$25, _138$$25, _145$$26, _146$$26, _149$$27, _150$$27, _152$$28, _153$$28, _155$$29, _156$$29, _157$$29, _158$$29, _160$$30, _161$$30, _162$$30, _164$$31, _165$$31; + zval *degrees_param = NULL, pixel, _0, _1, _9, _10, _11, _2$$3, _3$$3, _4$$3, _5$$3, _6$$3, _7$$3, _8$$3; + zend_long degrees, ZEPHIR_LAST_CALL_STATUS; zval *this_ptr = getThis(); - ZVAL_UNDEF(&variable_sub); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&output); - ZVAL_UNDEF(&space); - ZVAL_UNDEF(&type); - ZVAL_UNDEF(&attr); - ZVAL_UNDEF(&_147); - ZVAL_UNDEF(&_167); - ZVAL_UNDEF(&_168); - ZVAL_UNDEF(&_2$$4); - ZVAL_UNDEF(&_3$$4); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_32$$4); - ZVAL_UNDEF(&_33$$4); - ZVAL_UNDEF(&_8$$5); - ZVAL_UNDEF(&_9$$5); - ZVAL_UNDEF(&_12$$5); - ZVAL_UNDEF(&_13$$5); - ZVAL_UNDEF(&_14$$5); - ZVAL_UNDEF(&_18$$5); - ZVAL_UNDEF(&_20$$5); - ZVAL_UNDEF(&_21$$7); - ZVAL_UNDEF(&_22$$7); - ZVAL_UNDEF(&_24$$7); - ZVAL_UNDEF(&_25$$7); - ZVAL_UNDEF(&_26$$7); - ZVAL_UNDEF(&_30$$7); - ZVAL_UNDEF(&_31$$7); - ZVAL_UNDEF(&_35$$9); - ZVAL_UNDEF(&_36$$9); - ZVAL_UNDEF(&_37$$9); - ZVAL_UNDEF(&_41$$9); - ZVAL_UNDEF(&_103$$9); - ZVAL_UNDEF(&_104$$9); - ZVAL_UNDEF(&_106$$9); - ZVAL_UNDEF(&_107$$9); - ZVAL_UNDEF(&_142$$9); - ZVAL_UNDEF(&_143$$9); - ZVAL_UNDEF(&_39$$10); - ZVAL_UNDEF(&_40$$10); - ZVAL_UNDEF(&_43$$11); - ZVAL_UNDEF(&_44$$11); - ZVAL_UNDEF(&_45$$11); - ZVAL_UNDEF(&_46$$12); - ZVAL_UNDEF(&_48$$12); - ZVAL_UNDEF(&_51$$13); - ZVAL_UNDEF(&_52$$13); - ZVAL_UNDEF(&_54$$13); - ZVAL_UNDEF(&_55$$13); - ZVAL_UNDEF(&_56$$13); - ZVAL_UNDEF(&_57$$13); - ZVAL_UNDEF(&_58$$13); - ZVAL_UNDEF(&_59$$14); - ZVAL_UNDEF(&_60$$14); - ZVAL_UNDEF(&_62$$14); - ZVAL_UNDEF(&_63$$14); - ZVAL_UNDEF(&_64$$14); - ZVAL_UNDEF(&_65$$14); - ZVAL_UNDEF(&_66$$14); - ZVAL_UNDEF(&reflect$$15); - ZVAL_UNDEF(&props$$15); - ZVAL_UNDEF(&property$$15); - ZVAL_UNDEF(&_67$$15); - ZVAL_UNDEF(&_69$$15); - ZVAL_UNDEF(&_70$$16); - ZVAL_UNDEF(&_73$$16); - ZVAL_UNDEF(&_76$$16); - ZVAL_UNDEF(&_78$$16); - ZVAL_UNDEF(&_80$$16); - ZVAL_UNDEF(&_81$$16); - ZVAL_UNDEF(&_82$$16); - ZVAL_UNDEF(&_83$$16); - ZVAL_UNDEF(&_84$$16); - ZVAL_UNDEF(&_86$$16); - ZVAL_UNDEF(&_87$$17); - ZVAL_UNDEF(&_90$$17); - ZVAL_UNDEF(&_92$$17); - ZVAL_UNDEF(&_94$$17); - ZVAL_UNDEF(&_96$$17); - ZVAL_UNDEF(&_97$$17); - ZVAL_UNDEF(&_98$$17); - ZVAL_UNDEF(&_99$$17); - ZVAL_UNDEF(&_100$$17); - ZVAL_UNDEF(&_102$$17); - ZVAL_UNDEF(&_108$$18); - ZVAL_UNDEF(&_109$$18); - ZVAL_UNDEF(&_110$$18); - ZVAL_UNDEF(&_112$$19); - ZVAL_UNDEF(&_139$$19); - ZVAL_UNDEF(&_140$$19); - ZVAL_UNDEF(&_141$$19); - ZVAL_UNDEF(&_113$$20); - ZVAL_UNDEF(&_114$$21); - ZVAL_UNDEF(&_115$$21); - ZVAL_UNDEF(&_117$$21); - ZVAL_UNDEF(&_118$$21); - ZVAL_UNDEF(&_119$$21); - ZVAL_UNDEF(&_120$$22); - ZVAL_UNDEF(&_121$$22); - ZVAL_UNDEF(&_123$$22); - ZVAL_UNDEF(&_124$$22); - ZVAL_UNDEF(&_125$$22); - ZVAL_UNDEF(&_126$$23); - ZVAL_UNDEF(&_127$$24); - ZVAL_UNDEF(&_128$$24); - ZVAL_UNDEF(&_130$$24); - ZVAL_UNDEF(&_131$$24); - ZVAL_UNDEF(&_132$$24); - ZVAL_UNDEF(&_133$$25); - ZVAL_UNDEF(&_134$$25); - ZVAL_UNDEF(&_136$$25); - ZVAL_UNDEF(&_137$$25); - ZVAL_UNDEF(&_138$$25); - ZVAL_UNDEF(&_145$$26); - ZVAL_UNDEF(&_146$$26); - ZVAL_UNDEF(&_149$$27); - ZVAL_UNDEF(&_150$$27); - ZVAL_UNDEF(&_152$$28); - ZVAL_UNDEF(&_153$$28); - ZVAL_UNDEF(&_155$$29); - ZVAL_UNDEF(&_156$$29); - ZVAL_UNDEF(&_157$$29); - ZVAL_UNDEF(&_158$$29); - ZVAL_UNDEF(&_160$$30); - ZVAL_UNDEF(&_161$$30); - ZVAL_UNDEF(&_162$$30); - ZVAL_UNDEF(&_164$$31); - ZVAL_UNDEF(&_165$$31); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&_0$$3); - ZVAL_UNDEF(&_166); - ZVAL_UNDEF(&_1$$4); - ZVAL_UNDEF(&_11$$5); - ZVAL_UNDEF(&_23$$7); - ZVAL_UNDEF(&_34$$9); - ZVAL_UNDEF(&_105$$9); - ZVAL_UNDEF(&_38$$10); - ZVAL_UNDEF(&_53$$13); - ZVAL_UNDEF(&_61$$14); - ZVAL_UNDEF(&_79$$16); - ZVAL_UNDEF(&_95$$17); - ZVAL_UNDEF(&_116$$21); - ZVAL_UNDEF(&_122$$22); - ZVAL_UNDEF(&_129$$24); - ZVAL_UNDEF(&_135$$25); - ZVAL_UNDEF(&_144$$26); - ZVAL_UNDEF(&_148$$27); - ZVAL_UNDEF(&_151$$28); - ZVAL_UNDEF(&_154$$29); - ZVAL_UNDEF(&_159$$30); - ZVAL_UNDEF(&_163$$31); + ZVAL_UNDEF(&pixel); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_11); + ZVAL_UNDEF(&_2$$3); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_8$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(degrees) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, °rees_param); + degrees = zephir_get_intval(degrees_param); + + + zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_1, 0); + ZEPHIR_CALL_METHOD(NULL, &_0, "setiteratorindex", NULL, 0, &_1); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&pixel); + object_init_ex(&pixel, zephir_get_internal_ce(SL("imagickpixel"))); + ZEPHIR_CALL_METHOD(NULL, &pixel, "__construct", NULL, 0); + zephir_check_call_status(); + while (1) { + zephir_read_property(&_2$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_3$$3, degrees); + ZEPHIR_CALL_METHOD(NULL, &_2$$3, "rotateimage", NULL, 0, &pixel, &_3$$3); + zephir_check_call_status(); + zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_4$$3, this_ptr, ZEND_STRL("width"), PH_NOISY_CC | PH_READONLY); + zephir_read_property(&_5$$3, this_ptr, ZEND_STRL("height"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_6$$3, 0); + ZVAL_LONG(&_7$$3, 0); + ZEPHIR_CALL_METHOD(NULL, &_3$$3, "setimagepage", NULL, 0, &_4$$3, &_5$$3, &_6$$3, &_7$$3); + zephir_check_call_status(); + zephir_read_property(&_6$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_8$$3, &_6$$3, "nextimage", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_8$$3)) { + break; + } + } + zephir_read_property(&_1, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_9, &_1, "getimagewidth", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("width"), &_9); + zephir_read_property(&_10, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_11, &_10, "getimageheight", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("height"), &_11); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processSave) +{ + zend_bool _13; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long quality, ZEPHIR_LAST_CALL_STATUS; + zval *file_param = NULL, *quality_param = NULL, ext, fp, _0, _1, _2, _3, _4, _5, _6, _7, _8, _12, _14, _20, _9$$3, _10$$3, _11$$3, _15$$4, _16$$4, _17$$4, _18$$5, _19$$5; + zval file; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&file); + ZVAL_UNDEF(&ext); + ZVAL_UNDEF(&fp); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_7); + ZVAL_UNDEF(&_8); + ZVAL_UNDEF(&_12); + ZVAL_UNDEF(&_14); + ZVAL_UNDEF(&_20); + ZVAL_UNDEF(&_9$$3); + ZVAL_UNDEF(&_10$$3); + ZVAL_UNDEF(&_11$$3); + ZVAL_UNDEF(&_15$$4); + ZVAL_UNDEF(&_16$$4); + ZVAL_UNDEF(&_17$$4); + ZVAL_UNDEF(&_18$$5); + ZVAL_UNDEF(&_19$$5); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 3) - Z_PARAM_ZVAL(variable) - Z_PARAM_OPTIONAL - Z_PARAM_STR_OR_NULL(name) - Z_PARAM_LONG(tab) + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(file) + Z_PARAM_LONG(quality) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 2, &variable, &name_param, &tab_param); - if (!name_param) { - ZEPHIR_INIT_VAR(&name); - } else { - zephir_get_strval(&name, name_param); - } - if (!tab_param) { - tab = 1; - } else { - tab = zephir_get_intval(tab_param); - } + zephir_fetch_params(1, 2, 0, &file_param, &quality_param); + zephir_get_strval(&file, file_param); + quality = zephir_get_intval(quality_param); - ZEPHIR_INIT_VAR(&space); - ZVAL_STRING(&space, " "); - ZEPHIR_INIT_VAR(&output); - ZVAL_STRING(&output, ""); - if (!(ZEPHIR_IS_EMPTY(&name))) { - ZEPHIR_INIT_VAR(&_0$$3); - ZEPHIR_CONCAT_VS(&_0$$3, &name, " "); - ZEPHIR_CPY_WRT(&output, &_0$$3); - } - if (Z_TYPE_P(variable) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&_1$$4); - zephir_create_array(&_1$$4, 2, 0); - ZEPHIR_INIT_VAR(&_3$$4); - ZVAL_STRING(&_3$$4, "arr"); - ZEPHIR_CALL_METHOD(&_2$$4, this_ptr, "getstyle", NULL, 0, &_3$$4); + ZVAL_LONG(&_0, 4); + ZEPHIR_CALL_FUNCTION(&ext, "pathinfo", NULL, 109, &file, &_0); + zephir_check_call_status(); + zephir_read_property(&_0, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_0, "setformat", NULL, 0, &ext); + zephir_check_call_status(); + zephir_read_property(&_1, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_1, "setimageformat", NULL, 0, &ext); + zephir_check_call_status(); + zephir_read_property(&_2, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_3, &_2, "getimagetype", NULL, 0); + zephir_check_call_status(); + zephir_update_property_zval(this_ptr, ZEND_STRL("type"), &_3); + zephir_read_property(&_4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_5, &_4, "getimageformat", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_6); + ZEPHIR_CONCAT_SV(&_6, "image/", &_5); + zephir_update_property_zval(this_ptr, ZEND_STRL("mime"), &_6); + ZEPHIR_INIT_VAR(&_7); + ZVAL_STRING(&_7, "gif"); + ZEPHIR_CALL_FUNCTION(&_8, "strcasecmp", NULL, 47, &ext, &_7); + zephir_check_call_status(); + if (ZEPHIR_IS_LONG(&_8, 0)) { + zephir_read_property(&_9$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_9$$3, "optimizeimagelayers", NULL, 0); zephir_check_call_status(); - zephir_array_update_string(&_1$$4, SL(":style"), &_2$$4, PH_COPY | PH_SEPARATE); - add_assoc_long_ex(&_1$$4, SL(":count"), zephir_fast_count_int(variable)); - ZEPHIR_INIT_NVAR(&_3$$4); - ZVAL_STRING(&_3$$4, "Array (:count) (\n"); - ZEPHIR_CALL_FUNCTION(&_2$$4, "strtr", NULL, 5, &_3$$4, &_1$$4); + ZEPHIR_INIT_VAR(&_10$$3); + ZVAL_STRING(&_10$$3, "w"); + ZEPHIR_CALL_FUNCTION(&fp, "fopen", NULL, 89, &file, &_10$$3); zephir_check_call_status(); - zephir_concat_self(&output, &_2$$4); - zephir_is_iterable(variable, 0, "phalcon/Support/Debug/Dump.zep", 231); - if (Z_TYPE_P(variable) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(variable), _6$$4, _7$$4, _4$$4) - { - ZEPHIR_INIT_NVAR(&key); - if (_7$$4 != NULL) { - ZVAL_STR_COPY(&key, _7$$4); - } else { - ZVAL_LONG(&key, _6$$4); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _4$$4); - ZVAL_LONG(&_8$$5, tab); - ZEPHIR_CALL_FUNCTION(&_9$$5, "str_repeat", &_10, 1, &space, &_8$$5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_11$$5); - zephir_create_array(&_11$$5, 2, 0); - ZEPHIR_INIT_NVAR(&_13$$5); - ZVAL_STRING(&_13$$5, "arr"); - ZEPHIR_CALL_METHOD(&_12$$5, this_ptr, "getstyle", NULL, 0, &_13$$5); - zephir_check_call_status(); - zephir_array_update_string(&_11$$5, SL(":style"), &_12$$5, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_11$$5, SL(":key"), &key, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_13$$5); - ZVAL_STRING(&_13$$5, "[:key] => "); - ZEPHIR_CALL_FUNCTION(&_12$$5, "strtr", NULL, 5, &_13$$5, &_11$$5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_14$$5); - ZEPHIR_CONCAT_VV(&_14$$5, &_9$$5, &_12$$5); - zephir_concat_self(&output, &_14$$5); - _15$$5 = tab == 1; - if (_15$$5) { - _15$$5 = !ZEPHIR_IS_STRING(&name, ""); - } - _16$$5 = _15$$5; - if (_16$$5) { - _16$$5 = !(Z_TYPE_P(&key) == IS_LONG); - } - _17$$5 = _16$$5; - if (_17$$5) { - _17$$5 = ZEPHIR_IS_EQUAL(&name, &key); - } - if (_17$$5) { - continue; - } - ZEPHIR_INIT_NVAR(&_13$$5); - ZVAL_STRING(&_13$$5, ""); - ZVAL_LONG(&_8$$5, (tab + 1)); - ZEPHIR_CALL_METHOD(&_18$$5, this_ptr, "output", &_19, 0, &value, &_13$$5, &_8$$5); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_20$$5); - ZEPHIR_CONCAT_VS(&_20$$5, &_18$$5, "\n"); - zephir_concat_self(&output, &_20$$5); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, variable, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_5$$4, variable, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_5$$4)) { - break; - } - ZEPHIR_CALL_METHOD(&key, variable, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, variable, "current", NULL, 0); - zephir_check_call_status(); - ZVAL_LONG(&_21$$7, tab); - ZEPHIR_CALL_FUNCTION(&_22$$7, "str_repeat", &_10, 1, &space, &_21$$7); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_23$$7); - zephir_create_array(&_23$$7, 2, 0); - ZEPHIR_INIT_NVAR(&_25$$7); - ZVAL_STRING(&_25$$7, "arr"); - ZEPHIR_CALL_METHOD(&_24$$7, this_ptr, "getstyle", NULL, 0, &_25$$7); - zephir_check_call_status(); - zephir_array_update_string(&_23$$7, SL(":style"), &_24$$7, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_23$$7, SL(":key"), &key, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_25$$7); - ZVAL_STRING(&_25$$7, "[:key] => "); - ZEPHIR_CALL_FUNCTION(&_24$$7, "strtr", NULL, 5, &_25$$7, &_23$$7); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_26$$7); - ZEPHIR_CONCAT_VV(&_26$$7, &_22$$7, &_24$$7); - zephir_concat_self(&output, &_26$$7); - _27$$7 = tab == 1; - if (_27$$7) { - _27$$7 = !ZEPHIR_IS_STRING(&name, ""); - } - _28$$7 = _27$$7; - if (_28$$7) { - _28$$7 = !(Z_TYPE_P(&key) == IS_LONG); - } - _29$$7 = _28$$7; - if (_29$$7) { - _29$$7 = ZEPHIR_IS_EQUAL(&name, &key); - } - if (_29$$7) { - continue; - } - ZEPHIR_INIT_NVAR(&_25$$7); - ZVAL_STRING(&_25$$7, ""); - ZVAL_LONG(&_21$$7, (tab + 1)); - ZEPHIR_CALL_METHOD(&_30$$7, this_ptr, "output", &_19, 0, &value, &_25$$7, &_21$$7); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_31$$7); - ZEPHIR_CONCAT_VS(&_31$$7, &_30$$7, "\n"); - zephir_concat_self(&output, &_31$$7); - ZEPHIR_CALL_METHOD(NULL, variable, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - ZVAL_LONG(&_32$$4, (tab - 1)); - ZEPHIR_CALL_FUNCTION(&_33$$4, "str_repeat", &_10, 1, &space, &_32$$4); + zephir_read_property(&_11$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_11$$3, "writeimagesfile", NULL, 0, &fp); zephir_check_call_status(); - ZEPHIR_CONCAT_VVS(return_value, &output, &_33$$4, ")"); - RETURN_MM(); + zephir_fclose(&fp); + RETURN_MM_NULL(); } - if (Z_TYPE_P(variable) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_34$$9); - zephir_create_array(&_34$$9, 2, 0); - ZEPHIR_INIT_VAR(&_36$$9); - ZVAL_STRING(&_36$$9, "obj"); - ZEPHIR_CALL_METHOD(&_35$$9, this_ptr, "getstyle", NULL, 0, &_36$$9); + ZEPHIR_INIT_NVAR(&_7); + ZVAL_STRING(&_7, "jpg"); + ZEPHIR_CALL_FUNCTION(&_12, "strcasecmp", NULL, 47, &ext, &_7); + zephir_check_call_status(); + _13 = ZEPHIR_IS_LONG(&_12, 0); + if (!(_13)) { + ZEPHIR_INIT_NVAR(&_7); + ZVAL_STRING(&_7, "jpeg"); + ZEPHIR_CALL_FUNCTION(&_14, "strcasecmp", NULL, 47, &ext, &_7); zephir_check_call_status(); - zephir_array_update_string(&_34$$9, SL(":style"), &_35$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_36$$9); - zephir_get_class(&_36$$9, variable, 0); - zephir_array_update_string(&_34$$9, SL(":class"), &_36$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_36$$9); - ZVAL_STRING(&_36$$9, "Object :class"); - ZEPHIR_CALL_FUNCTION(&_35$$9, "strtr", NULL, 5, &_36$$9, &_34$$9); + _13 = ZEPHIR_IS_LONG(&_14, 0); + } + if (_13) { + zephir_read_property(&_15$$4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_VAR(&_16$$4); + ZVAL_STRING(&_16$$4, "Imagick::COMPRESSION_JPEG"); + ZEPHIR_CALL_FUNCTION(&_17$$4, "constant", NULL, 128, &_16$$4); zephir_check_call_status(); - zephir_concat_self(&output, &_35$$9); - ZEPHIR_CALL_FUNCTION(&_37$$9, "get_parent_class", NULL, 0, variable); + ZEPHIR_CALL_METHOD(NULL, &_15$$4, "setimagecompression", NULL, 0, &_17$$4); zephir_check_call_status(); - if (zephir_is_true(&_37$$9)) { - ZEPHIR_INIT_VAR(&_38$$10); - zephir_create_array(&_38$$10, 2, 0); - ZEPHIR_INIT_VAR(&_40$$10); - ZVAL_STRING(&_40$$10, "obj"); - ZEPHIR_CALL_METHOD(&_39$$10, this_ptr, "getstyle", NULL, 0, &_40$$10); - zephir_check_call_status(); - zephir_array_update_string(&_38$$10, SL(":style"), &_39$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_FUNCTION(&_39$$10, "get_parent_class", NULL, 0, variable); - zephir_check_call_status(); - zephir_array_update_string(&_38$$10, SL(":parent"), &_39$$10, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_40$$10); - ZVAL_STRING(&_40$$10, " extends :parent"); - ZEPHIR_CALL_FUNCTION(&_39$$10, "strtr", NULL, 5, &_40$$10, &_38$$10); - zephir_check_call_status(); - zephir_concat_self(&output, &_39$$10); - } - zephir_concat_self_str(&output, SL(" (\n")); - zephir_read_property(&_41$$9, this_ptr, ZEND_STRL("detailed"), PH_NOISY_CC | PH_READONLY); - _42$$9 = !zephir_is_true(&_41$$9); - if (!(_42$$9)) { - _42$$9 = zephir_is_instance_of(variable, SL("stdClass")); - } - if (zephir_instance_of_ev(variable, phalcon_di_ce)) { - ZVAL_LONG(&_43$$11, tab); - ZEPHIR_CALL_FUNCTION(&_44$$11, "str_repeat", &_10, 1, &space, &_43$$11); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_45$$11); - ZEPHIR_CONCAT_VS(&_45$$11, &_44$$11, "[skipped]\n"); - zephir_concat_self(&output, &_45$$11); - } else if (_42$$9) { - ZEPHIR_CALL_FUNCTION(&_46$$12, "get_object_vars", NULL, 438, variable); - zephir_check_call_status(); - zephir_is_iterable(&_46$$12, 0, "phalcon/Support/Debug/Dump.zep", 263); - if (Z_TYPE_P(&_46$$12) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&_46$$12), _49$$12, _50$$12, _47$$12) - { - ZEPHIR_INIT_NVAR(&key); - if (_50$$12 != NULL) { - ZVAL_STR_COPY(&key, _50$$12); - } else { - ZVAL_LONG(&key, _49$$12); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _47$$12); - ZVAL_LONG(&_51$$13, tab); - ZEPHIR_CALL_FUNCTION(&_52$$13, "str_repeat", &_10, 1, &space, &_51$$13); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_53$$13); - zephir_create_array(&_53$$13, 3, 0); - ZEPHIR_INIT_NVAR(&_55$$13); - ZVAL_STRING(&_55$$13, "obj"); - ZEPHIR_CALL_METHOD(&_54$$13, this_ptr, "getstyle", NULL, 0, &_55$$13); - zephir_check_call_status(); - zephir_array_update_string(&_53$$13, SL(":style"), &_54$$13, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_53$$13, SL(":key"), &key, PH_COPY | PH_SEPARATE); - add_assoc_stringl_ex(&_53$$13, SL(":type"), SL("public")); - ZEPHIR_INIT_NVAR(&_55$$13); - ZVAL_STRING(&_55$$13, "->:key (:type) = "); - ZEPHIR_CALL_FUNCTION(&_54$$13, "strtr", NULL, 5, &_55$$13, &_53$$13); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_56$$13); - ZEPHIR_CONCAT_VV(&_56$$13, &_52$$13, &_54$$13); - zephir_concat_self(&output, &_56$$13); - ZEPHIR_INIT_NVAR(&_55$$13); - ZVAL_STRING(&_55$$13, ""); - ZVAL_LONG(&_51$$13, (tab + 1)); - ZEPHIR_CALL_METHOD(&_57$$13, this_ptr, "output", &_19, 0, &value, &_55$$13, &_51$$13); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_58$$13); - ZEPHIR_CONCAT_VS(&_58$$13, &_57$$13, "\n"); - zephir_concat_self(&output, &_58$$13); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &_46$$12, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_48$$12, &_46$$12, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_48$$12)) { - break; - } - ZEPHIR_CALL_METHOD(&key, &_46$$12, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &_46$$12, "current", NULL, 0); - zephir_check_call_status(); - ZVAL_LONG(&_59$$14, tab); - ZEPHIR_CALL_FUNCTION(&_60$$14, "str_repeat", &_10, 1, &space, &_59$$14); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_61$$14); - zephir_create_array(&_61$$14, 3, 0); - ZEPHIR_INIT_NVAR(&_63$$14); - ZVAL_STRING(&_63$$14, "obj"); - ZEPHIR_CALL_METHOD(&_62$$14, this_ptr, "getstyle", NULL, 0, &_63$$14); - zephir_check_call_status(); - zephir_array_update_string(&_61$$14, SL(":style"), &_62$$14, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_61$$14, SL(":key"), &key, PH_COPY | PH_SEPARATE); - add_assoc_stringl_ex(&_61$$14, SL(":type"), SL("public")); - ZEPHIR_INIT_NVAR(&_63$$14); - ZVAL_STRING(&_63$$14, "->:key (:type) = "); - ZEPHIR_CALL_FUNCTION(&_62$$14, "strtr", NULL, 5, &_63$$14, &_61$$14); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_64$$14); - ZEPHIR_CONCAT_VV(&_64$$14, &_60$$14, &_62$$14); - zephir_concat_self(&output, &_64$$14); - ZEPHIR_INIT_NVAR(&_63$$14); - ZVAL_STRING(&_63$$14, ""); - ZVAL_LONG(&_59$$14, (tab + 1)); - ZEPHIR_CALL_METHOD(&_65$$14, this_ptr, "output", &_19, 0, &value, &_63$$14, &_59$$14); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_66$$14); - ZEPHIR_CONCAT_VS(&_66$$14, &_65$$14, "\n"); - zephir_concat_self(&output, &_66$$14); - ZEPHIR_CALL_METHOD(NULL, &_46$$12, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - } else { - ZEPHIR_INIT_VAR(&reflect$$15); - object_init_ex(&reflect$$15, zephir_get_internal_ce(SL("reflectionclass"))); - ZEPHIR_CALL_METHOD(NULL, &reflect$$15, "__construct", NULL, 156, variable); - zephir_check_call_status(); - ZVAL_LONG(&_67$$15, ((1 | 2) | 4)); - ZEPHIR_CALL_METHOD(&props$$15, &reflect$$15, "getproperties", NULL, 160, &_67$$15); - zephir_check_call_status(); - zephir_is_iterable(&props$$15, 0, "phalcon/Support/Debug/Dump.zep", 289); - if (Z_TYPE_P(&props$$15) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&props$$15), _68$$15) - { - ZEPHIR_INIT_NVAR(&property$$15); - ZVAL_COPY(&property$$15, _68$$15); - ZVAL_BOOL(&_70$$16, 1); - ZEPHIR_CALL_METHOD(NULL, &property$$15, "setaccessible", &_71, 0, &_70$$16); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&key, &property$$15, "getname", &_72, 0); - zephir_check_call_status(); - _74$$16 = zephir_fetch_class_str_ex(SL("Reflection"), ZEND_FETCH_CLASS_AUTO); - ZEPHIR_CALL_METHOD(&_76$$16, &property$$15, "getmodifiers", &_77, 0); - zephir_check_call_status(); - ZEPHIR_CALL_CE_STATIC(&_73$$16, _74$$16, "getmodifiernames", &_75, 0, &_76$$16); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&type); - zephir_fast_join_str(&type, SL(" "), &_73$$16); - ZVAL_LONG(&_70$$16, tab); - ZEPHIR_CALL_FUNCTION(&_78$$16, "str_repeat", &_10, 1, &space, &_70$$16); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_79$$16); - zephir_create_array(&_79$$16, 3, 0); - ZEPHIR_INIT_NVAR(&_81$$16); - ZVAL_STRING(&_81$$16, "obj"); - ZEPHIR_CALL_METHOD(&_80$$16, this_ptr, "getstyle", NULL, 0, &_81$$16); - zephir_check_call_status(); - zephir_array_update_string(&_79$$16, SL(":style"), &_80$$16, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_79$$16, SL(":key"), &key, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_79$$16, SL(":type"), &type, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_81$$16); - ZVAL_STRING(&_81$$16, "->:key (:type) = "); - ZEPHIR_CALL_FUNCTION(&_80$$16, "strtr", NULL, 5, &_81$$16, &_79$$16); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_82$$16); - ZEPHIR_CONCAT_VV(&_82$$16, &_78$$16, &_80$$16); - zephir_concat_self(&output, &_82$$16); - ZEPHIR_CALL_METHOD(&_84$$16, &property$$15, "getvalue", &_85, 0, variable); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_81$$16); - ZVAL_STRING(&_81$$16, ""); - ZVAL_LONG(&_70$$16, (tab + 1)); - ZEPHIR_CALL_METHOD(&_83$$16, this_ptr, "output", &_19, 0, &_84$$16, &_81$$16, &_70$$16); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_86$$16); - ZEPHIR_CONCAT_VS(&_86$$16, &_83$$16, "\n"); - zephir_concat_self(&output, &_86$$16); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &props$$15, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_69$$15, &props$$15, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_69$$15)) { - break; - } - ZEPHIR_CALL_METHOD(&property$$15, &props$$15, "current", NULL, 0); - zephir_check_call_status(); - ZVAL_BOOL(&_87$$17, 1); - ZEPHIR_CALL_METHOD(NULL, &property$$15, "setaccessible", &_88, 0, &_87$$17); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&key, &property$$15, "getname", &_89, 0); - zephir_check_call_status(); - _91$$17 = zephir_fetch_class_str_ex(SL("Reflection"), ZEND_FETCH_CLASS_AUTO); - ZEPHIR_CALL_METHOD(&_92$$17, &property$$15, "getmodifiers", &_93, 0); - zephir_check_call_status(); - ZEPHIR_CALL_CE_STATIC(&_90$$17, _91$$17, "getmodifiernames", &_75, 0, &_92$$17); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&type); - zephir_fast_join_str(&type, SL(" "), &_90$$17); - ZVAL_LONG(&_87$$17, tab); - ZEPHIR_CALL_FUNCTION(&_94$$17, "str_repeat", &_10, 1, &space, &_87$$17); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_95$$17); - zephir_create_array(&_95$$17, 3, 0); - ZEPHIR_INIT_NVAR(&_97$$17); - ZVAL_STRING(&_97$$17, "obj"); - ZEPHIR_CALL_METHOD(&_96$$17, this_ptr, "getstyle", NULL, 0, &_97$$17); - zephir_check_call_status(); - zephir_array_update_string(&_95$$17, SL(":style"), &_96$$17, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_95$$17, SL(":key"), &key, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_95$$17, SL(":type"), &type, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_97$$17); - ZVAL_STRING(&_97$$17, "->:key (:type) = "); - ZEPHIR_CALL_FUNCTION(&_96$$17, "strtr", NULL, 5, &_97$$17, &_95$$17); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_98$$17); - ZEPHIR_CONCAT_VV(&_98$$17, &_94$$17, &_96$$17); - zephir_concat_self(&output, &_98$$17); - ZEPHIR_CALL_METHOD(&_100$$17, &property$$15, "getvalue", &_101, 0, variable); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_97$$17); - ZVAL_STRING(&_97$$17, ""); - ZVAL_LONG(&_87$$17, (tab + 1)); - ZEPHIR_CALL_METHOD(&_99$$17, this_ptr, "output", &_19, 0, &_100$$17, &_97$$17, &_87$$17); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_102$$17); - ZEPHIR_CONCAT_VS(&_102$$17, &_99$$17, "\n"); - zephir_concat_self(&output, &_102$$17); - ZEPHIR_CALL_METHOD(NULL, &props$$15, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&property$$15); + } + if (quality >= 0) { + if (quality < 1) { + quality = 1; + } else if (quality > 100) { + quality = 100; } - ZEPHIR_CALL_FUNCTION(&attr, "get_class_methods", NULL, 0, variable); + zephir_read_property(&_18$$5, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_19$$5, quality); + ZEPHIR_CALL_METHOD(NULL, &_18$$5, "setimagecompressionquality", NULL, 0, &_19$$5); zephir_check_call_status(); - ZVAL_LONG(&_103$$9, tab); - ZEPHIR_CALL_FUNCTION(&_104$$9, "str_repeat", &_10, 1, &space, &_103$$9); + } + zephir_read_property(&_20, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(NULL, &_20, "writeimage", NULL, 0, &file); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processSharpen) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zval *amount_param = NULL, _0, _1, _2, _3$$3, _4$$3, _5$$3, _6$$3; + zend_long amount, ZEPHIR_LAST_CALL_STATUS; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3$$3); + ZVAL_UNDEF(&_4$$3); + ZVAL_UNDEF(&_5$$3); + ZVAL_UNDEF(&_6$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_LONG(amount) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &amount_param); + amount = zephir_get_intval(amount_param); + + + ZEPHIR_INIT_VAR(&_0); + if (amount < 5) { + ZEPHIR_INIT_NVAR(&_0); + ZVAL_LONG(&_0, 5); + } else { + ZEPHIR_INIT_NVAR(&_0); + ZVAL_LONG(&_0, amount); + } + amount = zephir_get_numberval(&_0); + amount = (long) (zephir_safe_div_long_long(((amount * 3.0)), 100)); + zephir_read_property(&_1, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_2, 0); + ZEPHIR_CALL_METHOD(NULL, &_1, "setiteratorindex", NULL, 0, &_2); + zephir_check_call_status(); + while (1) { + zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_4$$3, 0); + ZVAL_LONG(&_5$$3, amount); + ZEPHIR_CALL_METHOD(NULL, &_3$$3, "sharpenimage", NULL, 0, &_4$$3, &_5$$3); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_105$$9); - zephir_create_array(&_105$$9, 3, 0); - ZEPHIR_INIT_NVAR(&_36$$9); - ZVAL_STRING(&_36$$9, "obj"); - ZEPHIR_CALL_METHOD(&_106$$9, this_ptr, "getstyle", NULL, 0, &_36$$9); + zephir_read_property(&_4$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_6$$3, &_4$$3, "nextimage", NULL, 0); zephir_check_call_status(); - zephir_array_update_string(&_105$$9, SL(":style"), &_106$$9, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_36$$9); - zephir_get_class(&_36$$9, variable, 0); - zephir_array_update_string(&_105$$9, SL(":class"), &_36$$9, PH_COPY | PH_SEPARATE); - add_assoc_long_ex(&_105$$9, SL(":count"), zephir_fast_count_int(&attr)); - ZEPHIR_INIT_NVAR(&_36$$9); - ZVAL_STRING(&_36$$9, ":class methods: (:count) (\n"); - ZEPHIR_CALL_FUNCTION(&_106$$9, "strtr", NULL, 5, &_36$$9, &_105$$9); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_6$$3)) { + break; + } + } + ZEPHIR_MM_RESTORE(); +} + +static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processText) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long opacity, r, g, b, size, ZEPHIR_LAST_CALL_STATUS, x = 0, y = 0; + zval *text_param = NULL, *offsetX = NULL, offsetX_sub, *offsetY = NULL, offsetY_sub, *opacity_param = NULL, *r_param = NULL, *g_param = NULL, *b_param = NULL, *size_param = NULL, *fontfile_param = NULL, draw, color, gravity, _0, _1, _2, _3, _4$$4, _5$$5, _6$$7, _7$$11, _8$$12, _9$$14, _10$$15, _11$$21, _12$$22, _13$$24, _14$$25, _15$$29, _16$$30, _17$$32, _18$$33, _19$$34, _20$$34, _21$$34; + zval text, fontfile; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&text); + ZVAL_UNDEF(&fontfile); + ZVAL_UNDEF(&offsetX_sub); + ZVAL_UNDEF(&offsetY_sub); + ZVAL_UNDEF(&draw); + ZVAL_UNDEF(&color); + ZVAL_UNDEF(&gravity); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4$$4); + ZVAL_UNDEF(&_5$$5); + ZVAL_UNDEF(&_6$$7); + ZVAL_UNDEF(&_7$$11); + ZVAL_UNDEF(&_8$$12); + ZVAL_UNDEF(&_9$$14); + ZVAL_UNDEF(&_10$$15); + ZVAL_UNDEF(&_11$$21); + ZVAL_UNDEF(&_12$$22); + ZVAL_UNDEF(&_13$$24); + ZVAL_UNDEF(&_14$$25); + ZVAL_UNDEF(&_15$$29); + ZVAL_UNDEF(&_16$$30); + ZVAL_UNDEF(&_17$$32); + ZVAL_UNDEF(&_18$$33); + ZVAL_UNDEF(&_19$$34); + ZVAL_UNDEF(&_20$$34); + ZVAL_UNDEF(&_21$$34); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(9, 9) + Z_PARAM_STR(text) + Z_PARAM_ZVAL(offsetX) + Z_PARAM_ZVAL(offsetY) + Z_PARAM_LONG(opacity) + Z_PARAM_LONG(r) + Z_PARAM_LONG(g) + Z_PARAM_LONG(b) + Z_PARAM_LONG(size) + Z_PARAM_STR(fontfile) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 9, 0, &text_param, &offsetX, &offsetY, &opacity_param, &r_param, &g_param, &b_param, &size_param, &fontfile_param); + zephir_get_strval(&text, text_param); + ZEPHIR_SEPARATE_PARAM(offsetX); + ZEPHIR_SEPARATE_PARAM(offsetY); + opacity = zephir_get_intval(opacity_param); + r = zephir_get_intval(r_param); + g = zephir_get_intval(g_param); + b = zephir_get_intval(b_param); + size = zephir_get_intval(size_param); + zephir_get_strval(&fontfile, fontfile_param); + + + opacity = (long) (zephir_safe_div_long_long(opacity, 100)); + ZEPHIR_INIT_VAR(&draw); + object_init_ex(&draw, zephir_get_internal_ce(SL("imagickdraw"))); + ZEPHIR_CALL_METHOD(NULL, &draw, "__construct", NULL, 0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "rgb(%d, %d, %d)"); + ZVAL_LONG(&_1, r); + ZVAL_LONG(&_2, g); + ZVAL_LONG(&_3, b); + ZEPHIR_CALL_FUNCTION(&color, "sprintf", NULL, 194, &_0, &_1, &_2, &_3); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_0); + object_init_ex(&_0, zephir_get_internal_ce(SL("imagickpixel"))); + ZEPHIR_CALL_METHOD(NULL, &_0, "__construct", NULL, 0, &color); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &draw, "setfillcolor", NULL, 0, &_0); + zephir_check_call_status(); + if (!(ZEPHIR_IS_EMPTY(&fontfile))) { + ZEPHIR_CALL_METHOD(NULL, &draw, "setfont", NULL, 0, &fontfile); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_107$$9); - ZEPHIR_CONCAT_VV(&_107$$9, &_104$$9, &_106$$9); - zephir_concat_self(&output, &_107$$9); - ZEPHIR_INIT_NVAR(&_36$$9); - zephir_get_class(&_36$$9, variable, 0); - zephir_read_property(&_103$$9, this_ptr, ZEND_STRL("methods"), PH_NOISY_CC | PH_READONLY); - if (zephir_fast_in_array(&_36$$9, &_103$$9)) { - ZVAL_LONG(&_108$$18, tab); - ZEPHIR_CALL_FUNCTION(&_109$$18, "str_repeat", &_10, 1, &space, &_108$$18); + } + if (size) { + ZVAL_LONG(&_4$$4, size); + ZEPHIR_CALL_METHOD(NULL, &draw, "setfontsize", NULL, 0, &_4$$4); + zephir_check_call_status(); + } + if (opacity) { + ZVAL_LONG(&_5$$5, opacity); + ZEPHIR_CALL_METHOD(NULL, &draw, "setfillopacity", NULL, 0, &_5$$5); + zephir_check_call_status(); + } + ZEPHIR_INIT_VAR(&gravity); + ZVAL_NULL(&gravity); + if (((Z_TYPE_P(offsetX) == IS_TRUE || Z_TYPE_P(offsetX) == IS_FALSE) == 1)) { + if (((Z_TYPE_P(offsetY) == IS_TRUE || Z_TYPE_P(offsetY) == IS_FALSE) == 1)) { + ZEPHIR_INIT_NVAR(offsetX); + ZVAL_LONG(offsetX, 0); + ZEPHIR_INIT_NVAR(offsetY); + ZVAL_LONG(offsetY, 0); + ZEPHIR_INIT_VAR(&_6$$7); + ZVAL_STRING(&_6$$7, "Imagick::GRAVITY_CENTER"); + ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_6$$7); zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_110$$18); - ZEPHIR_CONCAT_VS(&_110$$18, &_109$$18, "[already listed]\n"); - zephir_concat_self(&output, &_110$$18); } else { - zephir_is_iterable(&attr, 0, "phalcon/Support/Debug/Dump.zep", 307); - if (Z_TYPE_P(&attr) == IS_ARRAY) { - ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attr), _111$$19) - { - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _111$$19); - ZEPHIR_INIT_NVAR(&_113$$20); - zephir_get_class(&_113$$20, variable, 0); - zephir_update_property_array_append(this_ptr, SL("methods"), &_113$$20); - if (ZEPHIR_IS_STRING(&value, "__construct")) { - ZVAL_LONG(&_114$$21, (tab + 1)); - ZEPHIR_CALL_FUNCTION(&_115$$21, "str_repeat", &_10, 1, &space, &_114$$21); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_116$$21); - zephir_create_array(&_116$$21, 2, 0); - ZEPHIR_INIT_NVAR(&_118$$21); - ZVAL_STRING(&_118$$21, "obj"); - ZEPHIR_CALL_METHOD(&_117$$21, this_ptr, "getstyle", NULL, 0, &_118$$21); - zephir_check_call_status(); - zephir_array_update_string(&_116$$21, SL(":style"), &_117$$21, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_116$$21, SL(":method"), &value, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_118$$21); - ZVAL_STRING(&_118$$21, "->:method(); [constructor]\n"); - ZEPHIR_CALL_FUNCTION(&_117$$21, "strtr", NULL, 5, &_118$$21, &_116$$21); + if (Z_TYPE_P(offsetY) == IS_LONG) { + y = zephir_get_intval(offsetY); + if (zephir_is_true(offsetX)) { + ZEPHIR_INIT_NVAR(offsetX); + if (y < 0) { + ZVAL_LONG(offsetX, 0); + ZEPHIR_INIT_NVAR(offsetY); + ZVAL_LONG(offsetY, (y * -1)); + ZEPHIR_INIT_VAR(&_7$$11); + ZVAL_STRING(&_7$$11, "Imagick::GRAVITY_SOUTHEAST"); + ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_7$$11); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_119$$21); - ZEPHIR_CONCAT_VV(&_119$$21, &_115$$21, &_117$$21); - zephir_concat_self(&output, &_119$$21); } else { - ZVAL_LONG(&_120$$22, (tab + 1)); - ZEPHIR_CALL_FUNCTION(&_121$$22, "str_repeat", &_10, 1, &space, &_120$$22); + ZVAL_LONG(offsetX, 0); + ZEPHIR_INIT_VAR(&_8$$12); + ZVAL_STRING(&_8$$12, "Imagick::GRAVITY_NORTHEAST"); + ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_8$$12); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_122$$22); - zephir_create_array(&_122$$22, 2, 0); - ZEPHIR_INIT_NVAR(&_124$$22); - ZVAL_STRING(&_124$$22, "obj"); - ZEPHIR_CALL_METHOD(&_123$$22, this_ptr, "getstyle", NULL, 0, &_124$$22); + } + } else { + ZEPHIR_INIT_NVAR(offsetX); + if (y < 0) { + ZVAL_LONG(offsetX, 0); + ZEPHIR_INIT_NVAR(offsetY); + ZVAL_LONG(offsetY, (y * -1)); + ZEPHIR_INIT_VAR(&_9$$14); + ZVAL_STRING(&_9$$14, "Imagick::GRAVITY_SOUTH"); + ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_9$$14); zephir_check_call_status(); - zephir_array_update_string(&_122$$22, SL(":style"), &_123$$22, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_122$$22, SL(":method"), &value, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_124$$22); - ZVAL_STRING(&_124$$22, "->:method();\n"); - ZEPHIR_CALL_FUNCTION(&_123$$22, "strtr", NULL, 5, &_124$$22, &_122$$22); + } else { + ZVAL_LONG(offsetX, 0); + ZEPHIR_INIT_VAR(&_10$$15); + ZVAL_STRING(&_10$$15, "Imagick::GRAVITY_NORTH"); + ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_10$$15); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_125$$22); - ZEPHIR_CONCAT_VV(&_125$$22, &_121$$22, &_123$$22); - zephir_concat_self(&output, &_125$$22); - } - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &attr, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_112$$19, &attr, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_112$$19)) { - break; } - ZEPHIR_CALL_METHOD(&value, &attr, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_126$$23); - zephir_get_class(&_126$$23, variable, 0); - zephir_update_property_array_append(this_ptr, SL("methods"), &_126$$23); - if (ZEPHIR_IS_STRING(&value, "__construct")) { - ZVAL_LONG(&_127$$24, (tab + 1)); - ZEPHIR_CALL_FUNCTION(&_128$$24, "str_repeat", &_10, 1, &space, &_127$$24); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_129$$24); - zephir_create_array(&_129$$24, 2, 0); - ZEPHIR_INIT_NVAR(&_131$$24); - ZVAL_STRING(&_131$$24, "obj"); - ZEPHIR_CALL_METHOD(&_130$$24, this_ptr, "getstyle", NULL, 0, &_131$$24); - zephir_check_call_status(); - zephir_array_update_string(&_129$$24, SL(":style"), &_130$$24, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_129$$24, SL(":method"), &value, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_131$$24); - ZVAL_STRING(&_131$$24, "->:method(); [constructor]\n"); - ZEPHIR_CALL_FUNCTION(&_130$$24, "strtr", NULL, 5, &_131$$24, &_129$$24); + } + } + } + } else { + if (Z_TYPE_P(offsetX) == IS_LONG) { + x = zephir_get_intval(offsetX); + if (zephir_is_true(offsetX)) { + if (((Z_TYPE_P(offsetY) == IS_TRUE || Z_TYPE_P(offsetY) == IS_FALSE) == 1)) { + if (zephir_is_true(offsetY)) { + ZEPHIR_INIT_NVAR(offsetY); + if (x < 0) { + ZEPHIR_INIT_NVAR(offsetX); + ZVAL_LONG(offsetX, (x * -1)); + ZVAL_LONG(offsetY, 0); + ZEPHIR_INIT_VAR(&_11$$21); + ZVAL_STRING(&_11$$21, "Imagick::GRAVITY_SOUTHEAST"); + ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_11$$21); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_132$$24); - ZEPHIR_CONCAT_VV(&_132$$24, &_128$$24, &_130$$24); - zephir_concat_self(&output, &_132$$24); } else { - ZVAL_LONG(&_133$$25, (tab + 1)); - ZEPHIR_CALL_FUNCTION(&_134$$25, "str_repeat", &_10, 1, &space, &_133$$25); + ZVAL_LONG(offsetY, 0); + ZEPHIR_INIT_VAR(&_12$$22); + ZVAL_STRING(&_12$$22, "Imagick::GRAVITY_SOUTH"); + ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_12$$22); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_135$$25); - zephir_create_array(&_135$$25, 2, 0); - ZEPHIR_INIT_NVAR(&_137$$25); - ZVAL_STRING(&_137$$25, "obj"); - ZEPHIR_CALL_METHOD(&_136$$25, this_ptr, "getstyle", NULL, 0, &_137$$25); + } + } else { + ZEPHIR_INIT_NVAR(offsetY); + if (x < 0) { + ZEPHIR_INIT_NVAR(offsetX); + ZVAL_LONG(offsetX, (x * -1)); + ZVAL_LONG(offsetY, 0); + ZEPHIR_INIT_VAR(&_13$$24); + ZVAL_STRING(&_13$$24, "Imagick::GRAVITY_EAST"); + ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_13$$24); zephir_check_call_status(); - zephir_array_update_string(&_135$$25, SL(":style"), &_136$$25, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_135$$25, SL(":method"), &value, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_137$$25); - ZVAL_STRING(&_137$$25, "->:method();\n"); - ZEPHIR_CALL_FUNCTION(&_136$$25, "strtr", NULL, 5, &_137$$25, &_135$$25); + } else { + ZVAL_LONG(offsetY, 0); + ZEPHIR_INIT_VAR(&_14$$25); + ZVAL_STRING(&_14$$25, "Imagick::GRAVITY_WEST"); + ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_14$$25); zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_138$$25); - ZEPHIR_CONCAT_VV(&_138$$25, &_134$$25, &_136$$25); - zephir_concat_self(&output, &_138$$25); } - ZEPHIR_CALL_METHOD(NULL, &attr, "next", NULL, 0); - zephir_check_call_status(); + } + } else { + if (Z_TYPE_P(offsetY) == IS_LONG) { + x = zephir_get_intval(offsetX); + y = zephir_get_intval(offsetY); + if (x < 0) { + ZEPHIR_INIT_NVAR(offsetX); + if (y < 0) { + ZVAL_LONG(offsetX, (x * -1)); + ZEPHIR_INIT_NVAR(offsetY); + ZVAL_LONG(offsetY, (y * -1)); + ZEPHIR_INIT_VAR(&_15$$29); + ZVAL_STRING(&_15$$29, "Imagick::GRAVITY_SOUTHEAST"); + ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_15$$29); + zephir_check_call_status(); + } else { + ZVAL_LONG(offsetX, (x * -1)); + ZEPHIR_INIT_VAR(&_16$$30); + ZVAL_STRING(&_16$$30, "Imagick::GRAVITY_NORTHEAST"); + ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_16$$30); + zephir_check_call_status(); + } + } else { + ZEPHIR_INIT_NVAR(offsetX); + if (y < 0) { + ZVAL_LONG(offsetX, 0); + ZEPHIR_INIT_NVAR(offsetY); + ZVAL_LONG(offsetY, (y * -1)); + ZEPHIR_INIT_VAR(&_17$$32); + ZVAL_STRING(&_17$$32, "Imagick::GRAVITY_SOUTHWEST"); + ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_17$$32); + zephir_check_call_status(); + } else { + ZVAL_LONG(offsetX, 0); + ZEPHIR_INIT_VAR(&_18$$33); + ZVAL_STRING(&_18$$33, "Imagick::GRAVITY_NORTHWEST"); + ZEPHIR_CALL_FUNCTION(&gravity, "constant", NULL, 128, &_18$$33); + zephir_check_call_status(); + } + } + } } } - ZEPHIR_INIT_NVAR(&value); - ZVAL_LONG(&_139$$19, tab); - ZEPHIR_CALL_FUNCTION(&_140$$19, "str_repeat", &_10, 1, &space, &_139$$19); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&_141$$19); - ZEPHIR_CONCAT_VS(&_141$$19, &_140$$19, ")\n"); - zephir_concat_self(&output, &_141$$19); } - ZVAL_LONG(&_142$$9, (tab - 1)); - ZEPHIR_CALL_FUNCTION(&_143$$9, "str_repeat", &_10, 1, &space, &_142$$9); - zephir_check_call_status(); - ZEPHIR_CONCAT_VVS(return_value, &output, &_143$$9, ")"); - RETURN_MM(); - } - if (Z_TYPE_P(variable) == IS_LONG) { - ZEPHIR_INIT_VAR(&_144$$26); - zephir_create_array(&_144$$26, 2, 0); - ZEPHIR_INIT_VAR(&_146$$26); - ZVAL_STRING(&_146$$26, "int"); - ZEPHIR_CALL_METHOD(&_145$$26, this_ptr, "getstyle", NULL, 0, &_146$$26); - zephir_check_call_status(); - zephir_array_update_string(&_144$$26, SL(":style"), &_145$$26, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_144$$26, SL(":var"), variable, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_146$$26); - ZVAL_STRING(&_146$$26, "Integer (:var)"); - ZEPHIR_CALL_FUNCTION(&_145$$26, "strtr", NULL, 5, &_146$$26, &_144$$26); - zephir_check_call_status(); - ZEPHIR_CONCAT_VV(return_value, &output, &_145$$26); - RETURN_MM(); } - ZEPHIR_CALL_FUNCTION(&_147, "is_float", NULL, 213, variable); + ZEPHIR_CALL_METHOD(NULL, &draw, "setgravity", NULL, 0, &gravity); zephir_check_call_status(); - if (zephir_is_true(&_147)) { - ZEPHIR_INIT_VAR(&_148$$27); - zephir_create_array(&_148$$27, 2, 0); - ZEPHIR_INIT_VAR(&_150$$27); - ZVAL_STRING(&_150$$27, "float"); - ZEPHIR_CALL_METHOD(&_149$$27, this_ptr, "getstyle", NULL, 0, &_150$$27); - zephir_check_call_status(); - zephir_array_update_string(&_148$$27, SL(":style"), &_149$$27, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_148$$27, SL(":var"), variable, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_150$$27); - ZVAL_STRING(&_150$$27, "Float (:var)"); - ZEPHIR_CALL_FUNCTION(&_149$$27, "strtr", NULL, 5, &_150$$27, &_148$$27); - zephir_check_call_status(); - ZEPHIR_CONCAT_VV(return_value, &output, &_149$$27); - RETURN_MM(); - } - if (zephir_is_numeric(variable)) { - ZEPHIR_INIT_VAR(&_151$$28); - zephir_create_array(&_151$$28, 3, 0); - ZEPHIR_INIT_VAR(&_153$$28); - ZVAL_STRING(&_153$$28, "num"); - ZEPHIR_CALL_METHOD(&_152$$28, this_ptr, "getstyle", NULL, 0, &_153$$28); - zephir_check_call_status(); - zephir_array_update_string(&_151$$28, SL(":style"), &_152$$28, PH_COPY | PH_SEPARATE); - add_assoc_long_ex(&_151$$28, SL(":length"), zephir_fast_strlen_ev(variable)); - zephir_array_update_string(&_151$$28, SL(":var"), variable, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_153$$28); - ZVAL_STRING(&_153$$28, "Numeric string (:length) \":var\""); - ZEPHIR_CALL_FUNCTION(&_152$$28, "strtr", NULL, 5, &_153$$28, &_151$$28); - zephir_check_call_status(); - ZEPHIR_CONCAT_VV(return_value, &output, &_152$$28); - RETURN_MM(); - } - if (Z_TYPE_P(variable) == IS_STRING) { - ZEPHIR_INIT_VAR(&_154$$29); - zephir_create_array(&_154$$29, 3, 0); - ZEPHIR_INIT_VAR(&_156$$29); - ZVAL_STRING(&_156$$29, "str"); - ZEPHIR_CALL_METHOD(&_155$$29, this_ptr, "getstyle", NULL, 0, &_156$$29); - zephir_check_call_status(); - zephir_array_update_string(&_154$$29, SL(":style"), &_155$$29, PH_COPY | PH_SEPARATE); - add_assoc_long_ex(&_154$$29, SL(":length"), zephir_fast_strlen_ev(variable)); - ZVAL_LONG(&_157$$29, 4); - ZEPHIR_INIT_NVAR(&_156$$29); - ZVAL_STRING(&_156$$29, "utf-8"); - ZEPHIR_CALL_FUNCTION(&_155$$29, "htmlentities", NULL, 0, variable, &_157$$29, &_156$$29); - zephir_check_call_status(); - ZEPHIR_CALL_FUNCTION(&_158$$29, "nl2br", NULL, 0, &_155$$29); - zephir_check_call_status(); - zephir_array_update_string(&_154$$29, SL(":var"), &_158$$29, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_156$$29); - ZVAL_STRING(&_156$$29, "String (:length) \":var\""); - ZEPHIR_CALL_FUNCTION(&_158$$29, "strtr", NULL, 5, &_156$$29, &_154$$29); - zephir_check_call_status(); - ZEPHIR_CONCAT_VV(return_value, &output, &_158$$29); - RETURN_MM(); - } - if ((Z_TYPE_P(variable) == IS_TRUE || Z_TYPE_P(variable) == IS_FALSE)) { - ZEPHIR_INIT_VAR(&_159$$30); - zephir_create_array(&_159$$30, 2, 0); - ZEPHIR_INIT_VAR(&_161$$30); - ZVAL_STRING(&_161$$30, "bool"); - ZEPHIR_CALL_METHOD(&_160$$30, this_ptr, "getstyle", NULL, 0, &_161$$30); - zephir_check_call_status(); - zephir_array_update_string(&_159$$30, SL(":style"), &_160$$30, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_VAR(&_162$$30); - if (zephir_is_true(variable)) { - ZEPHIR_INIT_NVAR(&_162$$30); - ZVAL_STRING(&_162$$30, "TRUE"); - } else { - ZEPHIR_INIT_NVAR(&_162$$30); - ZVAL_STRING(&_162$$30, "FALSE"); - } - zephir_array_update_string(&_159$$30, SL(":var"), &_162$$30, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_161$$30); - ZVAL_STRING(&_161$$30, "Boolean (:var)"); - ZEPHIR_CALL_FUNCTION(&_160$$30, "strtr", NULL, 5, &_161$$30, &_159$$30); - zephir_check_call_status(); - ZEPHIR_CONCAT_VV(return_value, &output, &_160$$30); - RETURN_MM(); - } - if (Z_TYPE_P(variable) == IS_NULL) { - ZEPHIR_INIT_VAR(&_163$$31); - zephir_create_array(&_163$$31, 1, 0); - ZEPHIR_INIT_VAR(&_165$$31); - ZVAL_STRING(&_165$$31, "null"); - ZEPHIR_CALL_METHOD(&_164$$31, this_ptr, "getstyle", NULL, 0, &_165$$31); + zephir_read_property(&_1, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_2, 0); + ZEPHIR_CALL_METHOD(NULL, &_1, "setiteratorindex", NULL, 0, &_2); + zephir_check_call_status(); + while (1) { + zephir_read_property(&_19$$34, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_20$$34, 0); + ZEPHIR_CALL_METHOD(NULL, &_19$$34, "annotateimage", NULL, 0, &draw, offsetX, offsetY, &_20$$34, &text); zephir_check_call_status(); - zephir_array_update_string(&_163$$31, SL(":style"), &_164$$31, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_165$$31); - ZVAL_STRING(&_165$$31, "NULL"); - ZEPHIR_CALL_FUNCTION(&_164$$31, "strtr", NULL, 5, &_165$$31, &_163$$31); + zephir_read_property(&_20$$34, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_21$$34, &_20$$34, "nextimage", NULL, 0); zephir_check_call_status(); - ZEPHIR_CONCAT_VV(return_value, &output, &_164$$31); - RETURN_MM(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_21$$34)) { + break; + } } - ZEPHIR_INIT_VAR(&_166); - zephir_create_array(&_166, 2, 0); - ZEPHIR_INIT_VAR(&_168); - ZVAL_STRING(&_168, "other"); - ZEPHIR_CALL_METHOD(&_167, this_ptr, "getstyle", NULL, 0, &_168); - zephir_check_call_status(); - zephir_array_update_string(&_166, SL(":style"), &_167, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&_166, SL(":var"), variable, PH_COPY | PH_SEPARATE); - ZEPHIR_INIT_NVAR(&_168); - ZVAL_STRING(&_168, "(:var)"); - ZEPHIR_CALL_FUNCTION(&_167, "strtr", NULL, 5, &_168, &_166); + ZEPHIR_CALL_METHOD(NULL, &draw, "destroy", NULL, 0); zephir_check_call_status(); - ZEPHIR_CONCAT_VV(return_value, &output, &_167); - RETURN_MM(); + ZEPHIR_MM_RESTORE(); } -zend_object *zephir_init_properties_Phalcon_Support_Debug_Dump(zend_class_entry *class_type) +static PHP_METHOD(Phalcon_Image_Adapter_Imagick, processWatermark) { - zval _0, _2, _1$$3, _3$$4; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - ZVAL_UNDEF(&_0); + zend_long offsetX, offsetY, opacity, ZEPHIR_LAST_CALL_STATUS; + zval *image, image_sub, *offsetX_param = NULL, *offsetY_param = NULL, *opacity_param = NULL, watermark, ret, _0, _1, _2, _3, _4, _5, _6$$3, _7$$3, _8$$3, _9$$3, _10$$3, _11$$3; + zval *this_ptr = getThis(); + + ZVAL_UNDEF(&image_sub); + ZVAL_UNDEF(&watermark); + ZVAL_UNDEF(&ret); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_3$$4); - + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6$$3); + ZVAL_UNDEF(&_7$$3); + ZVAL_UNDEF(&_8$$3); + ZVAL_UNDEF(&_9$$3); + ZVAL_UNDEF(&_10$$3); + ZVAL_UNDEF(&_11$$3); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(4, 4) + Z_PARAM_OBJECT_OF_CLASS(image, phalcon_image_adapter_adapterinterface_ce) + Z_PARAM_LONG(offsetX) + Z_PARAM_LONG(offsetY) + Z_PARAM_LONG(opacity) + ZEND_PARSE_PARAMETERS_END(); +#endif - ZEPHIR_MM_GROW(); - - { - zval local_this_ptr, *this_ptr = &local_this_ptr; - ZEPHIR_CREATE_OBJECT(this_ptr, class_type); - zephir_read_property_ex(&_0, this_ptr, ZEND_STRL("styles"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_0) == IS_NULL) { - ZEPHIR_INIT_VAR(&_1$$3); - array_init(&_1$$3); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("styles"), &_1$$3); + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 4, 0, &image, &offsetX_param, &offsetY_param, &opacity_param); + offsetX = zephir_get_intval(offsetX_param); + offsetY = zephir_get_intval(offsetY_param); + opacity = zephir_get_intval(opacity_param); + + + opacity = (long) (zephir_safe_div_long_long(opacity, 100)); + ZEPHIR_INIT_VAR(&watermark); + object_init_ex(&watermark, zephir_get_internal_ce(SL("imagick"))); + ZEPHIR_CALL_METHOD(NULL, &watermark, "__construct", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_0, image, "render", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &watermark, "readimageblob", NULL, 0, &_0); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_1); + ZVAL_STRING(&_1, "Imagick::EVALUATE_MULTIPLY"); + ZEPHIR_CALL_FUNCTION(&_2, "constant", NULL, 128, &_1); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_1); + ZVAL_STRING(&_1, "Imagick::CHANNEL_ALPHA"); + ZEPHIR_CALL_FUNCTION(&_3, "constant", NULL, 128, &_1); + zephir_check_call_status(); + ZVAL_LONG(&_4, opacity); + ZEPHIR_CALL_METHOD(NULL, &watermark, "evaluateimage", NULL, 0, &_2, &_4, &_3); + zephir_check_call_status(); + zephir_read_property(&_4, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZVAL_LONG(&_5, 0); + ZEPHIR_CALL_METHOD(NULL, &_4, "setiteratorindex", NULL, 0, &_5); + zephir_check_call_status(); + while (1) { + zephir_read_property(&_6$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_INIT_NVAR(&_7$$3); + ZVAL_STRING(&_7$$3, "Imagick::COMPOSITE_OVER"); + ZEPHIR_CALL_FUNCTION(&_8$$3, "constant", NULL, 128, &_7$$3); + zephir_check_call_status(); + ZVAL_LONG(&_9$$3, offsetX); + ZVAL_LONG(&_10$$3, offsetY); + ZEPHIR_CALL_METHOD(&ret, &_6$$3, "compositeimage", NULL, 0, &watermark, &_8$$3, &_9$$3, &_10$$3); + zephir_check_call_status(); + if (UNEXPECTED(!ZEPHIR_IS_TRUE_IDENTICAL(&ret))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_image_exception_ce, "Imagick::compositeImage failed", "phalcon/Image/Adapter/Imagick.zep", 834); + return; } - zephir_read_property_ex(&_2, this_ptr, ZEND_STRL("methods"), PH_NOISY_CC | PH_READONLY); - if (Z_TYPE_P(&_2) == IS_NULL) { - ZEPHIR_INIT_VAR(&_3$$4); - array_init(&_3$$4); - zephir_update_property_zval_ex(this_ptr, ZEND_STRL("methods"), &_3$$4); + zephir_read_property(&_9$$3, this_ptr, ZEND_STRL("image"), PH_NOISY_CC | PH_READONLY); + ZEPHIR_CALL_METHOD(&_11$$3, &_9$$3, "nextimage", NULL, 0); + zephir_check_call_status(); + if (ZEPHIR_IS_FALSE_IDENTICAL(&_11$$3)) { + break; } - ZEPHIR_MM_RESTORE(); - return Z_OBJ_P(this_ptr); } + ZEPHIR_CALL_METHOD(NULL, &watermark, "clear", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &watermark, "destroy", NULL, 0); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); } @@ -206754,132 +206832,237 @@ zend_object *zephir_init_properties_Phalcon_Support_Debug_Dump(zend_class_entry -ZEPHIR_INIT_CLASS(Phalcon_Support_Debug_Exception) +ZEPHIR_INIT_CLASS(Phalcon_Config_ConfigFactory) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Support\\Debug, Exception, phalcon, support_debug_exception, phalcon_exception_ce, NULL, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Config, ConfigFactory, phalcon, config_configfactory, phalcon_factory_abstractfactory_ce, phalcon_config_configfactory_method_entry, 0); + zend_declare_property_string(phalcon_config_configfactory_ce, SL("exception"), "Phalcon\\Config\\Exception", ZEND_ACC_PROTECTED); return SUCCESS; } +static PHP_METHOD(Phalcon_Config_ConfigFactory, __construct) +{ + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *services_param = NULL; + zval services; + zval *this_ptr = getThis(); - - -#ifdef HAVE_CONFIG_H + ZVAL_UNDEF(&services); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(0, 1) + Z_PARAM_OPTIONAL + Z_PARAM_ARRAY(services) + ZEND_PARSE_PARAMETERS_END(); #endif + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 0, 1, &services_param); + if (!services_param) { + ZEPHIR_INIT_VAR(&services); + array_init(&services); + } else { + zephir_get_arrval(&services, services_param); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "init", NULL, 0, &services); + zephir_check_call_status(); + ZEPHIR_MM_RESTORE(); +} -ZEPHIR_INIT_CLASS(Phalcon_Support_Helper_Str_Interpolate) +static PHP_METHOD(Phalcon_Config_ConfigFactory, load) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Support\\Helper\\Str, Interpolate, phalcon, support_helper_str_interpolate, phalcon_support_helper_str_interpolate_method_entry, 0); + zend_bool _2; + zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_11 = NULL; + zend_long ZEPHIR_LAST_CALL_STATUS; + zval *config = NULL, config_sub, adapter, extension, first, oldConfig, second, _4, _5, _6, _9, _10, _0$$3, _1$$3, _3$$5, _7$$9, _8$$9, _12$$10, _13$$10, _14$$11, _15$$11; + zval *this_ptr = getThis(); - return SUCCESS; + ZVAL_UNDEF(&config_sub); + ZVAL_UNDEF(&adapter); + ZVAL_UNDEF(&extension); + ZVAL_UNDEF(&first); + ZVAL_UNDEF(&oldConfig); + ZVAL_UNDEF(&second); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_5); + ZVAL_UNDEF(&_6); + ZVAL_UNDEF(&_9); + ZVAL_UNDEF(&_10); + ZVAL_UNDEF(&_0$$3); + ZVAL_UNDEF(&_1$$3); + ZVAL_UNDEF(&_3$$5); + ZVAL_UNDEF(&_7$$9); + ZVAL_UNDEF(&_8$$9); + ZVAL_UNDEF(&_12$$10); + ZVAL_UNDEF(&_13$$10); + ZVAL_UNDEF(&_14$$11); + ZVAL_UNDEF(&_15$$11); +#if PHP_VERSION_ID >= 80000 + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_ZVAL(config) + ZEND_PARSE_PARAMETERS_END(); +#endif + + + ZEPHIR_MM_GROW(); + zephir_fetch_params(1, 1, 0, &config); + ZEPHIR_SEPARATE_PARAM(config); + + + if (Z_TYPE_P(config) == IS_STRING) { + ZEPHIR_CPY_WRT(&oldConfig, config); + ZVAL_LONG(&_0$$3, 4); + ZEPHIR_CALL_FUNCTION(&extension, "pathinfo", NULL, 109, config, &_0$$3); + zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_IS_EMPTY(&extension))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_config_exception_ce, "You need to provide the extension in the file path", "phalcon/Config/ConfigFactory.zep", 66); + return; + } + ZEPHIR_INIT_VAR(&_1$$3); + zephir_create_array(&_1$$3, 2, 0); + zephir_array_update_string(&_1$$3, SL("adapter"), &extension, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_1$$3, SL("filePath"), &oldConfig, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(config, &_1$$3); + } + _2 = Z_TYPE_P(config) == IS_OBJECT; + if (_2) { + _2 = zephir_instance_of_ev(config, phalcon_config_configinterface_ce); + } + if (_2) { + ZEPHIR_CALL_METHOD(&_3$$5, config, "toarray", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(config, &_3$$5); + } + if (UNEXPECTED(Z_TYPE_P(config) != IS_ARRAY)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_config_exception_ce, "Config must be array or Phalcon\\Config object", "phalcon/Config/ConfigFactory.zep", 82); + return; + } + if (UNEXPECTED(!(zephir_array_isset_string(config, SL("filePath"))))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_config_exception_ce, "You must provide 'filePath' option in factory config parameter.", "phalcon/Config/ConfigFactory.zep", 88); + return; + } + if (UNEXPECTED(!(zephir_array_isset_string(config, SL("adapter"))))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_config_exception_ce, "You must provide 'adapter' option in factory config parameter.", "phalcon/Config/ConfigFactory.zep", 94); + return; + } + zephir_array_fetch_string(&_4, config, SL("adapter"), PH_NOISY | PH_READONLY, "phalcon/Config/ConfigFactory.zep", 97); + ZEPHIR_INIT_VAR(&adapter); + zephir_fast_strtolower(&adapter, &_4); + ZEPHIR_OBS_VAR(&first); + zephir_array_fetch_string(&first, config, SL("filePath"), PH_NOISY, "phalcon/Config/ConfigFactory.zep", 98); + ZEPHIR_INIT_VAR(&second); + ZVAL_NULL(&second); + ZVAL_LONG(&_5, 4); + ZEPHIR_CALL_FUNCTION(&_6, "pathinfo", NULL, 109, &first, &_5); + zephir_check_call_status(); + if (ZEPHIR_IS_EMPTY(&_6)) { + ZEPHIR_CALL_FUNCTION(&_7$$9, "lcfirst", NULL, 96, &adapter); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&_8$$9); + ZEPHIR_CONCAT_VSV(&_8$$9, &first, ".", &_7$$9); + ZEPHIR_CPY_WRT(&first, &_8$$9); + } + ZEPHIR_INIT_VAR(&_9); + ZVAL_STRING(&_9, "ini"); + ZEPHIR_INIT_VAR(&_10); + ZVAL_STRING(&_10, "yaml"); + if (ZEPHIR_IS_IDENTICAL(&_9, &adapter)) { + ZEPHIR_INIT_VAR(&_12$$10); + ZVAL_STRING(&_12$$10, "mode"); + ZVAL_LONG(&_13$$10, 1); + ZEPHIR_CALL_CE_STATIC(&second, phalcon_helper_arr_ce, "get", &_11, 16, config, &_12$$10, &_13$$10); + zephir_check_call_status(); + } else if (ZEPHIR_IS_IDENTICAL(&_10, &adapter)) { + ZEPHIR_INIT_VAR(&_14$$11); + array_init(&_14$$11); + ZEPHIR_INIT_VAR(&_15$$11); + ZVAL_STRING(&_15$$11, "callbacks"); + ZEPHIR_CALL_CE_STATIC(&second, phalcon_helper_arr_ce, "get", &_11, 16, config, &_15$$11, &_14$$11); + zephir_check_call_status(); + } + ZEPHIR_RETURN_CALL_METHOD(this_ptr, "newinstance", NULL, 0, &adapter, &first, &second); + zephir_check_call_status(); + RETURN_MM(); } -static PHP_METHOD(Phalcon_Support_Helper_Str_Interpolate, __invoke) +static PHP_METHOD(Phalcon_Config_ConfigFactory, newInstance) { - zend_string *_3$$3; - zend_ulong _2$$3; + zend_bool _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval context, replace; - zval *message_param = NULL, *context_param = NULL, *leftToken_param = NULL, *rightToken_param = NULL, key, value, *_0$$3, _1$$3, _4$$4, _5$$5; - zval message, leftToken, rightToken; + zval *name_param = NULL, *fileName_param = NULL, *params = NULL, params_sub, __$null, definition, options, _0, _2; + zval name, fileName; zval *this_ptr = getThis(); - ZVAL_UNDEF(&message); - ZVAL_UNDEF(&leftToken); - ZVAL_UNDEF(&rightToken); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&_1$$3); - ZVAL_UNDEF(&_4$$4); - ZVAL_UNDEF(&_5$$5); - ZVAL_UNDEF(&context); - ZVAL_UNDEF(&replace); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&fileName); + ZVAL_UNDEF(¶ms_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&definition); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&_0); + ZVAL_UNDEF(&_2); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 4) - Z_PARAM_STR(message) + ZEND_PARSE_PARAMETERS_START(2, 3) + Z_PARAM_STR(name) + Z_PARAM_STR(fileName) Z_PARAM_OPTIONAL - Z_PARAM_ARRAY(context) - Z_PARAM_STR(leftToken) - Z_PARAM_STR(rightToken) + Z_PARAM_ZVAL_OR_NULL(params) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 3, &message_param, &context_param, &leftToken_param, &rightToken_param); - zephir_get_strval(&message, message_param); - if (!context_param) { - ZEPHIR_INIT_VAR(&context); - array_init(&context); - } else { - zephir_get_arrval(&context, context_param); + zephir_fetch_params(1, 2, 1, &name_param, &fileName_param, ¶ms); + zephir_get_strval(&name, name_param); + zephir_get_strval(&fileName, fileName_param); + if (!params) { + params = ¶ms_sub; + params = &__$null; } - if (!leftToken_param) { - ZEPHIR_INIT_VAR(&leftToken); - ZVAL_STRING(&leftToken, "%"); - } else { - zephir_get_strval(&leftToken, leftToken_param); + + + ZEPHIR_CALL_METHOD(&definition, this_ptr, "getservice", NULL, 0, &name); + zephir_check_call_status(); + ZEPHIR_INIT_VAR(&options); + array_init(&options); + zephir_array_append(&options, &fileName, PH_SEPARATE, "phalcon/Config/ConfigFactory.zep", 123); + ZEPHIR_INIT_VAR(&_0); + ZVAL_STRING(&_0, "json"); + _1 = !ZEPHIR_IS_IDENTICAL(&_0, &name); + if (_1) { + ZEPHIR_INIT_VAR(&_2); + ZVAL_STRING(&_2, "php"); + _1 = !ZEPHIR_IS_IDENTICAL(&_2, &name); } - if (!rightToken_param) { - ZEPHIR_INIT_VAR(&rightToken); - ZVAL_STRING(&rightToken, "%"); - } else { - zephir_get_strval(&rightToken, rightToken_param); + if (_1) { + zephir_array_append(&options, params, PH_SEPARATE, "phalcon/Config/ConfigFactory.zep", 126); } + ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(return_value, &definition, &options); + zephir_check_call_status(); + RETURN_MM(); +} +static PHP_METHOD(Phalcon_Config_ConfigFactory, getAdapters) +{ + zval *this_ptr = getThis(); - if (!(ZEPHIR_IS_EMPTY(&context))) { - ZEPHIR_INIT_VAR(&replace); - array_init(&replace); - zephir_is_iterable(&context, 0, "phalcon/Support/Helper/Str/Interpolate.zep", 39); - if (Z_TYPE_P(&context) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&context), _2$$3, _3$$3, _0$$3) - { - ZEPHIR_INIT_NVAR(&key); - if (_3$$3 != NULL) { - ZVAL_STR_COPY(&key, _3$$3); - } else { - ZVAL_LONG(&key, _2$$3); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0$$3); - ZEPHIR_INIT_NVAR(&_4$$4); - ZEPHIR_CONCAT_VVV(&_4$$4, &leftToken, &key, &rightToken); - zephir_array_update_zval(&replace, &_4$$4, &value, PH_COPY | PH_SEPARATE); - } ZEND_HASH_FOREACH_END(); - } else { - ZEPHIR_CALL_METHOD(NULL, &context, "rewind", NULL, 0); - zephir_check_call_status(); - while (1) { - ZEPHIR_CALL_METHOD(&_1$$3, &context, "valid", NULL, 0); - zephir_check_call_status(); - if (!zend_is_true(&_1$$3)) { - break; - } - ZEPHIR_CALL_METHOD(&key, &context, "key", NULL, 0); - zephir_check_call_status(); - ZEPHIR_CALL_METHOD(&value, &context, "current", NULL, 0); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_5$$5); - ZEPHIR_CONCAT_VVV(&_5$$5, &leftToken, &key, &rightToken); - zephir_array_update_zval(&replace, &_5$$5, &value, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_METHOD(NULL, &context, "next", NULL, 0); - zephir_check_call_status(); - } - } - ZEPHIR_INIT_NVAR(&value); - ZEPHIR_INIT_NVAR(&key); - ZEPHIR_RETURN_CALL_FUNCTION("strtr", NULL, 5, &message, &replace); - zephir_check_call_status(); - RETURN_MM(); - } - RETURN_CTOR(&message); + + + zephir_create_array(return_value, 5, 0); + add_assoc_stringl_ex(return_value, SL("grouped"), SL("Phalcon\\Config\\Adapter\\Grouped")); + add_assoc_stringl_ex(return_value, SL("ini"), SL("Phalcon\\Config\\Adapter\\Ini")); + add_assoc_stringl_ex(return_value, SL("json"), SL("Phalcon\\Config\\Adapter\\Json")); + add_assoc_stringl_ex(return_value, SL("php"), SL("Phalcon\\Config\\Adapter\\Php")); + add_assoc_stringl_ex(return_value, SL("yaml"), SL("Phalcon\\Config\\Adapter\\Yaml")); + return; } @@ -206892,13 +207075,18 @@ static PHP_METHOD(Phalcon_Support_Helper_Str_Interpolate, __invoke) -ZEPHIR_INIT_CLASS(Phalcon_Tag_Exception) +ZEPHIR_INIT_CLASS(Phalcon_Config_ConfigInterface) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Tag, Exception, phalcon, tag_exception, phalcon_exception_ce, NULL, 0); + ZEPHIR_REGISTER_INTERFACE(Phalcon\\Config, ConfigInterface, phalcon, config_configinterface, phalcon_config_configinterface_method_entry); + zend_class_implements(phalcon_config_configinterface_ce, 1, phalcon_collection_collectioninterface_ce); return SUCCESS; } +ZEPHIR_DOC_METHOD(Phalcon_Config_ConfigInterface, getPathDelimiter); +ZEPHIR_DOC_METHOD(Phalcon_Config_ConfigInterface, merge); +ZEPHIR_DOC_METHOD(Phalcon_Config_ConfigInterface, path); +ZEPHIR_DOC_METHOD(Phalcon_Config_ConfigInterface, setPathDelimiter); @@ -206909,505 +207097,693 @@ ZEPHIR_INIT_CLASS(Phalcon_Tag_Exception) -ZEPHIR_INIT_CLASS(Phalcon_Tag_Select) +ZEPHIR_INIT_CLASS(Phalcon_Config_Exception) { - ZEPHIR_REGISTER_CLASS(Phalcon\\Tag, Select, phalcon, tag_select, phalcon_tag_select_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Config, Exception, phalcon, config_exception, phalcon_exception_ce, NULL, 0); return SUCCESS; } -static PHP_METHOD(Phalcon_Tag_Select, selectField) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Config_Adapter_Grouped) { - zend_bool _2$$19; + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Config\\Adapter, Grouped, phalcon, config_adapter_grouped, phalcon_config_ce, phalcon_config_adapter_grouped_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Config_Adapter_Grouped, __construct) +{ + zend_bool _4$$3, _20$$11; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_1 = NULL, *_4 = NULL, *_9 = NULL, *_13 = NULL; - zval *parameters, parameters_sub, *data = NULL, data_sub, __$null, params, name, id, value, useEmpty, code, emptyValue, emptyText, options, using, _3, _5, _0$$5, _6$$22, _7$$22, _8$$23, _10$$23, _11$$23, _12$$25, _14$$25, _15$$25; + zephir_fcall_cache_entry *_0 = NULL, *_5 = NULL, *_8 = NULL, *_10 = NULL, *_16 = NULL, *_17 = NULL; + zval defaultAdapter, _15$$9, _28$$17; + zval *arrayConfig_param = NULL, *defaultAdapter_param = NULL, configArray, configInstance, configName, _1, *_2, _3, _12$$3, _13$$3, _6$$5, _11$$5, _7$$6, _9$$6, _14$$9, _18$$10, _19$$10, _25$$11, _26$$11, _21$$13, _24$$13, _22$$14, _23$$14, _27$$17, _29$$18, _30$$18; + zval arrayConfig; zval *this_ptr = getThis(); - ZVAL_UNDEF(¶meters_sub); - ZVAL_UNDEF(&data_sub); - ZVAL_NULL(&__$null); - ZVAL_UNDEF(¶ms); - ZVAL_UNDEF(&name); - ZVAL_UNDEF(&id); - ZVAL_UNDEF(&value); - ZVAL_UNDEF(&useEmpty); - ZVAL_UNDEF(&code); - ZVAL_UNDEF(&emptyValue); - ZVAL_UNDEF(&emptyText); - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&using); + ZVAL_UNDEF(&arrayConfig); + ZVAL_UNDEF(&configArray); + ZVAL_UNDEF(&configInstance); + ZVAL_UNDEF(&configName); + ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_3); - ZVAL_UNDEF(&_5); - ZVAL_UNDEF(&_0$$5); - ZVAL_UNDEF(&_6$$22); - ZVAL_UNDEF(&_7$$22); - ZVAL_UNDEF(&_8$$23); - ZVAL_UNDEF(&_10$$23); - ZVAL_UNDEF(&_11$$23); - ZVAL_UNDEF(&_12$$25); - ZVAL_UNDEF(&_14$$25); - ZVAL_UNDEF(&_15$$25); + ZVAL_UNDEF(&_12$$3); + ZVAL_UNDEF(&_13$$3); + ZVAL_UNDEF(&_6$$5); + ZVAL_UNDEF(&_11$$5); + ZVAL_UNDEF(&_7$$6); + ZVAL_UNDEF(&_9$$6); + ZVAL_UNDEF(&_14$$9); + ZVAL_UNDEF(&_18$$10); + ZVAL_UNDEF(&_19$$10); + ZVAL_UNDEF(&_25$$11); + ZVAL_UNDEF(&_26$$11); + ZVAL_UNDEF(&_21$$13); + ZVAL_UNDEF(&_24$$13); + ZVAL_UNDEF(&_22$$14); + ZVAL_UNDEF(&_23$$14); + ZVAL_UNDEF(&_27$$17); + ZVAL_UNDEF(&_29$$18); + ZVAL_UNDEF(&_30$$18); + ZVAL_UNDEF(&defaultAdapter); + ZVAL_UNDEF(&_15$$9); + ZVAL_UNDEF(&_28$$17); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 2) - Z_PARAM_ZVAL(parameters) + Z_PARAM_ARRAY(arrayConfig) Z_PARAM_OPTIONAL - Z_PARAM_ZVAL_OR_NULL(data) + Z_PARAM_STR(defaultAdapter) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 1, ¶meters, &data); - if (!data) { - data = &data_sub; - data = &__$null; - } - - - if (Z_TYPE_P(parameters) != IS_ARRAY) { - ZEPHIR_INIT_VAR(¶ms); - zephir_create_array(¶ms, 2, 0); - zephir_array_fast_append(¶ms, parameters); - zephir_array_fast_append(¶ms, data); - } else { - ZEPHIR_CPY_WRT(¶ms, parameters); - } - ZEPHIR_OBS_VAR(&id); - if (!(zephir_array_isset_long_fetch(&id, ¶ms, 0, 0))) { - zephir_array_fetch_string(&_0$$5, ¶ms, SL("id"), PH_NOISY | PH_READONLY, "phalcon/Tag/Select.zep", 50); - zephir_array_update_long(¶ms, 0, &_0$$5, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); - } - if (!(zephir_memnstr_str(&id, SL("["), "phalcon/Tag/Select.zep", 56))) { - if (!(zephir_array_isset_string(¶ms, SL("id")))) { - zephir_array_update_string(¶ms, SL("id"), &id, PH_COPY | PH_SEPARATE); - } - } - ZEPHIR_OBS_VAR(&name); - if (!(zephir_array_isset_string_fetch(&name, ¶ms, SL("name"), 0))) { - zephir_array_update_string(¶ms, SL("name"), &id, PH_COPY | PH_SEPARATE); + zephir_fetch_params(1, 1, 1, &arrayConfig_param, &defaultAdapter_param); + ZEPHIR_OBS_COPY_OR_DUP(&arrayConfig, arrayConfig_param); + if (!defaultAdapter_param) { + ZEPHIR_INIT_VAR(&defaultAdapter); + ZVAL_STRING(&defaultAdapter, "php"); } else { - if (!(zephir_is_true(&name))) { - zephir_array_update_string(¶ms, SL("name"), &id, PH_COPY | PH_SEPARATE); - } + if (UNEXPECTED(Z_TYPE_P(defaultAdapter_param) != IS_STRING && Z_TYPE_P(defaultAdapter_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'defaultAdapter' must be of the type string")); + RETURN_MM_NULL(); } - ZEPHIR_OBS_VAR(&value); - if (!(zephir_array_isset_string_fetch(&value, ¶ms, SL("value"), 0))) { - ZEPHIR_CALL_CE_STATIC(&value, phalcon_tag_ce, "getvalue", &_1, 0, &id, ¶ms); - zephir_check_call_status(); + if (EXPECTED(Z_TYPE_P(defaultAdapter_param) == IS_STRING)) { + zephir_get_strval(&defaultAdapter, defaultAdapter_param); } else { - zephir_array_unset_string(¶ms, SL("value"), PH_SEPARATE); - } - ZEPHIR_OBS_VAR(&useEmpty); - if (zephir_array_isset_string_fetch(&useEmpty, ¶ms, SL("useEmpty"), 0)) { - ZEPHIR_OBS_VAR(&emptyValue); - if (!(zephir_array_isset_string_fetch(&emptyValue, ¶ms, SL("emptyValue"), 0))) { - ZEPHIR_INIT_NVAR(&emptyValue); - ZVAL_STRING(&emptyValue, ""); - } else { - zephir_array_unset_string(¶ms, SL("emptyValue"), PH_SEPARATE); - } - ZEPHIR_OBS_VAR(&emptyText); - if (!(zephir_array_isset_string_fetch(&emptyText, ¶ms, SL("emptyText"), 0))) { - ZEPHIR_INIT_NVAR(&emptyText); - ZVAL_STRING(&emptyText, "Choose..."); - } else { - zephir_array_unset_string(¶ms, SL("emptyText"), PH_SEPARATE); - } - zephir_array_unset_string(¶ms, SL("useEmpty"), PH_SEPARATE); - } - ZEPHIR_OBS_VAR(&options); - if (!(zephir_array_isset_long_fetch(&options, ¶ms, 1, 0))) { - ZEPHIR_CPY_WRT(&options, data); + ZEPHIR_INIT_VAR(&defaultAdapter); } - if (Z_TYPE_P(&options) == IS_OBJECT) { - ZEPHIR_OBS_VAR(&using); - if (UNEXPECTED(!(zephir_array_isset_string_fetch(&using, ¶ms, SL("using"), 0)))) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_tag_exception_ce, "The 'using' parameter is required", "phalcon/Tag/Select.zep", 101); - return; - } - _2$$19 = Z_TYPE_P(&using) != IS_ARRAY; - if (_2$$19) { - _2$$19 = Z_TYPE_P(&using) != IS_OBJECT; - } - if (UNEXPECTED(_2$$19)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_tag_exception_ce, "The 'using' parameter should be an array", "phalcon/Tag/Select.zep", 107); - return; - } } - zephir_array_unset_string(¶ms, SL("using"), PH_SEPARATE); - ZEPHIR_INIT_VAR(&_5); - ZVAL_STRING(&_5, "", &_5); - if (zephir_is_true(&useEmpty)) { - ZEPHIR_INIT_VAR(&_6$$22); - ZEPHIR_GET_CONSTANT(&_6$$22, "PHP_EOL"); - ZEPHIR_INIT_VAR(&_7$$22); - ZEPHIR_CONCAT_SVSVSV(&_7$$22, "\t", &_6$$22); - zephir_concat_self(&code, &_7$$22); - } - if (Z_TYPE_P(&options) == IS_OBJECT) { - ZEPHIR_INIT_VAR(&_10$$23); - ZEPHIR_GET_CONSTANT(&_10$$23, "PHP_EOL"); - ZEPHIR_INIT_VAR(&_11$$23); - ZEPHIR_CONCAT_SV(&_11$$23, "", &_10$$23); - ZEPHIR_CALL_SELF(&_8$$23, "optionsfromresultset", &_9, 0, &options, &using, &value, &_11$$23); - zephir_check_call_status(); - zephir_concat_self(&code, &_8$$23); + zephir_is_iterable(&arrayConfig, 0, "phalcon/Config/Adapter/Grouped.zep", 121); + if (Z_TYPE_P(&arrayConfig) == IS_ARRAY) { + ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&arrayConfig), _2) + { + ZEPHIR_INIT_NVAR(&configName); + ZVAL_COPY(&configName, _2); + ZEPHIR_CPY_WRT(&configInstance, &configName); + _4$$3 = Z_TYPE_P(&configName) == IS_OBJECT; + if (_4$$3) { + _4$$3 = zephir_instance_of_ev(&configName, phalcon_config_configinterface_ce); + } + if (_4$$3) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "merge", &_5, 0, &configInstance); + zephir_check_call_status(); + continue; + } else if (Z_TYPE_P(&configName) == IS_STRING) { + ZEPHIR_INIT_NVAR(&_6$$5); + ZVAL_STRING(&_6$$5, ""); + if (ZEPHIR_IS_IDENTICAL(&_6$$5, &defaultAdapter)) { + ZEPHIR_INIT_NVAR(&_7$$6); + object_init_ex(&_7$$6, phalcon_config_configfactory_ce); + ZEPHIR_CALL_METHOD(NULL, &_7$$6, "__construct", &_8, 175); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_9$$6, &_7$$6, "load", &_10, 176, &configName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "merge", &_5, 0, &_9$$6); + zephir_check_call_status(); + continue; + } + ZEPHIR_INIT_NVAR(&_11$$5); + zephir_create_array(&_11$$5, 2, 0); + zephir_array_update_string(&_11$$5, SL("filePath"), &configName, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_11$$5, SL("adapter"), &defaultAdapter, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&configInstance, &_11$$5); + } else if (!(zephir_array_isset_string(&configInstance, SL("adapter")))) { + zephir_array_update_string(&configInstance, SL("adapter"), &defaultAdapter, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_string(&_12$$3, &configInstance, SL("adapter"), PH_NOISY | PH_READONLY, "phalcon/Config/Adapter/Grouped.zep", 105); + ZEPHIR_INIT_NVAR(&_13$$3); + ZVAL_STRING(&_13$$3, "array"); + if (ZEPHIR_IS_IDENTICAL(&_13$$3, &_12$$3)) { + if (!(zephir_array_isset_string(&configInstance, SL("config")))) { + ZEPHIR_INIT_NVAR(&_14$$9); + object_init_ex(&_14$$9, phalcon_config_exception_ce); + ZEPHIR_INIT_NVAR(&_15$$9); + ZEPHIR_CONCAT_SS(&_15$$9, "To use 'array' adapter you have to specify ", "the 'config' as an array."); + ZEPHIR_CALL_METHOD(NULL, &_14$$9, "__construct", &_16, 8, &_15$$9); + zephir_check_call_status(); + zephir_throw_exception_debug(&_14$$9, "phalcon/Config/Adapter/Grouped.zep", 110); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_OBS_NVAR(&configArray); + zephir_array_fetch_string(&configArray, &configInstance, SL("config"), PH_NOISY, "phalcon/Config/Adapter/Grouped.zep", 113); + ZEPHIR_INIT_NVAR(&configInstance); + object_init_ex(&configInstance, phalcon_config_ce); + ZEPHIR_CALL_METHOD(NULL, &configInstance, "__construct", &_17, 22, &configArray); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&_18$$10); + object_init_ex(&_18$$10, phalcon_config_configfactory_ce); + ZEPHIR_CALL_METHOD(NULL, &_18$$10, "__construct", &_8, 175); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_19$$10, &_18$$10, "load", &_10, 176, &configInstance); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&configInstance, &_19$$10); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "merge", &_5, 0, &configInstance); + zephir_check_call_status(); + } ZEND_HASH_FOREACH_END(); } else { - if (Z_TYPE_P(&options) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&_14$$25); - ZEPHIR_GET_CONSTANT(&_14$$25, "PHP_EOL"); - ZEPHIR_INIT_VAR(&_15$$25); - ZEPHIR_CONCAT_SV(&_15$$25, "", &_14$$25); - ZEPHIR_CALL_SELF(&_12$$25, "optionsfromarray", &_13, 0, &options, &value, &_15$$25); + ZEPHIR_CALL_METHOD(NULL, &arrayConfig, "rewind", NULL, 0); + zephir_check_call_status(); + while (1) { + ZEPHIR_CALL_METHOD(&_3, &arrayConfig, "valid", NULL, 0); + zephir_check_call_status(); + if (!zend_is_true(&_3)) { + break; + } + ZEPHIR_CALL_METHOD(&configName, &arrayConfig, "current", NULL, 0); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&configInstance, &configName); + _20$$11 = Z_TYPE_P(&configName) == IS_OBJECT; + if (_20$$11) { + _20$$11 = zephir_instance_of_ev(&configName, phalcon_config_configinterface_ce); + } + if (_20$$11) { + ZEPHIR_CALL_METHOD(NULL, this_ptr, "merge", &_5, 0, &configInstance); + zephir_check_call_status(); + continue; + } else if (Z_TYPE_P(&configName) == IS_STRING) { + ZEPHIR_INIT_NVAR(&_21$$13); + ZVAL_STRING(&_21$$13, ""); + if (ZEPHIR_IS_IDENTICAL(&_21$$13, &defaultAdapter)) { + ZEPHIR_INIT_NVAR(&_22$$14); + object_init_ex(&_22$$14, phalcon_config_configfactory_ce); + ZEPHIR_CALL_METHOD(NULL, &_22$$14, "__construct", &_8, 175); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_23$$14, &_22$$14, "load", &_10, 176, &configName); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, this_ptr, "merge", &_5, 0, &_23$$14); + zephir_check_call_status(); + continue; + } + ZEPHIR_INIT_NVAR(&_24$$13); + zephir_create_array(&_24$$13, 2, 0); + zephir_array_update_string(&_24$$13, SL("filePath"), &configName, PH_COPY | PH_SEPARATE); + zephir_array_update_string(&_24$$13, SL("adapter"), &defaultAdapter, PH_COPY | PH_SEPARATE); + ZEPHIR_CPY_WRT(&configInstance, &_24$$13); + } else if (!(zephir_array_isset_string(&configInstance, SL("adapter")))) { + zephir_array_update_string(&configInstance, SL("adapter"), &defaultAdapter, PH_COPY | PH_SEPARATE); + } + zephir_array_fetch_string(&_25$$11, &configInstance, SL("adapter"), PH_NOISY | PH_READONLY, "phalcon/Config/Adapter/Grouped.zep", 105); + ZEPHIR_INIT_NVAR(&_26$$11); + ZVAL_STRING(&_26$$11, "array"); + if (ZEPHIR_IS_IDENTICAL(&_26$$11, &_25$$11)) { + if (!(zephir_array_isset_string(&configInstance, SL("config")))) { + ZEPHIR_INIT_NVAR(&_27$$17); + object_init_ex(&_27$$17, phalcon_config_exception_ce); + ZEPHIR_INIT_NVAR(&_28$$17); + ZEPHIR_CONCAT_SS(&_28$$17, "To use 'array' adapter you have to specify ", "the 'config' as an array."); + ZEPHIR_CALL_METHOD(NULL, &_27$$17, "__construct", &_16, 8, &_28$$17); + zephir_check_call_status(); + zephir_throw_exception_debug(&_27$$17, "phalcon/Config/Adapter/Grouped.zep", 110); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_OBS_NVAR(&configArray); + zephir_array_fetch_string(&configArray, &configInstance, SL("config"), PH_NOISY, "phalcon/Config/Adapter/Grouped.zep", 113); + ZEPHIR_INIT_NVAR(&configInstance); + object_init_ex(&configInstance, phalcon_config_ce); + ZEPHIR_CALL_METHOD(NULL, &configInstance, "__construct", &_17, 22, &configArray); + zephir_check_call_status(); + } else { + ZEPHIR_INIT_NVAR(&_29$$18); + object_init_ex(&_29$$18, phalcon_config_configfactory_ce); + ZEPHIR_CALL_METHOD(NULL, &_29$$18, "__construct", &_8, 175); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(&_30$$18, &_29$$18, "load", &_10, 176, &configInstance); + zephir_check_call_status(); + ZEPHIR_CPY_WRT(&configInstance, &_30$$18); + } + ZEPHIR_CALL_METHOD(NULL, this_ptr, "merge", &_5, 0, &configInstance); + zephir_check_call_status(); + ZEPHIR_CALL_METHOD(NULL, &arrayConfig, "next", NULL, 0); zephir_check_call_status(); - zephir_concat_self(&code, &_12$$25); } } - zephir_concat_self_str(&code, SL("")); - RETURN_CCTOR(&code); + ZEPHIR_INIT_NVAR(&configName); + ZEPHIR_MM_RESTORE(); } -static PHP_METHOD(Phalcon_Tag_Select, optionsFromArray) + + + +#ifdef HAVE_CONFIG_H +#endif + + + + + +ZEPHIR_INIT_CLASS(Phalcon_Config_Adapter_Ini) { - zend_string *_3; - zend_ulong _2; + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Config\\Adapter, Ini, phalcon, config_adapter_ini, phalcon_config_ce, phalcon_config_adapter_ini_method_entry, 0); + + return SUCCESS; +} + +static PHP_METHOD(Phalcon_Config_Adapter_Ini, __construct) +{ + zend_string *_6, *_10$$6, *_23$$12; + zend_ulong _5, _9$$6, _22$$12; + zval config; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL, *_7 = NULL; + zephir_fcall_cache_entry *_13 = NULL, *_19 = NULL, *_31 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval closeOption, _12$$8, _13$$8, _22$$16, _23$$16; - zval *data_param = NULL, *value, value_sub, *closeOption_param = NULL, strValue, strOptionValue, code, optionValue, optionText, escaped, *_0, _1, _5$$4, _6$$4, _8$$4, _9$$4, _10$$6, _11$$7, _14$$9, _15$$10, _16$$12, _17$$12, _18$$12, _19$$12, _20$$14, _21$$15, _24$$17, _25$$18; - zval data; + zval *filePath_param = NULL, *mode = NULL, mode_sub, __$true, __$null, directives, iniConfig, lastValue, path, section, sections, *_3, _4, _0$$4, _1$$4, _2$$4, *_7$$6, _8$$6, _11$$7, _14$$8, _16$$9, _17$$9, _18$$10, *_20$$12, _21$$12, _24$$13, _26$$14, _28$$15, _29$$15, _30$$16; + zval filePath, _12$$7, _15$$8, _25$$13, _27$$14; zval *this_ptr = getThis(); - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&strValue); - ZVAL_UNDEF(&strOptionValue); - ZVAL_UNDEF(&code); - ZVAL_UNDEF(&optionValue); - ZVAL_UNDEF(&optionText); - ZVAL_UNDEF(&escaped); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_8$$4); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_10$$6); + ZVAL_UNDEF(&filePath); + ZVAL_UNDEF(&_12$$7); + ZVAL_UNDEF(&_15$$8); + ZVAL_UNDEF(&_25$$13); + ZVAL_UNDEF(&_27$$14); + ZVAL_UNDEF(&mode_sub); + ZVAL_BOOL(&__$true, 1); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(&directives); + ZVAL_UNDEF(&iniConfig); + ZVAL_UNDEF(&lastValue); + ZVAL_UNDEF(&path); + ZVAL_UNDEF(§ion); + ZVAL_UNDEF(§ions); + ZVAL_UNDEF(&_4); + ZVAL_UNDEF(&_0$$4); + ZVAL_UNDEF(&_1$$4); + ZVAL_UNDEF(&_2$$4); + ZVAL_UNDEF(&_8$$6); ZVAL_UNDEF(&_11$$7); - ZVAL_UNDEF(&_14$$9); - ZVAL_UNDEF(&_15$$10); - ZVAL_UNDEF(&_16$$12); - ZVAL_UNDEF(&_17$$12); - ZVAL_UNDEF(&_18$$12); - ZVAL_UNDEF(&_19$$12); - ZVAL_UNDEF(&_20$$14); - ZVAL_UNDEF(&_21$$15); - ZVAL_UNDEF(&_24$$17); - ZVAL_UNDEF(&_25$$18); - ZVAL_UNDEF(&closeOption); - ZVAL_UNDEF(&_12$$8); - ZVAL_UNDEF(&_13$$8); - ZVAL_UNDEF(&_22$$16); - ZVAL_UNDEF(&_23$$16); + ZVAL_UNDEF(&_14$$8); + ZVAL_UNDEF(&_16$$9); + ZVAL_UNDEF(&_17$$9); + ZVAL_UNDEF(&_18$$10); + ZVAL_UNDEF(&_21$$12); + ZVAL_UNDEF(&_24$$13); + ZVAL_UNDEF(&_26$$14); + ZVAL_UNDEF(&_28$$15); + ZVAL_UNDEF(&_29$$15); + ZVAL_UNDEF(&_30$$16); + ZVAL_UNDEF(&config); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_ARRAY(data) - Z_PARAM_ZVAL(value) - Z_PARAM_STR(closeOption) + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(filePath) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(mode) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &data_param, &value, &closeOption_param); - zephir_get_arrval(&data, data_param); - zephir_get_strval(&closeOption, closeOption_param); + zephir_fetch_params(1, 1, 1, &filePath_param, &mode); + if (UNEXPECTED(Z_TYPE_P(filePath_param) != IS_STRING && Z_TYPE_P(filePath_param) != IS_NULL)) { + zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'filePath' must be of the type string")); + RETURN_MM_NULL(); + } + if (EXPECTED(Z_TYPE_P(filePath_param) == IS_STRING)) { + zephir_get_strval(&filePath, filePath_param); + } else { + ZEPHIR_INIT_VAR(&filePath); + } + if (!mode) { + mode = &mode_sub; + ZEPHIR_CPY_WRT(mode, &__$null); + } else { + ZEPHIR_SEPARATE_PARAM(mode); + } - ZEPHIR_INIT_VAR(&code); - ZVAL_STRING(&code, ""); - zephir_is_iterable(&data, 0, "phalcon/Tag/Select.zep", 186); - if (Z_TYPE_P(&data) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _2, _3, _0) + if (EXPECTED(Z_TYPE_P(mode) == IS_NULL)) { + ZEPHIR_INIT_NVAR(mode); + ZVAL_LONG(mode, 1); + } + ZEPHIR_CALL_FUNCTION(&iniConfig, "parse_ini_file", NULL, 177, &filePath, &__$true, mode); + zephir_check_call_status(); + if (UNEXPECTED(ZEPHIR_IS_FALSE_IDENTICAL(&iniConfig))) { + ZEPHIR_INIT_VAR(&_0$$4); + object_init_ex(&_0$$4, phalcon_config_exception_ce); + ZEPHIR_INIT_VAR(&_1$$4); + zephir_basename(&_1$$4, &filePath); + ZEPHIR_INIT_VAR(&_2$$4); + ZEPHIR_CONCAT_SVS(&_2$$4, "Configuration file ", &_1$$4, " cannot be loaded"); + ZEPHIR_CALL_METHOD(NULL, &_0$$4, "__construct", NULL, 8, &_2$$4); + zephir_check_call_status(); + zephir_throw_exception_debug(&_0$$4, "phalcon/Config/Adapter/Ini.zep", 78); + ZEPHIR_MM_RESTORE(); + return; + } + ZEPHIR_INIT_VAR(&config); + array_init(&config); + zephir_is_iterable(&iniConfig, 0, "phalcon/Config/Adapter/Ini.zep", 105); + if (Z_TYPE_P(&iniConfig) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&iniConfig), _5, _6, _3) { - ZEPHIR_INIT_NVAR(&optionValue); - if (_3 != NULL) { - ZVAL_STR_COPY(&optionValue, _3); + ZEPHIR_INIT_NVAR(§ion); + if (_6 != NULL) { + ZVAL_STR_COPY(§ion, _6); } else { - ZVAL_LONG(&optionValue, _2); - } - ZEPHIR_INIT_NVAR(&optionText); - ZVAL_COPY(&optionText, _0); - ZEPHIR_CALL_FUNCTION(&escaped, "htmlspecialchars", &_4, 224, &optionValue); - zephir_check_call_status(); - if (Z_TYPE_P(&optionText) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&_5$$4); - ZEPHIR_GET_CONSTANT(&_5$$4, "PHP_EOL"); - ZEPHIR_CALL_SELF(&_6$$4, "optionsfromarray", &_7, 0, &optionText, value, &closeOption); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_8$$4); - ZEPHIR_GET_CONSTANT(&_8$$4, "PHP_EOL"); - ZEPHIR_INIT_NVAR(&_9$$4); - ZEPHIR_CONCAT_SVSVVSV(&_9$$4, "\t", &_5$$4, &_6$$4, "\t", &_8$$4); - zephir_concat_self(&code, &_9$$4); - continue; + ZVAL_LONG(§ion, _5); } - if (Z_TYPE_P(value) == IS_ARRAY) { - if (zephir_fast_in_array(&optionValue, value)) { - ZEPHIR_INIT_NVAR(&_10$$6); - ZEPHIR_CONCAT_SVSVV(&_10$$6, "\t", &_16$$12, &_17$$12, "\t", &_18$$12); - zephir_concat_self(&code, &_19$$12); - continue; - } - if (Z_TYPE_P(value) == IS_ARRAY) { - if (zephir_fast_in_array(&optionValue, value)) { - ZEPHIR_INIT_NVAR(&_20$$14); - ZEPHIR_CONCAT_SVSVV(&_20$$14, "\t", &_10$$23); + ZEPHIR_CALL_SELF(&_8$$23, "optionsfromresultset", &_9, 0, &options, &using, &value, &_11$$23); + zephir_check_call_status(); + zephir_concat_self(&code, &_8$$23); } else { - zephir_get_arrval(&placeholders, placeholders_param); + if (Z_TYPE_P(&options) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&_14$$25); + ZEPHIR_GET_CONSTANT(&_14$$25, "PHP_EOL"); + ZEPHIR_INIT_VAR(&_15$$25); + ZEPHIR_CONCAT_SV(&_15$$25, "", &_14$$25); + ZEPHIR_CALL_SELF(&_12$$25, "optionsfromarray", &_13, 0, &options, &value, &_15$$25); + zephir_check_call_status(); + zephir_concat_self(&code, &_12$$25); + } } - - - ZEPHIR_CALL_FUNCTION(&_0, "gettext", NULL, 0, &translateKey); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "replaceplaceholders", NULL, 0, &_0, &placeholders); - zephir_check_call_status(); - RETURN_MM(); + zephir_concat_self_str(&code, SL("")); + RETURN_CCTOR(&code); } -static PHP_METHOD(Phalcon_Translate_Adapter_Gettext, resetDomain) +static PHP_METHOD(Phalcon_Tag_Select, optionsFromArray) { - zval _0; + zend_string *_3; + zend_ulong _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_4 = NULL, *_7 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; + zval closeOption, _12$$8, _13$$8, _22$$16, _23$$16; + zval *data_param = NULL, *value, value_sub, *closeOption_param = NULL, strValue, strOptionValue, code, optionValue, optionText, escaped, *_0, _1, _5$$4, _6$$4, _8$$4, _9$$4, _10$$6, _11$$7, _14$$9, _15$$10, _16$$12, _17$$12, _18$$12, _19$$12, _20$$14, _21$$15, _24$$17, _25$$18; + zval data; zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - - - ZEPHIR_MM_GROW(); - - ZEPHIR_CALL_METHOD(&_0, this_ptr, "getdefaultdomain", NULL, 0); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_FUNCTION("textdomain", NULL, 0, &_0); - zephir_check_call_status(); - RETURN_MM(); -} - -static PHP_METHOD(Phalcon_Translate_Adapter_Gettext, setDefaultDomain) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *domain_param = NULL; - zval domain; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&domain); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&strValue); + ZVAL_UNDEF(&strOptionValue); + ZVAL_UNDEF(&code); + ZVAL_UNDEF(&optionValue); + ZVAL_UNDEF(&optionText); + ZVAL_UNDEF(&escaped); + ZVAL_UNDEF(&_1); + ZVAL_UNDEF(&_5$$4); + ZVAL_UNDEF(&_6$$4); + ZVAL_UNDEF(&_8$$4); + ZVAL_UNDEF(&_9$$4); + ZVAL_UNDEF(&_10$$6); + ZVAL_UNDEF(&_11$$7); + ZVAL_UNDEF(&_14$$9); + ZVAL_UNDEF(&_15$$10); + ZVAL_UNDEF(&_16$$12); + ZVAL_UNDEF(&_17$$12); + ZVAL_UNDEF(&_18$$12); + ZVAL_UNDEF(&_19$$12); + ZVAL_UNDEF(&_20$$14); + ZVAL_UNDEF(&_21$$15); + ZVAL_UNDEF(&_24$$17); + ZVAL_UNDEF(&_25$$18); + ZVAL_UNDEF(&closeOption); + ZVAL_UNDEF(&_12$$8); + ZVAL_UNDEF(&_13$$8); + ZVAL_UNDEF(&_22$$16); + ZVAL_UNDEF(&_23$$16); #if PHP_VERSION_ID >= 80000 bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_STR(domain) + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_ARRAY(data) + Z_PARAM_ZVAL(value) + Z_PARAM_STR(closeOption) ZEND_PARSE_PARAMETERS_END(); #endif ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &domain_param); - if (UNEXPECTED(Z_TYPE_P(domain_param) != IS_STRING && Z_TYPE_P(domain_param) != IS_NULL)) { - zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'domain' must be of the type string")); - RETURN_MM_NULL(); - } - if (EXPECTED(Z_TYPE_P(domain_param) == IS_STRING)) { - zephir_get_strval(&domain, domain_param); - } else { - ZEPHIR_INIT_VAR(&domain); - } + zephir_fetch_params(1, 3, 0, &data_param, &value, &closeOption_param); + zephir_get_arrval(&data, data_param); + zephir_get_strval(&closeOption, closeOption_param); - zephir_update_property_zval(this_ptr, ZEND_STRL("defaultDomain"), &domain); - ZEPHIR_MM_RESTORE(); + ZEPHIR_INIT_VAR(&code); + ZVAL_STRING(&code, ""); + zephir_is_iterable(&data, 0, "phalcon/Tag/Select.zep", 186); + if (Z_TYPE_P(&data) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _2, _3, _0) + { + ZEPHIR_INIT_NVAR(&optionValue); + if (_3 != NULL) { + ZVAL_STR_COPY(&optionValue, _3); + } else { + ZVAL_LONG(&optionValue, _2); + } + ZEPHIR_INIT_NVAR(&optionText); + ZVAL_COPY(&optionText, _0); + ZEPHIR_CALL_FUNCTION(&escaped, "htmlspecialchars", &_4, 224, &optionValue); + zephir_check_call_status(); + if (Z_TYPE_P(&optionText) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&_5$$4); + ZEPHIR_GET_CONSTANT(&_5$$4, "PHP_EOL"); + ZEPHIR_CALL_SELF(&_6$$4, "optionsfromarray", &_7, 0, &optionText, value, &closeOption); + zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_8$$4); + ZEPHIR_GET_CONSTANT(&_8$$4, "PHP_EOL"); + ZEPHIR_INIT_NVAR(&_9$$4); + ZEPHIR_CONCAT_SVSVVSV(&_9$$4, "\t", &_5$$4, &_6$$4, "\t", &_8$$4); + zephir_concat_self(&code, &_9$$4); + continue; + } + if (Z_TYPE_P(value) == IS_ARRAY) { + if (zephir_fast_in_array(&optionValue, value)) { + ZEPHIR_INIT_NVAR(&_10$$6); + ZEPHIR_CONCAT_SVSVV(&_10$$6, "\t", &_16$$12, &_17$$12, "\t", &_18$$12); + zephir_concat_self(&code, &_19$$12); + continue; + } + if (Z_TYPE_P(value) == IS_ARRAY) { + if (zephir_fast_in_array(&optionValue, value)) { + ZEPHIR_INIT_NVAR(&_20$$14); + ZEPHIR_CONCAT_SVSVV(&_20$$14, "\t